Signaling of combined inter-frame and intra-frame prediction

By combining the inter-frame and intra-frame prediction (CIIP) technology and the historical motion vector prediction (HMVP) table, the encoding and decoding of video blocks are optimized, which solves the problem of low encoding efficiency in existing video encoding and decoding standards and achieves more efficient video data transmission and quality improvement.

CN113545046BActive Publication Date: 2025-09-26DOUYIN VISION CO LTD +1
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202080019416.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-08-14
Filing Date
2020-03-23
Publication Date
2025-09-26
Estimated Expiration
2040-03-23

AI Technical Summary

Technical Problem

Existing video codec standards have problems with low coding efficiency and high bandwidth requirements when processing video data. Especially in the transmission of high-resolution and high-frame-rate video data, it is difficult to effectively utilize the combination of inter-frame and intra-frame prediction to improve coding efficiency.

Method used

The combined inter-frame and intra-frame prediction (CIIP) technology is adopted to optimize the codec representation of video blocks by weighted averaging the intra-frame and inter-frame prediction results, combining diffusion filtering, bilateral filtering and transform domain filtering, and using the historical motion vector prediction (HMVP) table to store the prediction mode to achieve efficient encoding and decoding of video blocks.

Benefits of technology

It improves video coding efficiency, reduces bandwidth requirements, improves video quality and coding efficiency, and is suitable for HEVC and future video codec standards.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113545046B_ABST
    Figure CN113545046B_ABST
Patent Text Reader

Abstract

The present application relates to signaling of combined inter-frame and intra-frame prediction. A video processing method comprises: during conversion between a current video block in video data and a bitstream representation of the current video block, encoding and decoding a combined inter-frame and intra-frame prediction (CIIP) flag of the current video block using a context model-based codec without referencing CIIP flags of one or more adjacent video blocks to the current video block; and performing the conversion by at least applying the combined inter-frame and intra-frame prediction (CIIP) flag of the current video block.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application is a China national phase application of International Patent Application No. PCT / CN2020 / 080631, filed on March 23, 2020. This application promptly claims priority to and the benefits of International Patent Application No. PCT / CN2019 / 079148, filed on March 21, 2019, and International Patent Application No. PCT / CN2019 / 100616, filed on August 14, 2019. The entire disclosures of International Patent Application No. PCT / CN2019 / 079148 and International Patent Application No. PCT / CN2019 / 100616 are incorporated herein by reference and made a part of this application. Technical Field

[0003] This document deals with video and image encoding and decoding techniques. Background Art

[0004] Digital video consumes the largest amount of bandwidth on the Internet and other digital communications networks. As the number of connected user devices capable of receiving and displaying video increases, bandwidth requirements for digital video usage are expected to continue to grow. Summary of the Invention

[0005] The disclosed techniques may be used by video, image decoder or encoder embodiments where combined inter-frame and intra-frame prediction is used.

[0006] In one example aspect, a method of processing a video is disclosed, the method comprising: determining a codec mode of a first video block, constraining one or more flags to an operational state based on the determination of the codec mode of the first video block, the operational state being either false or true; and performing further processing of a second video block based on the operational state of the one or more flags, wherein the first video block is a neighboring video block or a reference video block related to the second video block.

[0007] In another example aspect, a method of processing a video is disclosed. The method includes determining to use pairwise prediction or combined bi-directional prediction for a first video block; determining an operational state of combined inter-frame and intra-frame prediction (CIIP) based on the determination to use pairwise prediction or combined bi-directional prediction, wherein the operational state is enabled or disabled; and performing further processing of the first video block according to the operational state of the CIIP.

[0008] In another example aspect, another method of video processing is disclosed. The method includes performing conversion between a video block of a video and a codec representation of the video block using a combined inter-frame and intra-frame prediction mode, wherein the codec representation corresponds to a weighted average of intra-frame and inter-frame prediction results for the video block using weight pairs from a set of weight pairs, the set of weight pairs comprising fewer than three pairs.

[0009] In another example aspect, another method of video processing is disclosed. The method includes performing conversion between a video block of a video and a codec representation of the video block using a combined inter-frame intra prediction mode, wherein the codec representation corresponds to a weighted average of intra-frame and inter-frame prediction results for the video block using weight pairs from a set of weight pairs determined by codec information of one or more neighboring blocks.

[0010] In another example aspect, another method of video processing is disclosed. The method includes: determining one or more codec modes for one or more second blocks during conversion between a first block in video data and a bitstream representation of the first block; determining a codec mode constraint for the first block based on the one or more codec modes of the one or more second blocks; and performing the conversion by at least applying the codec mode constraint for the first block; wherein the one or more second blocks include at least one of a neighboring block, a non-neighboring block, and a reference block of the first block.

[0011] In another example aspect, another method of video processing is disclosed, the method comprising performing conversion between a current block in video data and a bitstream representation of the current block using at least one of combined inter-frame intra-frame prediction (CIIP), diffusion filtering, bilateral filtering, transform-domain filtering, or another type of post-reconstruction filtering different from diffusion filtering, bilateral filtering, and transform-domain filtering, wherein reconstructed neighboring samples of the current block used in at least one of combined inter-frame intra-frame prediction (CIIP), diffusion filtering, bilateral filtering, transform-domain filtering, or another type of post-reconstruction filtering are replaced with approximate samples generated from corresponding samples of reconstructed neighboring samples in one or more reference pictures.

[0012] In another example aspect, another method of video processing is disclosed, the method comprising: storing a combined inter-frame intra-frame prediction (CIIP) mode flag and / or an intra-frame mode in a history-based motion vector prediction (HMVP) table along with motion information; and performing conversion between a current block in video data and a bitstream representation of the current block based on at least the HMVP table.

[0013] In another example aspect, another method of video processing is disclosed. The method includes: determining a prediction mode for a current block in video data during conversion between a current block and a bitstream representation of the current block; determining applicability of a combined inter-frame intra-frame prediction (CIIP) mode, the applicability indicating that the CIIP mode is enabled for the current block in response to determining that the current block is encoded using an advanced motion vector prediction (AMVP) mode or a merge mode; and performing the conversion based on the applicability of the CIIP mode.

[0014] In another example aspect, another method of video processing is disclosed, the method comprising: determining a type of a selected merge candidate for a current block during conversion between a current block in video data and a bitstream representation of the current block; and determining suitability of combined inter-intra prediction (CIIP) for the current block based on the type of the selected merge candidate, wherein the current block is encoded in merge mode.

[0015] In another example aspect, another method of video processing is disclosed. The method includes, during conversion between a current video block in video data and a bitstream representation of the current video block, encoding and decoding a combined inter-frame and intra-frame prediction (CIIP) flag of the current video block using a context model-based codec without referencing CIIP flags of one or more neighboring video blocks to the current video block, and performing the conversion by at least applying the combined inter-frame and intra-frame prediction (CIIP) flag of the current video block.

[0016] In another example aspect, another method of video processing is disclosed. The method includes: encoding and decoding a combined inter-frame intra prediction (CIIP) flag of the current video block with a bypass codec during conversion between a current video block in video data and a bitstream representation of the current video block; and performing the conversion by at least applying the combined inter-frame intra prediction (CIIP) flag.

[0017] In another example aspect, another method of video processing is disclosed, the method comprising determining an intra-prediction mode for a first video block of a video according to a rule, wherein the rule comprises skipping checking a combined inter-intra prediction (CIIP) flag of one or more neighboring video blocks of the first video block during intra-prediction mode derivation for the first video block, and performing conversion between the first video block and a bitstream representation of the first video block based at least on the determined intra-prediction mode.

[0018] In another example aspect, another method of video processing is disclosed, the method comprising: during conversion between a current video block of a video encoded and decoded in a combined inter-frame intra-frame prediction (CIIP) mode and a bitstream representation of the current video block, determining a weight pair based on one or more neighboring video blocks of the current video block, the weight pair comprising a first weight for a first predictor of the current video block and a second weight for a second predictor of the current video block, wherein the first predictor is generated by an intra-frame prediction mode and the second predictor is generated by an inter-frame prediction mode; and determining a predictor for the current block based on a weighted sum of the first predictor and the second predictor.

[0019] In another example aspect, the above method may be implemented by a video decoder device including a processor.

[0020] In yet another example aspect, the methods may be implemented in the form of processor-executable instructions and stored on a computer-readable program medium.

[0021] These and other aspects are described further herein. BRIEF DESCRIPTION OF THE DRAWINGS

[0022] Figure 1 An example of the derivation process of Merge candidate list construction is shown.

[0023] Figure 2 An example of the location of spatial merge candidates is shown.

[0024] Figure 3 An example of candidate pairs considered for redundancy checking of spatial merge candidates is shown.

[0025] Figure 4 Examples of the position of the second PU for N×2N and 2N×N partitions are shown.

[0026] Figure 5 An example of motion vector scaling of a temporal merge candidate is shown.

[0027] Figure 6 Examples of candidate positions C0 and C1 of the time-domain Merge candidate are shown.

[0028] Figure 7 An example of combining bi-predictive Merge candidates is shown.

[0029] Figure 8 An example of a derivation process of motion vector prediction candidates is shown.

[0030] Figure 9 An example of motion vector scaling of spatial motion vector candidates is shown.

[0031] Figure 10An example of optional temporal motion vector prediction (ATMVP) for a coding unit (CU) is shown.

[0032] Figure 11 An example of neighboring sample points used to derive IC parameters is shown.

[0033] Figure 12 An example of a final motion vector expression (UMVE) search process is shown.

[0034] Figure 13 An example of a UMVE search point is shown.

[0035] Figure 14 An example of a decoding flow chart using the proposed HMVP method is shown.

[0036] Figure 15 An example of updating a table in the proposed HMVP method is shown.

[0037] Figure 16 An example of a symmetric pattern is shown.

[0038] Figure 17 An example of neighboring samples of the current block and their corresponding samples in the reference picture is shown.

[0039] Figure 18 is a block diagram of an example of a video processing device.

[0040] Figure 19 A block diagram of an example implementation of a video encoder is shown.

[0041] Figure 20 is a flowchart of an example of a video processing method.

[0042] Figure 21 is a flowchart of an example of a video processing method.

[0043] Figure 22 Examples of upper and left neighboring blocks used in CIIP weight evaluation are shown.

[0044] Figure 23 is a flowchart of an example of a video processing method.

[0045] Figure 24 is a flowchart of an example of a video processing method.

[0046] Figure 25 is a flowchart of an example of a video processing method.

[0047] Figure 26 is a flowchart of an example of a video processing method.

[0048] Figure 27is a flowchart of an example of a video processing method.

[0049] Figure 28 is a flowchart of an example of a video processing method.

[0050] Figure 29 is a flowchart of an example of a video processing method.

[0051] Figure 30 is a flowchart of an example of a video processing method.

[0052] Figure 31 is a flowchart of an example of a video processing method. DETAILED DESCRIPTION

[0053] This document provides various techniques that can be used by decoders of image or video bitstreams to improve the quality of decompressed or decoded digital video or images. For brevity, the term "video" is used herein to include both sequences of pictures (conventionally referred to as video) and individual images. In addition, video encoders can also implement these techniques during the encoding process to reconstruct decoded frames for further encoding.

[0054] For ease of understanding, the section headings are used herein and do not limit the embodiments and techniques to the corresponding sections. Therefore, embodiments from one section can be combined with embodiments from other sections.

[0055] 1. Overview

[0056] This article relates to video coding and decoding technology. Specifically, it relates to combined inter-frame and intra-frame prediction (CIIP) in video encoding or decoding. It can be applied to existing video codec standards such as HEVC, or to a pending standard (Multi-functional Video Codec). It may also be applicable to future video codec standards or video codecs.

[0057] 2. Background

[0058] Video codec standards have evolved primarily through the development of the well-known ITU-T and ISO / IEC standards. ITU-T produced H.261 and H.263, ISO / IEC produced MPEG-1 and MPEG-4 video, and the two organizations worked together to produce H.262 / MPEG-2 video, H.264 / MPEG-4 Advanced Video Codec (AVC), and H.265 / HEVC[1]. Since H.262, video codec standards have been based on a hybrid video codec architecture that utilizes temporal prediction plus transform coding. To explore future video codec technologies beyond HEVC, VCEG and MPEG jointly established the Joint Video Exploration Team (JVET) in 2015. Since then, JVET has adopted many new approaches and implemented them in a reference software called the Joint Exploration Model (JEM). In April 2018, the Joint Video Experts Team (JVET) between VCEG (Q6 / 16) and ISO / IEC JTC1 SC29 / WG11 (MPEG) was established to work on the VVC standard with the goal of reducing bitrate by 50% compared to HEVC.

[0059] Figure 19 is a block diagram of an exemplary implementation of a video encoder. Figure 19 The encoder implementation is shown to have a built-in feedback path, where the video encoder also performs a video decoding function (reconstructing a compressed representation of the video data for use in encoding of the next video data).

[0060] 2.1 Inter-frame prediction in HEVC / H.265

[0061] Each inter-predicted PU has motion parameters for one or two reference picture lists. The motion parameters include motion vectors and reference picture indices. The use of one of the two reference picture lists can also be signaled using inter_pred_idc. The motion vector can be explicitly coded as a delta relative to the predictor.

[0062] When a CU is coded in skip mode, a PU is associated with the CU and has no significant residual coefficients, no coded motion vector increments or reference picture indices. A Merge mode is specified, by which the motion parameters of the current PU can be obtained from neighboring PUs (including spatial and temporal candidates). Merge mode can be applied to any inter-predicted PU, not just skip mode. An alternative to Merge mode is explicit transmission of motion parameters, where the motion vector (more precisely, the motion vector difference compared to the motion vector predictor), the corresponding reference picture index of each reference picture list, and the use of the reference picture list are explicitly signaled per PU. In this disclosure, such a mode is named Advanced Motion Vector Prediction (AMVP).

[0063] When signaling indicates that one of the two reference picture lists is to be used, a PU is generated from one of the samples. This is called "unidirectional prediction." Unidirectional prediction is available for both P slices and B slices.

[0064] When signaling indicates that two reference picture lists are to be used, a PU is generated from two blocks of samples. This is called "bi-prediction." Bi-prediction is only available for B slices.

[0065] The following provides details about inter prediction modes specified in HEVC. The description will start with Merge mode.

[0066] 2.1.1Merge Mode

[0067] 2.1.1.1 Merge Mode Candidate Derivation

[0068] When using Merge mode to predict a PU, the index pointing to the entry in the Merge candidate list is parsed from the bitstream and the motion information is retrieved using the index. The construction of this list is specified in the HEVC standard and can be summarized in the following steps:

[0069] Step 1: Initial candidate derivation

[0070] Step 1.1: Spatial Candidate Derivation

[0071] Step 1.2: Spatial Candidate Redundancy Check

[0072] Step 1.3: Time Domain Candidate Derivation

[0073] Step 2: Additional candidate insertions

[0074] Step 2.1: Create bidirectional prediction candidates

[0075] Step 2.2: Insert zero motion candidates

[0076] exist Figure 1These steps are also schematically shown in . For spatial domain Merge candidate derivation, at most four Merge candidates are selected from candidates located at five different positions. For time domain Merge candidate derivation, at most one Merge candidate is selected from two candidates. Since the number of candidates for each PU is assumed to be constant at the decoder, additional candidates are generated when the number of candidates obtained from step 1 does not reach the maximum number of Merge candidates (maxNumMergeCand) signaled in the slice header. Since the number of candidates is constant, the index of the best Merge candidate is encoded using truncated unary binarization (TU). If the size of the CU is equal to 8, all PUs of the current CU share a Merge candidate list, which is the same as the Merge candidate list of the 2N×2N prediction unit.

[0077] Hereinafter, operations associated with the aforementioned steps are described in detail.

[0078] 2.1.1.2 Spatial Candidate Derivation

[0079] In the derivation of spatial Merge candidates, Figure 2 A maximum of four Merge candidates are selected from the candidates at the positions shown. The derivation order is A1, B1, B0, A0 and B2. Position B2 is considered only when any PU at position A1, B1, B0, A0 is unavailable (for example, because it belongs to another slice or piece) or is intra-coded. After adding the candidate at position A1, a redundancy check is performed on the remaining candidates, which ensures that candidates with the same motion information are excluded from the list, thereby improving coding. In order to reduce the computational complexity, not all possible candidate pairs are considered in the mentioned redundancy check. Instead, only the pairs with Figure 3 The pairs linked by arrows in are considered and candidates are added to the list only if the corresponding candidates for redundancy checking do not have the same motion information. Another source of duplicate motion information is the "second PU" associated with a different partition of 2Nx2N. For example, Figure 4 The second PU is described for the N×2N and 2N×N cases, respectively. When the current PU is partitioned into N×2N, the candidate at position A1 is not considered for list construction. In fact, adding this candidate may result in two prediction units with the same motion information, which is redundant for a codec with only one PU. Similarly, position B1 is not considered when the current PU is partitioned into 2N×N.

[0080] 2.1.1.3 Time Domain Candidate Derivation

[0081] In this step, only one candidate is added to the list. In particular, in the derivation of this temporal merge candidate, a scaled motion vector is derived based on the collocated PU belonging to the picture with the smallest POC difference with the current picture in the given reference picture list. The reference picture list used to derive the collocated PU is explicitly signaled in the slice header. Figure 5 The reference picture index of the temporal merge candidate is set to zero. The actual implementation of the scaling process is described in the HEVC specification. For B slices, two motion vectors are obtained (one for reference picture list 0 and the other for reference picture list 1) and combined to form a bidirectional prediction merge candidate.

[0082] In the collocated PU(Y) belonging to the reference frame, the position of the temporal candidate is selected between candidates C0 and C1, such as Figure 6 If the PU at position C0 is not available, intra-coded, or outside the current CTU row, position C1 is used. Otherwise, position C0 is used for the derivation of the temporal merge candidate.

[0083] 2.1.1.4 Additional Candidate Insertion

[0084] In addition to spatial and temporal Merge candidates, there are two additional types of Merge candidates: combined bi-predictive Merge candidate and zero Merge candidate. Combined bi-predictive Merge candidate is generated using spatial and temporal Merge candidates. Combined bi-predictive Merge candidate is only used for B slices. Combined bi-predictive candidate is generated by combining the first reference picture list motion parameters of the initial candidate with the second reference picture list motion parameters of another candidate. If the two tuples provide different motion hypotheses, they will form a new bi-predictive candidate. As an example, Figure 7 This is shown where two candidates in the original list (on the left) with MVL0 and refIdxL0 or MVL1 and refIdxL1 are used to create a combined bi-predictive Merge candidate that is added to the final list (on the right). A number of rules are defined regarding the combinations that are considered to generate these additional Merge candidates.

[0085] Zero-motion candidates are inserted to fill the remaining entries in the Merge candidate list, reaching the capacity of MaxNumMergeCand. These candidates have zero spatial displacement and a reference picture index that starts at zero and increases each time a new zero-motion candidate is added to the list. The number of reference frames used by these candidates is 1 and 2 for unidirectional and bidirectional prediction, respectively. Finally, no redundancy check is performed on these candidates.

[0086] 2.1.1.5 Motion Estimation Regions for Parallel Processing

[0087] To speed up the encoding process, motion estimation can be performed in parallel, thereby deriving motion vectors for all prediction units in a given region at the same time. Deriving merge candidates from spatial neighbors may interfere with parallel processing because a prediction unit cannot derive motion parameters from neighboring PUs until its associated motion estimation is completed. To alleviate the trade-off between codec efficiency and processing latency, HEVC uses the "log2_parallel_merge_level_minus2" syntax element to define a motion estimation region (MER) whose size is signaled in the picture parameter set. When defining the MER, merge candidates that fall into the same region are marked as unavailable and are therefore not considered in the list construction.

