Encoding method, decoding method, encoder, decoder, and storage medium

CN119946288BActive Publication Date: 2026-07-21GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
Filing Date
2020-04-08
Publication Date
2026-07-21

AI Technical Summary

Technical Problem

In video encoding and decoding, existing techniques fail to fully consider the probability distribution characteristics of different partitions in the binarization of motion information index values ​​in the inter-frame geometric partition prediction mode (GPM), resulting in an increase in the number of encoded bits and a reduction in encoding and decoding efficiency.

Method used

Different context probability models are used to entropy encode the first binary symbol of the motion information index value of the first and second partitions respectively, and the remaining binary symbols are encoded using a preset model to reduce the number of encoding bits.

Benefits of technology

By optimizing the encoding process, the number of bits required for encoding is reduced, thereby improving encoding and decoding performance and efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119946288B_ABST
    Figure CN119946288B_ABST
Patent Text Reader

Abstract

The embodiment of the application discloses a kind of encoding method, decoding method, encoder, decoder and storage medium, when prediction mode parameter indicates that the inter prediction value of current block is determined using geometric partition mode GPM, determine the two partitions of current block;From motion information candidate list, the motion information of two partitions is determined, the first motion information index value is set as the index sequence number value of the motion information of first partition in motion information candidate list, and the second motion information index value is set as the index sequence number value of the motion information of second partition in motion information candidate list;First motion information index value and second motion information index value are respectively binarized, to obtain first symbol string and second symbol string;The first binary symbol of first symbol string and second symbol string is respectively entropy coded using different context probability model;The binary symbol entropy coding except first binary symbol in first symbol string and second symbol string is respectively using preset model.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Case Analysis

[0002] This application is a divisional application of the patent application filed on April 8, 2020, with application number 202010271284.3 and entitled "Encoding method, decoding method, encoder, decoder and storage medium". Technical Field

[0003] This application relates to the field of encoding and decoding technology, and in particular to an encoding method, a decoding method, an encoder, a decoder, and a storage medium. Background Technology

[0004] In the field of video encoding and decoding, the encoding and decoding process for the current block can employ both intra-frame prediction and inter-frame prediction. Specifically, inter-frame prediction can use Geometrical Partitioning for Inter Blocks (GEO), also known as GPM prediction mode. This involves dividing the current block into two non-rectangular partitions, performing predictions on each partition separately, and then weighted and fused to obtain the inter-frame prediction value for the current block.

[0005] However, for these two partitions, in the syntax element description, the first bit of the binaryized motion information index value of the first partition (represented by merge_gpm_idx0[xCb][yCb]) and the motion information index value of the second partition (represented by merge_gpm_idx1[xCb][yCb]) is encoded using the same context probability model, but these syntax element values ​​do not have the same probability distribution, which will increase the number of encoded bits; in addition, the second bit after binaryization is encoded using an equal probability model, which will still increase the number of encoded bits since the probability distribution is not fully considered. Summary of the Invention

[0006] This application proposes an encoding method, a decoding method, an encoder, a decoder, and a storage medium, which fully utilizes the probability distribution characteristics of the motion information index values ​​of the first partition and / or the motion information index values ​​of the second partition in the first bit, the second bit, or each bit after binarization, thereby reducing the number of bits required for encoding and improving encoding and decoding performance.

[0007] The technical solution of this application embodiment is implemented as follows:

[0008] In a first aspect, embodiments of this application provide an encoding method applied to an encoder, the method comprising:

[0009] Determine the prediction mode parameters for the current block;

[0010] When the prediction mode parameter indicates that the inter-frame prediction value of the current block is determined using the geometric partitioning mode (GPM), the two partitions of the current block are determined;

[0011] From the motion information candidate list, determine the motion information of the two partitions, and set the first motion information index value as the index number value of the motion information of the first partition in the motion information candidate list, and set the second motion information index value as the index number value of the motion information of the second partition in the motion information candidate list;

[0012] The first motion information index value and the second motion information index value are binarized respectively to obtain a first symbol string and a second symbol string; wherein the symbol string contains one or more binary symbols;

[0013] The first binary symbol of the first symbol string and the second symbol string are entropy encoded using different context probability models respectively;

[0014] Entropy encoding is performed on the first symbol string and the second symbol string, excluding the first binary symbol, using a preset model.

[0015] The bits obtained by encoding the first symbol string and the second symbol string are written into the bit stream.

[0016] Secondly, embodiments of this application provide a decoding method applied to a decoder, the method comprising:

[0017] When the prediction mode parameter indicates that the inter-frame prediction value of the current block is determined using the geometric partitioning mode (GPM), the two partitions of the current block are determined;

[0018] Parse the bitstream to determine the first symbol string and the second symbol string corresponding to the motion information index values ​​of the two partitions of the current block, wherein the first symbol string and the second symbol string contain one or more binary symbols, including: parsing the bitstream using different context probability models to obtain the first binary symbol of the first symbol string and the second symbol string; and continuing to parse the bitstream using a preset model to obtain the binary symbols in the first symbol string and the second symbol string other than the first binary symbol.

[0019] According to the preset binarization model, the corresponding first value and second value of the first symbol string and the second symbol string are determined, and the first value and the second value are set as the first motion information index value and the second motion information index value, respectively.

[0020] Based on the motion information candidate list, the motion information in the motion information candidate list indicated by the first motion information index value is determined as the motion information corresponding to the first partition, and the motion information in the motion information candidate list indicated by the second motion information index value is determined as the motion information of the second partition;

[0021] Based on the motion information corresponding to the first partition and the motion information of the second partition, the inter-frame prediction value of the current block is determined.

[0022] Thirdly, embodiments of this application provide an encoder, which includes a first determining unit, a setting unit, a processing unit, and an encoding unit; wherein,

[0023] The first determining unit is configured to determine the prediction mode parameters of the current block;

[0024] The first determining unit is further configured to determine two partitions of the current block in the image to be encoded when the prediction mode parameter indicates that the inter-frame prediction value of the current block is determined using the geometric partitioning mode (GPM).

[0025] The setting unit is configured to determine the motion information of the two partitions from the motion information candidate list, and set the first motion information index value as the index number value of the motion information of the first partition in the motion information candidate list, and set the second motion information index value as the index number value of the motion information of the second partition in the motion information candidate list.

[0026] The processing unit is configured to perform binarization processing on the first motion information index value and the second motion information index value respectively to obtain a first symbol string and a second symbol string; wherein the symbol string contains one or more binary symbols;

[0027] The encoding unit is configured to use different context probability models to entropy encode the first binary symbol of the first symbol string and the second symbol string respectively; to use a preset model to entropy encode the binary symbols in the first symbol string and the second symbol string except for the first binary symbol respectively; and to write the bits obtained after encoding the first symbol string and the second symbol string into the bit stream.

[0028] Fourthly, embodiments of this application provide an encoder, which includes a first memory and a first processor; wherein,

[0029] The first memory is used to store computer programs that can run on the first processor;

[0030] The first processor is configured to execute the method as described in the first aspect when running the computer program.

[0031] Fifthly, embodiments of this application provide a decoder, which includes a parsing unit, a second determining unit, an inverse processing unit, and a prediction unit; wherein,

[0032] The parsing unit is configured to parse the code stream and obtain the prediction mode parameters of the current block;

[0033] The second determining unit is configured to determine two partitions of the current block when the prediction mode parameter indicates that the inter-frame prediction value of the current block is determined using the geometric partitioning mode (GPM).

[0034] The parsing unit is further configured to parse the bitstream and determine the first symbol string and the second symbol string corresponding to the motion information index values ​​of the two partitions of the current block, wherein the first symbol string and the second symbol string contain one or more binary symbols, including: parsing the bitstream using different context probability models to obtain the first binary symbol of the first symbol string and the second symbol string; and continuing to parse the bitstream using a preset model to obtain the binary symbols in the first symbol string and the second symbol string other than the first binary symbol.

[0035] The inverse processing unit is configured to determine the corresponding first value and second value of the first symbol string and the second symbol string according to a preset binarization model, and set the first value and the second value as the first motion information index value and the second motion information index value, respectively.

[0036] The second determining unit is further configured to, based on the motion information candidate list, determine the motion information in the motion information candidate list indicated by the first motion information index value as the motion information corresponding to the first partition, and determine the motion information in the motion information candidate list indicated by the second motion information index value as the motion information of the second partition;

[0037] The prediction unit is configured to determine the inter-frame prediction value of the current block based on the motion information corresponding to the first partition and the motion information of the second partition.

[0038] Sixthly, embodiments of this application provide a decoder, which includes a second memory and a second processor; wherein,

[0039] The second memory is used to store computer programs that can run on the second processor;

[0040] The second processor is configured to execute the method described in the second aspect when running the computer program.

[0041] In a seventh aspect, embodiments of this application provide a computer storage medium storing a computer program that, when executed by a first processor, implements the method described in the first aspect, or when executed by a second processor, implements the method described in the second aspect.

[0042] This application provides an encoding method, decoding method, encoder, decoder, and storage medium, applied to an encoder to determine the prediction mode parameters of the current block; when the prediction mode parameters indicate that the inter-frame prediction value of the current block is determined using the Geometric Partitioning Mode (GPM), two partitions of the current block are determined; motion information of the two partitions is determined from a motion information candidate list, and a first motion information index value is set as the index number of the motion information of the first partition in the motion information candidate list, and a second motion information index value is set as the index number of the motion information of the second partition in the motion information candidate list; the first motion information index value and the second motion information index value are binarized respectively to obtain a first symbol string and a second symbol string; wherein, the symbol string contains one or more binary symbols; entropy encoding is performed on the first binary symbol of the first symbol string and the second symbol string using different context probability models respectively; entropy encoding is performed on the binary symbols in the first symbol string and the second symbol string except for the first binary symbol using a preset model respectively; the bits obtained after encoding the first symbol string and the second symbol string are written into the bitstream. Furthermore, this application provides a decoding method applied to a decoder. By parsing the bitstream, the prediction mode parameters of the current block are obtained. When the prediction mode parameters indicate that the inter-frame prediction value of the current block is determined using the Geometric Partitioning Model (GPM), two partitions of the current block are determined. The bitstream is parsed to determine the first symbol string and the second symbol string corresponding to the motion information index values ​​of the two partitions of the current block. The first symbol string and the second symbol string contain one or more binary symbols. This includes: parsing the bitstream using different context probability models to obtain the first binary symbol of the first symbol string and the second symbol string; and continuing to parse the bitstream using a preset model to obtain the first binary symbol of the first symbol string and the second symbol string. Except for the first binary symbol; according to a preset binarization model, determine the corresponding first and second values ​​of the first and second symbol strings, and set the first and second values ​​as the first motion information index value and the second motion information index value, respectively; based on the motion information candidate list, determine the motion information in the motion information candidate list indicated by the first motion information index value as the motion information corresponding to the first partition, and determine the motion information in the motion information candidate list indicated by the second motion information index value as the motion information of the second partition; determine the inter-frame prediction value of the current block according to the motion information corresponding to the first partition and the motion information of the second partition.In this way, both the encoder and decoder fully utilize the probability distribution characteristics of the motion information index values ​​of the first partition and / or the motion information index values ​​of the second partition in the first bit, the second bit, or each bit after binarization, and design corresponding up-down probability models for them. This reduces the number of bits required for encoding, improves encoding and decoding performance, and achieves the goal of improving encoding and decoding efficiency. Attached Figure Description

[0043] Figure 1A A schematic diagram of a geometric partitioning pattern provided for related technical solutions;

[0044] Figure 1B A structural schematic diagram of another geometric partitioning mode provided for related technical solutions;

[0045] Figure 2 A schematic diagram of the angle and step size of the current block is provided for the relevant technical solution;

[0046] Figure 3A A block diagram of a video encoding system provided in an embodiment of this application;

