Encoding method, decoding method, encoder, decoder, and storage medium
Patent Information
- Application Number
- PCT/CN2025/089054
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-04-15
- Publication Date
- 2026-10-22
Smart Images

Figure CN2025089054_22102026_PF_FP_ABST
Abstract
Description
Encoding / decoding methods, encoders, decoders, and storage media Technical Field
[0001] This application relates to the field of video encoding and decoding technology, and in particular to an encoding and decoding method, encoder, decoder, and storage medium. Background Technology
[0002] In video coding standards, chroma prediction modes can include traditional chroma prediction modes and cross-component prediction (CCP) modes. For CCP modes, the prediction mode can be obtained from a CCP merge list.
[0003] In related technologies, the construction process of the inter-component prediction (Inter CCP) merging list is not comprehensive. For example, when adding temporal candidates and temporal offset candidates, their corresponding positions are selected from only one co-position image. This limits the diversity of candidates in the merging list and reduces the encoding and decoding performance. Summary of the Invention
[0004] This application provides an encoding / decoding method, encoder, decoder, and storage medium, which can improve encoding / decoding performance.
[0005] The technical solution of this application embodiment can be implemented as follows:
[0006] In a first aspect, embodiments of this application provide a decoding method applied to a decoder, the method comprising:
[0007] Based on at least one co-positional image of the current block, determine prediction model information between one or more candidate components; wherein, at least one co-positional image includes the first reference image in the reference image list that has the smallest playback order distance from the current image where the current block is located;
[0008] Based on the prediction model information between one or more candidate components, determine the first inter-component prediction merging list for the current block;
[0009] The inter-component prediction model information of the current block is determined based on the first inter-component prediction merging list, and inter-component prediction is performed on the current block based on the inter-component prediction model information.
[0010] Secondly, embodiments of this application provide an encoding method applied to an encoder, the method comprising:
[0011] Based on at least one co-positional image of the current block, determine prediction model information between one or more candidate components; wherein, at least one co-positional image includes the first reference image in the reference image list that has the smallest playback order distance from the current image where the current block is located;
[0012] Based on the prediction model information between one or more candidate components, determine the first inter-component prediction merging list for the current block;
[0013] The inter-component prediction model information of the current block is determined based on the first inter-component prediction merging list, and inter-component prediction is performed on the current block based on the inter-component prediction model information.
[0014] Thirdly, embodiments of this application provide a decoding method applied to a decoder, the method comprising:
[0015] Parse the indices of two co-located images in the bitstream;
[0016] Determine the two corresponding images of the current block based on the two corresponding image indices;
[0017] Based on two co-located images, determine the prediction model information between one or more candidate components;
[0018] Based on the prediction model information between one or more candidate components, determine the second component prediction merging list for the current block;
[0019] The inter-component prediction model information of the current block is determined based on the second inter-component prediction merging list, and inter-component prediction is performed on the current block based on the inter-component prediction model information.
[0020] Fourthly, embodiments of this application provide an encoding method applied to an encoder, the method comprising:
[0021] Identify the two corresponding images of the current block;
[0022] Based on two co-located images, determine the prediction model information between one or more candidate components;
[0023] Based on the prediction model information between one or more candidate components, determine the second component prediction merging list for the current block;
[0024] The inter-component prediction model information of the current block is determined based on the second inter-component prediction merging list, and inter-component prediction is performed on the current block based on the inter-component prediction model information.
[0025] Fifthly, embodiments of this application provide an encoder, which includes a first determining unit and a first predicting unit, wherein:
[0026] The first determining unit is configured to determine one or more candidate component prediction model information based on at least one co-position image of the current block; wherein the at least one co-position image includes a first reference image in the reference image list that has the smallest playback order distance from the current image where the current block is located; and to determine a first component prediction merging list of the current block based on one or more candidate component prediction model information.
[0027] The first prediction unit is configured to determine the inter-component prediction model information of the current block based on the first inter-component prediction merging list, and to perform inter-component prediction on the current block based on the inter-component prediction model information.
[0028] Sixthly, embodiments of this application provide an encoder, which includes a first determining unit and a first predicting unit, wherein:
[0029] The first determining unit is configured to determine two co-position images of the current block; determine one or more inter-candidate component prediction model information based on the two co-position images; and determine a second inter-component prediction merging list of the current block based on one or more inter-candidate component prediction model information.
[0030] The first prediction unit is configured to determine the inter-component prediction model information of the current block based on the second inter-component prediction merging list, and to perform inter-component prediction on the current block based on the inter-component prediction model information.
[0031] In a seventh aspect, embodiments of this application provide an encoder, which includes a first memory and a first processor; wherein,
[0032] A first memory for storing computer programs that can run on a first processor;
[0033] A first processor is configured to execute the encoding method as described in the second or fourth aspect when running a computer program.
[0034] Eighthly, embodiments of this application provide a decoder, which includes a second determining unit and a second predicting unit, wherein:
[0035] The second determining unit is configured to determine one or more candidate component prediction model information based on at least one co-position image of the current block; wherein the at least one co-position image includes a first reference image in the reference image list that has the smallest playback order distance from the current image where the current block is located; and to determine a first component prediction merging list of the current block based on one or more candidate component prediction model information.
[0036] The second prediction unit is configured to determine the inter-component prediction model information of the current block based on the first inter-component prediction merging list, and to perform inter-component prediction on the current block based on the inter-component prediction model information.
[0037] Ninthly, embodiments of this application provide a decoder, which includes a decoding unit, a second determining unit, and a second predicting unit, wherein:
[0038] The decoding unit is configured to parse two co-position image indices in the bitstream;
[0039] The second determining unit is configured to determine two co-located images of the current block based on the two co-located image indices; determine one or more candidate component prediction model information based on the two co-located images; and determine a second component prediction merging list of the current block based on one or more candidate component prediction model information.
[0040] The second prediction unit is configured to determine the inter-component prediction model information of the current block based on the second inter-component prediction merging list, and to perform inter-component prediction on the current block based on the inter-component prediction model information.
[0041] In a tenth aspect, embodiments of this application provide a decoder, which includes a second memory and a second processor; wherein,
[0042] The second memory is used to store computer programs that can run on the second processor;
[0043] The second processor is used to execute the decoding method as described in the first or third aspect when running a computer program.
[0044] Eleventhly, embodiments of this application provide a computer-readable storage medium having a computer program stored thereon. When the computer program is executed by a processor, it implements the decoding method as described in the first aspect, or the encoding method as described in the second aspect, or the decoding method as described in the third aspect, or the encoding method as described in the fourth aspect.
[0045] In a twelfth aspect, embodiments of this application provide a computer-readable storage medium storing a bitstream that is generated by performing the steps of the encoding method as described in the second aspect, or by performing the steps of the encoding method as described in the fourth aspect.
[0046] In a thirteenth aspect, embodiments of this application provide a computer program product, including a computer program or instructions, which, when executed by a processor, implement the decoding method as described in the first aspect, or the encoding method as described in the second aspect, or the decoding method as described in the third aspect, or the encoding method as described in the fourth aspect.
[0047] This application provides an encoding / decoding method, encoder, decoder, and storage medium. At the decoding end, based on at least one co-positioned image of the current block, one or more candidate inter-component prediction model information are determined. The at least one co-positioned image includes a first reference image in a reference image list with the smallest playback order distance to the current image containing the current block. Based on the one or more candidate inter-component prediction model information, a first inter-component prediction merging list for the current block is determined. Based on the first inter-component prediction merging list, inter-component prediction model information for the current block is determined, and inter-component prediction is performed on the current block based on the inter-component prediction model information. Alternatively, two co-positioned image indices in the bitstream are parsed; based on the two co-positioned image indices, two co-positioned images of the current block are determined; based on the two co-positioned images, one or more candidate inter-component prediction model information is determined; based on the one or more candidate inter-component prediction model information, a second inter-component prediction merging list for the current block is determined; based on the second inter-component prediction merging list, inter-component prediction model information for the current block is determined, and inter-component prediction is performed on the current block based on the inter-component prediction model information. In other words, when constructing the inter-component prediction merging list, the candidate model information (especially temporal candidates and temporal offset candidates) is no longer selected from just one co-position image. Instead, it can be selected by combining other co-position images. For example, it can be the two reference images in the reference image list with the smallest playback order distance from the current image, or the two co-position images obtained from the indices of two co-position images in the bitstream. This increases the diversity of candidate model information such as temporal candidates and temporal offset candidates, making the construction of the inter-component prediction merging list more comprehensive, improving the accuracy of inter-component prediction, and thus improving encoding and decoding performance. Attached Figure Description
[0048] Figure 1 is a schematic diagram of the decoding process of the inter-frame CCCM method;
[0049] Figure 2 is a schematic diagram of the position and filling order of the temporal candidates;
[0050] Figure 3 is a schematic diagram of the position and filling order of the time-domain offset candidates;
[0051] Figure 4 is a schematic diagram of the selection order of adjacent motion vectors;
[0052] Figure 5 is a schematic diagram of a video encoding and decoding network architecture provided in an embodiment of this application;
[0053] Figure 6 is a schematic block diagram of an encoder provided in an embodiment of this application;
[0054] Figure 7 is a schematic block diagram of a decoder provided in an embodiment of this application;
[0055] Figure 8 is a schematic flowchart of a decoding method provided in an embodiment of this application;
[0056] Figure 9 is a flowchart illustrating an encoding method provided in an embodiment of this application;
[0057] Figure 10 is a schematic flowchart of a decoding method provided in an embodiment of this application;
[0058] Figure 11 is a schematic flowchart of an encoding method provided in an embodiment of this application;
[0059] Figure 12 is a schematic diagram of the composition structure of an encoder provided in an embodiment of this application;
[0060] Figure 13 is a schematic diagram of the hardware structure of an encoder provided in an embodiment of this application;
[0061] Figure 14 is a schematic diagram of the composition structure of a decoder provided in an embodiment of this application;
[0062] Figure 15 is a schematic diagram of the hardware structure of a decoder provided in an embodiment of this application;
[0063] Figure 16 is a schematic diagram of the composition structure of an encoding / decoding system provided in an embodiment of this application. Detailed Implementation
[0064] In order to gain a more detailed understanding of the features and technical content of the embodiments of this application, the implementation of the embodiments of this application will be described in detail below with reference to the accompanying drawings. The accompanying drawings are for reference and illustration only and are not intended to limit the embodiments of this application.
[0065] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. The terminology used herein is for the purpose of describing embodiments of this application only and is not intended to limit this application.
[0066] In the following description, references are made to “some embodiments,” which describe a subset of all possible embodiments. However, it is understood that “some embodiments” may be the same subset or different subsets of all possible embodiments and may be combined with each other without conflict.
[0067] It should also be noted that the terms "first, second, and third" used in the embodiments of this application are only used to distinguish similar objects and do not represent a specific order of objects. It is understood that "first, second, and third" can be interchanged in a specific order or sequence where permitted, so that the embodiments of this application described herein can be implemented in an order other than that illustrated or described herein.
[0068] Before providing a further detailed description of the embodiments of this application, the nouns and terms used in the embodiments of this application will be explained. The nouns and terms used in the embodiments of this application shall be interpreted as follows:
[0069] H.266 / Versatile Video Coding (VVC);
[0070] Joint Video Experts Team (JVET);
[0071] Coding Unit (CU);
[0072] Coding Tree Unit (CTU);
[0073] Largest Coding Unit (LCU);
[0074] Prediction Unit (PU);
[0075] Transform Unit (TU);
[0076] Merge;
[0077] Block Vector (BV);
[0078] Motion Vector (MV);
[0079] Mean-square error (MSE);
[0080] Sum of Absolute Difference (SAD);
[0081] Sum of Absolute Transformed Difference (SATD)
[0082] Sequence Parameter Set (SPS);
[0083] Cross-component prediction (CCP);
[0084] Cross-component Linear Model (CCLM);
[0085] Multi-model CCLM (MMLM);
[0086] Convolutional Cross-Component Model (CCCM);
[0087] Gradient Linear Model (GLM);
[0088] Picture Order Count (POC).
[0089] It is understandable that common video codec standards employ a block-based hybrid coding framework. For example, each image, sub-image, or frame in a video is divided into square maximum coding units (MCUs) or coding tree units of the same size (e.g., 256×256, 128×128, 64×64, etc.). Each MCU or coding tree unit can be further divided into rectangular coding units according to rules. Coding units may also be divided into prediction units, transform units, etc. The hybrid coding framework includes modules such as prediction, transform, quantization, entropy coding, inv.quantization, inv.transform, and in-loop filtering. The prediction module can include intra-prediction and inter-prediction, with inter-prediction including motion estimation and motion compensation. Because there is a strong correlation between adjacent samples in an image within a video, intra-frame prediction is used in video encoding and decoding techniques to eliminate spatial redundancy between adjacent samples. Conversely, because there is a strong similarity between adjacent images in a video, inter-image prediction is used in video encoding and decoding techniques to eliminate temporal redundancy between adjacent images, thereby improving coding efficiency.
[0090] The basic workflow of a video codec is as follows: At the encoding end, an image is divided into blocks. Intra-frame prediction or inter-frame prediction is used on the current block to generate a prediction block. The original block of the current block is subtracted from the prediction block to obtain a residual block. The residual block is transformed and quantized to obtain a quantization coefficient matrix. The quantization coefficient matrix is entropy-encoded and output to the bitstream. At the decoding end, intra-frame prediction or inter-frame prediction is used on the current block to generate a prediction block. On the other hand, the bitstream is parsed to obtain the quantization coefficient matrix. The quantization coefficient matrix is inverse-quantized and inverse-transformed to obtain a residual block. The prediction block and the residual block are added to obtain a reconstructed block. The reconstructed blocks form a reconstructed image. Loop filtering is performed on the reconstructed image based on the image or based on the blocks to obtain a decoded image. The encoding end also needs similar operations to the decoding end to obtain the decoded image. The decoded image can be used as a reference image for subsequent images in inter-frame prediction. The block division information, prediction, transform, quantization, entropy coding, loop filtering, and other mode information or parameter information determined at the encoding end need to be output to the bitstream if necessary. The decoding end determines the same block partitioning information, prediction, transform, quantization, entropy coding, loop filtering, and other mode or parameter information as the encoding end by parsing and analyzing existing information, thereby ensuring that the decoded image obtained by the encoding end is the same as that obtained by the decoding end. The decoded image obtained by the encoding end is usually also called the reconstructed image. During prediction, the current block can be divided into prediction units, and during transform, the current block can be divided into transform units. The division of prediction units and transform units can be different. The above is the basic flow of a video codec under a block-based hybrid coding framework. With the development of technology, some modules or steps of this framework or flow may be optimized. The embodiments of this application are applicable to the basic flow of a video codec under this block-based hybrid coding framework, but are not limited to this framework and flow.
[0091] In the embodiments of this application, the current block (CB) can be the current coding unit, the current prediction unit, or the current transform unit, etc. Due to the need for parallel processing, an image can be divided into slices, etc. Slices within the same image can be processed in parallel, meaning there is no data dependency between them. A "frame" is a commonly used term, generally understood as an image. In this document, "frame" can also be replaced with "image" or "slice," etc. Furthermore, the "sample" mentioned herein can also be called a pixel, and a sample includes both location information and value.
[0092] The CCP model in related technologies will be briefly introduced below.
[0093] (1) Intra CCP merge in intra slice.
[0094] Chroma prediction modes can include traditional chroma prediction modes (i.e., non-CCP modes) and CCP modes. Traditional chroma prediction modes are similar to VVC, including DM mode (which directly uses the intra-frame mode corresponding to the brightness, which is simple and straightforward but has poor accuracy in complex scenes) and 4 default modes (planar, vertical, horizontal, and DC modes). These traditional chroma prediction modes are more suitable for general scenes.
[0095] This includes the following cross-component prediction modes (i.e., CCP modes), which can use luminance information to obtain the predicted values of the chrominance components. The main CCP modes include the following and their variants:
[0096] ①CCLM mode: also known as cross-component linear model mode, including CCLM_LT, CCLM_L, CCLM_T, MMLM_LT, MMLM_L and MMLM_T modes, etc. It establishes a linear model between luminance and chrominance and uses luminance reconstruction samples to determine the chrominance prediction value.
[0097] ②CCCM mode: also known as the convolutional cross-component model mode, the basic idea is similar to the CCLM mode. It uses a 7-tap convolutional filter to calculate the predicted value of the chromaticity sample and calculates the filter coefficients by minimizing the MSE between the predicted and reconstructed chromaticity samples in the reference region.
[0098] ③GLM mode: also known as gradient linear model, it is a cross-component prediction mode that uses the gradient relationship between luminance and chrominance for prediction.
[0099] In addition to using the above modes and their variants for on-the-spot derivation, cross-component prediction models can also inherit filter coefficients from adjacent blocks, non-adjacent blocks, or temporally co-located blocks of the current block. This includes CCP models for spatially adjacent and spatially non-adjacent coded blocks encoded with CCLM, MMLM, CCCM, GLM, etc., i.e., CCP merge mode. During chroma coding, a flag is emitted in the bitstream to indicate whether CCP mode is used. If CCP mode is used to obtain chroma prediction values, a further flag is used to identify whether the CCP mode is obtained from the CCP merge list or through on-the-spot calculation.
[0100] The CCP merge list can consist of spatially adjacent, temporally non-adjacent, historically based CCP model buffers, or temporally offset (also known as "temporally shifted") candidates. After including these candidates, a default model (or "predefined model") is added to fill any remaining slots in the merge list. When constructing the CCP merge list, duplicate candidates are not added repeatedly. After the merge list is built, the CCP models in the list can be reordered according to the SATD cost, which is obtained using the adjacent templates of the current block.
[0101] If CCP mode is selected, a flag will be issued to indicate how to derive CCP types and parameters, such as from a CCP merge list or by issuing a signal / derive immediately.
[0102] In one possible implementation, the parsing of syntax elements at the decoding end is shown in Table 1.
[0103] Table 1
[0104] (2) Inter-component prediction (CCP) merge mode.
[0105] The Inter CCP model includes CCLM, MMLM, CCCM, GLM, chroma fusion, CCP merge mode, and inter CCCM, which are stored and inherited for the following encoded chroma intra and inter CCCM blocks. Similar to CCP merge for chroma intra blocks, a flag is emitted to indicate whether this mode is used to encode the chroma block. A CU-level flag is emitted when the root coded block filter (CBF) is 0; otherwise, a TU-level flag is emitted. If CCP merge mode is used, the CCP merge list is constructed similarly to that for chroma intra blocks, except that it includes additional temporal offset candidates and dynamically derived candidates. The additional temporal offset candidates are derived from co-located images without one-CTU line buffer constraints. These candidates are positioned in the same way as the regular inter merge prediction candidates, with their offsets obtained from the motion vector of the current block. Dynamically derived candidates are used only for low-latency frames and are obtained using neighboring reconstructed samples of the current block. At most one dynamic derivation candidate (including single / multi-model CCCM and single / multi-model CCLM) is added to the CCP merging list. After constructing the CCP merging list, the candidate with the lowest template cost is selected for the chroma inter block. The chroma block is then predicted in the same manner as the inter CCCM. That is, motion-compensated prediction samples are mixed with cross-component prediction samples to form the final prediction value.
[0106] For example, Figure 1 is a schematic diagram of the decoding process of the inter-frame CCCM method. As shown in Figure 1, for the luma component (Y), the luma prediction value (predY) and the luma residual value (resY) are added to obtain the luma reconstruction value to realize the reconstruction of the Y component. For the first chroma component (Cb), the filter coefficients between the Y component and the Cb component can be derived from the luma prediction value (predY) and the first chroma prediction value (predCb). The Cb compensation prediction value can be determined based on the luma reconstruction value and the filter coefficients between the Y component and the Cb component. The two are then weighted and fused to obtain the final Cb chroma prediction value, which is then added to the Cb chroma residual value (resCb) to realize the reconstruction of the Cb component. Similarly, for the second chromaticity component (Cr), the filter coefficients between the Y component and the Cr component can be derived from the luminance prediction value (predY) and the second chromaticity prediction value (predCr). The Cr compensation prediction value can be determined based on the luminance reconstruction value and the filter coefficients between the Y component and the Cr component. The two are then weighted and fused to obtain the final Cr chromaticity prediction value. Finally, it is added to the Cr chromaticity residual value (resCr) to reconstruct the Cr component.
[0107] In one possible implementation, Tables 2 and 3 summarize the candidate filling orders for intra-block (i.e., Intra CCP merge in inter-slice) and inter-block (i.e., Inter CCP merge for inter-block in inter-slice) when constructing the CCP merge list, respectively. Table 2 provides an example of the candidate filling order for the intra-block CCP merge list, and Table 3 provides an example of the candidate filling order for the inter-block CCP merge list.
[0108] Table 2
[0109] Table 3
[0110] More details are as follows:
[0111] 1) Spatial adjacent and non-adjacent candidates.
[0112] The positions and inclusion order of spatially adjacent and non-adjacent candidates are the same as those defined for regular merge prediction candidates.
[0113] 2) Time and its time-domain offset candidates.
[0114] To improve the coding efficiency of CCP merging mode, the merging list for non-intra frames includes two types of candidates: temporal candidates and temporal offset candidates. Temporal candidates are added to the merging list after spatially adjacent candidates. Temporal offset candidates are added to the list after historically based candidates.
[0115] a) Temporal candidate:
[0116] Temporal candidates can be selected from co-located images. Figure 2 shows a schematic diagram of the position and filling order of temporal candidates. As shown in Figure 2, this is the same as the temporal candidates in inter-merge mode. Specifically, based on the co-located image index in the bitstream, the frame corresponding to that co-located image index in the reference frame list is selected as the co-located frame (i.e., "co-located image").
[0117] For example, taking Figure 2 as an example, the inclusion order of the time-domain candidates can be C01→C02→…→C0 10 If C0i is outside the image / slice boundary while C1i is inside the image / slice boundary, then C1i will be used instead of C0i, where 1≤i≤10. Otherwise, the next containing position will be selected.
[0118] b) Temporal offset candidates:
[0119] The shifted temporal candidates (or simply "temporal offset candidates") are also selected from the co-position image. As shown in Figure 3, the position of the co-position block can be shifted based on the selected adjacent motion vectors. That is, the positions of C0i and C1i are shifted based on the selected same adjacent motion vectors. The inclusion order of the shifted temporal candidates is the same as that of the temporal candidates.
[0120] Additionally, the offset motion vector can be selected from the motion vectors of adjacent blocks, as shown in Figure 4. The checking order is as follows: L0 B1 →L1 B1 →L0 A1 →L1 A1 →L0 B0 →L1 B0 →L0 A0 →L1 A0 →L0 B2 →L1 B2 The first motion vector that uses a co-located image as a reference image can be selected as the offset motion vector. If no such motion vector is found, no temporal offset candidate will be added.
[0121] 3) Candidates based on historical records.
[0122] Maintaining a history-based table can contain recently used CCP models, and this table is reset at the beginning of each CTU row. If the current list is not full after including spatially adjacent and non-adjacent candidates, CCP models from the history-based table can be added to the list.
[0123] 4) Default candidate / predefined candidate.
[0124] CCLM candidates with default scaling parameters are considered only if the list is incomplete after including spatially adjacent, spatially non-adjacent, or historically based candidates. If there are no candidates with a single CCLM model in the current list, the default scaling parameters are {0, 1 / 8, -1 / 8, 2 / 8, -2 / 8, 3 / 8, -3 / 8, 4 / 8, -4 / 8, 5 / 8, -5 / 8, 6 / 8}. Otherwise, the default scaling parameters are {0, the scaling parameter of the first CCLM candidate + {1 / 8, -1 / 8, 2 / 8, -2 / 8, 3 / 8, -3 / 8, 4 / 8, -4 / 8, 5 / 8, -5 / 8, 6 / 8}.
[0125] It should be noted that both the encoding and decoding ends need to build the same Inter CCP candidate list.
[0126] In simple terms, in inter-CCP merge mode, temporal and shift candidates are added to the inter-CCP merge list, but both temporal and shift candidates are selected from only one co-location image (e.g., a co-location image determined based on the co-location image index and reference frame list in the bitstream). This setting has shortcomings, such as limiting the diversity of temporal and shift candidates; moreover, for temporal shift candidates, when the motion vectors of adjacent blocks do not use co-location images as reference images, no temporal shift candidate is added to the CCP merge list.
[0127] Based on this, embodiments of this application provide an encoding / decoding method. At the encoding end, based on at least one co-positioned image of the current block, one or more candidate inter-component prediction model information are determined; wherein, the at least one co-positioned image includes a first reference image in a reference image list with the smallest playback order distance to the current image containing the current block; based on the one or more candidate inter-component prediction model information, a first inter-component prediction merging list for the current block is determined; based on the first inter-component prediction merging list, inter-component prediction model information for the current block is determined, and inter-component prediction is performed on the current block based on the inter-component prediction model information. At the decoding end, based on at least one co-positioned image of the current block, one or more candidate inter-component prediction model information are determined; wherein, the at least one co-positioned image includes a first reference image in a reference image list with the smallest playback order distance to the current image containing the current block; based on one or more candidate inter-component prediction model information, a first inter-component prediction merging list for the current block is determined; based on the first inter-component prediction merging list, inter-component prediction model information for the current block is determined, and inter-component prediction is performed on the current block based on the inter-component prediction model information. Alternatively, embodiments of this application also provide an encoding / decoding method. At the encoding end, two co-occurring images of the current block are determined; based on the two co-occurring images, one or more candidate inter-component prediction model information is determined; based on the one or more candidate inter-component prediction model information, a second inter-component prediction merging list for the current block is determined; based on the second inter-component prediction merging list, the inter-component prediction model information for the current block is determined, and inter-component prediction is performed on the current block based on the inter-component prediction model information. At the decoding end, the indices of two co-occurring images in the bitstream are parsed; based on the two co-occurring image indices, two co-occurring images of the current block are determined; based on the two co-occurring images, one or more candidate inter-component prediction model information is determined; based on the one or more candidate inter-component prediction model information, a second inter-component prediction merging list for the current block is determined; based on the second inter-component prediction merging list, the inter-component prediction model information for the current block is determined, and inter-component prediction is performed on the current block based on the inter-component prediction model information.
[0128] In this way, when constructing the inter-component prediction merging list, the candidate model information (especially temporal candidates and temporal offset candidates) is no longer selected from just one co-position image, but can be selected in combination with other co-position images. For example, it can be the reference image with the smallest playback order distance from the current image in the reference image list, or two co-position images obtained based on the indices of two co-position images in the bitstream. This increases the diversity of candidate model information such as temporal candidates and temporal offset candidates, making the construction of the inter-component prediction merging list more comprehensive, improving the accuracy of inter-component prediction, and thus improving encoding and decoding performance.
[0129] The embodiments of this application will now be described in detail with reference to the accompanying drawings.
[0130] Figure 5 is a schematic diagram of a video encoding and decoding network architecture provided in an embodiment of this application. As shown in Figure 5, the network architecture includes one or more electronic devices 13 to 1N and a communication network 01, wherein the electronic devices 13 to 1N can perform video interaction through the communication network 01. During implementation, the electronic devices can be various types of devices with video encoding and decoding capabilities. For example, the electronic devices may include mobile phones, tablet computers, personal computers, personal digital assistants, navigators, digital phones, video phones, televisions, sensing devices, servers, etc., and this embodiment of the application does not impose any limitations.
[0131] This application provides a network architecture for a video encoding / decoding system that includes decoding and encoding methods. The decoder or encoder in this application can be the aforementioned electronic device. That is, the electronic device in this application has video encoding / decoding capabilities and generally includes a video / image encoder (referred to as an encoder) and a video / image decoder (referred to as a decoder).
[0132] Figure 6 is a schematic block diagram of an encoder provided in an embodiment of this application. As shown in Figure 6, the encoder 100 may include a transform and quantization unit 101, an intra-frame estimation unit 102, an intra-frame prediction unit 103, a motion compensation unit 104, a motion estimation unit 105, an inverse transform and inverse quantization unit 106, a filter control and analysis unit 107, a filtering unit 108, an encoding unit 109, and a decoded image buffer unit 110, etc. Among them, the filtering unit 108 can implement deblocking filtering and sample adaptive offset (SAO) filtering, and the encoding unit 109 can implement header information encoding and context-based adaptive binary arithmetic coding (CABAC).For the input raw video signal, a video coding block can be obtained by partitioning it through a Coding Tree Unit (CTU). Then, the residual sample information obtained after intra-frame or inter-frame prediction is transformed by the transform and quantization unit 101, including transforming the residual information from the sample domain to the transform domain and quantizing the resulting transform coefficients to further reduce the bit rate. The intra-frame estimation unit 102 and the intra-frame prediction unit 103 are used to perform intra-frame prediction on the video coding block. Specifically, the intra-frame estimation unit 102 and the intra-frame prediction unit 103 are used to determine the intra-frame prediction mode to be used to encode the video coding block. The motion compensation unit 104 and the motion estimation unit 105 are used to perform inter-frame prediction coding of the received video coding block relative to one or more blocks in one or more reference frames to provide time prediction information. The motion estimation performed by the motion estimation unit 105 is a process of generating motion vectors, which can estimate the motion of the video coding block. Then, the motion compensation unit 104 is used to perform the motion estimation based on the motion vectors determined by the motion estimation unit 105. The motion compensation is performed. After determining the intra-prediction mode, the intra-prediction unit 103 is also used to provide the selected intra-prediction data to the coding unit 109, and the motion estimation unit 105 also sends the calculated motion vector data to the coding unit 109. In addition, the inverse transform and inverse quantization unit 106 is used to reconstruct the video coding block, reconstruct the residual block in the sample domain, and remove the block artifacts by the filter control analysis unit 107 and the filtering unit 108. Then, the reconstructed residual block is added to a predictive block in the frame of the decoding image buffer unit 110 to generate the reconstructed video coding block. The coding unit 109 is used to encode various coding parameters and quantized transform coefficients. In the CABAC-based coding algorithm, the context content can be based on adjacent coding blocks and can be used to encode information indicating the determined intra-prediction mode and output the bitstream of the video signal. The decoding image buffer unit 110 is used to store the reconstructed video coding block for prediction reference. As video image encoding proceeds, new reconstructed video encoding blocks are continuously generated, and these reconstructed video encoding blocks are stored in the decoding image buffer unit 110.
[0133] Figure 7 is a schematic block diagram of a decoder provided in an embodiment of this application. As shown in Figure 7, the decoder 200 includes a decoding unit 201, an inverse transform and inverse quantization unit 202, an intra-frame prediction unit 203, a motion compensation unit 204, a filtering unit 205, and a decoded image buffer unit 206, etc. The decoding unit 201 can perform header information decoding and CABAC decoding, and the filtering unit 205 can perform deblocking filtering and SAO filtering. After the input video signal undergoes the encoding processing shown in Figure 6, the bitstream of the video signal is output. This bitstream is input into the decoder 200, first passing through the decoding unit 201 to obtain the decoded transform coefficients. The transform coefficients are then processed by the inverse transform and inverse quantization unit 202 to generate residual blocks in the sample domain. The intra-frame prediction unit 203 can be used to generate prediction data for the current video decoding block based on the determined intra-frame prediction mode and data from previously decoded blocks in the current frame or image. The motion compensation unit 204 determines the prediction information for the video decoding block by analyzing motion vectors and other associated syntax elements, and uses... The prediction information is used to generate a predictive block of the video block being decoded; the decoded video block is formed by summing 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 passed through the filtering unit 205 to remove block artifacts, which can improve video quality; then the decoded video block is stored in the decoding image buffer unit 206, which stores reference images for subsequent intra-prediction or motion compensation, and is also used for the output of the video signal, thus obtaining the recovered original video signal.
[0134] It should be noted that the method in this application mainly affects the intra-frame prediction and inter-frame prediction parts in the video coding hybrid framework. Furthermore, the method in this application can be applied to the encoder, the decoder, or even both simultaneously; no limitation is made here.
[0135] It should also be noted that when the embodiments of this application are applied to the encoder 100, the "current block" can refer to the block to be encoded in the video image (also known as the "encoded block"); when the embodiments of this application are applied to the decoder 200, the "current block" can refer to the block to be decoded in the video image (also known as the "decoded block").
[0136] In one embodiment of this application, Figure 8 is a schematic flowchart of a decoding method provided in this application. As shown in Figure 8, the method may include:
[0137] S801, based on at least one co-position image of the current block, determine prediction model information between one or more candidate components.
[0138] It should be noted that in this embodiment, the method is applied to the decoder. Based on the composition structure of the decoder 200 shown in Figure 7, the decoding method of this embodiment can be applied to the prediction part, specifically, it can be a temporal candidate extension of the inter-component prediction merging mode, making the candidates in the inter-frame CCP merging list more comprehensive, thereby improving the accuracy of CCP prediction.
[0139] It should also be noted that, in this embodiment, some instruction information in the form of syntax elements or flags can be written into the bitstream. In this way, by parsing the values of the syntax elements in the bitstream, the relevant decoding information of the current block can be determined, such as whether the current block uses CCP merging mode.
[0140] In some embodiments, a first syntax element in the bitstream is parsed; wherein the first syntax element is used to indicate whether the current block is decoded using CCP merging mode. In this embodiment, the first syntax element can be represented by ccpMergeFlag. If the value of the first syntax element is a first value, then the current block is decoded using CCP merging mode; if the value of the first syntax element is a second value, then the current block is not decoded using CCP merging mode. For example, the first value can be set to 1, and the second value can be set to 0; or, the first value can be set to true, and the second value can be set to false.
[0141] In the embodiments of this application, when the current block is decoded using the CCP merging mode, at least one co-image of the current block can be determined; then, prediction model information between one or more candidate components is determined based on this at least one co-image.
[0142] In one possible implementation, at least one co-positional image may include a first reference image from the reference image list that has the smallest playback order distance from the current image containing the current block. In other words, the first reference image may be the reference image from the reference image list that has the smallest playback order distance from the current image.
[0143] In this implementation, at least one corresponding image may include a first corresponding image, and the first corresponding image is determined based on a first reference image. That is, the first corresponding image may be the reference image in the reference image list that has the smallest playback order distance from the current image.
[0144] In another possible implementation, at least one co-positional image may further include a second reference image from the reference image list that has the second smallest playback order distance from the current image containing the current block. In other words, the second reference image may be the reference image from the reference image list, other than the first reference image, that has the smallest playback order distance from the current image.
[0145] In this implementation, at least one corresponding image can include a first corresponding image and a second corresponding image, wherein the first corresponding image is determined based on a first reference image, and the second corresponding image is determined based on a second reference image. That is, the first corresponding image can be the reference image in the reference image list that has the smallest playback order distance from the current image, and the second corresponding image can be the reference image in the reference image list that has the second smallest playback order distance from the current image containing the current block.
[0146] In this embodiment, the reference image list may include: a first reference image list (e.g., List0), and / or a second reference image list (e.g., List1). Here, the first and second co-position images can both be the two reference images in the first reference image list with the smallest playback order distance from the current image; or they can both be the two reference images in the second reference image list with the smallest playback order distance from the current image; or one can be the reference image in the first reference image list with the smallest playback order distance from the current image, and the other can be the reference image in the second reference image list with the smallest playback order distance from the current image; in this case, it can be determined by combining the reference image list indication information in the bitstream. Therefore, the method may further include: parsing the reference image list indication information in the bitstream; and determining the reference image list based on the reference image list indication information.
[0147] In this embodiment of the application, after obtaining at least one co-position image of the current block (e.g., a first co-position image, a second co-position image, etc.), one or more candidate component prediction model information can be determined based on these at least one co-position image. The candidate component prediction model information may include: temporal candidate component prediction model information, and / or temporal offset candidate component prediction model information.
[0148] In one possible implementation, if the at least one co-position image includes only the first co-position image, then one or more first candidate component prediction model information can be determined based on the first co-position image; then one or more candidate component prediction model information can be determined based on the one or more first candidate component prediction model information.
[0149] In another possible implementation, if the at least one co-position image includes a first co-position image and a second co-position image, then one or more first candidate component prediction model information can be determined based on the first co-position image; one or more second candidate component prediction model information can be determined based on the second co-position image; and one or more candidate component prediction model information can be determined based on one or more first candidate component prediction model information and one or more second candidate component prediction model information.
[0150] It should be noted that, in the embodiments of this application, at least one co-position image can be determined based on at least one co-position image index in the bitstream, so that the prediction model information between temporal candidate components and the prediction model information between temporal offset candidate components are no longer selected from only one co-position image, but can also be obtained from other co-position images, thereby expanding the diversity of temporal candidates and temporal offset candidates.
[0151] The following description uses the example of determining the prediction model information between one or more first candidate components based on the first isotopic image.
[0152] Understandably, in the embodiments of this application, for determining one or more temporal candidate component prediction model information, in some embodiments, determining one or more first candidate component prediction model information based on a first co-located image may include: determining at least one first-type preset position and at least one second-type preset position in the first co-located image; sequentially checking at least one first-type preset position and at least one second-type preset position in a first order to determine one or more first temporal candidate component prediction model information; and determining one or more first candidate component prediction model information based on one or more first temporal candidate component prediction model information.
[0153] In this embodiment, the first type of preset position can be position C0 as shown in Figure 2, for example, located at the lower right position of the current block; the second type of preset position can be position C1 as shown in Figure 2, for example, located at the lower left position of the current block. Furthermore, in this embodiment, the number of the first type of preset positions can be one or more, for example, 10, as shown in Figure 2: C01, C02, C03, ..., C0 10 The second type of preset positions can be one or more, for example, 10, as shown in Figure 2: C11, C12, C13, ..., C1 10 .
[0154] In some embodiments, checking at least one first-type preset position and at least one second-type preset position in a first order to determine one or more first temporal candidate component prediction model information may include: when the i-th position among at least one first-type preset position is within the boundary of the first co-located image, determining a first temporal candidate component prediction model information based on the i-th position among at least one first-type preset position; when the i-th position among at least one first-type preset position is outside the boundary of the first co-located image and the i-th position among at least one second-type preset position is within the boundary of the first co-located image, determining a first temporal candidate component prediction model information based on the i-th position among at least one second-type preset position; wherein i is an integer greater than 0.
[0155] In the embodiments of this application, "the i-th position among at least one first-class preset position" can be simply referred to as the i-th first-class preset position, and "the i-th position among at least one second-class preset position" can be simply referred to as the i-th second-class preset position. That is, when the i-th first-class preset position is within the boundary of the first co-located image, a first temporal candidate component prediction model information is determined based on the i-th first-class preset position; when the i-th first-class preset position is outside the boundary of the first co-located image and the i-th second-class preset position is within the boundary of the first co-located image, a first temporal candidate component prediction model information is determined based on the i-th second-class preset position.
[0156] For example, taking Figure 2 as an example, the first sequence can be: C01→C02→…→C0 10 Specifically, if C0i is within the boundary of the first co-located image, then the co-located block containing position C0i can be used to determine the corresponding first temporal candidate component prediction model information; if C0i is outside the boundary of the first co-located image, but C1i is within the boundary of the first co-located image, then the co-located block containing position C1i instead of C0i will be used to determine the corresponding first temporal candidate component prediction model information; where 1≤i≤10. That is, in each group (C0i and C1i), one containing position is selected to determine the corresponding first temporal candidate component prediction model information; then the next group (e.g., C0i+1 and C1i+1) is checked, that is, the next containing position is selected, until all checks are completed, to obtain one or more first temporal candidate component prediction model information.
[0157] It can also be understood that, in some embodiments of this application, for determining one or more temporal offset candidate component prediction model information, determining one or more first candidate component prediction model information based on the first co-position image may further include: determining the first adjacent motion vector corresponding to the current block; offsetting at least one first type preset position and at least one second type preset position according to the first adjacent motion vector to determine at least one first type offset position and at least one second type offset position; sequentially checking at least one first type offset position and at least one second type offset position in a first order to determine one or more first temporal offset candidate component prediction model information; and then determining one or more first candidate component prediction model information based on one or more first temporal offset candidate component prediction model information and / or one or more first temporal offset candidate component prediction model information.
[0158] In this embodiment, not only can the prediction model information between the first temporal candidate components be selected from the first co-located image, but the prediction model information between the first temporal offset candidate components can also be selected from the first co-located image. As shown in Figure 3, the position of the co-located block can be offset according to the selected first adjacent motion vector. That is, the positions of C0i and C1i can be offset according to the selected same adjacent motion vector (i.e., the first adjacent motion vector) to obtain the first type of offset position and the second type of offset position.
[0159] In some embodiments, determining the first adjacent motion vector corresponding to the current block may include: determining at least one preset adjacent position of the current block; sequentially checking the first motion vector and the second motion vector of each of the at least one preset adjacent position in a second order; when the first selected motion vector that satisfies the same conditions as the reference image and the first co-position image is found, the first selected motion vector is taken as the first adjacent motion vector corresponding to the current block.
[0160] In this embodiment of the application, as shown in Figure 4, at least one preset adjacent position of the current block may include: A0, A1, B0, B1, B2. Each preset adjacent position is provided with two motion vectors: a first motion vector (L0 motion vector) and a second motion vector (L1 motion vector). The second order can be: L0... B1 →L1 B1 →L0 A1 →L1 A1 →L0 B0 →L1 B0 →L0 A0 →L1 A0 →L0 B2 →L1 B2The first motion vector that uses the first co-located image as a reference image is selected as the first adjacent motion vector. It is important to note that if no selected motion vector is found that satisfies the condition that the reference image and the first co-located image are identical (i.e., no first adjacent motion vector exists), then the prediction model information for one or more first temporal offset candidate components cannot be determined; that is, the corresponding temporal offset candidate CCP model information will not be added to the first component prediction merging list.
[0161] In some embodiments, checking at least one first-type offset position and at least one second-type offset position in a first order to determine one or more first temporal offset candidate component prediction model information may include: when the j-th position among at least one first-type offset position is within the boundary of the first co-position image, determining a first temporal offset candidate component prediction model information based on the j-th position among at least one first-type offset position; when the j-th position among at least one first-type offset position is outside the boundary of the first co-position image and the j-th position among at least one second-type offset position is within the boundary of the first co-position image, determining a first temporal offset candidate component prediction model information based on the j-th position among at least one second-type offset position; wherein j is an integer greater than 0.
[0162] In the embodiments of this application, "the j-th position among at least one first-type offset position" is simply referred to as the j-th first-type offset position, and "the j-th position among at least one second-type offset position" is simply referred to as the j-th second-type offset position. That is, when the j-th first-type offset position is within the boundary of the first co-located image, a first temporal offset candidate component prediction model information is determined based on the j-th first-type offset position; when the j-th first-type offset position is outside the boundary of the first co-located image, and the j-th second-type offset position is within the boundary of the first co-located image, a first temporal offset candidate component prediction model information is determined based on the j-th second-type offset position.
[0163] For example, taking Figure 3 as an example, the first sequence can be: C01→C02→…→C0 10 The corresponding offset positions can be obtained by offsetting the positions of C0j and C1j based on the selected first adjacent motion vector. Therefore, the inclusion order of the temporal offset candidates is the same as that of the temporal candidates, which is the first order. After finding the first adjacent motion vector, the prediction model information between one or more first temporal offset candidate components can be determined according to the aforementioned checking method.
[0164] In this way, prediction model information between one or more first candidate components can be determined based on the first co-position image, such as prediction model information between one or more first time-domain candidate components and / or prediction model information between one or more first time-domain offset candidate components.
[0165] It can also be understood that, in the embodiments of this application, the determination of prediction model information between one or more temporal candidate components can also be based on a second co-located image. In some embodiments, the method may further include: determining at least one third-type preset position and at least one fourth-type preset position in the second co-located image; sequentially checking at least one third-type preset position and at least one fourth-type preset position in a first order to determine one or more second temporal candidate component prediction model information; and determining one or more second candidate component prediction model information based on the one or more second temporal candidate component prediction model information.
[0166] In this embodiment, the third type of preset position can be the C0 position shown in Figure 2, for example, located at the lower right position of the current block; the fourth type of preset position can be the C1 position shown in Figure 2, for example, located at the lower left position of the current block. Furthermore, in this embodiment, the number of the third type of preset positions can be one or more, for example, 10, as shown in Figure 2: C01, C02, C03, ..., C0 10 The fourth type of preset position can have one or more, for example, 10, as shown in Figure 2: C11, C12, C13, ..., C1 10 .
[0167] In some embodiments, checking at least one third-class preset position and at least one fourth-class preset position in a first order to determine one or more second temporal candidate component prediction model information may include: when the i-th position among at least one third-class preset position is within the boundary of the second co-located image, determining a second temporal candidate component prediction model information based on the i-th position among at least one third-class preset position; when the i-th position among at least one third-class preset position is outside the boundary of the second co-located image and the i-th position among at least one fourth-class preset position is within the boundary of the second co-located image, determining a second temporal candidate component prediction model information based on the i-th position among at least one fourth-class preset position; wherein i is an integer greater than 0.
[0168] In the embodiments of this application, "the i-th position among at least one third-class preset position" is simply referred to as the i-th third-class preset position, and "the i-th position among at least one fourth-class preset position" is simply referred to as the i-th fourth-class preset position. For example, taking Figure 2 as an example, the first sequence can be: C01→C02→…→C0 10Specifically, if C0i is within the boundary of the second co-located image, then the co-located block containing position C0i can be used to determine the corresponding second temporal candidate component prediction model information; if C0i is outside the boundary of the second co-located image, but C1i is within the boundary of the second co-located image, then the co-located block containing position C1i instead of C0i will be used to determine the corresponding second temporal candidate component prediction model information; where 1≤i≤10. That is, in each group (C0i and C1i), one containing position is selected to determine the corresponding second temporal candidate component prediction model information; then the next group (e.g., C0i+1 and C1i+1) is checked, that is, the next containing position is selected, until all checks are completed, to obtain one or more second temporal candidate component prediction model information.
[0169] It can also be understood that, in some embodiments of this application, for determining one or more temporal offset candidate component prediction model information, determining one or more second candidate component prediction model information based on the second co-position image may further include: determining the second adjacent motion vector corresponding to the current block; offsetting at least one third type preset position and at least one fourth type preset position according to the second adjacent motion vector to determine at least one third type offset position and at least one fourth type offset position; sequentially checking at least one third type offset position and at least one fourth type offset position in a first order to determine one or more second temporal offset candidate component prediction model information; and determining one or more second candidate component prediction model information based on one or more second temporal offset candidate component prediction model information and / or one or more second temporal offset candidate component prediction model information.
[0170] In this embodiment, not only can the prediction model information between the second temporal candidate components be selected from the second co-located image, but the prediction model information between the second temporal offset candidate components can also be selected from the second co-located image. As shown in Figure 3, the position of the co-located block can be offset according to the selected second adjacent motion vector. That is, the positions of C0i and C1i can be offset according to the selected same adjacent motion vector (i.e., the second adjacent motion vector) to obtain the third type of offset position and the fourth type of offset position.
[0171] In some embodiments, determining the second adjacent motion vector corresponding to the current block may include: determining at least one preset adjacent position of the current block; sequentially checking the first motion vector and the second motion vector of each of the at least one preset adjacent position in a second order; when the first selected motion vector that satisfies the same conditions as the reference image and the second co-position image is found, the first selected motion vector is taken as the second adjacent motion vector corresponding to the current block.
[0172] For example, still taking Figure 4 as an example, at least one preset adjacent position of the current block may include: A0, A1, B0, B1, B2. Each preset adjacent position is provided with two motion vectors: a first motion vector (L0 motion vector) and a second motion vector (L1 motion vector). The second order can be: L0... B1 →L1 B1 →L0 A1 →L1 A1 →L0 B0 →L1 B0 →L0 A0 →L1 A0 →L0 B2 →L1 B2 In this process, the first motion vector using the second co-located image as a reference image is selected as the second adjacent motion vector. It is important to note that if no selected motion vector is found that satisfies the condition that the reference image and the second co-located image are identical (i.e., no second adjacent motion vector exists), then the prediction model information for one or more second temporal offset candidate components cannot be determined; that is, the corresponding temporal offset candidate CCP model information will not be added to the first component prediction merging list.
[0173] In some embodiments, checking at least one third-type offset position and at least one fourth-type offset position in a first order to determine one or more second temporal offset candidate component prediction model information may include: when the j-th position among at least one third-type offset position is within the boundary of the second co-position image, determining a second temporal offset candidate component prediction model information based on the j-th position among at least one third-type offset position; when the j-th position among at least one third-type offset position is outside the boundary of the second co-position image and the j-th position among at least one fourth-type offset position is within the boundary of the second co-position image, determining a second temporal offset candidate component prediction model information based on the j-th position among at least one fourth-type offset position; wherein j is an integer greater than 0.
[0174] In the embodiments of this application, "the j-th position among at least one third-type offset position" is simply referred to as the j-th third-type offset position, and "the j-th position among at least one fourth-type offset position" is simply referred to as the j-th fourth-type offset position. For example, still taking Figure 3 as an example, the first sequence can be: C01→C02→…→C0 10 The corresponding offset positions can be obtained by offsetting the positions of C0j and C1j based on the selected second adjacent motion vector. Therefore, the inclusion order of the temporal offset candidates is the same as that of the temporal candidates, which is the first order. After finding the second adjacent motion vector, the prediction model information between one or more second temporal offset candidate components can be determined according to the aforementioned checking method.
[0175] In this embodiment, the second co-located image and the first co-located image are used to determine the prediction model information between temporal candidate components and the prediction model information between temporal offset candidate components in the same way. Thus, one or more prediction model information between second candidate components can be determined based on the second co-located image, for example, one or more prediction model information between second temporal candidate components and / or one or more prediction model information between second temporal offset candidate components.
[0176] In other words, after obtaining at least one co-position image (e.g., the first co-position image and the second co-position image), the position and filling order of the temporal candidate and the position and filling order of the temporal offset candidate in each co-position image can be determined in the manner described above, so as to obtain prediction model information between one or more candidate components.
[0177] S802, determine the first inter-component prediction merging list of the current block based on the inter-component prediction model information of one or more candidate components.
[0178] In this embodiment of the application, the inter-component prediction merging list of the current block may further include at least one of the following:
[0179] Real-time calculation of the prediction model information between candidate components;
[0180] Prediction model information between candidate components of spatially adjacent blocks of the current block;
[0181] Information on the prediction model between temporal candidate components of the current block;
[0182] Prediction model information between candidate components of spatially non-adjacent blocks in the current block;
[0183] Information on the prediction model among historical candidate components of the current block;
[0184] Information on the prediction model between the temporal offset candidate components of the current block;
[0185] Predefined prediction model information between candidate components.
[0186] It should be noted that, in the embodiments of this application, in addition to including one or more candidate component prediction model information, the first inter-component prediction merging list (i.e., inter CCP merge list) of the current block may also include candidate information as shown in Table 3 of the related art, such as at least one of the following: ① candidate CCP model information obtained by real-time calculation (OnTheFlyCalcCCPCands), ② candidate CCP model information of spatially adjacent blocks of the current block (spatial adjacent), ③ candidate CCP model information of temporal offset of the current motion vector of the current block (the second type of temporal cand), ④ candidate component prediction model information of temporal cand of the current block (the first type of temporal cand), ⑤ candidate CCP model information of spatially non-adjacent blocks of the current block (spatial non-adjacent), ⑥ historical candidate CCP model information of the current block (History ccp), ⑦ candidate CCP model information of temporal offset of adjacent motion vectors of the current block (the first type of temporal cand), ⑧ predefined candidate CCP model information (Default ccp).
[0187] It should also be noted that, in the embodiments of this application, the temporal candidate component prediction model information (the first type of temporal cand) of the current block and the temporal offset candidate CCP model information (the third type of temporal cand) of the adjacent motion vectors of the current block can be obtained based on a third isotope image. The third isotope image can be a reference image determined in the reference image list based on the isotope image index in the bitstream. The third isotope image is different from at least one isotope image obtained in the aforementioned embodiments. For example, the third isotope image can be different from the first isotope image, or the third isotope image can be different from both the first and second isotope images; no limitations are imposed here.
[0188] It should also be noted that, in the embodiments of this application, the addition of these candidate information in the first inter-component prediction merging list has a certain filling order. For example, they can be added to the first inter-component prediction merging list in the order of ①→②→③→④→⑤→⑥→⑦→⑧ as described above, to initially obtain the first inter-component prediction merging list of the current block; and then one or more candidate inter-component prediction model information obtained above are added to the first inter-component prediction merging list of the current block.
[0189] Understandably, in the embodiments of this application, the prediction model information between one or more candidate components may include: one or more temporal candidate component prediction model information, and / or, one or more temporal offset candidate component prediction model information. Specifically, the temporal candidate component prediction model information may include first temporal candidate component prediction model information (obtained based on a first co-located image) and / or second temporal candidate component prediction model information (obtained based on a second co-located image); the temporal offset candidate component prediction model information may include first temporal offset candidate component prediction model information (obtained based on a first co-located image) and / or second temporal offset candidate component prediction model information (obtained based on a second co-located image).
[0190] In one possible implementation, the method may further include: when constructing the first inter-component prediction merging list, adding one or more temporal inter-component prediction model information after adding the inter-component prediction model information of the spatially adjacent blocks of the current block.
[0191] In another possible implementation, the method may further include: when constructing the first inter-component prediction merging list, adding one or more temporal offset inter-component prediction model information after adding the historical inter-component prediction model information of the current block.
[0192] It should be noted that, in this embodiment, when constructing the first inter-component prediction merging list, if the inter-component prediction model information to be added is the same as one of the candidates in the first inter-component prediction merging list, then the inter-component prediction model information to be added will not be added to the first inter-component prediction merging list; if the inter-component prediction model information to be added is different from any candidate in the first inter-component prediction merging list, then the inter-component prediction model information to be added will be added to the first inter-component prediction merging list. In other words, duplicate candidates will not be added repeatedly to the first inter-component prediction merging list.
[0193] It should also be noted that, in the embodiments of this application, the relative filling order of the time-domain candidate components and their offset candidates with other candidates can be maintained for the obtained prediction model information between time-domain candidate components (hereinafter referred to as "time-domain candidates") and prediction model information between time-domain offset candidate components (hereinafter referred to as "time-domain offset candidates"). Specifically, after repeated CCP model checks, time-domain candidates are filled after spatially adjacent candidates and before spatially non-adjacent candidates; after repeated CCP model checks, time-domain offset candidates are filled after historical candidates and before predefined candidates.
[0194] It is also understood that, in the embodiments of the present application, when adding one or more pieces of time-domain candidate inter-component prediction model information to the first inter-component prediction merge list, the one or more pieces of time-domain candidate inter-component prediction model information may include: one or more pieces of first time-domain candidate inter-component prediction model information, and / or one or more pieces of second time-domain candidate inter-component prediction model information; that is, all the obtained pieces of time-domain candidate inter-component prediction model information may be added to the first inter-component prediction merge list.
[0195] It is also understood that, in the embodiments of the present application, when adding one or more pieces of time-domain offset candidate inter-component prediction model information to the first inter-component prediction merge list, the one or more pieces of time-domain offset candidate inter-component prediction model information may include: one or more pieces of first time-domain offset candidate inter-component prediction model information, and / or one or more pieces of second time-domain offset candidate inter-component prediction model information; that is, all the obtained pieces of time-domain offset candidate inter-component prediction model information may be added to the first inter-component prediction merge list.
[0196] Considering that the maximum length of the first inter-component prediction merge list is limited, directly expanding the number of collocated pictures may cause the list to be filled in advance, so that other types of candidates, such as spatial non-adjacent candidates, history candidates and predefined candidates, are not added to the candidate list, which limits the improvement of coding performance. Several implementations are provided below to solve the problems that may be caused by directly expanding the time-domain and its offset candidates.
[0197] In a possible implementation, the maximum length of the first inter-component prediction merge list is expanded. For example, the maximum length of the list may be expanded from the original 12 to N, where N is an integer greater than 12. In this way, after the history-based CCP candidates are filled, if the number of available candidates maxCandNum < N, predefined CCP candidates may be added to the end of the list until the length of the list meets the condition that the length is N.
[0198] In another possible implementation, the obtained one or more pieces of candidate inter-component prediction model information may be sorted and then added to the first inter-component prediction merge list.
[0199] In some embodiments, the method may further include: determining a first extended candidate list for the current block, wherein the first extended candidate list includes: one or more first temporal candidate inter-component prediction model information, and / or one or more second temporal candidate inter-component prediction model information; performing template cost calculation on at least one candidate inter-component prediction model information in the first extended candidate list to determine the template cost value of each of the at least one candidate inter-component prediction model information in the first extended candidate list; sorting the at least one candidate inter-component prediction model information in the first extended candidate list in ascending order of template cost value, and determining the top m candidate inter-component prediction model information as one or more temporal candidate inter-component prediction model information for the current block; wherein m is a positive integer.
[0200] It should be noted that, in this embodiment, a first extended candidate list is constructed using the obtained temporal candidates (e.g., one or more first temporal candidates obtained based on the first co-located image and / or one or more second temporal candidates obtained based on the second co-located image). The top m temporal candidates with lower template costs for the current block are then added to the Inter CCP merge list. The relative filling position remains unchanged, still located after the spatially adjacent candidates and before the spatially non-adjacent candidates.
[0201] In some embodiments, the method may further include: determining a second extended candidate list for the current block, wherein the second extended candidate list includes: one or more first time-domain offset candidate component prediction model information, and / or one or more second time-domain offset candidate component prediction model information; performing template cost calculation on at least one candidate component prediction model information in the second extended candidate list to determine the template cost value of each of the at least one candidate component prediction model information in the second extended candidate list; sorting the at least one candidate component prediction model information in the second extended candidate list in ascending order of template cost value, and determining the top n candidate component prediction model information as one or more time-domain offset candidate component prediction model information for the current block; wherein n is a positive integer.
[0202] It should be noted that, in this embodiment, a second extended candidate list is constructed using the obtained temporal offset candidates (e.g., one or more first temporal offset candidates obtained based on the first co-located image and / or one or more second temporal offset candidates obtained based on the second co-located image). The top n temporal offset candidates with lower template costs for the current block are added to the Inter CCP merge list. The relative filling position remains unchanged, still following the historical candidates and before the predefined candidates.
[0203] In some embodiments, the method may further include: determining a third extended candidate list for the current block, wherein the third extended candidate list includes at least one of the following: one or more first temporal candidate component prediction model information, one or more second temporal candidate component prediction model information, one or more first temporal offset candidate component prediction model information, and one or more second temporal offset candidate component prediction model information; performing template cost calculation on at least one candidate component prediction model information in the third extended candidate list to determine the template cost value of each of the at least one candidate component prediction model information in the third extended candidate list; sorting the at least one candidate component prediction model information in the third extended candidate list in ascending order of template cost value, and determining the top l candidate component prediction model information as one or more candidate component prediction model information for the current block; wherein l is a positive integer.
[0204] It should be noted that, in the embodiments of this application, a third extended candidate list is constructed using these obtained temporal candidates (e.g., one or more first temporal candidates, first temporal offset candidates obtained based on the first co-located image, and / or one or more second temporal candidates, second temporal offset candidates, etc. obtained based on the second co-located image). The top n temporal candidates with lower template costs for the current block are added to the Inter CCP merge list. The relative filling position can be after spatially adjacent candidates and before spatially non-adjacent candidates, or it can be after historical candidates and before predefined candidates; no limitation is made here.
[0205] It should also be noted that the template cost calculation here can be done using SAD cost calculation, SATD cost calculation, or even other cost methods, without any restrictions.
[0206] S803, determine the inter-component prediction model information of the current block according to the first inter-component prediction merging list, and perform inter-component prediction on the current block according to the inter-component prediction model information.
[0207] In this embodiment of the application, after obtaining the first inter-component prediction merging list, the inter-component prediction model information of the current block can be determined based on the first inter-component prediction merging list. Two possible implementation methods are described below.
[0208] In one possible implementation, the second syntax element in the bitstream is parsed, and the inter-component prediction model information of the current block is determined based on the value of the second syntax element and the first inter-component prediction merging list. The second syntax element indicates the index number of the inter-component prediction model information of the current block in the first inter-component prediction merging list.
[0209] In another possible implementation, template cost calculation is performed on at least one candidate information in the first inter-component prediction merging list to determine the template cost value of each candidate information in the first inter-component prediction merging list; the candidate information corresponding to the smallest template cost value is determined as the inter-component prediction model information of the current block. Here, the template cost calculation can be performed using SAD, SATD, etc., but there are no limitations.
[0210] In some embodiments, performing inter-component prediction on the current block based on inter-component prediction model information may include: determining a first prediction sample of the second component of the current block based on the inter-component prediction model information and the reconstructed sample of the first component of the current block; and performing a weighted calculation on the first prediction sample of the second component of the current block and the second prediction sample of the second component of the current block to determine the prediction sample of the current block.
[0211] In this embodiment, the first component can be a luminance component, and the second component can be a chrominance component, such as a Cb component or a Cr component. Furthermore, the second predicted sample of the chrominance component of the current block is a chrominance prediction value obtained by the current block based on a conventional chrominance prediction model.
[0212] In this way, based on the obtained inter-component prediction model information and the luminance reconstruction sample of the current block, the first prediction sample of the chrominance component of the current block can be obtained; then, the first prediction sample of the chrominance component and the second prediction sample of the chrominance component are weighted and calculated to obtain the final prediction sample of the current block.
[0213] It is also understood that, in the embodiments of this application, the above technical solutions can be directly applied to all decoding blocks in a non-intra image, or can be selected to be applied only to inter blocks or intra blocks in a non-intra image. In addition, the above technical solutions may also use only a portion of the decoding blocks, and no limitations are made here.
[0214] This application provides a decoding method for constructing an inter-component prediction merging list. The candidate model information (especially temporal candidates and temporal offset candidates) is no longer selected from only one co-position image, but can be selected in combination with other co-position images. For example, it can be the two reference images in the reference image list with the smallest playback order distance from the current image. This increases the diversity of candidate model information such as temporal candidates and temporal offset candidates, making the construction of the inter-component prediction merging list more comprehensive, improving the accuracy of inter-component prediction, and thus improving decoding performance.
[0215] In another embodiment of this application, Figure 9 is a flowchart illustrating an encoding method provided in an embodiment of this application. As shown in Figure 9, the method may include:
[0216] S901, based on at least one co-position image of the current block, determine prediction model information between one or more candidate components.
[0217] It should be noted that in this embodiment, the method is applied to the encoder. Based on the structure of the encoder 100 shown in Figure 6, the encoding method of this embodiment can be applied to the prediction part, specifically, it can be a temporal candidate extension of the inter-component prediction merging mode, making the candidates in the inter-frame CCP merging list more comprehensive, thereby improving the accuracy of CCP prediction.
[0218] It should also be noted that, in this embodiment, some instruction information in the form of syntax elements or flags can be written into the bitstream. In this way, by writing the values of relevant syntax elements into the bitstream, the decoding end can quickly determine the relevant decoding information of the current block. For example, the first syntax element can be used to indicate whether the current block is encoded using CCP merging mode.
[0219] In some embodiments, the method may further include: determining the value of a first syntax element; encoding the value of the first syntax element; and writing the obtained encoded bits into a bitstream.
[0220] In this embodiment, the first syntax element can be represented by ccpMergeFlag. If the current block is encoded using CCP merging mode, the value of the first syntax element can be determined to be a first value; if the current block is not encoded using CCP merging mode, the value of the first syntax element can be determined to be a second value. For example, the first value can be set to 1, and the second value can be set to 0; or, the first value can be set to true, and the second value can be set to false.
[0221] Understandably, in the embodiments of this application, when the current block is encoded using the CCP merging mode, at least one co-image of the current block can be determined; then, prediction model information between one or more candidate components is determined based on this at least one co-image.
[0222] In one possible implementation, at least one co-positional image may include a first reference image from the reference image list that has the smallest playback order distance from the current image containing the current block. In other words, the first reference image may be the reference image from the reference image list that has the smallest playback order distance from the current image.
[0223] In this implementation, at least one corresponding image includes a first corresponding image, and the first corresponding image is determined based on a first reference image. That is, the first corresponding image can be the reference image in the reference image list that has the smallest playback order distance from the current image.
[0224] In another possible implementation, at least one co-positional image may further include a second reference image from the reference image list that has the second smallest playback order distance from the current image containing the current block. In other words, the second reference image may be the reference image from the reference image list, other than the first reference image, that has the smallest playback order distance from the current image.
[0225] In this implementation, at least one corresponding image can include a first corresponding image and a second corresponding image, wherein the first corresponding image is determined based on a first reference image, and the second corresponding image is determined based on a second reference image. That is, the first corresponding image can be the reference image in the reference image list that has the smallest playback order distance from the current image, and the second corresponding image can be the reference image in the reference image list that has the second smallest playback order distance from the current image containing the current block.
[0226] In this embodiment, the reference image list may include: a first reference image list (e.g., List0), and / or a second reference image list (e.g., List1). Here, the first and second co-position images may both be the two reference images in the first reference image list with the smallest playback order distance from the current image; or they may both be the two reference images in the second reference image list with the smallest playback order distance from the current image; or one may be the reference image in the first reference image list with the smallest playback order distance from the current image, and the other may be the reference image in the second reference image list with the smallest playback order distance from the current image; in this case, it can be determined by combining the reference image list indication information in the bitstream. Therefore, the method may further include: determining the reference image list indication information of the current block according to the reference image list, wherein the reference image list indication information is used to indicate the selected reference image list; encoding the reference image list indication information of the current block, and writing the obtained encoded bits into the bitstream.
[0227] In this embodiment of the application, after obtaining at least one co-position image of the current block (e.g., a first co-position image, a second co-position image, etc.), one or more candidate component prediction model information can be determined based on these at least one co-position image. The candidate component prediction model information may include: temporal candidate component prediction model information, and / or temporal offset candidate component prediction model information.
[0228] In one possible implementation, if the at least one co-position image includes only the first co-position image, then one or more first candidate component prediction model information can be determined based on the first co-position image; then one or more candidate component prediction model information can be determined based on the one or more first candidate component prediction model information.
[0229] In another possible implementation, if the at least one co-position image includes a first co-position image and a second co-position image, then one or more first candidate component prediction model information can be determined based on the first co-position image; one or more second candidate component prediction model information can be determined based on the second co-position image; and one or more candidate component prediction model information can be determined based on one or more first candidate component prediction model information and one or more second candidate component prediction model information.
[0230] It should be noted that, in the embodiments of this application, at least one co-position image can be determined based on at least one co-position image index in the bitstream, so that the prediction model information between temporal candidate components and the prediction model information between temporal offset candidate components are no longer selected from only one co-position image, but can also be obtained from other co-position images, thereby expanding the diversity of temporal candidates and temporal offset candidates.
[0231] The following description uses the example of determining the prediction model information between one or more first candidate components based on the first isotopic image.
[0232] Understandably, in the embodiments of this application, for determining one or more temporal candidate component prediction model information, in some embodiments, determining one or more first candidate component prediction model information based on a first co-located image may include: determining at least one first-type preset position and at least one second-type preset position in the first co-located image; sequentially checking at least one first-type preset position and at least one second-type preset position in a first order to determine one or more first temporal candidate component prediction model information; and determining one or more first candidate component prediction model information based on one or more first temporal candidate component prediction model information.
[0233] In this embodiment, the first type of preset position can be position C0 as shown in Figure 2, for example, located at the lower right position of the current block; the second type of preset position can be position C1 as shown in Figure 2, for example, located at the lower left position of the current block. Furthermore, in this embodiment, the number of the first type of preset positions can be one or more, for example, 10, as shown in Figure 2: C01, C02, C03, ..., C0 10 The second type of preset positions can be one or more, for example, 10, as shown in Figure 2: C11, C12, C13, ..., C1 10 .
[0234] In some embodiments, checking at least one first-type preset position and at least one second-type preset position in a first order to determine one or more first temporal candidate component prediction model information may include: when the i-th position among at least one first-type preset position is within the boundary of the first co-located image, determining a first temporal candidate component prediction model information based on the i-th position among at least one first-type preset position; when the i-th position among at least one first-type preset position is outside the boundary of the first co-located image and the i-th position among at least one second-type preset position is within the boundary of the first co-located image, determining a first temporal candidate component prediction model information based on the i-th position among at least one second-type preset position; wherein i is an integer greater than 0.
[0235] In the embodiments of this application, "the i-th position among at least one first-class preset position" can be simply referred to as the i-th first-class preset position, and "the i-th position among at least one second-class preset position" can be simply referred to as the i-th second-class preset position. That is, when the i-th first-class preset position is within the boundary of the first co-located image, a first temporal candidate component prediction model information is determined based on the i-th first-class preset position; when the i-th first-class preset position is outside the boundary of the first co-located image and the i-th second-class preset position is within the boundary of the first co-located image, a first temporal candidate component prediction model information is determined based on the i-th second-class preset position.
[0236] For example, taking Figure 2 as an example, the first sequence can be: C01→C02→…→C0 10 Specifically, if C0i is within the boundary of the first co-located image, then the co-located block containing position C0i can be used to determine the corresponding first temporal candidate component prediction model information; if C0i is outside the boundary of the first co-located image, but C1i is within the boundary of the first co-located image, then the co-located block containing position C1i instead of C0i will be used to determine the corresponding first temporal candidate component prediction model information; where 1≤i≤10. That is, in each group (C0i and C1i), one containing position is selected to determine the corresponding first temporal candidate component prediction model information; then the next group (e.g., C0i+1 and C1i+1) is checked, that is, the next containing position is selected, until all checks are completed, to obtain one or more first temporal candidate component prediction model information.
[0237] It can also be understood that, in some embodiments of this application, for determining one or more temporal offset candidate component prediction model information, determining one or more first candidate component prediction model information based on the first co-position image may further include: determining the first adjacent motion vector corresponding to the current block; offsetting at least one first type preset position and at least one second type preset position according to the first adjacent motion vector to determine at least one first type offset position and at least one second type offset position; sequentially checking at least one first type offset position and at least one second type offset position in a first order to determine one or more first temporal offset candidate component prediction model information; and then determining one or more first candidate component prediction model information based on one or more first temporal offset candidate component prediction model information and / or one or more first temporal offset candidate component prediction model information.
[0238] In this embodiment, not only can the prediction model information between the first temporal candidate components be selected from the first co-located image, but the prediction model information between the first temporal offset candidate components can also be selected from the first co-located image. As shown in Figure 3, the position of the co-located block can be offset according to the selected first adjacent motion vector. That is, the positions of C0i and C1i can be offset according to the selected same adjacent motion vector (i.e., the first adjacent motion vector) to obtain the first type of offset position and the second type of offset position.
[0239] In some embodiments, determining the first adjacent motion vector corresponding to the current block may include: determining at least one preset adjacent position of the current block; sequentially checking the first motion vector and the second motion vector of each of the at least one preset adjacent position in a second order; when the first selected motion vector that satisfies the same conditions as the reference image and the first co-position image is found, the first selected motion vector is taken as the first adjacent motion vector corresponding to the current block.
[0240] In this embodiment of the application, as shown in Figure 4, at least one preset adjacent position of the current block may include: A0, A1, B0, B1, B2. Each preset adjacent position is provided with two motion vectors: a first motion vector (L0 motion vector) and a second motion vector (L1 motion vector). The second order can be: L0... B1 →L1 B1 →L0 A1 →L1 A1 →L0 B0 →L1 B0 →L0 A0 →L1 A0 →L0 B2 →L1 B2The first motion vector that uses the first co-located image as a reference image is selected as the first adjacent motion vector. It is important to note that if no selected motion vector is found that satisfies the condition that the reference image and the first co-located image are identical (i.e., no first adjacent motion vector exists), then the prediction model information for one or more first temporal offset candidate components cannot be determined; that is, the corresponding temporal offset candidate CCP model information will not be added to the first component prediction merging list.
[0241] In some embodiments, checking at least one first-type offset position and at least one second-type offset position in a first order to determine one or more first temporal offset candidate component prediction model information may include: when the j-th position among at least one first-type offset position is within the boundary of the first co-position image, determining a first temporal offset candidate component prediction model information based on the j-th position among at least one first-type offset position; when the j-th position among at least one first-type offset position is outside the boundary of the first co-position image and the j-th position among at least one second-type offset position is within the boundary of the first co-position image, determining a first temporal offset candidate component prediction model information based on the j-th position among at least one second-type offset position; wherein j is an integer greater than 0.
[0242] In the embodiments of this application, "the j-th position among at least one first-type offset position" is simply referred to as the j-th first-type offset position, and "the j-th position among at least one second-type offset position" is simply referred to as the j-th second-type offset position. That is, when the j-th first-type offset position is within the boundary of the first co-located image, a first temporal offset candidate component prediction model information is determined based on the j-th first-type offset position; when the j-th first-type offset position is outside the boundary of the first co-located image, and the j-th second-type offset position is within the boundary of the first co-located image, a first temporal offset candidate component prediction model information is determined based on the j-th second-type offset position.
[0243] For example, taking Figure 3 as an example, the first sequence can be: C01→C02→…→C0 10 The corresponding offset positions can be obtained by offsetting the positions of C0j and C1j based on the selected first adjacent motion vector. Therefore, the inclusion order of the temporal offset candidates is the same as that of the temporal candidates, which is the first order. After finding the first adjacent motion vector, the prediction model information between one or more first temporal offset candidate components can be determined according to the aforementioned checking method.
[0244] In this way, prediction model information between one or more first candidate components can be determined based on the first co-position image, such as prediction model information between one or more first time-domain candidate components and / or prediction model information between one or more first time-domain offset candidate components.
[0245] It can also be understood that, in the embodiments of this application, the determination of prediction model information between one or more temporal candidate components can also be based on a second co-located image. In some embodiments, the method may further include: determining at least one third-type preset position and at least one fourth-type preset position in the second co-located image; sequentially checking at least one third-type preset position and at least one fourth-type preset position in a first order to determine one or more second temporal candidate component prediction model information; and determining one or more second candidate component prediction model information based on the one or more second temporal candidate component prediction model information.
[0246] In this embodiment, the third type of preset position can be the C0 position shown in Figure 2, for example, located at the lower right position of the current block; the fourth type of preset position can be the C1 position shown in Figure 2, for example, located at the lower left position of the current block. Furthermore, in this embodiment, the number of the third type of preset positions can be one or more, for example, 10, as shown in Figure 2: C01, C02, C03, ..., C0 10 The fourth type of preset position can have one or more, for example, 10, as shown in Figure 2: C11, C12, C13, ..., C1 10 .
[0247] In some embodiments, checking at least one third-class preset position and at least one fourth-class preset position in a first order to determine one or more second temporal candidate component prediction model information may include: when the i-th position among at least one third-class preset position is within the boundary of the second co-located image, determining a second temporal candidate component prediction model information based on the i-th position among at least one third-class preset position; when the i-th position among at least one third-class preset position is outside the boundary of the second co-located image and the i-th position among at least one fourth-class preset position is within the boundary of the second co-located image, determining a second temporal candidate component prediction model information based on the i-th position among at least one fourth-class preset position; wherein i is an integer greater than 0.
[0248] In the embodiments of this application, "the i-th position among at least one third-class preset position" is simply referred to as the i-th third-class preset position, and "the i-th position among at least one fourth-class preset position" is simply referred to as the i-th fourth-class preset position. For example, taking Figure 2 as an example, the first sequence can be: C01→C02→…→C0 10Specifically, if C0i is within the boundary of the second co-located image, then the co-located block containing position C0i can be used to determine the corresponding second temporal candidate component prediction model information; if C0i is outside the boundary of the second co-located image, but C1i is within the boundary of the second co-located image, then the co-located block containing position C1i instead of C0i will be used to determine the corresponding second temporal candidate component prediction model information; where 1≤i≤10. That is, in each group (C0i and C1i), one containing position is selected to determine the corresponding second temporal candidate component prediction model information; then the next group (e.g., C0i+1 and C1i+1) is checked, that is, the next containing position is selected, until all checks are completed, to obtain one or more second temporal candidate component prediction model information.
[0249] It can also be understood that, in some embodiments of this application, for determining one or more temporal offset candidate component prediction model information, determining one or more second candidate component prediction model information based on the second co-position image may further include: determining the second adjacent motion vector corresponding to the current block; offsetting at least one third type preset position and at least one fourth type preset position according to the second adjacent motion vector to determine at least one third type offset position and at least one fourth type offset position; sequentially checking at least one third type offset position and at least one fourth type offset position in a first order to determine one or more second temporal offset candidate component prediction model information; and determining one or more second candidate component prediction model information based on one or more second temporal offset candidate component prediction model information and / or one or more second temporal offset candidate component prediction model information.
[0250] In this embodiment, not only can the prediction model information between the second temporal candidate components be selected from the second co-located image, but the prediction model information between the second temporal offset candidate components can also be selected from the second co-located image. As shown in Figure 3, the position of the co-located block can be offset according to the selected second adjacent motion vector. That is, the positions of C0i and C1i can be offset according to the selected same adjacent motion vector (i.e., the second adjacent motion vector) to obtain the third type of offset position and the fourth type of offset position.
[0251] In some embodiments, determining the second adjacent motion vector corresponding to the current block may include: determining at least one preset adjacent position of the current block; sequentially checking the first motion vector and the second motion vector of each of the at least one preset adjacent position in a second order; when the first selected motion vector that satisfies the same conditions as the reference image and the second co-position image is found, the first selected motion vector is taken as the second adjacent motion vector corresponding to the current block.
[0252] For example, still taking Figure 4 as an example, at least one preset adjacent position of the current block may include: A0, A1, B0, B1, B2. Each preset adjacent position is provided with two motion vectors: a first motion vector (L0 motion vector) and a second motion vector (L1 motion vector). The second order can be: L0... B1 →L1 B1 →L0 A1 →L1 A1 →L0 B0 →L1 B0 →L0 A0 →L1 A0 →L0 B2 →L1 B2 In this process, the first motion vector using the second co-located image as a reference image is selected as the second adjacent motion vector. It is important to note that if no selected motion vector is found that satisfies the condition that the reference image and the second co-located image are identical (i.e., no second adjacent motion vector exists), then the prediction model information for one or more second temporal offset candidate components cannot be determined; that is, the corresponding temporal offset candidate CCP model information will not be added to the first component prediction merging list.
[0253] In some embodiments, checking at least one third-type offset position and at least one fourth-type offset position in a first order to determine one or more second temporal offset candidate component prediction model information may include: when the j-th position among at least one third-type offset position is within the boundary of the second co-position image, determining a second temporal offset candidate component prediction model information based on the j-th position among at least one third-type offset position; when the j-th position among at least one third-type offset position is outside the boundary of the second co-position image and the j-th position among at least one fourth-type offset position is within the boundary of the second co-position image, determining a second temporal offset candidate component prediction model information based on the j-th position among at least one fourth-type offset position; wherein j is an integer greater than 0.
[0254] In the embodiments of this application, "the j-th position among at least one third-type offset position" is simply referred to as the j-th third-type offset position, and "the j-th position among at least one fourth-type offset position" is simply referred to as the j-th fourth-type offset position. For example, still taking Figure 3 as an example, the first sequence can be: C01→C02→…→C0 10 The corresponding offset positions can be obtained by offsetting the positions of C0j and C1j based on the selected second adjacent motion vector. Therefore, the inclusion order of the temporal offset candidates is the same as that of the temporal candidates, which is the first order. After finding the second adjacent motion vector, the prediction model information between one or more second temporal offset candidate components can be determined according to the aforementioned checking method.
[0255] In this embodiment, the second co-located image and the first co-located image are used to determine the prediction model information between temporal candidate components and the prediction model information between temporal offset candidate components in the same way. Thus, one or more prediction model information between second candidate components can be determined based on the second co-located image, for example, one or more prediction model information between second temporal candidate components and / or one or more prediction model information between second temporal offset candidate components.
[0256] In other words, after obtaining at least one co-position image (e.g., the first co-position image and the second co-position image), the position and filling order of the temporal candidate and the position and filling order of the temporal offset candidate in each co-position image can be determined in the manner described above, so as to obtain prediction model information between one or more candidate components.
[0257] S902, determine the first inter-component prediction merging list of the current block based on the prediction model information between one or more candidate components.
[0258] In this embodiment of the application, the inter-component prediction merging list of the current block may further include at least one of the following:
[0259] Real-time calculation of the prediction model information between candidate components;
[0260] Prediction model information between candidate components of spatially adjacent blocks of the current block;
[0261] Information on the prediction model between temporal candidate components of the current block;
[0262] Prediction model information between candidate components of spatially non-adjacent blocks in the current block;
[0263] Information on the prediction model among historical candidate components of the current block;
[0264] Information on the prediction model between the temporal offset candidate components of the current block;
[0265] Predefined prediction model information between candidate components.
[0266] It should be noted that, in the embodiments of this application, in addition to including one or more candidate component prediction model information, the first inter-component prediction merging list (i.e., inter CCP merge list) of the current block may also include candidate information as shown in Table 3 of the related art, such as at least one of the following: ① candidate CCP model information obtained by real-time calculation (OnTheFlyCalcCCPCands), ② candidate CCP model information of spatially adjacent blocks of the current block (spatial adjacent), ③ candidate CCP model information of temporal offset of the current motion vector of the current block (the second type of temporal cand), ④ candidate component prediction model information of temporal cand of the current block (the first type of temporal cand), ⑤ candidate CCP model information of spatially non-adjacent blocks of the current block (spatial non-adjacent), ⑥ historical candidate CCP model information of the current block (History ccp), ⑦ candidate CCP model information of temporal offset of adjacent motion vectors of the current block (the first type of temporal cand), ⑧ predefined candidate CCP model information (Default ccp).
[0267] It should also be noted that, in the embodiments of this application, the temporal candidate component prediction model information (the first type of temporal cand) of the current block and the temporal offset candidate CCP model information (the third type of temporal cand) of the adjacent motion vectors of the current block can be obtained based on a third isotope image. The third isotope image can be a reference image determined in the reference image list based on the isotope image index in the bitstream. The third isotope image is different from at least one isotope image obtained in the aforementioned embodiments. For example, the third isotope image can be different from the first isotope image, or the third isotope image can be different from both the first and second isotope images; no limitations are imposed here.
[0268] It should also be noted that, in the embodiments of this application, the addition of these candidate information in the first inter-component prediction merging list has a certain filling order. For example, they can be added to the first inter-component prediction merging list in the order of ①→②→③→④→⑤→⑥→⑦→⑧ as described above, to initially obtain the first inter-component prediction merging list of the current block; and then one or more candidate inter-component prediction model information obtained above are added to the first inter-component prediction merging list of the current block.
[0269] Understandably, in the embodiments of this application, the prediction model information between one or more candidate components may include: one or more temporal candidate component prediction model information, and / or, one or more temporal offset candidate component prediction model information. Specifically, the temporal candidate component prediction model information may include first temporal candidate component prediction model information (obtained based on a first co-located image) and / or second temporal candidate component prediction model information (obtained based on a second co-located image); the temporal offset candidate component prediction model information may include first temporal offset candidate component prediction model information (obtained based on a first co-located image) and / or second temporal offset candidate component prediction model information (obtained based on a second co-located image).
[0270] In one possible implementation, the method may further include: when constructing the first inter-component prediction merging list, adding one or more temporal inter-component prediction model information after adding the inter-component prediction model information of the spatially adjacent blocks of the current block.
[0271] In another possible implementation, the method may further include: when constructing the first inter-component prediction merging list, adding one or more temporal offset inter-component prediction model information after adding the historical inter-component prediction model information of the current block.
[0272] It should be noted that, in this embodiment, when constructing the first inter-component prediction merging list, if the inter-component prediction model information to be added is the same as one of the candidates in the first inter-component prediction merging list, then the inter-component prediction model information to be added will not be added to the first inter-component prediction merging list; if the inter-component prediction model information to be added is different from any candidate in the first inter-component prediction merging list, then the inter-component prediction model information to be added will be added to the first inter-component prediction merging list. In other words, duplicate candidates will not be added repeatedly to the first inter-component prediction merging list.
[0273] It should also be noted that, in the embodiments of this application, the relative filling order of the time-domain candidate components and their offset candidates with other candidates can be maintained for the obtained prediction model information between time-domain candidate components (hereinafter referred to as "time-domain candidates") and prediction model information between time-domain offset candidate components (hereinafter referred to as "time-domain offset candidates"). Specifically, after repeated CCP model checks, time-domain candidates are filled after spatially adjacent candidates and before spatially non-adjacent candidates; after repeated CCP model checks, time-domain offset candidates are filled after historical candidates and before predefined candidates.
[0274] It is also understandable that, in the embodiments of the present application, when adding one or more pieces of time-domain candidate inter-component prediction model information to the first inter-component prediction merge list, the one or more pieces of time-domain candidate inter-component prediction model information may include: one or more pieces of first time-domain candidate inter-component prediction model information, and / or one or more pieces of second time-domain candidate inter-component prediction model information; that is, all the obtained pieces of time-domain candidate inter-component prediction model information may be added to the first inter-component prediction merge list.
[0275] It is also understandable that, in the embodiments of the present application, when adding one or more pieces of time-domain offset candidate inter-component prediction model information to the first inter-component prediction merge list, the one or more pieces of time-domain offset candidate inter-component prediction model information may include: one or more pieces of first time-domain offset candidate inter-component prediction model information, and / or one or more pieces of second time-domain offset candidate inter-component prediction model information; that is, all the obtained pieces of time-domain offset candidate inter-component prediction model information may be added to the first inter-component prediction merge list.
[0276] Considering that the maximum length of the first inter-component prediction merge list is limited, directly expanding the number of collocated pictures may cause the list to be filled in advance, so that other types of candidates, such as spatial non-adjacent candidates, historical candidates and predefined candidates, are not added to the candidate list, which limits the improvement of coding performance. Several implementations are provided below to solve the problems that may be caused by directly expanding time-domain and offset candidates.
[0277] In a possible implementation, the maximum length of the first inter-component prediction merge list is expanded, for example. The maximum length of the list may be expanded from the original 12 to N, where N is an integer greater than 12. In this way, after the history-based CCP candidates are filled, if the number of available candidates maxCandNum < N, predefined CCP candidates may be added to the end of the list until the length of the list meets the condition of being N.
[0278] In another possible implementation, the obtained one or more pieces of candidate inter-component prediction model information may be sorted and then added to the first inter-component prediction merge list.
[0279] In some embodiments, the method may further include: determining a first extended candidate list for the current block, wherein the first extended candidate list includes: one or more first temporal candidate inter-component prediction model information, and / or one or more second temporal candidate inter-component prediction model information; performing template cost calculation on at least one candidate inter-component prediction model information in the first extended candidate list to determine the template cost value of each of the at least one candidate inter-component prediction model information in the first extended candidate list; sorting the at least one candidate inter-component prediction model information in the first extended candidate list in ascending order of template cost value, and determining the top m candidate inter-component prediction model information as one or more temporal candidate inter-component prediction model information for the current block; wherein m is a positive integer.
[0280] It should be noted that, in this embodiment, a first extended candidate list is constructed using the obtained temporal candidates (e.g., one or more first temporal candidates obtained based on the first co-located image and / or one or more second temporal candidates obtained based on the second co-located image). The top m temporal candidates with lower template costs for the current block are then added to the Inter CCP merge list. The relative filling position remains unchanged, still located after the spatially adjacent candidates and before the spatially non-adjacent candidates.
[0281] In some embodiments, the method may further include: determining a second extended candidate list for the current block, wherein the second extended candidate list includes: one or more first time-domain offset candidate component prediction model information, and / or one or more second time-domain offset candidate component prediction model information; performing template cost calculation on at least one candidate component prediction model information in the second extended candidate list to determine the template cost value of each of the at least one candidate component prediction model information in the second extended candidate list; sorting the at least one candidate component prediction model information in the second extended candidate list in ascending order of template cost value, and determining the top n candidate component prediction model information as one or more time-domain offset candidate component prediction model information for the current block; wherein n is a positive integer.
[0282] It should be noted that, in this embodiment, a second extended candidate list is constructed using the obtained temporal offset candidates (e.g., one or more first temporal offset candidates obtained based on the first co-located image and / or one or more second temporal offset candidates obtained based on the second co-located image). The top n temporal offset candidates with lower template costs for the current block are added to the Inter CCP merge list. The relative filling position remains unchanged, still following the historical candidates and before the predefined candidates.
[0283] In some embodiments, the method may further include: determining a third extended candidate list for the current block, wherein the third extended candidate list includes at least one of the following: one or more first temporal candidate component prediction model information, one or more second temporal candidate component prediction model information, one or more first temporal offset candidate component prediction model information, and one or more second temporal offset candidate component prediction model information; performing template cost calculation on at least one candidate component prediction model information in the third extended candidate list to determine the template cost value of each of the at least one candidate component prediction model information in the third extended candidate list; sorting the at least one candidate component prediction model information in the third extended candidate list in ascending order of template cost value, and determining the top l candidate component prediction model information as one or more candidate component prediction model information for the current block; wherein l is a positive integer.
[0284] It should be noted that, in the embodiments of this application, a third extended candidate list is constructed using these obtained temporal candidates (e.g., one or more first temporal candidates, first temporal offset candidates obtained based on the first co-located image, and / or one or more second temporal candidates, second temporal offset candidates, etc. obtained based on the second co-located image). The top n temporal candidates with lower template costs for the current block are added to the Inter CCP merge list. The relative filling position can be after spatially adjacent candidates and before spatially non-adjacent candidates, or it can be after historical candidates and before predefined candidates; no limitation is made here.
[0285] It should also be noted that the template cost calculation here can be done using SAD cost calculation, SATD cost calculation, or even other cost methods, without any restrictions.
[0286] S903, determine the inter-component prediction model information of the current block according to the first inter-component prediction merging list, and perform inter-component prediction on the current block according to the inter-component prediction model information.
[0287] In this embodiment of the application, after obtaining the first inter-component prediction merging list, the inter-component prediction model information of the current block can be determined based on the first inter-component prediction merging list. Two possible implementation methods are described below.
[0288] In one possible implementation, the encoding cost of the current block is calculated based on at least one candidate information in the first inter-component prediction merging list, and the cost result corresponding to each of the at least one candidate information is determined; the minimum cost result is determined based on the cost result corresponding to each of the at least one candidate information, and then the candidate information corresponding to the minimum cost result is determined as the inter-component prediction model information of the current block.
[0289] In the embodiments of this application, the encoding cost calculation here may be rate-distortion cost calculation, or it may be other cost calculations, such as SAD, SATD, etc., without any limitation.
[0290] In this implementation, the method may further include: determining the value of the second syntax element; encoding the value of the second syntax element; and writing the resulting encoded bits into the bitstream. The second syntax element is used to indicate the index number of the inter-component prediction model information of the current block in the first inter-component prediction merging list.
[0291] In another possible implementation, template cost calculation is performed on at least one candidate information in the first inter-component prediction merging list to determine the template cost value of each candidate information in the first inter-component prediction merging list; the candidate information corresponding to the smallest template cost value is determined as the inter-component prediction model information of the current block. Here, the template cost calculation can be performed using SAD, SATD, etc., but there are no limitations.
[0292] In some embodiments, performing inter-component prediction on the current block based on inter-component prediction model information may include: determining a first prediction sample of the second component of the current block based on the inter-component prediction model information and the reconstructed sample of the first component of the current block; and performing a weighted calculation on the first prediction sample of the second component of the current block and the second prediction sample of the second component of the current block to determine the prediction sample of the current block.
[0293] In this embodiment, the first component can be a luminance component, and the second component can be a chrominance component, such as a Cb component or a Cr component. Furthermore, the second predicted sample of the chrominance component of the current block is a chrominance prediction value obtained by the current block based on a conventional chrominance prediction model.
[0294] In this way, based on the obtained inter-component prediction model information and the luminance reconstruction sample of the current block, the first prediction sample of the chrominance component of the current block can be obtained; then, the first prediction sample of the chrominance component and the second prediction sample of the chrominance component are weighted and calculated to obtain the final prediction sample of the current block.
[0295] It is also understood that, in the embodiments of this application, the above technical solutions can be directly applied to all coded blocks in a non-intra image, or can be selected to be applied only to inter blocks or intra blocks in a non-intra image. In addition, the above technical solutions may also use only coded blocks of a certain size, and no limitations are made here.
[0296] This application provides an encoding method for constructing an inter-component prediction merging list. The candidate model information (especially temporal candidates and temporal offset candidates) is no longer selected from only one co-located image, but can be selected in combination with other co-located images. For example, it can be the two reference images in the reference image list with the smallest playback order distance from the current image. This increases the diversity of candidate model information such as temporal candidates and temporal offset candidates, making the construction of the inter-component prediction merging list more comprehensive, improving the accuracy of inter-component prediction, and thus improving encoding performance.
[0297] In another embodiment of this application, Figure 10 is a schematic flowchart of a decoding method provided in an embodiment of this application. As shown in Figure 10, the method may include:
[0298] S1001, parse the two co-located image indices in the bitstream.
[0299] S1002, determine the two corresponding images of the current block based on the two corresponding image indices.
[0300] It should be noted that in this embodiment, the method is applied to the decoder. Based on the composition structure of the decoder 200 shown in Figure 7, the decoding method of this embodiment can be applied to the prediction part, specifically, it can be a temporal candidate extension of the inter-component prediction merging mode, making the candidates in the inter-frame CCP merging list more comprehensive, thereby improving the accuracy of CCP prediction.
[0301] It should also be noted that, in the embodiments of this application, some indication information in the form of syntax elements or flag bits can be written into the bitstream. In this way, by parsing the values of the syntax elements in the bitstream, the relevant decoding information of the current block can be determined, such as whether the current block uses CCP merging mode, and the two in-place images used by the current block.
[0302] In some embodiments, a first syntax element in the bitstream is parsed; wherein the first syntax element is used to indicate whether the current block is decoded using CCP merging mode. Wherein, when the first syntax element indicates that the current block is decoded using CCP merging mode, it is necessary to further parse the two co-image indices in the bitstream to determine the two co-images of the current block.
[0303] In this embodiment, the first syntax element can be represented by ccpMergeFlag. If the first syntax element has a first value, the current block is decoded using CCP merging mode; if the first syntax element has a second value, the current block is not decoded using CCP merging mode. For example, the first value can be set to 1 and the second value can be set to 0; or, the first value can be set to true and the second value can be set to false.
[0304] In this embodiment of the application, when the current block is decoded using CCP merging mode, two co-occurrence image indices in the bitstream can also be parsed, such as a first co-occurrence image index and a second co-occurrence image index. In some embodiments, determining the two co-occurrence images of the current block based on the two co-occurrence image indices may include: determining the first co-occurrence image of the current block based on the first co-occurrence image index and a reference image list; and determining the second co-occurrence image of the current block based on the second co-occurrence image index and a reference image list.
[0305] In other words, in this embodiment of the application, the first reference image corresponding to the first co-position image index in the reference image list is used as the first co-position image, and the second reference image corresponding to the second co-position image index in the reference image list is used as the second co-position image.
[0306] It is understood that, in the embodiments of this application, the reference image list may include: a first reference image list (e.g., List0), and / or a second reference image list (e.g., List1). Here, the first and second co-position images may both be obtained from the first reference image list, or both may be obtained from the second reference image list, or one may be obtained from the first reference image list and the other from the second reference image list. In this case, the reference image list indication information in the bitstream can be used to determine the reference image list.
[0307] In some embodiments, the method may further include: parsing reference image list indication information in the bitstream; and determining a reference image list based on the reference image list indication information.
[0308] In this embodiment of the application, determining the first co-located image of the current block may include: parsing the first reference image list indication information in the bitstream; determining the corresponding reference image list based on the first reference image list indication information; and then determining the first co-located image of the current block based on the first co-located image index and the reference image list. The first reference image list indication information is used to determine the reference image list, which may be a first reference image list List0 or a second reference image list List1, specifically determined based on the first reference image list indication information in the bitstream.
[0309] In this embodiment of the application, determining the second co-location image of the current block may include: parsing the second reference image list indication information in the bitstream; determining the corresponding reference image list based on the second reference image list indication information; and then determining the second co-location image of the current block based on the second co-location image index and the reference image list. The second reference image list indication information is also used to determine the reference image list, which may be a first reference image list List0 or a second reference image list List1, specifically determined based on the second reference image list indication information in the bitstream.
[0310] S1003, Based on two co-located images, determine the prediction model information between one or more candidate components.
[0311] In this embodiment of the application, after obtaining two co-position images of the current block (e.g., a first co-position image and a second co-position image), one or more candidate component prediction model information can be determined based on these two co-position images. The candidate component prediction model information may include: temporal candidate component prediction model information, and / or temporal offset candidate component prediction model information.
[0312] In one possible implementation, the method may include: determining one or more first candidate component prediction model information based on a first co-located image; determining one or more second candidate component prediction model information based on a second co-located image; and determining one or more candidate component prediction model information based on the one or more first candidate component prediction model information and the one or more second candidate component prediction model information. Thus, the temporal candidate component prediction model information and the temporal offset candidate component prediction model information are no longer selected from only one co-located image, but can be obtained from two co-located images, thereby expanding the diversity of temporal and temporal offset candidates.
[0313] The following description uses the example of determining the prediction model information between one or more first candidate components based on the first isotopic image.
[0314] Understandably, in the embodiments of this application, for determining one or more temporal candidate component prediction model information, in some embodiments, determining one or more first candidate component prediction model information based on a first co-located image may include: determining at least one first-type preset position and at least one second-type preset position in the first co-located image; sequentially checking at least one first-type preset position and at least one second-type preset position in a first order to determine one or more first temporal candidate component prediction model information; and determining one or more first candidate component prediction model information based on one or more first temporal candidate component prediction model information.
[0315] In this embodiment, the first type of preset position can be position C0 as shown in Figure 2, for example, located at the lower right position of the current block; the second type of preset position can be position C1 as shown in Figure 2, for example, located at the lower left position of the current block. Furthermore, in this embodiment, the number of the first type of preset positions can be one or more, for example, 10, as shown in Figure 2: C01, C02, C03, ..., C0 10 The second type of preset positions can be one or more, for example, 10, as shown in Figure 2: C11, C12, C13, ..., C1 10 .
[0316] In some embodiments, checking at least one first-type preset position and at least one second-type preset position in a first order to determine one or more first temporal candidate component prediction model information may include: when the i-th position among at least one first-type preset position is within the boundary of the first co-located image, determining a first temporal candidate component prediction model information based on the i-th position among at least one first-type preset position; when the i-th position among at least one first-type preset position is outside the boundary of the first co-located image and the i-th position among at least one second-type preset position is within the boundary of the first co-located image, determining a first temporal candidate component prediction model information based on the i-th position among at least one second-type preset position; wherein i is an integer greater than 0.
[0317] In the embodiments of this application, "the i-th position among at least one first-class preset position" can be simply referred to as the i-th first-class preset position, and "the i-th position among at least one second-class preset position" can be simply referred to as the i-th second-class preset position. That is, when the i-th first-class preset position is within the boundary of the first co-located image, a first temporal candidate component prediction model information is determined based on the i-th first-class preset position; when the i-th first-class preset position is outside the boundary of the first co-located image and the i-th second-class preset position is within the boundary of the first co-located image, a first temporal candidate component prediction model information is determined based on the i-th second-class preset position.
[0318] It can also be understood that, in some embodiments of this application, for determining one or more temporal offset candidate component prediction model information, determining one or more first candidate component prediction model information based on the first co-position image may further include: determining the first adjacent motion vector corresponding to the current block; offsetting at least one first type preset position and at least one second type preset position according to the first adjacent motion vector to determine at least one first type offset position and at least one second type offset position; sequentially checking at least one first type offset position and at least one second type offset position in a first order to determine one or more first temporal offset candidate component prediction model information; and then determining one or more first candidate component prediction model information based on one or more first temporal offset candidate component prediction model information and / or one or more first temporal offset candidate component prediction model information.
[0319] In this embodiment, not only can the prediction model information between the first temporal candidate components be selected from the first co-located image, but the prediction model information between the first temporal offset candidate components can also be selected from the first co-located image. As shown in Figure 3, the position of the co-located block can be offset according to the selected first adjacent motion vector. That is, the positions of C0i and C1i can be offset according to the selected same adjacent motion vector (i.e., the first adjacent motion vector) to obtain the first type of offset position and the second type of offset position.
[0320] In some embodiments, determining the first adjacent motion vector corresponding to the current block may include: determining at least one preset adjacent position of the current block; sequentially checking the first motion vector and the second motion vector of each of the at least one preset adjacent position in a second order; when the first selected motion vector that satisfies the condition that the reference image is the same as the first co-located image is found, the first selected motion vector is taken as the first adjacent motion vector corresponding to the current block. For example, as shown in FIG4, at least one preset adjacent position of the current block may include: A0, A1, B0, B1, B2. Each preset adjacent position is provided with two motion vectors: a first motion vector (L0 motion vector) and a second motion vector (L1 motion vector). The second order may be: L0... B1 →L1 B1 →L0 A1 →L1 A1 →L0 B0 →L1 B0 →L0 A0 →L1 A0 →L0 B2 →L1 B2The first motion vector that uses the first co-located image as a reference image is selected as the first adjacent motion vector. It is important to note that if no selected motion vector is found that satisfies the condition that the reference image and the first co-located image are identical (i.e., no first adjacent motion vector exists), then the prediction model information for one or more first temporal offset candidate components cannot be determined; that is, the corresponding temporal offset candidate CCP model information will not be added to the first component prediction merging list.
[0321] In some embodiments, checking at least one first-type offset position and at least one second-type offset position in a first order to determine one or more first temporal offset candidate component prediction model information may include: when the j-th position among at least one first-type offset position is within the boundary of the first co-position image, determining a first temporal offset candidate component prediction model information based on the j-th position among at least one first-type offset position; when the j-th position among at least one first-type offset position is outside the boundary of the first co-position image and the j-th position among at least one second-type offset position is within the boundary of the first co-position image, determining a first temporal offset candidate component prediction model information based on the j-th position among at least one second-type offset position; wherein j is an integer greater than 0.
[0322] In the embodiments of this application, "the j-th position among at least one first-type offset position" is simply referred to as the j-th first-type offset position, and "the j-th position among at least one second-type offset position" is simply referred to as the j-th second-type offset position. That is, when the j-th first-type offset position is within the boundary of the first co-located image, a first temporal offset candidate component prediction model information is determined based on the j-th first-type offset position; when the j-th first-type offset position is outside the boundary of the first co-located image, and the j-th second-type offset position is within the boundary of the first co-located image, a first temporal offset candidate component prediction model information is determined based on the j-th second-type offset position.
[0323] In this way, prediction model information between one or more first candidate components can be determined based on the first co-position image, such as prediction model information between one or more first time-domain candidate components and / or prediction model information between one or more first time-domain offset candidate components.
[0324] It can also be understood that, in the embodiments of this application, the determination of prediction model information between one or more temporal candidate components can also be based on a second co-located image. In some embodiments, the method may further include: determining at least one third-type preset position and at least one fourth-type preset position in the second co-located image; sequentially checking at least one third-type preset position and at least one fourth-type preset position in a first order to determine one or more second temporal candidate component prediction model information; and determining one or more second candidate component prediction model information based on the one or more second temporal candidate component prediction model information.
[0325] In this embodiment, the third type of preset position can be the C0 position shown in Figure 2, for example, located at the lower right position of the current block; the fourth type of preset position can be the C1 position shown in Figure 2, for example, located at the lower left position of the current block. Furthermore, in this embodiment, the number of the third type of preset positions can be one or more, for example, 10, as shown in Figure 2: C01, C02, C03, ..., C0 10 The fourth type of preset position can have one or more, for example, 10, as shown in Figure 2: C11, C12, C13, ..., C1 10 .
[0326] In some embodiments, checking at least one third-class preset position and at least one fourth-class preset position in a first order to determine one or more second temporal candidate component prediction model information may include: when the i-th position among at least one third-class preset position is within the boundary of the second co-located image, determining a second temporal candidate component prediction model information based on the i-th position among at least one third-class preset position; when the i-th position among at least one third-class preset position is outside the boundary of the second co-located image and the i-th position among at least one fourth-class preset position is within the boundary of the second co-located image, determining a second temporal candidate component prediction model information based on the i-th position among at least one fourth-class preset position; wherein i is an integer greater than 0.
[0327] In the embodiments of this application, "the i-th position among at least one third-class preset position" is simply referred to as the i-th third-class preset position, and "the i-th position among at least one fourth-class preset position" is simply referred to as the i-th fourth-class preset position. For example, taking Figure 2 as an example, the first sequence can be: C01→C02→…→C0 10Specifically, if C0i is within the boundary of the second co-located image, then the co-located block containing position C0i can be used to determine the corresponding second temporal candidate component prediction model information; if C0i is outside the boundary of the second co-located image, but C1i is within the boundary of the second co-located image, then the co-located block containing position C1i instead of C0i will be used to determine the corresponding second temporal candidate component prediction model information; where 1≤i≤10. That is, in each group (C0i and C1i), one containing position is selected to determine the corresponding second temporal candidate component prediction model information; then the next group (e.g., C0i+1 and C1i+1) is checked, that is, the next containing position is selected, until all checks are completed, to obtain one or more second temporal candidate component prediction model information.
[0328] It can also be understood that, in some embodiments of this application, for determining one or more temporal offset candidate component prediction model information, determining one or more second candidate component prediction model information based on the second co-position image may further include: determining the second adjacent motion vector corresponding to the current block; offsetting at least one third type preset position and at least one fourth type preset position according to the second adjacent motion vector to determine at least one third type offset position and at least one fourth type offset position; sequentially checking at least one third type offset position and at least one fourth type offset position in a first order to determine one or more second temporal offset candidate component prediction model information; and determining one or more second candidate component prediction model information based on one or more second temporal offset candidate component prediction model information and / or one or more second temporal offset candidate component prediction model information.
[0329] In this embodiment, not only can the prediction model information between the second temporal candidate components be selected from the second co-located image, but the prediction model information between the second temporal offset candidate components can also be selected from the second co-located image. As shown in Figure 3, the position of the co-located block can be offset according to the selected second adjacent motion vector. That is, the positions of C0i and C1i can be offset according to the selected same adjacent motion vector (i.e., the second adjacent motion vector) to obtain the third type of offset position and the fourth type of offset position.
[0330] In some embodiments, determining the second adjacent motion vector corresponding to the current block may include: determining at least one preset adjacent position of the current block; sequentially checking the first motion vector and the second motion vector of each of the at least one preset adjacent position in a second order; when the first selected motion vector that satisfies the same conditions as the reference image and the second co-located image is found, the first selected motion vector is taken as the second adjacent motion vector corresponding to the current block. For example, still taking Figure 4 as an example, the at least one preset adjacent position of the current block may include: A0, A1, B0, B1, B2. Each preset adjacent position is provided with two motion vectors: a first motion vector (L0 motion vector) and a second motion vector (L1 motion vector). The second order may be: L0... B1 →L1 B1 →L0 A1 →L1 A1 →L0 B0 →L1 B0 →L0 A0 →L1 A0 →L0 B2 →L1 B2 In this process, the first motion vector using the second co-located image as a reference image is selected as the second adjacent motion vector. It is important to note that if no selected motion vector is found that satisfies the condition that the reference image and the second co-located image are identical (i.e., no second adjacent motion vector exists), then the prediction model information for one or more second temporal offset candidate components cannot be determined; that is, the corresponding temporal offset candidate CCP model information will not be added to the first component prediction merging list.
[0331] In some embodiments, checking at least one third-type offset position and at least one fourth-type offset position in a first order to determine one or more second temporal offset candidate component prediction model information may include: when the j-th position among at least one third-type offset position is within the boundary of the second co-position image, determining a second temporal offset candidate component prediction model information based on the j-th position among at least one third-type offset position; when the j-th position among at least one third-type offset position is outside the boundary of the second co-position image and the j-th position among at least one fourth-type offset position is within the boundary of the second co-position image, determining a second temporal offset candidate component prediction model information based on the j-th position among at least one fourth-type offset position; wherein j is an integer greater than 0.
[0332] In this embodiment, the steps for determining prediction model information between one or more candidate components based on the first and second co-located images are the same as those in the foregoing embodiments, and will not be described in detail here.
[0333] S1004, Based on the prediction model information between one or more candidate components, determine the second component prediction merging list for the current block.
[0334] In this embodiment of the application, the inter-component prediction merging list of the current block may further include at least one of the following:
[0335] Real-time calculation of the prediction model information between candidate components;
[0336] Prediction model information between candidate components of spatially adjacent blocks of the current block;
[0337] Prediction model information between candidate components of spatially non-adjacent blocks in the current block;
[0338] Information on the prediction model among historical candidate components of the current block;
[0339] Predefined prediction model information between candidate components.
[0340] It should be noted that, in the embodiments of this application, in addition to including one or more candidate component prediction model information, the second inter-component prediction merging list (i.e., inter CCP merge list) of the current block may also include the candidate information shown in Table 3 of the related art, such as at least one of the following: ① candidate CCP model information obtained by real-time calculation (OnTheFlyCalcCCPCands), ② candidate CCP model information of spatially adjacent blocks of the current block (spatial adjacent), ③ candidate CCP model information of temporal offset of the current motion vector of the current block (the second type of temporal cand), ④ candidate component prediction model information of temporal cand of the current block (the first type of temporal cand), ⑤ candidate CCP model information of spatially non-adjacent blocks of the current block (spatial non-adjacent), ⑥ historical candidate CCP model information of the current block (History ccp), ⑦ candidate CCP model information of temporal offset of adjacent motion vectors of the current block (the first type of temporal cand), ⑧ predefined candidate CCP model information (Default ccp).
[0341] It should also be noted that, in the embodiments of this application, the addition of these candidate information in the inter-component prediction merging list has a certain filling order. For example, they can be added to the inter-component prediction merging list in the order of ①→②→③→④→⑤→⑥→⑦→⑧ as described above, to initially obtain the inter-component prediction merging list of the current block; and then one or more candidate inter-component prediction model information obtained above are added to the inter-component prediction merging list of the current block.
[0342] Understandably, in the embodiments of this application, the prediction model information between one or more candidate components may include: one or more temporal candidate component prediction model information, and / or, one or more temporal offset candidate component prediction model information. Specifically, the temporal candidate component prediction model information may include first temporal candidate component prediction model information (obtained based on a first co-located image) and / or second temporal candidate component prediction model information (obtained based on a second co-located image); the temporal offset candidate component prediction model information may include first temporal offset candidate component prediction model information (obtained based on a first co-located image) and / or second temporal offset candidate component prediction model information (obtained based on a second co-located image).
[0343] In one possible implementation, the method may further include: when constructing the second inter-component prediction merging list, adding one or more temporal inter-component prediction model information after adding the inter-component prediction model information of the spatially adjacent blocks of the current block.
[0344] In another possible implementation, the method may further include: when constructing the second inter-component prediction merging list, adding one or more temporal offset inter-component prediction model information after adding the historical inter-component prediction model information of the current block.
[0345] It should be noted that, in this embodiment, when constructing the second inter-component prediction merging list, if the inter-component prediction model information to be added is the same as one of the candidates in the second inter-component prediction merging list, then the inter-component prediction model information to be added will not be added to the second inter-component prediction merging list; if the inter-component prediction model information to be added is different from any candidate in the second inter-component prediction merging list, then the inter-component prediction model information to be added will be added to the second inter-component prediction merging list. In other words, duplicate candidates will not be added repeatedly to the second inter-component prediction merging list.
[0346] It should be further noted that, in the embodiments of the present application, for the obtained temporal candidate inter-component prediction model information (which may be abbreviated as "temporal candidate") and temporal offset candidate inter-component prediction model information (which may be abbreviated as "temporal offset candidate"), the relative filling order of the temporal and its offset candidates and other candidates may remain unchanged. After the repeated CCP model check, the temporal candidates are filled after the spatially adjacent candidates and before the spatially non-adjacent candidates; after the repeated CCP model check, the temporal offset candidates are filled after the historical candidates and before the predefined candidates.
[0347] It can also be understood that, in the embodiments of the present application, when adding one or more pieces of temporal candidate inter-component prediction model information to the second inter-component prediction merge list, the one or more pieces of temporal candidate inter-component prediction model information may include: one or more pieces of first temporal candidate inter-component prediction model information, and / or one or more pieces of second temporal candidate inter-component prediction model information; that is, all the obtained pieces of temporal candidate inter-component prediction model information may be added to the second inter-component prediction merge list.
[0348] It can also be understood that, in the embodiments of the present application, when adding one or more pieces of temporal offset candidate inter-component prediction model information to the second inter-component prediction merge list, the one or more pieces of temporal offset candidate inter-component prediction model information may include: one or more pieces of first temporal offset candidate inter-component prediction model information, and / or one or more pieces of second temporal offset candidate inter-component prediction model information; that is, all the obtained pieces of temporal offset candidate inter-component prediction model information may be added to the second inter-component prediction merge list.
[0349] Considering that the maximum length of the second inter-component prediction merge list is limited, directly expanding the number of collocated pictures may cause the list to be filled in advance, so that other types of candidates, such as spatially non-adjacent candidates, historical candidates, and predefined candidates, are not added to the candidate list, which limits the improvement of coding performance. Several implementations are provided below to solve the problems that may be caused by directly expanding the temporal and its offset candidates.
[0350] In a possible implementation, the maximum length of the second inter-component prediction merge list is extended. For example, the maximum length of the list may be extended from the original 12 to N, where N is an integer greater than 12. In this way, after the history-based CCP candidates are filled, if the number of available candidates maxCandNum < N, predefined CCP candidates may be added at the end of the list until the length of the list meets the condition of length N.
[0351] In another possible implementation, the obtained one or more pieces of candidate inter-component prediction model information may be sorted and then added to the second inter-component prediction merge list.
[0352] In some embodiments, the method may further include: determining a first extended candidate list for the current block, wherein the first extended candidate list includes: one or more first temporal candidate inter-component prediction model information, and / or one or more second temporal candidate inter-component prediction model information; performing template cost calculation on at least one candidate inter-component prediction model information in the first extended candidate list to determine the template cost value of each of the at least one candidate inter-component prediction model information in the first extended candidate list; sorting the at least one candidate inter-component prediction model information in the first extended candidate list in ascending order of template cost value, and determining the top m candidate inter-component prediction model information as one or more temporal candidate inter-component prediction model information for the current block; wherein m is a positive integer.
[0353] It should be noted that, in this embodiment, a first extended candidate list is constructed using the obtained temporal candidates (e.g., one or more first temporal candidates obtained based on the first co-located image and / or one or more second temporal candidates obtained based on the second co-located image). The top m temporal candidates with lower template costs for the current block are then added to the Inter CCP merge list. The relative filling position remains unchanged, still located after the spatially adjacent candidates and before the spatially non-adjacent candidates.
[0354] In some embodiments, the method may further include: determining a second extended candidate list for the current block, wherein the second extended candidate list includes: one or more first time-domain offset candidate component prediction model information, and / or one or more second time-domain offset candidate component prediction model information; performing template cost calculation on at least one candidate component prediction model information in the second extended candidate list to determine the template cost value of each of the at least one candidate component prediction model information in the second extended candidate list; sorting the at least one candidate component prediction model information in the second extended candidate list in ascending order of template cost value, and determining the top n candidate component prediction model information as one or more time-domain offset candidate component prediction model information for the current block; wherein n is a positive integer.
[0355] It should be noted that, in this embodiment, a second extended candidate list is constructed using the obtained temporal offset candidates (e.g., one or more first temporal offset candidates obtained based on the first co-located image and / or one or more second temporal offset candidates obtained based on the second co-located image). The top n temporal offset candidates with lower template costs for the current block are added to the Inter CCP merge list. The relative filling position remains unchanged, still following the historical candidates and before the predefined candidates.
[0356] In some embodiments, the method may further include: determining a third extended candidate list for the current block, wherein the third extended candidate list includes at least one of the following: one or more first temporal candidate component prediction model information, one or more second temporal candidate component prediction model information, one or more first temporal offset candidate component prediction model information, and one or more second temporal offset candidate component prediction model information; performing template cost calculation on at least one candidate component prediction model information in the third extended candidate list to determine the template cost value of each of the at least one candidate component prediction model information in the third extended candidate list; sorting the at least one candidate component prediction model information in the third extended candidate list in ascending order of template cost value, and determining the top l candidate component prediction model information as one or more candidate component prediction model information for the current block; wherein l is a positive integer.
[0357] It should be noted that, in the embodiments of this application, a third extended candidate list is constructed using these obtained temporal candidates (e.g., one or more first temporal candidates, first temporal offset candidates obtained based on the first co-located image, and / or one or more second temporal candidates, second temporal offset candidates, etc. obtained based on the second co-located image). The top n temporal candidates with lower template costs for the current block are added to the Inter CCP merge list. The relative filling position can be after spatially adjacent candidates and before spatially non-adjacent candidates, or it can be after historical candidates and before predefined candidates; no limitation is made here.
[0358] It should also be noted that the template cost calculation here can be done using SAD cost calculation, SATD cost calculation, or even other cost methods, without any restrictions.
[0359] S1005, determine the inter-component prediction model information of the current block according to the second inter-component prediction merging list, and perform inter-component prediction on the current block according to the inter-component prediction model information.
[0360] In this embodiment of the application, after obtaining the second inter-component prediction merging list, the inter-component prediction model information of the current block can be determined based on the second inter-component prediction merging list. Two possible implementation methods are described below.
[0361] In one possible implementation, the second syntax element in the bitstream is parsed, and the inter-component prediction model information of the current block is determined based on the value of the second syntax element and the inter-component prediction merging list. The second syntax element indicates the index number of the inter-component prediction model information of the current block in the inter-component prediction merging list.
[0362] In another possible implementation, template cost calculation is performed on at least one candidate information in the second inter-component prediction merging list to determine the template cost value of each candidate information in the second inter-component prediction merging list; the candidate information corresponding to the smallest template cost value is determined as the inter-component prediction model information of the current block. Here, the template cost calculation can be performed using SAD, SATD, etc., but there are no limitations.
[0363] In some embodiments, performing inter-component prediction on the current block based on inter-component prediction model information may include: determining a first prediction sample of the second component of the current block based on the inter-component prediction model information and the reconstructed sample of the first component of the current block; and performing a weighted calculation on the first prediction sample of the second component of the current block and the second prediction sample of the second component of the current block to determine the prediction sample of the current block.
[0364] In this embodiment, the first component can be a luminance component, and the second component can be a chrominance component, such as a Cb component or a Cr component. Furthermore, the second predicted sample of the chrominance component of the current block is a chrominance prediction value obtained by the current block based on a conventional chrominance prediction model.
[0365] In this way, based on the obtained inter-component prediction model information and the luminance reconstruction sample of the current block, the first prediction sample of the chrominance component of the current block can be obtained; then, the first prediction sample of the chrominance component and the second prediction sample of the chrominance component are weighted and calculated to obtain the final prediction sample of the current block.
[0366] It is also understood that, in the embodiments of this application, the above technical solutions can be directly applied to all decoding blocks in a non-intra image, or can be selected to be applied only to inter blocks or intra blocks in a non-intra image. In addition, the above technical solutions may also use only a portion of the decoding blocks, and no limitations are made here.
[0367] This application provides a decoding method for constructing an inter-component prediction merging list. The candidate model information (especially temporal candidates and temporal offset candidates) is no longer selected from only one co-position image, but can be selected in combination with other co-position images. For example, it can be two co-position images obtained based on the indices of two co-position images in the bitstream. This increases the diversity of candidate model information such as temporal candidates and temporal offset candidates, making the construction of the inter-component prediction merging list more comprehensive, improving the accuracy of inter-component prediction, and thus improving decoding performance.
[0368] In another embodiment of this application, Figure 11 is a schematic flowchart of an encoding method provided in an embodiment of this application. As shown in Figure 11, the method may include:
[0369] S1101, determine the two co-position images of the current block.
[0370] It should be noted that in this embodiment, the method is applied to the encoder. Based on the structure of the encoder 200 shown in Figure 7, the encoding method of this embodiment can be applied to the prediction part, specifically, it can be a temporal candidate extension of the inter-component prediction merging mode, making the candidates in the inter-frame CCP merging list more comprehensive, thereby improving the accuracy of CCP prediction.
[0371] It should also be noted that, in this embodiment, some instruction information in the form of syntax elements or flags can be written into the bitstream. In this way, by writing the values of relevant syntax elements into the bitstream, the decoding end can quickly determine the relevant decoding information of the current block. For example, the first syntax element can be used to indicate whether the current block is encoded using CCP merging mode.
[0372] In some embodiments, the method may further include: determining the value of a first syntax element; encoding the value of the first syntax element; and writing the obtained encoded bits into a bitstream.
[0373] In this embodiment, the first syntax element can be represented by ccpMergeFlag. If the current block is encoded using CCP merging mode, the value of the first syntax element can be determined to be a first value; if the current block is not encoded using CCP merging mode, the value of the first syntax element can be determined to be a second value. For example, the first value can be set to 1, and the second value can be set to 0; or, the first value can be set to true, and the second value can be set to false.
[0374] In this embodiment of the application, when the current block is encoded using CCP merging mode, two co-position images of the current block can be determined. In some embodiments, the method may include: determining a reference image list for the current block, wherein the reference image list includes multiple candidate reference images; determining a first reference image and a second reference image from the reference image list based on the playback order distance between the multiple candidate reference images in the reference image list and the current image where the current block is located; determining the first reference image as the first co-position image of the current block, and determining the second reference image as the second co-position image of the current block.
[0375] In this embodiment of the application, the reference image list may include: a first reference image list (e.g., List0), and / or a second reference image list (e.g., List1). Here, both co-located images may be obtained from the first reference image list, or both may be obtained from the second reference image list, or some may be obtained from the first reference image list and the other part from the second reference image list. Therefore, reference image list indication information also needs to be written into the bitstream.
[0376] In some embodiments, the method may further include: determining reference image list indication information for the current block based on a reference image list, wherein the reference image list indication information is used to indicate the selected reference image list; encoding the reference image list indication information for the current block, and writing the obtained encoded bits into the bitstream.
[0377] In this embodiment of the application, after determining the first reference image and the second reference image from the reference image list based on the playback order distance between multiple candidate reference images in the reference image list and the current image where the current block is located, the method may further include: determining two co-located image indices for the current block; wherein the two co-located image indices include a first co-located image index and a second co-located image index, and the first co-located image index is used to indicate the index number of the first reference image in the reference image list, and the second co-located image index is used to indicate the index number of the second reference image in the reference image list; encoding the two co-located image indices, and writing the obtained encoded bits into the bitstream.
[0378] For example, after determining the first reference image from the reference image list, the first reference image can be designated as the first co-image of the current block. The method may further include: determining the index of the first co-image of the current block; encoding the first co-image index; and writing the resulting encoded bits into the bitstream. The first co-image index can be used to indicate the index number of the first reference image in the reference image list. This reference image list can be determined by first reference image list indication information.
[0379] In this embodiment, the first reference image list indication information is used to indicate the reference image list in which the first co-located image is located. For example, it can be a first reference image list List0, or it can be a second reference image list List1. Therefore, the first reference image list indication information can be written into the bitstream, and the decoding end can jointly determine the first co-located image of the current block based on the first reference image list indication information and the first co-located image index in the bitstream.
[0380] For example, after determining the second reference image from the reference image list, the second reference image can be designated as the second peer image of the current block. The method may further include: determining the index of the second peer image of the current block; encoding the second peer image index; and writing the obtained encoded bits into the bitstream. The second peer image index can be used to indicate the index number of the second reference image in the reference image list. This reference image list can be determined by second reference image list indication information.
[0381] In this embodiment, the second reference image list indication information is used to indicate the reference image list in which the second co-located image is located. For example, it can be the first reference image list List0, or it can be the second reference image list List1. Therefore, the second reference image list indication information can be written into the bitstream, and the decoding end can jointly determine the second co-located image of the current block based on the second reference image list indication information and the second co-located image index in the bitstream.
[0382] S1102, Based on two co-located images, determine the prediction model information between one or more candidate components.
[0383] In this embodiment of the application, after obtaining two co-position images of the current block (e.g., a first co-position image and a second co-position image), one or more candidate component prediction model information can be determined based on these two co-position images. The candidate component prediction model information may include: temporal candidate component prediction model information, and / or temporal offset candidate component prediction model information.
[0384] In one possible implementation, the method may include: determining one or more first candidate component prediction model information based on a first co-located image; determining one or more second candidate component prediction model information based on a second co-located image; and determining one or more candidate component prediction model information based on the one or more first candidate component prediction model information and the one or more second candidate component prediction model information. Thus, the temporal candidate component prediction model information and the temporal offset candidate component prediction model information are no longer selected from only one co-located image, but can be obtained from two co-located images, thereby expanding the diversity of temporal and temporal offset candidates.
[0385] The following description uses the example of determining the prediction model information between one or more first candidate components based on the first isotopic image.
[0386] Understandably, in the embodiments of this application, for determining one or more temporal candidate component prediction model information, in some embodiments, determining one or more first candidate component prediction model information based on a first co-located image may include: determining at least one first-type preset position and at least one second-type preset position in the first co-located image; sequentially checking at least one first-type preset position and at least one second-type preset position in a first order to determine one or more first temporal candidate component prediction model information; and determining one or more first candidate component prediction model information based on one or more first temporal candidate component prediction model information.
[0387] In this embodiment, the first type of preset position can be position C0 as shown in Figure 2, for example, located at the lower right position of the current block; the second type of preset position can be position C1 as shown in Figure 2, for example, located at the lower left position of the current block. Furthermore, in this embodiment, the number of the first type of preset positions can be one or more, for example, 10, as shown in Figure 2: C01, C02, C03, ..., C0 10 The second type of preset positions can be one or more, for example, 10, as shown in Figure 2: C11, C12, C13, ..., C1 10 .
[0388] In some embodiments, checking at least one first-type preset position and at least one second-type preset position in a first order to determine one or more first temporal candidate component prediction model information may include: when the i-th position among at least one first-type preset position is within the boundary of the first co-located image, determining a first temporal candidate component prediction model information based on the i-th position among at least one first-type preset position; when the i-th position among at least one first-type preset position is outside the boundary of the first co-located image and the i-th position among at least one second-type preset position is within the boundary of the first co-located image, determining a first temporal candidate component prediction model information based on the i-th position among at least one second-type preset position; wherein i is an integer greater than 0.
[0389] In the embodiments of this application, "the i-th position among at least one first-class preset position" can be simply referred to as the i-th first-class preset position, and "the i-th position among at least one second-class preset position" can be simply referred to as the i-th second-class preset position. That is, when the i-th first-class preset position is within the boundary of the first co-located image, a first temporal candidate component prediction model information is determined based on the i-th first-class preset position; when the i-th first-class preset position is outside the boundary of the first co-located image and the i-th second-class preset position is within the boundary of the first co-located image, a first temporal candidate component prediction model information is determined based on the i-th second-class preset position.
[0390] It can also be understood that, in some embodiments of this application, for determining one or more temporal offset candidate component prediction model information, determining one or more first candidate component prediction model information based on the first co-position image may further include: determining the first adjacent motion vector corresponding to the current block; offsetting at least one first type preset position and at least one second type preset position according to the first adjacent motion vector to determine at least one first type offset position and at least one second type offset position; sequentially checking at least one first type offset position and at least one second type offset position in a first order to determine one or more first temporal offset candidate component prediction model information; and then determining one or more first candidate component prediction model information based on one or more first temporal offset candidate component prediction model information and / or one or more first temporal offset candidate component prediction model information.
[0391] In this embodiment, not only can the prediction model information between the first temporal candidate components be selected from the first co-located image, but the prediction model information between the first temporal offset candidate components can also be selected from the first co-located image. As shown in Figure 3, the position of the co-located block can be offset according to the selected first adjacent motion vector. That is, the positions of C0i and C1i can be offset according to the selected same adjacent motion vector (i.e., the first adjacent motion vector) to obtain the first type of offset position and the second type of offset position.
[0392] In some embodiments, determining the first adjacent motion vector corresponding to the current block may include: determining at least one preset adjacent position of the current block; sequentially checking the first motion vector and the second motion vector of each of the at least one preset adjacent position in a second order; when the first selected motion vector that satisfies the condition that the reference image is the same as the first co-located image is found, the first selected motion vector is taken as the first adjacent motion vector corresponding to the current block. For example, as shown in FIG4, at least one preset adjacent position of the current block may include: A0, A1, B0, B1, B2. Each preset adjacent position is provided with two motion vectors: a first motion vector (L0 motion vector) and a second motion vector (L1 motion vector). The second order may be: L0... B1 →L1 B1 →L0 A1 →L1 A1 →L0 B0 →L1 B0 →L0 A0 →L1 A0 →L0 B2 →L1 B2The first motion vector that uses the first co-located image as a reference image is selected as the first adjacent motion vector. It is important to note that if no selected motion vector is found that satisfies the condition that the reference image and the first co-located image are identical (i.e., no first adjacent motion vector exists), then the prediction model information for one or more first temporal offset candidate components cannot be determined; that is, the corresponding temporal offset candidate CCP model information will not be added to the first component prediction merging list.
[0393] In some embodiments, checking at least one first-type offset position and at least one second-type offset position in a first order to determine one or more first temporal offset candidate component prediction model information may include: when the j-th position among at least one first-type offset position is within the boundary of the first co-position image, determining a first temporal offset candidate component prediction model information based on the j-th position among at least one first-type offset position; when the j-th position among at least one first-type offset position is outside the boundary of the first co-position image and the j-th position among at least one second-type offset position is within the boundary of the first co-position image, determining a first temporal offset candidate component prediction model information based on the j-th position among at least one second-type offset position; wherein j is an integer greater than 0.
[0394] In the embodiments of this application, "the j-th position among at least one first-type offset position" is simply referred to as the j-th first-type offset position, and "the j-th position among at least one second-type offset position" is simply referred to as the j-th second-type offset position. That is, when the j-th first-type offset position is within the boundary of the first co-located image, a first temporal offset candidate component prediction model information is determined based on the j-th first-type offset position; when the j-th first-type offset position is outside the boundary of the first co-located image, and the j-th second-type offset position is within the boundary of the first co-located image, a first temporal offset candidate component prediction model information is determined based on the j-th second-type offset position.
[0395] In this way, prediction model information between one or more first candidate components can be determined based on the first co-position image, such as prediction model information between one or more first time-domain candidate components and / or prediction model information between one or more first time-domain offset candidate components.
[0396] It can also be understood that, in the embodiments of this application, the determination of prediction model information between one or more temporal candidate components can also be based on a second co-located image. In some embodiments, the method may further include: determining at least one third-type preset position and at least one fourth-type preset position in the second co-located image; sequentially checking at least one third-type preset position and at least one fourth-type preset position in a first order to determine one or more second temporal candidate component prediction model information; and determining one or more second candidate component prediction model information based on the one or more second temporal candidate component prediction model information.
[0397] In this embodiment, the third type of preset position can be the C0 position shown in Figure 2, for example, located at the lower right position of the current block; the fourth type of preset position can be the C1 position shown in Figure 2, for example, located at the lower left position of the current block. Furthermore, in this embodiment, the number of the third type of preset positions can be one or more, for example, 10, as shown in Figure 2: C01, C02, C03, ..., C0 10 The fourth type of preset position can have one or more, for example, 10, as shown in Figure 2: C11, C12, C13, ..., C1 10 .
[0398] In some embodiments, checking at least one third-class preset position and at least one fourth-class preset position in a first order to determine one or more second temporal candidate component prediction model information may include: when the i-th position among at least one third-class preset position is within the boundary of the second co-located image, determining a second temporal candidate component prediction model information based on the i-th position among at least one third-class preset position; when the i-th position among at least one third-class preset position is outside the boundary of the second co-located image and the i-th position among at least one fourth-class preset position is within the boundary of the second co-located image, determining a second temporal candidate component prediction model information based on the i-th position among at least one fourth-class preset position; wherein i is an integer greater than 0.
[0399] In the embodiments of this application, "the i-th position among at least one third-class preset position" is simply referred to as the i-th third-class preset position, and "the i-th position among at least one fourth-class preset position" is simply referred to as the i-th fourth-class preset position. For example, taking Figure 2 as an example, the first sequence can be: C01→C02→…→C0 10Specifically, if C0i is within the boundary of the second co-located image, then the co-located block containing position C0i can be used to determine the corresponding second temporal candidate component prediction model information; if C0i is outside the boundary of the second co-located image, but C1i is within the boundary of the second co-located image, then the co-located block containing position C1i instead of C0i will be used to determine the corresponding second temporal candidate component prediction model information; where 1≤i≤10. That is, in each group (C0i and C1i), one containing position is selected to determine the corresponding second temporal candidate component prediction model information; then the next group (e.g., C0i+1 and C1i+1) is checked, that is, the next containing position is selected, until all checks are completed, to obtain one or more second temporal candidate component prediction model information.
[0400] It can also be understood that, in some embodiments of this application, for determining one or more temporal offset candidate component prediction model information, determining one or more second candidate component prediction model information based on the second co-position image may further include: determining the second adjacent motion vector corresponding to the current block; offsetting at least one third type preset position and at least one fourth type preset position according to the second adjacent motion vector to determine at least one third type offset position and at least one fourth type offset position; sequentially checking at least one third type offset position and at least one fourth type offset position in a first order to determine one or more second temporal offset candidate component prediction model information; and determining one or more second candidate component prediction model information based on one or more second temporal offset candidate component prediction model information and / or one or more second temporal offset candidate component prediction model information.
[0401] In this embodiment, not only can the prediction model information between the second temporal candidate components be selected from the second co-located image, but the prediction model information between the second temporal offset candidate components can also be selected from the second co-located image. As shown in Figure 3, the position of the co-located block can be offset according to the selected second adjacent motion vector. That is, the positions of C0i and C1i can be offset according to the selected same adjacent motion vector (i.e., the second adjacent motion vector) to obtain the third type of offset position and the fourth type of offset position.
[0402] In some embodiments, determining the second adjacent motion vector corresponding to the current block may include: determining at least one preset adjacent position of the current block; sequentially checking the first motion vector and the second motion vector of each of the at least one preset adjacent position in a second order; when the first selected motion vector that satisfies the same conditions as the reference image and the second co-located image is found, the first selected motion vector is taken as the second adjacent motion vector corresponding to the current block. For example, still taking Figure 4 as an example, the at least one preset adjacent position of the current block may include: A0, A1, B0, B1, B2. Each preset adjacent position is provided with two motion vectors: a first motion vector (L0 motion vector) and a second motion vector (L1 motion vector). The second order may be: L0... B1 →L1 B1 →L0 A1 →L1 A1 →L0 B0 →L1 B0 →L0 A0 →L1 A0 →L0 B2 →L1 B2 In this process, the first motion vector using the second co-located image as a reference image is selected as the second adjacent motion vector. It is important to note that if no selected motion vector is found that satisfies the condition that the reference image and the second co-located image are identical (i.e., no second adjacent motion vector exists), then the prediction model information for one or more second temporal offset candidate components cannot be determined; that is, the corresponding temporal offset candidate CCP model information will not be added to the first component prediction merging list.
[0403] In some embodiments, checking at least one third-type offset position and at least one fourth-type offset position in a first order to determine one or more second temporal offset candidate component prediction model information may include: when the j-th position among at least one third-type offset position is within the boundary of the second co-position image, determining a second temporal offset candidate component prediction model information based on the j-th position among at least one third-type offset position; when the j-th position among at least one third-type offset position is outside the boundary of the second co-position image and the j-th position among at least one fourth-type offset position is within the boundary of the second co-position image, determining a second temporal offset candidate component prediction model information based on the j-th position among at least one fourth-type offset position; wherein j is an integer greater than 0.
[0404] In this embodiment, the steps for determining prediction model information between one or more candidate components based on the first and second co-located images are the same as those in the foregoing embodiments, and will not be described in detail here.
[0405] S1103, Based on the prediction model information between one or more candidate components, determine the second component prediction merging list for the current block.
[0406] In this embodiment of the application, the inter-component prediction merging list of the current block may further include at least one of the following:
[0407] Real-time calculation of the prediction model information between candidate components;
[0408] Prediction model information between candidate components of spatially adjacent blocks of the current block;
[0409] Prediction model information between candidate components of spatially non-adjacent blocks in the current block;
[0410] Information on the prediction model among historical candidate components of the current block;
[0411] Predefined prediction model information between candidate components.
[0412] It should be noted that, in the embodiments of this application, in addition to including one or more candidate component prediction model information, the second inter-component prediction merging list (i.e., inter CCP merge list) of the current block may also include the candidate information shown in Table 3 of the related art, such as at least one of the following: ① candidate CCP model information obtained by real-time calculation (OnTheFlyCalcCCPCands), ② candidate CCP model information of spatially adjacent blocks of the current block (spatial adjacent), ③ candidate CCP model information of temporal offset of the current motion vector of the current block (the second type of temporal cand), ④ candidate component prediction model information of temporal cand of the current block (the first type of temporal cand), ⑤ candidate CCP model information of spatially non-adjacent blocks of the current block (spatial non-adjacent), ⑥ historical candidate CCP model information of the current block (History ccp), ⑦ candidate CCP model information of temporal offset of adjacent motion vectors of the current block (the first type of temporal cand), ⑧ predefined candidate CCP model information (Default ccp).
[0413] It should also be noted that, in the embodiments of this application, the addition of these candidate information in the inter-component prediction merging list has a certain filling order. For example, they can be added to the inter-component prediction merging list in the order of ①→②→③→④→⑤→⑥→⑦→⑧ as described above, to initially obtain the inter-component prediction merging list of the current block; and then one or more candidate inter-component prediction model information obtained above are added to the inter-component prediction merging list of the current block.
[0414] Understandably, in the embodiments of this application, the prediction model information between one or more candidate components may include: one or more temporal candidate component prediction model information, and / or, one or more temporal offset candidate component prediction model information. Specifically, the temporal candidate component prediction model information may include first temporal candidate component prediction model information (obtained based on a first co-located image) and / or second temporal candidate component prediction model information (obtained based on a second co-located image); the temporal offset candidate component prediction model information may include first temporal offset candidate component prediction model information (obtained based on a first co-located image) and / or second temporal offset candidate component prediction model information (obtained based on a second co-located image).
[0415] In one possible implementation, the method may further include: when constructing the second inter-component prediction merging list, adding one or more temporal inter-component prediction model information after adding the inter-component prediction model information of the spatially adjacent blocks of the current block.
[0416] In another possible implementation, the method may further include: when constructing the second inter-component prediction merging list, adding one or more temporal offset inter-component prediction model information after adding the historical inter-component prediction model information of the current block.
[0417] It should be noted that, in this embodiment, when constructing the second inter-component prediction merging list, if the inter-component prediction model information to be added is the same as one of the candidates in the second inter-component prediction merging list, then the inter-component prediction model information to be added will not be added to the second inter-component prediction merging list; if the inter-component prediction model information to be added is different from any candidate in the second inter-component prediction merging list, then the inter-component prediction model information to be added will be added to the second inter-component prediction merging list. In other words, duplicate candidates will not be added repeatedly to the second inter-component prediction merging list.
[0418] It should be further noted that, in the embodiments of the present application, for the obtained temporal candidate inter-component prediction model information (may be referred to as "temporal candidate" for short) and temporal offset candidate inter-component prediction model information (may be referred to as "temporal offset candidate" for short), the relative filling order of the temporal and its offset candidates and other candidates may remain unchanged. After the temporal candidates undergo duplicate CCP model checking, they are filled after the spatially adjacent candidates and before the spatially non-adjacent candidates; after the temporal offset candidates undergo duplicate CCP model checking, they are filled after the history candidates and before the predefined candidates.
[0419] It is further understandable that, in the embodiments of the present application, when adding one or more pieces of temporal candidate inter-component prediction model information to the second inter-component prediction merge list, the one or more pieces of temporal candidate inter-component prediction model information may include: one or more pieces of first temporal candidate inter-component prediction model information, and / or one or more pieces of second temporal candidate inter-component prediction model information; that is, all the obtained pieces of temporal candidate inter-component prediction model information may be added to the second inter-component prediction merge list.
[0420] It is further understandable that, in the embodiments of the present application, when adding one or more pieces of temporal offset candidate inter-component prediction model information to the second inter-component prediction merge list, the one or more pieces of temporal offset candidate inter-component prediction model information may include: one or more pieces of first temporal offset candidate inter-component prediction model information, and / or one or more pieces of second temporal offset candidate inter-component prediction model information; that is, all the obtained pieces of temporal offset candidate inter-component prediction model information may be added to the second inter-component prediction merge list.
[0421] Considering that the maximum length of the second inter-component prediction merge list is limited, directly expanding the number of collocated pictures may cause the list to be filled in advance, which results in other types of candidates, such as spatially non-adjacent candidates, history candidates and predefined candidates, not being added to the candidate list, and limits the improvement of coding performance. Several implementations are provided below to solve the problems that may be caused by directly expanding the temporal and its offset candidates.
[0422] In a possible implementation, the maximum length of the second inter-component prediction merge list is extended. For example, the maximum length of the list may be extended from the original 12 to N, where N is an integer greater than 12. In this way, after the history-based CCP candidates are filled, if the number of available candidates maxCandNum is less than N, predefined CCP candidates may be added to the end of the list until the length of the list meets the condition of being N.
[0423] In another possible implementation, the obtained one or more pieces of candidate inter-component prediction model information may be sorted and then added to the second inter-component prediction merge list.
[0424] In some embodiments, the method may further include: determining a first extended candidate list for the current block, wherein the first extended candidate list includes: one or more first temporal candidate inter-component prediction model information, and / or one or more second temporal candidate inter-component prediction model information; performing template cost calculation on at least one candidate inter-component prediction model information in the first extended candidate list to determine the template cost value of each of the at least one candidate inter-component prediction model information in the first extended candidate list; sorting the at least one candidate inter-component prediction model information in the first extended candidate list in ascending order of template cost value, and determining the top m candidate inter-component prediction model information as one or more temporal candidate inter-component prediction model information for the current block; wherein m is a positive integer.
[0425] It should be noted that, in this embodiment, a first extended candidate list is constructed using the obtained temporal candidates (e.g., one or more first temporal candidates obtained based on the first co-located image and / or one or more second temporal candidates obtained based on the second co-located image). The top m temporal candidates with lower template costs for the current block are then added to the Inter CCP merge list. The relative filling position remains unchanged, still located after the spatially adjacent candidates and before the spatially non-adjacent candidates.
[0426] In some embodiments, the method may further include: determining a second extended candidate list for the current block, wherein the second extended candidate list includes: one or more first time-domain offset candidate component prediction model information, and / or one or more second time-domain offset candidate component prediction model information; performing template cost calculation on at least one candidate component prediction model information in the second extended candidate list to determine the template cost value of each of the at least one candidate component prediction model information in the second extended candidate list; sorting the at least one candidate component prediction model information in the second extended candidate list in ascending order of template cost value, and determining the top n candidate component prediction model information as one or more time-domain offset candidate component prediction model information for the current block; wherein n is a positive integer.
[0427] It should be noted that, in this embodiment, a second extended candidate list is constructed using the obtained temporal offset candidates (e.g., one or more first temporal offset candidates obtained based on the first co-located image and / or one or more second temporal offset candidates obtained based on the second co-located image). The top n temporal offset candidates with lower template costs for the current block are added to the Inter CCP merge list. The relative filling position remains unchanged, still following the historical candidates and before the predefined candidates.
[0428] In some embodiments, the method may further include: determining a third extended candidate list for the current block, wherein the third extended candidate list includes at least one of the following: one or more first temporal candidate component prediction model information, one or more second temporal candidate component prediction model information, one or more first temporal offset candidate component prediction model information, and one or more second temporal offset candidate component prediction model information; performing template cost calculation on at least one candidate component prediction model information in the third extended candidate list to determine the template cost value of each of the at least one candidate component prediction model information in the third extended candidate list; sorting the at least one candidate component prediction model information in the third extended candidate list in ascending order of template cost value, and determining the top l candidate component prediction model information as one or more candidate component prediction model information for the current block; wherein l is a positive integer.
[0429] It should be noted that, in the embodiments of this application, a third extended candidate list is constructed using these obtained temporal candidates (e.g., one or more first temporal candidates, first temporal offset candidates obtained based on the first co-located image, and / or one or more second temporal candidates, second temporal offset candidates, etc. obtained based on the second co-located image). The top n temporal candidates with lower template costs for the current block are added to the Inter CCP merge list. The relative filling position can be after spatially adjacent candidates and before spatially non-adjacent candidates, or it can be after historical candidates and before predefined candidates; no limitation is made here.
[0430] It should also be noted that the template cost calculation here can be done using SAD cost calculation, SATD cost calculation, or even other cost methods, without any restrictions.
[0431] S1104, determine the inter-component prediction model information of the current block according to the second inter-component prediction merging list, and perform inter-component prediction on the current block according to the inter-component prediction model information.
[0432] In this embodiment of the application, after obtaining the second inter-component prediction merging list, the inter-component prediction model information of the current block can be determined based on the second inter-component prediction merging list. Two possible implementation methods are described below.
[0433] In one possible implementation, the encoding cost of the current block is calculated based on at least one candidate information in the second inter-component prediction merging list, and the cost result corresponding to each of the at least one candidate information is determined; the minimum cost result is determined based on the cost result corresponding to each of the at least one candidate information, and then the candidate information corresponding to the minimum cost result is determined as the inter-component prediction model information of the current block.
[0434] In the embodiments of this application, the encoding cost calculation here may be rate-distortion cost calculation, or it may be other cost calculations, such as SAD, SATD, etc., without any limitation.
[0435] In this implementation, the method may further include: determining the value of the second syntax element; encoding the value of the second syntax element; and writing the resulting encoded bits into the bitstream. The second syntax element indicates the index number of the inter-component prediction model information of the current block in the inter-component prediction merging list.
[0436] In another possible implementation, template cost calculation is performed on at least one candidate information in the second inter-component prediction merging list to determine the template cost value of each candidate information in the second inter-component prediction merging list; the candidate information corresponding to the smallest template cost value is determined as the inter-component prediction model information of the current block. Here, the template cost calculation can be performed using SAD, SATD, etc., but there are no limitations.
[0437] In some embodiments, performing inter-component prediction on the current block based on inter-component prediction model information may include: determining a first prediction sample of the second component of the current block based on the inter-component prediction model information and the reconstructed sample of the first component of the current block; and performing a weighted calculation on the first prediction sample of the second component of the current block and the second prediction sample of the second component of the current block to determine the prediction sample of the current block.
[0438] In this embodiment, the first component can be a luminance component, and the second component can be a chrominance component, such as a Cb component or a Cr component. Furthermore, the second predicted sample of the chrominance component of the current block is a chrominance prediction value obtained by the current block based on a conventional chrominance prediction model.
[0439] In this way, based on the obtained inter-component prediction model information and the luminance reconstruction sample of the current block, the first prediction sample of the chrominance component of the current block can be obtained; then, the first prediction sample of the chrominance component and the second prediction sample of the chrominance component are weighted and calculated to obtain the final prediction sample of the current block.
[0440] It is also understood that, in the embodiments of this application, the above technical solutions can be directly applied to all coded blocks in a non-intra image, or can be selected to be applied only to inter blocks or intra blocks in a non-intra image. In addition, the above technical solutions may also use only coded blocks of a certain size, and no limitations are made here.
[0441] This application provides an encoding method for constructing an inter-component prediction merging list. The candidate model information (especially temporal candidates and temporal offset candidates) is no longer selected from only one co-position image, but can be selected in combination with other co-position images. For example, it can be two co-position images obtained based on the indices of two co-position images in the bitstream. This increases the diversity of candidate model information such as temporal candidates and temporal offset candidates, making the construction of the inter-component prediction merging list more comprehensive, improving the accuracy of inter-component prediction, and thus improving encoding performance.
[0442] In another embodiment of this application, based on the encoding and decoding method of the foregoing embodiments, a method for expanding CCP temporal candidates for non-Intra images is proposed. This includes expanding temporal candidates and temporal offset candidates. Exemplarily, this can include two expansion methods: one method is to directly expand the temporal candidates and their offset candidates according to the inter-CCP merge candidate filling order; the other method is to add the expanded temporal candidates and their offset candidates after the historically based candidates; no limitation is made in this regard.
[0443] In some embodiments, CCP time-domain candidates and time-domain offset candidates are directly expanded according to the original CCP candidate filling order. The original inter-CCP time-domain candidates are located after spatially adjacent candidates and before spatially non-adjacent candidates. The time-domain offset candidates are located after historical candidates and before predefined candidates. This first expansion method maintains the relative filling order of the time-domain candidates and their offset candidates with other candidates. After repeated CCP model checks, the expanded time-domain candidates are filled after the original time-domain candidates and before spatially non-adjacent candidates; the expanded time-domain offset candidates, after repeated CCP model checks, can be filled after historical candidates and before predefined candidates. The specific implementation process can be as follows:
[0444] a) Extend the inter-CCP merge time-domain candidate.
[0445] In this embodiment, two reference images with the smallest POC distance relative to the current image can be selected from the reference image list as co-position images, such as the first co-position image (colpic0) and the second co-position image (colpic1). These two co-position images determine their temporal domain and offset candidates, respectively. Here, the temporal candidates are selected from the two co-position images. The position and filling order of the temporal candidates in each co-position image are consistent with Table 3 in the related art, and the inclusion order of the temporal candidates can be: C01→C02→…→C010. If C0i is outside the image / slice boundary, while C1i is inside the image / slice boundary, then C1i can be used instead of C0i, where 1≤i≤10. Otherwise, the next inclusion position will be selected.
[0446] b) Extended temporal offset candidate.
[0447] The shifted temporal candidate (i.e., the temporal offset candidate) may also be selected from the two collocated images colpic0 and colpic1. The position and filling order of the temporal candidate in each collocated image are consistent with those in the related art, the position of the collocated block in each collocated image may be offset according to a selected adjacent motion vector, and the adjacent motion vector checking order is the same as that in the related art. That is, the first adjacent motion vector MVA that satisfies that the reference image is the same as the first collocated image colpic0 is selected as the offset of the collocated block in this collocated image, then the positions of C0i and C1i in the first collocated image colpic0 may be offset according to the selected adjacent motion vector MV, and if no such motion vector is found, the temporal offset candidate of the first collocated image colpic0 will not be added. Similarly, the first adjacent motion vector MVA that satisfies that the reference image is the same as the second collocated image colpic1 is selected as the offset of the collocated block in this collocated image, then the positions of C0i and C1i in the second collocated image colpic1 are offset according to the selected same adjacent motion vector MVB. If no such motion vector is found, the temporal offset candidate of the second collocated image colpic1 will not be added. Wherein, the first motion vector that uses the collocated image as the reference image is selected as the adjacent motion vector for offsetting.
[0448] In some embodiments, the directly extended technical solution may be further optimized. Since the maximum length of the Inter CCP merge list is limited, directly extending the number of collocated reference images may cause the list to be filled in advance, so that other types of candidates such as spatial non-adjacent candidates, history-based candidates and predefined candidates are not added to the candidate list, which limits the improvement of coding performance.
[0449] Aiming at the problems that may be caused by the above direct extension of the temporal domain and its offset candidates, several manners are proposed herein to further improve the coding performance.
[0450] Manner 1: Extend the size of the Inter CCP merge list.
[0451] To retain the candidates in the related art, the maximum size of the inter CCP merge candidate may be extended from the original 12 to N (N>12). After the history-based CCP candidates are filled, if the number of available candidates maxCandNum<N, default CCP candidates may be added at the end of the list until the length of the list meets the condition that the length is N.
[0452] Method 2: Sort the extended time domain and its offset candidates and add them to the Inter CCP merge list.
[0453] For example, an extended CCP merge list (i.e., the aforementioned first extended candidate list) is constructed using extended temporal candidates. The top m extended temporal candidates with lower template costs for the chroma inter block are added to the Inter CCP merge list. The relative filling position remains unchanged; it can still be placed after the spatially adjacent candidates and before the spatially non-adjacent candidates.
[0454] For example, an extended CCP merge list (i.e., the aforementioned second extended candidate list) is constructed using extended temporal offset candidates. The top n extended temporal offset candidates with lower template costs for the chroma inter block are added to the Inter CCP merge list. The relative positions of the fill remain unchanged; they can still be placed after the historical inter CCP merge candidates or before the predefined inter CCP merge candidates.
[0455] It is understood that, in the embodiments of this application, the technical solutions of the embodiments of this application can be directly used for all coded blocks in non-intra images, or can be selected to be used only for inter blocks or intra blocks in non-intra images; or the technical solutions of the embodiments of this application may only use coded blocks of a certain size, and no limitation is made here.
[0456] For example, in this embodiment of the application, the technical solution of directly extending the time domain and its offset candidates in the inter-CCP merge list is implemented on the Beyond VVC reference software. The test sequence required by JVET is then tested under random access conditions, and the test results are shown in Table 4. As can be seen from the data in Table 4, this solution improves coding performance.
[0457] Table 4
[0458] In the embodiments of this application, the specific implementation of the foregoing embodiments is described in detail through the above embodiments. It can be seen that, according to the technical solution of the foregoing embodiments, the temporal and offset candidates in the inter CCP merge list are expanded and adaptively filled into the inter CCP merge list, thereby further increasing the temporal candidates and temporal offset candidates, thereby increasing the diversity of temporal candidates and temporal offset candidates, improving the accuracy of inter-component prediction, and thus improving coding performance.
[0459] In another embodiment of this application, based on the same inventive concept as the foregoing embodiments, FIG12 is a schematic diagram of the composition structure of an encoder provided in an embodiment of this application. As shown in FIG12, the encoder 100 may include a first determining unit 1201, a first predicting unit 1202, and an encoding unit 1203.
[0460] In one possible implementation, the first determining unit 1201 is configured to determine one or more candidate inter-component prediction model information based on at least one co-position image of the current block; wherein the at least one co-position image includes a first reference image in the reference image list that has the smallest playback order distance from the current image where the current block is located; and to determine a first inter-component prediction merging list of the current block based on the one or more candidate inter-component prediction model information; the first prediction unit 1202 is configured to determine the inter-component prediction model information of the current block based on the first inter-component prediction merging list, and to perform inter-component prediction on the current block based on the inter-component prediction model information.
[0461] In another possible implementation, the first determining unit 1201 is configured to determine two co-position images of the current block; determine one or more candidate inter-component prediction model information based on the two co-position images; and determine a second inter-component prediction merging list of the current block based on the one or more candidate inter-component prediction model information; the first prediction unit 1202 is configured to determine the inter-component prediction model information of the current block based on the second inter-component prediction merging list, and perform inter-component prediction on the current block based on the inter-component prediction model information.
[0462] In some embodiments, the first determining unit 1201 is further configured to determine a reference image list for the current block, wherein the reference image list includes a plurality of candidate reference images; determine a first reference image and a second reference image from the reference image list based on the playback order distance between the plurality of candidate reference images in the reference image list and the current image where the current block is located; and determine the first reference image as the first co-position image of the current block, and determine the second reference image as the second co-position image of the current block.
[0463] In some embodiments, the first determining unit 1201 is further configured to determine two co-position image indices of the current block; wherein the two co-position image indices include a first co-position image index and a second co-position image index, and the first co-position image index is used to indicate the index number of the first reference image in the reference image list, and the second co-position image index is used to indicate the index number of the second reference image in the reference image list; the encoding unit 1203 is configured to encode the two co-position image indices and write the obtained encoded bits into the bitstream.
[0464] It should be noted that those skilled in the art should understand that the device description of the encoder in the embodiments of this application can be understood with reference to the relevant description of the encoding method described in the foregoing embodiments.
[0465] It should also be noted that, in the embodiments of this application, a "unit" can be a portion of a circuit, a portion of a processor, a portion of a program or software, etc., and can also be a module or a non-modular one. Moreover, the components in this embodiment can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit described above can be implemented in hardware or in the form of a software functional module.
[0466] In another embodiment of this application, FIG13 is a schematic diagram of the hardware structure of an encoder provided in an embodiment of this application. As shown in FIG13, the encoder 100 may include: a first communication interface 1301, a first memory 1302, and a first processor 1303; the various components are coupled together through a first bus system 1304. It is understood that the first bus system 1304 is used to realize the connection and communication between these components. In addition to a data bus, the first bus system 1304 also includes a power bus, a control bus, and a status signal bus. However, for the sake of clarity, all buses are labeled as the first bus system 1304 in FIG13. Wherein:
[0467] The first communication interface 1301 is used for receiving and sending signals during the process of sending and receiving information with other external network elements;
[0468] The first memory 1302 is used to store computer programs that can run on the first processor 1303;
[0469] The first processor 1303 is configured to, when running the computer program, perform the following: determining one or more candidate inter-component prediction model information based on at least one co-position image of the current block; wherein the at least one co-position image includes a first reference image in the reference image list that has the smallest playback order distance from the current image where the current block is located; determining a first inter-component prediction merging list of the current block based on the one or more candidate inter-component prediction model information; determining inter-component prediction model information of the current block based on the first inter-component prediction merging list; and performing inter-component prediction on the current block based on the inter-component prediction model information.
[0470] Alternatively, the first processor 1303 is further configured to, when running the computer program, perform: determining two co-position images of the current block; determining one or more candidate inter-component prediction model information based on the two co-position images; determining a second inter-component prediction merging list of the current block based on the one or more candidate inter-component prediction model information; determining inter-component prediction model information of the current block based on the second inter-component prediction merging list; and performing inter-component prediction on the current block based on the inter-component prediction model information.
[0471] It is understood that the first memory 1302 in this embodiment can be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. The non-volatile memory can 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. The volatile memory can be random access memory (RAM), which is used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), Synchronous DRAM (SDRAM), Double Data Rate SDRAM (DDRSDRAM), Enhanced Synchronous DRAM (ESDRAM), Synchlink DRAM (SLDRAM), and Direct Rambus RAM (DRRAM). The first memory 1302 of the system and method described in this application is intended to include, but is not limited to, these and any other suitable types of memory.
[0472] The first processor 1303 may be an integrated circuit chip with signal processing capabilities. In implementation, each step of the above method can be completed by the integrated logic circuitry in the hardware of the first processor 1303 or by instructions in software form. The first processor 1303 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 devices, discrete gate or transistor logic devices, or discrete hardware components. It can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor may be a microprocessor or any conventional processor. The steps of the methods disclosed in the embodiments of this application can be directly embodied in the execution of a hardware decoding processor, or executed by a combination of hardware and software modules in the decoding processor. The software modules may reside in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. The storage medium is located in the first memory 1302. The first processor 1303 reads the information in the first memory 1302 and completes the steps of the above method in conjunction with its hardware.
[0473] It is understood that the embodiments described in this application can be implemented using hardware, software, firmware, middleware, microcode, or a combination thereof. For hardware implementation, the processing unit can be implemented in one or more application-specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontrollers, microprocessors, other electronic units for performing the functions described in this application, or combinations thereof. For software implementation, the technology described in this application can be implemented through modules (e.g., procedures, functions, etc.) that perform the functions described in this application. Software code can be stored in memory and executed by a processor. The memory can be implemented in the processor or external to the processor.
[0474] Alternatively, as another embodiment, the first processor 1303 is further configured to execute the encoding method described in any of the foregoing embodiments when running the computer program.
[0475] This embodiment provides an encoder in which, for the construction of the inter-component prediction merging list, the candidate model information (especially temporal candidates and temporal offset candidates) is no longer selected from only one co-position image, but can be selected in combination with other co-position images, such as co-position images obtained based on the indices of two co-position images in the bitstream, or reference images in the reference image list that have the smallest playback order distance from the current image, etc. This increases the diversity of candidate model information such as temporal candidates and temporal offset candidates, making the construction of the inter-component prediction merging list more comprehensive, improving the accuracy of inter-component prediction, and thus improving coding performance.
[0476] In another embodiment of this application, based on the same inventive concept as the foregoing embodiments, FIG14 is a schematic diagram of the composition structure of a decoder provided in an embodiment of this application. As shown in FIG14, the decoder 200 may include a second determining unit 1401, a second predicting unit 1402, and a decoding unit 1403.
[0477] In one possible implementation, the second determining unit 1401 is configured to determine one or more candidate inter-component prediction model information based on at least one co-position image of the current block; wherein the at least one co-position image includes a first reference image in the reference image list that has the smallest playback order distance from the current image where the current block is located; and to determine a first inter-component prediction merging list of the current block based on the one or more candidate inter-component prediction model information; the second prediction unit 1402 is configured to determine the inter-component prediction model information of the current block based on the first inter-component prediction merging list, and to perform inter-component prediction on the current block based on the inter-component prediction model information.
[0478] In another possible implementation, the decoding unit 1403 is configured to parse two co-occurrence image indices in the bitstream; the second determining unit 1401 is configured to determine two co-occurrence images of the current block based on the two co-occurrence image indices; determine one or more candidate inter-component prediction model information based on the two co-occurrence images; and determine a second inter-component prediction merging list of the current block based on the one or more candidate inter-component prediction model information; the second prediction unit 1402 is configured to determine the inter-component prediction model information of the current block based on the second inter-component prediction merging list, and perform inter-component prediction on the current block based on the inter-component prediction model information.
[0479] It should be noted that those skilled in the art should understand that the device description of the decoder in the embodiments of this application can be understood with reference to the relevant description of the decoding method described in the foregoing embodiments.
[0480] It should also be noted that, in the embodiments of this application, a "unit" can be a portion of a circuit, a portion of a processor, a portion of a program or software, etc., and can also be a module or a non-modular one. Moreover, the components in this embodiment can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit described above can be implemented in hardware or in the form of a software functional module.
[0481] In another embodiment of this application, FIG15 is a schematic diagram of the hardware structure of a decoder provided in an embodiment of this application. As shown in FIG15, the decoder 200 may include: a second communication interface 1501, a second memory 1502, and a second processor 1503; the various components are coupled together through a second bus system 1504. It is understood that the second bus system 1504 is used to realize the connection and communication between these components. In addition to a data bus, the second bus system 1504 also includes a power bus, a control bus, and a status signal bus. However, for clarity, all buses are labeled as the second bus system 1504 in FIG15. Wherein:
[0482] The second communication interface 1501 is used for receiving and sending signals during the process of sending and receiving information with other external network elements;
[0483] The second memory 1502 is used to store computer programs that can run on the second processor 1503;
[0484] The second processor 1503 is configured to, when running the computer program, perform the following: determine one or more candidate inter-component prediction model information based on at least one co-position image of the current block; wherein the at least one co-position image includes a first reference image in the reference image list that has the smallest playback order distance from the current image where the current block is located; determine a first inter-component prediction merging list of the current block based on the one or more candidate inter-component prediction model information; determine inter-component prediction model information of the current block based on the first inter-component prediction merging list, and perform inter-component prediction on the current block based on the inter-component prediction model information.
[0485] Alternatively, the second processor 1503 is further configured to, when running the computer program, perform: parsing two co-occurrence image indices in the bitstream; determining two co-occurrence images of the current block based on the two co-occurrence image indices; determining one or more candidate inter-component prediction model information based on the two co-occurrence images; determining a second inter-component prediction merging list of the current block based on the one or more candidate inter-component prediction model information; determining inter-component prediction model information of the current block based on the second inter-component prediction merging list; and performing inter-component prediction on the current block based on the inter-component prediction model information.
[0486] Alternatively, as another embodiment, the second processor 1503 is also configured to execute the decoding method described in any of the foregoing embodiments when running the computer program.
[0487] It is understood that the second memory 1502 has similar hardware functions to the first memory 1302, and the second processor 1503 has similar hardware functions to the first processor 1303; these will not be described in detail here.
[0488] This embodiment provides a decoder in which, for the construction of the inter-component prediction merging list, the candidate model information (especially temporal candidates and temporal offset candidates) is no longer selected from only one co-position image, but can be selected in combination with other co-position images, such as co-position images obtained based on the indices of two co-position images in the bitstream, or reference images in the reference image list that have the smallest playback order distance from the current image, etc. This increases the diversity of candidate model information such as temporal candidates and temporal offset candidates, making the construction of the inter-component prediction merging list more comprehensive, improving the accuracy of inter-component prediction, and thus improving decoding performance.
[0489] In another embodiment of this application, FIG16 is a schematic diagram of the composition structure of an encoding and decoding system provided in an embodiment of this application. As shown in FIG16, the encoding and decoding system 160 may include an encoder 1601 and a decoder 1602.
[0490] In this embodiment, encoder 1601 can be any of the encoders described in the foregoing embodiments, and decoder 1602 can be any of the decoders described in the foregoing embodiments.
[0491] In some embodiments, this application also provides a computer-readable storage medium storing a computer program thereon. When executed by a processor, the computer program implements the method as described in any of the foregoing embodiments. Specifically, when executed by a first processor, the computer program implements the encoding method as described in any of the foregoing embodiments, or when executed by a second processor, it implements the decoding method as described in any of the foregoing embodiments.
[0492] In some embodiments, this application also provides a computer program product, including a computer program or instructions. When executed by a processor, the computer program or instructions implement the method as described in any of the foregoing embodiments. Specifically, when executed by a first processor, the computer program or instructions implement the encoding method as described in any of the foregoing embodiments, or when executed by a second processor, they implement the decoding method as described in any of the foregoing embodiments.
[0493] In some embodiments, this application also provides a computer program that, when executed by a processor, implements the method as described in any of the foregoing embodiments. Specifically, when executed by a first processor, the computer program or instructions implement the encoding method as described in any of the foregoing embodiments, or when executed by a second processor, implement the decoding method as described in any of the foregoing embodiments.
[0494] In some embodiments, this application also provides a computer-readable storage medium storing a bitstream thereon. The bitstream is generated by performing the steps of the encoding method as described in any of the foregoing embodiments.
[0495] In this embodiment of the application, the information to be encoded in the encoding method includes at least one of the following: reference image list indication information, the value of a first syntax element, the value of a second syntax element, and two co-position image indices (e.g., a first co-position image index and a second co-position image index). Here, this information to be encoded is processed and written into the bitstream.
[0496] Those skilled in the art will recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed in this application can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0497] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working process of the above-described apparatus and unit can be referred to the corresponding process in the foregoing method embodiments, and will not be repeated here.
[0498] In the several embodiments provided in this application, it should be understood that the disclosed apparatus and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or units may be electrical, mechanical, or other forms.
[0499] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0500] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. If the functions are implemented as software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes: USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, optical disks, and other media capable of storing program code.
[0501] It should be noted that, in the embodiments of this application, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element.
[0502] The sequence numbers of the embodiments in this application are for descriptive purposes only and do not represent the superiority or inferiority of the embodiments. The methods disclosed in the several method embodiments provided in this application can be arbitrarily combined to obtain new method embodiments without conflict. The features disclosed in the several product embodiments provided in this application can be arbitrarily combined to obtain new product embodiments without conflict. The features disclosed in the several method or device embodiments provided in this application can be arbitrarily combined to obtain new method or device embodiments without conflict.
[0503] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims. Industrial applicability
[0504] In this embodiment, for both the encoding and decoding ends, the candidate model information (especially temporal candidates and temporal offset candidates) for constructing the inter-component prediction merging list is no longer selected from just one co-position image, but can be selected in combination with other co-position images. For example, it can be the two reference images with the smallest playback order distance from the current image in the reference image list, or the two co-position images obtained according to the indices of two co-position images in the bitstream, etc. This can increase the diversity of candidate model information such as temporal candidates and temporal offset candidates, making the construction of the inter-component prediction merging list more comprehensive, improving the accuracy of inter-component prediction, and thus improving the encoding and decoding performance.
Claims
1. A decoding method applied to a decoder, the method comprising: Based on at least one co-positional image of the current block, determine prediction model information between one or more candidate components; wherein, the at least one co-positional image includes the first reference image in the reference image list that has the smallest playback order distance from the current image where the current block is located; Based on the one or more candidate component prediction model information, determine the first component prediction merging list for the current block; The inter-component prediction model information of the current block is determined according to the first inter-component prediction merging list, and inter-component prediction is performed on the current block according to the inter-component prediction model information.
2. The method according to claim 1, wherein, The at least one co-positional image also includes a second reference image in the reference image list that has the second smallest playback order distance from the current image where the current block is located.
3. The method according to claim 1, wherein, The at least one co-position image includes a first co-position image, and the first co-position image is determined based on the first reference image; The step of determining prediction model information between one or more candidate components based on at least one co-position image of the current block includes: Based on the first isotopic image, determine prediction model information between one or more first candidate components; The prediction model information between the one or more candidate components is determined based on the prediction model information between the one or more first candidate components.
4. The method according to claim 2, wherein, The at least one co-position image includes a first co-position image and a second co-position image, wherein the first co-position image is determined based on the first reference image, and the second co-position image is determined based on the second reference image. The step of determining prediction model information between one or more candidate components based on at least one co-position image of the current block includes: Based on the first isotopic image, determine prediction model information between one or more first candidate components; Based on the second isotopic image, determine prediction model information between one or more second candidate components; The prediction model information between the one or more candidate components is determined based on the prediction model information between the one or more first candidate components and the prediction model information between the one or more second candidate components.
5. The method according to claim 3 or 4, wherein, The step of determining prediction model information between one or more first candidate components based on the first co-located image includes: Determine at least one first-type preset position and at least one second-type preset position in the first co-position image; In a first order, the at least one first-type preset position and the at least one second-type preset position are checked sequentially to determine one or more first time-domain candidate component prediction model information; The prediction model information between the one or more first time-domain candidate components is determined based on the prediction model information between the one or more first time-domain candidate components.
6. The method according to claim 5, wherein, The step of sequentially checking the at least one first-type preset position and the at least one second-type preset position in a first order to determine one or more first time-domain candidate component prediction model information includes: When the i-th first-class preset position is within the boundary of the first co-position image, a first temporal candidate component prediction model information is determined based on the i-th first-class preset position; When the i-th first type preset position is outside the boundary of the first co-position image and the i-th second type preset position is inside the boundary of the first co-position image, a first temporal candidate component prediction model information is determined based on the i-th second type preset position. Where i is an integer greater than 0.
7. The method according to claim 5, wherein, The step of determining prediction model information between one or more first candidate components based on the first co-located image further includes: Determine the first adjacent motion vector corresponding to the current block; Based on the first adjacent motion vector, offset the at least one first type of preset position and the at least one second type of preset position to determine at least one first type of offset position and at least one second type of offset position; The at least one first-type offset position and the at least one second-type offset position are checked in sequence according to the first order to determine the prediction model information between one or more first time-domain offset candidate components; The prediction model information between the one or more first time-domain candidate components is determined based on the prediction model information between the one or more first time-domain offset candidate components and / or the prediction model information between the one or more first time-domain offset candidate components.
8. The method according to claim 7, wherein, Determining the first adjacent motion vector corresponding to the current block includes: Determine at least one preset adjacent position of the current block; The first motion vector and the second motion vector of each of the at least one preset adjacent positions are checked in the second order. When the first selected motion vector that satisfies the same conditions as the reference image and the first co-located image is detected, the first selected motion vector is taken as the first adjacent motion vector corresponding to the current block.
9. The method according to claim 7, wherein, The step of sequentially checking the at least one first-type offset position and the at least one second-type offset position in a first order to determine the prediction model information between one or more first time-domain offset candidate components includes: When the j-th first type offset position is within the boundary of the first co-position image, a first temporal offset candidate component prediction model information is determined based on the j-th first type offset position; When the j-th first type offset position is outside the boundary of the first co-position image and the j-th second type offset position is inside the boundary of the first co-position image, a first temporal offset candidate component prediction model information is determined based on the j-th second type offset position. Where j is an integer greater than 0.
10. The method according to claim 4, wherein, The step of determining one or more prediction model information between second candidate components based on the second isotopic image includes: Determine at least one third-type preset position and at least one fourth-type preset position in the second co-position image; In the first order, the at least one third-class preset position and the at least one fourth-class preset position are checked sequentially to determine one or more second time-domain candidate component prediction model information; The prediction model information between the one or more second time-domain candidate components is determined based on the prediction model information between the one or more second time-domain candidate components.
11. The method according to claim 10, wherein, The step of determining prediction model information between one or more second candidate components based on the second isotopic image further includes: Determine the second adjacent motion vector corresponding to the current block; Based on the second adjacent motion vector, offset the at least one third-type preset position and the at least one fourth-type preset position to determine at least one third-type offset position and at least one fourth-type offset position; In the first order, the at least one third-type offset position and the at least one fourth-type offset position are checked sequentially to determine the prediction model information between one or more second time-domain offset candidate components; The prediction model information between the one or more second time-domain candidate components is determined based on the prediction model information between the one or more second time-domain offset candidate components and / or the prediction model information between the one or more second time-domain offset candidate components.
12. The method according to claim 11, wherein, Determining the second adjacent motion vector corresponding to the current block includes: Determine at least one preset adjacent position of the current block; The first motion vector and the second motion vector of each of the at least one preset adjacent positions are checked in the second order. When the first selected motion vector that satisfies the same conditions as the reference image and the second co-position image is detected, the first selected motion vector is taken as the second adjacent motion vector corresponding to the current block.
13. The method according to any one of claims 1 to 12, wherein, The inter-component prediction merge list of the current block further includes at least one of the following: Real-time calculation of the prediction model information between candidate components; The prediction model information between candidate components of the spatially adjacent blocks of the current block; The inter-temporal candidate component prediction model information of the current block; The prediction model information between candidate components of spatially non-adjacent blocks of the current block; The prediction model information between historical candidate components of the current block; The inter-component prediction model information of the temporal offset candidate components of the current block; Predefined prediction model information between candidate components.
14. The method according to claim 13, wherein, The prediction model information between one or more candidate components includes: prediction model information between one or more temporal candidate components, and / or, prediction model information between one or more temporal offset candidate components. The method further includes: When constructing the first inter-component prediction merging list, the inter-component prediction model information of one or more temporal candidate components is added after adding the inter-component prediction model information of the spatially adjacent blocks of the current block; and / or, When constructing the first inter-component prediction merging list, the one or more temporal offset inter-component prediction model information are added after adding the historical inter-component prediction model information of the current block.
15. The method according to claim 14, wherein, The prediction model information between one or more temporal candidate components includes: one or more first temporal candidate component prediction model information, and / or one or more second temporal candidate component prediction model information; The prediction model information between one or more time-domain offset candidate components includes: one or more first time-domain offset candidate component prediction model information, and / or one or more second time-domain offset candidate component prediction model information.
16. The method of claim 14, wherein, The method further includes: Determine a first extended candidate list for the current block, wherein the first extended candidate list includes: one or more first temporal candidate component prediction model information, and / or one or more second temporal candidate component prediction model information; Template cost calculation is performed on the prediction model information between at least one candidate component in the first extended candidate list to determine the template cost value of each of the prediction model information between at least one candidate component in the first extended candidate list. The inter-component prediction model information of at least one candidate in the first extended candidate list is sorted in ascending order of the template value, and the top m inter-component prediction model information of the sorted list is determined as one or more temporal inter-component prediction model information of the current block; where m is a positive integer.
17. The method of claim 14, wherein, The method further includes: Determine a second extended candidate list for the current block, wherein the second extended candidate list includes: one or more first time-domain offset candidate component prediction model information, and / or one or more second time-domain offset candidate component prediction model information; Template cost calculation is performed on the prediction model information between at least one candidate component in the second extended candidate list to determine the template cost value of each prediction model information between at least one candidate component in the second extended candidate list. The inter-component prediction model information of at least one candidate in the second extended candidate list is sorted in ascending order of the template value, and the top n inter-component prediction model information are determined as one or more temporal offset inter-component prediction model information of the current block; where n is a positive integer.
18. The method according to claim 14, wherein, The method further includes: A third extended candidate list is determined for the current block, wherein the third extended candidate list includes at least one of the following: one or more first time-domain candidate component prediction model information, one or more second time-domain candidate component prediction model information, one or more first time-domain offset candidate component prediction model information, and one or more second time-domain offset candidate component prediction model information; Template cost calculation is performed on the prediction model information between at least one candidate component in the third extended candidate list to determine the template cost value of each prediction model information between at least one candidate component in the third extended candidate list. The inter-component prediction model information of at least one candidate in the third extended candidate list is sorted in ascending order of the template value, and the top l inter-component prediction model information is determined as one or more inter-component prediction model information of the current block; where l is a positive integer.
19. The method according to any one of claims 1 to 18, wherein, The step of performing inter-component prediction on the current block based on the inter-component prediction model information includes: Based on the inter-component prediction model information and the reconstructed sample of the first component of the current block, determine the first prediction sample of the second component of the current block; The first prediction sample of the second component of the current block and the second prediction sample of the second component of the current block are weighted and calculated to determine the prediction sample of the current block.
20. An encoding method applied to an encoder, the method comprising: Based on at least one co-positional image of the current block, determine prediction model information between one or more candidate components; wherein, the at least one co-positional image includes the first reference image in the reference image list that has the smallest playback order distance from the current image where the current block is located; Based on the one or more candidate component prediction model information, determine the first component prediction merging list for the current block; The inter-component prediction model information of the current block is determined according to the first inter-component prediction merging list, and inter-component prediction is performed on the current block according to the inter-component prediction model information.
21. The method according to claim 20, wherein, The at least one co-positional image also includes a second reference image in the reference image list that has the second smallest playback order distance from the current image where the current block is located.
22. The method according to claim 20, wherein, The at least one co-position image includes a first co-position image, and the first co-position image is determined based on the first reference image; The step of determining prediction model information between one or more candidate components based on at least one co-position image of the current block includes: Based on the first isotopic image, determine prediction model information between one or more first candidate components; The prediction model information between the one or more candidate components is determined based on the prediction model information between the one or more first candidate components.
23. The method according to claim 20, wherein, The at least one co-position image includes a first co-position image and a second co-position image, wherein the first co-position image is determined based on the first reference image, and the second co-position image is determined based on the second reference image. The step of determining prediction model information between one or more candidate components based on at least one co-position image of the current block includes: Based on the first isotopic image, determine prediction model information between one or more first candidate components; Based on the second isotopic image, determine prediction model information between one or more second candidate components; The prediction model information between the one or more candidate components is determined based on the prediction model information between the one or more first candidate components and the prediction model information between the one or more second candidate components.
24. The method according to claim 22 or 23, wherein, The step of determining prediction model information between one or more first candidate components based on the first co-located image includes: Determine at least one first-type preset position and at least one second-type preset position in the first co-position image; In a first order, the at least one first-type preset position and the at least one second-type preset position are checked sequentially to determine one or more first time-domain candidate component prediction model information; The prediction model information between the one or more first time-domain candidate components is determined based on the prediction model information between the one or more first time-domain candidate components.
25. The method according to claim 24, wherein, The step of sequentially checking the at least one first-type preset position and the at least one second-type preset position in a first order to determine one or more first time-domain candidate component prediction model information includes: When the i-th first-class preset position is within the boundary of the first co-position image, a first temporal candidate component prediction model information is determined based on the i-th first-class preset position; When the i-th first type preset position is outside the boundary of the first co-position image and the i-th second type preset position is inside the boundary of the first co-position image, a first temporal candidate component prediction model information is determined based on the i-th second type preset position. Where i is an integer greater than 0.
26. The method of claim 24, wherein, The step of determining prediction model information between one or more first candidate components based on the first co-located image further includes: Determine the first adjacent motion vector corresponding to the current block; Based on the first adjacent motion vector, offset the at least one first type of preset position and the at least one second type of preset position to determine at least one first type of offset position and at least one second type of offset position; The at least one first-type offset position and the at least one second-type offset position are checked in sequence according to the first order to determine the prediction model information between one or more first time-domain offset candidate components; The prediction model information between the one or more first time-domain candidate components is determined based on the prediction model information between the one or more first time-domain offset candidate components and / or the prediction model information between the one or more first time-domain offset candidate components.
27. The method according to claim 26, wherein, Determining the first adjacent motion vector corresponding to the current block includes: Determine at least one preset adjacent position of the current block; The first motion vector and the second motion vector of each of the at least one preset adjacent positions are checked in the second order. When the first selected motion vector that satisfies the same conditions as the reference image and the first co-located image is detected, the first selected motion vector is taken as the first adjacent motion vector corresponding to the current block.
28. The method according to claim 26, wherein, The step of sequentially checking the at least one first-type offset position and the at least one second-type offset position in a first order to determine the prediction model information between one or more first time-domain offset candidate components includes: When the j-th first type offset position is within the boundary of the first co-position image, a first temporal offset candidate component prediction model information is determined based on the j-th first type offset position; When the j-th first type offset position is outside the boundary of the first co-position image and the j-th second type offset position is inside the boundary of the first co-position image, a first temporal offset candidate component prediction model information is determined based on the j-th second type offset position. Where j is an integer greater than 0.
29. The method according to claim 23, wherein, The step of determining one or more prediction model information between second candidate components based on the second isotopic image includes: Determine at least one third-type preset position and at least one fourth-type preset position in the second co-position image; In the first order, the at least one third-class preset position and the at least one fourth-class preset position are checked sequentially to determine one or more second time-domain candidate component prediction model information; The prediction model information between the one or more second time-domain candidate components is determined based on the prediction model information between the one or more second time-domain candidate components.
30. The method according to claim 29, wherein, The step of determining prediction model information between one or more second candidate components based on the second isotopic image further includes: Determine the second adjacent motion vector corresponding to the current block; Based on the second adjacent motion vector, offset the at least one third-type preset position and the at least one fourth-type preset position to determine at least one third-type offset position and at least one fourth-type offset position; In the first order, the at least one third-type offset position and the at least one fourth-type offset position are checked sequentially to determine the prediction model information between one or more second time-domain offset candidate components; The prediction model information between the one or more second time-domain candidate components is determined based on the prediction model information between the one or more second time-domain offset candidate components and / or the prediction model information between the one or more second time-domain offset candidate components.
31. The method according to claim 30, wherein, Determining the second adjacent motion vector corresponding to the current block includes: Determine at least one preset adjacent position of the current block; The first motion vector and the second motion vector of each of the at least one preset adjacent positions are checked in the second order. When the first selected motion vector that satisfies the same conditions as the reference image and the second co-position image is detected, the first selected motion vector is taken as the second adjacent motion vector corresponding to the current block.
32. The method according to any one of claims 20 to 31, wherein, The inter-component prediction merge list of the current block further includes at least one of the following: Real-time calculation of the prediction model information between candidate components; The prediction model information between candidate components of the spatially adjacent blocks of the current block; The inter-temporal candidate component prediction model information of the current block; The prediction model information between candidate components of spatially non-adjacent blocks of the current block; The prediction model information between historical candidate components of the current block; The inter-component prediction model information of the temporal offset candidate components of the current block; Predefined prediction model information between candidate components.
33. The method according to claim 32, wherein, The prediction model information between one or more candidate components includes: prediction model information between one or more temporal candidate components, and / or, prediction model information between one or more temporal offset candidate components. The method further includes: When constructing the first inter-component prediction merging list, the inter-component prediction model information of one or more temporal candidate components is added after adding the inter-component prediction model information of the spatially adjacent blocks of the current block; and / or, When constructing the first inter-component prediction merging list, the one or more temporal offset inter-component prediction model information are added after adding the historical inter-component prediction model information of the current block.
34. The method according to claim 33, wherein, The prediction model information between one or more temporal candidate components includes: one or more first temporal candidate component prediction model information, and / or one or more second temporal candidate component prediction model information; The prediction model information between one or more time-domain offset candidate components includes: one or more first time-domain offset candidate component prediction model information, and / or one or more second time-domain offset candidate component prediction model information.
35. The method according to claim 33, wherein, The method further includes: Determine a first extended candidate list for the current block, wherein the first extended candidate list includes: one or more first temporal candidate component prediction model information, and / or one or more second temporal candidate component prediction model information; Template cost calculation is performed on the prediction model information between at least one candidate component in the first extended candidate list to determine the template cost value of each of the prediction model information between at least one candidate component in the first extended candidate list. The inter-component prediction model information of at least one candidate in the first extended candidate list is sorted in ascending order of the template value, and the top m inter-component prediction model information of the sorted list is determined as one or more temporal inter-component prediction model information of the current block; where m is a positive integer.
36. The method according to claim 33, wherein, The method further includes: Determine a second extended candidate list for the current block, wherein the second extended candidate list includes: one or more first time-domain offset candidate component prediction model information, and / or one or more second time-domain offset candidate component prediction model information; Template cost calculation is performed on the prediction model information between at least one candidate component in the second extended candidate list to determine the template cost value of each prediction model information between at least one candidate component in the second extended candidate list. The inter-component prediction model information of at least one candidate in the second extended candidate list is sorted in ascending order of the template value, and the top n inter-component prediction model information are determined as one or more temporal offset inter-component prediction model information of the current block; where n is a positive integer.
37. The method according to claim 33, wherein, The method further includes: A third extended candidate list is determined for the current block, wherein the third extended candidate list includes at least one of the following: one or more first time-domain candidate component prediction model information, one or more second time-domain candidate component prediction model information, one or more first time-domain offset candidate component prediction model information, and one or more second time-domain offset candidate component prediction model information; Template cost calculation is performed on the prediction model information between at least one candidate component in the third extended candidate list to determine the template cost value of each prediction model information between at least one candidate component in the third extended candidate list. The inter-component prediction model information of at least one candidate in the third extended candidate list is sorted in ascending order of the template value, and the top l inter-component prediction model information is determined as one or more inter-component prediction model information of the current block; where l is a positive integer.
38. The method according to any one of claims 20 to 37, wherein, The step of performing inter-component prediction on the current block based on the inter-component prediction model information includes: Based on the inter-component prediction model information and the reconstructed sample of the first component of the current block, determine the first prediction sample of the second component of the current block; The first prediction sample of the second component of the current block and the second prediction sample of the second component of the current block are weighted and calculated to determine the prediction sample of the current block.
39. A decoding method applied to a decoder, the method comprising: Parse the indices of two co-located images in the bitstream; Based on the two corresponding image indices, determine the two corresponding images of the current block; Based on the two co-located images, determine the prediction model information between one or more candidate components; Based on the one or more candidate component prediction model information, determine the second component prediction merging list for the current block; The inter-component prediction model information of the current block is determined according to the second inter-component prediction merging list, and inter-component prediction is performed on the current block according to the inter-component prediction model information.
40. The method according to claim 39, wherein, The two co-position image indices include a first co-position image index and a second co-position image index; determining the two co-position images of the current block based on the two co-position image indices includes: The first co-position image of the current block is determined based on the first co-position image index and the reference image list; The second corresponding image of the current block is determined based on the second corresponding image index and the reference image list.
41. The method according to claim 40, wherein, The step of determining prediction model information between one or more candidate components based on the two co-located images includes: Based on the first isotopic image, determine prediction model information between one or more first candidate components; Based on the second isotopic image, determine prediction model information between one or more second candidate components; The prediction model information between the one or more candidate components is determined based on the prediction model information between the one or more first candidate components and the prediction model information between the one or more second candidate components.
42. The method according to claim 41, wherein, The step of determining prediction model information between one or more first candidate components based on the first co-located image includes: Determine at least one first-type preset position and at least one second-type preset position in the first co-position image; In a first order, the at least one first-type preset position and the at least one second-type preset position are checked sequentially to determine one or more first time-domain candidate component prediction model information; The prediction model information between the one or more first time-domain candidate components is determined based on the prediction model information between the one or more first time-domain candidate components.
43. The method according to claim 42, wherein, The step of sequentially checking the at least one first-type preset position and the at least one second-type preset position in a first order to determine one or more first time-domain candidate component prediction model information includes: When the i-th first-class preset position is within the boundary of the first co-position image, a first temporal candidate component prediction model information is determined based on the i-th first-class preset position; When the i-th first type preset position is outside the boundary of the first co-position image and the i-th second type preset position is inside the boundary of the first co-position image, a first temporal candidate component prediction model information is determined based on the i-th second type preset position. Where i is an integer greater than 0.
44. The method according to claim 42, wherein, The step of determining prediction model information between one or more first candidate components based on the first co-located image further includes: Determine the first adjacent motion vector corresponding to the current block; Based on the first adjacent motion vector, offset the at least one first type of preset position and the at least one second type of preset position to determine at least one first type of offset position and at least one second type of offset position; The at least one first-type offset position and the at least one second-type offset position are checked in sequence according to the first order to determine the prediction model information between one or more first time-domain offset candidate components; The prediction model information between the one or more first time-domain candidate components is determined based on the prediction model information between the one or more first time-domain offset candidate components and / or the prediction model information between the one or more first time-domain offset candidate components.
45. The method according to claim 44, wherein, Determining the first adjacent motion vector corresponding to the current block includes: Determine at least one preset adjacent position of the current block; The first motion vector and the second motion vector of each of the at least one preset adjacent positions are checked in the second order. When the first selected motion vector that satisfies the same conditions as the reference image and the first co-located image is detected, the first selected motion vector is taken as the first adjacent motion vector corresponding to the current block.
46. The method of claim 44, wherein, The step of sequentially checking the at least one first-type offset position and the at least one second-type offset position in a first order to determine the prediction model information between one or more first time-domain offset candidate components includes: When the j-th first type offset position is within the boundary of the first co-position image, a first temporal offset candidate component prediction model information is determined based on the j-th first type offset position; When the j-th first type offset position is outside the boundary of the first co-position image and the j-th second type offset position is inside the boundary of the first co-position image, a first temporal offset candidate component prediction model information is determined based on the j-th second type offset position. Where j is an integer greater than 0.
47. The method according to claim 41, wherein, The step of determining one or more prediction model information between second candidate components based on the second isotopic image includes: Determine at least one third-type preset position and at least one fourth-type preset position in the second co-position image; In the first order, the at least one third-class preset position and the at least one fourth-class preset position are checked sequentially to determine one or more second time-domain candidate component prediction model information; The prediction model information between the one or more second time-domain candidate components is determined based on the prediction model information between the one or more second time-domain candidate components.
48. The method according to claim 47, wherein, The step of determining prediction model information between one or more second candidate components based on the second isotopic image further includes: Determine the second adjacent motion vector corresponding to the current block; Based on the second adjacent motion vector, offset the at least one third-type preset position and the at least one fourth-type preset position to determine at least one third-type offset position and at least one fourth-type offset position; In the first order, the at least one third-type offset position and the at least one fourth-type offset position are checked sequentially to determine the prediction model information between one or more second time-domain offset candidate components; The prediction model information between the one or more second time-domain candidate components is determined based on the prediction model information between the one or more second time-domain offset candidate components and / or the prediction model information between the one or more second time-domain offset candidate components.
49. The method according to claim 48, wherein, Determining the second adjacent motion vector corresponding to the current block includes: Determine at least one preset adjacent position of the current block; The first motion vector and the second motion vector of each of the at least one preset adjacent positions are checked in the second order. When the first selected motion vector that satisfies the same conditions as the reference image and the second co-position image is detected, the first selected motion vector is taken as the second adjacent motion vector corresponding to the current block.
50. The method according to any one of claims 39 to 49, wherein, The inter-component prediction merging list of the current block further includes at least one of the following: Real-time calculation of the prediction model information between candidate components; The prediction model information between candidate components of the spatially adjacent blocks of the current block; The prediction model information between candidate components of spatially non-adjacent blocks of the current block; The prediction model information between historical candidate components of the current block; Predefined prediction model information between candidate components.
51. The method according to claim 50, wherein, The prediction model information between one or more candidate components includes: prediction model information between one or more temporal candidate components, and / or, prediction model information between one or more temporal offset candidate components. The method further includes: When constructing the second inter-component prediction merging list, the inter-component prediction model information of one or more temporal candidate components is added after adding the inter-component prediction model information of the spatially adjacent blocks of the current block; and / or, When constructing the second inter-component prediction merging list, the one or more time-domain offset inter-component prediction model information are added after adding the historical inter-component prediction model information of the current block.
52. The method according to claim 51, wherein, The prediction model information between one or more temporal candidate components includes: one or more first temporal candidate component prediction model information, and / or one or more second temporal candidate component prediction model information; The prediction model information between one or more time-domain offset candidate components includes: one or more first time-domain offset candidate component prediction model information, and / or one or more second time-domain offset candidate component prediction model information.
53. The method according to claim 51, wherein, The method further includes: Determine a first extended candidate list for the current block, wherein the first extended candidate list includes: one or more first temporal candidate component prediction model information, and / or one or more second temporal candidate component prediction model information; Template cost calculation is performed on the prediction model information between at least one candidate component in the first extended candidate list to determine the template cost value of each of the prediction model information between at least one candidate component in the first extended candidate list. The inter-component prediction model information of at least one candidate in the first extended candidate list is sorted in ascending order of the template value, and the top m inter-component prediction model information of the sorted list is determined as one or more temporal inter-component prediction model information of the current block; where m is a positive integer.
54. The method according to claim 51, wherein, The method further includes: Determine a second extended candidate list for the current block, wherein the second extended candidate list includes: one or more first time-domain offset candidate component prediction model information, and / or one or more second time-domain offset candidate component prediction model information; Template cost calculation is performed on the prediction model information between at least one candidate component in the second extended candidate list to determine the template cost value of each prediction model information between at least one candidate component in the second extended candidate list. The inter-component prediction model information of at least one candidate in the second extended candidate list is sorted in ascending order of the template value, and the top n inter-component prediction model information are determined as one or more temporal offset inter-component prediction model information of the current block; where n is a positive integer.
55. The method according to claim 51, wherein, The method further includes: A third extended candidate list is determined for the current block, wherein the third extended candidate list includes at least one of the following: one or more first time-domain candidate component prediction model information, one or more second time-domain candidate component prediction model information, one or more first time-domain offset candidate component prediction model information, and one or more second time-domain offset candidate component prediction model information; Template cost calculation is performed on the prediction model information between at least one candidate component in the third extended candidate list to determine the template cost value of each prediction model information between at least one candidate component in the third extended candidate list. The inter-component prediction model information of at least one candidate in the third extended candidate list is sorted in ascending order of the template value, and the top l inter-component prediction model information is determined as one or more inter-component prediction model information of the current block; where l is a positive integer.
56. The method according to any one of claims 39 to 55, wherein, The step of performing inter-component prediction on the current block based on the inter-component prediction model information includes: Based on the inter-component prediction model information and the reconstructed sample of the first component of the current block, determine the first prediction sample of the second component of the current block; The first prediction sample of the second component of the current block and the second prediction sample of the second component of the current block are weighted and calculated to determine the prediction sample of the current block.
57. An encoding method applied to an encoder, the method comprising: Identify the two corresponding images of the current block; Based on the two co-located images, determine the prediction model information between one or more candidate components; Based on the one or more candidate component prediction model information, determine the second component prediction merging list for the current block; The inter-component prediction model information of the current block is determined according to the second inter-component prediction merging list, and inter-component prediction is performed on the current block according to the inter-component prediction model information.
58. The method according to claim 57, wherein, Determining the two co-position images of the current block includes: Determine a list of reference images for the current block, wherein the list of reference images includes multiple candidate reference images; Based on the playback order distance between multiple candidate reference images in the reference image list and the current image where the current block is located, a first reference image and a second reference image are determined from the reference image list; The first reference image is determined as the first co-position image of the current block, and the second reference image is determined as the second co-position image of the current block.
59. The method according to claim 58, wherein, The method further includes: Determine two co-image indices for the current block; wherein the two co-image indices include a first co-image index and a second co-image index, and the first co-image index is used to indicate the index number of the first reference image in the reference image list, and the second co-image index is used to indicate the index number of the second reference image in the reference image list; The two co-located image indices are encoded, and the resulting encoded bits are written into the bitstream.
60. The method according to claim 58, wherein, The step of determining prediction model information between one or more candidate components based on the two co-located images includes: Based on the first isotopic image, determine prediction model information between one or more first candidate components; Based on the second isotopic image, determine prediction model information between one or more second candidate components; The prediction model information between the one or more candidate components is determined based on the prediction model information between the one or more first candidate components and the prediction model information between the one or more second candidate components.
61. The method according to claim 60, wherein, The step of determining prediction model information between one or more first candidate components based on the first co-located image includes: Determine at least one first-type preset position and at least one second-type preset position in the first co-position image; In a first order, the at least one first-type preset position and the at least one second-type preset position are checked sequentially to determine one or more first time-domain candidate component prediction model information; The prediction model information between the one or more first time-domain candidate components is determined based on the prediction model information between the one or more first time-domain candidate components.
62. The method according to claim 61, wherein, The step of sequentially checking the at least one first-type preset position and the at least one second-type preset position in a first order to determine one or more first time-domain candidate component prediction model information includes: When the i-th first-class preset position is within the boundary of the first co-position image, a first temporal candidate component prediction model information is determined based on the i-th first-class preset position; When the i-th first type preset position is outside the boundary of the first co-position image and the i-th second type preset position is inside the boundary of the first co-position image, a first temporal candidate component prediction model information is determined based on the i-th second type preset position. Where i is an integer greater than 0.
63. The method according to claim 61, wherein, The step of determining prediction model information between one or more first candidate components based on the first co-located image further includes: Determine the first adjacent motion vector corresponding to the current block; Based on the first adjacent motion vector, offset the at least one first type of preset position and the at least one second type of preset position to determine at least one first type of offset position and at least one second type of offset position; The at least one first-type offset position and the at least one second-type offset position are checked in sequence according to the first order to determine the prediction model information between one or more first time-domain offset candidate components; The prediction model information between the one or more first time-domain candidate components is determined based on the prediction model information between the one or more first time-domain offset candidate components and / or the prediction model information between the one or more first time-domain offset candidate components.
64. The method according to claim 63, wherein, Determining the first adjacent motion vector corresponding to the current block includes: Determine at least one preset adjacent position of the current block; The first motion vector and the second motion vector of each of the at least one preset adjacent positions are checked in the second order. When the first selected motion vector that satisfies the same conditions as the reference image and the first co-located image is detected, the first selected motion vector is taken as the first adjacent motion vector corresponding to the current block.
65. The method according to claim 63, wherein, The step of sequentially checking the at least one first-type offset position and the at least one second-type offset position in a first order to determine the prediction model information between one or more first time-domain offset candidate components includes: When the j-th first type offset position is within the boundary of the first co-position image, a first temporal offset candidate component prediction model information is determined based on the j-th first type offset position; When the j-th first type offset position is outside the boundary of the first co-position image and the j-th second type offset position is inside the boundary of the first co-position image, a first temporal offset candidate component prediction model information is determined based on the j-th second type offset position. Where j is an integer greater than 0.
66. The method of claim 60, wherein, The step of determining one or more prediction model information between second candidate components based on the second isotopic image includes: Determine at least one third-type preset position and at least one fourth-type preset position in the second co-position image; In the first order, the at least one third-class preset position and the at least one fourth-class preset position are checked sequentially to determine one or more second time-domain candidate component prediction model information; The prediction model information between the one or more second time-domain candidate components is determined based on the prediction model information between the one or more second time-domain candidate components.
67. The method according to claim 66, wherein, The step of determining prediction model information between one or more second candidate components based on the second isotopic image further includes: Determine the second adjacent motion vector corresponding to the current block; Based on the second adjacent motion vector, offset the at least one third-type preset position and the at least one fourth-type preset position to determine at least one third-type offset position and at least one fourth-type offset position; In the first order, the at least one third-type offset position and the at least one fourth-type offset position are checked sequentially to determine the prediction model information between one or more second time-domain offset candidate components; The prediction model information between the one or more second time-domain candidate components is determined based on the prediction model information between the one or more second time-domain offset candidate components and / or the prediction model information between the one or more second time-domain offset candidate components.
68. The method according to claim 67, wherein, Determining the second adjacent motion vector corresponding to the current block includes: Determine at least one preset adjacent position of the current block; The first motion vector and the second motion vector of each of the at least one preset adjacent positions are checked in the second order. When the first selected motion vector that satisfies the same conditions as the reference image and the second co-position image is detected, the first selected motion vector is taken as the second adjacent motion vector corresponding to the current block.
69. The method according to any one of claims 57 to 68, wherein, The inter-component prediction merging list of the current block further includes at least one of the following: Real-time calculation of the prediction model information between candidate components; The prediction model information between candidate components of the spatially adjacent blocks of the current block; The prediction model information between candidate components of spatially non-adjacent blocks of the current block; The prediction model information between historical candidate components of the current block; Predefined prediction model information between candidate components.
70. The method according to claim 69, wherein, The prediction model information between one or more candidate components includes: prediction model information between one or more temporal candidate components, and / or, prediction model information between one or more temporal offset candidate components. The method further includes: When constructing the second inter-component prediction merging list, the inter-component prediction model information of one or more temporal candidate components is added after adding the inter-component prediction model information of the spatially adjacent blocks of the current block; and / or, When constructing the second inter-component prediction merging list, the one or more time-domain offset inter-component prediction model information are added after adding the historical inter-component prediction model information of the current block.
71. The method according to claim 70, wherein, The prediction model information between one or more temporal candidate components includes: one or more first temporal candidate component prediction model information, and / or one or more second temporal candidate component prediction model information; The prediction model information between one or more time-domain offset candidate components includes: one or more first time-domain offset candidate component prediction model information, and / or one or more second time-domain offset candidate component prediction model information.
72. The method according to claim 70, wherein, The method further includes: Determine a first extended candidate list for the current block, wherein the first extended candidate list includes: one or more first temporal candidate component prediction model information, and / or one or more second temporal candidate component prediction model information; Template cost calculation is performed on the prediction model information between at least one candidate component in the first extended candidate list to determine the template cost value of each of the prediction model information between at least one candidate component in the first extended candidate list. The inter-component prediction model information of at least one candidate in the first extended candidate list is sorted in ascending order of the template value, and the top m inter-component prediction model information of the sorted list is determined as one or more temporal inter-component prediction model information of the current block; where m is a positive integer.
73. The method according to claim 70, wherein, The method further includes: Determine a second extended candidate list for the current block, wherein the second extended candidate list includes: one or more first time-domain offset candidate component prediction model information, and / or one or more second time-domain offset candidate component prediction model information; Template cost calculation is performed on the prediction model information between at least one candidate component in the second extended candidate list to determine the template cost value of each prediction model information between at least one candidate component in the second extended candidate list. The inter-component prediction model information of at least one candidate in the second extended candidate list is sorted in ascending order of the template value, and the top n inter-component prediction model information are determined as one or more temporal offset inter-component prediction model information of the current block; where n is a positive integer.
74. The method according to claim 70, wherein, The method further includes: A third extended candidate list is determined for the current block, wherein the third extended candidate list includes at least one of the following: one or more first time-domain candidate component prediction model information, one or more second time-domain candidate component prediction model information, one or more first time-domain offset candidate component prediction model information, and one or more second time-domain offset candidate component prediction model information; Template cost calculation is performed on the prediction model information between at least one candidate component in the third extended candidate list to determine the template cost value of each prediction model information between at least one candidate component in the third extended candidate list. The inter-component prediction model information of at least one candidate in the third extended candidate list is sorted in ascending order of the template value, and the top l inter-component prediction model information is determined as one or more inter-component prediction model information of the current block; where l is a positive integer.
75. The method according to any one of claims 57 to 74, wherein, The step of performing inter-component prediction on the current block based on the inter-component prediction model information includes: Based on the inter-component prediction model information and the reconstructed sample of the first component of the current block, determine the first prediction sample of the second component of the current block; The first prediction sample of the second component of the current block and the second prediction sample of the second component of the current block are weighted and calculated to determine the prediction sample of the current block.
76. An encoder, the encoder comprising a first determining unit and a first predicting unit, wherein: The first determining unit is configured to determine one or more candidate component prediction model information based on at least one co-position image of the current block; wherein the at least one co-position image includes a first reference image in the reference image list that has the smallest playback order distance from the current image where the current block is located; and to determine a first component prediction merging list of the current block based on the one or more candidate component prediction model information. The first prediction unit is configured to determine the inter-component prediction model information of the current block according to the first inter-component prediction merging list, and to perform inter-component prediction on the current block according to the inter-component prediction model information.
77. An encoder, the encoder comprising a first determining unit and a first predicting unit, wherein: The first determining unit is configured to determine two co-position images of the current block; Based on the two co-position images, determine one or more candidate component prediction model information; and based on the one or more candidate component prediction model information, determine the second component prediction merging list of the current block; The first prediction unit is configured to determine the inter-component prediction model information of the current block according to the second inter-component prediction merging list, and to perform inter-component prediction on the current block according to the inter-component prediction model information.
78. An encoder, the encoder comprising a first memory and a first processor, wherein: The first memory is used to store computer programs that can run on the first processor; The first processor is configured to, when running the computer program, perform the method as described in any one of claims 20 to 38, or the method as described in any one of claims 57 to 75.
79. A decoder, the decoder comprising a second determining unit and a second predicting unit, wherein: The second determining unit is configured to determine one or more candidate component prediction model information based on at least one co-position image of the current block; wherein the at least one co-position image includes a first reference image in the reference image list that has the smallest playback order distance from the current image where the current block is located; and to determine a first component prediction merging list of the current block based on the one or more candidate component prediction model information. The second prediction unit is configured to determine the inter-component prediction model information of the current block according to the first inter-component prediction merging list, and to perform inter-component prediction on the current block according to the inter-component prediction model information.
80. A decoder, the decoder comprising a decoding unit, a second determining unit, and a second predicting unit, wherein: The decoding unit is configured to parse two co-position image indices in the bitstream; The second determining unit is configured to determine two co-position images of the current block based on the two co-position image indices; Based on the two co-located images, determine the prediction model information between one or more candidate components; And based on the prediction model information between the one or more candidate components, determine the second inter-component prediction merging list for the current block; The second prediction unit is configured to determine the inter-component prediction model information of the current block according to the second inter-component prediction merging list, and to perform inter-component prediction on the current block according to the inter-component prediction model information.
81. A decoder, the decoder comprising a second memory and a second processor, wherein: The second memory is used to store computer programs that can run on the second processor; The second processor is configured to, when running the computer program, perform the method as described in any one of claims 1 to 19, or the method as described in any one of claims 39 to 56.
82. A computer-readable storage medium having a computer program stored thereon, wherein, When the computer program is executed by a processor, it implements the method as described in any one of claims 1 to 19, or the method as described in any one of claims 20 to 38, or the method as described in any one of claims 39 to 56, or the method as described in any one of claims 57 to 75.
83. A computer-readable storage medium having a bitstream stored thereon, wherein, The bitstream is generated by performing the steps of the encoding method as described in any one of claims 20 to 38, or the bitstream is generated by performing the steps of the encoding method as described in any one of claims 57 to 75.