[0088] 2.1.2AMVP

[0089] AMVP exploits the spatiotemporal correlation of motion vectors with neighboring PUs for explicit transmission of motion parameters. For each reference picture list, a motion vector candidate list is first constructed by checking the availability of the temporally neighboring PU positions to the upper left, removing redundant candidates, and adding zero vectors to make the candidate list length constant. The encoder can then select the best predictor from the candidate list and send the corresponding index indicating the selected candidate. Similar to Merge index signaling, the index of the best motion vector candidate is encoded using truncated unary. In this case, the maximum value to be encoded is 2 (see Figure 8 ). In the following sections, details on the derivation process of motion vector prediction candidates are provided.

[0090] 2.1.2.1 Derivation of AMVP Candidates

[0091] Figure 8 The process of deriving motion vector prediction candidates is summarized.

[0092] In motion vector prediction, two types of motion vector candidates are considered: spatial motion vector candidates and temporal motion vector candidates. For the derivation of spatial motion vector candidates, based on the Figure 2 The motion vectors of each PU at the five different positions shown ultimately lead to two motion vector candidates.

[0093] For temporal motion vector candidate derivation, a motion vector candidate is selected from two candidates derived based on two different collocated positions. After making the first list of spatiotemporal candidates, duplicate motion vector candidates are removed from the list. If the number of potential candidates is greater than two, motion vector candidates with reference picture indices greater than 1 in the associated reference picture list are removed from the list. If the number of spatiotemporal motion vector candidates is less than two, an additional zero motion vector candidate is added to the list.

[0094] 2.1.2.2 Spatial Motion Vector Candidates

[0095] When deriving spatial motion vector candidates, at most two candidates are considered among five potential candidates, which come from Figure 2 PUs at the positions shown are the same as those of the motion merge. The derivation order on the left side of the current PU is defined as A0, A1, and scaled A0, scaled A1. The derivation order on the upper side of the current PU is defined as B0, B1, B2, scaled B0, scaled B1, scaled B2. Therefore, there are four cases on each side that can be used as motion vector candidates, two of which do not require spatial scaling, and two use spatial scaling. The four different cases are summarized as follows:

[0096] --No airspace scaling

[0097] (1) Same reference picture list and same reference picture index (same POC)

[0098] (2) Different reference picture lists, but the same reference picture (same POC)

[0099] --Airspace scaling

[0100] (3) Same reference picture list, but different reference pictures (different POC)

[0101] (4) Different reference picture lists and different reference pictures (different POC)

[0102] First, the case without spatial scaling is checked, followed by the case where spatial scaling is allowed. Spatial scaling is considered whenever the POC differs between the reference pictures of the neighboring PU and the current PU, regardless of the reference picture list. If all PUs of the left candidate are unavailable or intra-coded, then scaling of the above motion vectors is allowed to facilitate parallel derivation of the left and above MV candidates. Otherwise, spatial scaling of the above motion vectors is not allowed.

[0103] In the spatial scaling process, the motion vectors of neighboring PUs are scaled in a similar way to temporal scaling, such as Figure 9The main difference is that the reference picture list and index of the current PU are given as input; the actual scaling process is the same as the time domain scaling process.

[0104] 2.1.2.3 Temporal Motion Vector Candidates

[0105] Except for the derivation of the reference picture index, all derivation processes of the temporal Merge candidate are the same as those of the spatial motion vector candidate (see Figure 6 ). The reference picture index is signaled to the decoder.

[0106] 2.2 New inter-frame prediction method

[0107] 2.2.1 Motion Vector Prediction Based on Sub-CU

[0108] In JEM with QTBT, each CU can have at most one set of motion parameters for each prediction direction. By dividing a large CU into sub-CUs and deriving motion information for all sub-CUs of the large CU, two sub-CU-level motion vector prediction methods are considered in the encoder. The optional temporal motion vector prediction (ATMVP) method allows each CU to extract multiple sets of motion information from multiple blocks smaller than the current CU in the collocated reference picture. In the spatial-temporal motion vector prediction (STMVP) method, the motion vector of the sub-CU is recursively derived by using the temporal motion vector predictor and the spatial neighboring motion vectors.

[0109] In order to maintain a more accurate motion field for sub-CU motion prediction, motion compression of reference frames is currently disabled.

[0110] 2.2.1.1 Optional Temporal Motion Vector Prediction

[0111] In the optional temporal motion vector prediction (ATMVP) method, the motion vector temporal motion vector prediction (TMVP) is modified by extracting multiple sets of motion information (including motion vectors and reference indices) from blocks smaller than the current CU. Figure 10 As shown, the sub-CU is a square N×N block (N is set to 4 by default).

[0112] ATMVP predicts the motion vectors of sub-CUs within a CU in two steps. The first step is to use the so-called time domain vector to identify the corresponding block in the reference picture. The reference picture is called the motion source picture. The second step is to divide the current CU into sub-CUs and obtain the reference index and motion vector of each sub-CU from the block corresponding to each sub-CU, such as Figure 10 shown.

[0113] In the first step, the reference picture and the corresponding block are determined by the motion information of the spatially adjacent blocks of the current CU. To avoid repeated scanning of adjacent blocks, the first merge candidate in the merge candidate list of the current CU is used. The first available motion vector and its associated reference index are set to the temporal vector and the index to the motion source picture. In this way, in ATMVP, the corresponding block can be identified more accurately than in TMVP, where the corresponding block (sometimes called a collocated block) is always located at the lower right or center position relative to the current CU.

[0114] In the second step, the corresponding block of the sub-CU is identified by the time domain vector in the motion source picture by adding the time domain vector to the coordinates of the current CU. For each sub-CU, the motion information of its corresponding block (the minimum motion grid covering the center sample point) is used to derive the motion information of the sub-CU. After the motion information of the corresponding N×N block is identified, it is converted into the motion vector and reference index of the current sub-CU, which is the same as the TMVP method of HEVC, where motion scaling and other processing are applied. For example, the decoder checks whether the low latency condition is met (for example, the POC of all reference pictures of the current picture is smaller than the POC of the current picture), and may use the motion vector MV x (motion vector corresponding to reference picture list X) to predict the motion vector MV for each sub-CU y (X is equal to 0 or 1 and Y is equal to 1-X).

[0115] 2.2.2 Pairwise Average Candidates

[0116] Pairwise average candidates are generated by averaging predefined candidate pairs in the current merge candidate list, and the predefined pairs are defined as {(0, 1), (0, 2), (1, 2), (0, 3), (1, 3), (2, 3)}, where the numbers represent the merge indexes to the merge candidate list. The average motion vector is calculated for each reference list separately. If two motion vectors are available in a list, they are averaged even if they point to different reference pictures; if only one motion vector is available, that motion vector is used directly; if no motion vector is available, the list remains invalid. Pairwise average candidates replace the combined candidates in the HEVC standard.

[0117] The complexity analysis of the pairwise averaging candidate is summarized in Table 1. For the worst case of additional computation for averaging (last column of Table 1), each pair (MVx and MVy in L0 and L1) requires 4 additions and 4 shifts, and each pair requires 4 reference index comparisons (refIdx0 is valid and refIdx1 is valid in L0 and L1). There are 6 pairs, resulting in a total of 24 additions, 24 shifts, and 24 reference index comparisons. The combined candidate pairs in the HEVC standard use 2 reference index comparisons per pair (refIdx0 is valid in L0 and refIdx1 is valid in L1), and there are 12 pairs, resulting in a total of 24 reference index comparisons.

[0118] Table 1: Operational analysis of pairwise average candidates

[0119]

[0120] 2.2.3 Local lighting compensation

[0121] Local Illumination Compensation (LIC) is based on a linear model for illumination variations, using a scale factor a and an offset b, and is adaptively enabled or disabled for each inter-mode coded codec unit (CU).

[0122] When LIC is applied to a CU, the least square error method is used to derive parameters a and b by using the neighboring samples of the current CU and its corresponding reference samples. More specifically, Figure 11 As shown, IC parameters are derived and applied to each prediction direction separately using the sub-sampled (2:1 sub-sampling) neighboring samples of the CU in the reference picture and the corresponding samples (identified by the motion information of the current CU or sub-CU).

[0123] When Merge mode is used to encode or decode a CU, the LIC flag is copied from neighboring blocks in a manner similar to motion information copying in Merge mode; otherwise, the LIC flag is signaled for the CU to indicate whether LIC is applicable.

[0124] When LIC is enabled for a picture, an additional CU-level RD check is required to determine whether LIC is applied for the CU. When LIC is enabled for a CU, the mean-removed sum of absolute difference (MR-SAD) and mean-removed sum of absolute Hadamard-transformed difference (MR-SATD) are used for integer pixel motion search and fractional pixel motion search, respectively, instead of SAD and SATD.

[0125] To reduce coding complexity, the following coding scheme is applied in JEM:

[0126] When there is no significant illumination change between the current picture and its reference pictures, LIC is disabled for the entire picture. To identify this situation, the encoder calculates the histogram of the current picture and the histogram of each of the current picture's reference pictures. If the histogram difference between the current picture and each of the current picture's reference pictures is less than a given threshold, LIC is disabled for the current picture; otherwise, LIC is enabled for the current picture.

[0127] 2.2.4 Combined Inter-frame and Intra-frame Prediction

[0128] In some embodiments, multiple hypothesis prediction is proposed, where combining intra and inter prediction is one way to generate multiple hypotheses.

[0129] When multiple hypothesis prediction is applied to improved intra mode, multiple hypothesis prediction combines one intra prediction and one merge index prediction. In a merge CU, when the flag is true, a flag is signaled for the merge mode to select the intra mode from the intra candidate list. For the luma component, the intra candidate list is derived from 4 intra prediction modes including DC, planar, horizontal and vertical modes, and the size of the intra candidate list can be 3 or 4, depending on the block shape. When the CU width is greater than twice the CU height, the intra mode list does not include the horizontal mode, and when the CU height is greater than twice the CU width, the vertical mode is removed from the intra mode list. One intra prediction mode selected by the intra mode index and one merge index prediction selected by the merge index are combined using weighted averaging. For chroma components, DM is always applied without additional signaling. The weights used for combined prediction are described as follows. When DC or planar mode is selected, or the CB width or height is less than 4, equal weights are applied. For CBs with a CB width and height greater than or equal to 4, when the horizontal / vertical mode is selected, one CB is first divided vertically / horizontally into four equal regions. Each weight set denoted as (w_intrai, w_interi) is applied to the corresponding region, where i ranges from 1 to 4, and (w_intra1, w_inter1) = (6, 2), (w_intra2, w_inter2) = (5, 3), (w_intra3, w_inter3) = (3, 5), and (w_intra4, w_inter4) = (2, 6). (w_intra1, w_inter1) is used for the region closest to the reference sample, and (w_intra4, w_inter4) is used for the region farthest from the reference sample. The combined prediction can then be calculated by adding the two weighted predictions and shifting them right by 3 bits. In addition, the intra prediction mode of the intra-frame hypothesis of the predictor can be saved for reference by subsequent neighboring CUs.

[0130] 2.2.5 Generalized Bidirectional Prediction

[0131] In traditional bidirectional prediction, the predictors from L0 and L1 are averaged with equal weight 0.5 to generate the final predictor. The predictor generation formula is shown in Equation (1):

[0132] P TraditionalBiPred = (P L0 + P L1 + RoundingOffset) >> shiftNum, (1)

[0133] In equation (1), P TraditionalBiPred is the final predictor of traditional bidirectional prediction, P L0 and PL1 are the predictors from L0 and L1 respectively, and RoundingOffset and shiftNum are used to normalize the final predictor.

[0134] Generalized Bidirectional Prediction (GBI) is proposed to allow different weights to be applied to the predictors from L0 and L1. The predictor generation is shown in Equation (2).

[0135] P GBi =((1-w1)*P L0 +w1*P L1 +RoundingOffset GBi )>>shiftNum GBi , (2)

[0136] In equation (2), P GBi is the final prediction of GBi. (1-w1) and w1 are the selected GBI weights applied to the L0 and L1 predictors respectively. RoundingOffset GBi and shiftNum GBi is used to normalize the final predictor in GBi.

[0137] The supported w1 weight tables are {-1 / 4, 3 / 8, 1 / 2, 5 / 8, 5 / 4}. One equal-weight set and four unequal-weight sets are supported. For the equal-weight case, the process of generating the final predictor is exactly the same as in the traditional bidirectional prediction mode. For the true bidirectional prediction case under random access (RA) conditions, the number of candidate weight sets is reduced to three.

[0138] For Advanced Motion Vector Prediction (AMVP) mode, if the CU is encoded or decoded with bidirectional prediction, the weight selection in GBI is explicitly signaled at the CU level. For Merge mode, the weight selection is inherited from the Merge candidate. In this proposal, GBI supports DMVR to generate a weighted average of the templates and the final predictor for BMS-1.0.

[0139] 2.2.6 Final Motion Vector Expression

[0140] In some embodiments, a final motion vector expression (UMVE) is proposed. The UMVE and the proposed motion vector expression method are used in Skip or Merge mode.

[0141] UMVE reuses the Merge candidates as used in VVC. Among the Merge candidates, candidates can be selected and further extended by the proposed motion vector representation method.

[0142] UMVE provides a new motion vector representation with simplified signaling, including the starting point, motion magnitude, and motion direction.

[0143] The proposed technique uses the Merge candidate list as is, but only candidates of the default Merge type (MRG_TYPE_DEFAULT_N) are considered for UMVE expansion.

[0144] The base candidate index defines the starting point. The base candidate index indicates the best candidate among the candidates in the list, as shown below.

[0145] Table 1 Basic candidate index IDX

[0146]

[0147]

[0148] If the number of base candidates is equal to 1, the base candidate IDX is not signaled.

[0149] The distance index is the motion amplitude information. The distance index indicates the predefined distance from the starting point information. The predefined distances are as follows:

[0150] Table 2 Distance Index IDX

[0151]

[0152] The direction index indicates the direction of the MVD relative to the starting point. The direction index can represent four directions as shown below.

[0153] Table 3 Direction Index IDX

[0154] Direction IDX 00 01 10 11 x-axis + – N / A N / A y-axis N / A N / A + –

[0155] The UMVE flag is signaled immediately after the Skip and Merge flags are sent. If the Skip and Merge flags are true, the UMVE flag is parsed. If the UMVE flag is 1, the UMVE syntax is parsed. However, if it is not 1, the Affine flag is parsed. If the Affine flag is 1, the affine mode is used. However, if it is not 1, the Skip / Merge index of the VTM's Skip / Merge mode is parsed.

[0156] The additional line buffer required for UMVE candidates is not required because the software's skip / merge candidates are directly used as base candidates. By using the input UMVE index, the MV complement is determined directly before motion compensation. There is no need to maintain a long line buffer for this purpose.

[0157] 2.2.7 History-based Motion Vector Prediction

[0158] In our previous invention P180502841H, one or more lookup tables storing at least one motion candidate are used to predict the motion information of a block.

[0159] A history-based MVP (HMVP) method is proposed, in which the HMVP candidate is defined as the motion information of the previous codec block. A table with multiple HMVP candidates is maintained during the encoding / decoding process. When a new slice is encountered, the table is cleared. Whenever there is an inter-frame codec block, the associated motion information is added as a new HMVP candidate to the last entry of the table. The entire encoding and decoding process is as follows Figure 13 shown.

[0160] In one example, the table size is set to L (eg, L=16 or 6, or 44), which indicates that at most L HMVP candidates can be added to the table.

[0161] In one embodiment, if there are more than L HMVP candidates from the previously coded block, a first-in-first-out (FIFO) rule is applied so that the table always contains the latest L motion candidates from the previous codec. Figure 14 An example is described in which the FIFO rule is applied to remove HMVP candidates and add new HMVP candidates to the table used by the proposed method.

[0162] In another embodiment, whenever a new motion candidate is added (such as when the current block is inter-coded and in non-affine mode), a redundancy check process is first applied to identify whether the same or similar motion candidate exists in the LUT.

[0163] 2.2.8 Symmetrical Motion Vector Difference

[0164] In some embodiments, symmetric motion vector difference (SMVD) is proposed to encode MVD more efficiently.

[0165] First, at the stripe level, the variables BiDirPredFlag, RefIdxSymL0, and RefIdxSymL1 are derived as follows:

[0166] Searches for the closest forward reference picture to the current picture in reference picture list 0. If found, sets RefIdxSymL0 equal to the reference index of the forward picture.

[0167] Search for the backward reference picture closest to the current picture in reference picture list 1. If found, set RefIdxSymL1 equal to the reference index of the backward picture.

[0168] If both forward and backward pictures are found, BiDirPredFlag is set to 1.

[0169] Otherwise, the following applies:

[0170] Searches for the backward reference picture closest to the current reference picture in reference picture list 0. If found, sets RefIdxSymL0 equal to the reference index of the backward picture.

[0171] Searches for the forward reference picture closest to the current reference picture in reference picture list 1. If found, sets RefIdxSymL1 equal to the reference index of the forward picture.

[0172] If both backward and forward pictures are found, BiDirPredFlag is set to 1. Otherwise, BiDirPredFlag is set to 0.

[0173] Secondly, at the CU level, if the prediction direction of the CU is bidirectional prediction and BiDirPredFlag is equal to 1, the symmetric mode flag indicating whether the symmetric mode is used is explicitly signaled.

[0174] When the flag is true, only mvp_l0_flag, mvp_l1_flag, and MVD0 are explicitly signaled. Set the reference indexes of list 0 and list 1 equal to RefIdxSymL0 and RefIdxSymL1, respectively. Set MVD1 equal to –MVD0 only. The final motion vector is shown in the following formula.

[0175]

[0176] The changes in the codec unit syntax are shown in Table 2.

[0177] Table 2: Modifications in codec unit syntax

[0178]

[0179]

[0180] 2.2.9 CIIP in VTM4

[0181] In VTM4, when a CU is encoded or decoded in Merge mode, and if the CU contains at least 64 luma samples (i.e., the CU width multiplied by the CU height is equal to or greater than 64), an additional flag is signaled to indicate whether the combined inter / intra prediction (CIIP) mode is applied to the current CU.

[0182] To form the CIIP prediction, the intra prediction mode is first derived from two additional syntax elements. Up to four possible intra prediction modes can be used: DC, planar, horizontal, or vertical. Then, the inter prediction and intra prediction signals are derived using conventional intra and inter decoding processes. Finally, the inter and intra prediction signals are weighted averaged to obtain the CIIP prediction.

[0183] 1. Intra-frame prediction mode derivation

[0184] Up to four intra prediction modes (including DC mode, planar mode, horizontal mode, and vertical mode) can be used to predict the luma component in CIIP mode. If the CU shape is very wide (i.e., the width is greater than twice the height), the horizontal mode is not allowed. If the CU shape is very narrow (i.e., the height is greater than twice the width), the vertical mode is not allowed. In these cases, only three intra prediction modes are allowed.

[0185] CIIP mode uses three most probable modes (MPMs) for intra prediction. The CIIP MPM candidate list is formed as follows:

[0186] - Set the left and top neighboring blocks to A and B respectively.

[0187] The intra prediction modes of blocks A and B (denoted as intraModeA and intraModeB, respectively) are derived as follows:

[0188] o Let X be A or B;