[0047] Figure 3B A block diagram of a video decoding system provided in an embodiment of this application;

[0048] Figure 4 A flowchart illustrating an encoding method provided in an embodiment of this application;

[0049] Figure 5 A schematic diagram of the adjacent block distribution for constructing a merge candidate list is provided in an embodiment of this application;

[0050] Figure 6 A flowchart illustrating a decoding method provided in an embodiment of this application;

[0051] Figure 7 A schematic diagram of the overall architecture of a GPM prediction processing flow provided for an embodiment of this application;

[0052] Figure 8 A schematic diagram of the composition structure of an encoder provided in an embodiment of this application;

[0053] Figure 9 This is a schematic diagram of the specific hardware structure of an encoder provided in an embodiment of this application;

[0054] Figure 10 A schematic diagram of the composition structure of a decoder provided in an embodiment of this application;

[0055] Figure 11 This is a schematic diagram of the specific hardware structure of a decoder provided in an embodiment of this application. Detailed Implementation

[0056] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. It is understood that the specific embodiments described herein are merely for explaining the relevant application and not for limiting the application. Furthermore, it should be noted that, for ease of description, only the parts relevant to the application are shown in the accompanying drawings.

[0057] In video images, the current coding block (CB) is generally represented by a first image component, a second image component, and a third image component. These three image components are a luminance component, a blue chrominance component, and a red chrominance component, respectively. Specifically, the luminance component is usually represented by the symbol Y, the blue chrominance component is usually represented by the symbol Cb or U, and the red chrominance component is usually represented by the symbol Cr or V. Thus, video images can be represented in YCbCr format or YUV format.

[0058] In the embodiments of this application, the first image component can be a luminance component, the second image component can be a blue chroma component, and the third image component can be a red chroma component, but the embodiments of this application do not impose specific limitations.

[0059] The following section describes the relevant technical solutions for the Geometrical Partition Mode (GPM).

[0060] In hybrid frameworks of video coding, prediction, transform, and quantization techniques are typically implemented using square and rectangular blocks as units. However, in practical applications, the edges of moving objects are not always horizontal or vertical; even if they are, they are not necessarily located exactly on the edges of divisible blocks. Since the motion vectors on both sides of a moving edge are often different, performing motion prediction and compensation as a whole block during the coding process can easily lead to large prediction errors, thus limiting coding efficiency.

[0061] In the development of the next-generation video coding standard H.266 / Versatile Video Coding (VVC), other shapes besides squares and rectangles were introduced for partitioning. The first was the introduction of Triangular Partition Mode (TPM), such as... Figure 1A As shown; in Figure 1A In this method, the diagonal or anti-diagonal of a square or rectangle is used as a dividing line to obtain triangular prediction units, which can more flexibly represent inter-frame prediction data, reduce prediction errors, and thus improve coding efficiency.

[0062] At a meeting of the Joint Video Experts Team (JVET), a more flexible inter-frame geometrical partitioning for inter-blocks (GEO) prediction mode than TPM was proposed. JVET subsequently officially adopted the GEO prediction mode into VVC and renamed it GPM. Specifically, the GPM prediction technique uses a more flexible representation method for the edges of moving objects in the image, dividing the inter-frame block into two non-rectangular partitions, such as... Figure 1B As shown, predictions are made for the two partitions after division, and then weighted and fused to obtain the inter-frame prediction value of the current block.

[0063] It should also be noted that in the current VVC, GPM prediction technology can have a total of 64 partitioning modes, and each partitioning mode corresponds to an angle (denoted by α) and a step size (denoted by ρ), that is, there can be a total of 20 angles and 4 step sizes. Figure 2 As shown, the angle α is the horizontal rotation to the right to the position of the normal to the dividing line, and the normal distance to the dividing line is ρ. Here, each combination of angle and step size can constitute a partitioning pattern. In the GPM prediction pattern, the current block can be divided into two non-rectangular partitions according to a partitioning pattern. Each partition undergoes unidirectional motion compensation to obtain a unidirectional prediction value. Finally, the unidirectional prediction values ​​of the two partitions are weighted and fused using a weight matrix to obtain the final GPM prediction value.

[0064] However, for each current block's two partitions, the motion information index values ​​of the first partition (represented by merge_gpm_idx0[xCb][yCb]) and the second partition (represented by merge_gpm_idx1[xCb][yCb]) both require binarization in the syntax element description. In the current scheme, the first bit after binarization of merge_gpm_idx0[xCb][yCb] and merge_gpm_idx1[xCb][yCb] uses the same context probability model and shares the same context probability model with the motion information index value (represented by merge_idx) of the normal inter-frame prediction mode. However, these syntax element values ​​do not have the same probability distribution, which leads to the context probability model stabilizing more slowly during encoding, increasing the number of encoded bits. In addition, for the second bit after binarization, since the probability of the second bit being 0 is much smaller than the probability of the second bit being 1, the current scheme uses an equal probability model and does not fully consider the probability distribution, thus still increasing the number of encoded bits and reducing encoding and decoding efficiency.

[0065] This application provides an encoding method applied to an encoder, which determines the prediction mode parameters of the current block; when the prediction mode parameters indicate that the inter-frame prediction value of the current block is determined using the Geometric Partitioning Mode (GPM), two partitions of the current block are determined; motion information of the two partitions is determined from a motion information candidate list, and a first motion information index value is set as the index number of the motion information of the first partition in the motion information candidate list, and a second motion information index value is set as the index number of the motion information of the second partition in the motion information candidate list; the first motion information index value and the second motion information index value are binarized respectively to obtain a first symbol string and a second symbol string; wherein, the symbol string contains one or more binary symbols; entropy encoding is performed on the first binary symbol of the first symbol string and the second symbol string respectively using different context probability models; entropy encoding is performed on the binary symbols in the first symbol string and the second symbol string except for the first binary symbol using a preset model; the bits obtained after encoding the first symbol string and the second symbol string are written into the bitstream. Furthermore, this application provides a decoding method applied to a decoder. By parsing the bitstream, the prediction mode parameters of the current block are obtained. When the prediction mode parameters indicate that the inter-frame prediction value of the current block is determined using the Geometric Partitioning Model (GPM), two partitions of the current block are determined. The bitstream is parsed to determine the first symbol string and the second symbol string corresponding to the motion information index values ​​of the two partitions of the current block. The first symbol string and the second symbol string contain one or more binary symbols. This includes: parsing the bitstream using different context probability models to obtain the first binary symbol of the first symbol string and the second symbol string; and continuing to parse the bitstream using a preset model to obtain the first binary symbol of the first symbol string and the second symbol string. The binary symbols excluding the first binary symbol are used. Based on a preset binarization model, the corresponding first and second values ​​of the first and second symbol strings are determined, and these values ​​are set as the first and second motion information index values, respectively. Based on a motion information candidate list, the motion information in the candidate list indicated by the first motion information index value is determined as the motion information corresponding to the first partition, and the motion information in the candidate list indicated by the second motion information index value is determined as the motion information of the second partition. Based on the motion information corresponding to the first partition and the motion information of the second partition, the inter-frame prediction value of the current block is determined. In this way, both the encoder and decoder fully utilize the probability distribution characteristics of the motion information index values ​​of the first and / or second partitions after binarization (first bit, second bit, or each bit) to design corresponding up-down probability models, thereby reducing the number of bits required for encoding and improving encoding / decoding performance to achieve the goal of improving encoding / decoding efficiency.

[0066] The embodiments of this application will now be described in detail with reference to the accompanying drawings.

[0067] See Figure 3A It illustrates an example block diagram of a video encoding system provided in an embodiment of this application; as shown Figure 3AAs shown, the video coding system 10 includes 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 entropy coding unit 109, and a decoded image buffer unit 110. The filtering unit 108 can implement deblocking filtering and Sample Adaptive Offset (SAO) filtering, while the entropy coding unit 109 can implement header information encoding and Context-based Adaptive Binary Arithmetic Coding (CABAC). For the input raw video signal, the system uses coding tree blocks (Coding Tree Blocks) to perform the encoding of the raw video signal. A video coding block is obtained by partitioning a TreeUnit (CTU). The residual pixel information obtained after intra-frame or inter-frame prediction is then transformed by the transform and quantization unit 101. This transformation includes converting the residual information from the pixel domain to the transform domain and quantizing the resulting transform coefficients to further reduce the bit rate. Intra-frame estimation unit 102 and intra-frame prediction unit 103 are used to perform intra-frame prediction on the video coding block. Specifically, intra-frame estimation unit 102 and intra-frame prediction unit 103 determine the intra-frame prediction mode to be used to encode the video coding block. Motion compensation unit 104 and motion estimation unit 105 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 temporal prediction information. The motion estimation performed by motion estimation unit 105 is a process of generating motion vectors, which can estimate the motion of the video coding block. Then, motion compensation unit 104 uses the motion determined by motion estimation unit 105 to perform the motion estimation. The vector performs motion compensation; after determining the intra-prediction mode, the intra-prediction unit 103 is also used to provide the selected intra-prediction data to the entropy coding unit 109, and the motion estimation unit 105 also sends the calculated motion vector data to the entropy coding unit 109; in addition, the inverse transform and inverse quantization unit 106 is used to reconstruct the video coding block, reconstructing the residual block in the pixel domain, removing block artifacts through the filter control analysis unit 107 and the filtering unit 108, and then adding the reconstructed residual block to a predictive block in the frame of the decoding image buffer unit 110 to generate the reconstructed video coding block; the entropy 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, outputting the bitstream of the video signal; and 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.

[0068] See Figure 3B It illustrates an example block diagram of a video decoding system provided in an embodiment of this application; as shown Figure 3B As shown, the video decoding system 20 includes an entropy 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. The entropy decoding unit 201 can perform header information decoding and CABAC decoding, while the filtering unit 205 can perform deblocking filtering and SAO filtering. The input video signal is processed... Figure 3A After encoding, the video signal bitstream is output. This bitstream is input into the video decoding system 20, first passing through the entropy decoding unit 201 to obtain the decoded transform coefficients. These transform coefficients are then processed by the inverse transform and inverse quantization unit 202 to generate residual blocks in the pixel domain. The intra-frame prediction unit 203 can 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 this prediction information... The 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-frame 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-frame prediction or motion compensation, and is also used for the output of the video signal, thus obtaining the recovered original video signal.

[0069] The embodiments of this application are mainly applied to the entropy coding part (i.e., as shown in the example). Figure 3A In the entropy coding unit 109 shown) and the entropy decoding part (i.e., as shown) Figure 3B (As shown in the entropy decoding unit 201); correspondingly, in the entropy encoding part, it will also affect Figure 3A The inter-frame prediction part, i.e. Figure 3A The motion compensation unit 104 and motion estimation unit 105 shown; in the entropy decoding section, it will also affect Figure 3B The inter-frame prediction part, i.e. Figure 3BThe motion compensation unit 204 is shown. In other words, the embodiments of this application can be applied to video encoding systems, video decoding systems, or both simultaneously; the embodiments of this application do not impose any limitations.

[0070] Based on the above Figure 3A For application scenario examples, see Figure 4 This illustrates a flowchart of an encoding method provided in an embodiment of this application. Figure 4 As shown, the method may include:

[0071] S401: Determine the prediction mode parameters for the current block;

[0072] It should be noted that the image to be encoded can be divided into multiple image blocks, and the current image block to be encoded can be called a coding block (CB). Here, each coding block may include a first image component, a second image component, and a third image component; and the current block is the coding block in the image to be encoded that is currently being predicted for the first image component, the second image component, or the third image component.

[0073] In this context, if the current block performs prediction of the first image component, and the first image component is the luminance component, that is, the image component to be predicted is the luminance component, then the current block can also be called the luminance block; or, if the current block performs prediction of the second image component, and the second image component is the chrominance component, that is, the image component to be predicted is the chrominance component, then the current block can also be called the chrominance block.

