Encoding and decoding method, bitstream, encoder, decoder, and storage medium
By extending IBC mode prediction to chroma components using target block vector parameters, the method addresses inaccurate chroma prediction in VVC, enhancing accuracy and efficiency in video coding.
Patent Information
- Application Number
- JP2025521192
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2022-10-13
- Publication Date
- 2025-10-06
AI Technical Summary
The existing video coding standard H.266/Versatile Video Coding (VVC) faces reduced coding efficiency due to unreasonable chrominance prediction when Intra Block Copy (IBC) mode is used for luma blocks, leading to inaccurate chrominance prediction and decreased performance.
The method determines a first color component block, identifies IBC mode for the first block, and extends the prediction to a second color component using target block vector parameters, performing an IBC extension mode prediction process to improve chroma prediction accuracy and efficiency.
This approach enhances chroma prediction accuracy by utilizing co-located luma block information, reduces bitrate, and improves encoding and decoding efficiency.
Smart Images

Figure 2025533362000001_ABST
Abstract
Description
[Technical Field]
[0001] TECHNICAL FIELD Embodiments of the present application relate to the technical field of video encoding and decoding, and in particular to encoding and decoding methods, bitstreams, encoders, decoders, and storage media. [Background technology]
[0002] With the increasing demand for video display quality, new video applications such as high-definition and ultra-high-definition video are emerging. The Joint Video Exploration Team (JVET) of the International Organization for Standardization (ISO / IEC) and ITU-T has developed the video coding standard H.266 / Versatile Video Coding (VVC). Among them, Intra Block Copy (IBC) is a block-level coding mode provided by VVC for video sequences of screen content type.
[0003] In the related art, in the case of Direct Mode (DM), if IBC mode is used for the luma block, the setting of the chrominance prediction mode becomes unreasonable, which reduces the accuracy of chrominance prediction for the current block and decreases coding efficiency. Summary of the Invention [Problem to be solved by the invention]
[0004] Embodiments of the present invention provide an encoding and decoding method, a bitstream, an encoder, a decoder, and a storage medium, which can save bitrate, improve encoding and decoding efficiency, and enhance encoding and decoding performance. [Means for solving the problem]
[0005] The technical means of the embodiment of the present invention can be realized as follows.
[0006] In a first aspect, embodiments of the present invention provide a method for determining a prediction mode, the method comprising: determining a first color component block of the current block; If the prediction mode of the first color component block is an IBC mode, determining a first block vector parameter of the first color component block; determining a target block vector parameter of a second color component of the current block according to a first block vector parameter of the first color component block; and performing an IBC extension mode prediction process on the second color component of the current block based on the target block vector parameters to determine a predicted value of the second color component of the current block.
[0007] In a second aspect, embodiments of the present invention provide a decoding method, the decoding method comprising: determining a value of a first syntax element identification; If the first syntax element identification information indicates that the second color component of the current block allows use of the IBC extension mode, decoding the bitstream to determine the value of the second syntax element identification information; If the second syntax element identification information indicates that the second color component of the current block uses the target prediction mode, performing an intra prediction process on the second color component of the current block based on the target prediction mode to determine a predicted value of the second color component of the current block.
[0008] In a third aspect, embodiments of the present invention provide an encoding method, the encoding method comprising: determining a first color component block of the current block when the prediction mode of the second color component of the current block is the target prediction mode; If the prediction mode of the first color component block is an IBC mode, determining a first block vector parameter of the first color component block; determining a target block vector parameter of a second color component of the current block according to a first block vector parameter of the first color component block; and performing an IBC extension mode prediction process on the second color component of the current block based on the target block vector parameters to determine a predicted value of the second color component of the current block.
[0009] In a fourth aspect, an embodiment of the present invention provides a bitstream, the bitstream being generated by performing bit coding based on information to be coded, the information to be coded including at least one of a target block vector parameter of a current block, a value of a first syntax element identification information, a value of a second syntax element identification information, a value of a third syntax element identification information, a value of a fourth syntax element identification information, a value of a fifth syntax element identification information, and a value of a sixth syntax element identification information.
[0010] In a fifth aspect, embodiments of the present invention provide an encoder, the encoder comprising a first determination unit and a first prediction unit; the first determination unit is configured to determine a first color component block of the current block when a prediction mode of the second color component of the current block is a target prediction mode; determine first block vector parameters of the first color component block when the prediction mode of the first color component block is an IBC mode; and determine target block vector parameters of the second color component of the current block based on the first block vector parameters of the first color component block; The first prediction unit is configured to perform an IBC extension mode prediction process on a second color component of the current block according to the target block vector parameters to determine a predicted value of the second color component of the current block.
[0011] In a sixth aspect, embodiments of the present invention provide an encoder, the encoder comprising a first memory and a first processor; the first memory is configured to store a computer program executable on the first processor; The first processor is configured to perform the method according to the third aspect when executing the computer program.
[0012] In a seventh aspect, an embodiment of the present invention provides a decoder, the decoder comprising a second determination unit and a second prediction unit; the second determining unit is configured to determine a first color component block of the current block; determine first block vector parameters of the first color component block when a prediction mode of the first color component block is an IBC mode; and determine target block vector parameters of a second color component of the current block based on the first block vector parameters of the first color component block; The second prediction unit is configured to perform an IBC extension mode prediction process on a second color component of the current block according to the target block vector parameters to determine a predicted value of the second color component of the current block.
[0013] In an eighth aspect, an embodiment of the present invention provides a decoder, the decoder including a decoding unit, a second determination unit and a second prediction unit; The second determining unit is configured to determine a value of the first syntax element identification information; the decoding unit is configured to decode the bitstream to determine a value of the second syntax element identification when the first syntax element identification indicates that the second color component of the current block allows use of the IBC extension mode; The second prediction unit is configured to, when the second syntax element identification information indicates that the second color component of the current block uses the target prediction mode, perform an intra prediction process on the second color component of the current block based on the target prediction mode to determine a predicted value of the second color component of the current block.
[0014] In a ninth aspect, embodiments of the present invention provide a decoder, the decoder including a second memory and a second processor; the second memory is configured to store a computer program executable on the second processor; The second processor is configured to perform the method according to the first aspect or the second aspect when executing the computer program.
[0015] In a tenth aspect, an embodiment of the present invention provides a computer-readable storage medium having stored thereon a computer program, the computer program being configured to, when executed, implement the method according to the first aspect, or to implement the method according to the second aspect, or to implement the method according to the third aspect. [Effects of the Invention]
[0016] An embodiment of the present invention provides an encoding and decoding method, a bitstream, an encoder, a decoder, and a storage medium, in which, on the encoding side, if the prediction mode of the second color component of the current block is a target prediction mode, a first color component block of the current block is determined, if the prediction mode of the first color component block is an IBC mode, first block vector parameters of the first color component block are determined, target block vector parameters of the second color component of the current block are determined based on the first block vector parameters of the first color component block, and an IBC extension mode prediction process is performed on the second color component of the current block based on the target block vector parameters to determine a predicted value of the second color component of the current block. On the decoding side, the value of the first syntax element identification information is determined, and if the first syntax element identification information indicates that the second color component of the current block allows the use of IBC extension mode, the value of the second syntax element identification information is determined by decoded bitstream; if the second syntax element identification information indicates that the second color component of the current block uses a target prediction mode, the first color component block of the current block is determined; if the prediction mode of the first color component block is IBC mode, first block vector parameters of the first color component block are determined, target block vector parameters of the second color component of the current block are determined based on the first block vector parameters of the first color component block, and IBC extension mode prediction processing is performed on the second color component of the current block based on the target block vector parameters to determine a predicted value of the second color component of the current block. In this way, when determining the chroma prediction mode based on the luma prediction mode, if the luma block corresponding to the current block is in IBC mode, the target block vector parameters to which the chroma components are applied can be determined based on the block vector parameters of the luma block, and further, based on this target block vector parameters, a prediction process can be performed on the chroma components according to the IBC extension mode to determine the chroma prediction value of the current block.This improves the problem of unity of chroma prediction, implicitly adds IBC mode to chroma prediction, fully utilizes the related information of the co-located luma block, improves the accuracy of color difference prediction, and in addition, saves the code rate and improves the efficiency of encoding and decoding, thereby improving the performance of encoding and decoding. [Brief explanation of the drawings]
[0017] [Figure 1] 10 is a flowchart of obtaining reconstruction samples based on an IBC mode. [Figure 2] FIG. 10 is a schematic diagram illustrating the position distribution of adjacent blocks according to an embodiment of the present invention. [Figure 3] FIG. 2 is a schematic diagram illustrating the positional relationship between a luma CU and a chroma CU according to an embodiment of the present invention. [Figure 4A] FIG. 1 is a schematic block diagram of an encoder according to an embodiment of the present invention. [Figure 4B] FIG. 2 is a schematic block diagram of a decoder according to an embodiment of the present invention. [Figure 5] 1 is a schematic diagram of a network architecture of an encoding and decoding system according to an embodiment of the present invention; [Figure 6] 4 is a flowchart of a method for determining a prediction mode according to an embodiment of the present invention; [Figure 7] 10 is a schematic diagram illustrating another positional relationship between a luma CU and a chroma CU according to an embodiment of the present invention. FIG. [Figure 8] 10 is a schematic diagram illustrating another positional relationship between a luma CU and a chroma CU according to an embodiment of the present invention. FIG. [Figure 9] 10 is a schematic diagram illustrating another positional relationship between a luma CU and a chroma CU according to an embodiment of the present invention. FIG. [Figure 10] FIG. 10 is a structural schematic diagram showing whether an offset position covers a current block according to an embodiment of the present invention; [Figure 11] 10 is a structural schematic diagram showing whether the offset position exceeds the IBC usable area according to an embodiment of the present invention. FIG. [Figure 12]FIG. 2 is a structural schematic diagram of determining optimal chroma BV parameters according to an embodiment of the present invention; [Figure 13] FIG. 1 is a structural schematic diagram of block copying based on IBC extension mode according to an embodiment of the present invention; [Figure 14] 4 is a detailed flowchart of a method for determining a prediction mode according to an embodiment of the present invention; [Figure 15] 10 is a detailed flowchart of another method for determining a prediction mode according to an embodiment of the present invention. [Figure 16] 3 is a flowchart of a decoding method according to an embodiment of the present invention. [Figure 17] 2 is a flowchart of an encoding method according to an embodiment of the present invention. [Figure 18] 1 is a structural schematic diagram showing the configuration of an encoder according to an embodiment of the present invention; [Figure 19] FIG. 2 is a schematic diagram illustrating a specific hardware structure of an encoder according to an embodiment of the present invention; [Figure 20] FIG. 2 is a structural schematic diagram showing the configuration of a decoder according to an embodiment of the present invention. [Figure 21] FIG. 10 is a structural schematic diagram showing the configuration of another decoder according to an embodiment of the present invention. [Figure 22] FIG. 2 is a schematic diagram of a specific hardware structure of a decoder according to an embodiment of the present invention; [Figure 23] 1 is a structural schematic diagram showing the configuration of an encoding and decoding system according to an embodiment of the present invention; DETAILED DESCRIPTION OF THE INVENTION
[0018] In order to provide a more detailed understanding of the features and technical contents of the embodiments of the present invention, the implementation of the embodiments of the present invention will be described in detail below with reference to the drawings, which are merely for illustrative purposes and are not intended to limit the embodiments of the present invention.
[0019] Unless otherwise defined, all technical and scientific terms used herein are consistent with the meaning commonly understood by one skilled in the art to which this invention pertains. The terms used herein are only used to describe embodiments of the present invention and are not intended to limit the present invention.
[0020] In the following description, the phrase "some embodiments" describes a subset of all possible embodiments, but "some embodiments" may refer to the same or different subsets of all possible embodiments, which may be combined with each other if not inconsistent. Furthermore, terms such as "first," "second," and "third" used in the embodiments of the present invention are used to distinguish between similar objects and do not represent a particular order of the objects. However, where permitted, "first," "second," and "third" can be rearranged or interchanged to represent a particular order, and therefore the embodiments of the present invention described herein may be implemented in an order other than that shown or described.
[0021] Before describing the embodiments of the present invention in more detail, the nouns and terms used in the embodiments of the present invention will be explained. The nouns and terms used in the embodiments of the present invention will be applied to the following description.
[0022] Coding Block (CB) Intra block copy (IBC) Screen Content Coding (SCC) Block Matching (BM) Coding Unit (CU) Block Vector (BV) Motion Vector (MV) Direct Block Vector (DBV) Advanced Motion Vector Prediction (IBC, AMVP) Cross-Component Linear Model Prediction (CCLM) Merge Mode PLANAR Mode H.266 / Versatile Video Coding (VVC) VVC's reference software test platform (VVC Test Model, VTM).
[0023] In addition, in a video image, a coding block is generally represented using a first color component, a second color component, and a third color component. The three color components are one luma component, one blue chroma component, and one red chroma component, respectively. In particular, the luma component is generally represented by the symbol Y, the blue chroma component is generally represented by the symbol Cb or U, and the red chroma component is generally represented by the symbol Cr or V. Thus, a video image may be represented in either a YCbCr format or a YUV format.
[0024] IBC is also an extension tool for video sequence coding for screen content types in VVC, significantly improving the coding efficiency of clean content sequences. Specifically, IBC is a block-level coding mode. Similar to the Inter technique, the coding side performs motion search, specifically block matching, to identify the optimal block vector for each CU, which may also be referred to as a motion vector. Here, a block vector is a vector pointing from the current block to a reference block. Unlike the Inter technique, the optimal block vector in IBC is searched in the reconstruction domain of the frame in which the current block is located (i.e., the currently coded frame), while the Inter motion vector is searched using an adjacent reference frame in the time domain of the currently coded frame.
[0025] In H.266 / VVC, the process of obtaining reconstructed pixels of a current block in IBC mode specifically includes deriving a block vector, deriving a predicted sample using the block vector, deriving a residual sample, and deriving a reconstructed sample using the predicted sample and the residual sample.
[0026] In a specific embodiment, for the process of obtaining reconstruction samples in IBC mode, as shown in FIG. 1, the process may include the following contents:
[0027] In S101, a block vector is derived.
[0028] For the luma component, the input includes a luma position (xCb, yCb) that specifies the top-left sample of the current block relative to the top-left luma sample of the current image, a variable cbWidth that specifies the width of the current block in luma samples, and a variable cbHeight that specifies the height of the current block in luma samples. The output includes a luma block vector (Block Vector Luma, bvL). Note that the current block containing luma samples is also called a "luma block."
[0029] Here, IBC mode is divided into IBC MERGE mode and IBC AMVP mode, and to derive bvL, it is necessary to construct an IBC block vector candidate list bvCandList. The construction process of the IBC MERGE list is explained in detail below. Note that the construction process of the IBC AMVP list is the same as that of the IBC MERGE list, but the maximum number of candidates differs between the two.
[0030] In step 1, if IsGt4by4 is equal to TRUE (the variable IsGt4by4 is TRUE when the product of the width and height of the luma block is greater than 16), the process for deriving spatial block vector candidates from neighboring coding units, as defined in the decoding specification, is called using the luma block position (xCb, yCb) and the width cbWidth and height cbHeight of the luma block as input, and the output is the availability flags availableFlagA1 and availableFlagB1 and the block vectors bvA1 and bvB1. Here, the relative positions of the neighboring blocks where A1 and B1 are located and the current block are as shown in Figure 2.
[0031] In step 2, if IsGt4by4 is equal to TRUE, the pseudo code for constructing the block vector candidate list bvCandList is as follows:
[0032] i = 0 if( availableFlagA1 ) bvCandList[i++] = bvA1 if( availableFlagB1 ) bvCandList[i++] = bvB1 In step 3, the process of deriving the variable numCurrCand (the number of candidates already obtained) is as follows: if IsGt4by is equal to TRUE, set numCurrCand equal to the number of candidates in bvCandList; otherwise, set numCurrCand to 0.
[0033] In step 4, if numCurrCand is smaller than MaxNumIbcMergeCand (the maximum number of candidates in MERGE mode) and NumHmvpIbcCand (the maximum number of candidates for the previously best block vector Hmvp in IBC mode) is greater than 0, the history-based IBC block vector candidate derivation process specified in the decoding specification is called with bvCandList and numCurrCand as inputs and modified bvCandList and numCurrCand as outputs.
[0034] In step 5, if numCurrCand is less than MaxNumIbcMergeCand, repeat until numCurrCand is equal to MaxNumIbcMergeCand. Set bvCandList[numCurrCand][0] equal to 0 (horizontal component of BV), Set bvCandList[numCurrCand][1] equal to 0 (vertical component of BV), Incrementing numCurrCand by 1 is applied.
[0035] In this way, the construction of the block vector candidate list bvCandList is completed, and the candidate index bvIdx is bvIdx=general_merge_flag[xCb][yCb]?merge_idx[xCb][yCb]:mvp_l0_flag[xCb][yCb] general_merge_flag indicates whether or not the mode is IBC MERGE.
[0036] In this way, a specific bvL can be obtained based on the index bvIdx and the block vector candidate list bvCandList. bvL[0] = bvCandList[bvIdx][0], bvL[1] = bvCandList[bvIdx][1].
[0037] In the IBC AMVP mode, a specific bvL can be obtained as a predicted bvL based on the index bvIdx and the block vector candidate list bvCandList, but to obtain the actual bvL, a block vector difference (BVD) needs to be added. The detailed flow is as follows:
[0038] In step 1, obtain the horizontal and vertical components of BVD, where MvdL0 is the forward motion vector differential, the horizontal component of BVD is represented by bvd[0], and the vertical component of BVD is represented by bvd[1], specifically: bvd[0] = MvdL0[xCb][yCb][0], bvd[1] = MvdL0[xCb][yCb][1].
[0039] In step 2, a rounding operation is performed on the prediction bvL obtained above. Here, the right shift parameter AmvrShift performs the rounding operation, and the left shift parameter AmvrShift is used to improve the resolution. Offset= (AmvrShift==0) ? 0 : ((1<<(AmvrShift-1))-1), bvL[0]= Sign(bvL[0])*(((Abs(bvL[0])+offset)>>AmvrShift)< <AmvrShift)、 bvL[1]= Sign(bvL[1])*(((Abs(bvL[1])+offset)>>AmvrShift)< <AmvrShift)である。
[0040] In step 3, for the actual bvL, the range is -2 17 From 2 17 It is necessary to control it between -1. The specific derivation process is as follows: u[0]= (bvL[0]+bvd[0]+2 18 )%2 18 , bvL[0]= (u[0]>=2 17 ) ? (u[0]-2 18 ) : u[0], u[1]= (bvL[1]+bvd[1]+2 18 )%2 18 , bvL[1]= (u[1]>=2 17 ) ? (u[1]-2 18 ) : u[1].
[0041] Regarding the chroma components, in the case of dual-tree splitting, the chroma components do not apply the IBC mode, and in the case of single-tree splitting, the BV of the chroma components needs to be derived.
[0042] Here, the input includes the luma bvL (1 / 16 pixel accuracy), and the output includes the chroma block vector (Block Vector Chroma, bvC) (1 / 32 pixel accuracy). The specific derivation process is as follows: bvC[0] = ((bvL[0]>>(3+SubWidthC))*32), bvC[1] = ((bvL[1]>>(3+SubHeightC))*32).
[0043] At S102, predicted samples are derived using the block vectors.
[0044] where the inputs include a luma position (xCb, yCb) specifying the top-left sample of the current block relative to the top-left luma sample of the current picture, a variable cbWidth specifying the width of the current block in luma samples, a variable cbHeight specifying the height of the current block in luma samples, a block vector BV, and a variable cIdx specifying the color component index of the current block. The outputs include an array of prediction samples predSamples.
[0045] For the predicted samples, the specific derivation process is as follows:
[0046] If cIdx is equal to 0, i.e., the luma component, then for x=xCb…xCb+cbWidth-1 and y=yCb…yCb+cbHeight-1, xVb = (x+(bv[0]>>4))&(IbcBufWidthY-1), yVb = (y+(bv[1]>>4))&(CtbSizeY-1), predSamples[x][y] = ibcVirBuf[0][xVb][yVb].
[0047] Here, IbcBufWidthY is the width of the luma pixels in the reconstructed buffer unit (Buffer) stored in the IBC, CtbSizeY is the size of the CTU (Coding Tree Unit), and ibcVirBuf is the reconstructed pixels stored in the IBC.
[0048] If cIdx is not equal to 0, i.e., a chroma component, then for x=xCb / SubWidthC...xCb / SubWidthC+cbWidth / SubWidthC-1 and y=yCb / SubHeightC...yCb / SubHeightC+cbHeight / SubHeightC-1, xVb=(x+(bv[0]>>5))&(IbcBufWidthC-1), yVb=(y+(bv[1]>>5))&((CtbSizeY / subHeightC)-1), predSamples[x][y]=ibcVirBuf[cIdx][xVb][yVb].
[0049] Here, the variables SubWidthC and SubHeightC specifically follow the chroma sampling format specified by sps_chroma_format_idc. The detailed correspondence is shown in Table 1.
[0050] [Table 1]
[0051] In S103, a residual sample is derived.
[0052] For residual samples, the residual decoding process defined in the decoding specification can be invoked.
[0053] In S104, the predicted samples and the residual samples are used to derive reconstructed samples.
[0054] For the reconstructed samples (ie, reconstructed pixel values), an image reconstruction process for a given color component, as defined in the decoding specification, can be invoked.
[0055] In another specific embodiment, in a chroma prediction mode derivation process in H.266 / VVC, the inputs include a luma position (xCb, yCb) that specifies the top-left sample of the current block relative to the top-left luma sample of the current image, a variable cbWidth that specifies the width of the current block in luma samples, a variable cbHeight that specifies the height of the current block in luma samples, and a variable treeType that specifies whether single-tree or dual-tree partitioning is used. The outputs include a chroma intra prediction mode IntraPredModeC[xCb][yCb] and a MIP chroma direct mode flag MipChromaDirectFlag[xCb][yCb].
[0056] When treeType is equal to SINGLE_TREE, i.e., single-tree partitioning, sps_chroma_format_idc is equal to 3, i.e., 4:4:4 format, intra_chroma_pred_mode is equal to 4, and IntraMipFlag[xCb][yCb] is equal to 1, i.e., the prediction mode of the corresponding co-located luma center block is MIP mode. (1) Set the MIP chroma direct mode flag MipChromaDirectFlag[xCb][yCb] to 1, that is, chroma uses the MIP mode of luma; (2) Set the chrominance intra-prediction mode IntraPredModeC[xCb][yCb] equal to IntraPredModeY[xCb][yCb].
[0057] Otherwise, (1) Set the MIP chroma direct mode flag MipChromaDirectFlag[xCb][yCb] to 0, (2) Derive the corresponding luma intra prediction mode lumaIntraPredMode as follows: if IntraMipFlag[xCb+cbWidth / 2][yCb+cbHeight / 2] is 1, then set lumaIntraPredMode equal to INTRA_PLANAR; otherwise, if CuPredMode[0][xCb+cbWidth / 2][yCb+cbHeight / 2] is MODE_IBC or MODE_PLT, then set lumaIntraPredMode equal to INTRA_DC; otherwise, set lumaIntraPredMode equal to IntraPredModeY[xCb+cbWidth / 2][yCb+ cbHeight / 2]; (3) Derive the chrominance intra-prediction mode IntraPredModeC[ xCb ][ yCb ] as follows: If cu_act_enabled_flag[xCb][yCb] is 1, set the chroma intra prediction mode IntraPredModeC[xCb][yCb] equal to lumaIntraPredMode, otherwise if BdpcmFlag[xCb][yCb][1] is 1, set IntraPredModeC[xCb][yCb] equal to BdpcmDir[xCb][yCb] [1] ? INTRA_ANGULAR50 : Set equal to INTRA_ANGULAR18, otherwise cu_act_enabled_flag[xCb][yCb] is 0 and BdpcmFlag[xCb][yCb][1] is 0, and chrominance intra prediction mode IntraPredModeC[xCb][yCb] uses cclm_mode_flag, cclm_mode_idx, intra_chroma_pred_mode and lumaIntraPredMode specified in Table 2.
[0058] [Table 2]
[0059] If sps_chroma_format_idc is 2, chroma intra prediction mode Y can be derived using chroma intra prediction mode X according to Table 2. For details, see the mode X to mode Y mapping process specification in Table 3. Then, chroma intra prediction mode X is set equal to chroma intra prediction mode Y.
[0060] [Table 3]
[0061] In another specific embodiment, for a DM mode, the DM mode is luma prediction mode information that directly uses the corresponding position.
[0062] When an I-frame uses dual-tree partitioning, the luma component and the chroma component are allowed to use independent block partitioning structures. In this case, the luma component at a position corresponding to a chroma CU may include multiple luma CUs. As shown in Figure 3, in H.266 / VVC, a chroma CU inherits the intra prediction mode of the corresponding luma block center CU, i.e., intra_chroma_pred_mode is equal to 4.
[0063] Here, the CU position taken by the DM mode is specifically as follows: It is written as follows: luma position (xCb, yCb) that specifies the position of the top left luma sample of the luma area corresponding to the current block relative to the top left luma sample of the current image; variable cbWidth that specifies the width of the current block in luma samples; and variable cbHeight that specifies the height of the current block in luma samples.
[0064] The positional relationship between the current chroma CU and the corresponding luma area is shown in FIG. 3. The central luma pixel position of the luma area corresponding to the current chroma CU is xCenter= xCb+cbWidth>>1, It is written as yCenter= yCb+cbHeight>>1, Here, xCenter represents the horizontal coordinate position, yCenter represents the vertical coordinate position, and the CU that includes the pixel position is the CU at the center position of the luma block that corresponds to the chroma CU.
[0065] In another specific embodiment, for the decoding process of chroma prediction by H.266 / VVC, the decoding flow is as shown in Table 4. And for the value of the syntax element Value of intra_chroma_pred_mode, its corresponding binarization mapping table is as shown in Table 5. For different syntax elements (such as cclm_mode_flag, cclm_mode_idx, and intra_chroma_pred_mode, etc.), the coding schemes used for each coding bit are specifically as shown in Table 6.
[0066] [Table 4] [Table 5] [Table 6]
[0067] Here, binIdx represents the bit position, and when binIdx=0, it represents the 0th bit, and when binIdx=1, it represents the 1st bit. Also, bypass represents the bypass mode, and na represents no processing.
[0068] In the related art, in the case of dual-tree partitioning, if the corresponding luma block is in IBC mode for DM mode, the acquired chroma prediction mode becomes DC mode, resulting in reduced coding efficiency. Furthermore, since chroma prediction is performed in a fixed DC mode, all predicted pixels have the same value, making it impossible to express the chroma texture features of the current block. Furthermore, since chroma prediction does not use information about the co-located luma block in IBC mode and does not have a block copy prediction algorithm like IBC, video sequences such as clean content cannot be effectively compressed. Simply put, current chroma prediction modes lack diversity, resulting in poor chroma prediction accuracy for the current block and reduced coding efficiency.
[0069] In view of this, an embodiment of the present invention provides an encoding method, which determines a first color component block of a current block when the prediction mode of the second color component of the current block is a target prediction mode, determines a first block vector parameter of the first color component block when the prediction mode of the first color component block is an IBC mode, determines a target block vector parameter of the second color component of the current block based on the first block vector parameter of the first color component block, and performs an IBC extension mode prediction process on the second color component of the current block based on the target block vector parameter to determine a predicted value of the second color component of the current block.
[0070] An embodiment of the present invention further provides a decoding method, including: determining a value of first syntax element identification information; decoding a bitstream to determine a value of second syntax element identification information if the first syntax element identification information indicates that the second color component of the current block allows the use of IBC extension mode; determining a first color component block of the current block if the second syntax element identification information indicates that the second color component of the current block uses a target prediction mode; determining first block vector parameters of the first color component block if the prediction mode of the first color component block is IBC mode; determining target block vector parameters of the second color component of the current block based on the first block vector parameters of the first color component block; and performing an IBC extension mode prediction process on the second color component of the current block based on the target block vector parameters to determine a predicted value of the second color component of the current block.
[0071] Thus, in the process of determining the chroma prediction mode based on the luma prediction mode, if the luma block corresponding to the current block is in IBC mode, target block vector parameters to which chroma components are applied are determined based on the block vector parameters of the luma block, and a prediction process is performed on the chroma components according to the IBC extension mode based on the target block vector parameters to determine a chroma prediction value of the current block. In this way, the problem of the unification of chroma prediction is resolved, the IBC mode is implicitly added to the chroma prediction, and related information of the co-located luma block is fully utilized, thereby improving the accuracy of chroma prediction, saving the code rate, improving encoding and decoding efficiency, and improving encoding and decoding performance.
[0072] Hereinafter, each embodiment of the present invention will be described in detail with reference to the drawings.
[0073] 4A is a schematic block diagram of an encoder according to an embodiment of the present invention. As shown in FIG. 4A, an encoder (specifically, a "video encoder") 100 may include a transform and quantization unit 101, an intra estimation unit 102, an intra prediction unit 103, a motion compensation unit 104, a motion estimation unit 105, an inverse transform and inverse quantization unit 106, a filter control analysis unit 107, a filter unit 108, an encoding unit 109, and a decoded image buffer unit 110. Here, the filter unit 108 may implement deblocking filtering and sample adaptive offset (SAO) filtering, and the encoding unit 109 may implement header information encoding and context-based adaptive binary arithmetic coding (CABAC). An input original video signal can be divided by a coding tree unit (CTU) to obtain a video coding block, and then the video coding block is transformed using a transform and quantization unit 101 for residual pixel information obtained by intra or inter prediction. This involves converting the residual information from the pixel domain to the transform domain, and then quantizing the obtained transform coefficients to further reduce the bit rate. The intra estimation unit 102 and the intra prediction unit 103 are configured to perform intra prediction on the video coding block. Specifically, the intra estimation unit 102 and the intra prediction unit 103 are configured to determine the intra prediction mode used to encode the video coding block. The motion compensation unit 104 and the motion estimation unit 105 are configured to provide temporal prediction information by performing inter prediction coding on the received video coding block between one or more blocks of one or more reference frames. The motion estimation performed by the motion estimation unit 105 is a process of generating a motion vector, which can estimate the motion of the video coding block.The motion compensation unit 104 then performs motion compensation based on the motion vector determined by the motion estimation unit 105. After the intra prediction mode is determined, the intra prediction unit 103 is further configured to provide the selected intra prediction data to the encoding unit 109, and the motion estimation unit 105 sends the calculated motion vector data to the encoding unit 109. The inverse transform and inverse quantization unit 106 is used to reconstruct the video coding block to reconstruct a residual block in the pixel domain. The reconstructed residual block is subjected to blocking artifact removal by the filter control analysis unit 107 and the filter unit 108, and then the reconstructed residual block is added to a predictive block in the frame of the decoded image buffer unit 110 to generate a reconstructed video coding block. The encoding unit 109 is configured to code various coding parameters and quantized transform coefficients. In a CABAC-based coding algorithm, context content may be based on neighboring coding blocks, and the encoding unit 109 can code and indicate information about the determined intra prediction mode and output a bitstream of the video signal. The decoded picture buffer unit 110 is configured to store reconstructed video coding blocks, which are used as prediction references. As the video picture is encoded, new reconstructed video coding blocks are continuously generated, and all these reconstructed video coding blocks are stored in the decoded picture buffer unit 110.
[0074] FIG. 4B is a schematic block diagram of a decoder according to an embodiment of the present invention. As shown in FIG. 4B, a decoder (specifically, a "video decoder") 200 includes a decoding unit 201, an inverse transform and inverse quantization unit 202, an intra prediction unit 203, a motion compensation unit 204, a filter unit 205, and a decoded image buffer unit 206. The decoding unit 201 can decode header information and CABAC decoding, and the filter unit 205 can perform deblocking filtering and SAO filtering. After an input video signal undergoes the encoding process shown in FIG. 4A, a bitstream of the video signal is output. When the bitstream is input to the decoder 200, it first passes through the decoding unit 201 to obtain decoded transform coefficients, which are then processed by the inverse transform and inverse quantization unit 202 to generate residual blocks in the pixel domain. The intra prediction unit 203 is configured to generate prediction data for a current video decoding block based on a determined intra prediction mode and data of a previously decoded block from a current frame or image. The motion compensation unit 204 determines prediction information for the video decoded block by analyzing the motion vectors and other related syntax elements, and then uses the prediction information to generate a predictive block for the video decoded block being decoded. A decoded video block is formed by adding the residual block from the inverse transform and inverse quantization unit 202 with the corresponding predictive block generated by the intra prediction unit 203 or the motion compensation unit 204. The decoded video signal is then passed through a filter unit 205 to remove blocking artifacts and improve video quality. The decoded video block is then stored in a decoded image buffer unit 206. The decoded image buffer unit 206 is used to store reference images for subsequent intra prediction and motion compensation, and also to output a video signal, i.e., a reconstructed original video signal.
[0075] Furthermore, an embodiment of the present invention further provides a network architecture of an encoding and decoding system including an encoder and a decoder. Here, FIG. 5 shows a schematic diagram of the network architecture of the encoding and decoding system according to an embodiment of the present invention. As shown in FIG. 5, the network architecture includes one or more electronic devices 13 to 1N and a communication network 01. Here, the electronic devices 13 to 1N can perform video interaction via the communication network 01. When implemented, the electronic devices may be various types of devices having video encoding and decoding functions. For example, the electronic devices may include smartphones, tablet computers, personal computers, personal digital assistants, navigation devices, digital telephones, video telephones, televisions, sensor devices, servers, etc., and the embodiment of the present invention is not limited thereto. Here, the decoder or encoder described in the embodiment of the present invention may be the above-mentioned electronic devices.
[0076] Note that the method according to the embodiment of the present invention is mainly applied to a part such as the intra prediction unit 103 shown in Fig. 4A and a part such as the intra prediction unit 203 shown in Fig. 4B. That is, the embodiment of the present invention may be applied to an encoder, a decoder, or even simultaneously to an encoder and a decoder. However, the embodiment of the present invention is not limited thereto.
[0077] Furthermore, when applied to the portion of intra prediction unit 103, the term "current block" specifically refers to the coded block on which intra prediction will be performed, and when applied to the portion of intra prediction unit 203, the term "current block" specifically refers to the decoded block on which intra prediction will be performed.
[0078] In one embodiment of the present invention, a flowchart of a method for determining a prediction mode according to an embodiment of the present invention is shown in Figure 6. As shown in Figure 6, the method may include the following contents:
[0079] In S601, the first color component block of the current block is determined.
[0080] The method according to the embodiment of the present invention can be applied to an encoder or a decoder. The prediction mode here can specifically refer to an intra prediction mode. Here, assuming that the first color component is a luma component and the second color component is a chroma component, more specifically, this is a method for determining a chroma intra prediction mode.
[0081] In addition, in an embodiment of the present invention, the current block includes at least a first color component and a second color component. Regarding the first color component of the current block, this block may be abbreviated as a first color component block, and if the first color component is a luma component, this first color component block may be abbreviated as a luma block. Similarly, regarding the second color component of the current block, this block may be abbreviated as a second color component block, and if the second color component is a chroma component, this second color component block may be a chroma block.
[0082] Furthermore, in the case of dual tree partitioning, in DM mode, if the prediction mode of the same luma block is IBC mode, an embodiment of the present invention can determine the chroma intra prediction mode of the current block based on the prediction mode of the luma block at the same position, thereby improving the unity of chroma prediction and improving coding efficiency.
[0083] In some embodiments, determining the first color component block of the current block may include determining a first color component region at the same location of the current block, and identifying the first color component block of the current block from among a plurality of blocks into which the first color component region is divided.
[0084] In addition, in an embodiment of the present invention, the current block can be divided into blocks in the first color component region at the same position, for example, by a binary tree structure, a ternary tree structure, a quad tree structure, etc., to obtain multiple blocks, each of which can be regarded as one CU. Then, the first color component block of the current block is identified from among the multiple CUs.
[0085] For example, in FIG. 3, the shaded area represents the luma area at the same position of the chroma CU. The luma area at the same position may be divided into multiple blocks. Among these blocks, a block at the center may be selected as the luma block corresponding to the current block. For example, the black-shaded block in FIG. 3 is the luma block corresponding to the current block.
[0086] Furthermore, in some embodiments, identifying a first color component block of the current block from among a plurality of blocks into which the first color component region is divided may include identifying a target block from among the plurality of blocks into which the first color component region is divided, and setting the target block as the first color component block of the current block.
[0087] Here, the target block can be a block located at any position. In a specific embodiment, a block located at the center of the first color component region is selected as the target block, or a block located at the top left of the first color component region is selected as the target block, or a block located at the bottom right of the first color component region is selected as the target block.
[0088] In an embodiment of the present invention, the target block as the first color component block may be a block located at any position among the multiple blocks shown in Fig. 3. For example, the target block may be a block (filled in black) located at the center of the co-located luma region shown in Fig. 3, a block (filled in black) located at the upper left of the co-located luma region shown in Fig. 7, or a block (filled in black) located at the lower right of the co-located luma region shown in Fig. 8, or may be a block located at the lower right, a block located at the lower left, or even a block located at the center of the upper left region in the co-located luma region, and this is not specifically limited here.
[0089] Furthermore, in some embodiments, determining the first color component block of the current block from among the plurality of blocks into which the first color component region is divided may include determining at least one candidate block at a predetermined position from among the plurality of blocks into which the first color component region is divided; sequentially obtaining the at least one candidate block according to a predetermined order and performing mode determination; and if the determined first candidate block uses IBC mode, determining the first candidate block as the first color component block of the current block.
[0090] In addition, in an embodiment of the present invention, the first color component block can also be determined by performing mode determination on at least one candidate block at a predetermined position. For example, as shown in Figure 9, there are five luma pixel positions CU, specifically C, TL, TR, BL, and BR. However, the embodiment of the present invention is not limited to five positions, and may be multiple different positions, and is not limited to the five positions shown in Figure 9, and all of these are not limited.
[0091] In addition, in an embodiment of the present invention, the five positions shown in Figure 9 can be obtained in a predetermined order until it is determined that the candidate block is in IBC mode, i.e., the CU at the first luma pixel position is found to be in IBC mode, and the CU at this first luma pixel position is taken as the corresponding luma block of the current block.
[0092] Furthermore, in the embodiment of the present invention, the predetermined order includes, but is not limited to, the order of C → TL → TR → BL → BR. Here, the flow for deriving the detailed positions of C, TL, TR, BL, and BR is as follows:
[0093] The position of the in-position luma pixel corresponding to the top left position of the current block relative to the top left luma pixel of the image (i.e., the position of luma pixel TL) is (xCb, yCb), and the width and height of the in-position luma region corresponding to the current block (i.e., the entire shaded region of the luma component in Figure 9) are cbWidth and cbHeight, respectively.
[0094] The coordinate information of the position of luma pixel C is (xCb+cbWidth / 2, yCb+cbHeight / 2), The coordinate information of the position of the luma pixel TL is (xCb, yCb), The coordinate information of the position of the luma pixel TR is (xCb+cbWidth-1, yCb), The coordinate information of the position of the luma pixel BL is (xCb, yCb+cbHeight-1), The coordinate information of the position of the luma pixel BR is (xCb+cbWidth-1, yCb+cbHeight-1).
[0095] In this way, for the current block, it is first necessary to identify the corresponding first color component block, where if the first color component is a luma component, it is then necessary to identify the luma block (i.e., luma CU) at the corresponding position.
[0096] In S602, if the prediction mode of the first color component block is the IBC mode, the first block vector parameters of the first color component block are determined.
[0097] It should be noted that in the embodiment of the present invention, after determining the first color component block, it is necessary to determine the prediction mode of the first color component block, and if the prediction mode of the first color component block is the IBC mode, it is necessary to further determine the first block vector parameters of the first color component block.
[0098] It should be noted that in an embodiment of the present invention, when the prediction mode of the first color component block is the IBC mode, a first block vector parameter of the first color component block can be obtained, where the first block vector parameter represents a vector that points from the current block to the reference block, and the reference block is searched in the reconstruction region of the frame in which the current block is located (i.e., the current image).
[0099] Furthermore, in some embodiments of the present invention, if there are multiple first color component blocks, the first block vector parameters may be obtained by calculating an average value of BVs of the multiple first color component blocks. Therefore, in some embodiments, identifying the first color component block of the current block from the multiple blocks obtained by dividing the first color component region may include determining at least one candidate block located at a predetermined position from the multiple blocks obtained by dividing the first color component region, and determining the at least one candidate block as the first color component block of the current block.
[0100] In one possible implementation, when the prediction mode of the first color component block is IBC mode, determining the first block vector parameters of the first color component block may include identifying at least one target block that uses IBC mode from among at least one candidate block, determining first block vector parameters for each of the at least one target block, calculating an average value based on the first block vector parameters of each of the at least one target block, and setting the calculation result as the first block vector parameters of the first color component block.
[0101] In addition, in an embodiment of the present invention, the first color component block of the current block is not limited to one block, but can be composed of multiple blocks. Here, when composed of multiple blocks, the prediction modes of the multiple blocks are all IBC mode. For example, first, multiple luma CUs in the same luma region are obtained, and then the average value of the first block vector parameters is calculated as the finally obtained first block vector parameter.
[0102] In another possible implementation, the finally obtained first block vector parameters can be determined by selecting optimal block vector parameters through a template matching method. Therefore, in some embodiments, when the prediction mode of the first color component block is an IBC mode, determining the first block vector parameters of the first color component block can further include: identifying at least one target block using the IBC mode from at least one candidate block; performing a search on the at least one target block through a template matching method to determine optimal block vector parameters, and setting the optimal block vector parameters as the first block vector parameters of the first color component block.
[0103] 9 as an example, for five luma CUs at positions C, TL, TR, BL, and BR, if these five luma CUs all use the IBC mode, multiple luma CUs in the co-located luma regions are obtained, and then optimal block vector parameters are selected by a template matching method to obtain the first block vector parameters. Here, the positions of these multiple luma CUs are not limited to the five positions C, TL, TR, BL, and BR, and may be other positions, and are not limited in the embodiments of the present invention.
[0104] It should be noted that in the embodiment of the present invention, after identifying the first color component block, it is necessary to determine the prediction mode of the first color component block. Here, if the prediction mode of the first color component block is the IBC mode, it is necessary to continue to perform the flow shown in Fig. 6 to determine the first block vector parameters of the first color component block. Otherwise, if the prediction mode of the first color component block is not the IBC mode, it is necessary to not continue to perform the flow shown in Fig. 6, and to perform a prediction process on the second color component of the current block based on the first predetermined mode to determine the predicted value of the second color component of the current block.
[0105] In some embodiments, the first predetermined mode includes, but is not limited to, at least one of a planar mode, a DM mode, a DC mode, a CCLM mode, and a skip mode.
[0106] For example, if the prediction mode of the first color component block is not the IBC mode, the first predetermined mode may include, but is not limited to, a PLANAR mode, an inter-component prediction mode (e.g., a CCLM mode), or another angle prediction mode. Then, the reference pixels and related parameters are obtained to perform the prediction process. Furthermore, the first predetermined mode may be a skip mode, that is, the current block can skip the prediction process of the mode.
[0107] In S603, a target block vector parameter of a second color component of the current block is determined based on the first block vector parameter of the first color component block.
[0108] In some embodiments, after determining the first block vector parameters of the first color component block, it is necessary to further determine the target block vector parameters to be applied to the second color component. In some embodiments, determining the target block vector parameters of the current block based on the first block vector parameters of the first color component block may include directly setting the first block vector parameters of the first color component block as the target block vector parameters of the current block, or adjusting the first block vector parameters of the first color component block to determine the target block vector parameters of the current block.
[0109] It should be noted that in this embodiment of the present invention, the first block vector parameters of the first color component block do not need to be adjusted for the target block vector parameters of the current block, and in this case, the first block vector parameters of the first color component block can be directly determined as the target block vector parameters of the current block.
[0110] In addition, in an embodiment of the present invention, the target block vector parameters of the current block may be obtained by adjusting the first block vector parameters of the first color component block, and the adjustment methods include but are not limited to the following:
[0111] In one possible embodiment, adjusting the first block vector parameters of the first color component block to determine the target block vector parameters of the current block may include determining a color sampling format of the current block; and performing a scaling operation on the first block vector parameters of the first color component block based on the color sampling format to determine the target block vector parameters of the current block.
[0112] In another possible embodiment, adjusting the first block vector parameters of the first color component block to determine the target block vector parameters of the current block may include: performing a scaling operation on the first block vector parameters of the first color component block based on the color sampling format, and then obtaining initial block vector parameters of the current block; and performing a modification operation on the initial block vector parameters of the current block to determine the target block vector parameters of the current block.
[0113] In addition, in this embodiment of the present invention, after performing scaling processing on the first block vector parameters of the first color component block according to the color sampling format, the target block vector parameters of the current block can be directly determined based on the initial block vector parameters obtained.
[0114] In addition, in an embodiment of the present invention, after performing a scaling process on the first block vector parameters of the first color component block based on the color sampling format, the obtained initial block vector parameters can also be modified to determine the target block vector parameters of the current block.
[0115] Furthermore, in an embodiment of the present invention, assuming that the first color component is a luma component and the second color component is a chroma component, after obtaining the corresponding first block vector parameter (i.e., luma BV parameter), the target block vector parameter (i.e., chroma BV parameter) to be applied to the chroma component can be obtained by adjusting the luma BV parameter. hor ,BVL ver ) and the chroma BV parameter is (BVC hor ,BVC ver ), where BVL hor represents the horizontal block vector of the luma BV parameters, and BVL ver represents the vertical block vector of the luma BV parameters, and BVC hor represents the horizontal block vector of the chroma BV parameters, and BVC ver represents the vertical block vector of the chroma BV parameters.
[0116] In this way, the scaling process is performed on the luma BV parameters based on the color sampling format. The mapping relationship between the luma BV parameters and the scaled chroma BV parameters is shown in Table 7.
[0117] [Table 7]
[0118] Here, the syntax element sps_chroma_format_idc indicates the type of color sampling format, and the color sampling format here is specifically the chroma sampling format, where different types of chroma sampling formats have different corresponding scaling operations.
[0119] For example, if the value of sps_chroma_format_idc is 0, it is determined that the chroma sampling format is monochrome, and in this case, the flow shown in FIG. 6 is not executed, that is, the chroma BV parameter (BVC hor ,BVC hor ) does not exist. If the value of sps_chroma_format_idc is 1, it determines that the chroma sampling format is 4:2:0, in which case the mapping relationship between the luma BV parameters and the chroma BV parameters is BVC hor = BVL hor >>1,BVC hor = BVL ver >>1. If the value of sps_chroma_format_idc is 2, it determines that the chroma sampling format is 4:2:2, in which case the mapping relationship between the luma BV parameters and the chroma BV parameters is BVC hor = BVL hor >>1,BVC hor = BVL ver If the value of sps_chroma_format_idc is 3, the chroma sampling format is 4:4:4, in which case the mapping relationship between the luma BV parameters and the chroma BV parameters is BVC hor = BVL hor ,BVC hor = BVL ver is.
[0120] For example, after obtaining the chroma BV parameters scaled according to the chroma sampling format, they may be used directly or further modified, including, but not limited to, performing the modification using the IntraTMP mode, i.e., after obtaining the chroma BV parameters, finding an offset position using the position of the current block and the obtained chroma BV parameters, and then performing a fine search near the offset position using a template matching method to determine optimal chroma BV parameters, and determining the optimal chroma BV parameters as the finally obtained chroma BV parameters, i.e., the target block vector parameters of the current block.
[0121] In S604, a prediction process of the IBC extension mode is performed on the second color component of the current block according to the target block vector parameters to determine a predicted value of the second color component of the current block.
[0122] In addition, in the embodiment of the present invention, the IBC extension mode may refer to a prediction mode newly introduced by the embodiment of the present invention, which may be represented as INTRA_DBV, in which a prediction value of the second color component of the current block is determined by performing a prediction process on the second color component of the current block based on the determined target block vector parameters.
[0123] In addition, in some embodiments of the present invention, after obtaining the target block vector parameters of the current block, it is necessary to determine whether the target block vector parameters are available, i.e., whether the target block vector parameters satisfy an availability condition. In some embodiments, the method may further include: after determining the target block vector parameters of the current block, determining whether the target block vector parameters satisfy an availability condition; and if the target block vector parameters satisfy the availability condition, performing an IBC extension mode prediction process on the second color component of the current block based on the target block vector parameters to determine a predicted value of the second color component of the current block.
[0124] Specifically, in an embodiment of the present invention, only when the target block vector parameters satisfy the availability condition, can the IBC extension mode prediction process be performed on the second color component of the current block based on the target block vector parameters to determine the predicted value of the second color component of the current block.
[0125] Further, in some embodiments, determining whether the target block vector parameters satisfy the availability condition comprises at least: Whether the offset position indicated by the target block vector parameter does not exceed the image boundary; Whether the offset position indicated by the target block vector parameter does not cover the current block; Whether the offset position indicated by the target block vector parameter is outside the usable range of the IBC mode, and This may include determining based on whether the offset position indicated by the target block vector parameter has been reconstructed.
[0126] It should be noted that in an embodiment of the present invention, only when all of the above conditions are met can it be determined that the target block vector parameters satisfy the availability condition, i.e., that the target block vector parameters are usable. In a specific embodiment, the target block vector parameters satisfying the availability condition at least includes the following: the offset position indicated by the target block vector parameters does not exceed the image boundary, the offset position indicated by the target block vector parameters does not cover the current block, the offset position indicated by the target block vector parameters does not exceed the usable area of the IBC mode, and the offset position indicated by the target block vector parameters has been reconfigured.
[0127] 10 is a structural diagram showing whether an offset position covers a current block according to an embodiment of the present invention. As shown in FIG. 10, the black-filled block represents the current block, the shaded area represents the usable area, and the unfilled area represents the unusable area. When the offset position indicated by the target block vector parameter for the current block is in the unusable area, the offset position covers the current block.
[0128] 11 is a structural diagram showing whether an offset position exceeds the IBC usable area according to an embodiment of the present invention. As shown in FIG. 11, the black-filled block represents the current block, the shaded area represents the usable area, and all reference blocks within the usable area have been reconstructed. In this embodiment of the present invention, taking into consideration the memory capacity of the buffer, reference blocks adjacent to the current block (m,n), specifically, reference block (m-2,n-2), reference block (m-1,n-2), reference block (m,n-2), reference block (m+1,n-2), reference block (m-2,n-1), reference block (m-1,n-1), reference block (m,n-1), reference block (m+1,n-1), reference block (m-2,n), reference block (m-1,n), etc., can be used as the usable area in IBC mode.
[0129] Furthermore, in some embodiments of the present invention, after the scaling process is performed on the first block vector parameters of the first color component block according to the color sampling format, the obtained initial block vector parameters need to be further modified. Wherein, before performing the modification process, the method may include determining whether the initial block vector parameters satisfy an availability condition, and if the initial block vector parameters satisfy the availability condition, performing a modification process on the initial block vector parameters of the current block to determine the target block vector parameters of the current block; or if the initial block vector parameters do not satisfy the availability condition, performing an adjustment process on the initial block vector parameters of the current block until the adjusted block vector parameters satisfy the availability condition, and then performing a modification process on the adjusted block vector parameters to determine the target block vector parameters of the current block.
[0130] 12, the hatched area represents the chroma reconstruction area, and the template matching method is used to find the optimal matching template and the corresponding optimal BV for the current block. Then, the optimal BV (i.e., IntraTMP BV) can be used to determine the reference block for the current block based on the optimal BV (i.e., IntraTMP BV). Then, the reference block for the current block can be determined based on the optimal BV (i.e., IntraTMP BV). Finally, the chroma prediction value for the current block can be determined.
[0131] In addition, in an embodiment of the present invention, at least one candidate block located at a predetermined position is identified from among the multiple blocks into which the first color component region is divided, and then at least one candidate block is sequentially obtained in a predetermined order to perform mode determination. If the first candidate block determined uses IBC mode, the first candidate block is set as the first color component block of the current block. In this process, it is further necessary to determine whether the BV parameters of the first candidate block satisfy the availability condition, and thereby determine whether mode determination for the next candidate block is necessary.
[0132] In some embodiments, the method may further include: if the determined initial candidate block uses the IBC mode, determining a first block vector parameter of the initial candidate block; determining whether the first block vector parameter of the initial candidate block satisfies an availability condition; if the first block vector parameter of the initial candidate block satisfies the availability condition, setting the initial candidate block as the first color component block of the current block; if the first block vector parameter of the initial candidate block does not satisfy the availability condition, continuing to perform mode determination for the next candidate block until a target candidate block using the IBC mode and whose corresponding first block vector parameter satisfies the availability condition can be identified, and setting the target candidate block as the first color component block of the current block.
[0133] Furthermore, in some embodiments, if there is no target candidate block using the IBC mode among the at least one candidate block and the corresponding first block vector parameter satisfies the availability condition, the method may further include: performing intra prediction processing on the second color component of the current block based on a first predetermined mode to determine a predicted value of the second color component of the current block, where the first predetermined mode includes at least one of a planar mode, a direct coding mode, a direct coding mode, a coded coding mode, and a skip mode.
[0134] In an embodiment of the present invention, taking FIG. 9 as an example again, there are five luma pixel position CUs (including but not limited to five positions, and may be multiple different positions), and the order in which they are acquired includes but is not limited to C → TL → TR → BL → BR.
[0135] First, determine whether any CUs at the acquired five positions use IBC mode. If not, do not acquire any luma CUs, and perform chroma prediction for the current block based on a first predetermined mode, including but not limited to PLANAR mode, inter-component prediction mode (e.g., CCLM mode), or other angle prediction mode, and even skip the mode (i.e., the encoding side and the decoding side make the determination simultaneously).
[0136] If there are one or more CUs that use IBC mode among the five positions, these five positions can be obtained again in sequence (until the first CU that satisfies the following conditions is found), not only determining whether the CU uses IBC mode, but also adjusting the luma BV parameters of the CU to determine the BV parameters applied to chroma, and then determining whether the chroma BV parameters are available.
[0137] If the chroma BV parameters are available, select this CU as the luma block of the final BV.
[0138] If the chroma BV parameters are not available, the luma CU may not be obtained, including but not limited to PLANAR mode, inter-component prediction mode, or other angular prediction modes, and the mode may even be skipped; alternatively, a CU using IBC mode may be found first, and its BV may be adjusted until it is available, and this CU may be selected as the luma block of the BV that is finally obtained.
[0139] Furthermore, in some embodiments, performing an IBC extension mode prediction process on the second color component of the current block based on the target block vector parameters to determine a predicted value of the second color component of the current block may include determining an offset position of the current block based on the target block vector parameters and position information of the current block; performing a block copy process based on the offset position of the current block to obtain a first predicted block; and determining a predicted value of the second color component of the current block based on the first predicted block.
[0140] In an embodiment of the present invention, when the second color component of the current block is predicted based on the IBC extension mode, the position information (xCb, yCb) and chroma BV parameters (BVC hor ,BVC ver ) can be obtained, and then the offset position (xCb+BVChor, yCb+BVCver) can be found to perform block copy. The details are shown in Figure 13.
[0141] For example, cbWidth represents the width of the current block in chroma samples, cbHeight represents the height of the current block in chroma samples, and predSamples[x][y] represents the chroma prediction value of the current block. The specific flow is as follows:
[0142] For x = xCb…xCb + cbWidth-1 and y = yCb…yCb + cbHeight-1, xVb= (xCb+BVChor)&(IbcBufWidthC-1), yVb= (yCb+BVCver)&(CtbSizeC-1), predSamples[x][y]= ibcVirChromaBuf[xVb][yVb].
[0143] Here, IbcBufWidthC is the width of the chroma pixels of the reconstructed buffer stored by IBC, CtbSizeC is the size of the chroma pixels of the CTU, and ibcVirChromaBuf is the reconstructed chroma pixels stored by IBC.
[0144] Furthermore, in some embodiments, determining the predicted value of the second color component of the current block based on the first prediction block may include performing a modification operation on the first prediction block to determine the predicted value of the second color component of the current block.
[0145] In one specific embodiment, determining the predicted value of the second color component of the current block based on the first prediction block may include performing intra prediction processing on the second color component of the current block based on a second predetermined mode to obtain a second prediction block, and performing weighted fusion processing on the first prediction block and the second prediction block to determine the predicted value of the second color component of the current block. Here, the second predetermined mode includes at least one of the PLANAR mode, DM mode, DC mode, and CCLM mode.
[0146] Note that in the embodiments of the present invention, when the predicted value of the second color component of the current block is obtained by block copy based on the target block vector parameter, in order to perform modification processing on the predicted value, a method of weighting based on a general prediction mode may be adopted, but it is not limited thereto.
[0147] Also, in the embodiments of the present invention, regarding the predicted value of the second color component of the current block, the modification processing here may be to limit the predicted value within a predetermined numerical range (for example, between 0 and (1<<BitDepth)-1). Here, BitDepth is the bit depth required for the chroma component. Furthermore, the modification processing here may be to perform enhancement processing by filtering, thereby improving the chroma prediction quality in that mode. The present invention does not limit this in detail.
[0148] For example, when determining a chroma prediction value of a current block by performing block copying based on BV, a weighting method with a general chroma prediction mode may be used to perform a correction process on the chroma prediction value, but is not limited to this. In the case of a prediction value obtained by a planar mode, an inter-component prediction mode, or another angular prediction mode, a weighting method with a general chroma prediction mode may be used to perform a correction process on the chroma prediction value, but is not limited to this.
[0149] This embodiment provides a method for determining a prediction mode, and in the process of determining a chroma prediction mode based on a luma prediction mode, if the luma block corresponding to a current block is in IBC mode, a target block vector parameter to which a chroma component is applied is determined based on the block vector parameter of the luma block, and a prediction process is further performed on the chroma component according to the target block vector parameter according to the IBC extension mode to determine a chroma prediction value of the current block. In this way, the unity of chroma prediction is improved, the IBC mode is implicitly added to the chroma prediction, and related information of the co-located luma block is fully utilized to improve the accuracy of chroma prediction, while saving bitrate and improving the efficiency of encoding and decoding, thereby improving the performance of encoding and decoding.
[0150] In another embodiment of the present invention, a new prediction mode INTRA_DBV can be introduced based on the method for determining a prediction mode described in the above embodiment. Assuming that the first color component is a luma component and the second color component is a chroma component, an example of performing chroma prediction using INTRA_DBV mode will be described in detail below.
[0151] In the case of INTRA_DBV mode, the prediction flow may include obtaining a corresponding luma block CU, determining whether the prediction mode of the corresponding luma block CU is IBC mode (if it is IBC mode, obtain the BV parameters of the corresponding luma block; if it is not IBC mode, perform chroma encoding using a first predetermined mode, for example, PLANAR mode or other chroma prediction mode as an alternative, or skip the mode), if it is IBC mode, adjusting the BV parameters and applying them to chroma, and determining whether the adjusted BV parameters are available (if it is available or not available and adjust the BV until it is available, continue with chroma IBC prediction, if the latter is not available, adopt PLANAR mode or other chroma prediction mode as an alternative, or skip the mode, and then perform corresponding chroma prediction or skip processing).
[0152] In one specific embodiment, Figure 14 is a specific flowchart of a method for determining a prediction mode according to an embodiment of the present invention. As shown in Figure 14, the specific process may include the following steps:
[0153] In S1401, the corresponding luma block of the current block is obtained.
[0154] In S1402, it is determined whether the corresponding luma block is in IBC mode.
[0155] In S1403, the first BV parameter of the corresponding luma block is obtained.
[0156] In S1404, the first BV parameter is adjusted to determine the second BV parameter to be applied to the chroma.
[0157] In S1405, it is determined whether the second BV parameter is available.
[0158] In S1406, the second BV parameter is adjusted until the second BV parameter is available.
[0159] In S1407, chroma prediction in IBC extension mode is performed on the current block based on the second BV parameters.
[0160] In S1408, chroma prediction is performed on the current block using a first predetermined mode.
[0161] Note that in this embodiment of the present invention, the corresponding luma block is used to indicate the co-located luma CU of the chroma component of the current block. Regarding S1402, if the determination result is "YES", S1403 to S1407 can be executed, and if the determination result is "NO", S1408 can be implemented. Regarding S1405, if the determination result is "YES", S1407 can be implemented, and if the determination result is "NO", S1406 can be executed first and then S1407 can be executed.
[0162] In another specific embodiment, Figure 15 is a specific flowchart of another method for determining a prediction mode according to an embodiment of the present invention. As shown in Figure 15, the process may include the following steps:
[0163] In S1501, the corresponding luma block of the current block is obtained.
[0164] In S1502, it is determined whether the corresponding luma block is in IBC mode.
[0165] In S1503, the first BV parameter of the corresponding luma block is obtained.
[0166] In S1504, the first BV parameter is adjusted to determine the second BV parameter to be applied to the chroma.
[0167] In S1505, it is determined whether the second BV parameter is available.
[0168] In S1506, chroma prediction is performed on the current block using a second predetermined mode.
[0169] In S1507, chroma prediction in IBC extension mode is performed on the current block based on the second BV parameters.
[0170] In S1508, chroma prediction is performed on the current block using a first predetermined mode.
[0171] Note that in this embodiment of the present invention, the corresponding luma block is configured to point to the co-located luma CU of the chroma component of the current block. Regarding S1502, if the determination result is "YES", S1503 to S1507 can be executed, and if the determination result is "NO", S1508 can be executed. Regarding S1505, if the determination result is "YES", S1507 can be executed, and if the determination result is "NO", S1506 can be executed first.
[0172] Furthermore, in an embodiment of the present invention, the first predetermined mode and the second predetermined mode may be the same or different. For example, the first predetermined mode may be a planar mode, or may be replaced by another chroma prediction mode, or the mode may be skipped. The second predetermined mode may be a planar mode, or may be replaced by another chroma prediction mode, or the mode may be skipped. However, the present invention is not limited thereto.
[0173] Based on the specific flow shown in FIG. 14 or FIG. 15, the detailed process is as follows.
[0174] Regarding obtaining the corresponding luma block, the luma CU obtained here may be at any position, including, but not limited to, a CU located at the center position in the co-located luma area shown in FIG. 3, a CU located at the top left position in the co-located luma area shown in FIG. 7, a CU located at the bottom right position in the co-located luma area shown in FIG. 8, and a CU located at a predetermined position in the co-located luma area shown in FIG. 9, and is not specifically limited here.
[0175] Regarding determining whether a corresponding luma block is in IBC mode, i.e., determining whether the prediction mode of the corresponding luma block is IBC mode, after obtaining the CU at the corresponding position, determine whether it is in IBC mode, if it is in IBC mode, obtain the first BV parameters of the corresponding luma block, if it is not in IBC mode, encode the chroma components using a first predetermined mode, and then obtain reference pixels and parameters to perform chroma prediction, including but not limited to, substituting PLANAR mode, CCLM mode, or other angle prediction mode, or skipping the mode, i.e., the encoding side and the decoding side make the determination simultaneously.
[0176] Regarding adjusting the first BV parameter and applying it to the chroma, after obtaining the first BV parameter of the corresponding luma block, the first BV parameter is adjusted to obtain the second BV parameter to be applied to the chroma, where the first BV parameter is (BVL hor ,BVL ver ), and the second BV parameter is (BVC hor ,BVC ver ) and adjustment methods include, but are not limited to:
[0177] In Scheme 1, the first BV parameter is scaled based on the color sampling format to obtain the second BV parameter that is applied to chroma, as shown in Table 7.
[0178] In Method 2, the second BV parameters are modified. After the second BV parameters scaled based on the color sampling format are obtained, they may be used directly or further modified. Before the modification, it is first necessary to determine whether the second BV parameters are available. If they are available, the modification is performed. If they are not available, the modification is performed after adjusting them until they are available. The modification includes, but is not limited to, modification using the IntraTMP mode. That is, after the second BV parameters are obtained, an offset position is found using the position of the current block and the second BV parameters. Then, a fine search is performed near the offset position using a template matching method to obtain optimal BV parameters. The chroma prediction block of the current block can be obtained by copying the reference block at the optimal offset position obtained by the fine search. This is specifically shown in FIG. 12.
[0179] To determine whether the second BV parameter is available, the position (xCb, yCb) of the current block is obtained, and the second BV parameter (BVC hor ,BVC ver ) and obtain the corresponding offset position (xCb+BVC hor ,yCb+BVC ver ) and find the following conditions: Whether the acquired offset position exceeds the image boundary or not Whether the acquired offset position does not cover the current block, Whether the acquired offset position is within the IBC usable area, and Whether the acquired offset position has been reconstructed or not; If all of the above are true, the second BV parameter is usable.
[0180] Here, if it is available, chroma prediction based on IBC mode is performed. If it is not available, adjustment is required until it is available, and then chroma prediction based on IBC mode is performed. The adjustment method here includes, but is not limited to, cropping, scaling, etc. Furthermore, if it is not available, it includes, but is not limited to, adopting PLANAR mode or CCLM mode, or substituting other angle prediction modes, thereby obtaining reference pixels and mode parameters to perform chroma prediction. Furthermore, the mode can be skipped.
[0181] In the case of chroma IBC prediction, that is, chroma prediction in IBC extension mode is performed on the current block based on the second BV parameters. In the IBC extension mode, the position (xCb, yCb) of the current block is obtained, the second BV parameters (BVChor, BVCver) are obtained, and the corresponding offset position (xCb+BVChor, yCb+BVCver) is found to perform block copying. Specifically, as shown in Figure 13,
[0182] Also, if the second BV parameters are not available, in the case of the PLANAR mode, CCLM mode, or other angle mode, the reference pixels and mode parameters are obtained to perform chroma prediction.
[0183] Furthermore, with respect to the method of determining the prediction mode described in the above-mentioned embodiment, in an embodiment of the present invention, the DM mode of the related art can be modified so that the modified DM mode can also serve as the INTRA_DBV mode.
[0184] In an embodiment of the present invention, in the case of dual-tree partitioning and DM mode, if the prediction mode of the co-located luma block is IBC mode, CuPredMode[0][xCb + cbWidth / 2][yCb + cbHeight / 2] is equal to MODE_IBC, and lumaIbcPredMode is Y, where Y is different from X and Y is not a normal angular prediction mode, then the chroma intra prediction mode IntraPredModeC[xCb][yCb] uses INTRA_DBV.
[0185] Here, the chroma prediction mode is derived as follows.
[0186] The chrominance intra prediction mode IntraPredModeC[xCb][yCb] uses cclm_mode_flag, cclm_mode_idx, and intra_chroma_pred_mode, lumaIntraPredMode, and lumaIbcPredMode specified by Table 8.
[0187] [Table 8]
[0188] In the embodiment of the present invention, prediction is performed using INTRA_DBV mode, and the specific flow is the same as the flow in the above-described embodiment shown in Fig. 14 or 15. Here, when acquiring a CU located at the center position in the co-located luma region, if the CU located at the center position in the acquired co-located luma region is not in IBC mode, a luma prediction mode corresponding to the CU can be acquired to perform chroma prediction.
[0189] The above-described embodiments have been described in detail. As can be seen, a new chroma prediction mode, INTRA_DBV, has been proposed. In DM mode, if the prediction mode of a CU at the luma center position is IBC mode in dual-tree partitioning, the obtained chroma prediction mode is DC mode. However, embodiments of the present invention effectively improve this method of obtaining a fixed prediction mode by fully utilizing mode information of the co-located luma region and replacing the fixed prediction mode with flexible BV parameters, thereby effectively improving the accuracy of chroma prediction. In this new prediction mode, if the corresponding luma block is IBC mode in dual-tree partitioning, the BV parameters of the corresponding luma block are obtained, and then the BV parameters are adjusted and applied to chroma, thereby improving the uniformity of chroma prediction. Furthermore, the IBC algorithm is implicitly added to chroma prediction, and the information of the co-located luma region is fully utilized to improve the accuracy of chroma prediction, thereby effectively improving encoding and decoding efficiency.
[0190] In another embodiment of the present invention, Figure 16 is a flowchart of a decoding method according to an embodiment of the present invention. As shown in Figure 16, the method may include the following steps:
[0191] In S1601, the value of the first syntax element identification information is determined.
[0192] It should be noted that, in the embodiments of the present invention, the method according to the embodiments of the present invention can be applied to a decoder. The decoding method here can specifically refer to an intra prediction method. Here, assuming that the first color component is a luma component and the second color component is a chroma component, more specifically, this is a chroma intra prediction method, and chroma prediction can be performed using the IBC extension mode proposed in the above embodiments, thereby improving the accuracy of chroma prediction.
[0193] In addition, in an embodiment of the present invention, the current block includes at least a first color component and a second color component. Regarding the first color component of the current block, this block may be abbreviated as a first color component block. Furthermore, if the first color component is a luma component, the first color component block may also be called a luma block. Similarly, regarding the second color component of the current block, this block may be abbreviated as a second color component block, and if the second color component is a chroma component, the second color component block may also be called a chroma block.
[0194] Furthermore, in some embodiments of the present invention, the first syntax element identification information may be represented by IbcEnabled or chromaIbcExModeEnabled. Its value determines whether a related mode parameter is transmitted in the CU layer. Here, the first syntax element identification information indicates whether the second color component of the current block allows the use of the IBC extension mode. In other words, the first syntax element identification information can be used to indicate whether the second color component of the current block allows the use of a target prediction mode (i.e., INTRA_DBV mode). In some embodiments, the method includes: If the value of the first syntax element identification information is a first value, determining that the first syntax element identification information indicates that the second color component of the current block allows the use of the IBC extension mode; and If the value of the first syntax element identification information is a second value, determining that the first syntax element identification information indicates that the second color component of the current block does not allow the use of the IBC extended mode may further include:
[0195] In an embodiment of the present invention, the first value and the second value are different, and the first value and the second value may be in a parameter format or a numeric format. Specifically, the first syntax element identification information may be a parameter written in a profile or a flag value, but is not limited thereto.
[0196] For example, with respect to the first value and the second value, the first value may be set to 1 and the second value may be set to 0. Alternatively, the first value may be set to 0 and the second value may be set to 1. Alternatively, the first value may be set to true and the second value may be set to false. Alternatively, the first value may be set to false and the second value may be set to true. Here, in an embodiment of the present invention, the first value may be set to 1 and the second value may be set to 0, but this is not limiting.
[0197] In an embodiment of the present invention, with regard to the value of the first syntax element identification information, the value of the first syntax element identification information may be determined by decoding the bitstream, or the value of the third syntax element identification information may be determined by decoding the bitstream, and if the value of the third syntax element identification information is the first value and the current block satisfies a predetermined condition, the value of the first syntax element identification information is determined to be the first value; if the value of the third syntax element identification information is the second value, the value of the first syntax element identification information is determined to be the second value.
[0198] In one specific embodiment, the current block satisfies the predetermined condition at least as follows: the slice type to which the current block belongs is an I-frame; and the size parameter of the current block satisfies a predetermined upper limit value.
[0199] In addition, in an embodiment of the present invention, the slice type to which the current block belongs can be represented as sh_slice_type, the predetermined upper limit value can be represented as MaxChromaIbcSize, and MaxChromaIbcSize can be determined based on the size of the chroma CTU or a predetermined value.
[0200] In some embodiments of the present invention, the third syntax element identification information may be represented as sps_ibc_enabled_flag, which indicates whether the current image allows the use of IBC mode, where the current image includes the current block. If the value of the third syntax element identification information is a first value, determining that the third syntax element identification information indicates that the current image allows the use of the IBC mode; and The method may further include determining, if the value of the third syntax element identification information is the second value, that the third syntax element identification information indicates that the current image does not allow the use of IBC mode.
[0201] In an embodiment of the present invention, the first value and the second value are different, and the first value and the second value may be in a parameter format or a numeric format. Specifically, the third syntax element identification information may be a parameter written in a profile or a flag value, but is not limited thereto.
[0202] Illustratively, taking the first value as an example where the first value is set to 1 and the second value is set to 0, if the value of sps_ibc_enabled_flag is equal to 0, then the value of IbcEnabled is 0; otherwise, if the value of sps_ibc_enabled_flag is equal to 1, then if multiple of the following conditions (including but not limited to the following conditions) are simultaneously true, then the IbcEnabled value is equal to 1: These conditions include, but are not limited to: sh_slice_type is equal to I-frame, and CtbLog2SizeY is less than or equal to MaxChromaIbcSize.
[0203] In addition, in an embodiment of the present invention, the value of the first syntax element identification information may be determined based on whether the third syntax element identification information and the current block satisfy a predetermined condition, or may be determined directly by decoding the bitstream, and is not specifically limited herein. For example, in an embodiment of the present invention, the first syntax element identification information may be regarded as a derived value as a syntax element not transmitted in the bitstream, and specifically, is jointly determined by sps_ibc_enabled_flag, sh_slice_type, and CtbLog2SizeY size.
[0204] Thus, if the value of IbcEnabled is equal to 1, it can be determined that the first syntax element identification information indicates that the second color component of the current block allows the use of the IBC extended mode.
[0205] In S1602, if the first syntax element identification information indicates that the second color component of the current block allows the use of the IBC extension mode, the bitstream is decoded to determine the value of the second syntax element identification information.
[0206] In some embodiments of the present invention, if the second color component of the current block allows the use of the IBC extension mode, that is, if the second color component of the current block allows the use of the target prediction mode, it is further necessary to determine whether the second color component of the current block uses the target prediction mode, that is, to determine by decoding the value of the second syntax element identification information. If the value of the second syntax element identification information is a first value, determining that the second syntax element identification information indicates that the second color component of the current block uses the target prediction mode; and The method may further include determining, if the value of the second syntax element identification information is a second value, that the second syntax element identification information indicates that the second color component of the current block does not use the target prediction mode.
[0207] In an embodiment of the present invention, the second syntax element identification information may be represented as intra_dbv_flag or intra_chroma_ibc_flag, and indicates whether the second color component of the current block uses the target prediction mode.
[0208] In an embodiment of the present invention, the first value and the second value are different, and the first value and the second value may be in a parameter format or a numeric format. Specifically, the second syntax element identification information may be a parameter written in a profile or a flag value, and is not limited thereto.
[0209] For example, assuming that the first value is set to 1 and the second value is set to 0, if the value of the first syntax element identification information is 1, that is, the second color component of the current block allows the use of the IBC extension mode, decoding is performed to determine the value of the second syntax element identification information. If the value of the second syntax element identification information is also 1, it can be determined that the second color component of the current block uses the target prediction mode.
[0210] In S1603, if the second syntax element identification information indicates that the second color component of the current block uses a target prediction mode, an intra prediction process is performed on the second color component of the current block based on the target prediction mode to determine a predicted value of the second color component of the current block.
[0211] In the embodiment of the present invention, according to the method for determining a prediction mode according to the above-described embodiment, the determined prediction mode is the target prediction mode, which can be represented as INTRA_DBV.
[0212] Further, in some embodiments, performing an intra prediction process on the second color component of the current block based on the target prediction mode to determine a predicted value of the second color component of the current block may include determining a first color component block of the current block, and if the prediction mode of the first color component block is an IBC mode, determining first block vector parameters of the first color component block, and determining target block vector parameters of the second color component of the current block based on the first block vector parameters of the first color component block, and performing an IBC extension mode prediction process on the second color component of the current block based on the target block vector parameters to determine a predicted value of the second color component of the current block.
[0213] Furthermore, in some embodiments, performing an intra prediction process on the second color component of the current block based on the target prediction mode to determine the second color component block of the current block may further include decoding the bitstream to determine target block vector parameters of the current block, and performing an IBC extension mode prediction process on the second color component of the current block based on the target block vector parameters to determine a predicted value of the second color component of the current block.
[0214] In addition, in an embodiment of the present invention, when it is determined that the chroma components of a current block are to undergo IBC extended mode prediction processing, if the prediction mode of the corresponding luma block is IBC mode, a first BV parameter of the corresponding luma block is determined, and adjustment is further performed based on the first BV parameter to determine target BV parameters to be applied to the chroma components. Next, chroma prediction processing in IBC extended mode is performed on the current block based on the target BV parameters to determine a chroma predicted value of the current block. Alternatively, after the encoding side determines the target BV parameters to be applied to the chroma components, the target BV parameters can be written into the bitstream, so that the decoding side can immediately obtain the target BV parameters of the current block through decoding, and then chroma prediction processing in IBC extended mode is performed on the current block based on the target BV parameters to determine a chroma predicted value of the current block.
[0215] Further, in some embodiments, the method may further include, when the value of the second syntax element identification information is a second value, decoding the bitstream to determine a value of a fourth syntax element identification information, determining a first intra-prediction mode of a second color component of the current block based on the value of the fourth syntax element identification information, and performing an intra-prediction process on the second color component of the current block based on the first intra-prediction mode to determine a predicted value of the second color component of the current block.
[0216] In an embodiment of the present invention, the fourth syntax element identification information may be represented as intra_chroma_pred_mode, and indicates the chrominance intra prediction mode used by the current block.
[0217] For example, if intra_dbv_flag or intra_chroma_ibc_flag is 0, the target prediction mode is not used, and instead, a chroma prediction process is performed on the current block based on the chroma intra prediction mode indicated by intra_chroma_pred_mode to determine the chroma prediction value of the current block.
[0218] In one specific embodiment, for the chroma prediction mode INTRA_DBV according to the embodiment of the present invention, the decoding implementation includes, but is not limited to, the following additional decoding positions:
[0219] (1) The chroma prediction mode INTRA_DBV can be added before intra_chroma_pred_mode, as shown in Table 9.
[0220] [Table 9]
[0221] If sps_ibc_enabled_flag is 0, IbcEnabled is 0.
[0222] Otherwise, IbcEnabled is 1 if the following conditions are simultaneously true, including but not limited to: sh_slice_type is equal to I-frame, and CtbLog2SizeY is less than or equal to MaxChromaIbcSize.
[0223] Here, MaxChromaIbcSize can be determined by the chroma CTU size or a predetermined value.
[0224] Furthermore, intra_dbv_flag being TRUE indicates that the current chroma prediction mode is INTRA_DBV, and encoding can be performed using the following binarization methods, including but not limited to, the context model or bypass model methods, as shown in Table 10, Table 11, Table 12, or Table 13, where FL represents a fixed length.
[0225] [Table 10] [Table 11] [Table 12] [Table 13]
[0226] (2) The chroma prediction mode INTRA_DBV can be added before the intra_chroma_pred_mode in another embodiment, as shown in Table 14.
[0227] [Table 14]
[0228] If sps_ibc_enabled_flag is 0, IbcEnabled is 0.
[0229] Otherwise, IbcEnabled is 1 if the following conditions are simultaneously true, including but not limited to: sh_slice_type is equal to I-frame, and CtbLog2SizeY is less than or equal to MaxChromaIbcSize.
[0230] Here, MaxChromaIbcSize can be determined by the chroma CTU size or a predetermined value.
[0231] If IbcEnabled is 0, intra_chroma_ibc_flag is inferred to be FALSE.
[0232] If intra_chroma_ibc_flag is TRUE, it is understood that the current chroma prediction mode is INTRA_DBV, and encoding can be performed using the context model or bypass model method, including but not limited to the following binarization methods, as shown in Table 15, Table 16, Table 17, or Table 18, for example.
[0233] [Table 15] [Table 16] [Table 17] [Table 18]
[0234] Further, with respect to when syntax elements are added, in some embodiments, the method further comprises: If the first syntax element identification information indicates that the second color component of the current block allows the use of the IBC extension mode, the method further includes: decoding the bitstream to determine a value of a fifth syntax element identification information; determining a second intra prediction mode for the second color component of the current block based on the value of the fifth syntax element identification information; and performing an intra prediction process on the second color component of the current block based on the second intra prediction mode to determine a predicted value of the second color component of the current block; or Or, If the first syntax element identification information indicates that the second color component of the current block does not allow the use of the IBC extension mode, the method may further include decoding the bitstream to determine a value of a sixth syntax element identification information, and determining a third intra prediction mode for the second color component of the current block based on the value of the sixth syntax element identification information, and performing an intra prediction process on the second color component of the current block based on the third intra prediction mode to determine a predicted value of the second color component of the current block.
[0235] Here, the second intra prediction mode includes the target prediction mode, and the third intra prediction mode does not include the target prediction mode.
[0236] In an embodiment of the present invention, the fifth syntax element identification information may be represented by intra_chroma_pred_mode_add, and the sixth syntax element identification information may be represented by intra_chroma_pred_mode, where intra_chroma_pred_mode_add is used to indicate that the INTRA_DBV mode has been added, and intra_chroma_pred_mode represents a chroma prediction mode in the related art.
[0237] In the embodiment of the present invention, the binarization processes for the fifth syntax element identification information and the sixth syntax element identification information are different, that is, there are differences in the binarization mapping tables used by both.
[0238] In some embodiments, decoding the bitstream to determine the value of the fifth syntax element identification information includes decoding the bitstream to obtain at least one character corresponding to the fifth syntax element identification information, and performing a mapping process on the at least one character corresponding to the fifth syntax element identification information using a first predetermined binarization mapping table to determine the value of the fifth syntax element identification information.
[0239] In some embodiments, decoding the bitstream to determine the value of the sixth syntax element identification information includes decoding the bitstream to obtain at least one character corresponding to the sixth syntax element identification information, and performing a mapping process on the at least one character corresponding to the sixth syntax element identification information using a second predetermined binarization mapping table to determine the value of the sixth syntax element identification information.
[0240] For example, when IbcEnabled is equal to 1, intra_chroma_pred_mode_add is decoded using a first predetermined binarization mapping table, and chroma prediction processing is performed on the current block based on the chroma intra prediction mode indicated by intra_chroma_pred_mode_add to determine the chroma predicted value of the current block. When IbcEnabled is equal to 0, intra_chroma_pred_mode is decoded using a second predetermined binarization mapping table, and chroma prediction processing is performed on the current block based on the chroma intra prediction mode indicated by intra_chroma_pred_mode to determine the chroma predicted value of the current block.
[0241] In another specific embodiment, for the chroma prediction mode INTRA_DBV according to the embodiment of the present invention, the decoding implementation further includes:
[0242] (3) The syntax element intra_chroma_pred_mode_add is added, as detailed in Table 19.
[0243] [Table 19]
[0244] If sps_ibc_enabled_flag is 0, IbcEnabled is 0.
[0245] Otherwise, IbcEnabled is 1 if the following conditions are simultaneously true, including but not limited to: sh_slice_type is equal to I-frame, and CtbLog2SizeY is less than or equal to MaxChromaIbcSize.
[0246] Here, MaxChromaIbcSize can be determined by the chroma CTU size or a predetermined value.
[0247] Furthermore, the binarization method for intra_chroma_pred_mode_add, that is, the first predetermined binarization mapping table, is as shown in Table 20, but is not limited to this.
[0248] [Table 20]
[0249] Furthermore, the binarization method for the Value of intra_chroma_pred_mode, that is, the second predetermined binarization mapping table, is as shown in Table 21, but is not limited to this.
[0250] [Table 21]
[0251] Furthermore, for different syntax elements (for example, cclm_mode_flag, cclm_mode_idx, intra_chroma_pred_mode_add, and intra_chroma_pred_mode, etc.), the coding method adopted by each coding bit is as shown in Table 22 or Table 23.
[0252] [Table 22] [Table 23]
[0253] Here, taking intra_chroma_pred_mode_add as an example, the 0th bit of intra_chroma_pred_mode_add represents the DM mode, and the encoding method is the same as VVC. The 1st bit of intra_chroma_pred_mode_add represents the newly added INTRA_DBV mode, which can be encoded using the context model or the bypass model.
[0254] Further, for retaining the syntax element, in some embodiments, decoding the bitstream to determine the value of the second syntax element identification information includes: If the first syntax element identification information indicates that the second color component of the current block allows the use of the IBC extended mode, decoding the bitstream to obtain at least one character corresponding to the second syntax element identification information, and performing a mapping process on the at least one character corresponding to the second syntax element identification information using a first predetermined binarization mapping table to determine a value of the second syntax element identification information; or If the first syntax element identification information indicates that the second color component of the current block does not allow the use of the IBC extended mode, the method may include decoding the bitstream to obtain at least one character corresponding to the second syntax element identification information, and performing a mapping process on the at least one character corresponding to the second syntax element identification information using a second predetermined binarization mapping table to determine the value of the second syntax element identification information.
[0255] In an embodiment of the present invention, the second syntax element identification information can be represented by intra_chroma_pred_mode, i.e., holds the syntax element intra_chroma_pred_mode, in which case different binarization methods can be used depending on the value of IbcEnabled.
[0256] In another specific embodiment, for the chroma prediction mode INTRA_DBV according to the embodiment of the present invention, the decoding implementation further includes:
[0257] (4) The syntax element intra_chroma_pred_mode is held, and the details are as shown in Table 24.
[0258] [Table 24]
[0259] If sps_ibc_enabled_flag is 0, IbcEnabled is 0.
[0260] Otherwise, IbcEnabled is 1 if the following conditions are simultaneously true, including but not limited to: sh_slice_type is equal to I-frame, and CtbLog2SizeY is less than or equal to MaxChromaIbcSize.
[0261] Here, MaxChromaIbcSize can be determined by the chroma CTU size or a predetermined value.
[0262] Furthermore, intra_chroma_pred_mode includes a binarization method in which binarization processing is performed on intra_chroma_pred_mode using Table 25 when IbcEnabled is 1, but is not limited to this.
[0263] [Table 25]
[0264] In other cases, if IbcEnabled is 0, binarization processing is performed on intra_chroma_pred_mode using Table 26, but this is not limitative.
[0265] [Table 26]
[0266] Furthermore, when IbcEnabled is 1, the coding schemes adopted by the respective coding bits for different syntax elements (for example, cclm_mode_flag, cclm_mode_idx, and intra_chroma_pred_mode) are as shown in FIG. 27 or FIG.
[0267] [Table 27] [Table 28]
[0268] Taking intra_chroma_pred_mode as an example, when IbcEnabled is 1, the 0th bit of intra_chroma_pred_mode represents the DM mode, and the encoding method is the same as VVC. The 1st bit of intra_chroma_pred_mode represents the newly added INTRA_DBV mode, which can be encoded using the context model or the bypass model.
[0269] When IbcEnabled is 0, it is as shown in FIG.
[0270] [Table 29]
[0271] Further, with respect to changing the DM mode, in some embodiments, decoding the bitstream to determine the value of the second syntax element identification information includes: If the value of the second syntax element identification information satisfies a first predetermined constant value, determine that the second syntax element identification information indicates that the second color component of the current block does not use a target prediction mode; determine a fourth intra prediction mode for the second color component of the current block; and then perform intra prediction processing on the second color component of the current block according to the fourth intra prediction mode to determine a predicted value of the second color component of the current block; or The method may include: if the value of the second syntax element identification information satisfies a second predetermined constant value, determining that the second syntax element identification information indicates that the second color component of the current block uses a target prediction mode; and performing an intra prediction process on the second color component of the current block based on the target prediction mode to determine a predicted value of the second color component of the current block.
[0272] In the embodiment of the present invention, the second syntax element identification information is still represented by intra_chroma_pred_mode. In addition, the first predetermined constant value may be 0, 1, 2, or 3, and the second predetermined constant value may be 4, but is not limited thereto.
[0273] In another specific embodiment, for the chroma prediction mode INTRA_DBV according to the embodiment of the present invention, the decoding implementation further includes:
[0274] (5) Change the DM mode, as shown in Table 30.
[0275] [Table 30]
[0276] In addition, intra_chroma_pred_mode can be coded using a context model or a bypass model, including but not limited to the following binarization methods, as shown in Table 31 and Table 32, for example.
[0277] [Table 31] [Table 32]
[0278] Here, the 0th bit of intra_chroma_pred_mode indicates DM mode, and the coding method is the same as VVC.
[0279] The derivation process of IbcEnabled is as follows:
[0280] If sps_ibc_enabled_flag is equal to 0, IbcEnabled is equal to 0.
[0281] Otherwise, IbcEnabled is 1 if the following conditions are simultaneously true, including but not limited to: sh_slice_type is equal to I-frame, and CtbLog2SizeY is less than or equal to MaxChromaIbcSize.
[0282] Here, MaxChromaIbcSize can be determined by the chroma CTU size or a predetermined value.
[0283] If IbcEnabled is 1, for the four chroma prediction modes where intra_chroma_pred_mode is equal to 0, 1, 2, or 3, keep these four chroma prediction modes unchanged. If intra_chroma_pred_mode is equal to 4, perform the decoding process shown in Table 30.
[0284] Otherwise, the chroma prediction process of the H.266 / VVC standard is kept unchanged.
[0285] In brief, in this embodiment of the present invention, for the DM mode, in the case of dual-tree partitioning, the mode at the luma center position is IBC mode, and the obtained chroma prediction mode is DC mode. This embodiment effectively improves the method of obtaining a fixed prediction mode, making full use of the mode information of the co-located luma region, and replacing the fixed prediction mode with a flexible BV, thereby improving the accuracy of chroma prediction. In addition, for the new prediction mode INTRA_DBV, in the case of dual-tree partitioning, if the corresponding luma block is in IBC mode, the BV of the corresponding luma block is obtained, and then the BV is adjusted and applied to chroma to improve the uniformity of chroma prediction. The IBC algorithm is implicitly incorporated into chroma prediction, making full use of the information of the co-located luma region, and effectively improving the accuracy of chroma prediction.
[0286] This embodiment provides a decoding method, in which in the process of deriving a chroma prediction mode using a luma prediction mode, when IBC mode and dual-tree partitioning are enabled in the SPS layer, if the corresponding luma block is in IBC mode, the BV parameters of the corresponding luma block are obtained, and then the BV parameters are adjusted and applied to chroma, thereby improving the simplicity of chroma prediction, implicitly incorporating the IBC algorithm into chroma prediction, and fully utilizing the information of the co-located luma region, thereby effectively performing accurate prediction for the chroma block, improving the accuracy of chroma prediction, and improving the efficiency of encoding and decoding, thereby enhancing the performance of encoding and decoding.
[0287] In another embodiment of the present invention, Figure 17 is a flowchart of an encoding method according to an embodiment of the present invention. As shown in Figure 17, the method may include the following steps:
[0288] In S1701, if the prediction mode of the second color component of the current block is the target prediction mode, the first color component block of the current block is checked.
[0289] In addition, in the embodiments of the present invention, the method according to the embodiments of the present invention may be applied to an encoder. Also, the encoding method here may specifically refer to an intra prediction method. Here, assuming that the first color component is a luma component and the second color component is a chroma component, more specifically, the encoding method here is a chroma intra prediction method, and chroma prediction can be performed using the IBC extension mode proposed in the above-mentioned embodiments, thereby improving the accuracy of chroma prediction.
[0290] Furthermore, in the method for determining a prediction mode according to the above-described embodiment of the present invention, the determined prediction mode is the target prediction mode, which is the IBC extension mode proposed in the above-described embodiment and can be represented as INTRA_DBV.
[0291] In some embodiments, determining the first color component block of the current block may include determining a first color component region at the same position of the current block, and determining the first color component block of the current block from among a plurality of blocks into which the first color component region is divided.
[0292] Furthermore, in some embodiments, determining the first color component block of the current block from among the plurality of blocks into which the first color component region is divided may include selecting a target block from among the plurality of blocks into which the first color component region is divided, and setting the target block as the first color component block of the current block.
[0293] In one specific embodiment, the method may further include selecting a block located at a center position in the first color component region as the target block, or selecting a block located at an upper left position in the first color component region as the target block, or selecting a block located at a lower right position in the first color component region as the target block.
[0294] In an embodiment of the present invention, the target block as the first color component block may be a block located at any position among the multiple blocks shown in Fig. 3. For example, the target block may be a block located at the center of the co-located luma region shown in Fig. 3 (block filled in black), a block located at the upper left position of the co-located luma region shown in Fig. 7, a block located at the lower right position of the co-located luma region shown in Fig. 8 (block filled in black), a block located at the lower right position, a block located at the lower left position, or a block located at the center of the upper left region. This is not specifically limited here.
[0295] Furthermore, in some embodiments, identifying the first color component block of the current block from the plurality of blocks into which the first color component region is divided may include identifying at least one candidate block at a predetermined position from the plurality of blocks into which the first color component region is divided; sequentially obtaining the at least one candidate block according to a predetermined order and performing mode determination; and if the determined first candidate block uses the IBC mode, determining the first candidate block as the first color component block of the current block.
[0296] Furthermore, in some embodiments, determining the first color component block of the current block from among the plurality of blocks into which the first color component region is divided may include identifying at least one candidate block at a predetermined position from among the plurality of blocks into which the first color component region is divided, and determining the at least one candidate block as the first color component block of the current block.
[0297] In this embodiment of the present invention, the number of first color component blocks of the current block may be one or more, and is not specifically limited herein. Here, the first color component block may be determined by performing mode determination on at least one candidate block at a predetermined position, as shown in FIG. 9.
[0298] Furthermore, in an embodiment of the present invention, the five positions shown in FIG. 9 are obtained in sequence according to a predetermined order until it is determined that the candidate block is in IBC mode (i.e., the CU at the first luma pixel position is confirmed to be in IBC mode), and the CU at this first luma pixel position is taken as the corresponding luma block of the current block.
[0299] In S1702, if the prediction mode of the first color component block is the IBC mode, the first block vector parameters of the first color component block are determined.
[0300] In addition, in the embodiment of the present invention, after the first color component block is identified, the prediction mode of the first color component block needs to be determined. Here, if the prediction mode of the first color component block is the IBC mode, the first block vector parameters of the first color component block need to be determined.
[0301] Furthermore, in some embodiments of the present invention, if there are multiple first color component blocks, the first block vector parameters can be obtained by averaging the BVs of the multiple first color component blocks. Therefore, in some embodiments, if the prediction mode of the first color component block for at least one candidate block at a predetermined position is IBC mode, determining the first block vector parameters of the first color component block can include identifying at least one target block using IBC mode from the at least one candidate block, determining the first block vector parameters of each of the at least one target block, and calculating an average value based on the first block vector parameters of each of the at least one target block, and setting the calculation result as the first block vector parameters of the first color component block.
[0302] It should be noted that in this embodiment of the present invention, the first color component block of the current block is not limited to one block, but may be composed of multiple blocks. Here, if composed of multiple blocks, the prediction modes of the multiple blocks are all IBC mode. For example, first, multiple luma CUs in the same luma region are obtained, and then the average value of the first block vector parameters is calculated as the finally obtained first block vector parameter.
[0303] Furthermore, in some embodiments of the present invention, the finally obtained first block vector parameters can be determined by selecting optimal block vector parameters through a template matching method. Therefore, in some embodiments, the method can further include: identifying at least one target block using IBC mode from at least one candidate block; and performing a search on the at least one target block through a template matching method to determine optimal block vector parameters, and setting the optimal block vector parameters as the first block vector parameters of the first color component block.
[0304] In addition, in an embodiment of the present invention, after obtaining multiple luma CUs in the co-located luma region for the first color component block of the current block, the optimal block vector parameters can be selected by a template matching method, and used as the finally obtained first block vector parameters.
[0305] Furthermore, in an embodiment of the present invention, after identifying the first color component block, it is necessary to determine the prediction mode of the first color component block. Here, if the prediction mode of the first color component block is IBC mode, it is necessary to continue to perform the process shown in FIG. 17 to determine the first block vector parameters of the first color component block. Otherwise, if the prediction mode of the first color component block is not IBC mode, it is necessary to not continue the process shown in FIG. 17, and perform a prediction process on the second color component of the current block according to a first predetermined mode to determine a predicted value of the second color component of the current block. Here, the first predetermined mode includes at least one of, but is not limited to, a planar mode, a direct current mode, a constant current mode, and a skip mode.
[0306] In S1703, a target block vector parameter of a second color component of the current block is determined based on the first block vector parameter of the first color component block.
[0307] In addition, in an embodiment of the present invention, with regard to the target block vector parameters of the current block, the first block vector parameters of the first color component block can be directly determined as the target block vector parameters of the current block, or the first block vector parameters of the first color component block can be adjusted to determine the target block vector parameters of the current block.
[0308] In one possible embodiment, adjusting the first block vector parameters of the first color component block to determine the target block vector parameters of the current block may include determining a color sampling format of the current block, and performing a scaling operation on the first block vector parameters of the first color component block based on the color sampling format to determine the target block vector parameters of the current block.
[0309] In another possible embodiment, adjusting the first block vector parameters of the first color component block to determine the target block vector parameters of the current block may include performing a scaling operation on the first block vector parameters of the first color component block based on the color sampling format, and then obtaining initial block vector parameters of the current block; and performing a modification operation on the initial block vector parameters of the current block to determine the target block vector parameters of the current block.
[0310] In another possible embodiment, adjusting the first block vector parameters of the first color component block to determine the target block vector parameters of the current block may include immediately determining the target block vector parameters of the current block based on the initial block vector parameters of the current block.
[0311] Furthermore, in some embodiments, performing a modification process on the initial block vector parameters of the current block to determine the target block vector parameters of the current block may include determining a search area for the current block based on the initial block vector parameters of the current block and the position information of the current block, and searching within the search area based on a template matching method to determine optimal block vector parameters, and using the optimal block vector as the target block vector parameters of the current block.
[0312] For example, after the chroma BV parameters scaled according to the color sampling format shown in Table 7 are obtained, they may be used directly or further modified. Here, the modification includes, but is not limited to, modifying using the IntraTMP mode. That is, after the chroma BV parameters are obtained, an offset position is found using the position of the current block and the obtained chroma BV parameters, and then a fine search is performed near the offset position using a template matching method to identify optimal chroma BV parameters, which are then used as the finally obtained chroma BV parameters, i.e., the target block vector parameters of the current block.
[0313] In S1704, a prediction process of the IBC extension mode is performed on the second color component of the current block based on the target block vector parameters to determine a predicted value of the second color component of the current block.
[0314] In addition, in an embodiment of the present invention, for the IBC extension mode (i.e., the target prediction mode described in an embodiment of the present invention), the predicted value of the second color component of the current block can be determined by performing a prediction process on the second color component of the current block based on the determined target block vector parameters.
[0315] In addition, in some embodiments of the present invention, after obtaining the target block vector parameters of the current block, it is also necessary to determine whether the target block vector parameters are available, i.e., whether the target block vector parameters satisfy an availability condition. In some embodiments, the method may further include: after determining the target block vector parameters of the current block, determining whether the target block vector parameters satisfy an availability condition; and if the target block vector parameters satisfy the availability condition, performing an IBC extension mode prediction process on the second color component of the current block based on the target block vector parameters to determine a predicted value of the second color component of the current block.
[0316] Specifically, in an embodiment of the present invention, only when the target block vector parameters satisfy the availability condition can the IBC extension mode prediction process be performed on the second color component of the current block based on the target block vector parameters, thereby determining the predicted value of the second color component of the current block.
[0317] Furthermore, in some embodiments, whether the target block vector parameters satisfy the availability condition is determined by at least: Whether the offset position indicated by the target block vector parameter does not exceed the image boundary; Whether the offset position indicated by the target block vector parameter does not cover the current block; Whether the offset position indicated by the target block vector parameter is outside the usable range of the IBC mode, and This may include whether the offset position indicated by the target block vector parameter has been reconstructed.
[0318] In addition, in an embodiment of the present invention, only when all of the above conditions are met can it be determined that the target block vector parameters satisfy the availability condition, i.e., the target block vector parameters are available. In one specific embodiment, the target block vector parameters satisfying the availability condition at least includes the following: the offset position indicated by the target block vector parameters does not exceed the image boundary, the offset position indicated by the target block vector parameters does not cover the current block, the offset position indicated by the target block vector parameters does not exceed the available area of the IBC mode, and the offset position indicated by the target block vector parameters has been reconfigured.
[0319] In addition, in some embodiments of the present invention, after the scaling process is performed on the first block vector parameters of the first color component block according to the color sampling format, the obtained initial block vector parameters need to be further modified, where before the modification process, the method may further include: determining whether the initial block vector parameters satisfy an availability condition, and if the initial block vector parameters satisfy the availability condition, performing a modification process on the initial block vector parameters of the current block to determine the target block vector parameters of the current block; or if the initial block vector parameters do not satisfy the availability condition, performing an adjustment process on the initial block vector parameters of the current block until the adjusted block vector parameters satisfy the availability condition, and performing a modification process on the adjusted block vector parameters to determine the target block vector parameters of the current block.
[0320] In addition, in an embodiment of the present invention, at least one candidate block at a predetermined position is identified from among the multiple blocks into which the first color component region is divided, and then at least one candidate block is sequentially obtained according to a predetermined order to perform mode determination. If the first candidate block determined uses IBC mode, the first candidate block is selected as the first color component block of the current block. In this process, it is further necessary to determine whether the BV parameters of the first candidate block satisfy the availability condition, thereby determining whether mode determination for the next candidate block needs to be continued.
[0321] In some embodiments, the method may further include: if the determined initial candidate block uses the IBC mode, determining a first block vector parameter of the initial candidate block; determining whether the first block vector parameter of the initial candidate block satisfies an availability condition; if the first block vector parameter of the initial candidate block satisfies the availability condition, setting the initial candidate block as the first color component block of the current block; if the first block vector parameter of the initial candidate block does not satisfy the availability condition, continuing to perform mode determination for the next candidate block until a target candidate block using the IBC mode and whose corresponding first block vector parameter satisfies the availability condition can be identified, and setting the target candidate block as the first color component block of the current block.
[0322] Furthermore, in some embodiments, the method may further include, if there is no target candidate block among the at least one candidate block that uses the IBC mode and whose corresponding first block vector parameter satisfies the availability condition, performing an intra prediction process on the second color component of the current block based on a first predetermined mode to determine a predicted value of the second color component of the current block, where the first predetermined mode includes at least one of a planar mode, a direct matrix mode, a direct coordinate system mode, a constant current mode, and a skip mode.
[0323] 9 as an example, if there are one or more CUs using IBC mode among the five positions, these five positions can be sequentially acquired again (until the first CU satisfying the following condition is found). At this time, not only is it determined whether the CU uses IBC mode, but the luma BV parameters of the CU are also adjusted to determine the BV parameters applied to chroma, and then it is determined whether the chroma BV parameters are available. If the chroma BV parameters are available, this CU is selected as the luma block of the BV to be finally acquired. If the chroma BV parameters are not available, the luma CU is not acquired, and a mode including, but not limited to, a planar mode, an inter-component prediction mode, or another angular prediction mode may be used, or the mode may be skipped. Alternatively, a CU using IBC mode is first found, and its BV is continuously adjusted until it is available, and this CU is selected as the luma block of the BV to be finally acquired.
[0324] Furthermore, in some embodiments, performing an IBC extension mode prediction process on the second color component of the current block based on the target block vector parameters to determine a predicted value of the second color component of the current block may include determining an offset position of the current block based on the target block vector parameters and position information of the current block; performing a block copy process based on the offset position of the current block to obtain a first predicted block; and determining a predicted value of the second color component of the current block based on the first predicted block.
[0325] Furthermore, in some embodiments, determining a predicted value of the second color component of the current block based on the first predicted block may include performing a modification operation on the first predicted block to determine the predicted value of the second color component of the current block.
[0326] In one specific embodiment, determining a predicted value of a second color component of the current block based on the first predicted block may include: performing an intra prediction process on the second color component of the current block based on a second predetermined mode to obtain a second predicted block; and performing a weighted fusion process on the first predicted block and the second predicted block to determine the predicted value of the second color component of the current block, where the second predetermined mode includes at least one of a planar mode, a direct current mode, a direct current mode, and a correct coding mode (CCLM) mode.
[0327] In addition, in an embodiment of the present invention, if the predicted value of the second color component of the current block is obtained by block copying based on the target block vector parameters, a general prediction mode and weighting method may be adopted to perform correction processing on the predicted value, but this is not limited to this.
[0328] In some embodiments, the method may further include determining a value of the first syntax element identification information, performing an encoding on the value of the first syntax element identification information, and writing the resulting encoded bits to the bitstream.
[0329] In one specific embodiment, determining the value of the first syntax element identification information may include: determining that the value of the first syntax element identification information is a first value if the first syntax element identification information indicates that the second color component of the current block allows the use of IBC extended mode; and determining that the value of the first syntax element identification information is a second value if the first syntax element identification information indicates that the second color component of the current block does not allow the use of IBC extended mode.
[0330] In addition, in an embodiment of the present invention, the first syntax element identification information may be represented by IbcEnabled or chromaIbcExModeEnabled, and indicates whether the second color component of the current block is allowed to use the IBC extended mode. In other words, the first syntax element identification information can be used to indicate whether the second color component of the current block is allowed to use the target prediction mode (i.e., INTRA_DBV mode).
[0331] In addition, in an embodiment of the present invention, the first value and the second value are different, and the first value and the second value may be in a parameter format or a numeric format. Specifically, the first syntax element identification information may be a parameter written in a profile or a flag value, but this is not limited thereto. For example, the first value may be set to 1 and the second value may be set to 0, but this is not limited thereto.
[0332] In this way, the encoding side encodes the first syntax element identification information and writes it into the bitstream, and then the decoding side can directly determine the value of the first syntax element identification information through decoding, and thus determine whether the second color component of the current block allows the use of the IBC extension mode.
[0333] Furthermore, in some embodiments, the method may further include, if the first syntax element identification information indicates that the second color component of the current block allows use of the IBC extended mode, determining a value of the second syntax element identification information, encoding the value of the second syntax element identification information, and writing the resulting encoded bits to the bitstream.
[0334] In one specific embodiment, determining the value of the second syntax element identification information may include: determining that the value of the second syntax element identification information is a first value if the second syntax element identification information indicates that the second color component of the current block uses a target prediction mode; and determining that the value of the second syntax element identification information is a second value if the second syntax element identification information indicates that the second color component of the current block does not use the target prediction mode.
[0335] Furthermore, in some embodiments, the method may further include determining a value of a third syntax element identification information, encoding the value of the third syntax element identification information, and writing the resulting encoded bits to the bitstream.
[0336] In one specific embodiment, determining the value of the third syntax element identification information may include: determining that the value of the third syntax element identification information is a first value if the third syntax element identification information indicates that the current image allows the use of IBC mode; and determining that the value of the third syntax element identification information is a second value if the third syntax element identification information indicates that the current image does not allow the use of IBC mode.
[0337] It should be noted that in the embodiment of the present invention, the value of the first syntax element identification information can be regarded as a syntax element transmitted in the bitstream, and the value is subsequently determined directly by decoding the bitstream, or the first syntax element identification information can be regarded as a syntax element not transmitted in the bitstream, and in this case, the value can be determined based on the third syntax element identification information and whether the current block satisfies a predetermined condition.
[0338] In some embodiments, determining the value of the first syntax element identification information may further include: determining that the value of the first syntax element identification information is the first value if the value of the third syntax element identification information is a first value and the current block satisfies a predetermined condition; and determining that the value of the first syntax element identification information is the second value if the value of the third syntax element identification information is a second value.
[0339] In addition, in an embodiment of the present invention, the current block satisfying a predetermined condition may include at least that the slice type to which the current block belongs is an I-frame and that the size parameter of the current block satisfies a predetermined upper limit value.
[0340] In addition, in an embodiment of the present invention, the second syntax element identification information may be represented as intra_dbv_flag or intra_chroma_ibc_flag, and indicates whether the second color component of the current block uses the target prediction mode. The third syntax element identification information may be represented as sps_ibc_enabled_flag, and indicates whether the current image allows the use of the IBC mode. Here, the current image includes the current block.
[0341] In an embodiment of the present invention, the first value and the second value are different, and the first value and the second value may be in a parameter format or a numeric format. Specifically, the first syntax element identification information, the second syntax element identification information, the third syntax element identification information, etc. may be parameters written in a profile or may be the value of a flag, and this is not limited here.
[0342] Illustratively, taking the first value as an example where the first value is set to 1 and the second value is set to 0, if the value of sps_ibc_enabled_flag is equal to 0, then the value of IbcEnabled is 0; otherwise, if the value of sps_ibc_enabled_flag is equal to 1, then if multiple of the following conditions (including but not limited to the following conditions) are simultaneously true, then the IbcEnabled value is equal to 1: These conditions include, but are not limited to: sh_slice_type is equal to I-frame, and CtbLog2SizeY is less than or equal to MaxChromaIbcSize.
[0343] In some embodiments, the method may further include, when the second syntax element identification information indicates that the second color component of the current block does not use a target prediction mode, determining a first intra prediction mode for the second color component of the current block, and performing an intra prediction process on the second color component of the current block based on the first intra prediction mode to determine a predicted value of the second color component of the current block.
[0344] Furthermore, in some embodiments, the method may further include determining a value of a fourth syntax element identification information based on a first intra-prediction mode of a second color component of the current block, and encoding the value of the fourth syntax element identification information and writing the resulting encoded bits into a bitstream.
[0345] In an embodiment of the present invention, the fourth syntax element identification information may be represented as intra_chroma_pred_mode, and indicates the chroma intra prediction mode used by the current block. For example, if intra_dbv_flag or intra_chroma_ibc_flag is 0, the target prediction mode is not used, and instead, a chroma prediction process is performed on the current block based on the chroma intra prediction mode indicated by intra_chroma_pred_mode to determine a chroma prediction value for the current block.
[0346] In some embodiments, when a syntax element is added, the method may further include: when the first syntax element identification information indicates that the second color component of the current block allows the use of the IBC extension mode, determining a second intra prediction mode for the second color component of the current block and performing an intra prediction process on the second color component of the current block based on the second intra prediction mode to determine a predicted value of the second color component of the current block; and when the first syntax element identification information indicates that the second color component of the current block does not allow the use of the IBC extension mode, determining a third intra prediction mode for the second color component of the current block and performing an intra prediction process on the second color component of the current block based on the third intra prediction mode to determine a predicted value of the second color component of the current block, where the second intra prediction mode includes a target prediction mode and the third intra prediction mode does not include the target prediction mode.
[0347] Further, in some embodiments, the method may further include: determining a value of a fifth syntax element identification information based on a second intra-prediction mode of a second color component of the current block; performing a binarization process on the value of the fifth syntax element identification information using a first predetermined binarization mapping table to determine at least one character corresponding to the fifth syntax element identification information; encoding the at least one character corresponding to the fifth syntax element identification information; and writing the obtained encoded bits into a bitstream.
[0348] Further, in some embodiments, the method may further include: determining a value of a sixth syntax element identification information based on a third intra-prediction mode of a second color component of the current block; performing a binarization process on the value of the sixth syntax element identification information using a second predetermined binarization mapping table to determine at least one character corresponding to the sixth syntax element identification information; encoding the at least one character corresponding to the sixth syntax element identification information; and writing the obtained encoded bits into a bitstream.
[0349] In an embodiment of the present invention, the fifth syntax element identification information may be represented by intra_chroma_pred_mode_add, and the sixth syntax element identification information may be represented by intra_chroma_pred_mode, where intra_chroma_pred_mode_add is used to indicate that the INTRA_DBV mode has been added, and intra_chroma_pred_mode represents a chroma prediction mode in the related art.
[0350] In an embodiment of the present invention, the binarization processes for the fifth syntax element identification information and the sixth syntax element identification information are different, that is, the binarization mapping tables used by them are different. For example, the first predetermined binarization mapping table may be as shown in Table 20, and the second predetermined binarization mapping table may be as shown in Table 21, but are not limited thereto.
[0351] With respect to retaining syntax elements, in some embodiments, the method comprises: If the first syntax element identification information indicates that the second color component of the current block allows the use of the IBC extension mode, performing a binarization process on the value of the second syntax element identification information using a first predetermined binarization mapping table to determine at least one character corresponding to the second syntax element identification information; encoding the at least one character corresponding to the second syntax element identification information; and writing the obtained encoded bits into the bitstream; or Or, If the first syntax element identification information indicates that the second color component of the current block does not allow the use of the IBC extended mode, the method may further include performing a binarization process on the value of the second syntax element identification information using a second predetermined binarization mapping table to determine at least one character corresponding to the second syntax element identification information; encoding the at least one character corresponding to the second syntax element identification information; and writing the obtained encoded bits into the bitstream.
[0352] In an embodiment of the present invention, the second syntax element identification information may be represented by intra_chroma_pred_mode, i.e., the syntax element intra_chroma_pred_mode is held. In this case, different binarization methods may be used depending on the value of IbcEnabled. Exemplarily, the first predetermined binarization mapping table may be as shown in Table 25, and the second predetermined binarization mapping table may be as shown in Table 26, but both are not limited thereto.
[0353] Furthermore, an embodiment of the present invention further provides a bitstream, where the bitstream is generated by performing bit encoding based on to-be-encoded information, where the to-be-encoded information includes at least one of: a target block vector parameter of a current block, a value of a first syntax element identification information, a value of a second syntax element identification information, a value of a third syntax element identification information, a value of a fourth syntax element identification information, a value of a fifth syntax element identification information, and a value of a sixth syntax element identification information.
[0354] In the embodiment of the present invention, whether the syntax element identification information is the first syntax element identification information, the second syntax element identification information, the third syntax element identification information, the fourth syntax element identification information, the fifth syntax element identification information, or the sixth syntax element identification information, the first value and the second value of these syntax element identification information are different, and the first value and the second value may be in a parameter format or a numeric format. For example, they may be a parameter written in a profile or the value of a flag, but are not limited thereto.
[0355] In addition, in an embodiment of the present invention, the third syntax element identification information may be an SPS layer syntax element, where, when IBC mode and dual-tree partitioning are enabled in the SPS layer, if the corresponding luma block is in IBC mode, the BV of the corresponding luma block is obtained, and then the BV is adjusted and applied to chroma, thereby improving the uniformity of chroma prediction, implicitly incorporating the IBC algorithm into chroma prediction, and fully utilizing the information of the co-located luma region, thereby effectively improving coding efficiency.
[0356] In addition, in an embodiment of the present invention, the encoding side can encode these syntax element identification information and write them into a bitstream, and then the decoding side can determine the values of these syntax element identification information through decoding, thereby determining whether the second color component of the current block uses a target prediction mode, and if the target prediction mode is used, performing chroma prediction on the current block can effectively improve decoding efficiency.
[0357] This embodiment provides an encoding method, in which, in the process of deriving a chroma prediction mode using a luma prediction mode, if the luma block corresponding to a current block is in IBC mode, a target block vector parameter to which a chroma component is applied can be determined based on the block vector parameter of the luma block, and a prediction process is performed on the chroma component according to the IBC extension mode based on the target block vector parameter to determine a chroma prediction value of the current block, thereby improving the unity of chroma prediction, implicitly incorporating the IBC mode into chroma prediction, fully utilizing the related information of the co-located luma block, improving the accuracy of chroma prediction, saving the code rate, improving the efficiency of encoding and decoding, and enhancing the performance of encoding and decoding.
[0358] In another embodiment of the present invention, Figure 18 is a structural diagram illustrating the configuration of an encoder according to an embodiment of the present invention. As shown in Figure 18, the encoder 180 may include a first determination unit 1801 and a first prediction unit 1802.
[0359] Here, the first determination unit 1801 is configured to determine a first color component block of the current block when the prediction mode of the second color component of the current block is a target prediction mode; determine first block vector parameters of the first color component block when the prediction mode of the first color component block is an IBC mode; and determine target block vector parameters of the second color component of the current block based on the first block vector parameters of the first color component block.
[0360] The first prediction unit 1802 is configured to perform an IBC extension mode prediction process on a second color component of the current block based on the target block vector parameters to determine a predicted value of the second color component of the current block.
[0361] In some embodiments, the first determining unit 1801 is further configured to determine a first color component region at the same position of the current block, and identify a first color component block of the current block from among a plurality of blocks into which the first color component region is divided.
[0362] In some embodiments, the first determining unit 1801 is further configured to select a target block from among a plurality of blocks into which the first color component region is divided, and set the target block as the first color component block of the current block.
[0363] In some embodiments, the first determination unit 1801 is further configured to select a block located at a center position in the first color component region as the target block, or to select a block located at an upper left position in the first color component region as the target block, or to select a block located at a lower right position in the first color component region as the target block.
[0364] In some embodiments, the first determining unit 1801 is further configured to: identify at least one candidate block located at a predetermined position from among a plurality of blocks into which the first color component region is divided; sequentially obtain the at least one candidate block according to a predetermined order to perform mode determination; and if the determined first candidate block uses the IBC mode, set the first candidate block as the first color component block of the current block.
[0365] In some embodiments, the first determining unit 1801 is further configured to identify at least one candidate block located at a predetermined position from among a plurality of blocks into which the first color component region is divided, and determine the at least one candidate block as a first color component block of the current block.
[0366] Correspondingly, the first determining unit 1801 is further configured to identify at least one target block using IBC mode from the at least one candidate block, determine first block vector parameters for each of the at least one target block, calculate an average value of the first block vector parameters for each of the at least one target block, and set the calculation result as the first block vector parameters of the first color component block.
[0367] In some embodiments, the first determining unit 1801 is further configured to: identify at least one target block using an IBC mode from the at least one candidate block; perform a search on the at least one target block based on a template matching scheme to determine optimal block vector parameters; and set the optimal block vector parameters as the first block vector parameters of the first color component block.
[0368] In some embodiments, as shown in FIG. 18, the encoder 180 may further include a first adjustment unit 1803 configured to adjust the first block vector parameters of the first color component block to determine the target block vector parameters of the current block.
[0369] In some embodiments, the first determining unit 1801 is further configured to determine a color sampling format of the current block.
[0370] The first adjusting unit 1803 is further configured to perform a scaling operation on the first block vector parameters of the first color component block based on the color sampling format to determine the target block vector parameters of the current block.
[0371] In some embodiments, the first adjusting unit 1803 is configured to perform a scaling operation on the first block vector parameters of the first color component block based on the color sampling format, and then obtain initial block vector parameters of the current block; and perform a modification operation on the initial block vector parameters of the current block to determine target block vector parameters of the current block.
[0372] In some embodiments, the first adjusting unit 1803 is further configured to directly determine the target block vector parameters of the current block based on the initial block vector parameters of the current block.
[0373] In some embodiments, the first adjusting unit 1803 is further configured to: determine a search area for the current block according to the initial block vector parameters of the current block and the position information of the current block; perform a search in the search area by a template matching method to determine optimal block vector parameters, and set the optimal block vector as the target block vector parameter of the current block.
[0374] In some embodiments, the first prediction unit 1802 is further configured to: after determining the target block vector parameters of the current block, determine whether the target block vector parameters satisfy an availability condition; and if the target block vector parameters satisfy the availability condition, perform an IBC extension mode prediction process on the second color component of the current block based on the target block vector parameters to determine a predicted value of the second color component of the current block.
[0375] In some embodiments, the satisfaction of the availability conditions of the target block vector parameters includes at least whether the offset position indicated by the target block vector parameters does not exceed the image boundary, whether the offset position indicated by the target block vector parameters does not cover the current block, whether the offset position indicated by the target block vector parameters does not exceed the usable area of the IBC mode, and whether the offset position indicated by the target block vector parameters has been reconstructed.
[0376] In some embodiments, the first determining unit 1801 is further configured to: when the determined first candidate block uses the IBC mode, determine a first block vector parameter of the first candidate block; determine whether the first block vector parameter of the first candidate block satisfies an availability condition; if the first block vector parameter of the first candidate block satisfies the availability condition, set the first candidate block as the first color component block of the current block; if the first block vector parameter of the first candidate block does not satisfy the availability condition, continue to perform mode determination of the next candidate block until a target candidate block using the IBC mode and whose corresponding first block vector parameter satisfies the availability condition can be determined, and set the target candidate block as the first color component block of the current block.
[0377] In some embodiments, the first prediction unit 1802 is further configured, when there is no target candidate block among the at least one candidate block that uses the IBC mode and whose corresponding first block vector parameter satisfies the availability condition, to perform an intra prediction process on the second color component of the current block based on a first predetermined mode to determine a predicted value of the second color component of the current block, where the first predetermined mode includes at least one of a PLANAR mode, a DM mode, a DC mode, a CCLM mode, and a SKIP mode.
[0378] In some embodiments, the first prediction unit 1802 is further configured to: determine an offset position of the current block based on the target block vector parameters and the position information of the current block; perform a block copy process based on the offset position of the current block to obtain a first predicted block; and determine a predicted value of a second color component of the current block based on the first predicted block.
[0379] In some implementations, the first prediction unit 1802 is further configured to perform a modification operation on the first predicted block to determine a predicted value of a second color component of the current block.
[0380] In some embodiments, the first prediction unit 1802 is further configured to: perform an intra prediction operation on a second color component of the current block based on a second predetermined mode to obtain a second predicted block; and perform a weighted fusion operation on the first predicted block and the second predicted block to determine a predicted value of the second color component of the current block, where the second predetermined mode includes at least one of a PLANAR mode, a DM mode, a DC mode, and a CCLM mode.
[0381] In some implementations, as shown in FIG. 18, the encoder 180 may further comprise an encoding unit 1804 .
[0382] The first determining unit 1801 is further configured to determine a value of the first syntax element identification information.
[0383] The encoding unit 1804 is configured to perform encoding on the value of the first syntax element identification information and write the resulting coded bits into a bitstream.
[0384] In some embodiments, the first determining unit 1801 is further configured to: determine that the value of the first syntax element identification information is a first value if the first syntax element identification information indicates that the second color component of the current block allows the use of the IBC extended mode; and determine that the value of the first syntax element identification information is a second value if the first syntax element identification information indicates that the second color component of the current block does not allow the use of the IBC extended mode.
[0385] In some embodiments, the first determining unit 1801 is further configured to determine a value of the second syntax element identification information when the first syntax element identification information indicates that the second color component of the current block allows the use of the IBC extended mode.
[0386] The encoding unit 1804 is further configured to encode the value of the second syntax element identification information and write the resulting coded bits into the bitstream.
[0387] In some embodiments, the first determining unit 1801 is further configured to: determine that the value of the second syntax element identification information is a first value if the second syntax element identification information indicates that the second color component of the current block uses a target prediction mode; and determine that the value of the second syntax element identification information is a second value if the second syntax element identification information indicates that the second color component of the current block does not use the target prediction mode.
[0388] In some embodiments, the first determining unit 1801 is further configured to determine a value of a third syntax element identification information.
[0389] The encoding unit 1804 is further configured to encode the value of the third syntax element identification information and write the resulting coded bits into the bitstream.
[0390] In some embodiments, the first determining unit 1801 is further configured to: determine that the value of the first syntax element identification information is the first value when the value of the third syntax element identification information is the first value and the current block satisfies a predetermined condition; and determine that the value of the first syntax element identification information is the second value when the value of the third syntax element identification information is the second value.
[0391] In some embodiments, the current block satisfies the predetermined condition at least when the slice type to which the current block belongs is an I-frame, and when the size parameter of the current block satisfies a predetermined upper limit value.
[0392] In some embodiments, the first determining unit 1801 is further configured to: determine that the value of the third syntax element identification information is a first value if the third syntax element identification information indicates that the current image allows the use of the IBC mode; and determine that the value of the third syntax element identification information is a second value if the third syntax element identification information indicates that the current image does not allow the use of the IBC mode.
[0393] In some embodiments, the first determining unit 1801 is further configured to determine a first intra prediction mode of a second color component of the current block when the second syntax element identification information indicates that the second color component of the current block does not use a target prediction mode.
[0394] The first prediction unit 1802 is further configured to perform an intra prediction process on a second color component of the current block based on the first intra prediction mode to determine a predicted value of the second color component of the current block.
[0395] In some embodiments, the first determining unit 1801 is further configured to determine a value of the fourth syntax element identification information based on a first intra prediction mode of a second color component of the current block.
[0396] The encoding unit 1804 is further configured to encode the value of the fourth syntax element identification information and write the resulting coded bits into the bitstream.
[0397] In some embodiments, the first prediction unit 1802 is further configured to: determine a second intra prediction mode for the second color component of the current block and perform an intra prediction operation on the second color component of the current block based on the second intra prediction mode to determine a predicted value of the second color component of the current block when the first syntax element identification information indicates that the second color component of the current block allows the use of the IBC extension mode; or determine a third intra prediction mode for the second color component of the current block and perform an intra prediction operation on the second color component of the current block based on the third intra prediction mode to determine a predicted value of the second color component of the current block when the first syntax element identification information indicates that the second color component of the current block does not allow the use of the IBC extension mode, where the second intra prediction mode includes a target prediction mode and the third intra prediction mode does not include the target prediction mode.
[0398] In some embodiments, the first determining unit 1801 is further configured to determine a value of the fifth syntax element identification information based on a second intra prediction mode of a second color component of the current block.
[0399] The encoding unit 1804 is further configured to perform a binarization process on the value of the fifth syntax element identification information using a first predetermined binarization mapping table to determine at least one character corresponding to the fifth syntax element identification information, encode the at least one character corresponding to the fifth syntax element identification information, and write the obtained encoded bits into a bitstream.
[0400] In some embodiments, the first determining unit 1801 is further configured to determine a value of the sixth syntax element identification information based on a third intra prediction mode of a second color component of the current block.
[0401] The encoding unit 1804 is further configured to perform a binarization process on the value of the sixth syntax element identification information using a second predetermined binarization mapping table to determine at least one character corresponding to the sixth syntax element identification information, encode the at least one character corresponding to the sixth syntax element identification information, and write the obtained encoded bits into a bitstream.
[0402] In some embodiments, the encoding unit 1804 is further configured to: when the first syntax element identification information indicates that the second color component of the current block allows the use of the IBC extended mode, perform a binarization process on the value of the second syntax element identification information using a first pre-defined binarization mapping table to determine at least one character corresponding to the second syntax element identification information, encode the at least one character corresponding to the second syntax element identification information, and write the resulting coded bits into the bitstream; or when the first syntax element identification information indicates that the second color component of the current block does not allow the use of the IBC extended mode, perform a binarization process on the value of the second syntax element identification information using a second pre-defined binarization mapping table to determine at least one character corresponding to the second syntax element identification information, encode the at least one character corresponding to the second syntax element identification information, and write the resulting coded bits into the bitstream.
[0403] In the embodiments of the present invention, a "unit" may be a part of a circuit, a part of a processor, a part of a program or software, etc. Of course, it may be a module or a non-modular one. Furthermore, each component in the present embodiment may be integrated into a single processing unit, each unit may exist physically independently, or two or more units may be integrated into a single unit. The integrated unit may be realized in the form of hardware or in the form of a software functional module.
[0404] The above-mentioned integrated units may be realized in the form of software functional modules and stored in a computer-readable storage medium when not sold or used as an independent product. Based on this understanding, the technical solution according to this embodiment, in essence, or as part of a contribution to the prior art, or all or part of this technical solution, may be embodied in the form of a software product. This computer software product is stored in a storage medium and includes a plurality of instructions for causing a computer device (such as a personal computer, a server, or a network device) or a processor to execute all or part of the steps of the method according to this embodiment. The aforementioned storage medium includes any medium capable of storing program code, such as a USB memory, a portable hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.
[0405] Therefore, an embodiment of the present invention provides a computer-readable storage medium applied to the encoder 180. The computer-readable storage medium stores a computer program, which, when executed by the first processor, implements the method according to any one of the previous embodiments.
[0406] Based on the configuration of the encoder 180 and the computer-readable storage medium, FIG. 19 shows a specific hardware structural diagram of the encoder 180 according to an embodiment of the present invention. As shown in FIG. 19, the encoder 180 may include a first communication interface 1901, a first memory 1902, and a first processor 1903. Each component is coupled via a first bus system 1904. The first bus system 1904 is configured to realize communication between these components. The first bus system 1904 includes a data bus, a power bus, a control bus, and a status signal bus. However, for clarity, all buses in FIG. 19 are referred to as the first bus system 1904.
[0407] The first communication interface 1901 is configured to receive and transmit signals in the process of transmitting and receiving information to and from other external network elements.
[0408] The first memory 1902 is configured to store a computer program executable on the first processor 1903 .
[0409] When executing the computer program, the first processor 1903 is configured to: determine a first color component block of the current block if the prediction mode of the second color component of the current block is a target prediction mode; determine first block vector parameters of the first color component block if the prediction mode of the first color component block is an IBC mode; determine target block vector parameters of the second color component of the current block based on the first block vector parameters of the first color component block; and perform an IBC extension mode prediction process on the second color component of the current block based on the target block vector parameters to determine a predicted value of the second color component of the current block.
[0410] Note that in an embodiment of the present invention, first memory 1902 may be volatile memory, nonvolatile memory, or both volatile and nonvolatile memory. Here, nonvolatile memory may be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. Volatile memory may be random access memory (RAM) used as an external high-speed cache. By way of example, and not limitation, many types of RAM are available, including, for example, static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDRSDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous linked dynamic random access memory (SLDRAM), and direct memory bus random access memory (Direct Rambus RAM, DRRAM). The first memory 1902 of the systems and methods described herein includes, but is not limited to, these and other suitable types of memory.
[0411] The first processor 1903 may be an integrated circuit chip having signal processing capabilities. In the implementation process, each step of the above method may be performed by a hardware integrated logic circuit in the first processor 1903 or by instructions in software format. The first processor 1903 may be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), or other programmable logic device, a discrete gate or transistor logic device, or a discrete hardware component. Each method, step, and logic block diagram disclosed in the embodiments of the present invention may be implemented or executed. The general-purpose processor may be a microprocessor or other conventional processor. The steps of the method disclosed in the embodiments of the present invention may be directly executed by a hardware decoder processor or by a combination of hardware and software modules in the decoder processor. The software modules may be located in mature storage media known to those skilled in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, etc. This storage medium is located in a first memory 1902, and a first processor 1903 reads the information in the first memory 1902 and performs the steps of the above method in combination with its hardware.
[0412] It should be noted that the embodiments described herein may be implemented by hardware, software, firmware, middleware, microcode, or a combination thereof. When implemented in hardware, the processing unit may be implemented by one or more application-specific integrated circuits (ASICs), digital signal processing devices (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontrollers, microprocessors, or other electronic units for performing the functions described herein, or a combination thereof. When implemented in software, the techniques described herein may be realized by modules (e.g., processes, functions, etc.) that perform the functions described herein. Software code may be stored in a memory and executed by a processor. The memory may be implemented inside or outside the processor.
[0413] Optionally, as another embodiment, the first processor 1903 is further configured to perform the method according to any of the previous embodiments when executing the computer program.
[0414] This embodiment provides an encoder, in which, when determining a chroma prediction mode based on a luma prediction mode, if a luma block corresponding to a current block is in IBC mode, a target block vector parameter to which a chroma component is applied can be determined based on a block vector parameter of the luma block, and a prediction process can be performed on the chroma component according to the IBC extension mode based on the target block vector parameter to determine a chroma prediction value of the current block. This solves the problem of the unified nature of chroma prediction, implicitly adds the IBC mode to the chroma prediction, fully utilizes the related information of the co-located luma block, improves the accuracy of chroma prediction, saves code rate, improves encoding and decoding efficiency, and improves encoding and decoding performance. In another embodiment of the present invention, Figure 20 is a structural diagram showing the configuration of a decoder according to an embodiment of the present invention. As shown in Figure 20, the decoder 200 may include a second determination unit 2001 and a second prediction unit 2002.
[0415] The second determination unit 2001 is configured to determine a first color component block of the current block; if the prediction mode of the first color component block is an IBC mode, determine a first block vector parameter of the first color component block; and determine a target block vector parameter of a second color component of the current block based on the first block vector parameter of the first color component block.
[0416] The second prediction unit 2002 is configured to perform an IBC extension mode prediction process on a second color component of the current block based on the target block vector parameters to determine a predicted value of the second color component of the current block.
[0417] In some embodiments, the second determining unit 2001 is further configured to determine a first color component region at the same position of the current block, and identify the first color component block of the current block from among the multiple blocks into which the first color component region is divided.
[0418] In some embodiments, the second determination unit 2001 is further configured to select a target block from among a plurality of blocks into which the first color component region is divided, and set the target block as the first color component block of the current block.
[0419] In some embodiments, the second determination unit 2001 is further configured to select a block located at a central position in the first color component region as the target block, or to select a block located at an upper left position in the first color component region as the target block, or to select a block located at a lower right position in the first color component region as the target block.
[0420] In some embodiments, the second determination unit 2001 is further configured to: identify at least one candidate block located at a predetermined position from among a plurality of blocks into which the first color component region is divided; sequentially obtain the at least one candidate block according to a predetermined order to perform mode determination; and if the determined first candidate block uses the IBC mode, set the first candidate block as the first color component block of the current block.
[0421] In some embodiments, the second determination unit 2001 is further configured to identify at least one candidate block located at a predetermined position from among a plurality of blocks into which the first color component region is divided, and determine the at least one candidate block as a first color component block of the current block.
[0422] Correspondingly, the second determination unit 2001 is further configured to identify at least one target block using IBC mode from the at least one candidate block, determine first block vector parameters for each of the at least one target block, calculate an average value of the first block vector parameters for each of the at least one target block, and set the calculation result as the first block vector parameters of the first color component block.
[0423] In some embodiments, the second determining unit 2001 is further configured to: identify at least one target block using an IBC mode from the at least one candidate block; perform a search on the at least one target block based on a template matching scheme to determine optimal block vector parameters; and set the optimal block vector parameters as the first block vector parameters of the first color component block.
[0424] In some embodiments, as shown in FIG. 20, the decoder 200 may further comprise a second adjustment unit 2003 configured to adjust the first block vector parameters of the first color component block to determine the target block vector parameters of the current block.
[0425] In some embodiments, the second determining unit 2001 is further configured to determine a color sampling format of the current block.
[0426] The second adjusting unit 2003 is further configured to perform a scaling operation on the first block vector parameters of the first color component block based on the color sampling format to determine the target block vector parameters of the current block.
[0427] In some embodiments, the second adjusting unit 2003 is further configured to: obtain initial block vector parameters of a current block after performing a scaling operation on the first block vector parameters of the first color component block based on the color sampling format; and perform a modification operation on the initial block vector parameters of the current block to determine target block vector parameters of the current block.
[0428] In some embodiments, the second adjusting unit 2003 is further configured to directly determine the target block vector parameters of the current block based on the initial block vector parameters of the current block.
[0429] In some embodiments, the second prediction unit 2002 is further configured to: determine whether the target block vector parameters of the current block satisfy a target block vector parameter availability condition after determining the target block vector parameters of the current block; and if the target block vector parameters satisfy the availability condition, perform an IBC extension mode prediction process on the second color component of the current block based on the target block vector parameters to determine a predicted value of the second color component of the current block.
[0430] In some embodiments, the satisfaction of the availability conditions of the target block vector parameters includes at least whether the offset position indicated by the target block vector parameters does not exceed the image boundary, whether the offset position indicated by the target block vector parameters does not cover the current block, whether the offset position indicated by the target block vector parameters does not exceed the usable area of the IBC mode, and whether the offset position indicated by the target block vector parameters has been reconstructed.
[0431] In some embodiments, the second determining unit 2001 is further configured to: when the determined initial candidate block uses the IBC mode, determine a first block vector parameter of the initial candidate block; determine whether the first block vector parameter of the initial candidate block satisfies an availability condition; if the first block vector parameter of the initial candidate block satisfies the availability condition, set the initial candidate block as the first color component block of the current block; if the first block vector parameter of the initial candidate block does not satisfy the availability condition, continue to perform mode determination of the next candidate block until a target candidate block using the IBC mode and whose corresponding first block vector parameter satisfies the availability condition can be determined, and set the target candidate block as the first color component block of the current block.
[0432] In some embodiments, the second prediction unit 2002 is further configured to, when there is no target candidate block among the at least one candidate block that uses the IBC mode and whose corresponding first block vector parameter satisfies the availability condition, perform intra prediction processing on the second color component of the current block based on a first predetermined mode to determine a predicted value of the second color component of the current block, where the first predetermined mode includes at least one of a PLANAR mode, a DM mode, a DC mode, a CCLM mode, and a SKIP mode.
[0433] In some embodiments, the second prediction unit 2002 is further configured to: determine an offset position of the current block based on the target block vector parameters and the position information of the current block; perform a block copy process based on the offset position of the current block to obtain a first predicted block; and determine a predicted value of a second color component of the current block based on the first predicted block.
[0434] In some implementations, the second prediction unit 2002 is further configured to perform a modification operation on the first predicted block to determine a predicted value of a second color component of the current block.
[0435] In some embodiments, the second prediction unit 2002 is further configured to: perform an intra prediction operation on a second color component of the current block based on a second predetermined mode to obtain a second predicted block; and perform a weighted fusion operation on the first predicted block and the second predicted block to determine a predicted value of the second color component of the current block, where the second predetermined mode includes at least one of a PLANAR mode, a DM mode, a DC mode, and a CCLM mode.
[0436] In another embodiment of the present invention, Figure 21 is a structural diagram showing another decoder configuration according to an embodiment of the present invention. As shown in Figure 21, the decoder 200 can include a decoding unit 2101, a second determination unit 2102 and a second prediction unit 2103.
[0437] The second determining unit 2102 is further configured to determine a value of the first syntax element identification information.
[0438] The decoding unit 2101 is configured to decode the bitstream to determine the value of the second syntax element identification information if the first syntax element identification information indicates that the second color component of the current block allows the use of the IBC extension mode.
[0439] The second prediction unit 2103 is configured to, when the second syntax element identification information indicates that the second color component of the current block uses a target prediction mode, perform an intra prediction process on the second color component of the current block based on the target prediction mode to determine a predicted value of the second color component of the current block.
[0440] In some embodiments, the second determination unit 2102 is further configured to determine a first color component block of the current block; and, if the prediction mode of the first color component block is an IBC mode, determine a first block vector parameter of the first color component block; and determine a target block vector parameter of a second color component of the current block based on the first block vector parameter of the first color component block.
[0441] The second prediction unit 2103 is further configured to perform an IBC extension mode prediction process on a second color component of the current block according to the target block vector parameters to determine a predicted value of the second color component of the current block.
[0442] In some embodiments, the decoding unit 2101 is further configured to decode the bitstream to determine target block vector parameters of the current block.
[0443] The second prediction unit 2103 is further configured to perform an IBC extension mode prediction process on a second color component of the current block according to the target block vector parameters to determine a predicted value of the second color component of the current block.
[0444] In some embodiments, the decoding unit 2101 is further configured to decode the bitstream to determine the value of the third syntax element identification information.
[0445] The second determination unit 2102 is further configured to: determine that the value of the first syntax element identification information is the first value when the value of the third syntax element identification information is a first value and the current block satisfies a predetermined condition; and determine that the value of the first syntax element identification information is the second value when the value of the third syntax element identification information is a second value.
[0446] In some embodiments, the current block satisfies the predetermined condition at least when the slice type to which the current block belongs is an I-frame, and when the size parameter of the current block satisfies a predetermined upper limit value.
[0447] In some embodiments, the second determining unit 2102 is further configured to: determine that the third syntax element identification indicates that the current image allows the use of the IBC mode when the value of the third syntax element identification is a first value, and determine that the third syntax element identification indicates that the current image does not allow the use of the IBC mode when the value of the third syntax element identification is a second value, where the current image includes the current block.
[0448] In some embodiments, the second determining unit 2102 is further configured to: determine, if the value of the first syntax element identification information is a first value, that the first syntax element identification information indicates that the second color component of the current block allows the use of the IBC extended mode; and, if the value of the first syntax element identification information is a second value, determine, if the value of the first syntax element identification information is a second value, that the first syntax element identification information indicates that the second color component of the current block does not allow the use of the IBC extended mode.
[0449] In some embodiments, the second determining unit 2102 is further configured to: determine that the second syntax element identification information indicates that the second color component of the current block uses the target prediction mode when the value of the second syntax element identification information is a first value; and determine that the second syntax element identification information indicates that the second color component of the current block does not use the target prediction mode when the value of the second syntax element identification information is a second value.
[0450] In some embodiments, the decoding unit 2101 is further configured to decode the bitstream to determine the value of the fourth syntax element identification information when the value of the second syntax element identification information is the second value.
[0451] The second prediction unit 2103 is further configured to determine a first intra prediction mode of a second color component of the current block based on the value of the fourth syntax element identification information, and perform an intra prediction process on the second color component of the current block based on the first intra prediction mode to determine a predicted value of the second color component of the current block.
[0452] In some embodiments, the second prediction unit 2103 is further configured to: decode the bitstream to determine a value of a fifth syntax element identification information, and determine a second intra prediction mode for the second color component of the current block based on the value of the fifth syntax element identification information, and perform an intra prediction operation on the second color component of the current block based on the second intra prediction mode, to determine a predicted value of the second color component of the current block, when the first syntax element identification information indicates that the second color component of the current block allows the use of the IBC extension mode; or decode the bitstream to determine a value of a sixth syntax element identification information, and determine a third intra prediction mode for the second color component of the current block based on the value of the sixth syntax element identification information, and perform an intra prediction operation on the second color component of the current block based on the third intra prediction mode, to determine a predicted value of the second color component of the current block, when the first syntax element identification information indicates that the second color component of the current block does not allow the use of the IBC extension mode. Here, the second intra prediction mode includes the target prediction mode, and the third intra prediction mode does not include the target prediction mode.
[0453] In some embodiments, the decoding unit 2101 is further configured to: decode the bitstream to obtain at least one character corresponding to the fifth syntax element identification information; and perform a mapping process on the at least one character corresponding to the fifth syntax element identification information using a first predetermined binarization mapping table to determine the value of the fifth syntax element identification information.
[0454] In some embodiments, the decoding unit 2101 is further configured to: decode the bitstream to obtain at least one character corresponding to the sixth syntax element identification information; and perform a mapping process on the at least one character corresponding to the sixth syntax element identification information using a second predetermined binarization mapping table to determine the value of the sixth syntax element identification information.
[0455] In some embodiments, the second determining unit 2102 is further configured to: decode the bitstream to obtain at least one character corresponding to the second syntax element identification information, and perform a mapping process on the at least one character corresponding to the second syntax element identification information using a first predetermined binarization mapping table, to determine a value of the second syntax element identification information, when the first syntax element identification information indicates that the second color component of the current block allows the use of the IBC extended mode; or to decode the bitstream to obtain at least one character corresponding to the second syntax element identification information, and perform a mapping process on the at least one character corresponding to the second syntax element identification information using a second predetermined binarization mapping table, to determine a value of the second syntax element identification information, when the first syntax element identification information indicates that the second color component of the current block does not allow the use of the IBC extended mode.
[0456] In some embodiments, the second prediction unit 2103 is further configured to: when the value of the second syntax element identification information satisfies a first predetermined constant value, determine that the second syntax element identification information indicates that the second color component of the current block does not use a target prediction mode, determine a fourth intra prediction mode for the second color component of the current block, and then perform an intra prediction process on the second color component of the current block based on the fourth intra prediction mode to determine a predicted value of the second color component of the current block; or when the value of the second syntax element identification information satisfies a second predetermined constant value, determine that the second syntax element identification information indicates that the second color component of the current block uses a target prediction mode, and perform an intra prediction process on the second color component of the current block based on the target prediction mode to determine a predicted value of the second color component of the current block.
[0457] In this embodiment, a "unit" may be a part of a circuit, a part of a processor, a part of a program or software, etc. Of course, it may be a module or a non-modular one. Furthermore, each component in this embodiment may be integrated into a single processing unit, each unit may exist physically independently, or two or more units may be integrated into a single unit. The above-mentioned integrated unit may be realized in the form of hardware or in the form of a software functional module.
[0458] The above-mentioned integrated units can be realized in the form of software functional modules and stored in a computer-readable storage medium when not sold or used as an independent product. Based on this understanding, this embodiment provides a computer-readable storage medium applied to the decoder 200, the computer-readable storage medium storing a computer program, which, when executed by the second processor, realizes the method according to any of the above-mentioned embodiments.
[0459] Based on the configuration of the decoder 200 and a computer-readable storage medium, FIG. 22 is a specific hardware structural diagram of the decoder 200 according to an embodiment of the present invention. As shown in FIG. 22, the decoder 200 may include a second communication interface 2201, a second memory 2202, and a second processor 2203. These components are coupled via a second bus system 2204. The second bus system 2204 is configured to realize communication between these components. The second bus system 2204 includes a power bus, a control bus, and a status signal bus in addition to a data bus. However, for clarity, all buses in FIG. 22 are referred to as the second bus system 2204.
[0460] The second communication interface 2201 is configured to receive and transmit signals in the process of transmitting and receiving information to and from other external network elements.
[0461] The second memory 2202 is configured to store a computer program executable on the second processor 2203 .
[0462] When executing the computer program, the second processor 2203 is configured to: determine a first color component block of the current block; if the prediction mode of the first color component block is IBC mode, determine a first block vector parameter of the first color component block; determine a target block vector parameter of a second color component of the current block based on the first block vector parameter of the first color component block; and perform an IBC extension mode prediction process on the second color component of the current block based on the target block vector parameter to determine a predicted value of the second color component of the current block.
[0463] Alternatively, the second processor 2203 is further configured, when executing the computer program, to: determine a value of a first syntax element identification information; if the first syntax element identification information indicates that the second color component of the current block allows the use of the IBC extension mode, decode the bitstream to determine a value of the second syntax element identification information; and, if the second syntax element identification information indicates that the second color component of the current block uses a target prediction mode, perform an intra prediction process on the second color component of the current block based on the target prediction mode to determine a predicted value of the second color component of the current block.
[0464] Optionally, as another embodiment, the second processor 2203 is further configured to perform the method according to any of the previous embodiments when executing the computer program.
[0465] The second memory 2202 has similar hardware functions to the first memory 1902, and the second processor 2203 has similar hardware functions to the first processor 1903, so a description thereof will be omitted here.
[0466] This embodiment provides a decoder, in which, in a process of determining a chroma prediction mode based on a luma prediction mode, if a luma block corresponding to a current block is in IBC mode, a target block vector parameter to which a chroma component is applied is determined based on a block vector parameter of the luma block, and a prediction process is performed on the chroma component according to the IBC extension mode based on the target block vector parameter to determine a chroma prediction value of the current block. In this way, the problem of the unification of chroma prediction is solved, the IBC mode is implicitly added to the chroma prediction, and related information of the co-located luma block is fully utilized, thereby improving the accuracy of chroma prediction, saving the code rate, improving the encoding and decoding efficiency, and improving the encoding and decoding performance.
[0467] In another embodiment of the present invention, Fig. 23 is a structural diagram illustrating the configuration of an encoding and decoding system according to an embodiment of the present invention. As shown in Fig. 23, the encoding and decoding system 230 may include an encoder 2301 and a decoder 2302.
[0468] In an embodiment of the present invention, the encoder 2301 may be the encoder according to any of the previously described embodiments, and the decoder 2302 may be the decoder according to any of the previously described embodiments.
[0469] It should be noted that, in the present invention, the terms "comprises," "having," or any other variation thereof, are intended to imply a non-exclusive inclusion, such that a process, method, article, or apparatus that includes a set of elements is intended to include not only those elements but also other elements not expressly listed or elements inherent in the process, method, article, or apparatus. Absent further limitations, an element qualified by the words "comprises" does not exclude the presence of further identical elements in a process, method, article, or apparatus that includes that element.
[0470] In the above-described embodiments of the present invention, the numbers are used for the purpose of explanation and do not indicate the superiority or inferiority of the embodiments.
[0471] The methods disclosed in the several method embodiments provided by the present invention can be arbitrarily combined as long as they do not conflict with each other to obtain new method embodiments.
[0472] The configurations disclosed in the various product embodiments provided by the present invention can be arbitrarily combined as long as they do not conflict with each other, thereby obtaining new product embodiments.
[0473] The features disclosed in the various method or apparatus embodiments provided by the present invention can be combined in any manner that does not conflict, resulting in new method or apparatus embodiments.
[0474] The above-described contents are merely specific embodiments of the present invention, and the scope of protection of the present invention is not limited thereto. Any modifications or replacements that can be easily conceived by a person skilled in the art within the technical scope disclosed in the present invention should be included in the scope of protection of the present invention. Therefore, the scope of protection of the present invention should be governed by the scope of protection set forth in the claims. [Industrial Applicability]
[0475] In an embodiment of the present invention, the encoding side determines a first color component block of the current block when the prediction mode of the second color component of the current block is a target prediction mode; determines a first block vector parameter of the first color component block when the prediction mode of the first color component block is an IBC mode; determines a target block vector parameter of the second color component of the current block based on the first block vector parameter of the first color component block; and performs an IBC extension mode prediction process on the second color component of the current block based on the target block vector parameter to determine a predicted value of the second color component of the current block. On the decoding side, the value of the first syntax element identification information is determined, and if the first syntax element identification information indicates that the second color component of the current block allows the use of IBC extension mode, the value of the second syntax element identification information is determined by decoded bitstream; if the second syntax element identification information indicates that the second color component of the current block uses a target prediction mode, the first color component block of the current block is determined; if the prediction mode of the first color component block is IBC mode, the first block vector parameters of the first color component block are determined, the target block vector parameters of the second color component of the current block are determined based on the first block vector parameters of the first color component block, and the IBC extension mode prediction process is performed on the second color component of the current block based on the target block vector parameters to determine the predicted value of the second color component of the current block. Therefore, in the process of determining a chroma prediction mode based on a luma prediction mode, if the luma block corresponding to the current block is in IBC mode, the embodiment of the present invention determines target block vector parameters to which chroma components are applied based on the block vector parameters of the luma block, and performs prediction processing on the chroma components according to the IBC extension mode based on the target block vector parameters to determine the chroma prediction value of the current block.In this way, the problem of singleness of chroma prediction is resolved, the IBC mode is implicitly added to chroma prediction, and the related information of the co-located luma block is fully utilized, which can improve the accuracy of chroma prediction, save the code rate, improve the efficiency of encoding and decoding, and improve the performance of encoding and decoding.
Claims
1. 1. A method for determining a prediction mode, comprising: determining a first color component block of the current block; If the prediction mode of the first color component block is an IBC mode, determining a first block vector parameter of the first color component block; determining a target block vector parameter of a second color component of the current block based on a first block vector parameter of the first color component block; performing an IBC extension mode prediction process on a second color component of the current block based on the target block vector parameters to determine a predicted value of the second color component of the current block; A method characterized by:
2. The above-mentioned determining the first color component block of the current block includes: determining a first color component region at the same position of the current block; and identifying a first color component block of the current block from among a plurality of blocks into which the first color component region is divided.
2. The method of claim 1 .
3. The step of identifying the first color component block of the current block from among the plurality of blocks into which the first color component region is divided includes: selecting a target block from among a plurality of blocks into which the first color component region is divided, and setting the target block as the first color component block of the current block; 3. The method of claim 2.
4. The method comprises: selecting a block located at a center position in the first color component region as the target block; Or, selecting a block located at an upper left position in the first color component region as the target block; Or, selecting a block at a lower right position in the first color component region as the target block.
4. The method of claim 3.
5. The step of identifying the first color component block of the current block from among the plurality of blocks into which the first color component region is divided includes: determining at least one candidate block located at a predetermined position from among a plurality of blocks into which the first color component region is divided; and performing a mode determination on the at least one candidate block in a predetermined order, and if the determined first candidate block uses the IBC mode, setting the first candidate block as the first color component block of the current block.
3. The method of claim 2.
6. The step of identifying the first color component block of the current block from among the plurality of blocks into which the first color component region is divided includes: determining at least one candidate block located at a predetermined position from among a plurality of blocks into which the first color component region is divided, and determining the at least one candidate block as a first color component block of the current block; Correspondingly, when the prediction mode of the first color component block is an IBC mode, determining the first block vector parameters of the first color component block may include: identifying at least one target block using IBC mode from the at least one candidate block and determining first block vector parameters for each of the at least one target block; performing an average value calculation based on the first block vector parameters of each of the at least one target block, and determining the calculation result as the first block vector parameters of the first color component block.
3. The method of claim 2.
7. When the prediction mode of the first color component block is an IBC mode, determining the first block vector parameters of the first color component block includes: identifying at least one target block from the at least one candidate block using IBC mode; and performing a search on the at least one target block by a template matching method to determine an optimal block vector parameter, and determining the optimal block vector parameter as a first block vector parameter of the first color component block.
7. The method of claim 6.
8. determining the target block vector parameters of the current block based on the first block vector parameters of the first color component block, adjusting a first block vector parameter of the first color component block to determine a target block vector parameter of the current block; 2. The method of claim 1 .
9. The step of adjusting the first block vector parameters of the first color component block to determine the target block vector parameters of the current block includes: determining a color sampling format of the current block; performing a scaling process on the first block vector parameters of the first color component block based on the color sampling format to determine the target block vector parameters of the current block.
9. The method of claim 8.
10. The step of adjusting the first block vector parameters of the first color component block to determine the target block vector parameters of the current block includes: obtaining initial block vector parameters of the current block after performing a scaling process on first block vector parameters of the first color component block according to the color sampling format; performing a modification process on the initial block vector parameters of the current block to determine the target block vector parameters of the current block.
10. The method of claim 9.
11. The method comprises: and further comprising: directly determining a target block vector parameter of the current block based on an initial block vector parameter of the current block.
11. The method of claim 10.
12. The method comprises: After determining the target block vector parameters of the current block, determining whether the target block vector parameters satisfy an availability condition; If the target block vector parameters satisfy an availability condition, performing an IBC extension mode prediction process on a second color component of the current block based on the target block vector parameters to determine a predicted value of the second color component of the current block.
2. The method of claim 1 .
13. The target block vector parameters satisfy the availability condition at least by: the offset position indicated by the target block vector parameter does not exceed an image boundary; the offset position indicated by the target block vector parameter does not cover the current block; The offset position indicated by the target block vector parameter does not exceed the usable range of the IBC mode; and the offset position indicated by the target block vector parameter has been reconstructed.
13. The method of claim 12.
14. The method comprises: If the determined initial candidate block uses IBC mode, determining a first block vector parameter of the initial candidate block; determining whether a first block vector parameter of the initial candidate block satisfies an availability condition; If a first block vector parameter of the first candidate block satisfies an availability condition, the first candidate block is set as a first color component block of the current block; If the first block vector parameter of the initial candidate block does not satisfy the availability condition, continue to perform mode determination of the next candidate block using the IBC mode and until a target candidate block whose corresponding first block vector parameter satisfies the availability condition is identified, and the target candidate block is set as the first color component block of the current block.
6. The method of claim 5.
15. The method comprises: If there is no target candidate block among the at least one candidate block that uses an IBC mode and whose corresponding first block vector parameter satisfies an availability condition, performing intra prediction on a second color component of the current block based on a first predetermined mode to determine a predicted value of the second color component of the current block; Here, the first predetermined mode includes at least one of a planar mode, a direct current mode, a direct current mode, a constant current mode (CCLM) mode, and a skip mode.
15. The method of claim 14.
16. The above-mentioned, performing an IBC extension mode prediction process on the second color component of the current block based on the target block vector parameters to determine a predicted value of the second color component of the current block, determining an offset position of the current block according to the target block vector parameters and the position information of the current block; performing a block copy process based on an offset position of the current block to obtain a first predicted block; determining a predicted value of a second color component of the current block based on the first predicted block.
2. The method of claim 1 .
17. determining a predicted value of a second color component of the current block based on the first predicted block, performing a correction operation on the first predicted block to determine a predicted value of a second color component of the current block; 17. The method of claim 16.
18. determining a predicted value of a second color component of the current block based on the first predicted block, performing an intra prediction process on a second color component of the current block based on a second predetermined mode to obtain a second predicted block; performing a weighted fusion process on the first predicted block and the second predicted block to determine a predicted value of a second color component of the current block; Here, the second predetermined mode includes at least one of a planar mode, a direct current mode, a direct current mode, and a constant current mode.
17. The method of claim 16.
19. 1. A decoding method comprising: determining a value of a first syntax element identification; If the first syntax element identification information indicates that the second color component of the current block allows use of the IBC extension mode, decoding the bitstream to determine a value of the second syntax element identification information; and when the second syntax element identification information indicates that a second color component of the current block uses a target prediction mode, performing an intra prediction process on the second color component of the current block based on the target prediction mode to determine a predicted value of the second color component of the current block. A decoding method comprising:
20. The target prediction mode is a prediction mode determined by a method according to any one of claims 1 to 18.
20. The decoding method of claim 19.
21. The above-mentioned, performing intra prediction processing on the second color component of the current block based on the target prediction mode to determine the second color component block of the current block, determining a first color component block of the current block; If the prediction mode of the first color component block is an IBC mode, determining a first block vector parameter of the first color component block, and determining a target block vector parameter of a second color component of the current block according to the first block vector parameter of the first color component block; performing an IBC extension mode prediction process on a second color component of the current block based on the target block vector parameters to determine a predicted value of the second color component of the current block; 20. The decoding method of claim 19.
22. The above-mentioned, performing intra prediction processing on the second color component of the current block based on the target prediction mode to determine the second color component block of the current block, Decoding the bitstream to determine target block vector parameters of the current block; performing an IBC extension mode prediction process on a second color component of the current block based on the target block vector parameters to determine a predicted value of the second color component of the current block; 20. The decoding method of claim 19.
23. The step of determining the value of the first syntax element identification information includes: decoding the bitstream to determine a value of a third syntax element identification information; If the value of the third syntax element identification information is a first value and the current block satisfies a predetermined condition, determining that the value of the first syntax element identification information is a first value; If the value of the third syntax element identification information is a second value, determining that the value of the first syntax element identification information is a second value.
20. The decoding method of claim 19.
24. The current block satisfies the predetermined condition at least when: The slice type to which the current block belongs is an I-frame; and a size parameter of the current block satisfies a predetermined upper limit value.
24. The decoding method of claim 23.
25. The method comprises: If the value of the third syntax element identification information is a first value, determining that the third syntax element identification information indicates that the current image allows the use of IBC mode; If the value of the third syntax element identification information is a second value, determining that the third syntax element identification information indicates that the current image does not allow the use of an IBC mode; Here, the current image includes the current block.
24. The decoding method of claim 23.
26. The decoding method comprises: If the value of the first syntax element identification information is a first value, determining that the first syntax element identification information indicates that the second color component of the current block allows use of the IBC extension mode; If the value of the first syntax element identification information is a second value, determining that the first syntax element identification information indicates that the second color component of the current block does not allow use of the IBC extended mode.
20. The decoding method of claim 19.
27. The decoding method comprises: When the value of the second syntax element identification information is a first value, determining that the second syntax element identification information indicates that a second color component of the current block uses a target prediction mode; If the value of the second syntax element identification information is a second value, determining that the second syntax element identification information indicates that a second color component of the current block does not use a target prediction mode.
20. The decoding method of claim 19.
28. The method comprises: If the value of the second syntax element identification information is a second value, decoding the bitstream to determine the value of a fourth syntax element identification information; determining a first intra prediction mode of a second color component of the current block based on a value of the fourth syntax element identification information; performing intra prediction processing on a second color component of the current block based on the first intra prediction mode to determine a predicted value of the second color component of the current block.
28. The decoding method of claim 27.
29. The decoding method comprises: If the first syntax element identification information indicates that the second color component of the current block allows use of the IBC extension mode, decoding the bitstream to determine a value of a fifth syntax element identification information; determining a second intra prediction mode for the second color component of the current block based on the value of the fifth syntax element identification information; and performing an intra prediction process on the second color component of the current block based on the second intra prediction mode to determine a predicted value of the second color component of the current block. When the first syntax element identification information indicates that the second color component of the current block does not allow use of the IBC extension mode, the method further includes: decoding the bitstream to determine a value of a sixth syntax element identification information; determining a third intra prediction mode for the second color component of the current block based on the value of the sixth syntax element identification information; and performing an intra prediction process on the second color component of the current block based on the third intra prediction mode to determine a predicted value of the second color component of the current block; wherein the second intra prediction mode includes the target prediction mode and the third intra prediction mode does not include the target prediction mode.
20. The decoding method of claim 19.
30. The step of decoding the bitstream to determine the value of the fifth syntax element identification information includes: decoding the bitstream to obtain at least one character corresponding to the fifth syntax element identification information; performing a mapping process on at least one character corresponding to the fifth syntax element identification information using a first predetermined binarization mapping table to determine the value of the fifth syntax element identification information; The step of decoding the bitstream to determine the value of the sixth syntax element identification information includes: decoding the bitstream to obtain at least one character corresponding to the sixth syntax element identification; and performing a mapping process on at least one character corresponding to the sixth syntax element identification information using a second predetermined binarization mapping table to determine the value of the sixth syntax element identification information.
30. The method of claim 29.
31. The step of decoding the bitstream to determine the value of the second syntax element identification information includes: If the first syntax element identification information indicates that the second color component of the current block allows the use of the IBC extension mode, decoding the bitstream to obtain at least one character corresponding to the second syntax element identification information, and performing a mapping process on the at least one character corresponding to the second syntax element identification information using a first predetermined binarization mapping table to determine a value of the second syntax element identification information; If the first syntax element identification information indicates that the second color component of the current block does not allow the use of the IBC extension mode, decoding the bitstream to obtain at least one character of the second syntax element identification information; and performing a mapping process on the at least one character corresponding to the second syntax element identification information using a second predetermined binarization mapping table to determine a value of the second syntax element identification information.
20. The decoding method of claim 19.
32. The step of decoding the bitstream to determine the value of the second syntax element identification information includes: If the value of the second syntax element identification information satisfies a first predetermined constant value, determine that the second syntax element identification information indicates that the second color component of the current block does not use a target prediction mode, determine a fourth intra prediction mode for the second color component of the current block, and then perform an intra prediction process on the second color component of the current block based on the fourth intra prediction mode to determine a predicted value of the second color component of the current block; If a value of the second syntax element identification information satisfies a second predetermined constant value, determining that the second syntax element identification information indicates that a second color component of the current block uses a target prediction mode, and performing an intra prediction process on the second color component of the current block based on the target prediction mode to determine a predicted value of the second color component of the current block.
20. The decoding method of claim 19.
33. 1. An encoding method comprising: If the prediction mode of the second color component of the current block is the target prediction mode, determining the first color component block of the current block; If the prediction mode of the first color component block is an IBC mode, determining a first block vector parameter of the first color component block; determining a target block vector parameter of a second color component of the current block based on a first block vector parameter of the first color component block; performing an IBC extension mode prediction process on a second color component of the current block based on the target block vector parameters to determine a predicted value of the second color component of the current block; 10. A coding method comprising:
34. The target prediction mode is a prediction mode determined by a method according to any one of claims 1 to 18.
34. The encoding method of claim 33.
35. The above-mentioned determining the first color component block of the current block includes: determining a first color component region at the same position of the current block; and identifying a first color component block of the current block from among a plurality of blocks into which the first color component region is divided.
34. The encoding method of claim 33.
36. The step of identifying the first color component block of the current block from among the plurality of blocks into which the first color component region is divided includes: identifying a target block from among a plurality of blocks into which the first color component region is divided, and setting the target block as the first color component block of the current block; 36. The encoding method of claim 35.
37. The method comprises: Selecting a block at a central position in the first color component region as the target block, or Or, Selecting a block at the upper left position in the first color component region as the target block, or Or, and selecting a block located at a lower right position in the first color component region as the target block.
37. The encoding method of claim 36.
38. The step of identifying the first color component block of the current block from among the plurality of blocks into which the first color component region is divided includes: Identifying at least one candidate block located at a predetermined position from among a plurality of blocks into which the first color component region is divided; and sequentially obtaining the at least one candidate block according to a predetermined order to perform mode determination, and if the determined first candidate block uses the IBC mode, determining the first candidate block as the first color component block of the current block.
36. The encoding method of claim 35.
39. The step of identifying the first color component block of the current block from among the plurality of blocks into which the first color component region is divided includes: identifying at least one candidate block located at a predetermined position from among a plurality of blocks into which the first color component region is divided, and determining the at least one candidate block as a first color component block of the current block; Correspondingly, when the prediction mode of the first color component block is an IBC mode, determining the first block vector parameters of the first color component block may include: identifying at least one target block using IBC mode from the at least one candidate block and determining first block vector parameters for each of the at least one target block; calculating an average value of the first block vector parameters of each of the at least one target block, and setting the calculated average value as the first block vector parameter of the first color component block.
36. The encoding method of claim 35.
40. The method comprises: identifying at least one target block from the at least one candidate block using IBC mode; and performing a search on the at least one target block based on a template matching method to determine an optimal block vector parameter, and setting the optimal block vector parameter as a first block vector parameter of the first color component block.
40. The encoding method of claim 39.
41. determining the target block vector parameters of the current block based on the first block vector parameters of the first color component block, adjusting a first block vector parameter of the first color component block to determine a target block vector parameter of the current block; 34. The encoding method of claim 33.
42. The step of adjusting the first block vector parameters of the first color component block to determine the target block vector parameters of the current block includes: determining a color sampling format of the current block; performing a scaling process on the first block vector parameters of the first color component block based on the color sampling format to determine the target block vector parameters of the current block.
42. The encoding method of claim 41.
43. The step of adjusting the first block vector parameters of the first color component block to determine the target block vector parameters of the current block includes: obtaining initial block vector parameters of the current block after performing a scaling process on first block vector parameters of the first color component block according to the color sampling format; performing a modification process on the initial block vector parameters of the current block to determine the target block vector parameters of the current block.
43. The encoding method of claim 42.
44. The method comprises: and further comprising directly determining the target block vector parameters of the current block based on the initial block vector parameters of the current block.
44. The encoding method of claim 43.
45. The above-mentioned modifying process is performed on the initial block vector parameters of the current block to determine the target block vector parameters of the current block, determining a search area for the current block according to the initial block vector parameters of the current block and the position information of the current block; searching within the search area based on a template matching method to determine an optimal block vector parameter, and setting the optimal block vector as a target block vector parameter of the current block.
44. The encoding method of claim 43.
46. The method comprises: After determining the target block vector parameters of the current block, determining whether the target block vector parameters satisfy a condition for availability; If the target block vector parameters satisfy an availability condition, performing an IBC extension mode prediction process on a second color component of the current block based on the target block vector parameters to determine a predicted value of the second color component of the current block.
34. The encoding method of claim 33.
47. The target block vector parameters satisfy the availability condition at least by: the offset position indicated by the target block vector parameter does not exceed an image boundary; and the offset position indicated by the target block vector parameter does not cover the current block; and The offset position indicated by the target block vector parameter does not exceed the usable range of the IBC mode. the offset position indicated by the target block vector parameter has been reconstructed.
47. The encoding method of claim 46.
48. The method comprises: If the determined initial candidate block uses IBC mode, determining a first block vector parameter of the initial candidate block; determining whether a first block vector parameter availability condition of the initial candidate block is satisfied; If a first block vector parameter of the first candidate block satisfies an availability condition, the first candidate block is set as a first color component block of the current block; If the first block vector parameter of the initial candidate block does not satisfy the availability condition, the mode determination of the next candidate block is continued until a target candidate block using the IBC mode and whose corresponding first block vector parameter satisfies the availability condition is determined, and the target candidate block is set as the first color component block of the current block.
39. The encoding method of claim 38.
49. The method comprises: If there is no target candidate block among the at least one candidate block that uses an IBC mode and whose corresponding first block vector parameter satisfies an availability condition, performing intra prediction on a second color component of the current block based on a first predetermined mode to determine a predicted value of the second color component of the current block; Here, the first predetermined mode includes at least one of a planar mode, a direct current mode, a direct current mode, a constant current mode (CCLM) mode, and a skip mode.
49. The encoding method of claim 48.
50. The above-mentioned, performing an IBC extension mode prediction process on the second color component of the current block based on the target block vector parameters to determine a predicted value of the second color component of the current block, determining an offset position of the current block according to the target block vector parameters and the position information of the current block; performing a block copy process based on an offset position of the current block to obtain a first predicted block; determining a predicted value of a second color component of the current block based on the first predicted block.
34. The encoding method of claim 33.
51. determining a predicted value of a second color component of the current block based on the first predicted block, performing a correction operation on the first predicted block to determine a predicted value of a second color component of the current block; 51. The encoding method of claim 50.
52. determining a predicted value of a second color component of the current block based on the first predicted block, performing an intra prediction process on a second color component of the current block based on a second predetermined mode to obtain a second predicted block; performing a weighted fusion process on the first predicted block and the second predicted block to determine a predicted value of a second color component of the current block; Here, the second predetermined mode includes at least one of a planar mode, a direct current mode, a direct current mode, and a constant current mode.
51. The encoding method of claim 50.
53. The method comprises: determining a value of a first syntax element identification; encoding the value of the first syntax element identification information and writing the resulting encoded bits into a bitstream.
34. The encoding method of claim 33.
54. The step of determining the value of the first syntax element identification information includes: If the first syntax element identification information indicates that the second color component of the current block allows use of the IBC extension mode, determining that the value of the first syntax element identification information is a first value; and determining that a value of the first syntax element identification information is a second value if the first syntax element identification information indicates that the second color component of the current block does not allow use of the IBC extension mode.
54. The encoding method of claim 53.
55. The method comprises: If the first syntax element identification information indicates that the second color component of the current block allows use of the IBC extension mode, determining a value of a second syntax element identification information; encoding the value of the second syntax element identification information and writing the resulting encoded bits into a bitstream.
54. The encoding method of claim 53.
56. The aforementioned determining the value of the second syntax element identification information includes: If the second syntax element identification information indicates that a second color component of the current block uses a target prediction mode, determining that the value of the second syntax element identification information is a first value; If the second syntax element identification information indicates that a second color component of the current block does not use a target prediction mode, determining that the value of the second syntax element identification information is a second value.
56. The encoding method of claim 55.
57. The method comprises: determining a value of a third syntax element identification; encoding the value of the third syntax element identification information and writing the resulting encoded bits into a bitstream.
54. The encoding method of claim 53.
58. The step of determining the value of the first syntax element identification information includes: If the value of the third syntax element identification information is a first value and the current block satisfies a predetermined condition, determining that the value of the first syntax element identification information is a first value; If the value of the third syntax element identification information is a second value, determining that the value of the first syntax element identification information is a second value.
58. The encoding method of claim 57.
59. The current block satisfies the predetermined condition at least when: The slice type to which the current block belongs is an I-frame; and a size parameter of the current block satisfies a predetermined upper limit value.
59. The encoding method of claim 58.
60. The above-mentioned determining the value of the third syntax element identification information includes: If the third syntax element identification information indicates that the current image allows the use of IBC mode, determining that the value of the third syntax element identification information is a first value; If the third syntax element identification information indicates that the current image does not allow the use of IBC mode, determining that the value of the third syntax element identification information is a second value.
58. The encoding method of claim 57.
61. The method comprises: If the second syntax element identification information indicates that the second color component of the current block does not use a target prediction mode, determining a first intra prediction mode for the second color component of the current block; performing intra prediction processing on a second color component of the current block based on the first intra prediction mode to determine a predicted value of the second color component of the current block.
56. The encoding method of claim 55.
62. The method comprises: determining a value of a fourth syntax element identification information based on a first intra prediction mode of a second color component of the current block; encoding the value of the fourth syntax element identification information and writing the resulting encoded bits into a bitstream.
62. The encoding method of claim 61.
63. The method comprises: If the first syntax element identification information indicates that the second color component of the current block allows use of the IBC extension mode, determining a second intra prediction mode for the second color component of the current block, and performing an intra prediction process on the second color component of the current block based on the second intra prediction mode to determine a predicted value of the second color component of the current block; If the first syntax element identification information indicates that the second color component of the current block does not allow use of the IBC extension mode, determining a third intra prediction mode for the second color component of the current block, and performing an intra prediction process on the second color component of the current block based on the third intra prediction mode to determine a predicted value of the second color component of the current block; wherein the second intra prediction mode includes the target prediction mode and the third intra prediction mode does not include the target prediction mode.
54. The encoding method of claim 53.
64. The method comprises: determining a value of a fifth syntax element identification information based on a second intra prediction mode of a second color component of the current block; performing a binarization process on the value of the fifth syntax element identification information by using a first predetermined binarization mapping table to determine at least one character corresponding to the fifth syntax element identification information; encoding at least one character corresponding to the fifth syntax element identification information and writing the resulting encoded bits into a bitstream.
64. The encoding method of claim 63.
65. The method comprises: determining a value of a sixth syntax element identification information based on a third intra prediction mode of a second color component of the current block; performing a binarization process on the value of the sixth syntax element identification information by using a second predetermined binarization mapping table to determine at least one character corresponding to the sixth syntax element identification information; encoding at least one character corresponding to the sixth syntax element identification information and writing the resulting encoded bits into a bitstream.
64. The encoding method of claim 63.
66. The method comprises: If the first syntax element identification information indicates that the second color component of the current block allows use of the IBC extension mode, performing a binarization process on the value of the second syntax element identification information using a first predetermined binarization mapping table to determine at least one character corresponding to the second syntax element identification information; encoding the at least one character corresponding to the second syntax element identification information; and writing the obtained encoded bits into a bitstream; or and if the first syntax element identification information indicates that the second color component of the current block does not allow use of the IBC extension mode, performing a binarization process on the value of the second syntax element identification information using a second predetermined binarization mapping table to determine at least one character corresponding to the second syntax element identification information; encoding the at least one character corresponding to the second syntax element identification information; and writing the obtained encoded bits into a bitstream.
54. The encoding method of claim 53.
67. A bitstream comprising: the bitstream is generated by bit coding based on encoding target information; Here, the encoding target information is The syntax element identifier includes at least one of a target block vector parameter of the current block, a value of the first syntax element identifier, a value of the second syntax element identifier, a value of the third syntax element identifier, a value of the fourth syntax element identifier, a value of the fifth syntax element identifier, and a value of the sixth syntax element identifier. A bitstream characterized in that
68. 1. An encoder comprising: a first determination unit and a first prediction unit; the first determination unit is configured to determine a first color component block of the current block when a prediction mode of a second color component of the current block is a target prediction mode; determine first block vector parameters of the first color component block when a prediction mode of the first color component block is an IBC mode; and determine target block vector parameters of the second color component of the current block based on the first block vector parameters of the first color component block; The first prediction unit is configured to perform an IBC extension mode prediction process on a second color component of the current block based on the target block vector parameters to determine a predicted value of the second color component of the current block. An encoder characterized by:
69. An encoder comprising: a first memory and a first processor; the first memory is configured to store a computer program executable on the first processor; The first processor is configured to perform the method of any one of claims 33 to 66 when executing the computer program. An encoder characterized by:
70. a decoder comprising a second determination unit and a second prediction unit; the second determining unit is configured to determine a first color component block of a current block; determine first block vector parameters of the first color component block when a prediction mode of the first color component block is an IBC mode; and determine target block vector parameters of a second color component of the current block based on the first block vector parameters of the first color component block; The second prediction unit is configured to perform an IBC extension mode prediction process on a second color component of the current block based on the target block vector parameters to determine a predicted value of the second color component of the current block. A decoder characterized by:
71. a decoder comprising a decoding unit, a second determination unit and a second prediction unit; the second determining unit is configured to determine a value of a first syntax element identification information; the decoding unit is configured to decode a bitstream to determine a value of a second syntax element identification when the first syntax element identification indicates that a second color component of a current block allows use of an IBC extension mode; The second prediction unit is configured, when the second syntax element identification information indicates that the second color component of the current block uses a target prediction mode, to perform an intra prediction process on the second color component of the current block based on the target prediction mode to determine a predicted value of the second color component of the current block. A decoder characterized by:
72. a decoder, the decoder comprising a second memory and a second processor; the second memory is configured to store a computer program executable on the second processor; The second processor is configured to perform the method of any one of claims 1 to 18 or the method of any one of claims 19 to 32 when executing the computer program. A decoder characterized by:
73. 1. A computer-readable storage medium, comprising: The computer-readable storage medium stores a computer program, which, when executed, implements the method according to any one of claims 1 to 18, the method according to any one of claims 19 to 32, or the method according to any one of claims 33 to 66. A computer-readable storage medium comprising:
Citation Information
Patent Citations
Method and apparatus for video coding
US20200120353A1