[0189] o If 1) block X is not available; or 2) block X is not predicted using CIIP mode or intra mode; 3) block B is outside the current CTU, then set intraModeX to DC;

[0190] o Otherwise, 1) if the intra prediction mode of block X is DC or planar, set intraModeX to DC or planar; or, 2) if the intra prediction mode of block X is a "vertical-like" angular mode (greater than 34), set intraModeX to vertical; or, 3) if the intra prediction mode of block X is a "horizontal-like" angular mode (less than or equal to 34), set intraModeX to horizontal;

[0191] - If intraModeA and intraModeB are the same, then:

[0192] o If intraModeA is planar or DC, set the three MPMs to {planar, DC, vertical} in that order;

[0193] Otherwise, set the three MPMs to {intraModeA, plane, DC} in order;

[0194] - Otherwise (intraModeA and intraModeB are different):

[0195] o Set the first two MPMs to {intraModeA, intraModeB} in order;

[0196] o Check the first two MPM candidate patterns for uniqueness of Planar, DC, and Vertical in that order; once a unique pattern is found, add it as the third MPM.

[0197] If the CU shape is very wide or very narrow as defined above, then without signaling, the MPM flag is inferred to be 1. Otherwise, the MPM flag is signaled to indicate whether the CIIP intra prediction mode is one of the CIIP MPM candidate modes.

[0198] If the MPM flag is 1, the MPM index is further signaled to indicate which MPM candidate mode to use in CIIP intra prediction. Otherwise, if the MPM flag is 0, the intra prediction mode is set to the "loss" mode in the MPM candidate list. For example, if the planar mode is not in the MPM candidate list, the planar is the loss mode and the intra prediction mode is set to the planar. Since 4 possible intra prediction modes are allowed in CIIP and the MPM candidate list contains only 3 intra prediction modes, one of the 4 possible modes must be the loss mode.

[0199] For chroma components, the DM mode is always applied without additional signaling; that is, chroma uses the same prediction mode as luma.

[0200] The intra prediction mode of the CIIP-encoded CU will be saved and used for the intra mode encoding and decoding of the neighboring CU in the future.

[0201] 2.2.9.2 Combining Inter-frame and Intra-frame Prediction Signals

[0202] The inter-frame prediction signal P in CIIP mode is derived using the same inter-frame prediction process applied to the normal Merge mode inter and after conventional intra prediction processing, the intra prediction signal P is derived using the CIIP intra prediction mode intra The intra and inter prediction signals are then combined using a weighted average, where the weights depend on the intra prediction mode and the position of the sample in the codec block, as shown below:

[0203] If the intra prediction mode is DC mode or planar mode, or if the block width or height is less than 4, equal weights are applied to the intra prediction and inter prediction signals.

[0204] Otherwise, the weights are determined based on the intra prediction mode (horizontal or vertical in this case) and the sample position in the block. Taking the horizontal prediction mode as an example (the weights for the vertical mode are derived similarly, but in the orthogonal direction): denote W as the width of the block and H as the height of the block. The codec block is first divided into four equal parts, each with dimensions (W / 4)xH. Starting from the part closest to the intra prediction reference sample and ending with the part farthest from the intra prediction reference sample, the weight wt of each of the four regions is set to 6, 5, 3 and 2 respectively. The final CIIP prediction signal is derived using the following:

[0205] P CIIP =((8-wt)*P inte r+wt*P intra +4)>>3

[0206] 2. CIIP in VTM5