[0074] It should also be noted that the prediction mode parameters indicate the prediction mode adopted by the current block and the parameters associated with that prediction mode. Here, the determination of the prediction mode parameters can employ a simple decision-making strategy, such as determining them based on the magnitude of the distortion value; or it can employ a complex decision-making strategy, such as determining them based on the results of Rate Distortion Optimization (RDO). This application embodiment does not impose any limitations. Generally speaking, the RDO method can be used to determine the prediction mode parameters of the current block.

[0075] Specifically, in some embodiments, for S401, determining the prediction mode parameters of the current block may include:

[0076] The current block is pre-encoded using multiple prediction modes to obtain the rate-distortion cost corresponding to each prediction mode.

[0077] Select the minimum rate distortion value from the multiple obtained rate distortion values, and determine the prediction mode corresponding to the minimum rate distortion value as the prediction mode parameter for the current block.

[0078] In other words, on the encoder side, multiple prediction modes can be used to pre-encode the current block. These multiple prediction modes typically include inter-frame prediction modes, traditional intra-frame prediction modes, and non-traditional intra-frame prediction modes. Traditional intra-frame prediction modes can include Direct Current (DC) mode, Planar mode, and Angle mode, while non-traditional intra-frame prediction modes can include Matrix-based Intra Prediction (MIP) mode, Cross-component Linear Model Prediction (CCLM) mode, Intra Block Copy (IBC) mode, and PLT (Palette) mode, etc. Inter-frame prediction modes can include traditional inter-frame prediction modes and GPM prediction modes, etc.

[0079] In this way, after precoding the current block using multiple prediction modes, the rate-distortion cost corresponding to each prediction mode can be obtained. Then, the minimum rate-distortion cost is selected from the multiple obtained rate-distortion costs, and the prediction mode corresponding to the minimum rate-distortion cost is determined as the prediction mode parameter for the current block. Alternatively, after precoding the current block using multiple prediction modes, the distortion value corresponding to each prediction mode can be obtained. Then, the minimum distortion value is selected from the multiple obtained distortion values, and the prediction mode corresponding to the minimum distortion value is determined as the prediction mode parameter for the current block. Finally, the determined prediction mode parameter is used to encode the current block. Furthermore, this prediction mode results in a smaller prediction residual, improving coding efficiency.

[0080] S402: When the prediction mode parameter indicates that the inter-frame prediction value of the current block is determined using the geometric partitioning mode (GPM), the two partitions of the current block are determined;

[0081] It should be noted that, for the current block, if it can use the GPM prediction mode, then the current block also needs to meet certain constraints. For example, these constraints may include:

[0082] (a) The Sequence Parameter Set (SPS) allows the use of the GPM prediction mode;

[0083] (b) The encoded image region of the current block belongs to the bidirectional prediction slice (B slice);

[0084] (c) Size restrictions for the current block: width and height must both be greater than or equal to 8 and less than or equal to 64, and the aspect ratio and height-to-width ratio of the current block must both be less than 8;

[0085] (d) The current block is a non-general merge prediction, a non-merge_subblock prediction, a non-affine prediction, and a non-Composed Intra Inter Prediction (CIIP).

[0086] (e) Disable GPM prediction mode for chroma components in 4:0:0 format.

[0087] It should also be noted that if the current block meets the above constraints and the prediction mode parameters indicate that the current block adopts the GPM prediction mode under inter-frame prediction, then the angle and step size corresponding to the segmentation line in the current block can be determined, and thus the two partitions divided by the current block can be determined, such as the first partition and the second partition, which can be represented by partition A and partition B.

[0088] Further, the angle index value and step size index value are respectively set to the index numbers of the angle and step size corresponding to the segmentation line within the current block in a preset mapping table. In some embodiments, when the prediction mode parameter indicates that GPM is used to determine the inter-frame prediction value of the current block, the method may further include:

[0089] Determine the partitioning pattern of the current block;

[0090] The partitioning mode index value is determined as the index number corresponding to the partitioning mode in the preset mapping table and written into the code stream; wherein, the preset mapping table is used to indicate the correspondence between the partitioning mode index value, the angle index value and the step size index.

[0091] In other words, when the prediction mode parameters indicate that the GPM prediction mode should be used to determine the inter-frame prediction value of the current block, the partitioning mode of the current block can also be determined. Each partitioning mode corresponds to an angle and a step size. Typically, there are 64 partitioning modes in total for the GPM prediction mode. For so many partitioning modes, the RDO method can still be used to determine the partitioning mode of the current block. At the same time, the partitioning mode index value is determined as the index number of the partitioning mode in the preset mapping table and written into the bitstream. This allows the decoder to obtain the partitioning mode index value by parsing the bitstream and then determine the angle index value and step size index value of the current block by looking up the preset mapping table.

[0092] The preset mapping table used to reflect the partitioning mode index value, angle index value, and step size index is shown in Table 1. Table 1 provides a total of 64 partitioning modes, as well as the angle index value and step size index value corresponding to each partitioning mode. Here, merge_gpm_partition_idx is the partitioning mode index value, angleIdx is the angle index value, and distanceIdx is the step size index value.

[0093] Table 1

[0094]

[0095]

[0096] Thus, when the current block adopts the GPM prediction mode, the encoder side can determine the partitioning mode index value written in the bitstream according to the preset mapping table shown in Table 1; while the decoder side can obtain the partitioning mode index value selected by the current block by parsing the bitstream, and obtain the corresponding angle index value and step size index value by looking up the table, thereby determining the first partition and the second partition of the current block.

[0097] S403: Determine the motion information of the two partitions from the motion information candidate list, and set the first motion information index value to the index number value of the motion information of the first partition in the motion information candidate list, and set the second motion information index value to the index number value of the motion information of the second partition in the motion information candidate list;

[0098] It should be noted that the motion information may include at least motion vectors and reference image indices. Since the motion information of neighboring blocks is available, a motion information candidate list can be constructed for at least two partitions of the current block based on the motion information of neighboring blocks, thereby obtaining the motion information candidate list. Specifically, in some embodiments, before S402, the method may further include:

[0099] The motion information candidate list is constructed using the motion information of the adjacent blocks of the current block.

[0100] It is understandable that, on the encoder side, the GPM prediction mode and other inter-frame prediction modes can be considered as competing modes. If the current block chooses to use the GPM prediction mode, there is also an internal selection process for each parameter. Additionally, it should be noted that image blocks adjacent to the current block are called neighboring blocks; that is, in the image to be encoded, the current block and neighboring blocks have an adjacency relationship. The neighboring blocks mentioned here include spatially adjacent blocks and temporally adjacent blocks of the current block. Spatially adjacent blocks refer to encoded (or decoded) blocks located in the same image as the current block; temporally adjacent blocks refer to encoded (or decoded) blocks located in the inter-frame prediction reference image of the current block.

[0101] Here, the GPM prediction model can reuse the existing regular merge list and construct a one-way merge list belonging to GPM according to the parity check method, so that the candidate motion vector (mv) information of each of the two partitions after GPM division is selected from this one-way merge list.

[0102] Specifically, the first step is to construct the merge candidate list, which is consistent with the process of constructing the list in normal merge mode. The construction order is as follows: top adjacent block (denoted by B1), left adjacent block (denoted by A1), top right adjacent block (denoted by B0), bottom left adjacent block (denoted by A0), top left adjacent block (denoted by B2), reference frame corresponding position block (denoted by col), historical reference block (denoted by his), average motion vector of the first and second candidate mv (denoted by mv avg), and zero motion vector (denoted by 0). For example... Figure 5 As shown, it provides a schematic diagram of the distribution of adjacent blocks in constructing the merge candidate list for the current block; following this construction order, the merge candidate list for the current block, i.e., the motion information candidate list, can be obtained.

[0103] The second step involves selecting between different prediction mode parameters, including the angle and step size corresponding to different dividing lines, and the mv options for the two partitions in the merge candidate list, according to RDO or other strategies. The selection results (the angle and offset information corresponding to the dividing mode, and the reference option position information selected by partitions A and B in the merge candidate list, represented by m and n respectively) are transmitted to the decoder side in the form of syntax elements in the bitstream.

[0104] This section primarily describes the bitstream writing process for the first motion information index value (represented by merge_gpm_idx0[xCb][yCb]) and the second motion information index value (represented by merge_gpm_idx1[xCb][yCb]). After obtaining the reference option position information selected by the two A and B partitions, m and n, in the merge candidate list, the encoder can assign values ​​to the syntax elements according to the following formula:

[0105] merge_gpm_idx0[xCb][yCb]=m (1)

[0106] merge_gpm_idx1[xCb][yCb]=n-(merge_gpm_idx1[xCb][yCb]>=m)? 1:0 (2)

[0107] Then, it undergoes binarization, entropy coding, and other processing before being written into the bitstream for transmission. In other words, on the encoder side, the syntax elements of the coding unit (CU) layer corresponding to the current block are described in Table 2 below.

[0108] Table 2

[0109]

[0110] Here, ae(v) represents context-adaptive arithmetic entropy-coded syntax element, and merge_gpm_partition_idx[x0][y0] represents the partitioning mode index value in the GPM prediction mode, which is used to look up the angle and step size of the partition line in the current block in conjunction with Table 1.

[0111] In this way, after obtaining the motion information candidate list, the motion information of each partition can be determined from the motion information candidate list, and the motion information index value of each partition is set to the index number value of the corresponding determined motion information in the motion information candidate list, so as to perform binarization and binary encoding processing on the motion information index value in the future.

[0112] S404: Perform binarization processing on the first motion information index value and the second motion information index value respectively to obtain a first symbol string and a second symbol string; wherein, the symbol string contains one or more binary symbols;

[0113] It should be noted that after obtaining the first motion information index value and the second motion information index value, the two motion information index values ​​need to be binarized to obtain two sets of symbol strings (i.e., the first symbol string and the second symbol string), and each set of symbol strings can contain one or more binary symbols; here, the value of the binary symbol can be 0 or 1.

[0114] It should also be noted that m and n represent the reference option position information selected by partitions A and B in the merge candidate list respectively. Currently, the value range of m and n is 0 to MaxNumGpmMergeCand-1. Among them, MaxNumGpmMergeCand represents the length of the GPM merge candidate list, which can be 2 to 6, and is specifically set by the relevant syntax elements of the SPS layer. Before binarization, the mapping operations of equations (1) and (2) need to be performed so that the value range of merge_gpm_idx0[xCb][yCb] remains 0~MaxNumGpmMergeCand-1, while the value range of merge_gpm_idx1[xCb][yCb] is reduced to 0~MaxNumGpmMergeCand-2. Here, merge_gpm_idx0[xCb][yCb] and merge_gpm_idx1[xCb][yCb] represent the position information of the mv information selected by the two partitions divided by the partition line in the current block in the merge candidate list. For merge_gpm_idx0[xCb][yCb] and merge_gpm_idx1[xCb][yCb], both can be binarized using truncated unary codes.

[0115] Taking MaxNumGpmMergeCand=5 as an example, the binarization results of merge_gpm_idx0[xCb][yCb] are shown in Table 3, and the binarization results of merge_gpm_idx1[xCb][yCb] are shown in Table 4.

[0116] Table 3

[0117] merge_gpm_idx0[xCb][yCb] bit string 0 0 1 10 2 110 3 1110 4 1111

[0118] Table 4

[0119] merge_gpm_idx1[xCb][yCb] bit string 0 0 1 10 2 110 3 111

[0120] Furthermore, due to the design of the merge candidate list, the more likely candidate position information is placed at the beginning of the candidate list, which makes it easier to allocate smaller index values ​​to the motion information of these candidates; therefore, merge_gpm_idx0[xCb][yCb] and merge_gpm_idx1[xCb][yCb] are more likely to be 0, and fewer bits can be allocated to the index of the more likely position information during subsequent entropy encoding.

