Picture prediction method and apparatus, and computer-readable storage medium
By prioritizing Level 1 merge modes and directly selecting Level 2 modes when prohibited, the method reduces redundancy in video coding, improving encoding and decoding efficiency.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- HUAWEI TECH CO LTD
- Filing Date
- 2023-10-12
- Publication Date
- 2026-05-20
AI Technical Summary
Conventional video coding methods suffer from redundancy in determining merge modes for picture prediction, particularly when higher-level syntax elements indicate the unavailability of certain merge modes, leading to inefficient processing.
The method prioritizes Level 1 merge modes over Level 2 modes and directly selects Level 2 modes like CIIP or TPM as the target merge mode when prohibited by higher-level syntax elements, reducing redundancy by bypassing unnecessary availability checks.
This approach minimizes redundancy in the picture prediction process by directly selecting merge modes based on priority and syntax indications, enhancing efficiency in video encoding and decoding.
Smart Images

Figure 0007863076000009 
Figure 0007863076000010 
Figure 0007863076000011
Abstract
Description
Technical Field
[0001] This application claims the priority of Chinese Patent Application No. 201910341218.6, titled "Video Picture Encoding / Decoding Method and Apparatus", filed with the China National Intellectual Property Administration on April 25, 2019, the entire content of which is incorporated herein by reference.
[0002] This application claims the priority of Chinese Patent Application No. 201910474007.X, titled "Picture Prediction Method and Apparatus, and Computer Readable Storage Medium", filed with the China National Intellectual Property Administration on June 2, 2019, the entire content of which is incorporated herein by reference.
[0003] This application relates to the field of video coding technology, more specifically, picture prediction methods and apparatuses, and computer-readable storage media.
Background Art
[0004] Digital video capabilities can be incorporated into a wide variety of devices, including digital televisions, digital broadcasting systems, wireless broadcasting systems, personal digital assistants (PDAs), laptop or desktop computers, tablet computers, e-readers, digital cameras, digital recording devices, digital media players, video game devices, video game consoles, mobile or satellite radiophones (i.e., "smartphones"), video conferencing equipment, video streaming equipment, and similar devices. Digital video devices implement video compression technologies such as MPEG-2, MPEG-4, ITU-T H.263, and ITU-T H.264 / MPEG-4 Part 10 Advanced Video Coding (AVC), the H.265 / High Efficiency Video Coding (HEVC) video coding standard, and video compression technologies defined in extensions of such standards. By implementing such video compression technologies, video devices can transmit, receive, encode, decode, and / or store digital video information more efficiently.
[0005] Video compression techniques are used to reduce or eliminate inherent redundancy within a video sequence by performing spatial (intra-picture) prediction and / or temporal (inter-picture) prediction. In block-based video coding, a video slice (i.e., a video frame or a portion of a video frame) may be divided into picture blocks, which may also be called tree blocks, coding units (CUs), and / or coding nodes. Picture blocks in an (I) slice of a picture to be intra-coded are coded through spatial prediction based on reference samples in adjacent blocks within the same picture. For picture blocks in an (P or B) slice of a picture to be intercoded, spatial prediction based on reference samples in adjacent blocks within the same picture, or temporal prediction based on reference samples in a different reference picture, may be used. A picture may be called a frame, and a reference picture may be called a reference frame.
[0006] When merge modes are used to predict picture blocks, there are generally multiple merge mode options. In conventional solutions, the merge mode applicable to the current picture block is usually determined one at a time from several candidate merge modes. If a merge mode is unavailable, the next merge mode is then determined to see if it is available. In conventional solutions, redundancy exists when the merge mode applicable to the current block is determined from the last two remaining merge modes. [Overview of the project] [Means for solving the problem]
[0007] This application provides a picture prediction method and apparatus, and a computer-readable storage medium, in order to reduce redundancy in the picture prediction process as much as possible.
[0008] According to a first embodiment, a picture prediction method is provided. The method includes the steps of: determining whether a merge mode is to be used for the current picture block; if a merge mode is to be used for the current picture block, determining whether a level 1 merge mode is available; if a level 1 merge mode is not available and a higher-level syntax element corresponding to a first merge mode indicates that the use of the first merge mode is prohibited, determining a second merge mode as a target merge mode applicable to the current picture block; and predicting the current picture block based on the target merge mode.
[0009] Both the first and second merge modes belong to Level 2 merge modes, which include both the first and second merge modes. In addition, for the current picture block, Level 1 and Level 2 merge modes already include all optional merge modes for the current picture block, and for the current picture block, the final target merge mode must be determined from Level 1 and Level 2 merge modes.
[0010] Optionally, Level 1 merge mode has a higher priority than Level 2 merge mode.
[0011] The fact that a Level 1 merge mode has a higher priority than a Level 2 merge mode means that in the process of determining the target merge mode for the current picture block, the target merge mode is determined preferentially from Level 1 merge modes. If no merge modes are available in Level 1 merge modes, the target merge mode is then determined from Level 2 merge modes.
[0012] Optionally, the step of determining whether merge mode is used for the current picture block includes the step of determining that merge mode is used for the current picture block when the merge_flag corresponding to the current picture block is 1, and the step of determining that merge mode is not used for the current picture block when the merge_flag corresponding to the current picture block is 0.
[0013] It should be understood that when it is determined that the merge mode is not applicable to the current picture block, another mode may be used to predict the current picture block. For example, when it is determined that the merge mode is not applicable to the current picture block, the elevation motion vector AMVP mode may be used to predict the current picture block.
[0014] In this application, when the upper-level syntax elements of the first merge mode indicate that the first merge mode is prohibited from being used, there is no need to analyze the remaining available status information of the second merge mode, and the second merge mode can be directly determined as the final target merge mode. This can reduce as much as possible the redundancy generated by the determination of the target merge mode in the picture prediction process.
[0015] Optionally, the method further includes a step to determine whether a Level 1 merge mode is available.
[0016] Specifically, whether a Level 1 merge mode is available is determined based on the higher-level syntax elements corresponding to the Level 1 merge mode and / or the available status information corresponding to the Level 1 merge mode.
[0017] Referring to the first embodiment, in some implementations of the first embodiment, when a level 1 merge mode is not available and a higher-layer syntax element corresponding to the first merge mode indicates that the first merge mode is permitted to be used, the target merge mode is determined based on the higher-layer syntax element corresponding to the second merge mode and / or the available status information of the second merge mode.
[0018] The available status information for the second merge mode is used to indicate whether the second merge mode will be used when the current picture block is predicted.
[0019] For example, the second merge mode is CIIP mode, and the available status information for the second merge mode is the value of ciip_flag. When ciip_flag is 0, CIIP mode is not available for the current picture block. When ciip_flag is 1, CIIP mode is available for the current picture block.
[0020] Regarding CIIP mode, if CIIP mode should be selected as the target merge mode, it should be understood that the higher-level syntax element corresponding to CIIP must indicate that CIIP mode is permitted to be used, and the available status information indicating the availability status of CIIP mode must indicate that CIIP is available.
[0021] For example, when sps_ciip_enabled_flag=1 and ciip_flag=1, the CIIP mode may be determined as the target merge mode for the current picture block.
[0022] Referring to the first aspect, in some implementations of the first aspect, the determination of the target merge mode based on the upper layer syntax element corresponding to the second merge mode and / or the available status information of the second merge mode includes determining the first merge mode as the target merge mode when the upper layer syntax element corresponding to the second merge mode and / or the available status information of the second merge mode indicates that the use of the second merge mode is prohibited.
[0023] The higher-level syntax elements corresponding to the second merge mode and / or the available status information for the second merge mode indicating that the use of the second merge mode is prohibited include:
[0024] The higher-level syntax element corresponding to the second merge mode indicates that the use of the second merge mode is prohibited, the available status information for the second merge mode indicates that the use of the second merge mode is not possible, the higher-level syntax element corresponding to the second merge mode indicates that the use of the second merge mode is permitted, and the available status information for the second merge mode indicates that the use of the second merge mode is not possible.
[0025] Optionally, the determination of the target merge mode based on the upper-level syntax element corresponding to the second merge mode and / or the available status information of the second merge mode further includes the determination that the second merge mode is the target merge mode when the upper-level syntax element corresponding to the second merge mode indicates that the second merge mode is permitted to be used, and the available status information of the second merge mode indicates that the second merge mode is available.
[0026] Referring to the first aspect, in some implementations of the first aspect, before the target merge mode is determined based on the upper layer syntax element corresponding to the second merge mode and / or the available status information of the second merge mode, the method further includes determining that at least one of the following conditions is satisfied: that is, the size of the current picture block satisfies a preset condition, and the skip mode is not used to predict the current picture block.
[0027] In other words, before the target merge mode is determined, it is necessary to further ensure that the size of the current picture block satisfies the condition and the skip mode is not used for the current picture block. Otherwise, another mode other than the merge mode may be used to predict the current picture block.
[0028] Referring to the first aspect, in some implementations of the first aspect, that the size of the current picture block satisfies a preset condition means that the current picture block satisfies the following three conditions: that is, (cdWidth * cbHeight) ≥ 64, cbWidth < 128, and cbHeight < 128 including satisfying.
[0029] cdWidth is the width of the current picture block, and cbHeight is the height of the current picture block.
[0030] Referring to the first aspect, in some implementations of the first aspect, the first merge mode includes a triangle partition mode TPM, and the second merge mode includes a combined intra and inter prediction CIIP mode.
[0031] Optionally, CIIP mode is determined as the target merge mode when a higher-layer syntax element corresponding to TPM mode indicates that TPM mode is prohibited from being used.
[0032] In this application, when a higher-level syntax element corresponding to the TPM mode indicates that the use of the TPM mode is prohibited, it is not necessary to determine whether the CIIP mode is available by analyzing the higher-level syntax corresponding to the CIIP mode and / or the available status information indicating the available status of the CIIP mode. Instead, the CIIP mode can be determined directly as the target merge mode. This can reduce redundancy in the process of determining the target merge mode.
[0033] Optionally, when a higher-layer syntax element corresponding to TPM mode indicates that TPM mode is permitted to be used, the target merge mode is determined based on the higher-layer syntax element corresponding to CIIP mode and / or available status information indicating the available status of CIIP mode.
[0034] Optionally, the TPM mode is determined as the target merge mode when the upper-layer syntax elements corresponding to CIIP mode and / or the available status information indicating the available status of CIIP mode indicate that the use of CIIP mode is prohibited.
[0035] Optionally, CIIP mode is determined as the target merge mode when a higher-level syntax element corresponding to CIIP mode indicates that CIIP mode is permitted to be used, and available status information indicating the availability status of CIIP mode indicates that CIIP mode is available.
[0036] Referring to the first embodiment, in some implementations of the first embodiment, before the target merge mode is determined based on the upper layer syntax elements corresponding to the second merge mode and / or the available status information of the second merge mode, the method further includes the steps of determining that the type of slice or slice group in which the current picture block is located is B, and determining that the maximum number of candidate TPM modes supported by the slice or slice group in which the current picture block is located is 2 or greater.
[0037] Optionally, before the target merge mode is determined based on the available status information indicating the available status of the higher-layer syntax elements and / or CIIP modes corresponding to the CIIP mode, the method further includes the steps of determining that the type of slice or slice group in which the current picture block is located is B, and determining that the maximum number of candidate TPM modes supported by the slice or slice group in which the current picture block is located is 2 or greater.
[0038] Referring to the first embodiment, in some implementations of the first embodiment, the first merge mode is a triangulation mode TPM, and the second merge mode is a combined intra and interpredictive CIIP mode. The method further includes the step of determining the CIIP mode as the target merge mode when a level 1 merge mode is not available and a higher-layer syntax element corresponding to a TPM mode indicates that the TPM mode is permitted to be used, but the current picture block does not satisfy at least one of conditions A and B.
[0039] Conditions A and B are as follows:
[0040] Condition A: The slice on which the current picture block is located is of type B.
[0041] Condition B: The maximum number of candidate TPM modes supported by the slice or slice group in which the current picture block is located is 2 or greater.
[0042] The TPM mode can only be selected as the target merge mode ultimately used to predict the current picture block when both conditions A and B are met.
[0043] On the other hand, if either condition A or condition B is not met, the CIIP mode is determined as the target merge mode.
[0044] On the other hand, if the higher-layer syntax element corresponding to TPM mode indicates that TPM mode is prohibited, and neither condition A nor condition B is met, then CIIP mode is determined as the target merge mode.
[0045] On the other hand, if the higher-layer syntax element corresponding to TPM mode indicates that TPM mode is permitted to be used, and neither condition A nor condition B is met, then CIIP mode is determined as the target merge mode.
[0046] In other words, the CIIP mode can be determined as the target merge mode if sps_trangle_enabled_flag=1, condition A, and one of condition B are not met.
[0047] On the other hand, if sps_trangle_enabled_flag=1, condition A, and condition B are all met, the target merge mode should be determined based on ciip_flag, according to some conditions in the prior art.
[0048] Referring to the first embodiment, in some implementations of the first embodiment, the upper-level syntax element is a syntax element at at least one of the sequence level, picture level, slice level, and slice group level.
[0049] Referring to the first embodiment, in some implementations of the first embodiment, the level 1 merge mode includes a normal merge mode, a merge MMVD mode using motion vector differences, and a subblock merge mode.
[0050] When determining whether a Level 1 merge mode is available, the availability of these modes can be determined sequentially in the order of normal merge mode, MMVD mode, and subblock merge mode.
[0051] For example, it might first be determined whether the normal merge mode is available. If the normal merge mode is not available (if it is available, the normal merge mode can be used directly as the final target merge mode), then it is determined whether the MMVD mode is available. If the MMVD mode is not available, then it is determined whether the subblock merge mode is available.
[0052] Referring to the first aspect, in some implementations of the first aspect, the method further includes the step of determining a target merge mode from the level 2 merge modes when a level 1 merge mode is not available, wherein the level 2 merge modes include TPM mode and CIIP mode, and determining CIIP mode as the target merge mode when the use of CIIP mode is permitted and none of the following conditions are met.
[0053] Condition D: TPM mode is permitted to be used.
[0054] Condition E: Skip mode is not used to predict the current picture block.
[0055] Condition F: (cbWidth*cbHeight)≧64.
[0056] Condition G:cbWidth<128.
[0057] Condition H:cbHeight<128.
[0058] cbWidth is the width of the current picture block, and cbHeight is the height of the current picture block.
[0059] Referring to the first embodiment, in some implementations of the first embodiment, the prediction method is applied to the encoder side to encode the current picture block.
[0060] Referring to the first embodiment, in some implementations of the first embodiment, the prediction method is applied to the decoder side in order to decode the current picture block.
[0061] A picture prediction method is provided according to a second embodiment. The method includes the steps of: determining whether a merge mode is to be used for the current picture block; determining whether a level 1 merge mode is available when a merge mode is to be used for the current picture block; determining a target merge mode from the level 2 merge modes when a level 1 merge mode is not available, wherein the level 2 merge modes include TPM mode and CIIP mode; and determining CIIP mode as the target merge mode when the use of CIIP mode is permitted and none of the following conditions (conditions 1 to 5) are met.
[0062] Condition 1: TPM mode is permitted to be used.
[0063] Condition 2: The slice or slice group in which the current picture block is located is of type B.
[0064] Condition 3: The maximum number of candidate TPM modes supported by the slice or slice group in which the current picture block is located is determined to be 2 or greater.
[0065] Condition 4: The current picture block size meets the pre-set conditions.
[0066] Condition 5: Skip mode is not used to predict the current picture block.
[0067] The first condition may be specifically expressed by sps_triangle_enabled_flag=1, the second condition may be specifically expressed by slice_type==B, and the third condition may be specifically expressed by MaxNumTriangleMergeCand≧2. MaxNumTriangleMergeCand indicates the maximum number of candidate TPM modes supported by the slice or group of slices in which the current picture block is located.
[0068] In addition, for the current picture block, the Level 1 merge mode and Level 2 merge mode may include all optional merge modes for the current picture block, and for the current picture block, the final target merge mode must be determined from the Level 1 merge mode and Level 2 merge mode.
[0069] Optionally, Level 1 merge mode has a higher priority than Level 2 merge mode.
[0070] If the priority of Level 1 merge modes is higher than that of Level 2 merge modes, it means that in the process of determining the target merge mode for the current picture block, the target merge mode is determined preferentially from Level 1 merge modes. If no merge modes are available in Level 1 merge modes, the target merge mode is then determined from Level 2 merge modes.
[0071] Optionally, the current picture block size must meet the following three conditions: (cdWidth*cbHeight)≧64, cbWidth<128, and cbHeight<128 This includes satisfying the following conditions.
[0072] Optionally, the step of determining whether merge mode is used for the current picture block includes the step of determining that merge mode is used for the current picture block when the merge_flag corresponding to the current picture block is 1, and the step of determining that merge mode is not used for the current picture block when the merge_flag corresponding to the current picture block is 0.
[0073] It should be understood that when it is determined that the merge mode is not applicable to the current picture block, another mode may be used to predict the current picture block. For example, when it is determined that the merge mode is not applicable to the current picture block, the elevation motion vector AMVP mode may be used to predict the current picture block.
[0074] Optionally, Level 1 merge modes include normal merge mode, MMVD mode, and subblock merge mode.
[0075] When determining whether a Level 1 merge mode is available, the availability of these modes can be determined sequentially in the order of normal merge mode, MMVD mode, and subblock merge mode. If all modes are unavailable, it is determined that a Level 1 merge mode is unavailable.
[0076] In this application, when a Level 1 merge mode is unavailable, a determination may be made based on several pre-defined conditions whether to select the CIIP mode as the final merge mode, and if any one of the pre-defined conditions is not met, the CIIP mode may be directly determined as the target merge mode. This reduces the redundancy generated in the process of determining the target merge.
[0077] Referring to the second embodiment, in some implementations of the second embodiment, the step of determining a target merge mode from a level 2 merge mode includes the step of setting the value of available status information indicating the available status of a CIIP mode to a first value when none of conditions 1 to 5 is met, and when the value of available status information indicating the available status of a CIIP mode is the first value, the CIIP mode is used to perform picture prediction for the current picture block.
[0078] It should be understood that the step of setting the value of the available status information, which indicates the available status of CIIP mode, to the first value is equivalent to the step of determining CIIP as the target merge mode.
[0079] Optionally, the available status information indicating the available status of CIIP mode is `ciip_flag`.
[0080] The step of setting the value of the available status information indicating the available status of CIIP mode to a first value may specifically be the step of setting ciip_flag to 1.
[0081] In addition, when the value of the available status information indicating the availability status of CIIP mode is set to a second value, it may mean that CIIP mode is not used to perform picture prediction for the current picture block. For example, if the available status information indicating the availability status of CIIP mode is ciip_flag and ciip_flag=0, then CIIP mode is not used to perform picture prediction for the current picture block.
[0082] Referring to the second embodiment, in some implementations of the second embodiment, the step of determining a target merge mode from a level 2 merge mode includes the step of determining a target merge mode based on available status information indicating the available status of a higher-level syntax element and / or CIIP mode, when all of conditions 1 to 5 are met, wherein the available status information indicating the available status of a CIIP mode is used to indicate whether a CIIP mode is used when the current picture block is expected.
[0083] For example, the available status information indicating the availability status of CIIP mode is the value of ciip_flag. When ciip_flag is 0, CIIP mode is not available for the current picture block. When ciip_flag is 1, CIIP mode is available for the current picture block.
[0084] In this application, the target merge mode can be determined based on the upper-level syntax elements of the CIIP mode and / or available status information indicating the available status of the CIIP mode, only when five pre-defined conditions are met. Compared to conventional solutions, more conditions must be met before the target merge mode can be further determined based on the upper-level syntax elements of the CIIP mode and available status information. Otherwise, the CIIP mode can be directly determined as the target merge mode. This can reduce some redundant processes in the process of determining the target merge mode.
[0085] Referring to the second aspect, in some implementations of the second aspect, the step of determining a target merge mode based on available status information indicating the available status of a higher-layer syntax element corresponding to a CIIP mode and / or a CIIP mode includes determining a TPM mode as the target merge mode when the available status information indicating the available status of a higher-layer syntax element corresponding to a CIIP mode and / or a CIIP mode indicates that the use of a CIIP mode is prohibited.
[0086] Referring to the second aspect, in some implementations of the second aspect, when the upper-layer syntax element corresponding to the CIIP mode and / or the available status information indicating the available status of the CIIP mode indicates that the use of the CIIP mode is prohibited, the step of determining the TPM mode as the target merge mode is: The steps include setting the value of the available status information indicating the available status of TPM mode to a first value when the available status information indicating the available status of CIIP mode indicates that CIIP mode is prohibited from being used, and when the value of the available status information indicating the available status of TPM mode is the first value, TPM mode is used to perform picture prediction for the current picture block.
[0087] It should be understood that the step of setting the value of the available status information, which indicates the available status of TPM mode, to the first value is equivalent to the step of determining TPM as the target merge mode.
[0088] Optionally, the available status information indicating the available status of TPM mode is MergeTriangleFlag.
[0089] The step of setting the value of the available status information indicating the available status of TPM mode to a first value may specifically be the step of setting MergeTriangleFlag to 1.
[0090] Referring to the second aspect, in some implementations of the second aspect, before the target merge mode is determined based on the upper layer syntax elements corresponding to the CIIP mode and / or available status information indicating the available status of the CIIP mode, the method is: The further step includes determining whether at least one of the following conditions is met.
[0091] The current picture block size meets the pre-set conditions, Skip mode is not used to predict the current picture block.
[0092] cdWidth is the width of the current picture block, and cbHeight is the height of the current picture block.
[0093] A third aspect provides a picture prediction method. The method includes the steps of determining whether a merge mode is used for the current picture block, determining whether a level 1 merge mode is available when a merge mode is used for the current picture block, and determining a target merge mode from the level 2 merge modes when a level 1 merge mode is not available. The level 2 merge modes include TPM mode and CIIP mode. When the use of CIIP mode is permitted and all of the following conditions (conditions 1 to 3) are met, the available status information for CIIP mode is obtained by parsing the bitstream, and the target merge mode is determined based on the available status information for CIIP mode.
[0094] Condition 1: TPM mode is permitted to be used.
[0095] Condition 2: The current picture block size meets the pre-set conditions.
[0096] Condition 3: Skip mode is not used to predict the current picture block.
[0097] In a possible implementation according to the third aspect, if the available status information of the CIIP mode obtained by parsing the bitstream indicates that the CIIP mode is unavailable, then the TPM is used as the target merge mode.
[0098] In this application, when a Level 1 merge mode is unavailable, a determination may be made based on several pre-defined conditions whether to select the CIIP mode as the final merge mode, and if any one of the pre-defined conditions is not met, the CIIP mode may be directly determined as the target merge mode. This reduces the redundancy generated in the process of determining the target merge.
[0099] According to a fourth aspect, a picture prediction method is provided. The method includes the steps of determining whether a merge mode is used for the current picture block, determining whether a level 1 merge mode is available when a merge mode is used for the current picture block, and determining a target merge mode from the level 2 merge modes when a level 1 merge mode is not available. The level 2 merge modes include TPM mode and CIIP mode. When the use of CIIP mode is permitted and all of the following conditions (conditions 1 to 5) are met, the available status information for CIIP mode is obtained by parsing the bitstream, and the target merge mode is determined based on the available status information for CIIP mode.
[0100] Condition 1: TPM mode is permitted to be used.
[0101] Condition 2: The slice or slice group in which the current picture block is located is of type B.
[0102] Condition 3: The maximum number of candidate TPM modes supported by the slice or slice group in which the current picture block is located is determined to be 2 or greater.
[0103] Condition 4: The current picture block size meets the pre-set conditions.
[0104] Condition 5: Skip mode is not used to predict the current picture block.
[0105] In a possible implementation according to the fourth aspect, if the available status information of the CIIP mode obtained by parsing the bitstream indicates that the CIIP mode is unavailable, then the TPM is used as the target merge mode.
[0106] In this application, when a Level 1 merge mode is unavailable, a determination may be made based on several pre-defined conditions whether to select the CIIP mode as the final merge mode, and if any one of the pre-defined conditions is not met, the CIIP mode may be directly determined as the target merge mode. This reduces the redundancy generated in the process of determining the target merge.
[0107] A fifth aspect provides a picture prediction method. The method includes the steps of: determining whether a merge mode is used for the current picture block; if a merge mode is used for the current picture block, determining whether a level 1 merge mode is available; if a level 1 merge mode is not available and a higher-level syntax element corresponding to a first set of merge modes indicates that the use of merge modes in the first set of merge modes is prohibited, determining a target merge mode applicable to the current picture block from a second set of merge modes; and predicting the current picture block by using the target merge mode.
[0108] Both the first and second merge mode sets belong to Level 2 merge modes. In other words, Level 2 merge modes include both the first and second merge mode sets. In addition, for the current picture block, Level 1 and Level 2 merge modes already include all optional merge modes for the current picture block, and for the current picture block, the final target merge mode must be determined from Level 1 and Level 2 merge modes.
[0109] Optionally, the first merge mode set includes at least one merge mode, and the second merge mode set includes at least one merge mode.
[0110] The first and second merge mode sets are concepts introduced simply for ease of explanation and should be understood as being primarily used to distinguish between different merge modes. In the actual process of determining the final target merge mode, the first and second merge mode sets may not exist.
[0111] In this application, when the higher-level syntax elements of several merge modes indicate that the use of those merge modes is prohibited, it is not necessary to analyze the available status information of those merge modes. Instead, the final target merge mode can be determined directly from the remaining optional merge modes. This can minimize the redundancy generated by the determination of the target merge mode in the picture prediction process.
[0112] Referring to the fifth aspect, in some implementations of the fifth aspect, when a level 1 merge mode is unavailable and a higher-layer syntax element corresponding to the first merge mode set indicates that a merge mode within the first merge mode set is permitted, the target merge mode is determined based on the available status information of the higher-layer syntax element corresponding to the second merge mode set and / or the second merge mode set.
[0113] The available status information for the second merge mode set is used to indicate whether a merge mode within the second merge mode set is used when the current picture block is predicted.
[0114] For example, if the second merge mode set includes CIIP mode, the available status information for the second merge mode set may be the value of ciip_flag. When ciip_flag is 0, CIIP mode is not available for the current picture block. When ciip_flag is 1, CIIP mode is available for the current picture block.
[0115] Referring to the fifth aspect, in some implementations of the fifth aspect, the first merge mode set includes a triangulation mode TPM, and the second merge mode set includes a combination of intra and interpredictive CIIP modes.
[0116] Optionally, the first merge mode set consists of TPM mode, and the second mode set consists of CIIP mode.
[0117] When the first merge mode set and the second merge mode each contain only one merge mode, if the use of a merge mode in the first merge mode set is prohibited, the merge mode in the second merge mode set may be determined as the target merge mode, and if the use of a merge mode in the second merge mode set is prohibited, the merge in the first merge mode set may be determined as the target merge mode.
[0118] When the first merge mode set and the second merge mode set each contain only one merge mode, a merge mode in the other merge mode set can be directly determined as the final target merge mode, insofar as the use of a merge mode in one of the merge mode sets is prohibited.
[0119] Referring to the fifth aspect, in some implementations of the fifth aspect, when a level 1 merge mode is unavailable and a higher-layer syntax element corresponding to a first merge mode set indicates that the use of a merge mode in the first merge mode set is prohibited, the step of determining a target merge mode applicable to the current picture block from a second merge mode set includes the step of determining CIIP mode as the target merge mode when a level 1 merge mode is unavailable and a higher-layer syntax element corresponding to a TPM mode indicates that the use of a TPM mode is prohibited.
[0120] According to a sixth aspect, a picture prediction device is provided. The device includes a module corresponding to a method according to any one of the first to fifth aspects, the corresponding module being capable of implementing a step of the method according to any one of the first to fifth aspects.
[0121] The picture prediction device in the sixth embodiment may include one or more modules, any one of which may include one of a circuit, a field-programmable gate array FPGA, an application-specific integrated circuit (ASIC), and a general-purpose processor.
[0122] The picture prediction device in the sixth embodiment may be located within an encoder device or a decoding device.
[0123] According to a seventh aspect, a picture prediction device is provided, which includes memory and a processor. The processor invokes program code stored in memory to perform a method according to any one of the first, second, and third aspects.
[0124] The picture prediction device in the seventh embodiment may be located within a picture encoding device or a picture decoding device.
[0125] According to the eighth aspect, a picture encoding / decoding device is provided. The device includes a module corresponding to a method according to any one of the first to fifth aspects, the corresponding module being capable of implementing a step of the method according to any one of the first to fifth aspects.
[0126] According to the ninth aspect, a picture encoding / decoding device is provided, which includes memory and a processor. The processor invokes program code stored in memory to perform a method according to any one of the first to fifth aspects.
[0127] Optionally, the memory is non-volatile.
[0128] Optionally, the memory and processor are coupled together.
[0129] According to the tenth aspect, one embodiment of the present application provides a computer-readable storage medium that stores instructions, enabling one or more processors to perform a method according to any one of the first to fifth aspects.
[0130] One of the one or more processors may include one of the following: a circuit, a field-programmable gate array FPGA, an application-specific integrated circuit (ASIC), and a general-purpose processor.
[0131] According to the eleventh aspect, one embodiment of this application provides a computer program product. When the computer program product is executed on a computer, the computer is enabled to perform some or all of the steps of the method according to any one of the first to fifth aspects. [Brief explanation of the drawing]
[0132] [Figure 1] This is a schematic block diagram of an example of a video coding system for realizing one embodiment of this application. [Figure 2] This is a schematic block diagram of an example video encoder for realizing one embodiment of this application. [Figure 3] This is a schematic block diagram of an example of a video decoder for realizing one embodiment of this application. [Figure 4] This is a schematic block diagram of an example of a video coding system for realizing one embodiment of this application. [Figure 5] This is a schematic block diagram of an example of a video coding device for realizing one embodiment of this application. [Figure 6] This is a schematic block diagram of an example of an encoding or decoding device for realizing one embodiment of this application. [Figure 7] This is a schematic diagram of the current coding unit's candidate spatial and temporal movement information. [Figure 8] This is a schematic diagram of MMVD search points used to realize one embodiment of this application. [Figure 9] This is another schematic diagram of an MMVD search point used to realize one embodiment of this application. [Figure 10] This is a schematic diagram of a triangular division. [Figure 11] This is a schematic diagram of the prediction method using the triangular division method. [Figure 12] This is a schematic block diagram of a video communication system according to one embodiment of this application. [Figure 13] This is a schematic flowchart of a picture prediction method according to one embodiment of this application. [Figure 14] This is a schematic flowchart of a picture prediction method according to one embodiment of this application. [Figure 15] This is a schematic flowchart of a picture prediction method according to one embodiment of this application. [Figure 16] This is a schematic block diagram of a picture prediction device according to one embodiment of this application. [Figure 17] This is a schematic block diagram of a picture prediction device according to one embodiment of this application. [Figure 18] This is a schematic block diagram of a picture encoding / decoding device according to one embodiment of this application. [Modes for carrying out the invention]
[0133] The technical solution of this application will be described below with reference to the attached drawings.
[0134] In the following description, references are made to the accompanying drawings which form part of this application and illustrate specific embodiments of the embodiments of this application, or specific embodiments in which the embodiments of this application may be used. It should be understood that the embodiments of this application may be used further in other embodiments and may include structural or logical modifications not depicted in the accompanying drawings. Therefore, the following detailed description should not be taken as limiting, and the scope of this application should be defined by the accompanying claims.
[0135] For example, it should be understood that disclosures relating to a described method may also apply to the corresponding device or system configured to perform the method, and vice versa.
[0136] In another example, if one or more specific method steps are described, the corresponding device may include one or more units, such as functional units (for example, one unit that performs one or more steps, or multiple units, each performing one or more of the steps), to perform the described one or more method steps, even if such one or more units are not explicitly described or illustrated in the accompanying drawings.
[0137] In addition, if a particular device is described based on one or more units, such as a functional unit, the corresponding method may include one step used to perform the function of one or more units (for example, one step used to perform the function of one or more units, or multiple steps, each used to perform the function of one or more of the units) even if such one or more steps are not explicitly described or illustrated in the accompanying drawings. Furthermore, it should be understood that the features of the various exemplary embodiments and / or aspects described in this specification can be combined with one another unless otherwise noted.
[0138] The technical solutions in the embodiments of this application may be applicable to the H.266 standard and future video coding standards. The terminology used in the implementation of this application is intended solely to describe specific embodiments of this application and not to limit this application. The relevant concepts in the embodiments of this application are briefly described below.
[0139] Video coding typically refers to processing a sequence of pictures that make up a video or video sequence. In the field of video coding, the terms “picture,” “frame,” and “image” may be used synonymously. As used in this specification, video coding includes video encoding and video decoding. Video encoding is performed on the source side and typically involves processing the original video picture (e.g., by compression) to reduce the amount of data needed to represent the video picture for more efficient storage and / or transmission. Video decoding is performed on the destination side and typically involves inverse processing of the encoder to reconstruct the video picture. In embodiments, “coding” of a video picture should be understood as “encoding” or “decoding” of a video sequence. The combination of the encoding and decoding parts is also called a codec (encoding and decoding).
[0140] A video sequence contains a series of pictures, each of which is further divided into slices, and each slice into blocks. Video coding is performed in block units. In some newer video coding standards, the concept of "block" is further extended. For example, macroblocks (MB) are introduced in the H.264 standard. Macroblocks can be further divided into multiple partitions, which can be used for predictive coding. High efficiency video coding (HEVC) standards use basic concepts such as coding units (CUs), prediction units (PUs), and transform units (TUs). Multiple block units are obtained through functional partitioning and described by using a structure based on a new tree. For example, to generate a quadtree structure, a CU may be divided into smaller CUs based on a quadtree, and the smaller CUs may be further divided. A CU is the basic unit for partitioning and encoding coded pictures. PUs and TUs also have similar tree structures. A PU may correspond to a prediction block and is the basic unit for predictive coding. A CU is further divided into multiple PUs based on the splitting pattern. A TU may correspond to a transformation block and is the basic unit for transforming prediction residuals. However, essentially, all CUs, PUs, and TUs are conceptually blocks (or picture blocks).
[0141] For example, in HEVC, a CTU is divided into multiple CUs by using a quadtree structure represented as a coding tree. The decision of whether to encode a picture area using interpicture (temporal) or intrapicture (spatial) prediction is made at the CU level. Each CU can be further divided into one, two, or four PUs based on the PU partitioning pattern. Within a single PU, the same prediction process is applied, and the relevant information is sent to the decoder based on the PU. After obtaining the residual block by applying the prediction process based on the PU partitioning pattern, the CU can be partitioned into transform units (TUs) based on another quadtree structure similar to the coding tree used for the CU. In recent developments of video compression techniques, quad-tree and binary tree (QTBT) partition frames are used to partition coding blocks. In a QTBT block structure, a CU can be square or rectangular.
[0142] In this specification, for ease of explanation and understanding, the picture block to be encoded within the currently coded picture may be called the current picture block. For example, in encoding, the current picture block is the block currently being encoded, and in decoding, the current picture block is the block currently being decoded. The decoded picture block within a reference picture used to predict the current picture block is called the reference block. In other words, the reference block is a block that provides a reference signal for the current picture block, and the reference signal represents the pixel values within the picture block. The block that provides a prediction signal for the current picture block within a reference picture may also be called the prediction block, and the prediction signal represents the pixel values, sampled values, or sampled signals within the prediction block. For example, after traversing several reference blocks, the optimal reference block may be found, and the optimal reference block may provide a prediction about the current picture block, and this block may be called the prediction block.
[0143] In lossless video coding, the original video picture can be reconstructed, meaning the reconstructed video picture will have the same quality as the original video picture (assuming no transmission loss or other data loss occurs during storage or transmission). In lossy video coding, further compression is performed, for example through quantization, to reduce the amount of data required to represent the video picture, and it is not possible for the video picture to be completely reconstructed on the decoder side, meaning the quality of the reconstructed video picture will be lower or inferior to that of the original video picture.
[0144] Some H.261 video coding standards are for "lossy hybrid video codecs" (specifically, spatial and temporal predictions in the sample domain are combined with 2D transform coding to apply quantization in the transform domain). Each picture in a video sequence is typically divided into a set of non-overlapping blocks, and coding is typically performed at the block level. In other words, on the encoder side, video is typically processed, i.e., encoded, at the block (video block) level. For example, a predicted block is generated through spatial (intra-picture) and temporal (inter-picture) prediction, the predicted block is subtracted from the current picture block (the block currently being processed or to be processed) to obtain the residual block, and the residual block is transformed and quantized in the transform domain to reduce the amount of data to be transmitted (compressed). On the decoder side, the inverse processing part to the encoder is applied to the encoded or compressed block to reconstruct the current picture block for representation. Furthermore, the encoder duplicates the decoder processing loop so that the encoder and decoder generate the same predictions (e.g., intra-predictions and inter-predictions) and / or reconstructions for processing subsequent blocks, i.e., for coding.
[0145] The following describes a system architecture applicable to embodiments of the present invention. Figure 1 is a schematic block diagram of an example of a video coding and decoding system 10 applicable to embodiments of this application. As shown in Figure 1, the video coding and decoding system 10 may include a source device 12 and a destination device 14. The source device 12 generates coded video data, and therefore the source device 12 may be called a video coding device. The destination device 14 is capable of decoding the coded video data generated by the source device 12, and therefore the destination device 14 may be called a video decoding device. In various implementation solutions, the source device 12, the destination device 14, or both the source device 12 and the destination device 14 may include one or more processors and memory coupled to one or more processors. Memory may include, but is not limited to, read-only memory (ROM), random access memory (RAM), erasable programmable read-only memory (EPROM), flash memory, or any other medium that can be configured to store program code required in the form of instructions or data structures, as described in this specification, and that can be accessed by a computer. Source device 12 and destination device 14 may include a variety of devices, including desktop computers, mobile computing devices, notebook (e.g., laptop) computers, tablet computers, set-top boxes, telephone handsets such as so-called "smartphones," televisions, cameras, display devices, digital media players, video game consoles, in-vehicle computers, wireless communication devices, or similar.
[0146] Although Figure 1 depicts the source device 12 and the destination device 14 as separate devices, the device embodiment may alternatively include the functions of both the source device 12 and the destination device 14, or both, i.e., the source device 12 or its corresponding function and the destination device 14 or its corresponding function. In such embodiments, the source device 12 or its corresponding function and the destination device 14 or its corresponding function may be implemented using the same hardware and / or software, separate hardware and / or software, or any combination thereof.
[0147] A communication connection between source device 12 and destination device 14 may be established through link 13. Destination device 14 may receive encoded video data from source device 12 through link 13. Link 13 may include one or more media or devices that can move the encoded video data from source device 12 to destination device 14. In one example, link 13 may include one or more communication media that enable source device 12 to directly transmit encoded video data to destination device 14 in real time. In this example, source device 12 may modulate the encoded video data according to a communication standard (e.g., a wireless communication protocol) and transmit the modulated video data to destination device 14. One or more communication media may include wireless and / or wired communication media, such as a radio frequency (RF) spectrum, or one or more physical transmission cables. One or more communication media may be part of a packet-based network, such as a local area network, a wide area network, or a global network (e.g., the Internet). One or more communication media may include a router, switch, base station, or another device that facilitates communication from source device 12 to destination device 14.
[0148] The source device 12 includes an encoder 20. Optionally, the source device 12 may further include a picture source 16, a picture preprocessor 18, and a communication interface 22. In specific implementations, the encoder 20, picture source 16, picture preprocessor 18, and communication interface 22 may be hardware components within the source device 12, or software programs within the source device 12. A description is provided separately below.
[0149] The picture source 16 includes, for example, any type of picture capture device configured to capture a real-world picture, and / or any type of device for generating a picture or comment (for encoding screen content, some text on the screen can also be considered as part of the picture or image to be encoded), such as a computer graphics processor configured to generate a computer-animated picture, or any type of device configured to acquire and / or provide a real-world picture or a computer-animated picture (e.g., screen content or a virtual reality (VR) picture), and / or any combination thereof (e.g., an augmented reality (AR) picture). The picture source 16 may be a camera configured to capture a picture, or a memory configured to store a picture. The picture source 16 may further include any type of (internal or external) interface through which previously captured or generated pictures are stored, and / or through which pictures are acquired or received. When the picture source 16 is a camera, the picture source 16 may be, for example, a local camera, or an integrated camera integrated into the source device. When picture source 16 is memory, picture source 16 may be local memory or, for example, integrated memory integrated into the source device. When picture source 16 includes an interface, the interface may be, for example, an external interface for receiving pictures from an external video source. The external video source may be, for example, a camera, external memory, or an external picture capture device such as an external picture generation device. The external picture generation device may be, for example, an external computer graphics processor, a computer, or a server. The interface may be any type of interface that follows any proprietary or standardized interface protocol, for example, a wired or wireless interface, or an optical interface.
[0150] A picture can be thought of as a two-dimensional array or matrix of pixel elements. Pixel elements within an array can also be called samples. The number of samples in the horizontal and vertical directions (or axes) of an array or picture defines the size and / or resolution of the picture. Three color components are typically used to represent color. Specifically, a picture can be represented as, or contain, three sample arrays. For example, in the RGB format or color space, a picture contains corresponding red, green, and blue sample arrays. However, in video coding, each pixel is typically represented in a luminance / chromaticity format or color space. For example, a picture in the YUV format contains a luminance component represented by Y (sometimes alternatively represented by L) and two chromaticity components represented by U and V. The luminance (luma) component Y represents brightness or gray level intensity (for example, in a grayscale picture, both are the same), and the two chromaticity (chroma) components U and V represent chromaticity or color information components. Correspondingly, a picture in the YUV format includes a luminance sample array of luminance sample values (Y) and two chromaticity sample arrays of chromaticity values (U and V). A picture in the RGB format may be converted to or from the YUV format, and vice versa. This process is also called color conversion or transformation. If the picture is monochrome, the picture may include only the luminance sample array. In this embodiment of this application, the picture transmitted to the picture processor by the picture source 16 may also be called raw picture data.
[0151] The picture preprocessor 18 is configured to receive raw picture data 17 and perform preprocessing on the raw picture data 17 in order to obtain a preprocessed picture 19 or preprocessed picture data 19. For example, the preprocessing performed by the picture preprocessor 18 may include cropping, color format conversion (e.g., from RGB format to YUV format), color correction, or denoising.
[0152] The encoder 20 (also called the video encoder 20) is configured to process the preprocessed picture data 19 by using an associated prediction mode (such as the prediction mode in each embodiment of this specification) to receive the preprocessed picture data 19 and provide encoded picture data 21 (structural details of the encoder 20 are described further below with reference to Figures 2, 4, or 5). In some embodiments, the encoder 20 may be configured to perform each of the embodiments described below to implement an encoder-side application of the picture prediction method described in this specification.
[0153] The communication interface 22 may be configured to receive the encoded picture data 21 and transmit the encoded picture data 21 to the destination device 14 or any other device (e.g., memory) via link 13 for storage or direct reconstruction. The other device may be any device used for decoding or storage. The communication interface 22 may be configured, for example, to encapsulate the encoded picture data 21 in a format suitable for transmission over link 13, such as a data packet.
[0154] The destination device 14 includes a decoder 30. Optionally, the destination device 14 may further include a communication interface 28, a picture postprocessor 32, and a display device 34. A description of these is provided separately below.
[0155] The communication interface 28 may be configured to receive encoded picture data 21 from source device 12 or any other source. Any other source is, for example, a storage device. The storage device is, for example, an encoded picture data storage device. The communication interface 28 may be configured to transmit or receive encoded picture data 21 through link 13 between source device 12 and destination device 14, or through any type of network. Link 13 is, for example, a direct wired or wireless connection. Any type of network is, for example, a wired or wireless network, or any combination thereof, or any type of private or public network, or any combination thereof. The communication interface 28 may be configured, for example, to decapsulate data packets transmitted through communication interface 22 in order to obtain encoded picture data 21.
[0156] Both communication interface 28 and communication interface 22 may be configured as unidirectional or bidirectional communication interfaces, for example, to send and receive messages to establish a connection, and to confirm and exchange any other information relating to data transmission, such as communication links and / or encoded picture data transmission.
[0157] The decoder 30 (also referred to as decoder 30) is configured to receive encoded picture data 21 and provide decoded picture data 31 or decoded picture 31 (structural details of decoder 30 are further described below with reference to Figures 3, 4, or 5). In some embodiments, decoder 30 may be configured to perform each of the embodiments described below in order to implement a decoder-side application of the picture prediction method described in this application.
[0158] The picture post-processor 32 is configured to post-process the decoded picture data 31 (also called reconstructed picture data) in order to obtain the post-processed picture data 33. The post-processing performed by the picture post-processor 32 may include color format conversion (e.g., from YUV format to RGB format), color correction, cropping, resampling, or any other processing. The picture post-processor 32 may be further configured to send the post-processed picture data 33 to the display device 34.
[0159] The display device 34 is configured to receive post-processed picture data 33 for, for example, displaying a picture to a user or viewer. The display device 34 may be or include any type of display for presenting the reconstructed picture, such as an integrated or external display or monitor. For example, the display may include a liquid crystal display (LCD), an organic light-emitting diode (OLED) display, a plasma display, a projector, a microLED display, a liquid crystal on silicon (LCoS), a digital light processor (DLP), or any other type of display.
[0160] Although Figure 1 depicts the source device 12 and the destination device 14 as separate devices, the device embodiment may alternatively include the functions of both the source device 12 and the destination device 14, or both, i.e., the source device 12 or its corresponding function and the destination device 14 or its corresponding function. In such embodiments, the source device 12 or its corresponding function and the destination device 14 or its corresponding function may be implemented using the same hardware and / or software, separate hardware and / or software, or any combination thereof.
[0161] As will be apparent to those skilled in the art based on the description, the functions of the different units shown in Figure 1, or the presence and (exact) division of the functions of source device 12 and / or destination device 14, may vary depending on the actual device and application. Source device 12 and destination device 14 may include any type of handheld or stationary device, such as a wide range of devices including a notebook or laptop computer, a mobile phone, a smartphone, a tablet or tablet computer, a video camera, a desktop computer, a set-top box, a television, a camera, an in-car device, a display device, a digital media player, a video game console, a video streaming device (such as a content service server or content distribution server), a broadcast receiver device, or a broadcast transmitter device, and may or may not use any type of operating system.
[0162] The encoder 20 and decoder 30 can each be implemented as one or more suitable circuits, such as one or more microprocessors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), separate logic, hardware, or any combination thereof. If the technology is partially implemented by using software, the device may store software instructions in a suitable non-temporary computer-readable storage medium and execute the instructions by using hardware such as one or more processors to perform the technology of this specification. Any of the foregoing (including hardware, software, combinations of hardware and software, and similar) can be considered as one or more processors.
[0163] In some cases, the video encoding and decoding system 10 shown in Figure 1 is merely an example, and the technology of this application may be applicable to video encoding configurations (e.g., video encoding or video decoding) that do not necessarily involve any data communication between the encoding device and the decoding device. In another example, the data may be retrieved from local memory, streamed over a network, or similarly. The video encoding device may encode the data and store the data in memory, and / or the video decoding device may retrieve the data from memory and decode the data. In some examples, encoding and decoding are performed by devices that do not communicate with each other but simply encode the data into memory and / or retrieve the data from memory and decode the data.
[0164] Figure 2 is a schematic / conceptual block diagram of an example encoder 20 configured to realize one embodiment of the present invention. In the example of Figure 2, the encoder 20 includes a residual calculation unit 204, a transformation processing unit 206, a quantization unit 208, an inverse quantization unit 210, an inverse transformation processing unit 212, a reconstruction unit 214, a buffer 216, a loop filter unit 220, a decoded picture buffer (DPB) 230, a prediction processing unit 260, and an entropy coding unit 270. The prediction processing unit 260 may include an inter-prediction unit 244, an intra-prediction unit 254, and a mode selection unit 262. The inter-prediction unit 244 may include a motion estimation unit and a motion compensation unit (not shown in the figure). The encoder 20 shown in Figure 2 may also be called a hybrid video encoder or a video encoder based on a hybrid video codec.
[0165] For example, the residual calculation unit 204, the transformation processing unit 206, the quantization unit 208, the prediction processing unit 260, and the entropy coding unit 270 form the forward signal path of the encoder 20, while, for example, the inverse quantization unit 210, the inverse transformation processing unit 212, the reconstruction unit 214, the buffer 216, the loop filter 220, the decoded picture buffer (DPB) 230, and the prediction processing unit 260 form the reverse signal path of the encoder. The reverse signal path of the encoder corresponds to the signal path of the decoder (see decoder 30 in Figure 3).
[0166] The encoder 20 receives, for example, a picture 201 or a picture block 203 of picture 201, for example, a picture in a sequence of pictures that form a video or video sequence, via input 202. Picture block 203 may also be called the current picture block or the picture block to be encoded, and picture 201 may be called the current picture or the picture to be encoded (particularly in video coding to distinguish the current picture from other pictures, for example, previously encoded and / or decoded pictures in the same video sequence, i.e., the video sequence that also contains the current picture).
[0167] One embodiment of the encoder 20 may include a partitioning unit (not shown in Figure 2) configured to divide a picture 201 into multiple blocks, such as picture blocks 203. The picture 201 is typically divided into multiple non-overlapping blocks. The partitioning unit may use the same block size and corresponding grid defining the block size for all pictures in the video sequence, or it may be configured to change the block size between pictures, or between subsets or groups of pictures, dividing each picture into a corresponding block.
[0168] In one example, the predictive processing unit 260 of the encoder 20 may be configured to perform any combination of the segmentation techniques described above.
[0169] The size of picture block 203 is smaller than the size of picture 201, but like picture 210, picture block 203 is, or can be thought of as, a two-dimensional array or matrix of samples having sample values. In other words, picture block 203 may contain, for example, one sample array (e.g., a lumen array in the case of monochrome picture 201), three sample arrays (e.g., one lumen array and two chromen arrays in the case of a color picture), or any other quantity and / or type of array depending on the applied color format. The number of samples in the horizontal and vertical directions (or axes) of picture block 203 defines the size of picture block 203.
[0170] The encoder 20 shown in Figure 2 is configured to encode the picture 201 block by block, and to perform encoding and prediction for each picture block 203, for example.
[0171] The residual calculation unit 204 is configured to calculate the residual block 205 based on the picture image block 203 and the prediction block 265 (further details regarding the prediction block 265 are provided below), for example by subtracting the sample value of the prediction block 265 from the sample value of the picture image block 203 for each sample (for each pixel) to obtain the residual block 205 in the sample region.
[0172] The transformation processing unit 206 is configured to apply a transformation, such as a discrete cosine transform (DCT) or a discrete sine transform (DST), to the sample values of the residual block 205 in order to obtain transformation coefficients 207 in the transformation domain. The transformation coefficients 207 may also be called transformation residual coefficients and represent the residual block 205 in the transformation domain.
[0173] The conversion processing unit 206 may be configured to apply integer approximations of DCT / DST conversions, such as those specified in HEVC / H.265. Compared to orthogonal DCT conversions, such integer approximations are typically scaled by coefficients. Additional scaling coefficients are applied as part of the conversion process to maintain the norm of the residual blocks processed by using forward and inverse conversions. The scaling coefficients are typically selected based on several constraints, such as the scaling coefficient being a power of 2 for shift operations, the bit depth of the conversion coefficients, and the trade-off between precision and implementation cost. For example, a particular scaling coefficient may be specified for the inverse conversion by the inverse conversion processing unit 212 on the decoder 30 side (and, for example, the corresponding inverse conversion by the inverse conversion processing unit 212 on the encoder 20 side), and correspondingly, a corresponding scaling coefficient may be specified for the forward conversion by the conversion processing unit 206 on the encoder 20 side.
[0174] The quantization unit 208 is configured to quantize the transformation coefficients 207 to obtain quantized transformation coefficients 209, for example, by applying scalar quantization or vector quantization. The quantized transformation coefficients 209 may also be called quantized residual coefficients 209. The quantization process may reduce the bit depth associated with some or all of the transformation coefficients 207. For example, an n-bit transformation coefficient may be truncated to an m-bit transformation coefficient during quantization, where n is greater than m. The degree of quantization can be modified by adjusting the quantization parameter (QP). For example, for scalar quantization, various scales may be applied to achieve finer or coarser quantization. Smaller quantization steps correspond to finer quantization, and larger quantization steps correspond to coarser quantization. The appropriate quantization step may be indicated by the quantization parameter (QP). For example, the quantization parameter may be an index to a predefined set of appropriate quantization steps. For example, smaller quantization parameters may correspond to finer quantization (smaller quantization steps), larger quantization parameters may correspond to coarser quantization (larger quantization steps), and vice versa. Quantization may include, for example, division by the quantization step and the corresponding quantization or inverse quantization, performed by the inverse quantization unit 210, or multiplication by the quantization step. Embodiments conforming to several standards, such as HEVC, may use quantization parameters to determine the quantization step. Generally, the quantization step can be calculated based on the quantization parameter by using a fixed-point approximation of the equation involving division. Additional scaling factors may be introduced for quantization and dequantization to restore the norm of the residual block, and the norm of the residual block may be modified for the scale used in the fixed-point approximation of the equation with respect to the quantization step and quantization parameter. In one example implementation, the scale of the inverse transform may be combined with the scale of the dequantization.Alternatively, a customized quantization table can be used and signaled, for example, from the encoder to the decoder in a bitstream. Quantization is a lossy operation, and larger quantization steps result in greater loss.
[0175] The inverse quantization unit 210 is configured to apply the inverse quantization of the quantization unit 208 to the quantized coefficients in order to obtain the dequantized coefficients 211, by applying the inverse of the quantization scheme applied by the quantization unit 208, for example, by basing it on or using the same quantization steps as the quantization unit 208. The dequantized coefficients 211, also called the dequantized residual coefficients 211, are usually different from the transformation coefficients due to losses caused by quantization, but may correspond to the transformation coefficients 207.
[0176] The inverse transform processing unit 212 is configured to apply the inverse transform of the transform applied by the transform processing unit 206, for example, the inverse discrete cosine transform (DCT) or the inverse discrete sine transform (DST), in order to obtain the inverse transform block 213 in the sample region. The inverse transform block 213 may also be called the inverse transform dequantized block 213 or the inverse transform residual block 213.
[0177] The reconstruction unit 214 (for example, the adder 214) is configured to add the inverse transformed block 213 (i.e., the reconstructed residual block 213) to the predicted block 265, for example, by adding the sample values of the reconstructed residual block 213 to the sample values of the predicted block 265, in order to obtain the reconstructed block 215 in the sample region.
[0178] Optionally, for example, the buffer unit 216 of the line buffer 216 (abbreviated as "buffer" 216) is configured to buffer or store, for example, the reconstructed block 215 and its corresponding sample values for intra-prediction. In another embodiment, the encoder may be configured to use the unfiltered reconstructed block and / or corresponding sample values stored in the buffer unit 216 to perform any type of estimation and / or prediction, for example, intra-prediction.
[0179] For example, in one embodiment, the encoder 20 may be configured such that a buffer unit 216 stores a reconstructed block 215 that is used not only for the intra-prediction 254 but also for a loop filter unit 220 (not shown in Figure 2), and / or, for example, the buffer unit 216 and the decoded picture buffer 230 form a single buffer. In another embodiment, a block or sample (not shown in Figure 2) from the filtered block 211 and / or the decoded picture buffer 230 is used as input or basis for the intra-prediction 254.
[0180] The loop filter unit 220 (abbreviated as "loop filter" 220) is configured to filter the reconstructed block 215 to obtain a filtered block 221 in order to smooth pixel transitions or improve video quality. The loop filter unit 220 is intended to represent one or more loop filters, such as a deblocking filter, a sample-adaptive offset (SAO) filter, or another filter, such as a bilateral filter, an adaptive loop filter (ALF), a sharpening or smoothing filter, or a co-filter. The loop filter unit 200 is represented as an in-loop filter in Figure 2, but in another implementation, the loop filter unit 200 may be implemented as a post-loop filter. The filtered block 221 may also be called a filtered reconstructed block 221. The decoded picture buffer 230 may store the reconstructed encoded block after the loop filter unit 220 has performed a filtering operation on the reconstructed encoded block.
[0181] In one embodiment, the encoder 20 (correspondingly the loop filter unit 220) may be configured to output loop filter parameters (e.g., sample adaptive offset information) either directly or after entropy coding performed by the entropy coding unit 270 or any other entropy coding unit, so that the decoder 30 can receive and apply the same loop filter parameters for decoding.
[0182] The decoded picture buffer (DPB) 230 may be a reference picture memory that stores reference picture data for use in video data encoding by the encoder 20. The DPB 230 may be formed by one of several types of memory devices, such as dynamic random access memory (DRAM) (including synchronous DRAM (SDRAM), magnetoresistive RAM (MRAM), and resistive RAM (RRAM)), or other types of memory devices. The DPB 230 and buffer 216 may be provided by the same memory device or separate memory devices. In one example, the decoded picture buffer (DPB) 230 is configured to store filtered blocks 221. The decoded picture buffer 230 may be further configured to store the same current picture, or a different picture, for example, other previously filtered blocks of a previously reconstructed picture, for example, a previously reconstructed and filtered block 221, for example, to provide a fully previously reconstructed, i.e., decoded picture (and corresponding reference blocks and samples) and / or a partially reconstructed current picture (and corresponding reference blocks and samples) for interpretation. In one example, if the reconstructed block 215 is reconstructed without intra-loop filtering, the decoded picture buffer (DPB) 230 is configured to store the reconstructed block 215.
[0183] The prediction processing unit 260, also called the block prediction processing unit 260, receives or acquires picture block 203 (the current picture block 203 of the current picture 201) and reconstructed picture data, for example, reference samples of the same (current) picture from buffer 216, and / or reference picture data 231 of one or more previously decoded pictures from the decoded picture buffer 230, and is configured to process such data for prediction in order to provide a prediction block 265, which may be an inter-prediction block 245 or an intra-prediction block 255.
[0184] The mode selection unit 262 may be configured to select a prediction mode (e.g., intra or inter-prediction mode) and / or a corresponding prediction block 245 or 255 to be used as the prediction block 265 for the calculation of the residual block 205 and for the reconstruction of the reconstructed block 215.
[0185] In one embodiment, the mode selection unit 262 may be configured to select a prediction mode (for example, from prediction modes supported by the prediction processing unit 260) that provides a best match, or in other words, provides the smallest residual (smallest residual means better compression for transmission or storage) or the smallest signaling overhead (smallest signaling overhead means better compression for transmission or storage), or considers or balances both. The mode selection unit 262 may be configured to determine the prediction mode based on rate distortion optimization (RDO), specifically, to select a prediction mode that provides the smallest rate distortion optimization or to select a prediction mode in which the associated rate distortion satisfies at least the prediction mode selection criteria.
[0186] The following describes in detail, using encoder 20 as an example, the prediction processing performed (for example, by the prediction processing unit 260) and the mode selection performed (for example, by the mode selection unit 262).
[0187] As described above, the encoder 20 is configured to determine or select the optimal or best prediction mode from a set of (predetermined) prediction modes. The set of prediction modes may include, for example, an intra-prediction mode and / or an inter-prediction mode.
[0188] The set of intra-predictive modes may include 35 different intra-predictive modes, such as omnidirectional modes including DC (or average) mode and planar mode, or directional modes such as those defined in H.265, or it may include 67 different intra-predictive modes, such as omnidirectional modes including DC (or average) mode and planar mode, or directional modes such as those defined in H.266 under development.
[0189] In possible implementations, the set of interprediction modes depends on the available reference picture (i.e., a picture stored in DBP230 that is at least partially decoded, as described above) and other interprediction parameters, for example, whether the entire reference picture is used to search for the best-matching reference block, or only a portion of the reference picture, for example, a search window area around the area of the current picture block, and / or whether pixel interpolation, such as half-pel and / or quarter-pel interpolation, is applied. The set of interprediction modes may include, for example, an Advanced Motion Vector Prediction (AMVP) mode and a merge mode. In a specific implementation, the set of interprediction modes may include, in embodiments of this application, an AMVP mode based on improved control points and a merge mode based on improved control points. In one example, the intraprediction unit 254 may be configured to perform any combination of the interprediction techniques described below.
[0190] In addition to the prediction mode described above, a skip mode and / or a direct mode may also be applied in embodiments of this application.
[0191] The prediction processing unit 260 may be further configured to divide the picture block 203 into smaller block divisions or subblocks by repeatedly using, for example, quad-tree (QT) divisions, binary-tree (BT) divisions, triple-tree (TT) divisions, or any combination thereof, and to perform predictions for each of the block divisions or subblocks. Mode selection includes selecting the tree structure of the divided picture block 203 and selecting a prediction mode to be applied to each of the block divisions or subblocks.
[0192] The interpretation unit 244 may include a motion estimation (ME) unit (not shown in Figure 2) and a motion compensation (MC) unit (not shown in Figure 2). The motion estimation unit is configured to receive or acquire, for motion estimation, a picture image block 203 (the current picture image block 203 of the current picture 201) and a decoded picture 231, or at least one or more previously reconstructed blocks, for example, one or more reconstructed blocks of other / different previously decoded pictures 231. For example, a video sequence may include the current picture and a previously decoded picture 31, or in other words, the current picture and the previously decoded picture 31 may be part of a sequence of pictures that make up the video sequence, or may make up such a sequence.
[0193] For example, encoder 20 may be configured to select a reference block from multiple reference blocks of the same picture or different pictures of multiple other pictures, and to provide an offset (spatial offset) between the position (X, Y coordinates) of the reference picture and / or reference block and the position of the current picture block as an interpretation parameter to a motion estimation unit (not shown in Figure 2). The offset is also called a motion vector (MV).
[0194] The motion compensation unit is configured to obtain inter-prediction parameters and perform inter-prediction based on or using the inter-prediction parameters to obtain inter-prediction blocks 245. Motion compensation performed by the motion compensation unit (not shown in Figure 2) may include fetching or generating (and possibly performing interpolation with sub-pixel precision) predicted blocks based on the motion / block vectors determined through motion compensation. Interpolation filtering may generate additional pixel samples from known pixel samples, thereby potentially increasing the number of candidate predicted blocks that can be used to code picture blocks. Upon receiving a motion vector for the current picture block's PU, the motion compensation unit 246 may locate the predicted block pointed to by the motion vector in one of the reference picture lists. The motion compensation unit 246 may also generate syntax elements associated with blocks and video slices so that the decoder 30 can use the syntax elements to decode picture blocks in video slices.
[0195] Specifically, the interprediction unit 244 may transmit a syntax element to the entropy coding unit 270. The syntax element includes interprediction parameters (such as indicator information for selecting the interprediction mode to be used for predicting the current picture block after traversing multiple interprediction modes). In possible application scenarios, if only one interprediction mode exists, the interprediction parameters do not necessarily have to be held within the syntax element. In this case, the decoder side 30 may perform decoding directly by using the default prediction mode. It can be understood that the interprediction unit 244 may be configured to perform any combination of interprediction techniques.
[0196] The intra-prediction unit 254 is configured to receive, for intra-prediction, the picture block 203 (the current picture block) and one or more previously reconstructed blocks of the same picture, for example, reconstructed adjacent blocks. The encoder 20 may be configured to select an intra-prediction mode from, for example, a plurality of (predetermined) intra-prediction modes.
[0197] In one embodiment, the encoder 20 is configured to select an intra-prediction mode according to an optimization criterion, for example, based on minimum residual (e.g., an intra-prediction mode that provides a prediction block 255 most similar to the current picture block 203) or minimum rate distortion.
[0198] The intra-prediction unit 254 is further configured to determine an intra-prediction block 255 based, for example, on intra-prediction parameters in a selected intra-prediction mode. In any case, after selecting an intra-prediction mode for a block, the intra-prediction unit 254 is further configured to provide the entropy coding unit 270 with intra-prediction parameters, i.e., information indicating the intra-prediction mode selected for the block. In one example, the intra-prediction unit 254 may be configured to perform any combination of intra-prediction techniques.
[0199] Specifically, the intra-prediction unit 254 may transmit a syntax element to the entropy coding unit 270. The syntax element includes intra-prediction parameters (such as indicator information for selecting the intra-prediction mode to be used for predicting the current picture block after traversing multiple intra-prediction modes). In possible application scenarios where only one intra-prediction mode exists, the intra-prediction parameters do not necessarily have to be held within the syntax element. In this case, the decoder 30 may perform decoding directly by using the default prediction mode.
[0200] The entropy coding unit 270 is configured to apply (or not apply) an entropy coding algorithm or scheme (e.g., variable length coding, VLC, context adaptive VLC (CAVLC), arithmetic coding, context adaptive binary arithmetic coding (CABAC), syntax-based context-adaptive binary arithmetic coding (SBAC), probability interval partitioning entropy (PIPE) coding, or another entropy coding methodology or technique) to one or all of the quantized residual coefficients 209, inter-prediction parameters, intra-prediction parameters, and / or loop filter parameters in order to obtain encoded picture data 21 which can be output via output 272 in the form of an encoded bitstream 21. The encoded bitstream can be transmitted to the video decoder 30 or archived by the video decoder 30 for later transmission or retrieval. The entropy coding unit 270 may be further configured to entropy code another syntax element for the current video slice being coded.
[0201] Another structural variation of the video encoder 20 can be used to encode a video stream. For example, a non-conversion based encoder 20 may directly quantize the residual signal for some blocks or frames without a conversion processing unit 206. In another implementation, the encoder 20 may have a quantization unit 208 and an inverse quantization unit 210 combined into a single unit.
[0202] Specifically, in this embodiment of this application, the encoder 20 may be configured to implement the video encoding process described in the following embodiments.
[0203] It should be understood that the video encoder in this application may include only a few modules within the video encoder 20. For example, the video encoder in this application may include a picture decoding unit and a segmentation unit. The picture decoding unit may include one or more of the entropy decoding unit, prediction unit, inverse transform unit, and inverse quantization unit.
[0204] In addition, other structural variations of the video encoder 20 can be used to encode the video stream. For example, for some picture blocks or picture frames, the video encoder 20 may directly quantize the residual signal, eliminating the need for processing by the conversion unit 206 and, correspondingly, the need for processing by the inverse conversion unit 212. Alternatively, for some picture blocks or picture frames, the video encoder 20 may not generate residual data, eliminating the need for processing by the conversion unit 206, the quantization unit 208, the inverse quantization unit 210, and the inverse conversion unit 212. Alternatively, the video encoder 20 may directly store the reconstructed picture blocks as reference blocks, eliminating the need for processing by the filter 220. Alternatively, the quantization unit 208 and the inverse quantization unit 210 in the video encoder 20 may be combined. The loop filter 220 is optional. In addition, for lossless compression coding, the transformation unit 206, quantization unit 208, inverse quantization unit 210, and inverse transformation unit 212 are optional. It should be understood that the inter-prediction unit 244 and intra-prediction unit 254 may be used selectively in different application scenarios.
[0205] Figure 3 is a schematic / conceptual block diagram of an example of a decoder 30 configured to realize one embodiment of the present invention. The video decoder 30 is configured to receive encoded picture data (e.g., encoded bitstream) 21, encoded by, for example, the encoder 20, in order to obtain a decoded picture 231. In the decoding process, the video decoder 30 receives from the video encoder 20 video data, for example, an encoded video bitstream representing picture blocks and associated syntax elements of an encoded video slice.
[0206] In the example in Figure 3, the decoder 30 includes an entropy decoding unit 304, an inverse quantization unit 310, an inverse transform processing unit 312, a reconstruction unit 314 (e.g., an adder 314), a buffer 316, a loop filter 320, a decoded picture buffer 330, and a prediction processing unit 360. The prediction processing unit 360 may include an inter-prediction unit 344, an intra-prediction unit 354, and a mode selection unit 362. In some examples, the video decoder 30 may perform a decoding process that is generally contrary to the encoding process described with reference to the video encoder 20 in Figure 2.
[0207] The entropy decoding unit 304 is configured to perform entropy decoding on the encoded picture data 21 to obtain, for example, quantized coefficients 309 and / or decoded encoding parameters (not shown in Figure 3), such as any one or all of the (decoded) inter-prediction parameters, intra-prediction parameters, loop filter parameters, and / or other syntax elements. The entropy decoding unit 304 is further configured to transfer the inter-prediction parameters, intra-prediction parameters, and / or other syntax elements to the prediction processing unit 360. The video decoder 30 may receive the syntax elements at the video slice level and / or video block level.
[0208] The inverse quantization unit 310 may have the same function as the inverse quantization unit 110. The inverse transformation processing unit 312 may have the same function as the inverse transformation processing unit 212. The reconstruction unit 314 may have the same function as the reconstruction unit 214. The buffer 316 may have the same function as the buffer 216. The loop filter 320 may have the same function as the loop filter 220. The decoded picture buffer 330 may have the same function as the decoded picture buffer 230.
[0209] The prediction processing unit 360 may include an inter-prediction unit 344 and an intra-prediction unit 354. The inter-prediction unit 344 may be functionally similar to the inter-prediction unit 244, and the intra-prediction unit 354 may be functionally similar to the intra-prediction unit 254. The prediction processing unit 360 is typically configured to perform block prediction and / or retrieve prediction blocks 365 from encoded data 21, and to receive or retrieve (explicitly or implicitly) information regarding prediction-related parameters and / or selected prediction modes from, for example, the entropy decoding unit 304.
[0210] When a video slice is encoded into an intra-encoded (I) slice, the intra-prediction unit 354 of the prediction processing unit 360 is configured to generate a prediction block 365 for the picture block of the current video slice based on the signaled intra-prediction mode and the data of a previously decoded block of the current frame or picture. When a video frame is encoded into an inter-encoded (i.e., B or P) slice, the inter-prediction unit 344 (e.g., a motion compensation unit) in the prediction processing unit 360 is configured to generate a prediction block 365 for the video block in the current video slice based on a motion vector and another syntax element received from the entropy decoding unit 304. For inter-prediction, the prediction block may be generated from one of the reference pictures in a single reference picture list. The video decoder 30 may construct the reference frame list, list 0 and list 1 based on the reference pictures stored in the DPB 330 by using default construction techniques.
[0211] The prediction processing unit 360 is configured to determine prediction information for video blocks in the current video slice by analyzing motion vectors and other syntax elements, and to use the prediction information to generate prediction blocks for the current video block being decoded. In one example of this application, the prediction processing unit 360 determines, by using several received syntax elements to decode video blocks in the current video slice, the prediction mode for encoding video blocks in the video slice (e.g., intra or interpredict), the interpredict slice type (e.g., B slice, P slice, or GPB slice), one or more construction pieces of reference picture list for the slice, the motion vector for each intercoded video block for the slice, the interpredict status for each intercoded video block in the slice, and other information. In another example of this application, the syntax elements received by the video decoder 30 from the bitstream include syntax elements in one or more of the following: adaptive parameter set (APS), sequence parameter set (SPS), picture parameter set (PPS), or slice header.
[0212] The inverse quantization unit 310 may be configured to perform inverse quantization (i.e., dequantization) on quantized transformation coefficients provided in the bitstream and decoded by the entropy decoding unit 304. The inverse quantization process may include using quantization parameters calculated by the video encoder 20 for each video block in the video slice to determine the degree of quantization to be applied and, similarly, the degree of inverse quantization to be applied.
[0213] The inverse transformation processing unit 312 is configured to apply an inverse transformation (e.g., inverse DCT, inverse integer transformation, or a conceptually similar inverse transformation process) to the transformation coefficients in order to generate residual blocks in the pixel region.
[0214] The reconstruction unit 314 (for example, the adder 314) is configured to add the inverse transformed block 313 (i.e., the reconstructed residual block 313) to the predicted block 365, for example, by adding the sample values of the reconstructed residual block 313 to the sample values of the predicted block 365, in order to obtain the reconstructed block 315 in the sample region.
[0215] The loop filter unit 320 (either within or after the coding loop) is configured to filter the reconstructed block 315 to obtain a filtered block 321 in order to smooth pixel transitions or improve video quality. In one example, the loop filter unit 320 may be configured to perform any combination of the filtering techniques described below. The loop filter unit 320 is intended to represent one or more loop filters, such as a deblocking filter, a sample-adaptive offset (SAO) filter, or another filter, such as a bilateral filter, an adaptive loop filter (ALF), a sharpening or smoothing filter, or a co-filter. Although the loop filter unit 320 is represented as an in-loop filter in Figure 3, in another implementation, the loop filter unit 320 may be implemented as a post-loop filter.
[0216] Next, the decoded video block 321 within a given frame or picture is stored in a decoded picture buffer 330 that stores a reference picture to be used for subsequent motion compensation.
[0217] The decoder 30 is configured to output a decoded picture 31 via output 332, for example, to be presented to or viewed by the user.
[0218] Another variation of the video decoder 30 may be used to decode a compressed bitstream. For example, the decoder 30 may generate an output video stream without the loop filter unit 320. For example, a non-transformation based decoder 30 may directly dequantize the residual signal for some blocks or frames without the inverse transformation processing unit 312. In another implementation, the video decoder 30 may have an inverse quantization unit 310 and an inverse transformation processing unit 312 combined into a single unit.
[0219] Specifically, in this embodiment of this application, the decoder 30 is configured to implement the video decoding method described in the following embodiments.
[0220] It should be understood that the video encoder in this application may include only a few modules within the video encoder 30. For example, the video encoder in this application may include a segmentation unit and a picture coding unit. The picture coding unit may include one or more of a prediction unit, a transformation unit, a quantization unit, and an entropy coding unit.
[0221] In addition, other structural variations of the video decoder 30 can be used to decode the encoded video bitstream. For example, the video decoder 30 may generate an output video stream without processing by the filter 320. Alternatively, for some picture blocks or picture frames, the entropy decoding unit 304 of the video decoder 30 does not obtain quantized coefficients through decoding, and correspondingly, the inverse quantization unit 310 and the inverse transformation processing unit 312 do not need to perform processing. The loop filter 320 is optional. In addition, for lossless compression, the inverse quantization unit 310 and the inverse transformation processing unit 312 are also optional. It should be understood that in different application scenarios, the inter-prediction unit and the intra-prediction unit may be used selectively.
[0222] In the encoder 20 and decoder 30 of this application, it should be understood that the processing result for a procedure may be further processed and then output for the next procedure. For example, after a procedure such as interpolation filtering, motion vector derivation, or loop filtering, further operations such as clipping or shifting may be performed on the processing result of the corresponding procedure.
[0223] For example, motion vectors derived from the motion vectors of adjacent affine coding blocks (coding blocks predicted by using an affine motion model may be called affine coding blocks), or motion vectors derived from the motion vectors of adjacent affine coding blocks, may be further processed. This is not limited in this application. For example, the values of motion vectors are constrained to be within a certain bit width range. The allowable bit width of a motion vector is bitDepth, and the values of motion vectors are assumed to be in the range of -2^(bitDepth-1) to 2^(bitDepth-1)-1, where the symbol "^" represents exponentiation. If bitDepth is 16, the values are in the range of -32768 to 32767. If bitDepth is 18, the values are in the range of -131072 to 131071.
[0224] In another example, the values of the motion vectors (for example, the motion vectors MV of four 4x4 subblocks within one 8x8 picture block) can be further constrained so that the maximum difference between the integer parts of the MVs of the four 4x4 subblocks does not exceed N pixels (for example, N can be set to 1).
[0225] Figure 4 is an exemplary diagram of an example of a video coding system 40, including the encoder 20 in Figure 2 and / or the decoder 30 in Figure 3, according to one exemplary embodiment. The video coding system 40 can implement various combinations of technologies in embodiments of this application. In the example implementation, the video coding system 40 may include an imaging device 41, an encoder 20, a decoder 30 (and / or a video encoder / decoder implemented by the logic circuits 47 of a processing unit 46), an antenna 42, one or more processors 43, one or more memories 44, and / or a display device 45.
[0226] As shown in Figure 4, the imaging device 41, antenna 42, processing unit 46, logic circuit 47, encoder 20, decoder 30, processor 43, memory 44, and / or display device 45 can communicate with each other. Although the video coding system 40 is illustrated with the encoder 20 and decoder 30 as described, the video coding system 40 may include only the encoder 20 or only the decoder 30 in different examples.
[0227] In some examples, the antenna 42 may be configured to transmit or receive an encoded bitstream of video data. Furthermore, in some examples, the display device 45 may be configured to present the video data. In some examples, the logic circuit 47 may be implemented by a processing unit 46. The processing unit 46 may include application-specific integrated circuit (ASIC) logic, a graphics processor, a general-purpose processor, or the like. The video coding system 40 may also include an optional processor 43. The optional processor 43 may similarly include application-specific integrated circuit (ASIC) logic, a graphics processor, a general-purpose processor, or the like. In some examples, the logic circuit 47 may be implemented by hardware, for example, dedicated hardware for video coding. The processor 43 may be implemented by general-purpose software, an operating system, or the like. In addition, the memory 44 may be any type of memory, for example, volatile memory (e.g., static random access memory (SRAM) or dynamic random access memory (DRAM)) or non-volatile memory (e.g., flash memory). In non-restrictive examples, memory 44 may be implemented as cache memory. In some examples, logic circuits 47 may access memory 44 (for example, for the implementation of a picture buffer). In other examples, logic circuits 47 and / or processing units 46 may include memory (e.g., a cache) for the implementation of a picture buffer or similar.
[0228] In some examples, the encoder 20 implemented by logic circuits may include a picture buffer (implemented, for example, by a processing unit 46 or memory 44) and a graphics processing unit (implemented, for example, by a processing unit 46). The graphics processing unit may be communicatively coupled to the picture buffer. The graphics processing unit may include the encoder 20 implemented by logic circuits 47 to implement various modules described with reference to Figure 2 and / or any other encoder systems or subsystems described in this specification. The logic circuits may be configured to perform various operations described in this specification.
[0229] In some examples, the decoder 30 may be implemented by logic circuits 47 in a similar manner to implement various modules described with reference to the decoder 30 in Figure 3 and / or any other decoder systems or subsystems described in this specification. In some examples, the decoder 30 implemented by logic circuits may include a picture buffer (implemented, for example, by a processing unit 2820 or memory 44) and a graphics processing unit (implemented, for example, by a processing unit 46). The graphics processing unit may be communicatively coupled to the picture buffer. The graphics processing unit may include the decoder 30 implemented by logic circuits 47 to implement various modules described with reference to Figure 3 and / or any other decoder systems or subsystems described in this specification.
[0230] In some examples, the antenna 42 may be configured to receive an encoded bitstream of video data. As described, the encoded bitstream may include data, indicators, index values, mode selection data, or similar related to video frame encoding, as described in this specification, such as data related to coding segments (e.g., transformation coefficients or quantized transformation coefficients, optional indicators (as described), and / or data defining coding segments). The video coding system 40 may further include a decoder 30 coupled to the antenna 42 and configured to decode the encoded bitstream. A display device 45 is configured to present video frames.
[0231] In this embodiment of the application, it should be understood that, for the example described with reference to encoder 20, decoder 30 may be configured to perform the reverse process. With regard to signaling syntax elements, decoder 30 may be configured to receive and parse such syntax elements and, in correspondence, decode the associated video data. In some examples, encoder 20 may entropically encode the syntax elements into an encoded video bitstream. In such examples, decoder 30 may parse the syntax elements and, in correspondence, decode the associated video data.
[0232] Figure 5 is a schematic diagram of a video coding device 400 (for example, a video encoding device 400 or a video decoding device 400) according to one embodiment of the present invention. The video coding device 400 is suitable for implementing the embodiments described in this specification. In one embodiment, the video coding device 400 may be a video decoder (for example, the decoder 30 in Figure 3) or a video encoder (for example, the encoder 20 in Figure 2). In another embodiment, the video coding device 400 may be one or more components of the decoder 30 in Figure 3 or the encoder 20 in Figure 2.
[0233] The video coding device 400 includes an input port 410 and a receiving unit (Rx) 420 configured to receive data, a processor, logic unit, or central processing unit (CPU) 430 configured to process the data, a transmitter unit (Tx) 440 and an output port 450 configured to transmit data, and a memory 460 configured to store data. The video coding device 400 may further include optical-electrical components and electro-optical (EO) components coupled to the input port 410, the receiver unit 420, the transmitter unit 440, and the output port 450 for the output or input of optical or electrical signals.
[0234] The processor 430 is implemented by hardware and software. The processor 430 may be implemented as one or more CPU chips, cores (e.g., a multi-core processor), FPGAs, ASICs, and DSPs. The processor 430 communicates with input ports 410, a receiver unit 420, a transmitter unit 440, output ports 450, and memory 460. The processor 430 includes a coding module 470 (e.g., an encoding module 470 or a decoding module 470). The encoding / decoding module 470 implements embodiments disclosed in this specification to implement the picture prediction method provided in embodiments of the present invention. For example, the encoding / decoding module 470 performs, processes, or provides various coding operations. Thus, the encoding / decoding module 470 substantially improves the functionality of the video coding device 400 and affects the conversion of the video coding device 400 to different states. Alternatively, the encoding / decoding module 470 is implemented as instructions stored in memory 460 and executed by the processor 430.
[0235] Memory 460 includes one or more disks, a tape drive, and a solid-state device, and may be used as an overflow data storage device to store programs when such programs are selected for execution, and to store instructions and data read during program execution. Memory 460 may be volatile and / or non-volatile, and may be read-only memory (ROM), random access memory (RAM), random access memory (ternary content-addressable memory, TCAM), and / or static random access memory (SRAM).
[0236] Figure 6 is a simplified block diagram of a device 500 that may be used as either or both of the source device 12 and destination device 14 in Figure 1, according to an exemplary embodiment. The device 500 may implement the picture prediction method according to an embodiment of this application. In other words, Figure 6 is a schematic block diagram of one implementation of an encoding or decoding device (abbreviated as coding device 500) according to an embodiment of this application. The coding device 500 may include a processor 510, a memory 530, and a bus system 550. The processor and memory are connected through the bus system. The memory is configured to store instructions. The processor is configured to execute instructions stored in the memory. The memory of the coding device stores program code. The processor may invoke the program code stored in the memory to execute various video encoding or decoding methods described in this application, in particular various novel picture block segmentation methods. To avoid repetition, details are not described again here.
[0237] In this embodiment of the application, the processor 510 may be a central processing unit (CPU). Alternatively, the processor 510 may be another general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or another programmable logic device, a separate gate or transistor logic device, a separate hardware component, or the like. The general-purpose processor may be a microprocessor, or the processor may be any conventional processor or the like.
[0238] Memory 530 may include a read-only memory (ROM) device or a random access memory (RAM) device. Alternatively, any other suitable type of storage device may be used as memory 530. Memory 530 may include code and data 531 accessed by the processor 510 via the bus 550. Memory 530 may further include an operating system 533 and an application program 535. The application program 535 includes at least one program that enables the processor 510 to perform the video coding or decoding method described in this application. For example, the application program 535 may further include applications 1 through N and video coding or decoding applications (abbreviated as video coding applications) that perform the video coding or decoding method described in this application.
[0239] In addition to the data bus, bus system 550 may further include a power bus, control bus, status signal bus, and similar. However, for clarity, the various types of buses in the diagram are marked as bus system 550.
[0240] Optionally, the coding device 500 may further include one or more output devices, such as a display 570. In one example, the display 570 may be a touch display combining a display and a touch unit that is capable of operably sensing touch input. The display 570 may be connected to the processor 510 via the bus 550.
[0241] To better understand the picture prediction method in the embodiments of this application, the following first provides a detailed explanation of some relevant concepts and the basic content of interpretation.
[0242] Interpretation means searching for a reference block that matches the current picture block within the current picture, and using the pixel values of the pixel elements in the reference block as predictors of the pixel values of the pixel elements in the current picture block (this process is called motion estimation (ME)).
[0243] Motion estimation involves trying multiple reference blocks within a reference picture against the current picture block, and then ultimately determining one or two reference blocks (two reference blocks are required for biprediction) from those multiple reference blocks by using rate-distortion optimization (RDO) or another method. The reference blocks are then used to perform interprediction against the current picture block.
[0244] The motion information of the current picture block includes index information for the predicted direction (which is usually forward, backward, or bi-prediction), one or two motion vectors (MV) pointing to the reference block, and index information for the picture in which the reference block is located (which is usually expressed using a reference index).
[0245] Forward prediction means selecting a reference picture from the forward reference picture set to obtain a reference block for the current picture block. Backward prediction means selecting a reference picture from the back reference picture set to obtain a reference block for the current picture block. Dual prediction means selecting a reference picture from the forward reference picture set and a reference picture from the back reference picture set to obtain a reference block. When the dual prediction method is used, there are two reference blocks in the current coding block. Each reference block must be indicated by using a motion vector and a reference index. Then, based on the pixel values of the pixel elements in the two reference blocks, a predictor of the pixel value of the pixel element in the current picture block is determined.
[0246] HEVC has two interprediction modes: AMVP mode and merge mode.
[0247] In AMVP mode, the currently coded block's spatially or temporally adjacent coded blocks (referred to as adjacent blocks) are traversed first. Based on the motion information of the adjacent blocks, a list of candidate motion vectors is constructed. Then, based on the rate distortion cost, the best motion vector is determined from the list of candidate motion information, and the candidate motion information with the smallest rate distortion cost is used as the motion vector predictor (MVP) for the current coded block.
[0248] The positions and traverse order of adjacent blocks are predefined. The rate-distortion cost can be obtained through calculation using equation (1), where J is the rate-distortion cost, SAD is the sum of absolute differences (SAD) between the original pixel value and the predicted pixel value obtained through motion estimation performed using candidate motion vector predictors, R is the bit rate, and λ is the Lagrange multiplier. The encoder transfers the index value and reference index value of the selected motion vector predictor in the candidate motion vector list to the decoder. Furthermore, the encoder may perform a motion search in the neighborhood around the MVP to obtain the actual motion vector of the current coding block, and then transfer the motion vector difference between the MVP and the actual motion vector to the decoder. J = SAD + λR (1)
[0249] In addition, with respect to different motion models, AMVP modes can be classified into AMVP modes based on translational models and AMVP modes based on non-translational models.
[0250] In merge mode, first, a list of candidate motion information is constructed based on the spatially or temporally encoded motion information of the current coding unit. Next, the optimal motion information is determined from the list of candidate motion information as the motion information of the current coding unit, based on the rate distortion cost. Finally, the index value of the position of the optimal motion information in the list of candidate motion information (hereafter referred to as the merge index) is transferred to the decoder.
[0251] In merge mode, the spatial and temporal candidate motion information for the current coding unit may be represented in Figure 7. The spatial candidate motion information comes from five spatially adjacent blocks (A0, A1, B0, B1, and B2). If adjacent blocks are unavailable or the prediction mode is intra-prediction, the adjacent blocks are not added to the candidate motion information list.
[0252] The current coding unit's candidate temporal motion information can be obtained by scaling the MV of the block at the corresponding position in the reference frame, based on the picture order count (POC) of the reference frame and the current frame. When the block at the corresponding position in the reference frame is obtained, it can first be determined whether the block at position T in the reference frame is available. If the block at position T is not available, the block at position C is selected.
[0253] When a translational model is used for prediction, the same motion information is used for all pixels in a coding unit, and then motion compensation is performed based on the motion information to obtain predictors for the pixels in the coding unit. However, in the real world, there are many kinds of motion. Many objects, such as rotating objects, roller coasters rotating in different directions, fireworks, and some stunts in movies, do not exhibit translational motion. If these moving objects, especially those in user-generated content (UGC) scenarios, are encoded using block motion compensation techniques based on translational motion models in current coding standards, coding efficiency will be greatly affected. Therefore, predictions based on non-translational motion models are provided to improve coding efficiency.
[0254] In predictions based on non-translational motion models, the same motion model is used on both the encoder and decoder sides to derive motion information for each sub-motion compensation unit within the current coding block. Then, to improve prediction efficiency, motion compensation is performed based on the motion information of the sub-motion compensation units to obtain a predicted sub-block for each sub-block. Frequently used non-translational motion models include 4-parameter affine motion models and 6-parameter affine motion models.
[0255] In addition, skip mode is a special model of merge mode. The difference is that in skip mode, there is no residual during transmission, and only the merge candidate index is transferred. The merge index is used to indicate the best or target candidate motion information in the merge candidate motion information list.
[0256] Different modes may be used when a picture is predicted. The following describes these common modes in detail.
[0257] Merge mode using motion vector difference
[0258] In merge with motion vector difference (MMVD) mode, one or more candidate motion vectors are selected from the merge candidate motion vector list, and then an extended motion vector (MV) representation is performed based on the candidate motion vectors. The extended MV representation includes the MV's starting point, motion step, and direction of motion.
[0259] Generally, the type of candidate motion vector selected in MMVD mode is the default merge type (e.g., MRG_TYPE_DEFAULT_N). The selected candidate motion vector is the starting point of the MV. In other words, the selected candidate motion vector is used to determine the initial position of the MV.
[0260] As shown in Table 1, the Base candidate IDX indicates which candidate motion vector is selected as the optimal candidate motion vector from the list of candidate motion vectors. If the merged candidate motion vector list contains only one candidate motion vector for selection, the Base candidate IDX does not need to be determined.
[0261] [Table 1]
[0262] For example, if the base candidate index is 1, the selected candidate motion vector is the second motion vector in the merge candidate motion vector list.
[0263] The Distance Index (DIDX) represents the offset distance information of the motion vector. The value of the Distance Index represents the distance offset from the initial position (for example, a pre-set distance). Here, the distance is represented by the Pixel Distance, which can be more simply called the Pel. The correspondence between the Distance Index and the Pixel Distance can be shown in Table 2.
[0264] [Table 2]
[0265] The Direction Index (Direction IDX) is used to represent the direction of the Motion Vector Difference (MVD) based on the initial position. The Direction Index can include a total of four cases. Specific definitions can be shown in Table 3.
[0266] [Table 3]
[0267] The process of determining the predicted pixel values of the current picture block based on the MMVD method includes the following steps:
[0268] Step 1: Determine the starting point of the MV based on the Base candidate IDX.
[0269] Figure 8 is a schematic diagram of an MMVD search point according to one embodiment of this application, and Figure 9 is a schematic diagram of the MMVD search process according to this embodiment of this application.
[0270] For example, the starting point of the MV is the central hollow point in Figure 8, or the position corresponding to the solid line in Figure 9.
[0271] Step 2: Based on the Direction IDX, determine the ab offset direction based on the MV's starting point.
[0272] Step 3: Based on the Distance IDX, determine the number of pixel elements that are offset in the direction indicated by the Direction IDX.
[0273] For example, Direction IDX==00 and Distance IDX=2 indicate that a motion vector offset by one pixel element in the positive X direction will be used as the motion vector for the current picture block in order to predict or obtain the predicted pixel values of the current picture block. Combined intra and intermode.
[0274] In a coding block / CU encoded in merge mode, an indicator (e.g., ciip_flag) may be sent to indicate whether the combined inter and intra prediction (CIIP) mode is used for the current picture. When CIIP mode is used, an intra prediction block may be generated based on an intra prediction mode selected from an intra candidate mode list, according to the relevant syntax element, and an inter prediction block may be generated by using a conventional inter prediction method. Finally, an adaptive weighting form is used to combine the intra coding prediction block and the inter coding prediction block to generate the final prediction block.
[0275] For luminance blocks, the intra-candidate mode list can be selected from four modes: DC mode, planar mode, horizontal mode, and vertical mode. The size of the intra-candidate mode list is selected based on the shape of the current coding block, and there may be three or four modes in the intra-candidate mode list. When the width of the current coding block / CU is greater than twice its height, the intra-candidate mode list does not include the horizontal mode. When the height of the current coding block / CU is greater than twice its width, the intra-candidate mode list does not include the vertical mode.
[0276] In the weighting method that combines intra coding and inter coding, different weighting coefficients are used for different intra prediction modes. Specifically, when the DC or planar mode is used for intra coding, or when the length or width of the current coding block is 4 or less, the same weight value / weighting coefficient is used for the predictor obtained through intra prediction and the predictor obtained through inter prediction. Otherwise, the weight value / weighting coefficient can be determined based on the intra prediction mode used by the current block and / or the position of the prediction samples within the current block. For example, when the horizontal and vertical modes are used for intra coding, variable weighting coefficients are used.
[0277] Triangle prediction unit mode:
[0278] The triangle prediction unit mode (triangle prediction unit mode, triangle PU) may also be referred to as the triangle partition mode (triangle partition mode, TPM) or the merge triangle mode. For ease of explanation, in this application, the triangle prediction unit mode or the triangle partition mode is simply referred to as TPM, which is also applicable subsequently.
[0279] As shown in Figure 11, the current picture block is divided into two triangular prediction units, and a motion vector and reference index are selected from a single prediction candidate list for each triangular prediction unit. Then, predictors are obtained for each of the two triangular prediction units by performing adaptive weighting on the pixels contained in each hypotenuse region. The transformation and quantization processes are then performed on the entire current picture block. It should be noted that the triangular prediction unit method is typically applied only in skip mode or merge mode. The left side of Figure 10 represents the top-left to bottom-right division mode (in other words, the top-left to bottom-right division), and the right side of Figure 10 represents the top-right to bottom-left division mode (in other words, the top-right to bottom-left division).
[0280] In triangular prediction unit mode, the single prediction candidate list typically contains five candidate prediction motion vectors. These candidate prediction motion vectors are obtained, for example, by using seven neighboring blocks (five spatially adjacent blocks and two blocks located at the same temporal position) as shown in Figure 5. Motion information for the seven neighboring blocks is searched, and the seven neighboring blocks are sequentially placed in the single prediction candidate list. For example, the sequence could be a biprediction motion vector at L0, a biprediction motion vector at L1, and the average of the motion vectors at L0 and L1. If there are fewer than five candidates, a zero motion vector 0 is added to the single prediction candidate list. During encoding, the single prediction candidate list is obtained in the manner described above. For example, in the single prediction candidate list, forward prediction motion information is used to predict the pixel predictor of one triangular PU, and backward prediction motion information is used to predict the pixel predictor of the other triangular PU. The encoder side selects the optimal motion vector through traversal. For example, the following scheme {m,i,j}, i.e., {0,1,0}, {1,0,1}, {1,0,2}, {0,0,1}, {0,2,0} {1,0,3}, {1,0,4}, {1,1,0}, {0,3,0}, {0,4,0} {0,0,2}, {0,1,2}, {1,1,2}, {0,0,4}, {0,0,3} {0,1,3}, {0,1,4}, {1,1,4}, {1,1,3}, {1,2,1} {1,2,0}, {0,2,1}, {0,4,3}, {1,3,0}, {1,3,2} {1,3,4}, {1,4,0}, {1,3,1}, {1,2,3}, {1,4,1} {0,4,1}, {0,2,3}, {1,4,2}, {0,3,2}, {1,4,3} {0,3,1}, {0,2,4}, {1,2,4}, {0,4,2}, {0,3,4} It may also be used, where in {m,i,j}, m at the first position represents a division mode from the upper left to the lower right, or a division mode from the upper right to the lower left, the second position represents the forward motion information of the i-th candidate predicted motion vector used for the first triangle PU, and the third position represents the backward motion information of the j-th candidate predicted motion vector used for the second triangle PU.
[0281] Refer to Figure 11 for the adaptive weighting process, which is performed based on the predictors of the pixels contained in the hypotenuse region. After predictions are completed for the triangular prediction units P1 and P2, the adaptive weighting process is performed on the pixels contained in the hypotenuse region to obtain the final predictors for the current picture block.
[0282] For example, in the picture on the left side of Figure 11, the predictor for the pixel at position 2 is:
[0283]
number
[0284] P1 represents the pixel predictor in the upper right region of Figure 11, and P2 represents the pixel predictor in the lower left region of Figure 11.
[0285] The two sets of weighted parameters are as follows:
[0286] The first set of weighted parameters, {7 / 8,6 / 8,4 / 8,2 / 8,1 / 8} and {7 / 8,4 / 8,1 / 8}, are used for the luma point and chroma point, respectively.
[0287] The second set of weighted parameters, {7 / 8,6 / 8,5 / 8,4 / 8,3 / 8,2 / 8,1 / 8} and {6 / 8,4 / 8,2 / 8}, are used for the luma point and chroma point, respectively.
[0288] One set of weighted parameters is used to encode and decode the current picture block. A second set of weighted parameters is selected when the reference pictures of the two prediction units are different, or when the difference in motion vectors between the two prediction units is greater than 16 pixels; otherwise, the first set of weighted parameters is used.
[0289] Figure 12 is a schematic block diagram of a video communication system according to one embodiment of this application.
[0290] The video communication system 500 shown in Figure 12 includes a source device 600 and a destination device 700. The source device 600 can encode the acquired video and transmit the encoded video bitstream to the receiving device 700. The destination device 700 can analyze the received video bitstream to acquire a video picture and display the video using a display device.
[0291] The picture prediction method in the embodiments of this application may be performed by a source device 600 or a destination device 700. Specifically, the picture prediction method in the embodiments of this application may be performed by a video encoder 603 or a video decoder 702.
[0292] The video communication system 500 may also be called a video coding system. The source device 600 may also be called a video encoding device or video encoding apparatus. The destination device 700 may also be called a video decoding device or video decoding apparatus.
[0293] In Figure 12, the source device 600 includes a video capture device 601, a video memory 602, a video encoder 603, and a transmitter 604. The video memory 602 can store video acquired by the video capture device 601. The video encoder 603 can encode video data from the video memory 602 and the video capture device 601. In some examples, the source device 600 transmits the encoded video data directly to the destination device 700 via the transmitter 604. The encoded video data may be further stored in a storage medium or file server so that the destination device 700 can later extract the encoded video data for decoding and / or playback.
[0294] In Figure 12, the destination device 700 includes a receiver 701, a video decoder 702, and a display device 703. In some examples, the receiver 701 may receive encoded video data through channel 800. The display device 703 may be integrated with the destination device 700 or may be external to the destination device 7000. Typically, the display device 700 displays the decoded video data. The display device 700 may include several types of display devices, such as liquid crystal displays, plasma displays, organic light-emitting diode displays, or other types of display devices.
[0295] The specific implementations of the source device 600 and the destination device 700 can be any one of the following devices, namely, a desktop computer, a mobile computing device, a notebook (e.g., laptop) computer, a tablet computer, a set-top box, a smartphone, a handset, a television, a camera, a display device, a digital media player, a video game console, an in-vehicle computer, or another similar device.
[0296] The destination device 700 can receive the encoded video data from the source device 600 through the channel 800. The channel 800 can include one or more media and / or devices that can move the encoded video data from the source device 600 to the destination device 700. In one example, the channel 800 can include one or more communication media that can enable the source device 600 to directly transmit the encoded video data to the destination device 700 in real time. In this example, the source device 600 may modulate the encoded video data according to a communication standard (e.g., a wireless communication protocol) and transmit the modulated video data to the destination device 700. The one or more communication media can include wireless and / or wired communication media, such as the radio frequency (RF) spectrum or one or more physical transmission lines. The one or more communication media can form part of a packet-based network (e.g., a local area network, a wide area network, or a global network (e.g., the Internet)). The one or more communication media can include a router, a switch, a base station, or another device that enables communication between the source device 600 and the destination device 700.
[0297] In another example, channel 800 may include a storage medium for storing encoded video data generated by source device 600. In this example, destination device 700 may access the storage medium via disk access or card access. The storage medium may include multiple locally accessible data storage media, such as Blu-ray®, digital video disc (DVD), compact disc read-only memory (CD-ROM), flash memory, or another suitable digital storage medium configured to store encoded video data.
[0298] In another example, channel 800 may include a file server or another intermediate storage device that stores encoded video data generated by source device 600. In this example, destination device 700 may access the encoded video data stored in the file server or other intermediate storage device via streaming transmission or download. The file server may be a server type that stores encoded video data and can transmit the encoded video data to destination device 700. For example, the file server may include a World Wide Web (Web) server (e.g., used for websites), a File Transfer Protocol (FTP) server, a Network Attached Storage (NAS) device, and a local disk drive.
[0299] The destination device 700 may access the encoded video data through a standard data connection (e.g., an internet connection). Examples of data connection types include wireless channels, wired connections (e.g., a cable modem), or a combination thereof suitable for accessing encoded video data stored on a file server. Transmission of the encoded video data from the file server may be via streaming, download, or a combination thereof.
[0300] The picture prediction method in this application will be described in detail below with reference to specific attached drawings.
[0301] Figure 13 is a schematic flowchart of a picture prediction method according to one embodiment of this application. The picture prediction method shown in Figure 13 may be performed by a picture prediction device (the picture prediction device may be located within a picture encoding device (system) or a picture decoding device (system)). Specifically, the method shown in Figure 13 may be performed by a picture encoding device or a picture decoding device. The method shown in Figure 13 may be performed on the encoder side or on the decoder side. The method shown in Figure 13 includes steps 1001 to 1008. These steps will be described separately in detail below.
[0302] 1001: Start.
[0303] Step 1001 indicates that picture prediction will begin.
[0304] 1002: Determine whether merge mode is used for the current picture block.
[0305] Optionally, the method shown in Figure 13 further includes the step of obtaining the current picture block before step 1002.
[0306] The current picture block may be a picture block within the picture that is currently to be encoded or decoded.
[0307] In this application, it should be understood that the current picture block may be acquired in the process of determining the target merge mode of the current picture block, or after the target merge mode of the current picture block has been determined.
[0308] On the decoder side, in step 1002, whether the merge mode is used for the current picture block can be determined specifically based on the CU-level syntax element merge_flag[x0][y0].
[0309] If merge_flag[x0][y0]=1, it is determined that the merge mode is used to predict the current picture block. If merge_flag[x0][y0]=1, it is determined that the merge mode is not used to predict the current picture block. x0 and y0 represent the coordinate positions of the luminance pixel element at the top-left corner of the current picture block relative to the luminance pixel element at the top-left corner of the current picture.
[0310] After determining which merge mode to use for the current picture block based on the CU-level syntax element merge_flag[x0][y0], the final target merge mode to be used may be determined by parsing specific information in the CU-level syntax element merge_flag[x0][y0].
[0311] In step 1002, if it is determined that the merge mode is not applicable to the current picture block, another mode other than the merge mode may be used to predict the current picture block. For example, if it is determined that the merge mode is not applicable to the current picture block, the AMVP mode may be used to predict the current picture block.
[0312] In step 1002, after it is determined that a merge mode is to be used for the current picture block, step 1003 is performed to determine the target merge mode applicable to the current picture block.
[0313] 1003: Determine whether to use Level 1 merge mode.
[0314] Specifically, whether a Level 1 merge mode is available can be determined based on the higher-level syntax elements corresponding to the Level 1 merge mode, and / or the available status information corresponding to the Level 1 merge mode.
[0315] In a possible implementation of the present invention, it is assumed that the Level 1 merge mode includes a total of two merge modes, namely merge mode A and merge mode B. In this case, it is determined one by one whether there are any available merge modes in the Level 1 merge mode. If there are available merge modes, step 1005 is performed. If no merge modes are available in the Level 1 merge mode, it is determined that the Level 1 merge mode is unavailable. In this case, the target merge mode must be determined from the Level 2 merge modes. In other words, step 1004 is performed.
[0316] 1004: Determine whether the higher-level syntax element corresponding to the first merge mode indicates that the use of the first merge mode is prohibited.
[0317] The first merge mode belongs to the level 2 merge mode, and the level 2 merge mode further includes the second merge mode.
[0318] If, in step 1004, it is determined that the upper-level syntax element corresponding to the first merge mode indicates that the first merge mode is prohibited from being used, then step 1006 is performed to determine the second merge mode as the target merge mode.
[0319] In this application, when the higher-level syntax elements of the first merge mode indicate that the first merge mode is prohibited from being used, there is no need to parse the remaining available status information of the second merge mode, and the second merge mode can be directly determined as the final target merge mode. This minimizes the redundancy caused by determining the target merge mode in the picture prediction process.
[0320] If, in step 1004, it is determined that the upper-level syntax element corresponding to the first merge mode indicates that the first merge mode is permitted to be used, then step 1007 is performed to further determine the target merge mode.
[0321] 1005: Predicts the current picture block based on the Level 1 merge mode.
[0322] In step 1005, if merge mode A of the level 1 merge modes is available, it should be understood that the current picture block will be predicted based on merge mode A.
[0323] 1006: Determine a second merge mode as the target merge mode applicable to the current picture block.
[0324] When the higher-level syntax element corresponding to the first merge mode indicates that the first merge mode is prohibited, there is no need to parse the higher-level syntax element and / or available status information corresponding to the second merge mode, and the second merge mode can be directly determined as the target merge mode.
[0325] 1007: Determine the target merge mode based on the upper-level syntax elements corresponding to the second merge mode and / or the available status information of the second merge mode.
[0326] The available status information for the second merge mode is used to indicate whether the second merge mode will be used when the current picture block is predicted.
[0327] For example, the second merge mode is CIIP mode, and the available status information for the second merge mode is the value of ciip_flag. When ciip_flag is 0, CIIP mode is not used for the current picture block. When ciip_flag is 1, CIIP mode is used to predict the current picture block.
[0328] Regarding CIIP mode, if CIIP mode should be selected as the target merge mode, it should be understood that the higher-level syntax element corresponding to CIIP must indicate that CIIP mode is permitted to be used, and the available status information indicating the availability status of CIIP mode must indicate that CIIP is available.
[0329] For example, when sps_ciip_enabled_flag=1 and ciip_flag=1, the CIIP mode may be determined as the target merge mode for the current picture block.
[0330] In step 1007, since the first merge mode is permitted to be used, both the first and second merge modes can be used as the target merge mode for the current picture block. Thus, the target merge mode can be determined from the level 2 merge modes based on the higher-level syntax and available status information corresponding to one of the merge modes.
[0331] Optionally, the first merge mode is TPM mode, and the second merge mode is CIIP mode.
[0332] The following describes in detail how to determine the target merge mode when the first merge mode is TPM mode and the second merge mode is CIIP mode.
[0333] Optionally, CIIP mode is determined as the target merge mode when a higher-layer syntax element corresponding to TPM mode indicates that TPM mode is prohibited from being used.
[0334] For example, when sps_triangle_enabled_flag, which corresponds to TPM mode, is 0, TPM mode is prohibited from being used. In this case, there is no need to parse a specific value of ciip_flag. Instead, the CIIP mode can be determined directly as the target merge mode. In this way, unnecessary parsing can be reduced, and the redundancy of the solution can be reduced.
[0335] In this application, when a higher-level syntax element corresponding to the TPM mode indicates that the use of the TPM mode is prohibited, it is not necessary to determine whether the CIIP mode is available by analyzing the higher-level syntax corresponding to the CIIP mode and / or the available status information indicating the available status of the CIIP mode. Instead, the CIIP mode can be determined directly as the target merge mode. This can reduce redundancy in the process of determining the target merge mode.
[0336] Optionally, when a higher-layer syntax element corresponding to TPM mode indicates that TPM mode is permitted to be used, the target merge mode is determined based on the higher-layer syntax element corresponding to CIIP mode and / or available status information indicating the available status of CIIP mode.
[0337] For example, when sps_triangle_enabled_flag, which corresponds to TPM mode, is 1, TPM mode is permitted to be used. In this case, both TPM mode and CIIP mode can be used as target merge modes. Therefore, a further decision must be made as to whether to select TPM mode or CIIP mode as the target merge mode.
[0338] Optionally, the TPM mode is determined as the target merge mode when the upper-layer syntax elements corresponding to CIIP mode and / or the available status information indicating the available status of CIIP mode indicate that the use of CIIP mode is prohibited.
[0339] Cases 1 through 3 include cases where the upper-layer syntax elements corresponding to CIIP mode and / or available status information indicating the availability status of CIIP mode indicate that the use of CIIP mode is prohibited.
[0340] Case 1: The higher-layer syntax element corresponding to CIIP mode indicates that CIIP mode is prohibited from being used, and the available status information indicating the availability status of CIIP mode indicates that CIIP mode is unavailable.
[0341] Case 2: The higher-layer syntax element corresponding to CIIP mode indicates that CIIP mode is permitted to be used, while the available status information indicating the availability status of CIIP mode indicates that CIIP mode is not available.
[0342] Case 3: The available status information indicating the availability status of CIIP mode shows that CIIP mode is unavailable.
[0343] Optionally, CIIP mode is determined as the target merge mode when a higher-level syntax element corresponding to CIIP mode indicates that CIIP mode is permitted to be used, and available status information indicating the availability status of CIIP mode indicates that CIIP mode is available.
[0344] 1008: Predicts the current picture block based on the target merge mode.
[0345] In the method shown in Figure 13, before step 1007 is performed, the method shown in Figure 13 further includes the steps of determining that the type of slice or slice group in which the current picture block is located is B, and determining that the maximum number of candidate TPM modes supported by the slice or slice group in which the current picture block is located is 2 or greater.
[0346] Optionally, before the target merge mode is determined based on the available status information indicating the available status of the higher-layer syntax elements and / or CIIP modes corresponding to the CIIP mode, the method further includes the steps of determining that the type of slice or slice group in which the current picture block is located is B, and determining that the maximum number of candidate TPM modes supported by the slice or slice group in which the current picture block is located is 2 or greater.
[0347] Optionally, in one embodiment, the method shown in Figure 13 further includes determining CIIP mode as the target merge mode when Level 1 merge mode is unavailable and a higher-layer syntax element corresponding to TPM mode indicates that TPM mode is permitted to be used, but the current picture block does not satisfy at least one of conditions A and B.
[0348] Conditions A and B are as follows:
[0349] Condition A: The slice on which the current picture block is located is of type B.
[0350] Condition B: The maximum number of candidate TPM modes supported by the slice or slice group in which the current picture block is located is 2 or greater.
[0351] Conditions A and B can be expressed in several specific forms. For example, condition A may be specifically expressed by slice_type==B, and condition B may be specifically expressed by MaxNumTriangleMergeCand≧2. MaxNumTriangleMergeCand indicates the maximum number of candidate TPM modes supported by the slice or slice group in which the current picture block is located.
[0352] The TPM mode can only be selected as the target merge mode ultimately used to predict the current picture block when both conditions A and B are met.
[0353] If either condition A or condition B is not met, the CIIP mode is determined as the target merge mode.
[0354] When a higher-level syntax element corresponding to TPM mode indicates that TPM mode is prohibited, CIIP mode is determined as the target merge mode unless either condition A or condition B is met.
[0355] When a higher-level syntax element corresponding to TPM mode indicates that TPM mode is permitted to be used, CIIP mode is determined as the target merge mode unless either condition A or condition B is met.
[0356] In other words, the CIIP mode can be determined as the target merge mode if sps_trangle_enabled_flag=1, condition A, and one of condition B are not met.
[0357] Conversely, if sps_trangle_enabled_flag=1, condition A, and condition B are all met, the target merge mode must be determined based on ciip_flag, according to several conditions in the prior art.
[0358] Optionally, higher-level syntax elements are syntax elements at at least one of the following levels: sequence level, picture level, slice level, and slice group level.
[0359] Optionally, Level 1 merge modes include normal merge mode, MMVD mode, and subblock merge mode.
[0360] When determining whether a Level 1 merge mode is available, the availability of these modes can be determined sequentially in the order of normal merge mode, MMVD mode, and subblock merge mode.
[0361] For example, it might first be determined whether the normal merge mode is available. If the normal merge mode is not available (if it is available, the normal merge mode can be used directly as the final target merge mode), then it is determined whether the MMVD mode is available. If the MMVD mode is not available, then it is determined whether the subblock merge mode is available.
[0362] Optionally, the method shown in Figure 13 can be applied to the encoder side to encode the current picture block.
[0363] Optionally, the method shown in Figure 13 may be applied to the decoder side to decode the current picture block.
[0364] To better understand the specific process of the picture prediction method in the embodiments of this application, the process of determining the picture merge mode in the picture prediction method in the embodiments of this application will be described in detail below with reference to specific examples.
[0365] The picture prediction method in this embodiment will be described in detail below with reference to Figure 14 and Table 4.
[0366] Figure 14 illustrates the process for determining the merge mode according to one embodiment of this application. The process shown in Figure 14 includes steps 3001 to 3007. These steps are described in detail below.
[0367] 3001: Start.
[0368] Step 3001 indicates that picture prediction is starting.
[0369] 3002: Determines whether merge mode is used for the current picture block.
[0370] Specifically, when step 3002 is performed by the decoder, in step 3002, whether the merge mode is used for the current picture block may be determined based on the value of the CU-level syntax element merge_flag[x0][y0] corresponding to the current picture block.
[0371] For example, as shown in Table 4, when merge_flag[x0][y0]=0, the merge mode is not used for the current picture block. In this case, the current picture block may be predicted in another way. For example, the current picture block may be predicted in AMVP mode.
[0372] When merge_flag[x0][y0]=1, the merge mode is used for the current picture block. Then, it can be further determined which merge mode is used to predict the current picture block.
[0373] It should be understood that when merge_flag[x0][y0] does not exist in the bitstream, merge_flag[x0][y0] defaults to 0.
[0374] (x0,y0) represents the coordinate position of the luminance pixel element at the top-left corner of the current picture block relative to the luminance pixel element at the top-left corner of the current picture. The meaning of (x0,y0) in the following syntax elements is the same and will not be explained in detail here.
[0375] Optionally, the method shown in Figure 14 further includes the step of obtaining the current picture block before step 3002.
[0376] The current picture block may be a picture block within the picture that is currently to be encoded or decoded.
[0377] In this application, it should be understood that the current picture block may be acquired in the process of determining the target merge mode of the current picture block, or after the target merge mode of the current picture block has been determined.
[0378] 3003: Determines whether the normal merge mode is used for the current picture block.
[0379] Specifically, in step 3003, whether the normal merge mode is used for the current picture block can be determined by parsing the value of the syntax element regular_merge_flag[x0][y0].
[0380] When regular_merge_flag[x0][y0]=1, it is determined that the normal merge mode will be used for the current picture block. In this case, step 3007 may be performed. Specifically, the current picture block is predicted based on the normal merge mode.
[0381] When regular_merge_flag[x0][y0]=0, it is determined that the normal merge mode will not be used for the current picture block. In this case, it is necessary to proceed to step 3004 to further determine the merge mode to be used for the current picture block.
[0382] It should be understood that when regular_merge_flag[x0][y0] does not exist in the bitstream, regular_merge_flag[x0][y0] defaults to 0.
[0383] 3004: Determines whether MMVD mode is used for the current picture block.
[0384] Specifically, in step 3004, the higher-level syntax element corresponding to the MMVD mode indicates that MMVD may be permitted to be used, and when the area of the current picture block is not equal to 32, whether MMVD is used for the current picture block can be determined by parsing the value of the syntax element mmvd_flag[x0][y0].
[0385] When mmvd_flag[x0][y0]=1, it is determined that the MMVD mode will be used for the current picture block. In this case, step 3007 may be executed. Specifically, the current picture block is predicted based on the MMVD mode.
[0386] When mmvd_flag[x0][y0]=0, it is determined that no MMVD mode is used for the current picture block. In this case, it is necessary to proceed to step 3005 to further determine the merge mode used for the current picture block.
[0387] It should be understood that if mmvd_flag[x0][y0] does not exist in the bitstream, mmvd_flag[x0][y0] defaults to 0.
[0388] 3005: Determines whether subblock merge mode is used for the current picture block.
[0389] In step 3004, whether the subblock merge mode is used for the current picture block can be determined based on the value of the syntax element merge_subblock_flag[x0][y0] obtained by parsing the bitstream.
[0390] When merge_subblock_flag[x0][y0]=1, it is determined that the subblock merge mode will be used for the current picture block. In this case, step 3007 may be executed. Specifically, the current picture block is predicted based on the subblock merge mode.
[0391] When merge_subblock_flag[x0][y0]=0, it is determined that no subblock merge mode is used for the current picture block. In this case, it is necessary to proceed to step 3006 to further determine the merge mode used for the current picture block.
[0392] It should be understood that when merge_subblock_flag[x0][y0] does not exist in the bitstream, merge_subblock_flag[x0][y0] defaults to 0.
[0393] Furthermore, in step 3004, the value of the syntax element merge_subblock_flag[x0][y0] may be parsed only if the maximum length of the subblock merge candidate list is greater than 0 and both the width and height of the current picture block are 8 or greater. If the obtained value of merge_subblock_flag[x0][y0] is 0, then step 3007 is executed.
[0394] 3006: Determines the merge mode used for the current picture block based on CIIP mode and TPM mode.
[0395] Specifically, in step 3006, if all six conditions (1) through (6) below are met, ciip_flag[x0][y0] is parsed from the bitstream, and the merge mode used for the current picture block is determined based on the value of ciip_flag[x0][y0]. When ciip_flag[x0][y0]=1, the CIIP mode is used to predict the current picture block.
[0396] In addition, if condition (1) below is met, and none of the following conditions (2) through (6) are met, then CIIP mode is used to predict the current picture block. (1) sps_ciip_enabled_flag=1, (2) sps_triangle_enabled_flag=1, (3) cu_skip_flag[x0][y0]==0, (4)(cbWidth*cbHeight)≧64, (5) cbWidth < 128, (6) cbHeight < 128.
[0397] cbWidth and cbHeight are the width and height of the current picture block, respectively.
[0398] Optionally, when the merge mode to be used for the current block is determined in step 3006, more determination conditions may be added.
[0399] Based on the aforementioned conditions (1) through (6), conditions (7) and (8) may be added. (7) slice_type==B, and (8) MaxNumTriangleMergeCand≧2.
[0400] Optionally, in step 3006, if all eight conditions (1) through (8) above are met, ciip_flag[x0][y0] is parsed from the bitstream, and the merge mode used for the current picture block is determined based on the value of ciip_flag[x0][y0]. When ciip_flag[x0][y0]=1, the CIIP mode is used to predict the current picture block.
[0401] In addition, if condition (1) above is met, and none of conditions (2) through (8) above are met, then CIIP mode is used to predict the current picture block.
[0402] 3007: Predicts the current picture block based on the merge mode used for the current picture block.
[0403] In step 3003, if it is determined that the normal merge mode is to be used for the current picture block, in step 3007, the current picture block is predicted based on the normal merge mode. In step 3004, if it is determined that the MMVD mode is to be used for the current picture block, in step 3007, the current picture block is predicted based on the MMVD mode. In step 3005, if it is determined that the subblock merge mode is to be used for the current picture block, in step 3007, the current picture block is predicted based on the subblock merge mode.
[0404] Table 4 shows how the merge mode used for the current picture block is determined when a merge mode is used, based on the corresponding syntax element. The following describes in detail how the merge mode for the current picture block is determined, referring to Table 4.
[0405] [Table 4]
[0406] When regular_merge_flag[x0][y0], as shown in Table 4, is 1, it is determined that the normal merge mode will be used for the current picture block. In this case, the parameters of the normal merge mode can be obtained by parsing the syntax element merge_idx[x0][y0]. When regular_merge_flag[x0][y0], as shown in Table 4, is 0, it is determined that the normal merge mode will not be used for the current picture block, and the merge mode to be used for the current picture block needs to be further determined.
[0407] When sps_mmvd_enabled_flag and cbWidth*cbHeight ! shown in Table 4 are 1 and 32, respectively, it indicates that the MMVD mode can be used for the current picture block. In this case, the merge mode for the current picture block can be determined based on the value of mmvd_flag[x0][y0]. If mmvd_flag[x0][y0]=1, it is determined that the MMVD mode will be used for the current picture block, and the parameters of the MMVD mode can be determined by parsing the syntax elements mmvd_merge_flag[x0][y0], mmvd_distance_idx[x0][y0], and mmvd_direction_idx[x0][y0]. If mmvd_flag[x0][y0]=0, the merge mode used for the current picture block needs to be further determined.
[0408] When merge_subblock_flag[x0][y0] shown in Table 4 is 1, it is determined that the subblock merge mode will be used for the current picture block. When merge_subblock_flag[x0][y0] shown in Table 4 is 0, it is determined that the subblock merge mode will not be used for the current picture block, and the merge mode to be used for the current picture block needs to be further determined.
[0409] When sps_ciip_enabled_flag, as shown in Table 4, is 0, it can be directly determined that TPM mode will be used for the current picture block. However, when sps_ciip_enabled_flag and sps_ciip_enabled_flag, as shown in Table 4, are 1 and 0, respectively, it can be directly determined that CIIP mode will be used for the current picture block.
[0410] As shown in Table 4, when all six conditions (1) through (6) below are met, the value of ciip_flag[x0][y0], which is an indicator of the available status information for Ciip mode, must be obtained from the bitstream. If ciip_flag[x0][y0]=1, it is determined that CIIP mode will be used for the current picture block. If ciip_flag[x0][y0]=0, it is determined that TPM mode will be used for the current picture block. (1) sps_ciip_enabled_flag=1, (2) sps_triangle_enabled_flag=1, (3) cu_skip_flag[x0][y0]==0, (4)(cbWidth*cbHeight)≧64, (5) cbWidth<128, (6) cbHeight < 128.
[0411] Optionally, the expression `if(sps_ciip_enabled_flag && sps_triangle_enabled_flag && cu_skip_flag[x0][y0]==0 && (cbWidth*cbHeight)≧64 && cbWidth<128 && cbHeight<128)` in Table 4 can be replaced with `if(sps_triangle_enabled_flag && sps_ciip_enabled_flag && cu_skip_flag[x0][y0]==0 && (cbWidth*cbHeight)≧64 && cbWidth<128 && cbHeight<128)`. In other words, the sequences of `sps_ciip_enabled_flag` and `sps_triangle_enabled_flag` can be adjusted. The specific results may be shown in Table 5.
[0412] [Table 5]
[0413] In Tables 4 and 5, it should be noted that the time sequence for determining the CIIP is earlier than the time sequence for determining the TPM. Specifically, the CIIP is determined first, and the forecast mode ultimately used for the current block is determined based on the status of the CIIP. If the CIIP is true, no further determination of information regarding the TPM is necessary. If the CIIP is false, it means that only the TPM is available. In this case, the final forecast mode for the current block may be set to the TPM mode. The prioritization or logic for determining the time sequences is merely an example and can be adjusted as needed. For example, the time sequence for the TPM may be earlier than the time sequence for the CIIP. In this case, the conditions for determining whether the TPM mode is applicable also need to be adjusted as needed.
[0414] [Table 6]
[0415] As shown in Table 6, when all eight conditions (1) through (8) below are met, the indicator of the available status information for CIIP mode, i.e., the value of ciip_flag[x0][y0], must be obtained from the bitstream. If ciip_flag[x0][y0]=1, it is determined that CIIP mode will be used for the current picture block. If ciip_flag[x0][y0]=0, it is determined that TPM mode will be used for the current picture block. (1) sps_ciip_enabled_flag=1, (2) sps_triangle_enabled_flag=1, (3) cu_skip_flag[x0][y0]==0, (4)(cbWidth*cbHeight)≧64, (5) cbWidth<128, (6) cbHeight < 128.
[0416] Optionally, the statement `if(sps_ciip_enabled_flag && sps_triangle_enabled_flag && slice_type==B && MaxNumTriangleMergeCand≧2 && cu_skip_flag[x0][y0]==0 && (cbWidth*cbHeight)≧64 && cbWidth<128 && cbHeight<128)` in Table 6 can be replaced with `if(sps_triangle_enabled_flag && sps_ciip_enabled_flag && slice_type==B && MaxNumTriangleMergeCand≧2 && cu_skip_flag[x0][y0]==0 && (cbWidth*cbHeight)≧64 && cbWidth<128 && cbHeight<128)`. In other words, the sequences of sps_ciip_enabled_flag and sps_triangle_enabled_flag can be modified. Specific results can be shown in Table 7.
[0417] [Table 7]
[0418] The above describes in detail the picture prediction method in the embodiment of this application with reference to Figures 13 and 14. The following describes the picture prediction method in the embodiment of this application with reference to Figure 15.
[0419] Figure 15 is a schematic flowchart of a picture prediction method according to one embodiment of this application. The picture prediction method shown in Figure 15 may be performed by a picture prediction device (the picture prediction device may be located within a picture decoding device (system) or a picture encoding device (system)). Specifically, the method shown in Figure 15 may be performed by a picture encoding device or a picture decoding device. The method shown in Figure 15 may be performed on the encoder side or on the decoder side. The method shown in Figure 15 includes steps 4001 to 4007. These steps are described separately in detail below.
[0420] 4001: Start.
[0421] Step 4001 indicates that picture prediction is starting.
[0422] 4002: Determines whether merge mode is used for the current picture block.
[0423] On the decoder side, in step 4002, whether the merge mode is used for the current picture block can be determined based on the CU-level syntax element merge_flag[x0][y0]. For the specific determination process, please refer to the relevant explanation below step 1003.
[0424] In step 4002, if it is determined that the merge mode is not applicable to the current picture block, another mode other than the merge mode may be used to predict the current picture block. For example, if it is determined that the merge mode is not applicable to the current picture block, the AMVP mode may be used to predict the current picture block.
[0425] In step 4002, after it is determined that a merge mode is to be used for the current picture block, step 4003 is performed to determine the target merge mode applicable to the current picture block.
[0426] Optionally, the method shown in Figure 15 further includes a step to obtain the current picture block before step 4002.
[0427] The current picture block may be a picture block within the picture that is currently to be encoded or decoded.
[0428] In this application, it should be understood that the current picture block may be acquired in the process of determining the target merge mode of the current picture block, or after the target merge mode of the current picture block has been determined.
[0429] 4003: Determine whether to use Level 1 merge mode.
[0430] Specifically, whether a Level 1 merge mode is available can be determined based on the higher-level syntax elements corresponding to the Level 1 merge mode and / or the available status information corresponding to the Level 1 merge mode.
[0431] Optionally, the Level 1 merge mode in step 4003 includes the normal merge mode, MMVD mode, and subblock merge mode.
[0432] When determining whether a Level 1 merge mode is available, the availability of these modes can be determined sequentially in the order of normal merge mode, MMVD mode, and subblock merge mode. If all modes are unavailable, it is determined that a Level 1 merge mode is unavailable.
[0433] If, in step 4003, it is determined that a Level 1 merge mode is not available, then step 4004 may be performed to determine the target merge mode from the Level 2 merge modes.
[0434] Regarding the picture prediction method shown in Figure 15, the Level 1 merge mode and Level 2 merge mode may include all optional merge modes for the current picture block, and the final target merge mode for the current picture block must be determined from the Level 1 merge mode and Level 2 merge mode.
[0435] Optionally, Level 1 merge mode has a higher priority than Level 2 merge mode.
[0436] If the priority of Level 1 merge modes is higher than that of Level 2 merge modes, it means that in the process of determining the target merge mode for the current picture block, the target merge mode is determined preferentially from Level 1 merge modes. If no merge modes are available in Level 1 merge modes, the target merge mode is then determined from Level 2 merge modes.
[0437] 4004: Determine whether conditions 1 through 5 are met.
[0438] Conditions 1 through 5 are as follows:
[0439] Condition 1: TPM mode is permitted to be used.
[0440] Condition 2: The slice or slice group in which the current picture block is located is of type B.
[0441] Condition 3: The maximum number of candidate TPM modes supported by the slice or slice group in which the current picture block is located is determined to be 2 or greater.
[0442] Condition 4: The current picture block size meets the pre-set conditions.
[0443] Condition 5: Skip mode is not used to predict the current picture block.
[0444] Condition 1 may be specifically expressed by sps_triangle_enabled_flag=1, Condition 2 may be specifically expressed by slice_type==B, and Condition 3 may be specifically expressed by MaxNumTriangleMergeCand≧2. MaxNumTriangleMergeCand indicates the maximum number of candidate TPM modes supported by the slice or slice group in which the current picture block is located.
[0445] In step 4004, if it is determined that any one of conditions 1 through 5 is not met, the CIIP mode may be directly determined as the target merge mode. In other words, step 4005 is performed. In step 4004, if it is determined that all five conditions, i.e., conditions 1 through 5, are met, the target merge mode needs to be further determined based on the relevant information about the CIIP mode. In other words, step 4006 is performed.
[0446] 4005: When CIIP mode is permitted to be used, determine CIIP mode as the target merge mode.
[0447] In other words, in step 4005, if the use of CIIP mode is permitted and none of conditions 1 through 5 are met, then CIIP mode is determined as the target merge mode.
[0448] Optionally, if any one of conditions 1 through 5 is not met, the Available Status Information value, which indicates the availability status of CIIP mode, is set to the first value. When the Available Status Information value, which indicates the availability status of CIIP mode, is the first value, CIIP mode is used to perform picture prediction for the current picture block.
[0449] It should be understood that setting the value of the available status information, which indicates the available status of CIIP mode, to the first value is equivalent to determining that CIIP is the target merge mode.
[0450] Optionally, the available status information indicating the available status of CIIP mode is `ciip_flag`.
[0451] The value of the available status information indicating the available status of CIIP mode being set to the first value specifically means that ciip_flag is set to 1.
[0452] In addition, when the Available Status Information value, which indicates the availability status of CIIP mode, is set to a second value, it may mean that CIIP mode is not used to perform picture prediction for the current picture block. For example, if the Available Status Information value, which indicates the availability status of CIIP mode, is ciip_flag, and ciip_flag=0, then CIIP mode is not used to perform picture prediction for the current picture block.
[0453] 4006: Determine the target merge mode based on the upper-layer syntax elements corresponding to CIIP mode and / or the available status information indicating the available status of CIIP mode.
[0454] The available status information, which indicates the availability status of CIIP mode, is used to indicate whether CIIP mode will be used when the current picture block is predicted.
[0455] In other words, in step 4006, when all conditions 1 through 5 are met, the target merge mode must be further determined based on the upper-level syntax elements corresponding to the CIIP mode and / or available status information indicating the available status of the CIIP mode.
[0456] The available status information indicating the availability status of CIIP mode can be the value of ciip_flag. When ciip_flag is 0, CIIP mode is not available for the current picture block. When ciip_flag is 1, CIIP mode is available for the current picture block.
[0457] Optionally, the determination of the target merge mode based on available status information indicating the upper-layer syntax element corresponding to the CIIP mode and / or the available status of the CIIP mode includes determining the TPM mode as the target merge mode when the available status information indicating the upper-layer syntax element corresponding to the CIIP mode and / or the available status of the CIIP mode indicates that the use of the CIIP mode is prohibited.
[0458] Cases 1 and 3 include cases where the upper-layer syntax elements corresponding to CIIP mode and / or the available status information indicating the availability status of CIIP mode indicate that the use of CIIP mode is prohibited.
[0459] Case 1: The higher-level syntax element corresponding to CIIP mode indicates that the use of CIIP mode is prohibited, and the available status information indicating the availability status of CIIP mode indicates that CIIP mode is unavailable.
[0460] Case 2: The higher-level syntax element corresponding to CIIP mode indicates that CIIP mode is permitted to be used, while the available status information indicating the availability status of CIIP mode indicates that CIIP mode is unavailable.
[0461] Case 3: The available status information, which indicates the availability status of CIIP mode, shows that CIIP mode is unavailable.
[0462] It should be understood that CIIP mode is determined as the target merge mode when the higher-level syntax element corresponding to CIIP mode indicates that CIIP mode is permitted to be used, and the available status information indicating the availability status of CIIP mode indicates that CIIP mode is available.
[0463] Optionally, when the available status information indicating the upper-layer syntax elements corresponding to CIIP mode and / or the available status of CIIP mode indicates that the use of CIIP mode is prohibited, the TPM mode is determined to be the target merge mode, including the following:
[0464] When the higher-layer syntax element corresponding to CIIP mode and / or the available status information indicating the available status of CIIP mode indicates that CIIP mode is prohibited from being used, the value of the available status information indicating the available status of TPM mode is set to the first value, and when the value of the available status information indicating the available status of TPM mode is the first value, TPM mode is used to perform picture prediction for the current picture block.
[0465] It should be understood that setting the value of the available status information, which indicates the available status of TPM mode, to the first value is equivalent to determining that TPM is the target merge mode.
[0466] Optionally, the available status information indicating the available status of TPM mode is MergeTriangleFlag.
[0467] The value of the available status information indicating the available status of TPM mode being set to the first value may specifically mean that MergeTriangleFlag is set to 1.
[0468] In this application, the target merge mode can be determined based on the upper-level syntax elements of the CIIP mode and / or available status information indicating the available status of the CIIP mode, only when five pre-defined conditions are met. Compared to conventional solutions, more conditions must be met before the target merge mode can be further determined based on the upper-level syntax elements of the CIIP mode and available status information. Otherwise, the CIIP mode can be determined directly as the target merge mode. This can reduce some redundant processes in the process of determining the target merge mode.
[0469] From another perspective, when a Level 1 merge mode is unavailable, a decision may be made based on several pre-configured conditions whether to select CIIP mode as the final merge mode, or CIIP mode may be directly determined as the target merge mode if any one of the pre-configured conditions is not met. This reduces the redundancy generated in the process of determining the target merge.
[0470] 4007: Predicts the current picture block based on the target merge mode.
[0471] Optionally, before the target merge mode is determined based on the upper-layer syntax elements corresponding to the CIIP mode and / or the available status information indicating the available status of the CIIP mode, the method shown in Figure 15 is: The further step includes determining whether at least one of the following conditions is met.
[0472] The current picture block size meets the pre-set conditions, and Skip mode is not used to predict the current picture block.
[0473] Optionally, the current picture block size must meet the following three conditions: (cdWidth*cbHeight)≧64, cbWidth<128, and cbHeight<128 This includes satisfying the following conditions.
[0474] cdWidth is the width of the current picture block, and cbHeight is the height of the current picture block.
[0475] The above describes in detail the picture prediction method in an embodiment of this application with reference to the attached drawings. The following describes a picture prediction device in an embodiment of this application with reference to Figure 16. It should be understood that the picture prediction device shown in Figure 16 is capable of performing the steps in the picture prediction method in an embodiment of this application. To avoid unnecessary repetition, the following describes the picture prediction device in this embodiment of this application, appropriately omitting any repeated descriptions.
[0476] Figure 16 is a schematic block diagram of a picture prediction device according to one embodiment of this application.
[0477] The picture prediction device 5000 shown in Figure 16 includes a decision unit 5001 and a prediction unit 5002.
[0478] The picture prediction device 5000 shown in Figure 16 is configured to perform the picture prediction method according to an embodiment of this application. Specifically, the decision unit 5001 in the picture prediction device 5000 may be configured to perform the process of determining the target merge mode in the picture prediction method shown in Figures 13 to 15. The prediction unit 5002 in the picture prediction device 5000 is configured to perform the process of performing a picture prediction for the current picture block based on the target merge mode in the picture prediction method shown in Figures 13 to 15.
[0479] Figure 17 is a schematic diagram of the hardware structure of a picture prediction device according to one embodiment of this application. The picture prediction device 6000 shown in Figure 17 (the device 6000 may specifically be a computer device) includes a memory 6001, a processor 6002, a communication interface 6003, and a bus 6004. Communication between the memory 6001, the processor 6002, and the communication interface 6003 is realized through the bus 6004.
[0480] The memory 6001 may be a read-only memory (ROM), a static storage device, a dynamic storage device, or a random access memory (RAM). The memory 6001 may store a program. When a program stored in the memory 6001 is executed by the processor 6002, the processor 6002 is configured to perform the steps of the picture prediction method in the embodiments of this application.
[0481] The processor 6002 may be a central processing unit (CPU), a microprocessor, an application-specific integrated circuit (ASIC), a graphics processing unit (GPU), or one or more integrated circuits, and is configured to execute a relevant program to implement the picture detection method in an embodiment of the method of this application.
[0482] The processor 6002 may be an integrated circuit chip and has signal processing capabilities. In the implementation process, the steps of the picture prediction method in this application may be completed by using instructions in the form of hardware integrated logic circuits or software in the processor 6002.
[0483] The processor 6002 may alternatively be a general-purpose processor, a digital signal processing (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or another programmable logic device, a separate gate or transistor logic device, or a separate hardware component. The processor 6002 may implement or perform the methods, steps, and logic block diagrams disclosed in embodiments of this application. The general-purpose processor may be a microprocessor, or the processor may be any conventional processor or similar. The steps of the methods disclosed with reference to embodiments of this application may be performed and completed directly by a hardware decoding processor, or by a combination of hardware and software modules within the decoding processor. The software modules may be located in a mature storage medium in the art, such as random-access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, or registers. The storage medium is located in memory 6001. The processor 6002 reads information in the memory 6001 and, in combination with the hardware of the processor 6002, completes a function that needs to be performed by a unit included in the picture prediction device, or performs a picture prediction method in an embodiment of the method of this application.
[0484] The communication interface 6003 uses transceiver equipment, for example, a transceiver, to enable communication between the device 6000 and another device or communication network. For example, information about the neural network to be constructed and the training data required in the neural network construction process can be obtained through the communication interface 6003.
[0485] Bus 6004 may include a path for transmitting information between components of the device 6000 (for example, memory 6001, processor 6002, and communication interface 6003).
[0486] The decision unit 5001 and prediction unit 5002 in the picture prediction device 5000 are equivalent to the processor 6002 in the picture prediction device 6000.
[0487] Figure 18 is a schematic diagram of the hardware structure of a picture encoding / decoding device according to one embodiment of this application. The picture encoding / decoding device 7000 shown in Figure 18 (the device 7000 may specifically be a computer device) includes a memory 7001, a processor 7002, a communication interface 7003, and a bus 7004. Communication connectivity between the memory 7001, the processor 7002, and the communication interface 7003 is realized through the bus 7004.
[0488] The aforementioned limitations and descriptions of the modules within the picture prediction device 6000 also apply to the picture encoding / decoding device 7000, details of which are again not described here.
[0489] Memory 7001 may be configured to store a program. Processor 7002 is configured to execute the program stored in memory 7001. When the program stored in memory 7001 is executed, processor 7002 is configured to perform the steps of the picture prediction method in an embodiment of this application.
[0490] In addition, when encoding a video picture, the picture encoding / decoding device 7000 may acquire the video picture through a communication interface and then encode the acquired video picture to obtain encoded video data. The encoded video data may be transmitted to a video decoding device through a communication interface 7003.
[0491] When decoding a video picture, the picture encoding / decoding device 7000 can acquire the video picture through a communication interface and then decode the acquired video picture in order to obtain the video picture to be displayed.
[0492] A person skilled in the art will recognize, in combination with the examples described in the embodiments disclosed in this specification, that the steps of the units and algorithms may be implemented by electronic hardware, or by a combination of computer software and electronic hardware. Whether the functions are performed by hardware or software depends on the specific application and the design constraints of the technical solution. A person skilled in the art may use different methods to implement the functions described for each specific application, but the implementation should not be considered to be beyond the scope of this application.
[0493] For the sake of a convenient and simple explanation, please refer to the corresponding processes in the embodiments of the aforementioned methods for detailed operating processes of the aforementioned systems, apparatus, and units, as it will be readily apparent to those skilled in the art that details are not described again here.
[0494] It should be understood that, in some embodiments provided in this application, the systems, apparatus, and methods disclosed may be implemented in other ways. For example, the embodiments of the apparatus described are merely examples. For example, a unit division is merely a logical functional division and may be other divisions in actual implementations. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not performed. In addition, the mutual coupling, direct coupling, or communication connection shown or discussed may be implemented through some interfaces. Indirect coupling or communication connection between apparatus or units may be implemented in electronic, mechanical, or other forms.
[0495] Units described as separate parts may or may not be physically separate, and parts shown as units may or may not be physical units, may be located in one location, or may be distributed across multiple network units. Some or all of the units may be selected based on the actual requirements for achieving the objectives of the solution of the embodiment.
[0496] In addition, the functional units in the embodiments of this application may be integrated into a single processing unit, or each unit may exist physically independently, or two or more units may be integrated into a single unit.
[0497] When a function is implemented in the form of a software function unit and sold or used as an independent product, the function may be stored on a computer-readable storage medium. Based on such understanding, the technical solutions of this application, or parts of the technical solutions that contribute to the prior art, or some of the technical solutions, may be implemented in the form of a software product. The software product includes several instructions stored on a storage medium for instructing a computer device (which may be a personal computer, a server, or a network device) to perform all or some of the steps of the method described in embodiments of this application. The aforementioned storage medium includes any medium capable of storing program code, such as a USB flash drive, a removable hard disk, read-only memory (ROM), random access memory (RAM), a magnetic disk, or an optical disk.
[0498] The foregoing description is merely a specific implementation of this application and is not intended to limit the scope of protection of this application. Any modification or substitution that is readily understood by those skilled in the art within the technical scope disclosed in this application should fall within the scope of protection of this application. Accordingly, the scope of protection of this application should be subject to the scope of protection of the claims. [Explanation of Symbols]
[0499] 10 Video encoding and decoding systems 12. Source devices, source equipment 13 links 14 Destination device, destination equipment 16 Picture Sources 17 Raw picture data 18 Picture Preprocessor 19 Pre-processed pictures, pre-processed picture data 20 encoders 21 Encoded picture data 22 Communication Interfaces 28 Communication Interfaces 30 Decoders 31 Decrypted picture, decrypted picture data 32 Picture Post-Processors 33 Post-processed picture data 34 Display Devices 40 Video Coding Systems 41 Imaging devices 42 Antennas 43 processors 44 memory 45 Display devices 46 Processing Units 47 Logic Circuits 201 Pictures 202 inputs 203 Picture Block, Picture Image Block 204 Residual Calculation Unit 205 Residual Block 206 Conversion Processing Unit 207 Conversion coefficient 208 Quantization Units 209 Quantized transformation coefficients, quantized residual coefficients 210 Inverse Quantization Unit 211 Dequantized coefficients, dequantized residual coefficients 212 Inverse Transform Processing Unit 213 Inverse transform block, Inverse transform dequantized block, Inverse transform residual block, Reconstructed residual block 214 Reconstruction Unit 215 Reconstructed Blocks 216 Buffers, buffer units, line buffers 220 Loop Filter Units, Loop Filters, Filters 221 Filtered blocks, filtered and reconstructed blocks 230 Decoded picture buffer, DBP 231 Decrypted picture 244 Interpretation Units 245 Interpretation Block, Prediction Block 254 Intra Prediction Units 255 Intra Prediction Blocks, Prediction Blocks 260 prediction processing units, block prediction processing units 262 Mode Selection Unit 265 Prediction Blocks 270 Entropy Coding Units 272 Output 304 Entropy Decoding Unit 309 Quantized coefficients 310 Inverse Quantization Unit 312 Inverse Transform Processing Unit 313 Reconstructed residual blocks, inverse transform blocks 314 Reconstruction Unit, Adder 315 Reconstructed Blocks 316 buffers 320 Loop Filters, Loop Filter Units, Filters 321 Filtered blocks, decoded video blocks 330 Decoded picture buffer, DPB 332 output 344 Interpretation Units 354 Intra Prediction Units 360 Predictive Processing Unit 362 Mode Selection Unit 365 Prediction Block 400 video coding devices, video encoding devices, video decoding devices 410 Input Ports 420 Receiver Unit (Rx), Receiver Unit 430 Central Processing Unit (CPU), Processor 440 Transmitter Unit (Tx), Transmitter Unit 450 output ports 460 memory 470 coding modules, encoding modules, decoding modules, encoding / decoding modules 500 devices, coding devices, video communication systems 510 Processor 530 memory 533 Operating Systems 535 Application Programs 550 bus system, bus 570 displays 600 Source Device 601 Video Capture Device 602 video memory, processor 603 Video Encoder 604 Transmitter 700 Destination device 701 Receiver 702 Video Decoder 703 Display device 800 channels 5000 Picture Prediction Device 5001 Decision Unit 5002 Prediction Units 6000 picture prediction device, device 6001 memory 6002 Processor 6003 Communication Interface 6004 Bus 7000 Destination device, picture encoding / decoding device, device 7001 memory 7002 Processor 7003 Communication Interface 7004 Bus
Claims
1. A method for storing an encoded bitstream of video data, The steps include receiving a bitstream generated by a picture prediction method, The steps include storing the bitstream in a storage medium and The picture prediction method includes, A step to determine whether merge mode is used for the current picture block, A step of determining whether a Level 1 merge mode is available when the merge mode is used for the current picture block, wherein the Level 1 merge mode includes a normal merge mode. Steps to determine a second merge mode in the Level 2 merge mode as a target merge mode applicable to the current picture block, given that the Level 1 merge mode is unavailable and a higher-level syntax element corresponding to a first merge mode in the Level 2 merge mode indicates that the use of the first merge mode is prohibited, wherein the Level 2 merge mode includes the first merge mode and the second merge mode, the first merge mode being a Triangulation Mode (TPM) and the second merge mode being a Combined Intra and Interpretation (CIIP) mode; A step of predicting the current picture block based on the target merge mode. The bitstream includes, A syntax element indicating whether the merge mode is used for the picture block, A syntax element indicating whether the Level 1 merge mode is available for the picture block, A higher-level syntax element indicating whether the use of the first merge mode is prohibited, corresponding to the first merge mode in the Level 2 merge mode, The encoded data of the aforementioned picture block, A method in which a picture block is predicted to be used using the second merge mode, including the use of the merge mode, where the Level 1 merge mode is unavailable and the use of the first merge mode is prohibited.
2. The aforementioned picture prediction method, The method according to claim 1, further comprising the step of determining the target merge mode based on the available status information of the upper layer syntax element corresponding to the second merge mode in the level 2 merge mode and / or the second merge mode, when the level 1 merge mode is not available and the upper layer syntax element corresponding to the first merge mode in the level 2 merge mode indicates that the first merge mode is permitted to be used, wherein the available status information of the second merge mode is used to indicate whether the second merge mode is used when the current picture block is expected.
3. The step of determining the target merge mode based on the upper layer syntax elements corresponding to the second merge mode and / or the available status information of the second merge mode, The method of claim 2, comprising the step of determining the first merge mode as the target merge mode when the available status information of the upper layer syntax element and / or the second merge mode corresponding to the second merge mode indicates that the use of the second merge mode is prohibited.
4. Prior to the step of determining the target merge mode based on the upper layer syntax elements corresponding to the second merge mode and / or the available status information of the second merge mode, the picture prediction method: The current picture block described above meets the following conditions, namely: The current picture block size satisfies the pre-set conditions. Skip mode is not used to predict the current picture block. The method according to claim 2 or 3, further comprising the step of determining that at least one of the following conditions is met.
5. The current picture block size satisfies the pre-set conditions. The current picture block described above meets the following three conditions, namely: (cdWidth*cbHeight)≧64, cbWidth<128, and cbHeight<128 This includes satisfying the following conditions: The method according to claim 4, wherein cdWidth is the width of the current picture block and cbHeight is the height of the current picture block.
6. The method according to any one of claims 1 to 5, wherein the upper-level syntax element is a syntax element at at least one of the sequence level, picture level, slice level, and slice group level.
7. The method according to any one of claims 1 to 6, wherein the Level 1 merge mode further includes a motion vector difference (MMVD) mode and a subblock merge mode.
8. A system for storing an encoded bitstream of video data, A receiving unit configured to receive a bitstream generated by using a picture prediction method, A storage unit configured to store the bitstream and The picture prediction method includes, A step to determine whether merge mode is used for the current picture block, A step of determining whether a Level 1 merge mode is available when the merge mode is used for the current picture block, wherein the Level 1 merge mode includes a normal merge mode. Steps to determine a second merge mode in the Level 2 merge mode as a target merge mode applicable to the current picture block, given that the Level 1 merge mode is unavailable and a higher-level syntax element corresponding to a first merge mode in the Level 2 merge mode indicates that the use of the first merge mode is prohibited, wherein the Level 2 merge mode includes the first merge mode and the second merge mode, the first merge mode being a Triangulation Mode (TPM) and the second merge mode being a Combined Intra and Interpretation (CIIP) mode; A step of predicting the current picture block based on the target merge mode. The bitstream includes, A syntax element indicating whether the merge mode is used for the picture block, A syntax element indicating whether the Level 1 merge mode is available for the picture block, A higher-level syntax element indicating whether the use of the first merge mode is prohibited, corresponding to the first merge mode in the Level 2 merge mode, The encoded data of the aforementioned picture block, A system in which a picture block is predicted to be used using the second merge mode, where the Level 1 merge mode is unavailable and the use of the first merge mode is prohibited, and the merge mode is used in that picture block.
9. The aforementioned picture prediction method, The system according to claim 8, further comprising the step of determining the target merge mode based on the available status information of the upper layer syntax element corresponding to the second merge mode in the level 2 merge mode and / or the second merge mode, when the level 1 merge mode is unavailable and the upper layer syntax element corresponding to the first merge mode in the level 2 merge mode indicates that the first merge mode is permitted to be used, wherein the available status information of the second merge mode is used to indicate whether the second merge mode is used when the current picture block is expected.
10. The step of determining the target merge mode based on the upper layer syntax elements corresponding to the second merge mode and / or the available status information of the second merge mode, The system according to claim 9, comprising the step of determining the first merge mode as the target merge mode when the available status information of the upper layer syntax element and / or the second merge mode corresponding to the second merge mode indicates that the use of the second merge mode is prohibited.
11. Prior to the step of determining the target merge mode based on the upper layer syntax elements corresponding to the second merge mode and / or the available status information of the second merge mode, the picture prediction method: The current picture block described above meets the following conditions, namely: The current picture block size satisfies the pre-set conditions. Skip mode is not used to predict the current picture block. The system according to claim 9 or 10, further comprising the step of determining that at least one of the following conditions is met.
12. The current picture block size satisfies the pre-set conditions. The current picture block described above meets the following three conditions, namely: (cdWidth*cbHeight)≧64, cbWidth<128, and cbHeight<128 This includes satisfying the following conditions: The system according to claim 11, wherein cdWidth is the width of the current picture block and cbHeight is the height of the current picture block.
13. The system according to any one of claims 8 to 12, wherein the upper-level syntax element is a syntax element at at least one of the sequence level, picture level, slice level, and slice group level.
14. The system according to any one of claims 8 to 13, wherein the Level 1 merge mode further includes a motion vector difference (MMVD) mode and a subblock merge mode.
15. A method for storing an encoded bitstream of video data, The steps include receiving a bitstream, The steps include storing the bitstream in a storage medium and The bitstream includes, A method comprising: a syntax element indicating whether a merge mode is used for a picture block; a syntax element indicating whether a level 1 merge mode is available for the picture block; a higher layer syntax element indicating whether the use of the first merge mode is prohibited, corresponding to a first merge mode in a level 2 merge mode; and encoded data of the picture block, wherein the level 2 merge mode includes the first merge mode and a second merge mode, the level 1 merge mode includes a normal merge mode, the first merge mode is a triangulation mode (TPM), and the second merge mode is a combined intra and interprediction (CIIP) mode, and in the bitstream, prediction information corresponding to the second merge mode is placed following the syntax element corresponding to the first merge mode, and a picture block for which the merge mode is used, the level 1 merge mode is not available, and the use of the first merge mode is prohibited is predicted using the second merge mode.
16. A system for storing an encoded bitstream of video data, A receiving unit configured to receive a bitstream, A storage unit configured to store the bitstream and The bitstream includes, A system comprising: a syntax element indicating whether a merge mode is used for a picture block; a syntax element indicating whether a level 1 merge mode is available for the picture block; a higher layer syntax element indicating whether the use of the first merge mode is prohibited, corresponding to a first merge mode in a level 2 merge mode; and encoded data of the picture block, wherein the level 2 merge mode includes the first merge mode and a second merge mode; the level 1 merge mode includes a normal merge mode; the first merge mode is a triangulation mode (TPM); the second merge mode is a combined intra and interprediction (CIIP) mode; and in the bitstream, prediction information corresponding to the second merge mode is placed following the syntax element corresponding to the first merge mode; and picture blocks for which the merge mode is used, the level 1 merge mode is not available, and the use of the first merge mode is prohibited are predicted using the second merge mode.