[0207] In VTM5, when a CU is encoded or decoded in Merge mode, if the CU contains at least 64 luma samples (i.e., the CU width multiplied by the CU height is equal to or greater than 64), and if both the CU width and the CU height are less than 128 luma samples, an additional flag is signaled to indicate whether the combined inter / intra prediction (CIIP) mode is applied to the current CU. As the name implies, CIIP prediction combines the inter prediction signal with the intra prediction signal. The inter prediction signal P in CIIP mode is derived using the same inter prediction process as applied to the regular Merge mode. intra and derives the intra prediction signal P according to the same conventional intra prediction process as in planar mode intra Then, the intra prediction signal and the inter prediction signal are combined using weighted averaging, where the weighted values ​​are calculated as follows depending on the coding mode of the top and left neighboring blocks ( Figure 16 (depicted in ):

[0208] - If the top neighbor is available and is intra-coded, set isIntraTop to 1, otherwise set isIntraTop to 0;

[0209] - If the left neighbor is available and is intra-coded, set isIntraLeft to 1, otherwise set isIntraLeft to 0;

[0210] - If (isIntraLeft + isIntraTop) is equal to 2, then set wt to 3;

[0211] - Otherwise, if (isIntraLeft + isIntraTop) is equal to 1, set wt to 2;

[0212] Otherwise, set wt to 1.

[0213] The CIIP forecast is formed as follows:

[0214] P CIIP =((4-wt)*P inter +wt*P intra +2)>>2

[0215] Figure 16 The top and left neighboring blocks used for CIIP weight derivation are shown.

[0216] 2.3 Intra-frame Mode Derivation Processing

[0217] In the current VTM-4.0, when encoding or decoding an intra-frame codec block, a most probable mode (MPM) flag is first signaled. If the MPM flag is true, the index of the MPM list is further signaled. Otherwise, the index of the non-MPM mode is signaled.

[0218] The relevant syntax elements, symmetries, and decoding processes in the latest VVC specification (JVET-M1001_v7) are as follows:

[0219] Related syntax

[0220] Codec unit syntax

[0221]

[0222]

[0223] Semantics

[0224] The syntax elements intra_luma_mpm_flag[x0][y0], intra_luma_mpm_idx[x0][y0], and intra_luma_mpm_remainder[x0][y0] specify the intra prediction mode for luma samples. The array indices x0, y0 specify the position (x0, y0) of the top-left luma sample of the considered codec block relative to the top-left luma sample of the picture. When intra_luma_mpm_flag[x0][y0] is equal to 1, the intra prediction mode is inferred from the neighboring intra prediction codec unit according to clause 8.4.2.

[0225] If intra_luma_mpm_flag[x0][y0] is not present, it is inferred to be equal to 1.

[0226] Decoding process

[0227] Derivation of luma intra prediction mode

[0228] The inputs to this process are:

[0229] Luma position (xCb, yCb), which specifies the upper left sample of the current luma codec block relative to the upper left luma sample of the current picture,

[0230] The variable cbWidth specifies the width of the current codec block in luminance samples.

[0231] The variable cbHeight specifies the height of the current codec block in luma samples.

[0232] In this process, the luma intra prediction mode IntraPredModeY[xCb][yCb] is derived.

[0233] Table 8-1 specifies the values ​​of intra prediction mode IntraPredModeY[xCb][yCb] and the associated names.

[0234] Table 8-1 Specification of intra prediction modes and related names

[0235] Intra prediction mode Related Name 0 INTRA_PLANAR 1 INTRA_DC 2..66 INTRA_ANGULAR2..INTRA_ANGULAR66 81..83 INTRA_LT_CCLM,INTRA_L_CCLM,NTRA_T_CCLM

[0236] Note: Intra prediction modes INTRA_LT_CCLM, INTRA_L_CCLM and INTRA_T_CCLM are only applicable to chroma components.

[0237] IntraPredModeY[xCb][yCb] is derived from the following sequence of steps:

[0238] 1. Set the neighboring positions (xNbA, yNbA) and (xNbB, yNbB) equal to (xCb-1, yCb+cbHeight-1) and (xCb+cbWidth-1, yCb-1), respectively.

[0239] 2. For the case where X is replaced by A or B, the variable candIntraPredModeX is derived as follows:

[0240] – Set the position (xCurr, yCurr) equal to (xCb, yCb) and the neighboring position (xNbY, yNbY) equal to (xNbX, yNbX) as input, call the block availability derivation process specified in Section 6.4.X [Ed. (BB): Pending Neighboring Block Availability Check Process], and assign the output to availableX.

[0241] –Candidate intra prediction mode candIntraPredModeX is derived as follows:

[0242] – If one or more of the following conditions are true, set candIntraPredModeX equal to INTRA_PLANAR.

[0243] –The variable availableX is equal to FALSE.

[0244] – CuPredMode[xNbX][yNbX] is not equal to MODE_INTRA and ciip_flag[xNbX][yNbX] is not equal to 1.

[0245] –pcm_flag[xNbX][yNbX] is equal to 1.

[0246] –X is equal to B and yCb-1 is less than ((yCb>>CtbLog2SizeY)

[0247] < <CtbLog2SizeY)。

[0248] – Otherwise, set candIntraPredModeX equal to IntraPredModeY[xNbX][yNbX].

[0249] 3. The variables ispDefaultMode1 and ispDefaultMode2 are defined as follows:

[0250] – If IntraSubPartitionsSplitType is equal to ISP_HOR_SPLIT, set ispDefaultMode1 equal to INTRA_ANGULAR18 and set ispDefaultMode2 equal to INTRA_ANGULAR5.

[0251] – Otherwise, set ispDefaultMode1 equal to INTRA_ANGULAR50 and set ispDefaultMode2 equal to INTRA_ANGULAR63.

[0252] 4. candModeList[x](x=0…5) is derived as follows:

[0253] – If candIntraPredModeB is equal to candIntraPredModeA and candIntraPredModeA is greater than INTRA_DC, then candModeList[x] (x=0...5) is derived as follows:

[0254] – If IntraLumaRefLineIdx[xCb][yCb] is equal to 0 and IntraSubPartitionsSplitType is equal to ISP_NO_SPLIT, the following applies:

[0255] candModeList[0]=candIntraPredModeA (8-9)

[0256] candModeList[1]=INTRA_PLANAR (8-10)

[0257] candModeList[2]=INTRA_DC (8-11)

[0258] candModeList[3]=2+((candIntraPredModeA+61)%64)(8-12)

[0259] candModeList[4]=2+((candIntraPredModeA-1)%64)(8-13)

[0260] candModeList[5]=2+((candIntraPredModeA+60)%64)(8-14)

[0261] – Otherwise (IntraLumaRefLineIdx[xCb][yCb] is not equal to 0 or IntraSubPartitionsSplitType is not equal to ISP_NO_SPLIT), the following applies:

[0262] candModeList[0]=candIntraPredModeA (8-15)

[0263] candModeList[1]=2+((candIntraPredModeA+61)%64)(8-16)

[0264] candModeList[2]=2+((candIntraPredModeA-1)%64)(8-17)

[0265] – If one of the following conditions is true,

[0266] –IntraSubPartitionsSplitType is equal to ISP_HOR_SPLIT and candIntraPredModeA is less than INTRA_ANGULAR34,

[0267] –IntraSubPartitionsSplitType equals ISP_VER_SPLIT and candIntraPredModeA greater than or equal to INTRA_ANGULAR34,

[0268] – If IntraLumaRefLineIdx[xCb][yCb] is not equal to 0, the following applies:

[0269] candModeList[3]=2+((candIntraPredModeA+60)%64)(8-18)

[0270] candModeList[4]=2+(candIntraPredModeA%64) (8-19)

[0271] candModeList[5]=2+((candIntraPredModeA+59)%64)(8-20)

[0272] – Otherwise, the following applies:

[0273] candModeList[3]=ispDefaultMode1 (8-21)

[0274] candModeList[4]=ispDefaultMode2 (8-22)

[0275] candModeList[5]=INTRA_PLANAR (8-23)

[0276] – Otherwise, if candIntraPredModeB is not equal to candIntraPredModeA and candIntraPredModeA or candIntraPredModeB is greater than INTRA_DC, then the following applies:

[0277] – The variables minAB and maxAB are derived as follows:

[0278] minAB=Min(candIntraPredModeA,candIntraPredModeB) (8-24)

[0279] maxAB=Max(candIntraPredModeA,candIntraPredModeB) (8-25)

[0280] – If both candIntraPredModeA and candIntraPredModeB are greater than INTRA_DC, candModeList[x] (x=0…5) is derived as follows:

[0281] candModeList[0]=candIntraPredModeA (8-26)

[0282] candModeList[1]=candIntraPredModeB (8-27)

[0283] – If IntraLumaRefLineIdx[xCb][yCb] is equal to 0 and IntraSubPartitionsSplitType is equal to ISP_NO_SPLIT, the following applies:

[0284] candModeList[2]=INTRA_PLANAR (8-28)

[0285] candModeList[3]=INTRA_DC (8-29)

[0286] – If maxAB - minAB is in the range of 2 to 62 (inclusive), the following applies:

[0287] candModeList[4]=2+((maxAB+61)%64) (8-30)

[0288] candModeList[5]=2+((maxAB-1)%64) (8-31)

[0289] – Otherwise, the following applies:

[0290] candModeList[4]=2+((maxAB+60)%64) (8-32)

[0291] candModeList[5]=2+((maxAB)%64) (8-33)

[0292] – Otherwise (IntraLumaRefLineIdx[xCb][yCb] is not equal to 0 or IntraSubPartitionsSplitType is not equal to ISP_NO_SPLIT), the following applies:

[0293] – If IntraSubPartitionsSplitType is not equal to ISP_NO_SPLIT, and abs(candIntraPredModeB - ispDefaultMode1) is less than abs(candIntraPredModeA - ispDefaultMode1), the following applies:

[0294] candModeList[0]=candIntraPredModeB (8-34)

[0295] candModeList[1]=candIntraPredModeA (8-35)

[0296] – If maxAB-minAB is equal to 1, the following applies:

[0297] candModeList[2]=2+((minAB+61)%64) (8-36)

[0298] candModeList[3]=2+((maxAB-1)%64) (8-37)

[0299] candModeList[4]=2+((minAB+60)%64) (8-38)

[0300] candModeList[5]=2+(maxAB%64) (8-39)

[0301] – Otherwise if maxAB-minAB is equal to 2, then the following applies:

[0302] candModeList[2]=2+((minAB-1)%64) (8-40)

[0303] candModeList[3]=2+((minAB+61)%64) (8-41)

[0304] candModeList[4]=2+((maxAB-1)%64) (8-42)

[0305] candModeList[5]=2+((minAB+60)%64) (8-43)

[0306] – Otherwise if maxAB-minAB is greater than 61, the following applies:

[0307] candModeList[2]=2+((minAB-1)%64) (8-44)

[0308] candModeList[3]=2+((maxAB+61)%64) (8-45)

[0309] candModeList[4]=2+(minAB%64) (8-46)

[0310] candModeList[5]=2+((maxAB+60)%64) (8-47)

[0311] – Otherwise, the following applies:

[0312] candModeList[2]=2+((minAB+61)%64) (8-48)

[0313] candModeList[3]=2+((minAB-1)%64) (8-49)

[0314] candModeList[4]=2+((maxAB+61)%64) (8-50)

[0315] candModeList[5]=2+((maxAB-1)%64) (8-51)

[0316] – Otherwise (candIntraPredModeA or candIntraPredModeB is greater than INTRA_DC), candModeList[x] (x=0…5) is derived as follows:

[0317] – If IntraLumaRefLineIdx[xCb][yCb] is equal to 0 and IntraSubPartitionsSplitType is equal to ISP_NO_SPLIT, the following applies:

[0318] candModeList[0]=candIntraPredModeA (8-52)

[0319] candModeList[1]=candIntraPredModeB (8-53)

[0320] candModeList[2]=1-minAB (8-54)

[0321] candModeList[3]=2+((maxAB+61)%64) (8-55)

[0322] candModeList[4]=2+((maxAB-1)%64) (8-56)

[0323] candModeList[5]=2+((maxAB+60)%64) (8-57)

[0324] – Otherwise, if IntraLumaRefLineIdx[xCb][yCb] is not equal to 0, the following applies:

[0325] candModeList[0]=maxAB (8-58)

[0326] candModeList[1]=2+((maxAB+61)%64) (8-59)

[0327] candModeList[2]=2+((maxAB-1)%64) (8-60)

[0328] candModeList[3]=2+((maxAB+60)%64) (8-61)

[0329] candModeList[4]=2+(maxAB%64) (8-62)

[0330] candModeList[5]=2+((maxAB+59)%64) (8-63)

[0331] – Otherwise (IntraSubPartitionsSplitType is not equal to ISP_NO_SPLIT), the following applies:

[0332] candModeList[0]=INTRA_PLANAR (8-64)

[0333] candModeList[1]=maxAB (8-65)

[0334] candModeList[2]=2+((maxAB+61)%64) (8-66)

[0335] candModeList[3]=2+((maxAB-1)%64) (8-67)

[0336] candModeList[4]=2+((maxAB+60)%64) (8-68)

[0337] candModeList[5]=2+(maxAB%64) (8-69)

[0338] – Otherwise, the following applies:

[0339] – If IntraLumaRefLineIdx[xCb][yCb] is equal to 0 and IntraSubPartitionsSplitType is equal to ISP_NO_SPLIT, the following applies:

[0340] candModeList[0]=candIntraPredModeA (8-70)

[0341] candModeList[1]=(candModeList[0]==INTRA_PLANAR)? INTRA_DC:INTRA_PLANAR (8-71)

[0342] candModeList[2]=INTRA_ANGULAR50 (8-72)

[0343] candModeList[3]=INTRA_ANGULAR18 (8-73)

[0344] candModeList[4]=INTRA_ANGULAR46 (8-74)

[0345] candModeList[5]=INTRA_ANGULAR54 (8-75)

[0346] – Otherwise, if IntraLumaRefLineIdx[xCb][yCb] is not equal to 0, the following applies:

[0347] candModeList[0]=INTRA_ANGULAR50 (8-76)

[0348] candModeList[1]=INTRA_ANGULAR18 (8-77)

[0349] candModeList[2]=INTRA_ANGULAR2 (8-78)

[0350] candModeList[3]=INTRA_ANGULAR34 (8-79)

[0351] candModeList[4]=INTRA_ANGULAR66 (8-80)

[0352] candModeList[5]=INTRA_ANGULAR26 (8-81)

[0353] Otherwise, if IntraSubPartitionsSplitType is equal to ISP_HOR_SPLIT, the following applies:

[0354] candModeList[0]=INTRA_PLANAR (8-82)

[0355] candModeList[1]=INTRA_ANGULAR18 (8-83)

[0356] candModeList[2]=INTRA_ANGULAR25 (8-84)

[0357] candModeList[3]=INTRA_ANGULAR10 (8-85)

[0358] candModeList[4]=INTRA_ANGULAR65 (8-86)

[0359] candModeList[5]=INTRA_ANGULAR50 (8-87)

[0360] Otherwise, if IntraSubPartitionsSplitType is equal to ISP_VER_SPLIT, the following applies:

[0361] candModeList[0]=INTRA_PLANAR (8-88)

[0362] candModeList[1]=INTRA_ANGULAR50 (8-89)

[0363] candModeList[2]=INTRA_ANGULAR43 (8-90)

[0364] candModeList[3]=INTRA_ANGULAR60 (8-91)

[0365] candModeList[4]=INTRA_ANGULAR3 (8-92)

[0366] candModeList[5]=INTRA_ANGULAR18 (8-93)

[0367] 5. Derive IntraPredModeY[xCb][yCb] by applying the following process:

[0368] – If intra_luma_mpm_flag[xCb][yCb] is equal to 1, set IntraPredModeY[xCb][yCb] equal to candModeList[intra_luma_mpm_idx[xCb][yCb]].

[0369] – Otherwise, derive IntraPredModeY[xCb][yCb] by applying the following sequential steps:

[0370] 1. If candModeList[i] is greater than candModeList[j] for i=0…4 and for each i, j=(i+1)…5, swap the two values ​​as follows:

[0371] (candModeList[i],candModeList[j])=Swap(candModeList[i],candModeList[j]) (8-94)

[0372] 2. Derive IntraPredModeY[xCb][yCb] by applying the following sequential steps:

[0373] i. Set IntraPredModeY[xCb][yCb] equal to intra_luma_mpm_remainder[xCb][yCb].

[0374] ii. For i equal to 0 to 5 (inclusive), if IntraPredModeY[xCb][yCb] is greater than or equal to candModeList[i], increase the value of IntraPredModeY[xCb][yCb] by one.

[0375] The variable IntraPredModeY[x][y] (x=xCb . . . xCb + cbWidth - 1 and y=yCb . . . yCb + cbHeight - 1) is set equal to IntraPredModeY[xCb][yCb].

[0376] 3. Examples of Problems Solved by the Embodiments

[0377] In LIC, two parameters, including a scaling parameter and an offset b, need to be derived by using neighboring reconstructed samples, which may cause a delay problem.

[0378] The set of allowed weight factors used in GBI is fixed, which may be inefficient.

[0379] CIIP mode only works with non-skipped Merge mode, which may be less efficient.

[0380] In the current design, the CIIP mode flag should be stored because for the intra mode derivation process of an intra codec block and the intra mode derivation process of a CIIP codec block, the CIIP mode flag of the neighboring block is used.

[0381] In the current design, the CIIP weight derivation can be further improved, for example, the checking of two neighboring blocks and three different weight pairs can be simplified.

[0382] In the current design, during the CIIP weight derivation process, if the neighboring block is coded using BDPCM mode, it is considered as intra mode. However, it may be more reasonable to treat it as non-intra mode because BDPCM is designed for screen content coding.

[0383] 4. Examples of Embodiments

[0384] Hereinafter, a block is used to represent a transform unit (TU) / prediction unit (PU) / coding unit (CU) / sub-block within a transform unit (TU) / prediction unit (PU) / coding unit (CU), etc.

[0385] The detailed techniques below should be considered as examples to explain the general concepts. These techniques should not be interpreted narrowly. Furthermore, these techniques can be combined in any manner.

[0386] Assume that (xCb, yCb) is the position of the upper left sample point of the current block relative to the upper left sample point of the current picture, and cbWidth and cbHeight specify the width and height of the current block.

[0387] 1. The CIIP flag or / and the LIC flag or / and the diffusion filtering flag or / and the bilateral filtering flag or / and the transform domain filtering flag or / and the enable flag of other types of post-reconstruction filters may be constrained to be false (the CIIP or / and the LIC or / and the diffusion filter or / and the bilateral filter or / and the transform domain filter may be implicitly disabled), depending on the coding mode of other blocks (such as adjacent or non-adjacent neighboring blocks and / or reference blocks).

[0388] a. When a flag is derived as false, the corresponding method may not be applied.

[0389] b. When a flag is derived as false, signaling of usage indication for such mode is skipped.

[0390] c. When a flag is derived as false, the use indication of such a mode may still be signaled, but is constrained to be false in the conforming bitstream and such a mode does not apply.

[0391] d. In one example, whether one or more proposed constraints (such as 1.a, 1.b, and 1.c) are applied may depend on the encoding and decoding modes of all or some adjacent and / or non-adjacent neighboring rows or columns.

[0392] i. Alternatively, whether or not such a constraint is applied may depend on at least N (N>=1) samples in adjacent or non-adjacent neighboring rows or columns not being coded using a particular mode.

[0393] e. In one example, the adjacent and / or non-adjacent neighboring rows may include an above row and / or an above-right row.

[0394] f. In one example, the adjacent and / or non-adjacent adjacent columns may include a left column and / or a lower left corner and / or an upper left corner.

[0395] g. In one example, the specific mode of the block other than the current block may include intra mode and / or CIIP mode and / or CPR mode.

[0396] h. In one example, if any of the adjacent / non-adjacent blocks in adjacent and / or non-adjacent rows or columns is encoded or decoded with a specific mode (e.g., intra-frame and / or CIIP mode and / or CPR mode), one or more proposed constraints (such as 1.a, 1.b, and 1.c) are applied.

[0397] i. In one example, if all adjacent / non-adjacent blocks in adjacent and / or non-adjacent adjacent rows or columns are coded using a specific mode (e.g., intra and / or CIIP and / or CPR mode), then one or more proposed constraints are applied.

[0398] j. In one example, if at least N adjacent / non-adjacent blocks in adjacent or non-adjacent rows or columns are not encoded using a particular mode (e.g., intra-frame and / or CIIP mode and / or CPR mode), one or more proposed constraints (such as 1.a, 1.b, and 1.c) are not applied.

[0399] k. In one example, whether to apply one or more proposed constraints (such as 1.a, 1.b, and 1.c) may depend on the location of the current block.

[0400] i. In one example, if the current block is located at the top of the current CTU (the current block and its upper neighboring block belong to different CTUs), the proposed constraint is not applied.

[0401] ii. In one example, if the current block is located to the left of the current CTU (the current block and its left neighboring block belong to different CTUs), the proposed constraint is not applied.

[0402] 2. The CIIP flag and / or intra mode of the CIIP mode may be stored in a history-based motion vector prediction (HMVP) table together with the motion information.

[0403] a. In one example, when comparing motion information of two candidates (such as a cropping process), the CIIP flag or / and intra mode in CIIP mode are not considered in the comparison.

[0404] b. In one example, when comparing motion information of two candidates, the CIIP flag in the CIIP mode or / and the intra mode are considered in the comparison.

[0405] c. In one example, when a Merge candidate comes from an entry in the HMVP table, the CIIP flag of the entry is also copied to the Merge candidate.

[0406] d. In one example, when a Merge candidate comes from an entry in the HMVP table, the CIIP flag and intra mode of the entry are also copied to the Merge candidate.

[0407] 3. CIIP can be performed for AMVP mode (AMVP mode or / and AMVP with SMVD mode)

[0408] a. In the Merge mode or / and UMVE (also known as Merge with Motion Vector Difference, MMVD for short) mode of the current block, the CIIP flag and / or intra mode in the CIIP mode of the adjacent / non-adjacent blocks can be inherited.

[0409] b. The CIIP flag and / or intra mode in the CIIP mode may be signaled for the non-skipped Merge mode or / and the non-skipped UMVE mode, and in the skipped Merge mode or / and the skipped UMVE mode, the CIIP flag and / or intra mode in the CIIP mode of the adjacent / non-adjacent blocks may be inherited.

[0410] c. The CIIP flag and / or intra mode in the CIIP mode may be signaled for the skip Merge mode or / and the skip UMVE mode, and in the non-skip Merge mode or / and the non-skip UMVE mode, the CIIP flag and / or intra mode in the CIIP mode of the adjacent / non-adjacent blocks may be inherited.

[0411] d. In one example, the CIIP flag and intra mode may be signaled for AMVP mode.

[0412] e. In one example, in Merge mode or / and UMVE mode, the CIIP flag may be inherited, and if the CIIP flag is true, the intra mode may be further signaled if multiple intra modes are allowed in CIIP.

[0413] f. In one example, the CIIP flag and intra mode of the neighboring / non-neighboring blocks in the Merge mode or / and UMVE mode may be inherited by the current block.

[0414] g. In one example, CIIP can be disabled for skip mode.

[0415] h. In one example, when comparing two Merge candidates, the CIIP flag and / or the intra mode in the CIIP may not be considered in the comparison.

[0416] i. In one example, when comparing two Merge candidates, the CIIP flag or / and the intra mode in the CIIP may be considered in the comparison.

[0417] 4. CIIP can be disabled for pairwise prediction or combined bi-prediction or other kinds of virtual / artificial candidates (eg, zero motion vector candidates).

[0418] a. Alternatively, if one of the two candidates included in the pairwise prediction or combined bidirectional prediction adopts CIIP prediction, CIIP can be enabled for the pairwise or combined bidirectional Merge candidate.

[0419] i. In one example, the intra mode of the CIIP mode candidate may be inherited.

[0420] ii. In one example, intra mode may be explicitly signaled.

[0421] b. Alternatively, if both candidates included in a pairwise prediction or combined bidirectional prediction adopt CIIP prediction, CIIP can be enabled for the pairwise or combined bidirectional Merge candidate.

[0422] i. In one example, the intra mode of one of the two candidates may be inherited.

[0423] ii. In one example, an intra mode can be derived from two candidate intra modes and used to pairwise or combine bidirectional Merge candidates.

[0424] iii. In one example, intra mode may be explicitly signaled.

[0425] 5. The adjacent and / or non-adjacent spatial reconstruction samples required by the CIIP mode or / and the diffusion filter or / and the bilateral filter or / and the transform domain filter or / and other types of post-reconstruction filters can be replaced by corresponding samples in the reference picture (such as adjacent and / or non-adjacent spatial samples of the reference block, such as Figure 17 shown).

[0426] a. In one example, if the current block is bi-directionally predicted, the neighboring samples of the two reference blocks may be averaged to generate the final neighboring samples.

[0427] b. In one example, if the current block is bi-directionally predicted, the neighboring samples of one of the two reference blocks may be used as the final neighboring samples.

[0428] c. In one example, if the current block is bi-directionally predicted, if unequal weight GBI or weighted prediction or LIC is applied to the current block, the neighboring samples of the two reference blocks may be weighted averaged to generate the final neighboring samples.

[0429] d. In one example, the corresponding sample in the reference picture (eg, the neighboring sample of the reference block) may be identified by the motion information of the current block.

[0430] e. In one example, the modified motion information of the current block may be used to identify corresponding samples in the reference picture (eg, neighboring samples of the reference block). For example, the motion vector may be rounded to integer precision before being used to identify neighboring samples.

[0431] f. In one example, corresponding samples in a reference picture (eg, neighboring samples of a reference block) are identified via integer-pixel precision motion vectors.

[0432] i. In one example, the MV of the reference block is first rounded to an integer pixel, and the rounded MV is used to identify neighboring samples of the reference block.

[0433] ii. In one example, the proposed replacement is applied when the current block is coded with integer pixel motion information. Therefore, no rounding is required.

[0434] g. In one example, the proposed replacement may be applied only to a specific color component, such as the luma component.

[0435] i. Alternatively, the proposed replacement may be applied to all color components.

[0436] 6. It is proposed to prohibit the use of the CIIP flag of the previous encoding and decoding for the subsequent block.

[0437] a. In one example, the checking process for the CIIP flag from the previous codec block is skipped to improve throughput.

[0438] b. In one example, the process of checking the CIIP flag from the neighboring blocks in the intra mode derivation process is skipped.

[0439] i. In one example, for a neighboring block, if it is coded in CIIP mode, the associated intra mode may be set to a given mode (such as planar mode). Alternatively, the associated intra mode may be used for the MPM list derivation process.

[0440] ii. In one example, for a neighboring block, if it is coded in CIIP mode or regular inter mode, the associated intra mode may be set to a given mode (such as planar mode). Alternatively, the associated intra mode may be used for the MPM list derivation process.

[0441] iii. In one example, the intra mode of the CIIP codec block may not be stored and the CIIP codec block may be considered unusable in the decoding process. Alternatively, the CIIP codec block may be treated in the same way as the regular inter mode.

[0442] c. Alternatively, it is further proposed to remove the CIIP flag from the memory in order to save the memory size required for storing the mode information.

[0443] 7. It is proposed to use bypass encoding and decoding to encode and decode the CIIP mode flag.

[0444] a. Alternatively, the CIIP mode flag can be context-coded without reference to the CIIP mode flags of neighboring blocks.

[0445] 8. It is proposed that the method of weighted summation in CIIP may depend on the color components.

[0446] a. For example, for the main color component (e.g., the G component) and other color components (e.g., the B and R components), the weighting values in CIIP are different.

[0447] b. For example, for the luminance component and the chrominance component, the weighting values in CIIP are different.

[0448] c. For example, for inter-frame prediction and intra-frame prediction, the weighting values are equal for the chrominance component.

[0449] 9. It is proposed that when the weighting factor selection is based on neighboring blocks, for neighboring blocks, if they are encoded / decoded in the CIIP mode, they can be regarded as inter-frame encoded / decoded blocks.

[0450] a. Alternatively, when the weighting factor selection is based on neighboring blocks, for neighboring blocks, if they are encoded / decoded in the CIIP mode, they can be regarded as intra-frame encoded / decoded blocks.

[0451] 10. The method proposed above can be applied under specific conditions, such as block size, stripe / picture / slice type, or motion information.

[0452] a. In one example, when the block size contains less than M×H samples (e.g., 16, 32, or 64 luminance samples), the proposed method is not allowed.

[0453] b. Alternatively, when the minimum size of the width or / and height of the block is less than or not greater than X, the proposed method is not allowed. In one example, X is set to 8.

[0454] c. Alternatively, when the minimum size of the width or / and height of the block is not less than X, the proposed method is not allowed. In one example, X is set to 8.

[0455] d. Alternatively, when the width of the block > th1 or >= th1 and / or the height of the block > th2 or >= th2, the proposed method is not allowed. In one example, th1 and / or th2 are set to 8.

[0456] e. Alternatively, when the width of the block < th1 or <= th1 and / or the height of the block < th2 or <= th2, the proposed method is not allowed. In one example, th1 and / or th2 are set to 8.

[0457] 11. The number of allowed weight pairs (wIntra, wInter) used in CIIP can be reduced from 3 to 2, denoted as (a, b) and (c, d).

[0458] a. In one example, two pairs are defined as {(1, 3) and (3, 1)}; or {(1, 3) and (2, 2)}; or {(3, 1) and (2, 2)}; or {(3, 5) and (4, 4)} or {(5, 3) and (4, 4)}, or {(1, 7) and (4, 4)} or {(7, 1) and (4, 4)}.

[0459] b. In one example, the weight pair is determined based on only one neighboring block A.

[0460] i. In one example, if a neighboring block A is available and is intra-coded, then (wIntra, wInter) is set equal to (a, b); otherwise, (wIntra, wInter) is set equal to (c, d).

[0461] ii. In one example, block A is the left neighboring block.

[0462] iii. In one example, block A is the upper neighboring block.

[0463] c. In one example, a weight pair is determined based on two or more neighboring blocks, and at least one of the neighboring blocks satisfies certain conditions.

[0464] i. In one example, if at least one of the neighboring blocks A and B is available and intra-coded, then (wIntra, wInter) is set equal to (A, B); otherwise, (wIntra, wInter) is set equal to (c, d).

[0465] 1. In one example, block A is the left neighboring block and B is the top neighboring block.

[0466] d. In one example, a weight pair is determined based on two or more neighboring blocks, and each neighboring block satisfies the same condition.

[0467] i. In one example, if both neighboring blocks A and B are available and intra-coded, then (wIntra, wInter) is set equal to (A, B); otherwise, (wIntra, wInter) is set equal to (c, d).

[0468] 1. In one example, block A is the left neighboring block and B is the top neighboring block.

[0469] e. In one example, the settings of (a, b) and (c, d) can be as follows:

[0470] 1. In one example, (a, b) is set to (2, 2) or (3, 1).

[0471] 2. In one example, (c, d) is set equal to (1, 3).

[0472] 3. In an example, at least one of the following two conditions is true: a is not equal to c, or b is not equal to d.

[0473] 4. (a, b) is not equal to (c, d).

[0474] f. In one example, the aforementioned neighboring blocks (eg, A or B) are adjacent or non-adjacent spatial neighboring blocks or temporal neighboring blocks.

[0475] i. In one example, neighboring block A or B is the left (or top) neighboring block.

[0476] ii. In one example, neighboring blocks A and B are the left neighboring block and the top neighboring block, respectively.

[0477] iii. In one example, the left neighboring block covers the position (xCb-1, yCb+cbHeight-1).

[0478] iv. In one example, the top neighboring block covers the position (xCb+cbWidth-1, yCb-1).

[0479] v. In one example, the left neighboring block covers the position (xCb-1, yCb).

[0480] vi. In one example, the top neighboring block covers the position (xCb, yCb-1).

[0481] g. For the above example, the CIIP forecast is formed as follows:

[0482] P CIIP =(wInter*P inter +wIntra*P intra +offset)>>N

[0483] Here, offset is set to (1<<(N-1)) or 0, and N may be set to log2(wIntra+wInter).

[0484] 12. The number of allowed weight pairs (wIntra, wInter) used in CIIP can be reduced from 3 to 1.

[0485] a. In one example, a weight pair is defined as (1, 3) or (2, 2) or (1, 7) or (2, 6) or (3, 5) or (4, 4).

[0486] b. In one example, (wIntra, wInter) is set equal to (2, 2).

[0487] c. In one example, (wIntra, wInter) is set equal to (1, 3).

[0488] d. For the above example, the CIIP forecast is formed as follows:

[0489] P CIIP =(wInter*P inter +wIntra*P intra +offset)>>N

[0490] Here, offset is set to (1<<(N-1)) or 0, and N may be set to log2(wIntra+wInter).

[0491] 13. A (wIntra, wInter) weight pair may be derived based on whether one or more neighboring blocks are coded using CIIP mode.

[0492] a. The weight pair for the current block can be derived from the weight pair for the previously coded block.

[0493] b. In one example, the weight pair is determined based on only one neighboring block A.

[0494] i. In one example, if a neighboring block A is coded in CIIP mode, (wIntra, wInter) of the current block is set equal to (wIntra, wInter) of the neighboring block A; otherwise, if the neighboring block A is available and is intra-coded, (wIntra, wInter) is set equal to (a, b); otherwise, (wIntra, wInter) is set equal to (c, d).

[0495] ii. In one example, if a neighboring block A is coded in CIIP mode, (wIntra, wInter) of the current block is set equal to (wIntra, wInter) of the neighboring block; otherwise, (wIntra, wInter) is set equal to (a, b).

[0496] iii. For the above example, the following applies:

[0497] 1. In one example, (a, b) is set equal to (2, 2) or (3, 1).

[0498] 2. In one example, set (c, d) equal to (1, 3).

[0499] 3. In an example, at least one of the following two conditions is true: a is not equal to c; b is not equal to d.

[0500] c. In one example, a weight pair is determined based on two or more neighboring blocks, and at least one of the neighboring blocks satisfies a specific condition.

[0501] i. Multiple adjacent blocks may be checked in a given checking order (eg, first check the left block, then check the top block) to identify the use of CIIP mode.

[0502] ii. In one example, if at least one of the neighboring blocks A and B is coded in CIIP mode, then (wIntra, wInter) of the current block is set equal to (wIntra, wInter) of the first CIIP coded neighboring block in a given checking order; otherwise, if at least one of the neighboring blocks A and B is available and is intra-coded, then (wIntra, wInter) is set equal to (a, b); otherwise, (wIntra, wInter) is set equal to (c, d).

[0503] iii. For the above example, the following applies:

[0504] 1. In one example, (a, b) is set equal to (2, 2) or (3, 1).

[0505] 2. In one example, (c, d) is set equal to (1, 3).

[0506] 3. In an example, at least one of the following two conditions is true: a is not equal to c; b is not equal to d.

[0507] iv. In one example, if at least one of the neighboring blocks A and B is coded in CIIP mode, then (wIntra, wInter) of the current block is set equal to (wIntra, wInter) of the first CIIP coded neighboring block in a given checking order; otherwise, if both neighboring blocks A and B are available and are intra-coded, then (wIntra, wInter) is set equal to (a, b); otherwise, (wIntra, wInter) is set equal to (c, d).

[0508] v. In one example, if at least one of the neighboring blocks A and B is encoded in CIIP mode, then (wIntra, wInter) of the current block is set equal to (wIntra, wInter) of the first CIIP-encoded neighboring block in the given checking order; otherwise, (wIntra, wInter) is set equal to (c, d).

[0509] vi. For the above example, the following applies:

[0510] 1. In one example, (c, d) is set equal to (2, 2) or (1, 3).

[0511] d. In one example, the neighboring block A or B is an adjacent or non-adjacent spatial neighboring block or a temporal neighboring block.

[0512] i. In one example, neighboring block A or B is the left (or top) neighboring block.

[0513] ii. In one example, neighboring blocks A and B are the left neighboring block and the top neighboring block, respectively.

[0514] iii. In one example, the left neighboring block covers the position (xCb-1, yCb+cbHeight-1).

[0515] iv. In one example, the top neighboring block covers the position (xCb+cbWidth-1, yCb-1).

[0516] v. In one example, the left neighboring block covers the position (xCb-1, yCb).

[0517] vi. In one example, the top neighboring block covers the position (xCb, yCb-1).

[0518] e. For the above example, the CIIP forecast is formed as follows:

[0519] P CIIP =(wInter*P inter +wIntra*P intra +offset)>>N

[0520] Here, offset is set to (1<<(N-1)) or 0, and N may be set to log2(wIntra+wInter).

[0521] 14. The selection of neighboring blocks used in CIIP may depend on codec information such as block dimension / block shape / low delay check flag / reference picture information / motion information of current block and neighboring blocks / intra prediction mode of neighboring blocks.

[0522] 15. The weight pairs used in CIIP may depend on codec information such as block dimension / block shape / low delay check flag / reference picture information / motion information of current block and neighboring blocks / intra prediction mode of neighboring blocks.

[0523] a. In one example, a set of weight pairs is further signaled.

[0524] b. In one example, the selection of a weight pair may depend on whether the neighboring block is inter-coded rather than intra-coded.

[0525] 16. When determining CIIP information (for example, for the previous design and the above items, when determining the weight applied to the intra-frame prediction signal or the inter-frame prediction signal), if the neighboring block is not encoded with MODE_INTRA (i.e., intra-frame mode), it can be regarded as intra-frame encoded.

[0526] a. In one example, if the neighboring block is IBC coded.

[0527] b. In one example, if the neighboring block is CIIP coded.

[0528] c. In one example, if the neighboring block is TPM-encoded.

[0529] d. In one example, if the neighboring block is palette coded.

[0530] e. In one example, if the neighboring block is RDPCM coded.

[0531] f. In one example, if the neighboring block is coded without applying transform (eg, transform skip mode) and / or quantization (eg, transform bypass quantization mode).

[0532] g. Alternatively, if the neighboring block is coded using a mode mentioned in the above sub-item (eg, IBC, RDPCM, palette), the neighboring block may be considered as non-intra-coded (eg, inter-coded).

[0533] h. In one example, if a neighboring block is intra-coded but not coded with a specific prediction mode (eg, planar), the neighboring block may be considered non-intra-coded (eg, inter-coded).

[0534] i. Alternatively, if the neighboring block is encoded using a matrix-based intra prediction method and / or a multiple reference row intra prediction method (where the reference row index is not equal to K, e.g., K=0) and / or BDPCM, the neighboring block may be considered to be non-intra-coded (e.g., inter-coded).

[0535] j. The proposed method can be applied to other codecs, which depends on whether the neighboring blocks are coded in intra mode.

[0536] k. The proposed method can be applied to other codecs, which depend on whether the neighboring blocks are coded in inter mode.

[0537] 17. Whether the above method is enabled or disabled can be signaled in the SPS / PPS / VPS / sequence header / picture header / slice header / slice group header / CTU group, etc.

[0538] a. Alternatively, which method to use can be signaled in the SPS / PPS / VPS / sequence header / picture header / slice header / slice group header / CTU group, etc.

[0539] b. Alternatively, whether to enable or disable the above methods and / or which method to apply may depend on block dimensions, video processing data unit (VPDU), picture type, low delay check flag, codec information of the current block or previously coded blocks (e.g. reference pictures, unidirectional or bidirectional prediction).

[0540] 5. Examples

[0541] 5.1 Example 1

[0542] An example of skipping checking the CIIP flag of a previously coded block is given below.

[0543] 8.4.2 Derivation of Luma Intra Prediction Mode

[0544] The inputs to this process are:

[0545] Luma position (xCb, yCb), which specifies the upper left sample of the current luma codec block relative to the upper left luma sample of the current picture,

[0546] The variable cbWidth specifies the width of the current codec block in luminance samples.

[0547] The variable cbHeight specifies the height of the current codec block in luma samples.

[0548] In this process, the luma intra prediction mode IntraPredModeY[xCb][yCb] is derived.

[0549] Table 8-1 specifies the values ​​of intra prediction mode IntraPredModeY[xCb][yCb] and the associated names.

[0550] Table 8-1 Specification of intra prediction modes and related names

[0551] Intra prediction mode Related Name 0 INTRA_PLANAR 1 INTRA_DC 2..66 INTRA_ANGULAR2..INTRA_ANGULAR66 81..83 INTRA_LT_CCLM,INTRA_L_CCLM,NTRA_T_CCLM

[0552] Note: Intra prediction modes INTRA_LT_CCLM, INTRA_L_CCLM and INTRA_T_CCLM are only applicable to chroma components.

[0553] IntraPredModeY[xCb][yCb] is derived from the following sequence of steps:

[0554] 1. Set the neighboring positions (xNbA, yNbA) and (xNbB, yNbB) equal to (xCb-1, yCb+cbHeight-1) and (xCb+cbWidth-1, yCb-1), respectively.

[0555] 2. For the case where X is replaced by A or B, the variable candIntraPredModeX is derived as follows:

[0556] – Set the position (xCurr, yCurr) equal to (xCb, yCb) and the neighboring position (xNbY, yNbY) equal to (xNbX, yNbX) as input, call the block availability derivation process specified in Section 6.4.X [Ed. (BB): Pending Neighboring Block Availability Check Process], and assign the output to availableX.

[0557] –Candidate intra prediction mode candIntraPredModeX is derived as follows:

[0558] – If one or more of the following conditions are true, set candIntraPredModeX equal to INTRA_PLANAR.

[0559] –The variable availableX is equal to FALSE.

[0560] –CuPredMode[xNbX][yNbX] is not equal to MODE_INTRA.

[0561] –pcm_flag[xNbX][yNbX] is equal to 1.

[0562] –X is equal to B and yCb-1 is less than ((yCb>>CtbLog2SizeY)

[0563] < <CtbLog2SizeY)。

[0564] – Otherwise, set candIntraPredModeX equal to IntraPredModeY[xNbX][yNbX].

[0565] 3. The variables ispDefaultMode1 and ispDefaultMode2 are defined as follows:

[0566] – If IntraSubPartitionsSplitType is equal to ISP_HOR_SPLIT, set ispDefaultMode1 equal to INTRA_ANGULAR18 and set ispDefaultMode2 equal to INTRA_ANGULAR5.

[0567] – Otherwise, set ispDefaultMode1 equal to INTRA_ANGULAR50 and set ispDefaultMode2 equal to INTRA_ANGULAR63.

[0568] 4. candModeList[x](x=0…5) is derived as follows:

[0569]

[0570] Example 2

[0571] If the left neighbor is available and intra-coded, then (wIntra, wInter) is set equal to (2, 2); otherwise, (wIntra, wInter) is set equal to (1, 3).

[0572] The CIIP forecast is formed as follows:

[0573] P CIIP =(wInter*P inter +wIntra*P intra +2)>>2

[0574] Example 3

[0575] If the left neighbor is available and intra-coded, then (wIntra, wInter) is set equal to (3, 1); otherwise, (wIntra, wInter) is set equal to (1, 3).

[0576] The CIIP forecast is formed as follows:

[0577] P CIIP =(wInter*P inter +wIntra*P intra +2)>>2

[0578] Example 4

[0579] If the top neighbor is available and is intra-coded, then (wIntra, wInter) is set equal to (2, 2); otherwise, (wIntra, wInter) is set equal to (1, 3).

[0580] The CIIP forecast is formed as follows:

[0581] P CIIP =(wInter*P inter +wIntra*P intra +2)>>2

[0582] Example 5

[0583] If the top neighbor is available and is intra-coded, then (wIntra, wInter) is set equal to (3, 1); otherwise, (wIntra, wInter) is set equal to (1, 3).

[0584] The CIIP forecast is formed as follows:

[0585] P CIIP =(wInter*P inter +wIntra*P intra +2)>>2

[0586] Example 6

[0587] If the left neighbor and the top neighbor are available and intra-coded, then (wIntra, wInter) is set equal to (2, 2); otherwise, (wIntra, wInter) is set equal to (1, 3).

[0588] The CIIP forecast is formed as follows:

[0589] P CIIP =(wInter*P inter +wIntra*P intra +2)>>2

[0590] Example 7

[0591] If the left neighbor and the top neighbor are available and intra-coded, then (wIntra, wInter) is set equal to (3, 1); otherwise, (wIntra, wInter) is set equal to (1, 3).

[0592] The CIIP forecast is formed as follows:

[0593] P CIIP =(wInter*P inter +wIntra*P intra +2)>>2

[0594] Example 8

[0595] If the left or top neighbor is available and intra-coded, then (wIntra, wInter) is set equal to (2, 2); otherwise, (wIntra, wInter) is set equal to (1, 3).

[0596] The CIIP forecast is formed as follows:

[0597] P CIIP =(wIntra*P intra +wIntra*P intra +2)>>2

[0598] Example 9

[0599] If the left or top neighbor is available and intra-coded, then (wIntra, wInter) is set equal to (3, 1); otherwise, (wIntra, wInter) is set equal to (1, 3).

[0600] The CIIP forecast is formed as follows:

[0601] P CIIP =(wInter*P inter +wIntra*P intra +2)>>2

[0602] Example 10

[0603] Set (wIntra, wInter) equal to (2, 2).

[0604] The CIIP forecast is formed as follows:

[0605] P CIIP =(wInter*P inter +wIntra*P intra +2)>>2

[0606] Example 11

[0607] Set (wIntra, wInter) equal to (1, 3).

[0608] The CIIP forecast is formed as follows:

[0609] P CIIP =(wInter*P inter +wIntra*P intra +2)>>2

[0610] Example 12

[0611] If the left neighbor is CIIP coded, then set (wIntra, wInter) of the current block equal to (wIntra, wInter) of the left neighbor; otherwise, if the left neighbor is available and is intra-coded, set (wIntra, wInter) equal to (3, 1); otherwise, set (wIntra, wInter) equal to (1, 3).

[0612] The CIIP forecast is formed as follows:

[0613] P CIIP =(wInter*P inter +wIntra*P intra +2)>>2

[0614] Example 13

[0615] If the left neighbor is CIIP codec, then set (wIntra, wInter) of the current block equal to (wIntra, wInter) of the left neighbor; otherwise, if the left neighbor is available and is intra-frame codec, then set (wIntra, wInter) equal to (2, 2); otherwise, set (wIntra, wInter) equal to (1, 3).

[0616] The CIIP forecast is formed as follows:

[0617] P CIIP =(wInter*P inter +wIntra*P intra +2)>>2

[0618] Example 14

[0619] If the top neighbor is CIIP codec, then set (wIntra, wInter) of the current block equal to (wIntra, wInter) of the top neighbor; otherwise, if the top neighbor is available and is intra-frame codec, set (wIntra, wInter) equal to (3, 1); otherwise, set (wIntra, wInter) equal to (1, 3).

[0620] The CIIP forecast is formed as follows:

[0621] P CIIP =(wInter*P inter +wIntra*P intra +2)>>2

[0622] Example 15

[0623] If the top neighbor is CIIP codec, then set (wIntra, wInter) of the current block equal to (wIntra, wInter) of the top neighbor; otherwise, if the top neighbor is available and is intra-frame codec, then set (wIntra, wInter) equal to (2, 2); otherwise, set (wIntra, wInter) equal to (1, 3).

[0624] The CIIP forecast is formed as follows:

[0625] P CIIP =(wInter*P inter +wIntra*P intra +2)>>2

[0626] Example 16

[0627] If the left or / and top neighbor is CIIP coded, then set (wIntra, wInter) of the current block equal to (wIntra, wInter) of the first CIIP coded neighbor (from left to top); otherwise, if the left or / and top neighbor is available and is intra-frame coded, then set (wIntra, wInter) equal to (3, 1); otherwise, set (wIntra, wInter) equal to (1, 3).

[0628] The CIIP forecast is formed as follows:

[0629] P CIIP =(wInter*P inter +wIntra*P intra +2)>>2

[0630] Example 17

[0631] If the left or / and top neighbor is CIIP coded, then (wIntra, wInter) of the current block is set equal to (wIntra, wInter) of the first CIIP coded neighbor (from left to top); otherwise, if the left or / and top neighbor is available and is intra-coded, then (wIntra, wInter) is set equal to (2, 2); otherwise, (wIntra, wInter) is set equal to (1, 3).

[0632] The CIIP forecast is formed as follows:

[0633] P CIIP =(wInter*P inter +wIntra*P intra +2)>>2

[0634] Example 18

[0635] If the left neighbor is CIIP coded, then (wIntra, wInter) of the current block is set equal to (wIntra, wInter) of the left neighbor; otherwise, (wIntra, wInter) is set equal to (1, 3).

[0636] The CIIP forecast is formed as follows:

[0637] P CIIP =(wInter*P inter +wIntra*P intra +2)>>2

[0638] Example 19

[0639] If the left neighbor is CIIP coded, then (wIntra, wInter) of the current block is set equal to (wIntra, wInter) of the left neighbor; otherwise, (wIntra, wInter) is set equal to (2, 2).

[0640] The CIIP forecast is formed as follows:

[0641] P CIIP =(wInter*P inter +wIntra*P intra +2)>>2

[0642] Example 20

[0643] If the top neighbor is CIIP coded, then (wIntra, wInter) of the current block is set equal to (wIntra, wInter) of the top neighbor; otherwise, (wIntra, wInter) is set equal to (1, 3).

[0644] The CIIP forecast is formed as follows:

[0645] P CIIP =(wInter*P inter +wIntra*P intra +2)>>2

[0646] Example 21

[0647] If the top neighbor is CIIP coded, then (wIntra, wInter) of the current block is set equal to (wIntra, wInter) of the top neighbor; otherwise, (wIntra, wInter) is set equal to (2, 2).

[0648] The CIIP forecast is formed as follows:

[0649] P CIIP =(wInter*P inter +wIntra*P intra +2)>>2

[0650] Example 22

[0651] If the left or / and top neighbor is CIIP coded, set (wIntra, wInter) of the current block equal to (wIntra, wInter) of the first CIIP coded neighbor (from left to top); otherwise, set (wIntra, wInter) equal to (1, 3).

[0652] The CIIP forecast is formed as follows:

[0653] P CIIP =(wInter*P inter +wIntra*P intra +2)>>2

[0654] Example 23

[0655] If the left or / and top neighbor is / are CIIP coded, then set (wIntra, wInter) of the current block equal to (wIntra, wInter) of the first CIIP coded neighbor (from left to top); otherwise, set (wIntra, wInter) equal to (2, 2).

[0656] The CIIP forecast is formed as follows:

[0657] P CIIP =(wInter*P inter +wIntra*P intra +2)>>2

[0658] Example 24

[0659] 8.5.6 Inter-block Decoding

[0660] 8.5.6.1 Overview

[0661] This process is called when decoding a codec that was coded in inter prediction mode.

[0662] When ciip_flag[xCb][yCb] is equal to 1, the array of prediction samples predSamples is modified as follows:

[0663] – If cIdx is equal to 0, the following applies:

[0664] – Invoke the normal intra sample prediction process specified in clause 8.4.5.2.5 with position (xTbCmp, yTbCmp) set equal to (xCb, yCb), intra prediction mode predModeIntra set equal to IntraPredModeY[xCb][yCb], transform block width nTbW and height nTbH set equal to cbWidth and cbHeight, codec block width nCbW and height nCbH set equal to cbWidth and cbHeight, variable cIdx as input, and assign the output to the (cbWidth) x (cbHeight) array predSamplesIntra L .

[0665] – Set the position (xTbCmp, yTbCmp) to be equal to (xCb, yCb), the codec block width cbWidth, the codec block height cbHeight, and the sample arrays predSamplesInter and predSamplesIntra to be equal to predSamples and predSamplesIntra respectively L , sets the intra prediction mode predModeIntra equal to IntraPredModeY[xCb][yCb] and the color component index cIdx as input, invokes the weighted sample prediction process that combines Merge and intra prediction as specified in clause 8.5.6.7, and assigns the output to the (cbWidth)x(cbHeight) array predSamples.

[0666]

[0667] 8.5.6.7 Weighted Sample Prediction Processing for Combined Merge and Intra Prediction

[0668] The inputs to this process are:

[0669] – Luma position (xCb, yCb), which specifies the top left sample of the current luma codec block relative to the top left luma sample of the current picture,

[0670] –The width of the current codec block cbWidth,

[0671] –The height of the current codec block cbHeight,

[0672] – two (cbWidth)x(cbHeight) arrays predSamplesInter and predSamplesIntra,

[0673] – Variable cIdx, which specifies the color component index.

[0674] The output of this process is an array predSamplesComb of (cbWidth)x(cbHeight) predicted sample values.

[0675] The derivation of the variable bitDepth is as follows:

[0676] – If cIdx is equal to 0, set bitDepth to BitDepth Y .

[0677] – Otherwise, set bitDepth to BitDepth C .

[0678] The variable callFact is derived as follows:

[0679] scallFact = (cIdx == 0)? 0 : 1. (8 - 838)

[0680] Set the neighbouring luma positions (xNbA, yNbA) and (xNbB, yNbB) to be equal to (xCb - 1, yCb - 1+(cbHeight<<scallFact)) and (xCb - 1+(cbWidth<<scallFact), yCb - 1), respectively.

[0681] For the case where X is replaced by A or B, the variables availableX and isIntraCodedNeighbourX are derived as follows:

[0682] – Set the position (xCurr, yCurr) to be equal to (xCb, yCb), the neighbouring position (xNbY, yNbY) to be equal to (xNbX, yNbX), checkPredModeY to false (FALSE), and set cIdx to be equal to 0 as input, call the derivation process of neighbouring block availability specified in Clause 6.4.4, and assign the output to availableX.

[0683] – The derivation of the variable isIntraCodedNeighbourX is as follows:

[0684] – If availableX is equal to true (TRUE), and CuPredMode[0][xNbX][yNbX] is equal to MODE_INTRA, and BdpcmFlag[xNbX][yNbX] is equal to 0, then set isIntraCodedNeighbourX to be equal to true.

[0685] – Otherwise, set isIntraCodedNeighbourX equal to false.

[0686] The weight w is derived as follows:

[0687] – If both isIntracodedNeighbourA and isIntraCodedNeighbourB are equal to true, then set w equal to 3.

[0688] – Otherwise, if isIntracodedNeighbourA and isIntraCodedNeighbourB are both equal to false, then w is set equal to 1.

[0689] – Otherwise, set w equal to 2.

[0690] When cIdx is equal to 0 and slice_lmcs_enabled_flag is equal to 1, predSamplesInter[x][y] (x=0..cbWidth-1 and y=0..cbHeight-1) is modified as follows:

[0691] Figure 18 1800 is a block diagram of a video processing device 1800. Device 1800 can be used to implement one or more methods described herein. Device 1800 can be implemented in a smartphone, tablet computer, computer, Internet of Things (IoT) receiver, etc. Device 1800 may include one or more processors 1802, one or more memories 1804, and video processing hardware 1806. Processor 1802 can be configured to implement one or more methods described herein. Memory 1804 can be used to store data and code used to implement the methods and techniques described herein. Video processing hardware 1806 can be used to implement some of the techniques described herein in hardware circuitry.

[0692] Figure 20 is a flow chart of a method 2000 for processing a video. The method 2000 includes determining (2105) a codec mode of a first video block, constraining (2110) one or more flags to an operational state based on the determination of the codec mode of the first video block, the operational state being false or true, and performing (2115) further processing of a second video block based on the operational state of the one or more flags, wherein the first video block is a neighboring video block or a reference video block related to the second video block.

[0693] Figure 21is a flow chart of a method 2100 for processing a video. The method 2100 includes determining (2105) whether to use pairwise prediction or combined bi-prediction for a first video block, determining (2110) an operational state of combined inter-intra prediction (CIIP) based on the determination to use pairwise prediction or combined bi-prediction, wherein the operational state is enabled or disabled, and performing (2115) further processing of the first video block according to the operational state of the CIIP.

[0694] Figure 23 23 is a flow chart of a method 2300 for processing video. The method 2300 includes: determining (2305) one or more codec modes for one or more second blocks during conversion between a first block in video data and a bitstream representation of the first block; determining (2310) a codec mode constraint for the first block based on the one or more codec modes for the one or more second blocks; and performing (2315) the conversion by at least applying the codec mode constraint for the first block; wherein the one or more second blocks include at least one of a neighboring block, a non-neighboring block, and a reference block of the first block.

[0695] Figure 24 is a flow chart of a method 2400 of processing video. The method 2400 includes performing (2405) a conversion between a current block in video data and a bitstream representation of the current block by using at least one of combined inter-frame intra prediction (CIIP), diffusion filtering, bilateral filtering, transform domain filtering, or another type of post-reconstruction filtering different from diffusion filtering, bilateral filtering, and transform domain filtering, wherein reconstructed neighboring samples of the current block used in at least one of combined inter-frame intra prediction (CIIP), diffusion filtering, bilateral filtering, transform domain filtering, or another type of post-reconstruction filtering are replaced with approximate samples generated from corresponding samples of reconstructed neighboring samples in one or more reference pictures.

[0696] Figure 25 25 is a flow chart of a method 2500 for processing video. The method 2500 includes storing (2505) a combined inter-intra prediction (CIIP) mode flag and / or an intra mode in a history-based motion vector prediction (HMVP) table along with motion information; and performing (2510) a conversion between a current block in video data and a bitstream representation of the current block based on at least the HMVP table.

[0697] Figure 2626 is a flow chart of a method 2600 for processing video. The method 2600 includes determining (2605) a prediction mode for a current block during conversion between a current block in video data and a bitstream representation of the current block; determining (2610) applicability of a combined inter-intra prediction (CIIP) mode, the applicability indicating that the CIIP mode is enabled for the current block in response to determining that the current block uses an Advanced Motion Vector Prediction (AMVP) mode or a Merge mode codec; and performing (2615) the conversion based on the applicability of the CIIP mode.

[0698] Figure 27 27 is a flow chart of a method 2700 for processing video. The method 2700 includes determining (2705) a type of a selected Merge candidate for the current block during conversion between a current block in video data and a bitstream representation of the current block; and determining (2710) suitability of combined inter-intra prediction (CIIP) for the current block based on the type of the selected Merge candidate, wherein the current block is encoded or decoded in Merge mode.

[0699] Figure 28 is a flow chart of a method 2800 for processing video. The method 2800 includes encoding (2805) a combined inter-frame intra prediction (CIIP) flag of the current video block using a context model-based codec during conversion between a current video block in video data and a bitstream representation of the current video block without referencing CIIP flags of one or more neighboring video blocks to the current video block, and performing (2810) the conversion by at least applying the combined inter-frame intra prediction (CIIP) flag of the current video block.

[0700] Figure 29 29 is a flow chart of a method 2900 for processing video. The method 2900 includes: encoding (2905) a combined inter-frame intra prediction (CIIP) flag of the current video block with a bypass codec during conversion between a current video block in video data and a bitstream representation of the current video block; and performing (2910) the conversion by at least applying the combined inter-frame intra prediction (CIIP) flag.

[0701] Figure 30 is a flow chart of a method 3000 for processing a video. The method 3000 includes determining (3005) an intra-prediction mode for a first video block of the video according to a rule, wherein the rule includes skipping checking a combined inter-intra prediction (CIIP) flag of one or more neighboring video blocks of the first video block during intra-prediction mode derivation for the first video block, and performing (3010) a conversion between the first video block and a bitstream representation of the first video block based at least on the determined intra-prediction mode.

[0702] Figure 3131 is a flow chart of a method 3100 for processing a video. The method 3100 includes determining (3105) a weight pair based on one or more neighboring video blocks of the current video block during conversion between a current video block encoded and decoded in a combined inter-frame intra-frame prediction (CIIP) mode of the video and a bitstream representation of the current video block, the weight pair including a first weight for a first predictor of the current video block and a second weight for a second predictor of the current video block, wherein the first predictor is generated by an intra-frame prediction mode and the second predictor is generated by an inter-frame prediction mode; and determining (3110) a predictor for the current block based on a weighted sum of the first predictor and the second predictor.

[0703] With reference to methods 2000 and 2100, some examples of combined inter-frame and intra-frame prediction and their use for encoding are described in Section 4. For example, as described in Section 4, a video block can be processed according to the combined intra-frame and inter-frame prediction use.

[0704] Referring to methods 2000 and 2100 , video blocks may be encoded in a video bitstream, wherein bit efficiency may be achieved by using bitstream generation rules associated with combined inter-frame and intra-frame prediction.

[0705] The method may include where the one or more flags include a combined inter-intra prediction (CIIP) flag, a local illumination compensation (LIC) flag, a diffusion filtering flag, a bilateral filtering flag, a transform domain filtering flag, or another type of post-reconstruction filtering flag.

[0706] The method may include wherein the one or more flags include a first flag associated with a first operation, the first flag is derived as false, and the first operation is not applied.

[0707] The method may include wherein use of the first operation is signaled as skipping.

[0708] The method may include wherein, in the conforming bitstream, use of the first operation is signaled as constrained to be false.

[0709] The method may include where the first video block is within an adjacent row or column relative to the second video block.

[0710] The method may include: wherein the adjacent row includes an above row or an upper right row.

[0711] The method may include: wherein the adjacent column includes a left column, a lower left column, or an upper left column.

[0712] The method may include: wherein the coding mode includes intra mode, CIIP mode or CPR mode.

[0713] The method may include determining a location of the second video block, and wherein constraining the one or more flags to a false state is also based on the determination of the location of the second video block.

[0714] The method may include where the location is at a top of a current codec tree unit (CTU), and an upper neighboring block of the second video block is located in a different CTU.

[0715] The method may include where the position is located to the left of a current codec tree unit (CTU), and a left neighboring block of the second video block is located within a different CTU.

[0716] The method may include wherein the one or more flags include an intra-mode CIIP flag or a CIIP mode flag, and data related to the one or more flags are stored in a history-based motion vector prediction (HMVP) table along with motion information.

[0717] The method may include comparing two candidate motion information, wherein the CIIP flag or the intra mode CIIP mode flag is not used in the comparison of the motion information.

[0718] The method may include comparing two candidate motion information, wherein a CIIP flag or an intra mode CIIP mode flag is used in the comparison of the motion information.

[0719] The method may include: determining a Merge candidate from an entry in an HMVP table; and copying a CIIP flag of the entry to the Merge candidate.

[0720] The method may include: determining that a Merge candidate is from an entry in an HMVP table; and copying a CIIP flag and an intra mode of the entry to the Merge candidate.

[0721] The method may include where a flag in the one or more flags is associated with CIIP, and where the CIIP is performed for Advanced Motion Vector Prediction (AMVP).

[0722] The method may include: wherein a CIIP flag and an intra mode flag are signaled for the AMVP mode.

[0723] The method may include: inheriting a CIIP flag in a Merge mode or a UMVE mode, the CIIP flag including an operation state being true, multiple intra modes being allowed in the CIIP, and signaling the intra mode based on the multiple intra modes allowed in the CIIP.

[0724] The method may include: wherein the CIIP flag and the intra mode of the adjacent or non-adjacent video block in the Merge mode or the UMVE mode are inherited by the second video block.

[0725] The method may include wherein CIIP is disabled for skip mode.

[0726] The method may include comparing information related to two candidates, and wherein the CIIP flag or the intra mode CIIP mode flag is not used in the comparison of the information.

[0727] The method may include comparing information related to two candidates, and wherein a CIIP flag or an intra mode CIIP mode flag is used in the comparison of the information.

[0728] The method may include wherein one or more candidates involved in the pairwise prediction or the combined bidirectional prediction employ CIIP prediction, and wherein the operating state is enabled.

[0729] The method may include wherein the intra-mode of one of the two candidates is inherited.

[0730] The method may comprise: wherein signaling an intra-frame mode.

[0731] The method may include where pairwise prediction or combined bi-directional prediction involves two candidates.

[0732] The method may include wherein reconstructed samples used in a CIIP mode, a diffusion filter, a bilateral filter, a transform domain filter, or other type of post-reconstruction filter are replaced with samples in a reference picture.

[0733] The method may include where the second video block is bi-directionally predicted and neighboring samples of two reference blocks are averaged to generate final neighboring samples.

[0734] The method may include where the second video block is bi-directionally predicted and where neighboring samples of two reference blocks are used as final neighboring samples.

[0735] The method may include: wherein the second video block is bi-directionally predicted, and performing weighted averaging on neighboring samples of two reference blocks based on unequal weight generalized bi-directional prediction (GBI) to generate final neighboring samples, or applying weighted prediction LIC to the second video block.

[0736] The method may include wherein motion information of the second video block is used to identify samples in a reference picture.

[0737] The method may include wherein motion information of the second video block is used to identify samples in a reference picture.

[0738] The method may include wherein the motion vector is rounded to integer precision and used to identify the sample point.

[0739] The method may include: wherein the sample is in a reference picture identified by a motion vector with integer pixel precision.

[0740] The method may include determining characteristics of the second video block, the characteristics including one or more of block size, slice type, picture type, slice type, or motion information, and wherein the operating state is constrained based on the determination of the characteristics.

[0741] The method may include: wherein the method is signaled in a sequence parameter set (SPS), a view parameter set (VPS), a picture parameter set (PPS), a sequence header, a picture header, a slice header, a slice group header, a slice, or a CTU group.

[0742] The following list of solutions provides further embodiments and variations of the items listed in the previous sections (e.g., items 11 to 16).

[0743] 40. A video processing method comprising: performing conversion between a video block of a video and a codec representation of the video block using a combined inter-frame intra prediction mode, wherein the codec representation corresponds to a weighted average of intra-frame and inter-frame prediction results of the video block using weight pairs from a set of weight pairs, the set of weight pairs comprising less than three pairs.

[0744] 41. The method of solution 40, wherein the set of weight pairs corresponds to two pairs.

[0745] 42. A method according to any of solutions 40 to 41, wherein the weight pair is determined based on a single neighboring block.

[0746] 43. A method according to any one of solutions 40 to 41, wherein the weight pairs are determined based on multiple neighboring blocks.

[0747] 44. The method of solution 40, wherein the set of weight pairs comprises exactly one pair.

[0748] 45. A method according to solution 44, wherein the pair is one of (1, 3) or (2, 2) or (1, 7) or (2, 6) or (3, 5) or (4, 4).

[0749] 46. ​​A video processing method, comprising: performing conversion between a video block of a video and a codec representation of the video block using a combined inter-frame intra prediction mode, wherein the codec representation corresponds to a weighted average of intra-frame and inter-frame prediction results of the video block using weight pairs from a set of weight pairs, wherein the set of weight pairs is determined by codec information of one or more neighboring blocks.

[0750] 47. The method of solution 46, wherein the set of weight pairs is determined by exactly one neighboring block.

[0751] 48. The method of solution 46, wherein the set of weight pairs is determined by two or more neighboring blocks.

[0752] 49. A method according to any of solutions 40 to 48, wherein the conversion includes encoding the video to generate the codec representation.

[0753] 50. A method according to any of solutions 40 to 48, wherein the conversion comprises decoding the codec representation to generate the video.

[0754] Various other embodiments and additional features of these methods can be described using the following clause-based narrative.

[0755] 1. A video processing method, comprising:

[0756] determining one or more codec modes for one or more second blocks during conversion between a first block in the video data and a bitstream representation of the first block;

[0757] determining a codec mode constraint for the first block based on the one or more codec modes of the one or more second blocks; and

[0758] performing said converting by at least applying said codec mode constraint of said first block;

[0759] The one or more second blocks include at least one of an adjacent block, a non-adjacent block and a reference block of the first block.

[0760] 2. The method of clause 1, wherein determining the codec mode constraint for the first block comprises:

[0761] Based on the one or more codec modes of the one or more second blocks, one or more flags corresponding to the one or more codec modes of the first block, respectively, are determined.

[0762] 3. The method of clause 2, wherein the one or more codec modes include:

[0763] A combined inter-frame intra-frame prediction (CIIP) mode, a local illumination compensation (LIC) mode, a diffusion filtering mode, a bilateral filtering mode, a transform domain filtering mode, or a post-reconstruction filtering mode different from the diffusion filtering mode, the bilateral filtering mode, and the transform domain filtering mode.

[0764] 4. A method according to any of clauses 2 to 3, wherein the codec mode constraint of the first block comprises:

[0765] When a first flag corresponding to a first codec mode is derived as false, the first codec mode of the one or more codec modes of the first block is disabled.

[0766] 5. A method according to any of clauses 2 to 4, wherein the codec mode constraint of the first block comprises:

[0767] When a second flag corresponding to a second codec mode is derived as false, information indicating whether the second codec mode among the one or more codec modes of the first block is enabled is not signaled.

[0768] 6. A method according to any of clauses 2 to 5, wherein the codec mode constraint of the first block comprises:

[0769] When a third flag corresponding to a third codec mode is derived as false, information indicating whether the third codec mode among the one or more codec modes of the first block is enabled is signaled and constrained to be false.

[0770] 7. The method according to any one of clauses 1 to 6, further comprising:

[0771] Determining whether to apply the codec mode constraint of the first block.

[0772] 8. The method of clause 7, wherein determining whether to apply the codec mode constraint for the first block comprises:

[0773] Whether to apply the codec mode constraint of the first block is determined according to codec modes of adjacent rows or columns of the first block.

[0774] 9. The method of clause 7, wherein determining whether to apply the codec mode constraint for the first block comprises:

[0775] Whether to apply the coding mode constraint of the first block is determined according to at least N samples in adjacent rows or adjacent columns of the first block that are not encoded using the fourth mode, and N≧1.

[0776] 10. The method of clause 8 or 9, wherein the adjacent rows include an upper row and an upper right row of the first block.

[0777] 11. A method according to any of clauses 8 to 10, wherein the adjacent columns comprise a left column, a lower left column and an upper left column of the first block.

[0778] 12. A method according to any of clauses 7 to 11, wherein determining whether to apply the codec mode constraint of the first block comprises:

[0779] When any adjacent non-adjacent block is coded in the fourth mode, it is determined to apply the coding mode constraint of the first block.

[0780] 13. A method according to any of clauses 7 to 11, wherein determining whether to apply the codec mode constraint of the first block comprises:

[0781] When all adjacent non-adjacent blocks are coded and decoded using the fourth mode, it is determined to apply the coding and decoding mode constraint of the first block.

[0782] 14. A method according to any of clauses 7 to 11, wherein determining whether to apply the codec mode constraint of the first block comprises:

[0783] When at least M adjacent non-adjacent blocks are not coded in the fourth mode, it is determined that the coding mode constraint of the first block is not applied, and M is a predefined first threshold.

[0784] 15. The method of any of clauses 9 to 14, wherein the fourth codec mode comprises at least one of an intra prediction mode, a combined inter intra prediction (CIIP) mode, and a current picture reference (CPR) mode.

[0785] 16. A method according to any of clauses 7 to 14, wherein determining whether to apply the codec mode constraint of the first block comprises:

[0786] Whether to apply the coding mode constraint of the first block is determined according to a position of the first block.

[0787] 17. The method of clause 16, wherein determining whether to apply the codec mode constraint of the first block based on the position of the first block comprises:

[0788] When the position is at the top of a current codec tree unit (CTU) and an upper neighboring block and the first block belong to different CTUs, it is determined not to apply the codec mode constraint of the first block.

[0789] 18. The method of clause 16, wherein determining whether to apply the codec mode constraint of the first block based on the position of the first block comprises:

[0790] When the position is on the left side of a current codec tree unit (CTU), and a left neighboring block and the first block belong to different CTUs, it is determined not to apply the codec mode constraint of the first block.

[0791] 19. The method according to any one of clauses 1 to 18, further comprising:

[0792] determining characteristics of the current block; and

[0793] When the characteristic of the current block meets a predefined condition, it is determined to apply the coding mode constraint of the current block.

[0794] 20. The method according to any one of clauses 1 to 18, further comprising:

[0795] determining characteristics of the current block and / or previously coded blocks; and

[0796] Whether to apply the coding mode constraint of the current block is determined according to the characteristics of the current block and / or a previously coded block.

[0797] 21. A video processing method, comprising:

[0798] performing conversion between a current block in the video data and a bitstream representation of the current block using at least one of combined inter-intra prediction (CIIP), diffusion filtering, bilateral filtering, transform domain filtering, or another type of post-reconstruction filtering different from diffusion filtering, bilateral filtering, and transform domain filtering,

[0799] wherein the reconstructed neighboring samples of the current block used in at least one of the combined inter-frame intra prediction (CIIP), the diffusion filtering, the bilateral filtering, the transform domain filtering, or the other type of post-reconstruction filtering are replaced with approximate samples generated from corresponding samples of the reconstructed neighboring samples in one or more reference pictures.

[0800] 22. The method of clause 21, wherein when the current block is bi-directionally predicted, adjacent samples of two reference blocks of the current block are averaged to generate the approximate samples.

[0801] 23. The method of clause 21, wherein when the current block is bi-directionally predicted or uni-directionally predicted, neighboring samples of a reference block of the current block are used as the approximating samples.

[0802] 24. The method of clause 21, wherein when the current block is bi-directionally predicted and at least one of unequal-weight generalized bi-directional prediction (GBI), weighted prediction, and local illumination compensation (LIC) is applied to the current block, neighboring samples of two reference blocks of the current block are weighted averaged to generate the approximate sample.

[0803] 25. A method according to clauses 22 to 24, wherein the neighbouring samples of the reference block of the current block are identified by motion information of the current block.

[0804] 26. A method according to clauses 22 to 24, wherein the neighbouring samples of the reference block of the current block are identified by modified motion information of the current block.

[0805] 27. The method of clause 24, wherein the modified motion information of the current block is a modified motion vector rounded to integer precision.

[0806] 28. The method of clause 21, wherein the neighboring samples of the reference block of the current block are identified using integer-pixel precision motion vectors.

[0807] 29. The method of clause 28, wherein the motion vectors of the reconstructed neighboring samples are rounded to integer precision to identify the corresponding samples.

[0808] 30. The method of any of clauses 21 to 29, wherein the reconstructed neighboring samples of the current block are replaced by the approximating samples only when the current block is coded with integer pixel precision.

[0809] 31. A method according to any of clauses 21 to 30, wherein the reconstructed neighboring samples of the current block are replaced by the approximating samples only for luma components or chroma components.

[0810] 32. The method of any one of clauses 19 to 31, further comprising:

[0811] determining characteristics of the current block; and

[0812] When the characteristic of the current block meets a predefined condition, it is determined to replace the reconstructed neighboring sample points with the approximate sample points.

[0813] 33. The method of clause 19 or 32, wherein the characteristic of the current block comprises at least one of block size, slice type, picture type, slice type, and motion information.

[0814] 34. The method of clause 33, wherein the predefined condition is that the current block contains samples that are not smaller than a predefined second threshold.

[0815] 35. The method of clause 33, wherein the predefined condition is that a width and a height of the current block are greater than a predefined third threshold.

[0816] 36. The method of clause 33, wherein the predefined condition is that a width and a height of the current block are smaller than a predefined fourth threshold.

[0817] 37. The method of clause 33, wherein the predefined condition is that a width of the current block is smaller than a predefined fifth threshold and / or a height of the current block is smaller than a predefined sixth threshold.

[0818] 38. The method of clause 33, wherein the predefined condition is that a width of the current block is greater than a predefined seventh threshold and / or a height of the current block is greater than a predefined eighth threshold.

[0819] 39. A method according to clause 38, wherein information indicating whether the codec mode constraint of the current block applies and / or whether the reconstructed neighboring samples are replaced with the approximate samples is signaled in a sequence parameter set (SPS), a view parameter set (VPS), a picture parameter set (PPS), a sequence header, a picture header, a slice header, a slice group header, a slice, or a CTU group.

[0820] 40. The method of any one of clauses 21 to 39, further comprising:

[0821] determining characteristics of the current block and / or previously coded blocks; and

[0822] Whether to replace the reconstructed neighboring samples with the approximate samples is determined according to the characteristics of the current block and / or the previously coded block.

[0823] 41. A method according to clause 20 or 40, wherein the characteristics of the current block and / or the previous codec block include at least one of the block dimensions, video processing data unit (VPDU), picture type, low delay check flag, and codec information of the current block and / or the previous codec block.

[0824] 42. The method of clause 41, wherein the codec information of the current block and / or the previously coded block indicates a reference picture, unidirectional prediction or bidirectional prediction.

[0825] 43. A video processing apparatus comprising a processor configured to implement the method of any one of clauses 1 to 42.

[0826] 44. The device of clause 43, wherein the device is a video encoder.

[0827] 45. The device of clause 43, wherein the device is a video decoder.

[0828] 46. ​​A computer-readable recording medium having recorded therein a program including codes, the program causing a processor to execute the method according to any one of clauses 1 to 42.

[0829] Various other embodiments and additional features of these methods can be described using the following clause-based narrative.

[0830] 1. A video processing method, comprising:

[0831] storing a combined inter-intra prediction (CIIP) mode flag and / or intra mode in a history-based motion vector prediction (HMVP) table along with motion information; and

[0832] Converting between a current block in the video data and a bitstream representation of the current block is performed based at least on the HMVP table.

[0833] 2. The method according to clause 1, further comprising:

[0834] Compare the motion information of two candidates,

[0835] The CIIP flag of the CIIP mode and / or the intra mode are not used in the comparison of the two candidate motion information.

[0836] 3. The method according to clause 1, further comprising:

[0837] Compare the motion information of two candidates,

[0838] The CIIP flag of the CIIP mode and / or the intra mode are used in the comparison of the two candidate motion information.

[0839] 4. The method of any one of clauses 1 to 3, wherein the performing comprises:

[0840] When a Merge candidate comes from an entry in the HMVP table, the CIIP flag of the entry is copied to the Merge candidate.

[0841] 5. The method of any one of clauses 1 to 3, wherein the performing comprises:

[0842] When a Merge candidate comes from an entry in the HMVP table, the CIIP flag and the intra mode of the entry are copied to the Merge candidate.

[0843] 6. A video processing method, comprising:

[0844] determining a prediction mode for a current block during conversion between a current block in video data and a bitstream representation of the current block;

[0845] determining applicability of a combined inter-intra prediction (CIIP) mode, the applicability indicating that the CIIP mode is enabled for the current block in response to determining that the current block is encoded in an advanced motion vector prediction (AMVP) mode or a Merge mode; and

[0846] The converting is performed based on the applicability of the CIIP mode.

[0847] 7. The method of clause 6, wherein when the current block is encoded or decoded in the AMVP mode, a CIIP flag and / or an intra mode of the CIIP mode is signaled.

[0848] 8. A method according to clause 6 or 7, wherein in the Merge mode and / or Merge with Motion Vector Difference (MMVD) mode of the current block, the CIIP flag and / or intra mode of the CIIP mode of the adjacent neighboring block and / or non-adjacent neighboring block is inherited.

[0849] 9. A method according to any one of clauses 6 to 8, wherein the CIIP flag and / or intra-frame mode of the CIIP mode is signaled for non-skipped Merge mode and / or non-skipped MMVD mode, and in skipped Merge mode and / or skipped MMVD mode, the CIIP flag and / or intra-frame mode of the CIIP mode of adjacent neighboring blocks and / or non-adjacent neighboring blocks are inherited.

[0850] 10. A method according to any one of clauses 6 to 8, wherein the CIIP flag and / or intra-frame mode of the CIIP mode is signaled for the Skip Merge mode and / or Skip MMVD mode, and in the Non-Skip Merge mode and / or Non-Skip MMVD mode, the CIIP flag and / or intra-frame mode of the CIIP mode of adjacent neighboring blocks and / or non-adjacent neighboring blocks are inherited.

[0851] 11. The method of any of clauses 6 to 10, wherein in Merge mode and / or Skip MMVD mode, the CIIP flag is inherited.

[0852] 12. The method of clause 11, wherein the intra mode is signaled when the CIIP flag is true and multiple intra modes are allowed in the CIIP mode.

[0853] 13. A method according to any one of clauses 6 to 12, wherein the CIIP flag and / or intra mode of the CIIP mode of the adjacent neighboring blocks and / or non-adjacent neighboring blocks encoded and decoded in Merge mode and / or MMVD mode is inherited by the current block.

[0854] 14. The method according to any one of clauses 6 to 13, further comprising:

[0855] Disable the CIIP mode for skip mode.

[0856] 15. The method according to any one of clauses 6 to 13, further comprising:

[0857] Compare the information of two Merge candidates,

[0858] The CIIP flag of the CIIP mode and / or the intra mode are not used in the comparison of the information of the two Merge candidates.

[0859] 16. The method according to any one of clauses 6 to 13, further comprising:

[0860] Compare the information of two Merge candidates,

[0861] The CIIP flag of the CIIP mode and / or the intra mode are used in the comparison of the information of the two Merge candidates.

[0862] 17. A video processing method, comprising:

[0863] During conversion between a current block in video data and a bitstream representation of the current block, determining a type of a selected Merge candidate for the current block; and

[0864] determining the applicability of combined inter-intra prediction (CIIP) for the current block according to the type of the selected Merge candidate,

[0865] The current block is encoded and decoded in Merge mode.

[0866] 18. The method of clause 17, wherein the CIIP is disabled when the selected Merge candidate for the current block is at least one of a paired Merge candidate, a combined bidirectional Merge candidate, a zero-motion Merge candidate, or a virtual or artificial Merge candidate.

[0867] 19. The method according to clause 17 or 18, wherein when a pairwise merge candidate or one of the candidates involved in the combined bidirectional merge candidate adopts the CIIP mode, the CIIP mode is enabled for the pairwise merge candidate or the combined bidirectional merge candidate.

[0868] 20. The method of clause 19, wherein the intra-mode of the involved CIIP mode candidate is inherited.

[0869] 21. The method of clause 19, wherein the intra mode of the involved CIIP mode is signaled for the paired Merge candidate or combined bidirectional Merge candidate.

[0870] 22. The method according to clause 17 or 18, wherein the CIIP mode is enabled for a pairwise Merge candidate or a combined bidirectional Merge candidate when both candidates involved in the pairwise Merge candidate or the combined bidirectional Merge candidate adopt the CIIP mode.

[0871] 23. The method of clause 22, wherein the intra-mode of one of the two involved candidates is inherited.

[0872] 24. The method of clause 22, wherein the intra-mode of the involved CIIP mode is derived from the intra-modes of the two involved candidates and is used for the paired Merge candidate or the combined bidirectional Merge candidate.

[0873] 25. The method of clause 22, wherein the intra mode of the involved CIIP mode is signaled for the paired Merge candidate or the combined bidirectional Merge candidate.

[0874] 26. A video processing apparatus comprising a processor configured to implement the method of any one of clauses 1 to 25.

[0875] 27. The device of clause 26, wherein the device is a video encoder.

[0876] 28. The device of clause 26, wherein the device is a video decoder.

[0877] 29. A computer-readable recording medium having recorded therein a program including codes, the program causing a processor to execute the method according to any one of clauses 1 to 25.

[0878] 1. A video processing method, comprising:

[0879] During conversion between a current video block in the video data and a bitstream representation of the current video block, encoding and decoding a combined inter-intra prediction (CIIP) flag of the current video block using a context model based codec without referencing CIIP flags of one or more neighboring video blocks to the current video block, and

[0880] The conversion is performed by at least applying the combined inter-intra prediction (CIIP) flag of the current video block.

[0881] 2. The method of clause 1, wherein a fixed context is used in the context model-based encoding and decoding of the CIIP flag of the current video block.

[0882] 3. A video processing method, comprising:

[0883] During a transition between a current video block in the video data and a bitstream representation of the current video block, encoding and decoding a combined inter-intra prediction (CIIP) flag of the current video block with a bypass codec, and

[0884] The conversion is performed at least by applying the combined inter-intra prediction (CIIP) flag.

[0885] 4. The method of clause 3, wherein encoding a combined inter-intra prediction (CIIP) flag of the current video block with a bypass codec comprises encoding the CIIP flag with equal probability of being 0 and 1.

[0886] 5. The method according to any one of clauses 1 to 4, further comprising:

[0887] In response to the current video block being encoded with the CIIP mode, an intra prediction mode associated with the current video block is set to a given intra prediction mode.

[0888] 6. The method of clause 5, wherein the given intra prediction mode is planar mode.

[0889] 7. The method of clause 5 or 6, wherein the given intra prediction mode is used in an intra prediction mode determination process for a subsequently coded video block.

[0890] 8. The method according to clause 7, further comprising:

[0891] During conversion of a second video block that is one of subsequent coded video blocks of the current video block, if the current video block is a neighboring video block of the second video block, adding the given intra prediction mode to an intra prediction mode candidate list of the second video block.

[0892] 9. The method according to clause 8, further comprising:

[0893] The intra prediction mode candidate list includes a most probable mode candidate list.

[0894] 10. The method of any of clauses 1 to 9, wherein, in response to the current video block being encoded in CIIP mode, intra prediction mode information for the current video block is not stored.

[0895] 11. The method of clause 10, wherein the current video block is deemed unusable in the decoding process of other blocks.

[0896] 12. The method of clause 10, wherein the current video block is considered a video block encoded in an inter-prediction mode.

[0897] 13. The method of clauses 1 to 12, wherein the CIIP flag for the current video block is not stored.

[0898] 14. A video processing method, comprising:

[0899] An intra-prediction mode for a first video block of a video is determined according to a rule, wherein the rule comprises:

[0900] During intra prediction mode derivation processing for the first video block, skipping checking a combined inter-intra prediction (CIIP) flag of one or more neighboring video blocks of the first video block, and

[0901] Based at least on the determined intra-prediction mode, conversion between the first video block and a bitstream representation of the first video block is performed.

[0902] 15. The method according to clause 14, wherein

[0903] Determining the intra prediction mode includes determining a most probable mode.

[0904] 16. A method according to clause 14 or 15, wherein for a second video block of the video, in response to the second video block being decoded in inter-frame codec or CIIP codec, a default intra-frame prediction mode is set to the second video block, wherein the second video block is a neighboring video block of the first video block.

[0905] 17. The method of clause 16, wherein determining an intra prediction mode is based on the default intra prediction mode for the second video block;

[0906] And the default intra-frame prediction mode is the planar intra-frame prediction mode.

[0907] 18. The method of any of clauses 14 to 17, wherein the CIIP flags of the one or more neighboring video blocks are not stored.

[0908] 19. A video processing apparatus comprising a processor configured to implement the method of any one of clauses 1 to 18.

[0909] 20. The device of clause 19, wherein the device is a video encoder.

[0910] 21. The device of clause 19, wherein the device is a video decoder.

[0911] 22. A computer-readable recording medium having recorded therein a program including codes, the program causing a processor to execute the method according to any one of clauses 1 to 21.

[0912] Various other embodiments and additional features of these methods can be described using the following clause-based narrative.

[0913] 1. A video processing method, comprising:

[0914] determining, during conversion between a current video block of a video encoded and decoded in a combined inter-intra prediction (CIIP) mode and a bitstream representation of the current video block, a weight pair based on one or more neighboring video blocks of the current video block, the weight pair comprising a first weight for a first predictor of the current video block and a second weight for a second predictor of the current video block,

[0915] wherein the first prediction result is generated by an intra-frame prediction mode, and the second prediction result is generated by an inter-frame prediction mode; and

[0916] A prediction result of the current block is determined based on a weighted sum of the first prediction result and the second prediction result.

[0917] 2. The method of clause 1, wherein determining the weight pair comprises:

[0918] The weight pair is determined according to prediction modes of the one or more neighboring video blocks of the current video block.

[0919] 3. The method of clause 1 or 2, wherein for neighboring video blocks encoded in the CIIP mode, the neighboring video blocks are treated as blocks encoded in an inter-prediction mode.

[0920] 4. The method of clause 1 or 2, wherein for a neighboring video block encoded in the CIIP mode, the neighboring video block is considered to be a block encoded in an intra-frame prediction mode.

[0921] 5. The method of any of clauses 1 to 4, wherein the neighboring video block is at least one of a neighboring block, a non-neighboring block, and a temporally neighboring block of the current video block.

[0922] 6. The method of any of clauses 1 to 5, wherein one of the neighboring video blocks is a left neighboring video block or a top neighboring video block.

[0923] 7. The method of any of clauses 1 to 5, wherein two of the neighboring video blocks are a left neighboring video block and a top neighboring video block, respectively.

[0924] 8. A method according to clause 6 or 7, wherein the left neighboring video block covers the position (xCb-1, yCb+cbHeight-1), and the top neighboring video block covers the position (xCb+cbWidth-1, yCb-1), and wherein (xCb, yCb) is the position of the top left sample point of the current video block, and cbWidth and cbHeight are the width and height of the current video block, respectively.

[0925] 9. A method according to clause 6 or 7, wherein the left neighboring video block covers the position (xCb-1, yCb), and the top neighboring video block covers the position (xCb, yCb-1), and wherein (xCb, yCb) is the position of the top left sample point of the current video block.

[0926] 10. The method of any one of clauses 1 to 9, wherein a CIIP mode result is obtained by applying the weight pair to the intra prediction result and the inter prediction result:

[0927] P CIIP =(wInter*P inter +wIntra*P intra +offset)>>N

[0928] And among them, P CIIP is the CIIP model result, P inter is the inter-frame prediction result, P intra is the intra prediction result, (wInter, wIntra) is the weight pair, offset is set to (1<<(N-1)) or 0, and N is set to log2(wIntra+wInter).

[0929] 11. The method of any of clauses 1 to 10, wherein the neighboring video block is selected based on encoding information of the current block and / or the neighboring blocks.

[0930] 12. The method according to any one of clauses 1 to 11, wherein the weight pair is determined based on encoding information of the current block and / or the neighboring blocks.

[0931] 13. A method according to clause 11 or 12, wherein the encoding information includes at least one of the following: block dimension information, block shape information, a low-latency check flag, reference picture information, motion information, or an intra-frame prediction mode of the current video block and / or the neighboring video block.

[0932] 14. The method of clause 1, wherein the weight pair depends on a color component of the current video block.

[0933] 15. The method of clause 14, wherein the weight pairs for a primary color component are different from the weight pairs for other color components.

[0934] 16. The method of clause 14, wherein the weight pairs for luma components are different from the weight pairs for chroma components.

[0935] 17. A method according to any of clauses 14 to 16, wherein for chroma components, the first weight and the second weight are equal.

[0936] 18. A method according to any one of clauses 1 to 17, wherein the weight pair is one of two candidate weight pairs, the two candidate weight pairs comprising a first candidate weight pair and a second candidate weight pair.

[0937] 19. A method according to clause 18, wherein the two candidate weight pairs are one of the following: {(1, 3) and (3, 1)}, {(1, 3) and (2, 2)}, {(3, 1) and (2, 2)}, {(3, 5) and (4, 4)}, {(5, 3) and (4, 4)}, {(1, 7) and (4, 4)}, and {(7, 1) and (4, 4)}.

[0938] 20. The method of clause 18 or 19, wherein the weight pair is determined based on a single neighboring video block of the current video block.

[0939] 21. The method of clause 20, wherein when the single neighboring video block is encoded using the intra-prediction mode, the weight pair is the first candidate weight pair; and when the single neighboring video block is encoded using the inter-prediction mode, the weight pair is the second candidate weight pair.

[0940] 22. The method of clause 20 or 21, wherein the single neighboring video block is a left neighboring video block or an above neighboring video block.

[0941] 23. The method of clause 18 or 19, wherein the weight pair is determined based on two or more neighboring video blocks of the current video block, and at least one of the two or more neighboring video blocks satisfies a predetermined condition.

[0942] 24. The method of clause 23, wherein when at least one of the two or more neighboring video blocks is encoded using the intra-prediction mode, the weight pair is the first candidate weight pair; and when at least one of the two or more neighboring video blocks is encoded using the inter-prediction mode, the weight pair is the second candidate weight pair.

[0943] 25. The method of clause 18 or 19, wherein the weight pair is determined based on two or more neighboring video blocks of the current video block, and each of the two or more neighboring video blocks satisfies a predetermined condition.

[0944] 26. A method according to clause 25, wherein when all of the two or more adjacent video blocks are encoded using the intra-frame prediction mode, the weight pair is the first candidate weight pair; and when all of the two or more adjacent video blocks are encoded using the inter-frame prediction mode, the weight pair is the second candidate weight pair.

[0945] 27. The method of any of clauses 23 to 26, wherein one of the two or more neighboring video blocks is a left-neighboring video block and another of the two or more neighboring video blocks is an above-neighboring video block.

[0946] 28. A method according to any of clauses 23 to 27, wherein the first candidate weight pair is one of (2, 2) and (3, 1), and the second candidate weight pair is (1, 3).

[0947] 29. A method according to any of clauses 23 to 28, wherein at least one weight value in the first candidate weight pair is different from at least one weight value in the second candidate weight pair.

[0948] 30. A method according to any of clauses 23 to 29, wherein the first candidate weight pair is different from the second candidate weight pair.

[0949] 31. A method according to any one of clauses 1 to 17, wherein the weight pair is exactly one candidate weight pair.

[0950] 32. The method of clause 31, wherein the one candidate weight pair is one of (1, 3), (2, 2), (1, 7), (2, 6), (3, 5) and (4, 4).

[0951] 33. The method of any of clauses 1 to 32, wherein the weight pair is determined based on whether one or more neighboring video blocks are encoded with the CIIP mode.

[0952] 34. The method of clause 33, wherein the weight pair is determined from the weight pairs of previously encoded video blocks.

[0953] 35. The method of clause 33 or 34, wherein the pair of weights for the current video block is determined based on a single neighboring video block of the current video block.

[0954] 36. The method of clause 35, wherein when the single neighboring video block is encoded using the CIIP mode, setting the weight pair for the current video block to the weight pair for the single neighboring video block; and

[0955] When the single neighboring video block is encoded using the intra prediction mode, the weight pair is a first candidate weight pair of two candidate weight pairs, the two candidate weight pairs including the first candidate weight pair and a second candidate weight pair;

[0956] When the single neighboring video block is encoded using the inter-prediction mode, the weight pair is the second candidate weight pair of two candidate weight pairs, the two candidate weight pairs including the first candidate weight pair and the second candidate weight pair.

[0957] 37. The method of clause 35, wherein when the single neighboring video block is encoded using the CIIP mode, setting the weight pair for the current video block to the weight pair for the single neighboring video block;

[0958] When the single neighboring video block is encoded with the intra prediction mode or the inter prediction mode, the weight pair is a first candidate weight pair of two candidate weight pairs, the two candidate weight pairs including the first candidate weight pair and a second candidate weight pair.

[0959] 38. The method of clause 33 or 34, wherein the weight pair is determined based on two or more neighboring video blocks of the current video block, and at least one of the two or more neighboring video blocks satisfies a predetermined condition.

[0960] 39. The method of clause 38, wherein the two or more adjacent video blocks are checked in a given checking order to identify whether the two or more adjacent video blocks are encoded using the CIIP mode.

[0961] 40. The method of clause 39, wherein when at least one of the two or more neighboring video blocks is encoded in the CIIP mode, setting the weight pair for the current video block to the weight pair of the neighboring video block encoded in the CIIP mode that is first identified in the given inspection order;

[0962] When none of the two or more adjacent video blocks are encoded in the CIIP mode and at least one of the two or more adjacent video blocks is encoded in the intra prediction mode, the weight pair is a first candidate weight pair of two candidate weight pairs, the two candidate weight pairs including the first candidate weight pair and a second candidate weight pair;

[0963] When none of the two or more adjacent video blocks are encoded using the CIIP mode and at least one of the two or more adjacent video blocks is encoded using the inter-frame prediction mode, the weight pair is the second candidate weight pair of two candidate weight pairs, and the two candidate weight pairs include the first candidate weight pair and the second candidate weight pair.

[0964] 41. The method of clause 39, wherein when at least one of the two or more neighboring video blocks is encoded in the CIIP mode, setting the weight pair for the current video block to the weight pair of the neighboring video block encoded in the CIIP mode that is first identified in the given inspection order;

[0965] When none of the two or more adjacent video blocks are encoded using the CIIP mode, the weight pair is a second candidate weight pair of two candidate weight pairs, the two candidate weight pairs including the first candidate weight pair and the second candidate weight pair.

[0966] 42. A method according to any of clauses 36 to 41, wherein the first candidate weight pair is one of (2, 2) and (3, 1), and the second candidate weight pair is (1, 3).

[0967] 43. A method according to any of clauses 36 to 42, wherein at least one weight value in the first candidate weight pair is different from at least one weight value in the second candidate weight pair.

[0968] 44. A method according to any of clauses 36 to 41, wherein the second candidate weight pair is one of (2, 2) and (1, 3).

[0969] 45. A method according to any of clauses 1 to 44, wherein the weight pair is signalled.

[0970] 46. ​​A method according to any of clauses 1 to 45, wherein the weight pair is determined based on whether the neighbouring video blocks are encoded in an inter-prediction mode.

[0971] 47. A method according to any of clauses 1 to 46, wherein a neighbouring video block is considered to be a block encoded in intra-prediction mode when the neighbouring video block is not encoded in intra-prediction mode.

[0972] 48. The method of clause 47, wherein the neighboring video blocks are not encoded in at least one of an intra block copy (IBC) mode, the CIIP mode, a triangular prediction mode (TPM), a palette mode, or an RDPCM mode.

[0973] 49. The method of clause 48, wherein the adjacent video blocks are encoded without applying transforms and / or quantization.

[0974] 50. A method according to any one of clauses 1 to 46, wherein when the neighboring video block is encoded in at least one of intra block copy (IBC) mode, the CIIP mode, triangular prediction mode (TPM), palette mode, and RDPCM mode, the neighboring video block is regarded as a block encoded in a non-intra prediction mode.

[0975] 51. A method according to any of clauses 1 to 46, wherein when the neighboring video block is encoded in an intra-frame prediction mode but is not encoded in a predetermined prediction mode, the neighboring video block is considered to be a block encoded in a non-intra-frame prediction mode.

[0976] 52. A method according to any one of clauses 1 to 46, wherein when the neighboring video block is encoded using a matrix-based intra-frame prediction mode, and / or a multiple reference row intra-frame prediction mode with a reference row index not equal to 0, and / or a BDPCM mode, the neighboring video block is regarded as a block encoded using a non-intra-frame prediction mode.

[0977] 53. A video processing apparatus comprising a processor configured to implement the method of any one of clauses 1 to 52.

[0978] 54. The device of clause 53, wherein the device is a video encoder.

[0979] 55. The device of clause 53, wherein the device is a video decoder.

[0980] 56. A computer-readable recording medium having recorded therein a program including codes, the program causing a processor to execute the method according to any one of clauses 1 to 52.

[0981] It should be understood that the disclosed techniques can be implemented in a video encoder or decoder to improve compression efficiency using hash-based motion estimation.

[0982] The disclosed and other solutions, examples, embodiments, modules, and functional operations described herein can be implemented in digital electronic circuitry or computer software, firmware, or hardware, including the structures disclosed herein and their structural equivalents, or any combination thereof. The disclosed and other embodiments can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer-readable medium for execution by, or to control the operation of, a data processing device. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a storage device, a combination of substances that effect a machine-readable propagated signal, or any combination thereof. The term "data processing device" includes all devices, apparatus, and machines for processing data, including, for example, a programmable processor, a computer, or multiple processors or computers. In addition to hardware, a device may also include code that creates an execution environment for the computer program, such as code constituting processor firmware, a protocol stack, a database management system, an operating system, or any combination thereof. A propagated signal is an artificially generated signal, such as a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode or decode information for transmission to a suitable receiver device.

[0983] A computer program (also referred to as a program, software, software application, script, or code) may be written in any form of programming language (including compiled or interpreted languages) and may be deployed in any form, including as a standalone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program may be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program, or in multiple coordinated files (e.g., files storing one or more modules, subroutines, or portions of code). A computer program may be deployed for execution on one or more computers, located at one site or distributed across multiple sites and interconnected by a communications network.

[0984] The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can be implemented as, special-purpose logic circuitry, such as an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).