[0121] S405: Use different context probability models to entropy encode the first binary symbol of the first symbol string and the second symbol string respectively;

[0122] S406: Use a preset model to entropy encode the binary symbols in the first symbol string and the second symbol string, excluding the first binary symbol;

[0123] S407: Write the bits obtained by encoding the first symbol string and the second symbol string into the bit stream.

[0124] It should be noted that H.266 / VVC typically employs two entropy coding modes: a binary coding mode based on a context probability model and a binary coding mode based on an equal probability model. The context probability model (or simply context model) represents the probability of the binary symbol "0" or "1" appearing, and it needs to be updated based on the encoded value of the binary symbol during binary arithmetic coding. The equal probability model, also known as the bypass model, uses the same probability for both "0" and "1" during binary arithmetic coding, and it does not need to be updated after the binary symbol is encoded.

[0125] In other words, after obtaining the binary bits, binary arithmetic entropy coding (CABAC) based on a context probability model is typically used. Here, CABAC selects a probability model for each bit and uses this model for arithmetic coding. In the current VVC, the first bit after binary processing of merge_gpm_idx0[xCb][yCb] and merge_gpm_idx1[xCb][yCb] uses the same context probability model for entropy coding as the first bit of the normal merge mode (non-GPM prediction mode), while the remaining bits use an equal probability model for entropy coding. However, the probability distribution characteristics of the first bit, the second bit, and even each bit are not fully considered. For example, regarding the first bit, the first bit of merge_gpm_idx0[xCb][yCb] and merge_gpm_idx1[xCb][yCb] uses the same context probability model and shares the same context probability model with merge_idx, but these syntax element values ​​do not have the same... The probability distribution leads to an increase in the number of encoded bits. For the second bit, taking Table 3 as an example, `merge_gpm_idx0[xCb][yCb]` is binarized using a truncated unary code. In this case, `merge_gpm_idx0[xCb][yCb] = 1` results in a binarized value of 10, with its second bit being 0. The second bit of `merge_gpm_idx0[xCb][yCb] = 2, 3, and 4` are all 1. Statistical probability analysis shows that the probability of `merge_gpm_idx0[xCb][yCb] = 1` is generally much smaller than the sum of the probabilities of `merge_gpm_idx0[xCb][yCb] = 2, 3, and 4`. Since the current VVC still uses an equal-probability model for entropy coding of the second bit, the number of encoded bits will still increase.

[0126] In this embodiment, the encoder optimizes the encoding process of the relevant syntax merge_gpm_idx0[x0][y0] and merge_gpm_idx1[x0][y0] for the GPM prediction mode; specifically as follows:

[0127] First, a separate context probability model is designed for the first bit after binarization of merge_gpm_idx0[xCb][yCb] and / or merge_gpm_idx1[xCb][yCb]. This can effectively learn the probability of the bit and improve the encoding performance of the bit.

[0128] Secondly, a separate context probability model is designed for entropy encoding of the second bit after binarization of merge_gpm_idx0[xCb][yCb] and / or merge_gpm_idx1[xCb][yCb] (if a second bit exists), to replace the current equal probability model entropy encoding in VVC. Here, after statistically analyzing the probability distribution characteristics of merge_gpm_idx0[xCb][yCb], it is found that p(1) < (p(2) + p(3) + p(4)); where p(i) represents the probability that merge_gpm_idx0[xCb][yCb] = i, i = 1, 2, 3, 4; therefore, the probability of the second bit being 0 is much smaller than the probability of the second bit being 1, that is, the second bit is not suitable for using an equal probability model.

[0129] Specifically, in some embodiments, for S405, the entropy encoding of the first binary symbol of the first symbol string and the second symbol string using different context probability models may include:

[0130] The first binary symbol of the first symbol string is entropy encoded using a first context probability model, and the first binary symbol of the second symbol string is entropy encoded using a second context probability model; wherein the first context probability model and the second context probability model are different.

[0131] In other words, for the first binary symbol (i.e., the first bit), a separate context probability model can be designed for the first motion information index value (merge_gpm_idx0[xCb][yCb]), separating it from the previously shared context probability model; or, a separate context probability model can be designed for the second motion information index value (merge_gpm_idx1[xCb][yCb]), separating it from the previously shared context probability model; or, a separate context probability model can be designed for both the first motion information index value (merge_gpm_idx0[xCb][yCb]) and the second motion information index value (merge_gpm_idx1[xCb][yCb]), separating both from the previously shared context probability model; the embodiments of this application do not impose specific limitations.

[0132] Taking the modification of merge_gpm_idx0[xCb][yCb] as an example, it is separated from the original shared context probability model and a separate context probability model is designed. The specific text modifications are as follows: Table 5 shows an example in which merge_idx[][], merge_gpm_idx0[][], and merge_gpm_idx1[][] currently share the same context probability model in VVC; Table 6 shows an example of how merge_gpm_idx0[][] is separated from the shared context probability model provided by the embodiments of this application; Table 7 shows the changes in merge_gpm_idx0[][] in VVC except for the first bit. Examples of using an equal probability model for the remaining bits, where "bypass" indicates a bypass model, i.e., an equal probability model; Table 8 shows an example of using a context probability model for the second bit of merge_gpm_idx0[][] provided in the embodiments of this application; Table 9 shows a parameter specification design example of three sharing the same context probability model in VVC; Table 10 shows a parameter specification design example of merge_idx[][] and merge_gpm_idx1[][] sharing a context probability model provided in the embodiments of this application; Table 11 shows a parameter specification design example of a context probability model designed separately for merge_gpm_idx0[][] provided in the embodiments of this application.

[0133] Table 5

[0134]

[0135] Table 6

[0136]

[0137] Table 7

[0138]

[0139] Table 8

[0140]

[0141] Table 8.1

[0142]

[0143] Table 8.2

[0144]

[0145] Table 9

[0146]

[0147] Table 10

[0148]

[0149] Table 11

[0150]

[0151] Here, EP in this embodiment represents equal probability. In addition to modifying merge_gpm_idx0[xCb][yCb], merge_gpm_idx1[xCb][yCb] can also be modified, and the text modification of its context probability model selection is the same as that of merge_gpm_idx0[xCb][yCb]. Specifically, Table 8 shows an example of using the context probability model for the second bit of the binarized merge_gpm_idx0[][] provided in the embodiments of this application; if merge_gpm_idx1[xCb][yCb] is modified so that the second bit of the binarized merge_gpm_idx1[xCb][yCb] uses the context probability model, then the example is shown in Table 8.1; if both merge_gpm_idx0[xCb][yCb] and merge_gpm_idx1[xCb][yCb] are modified so that the second bit of both merge_gpm_idx0[xCb][yCb] and merge_gpm_idx1[xCb][yCb] uses the context probability model, then the example is shown in Table 8.2.

[0152] Furthermore, embodiments of this application can also modify each bit after binarization of merge_gpm_idx0[xCb][yCb] and / or merge_gpm_idx1[xCb][yCb], and design a context probability model that conforms to the probability distribution of that bit separately. These cases will be described separately below.

[0153] Optionally, in some embodiments, for merge_gpm_idx0[xCb][yCb] and / or merge_gpm_idx1[xCb][yCb], different context probability models are designed only for the first bit after binarization, but the remaining bits after binarization, excluding the first bit, still use an equal probability model. Specifically, for S406, the entropy encoding of the binary symbols in the first symbol string and the second symbol string, excluding the first binary symbol, using the preset model includes:

[0154] Entropy encoding is performed on the first symbol string and the second symbol string, excluding the first binary symbol, using a bypass model; wherein, the bypass model represents binary arithmetic entropy encoding using an equal probability model.

[0155] In other words, `merge_gpm_idx0[xCb][yCb]` is separated from the shared context probability model of `merge_gpm_idx0[xCb][yCb]`, `merge_gpm_idx1[xCb][yCb]`, and `merge_idx`, and a separate context probability model is designed for the first bit of `merge_gpm_idx0[xCb][yCb]`. After initialization, 0 represents a high-probability symbol in this context probability model, corresponding to the probability distribution of the first bit after binaryization of `merge_gpm_idx0[xCb][yCb]`. Furthermore, `merge_gpm_idx1[xCb][yCb]` is also separated from the shared context probability model of `merge_gpm_idx0[xCb][yCb]`, `merge_gpm_idx1[xCb][yCb]`, and `merge_idx`, and designed separately.

[0156] The first bit of merge_gpm_idx1[xCb][yCb] is designed with a context probability model. After initialization, 0 is the most probable sign in the context probability model, which corresponds to the probability distribution of the first bit after the binary representation of merge_gpm_idx1[xCb][yCb].

[0157] For example, the specific text modifications are as follows: Table 12 shows an example where merge_idx[][], merge_gpm_idx0[][], and merge_gpm_idx1[][] in VVC currently share the same context probability model; Table 13 shows an example where merge_gpm_idx0[][] and merge_gpm_idx1[][] provided in this application embodiment are both separated from sharing the same context probability model; Table 14 shows a parameter specification design example where the three share the same context probability model in VVC; Table 15 shows a parameter specification design example where merge_idx[][] uses the context probability model provided in this application embodiment; Table 16 shows a parameter specification design example where merge_gpm_idx0[][] uses the context probability model provided in this application embodiment; and Table 17 shows a parameter specification design example where merge_gpm_idx1[][] uses the context probability model provided in this application embodiment.

[0158] Table 12

[0159]

[0160] Table 13

[0161]

[0162] Table 14

[0163]

[0164] Table 15

[0165]

[0166] Table 16

[0167]

[0168] Table 17

[0169]

[0170]

[0171] Optionally, in some embodiments, for merge_gpm_idx0[xCb][yCb] and / or merge_gpm_idx1[xCb][yCb], different context probability models are designed not only for the first bit after binarization, but also for the second bit after binarization. However, the remaining bits after binarization, excluding the first and second bits, still use an equal probability model. Specifically, for S406, the entropy encoding of the binary symbols in the first symbol string and the second symbol string, excluding the first binary symbol, using the preset model includes:

[0172] Entropy encoding is performed on the second binary symbol of the first symbol string and the second symbol string using different context probability models;

[0173] Entropy encoding is performed on the binary symbols in the first and second symbol strings, excluding the first and second binary symbols, using a bypass model; wherein, the bypass model represents binary arithmetic entropy encoding using an equal probability model.

[0174] Furthermore, the entropy encoding of the second binary symbol of the first symbol string and the second symbol string using different contextual probability models may include:

[0175] The second binary symbol of the first symbol string is entropy encoded using a third context probability model, and the second binary symbol of the second symbol string is entropy encoded using a fourth context probability model; wherein the third context probability model is different from the fourth context probability model.

[0176] In other words, merge_gpm_idx0[xCb][yCb] is separated from the context probability model shared by merge_gpm_idx0[xCb][yCb], merge_gpm_idx1[xCb][yCb], and merge_idx, and a separate context probability model is designed for the first bit of merge_gpm_idx0[xCb][yCb]; at the same time, a separate context model is also designed for the second bit of merge_gpm_idx0[xCb][yCb]. In addition, merge_gpm_idx1[xCb][yCb] will be separated from the context probability model shared by merge_gpm_idx0[xCb][yCb], merge_gpm_idx1[xCb][yCb], and merge_idx, and a separate context model will be designed for the first bit of merge_gpm_idx1[xCb][yCb]; at the same time, a separate context model will also be designed for the second bit of merge_gpm_idx1[xCb][yCb].

[0177] For example, the specific text modifications are as follows: Table 18 shows an example where merge_idx[][], merge_gpm_idx0[][], and merge_gpm_idx1[][] in VVC currently share the same context probability model; Table 19 shows an example where merge_gpm_idx0[][] and merge_gpm_idx1[][] provided in this application embodiment are both separated from sharing the same context probability model; Table 20 shows an example where the remaining bits of merge_gpm_idx0[][] and merge_gpm_idx1[][] in VVC, except for the first bit, all use an equal probability model; Tables 21, 21.1, and 21.2 Table 21 shows an example of the second bit of merge_gpm_idx0[][] and / or merge_gpm_idx1[][] using the context probability model provided in the embodiments of this application. Table 22 shows a parameter specification design example of the three sharing the same context probability model in VVC. Table 23 shows a parameter specification design example of merge_idx[][] using the context probability model provided in the embodiments of this application. Table 24 shows a parameter specification design example of the context probability model used by merge_gpm_idx0[][] provided in the embodiments of this application. Table 25 shows a parameter specification design example of the context probability model used by merge_gpm_idx1[][] provided in the embodiments of this application.

[0178] Table 18

[0179]

[0180] Table 19

[0181]

[0182] Table 20

[0183]

[0184] Table 21

[0185]

[0186] Table 21.1

[0187]

[0188] Table 21.2

[0189]

[0190] Table 22

[0191]

[0192] Table 23

[0193]

[0194] Table 24

[0195]

[0196] Table 25

[0197]

[0198] Optionally, in some embodiments, for merge_gpm_idx0[xCb][yCb] and / or merge_gpm_idx1[xCb][yCb], different context probability models can be designed for each bit after binarization. Specifically, the method may further include:

[0199] Each binary symbol in the first and second symbol strings is entropy encoded sequentially using different contextual probability models.

[0200] In other words, merge_gpm_idx0[xCb][yCb] is separated from the shared context probability model of merge_gpm_idx0[xCb][yCb], merge_gpm_idx1[xCb][yCb], and merge_idx, and a separate context probability model is designed for each bit of merge_gpm_idx0[xCb][yCb] after binarization. Furthermore, merge_gpm_idx1[xCb][yCb] is also separated from the shared context probability model of merge_gpm_idx0[xCb][yCb], merge_gpm_idx1[xCb][yCb], and merge_idx, and a separate context probability model is designed for each bit of merge_gpm_idx1[xCb][yCb] after binarization.

[0201] For example, the specific text modifications are as follows: Table 26 shows an example where merge_idx[][], merge_gpm_idx0[][], and merge_gpm_idx1[][] in VVC currently share the same context probability model; Table 27 shows an example where merge_gpm_idx0[][] and merge_gpm_idx1[][] in the embodiments of this application are both separated from the shared context probability model; Table 28 shows an example where the remaining bits of merge_gpm_idx0[][] and merge_gpm_idx1[][] in VVC, except for the first bit, all use an equal probability model; Table 29 shows an example where the remaining bits of merge_gpm_idx0[][] and merge_gpm_idx1[][] in this application... Please provide an example where each bit of merge_gpm_idx0[][] and merge_gpm_idx1[][] in the embodiments uses a context probability model. Table 30 shows a parameter specification design example where the three share the same context probability model in VVC. Table 31 shows a parameter specification design example where merge_idx[][] uses a context probability model in the embodiments of this application. Table 32 shows a parameter specification design example where merge_gpm_idx0[][] uses a context probability model in the embodiments of this application. Table 33 shows a parameter specification design example where merge_gpm_idx1[][] uses a context probability model in the embodiments of this application.

[0202] Table 26

[0203]

[0204] Table 27

[0205]

[0206] Table 28

[0207]

[0208] Table 29

[0209]

[0210] Table 30

[0211]

[0212] Table 31

[0213]

[0214] Table 32

[0215]

[0216] Table 33

[0217]

[0218]

[0219] Optionally, in some embodiments, a bypass model can be used for each bit after binarization for merge_gpm_idx0[xCb][yCb] and / or merge_gpm_idx1[xCb][yCb]. Specifically, the method may further include:

[0220] The bypass model is used to entropy encode each binary symbol in the first symbol string and the second symbol string sequentially.

[0221] In other words, all bits after binarization of merge_gpm_idx0[xCb][yCb] use the side-channel encoding mode, and all bits after binarization of merge_gpm_idx1[xCb][yCb] use the side-channel encoding mode.

[0222] For example, the specific text modifications are as follows: Table 34 shows an example where merge_gpm_idx0[][] and merge_gpm_idx1[][] provided in the embodiments of this application are both separated from the same context probability model, and only merge_idx[][] uses the context probability model; Table 35 shows an example where the remaining bits of merge_gpm_idx0[][] and merge_gpm_idx1[][] in the current VVC use the equal probability model except for the first bit; Table 36 shows an example where each bit of merge_gpm_idx0[][] and merge_gpm_idx1[][] provided in the embodiments of this application uses the bypass model; Table 37 shows an example of the parameter specification design of merge_idx[][] using the context probability model provided in the embodiments of this application.

[0223] Table 34

[0224]

[0225] Table 35

[0226]

[0227] Table 36

[0228]

[0229] Table 37

[0230]

[0231] Optionally, in some embodiments, in addition to modifying the context probability model when encoding bits after binarization, the binarization process can also be optimized.

[0232] Specifically, this application also proposes to modify the binary representation of the relevant syntax element merge_gpm_idx0[xCb][yCb] in the GPM prediction mode, i.e., to replace Table 3 above. For the probability model of each bit, the same context model as the current VVC can be used for entropy encoding (i.e., the first bit can choose the context probability model shared by merge_gpm_idx0[xCb][yCb], merge_gpm_idx1[xCb][yCb], and merge_idx, and the other bits choose the equal probability model).

[0233] Taking MaxNumGpmMergeCand=5 as an example, by modifying the binaryization method of merge_gpm_idx0[xCb][yCb], the resulting binarization is shown in Table 38 below; here, bold numbers indicate that the bit is entropy encoded using the context probability model, and underlined numbers indicate that the bit is entropy encoded using the equal probability model.

[0234] Table 38

[0235]

[0236]

[0237] For MaxNumGpmMergeCand = 2, 3, 4, and 6, the entropy encoding method is the same as that for MaxNumGpmMergeCand = 5, and no changes are made. As shown below, Table 39 gives the binarization result for MaxNumGpmMergeCand = 2 provided in the embodiments of this application; Table 40 gives the binarization result for MaxNumGpmMergeCand = 3 provided in the embodiments of this application; Table 41 gives the binarization result for MaxNumGpmMergeCand = 4 provided in the embodiments of this application; and Table 42 gives the binarization result for MaxNumGpmMergeCand = 6 provided in the embodiments of this application.

[0238] Table 39

[0239] merge_gpm_idx0[xCb][yCb] bit string 0 0 1 1

[0240] Table 40

[0241] merge_gpm_idx0[xCb][yCb] bit string 0 0 1 10 2 11

[0242] Table 41

[0243] merge_gpm_idx0[xCb][yCb] bit string 0 0 1 10 2 110 3 111

[0244] Table 42

[0245] merge_gpm_idx0[xCb][yCb] bit string 0 0 1 100 2 101 3 1100 4 1101 5 1110

[0246] For example, the specific text modifications are as follows: Table 43 shows an example of the merge_gpm_idx0[][] binarization processing method in the current VVC, and Table 44 shows an example of the merge_gpm_idx0[][] binarization processing method provided in the embodiments of this application, where TR represents Truncated Rice, which is a binarization processing method.

[0247] Table 43

[0248]

[0249] Table 44

[0250]

[0251] Furthermore, regarding the binarization of merge_gpm_idx0[][], the input to this process is the syntax element merge_gpm_idx0[][] and the binarization request of cMax; the output of this process is the binarization result of the syntax element, and the binarization processing method of merge_gpm_idx0[][] is shown in Table 45.

[0252] Table 45

[0253]

[0254] Furthermore, in some embodiments, based on the binarization processing method of modifying the GPM-related syntax element merge_gpm_idx0[xCb][yCb] provided in the above embodiments, the context model proposed in the embodiments of this application (modifying the context probability model of the first bit, the second bit, or each bit) can be used for the probability model of each bit.

[0255] Specifically, the binarization processing can be performed using Tables 43, 44, and 45 above, while the text modification for the probability model selection is as follows: Table 46 shows an example of merge_idx[][], merge_gpm_idx0[][], and merge_gpm_idx1[][] sharing the same context probability model in VVC; Table 47 shows an example of merge_gpm_idx0[][] separated from the shared context probability model provided in this application embodiment; Table 48 shows a parameter specification design example of the shared context probability model in VVC; Table 49 shows a parameter specification design example of merge_idx[][] and merge_gpm_idx1[][] sharing the context probability model provided in this application embodiment; and Table 50 shows a parameter specification design example of the context probability model designed separately for merge_gpm_idx0[][] provided in this application embodiment.

[0256] Table 46

[0257]

[0258] Table 47

[0259]

[0260] Table 48

[0261]

[0262] Table 49

[0263]

[0264] Table 50

[0265]

[0266] Understandably, the embodiments of this application aim to fully utilize the probability distribution characteristics of the data, and design a context probability model for the first bit, the second bit, or each bit after binarization of merge_gpm_idx0[xCb][yCb] and / or merge_gpm_idx1[xCb][yCb], so that the codeword used in actual encoding is less than 1 bit, which can reduce the number of bits required for encoding and thus improve encoding performance.

[0267] This embodiment provides an encoding method applied to an encoder. The method involves determining the prediction mode parameters of the current block; when the prediction mode parameters indicate that the inter-frame prediction value of the current block is determined using the Geometric Partitioning Mode (GPM), two partitions of the current block are determined; motion information of the two partitions is determined from a motion information candidate list, and a first motion information index value is set as the index number of the motion information of the first partition in the motion information candidate list, and a second motion information index value is set as the index number of the motion information of the second partition in the motion information candidate list; the first motion information index value and the second motion information index value are binarized respectively to obtain a first symbol string and a second symbol string; wherein the symbol string contains one or more binary symbols; entropy encoding is performed on the first binary symbol of the first symbol string and the second symbol string using different context probability models; entropy encoding is performed on the binary symbols in the first symbol string and the second symbol string except for the first binary symbol using a preset model; and the bits obtained after encoding the first symbol string and the second symbol string are written into the bitstream. In this way, the probability distribution characteristics of the motion information index values ​​of the first partition and / or the second partition after binarization of the first bit, the second bit, or each bit are fully utilized to design corresponding up-down probability models, thereby reducing the number of bits required for encoding and improving encoding performance, so as to improve encoding efficiency.

[0268] Based on the above Figure 3B For application scenario examples, see Figure 6 The diagram illustrates a flowchart of a decoding method provided in an embodiment of this application. Figure 6 As shown, the method may include:

[0269] S601: Parse the bitstream to obtain the prediction mode parameters for the current block;

[0270] It should be noted that the image to be decoded can be divided into multiple image blocks, and the current image block to be decoded can be called a decoding block. Here, each decoding block may include a first image component, a second image component, and a third image component; while the current block is the decoding block in the image to be decoded that currently needs to perform prediction on the first image component, the second image component, or the third image component.

[0271] It should also be noted that the prediction mode parameter indicates the prediction mode used for the current block and the parameters associated with that prediction mode. Prediction modes typically include inter-frame prediction modes, traditional intra-frame prediction modes, and non-traditional intra-frame prediction modes. Inter-frame prediction modes further include traditional inter-frame prediction modes and GPM prediction modes. In other words, the encoder selects the optimal prediction mode for precoding the current block. During this process, the prediction mode of the current block is determined, and the corresponding prediction mode parameters are written into the bitstream, which is then transmitted from the encoder to the decoder.

[0272] In this way, on the decoder side, the prediction mode parameters of the current block can be obtained by parsing the bitstream, and the obtained prediction mode parameters are used to determine whether the current block uses the GPM prediction mode.

[0273] S602: When the prediction mode parameter indicates that the inter-frame prediction value of the current block is determined using the geometric partitioning mode (GPM), the two partitions of the current block are determined;