[0985] For example, processors suitable for executing computer programs include general-purpose and special-purpose microprocessors, as well as one or more of any type of digital computer. Typically, a processor will receive instructions and data from read-only memory or random access memory, or both. The essential elements of a computer are a processor that executes instructions and one or more memory devices that store instructions and data. Typically, a computer will also include one or more mass storage devices for storing data, such as magnetic, magneto-optical, or optical disks, or be operatively coupled to one or more mass storage devices to receive data from them or transfer data to one or more mass storage devices, or both. However, a computer need not have such devices. Computer-readable media suitable for storing computer program instructions and data include all forms of nonvolatile memory, media, and storage devices, including, for example, semiconductor memory devices such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal or removable hard disks; magneto-optical disks; and CD ROM and DVD ROM disks. The processor and memory may be supplemented by, or incorporated into, special-purpose logic circuitry.

[0986] While this patent document contains many specifics, they should not be construed as limitations on the scope of any subject matter or the claims, but rather as descriptions of features for particular embodiments of particular technologies. Certain features described in this patent document in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various functions described in the context of a single embodiment can also be implemented separately in multiple embodiments or in any suitable subcombination. Furthermore, while the features described above may be described as functioning in certain combinations, or even initially claimed to be so, in some cases one or more features in a claim combination may be removed from the combination, and a claim combination may be directed to a subcombination or variations of a subcombination.