[0274] S603: Parse the bitstream and determine the first symbol string and the second symbol string corresponding to the motion information index values ​​of the two partitions of the current block, wherein the first symbol string and the second symbol string contain one or more binary symbols, including: parsing the bitstream using different context probability models to obtain the first binary symbol of the first symbol string and the second symbol string; continuing to parse the bitstream using a preset model to obtain the binary symbols in the first symbol string and the second symbol string other than the first binary symbol;

[0275] Here, the first symbol string and the second symbol string represent one or more binary symbols related to the motion information index values ​​of the two partitions of the current block, respectively. The first symbol string contains one or more binary symbols that are related to the first motion information index value (represented by merge_gpm_idx0[xCb][yCb]) corresponding to the first partition of the current block; the second symbol string also contains one or more binary symbols that are related to the second motion information index value (represented by merge_gpm_idx1[xCb][yCb]) corresponding to the second partition of the current block.

[0276] It should be noted that if the prediction mode parameter indicates that the current block uses GPM prediction mode, then it is necessary to continue parsing the bitstream to obtain the angle index value and stride index value of the current block. Specifically, when the prediction mode parameter indicates that the current block uses GPM to determine the inter-frame prediction value of the current block, the method may further include:

[0277] Parse the bitstream to obtain the partitioning mode index value of the current block;

[0278] Based on the partitioning mode index value, the angle index value and step size index value corresponding to the partitioning mode index value are queried from the preset mapping table; wherein, the preset mapping table is used to indicate the correspondence between the partitioning mode index value, the angle index value and the step size index;

[0279] The angle index value and step size index value obtained from the query are determined as the angle index value and step size index value corresponding to the dividing line within the current block.

[0280] In other words, when the prediction mode parameter indicates that the current block uses the GPM prediction mode, the bitstream can still be parsed to obtain the partition mode index value of the current block, denoted as merge_gpm_partition_idx. Combined with the preset mapping table shown in Table 1, the corresponding angle index value (denoted as angleIdx) and step size index value (denoted as distanceIdx) can be obtained by looking up the table. Thus, after obtaining the angle index value and step size index value, the partition line of the current block can be determined and it can be divided, thereby obtaining the two partitions of the current block, such as the first partition and the second partition, which can also be represented as partition A and partition B.

[0281] Furthermore, on the decoder side, two sets of symbol strings, namely the first symbol string and the second symbol string, can be obtained by parsing the bitstream. Using the same arithmetic coding rules of the context probability model as on the encoder side, entropy decoding is performed on the bitstream to obtain the binarized bits. During this process, the decoder also maintains the same probability model as the encoder side and uses this probability model for binary arithmetic decoding.

[0282] The first bit of the binarized merge_gpm_idx0[x0][y0] and merge_gpm_idx1[x0][y0] can be decoded using different context probability models. Specifically, in some embodiments, parsing the bitstream using different context probability models to obtain the first binary symbol of the first symbol string and the second symbol string may include:

[0283] The first binary symbol of the first symbol string is obtained by performing binary arithmetic entropy decoding using the first context probability model.

[0284] The first binary symbol of the second symbol string is obtained by performing binary arithmetic entropy decoding using the second context probability model; wherein the first context probability model is different from the second context probability model.

[0285] Optionally, for merge_gpm_idx0[xCb][yCb] and / or merge_gpm_idx1[xCb][yCb], different context probability models are designed only for the first bit after binarization, but the remaining bits after binarization, excluding the first bit, still use an equal probability model. In some embodiments, the step of continuing to parse the code stream using a preset model to obtain the first symbol string and the second symbol string excluding the first binary symbol includes:

[0286] The bypass model is used to parse the bitstream, and the binary symbols in the first symbol string and the second symbol string, excluding the first binary symbol, are obtained sequentially; wherein, the bypass model represents binary arithmetic entropy decoding using an equal probability model.

[0287] Optionally, for merge_gpm_idx0[xCb][yCb] and / or merge_gpm_idx1[xCb][yCb], different context probability models are designed not only for the first bit after binarization, but also for the second bit after binarization. However, the remaining bits after binarization, excluding the first and second bits, still use an equal probability model. In some embodiments, the step of continuing to parse the code stream using a preset model to obtain the binary symbols in the first symbol string and the second symbol string, excluding the first binary symbol, includes:

[0288] By parsing the code stream using different context probability models, the second binary symbol of the first symbol string and the second symbol string can be obtained;

[0289] The bypass model is used to continue parsing the bitstream, and the binary symbols in the first symbol string and the second symbol string, excluding the first and second binary symbols, are obtained in sequence; wherein, the bypass model represents the use of an equal probability model for binary arithmetic entropy decoding.

[0290] Furthermore, the step of using a preset model to continue parsing the code stream to obtain the first symbol string and the second symbol string excluding the first binary symbol may include:

[0291] The second binary symbol of the first symbol string is obtained by performing binary arithmetic entropy decoding using the third context probability model.

[0292] The second binary symbol of the second set of symbol strings is obtained by using the fourth context probability model for binary arithmetic entropy decoding; wherein the third context probability model is different from the fourth context probability model.

[0293] Optionally, for merge_gpm_idx0[xCb][yCb] and / or merge_gpm_idx1[xCb][yCb], different context probability models can be designed for each bit after binarization. In some embodiments, the method may further include:

[0294] By parsing the code stream using different context probability models, each binary symbol in the first symbol string and the second symbol string can be obtained.

[0295] Optionally, for merge_gpm_idx0[xCb][yCb] and / or merge_gpm_idx1[xCb][yCb], a bypass model can be used for each bit after binarization. In some embodiments, the method may further include:

[0296] The bypass model is used to parse the code stream and obtain each binary symbol in the first symbol string and the second symbol string.

[0297] In this way, the same arithmetic coding rules of the context probability model as the encoder side can be used to entropy decode the bitstream, which can parse out the first symbol string and the second symbol string; based on the first symbol string and the second symbol string, they can be binarized and inversely processed respectively.

[0298] S604: Based on the preset binarization model, determine the corresponding first value and second value of the first symbol string and the second symbol string, and set the first value and the second value as the first motion information index value and the second motion information index value, respectively.

[0299] It should be noted that the binarization model is used to convert the symbol string into the corresponding numerical value; specifically, the same Tables 3 and 4 as the encoder can be used to recover the binary bits into the corresponding motion information index values, namely merge_gpm_idx0[xCb][yCb] and merge_gpm_idx1[xCb][yCb].

[0300] S605: Based on the motion information candidate list, determine the motion information in the motion information candidate list indicated by the first motion information index value as the motion information corresponding to the first partition, and determine the motion information in the motion information candidate list indicated by the second motion information index value as the motion information of the second partition;

[0301] It should be noted that the motion information may include at least motion vectors and reference image indices. Since the motion information of neighboring blocks is available, a motion information candidate list can be constructed for at least two partitions of the current block based on the motion information of neighboring blocks, thereby obtaining the motion information candidate list. Specifically, in some embodiments, the method may further include:

[0302] The motion information candidate list is constructed using the motion information of the adjacent blocks of the current block.

[0303] Here, the method by which the decoder constructs the motion information candidate list is consistent with the process of constructing the list in the normal merge mode. The construction order remains the same: upper adjacent block B1, left adjacent block A1, upper right adjacent block B0, lower left adjacent block A0, upper left adjacent block B2, reference frame corresponding position block col, historical reference block his, the average motion vector mv avg of the first and second candidate mv, and the zero motion vector 0. In other words, the operation of constructing the motion information candidate list on the decoder side is consistent with that on the encoder side.

[0304] Since the encoder-transmitted bitstream includes reference position information for partitions A and B in the merge candidate list (represented by merge_gpm_idx0[xCb][yCb] and merge_gpm_idx1[xCb][yCb], with partition A preceding partition B), by parsing the bitstream, merge_gpm_idx0[xCb][yCb] can be obtained, representing the position of the mv in partition A in the merge candidate list. Let...

[0305] m=merge_gpm_idx0[xCb][yCb] (3)

[0306] By parsing the bitstream, we can also obtain `merge_gpm_idx1[xCb][yCb]`, which represents the position of the `mv` in partition B in the merge candidate list. Since the position of the `mv` in partition B in the merge list may decrease by 1 because partition A selected an earlier option first, we can set `mv` to `yCb`.

[0307] n=merge_gpm_idx1 [xCb][yCb]+(merge_gpm_idx1[xCb][yCb]>=m)? 1:0 (4)

[0308] Here, n represents the actual position of the selected mv in the merge list for partition B. After obtaining m and n, let M = mergeCandList[m], and take the m-th item from the merge candidate list for the mv construction of partition A; let N = mergeCandList[n], and take the n-th item from the merge candidate list for the mv construction of partition B.

[0309] It should also be noted that motion estimation is not required on the decoder side. After obtaining M and N, they can be used to determine the inter-frame prediction value of the current block.

[0310] S606: Determine the inter-frame prediction value of the current block based on the motion information corresponding to the first partition and the motion information of the second partition.

[0311] It should be noted that after parsing and binarizing the bitstream, the motion information of the first partition and the motion information of the second partition of the current block can be obtained; then, based on the motion information of the first partition and the motion information of the second partition, the inter-frame prediction value of the current block can be determined.

[0312] For example, see Figure 7 This illustrates a schematic diagram of the overall architecture of a GPM prediction processing flow provided in an embodiment of this application. Figure 7The overall architecture may include an input module 701, a processing module 702, and an output module 703. The input module 701 provides input parameters for the GPM prediction mode. These input parameters include: the pixel position of the current block, which, for example, can be described by a luma location(xCb, yCb); the size information of the current block, which can be described by cbWidth and cbHeight; the mv information of the luma component with 1 / 16 pixel precision, which can be represented by 1 / 16 fractional-sample accuracy mvA and mvB; the mv information of the chrominance component with 1 / 32 pixel precision, which can be represented by 1 / 32 fractional-sample accuracy mvCA and mvCB; the reference frame corresponding to the mv information, which can be represented by refIdxA and refIdxB; and the list identifier selected for the mv information, which can be represented by predListFlagA and predListFlagB. The processing module 702 includes three steps: First, it derives a reference frame list (denoted by refPicLN) and subpixel predicted pixel values ​​(denoted by predSamplesLN) for the three image components (including L component, Cb component, and Cr component), where N is A or B, and the subpixel predicted pixel values ​​have a 14-bit depth; second, it derives the angle and stride of the segmentation line; third, it derives weighted predicted pixel values ​​(denoted by predSamples) for the three image components; finally, it stores the mv information for subsequent prediction of mvN, refIdxN, and predListFlagN. The output module 703 is used to output the predicted pixel values, which may include the predicted pixel values ​​corresponding to each of the three image components, denoted by predSampleL, predSampleCb, and predSampleCr, respectively. Here, after determining the motion information corresponding to the first partition and the motion information of the second partition, the first predicted value of the first partition of the current block and the second predicted value of the second partition of the current block can be determined. After calculating the weight matrix of the current block based on the offset information, the first predicted value, the second predicted value and the weight matrix can be used to perform weighted fusion on each pixel in the current block to obtain the inter-frame predicted value of the current block.

[0313] This embodiment provides a decoding method applied to a decoder. By parsing the bitstream, the prediction mode parameters of the current block are obtained; when the prediction mode parameters indicate that the inter-frame prediction value of the current block is determined using the Geometric Partitioning (GPM) mode, two partitions of the current block are determined; the bitstream is parsed to determine the first symbol string and the second symbol string corresponding to the motion information index values ​​of the two partitions of the current block, wherein the first symbol string and the second symbol string contain one or more binary symbols, including: parsing the bitstream using different context probability models to obtain the first binary symbol of the first symbol string and the second symbol string; continuing to parse the bitstream using a preset model to obtain the binary symbols in the first symbol string and the second symbol string excluding the first binary symbol; determining the corresponding first value and second value of the first symbol string and the second symbol string according to a preset binarization model, and setting the first value and the second value as the first motion information index value and the second motion information index value, respectively; based on the motion information candidate list, determining the motion information in the motion information candidate list indicated by the first motion information index value as the motion information corresponding to the first partition, and determining the motion information in the motion information candidate list indicated by the second motion information index value as the motion information of the second partition; determining the inter-frame prediction value of the current block according to the motion information corresponding to the first partition and the motion information of the second partition. In this way, the probability distribution characteristics of the motion information index values ​​of the first partition and / or the second partition after binarization of the first bit, the second bit, or each bit are fully utilized to design corresponding up-down probability models, thereby reducing the number of bits required for encoding and improving decoding performance, so as to improve decoding efficiency.

[0314] Based on the same inventive concept as the foregoing embodiments, see [link to previous document]. Figure 8 This illustrates a schematic diagram of the composition structure of an encoder 80 provided in an embodiment of this application. Figure 8 As shown, the encoder 80 may include: a first determining unit 801, a setting unit 802, a processing unit 803, and an encoding unit 804; wherein,

[0315] The first determining unit 801 is configured to determine the prediction mode parameters of the current block;

[0316] The first determining unit 801 is further configured to determine two partitions of the current block in the image to be encoded when the prediction mode parameter indicates that the inter-frame prediction value of the current block is determined by the geometric partitioning mode GPM.

[0317] Setting unit 802 is configured to determine the motion information of the two partitions from the motion information candidate list, and set the first motion information index value as the index number value of the motion information of the first partition in the motion information candidate list, and set the second motion information index value as the index number value of the motion information of the second partition in the motion information candidate list;

[0318] The processing unit 803 is configured to perform binarization processing on the first motion information index value and the second motion information index value respectively to obtain a first symbol string and a second symbol string; wherein the symbol string contains one or more binary symbols;

[0319] The encoding unit 804 is configured to entropy encode the first binary symbol of the first symbol string and the second symbol string using different context probability models; to entropy encode the binary symbols in the first symbol string and the second symbol string except for the first binary symbol using a preset model; and to write the bits obtained after encoding the first symbol string and the second symbol string into the bit stream.

[0320] In some embodiments, see Figure 8 The encoder 80 may also include a first construction unit 805 configured to construct the motion information candidate list using motion information of adjacent blocks of the current block.

[0321] In some embodiments, the encoding unit 804 is specifically configured to entropy encode the first binary symbol of the first symbol string using a first context probability model and entropy encode the first binary symbol of the second symbol string using a second context probability model; wherein the first context probability model is different from the second context probability model.

[0322] In some embodiments, the encoding unit 804 is further configured to entropy encode the first symbol string and the binary symbols in the second symbol string except for the first binary symbol using a bypass model; wherein the bypass model represents binary arithmetic entropy encoding using an equal probability model.

[0323] In some embodiments, the encoding unit 804 is further configured to entropy encode the second binary symbol of the first symbol string and the second symbol string using different context probability models; and to entropy encode the binary symbols in the first symbol string and the second symbol string other than the first binary symbol and the second binary symbol using a bypass model; wherein the bypass model represents binary arithmetic entropy encoding using an equal probability model.

[0324] Furthermore, the encoding unit 804 is specifically configured to perform entropy encoding on the second binary symbol of the first symbol string using a third context probability model, and to perform entropy encoding on the second binary symbol of the second symbol string using a fourth context probability model; wherein the third context probability model is different from the fourth context probability model.

[0325] In some embodiments, the encoding unit 804 is further configured to entropy encode each binary symbol in the first symbol string and the second symbol string using different context probability models.

[0326] In some embodiments, the encoding unit 804 is further configured to entropy encode each binary symbol in the first symbol string and the second symbol string using a bypass model.

[0327] In some embodiments, the first determining unit 801 is specifically configured to precode the current block using multiple prediction modes to obtain the rate-distortion value corresponding to each prediction mode; and to select the minimum rate-distortion value from the multiple obtained rate-distortion values, and determine the prediction mode corresponding to the minimum rate-distortion value as the prediction mode parameter of the current block.

[0328] Understandably, 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. Furthermore, 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 as a software functional module.

[0329] If the integrated unit is implemented as a software functional module and not sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this embodiment, in essence, or the part that contributes to the prior art, or all 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.) or processor to execute all or part of the steps of the method described in this embodiment. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

[0330] Therefore, this application provides a computer storage medium applied to an encoder 80, the computer storage medium storing an encoding program, which, when executed by a first processor, implements the method described in any of the foregoing embodiments.

[0331] Based on the composition of the encoder 80 and the computer storage medium described above, see [link to documentation]. Figure 9 This illustrates a specific hardware structure example of the encoder 80 provided in this application embodiment, which may include: a first communication interface 901, a first memory 902, and a first processor 903; the various components are coupled together through a first bus system 904. It is understood that the first bus system 904 is used to implement the connection and communication between these components. In addition to a data bus, the first bus system 904 also includes a power bus, a control bus, and a status signal bus. However, for clarity, in... Figure 9 The general designated all buses as the first bus system 904. Among them,

[0332] The first communication interface 901 is used for receiving and sending signals during the process of sending and receiving information with other external network elements;

[0333] The first memory 902 is used to store computer programs that can run on the first processor 903;

[0334] The first processor 903 is configured to, when running the computer program, perform:

[0335] Determine the prediction mode parameters for the current block;

[0336] When the prediction mode parameter indicates that the inter-frame prediction value of the current block is determined using the geometric partitioning mode (GPM), the two partitions of the current block are determined;

[0337] From the motion information candidate list, determine the motion information of the two partitions, and set the first motion information index value as the index number value of the motion information of the first partition in the motion information candidate list, and set the second motion information index value as the index number value of the motion information of the second partition in the motion information candidate list;

[0338] The first motion information index value and the second motion information index value are binarized respectively to obtain a first symbol string and a second symbol string; wherein the symbol string contains one or more binary symbols;

[0339] The first binary symbol of the first symbol string and the second symbol string are entropy encoded using different context probability models respectively;

[0340] Entropy encoding is performed on the first symbol string and the second symbol string, excluding the first binary symbol, using a preset model.

[0341] The bits obtained by encoding the first symbol string and the second symbol string are written into the bit stream.

[0342] It is understood that the first memory 902 in the embodiments of this application 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 Synchronous DRAM (DDRSDRAM), Enhanced Synchronous DRAM (ESDRAM), Synchlink DRAM (SLDRAM), and Direct Rambus RAM (DRRAM). The first memory 902 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.

[0343] The first processor 903 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 903 or by instructions in software form. The first processor 903 can 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 can 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 can be located 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 902. The first processor 903 reads the information in the first memory 902 and, in conjunction with its hardware, completes the steps of the above method.

[0344] 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), DSP 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.

[0345] Alternatively, as another embodiment, the first processor 903 is further configured to perform the method described in any of the foregoing embodiments when running the computer program.

[0346] This embodiment provides an encoder, which may include a first determining unit, a setting unit, a processing unit, and an encoding unit. In this encoder, the probability distribution characteristics of the motion information index values ​​of the first partition and / or the motion information index values ​​of the second partition after binarization (first bit, second bit, or each bit) are fully utilized to design corresponding up-down probability models, thereby reducing the number of bits required for encoding and improving encoding performance.

[0347] Based on the same inventive concept as the foregoing embodiments, see [link to previous document]. Figure 10 This illustrates a schematic diagram of the composition structure of a decoder 100 provided in an embodiment of this application. Figure 10 As shown, the decoder 150 may include: a parsing unit 1001, a second determining unit 1002, an inverse processing unit 1003, and a prediction unit 1004; wherein,

[0348] Parsing unit 1001 is configured to parse the bitstream and obtain the prediction mode parameters of the current block;

[0349] The second determining unit 1002 is configured to determine two partitions of the current block when the prediction mode parameter indicates that the inter-frame prediction value of the current block is determined using the geometric partitioning mode GPM.

[0350] The parsing unit 1001 is further configured to parse the bitstream and determine the first symbol string and the second symbol string corresponding to the motion information index values ​​of the two partitions of the current block, wherein the first symbol string and the second symbol string contain one or more binary symbols, including: parsing the bitstream using different context probability models to obtain the first binary symbol of the first symbol string and the second symbol string; and continuing to parse the bitstream using a preset model to obtain the binary symbols in the first symbol string and the second symbol string other than the first binary symbol.

[0351] The inverse processing unit 1003 is configured to determine the corresponding first value and second value of the first symbol string and the second symbol string according to a preset binarization model, and set the first value and the second value as the first motion information index value and the second motion information index value, respectively.

[0352] The second determining unit 1002 is further configured to, based on the motion information candidate list, determine the motion information in the motion information candidate list indicated by the first motion information index value as the motion information corresponding to the first partition, and determine the motion information in the motion information candidate list indicated by the second motion information index value as the motion information of the second partition;

[0353] The prediction unit 1004 is configured to determine the inter-frame prediction value of the current block based on the motion information corresponding to the first partition and the motion information of the second partition.

[0354] In some embodiments, see Figure 10 The decoder 100 may also include a second construction unit 1005 configured to construct the motion information candidate list using motion information of adjacent blocks of the current block.

[0355] In some embodiments, the parsing unit 1001 is specifically configured to perform binary arithmetic entropy decoding using a first context probability model to obtain the first binary symbol of the first symbol string; and to perform binary arithmetic entropy decoding using a second context probability model to obtain the first binary symbol of the second symbol string; wherein the first context probability model is different from the second context probability model.

[0356] In some embodiments, the parsing unit 1001 is further configured to parse the code stream using a bypass model to sequentially obtain the first symbol string and the second symbol string, excluding the first binary symbol; wherein the bypass model represents binary arithmetic entropy decoding using an equal probability model.

[0357] In some embodiments, the parsing unit 1001 is further configured to parse the code stream using different context probability models to obtain the second binary symbol of the first symbol string and the second symbol string; and to continue parsing the code stream using a bypass model to sequentially obtain the binary symbols in the first symbol string and the second symbol string excluding the first binary symbol and the second binary symbol; wherein the bypass model represents binary arithmetic entropy decoding using an equal probability model.

[0358] Furthermore, the parsing unit 1001 is specifically configured to perform binary arithmetic entropy decoding using a third context probability model to obtain the second binary symbol of the first symbol string; and to perform binary arithmetic entropy decoding using a fourth context probability model to obtain the second binary symbol of the second set of symbol strings; wherein the third context probability model is different from the fourth context probability model.

[0359] In some embodiments, the parsing unit 1001 is further configured to parse the code stream using different context probability models to obtain each binary symbol in the first symbol string and the second symbol string.

[0360] In some embodiments, the parsing unit 1001 is further configured to parse the code stream using a bypass model to obtain each binary symbol in the first symbol string and the second symbol string.

[0361] Understandably, in this embodiment, 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 component. Furthermore, 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 can be implemented in hardware or as a software functional module.

[0362] If the integrated unit is implemented as a software functional module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, this embodiment provides a computer storage medium applied to the decoder 100. The computer storage medium stores a decoding program, which, when executed by a second processor, implements the method described in any of the foregoing embodiments.

[0363] Based on the composition of the decoder 100 and the computer storage medium described above, see [link to documentation]. Figure 11 This illustrates a specific hardware structure example of the decoder 100 provided in this application embodiment, which may include: a second communication interface 1101, a second memory 1102, and a second processor 1103; the various components are coupled together through a second bus system 1104. It is understood that the second bus system 1104 is used to implement the connection and communication between these components. In addition to a data bus, the second bus system 1104 also includes a power bus, a control bus, and a status signal bus. However, for clarity, in... Figure 11 The various buses are all labeled as the second bus system 1104. Among them,

[0364] The second communication interface 1101 is used for receiving and sending signals during the process of sending and receiving information with other external network elements;