[0987] Likewise, while operations are depicted in a particular order in the drawings, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, in order to achieve desired results. Furthermore, the separation of various system components in the embodiments described in this patent document should not be understood as requiring such separation in all embodiments.

[0988] Only a few implementations and examples are described, and other implementations, enhancements, and variations can be made based on what is described and illustrated in this patent document.

Claims

1. A video processing method, comprising: During the conversion between a current video block in video data and a bitstream, determining two candidate combined inter-intra prediction flags of the current video block through context model-based encoding and decoding without referring the combined inter-intra prediction flags of one or more neighboring video blocks to the current video block; Wherein, the combined inter-intra flag is used to indicate whether to use a combined inter-intra prediction mode; Wherein, in the combined inter-intra prediction mode, at least based on an intra prediction signal and an inter prediction signal to generate a prediction signal of the current video block; Comparing first information of the two candidates to determine whether to add at least one of the two candidates to a candidate list constructed for the current video block; and Performing the conversion based on the result of the comparison by at least applying the combined inter-intra prediction flag of the current video block; Wherein, the first information of the two candidates does not include second information related to an encoding and decoding mode; Wherein, the second information related to the encoding and decoding mode includes at least one of the following: A flag of the encoding and decoding mode, or An intra mode used in the encoding and decoding mode; Wherein, a weight pair is determined according to prediction modes of one or more neighboring video blocks of the current video block; Wherein, when a neighboring video block is encoded and decoded in the combined inter-intra prediction mode, the neighboring video block is regarded as a block encoded and decoded in an inter prediction mode of a non-intra prediction mode; Wherein, the one or more neighboring video blocks include a video block covering a position (xCb–1, yCb–1+(cbHeight<<a)) and a video block covering a position (xCb–1+(cbWidth<<a), yCb–1), wherein, (xCb, yCb) is the position of the upper left sample point of the current video block, cbWidth and cbHeight are the width and height of the current video block respectively, and a is determined using the cIdx of the current video block, wherein, cIdx is a variable specifying a color component index of the current video block.