[0365] The second memory 1102 is used to store computer programs that can run on the second processor 1103;

[0366] The second processor 1103 is configured to, when running the computer program, perform:

[0367] Parse the bitstream to obtain the prediction mode parameters for the current block;

[0368] When the prediction mode parameter indicates that the inter-frame prediction value of the current block is determined using the geometric partitioning mode (GPM), the two partitions of the current block are determined;

[0369] Parse the bitstream to determine the first symbol string and the second symbol string corresponding to the motion information index values ​​of the two partitions of the current block, wherein the first symbol string and the second symbol string contain one or more binary symbols, including: parsing the bitstream using different context probability models to obtain the first binary symbol of the first symbol string and the second symbol string; and continuing to parse the bitstream using a preset model to obtain the binary symbols in the first symbol string and the second symbol string other than the first binary symbol.

[0370] According to the preset binarization model, the corresponding first value and second value of the first symbol string and the second symbol string are determined, and the first value and the second value are set as the first motion information index value and the second motion information index value, respectively.

[0371] Based on the motion information candidate list, the motion information in the motion information candidate list indicated by the first motion information index value is determined as the motion information corresponding to the first partition, and the motion information in the motion information candidate list indicated by the second motion information index value is determined as the motion information of the second partition;

[0372] Based on the motion information corresponding to the first partition and the motion information of the second partition, the inter-frame prediction value of the current block is determined.

[0373] Alternatively, as another embodiment, the second processor 1103 is also configured to perform the method described in any of the foregoing embodiments when running the computer program.

[0374] It is understood that the second memory 1102 has similar hardware functions to the first memory 902, and the second processor 1103 has similar hardware functions to the first processor 903; these will not be described in detail here.

[0375] This embodiment provides a decoder, which may include a parsing unit, a second determining unit, an inverse processing unit, and a prediction unit. In this decoder, the probability distribution characteristics of the motion information index values ​​of the first partition and / or the second partition after binarization (the first bit, the second bit, or each bit) are fully utilized to design corresponding up-down probability models, thereby reducing the number of bits required for encoding and improving decoding performance.

[0376] It should be noted that, in 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 limitation, 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.

[0377] 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.

[0378] The methods disclosed in the several method embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments.

[0379] The features disclosed in the several product embodiments provided in this application can be arbitrarily combined without conflict to obtain new product embodiments.

[0380] The features disclosed in the several method or device embodiments provided in this application can be arbitrarily combined without conflict to obtain new method or device embodiments.

[0381] 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.

Claims

1. A decoding method, characterized in that, Applied to a decoder, the method includes: In the case where the inter-frame prediction value for the current block is determined based on the geometric partitioning pattern (GPM): Decode the bitstream and determine the first motion information index value and the second motion information index value of the current block; Construct a candidate list of motion information for the current block; Based on the first motion information index value and the motion information candidate list, determine the motion information corresponding to the first partition; When the second motion information index value is greater than or equal to the first motion information index value, the motion information corresponding to the second partition is determined based on the value of the second motion information index value plus one and the motion information candidate list; When the second motion information index value is less than the first motion information index value, the motion information corresponding to the second partition is determined according to the second motion information index value and the motion information candidate list; Based on the motion information corresponding to the first partition and the motion information corresponding to the second partition, the inter-frame prediction value of the sample in the current block is determined; The decoding of the bitstream, determining the first motion information index value and the second motion information index value of the current block, includes: Based on different context probability models, the first binary symbol of the first symbol string corresponding to the first motion information index value and the first binary symbol of the second symbol string corresponding to the second motion information index value are obtained respectively; based on different context probability models, the second binary symbol of the first symbol string and the second binary symbol of the second symbol string are obtained respectively; based on the equal probability model, the binary symbols in the first symbol string and the second symbol string other than the first and second binary symbols are determined. The first motion information index value is determined based on the preset binarization model and the first binary symbol, the second binary symbol, and the binary symbols other than the first and second binary symbols in the first symbol string. The second motion information index value is determined based on the preset binarization model and the first binary symbol, the second binary symbol, and the binary symbols other than the first and second binary symbols in the second symbol string.

2. The decoding method according to claim 1, characterized in that, The preset binarization model is a truncated binarized TR.

3. The decoding method according to claim 1, characterized in that, The method further includes: Decode the bitstream to determine the partitioning mode index value of the current block; Based on the partitioning mode index value of the current block, determine the angle index value and step size index value of the current block; The weight matrix is ​​determined based on the angle index value and the step size index value; Based on the motion information corresponding to the first partition, determine the first predicted value of the sample in the current block; Based on the motion information corresponding to the second partition, determine the second predicted value of the sample within the current block; Based on the first predicted value, the second predicted value, and the weight matrix of the current intra-block sample, the inter-frame predicted value of the current intra-block sample is determined.

4. The decoding method according to any one of claims 1 to 3, characterized in that, The method further includes: If the current block satisfies the following constraints, the inter-frame prediction value for the current block is determined based on the Geometric Partitioning Mode (GPM): (1) The sequence layer parameters indicate that GPM mode is allowed; (2) The slice in which the current block is located belongs to a bidirectional prediction slice; (3) The width and height of the current block are both greater than or equal to 8 and less than or equal to 64; (4) The aspect ratio and height-to-width ratio of the current block are both less than 8; (5) The current block is a non-normal fusion prediction and a non-joint intra-frame inter-frame prediction.

5. An encoding method, characterized in that, Applied to an encoder, the method includes: In the case where the inter-frame prediction value for the current block is determined based on the geometric partitioning pattern (GPM): Construct a candidate list of motion information for the current block; Determine the motion information corresponding to the first partition and the motion information corresponding to the second partition of the current block; The first motion information index value is determined based on the motion information corresponding to the first partition and the motion information candidate list; The second motion information index value is determined based on the first motion information index value, the motion information corresponding to the second partition, and the motion information candidate list; wherein: When the second motion information index value is greater than or equal to the first motion information index value, the index number of the motion information corresponding to the second partition in the motion information candidate list is reduced by one to determine the second motion information index value; When the second motion information index value is less than the first motion information index value, the index number value of the motion information corresponding to the second partition in the motion information candidate list is determined as the second motion information index value; Write the first motion information index value and the second motion information index value into the bitstream; The step of writing the first motion information index value and the second motion information index value into the bitstream includes: Based on the preset binarization model and the first motion information index value, determine the first binary symbol, the second binary symbol, and the binary symbols other than the first and second binary symbols of the first symbol string; Based on the preset binarization model and the second motion information index value, determine the first binary symbol, the second binary symbol, and the binary symbols other than the first and second binary symbols of the second symbol string; The first binary symbol of the first symbol string and the first binary symbol of the second symbol string are encoded using different context probability models; the second binary symbol of the first symbol string and the second binary symbol of the second symbol string are encoded using different context probability models; and the binary symbols in the first symbol string and the second symbol string other than the first and second binary symbols are encoded using an equal probability model. The bits obtained by encoding the first symbol string and the second symbol string are written into the bit stream.

6. The encoding method according to claim 5, characterized in that, The preset binarization model is a truncated binarized TR.

7. The encoding method according to claim 5, characterized in that, The method further includes: Determine the partitioning mode index value of the current block; Based on the partitioning mode index value of the current block, determine the angle index value and step size index value of the current block; The weight matrix is ​​determined based on the angle index value and the step size index value; Based on the motion information corresponding to the first partition, determine the first predicted value of the sample in the current block; Based on the motion information corresponding to the second partition, determine the second predicted value of the sample within the current block; Based on the first predicted value, the second predicted value, and the weight matrix of the current intra-block sample, the inter-frame predicted value of the current intra-block sample is determined.

8. The encoding method according to any one of claims 5 to 7, characterized in that, The method further includes: If the current block satisfies the following constraints, the inter-frame prediction value for the current block is determined based on the Geometric Partitioning Mode (GPM): (1) The sequence layer parameters indicate that GPM mode is allowed; (2) The slice in which the current block is located belongs to a bidirectional prediction slice; (3) The width and height of the current block are both greater than or equal to 8 and less than or equal to 64; (4) The aspect ratio and height-to-width ratio of the current block are both less than 8; (5) The current block is a non-normal fusion prediction and a non-joint intra-frame inter-frame prediction.

9. An encoder, characterized in that, The encoder includes a first determining unit, a first constructing unit, and an encoding unit; wherein... The first construction unit is configured to construct a candidate list of motion information for the current block; The first determining unit is configured to determine the motion information corresponding to the first partition and the motion information corresponding to the second partition of the current block when determining the inter-frame prediction value of the current block based on the geometric partitioning mode GPM. The first determining unit is further configured to determine a first motion information index value based on the motion information corresponding to the first partition and the motion information candidate list; The first determining unit is further configured to determine a second motion information index value based on the first motion information index value, the motion information corresponding to the second partition, and the motion information candidate list; wherein: When the second motion information index value is greater than or equal to the first motion information index value, the index number of the motion information corresponding to the second partition in the motion information candidate list is reduced by one to determine the second motion information index value; When the second motion information index value is less than the first motion information index value, the index number value of the motion information corresponding to the second partition in the motion information candidate list is determined as the second motion information index value; The encoding unit is configured to write the first motion information index value and the second motion information index value into the bit stream; The encoding unit is further configured to: determine the first binary symbol, the second binary symbol, and all other binary symbols of the first symbol string according to a preset binarization model and the first motion information index value; determine the first binary symbol, the second binary symbol, and all other binary symbols of the second symbol string according to a preset binarization model and the second motion information index value; encode the first binary symbol of the first symbol string and the first binary symbol of the second symbol string using different context probability models; encode the second binary symbol of the first symbol string and the second binary symbol of the second symbol string using different context probability models; encode all other binary symbols of the first and second symbol strings using an equal probability model; and write the bits obtained after encoding the first and second symbol strings into the bitstream.

10. An encoder, characterized in that, The encoder includes 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 perform the method as described in any one of claims 5 to 8 when running the computer program.

11. A decoder, characterized in that, The decoder includes a parsing unit, a second determining unit, a second constructing unit, and a prediction unit; wherein, The parsing unit is configured to decode the bitstream and determine the first motion information index value and the second motion information index value of the current block when the inter-frame prediction value of the current block is determined based on the geometric partitioning mode GPM. The second construction unit is configured to construct a candidate list of motion information for the current block; The second determining unit is configured to determine the motion information corresponding to the first partition based on the first motion information index value and the motion information candidate list; The second determining unit is further configured to determine the motion information corresponding to the second partition based on the value of the second motion information index plus one and the motion information candidate list when the second motion information index value is greater than or equal to the first motion information index value; and to determine the motion information corresponding to the second partition based on the second motion information index value and the motion information candidate list when the second motion information index value is less than the first motion information index value. The prediction unit is configured to determine the inter-frame prediction value of the sample in the current block based on the motion information corresponding to the first partition and the motion information corresponding to the second partition. The parsing unit is further configured to: obtain the first binary symbol of the first symbol string corresponding to the first motion information index value and the first binary symbol of the second symbol string corresponding to the second motion information index value according to different context probability models; obtain the second binary symbol of the first symbol string and the second binary symbol of the second symbol string according to different context probability models; determine the binary symbols in the first symbol string and the second symbol string other than the first and second binary symbols according to an equal probability model; determine the first motion information index value according to a preset binarization model and the first binary symbol, the second binary symbol, and the binary symbols other than the first and second binary symbols of the first symbol string; and determine the second motion information index value according to a preset binarization model and the first binary symbol, the second binary symbol, and the binary symbols other than the first and second binary symbols of the second symbol string.

12. A decoder, characterized in that, The decoder includes 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 perform the method as described in any one of claims 1 to 4 when running the computer program.

13. A computer storage medium storing a computer program and a bitstream thereon, characterized in that, When the computer program is executed by a processor, it implements the method of any one of claims 5 to 8 to generate the bitstream.