2. The method according to claim 1, wherein Using a fixed context in the context model-based encoding and decoding of the combined inter-intra prediction flag of the current video block.

3. The method according to claim 1, wherein Skipping checking the combined inter-intra prediction flags of one or more video blocks neighboring the current video block during the process of deriving the intra prediction mode of the current video block.

4. The method according to claim 1, wherein In response to the current video block being encoded and decoded in the combined inter-intra prediction mode, an intra prediction mode associated with the current video block is set to a given intra prediction mode.

5. The method according to claim 4, wherein The given intra prediction mode is a planar mode.

6. The method according to claim 4, wherein: The given intra prediction mode is used for the process of determining an intra prediction mode of a subsequent encoded and decoded video block.

7. The method according to claim 6, wherein During the conversion of a second video block which is one of subsequent encoded and decoded video blocks of the current video block, adding the given intra prediction mode to an intra prediction mode candidate list of the second video block.

8. The method according to claim 7, further comprising: The intra prediction mode candidate list includes a most probable mode candidate list.

9. The method according to claim 1, wherein In response to the current video block being encoded and decoded in the combined inter-intra prediction mode, intra prediction mode information of the current video block is not stored.

10. The method according to claim 1, wherein In response to the current video block being encoded in the combined inter-intra prediction mode, the current video block is regarded as a video block encoded in the inter-prediction mode.

11. The method according to claim 1, wherein The converting includes decoding a current block from the bitstream.

12. The method according to claim 1, wherein The converting includes encoding the current block into the bitstream.

13. The method according to claim 1, further comprising: During a transition between a current video block in the video data and a bitstream representation of the current video block, encoding and decoding a combined inter-frame intra prediction (CIIP) flag of the current video block using a bypass codec; as well as The conversion is performed at least by applying the combined inter-intra prediction CIIP flag.

14. The method of claim 13, wherein encoding and decoding a combined inter-frame intra-frame prediction (CIIP) flag of the current video block using bypass codec comprises: The CIIP flag is encoded and decoded with equal probability of being 0 and 1.

15. The method according to claim 6, further comprising: During conversion of a second video block that is one of subsequent coded video blocks of the current video block, if the current video block is a neighboring video block of the second video block, adding the given intra prediction mode to an intra prediction mode candidate list of the second video block.

16. The method according to claim 15, further comprising: The intra prediction mode candidate list includes a most probable mode candidate list.

17. The method of claim 9, wherein the current video block is deemed unusable in a decoding process of other blocks.

18. The method according to any one of claims 13 to 17, wherein the CIIP flag of the current video block is not stored.

19. The method of claim 1, further comprising: An intra-prediction mode for a first video block of a video is determined according to a rule, wherein the rule comprises: During intra prediction mode derivation processing for the first video block, skipping checking a combined inter-intra prediction (CIIP) flag of one or more neighboring video blocks of the first video block, and Based at least on the determined intra-prediction mode, conversion between the first video block and a bitstream representation of the first video block is performed.

20. The method according to claim 19, wherein Determining the intra prediction mode includes determining a most probable mode.

21. The method of claim 19, wherein, for a second video block of the video, in response to the second video block being decoded in inter-frame codec or CIIP codec, a default intra prediction mode is set to the second video block, wherein the second video block is a neighboring video block of the first video block.

22. The method of claim 21 , wherein determining an intra prediction mode is based on the default intra prediction mode for the second video block; And the default intra-frame prediction mode is the planar intra-frame prediction mode.

23. The method of any one of claims 19 to 22, wherein CIIP flags for the one or more adjacent video blocks are not stored.

24. An apparatus for processing video data, comprising a processor and a non - transitory memory having instructions thereon, wherein the instructions, when executed by the processor, cause the processor to: During the conversion between a current video block in video data and the bitstream of the current video block, determine two candidates and a combined inter - intra prediction flag for the current video block through context - model - based encoding and decoding, without referring the combined inter - intra prediction flag of one or more neighboring video blocks to the current video block; in, The combined inter - intra flag is used to indicate whether to use the combined inter - intra prediction mode; Wherein, in the combined inter - intra prediction mode, at least based on an intra - prediction signal and an inter - prediction signal, generate a prediction signal for the current video block; Compare first information of the two candidates to determine whether to add at least one of the two candidates to a candidate list constructed for the current video block; and At least perform the conversion based on the result of the comparison by applying the combined inter - intra prediction flag of the current video block; Wherein, the first information of the two candidates does not include second information related to the encoding and decoding mode; Wherein, the second information related to the encoding and decoding mode includes at least one of the following: A flag of the encoding and decoding mode, or An intra - mode used in the encoding and decoding mode; Wherein, determine a weight pair according to the prediction mode of one or more neighboring video blocks of the current video block; Wherein, when a neighboring video block is encoded and decoded in the combined inter - intra prediction mode, the neighboring video block is regarded as a block encoded and decoded in an inter - prediction mode other than the intra - prediction mode; Wherein, the one or more neighboring video blocks include a video block covering the position (xCb–1,yCb–1+(cbHeight<<a)) and a video block covering the position (xCb–1+(cbWidth<<a),yCb–1), where (xCb,yCb) is the position of the upper - left sample of the current video block, cbWidth and cbHeight are the width and height of the current video block respectively, and a is determined using the cIdx of the current video block, where cIdx is a variable specifying the color component index of the current video block.

25. The apparatus according to claim 24, wherein Use a fixed context in the context - model - based encoding and decoding of the combined inter - intra prediction flag of the current video block.

26. The apparatus according to claim 24, wherein Skip checking the combined inter - intra prediction flag of one or more video blocks adjacent to the current video block during the process of deriving the intra - prediction mode of the current video block. ​ ​ 28. The apparatus according to claim 27, wherein ​ 29. The apparatus according to claim 27, wherein ​ ​ During the conversion between a current video block in video data and a bitstream, two candidates and a combined inter-intra prediction flag of the current video block are determined by context model-based coding and decoding without referring the combined inter-intra prediction flag of one or more neighboring video blocks to the current video block; in, The combined inter-intra flag is used to indicate whether to use a combined inter-intra prediction mode, wherein, in the combined inter-intra prediction mode, a prediction signal of the current video block is generated based at least on an intra prediction signal and an inter prediction signal; Compare first information of the two candidates to determine whether to add at least one of the two candidates to a candidate list constructed for the current video block; and Perform the conversion based on the result of the comparison by at least applying the combined inter-intra prediction flag of the current video block; wherein, the first information of the two candidates does not include second information related to a coding and decoding mode, wherein, the second information related to the coding and decoding mode includes at least one of the following: a flag of the coding and decoding mode, or an intra mode used in the coding and decoding mode, wherein, a weight pair is determined according to a prediction mode of one or more neighboring video blocks of the current video block, wherein, when a neighboring video block is coded and decoded in the combined inter-intra prediction mode, the neighboring video block is regarded as a block coded and decoded in an inter prediction mode with a non-intra prediction mode, wherein, the one or more neighboring video blocks include a video block covering a position (xCb–1, yCb–1+(cbHeight<<a)) and a video block covering a position (xCb–1+(cbWidth<<a), yCb–1), where (xCb, yCb) is the position of the upper left sample of the current video block, cbWidth and cbHeight are the width and height of the current video block respectively, and a is determined using cIdx of the current video block, where cIdx is a variable specifying a color component index of the current video block.

31. A method for storing a bitstream of video, comprising: For a current video block in video data, two candidates and a combined inter-intra prediction flag of the current video block are determined by context model-based coding and decoding without referring the combined inter-intra prediction flag of one or more neighboring video blocks to the current video block; wherein, the combined inter-intra flag is used to indicate whether to use a combined inter-intra prediction mode, wherein, in the combined inter-intra prediction mode, a prediction signal of the current video block is generated based at least on an intra prediction signal and an inter prediction signal; Compare first information of the two candidates to determine whether to add at least one of the two candidates to a candidate list constructed for the current video block; and Generate the bitstream based on the result of the comparison by at least applying the combined inter-intra prediction flag of the current video block; and Store the bitstream in a non-transitory computer-readable recording medium; wherein, the first information of the two candidates does not include second information related to a coding and decoding mode, Among them, the second information related to the encoding / decoding mode includes at least one of the following: a flag of the encoding / decoding mode, or an intra mode used in the encoding / decoding mode, Among them, a weight pair is determined according to the prediction modes of one or more neighboring video blocks of the current video block. Among them, when a neighboring video block is encoded / decoded in the combined inter-intra prediction mode, the neighboring video block is regarded as a block encoded / decoded in an inter prediction mode using a non-intra prediction mode. Among them, the one or more neighboring video blocks include a video block covering the position (xCb–1, yCb–1+(cbHeight<<a)) and a video block covering the position (xCb–1+(cbWidth<<a), yCb–1), where (xCb, yCb) is the position of the upper left sample of the current video block, cbWidth and cbHeight are the width and height of the current video block respectively, and a is determined using the cIdx of the current video block, where cIdx is a variable specifying the color component index of the current video block.

32. A video processing device, comprising a processor configured to implement the method according to any one of claims 1 to 23.

33. The device according to claim 32, wherein the device is a video encoder.

34. The device according to claim 32, wherein the device is a video decoder.

35. A computer-readable recording medium having recorded thereon a program including code, the program causing a processor to execute the method according to any one of claims 1 to 23.

Citation Information

Patent Citations

  • Video encoding method and apparatus, and video decoding method and apparatus

    CN107113425A

  • Method and apparatus of video coding

    CN108702515A

  • Video coding using compound prediction

    US9609343B1

  • Combination of inter-prediction and intra-prediction in video coding

    WO2018237299A1