WO2021203924A1 - 编码方法、解码方法、编码器、解码器以及存储介质 - Google Patents
编码方法、解码方法、编码器、解码器以及存储介质 Download PDFInfo
- Publication number
- WO2021203924A1 WO2021203924A1 PCT/CN2021/081147 CN2021081147W WO2021203924A1 WO 2021203924 A1 WO2021203924 A1 WO 2021203924A1 CN 2021081147 W CN2021081147 W CN 2021081147W WO 2021203924 A1 WO2021203924 A1 WO 2021203924A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- symbol string
- motion information
- symbol
- binary
- current block
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/184—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/186—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Definitions
- This application relates to the field of coding and decoding technologies, and in particular to an encoding method, a decoding method, an encoder, a decoder, and a storage medium.
- inter-frame prediction method in addition to the intra-frame prediction method, can also be used in the process of coding and decoding the current block.
- inter-frame prediction can specifically adopt geometrical partitioning for inter-blocks (Geometrical partitioning for inter-blocks, GEO), or GPM prediction mode, where the current block is divided into two non-rectangular partitions and then respectively predicted and then weighted and merged. , So as to get the inter prediction value of the current block.
- GEO geometrical partitioning for inter-blocks
- GPM prediction mode where the current block is divided into two non-rectangular partitions and then respectively predicted and then weighted and merged.
- the 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] ] Means)
- the first bit after Binarization is coded using the same Context probability model, but these syntax element values do not have the same probability distribution, which will increase the number of coded bits; in addition, two The second bit after quantization is coded using the equiprobability model. Since the probability distribution is not fully considered, the number of coded bits will still increase.
- the embodiments of the present application propose an encoding method, a decoding method, an encoder, a decoder, and a storage medium, which make full use of the motion information index value of the first partition and/or the motion information index value of the second partition in the second after binarization.
- the probability distribution characteristics of one bit, the second bit, or each bit can reduce the number of bits required for encoding and improve the encoding and decoding performance.
- an embodiment of the present application provides an encoding method, which is applied to an encoder, and the method includes:
- the prediction mode parameter indicates that the geometric division mode GPM is used to determine the inter prediction value of the current block, determine two partitions of the current block;
- the bits obtained by encoding the first symbol string and the second symbol string are written into a code stream.
- an embodiment of the present application provides a decoding method, which is applied to a decoder, and the method includes:
- the prediction mode parameter indicates that the geometric division mode GPM is used to determine the inter prediction value of the current block, determine two partitions of the current block;
- the code stream 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 include one or more Binary symbols include: parsing the code stream 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 code stream using the preset model to obtain the first symbol string And binary symbols other than the first binary symbol in the second symbol string;
- a preset binarization model determine the corresponding first numerical value and second numerical value of the first symbol string and the second symbol string, and set the first numerical value and the second numerical value to the first value respectively.
- 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 indicated by the second motion information index value
- the motion information in the motion information candidate list is determined to be the motion information of the second partition;
- an encoder which includes a first determining unit, a setting unit, a processing unit, and an encoding unit; wherein,
- the first determining unit is configured to determine the prediction mode parameter of the current block
- 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 geometric division mode GPM is used to determine the inter prediction value of the current block;
- 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 of the motion information of the first partition in the motion information candidate list A sequence number value, the second motion information index value is set to the index sequence number value of the motion information of the second partition in the motion information candidate list;
- the processing unit is configured to perform binarization processing on the first motion information index value and the second motion information index value to obtain a first symbol string and a second symbol string; wherein, the symbol string includes One or more binary symbols;
- the coding unit is configured to use different context probability models to respectively perform entropy coding on the first binary symbol of the first symbol string and the second symbol string; and use a preset model to respectively perform entropy coding on the first symbol Entropy coding is performed on binary symbols other than the first binary symbol in the second symbol string and the second symbol string; and the bits obtained by encoding the first symbol string and the second symbol string are written into Code stream.
- an encoder which includes a first memory and a first processor; wherein,
- the first memory is configured to store a computer program that can run on the first processor
- the first processor is configured to execute the method described in the first aspect when the computer program is running.
- an embodiment of the present application provides a decoder, which includes a parsing unit, a second determining unit, an inverse processing unit, and a prediction unit; wherein,
- the parsing unit is configured to parse the code stream to obtain the prediction mode parameter of the current block
- the second determining unit is configured to determine two partitions of the current block when the prediction mode parameter indicates that the geometric division mode GPM is used to determine the inter prediction value of the current block;
- the parsing unit is further configured to parse the code stream 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
- the binary symbol string contains one or more binary symbols, including: using different context probability models to parse the code stream to obtain the first binary symbol of the first symbol string and the second symbol string; use the preset model to continue parsing the code stream , Obtaining binary symbols other than the first binary symbol in the first symbol string and the second symbol string;
- 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 combine the first value with the The second values are respectively set as the first motion information index value and the second motion information index value;
- the second determining unit is further configured to 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 based on the motion information candidate list, and The motion information in the motion information candidate list indicated by the second motion information index value is determined to be the motion information of the second partition;
- the prediction unit is configured to determine the inter prediction value of the current block according to the motion information corresponding to the first partition and the motion information of the second partition.
- an embodiment of the present application provides a decoder, which includes a second memory and a second processor; wherein,
- the second memory is configured to store a computer program that can run on the second processor
- the second processor is configured to execute the method described in the second aspect when the computer program is running.
- an embodiment of the present application provides a computer storage medium, the computer storage medium stores a computer program, and when the computer program is executed by a first processor, the method described in the first aspect is implemented, or when the computer program is executed by the second The processor implements the method described in the second aspect when executed.
- the encoding method, decoding method, encoder, decoder, and storage medium provided by the embodiments of the present application are applied to the encoder to determine the prediction mode parameter of the current block; when the prediction mode parameter indicates that the geometric division mode GPM is used to determine When determining the inter-frame prediction value of the current block, determine the two partitions of the current block; determine the motion information of the two partitions from the motion information candidate list, and set the first motion information index value as the first The index number value of the motion information of the partition in the motion information candidate list, and the second motion information index value is set to the index number value of the motion information of the second partition in the motion information candidate list;
- the motion information index value and the second motion information index value are binarized to obtain a first symbol string and a second symbol string; wherein the symbol string contains one or more binary symbols; different context probabilities are used
- the model respectively performs entropy coding on the first binary symbol of the first symbol string and the second symbol string; using a preset model to divide the first symbol string and the
- the embodiment of the present application provides a decoding method, which is applied to a decoder to obtain the prediction mode parameter of the current block by parsing the code stream; when the prediction mode parameter indicates that the geometric division mode GPM is used to determine the frame of the current block In the case of the inter-predicted value, the two partitions of the current block are determined; the code stream 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 one symbol string and the second symbol string include one or more binary symbols, including: using different context probability models to parse the code stream to obtain the first binary symbol of the first symbol string and the second symbol string; using The preset model continues to parse the code stream to obtain binary symbols other than the first binary symbol in the first symbol string and the second symbol string; according to the preset binary model, determine the second symbol A first numerical value and a second numerical value corresponding to a symbol string and the second symbol string, and the first numerical value and the second numerical value are respectively set as the first motion information index value and the second motion information index value; based on The motion information candidate list determines 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 the motion information indicated by the second motion information index value The motion information in the information candidate list is determined to be the motion information of the second partition; the inter prediction value of the current block is determined according to the motion information corresponding to the first partition and the motion information of the second partition.
- both the encoder and the decoder make full use of the motion information index value of the first partition and/or the first bit, the second bit or each of the motion information index values of the second partition after binarization.
- corresponding up-and-down probability models are designed for it, so that the number of bits required for encoding can be reduced, the encoding and decoding performance is improved, and the purpose of improving the encoding and decoding efficiency is achieved.
- Fig. 1A is a schematic structural diagram of a geometric division mode provided by related technical solutions
- FIG. 1B is a schematic structural diagram of another geometric division mode provided by related technical solutions.
- Fig. 2 is a structural schematic diagram of the angle and step length of the current block provided by related technical solutions
- Figure 3A is a block diagram of a video encoding system provided by an embodiment of the application.
- 3B is a block diagram of a video decoding system provided by an embodiment of the application.
- FIG. 4 is a schematic flowchart of an encoding method provided by an embodiment of the application.
- FIG. 5 is a schematic diagram of adjacent block distribution for constructing a merge candidate list according to an embodiment of the application
- FIG. 6 is a schematic flowchart of a decoding method provided by an embodiment of this application.
- FIG. 7 is a schematic diagram of the overall architecture of a GPM prediction processing flow provided by an embodiment of the application.
- FIG. 8 is a schematic diagram of the composition structure of an encoder provided by an embodiment of the application.
- FIG. 9 is a schematic diagram of a specific hardware structure of an encoder provided by an embodiment of the application.
- FIG. 10 is a schematic diagram of the composition structure of a decoder provided by an embodiment of the application.
- FIG. 11 is a schematic diagram of a specific hardware structure of a decoder provided by an embodiment of the application.
- the first image component, the second image component, and the third image component are generally used to characterize the current block (Coding Block, CB); among them, the three image components are a luminance component and a blue chrominance component. And a red chrominance component, 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; in this way, the video image can be in YCbCr format It can also be expressed in YUV format.
- the first image component may be a luminance component
- the second image component may be a blue chrominance component
- the third image component may be a red chrominance component
- GPM geometrical Partition Mode
- coding techniques such as prediction, transformation, and quantization are usually implemented in units of square and rectangular blocks.
- edges of moving objects are not necessarily all in the horizontal or vertical direction; even if they are, they are not necessarily just on the edge of the block that can be divided. Because the motion vectors on both sides of the moving edge are often different, so in the encoding process Performing motion prediction and compensation in a whole block is prone to large prediction errors, which leads to limited coding efficiency.
- JVET Joint Video Experts Team
- GEO geometrical partitioning for inter-blocks
- GPM prediction technology can have a total of 64 division modes, and each division mode corresponds to an angle (represented by ⁇ ) and a step size (represented by ⁇ ), that is There can be a total of 20 angles and 4 step lengths.
- the angle of the horizontal rotation to the right to the normal position of the dividing line is ⁇
- the normal distance of the dividing line is ⁇ ; here, each combination of angle and step length can form a dividing pattern .
- the current block can be divided into two non-rectangular partitions according to a division mode, and each partition is separately subjected to unidirectional motion compensation to obtain a unidirectional prediction value.
- the weight matrix is used to calculate the two partitions.
- the one-way prediction value is weighted and fused, and the final GPM prediction value can be obtained.
- the 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] indicates) need to be binarized.
- the first bit after the binarization of merge_gpm_idx0[xCb][yCb] and merge_gpm_idx1[xCb][yCb] uses the same context probability model, and is the same as the motion information index value of the ordinary inter prediction mode (Represented by merge_idx) share the same context probability model, but these syntax element values do not have the same probability distribution, which will cause the context probability model to be slower and stabilize during the encoding process, making the number of encoded bits increase; in addition, for the second bit after binarization, the probability that the second bit is 0 is much smaller than the probability that the second bit is 1. However, the current scheme using the equal probability model does not fully consider the probability distribution, which will still make The increase in the number of coding bits reduces the coding and decoding efficiency.
- the embodiment of the application provides an encoding method, which is applied to an encoder to determine the prediction mode parameter of the current block; when the prediction mode parameter indicates that the geometric division mode GPM is used to determine the inter-frame prediction value of the current block, it is determined
- the two partitions of the current block determine the motion information of the two partitions from the motion information candidate list, and set the first motion information index value as the motion information of the first partition in the motion information candidate list
- the index number value, the second motion information index value is set to the index number value 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 respectively
- Binarization processing is performed to obtain a first symbol string and a second symbol string; wherein, the symbol string includes one or more binary symbols; different context probability models are used to separately compare the first symbol string and the second symbol string
- Entropy coding is performed on the first binary symbol of the binary symbol string; using a preset model to respectively perform entropy coding on binary symbols in the first symbol
- the embodiment of the present application provides a decoding method, which is applied to a decoder to obtain the prediction mode parameter of the current block by parsing the code stream; when the prediction mode parameter indicates that the geometric division mode GPM is used to determine the frame of the current block In the case of the inter-predicted value, the two partitions of the current block are determined; the code stream 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 one symbol string and the second symbol string include one or more binary symbols, including: using different context probability models to parse the code stream to obtain the first binary symbol of the first symbol string and the second symbol string; using The preset model continues to parse the code stream to obtain binary symbols other than the first binary symbol in the first symbol string and the second symbol string; according to the preset binary model, determine the second symbol A first numerical value and a second numerical value corresponding to a symbol string and the second symbol string, and the first numerical value and the second numerical value are respectively set as the first motion information index value and the second motion information index value; based on The motion information candidate list determines 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 the motion information indicated by the second motion information index value The motion information in the information candidate list is determined to be the motion information of the second partition; the inter prediction value of the current block is determined according to the motion information corresponding to the first partition and the motion information of the second partition.
- both the encoder and the decoder make full use of the motion information index value of the first partition and/or the first bit, the second bit or each of the motion information index values of the second partition after binarization.
- corresponding up-and-down probability models are designed for it, so that the number of bits required for encoding can be reduced, the encoding and decoding performance is improved, and the purpose of improving the encoding and decoding efficiency is achieved.
- the video encoding system 10 includes a transform and quantization unit 101, an intra-frame estimation unit 102, and an intra-frame
- the filter unit 108 Deblocking filtering and Sample Adaptive Offset (SAO) filtering can be implemented
- the entropy encoding unit 109 can implement header information encoding and context-based adaptive binary arithmetic coding (Context-based Adaptive Binary Arithmatic Coding, CABAC).
- CABAC Context-based Adaptive Binary Arithmatic Coding
- a video coding block can be obtained by dividing the coding tree unit (CTU), and then the residual pixel information obtained after intra-frame or inter-frame prediction is paired by the transformation and quantization unit 101
- the video coding block is transformed, including transforming the residual information from the pixel domain to the transform domain, and quantizing the resulting transform coefficients to further reduce the bit rate;
- the intra-frame estimation unit 102 and the intra-frame prediction unit 103 are used for Perform intra-frame prediction on the video encoding block; specifically, the intra-frame estimation unit 102 and the intra-frame prediction unit 103 are used to determine the intra-frame prediction mode to be used to encode the video encoding block;
- the motion compensation unit 104 and the motion estimation unit 105 is used to perform inter-frame predictive 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 the motion estimation unit 105 is a method for generating a motion vector In the process, the motion vector can estimate the motion of
- the reconstructed residual block is passed through the filter control analysis unit 107 and the filtering unit 108 to remove the blocking artifacts, and then the reconstructed residual block is added
- a predictive block in the frame of the decoded image buffer unit 110 is used to generate a reconstructed video coding block;
- the entropy coding unit 109 is used to encode various coding parameters and quantized transform coefficients, and is used in CABAC-based coding
- the context content can be based on adjacent coding blocks, which can be used to encode information indicating the determined intra prediction mode, and output the code stream of the video signal; and the decoded image buffer unit 110 is used to store reconstructed video coding blocks , Used for forecasting reference. As the video image encoding progresses, new reconstructed video encoding blocks will be continuously generated, and these reconstructed video encoding blocks will be stored in the decoded image buffer unit 110.
- the video decoding system 20 includes an entropy decoding unit 201, an inverse transform and inverse quantization unit 202, and a frame
- the code stream of the video signal is output; the code stream is input into the video decoding system 20, and first passes through the entropy decoding unit 201 to obtain the decoded transform coefficient; for the transform coefficient
- the inverse transform and inverse quantization unit 202 performs processing to generate a residual block in the pixel domain; the intra prediction unit 203 can be used to generate data based on the determined intra prediction mode and the data from the previously decoded block of the current frame or picture.
- the motion compensation unit 204 determines the prediction information for the video decoding block by analyzing the motion vector and other associated syntax elements, and uses the prediction information to generate the prediction of the video decoding block being decoded Sexual block; by summing the residual block from the inverse transform and inverse quantization unit 202 and the corresponding predictive block generated by the intra prediction unit 203 or the motion compensation unit 204 to form a decoded video block; the decoded video The signal passes through the filtering unit 205 in order to remove block artifacts, which can improve the video quality; then the decoded video block is stored in the decoded image buffer unit 206, and the decoded image buffer unit 206 stores the reference for subsequent intra prediction or motion compensation The image is also used for the output of the video signal, that is, the restored original video signal is obtained.
- the embodiments of this application are mainly applied to the entropy coding part (that is, in the entropy coding unit 109 as shown in FIG. 3A) and the entropy decoding part (that is, in the entropy decoding unit 201 as shown in FIG. 3B); correspondingly, in the entropy coding part
- the entropy decoding part it will also affect the inter prediction part in FIG. 3A, that is, the motion compensation unit 104 and the motion estimation unit 105 shown in FIG. 3A; in the entropy decoding part, it will also affect the inter prediction part in FIG. 3B. That is, the motion compensation unit 204 shown in FIG. 3B.
- the embodiments of this application can be applied to video encoding systems (or “encoders”), video decoding systems (or “decoders”), and can also be applied to video encoding systems at the same time.
- the video decoding system the embodiment of this application does not make any limitation.
- the "current block” specifically refers to the image block currently to be encoded in the video image (also referred to as the "encoding block”); when the embodiment of the present application When applied to a decoder, the “current block” specifically refers to the image block currently to be decoded in the video image (may also be referred to as a "decoding block”).
- FIG. 4 shows a schematic flowchart of an encoding method provided by an embodiment of the present application.
- the method may include:
- each encoding block may include a first image component, a second image component, and a third image component; and the current block is the prediction of the first image component, the second image component, or the third image component in the image to be encoded.
- Encoding block may include a first image component, a second image component, and a third image component; and the current block is the prediction of the first image component, the second image component, or the third image component in the image to be encoded.
- the current block performs the first image component prediction, and the first image component is the brightness component, that is, the image component to be predicted is the brightness component, then the current block can also be called the brightness block; or, it is assumed that the current block performs the second image component Prediction, and the second image component is a chrominance component, that is, the image component to be predicted is a chrominance component, then the current block can also be called a chrominance block.
- the prediction mode parameter indicates the prediction mode adopted by the current block and the parameters related to the prediction mode.
- simple decision-making strategies can be used, such as determination based on the magnitude of the distortion value; complex decision-making strategies, such as determination based on the result of Rate Distortion Optimization (RDO), can also be used.
- RDO Rate Distortion Optimization
- the embodiments of this application do not make any limitation.
- the RDO method can be used to determine the prediction mode parameters of the current block.
- the determining the prediction mode parameter of the current block may include:
- Precoding the current block by using multiple prediction modes to obtain the rate-distortion cost value corresponding to each prediction mode;
- the minimum rate-distortion cost value is selected from the obtained multiple rate-distortion cost values, and the prediction mode corresponding to the minimum rate-distortion cost value is determined as the prediction mode parameter of the current block.
- multiple prediction modes may be used for the current block to perform pre-encoding processing on the current block respectively.
- multiple prediction modes usually include inter prediction mode, traditional intra prediction mode, and non-traditional intra prediction mode; among them, traditional intra prediction mode may include direct current (DC) mode, plane (PLANAR) Mode and angle mode, etc.
- Non-traditional intra prediction modes can include matrix-based intra prediction (MIP) mode, cross-component linear model prediction (CCLM) mode, frame Intra Block Copy (IBC) mode and PLT (Palette) mode, etc.
- inter prediction mode may include traditional inter prediction mode and GPM prediction mode.
- the rate-distortion cost value corresponding to each prediction mode can be obtained; then the minimum rate-distortion cost value is selected from the obtained multiple rate-distortion cost values, And the prediction mode corresponding to the minimum rate-distortion cost value is determined as the prediction mode parameter of the current block.
- the distortion value corresponding to each prediction mode can be obtained; then the smallest distortion value can be selected from the obtained multiple distortion values, and the The prediction mode corresponding to the minimum distortion value is determined as the prediction mode parameter of the current block. In this way, the current block is finally encoded using the determined prediction mode parameters, and in this prediction mode, the prediction residual can be made smaller, and the coding efficiency can be improved.
- these restrictions may include:
- Sequence layer parameter set (Sequence Parameter Set, SPS) allows the use of GPM prediction mode;
- the coded image area of the current block belongs to a bi-directional predictive slice (B slice);
- the current block is general merge prediction, merge_subblock prediction, non-affine prediction, and non-composed intra-inter prediction (CIIP);
- the angle and step size corresponding to the division line in the current block can be determined at this time.
- the two partitions divided by the current block are determined, such as the first partition and the second partition, which can be represented by the A partition and the B partition.
- the angle index value and the step length index value are respectively set as the index numbers corresponding to the angle and step length corresponding to the dividing line in the current block in the preset mapping table.
- the method may further include:
- the preset mapping table is used to indicate the division mode index value, angle index value, and step index Correspondence between.
- the division mode of the current block can also be determined at this time; wherein, each division mode corresponds to an angle and one kind of step length.
- the GPM prediction mode has a total of 64 division modes.
- the RDO method can still be used to determine the division mode of the current block, and the division mode index value is determined as the division mode in the preset mapping table. And write the corresponding index number in the code stream, so that the decoder can parse the code stream to obtain the index value of the division mode, and then determine the angle index value and step index value of the current block by looking up the preset mapping table .
- the preset mapping table used to reflect the division mode index value, angle index value, and step index is shown in Table 1.
- Table 1 a total of 64 division modes are provided, and the angle corresponding to each division mode Index value and step length index value; here, merge_gpm_partition_idx is the partition mode index value, angleIdx is the angle index value, and distanceIdx is the step length index value.
- the encoder side can determine the division mode index value written in the code stream according to the preset mapping table shown in Table 1; and the decoder side can obtain the current block location by parsing the code stream. For the selected partition mode index value, the corresponding angle index value and step length index value are obtained by looking up the table, and then the first partition and the second partition divided by the current block are determined.
- S403 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 the second The motion information index value is set as the index number value of the motion information of the second partition in the motion information candidate list;
- the motion information may include at least a motion vector and a reference image index. Since the motion information of the neighboring blocks can be obtained, the motion information candidate list can be constructed for at least two partitions of the current block according to the motion information of the neighboring blocks, so that the motion information candidate list can be obtained. Specifically, in some embodiments, before S402, the method may further include:
- the motion information candidate list is constructed by using motion information of neighboring blocks of the current block.
- the GPM prediction mode and other inter-frame prediction modes can be regarded as competing modes. If the GPM prediction mode is selected for the current block, there is also a selection process for each parameter in it.
- the image block adjacent to the current block is called an adjacent block; that is, in the image to be coded, the current block and the adjacent block have an adjacent relationship.
- the neighboring blocks mentioned here include spatial neighboring blocks and temporal neighboring blocks of the current block. Wherein, the spatial neighboring block refers to the coded (or decoded) block located in the same image as the current block; the temporal neighboring block refers to the inter-frame prediction reference image located in the current block The coded (or decoded) block in.
- the GPM prediction mode can reuse the existing conventional merge list, and construct the one-way merge list belonging to GPM according to the parity check method, so that the candidate motion vector (mv) information of the two partitions divided by GPM are both It is selected from the one-way merge list.
- the first step is to construct the merge candidate list, which is consistent with the process of constructing the list in the normal merge mode.
- the order of construction is: upper adjacent block ( indicated by B 1 ), left adjacent block ( indicated by A 1 ), upper right adjacent block ( indicated by B 0 ), and lower left adjacent block (indicated by A 0 Indicates), the upper left adjacent block ( indicated by B 2 ), the reference frame corresponding to the position block (indicated by col), the historical reference block (indicated by his), the average motion vector of the first and second candidate mv (indicated by mv avg Represents), and a zero motion vector (represented by 0).
- FIG. 5 shows a schematic diagram of the neighboring block distribution of the current block constructing the merge candidate list; according to the construction order, the merge candidate list of the current block, that is, the motion information candidate list can be obtained.
- the second step is to choose between different prediction mode parameters according to RDO or other strategy methods, including the angle and step size corresponding to different dividing lines, and the mv of the two partitions in the above merge candidate list to choose between mv options ,
- the selected result (the angle and offset information corresponding to the division mode, and the position information of the reference options selected in the merge candidate list for each of the A and B partitions, represented by m and n respectively) in the form of syntax elements in the code stream Transmit to the decoder side.
- the encoder side can assign the syntax elements according to the following formula:
- the coding unit (CU) layer syntax element description corresponding to the current block is shown in Table 2 below.
- merge_gpm_partition_idx[x0][y0] ae(v) merge_gpm_idx0[x0][y0] ae(v) if(MaxNumGpmMergeCand>2)
- ae(v) represents context-adaptive arithmetic entropy-coded syntax element, that is, context-adaptive arithmetic entropy coding syntax element
- merge_gpm_partition_idx[x0][y0] represents the index value of the partition mode in the GPM prediction mode, which is used to combine the table 1 Look up the table to get the angle and step length corresponding to the dividing line in the current block.
- 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 corresponding determined motion information in the motion information.
- the index number value in the candidate list is used for subsequent binarization and binary coding of the motion information index value.
- S404 Binarize the first motion information index value and the second motion information index value to obtain a first symbol string and a second symbol string; wherein, the symbol string includes one or more two Meta symbol
- the two motion information index values need to be binarized respectively to obtain two sets of symbol strings (ie, the first The first symbol string and the second symbol string), and each group of symbol strings can contain one or more binary symbols; here, the value of the binary symbol can be 0 or 1.
- m and n represent the reference option position information selected in the merge candidate list for each of the two partitions A and B.
- the current value range of m and n are both 0 ⁇ MaxNumGpmMergeCand-1; where MaxNumGpmMergeCand is expressed as
- the length of the GPM merge candidate list can be 2-6, which is specifically set by the relevant syntax elements of the SPS layer.
- S405 Use different context probability models to respectively perform entropy encoding on the first binary symbol of the first symbol string and the second symbol string;
- S406 Entropy coding the binary symbols except the first binary symbol in the first symbol string and the second symbol string using a preset model
- S407 Write the bits obtained by encoding the first symbol string and the second symbol string into a code stream.
- the context probability model (Context Model) can be abbreviated as the context model, used to represent the probability of the binary symbol "0" or "1”, and in the process of binary arithmetic coding, the value of the binary symbol is also required to be encoded.
- Update the context probability model; the equal probability model can be called the bypass model.
- the binary arithmetic coding process the same probability is used for the binary symbol "0" or "1”, and the same probability is used in the binary symbol encoding. There is no need to update the equal probability model later.
- CABAC binary arithmetic entropy coding
- the first bit after binarization processing for merge_gpm_idx0[xCb][yCb] and merge_gpm_idx1[xCb][yCb] uses the same context probability as the first bit of the ordinary merge mode (non-GPM prediction mode)
- the model is entropy-coded, and the remaining bits are entropy-coded using an equal probability model; however, the probability distribution characteristics of the first bit, the second bit, or even each bit are not fully considered at present, for example, for the first bit.
- the first bits of merge_gpm_idx0[xCb][yCb] and merge_gpm_idx1[xCb][yCb] use the same context probability model, and share the context probability model with merge_idx, but these syntax element values do not have the same probability distribution, which will This leads to an increase in the number of coded bits; for the second bit, take Table 3 as an example, merge_gpm_idx0[xC
- the encoder is optimized for the encoding process of merge_gpm_idx0[x0][y0] and merge_gpm_idx1[x0][y0] related syntax of GPM prediction mode; the details are as follows,
- the second is to design a separate context probability model for entropy encoding for the second bit after binarization of merge_gpm_idx0[xCb][yCb] and/or merge_gpm_idx1[xCb][yCb][yCb] Replace the current equal probability model entropy coding in VVC.
- the use of different context probability models to respectively perform entropy encoding on the first binary symbol of the first symbol string and the second symbol string may include :
- first context probability model uses the first context probability model to perform entropy coding on the first binary symbol of the first symbol string, and use the second context probability model to perform entropy coding on the first binary symbol of the second symbol string; wherein, the first context probability The model is different from the second context probability model.
- a separate context probability model can be designed for the first motion information index value (merge_gpm_idx0[xCb][yCb]), from the original shared context probability model
- the information index value (merge_gpm_idx0[xCb][yCb]) and the second motion information index value (merge_gpm_idx1[xCb][yCb]) respectively design a context probability model separately, separating both from the original shared context probability model ;
- the embodiments of this application do not make specific limitations.
- Table 6 shows the merge_gpm_idx0[][] provided by the embodiment of this application from the three sharing the same context probability model A separated example
- Table 7 shows an example of using an equal probability model for the remaining bits except the first bit of merge_gpm_idx0[][] in the current VVC, where “bypass” means the bypass model, that is, the equal probability model
- Table 8 It shows an example of the context probability model used by the second bit of merge_gpm_idx0[][] provided by the embodiment of the present application.
- Table 9 shows an example of the parameter specification design of the same context probability model shared by the three in the current VVC
- Table 10 The parameter specification design example of the common context probability model of merge_idx[][] and merge_gpm_idx1[][] provided by the embodiment of the application is shown.
- Table 11 shows the context of the separate design of merge_gpm_idx0[][] provided by the embodiment of the application.
- the parameter specification design example of the probability model is shown.
- EP in the embodiment of this application is represented as equal probability.
- merge_gpm_idx0[xCb][yCb] you can also modify merge_gpm_idx1[xCb][yCb].
- the text modification selected by the context probability model is the same as merge_gpm_idx0[xCb][yCb].
- Table 8 it shows an example of using the context probability model for the second bit after binarization of merge_gpm_idx0[][] provided by the embodiment of the present application; if merge_gpm_idx1[xCb][yCb] is modified
- the example is shown in Table 8.1; if you modify merge_gpm_idx0[xCb][yCb] and merge_gpm_idx1[xCb][yCb] at the same time
- the example is shown in Table 8.2.
- the embodiment of the present application can also modify each bit after binarization of merge_gpm_idx0[xCb][yCb] and/or merge_gpm_idx1[xCb][yCb], and individually design a context probability model that conforms to the bit probability distribution. The following will Describe these situations separately.
- merge_gpm_idx0[xCb][yCb] and/or merge_gpm_idx1[xCb][yCb] only the first bit after binarization is designed with different context probability models, but the two values After conversion, the remaining bits except the first bit still adopt the equal probability model.
- the use of the preset model to respectively perform entropy encoding on the binary symbols in the first symbol string and the second symbol string except the first binary symbol includes: using a bypass model to The binary symbols in the first symbol string and the second symbol string except for the first binary symbol are entropy-coded; wherein, the bypass model characterizes the binary arithmetic entropy coding using an equal probability model.
- merge_gpm_idx0[xCb][yCb] from the context probability model shared by merge_gpm_idx0[xCb][yCb], merge_gpm_idx1[xCb][yCb], and merge_idx, which are separately merge_gpm_idx0[xCb][yCb][yCb]
- a context probability model is designed for a bit. After the parameters of the context probability model are initialized, 0 is a high probability symbol, which corresponds to
- merge_gpm_idx0[xCb][yCb] The probability distribution of the first bit after binarization.
- merge_gpm_idx1[xCb][yCb] is separated from the context probability model shared by merge_gpm_idx0[xCb][yCb], merge_gpm_idx1[xCb][yCb] and merge_idx, which is the first of merge_gpm_idx1[xCb][yCb][yCb]
- a context probability model is designed for each bit. After the parameters of the context probability model are initialized, 0 is a high probability symbol, which corresponds to the probability distribution of the first bit after binarization of merge_gpm_idx1[xCb][yCb].
- Table 12 shows an example in which merge_idx[][], merge_gpm_idx0[][] and merge_gpm_idx1[][] share the same context probability model in the current VVC.
- Table 13 shows Examples of merge_gpm_idx0[][] and merge_gpm_idx1[][] provided in the embodiments of the application are separated from sharing the same context probability model.
- Table 14 shows the parameters of the current VVC that the three share the same context probability model Specification design example
- Table 15 shows the parameter specification design example of the merge_idx[][] using the context probability model provided by the embodiment of the application
- Table 16 shows the context probability used by the merge_gpm_idx0[][] provided by the embodiment of the application
- the parameter specification design example of the model shows the parameter specification design example of the context probability model used by merge_gpm_idx1[][] provided in the embodiment of the present application.
- merge_gpm_idx0[xCb][yCb] and/or merge_gpm_idx1[xCb][yCb] not only are different context probability models designed for the first bit after binarization, but also for two Different context probability models are also designed for the second bit after binarization, but the remaining bits except the first bit and the second bit after binarization still adopt the equal probability model.
- the using a preset model to respectively perform entropy encoding on binary symbols in the first symbol string and the second symbol string except for the first binary symbol including:
- the using different context probability models to perform entropy encoding on the first symbol string and the second binary symbol of the second symbol string may include:
- merge_gpm_idx0[xCb][yCb] from the context probability model shared by merge_gpm_idx0[xCb][yCb], merge_gpm_idx1[xCb][yCb], and merge_idx, which are separately merge_gpm_idx0[xCb][yCb][yCb]
- a context probability model is designed per bit; at the same time, a context model is also designed separately for the second bit of merge_gpm_idx0[xCb][yCb].
- merge_gpm_idx1[xCb][yCb] is separated from the context probability model shared by merge_gpm_idx0[xCb][yCb], merge_gpm_idx1[xCb][yCb] and merge_idx, which is the first of merge_gpm_idx1[xCb][yCb][yCb] Design a context model for each bit; at the same time, design a separate context model for the second bit of merge_gpm_idx1[xCb][yCb].
- Table 18 shows an example in which merge_idx[][], merge_gpm_idx0[][] and merge_gpm_idx1[][] share the same context probability model in the current VVC.
- Table 19 shows Examples of the merge_gpm_idx0[][] and merge_gpm_idx1[][] provided by the embodiments of this application are separated from sharing the same context probability model.
- Table 20 shows the current merge_gpm_idx0[][] and merge_gpm_idx1[][ ] Is an example of using an equal probability model for the remaining bits except for the first bit.
- Table 21, Table 21.1, and Table 21.2 show the merge_gpm_idx0[][] and/or merge_gpm_idx1[][] provided in the embodiments of this application.
- An example of a two-bit context probability model Table 22 shows an example of the parameter specification design of the three current VVCs sharing the same context probability model.
- Table 23 shows the use context of merge_idx[][] provided by the embodiments of this application.
- Table 24 shows the parameter specification design example of the context probability model used in the merge_gpm_idx0[][] provided in the embodiment of the application.
- Table 25 shows the merge_gpm_idx1[][ ] The parameter specification design example of the context probability model used.
- different context probability models may be designed for each bit after binarization.
- the method may further include:
- merge_gpm_idx0[xCb][yCb] from the context probability model shared by merge_gpm_idx0[xCb][yCb]
- merge_gpm_idx1[xCb][yCb] and merge_idx which is merge_gpm_idx0[xCb][yCb]
- merge_gpm_idx1[xCb][yCb] is separated from the context probability model shared by merge_gpm_idx0[xCb][yCb], merge_gpm_idx1[xCb][yCb] and merge_idx, which is merge_gpm_idx1[xCb][yCb] Design a context probability model separately for each bit of.
- Table 26 shows an example in which merge_idx[][], merge_gpm_idx0[][] and merge_gpm_idx1[][] share the same context probability model in the current VVC.
- Table 27 shows Examples of the merge_gpm_idx0[][] and merge_gpm_idx1[][] provided in the embodiments of this application are separated from sharing the same context probability model.
- Table 28 shows the current merge_gpm_idx0[][] and merge_gpm_idx1[][ ] Is an example of using the equal probability model for the remaining bits except for the first bit.
- Table 29 shows that each bit of merge_gpm_idx0[][] and merge_gpm_idx1[][] provided by the embodiment of this application uses the context probability model.
- Table 30 shows an example of the parameter specification design of the three current VVCs sharing the same context probability model
- Table 31 shows an example of the parameter specification design of merge_idx[][] using the context probability model provided by the embodiments of the present application.
- Table 32 shows an example of the parameter specification design of the context probability model used by merge_gpm_idx0[][] provided by the embodiment of this application
- Table 33 shows the parameters of the context probability model used by merge_gpm_idx1[][] provided by the embodiment of this application Specification design example.
- a bypass model may be used for each bit after binarization.
- the method may further include:
- a bypass model is used to sequentially entropy encode each binary symbol in the first symbol string and the second symbol string.
- Table 34 shows examples in which merge_gpm_idx0[][] and merge_gpm_idx1[][] provided by the embodiments of this application are separated from sharing the same context probability model, only merge_idx[] [] Use the context probability model;
- Table 35 shows an example of the current VVC merge_gpm_idx0[][] and merge_gpm_idx1[][] except for the first bit using the equal probability model.
- Table 36 shows the application The embodiment provides an example in which each bit of merge_gpm_idx0[][] and merge_gpm_idx1[][] uses the bypass model.
- Table 37 shows the parameter specifications of the merge_idx[][] context probability model provided by the embodiment of the application. Design example.
- optimization may also be made for the processing mode of binarization.
- the embodiment of the present application also proposes to modify the binarization manner of the related syntax elements merge_gpm_idx0[xCb][yCb] in the GPM prediction mode, that is, to replace the foregoing Table 3.
- the probability model of each bit the same context model as the current VVC can be used (that is, the first bit can select merge_gpm_idx0[xCb][yCb], merge_gpm_idx1[xCb][yCb] and merge_idx. Choose equal probability model) for entropy coding.
- Table 43 shows an example of the current merge_gpm_idx0[][] Binarization processing method in VVC
- Table 44 shows the merge_gpm_idx0[][] provided by the embodiment of the application.
- TR stands for Truncated Rice
- the input of the process is the binarization request of the syntax elements merge_gpm_idx0[][] and cMax; the output of the process is the binarization result of the syntax elements,
- the binarization processing method of merge_gpm_idx0[][] is shown in Table 45.
- the probability model for each bit can be implemented using this application
- the context model proposed in the example modify the context probability model of the first bit, the second bit or each bit).
- the binarization processing method can use the above-mentioned Table 43, Table 44, and Table 45, and the text selected by the probability model is modified as follows.
- Table 46 shows the current merge_idx[][], merge_gpm_idx0[][] An example of sharing the same context probability model with merge_gpm_idx1[][].
- Table 47 shows an example of merge_gpm_idx0[][] provided by an embodiment of this application separated from the three sharing the same context probability model
- Table 48 It shows an example of the parameter specification design of the three current VVCs sharing the same context probability model.
- Table 49 shows the parameter specification design of the merge_idx[][] and merge_gpm_idx1[][] shared context probability model provided by the embodiments of this application.
- Table 50 shows an example of the parameter specification design of the context probability model separately designed by merge_gpm_idx0[][] provided in the embodiment of the present application.
- the embodiment of the present application is to make full use of the probability distribution characteristics of the data, which are merge_gpm_idx0[xCb][yCb] and/or merge_gpm_idx1[xCb][yCb] after the binarization of the first bit, the second bit or every A context probability model is designed for each bit, so that the codeword used in actual coding is less than 1 bit, which can reduce the number of bits required for coding, thereby improving coding performance.
- This embodiment provides an encoding method, which is applied to an encoder.
- determining the prediction mode parameter of the current block when the prediction mode parameter indicates that the geometric division mode GPM is used to determine the inter prediction value of the current block, determine the two partitions of the current block; 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 second partition
- the index number value of the motion information in the motion information candidate list; the first motion information index value and the second motion information index value are binarized to obtain the first symbol string and the second symbol
- the symbol string contains one or more binary symbols; using different context probability models to respectively entropy encode the first binary symbol of the first symbol string and the second symbol string; use The preset model respectively performs entropy coding on the binary symbols in the first symbol string and the second symbol string except the first binary symbol; the first symbol string and the second symbol will be The bits obtained after the
- the motion information index value of the first partition and/or the motion information index value of the second partition after the binarization of the first bit, the second bit, or the probability distribution characteristics of each bit are fully utilized, which is Corresponding up-down probability models are designed to reduce the number of bits required for coding, improve coding performance, and achieve the purpose of improving coding efficiency.
- FIG. 6 shows a schematic flowchart of a decoding method provided by an embodiment of the present application.
- the method may include:
- each decoding block may include a first image component, a second image component, and a third image component; and the current block is the prediction of the first image component, the second image component, or the third image component in the image to be decoded. Decode the block.
- the prediction mode parameter indicates the prediction mode adopted by the current block and the parameters related to the prediction mode.
- prediction modes usually include inter-frame prediction modes, traditional intra-frame prediction modes, and non-traditional intra-frame prediction modes, etc.
- inter-frame prediction modes include traditional inter-frame prediction modes and GPM prediction modes.
- the encoder will select the optimal prediction mode to pre-encode the current block. In this process, the prediction mode of the current block can be determined, and the corresponding prediction mode parameters will be written into the code stream and transmitted by the encoder. To the decoder.
- the prediction mode parameters of the current block can be obtained by parsing the code stream, and the obtained prediction mode parameters are used to determine whether the current block uses the GPM prediction mode.
- S603 Parse the code stream, 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, where the first symbol string and the second symbol string include one or Multiple binary symbols, including: using different context probability models to parse the code stream to obtain the first binary symbol of the first symbol string and the second symbol string; using the preset model to continue to parse the code stream to obtain the first binary symbol A symbol string and binary symbols other than the first binary symbol in the second symbol string;
- the first symbol string and the second symbol string respectively represent one or more binary symbols related to the motion information index values of the two partitions of the current block.
- the first symbol string contains one or more binary symbols, which are related to the first motion information index value (indicated by merge_gpm_idx0[xCb][yCb]) corresponding to the first partition of the current block;
- the second symbol The string also contains one or more binary symbols, which are related to the second motion information index value (indicated by merge_gpm_idx1[xCb][yCb]) corresponding to the second partition of the current block.
- the prediction mode parameter indicates that the current block uses the GPM prediction mode, it is also necessary to continue to parse the code stream to obtain the angle index value and the step size index value of the current block.
- the prediction mode parameter indicates that the current block adopts GPM to determine the inter prediction value of the current block, the method may further include:
- the preset mapping table is used to indicate the division mode index value, angle Correspondence between index value and step index;
- the angle index value and the step length index value obtained by the query are determined as the angle index value and the step length index value corresponding to the dividing line in the current block.
- the code stream can also be parsed to obtain the partition mode index value of the current block, represented by merge_gpm_partition_idx, combined with the preset mapping table shown in Table 1, you can Look up the table to get the corresponding angle index value (indicated by angleIdx) and step index value (indicated by distanceIdx).
- the dividing line of the current block can be determined and divided, so as to obtain the two partitions of the current block, such as the first partition and the second partition.
- You can also use A partition and B partition are represented.
- two sets of symbol strings namely the first symbol string and the second symbol string, can also be obtained by parsing the code stream.
- entropy decoding is performed on the code stream to obtain binarized bits.
- the decoder will also maintain a probability model consistent with the encoder side, and use this probability model to perform binary arithmetic decoding.
- the first bit after the binarization of merge_gpm_idx0[x0][y0] and merge_gpm_idx1[x0][y0] can be decoded using different context probability models.
- using different context probability models to parse the code stream to obtain the first binary symbol of the first symbol string and the second symbol string may include:
- the second context probability model is used to perform binary arithmetic entropy decoding 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.
- the use of the preset model to continue parsing the code stream to obtain binary symbols other than the first binary symbol in the first symbol string and the second symbol string includes:
- the bypass model is used to parse the code stream, and binary symbols other than the first binary symbol in the first symbol string and the second symbol string are sequentially obtained; wherein, the bypass model is characterized by using an equal probability model Perform binary arithmetic entropy decoding.
- a different context probability model is designed not only for the first bit after binarization, but also for the second bit after binarization. Different context probability models are also designed for each bit, but after the binarization, the remaining bits except the first bit and the second bit still adopt the equal probability model.
- the use of the preset model to continue parsing the code stream to obtain binary symbols other than the first binary symbol in the first symbol string and the second symbol string includes:
- bypass model uses an equal probability model to perform binary arithmetic entropy decoding.
- the using the preset model to continue parsing the code stream to obtain binary symbols other than the first binary symbol in the first symbol string and the second symbol string may include:
- the fourth context probability model is used to perform binary arithmetic entropy decoding 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.
- the method may further include:
- Different context probability models are used to parse the code stream to obtain each binary symbol in the first symbol string and the second symbol string.
- a bypass model may be used for each bit after binarization.
- the method may further include:
- the code stream is parsed using a bypass model to obtain each binary symbol in the first symbol string and the second symbol string.
- the same arithmetic coding rules of the context probability model on the encoder side can be used to perform entropy decoding on the code stream, and the first symbol string and the second symbol string can be parsed; according to the first symbol string and the second symbol string, Subsequent binarization and inverse processing can be performed on them respectively.
- S604 Determine the corresponding first numerical value and second numerical value of the first symbol string and the second symbol string according to a preset binarization model, and set the first numerical value and the second numerical value to The first motion information index value and the second motion information index value;
- the binarization model is used to convert the symbol string to the corresponding value; specifically, the same Table 3 and Table 4 as the encoder can be used to restore the binary bit to the corresponding motion information index value, namely merge_gpm_idx0[xCb][yCb] and merge_gpm_idx1[xCb][yCb].
- 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 set the motion information indicated by the second motion information index value. Determining that the motion information in the motion information candidate list is the motion information of the second partition;
- the motion information may include at least a motion vector and a reference image index. Since the motion information of the neighboring blocks can be obtained, the motion information candidate list can be constructed for at least two partitions of the current block according to the motion information of the neighboring blocks, so that the motion information candidate list can be obtained. Specifically, in some embodiments, the method may further include:
- the motion information candidate list is constructed by using motion information of neighboring blocks of the current block.
- the way the decoder side constructs the motion information candidate list is consistent with the procedure of constructing the list in the normal merge mode.
- the construction sequence is still: the upper adjacent block B 1 , the left adjacent block A 1 , the upper right adjacent block B 0 , the lower left adjacent block A 0 , the upper left adjacent block B 2 , the corresponding position of the reference frame Block col, historical reference block his, average motion vector mv avg of the first and second candidate mv, and zero motion vector 0. That is, the operation of the decoder side to construct the motion information candidate list is consistent with the operation of the encoder side to construct the motion information candidate list.
- merge_gpm_idx0[xCb][yCb] can be obtained by parsing the code stream, which represents the position of mv of partition A in the merge candidate list, so
- merge_gpm_idx1[xCb][yCb] which represents the position of the mv of the B partition in the merge candidate list, because the position of the mv of the B partition in the merge list may be because the A partition first selected the top position Option, but will decrease by 1, even if
- n represents the actual position of the mv selected by the B partition in the merge list.
- the decoder side does not need to perform motion estimation. After obtaining M and N, they can be used to determine the inter-frame prediction value of the current block.
- S606 Determine the inter prediction value of the current block according to the motion information corresponding to the first partition and the motion information of the second partition.
- the motion information corresponding to the first partition of the current block and the motion information of the second partition can be obtained; and then according to the motion corresponding to the first partition
- the information and the motion information of the second partition can determine the inter-frame prediction value of the current block.
- FIG. 7 shows a schematic diagram of the overall architecture of a GPM prediction processing procedure provided by an embodiment of the present application.
- the overall architecture may include an input module 701, a processing module 702, and an output module 703.
- the input module 701 provides input parameters in the GPM prediction mode. These input parameters include: the pixel position of the current block.
- the luminance component as an example, it can be described by a luma location (xCb, yCb); the size information of the current block, It can be described by cbWidth and cbHeight; the mv information of the luminance component with 1/16 pixel accuracy can be expressed in 1/16 fractional-sample accuracy mvA and mvB; the mv information of the chrominance component with 1/32 pixel accuracy can be expressed as 1/ 32 Fractional-sample accuracy mvCA and mvCB represent; the reference frame corresponding to mv information can be represented by refIdxA and refIdxB; the list identifier selected by mv information is represented by predListFlagA and predListFlagB.
- the processing module 702 includes 3 steps: First, derive the reference frame list (represented by refPicLN) for the three image components (including the L component, Cb component and Cr component), and sub-pixel predicted pixel values (represented by predSamplesLN), where N is A or B, and the sub-pixel predicted pixel value is 14-bit depth; secondly, derive the angle and step size of the dividing line; thirdly, derive the weighted predicted pixel value for the three image components (represented by predSamples); finally, store the mv information, Used for subsequent prediction of mvN, refIdxN and predListFlagN.
- the output module 703 is used to output predicted pixel values, which may include predicted pixel values corresponding to each of the three image components, which are represented by predSampleL, predSampleCb, and predSampleCr, respectively.
- predicted pixel values which may include predicted pixel values corresponding to each of the three image components, which are represented by predSampleL, predSampleCb, and predSampleCr, respectively.
- the first prediction value of the first partition of the current block and the second prediction value of the second partition of the current block may be determined;
- the weight matrix of the current block is calculated according to the offset information, the first predicted value, the second predicted value, and the weight matrix can also be used to perform weighted fusion on each pixel in the current block to obtain the inter-predicted value of the current block.
- This embodiment provides a decoding method, which is applied to a decoder.
- the prediction mode parameter of the current block is obtained by parsing the code stream; when the prediction mode parameter indicates that the geometric division mode GPM is used to determine the inter prediction value of the current block, the two partitions of the current block are determined; the code stream is parsed , Determining 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 include one or more binary symbols , Including: parsing the code stream using different context probability models to obtain the first binary symbol of the first symbol string and the second symbol string; using the preset model to continue parsing the code stream to obtain the first symbol string and the Binary symbols other than the first binary symbol in the second symbol string; according to a preset binarization model, determine the corresponding first value and second value of the first symbol string and the second symbol string Numerical value, the first numerical value and the second numerical value are respectively set as the first motion information index value and
- the first bit, the second bit, or the probability distribution characteristics of each bit after the binarization of the motion information index value of the first partition and/or the motion information index value of the second partition are fully utilized.
- Corresponding up-and-down probability models are designed to reduce the number of bits required for encoding, improve decoding performance, and achieve the purpose of improving decoding efficiency.
- FIG. 8 shows a schematic diagram of the composition structure of an encoder 80 provided in an embodiment of the present application.
- the encoder 80 may include: a first determining unit 801, a setting unit 802, a processing unit 803, and an encoding unit 804; among them,
- the first determining unit 801 is configured to determine the prediction mode parameter of the current block
- 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 geometric division mode GPM is used to determine the inter prediction value of the current block;
- the 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 of the motion information of the first partition in the motion information candidate list Value, the second motion information index value is set to the index number value of the motion information of the second partition in the motion information candidate list;
- the processing unit 803 is configured to perform binarization processing on the first motion information index value and the second motion information index value to obtain a first symbol string and a second symbol string; wherein, the symbol string includes one Or multiple binary symbols;
- the encoding unit 804 is configured to use different context probability models to respectively perform entropy encoding on the first binary symbol of the first symbol string and the second symbol string; and use a preset model to respectively perform entropy encoding on the first symbol string Entropy encoding the binary symbols other than the first binary symbol in the second symbol string; and writing the bits obtained by encoding the first symbol string and the second symbol string into the code flow.
- the encoder 80 may further include a first construction unit 805 configured to construct the motion information candidate list using the motion information of neighboring blocks of the current block.
- the encoding unit 804 is specifically configured to use a first context probability model to perform entropy coding on the first binary symbol of the first symbol string, and use a second context probability model to perform entropy coding on the second symbol string. Entropy coding is performed on the first binary symbol of, wherein, the first context probability model is different from the second context probability model.
- the encoding unit 804 is further configured to use a bypass model to perform entropy encoding on binary symbols other than the first binary symbol in the first symbol string and the second symbol string; wherein ,
- the bypass model represents the use of an equal probability model to perform binary arithmetic entropy coding.
- the encoding unit 804 is further configured to use different context probability models to perform entropy coding on the first symbol string and the second binary symbol of the second symbol string; Entropy coding is performed on binary symbols other than the first binary symbol and the second binary symbol in the first symbol string and the second symbol string; wherein, the bypass model characterization uses an equal probability model to perform entropy coding.
- Binary arithmetic entropy coding is further configured to use different context probability models to perform entropy coding on the first symbol string and the second binary symbol of the second symbol string; Entropy coding is performed on binary symbols other than the first binary symbol and the second binary symbol in the first symbol string and the second symbol string; wherein, the bypass model characterization uses an equal probability model to perform entropy coding.
- the encoding unit 804 is specifically configured to use a third context probability model to perform entropy coding on the second binary symbol of the first symbol string, and use a fourth context probability model to perform entropy coding on the second binary symbol of the second symbol string. Entropy coding is performed on two binary symbols; wherein, the third context probability model is different from the fourth context probability model.
- the encoding unit 804 is further configured to use different context probability models to perform entropy encoding on each binary symbol in the first symbol string and the second symbol string.
- the encoding unit 804 is further configured to use a bypass model to perform entropy encoding on each binary symbol in the first symbol string and the second symbol string.
- the first determining unit 801 is specifically configured to perform precoding processing on the current block using multiple prediction modes to obtain the rate-distortion cost value corresponding to each prediction mode;
- the minimum rate-distortion cost value is selected from the rate-distortion cost value, and the prediction mode corresponding to the minimum rate-distortion cost value is determined as the prediction mode parameter of the current block.
- a "unit" may be a part of a circuit, a part of a processor, a part of a program or software, etc., of course, may also be a module, or may be non-modular.
- the various components in this embodiment may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
- the above-mentioned integrated unit can be realized in the form of hardware or software function module.
- the integrated unit is implemented in the form of a software function module and is not sold or used as an independent product, it can be stored in a computer readable storage medium.
- the technical solution of this embodiment is essentially or It is said that the part that contributes to the existing technology or all or part of the technical solution can be embodied in the form of a software product.
- the computer software product is stored in a storage medium and includes several instructions to enable a computer device (which can It is a personal computer, a server, or a network device, etc.) or a processor (processor) that executes all or part of the steps of the method described in this embodiment.
- the aforementioned storage media include: U disk, mobile hard disk, read only memory (Read Only Memory, ROM), random access memory (Random Access Memory, RAM), magnetic disk or optical disk and other media that can store program codes.
- the embodiment of the present application provides a computer storage medium, which is applied to the encoder 80, and the computer storage medium stores an encoding program, and the encoding program is executed by the first processor to implement the foregoing embodiments. Methods.
- FIG. 9 shows an example of a specific hardware structure of the encoder 80 provided by an embodiment of the present application, which may include: a first communication interface 901, a first memory 902, and a first communication interface 901; A processor 903; the components are coupled together through the first bus system 904.
- the first bus system 904 is used to implement connection and communication between these components.
- the first bus system 904 also includes a power bus, a control bus, and a status signal bus.
- various buses are marked as the first bus system 904 in FIG. 9. in,
- the first communication interface 901 is used for receiving and sending signals in the process of sending and receiving information with other external network elements;
- the first memory 902 is configured to store a computer program that can run on the first processor 903;
- the first processor 903 is configured to execute: when running the computer program:
- the prediction mode parameter indicates that the geometric division mode GPM is used to determine the inter prediction value of the current block, determine two partitions of the current block;
- the bits obtained by encoding the first symbol string and the second symbol string are written into a code stream.
- the first memory 902 in the embodiment of the present application may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memory.
- the non-volatile memory can be read-only memory (Read-Only Memory, ROM), programmable read-only memory (Programmable ROM, PROM), erasable programmable read-only memory (Erasable PROM, EPROM), and electrically available Erase programmable read-only memory (Electrically EPROM, EEPROM) or flash memory.
- the volatile memory may be a random access memory (Random Access Memory, RAM), which is used as an external cache.
- RAM static random access memory
- DRAM dynamic random access memory
- DRAM synchronous dynamic random access memory
- DDRSDRAM Double Data Rate Synchronous Dynamic Random Access Memory
- Enhanced SDRAM, ESDRAM Synchronous Link Dynamic Random Access Memory
- Synchlink DRAM Synchronous Link Dynamic Random Access Memory
- DRRAM Direct Rambus RAM
- the first processor 903 may be an integrated circuit chip with signal processing capability. In the implementation process, the steps of the foregoing method can be completed by an integrated logic circuit of hardware in the first processor 903 or instructions in the form of software.
- the above-mentioned first processor 903 may be a general-purpose processor, a digital signal processor (Digital Signal Processor, DSP), an application specific integrated circuit (ASIC), a ready-made programmable gate array (Field Programmable Gate Array, FPGA) Or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components.
- DSP Digital Signal Processor
- ASIC application specific integrated circuit
- FPGA ready-made programmable gate array
- the methods, steps, and logical block diagrams disclosed in the embodiments of the present application can be implemented or executed.
- the general-purpose processor may be a microprocessor or the processor may also be any conventional processor or the like.
- the steps of the method disclosed in the embodiments of the present application may be directly embodied as being executed and completed by a hardware decoding processor, or executed and completed by a combination of hardware and software modules in the decoding processor.
- the software module can be located in a mature storage medium in the field, such as random access memory, flash memory, read-only memory, programmable read-only memory, or electrically erasable programmable memory, registers.
- the storage medium is located in the first memory 902, and the first processor 903 reads the information in the first memory 902, and completes the steps of the foregoing method in combination with its hardware.
- the embodiments described in this application can be implemented by hardware, software, firmware, middleware, microcode, or a combination thereof.
- the processing unit can be implemented in one or more application specific integrated circuits (ASIC), digital signal processor (Digital Signal Processing, DSP), digital signal processing equipment (DSP Device, DSPD), programmable Logic device (Programmable Logic Device, PLD), Field-Programmable Gate Array (Field-Programmable Gate Array, FPGA), general-purpose processors, controllers, microcontrollers, microprocessors, and others for performing the functions described in this application Electronic unit or its combination.
- ASIC application specific integrated circuits
- DSP Digital Signal Processing
- DSP Device digital signal processing equipment
- PLD programmable Logic Device
- PLD Field-Programmable Gate Array
- FPGA Field-Programmable Gate Array
- the technology described in this application can be implemented through modules (for example, procedures, functions, etc.) that perform the functions described in this application.
- the software codes can be stored in the memory and executed by
- the first processor 903 is further configured to execute the method described in any one of the foregoing embodiments when the computer program is running.
- This embodiment provides an encoder, which may include a first determining unit, a setting unit, a processing unit, and an encoding unit.
- the first bit, the second bit, or the probability distribution of each bit after the binarization of the motion information index value of the first partition and/or the motion information index value of the second partition is fully utilized Characteristic, the corresponding up-and-down probability model is designed for it, which can reduce the number of bits required for coding and improve the coding performance.
- FIG. 10 shows a schematic diagram of the composition structure of a decoder 100 provided by an embodiment of the present application.
- the decoder 100 may include: an analysis unit 1001, a second determination unit 1002, an inverse processing unit 1003, and a prediction unit 1004; wherein,
- the parsing unit 1001 is configured to parse the code stream to obtain the prediction mode parameters of the current block;
- the second determining unit 1002 is configured to determine two partitions of the current block when the prediction mode parameter indicates that the geometric division mode GPM is used to determine the inter prediction value of the current block;
- the parsing unit 1001 is further configured to parse the code stream 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
- the symbol string contains one or more binary symbols, including: using different context probability models to parse the code stream to obtain the first binary symbol of the first symbol string and the second symbol string; use the preset model to continue parsing the code stream, Obtaining binary symbols other than the first binary symbol in the first symbol string and the second symbol string;
- the inverse processing unit 1003 is configured to determine the corresponding first numerical value and the second numerical value of the first symbol string and the second symbol string according to a preset binarization model, and combine the first numerical value with the first numerical value The two values are respectively set as the first motion information index value and the second motion information index value;
- the second determining unit 1002 is further configured to 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 based on the motion information candidate list, and determine the motion information corresponding to the first partition. 2.
- the motion information in the motion information candidate list indicated by the motion information index value is determined to be the motion information of the second partition;
- the prediction unit 1004 is configured to determine the inter prediction value of the current block according to the motion information corresponding to the first partition and the motion information of the second partition.
- the decoder 100 may further include a second construction unit 1005 configured to construct the motion information candidate list using the motion information of neighboring blocks of the current block.
- the parsing unit 1001 is specifically configured to use the first context probability model to perform binary arithmetic entropy decoding to obtain the first binary symbol of the first symbol string; use the second context probability model to perform binary Arithmetic entropy decoding is performed 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.
- the parsing unit 1001 is further configured to parse the code stream using a bypass model, and sequentially obtain binary symbols other than the first binary symbol in the first symbol string and the second symbol string ;
- the bypass model characterizes the use of an equal probability model for binary arithmetic entropy decoding.
- the parsing unit 1001 is further configured to analyze the code stream using different context probability models to obtain the first symbol string and the second binary symbol of the second symbol string; continue using the bypass model
- the code stream is parsed to sequentially obtain binary symbols in the first symbol string and the second symbol string except for the first binary symbol and the second binary symbol; wherein, the bypass model characterizes the use of The equal probability model performs binary arithmetic entropy decoding.
- the parsing unit 1001 is specifically configured to use a third context probability model to perform binary arithmetic entropy decoding to obtain the second binary symbol of the first symbol string; use the fourth context probability model to perform binary arithmetic entropy decoding , Obtaining 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.
- the parsing unit 1001 is further configured to analyze the code stream using different context probability models to obtain each binary symbol in the first symbol string and the second symbol string.
- the parsing unit 1001 is further configured to analyze the code stream by using a bypass model to obtain each binary symbol in the first symbol string and the second symbol string.
- a "unit" may be a part of a circuit, a part of a processor, a part of a program or software, etc., of course, it may also be a module, or it may also be non-modular.
- the various components in this embodiment may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
- the above-mentioned integrated unit can be realized in the form of hardware or software function module.
- the integrated unit is implemented in the form of a software function module and is not sold or used as an independent product, it can be stored in a computer readable storage medium.
- this embodiment provides a computer storage The medium is applied to the decoder 100, and the computer storage medium stores a decoding program which, when executed by the second processor, implements the method described in any one of the foregoing embodiments.
- FIG. 11 shows an example of a specific hardware structure of the decoder 100 provided by an embodiment of the present application, which may include: a second communication interface 1101, a second memory 1102, and a second communication interface 1101; Two processors 1103; various components are coupled together through a second bus system 1104.
- the second bus system 1104 is used to implement connection and communication between these components.
- the second bus system 1104 also includes a power bus, a control bus, and a status signal bus.
- various buses are marked as the second bus system 1104 in FIG. 11. in,
- the second communication interface 1101 is used for receiving and sending signals in the process of sending and receiving information with other external network elements;
- the second memory 1102 is configured to store a computer program that can run on the second processor 1103;
- the second processor 1103 is configured to execute: when the computer program is running:
- the prediction mode parameter indicates that the geometric division mode GPM is used to determine the inter prediction value of the current block, determine two partitions of the current block;
- the code stream 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 include one or more Binary symbols include: parsing the code stream 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 code stream using the preset model to obtain the first symbol string And binary symbols other than the first binary symbol in the second symbol string;
- a preset binarization model determine the corresponding first numerical value and second numerical value of the first symbol string and the second symbol string, and set the first numerical value and the second numerical value to the first value respectively.
- 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 indicated by the second motion information index value
- the motion information in the motion information candidate list is determined to be the motion information of the second partition;
- the second processor 1103 is further configured to execute the method described in any one of the foregoing embodiments when the computer program is running.
- This embodiment provides a decoder, which may include a parsing unit, a second determining unit, an inverse processing unit, and a prediction unit.
- the first bit, the second bit, or the probability distribution of each bit after the binarization of the motion information index value of the first partition and/or the motion information index value of the second partition is fully utilized Characteristic, the corresponding up-and-down probability model is designed for it, which can reduce the number of bits required for encoding and improve the decoding performance.
- the first bit and the second bit after the binarization of the motion information index value of the first partition and/or the motion information index value of the second partition are fully utilized.
- a corresponding up-and-down probability model is designed for it, so that the number of bits required for encoding can be reduced, the coding and decoding performance is improved, and the purpose of improving the coding and decoding efficiency is achieved.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请实施例公开了一种编码方法、解码方法、编码器、解码器以及存储介质,当预测模式参数指示采用几何划分模式GPM确定当前块的帧间预测值时,确定当前块的两个分区;从运动信息候选列表中,确定两个分区的运动信息,将第一运动信息索引值设置为第一分区的运动信息在运动信息候选列表中的索引序号值,第二运动信息索引值设置为第二分区的运动信息在运动信息候选列表中的索引序号值;分别对第一运动信息索引值和第二运动信息索引值进行二值化处理,得到第一符号串和第二符号串;使用不同的上下文概率模型分别对第一符号串和第二符号串的第一个二元符号熵编码;使用预设模型分别对第一符号串和第二符号串内除第一个二元符号之外的二元符号熵编码。
Description
相关申请的交叉引用
本申请要求在2020年04月08日提交中国专利局、申请号为202010271284.3、申请名称为“编码方法、解码方法、编码器、解码器以及存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及编解码技术领域,尤其涉及一种编码方法、解码方法、编码器、解码器以及存储介质。
在视频编解码领域,针对当前块进行编解码的过程,除了采用帧内预测方式之外,还可以采用帧间预测方式。其中,帧间预测具体可以采用帧间几何划分预测模式(Geometrical partitioning for inter blocks,GEO),或称之为GPM预测模式,将当前块划分为两个非矩形的分区后分别进行预测再加权融合,从而得到当前块的帧间预测值。
然而,针对这两个分区,在语法元素描述中,第一分区的运动信息索引值(用merge_gpm_idx0[xCb][yCb]表示)和第二分区的运动信息索引值(用merge_gpm_idx1[xCb][yCb]表示)二值化(Binarization)后的第一个比特使用相同的上下文(Context)概率模型编码,但是这些语法元素值并不具有相同的概率分布,将会使得编码比特数增加;另外,二值化后的第二个比特使用等概模型编码,由于并没有充分考虑概率分布,仍会使得编码比特数增加。
发明内容
本申请实施例提出一种编码方法、解码方法、编码器、解码器以及存储介质,充分利用第一分区的运动信息索引值和/或第二分区的运动信息索引值在二值化后的第一个比特、第二个比特或者每一个比特的概率分布特性,从而能够减小编码所需的比特数,提升编解码性能。
本申请实施例的技术方案是这样实现的:
第一方面,本申请实施例提供了一种编码方法,应用于编码器,该方法包括:
确定当前块的预测模式参数;
当所述预测模式参数指示采用几何划分模式GPM确定所述当前块的帧间预测值时,确定所述当前块的两个分区;
从运动信息候选列表中,确定所述两个分区的运动信息,并将第一运动信息索引值设置为第一分区的运动信息在所述运动信息候选列表中的索引序号值,第二运动信息索引值设置为第二分区的运动信息在所述运动信息候选列表中的索引序号值;
分别对所述第一运动信息索引值和所述第二运动信息索引值进行二值化处理,得到第一符号串和第二符号串;其中,所述符号串包含一个或多个二元符号;
使用不同的上下文概率模型分别对第一符号串和第二符号串的第一个二元符号进行熵编码;
使用预设模型分别对第一符号串和第二符号串内除第一个二元符号之外的二元符号进行熵编码;
将对所述第一符号串和所述第二符号串进行编码后得到的比特写入码流。
第二方面,本申请实施例提供了一种解码方法,应用于解码器,该方法包括:
当所述预测模式参数指示采用几何划分模式GPM确定所述当前块的帧间预测值时,确定所述当前块的两个分区;
解析码流,确定所述当前块的两个分区的运动信息索引值对应的第一符号串和第二符号串,其中,所述第一符号串和所述第二符号串包含一个或多个二元符号,包括:使用不同的上下文概率模型解析码流,获得第一符号串和第二符号串的第一个二元符号;使用预设模型继续解析码流,获得所述第一符号 串和所述第二符号串内除第一个二元符号之外的二元符号;
根据预设的二值化模型,确定所述第一符号串和所述第二符号串的对应第一数值和第二数值,将所述第一数值和所述第二数值分别设置为第一运动信息索引值和第二运动信息索引值;
基于运动信息候选列表,将所述第一运动信息索引值指示的所述运动信息候选列表中的运动信息确定为第一分区对应的运动信息,将所述第二运动信息索引值指示的所述运动信息候选列表中的运动信息确定为第二分区的运动信息;
根据所述第一分区对应的运动信息和所述第二分区的运动信息,确定当前块的帧间预测值。
第三方面,本申请实施例提供了一种编码器,该编码器包括第一确定单元、设置单元、处理单元和编码单元;其中,
所述第一确定单元,配置为确定当前块的预测模式参数;
所述第一确定单元,还配置为当所述预测模式参数指示采用几何划分模式GPM确定所述当前块的帧间预测值时,确定待编码图像中当前块的两个分区;
所述设置单元,配置为从运动信息候选列表中,确定所述两个分区的运动信息,并将第一运动信息索引值设置为第一分区的运动信息在所述运动信息候选列表中的索引序号值,第二运动信息索引值设置为第二分区的运动信息在所述运动信息候选列表中的索引序号值;
所述处理单元,配置为分别对所述第一运动信息索引值和所述第二运动信息索引值进行二值化处理,得到第一符号串和第二符号串;其中,所述符号串包含一个或多个二元符号;
所述编码单元,配置为使用不同的上下文概率模型分别对所述第一符号串和所述第二符号串的第一个二元符号进行熵编码;使用预设模型分别对所述第一符号串和所述第二符号串内除第一个二元符号之外的二元符号进行熵编码;并将对所述第一符号串和所述第二符号串进行编码后得到的比特写入码流。
第四方面,本申请实施例提供了一种编码器,该编码器包括第一存储器和第一处理器;其中,
所述第一存储器,用于存储能够在所述第一处理器上运行的计算机程序;
所述第一处理器,用于在运行所述计算机程序时,执行如第一方面所述的方法。
第五方面,本申请实施例提供了一种解码器,该解码器包括解析单元、第二确定单元、逆处理单元和预测单元;其中,
所述解析单元,配置为解析码流,获得当前块的预测模式参数;
所述第二确定单元,配置为当所述预测模式参数指示采用几何划分模式GPM确定所述当前块的帧间预测值时,确定所述当前块的两个分区;
所述解析单元,还配置为解析码流,确定所述当前块的两个分区的运动信息索引值对应的第一符号串和第二符号串,其中,所述第一符号串和所述第二符号串包含一个或多个二元符号,包括:使用不同的上下文概率模型解析码流,获得第一符号串和第二符号串的第一个二元符号;使用预设模型继续解析码流,获得所述第一符号串和所述第二符号串内除第一个二元符号之外的二元符号;
所述逆处理单元,配置为根据预设的二值化模型,确定所述第一符号串和所述第二符号串的对应第一数值和第二数值,将所述第一数值和所述第二数值分别设置为第一运动信息索引值和第二运动信息索引值;
所述第二确定单元,还配置为基于运动信息候选列表,将所述第一运动信息索引值指示的所述运动信息候选列表中的运动信息确定为第一分区对应的运动信息,将所述第二运动信息索引值指示的所述运动信息候选列表中的运动信息确定为第二分区的运动信息;
所述预测单元,配置为根据所述第一分区对应的运动信息和所述第二分区的运动信息,确定所述当前块的帧间预测值。
第六方面,本申请实施例提供了一种解码器,该解码器包括第二存储器和第二处理器;其中,
所述第二存储器,用于存储能够在所述第二处理器上运行的计算机程序;
所述第二处理器,用于在运行所述计算机程序时,执行如第二方面所述的方法。
第七方面,本申请实施例提供了一种计算机存储介质,该计算机存储介质存储有计算机程序,所述计算机程序被第一处理器执行时实现如第一方面所述的方法、或者被第二处理器执行时实现如第二方面所述的方法。
本申请实施例所提供的一种编码方法、解码方法、编码器、解码器以及存储介质,应用于编码器,确定当前块的预测模式参数;当所述预测模式参数指示采用几何划分模式GPM确定所述当前块的帧间预测值时,确定所述当前块的两个分区;从运动信息候选列表中,确定所述两个分区的运动信息,并将第一运动信息索引值设置为第一分区的运动信息在所述运动信息候选列表中的索引序号值,第二运动信息索引值设置为第二分区的运动信息在所述运动信息候选列表中的索引序号值;分别对所述第一运动信息索引值和所述第二运动信息索引值进行二值化处理,得到第一符号串和第二符号串;其中,所述符号 串包含一个或多个二元符号;使用不同的上下文概率模型分别对所述第一符号串和所述第二符号串的第一个二元符号进行熵编码;使用预设模型分别对所述第一符号串和所述第二符号串内除第一个二元符号之外的二元符号进行熵编码;将对所述第一符号串和所述第二符号串进行编码后得到的比特写入码流。此外,本申请实施例提供了一种解码方法,应用于解码器,通过解析码流,获得当前块的预测模式参数;当所述预测模式参数指示采用几何划分模式GPM确定所述当前块的帧间预测值时,确定所述当前块的两个分区;解析码流,确定所述当前块的两个分区的运动信息索引值对应的第一符号串和第二符号串,其中,所述第一符号串和所述第二符号串包含一个或多个二元符号,包括:使用不同的上下文概率模型解析码流,获得第一符号串和第二符号串的第一个二元符号;使用预设模型继续解析码流,获得所述第一符号串和所述第二符号串内除第一个二元符号之外的二元符号;根据预设的二值化模型,确定所述第一符号串和所述第二符号串的对应第一数值和第二数值,将所述第一数值和所述第二数值分别设置为第一运动信息索引值和第二运动信息索引值;基于运动信息候选列表,将所述第一运动信息索引值指示的所述运动信息候选列表中的运动信息确定为第一分区对应的运动信息,将所述第二运动信息索引值指示的所述运动信息候选列表中的运动信息确定为第二分区的运动信息;根据所述第一分区对应的运动信息和所述第二分区的运动信息,确定所述当前块的帧间预测值。这样,无论是编码器还是解码器,充分利用了第一分区的运动信息索引值和/或第二分区的运动信息索引值在二值化后的第一个比特、第二个比特或者每一个比特的概率分布特性,为其设计对应的上下型概率模型,从而能够减小编码所需的比特数,提升了编解码性能,以达到提升编解码效率的目的。
图1A为相关技术方案提供的一种几何划分模式的结构示意图;
图1B为相关技术方案提供的另一种几何划分模式的结构示意图;
图2为相关技术方案提供的一种当前块的角度和步长的结构示意图;
图3A为本申请实施例提供的一种视频编码系统的组成框图;
图3B为本申请实施例提供的一种视频解码系统的组成框图;
图4为本申请实施例提供的一种编码方法的流程示意图;
图5为本申请实施例提供的一种构造merge候选列表的相邻块分布示意图;
图6为本申请实施例提供的一种解码方法的流程示意图;
图7为本申请实施例提供的一种GPM预测处理流程的总体架构示意图;
图8为本申请实施例提供的一种编码器的组成结构示意图;
图9为本申请实施例提供的一种编码器的具体硬件结构示意图;
图10为本申请实施例提供的一种解码器的组成结构示意图;
图11为本申请实施例提供的一种解码器的具体硬件结构示意图。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅仅用于解释相关申请,而非对该申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关申请相关的部分。
在视频图像中,一般采用第一图像分量、第二图像分量和第三图像分量来表征当前块(Coding Block,CB);其中,这三个图像分量分别为一个亮度分量、一个蓝色色度分量和一个红色色度分量,具体地,亮度分量通常使用符号Y表示,蓝色色度分量通常使用符号Cb或者U表示,红色色度分量通常使用符号Cr或者V表示;这样,视频图像可以用YCbCr格式表示,也可以用YUV格式表示。
在本申请实施例中,第一图像分量可以为亮度分量,第二图像分量可以为蓝色色度分量,第三图像分量可以为红色色度分量,但是本申请实施例不作具体限定。
下面将针对几何划分预测模式(Geometrical Partition Mode,GPM)进行相关技术方案的描述。
在视频编码的混合框架中,通常只以正方形和矩形的块为单位实施预测、变换和量化等编码技术。然而实际应用中,运动物体的边缘并不一定都是水平或者垂直方向;即使是,也不一定刚好处于可以划分的块边缘上,由于运动边缘两侧的运动矢量往往不同,这样在编码过程中以一个整块进行运动预测和补偿,容易产生较大的预测误差,从而导致编码效率受限。
在新一代视频编码标准H.266/多功能视频编码(Versatile Video Coding,VVC)的制定过程中,引 入了正方形和矩形之外的其他形状划分。首先是三角划分预测模式(Triangular partition Mode,TPM)的引入,如图1A所示;在图1A中,以一个正方形或矩形的对角线、或反对角线作为分割线,用以得到三角形的预测单元,从而能够更灵活的表示帧间预测数据,降低了预测误差,进而提高了编码效率。
在联合视频专家组(Joint Video Experts Team,JVET)的第某次会议中,提出了一种比TPM更为灵活的帧间几何划分帧间预测模式(Geometrical partitioning for inter blocks,GEO),之后JVET还正式将GEO预测模式采纳到VVC中,并且更名为GPM。具体地,该GPM预测技术针对图像中运动物体的边缘部分,采用更为灵活的表示方法,将帧间块划分为两个非矩形的分区,如图1B所示;针对划分后的两个分区分别进行预测后再加权融合,以得到当前块的帧间预测值。
还需要说明的是,在目前VVC中,GPM预测技术总共可以有64种划分模式,而每一种划分模式对应一种角度(用α表示)和一种步长(用ρ表示),也即总共可以有20种角度、4种步长。如图2所示,水平方向向右旋转到分割线法线位置的角度即为α,分割线的法线距离即为ρ;这里,每一种角度和步长的组合可以构成一种划分模式。在GPM预测模式下,根据一种划分模式可以将当前块划分为两个非矩形的分区,每个分区单独进行单向的运动补偿以得到单向预测值,最后利用权重矩阵对两个分区的单向预测值进行加权融合,可以得到最终的GPM预测值。
然而,针对每一个当前块的两个分区,在语法元素描述中,第一分区的运动信息索引值(用merge_gpm_idx0[xCb][yCb]表示)和第二分区的运动信息索引值(用merge_gpm_idx1[xCb][yCb]表示)均需要二值化处理。在目前的方案中,merge_gpm_idx0[xCb][yCb]和merge_gpm_idx1[xCb][yCb]二值化处理后的第一个比特采用同一个上下文概率模型,且与普通帧间预测模式的运动信息索引值(用merge_idx表示)共享同一个上下文概率模型,但是这些语法元素值不具有相同的概率分布,这就会导致在编码过程中上下文概率模型较慢趋于稳定,使得编码比特数增加;另外,针对二值化处理后的第二个比特,由于第二个比特为0的概率远小于第二个比特为1的概率,但是目前的方案使用等概率模型并没有充分考虑概率分布,从而仍会使得编码比特数增加,降低了编解码效率。
本申请实施例提供了一种编码方法,应用于编码器,确定当前块的预测模式参数;当所述预测模式参数指示采用几何划分模式GPM确定所述当前块的帧间预测值时,确定所述当前块的两个分区;从运动信息候选列表中,确定所述两个分区的运动信息,并将第一运动信息索引值设置为第一分区的运动信息在所述运动信息候选列表中的索引序号值,第二运动信息索引值设置为第二分区的运动信息在所述运动信息候选列表中的索引序号值;分别对所述第一运动信息索引值和所述第二运动信息索引值进行二值化处理,得到第一符号串和第二符号串;其中,所述符号串包含一个或多个二元符号;使用不同的上下文概率模型分别对所述第一符号串和所述第二符号串的第一个二元符号进行熵编码;使用预设模型分别对所述第一符号串和所述第二符号串内除第一个二元符号之外的二元符号进行熵编码;将对所述第一符号串和所述第二符号串进行编码后得到的比特写入码流。此外,本申请实施例提供了一种解码方法,应用于解码器,通过解析码流,获得当前块的预测模式参数;当所述预测模式参数指示采用几何划分模式GPM确定所述当前块的帧间预测值时,确定所述当前块的两个分区;解析码流,确定所述当前块的两个分区的运动信息索引值对应的第一符号串和第二符号串,其中,所述第一符号串和所述第二符号串包含一个或多个二元符号,包括:使用不同的上下文概率模型解析码流,获得第一符号串和第二符号串的第一个二元符号;使用预设模型继续解析码流,获得所述第一符号串和所述第二符号串内除第一个二元符号之外的二元符号;根据预设的二值化模型,确定所述第一符号串和所述第二符号串的对应第一数值和第二数值,将所述第一数值和所述第二数值分别设置为第一运动信息索引值和第二运动信息索引值;基于运动信息候选列表,将所述第一运动信息索引值指示的所述运动信息候选列表中的运动信息确定为第一分区对应的运动信息,将所述第二运动信息索引值指示的所述运动信息候选列表中的运动信息确定为第二分区的运动信息;根据所述第一分区对应的运动信息和所述第二分区的运动信息,确定所述当前块的帧间预测值。这样,无论是编码器还是解码器,充分利用了第一分区的运动信息索引值和/或第二分区的运动信息索引值在二值化后的第一个比特、第二个比特或者每一个比特的概率分布特性,为其设计对应的上下型概率模型,从而能够减小编码所需的比特数,提升了编解码性能,以达到提升编解码效率的目的。
下面将结合附图对本申请各实施例进行详细说明。
参见图3A,其示出了本申请实施例提供的一种视频编码系统的组成框图示例;如图3A所示,该视频编码系统10包括变换与量化单元101、帧内估计单元102、帧内预测单元103、运动补偿单元104、运动估计单元105、反变换与反量化单元106、滤波器控制分析单元107、滤波单元108、熵编码单元109和解码图像缓存单元110等,其中,滤波单元108可以实现去方块滤波及样本自适应缩进(Sample Adaptive 0ffset,SAO)滤波,熵编码单元109可以实现头信息编码及基于上下文的自适应二进制算术 编码(Context-based Adaptive Binary Arithmatic Coding,CABAC)。针对输入的原始视频信号,通过编码树块(Coding Tree Unit,CTU)的划分可以得到一个视频编码块,然后对经过帧内或帧间预测后得到的残差像素信息通过变换与量化单元101对该视频编码块进行变换,包括将残差信息从像素域变换到变换域,并对所得的变换系数进行量化,用以进一步减少比特率;帧内估计单元102和帧内预测单元103是用于对该视频编码块进行帧内预测;明确地说,帧内估计单元102和帧内预测单元103用于确定待用以编码该视频编码块的帧内预测模式;运动补偿单元104和运动估计单元105用于执行所接收的视频编码块相对于一或多个参考帧中的一或多个块的帧间预测编码以提供时间预测信息;由运动估计单元105执行的运动估计为产生运动向量的过程,所述运动向量可以估计该视频编码块的运动,然后由运动补偿单元104基于由运动估计单元105所确定的运动向量执行运动补偿;在确定帧内预测模式之后,帧内预测单元103还用于将所选择的帧内预测数据提供到熵编码单元109,而且运动估计单元105将所计算确定的运动向量数据也发送到熵编码单元109;此外,反变换与反量化单元106是用于该视频编码块的重构建,在像素域中重构建残差块,该重构建残差块通过滤波器控制分析单元107和滤波单元108去除方块效应伪影,然后将该重构残差块添加到解码图像缓存单元110的帧中的一个预测性块,用以产生经重构建的视频编码块;熵编码单元109是用于编码各种编码参数及量化后的变换系数,在基于CABAC的编码算法中,上下文内容可基于相邻编码块,可用于编码指示所确定的帧内预测模式的信息,输出该视频信号的码流;而解码图像缓存单元110是用于存放重构建的视频编码块,用于预测参考。随着视频图像编码的进行,会不断生成新的重构建的视频编码块,这些重构建的视频编码块都会被存放在解码图像缓存单元110中。
参见图3B,其示出了本申请实施例提供的一种视频解码系统的组成框图示例;如图3B所示,该视频解码系统20包括熵解码单元201、反变换与反量化单元202、帧内预测单元203、运动补偿单元204、滤波单元205和解码图像缓存单元206等,其中,熵解码单元201可以实现头信息解码以及CABAC解码,滤波单元205可以实现去方块滤波以及SAO滤波。输入的视频信号经过图3A的编码处理之后,输出该视频信号的码流;该码流输入视频解码系统20中,首先经过熵解码单元201,用于得到解码后的变换系数;针对该变换系数通过反变换与反量化单元202进行处理,以便在像素域中产生残差块;帧内预测单元203可用于基于所确定的帧内预测模式和来自当前帧或图片的先前经解码块的数据而产生当前视频解码块的预测数据;运动补偿单元204是通过剖析运动向量和其他关联语法元素来确定用于视频解码块的预测信息,并使用该预测信息以产生正被解码的视频解码块的预测性块;通过对来自反变换与反量化单元202的残差块与由帧内预测单元203或运动补偿单元204产生的对应预测性块进行求和,而形成解码的视频块;该解码的视频信号通过滤波单元205以便去除方块效应伪影,可以改善视频质量;然后将经解码的视频块存储于解码图像缓存单元206中,解码图像缓存单元206存储用于后续帧内预测或运动补偿的参考图像,同时也用于视频信号的输出,即得到了所恢复的原始视频信号。
本申请实施例主要应用在熵编码部分(即如图3A所示的熵编码单元109中)和熵解码部分(即如图3B所示的熵解码单元201中);对应地,在熵编码部分中,还会影响到图3A中的帧间预测部分,即图3A所示的运动补偿单元104和运动估计单元105;在熵解码部分中,还会影响到图3B中的帧间预测部分,即图3B所示的运动补偿单元204。也就是说,本申请实施例既可以应用于视频编码系统(或称为“编码器”),也可以应用于视频解码系统(或称为“解码器”),还可以同时应用于视频编码系统和视频解码系统,本申请实施例不作任何限定。
还需要说明的是,当本申请实施例应用于编码器时,“当前块”具体是指视频图像中的当前待编码的图像块(也可以称为“编码块”);当本申请实施例应用于解码器时,“当前块”具体是指视频图像中的当前待解码的图像块(也可以称为“解码块”)。
基于上述图3A的应用场景示例,参见图4,其示出了本申请实施例提供的一种编码方法的流程示意图。如图4所示,该方法可以包括:
S401:确定当前块的预测模式参数;
需要说明的是,待编码图像可以划分为多个图像块,当前待编码的图像块可以称为编码块(Coding Block,CB)。这里,每个编码块可以包括第一图像分量、第二图像分量和第三图像分量;而当前块为待编码图像中当前待进行第一图像分量、第二图像分量或者第三图像分量预测的编码块。
其中,假定当前块进行第一图像分量预测,而且第一图像分量为亮度分量,即待预测图像分量为亮度分量,那么当前块也可以称为亮度块;或者,假定当前块进行第二图像分量预测,而且第二图像分量为色度分量,即待预测图像分量为色度分量,那么当前块也可以称为色度块。
还需要说明的是,预测模式参数指示了当前块采用的预测模式以及与该预测模式相关的参数。这里,针对预测模式参数的确定,可以采用简单的决策策略,比如根据失真值的大小进行确定;也可以采用复 杂的决策策略,比如根据率失真优化(Rate Distortion Optimization,RDO)的结果进行确定,本申请实施例不作任何限定。通常而言,可以采用RDO方式来确定当前块的预测模式参数。
具体地,在一些实施例中,对于S401来说,所述确定当前块的预测模式参数,可以包括:
利用多种预测模式对所述当前块进行预编码处理,获得每一种预测模式对应的率失真代价值;
从所获得的多个率失真代价值中选择最小率失真代价值,将所述最小率失真代价值对应的预测模式确定为当前块的预测模式参数。
也就是说,在编码器侧,针对当前块可以采用多种预测模式分别对当前块进行预编码处理。这里,多种预测模式通常包括有帧间预测模式、传统帧内预测模式和非传统帧内预测模式;其中,传统帧内预测模式可以包括有直流(Direct Current,DC)模式、平面(PLANAR)模式和角度模式等,非传统帧内预测模式可以包括有基于矩阵的帧内预测(Matrix-based Intra Prediction,MIP)模式、跨分量线性模型预测(Cross-component Linear Model Prediction,CCLM)模式、帧内块复制(Intra Block Copy,IBC)模式和PLT(Palette)模式等,而帧间预测模式可以包括有传统帧间预测模式和GPM预测模式等。
这样,在利用多种预测模式分别对当前块进行预编码之后,可以得到每一种预测模式对应的率失真代价值;然后从所得到的多个率失真代价值中选取最小率失真代价值,并将该最小率失真代价值对应的预测模式确定为当前块的预测模式参数。除此之外,还可以在利用多种预测模式分别对当前块进行预编码之后,得到每一种预测模式对应的失真值;然后从所得到的多个失真值中选取最小失真值,并将该最小失真值对应的预测模式确定为当前块的预测模式参数。如此,最终使用所确定的预测模式参数对当前块进行编码,而且在这种预测模式下,可以使得预测残差较小,能够提高编码效率。
S402:当所述预测模式参数指示采用几何划分模式GPM确定所述当前块的帧间预测值时,确定所述当前块的两个分区;
需要说明的是,对于当前块而言,如果当前块能够使用GPM预测模式,那么当前块还需要满足一些限制条件。示例性地,这些限制条件可以包括:
(a)序列层参数集(Sequence Parameter Set,SPS)允许采用GPM预测模式;
(b)当前块的编码图像区域属于双向预测片(B slice);
(c)当前块的尺寸限制,宽度和高度必须都大于或等于8,且小于或等于64,并且当前块的宽高比和高宽比都小于8;
(d)当前块为非普通融合(general merge)预测,非融合子块(merge_subblock)预测,非仿射预测,也非联合帧内帧间预测(Composed Intra Inter Prediction,CIIP);
(e)对4:0:0格式的色度分量禁用GPM预测模式。
还需要说明的是,如果当前块满足上述限制条件,且预测模式参数指示当前块采用帧间预测下的GPM预测模式时,这时候就可以确定出当前块内分割线对应的角度和步长,进而确定出当前块所划分的两个分区,比如第一分区和第二分区,可以用A分区和B分区表示。
进一步地,角度索引值和步长索引值分别设置为当前块内分割线对应的角度和步长在预设映射表中对应的索引序号。在一些实施例中,当所述预测模式参数指示采用GPM确定所述当前块的帧间预测值时,该方法还可以包括:
确定所述当前块的划分模式;
将划分模式索引值确定为所述划分模式在预设映射表中对应的索引序号并写入码流;其中,所述预设映射表用于指示划分模式索引值、角度索引值和步长索引之间的对应关系。
也就是说,在确定出预测模式参数指示使用GPM预测模式来确定当前块的帧间预测值时,这时候还可以确定当前块的划分模式;其中,每一种划分模式对应有一种角度和一种步长。通常而言,GPM预测模式总共有64种划分模式,针对这么多的划分模式,仍然可以采用RDO方式来确定当前块的划分模式,同时将划分模式索引值确定为该划分模式在预设映射表中对应的索引序号并写入码流,以便后续在解码器侧可以通过解析码流以获取到划分模式索引值,进而通过查找预设映射表来确定当前块的角度索引值和步长索引值。
其中,用于反映划分模式索引值、角度索引值和步长索引的预设映射表如表1所示;在表1中,总共提供了64种划分模式,以及每一种划分模式对应的角度索引值和步长索引值;这里,merge_gpm_partition_idx为划分模式索引值,angleIdx为角度索引值,distanceIdx为步长索引值。
表1
merge_gpm_partition_idx | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
angleIdx | 0 | 0 | 2 | 2 | 2 | 2 | 3 | 3 | 3 | 3 | 4 | 4 | 4 | 4 | 5 | 5 |
distanceIdx | 1 | 3 | 0 | 1 | 2 | 3 | 0 | 1 | 2 | 3 | 0 | 1 | 2 | 3 | 0 | 1 |
merge_gpm_partition_idx | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
angleIdx | 5 | 5 | 8 | 8 | 11 | 11 | 11 | 11 | 12 | 12 | 12 | 12 | 13 | 13 | 13 | 13 |
distanceIdx | 2 | 3 | 1 | 3 | 0 | 1 | 2 | 3 | 0 | 1 | 2 | 3 | 0 | 1 | 2 | 3 |
merge_gpm_partition_idx | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 |
angleIdx | 14 | 14 | 14 | 14 | 16 | 16 | 18 | 18 | 18 | 19 | 19 | 19 | 20 | 20 | 20 | 21 |
distanceIdx | 0 | 1 | 2 | 3 | 1 | 3 | 1 | 2 | 3 | 1 | 2 | 3 | 1 | 2 | 3 | 1 |
merge_gpm_partition_idx | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 |
angleIdx | 21 | 21 | 24 | 24 | 27 | 27 | 27 | 28 | 28 | 28 | 29 | 29 | 29 | 30 | 30 | 30 |
distanceIdx | 2 | 3 | 1 | 3 | 1 | 2 | 3 | 1 | 2 | 3 | 1 | 2 | 3 | 1 | 2 | 3 |
如此,当前块采用GPM预测模式时,编码器侧可以根据表1所示的预设映射表来确定写入码流中的划分模式索引值;而解码器侧可以通过解析码流获得当前块所选择的划分模式索引值,通过查表得到对应的角度索引值和步长索引值,进而确定出当前块所划分的第一分区和第二分区。
S403:从运动信息候选列表中,确定所述两个分区的运动信息,并将第一运动信息索引值设置为第一分区的运动信息在所述运动信息候选列表中的索引序号值,第二运动信息索引值设置为第二分区的运动信息在所述运动信息候选列表中的索引序号值;
需要说明的是,运动信息至少可以包括运动矢量和参考图像索引。由于相邻块的运动信息是可以获取到的,这样可以根据相邻块的运动信息对当前块的至少两个分区进行运动信息候选列表的构建,从而能够得到运动信息候选列表。具体地,在一些实施例中,在S402之前,该方法还可以包括:
利用所述当前块的相邻块的运动信息,构造所述运动信息候选列表。
可以理解,编码器侧,GPM预测模式与其他帧间预测模式可以看作相互竞争的模式,如果当前块选择使用GPM预测模式,在其内部也有针对各个参数的选择过程。另外,还需要说明的是,与当前块相邻的图像块称之为相邻块;即在待编码图像中,当前块与相邻块之间具有相邻关系。这里所述的相邻块包括所述当前块的空间相邻块和时域相邻块。其中,空间相邻块指的是与所述当前块位于同一个图像中的、已编码(或已解码)的块;时域相邻块指的是位于所述当前块的帧间预测参考图像中的已编码(或已解码)的块。
这里,GPM预测模式可以重用已有的常规merge列表,按照奇偶校验方式构造属于GPM的单向merge列表,使得使用GPM划分后的两个分区各自的候选运动矢量(motion vector,mv)信息都是从该单向merge列表中选出的。
具体来讲,第一步,构造merge候选列表,与普通merge模式下构造列表的过程一致。其构造顺序为:上侧相邻块(用B
1表示),左侧相邻块(用A
1表示),右上侧相邻块(用B
0表示),左下侧相邻块(用A
0表示),左上侧相邻块(用B
2表示),参考帧对应位置块(用col表示),历史参考块(用his表示),第一、第二候选mv的平均运动矢量(用mv avg表示),以及零运动矢量(用0表示)。如图5所示,其给出了当前块构造merge候选列表的相邻块分布示意图;按照该构造顺序,能够得到当前块的merge候选列表,即运动信息候选列表。
第二步,依照RDO或其他策略方式在不同的预测模式参数之间,包括不同的分割线对应的角度与步长,以及对两个分区的mv在上述merge候选列表内mv选项之间进行选择,将选择的结果(划分模式对应的角度、偏移信息,以及A、B分区各自在merge候选列表中所选择的参考选项位置信息,分别用m和n表示)以码流中语法元素的形式传送给解码器侧。
这里,主要说明第一运动信息索引值(用merge_gpm_idx0[xCb][yCb]表示)和第二运动信息索引值(用merge_gpm_idx1[xCb][yCb]表示)的码流写入过程。在得到m和n这两个A、B分区各自在merge候选列表中所选择的参考选项位置信息之后,编码器侧可以按照下式对语法元素进行赋值:
merge_gpm_idx0[xCb][yCb]=m (1)
merge_gpm_idx1[xCb][yCb]=n-(merge_gpm_idx1[xCb][yCb]>=m)?1:0 (2)
然后对其进行二值化、熵编码等处理,并将其写入码流传输。也就是说,在编码器侧,当前块对应的编码单元(coding unit,CU)层语法元素描述如下表2所示。
表2
merge_data(x0,y0,cbWidth,cbHeight,cbType){ | Descriptor |
…… | |
merge_gpm_partition_idx[x0][y0] | ae(v) |
merge_gpm_idx0[x0][y0] | ae(v) |
if(MaxNumGpmMergeCand>2) | |
merge_gpm_idx1[x0][y0] | ae(v) |
……} |
这里,ae(v)表示context-adaptive arithmetic entropy-coded syntax element,即上下文自适应的算术熵编码语法元素,merge_gpm_partition_idx[x0][y0]表示GPM预测模式下的划分模式索引值,用以结合表1查表得到当前块内分割线对应的角度和步长。
这样,在得到运动信息候选列表之后,从该运动信息候选列表中还可以确定出每个分区的运动信息,并将每个分区的运动信息索引值设置为所对应确定的运动信息在该运动信息候选列表中的索引序号值,以便后续对运动信息索引值进行二值化和二进制编码处理。
S404:分别对所述第一运动信息索引值和所述第二运动信息索引值进行二值化处理,得到第一符号串和第二符号串;其中,所述符号串包含一个或多个二元符号;
需要说明的是,在获得第一运动信息索引值和所述第二运动信息索引值之后,首先需要对这两个运动信息索引值分别进行二值化处理,能够得到两组符号串(即第一符号串和第二符号串),而每一组符号串内可以包含有一个或多个二元符号;这里,二元符号的取值可以为0或1。
还需要说明的是,m、n代表A、B两个分区各自在merge候选列表中选择的参考选项位置信息,当前m、n的取值范围都是0~MaxNumGpmMergeCand-1;其中,MaxNumGpmMergeCand表示为GPM merge候选列表的长度,其取值可以为2~6,具体由SPS层相关语法元素设定。在二值化处理之前,首先需要进行式(1)和式(2)的映射操作,使得merge_gpm_idx0[xCb][yCb]的取值范围仍为0~MaxNumGpmMergeCand-1,而merge_gpm_idx1[xCb][yCb]的取值范围缩小为0~MaxNumGpmMergeCand-2;这里,merge_gpm_idx0[xCb][yCb]和merge_gpm_idx1[xCb][yCb]代表了当前块内被分割线划分的两个分区各自选取的mv信息在merge候选列表中的位置信息。对merge_gpm_idx0[xCb][yCb]和merge_gpm_idx1[xCb][yCb]而言,两者可以使用截断一元码进行二值化处理。
以MaxNumGpmMergeCand=5为例,merge_gpm_idx0[xCb][yCb]的二值化结果如表3所示,merge_gpm_idx1[xCb][yCb]的二值化结果如表4所示。
表3
merge_gpm_idx0[xCb][yCb] | bit string |
0 | 0 |
1 | 10 |
2 | 110 |
3 | 1110 |
4 | 1111 |
表4
merge_gpm_idx1[xCb][yCb] | bit string |
0 | 0 |
1 | 10 |
2 | 110 |
3 | 111 |
进一步地,由于merge候选列表的设计使得可能性较大的候选位置信息放在候选列表的靠前位置,便于为这些候选的运动信息分配较小的索引值;所以merge_gpm_idx0[xCb][yCb]、merge_gpm_idx1[xCb][yCb]=0的可能性较大,后续熵编码时也可以为概率较大的位置信息索引分配较少的比特。
S405:使用不同的上下文概率模型分别对所述第一符号串和所述第二符号串的第一个二元符号进行熵编码;
S406:使用预设模型分别对所述第一符号串和所述第二符号串内除第一个二元符号之外的二元符号进行熵编码;
S407:将对所述第一符号串和所述第二符号串进行编码后得到的比特写入码流。
需要说明的是,H.266/VVC的熵编码模式通常有两种,分别是基于上下文概率模型的二进制编码 模式和基于等概率模型的二进制编码模式。其中,上下文概率模型(Context Model)可以简称为上下文模型,用于表示二元符号“0”或“1”出现的概率,而且在二元算术编码过程中还需要根据二元符号编码后的值更新上下文概率模型;等概率模型,则可以称为旁路模型(Bypass Model),在二元算术编码过程中对二元符号“0”或“1”采用相同的概率,而且在二元符号编码后也不需要更新等概率模型。
也就是说,在获得二进制化后的比特之后,通常采用基于上下文概率模型的二元算术熵编码(CABAC)。这里,CABAC为每个比特选取一个概率模型,利用此概率模型进行算术编码。目前的VVC中,对于merge_gpm_idx0[xCb][yCb]和merge_gpm_idx1[xCb][yCb]二进制化处理之后的第一个比特与普通merge模式(非GPM预测模式)的第一个比特使用同一个上下文概率模型进行熵编码,其余的比特使用等概率模型进行熵编码;但是目前并没有充分考虑第一个比特、第二个比特甚至每一个比特的概率分布特性,比如,针对第一个比特而言,merge_gpm_idx0[xCb][yCb]和merge_gpm_idx1[xCb][yCb]的第一个比特使用同一个上下文概率模型,且与merge_idx共享上下文概率模型,但是这些语法元素值不具有相同的概率分布,这就会导致编码比特数增加;针对第二个比特而言,以表3为例,merge_gpm_idx0[xCb][yCb]使用截断一元码进行二值化处理,此时merge_gpm_idx0[xCb][yCb]=1二值化后的结果为10,其第二个比特是0,merge_gpm_idx0[xCb][yCb]=2、3、4二值化的第二个比特都是1;根据统计概率分析发现,merge_gpm_idx0[xCb][yCb]=1的概率基本都远小于merge_gpm_idx0[xCb][yCb]=2、3、4的概率之和,由于目前的VVC对第二个比特仍然使用等概率模型进行熵编码,从而仍会使得编码比特数增加。
在本申请实施例中,编码器针对GPM预测模式的相关语法merge_gpm_idx0[x0][y0]和merge_gpm_idx1[x0][y0]的编码过程进行优化;具体如下,
一是针对merge_gpm_idx0[xCb][yCb]和/或merge_gpm_idx1[xCb][yCb]二值化后的第一个比特(bit)单独设计上下文概率模型,如此可以有效地学习该比特的概率,提升该比特的编码性能;
二是针对merge_gpm_idx0[xCb][yCb]和/或merge_gpm_idx1[xCb][yCb]二值化后的第二个比特(如果存在第二个比特的话)单独设计一个上下文概率模型进行熵编码,以此替代目前VVC中的等概率模型熵编码。这里,由于统计了merge_gpm_idx0[xCb][yCb]的概率分布特性之后发现,p(1)<(p(2)+p(3)+p(4));其中,p(i)表示merge_gpm_idx0[xCb][yCb]=i的概率,i=1,2,3,4;所以第二个比特为0的概率远小于第二个比特为1的概率,也即第二个比特并不适合使用等概率模型。
具体地,在一些实施例中,对于S405来说,所述使用不同的上下文概率模型分别对所述第一符号串和所述第二符号串的第一个二元符号进行熵编码,可以包括:
利用第一上下文概率模型对第一符号串的第一个二元符号进行熵编码,利用第二上下文概率模型对第二符号串的第一个二元符号进行熵编码;其中,第一上下文概率模型与第二上下文概率模型不同。
也就是说,针对第一个二元符号(即第一个比特),可以为第一运动信息索引值(merge_gpm_idx0[xCb][yCb])单独设计一个上下文概率模型,从原来共用的上下文概率模型中分离出来;或者,也可以为第二运动信息索引值(merge_gpm_idx1[xCb][yCb])单独设计一个上下文概率模型,从原来共用的上下文概率模型中分离出来;或者,还可以为第一运动信息索引值(merge_gpm_idx0[xCb][yCb])和第二运动信息索引值(merge_gpm_idx1[xCb][yCb])分别单独设计一个上下文概率模型,将两者都从原来共用的上下文概率模型中分离出来;本申请实施例不作具体限定。
以修改merge_gpm_idx0[xCb][yCb]为例,将其从原来共用的上下文概率模型中分离出来而单独设计一个上下文概率模型;具体的文本修改如下,表5示出了目前VVC中merge_idx[][]、merge_gpm_idx0[][]和merge_gpm_idx1[][]三者共用同一个上下文概率模型的示例,表6示出了本申请实施例提供的merge_gpm_idx0[][]从三者共用同一个上下文概率模型中分离出来的示例,表7示出了目前VVC中merge_gpm_idx0[][]的除第一个比特外剩余比特使用等概率模型的示例,其中“bypass”表示旁路模型,即等概率模型;表8示出了本申请实施例提供的merge_gpm_idx0[][]的第二个比特使用上下文概率模型的示例,表9示出了目前VVC中三者共用同一个上下文概率模型的参数规格设计示例,表10示出了本申请实施例提供的merge_idx[][]和merge_gpm_idx1[][]共用上下文概率模型的参数规格设计示例,表11示出了本申请实施例提供的merge_gpm_idx0[][]单独设计的上下文概率模型的参数规格设计示例。
表5
表6
表7
表8
表8.1
表8.2
表9
表10
表11
这里,本申请实施例中的EP表示为equal probability。除了可以修改merge_gpm_idx0[xCb][yCb]之外,还可以修改merge_gpm_idx1[xCb][yCb],其上下文概率模型选择的文本修改与merge_gpm_idx0[xCb][yCb]相同。具体来说,对于表8来说,其示出了本申请实施例提供的merge_gpm_idx0[][]二值化后的第二个比特使用上下文概率模型的示例;如果修改merge_gpm_idx1[xCb][yCb]以使得merge_gpm_idx1[xCb][yCb]二值化后的第二个比特使用上下文概率模型,那么其示例如表8.1所示;如果同时修改merge_gpm_idx0[xCb][yCb]和merge_gpm_idx1[xCb][yCb]以使得merge_gpm_idx0[xCb][yCb]和merge_gpm_idx1[xCb][yCb]二值化后的第二个比特均使用上下文概率模型,那么其示例如表8.2所示。
进一步地,本申请实施例还可以修正merge_gpm_idx0[xCb][yCb]和/或merge_gpm_idx1[xCb][yCb]二值化后的每一个比特,单独设计符合该比特概率分布的上下文概率模型,下面将针对这些情况分别进行描述。
可选地,在一些实施例中,针对merge_gpm_idx0[xCb][yCb]和/或merge_gpm_idx1[xCb][yCb],只 针对二值化后的第一个比特设计不同的上下文概率模型,但是二值化后除第一个比特之外的剩余比特仍然采用等概率模型。具体地,对于S406来说,所述使用预设模型分别对第一符号串和第二符号串内除第一个二元符号之外的二元符号进行熵编码,包括:利用旁路模型对第一符号串和第二符号串内除第一个二元符号之外的二元符号进行熵编码;其中,旁路模型表征利用等概率模型进行二元算术熵编码。
也就是说,将merge_gpm_idx0[xCb][yCb]从merge_gpm_idx0[xCb][yCb]、merge_gpm_idx1[xCb][yCb]和merge_idx共用的上下文概率模型中分离出来,单独为merge_gpm_idx0[xCb][yCb]的第一个比特设计一个上下文概率模型,该上下文概率模型参数初始化后0是大概率符号,对应于
merge_gpm_idx0[xCb][yCb]二进制化后第一个比特的概率分布。此外,还将merge_gpm_idx1[xCb][yCb]从merge_gpm_idx0[xCb][yCb]、merge_gpm_idx1[xCb][yCb]和merge_idx共用的上下文概率模型中分离出来,单独为merge_gpm_idx1[xCb][yCb]的第一个比特设计一个上下文概率模型,该上下文概率模型参数初始化后0是大概率符号,对应于merge_gpm_idx1[xCb][yCb]二进制化后第一个比特的概率分布。
示例性地,具体的文本修改如下,表12示出了目前VVC中merge_idx[][]、merge_gpm_idx0[][]和merge_gpm_idx1[][]三者共用同一个上下文概率模型的示例,表13示出了本申请实施例提供的merge_gpm_idx0[][]和merge_gpm_idx1[][]均从共用同一个上下文概率模型中分离出来的示例,表14示出了目前VVC中三者共用同一个上下文概率模型的参数规格设计示例,表15示出了本申请实施例提供的merge_idx[][]使用上下文概率模型的参数规格设计示例,表16示出了本申请实施例提供的merge_gpm_idx0[][]所使用上下文概率模型的参数规格设计示例,表17示出了本申请实施例提供的merge_gpm_idx1[][]所使用上下文概率模型的参数规格设计示例。
表12
表13
表14
表15
表16
表17
可选地,在一些实施例中,针对merge_gpm_idx0[xCb][yCb]和/或merge_gpm_idx1[xCb][yCb],不仅针对二值化后的第一个比特设计不同的上下文概率模型,而且针对二值化后的第二个比特也设计不同 的上下文概率模型,但是二值化后除第一个比特和第二个比特之外的剩余比特仍然采用等概率模型。具体地,对于S406来说,所述使用预设模型分别对所述第一符号串和所述第二符号串内除第一个二元符号之外的二元符号进行熵编码,包括:
利用不同的上下文概率模型对所述第一符号串和所述第二符号串的第二个二元符号进行熵编码;
利用旁路模型对所述第一符号串和所述第二符号串内除第一个二元符号和第二个二元符号之外的二元符号进行熵编码;其中,所述旁路模型表征利用等概率模型进行二元算术熵编码。
进一步地,所述利用不同的上下文概率模型对所述第一符号串和所述第二符号串的第二个二元符号进行熵编码,可以包括:
利用第三上下文概率模型对第一符号串的第二个二元符号进行熵编码,利用第四上下文概率模型对第二符号串的第二个二元符号进行熵编码;其中,第三上下文概率模型与第四上下文概率模型不同。
也就是说,将merge_gpm_idx0[xCb][yCb]从merge_gpm_idx0[xCb][yCb]、merge_gpm_idx1[xCb][yCb]和merge_idx共用的上下文概率模型中分离出来,单独为merge_gpm_idx0[xCb][yCb]的第一个比特设计一个上下文概率模型;同时,为merge_gpm_idx0[xCb][yCb]的第二个比特也单独设计一个上下文模型。此外,还将merge_gpm_idx1[xCb][yCb]从merge_gpm_idx0[xCb][yCb]、merge_gpm_idx1[xCb][yCb]和merge_idx共用的上下文概率模型中分离出来,单独为merge_gpm_idx1[xCb][yCb]的第一个比特设计一个上下文模型;同时,为merge_gpm_idx1[xCb][yCb]的第二个比特也单独设计一个上下文模型。
示例性地,具体的文本修改如下,表18示出了目前VVC中merge_idx[][]、merge_gpm_idx0[][]和merge_gpm_idx1[][]三者共用同一个上下文概率模型的示例,表19示出了本申请实施例提供的merge_gpm_idx0[][]和merge_gpm_idx1[][]均从共用同一个上下文概率模型中分离出来的示例,表20示出了目前VVC中merge_gpm_idx0[][]和merge_gpm_idx1[][]的除第一个比特外剩余比特均使用等概率模型的示例,表21、表21.1和表21.2示出了本申请实施例提供的merge_gpm_idx0[][]和/或merge_gpm_idx1[][]的第二个比特使用上下文概率模型的示例,表22示出了目前VVC中三者共用同一个上下文概率模型的参数规格设计示例,表23示出了本申请实施例提供的merge_idx[][]使用上下文概率模型的参数规格设计示例,表24示出了本申请实施例提供的merge_gpm_idx0[][]所使用上下文概率模型的参数规格设计示例,表25示出了本申请实施例提供的merge_gpm_idx1[][]所使用上下文概率模型的参数规格设计示例。
表18
表19
表20
表21
表21.1
表21.2
表22
表23
表24
表25
可选地,在一些实施例中,针对merge_gpm_idx0[xCb][yCb]和/或merge_gpm_idx1[xCb][yCb],可以针对二值化后的每一个比特分别设计不同的上下文概率模型。具体地,该方法还可以包括:
利用不同的上下文概率模型对所述第一符号串和所述第二符号串内每一个二元符号依次熵编码。
也就是说,将merge_gpm_idx0[xCb][yCb]从merge_gpm_idx0[xCb][yCb]、merge_gpm_idx1[xCb][yCb]和merge_idx共用的上下文概率模型中分离出来,为merge_gpm_idx0[xCb][yCb]二值化后的每一个比特分别设计上下文概率模型。此外,还将merge_gpm_idx1[xCb][yCb]从merge_gpm_idx0[xCb][yCb]、merge_gpm_idx1[xCb][yCb]和merge_idx共用的上下文概率模型中分离出来,为merge_gpm_idx1[xCb][yCb]二值化后的每一个比特分别设计上下文概率模型。
示例性地,具体的文本修改如下,表26示出了目前VVC中merge_idx[][]、merge_gpm_idx0[][]和merge_gpm_idx1[][]三者共用同一个上下文概率模型的示例,表27示出了本申请实施例提供的merge_gpm_idx0[][]和merge_gpm_idx1[][]均从共用同一个上下文概率模型中分离出来的示例,表28示出了目前VVC中merge_gpm_idx0[][]和merge_gpm_idx1[][]的除第一个比特外剩余比特均使用等概率模型的示例,表29示出了本申请实施例提供的merge_gpm_idx0[][]和merge_gpm_idx1[][]的每一个比特均使用上下文概率模型的示例,表30示出了目前VVC中三者共用同一个上下文概率模型的参数规格设计示例,表31示出了本申请实施例提供的merge_idx[][]使用上下文概率模型的参数规格设计示例,表32示出了本申请实施例提供的merge_gpm_idx0[][]所使用上下文概率模型的参数规格设计示例,表33示出了本申请实施例提供的merge_gpm_idx1[][]所使用上下文概率模型的参数规格设计示例。
表26
表27
表28
表29
表30
表31
表32
表33
可选地,在一些实施例中,针对merge_gpm_idx0[xCb][yCb]和/或merge_gpm_idx1[xCb][yCb],可以针对二值化后的每一个比特均使用旁路模型。具体地,该方法还可以包括:
利用旁路模型对所述第一符号串和所述第二符号串内每一个二元符号依次熵编码。
也就是说,merge_gpm_idx0[xCb][yCb]二值化后的所有比特都使用旁路编码模式,merge_gpm_idx1[xCb][yCb]二值化后的所有比特都使用旁路编码模式。
示例性地,具体的文本修改如下,表34示出了本申请实施例提供的merge_gpm_idx0[][]和merge_gpm_idx1[][]均从共用同一个上下文概率模型中分离出来的示例,只有merge_idx[][]使用上下文概率模型;表35示出了目前VVC中merge_gpm_idx0[][]和merge_gpm_idx1[][]的除第一个比特外剩余比特均使用等概率模型的示例,表36示出了本申请实施例提供的merge_gpm_idx0[][]和merge_gpm_idx1[][]的每一个比特均使用旁路模型的示例,表37示出了本申请实施例提供的merge_idx[][]使用上下文概率模型的参数规格设计示例。
表34
表35
表36
表37
可选地,在一些实施例中,除了在修改二值化后比特编码时的上下文概率模型之外,还可以针对二值化的处理方式进行优化。
具体地,本申请实施例还提出了修改GPM预测模式下相关语法元素merge_gpm_idx0[xCb][yCb]的二进制化方式,即替代上述的表3。针对每一个比特的概率模型,可以使用与目前VVC相同的上下文模型(即第一个比特可以选择merge_gpm_idx0[xCb][yCb]、merge_gpm_idx1[xCb][yCb]和merge_idx共用的上下文概率模型,其他比特选择等概率模型)进行熵编码。
以MaxNumGpmMergeCand=5为例,通过修改merge_gpm_idx0[xCb][yCb]的二进制化方式,所得到的二值化结果如下表38所示;这里,加粗数字表示该比特使用上下文概率模型进行熵编码,加下划线数字表示该比特使用等概率模型进行熵编码。
表38
merge_gpm_idx0[xCb][yCb] | bit string |
0 | 0 |
1 | 1 00 |
2 | 1 01 |
3 | 1 10 |
4 | 1 11 |
针对MaxNumGpmMergeCand=2、3、4、6,其熵编码方式与MaxNumGpmMergeCand=5相同,不作变动。如下所示,表39给出了本申请实施例提供的一种MaxNumGpmMergeCand=2的二值化结果,表40给出了本申请实施例提供的一种MaxNumGpmMergeCand=3的二值化结果,表41给出了本申请实施例提供的一种MaxNumGpmMergeCand=4的二值化结果,表42给出了本申请实施例提供的一种MaxNumGpmMergeCand=6的二值化结果。
表39
merge_gpm_idx0[xCb][yCb] | bit string |
0 | 0 |
1 | 1 |
表40
merge_gpm_idx0[xCb][yCb] | bit string |
0 | 0 |
1 | 1 0 |
2 | 1 1 |
表41
merge_gpm_idx0[xCb][yCb] | bit string |
0 | 0 |
1 | 1 0 |
2 | 1 10 |
3 | 1 11 |
表42
merge_gpm_idx0[xCb][yCb] | bit string |
0 | 0 |
1 | 1 00 |
2 | 1 01 |
3 | 1 100 |
4 | 1 101 |
5 | 1 110 |
示例性地,具体的文本修改如下,表43示出了目前VVC中merge_gpm_idx0[][]二值化(Binarization)处理方式的示例,表44示出了本申请实施例提供的merge_gpm_idx0[][]二值化处理方式的示例,其中,TR表示Truncated Rice,是一种二值化处理方法。
表43
表44
进一步地,针对merge_gpm_idx0[][]的二值化处理,该处理过程的输入为语法元素merge_gpm_idx0[][]和cMax的二值化请求;该处理过程的输出为语法元素的二值化结果,而merge_gpm_idx0[][]的二值化处理方式如表45所示。
表45
进一步地,在一些实施例中,在上述实施例提供的修改GPM相关语法元素merge_gpm_idx0[xCb][yCb]的二值化处理方式的基础上,针对每一个比特的概率模型,可以使用本申请实施例中提出的上下文模型(修改第一比特、第二比特或者每一个比特的上下文概率模型)。
具体地,二值化处理的方式可以采用上述的表43、表44和表45,而概率模型选择的文本修改如下,表46示出了目前VVC中merge_idx[][]、merge_gpm_idx0[][]和merge_gpm_idx1[][]三者共用同一个 上下文概率模型的示例,表47示出了本申请实施例提供的merge_gpm_idx0[][]从三者共用同一个上下文概率模型中分离出来的示例,表48示出了目前VVC中三者共用同一个上下文概率模型的参数规格设计示例,表49示出了本申请实施例提供的merge_idx[][]和merge_gpm_idx1[][]共用上下文概率模型的参数规格设计示例,表50示出了本申请实施例提供的merge_gpm_idx0[][]所单独设计的上下文概率模型的参数规格设计示例。
表46
表47
表48
表49
表50
可以理解地,本申请实施例在于充分利用数据的概率分布特性,为merge_gpm_idx0[xCb][yCb]和/或merge_gpm_idx1[xCb][yCb]二值化后第一个比特、第二个比特或者每一个比特分别设计一个上下文概率模型,使得实际编码中用到的码字小于1比特,能够减少编码所需的比特数,从而提升编码性能。
本实施例提供了一种编码方法,应用于编码器。通过确定当前块的预测模式参数;当所述预测模式参数指示采用几何划分模式GPM确定所述当前块的帧间预测值时,确定所述当前块的两个分区;从运动信息候选列表中,确定所述两个分区的运动信息,并将第一运动信息索引值设置为第一分区的运动信息在所述运动信息候选列表中的索引序号值,第二运动信息索引值设置为第二分区的运动信息在所述运动信息候选列表中的索引序号值;分别对所述第一运动信息索引值和所述第二运动信息索引值进行二值化处理,得到第一符号串和第二符号串;其中,所述符号串包含一个或多个二元符号;使用不同的上下文概率模型分别对所述第一符号串和所述第二符号串的第一个二元符号进行熵编码;使用预设模型分别对所述第一符号串和所述第二符号串内除第一个二元符号之外的二元符号进行熵编码;将对所述第一符号串和所述第二符号串进行编码后得到的比特写入码流。这样,充分利用了第一分区的运动信息索引值和/或第二分区的运动信息索引值在二值化后的第一个比特、第二个比特或者每一个比特的概率分布特性,为其设计对应的上下型概率模型,从而能够减小编码所需的比特数,提升了编码性能,以达到提升编码效率的目的。
基于上述图3B的应用场景示例,参见图6,其示出了本申请实施例提供的一种解码方法的流程示意图。如图6所示,该方法可以包括:
S601:解析码流,获得当前块的预测模式参数;
需要说明的是,待解码图像可以划分为多个图像块,当前待解码的图像块可以称为解码块。这里, 每个解码块可以包括第一图像分量、第二图像分量和第三图像分量;而当前块为待解码图像中当前待进行第一图像分量、第二图像分量或者第三图像分量预测的解码块。
还需要说明的是,预测模式参数指示了当前块采用的预测模式以及与该预测模式相关的参数。其中,预测模式通常包括有帧间预测模式、传统帧内预测模式和非传统帧内预测模式等,而帧间预测模式又包括有传统帧间预测模式和GPM预测模式等。也就是说,编码器会选取最优的预测模式对当前块进行预编码,在这过程中就可以确定出当前块的预测模式,从而将相应的预测模式参数写入码流,由编码器传输到解码器。
这样,在解码器侧,通过解析码流可以获取到当前块的预测模式参数,根据所获取的预测模式参数用以确定当前块是否使用GPM预测模式。
S602:当所述预测模式参数指示采用几何划分模式GPM确定所述当前块的帧间预测值时,确定所述当前块的两个分区;
S603:解析码流,确定所述当前块的两个分区的运动信息索引值对应的第一符号串和第二符号串,其中,所述第一符号串和所述第二符号串包含一个或多个二元符号,包括:使用不同的上下文概率模型解析码流,获得第一符号串和第二符号串的第一个二元符号;使用预设模型继续解析码流,获得所述第一符号串和所述第二符号串内除第一个二元符号之外的二元符号;
其中,第一符号串和第二符号串分别表示当前块的两个分区的运动信息索引值各自相关的一个或多个二元符号。这里,第一符号串包含有一个或多个二元符号,它是与当前块的第一分区对应的第一运动信息索引值(用用merge_gpm_idx0[xCb][yCb]表示)相关;第二符号串也包含有一个或多个二元符号,它是与当前块的第二分区对应的第二运动信息索引值(用用merge_gpm_idx1[xCb][yCb]表示)相关。
需要说明的是,如果预测模式参数指示当前块使用GPM预测模式,那么还需要继续解析码流,以获取到当前块的角度索引值和步长索引值。具体地,当预测模式参数指示当前块采用GPM确定所述当前块的帧间预测值时,该方法还可以包括:
解析码流,获取所述当前块的划分模式索引值;
基于所述划分模式索引值,从预设映射表中查询与所述划分模式索引值对应的角度索引值和步长索引值;其中,所述预设映射表用于指示划分模式索引值、角度索引值和步长索引之间的对应关系;
将查询得到的角度索引值和步长索引值确定为所述当前块内分割线对应的角度索引值和步长索引值。
也就是说,当预测模式参数指示当前块使用GPM预测模式时,还可以继续解析码流,以获取当前块的划分模式索引值,用merge_gpm_partition_idx表示,结合表1所示的预设映射表,可以查表得到对应的角度索引值(用angleIdx表示)和步长索引值(用distanceIdx表示)。如此,在得到角度索引值和步长索引值之后,可以确定出当前块的分割线并对其进行划分,从而能够得到当前块的两个分区,比如第一分区和第二分区,还可以用A分区和B分区表示。
进一步地,在解码器侧,通过解析码流还能够获得两组符号串,即第一符号串和第二符号串。利用和编码器侧一样的上下文概率模型的算术编码规则,对码流进行熵解码,以获得二值化后的比特。在此过程中,解码器也会维持与编码器侧一致的概率模型,并且利用此概率模型进行二元算术解码。
针对merge_gpm_idx0[x0][y0]和merge_gpm_idx1[x0][y0]二值化后的第一比特可以使用不同的上下文概率模型进行解码。具体地,在一些实施例中,所述使用不同的上下文概率模型解析码流,获得第一符号串和第二符号串的第一个二元符号,可以包括:
利用第一上下文概率模型进行二元算术熵解码,获得所述第一符号串的第一个二元符号;
利用第二上下文概率模型进行二元算术熵解码,获得所述第二符号串的第一个二元符号;其中,所述第一上下文概率模型与所述第二上下文概率模型不同。
可选地,针对merge_gpm_idx0[xCb][yCb]和/或merge_gpm_idx1[xCb][yCb],只针对二值化后的第一个比特设计不同的上下文概率模型,但是二值化后除第一个比特之外的剩余比特仍然采用等概率模型。在一些实施例中,所述使用预设模型继续解析码流,获得所述第一符号串和所述第二符号串内除第一个二元符号之外的二元符号,包括:
利用旁路模型解析码流,依次获得所述第一符号串和所述第二符号串内除第一个二元符号之外的二元符号;其中,所述旁路模型表征利用等概率模型进行二元算术熵解码。
可选地,针对merge_gpm_idx0[xCb][yCb]和/或merge_gpm_idx1[xCb][yCb],不仅针对二值化后的第一个比特设计不同的上下文概率模型,而且针对二值化后的第二个比特也设计不同的上下文概率模型, 但是二值化后除第一个比特和第二个比特之外的剩余比特仍然采用等概率模型。在一些实施例中,所述使用预设模型继续解析码流,获得所述第一符号串和所述第二符号串内除第一个二元符号之外的二元符号,包括:
利用不同的上下文概率模型解析码流,获得所述第一符号串和所述第二符号串的第二个二元符号;
利用旁路模型继续解析码流,依次获得所述第一符号串和所述第二符号串内除第一个二元符号和第二个二元符号之外的二元符号;其中,所述旁路模型表征利用等概率模型进行二元算术熵解码。
进一步地,所述使用预设模型继续解析码流,获得所述第一符号串和所述第二符号串内除第一个二元符号之外的二元符号,可以包括:
利用第三上下文概率模型进行二元算术熵解码,获得所述第一符号串的第二个二元符号;
利用第四上下文概率模型进行二元算术熵解码,获得所述第二组符号串的第二个二元符号;其中,所述第三上下文概率模型与所述第四上下文概率模型不同。
可选地,针对merge_gpm_idx0[xCb][yCb]和/或merge_gpm_idx1[xCb][yCb],可以针对二值化后的每一个比特分别设计不同的上下文概率模型。在一些实施例中,该方法还可以包括:
利用不同的上下文概率模型解析码流,获得所述第一符号串和所述第二符号串内每一个二元符号。
可选地,针对merge_gpm_idx0[xCb][yCb]和/或merge_gpm_idx1[xCb][yCb],可以针对二值化后的每一个比特均使用旁路模型。在一些实施例中,该方法还可以包括:
利用旁路模型解析码流,获得所述第一符号串和所述第二符号串内每一个二元符号。
这样,可以使用和编码器侧一样的上下文概率模型的算术编码规则,对码流进行熵解码,能够解析得到第一符号串和第二符号串;根据这第一符号串和第二符号串,后续可以对其分别进行二值化逆处理。
S604:根据预设的二值化模型,确定所述第一符号串和所述第二符号串的对应第一数值和第二数值,将所述第一数值和所述第二数值分别设置为第一运动信息索引值和第二运动信息索引值;
需要说明的是,二值化模型用于将符号串转换为对应的数值;具体地,可以利用与编码器相同的表3和表4来将二进制的比特恢复成对应的运动信息索引值,即merge_gpm_idx0[xCb][yCb]和merge_gpm_idx1[xCb][yCb]。
S605:基于运动信息候选列表,将所述第一运动信息索引值指示的所述运动信息候选列表中的运动信息确定为第一分区对应的运动信息,将所述第二运动信息索引值指示的所述运动信息候选列表中的运动信息确定为第二分区的运动信息;
需要说明的是,运动信息至少可以包括运动矢量和参考图像索引。由于相邻块的运动信息是可以获取到的,这样可以根据相邻块的运动信息对当前块的至少两个分区进行运动信息候选列表的构建,从而能够得到运动信息候选列表。具体地,在一些实施例中,该方法还可以包括:
利用所述当前块的相邻块的运动信息,构造所述运动信息候选列表。
这里,解码器侧构造运动信息候选列表的方式与普通merge模式下构造列表的过程一致。其构造顺序仍为:上侧相邻块B
1,左侧相邻块A
1,右上侧相邻块B
0,左下侧相邻块A
0,左上侧相邻块B
2,参考帧对应位置块col,历史参考块his,第一、第二候选mv的平均运动矢量mv avg,以及零运动矢量0。也就是说,解码器侧构造运动信息候选列表与编码器侧构造运动信息候选列表的操作一致。
由于编码器传输的码流中包括有A分区和B分区各自在merge候选列表中所选择的参考位置信息(用merge_gpm_idx0[xCb][yCb]和merge_gpm_idx1[xCb][yCb])表示,先A分区后B分区),通过解析码流可以得到merge_gpm_idx0[xCb][yCb],表示A分区的mv在merge候选列表中的位置,令
m=merge_gpm_idx0[xCb][yCb] (3)
通过解析码流还可以得到merge_gpm_idx1[xCb][yCb],表示B分区的mv在merge候选列表中的位置,由于B分区的mv在merge列表中的位置可能因为A分区先选取了靠前位置的选项,而会减小1,即令
n=merge_gpm_idx1[xCb][yCb]+(merge_gpm_idx1[xCb][yCb]>=m)?1:0 (4)
其中,n表示的就是B分区选择的mv在merge列表中的实际位置。在得到m和n之后,令M=mergeCandList[m],从merge候选列表中取出第m项用于A分区的mv构造;令N=mergeCandList[n],从merge候选列表中取出第n项用于B分区的mv构造。
还需要说明的是,解码器侧无需进行运动估计,在获得M和N之后,可以用以确定当前块的帧间预测值。
S606:根据所述第一分区对应的运动信息和所述第二分区的运动信息,确定所述当前块的帧 间预测值。
需要说明的是,在通过对码流进行解析以及二值化逆处理之后,可以得到当前块的第一分区对应的运动信息和所述第二分区的运动信息;然后根据第一分区对应的运动信息和所述第二分区的运动信息,能够确定出当前块的帧间预测值。
示例性地,参见图7,其示出了本申请实施例提供的一种GPM预测处理流程的总体架构示意图。在图7中,该总体架构可以包括有输入模块701、处理模块702和输出模块703。其中,输入模块701提供GPM预测模式下的输入参数,这些输入参数包括有:当前块的像素位置,以亮度分量为例,可以用a luma location(xCb,yCb)描述;当前块的尺寸信息,可以用cbWidth和cbHeight描述;1/16像素精度的亮度分量的mv信息,可以用1/16 fractional-sample accuracy mvA and mvB表示;1/32像素精度的色度分量的mv信息,可以用1/32 fractional-sample accuracy mvCA and mvCB表示;mv信息对应的参考帧,可以用refIdxA and refIdxB表示;mv信息所选用的list标识,用predListFlagA and predListFlagB表示。处理模块702包括有3个步骤:首先,为三个图像分量(包括L分量、Cb分量和Cr分量)推导参考帧列表(用refPicLN表示)、亚像素预测像素值(用predSamplesLN表示),N为A或B,而且亚像素预测像素值为14比特深度;其次,推导分割线的角度和步长;再次,为三个图像分量推导加权预测像素值(用predSamples表示);最后,存储mv信息,用于后续预测mvN、refIdxN和predListFlagN。输出模块703用于输出预测像素值,可以包括三个图像分量各自对应的预测像素值,分别用predSampleL、predSampleCb和predSampleCr表示。这里,在确定出第一分区对应的运动信息和所述第二分区的运动信息之后,可以确定出当前块的第一分区的第一预测值和当前块的第二分区的第二预测值;在根据偏移信息计算出当前块的权重矩阵后,还可以利用第一预测值、第二预测值以及权重矩阵对当前块内各像素点进行加权融合,从而获得当前块的帧间预测值。
本实施例提供了一种解码方法,应用于解码器。通过解析码流,获得当前块的预测模式参数;当所述预测模式参数指示采用几何划分模式GPM确定所述当前块的帧间预测值时,确定所述当前块的两个分区;解析码流,确定所述当前块的两个分区的运动信息索引值对应的第一符号串和第二符号串,其中,所述第一符号串和所述第二符号串包含一个或多个二元符号,包括:使用不同的上下文概率模型解析码流,获得第一符号串和第二符号串的第一个二元符号;使用预设模型继续解析码流,获得所述第一符号串和所述第二符号串内除第一个二元符号之外的二元符号;根据预设的二值化模型,确定所述第一符号串和所述第二符号串的对应第一数值和第二数值,将所述第一数值和所述第二数值分别设置为第一运动信息索引值和第二运动信息索引值;基于运动信息候选列表,将所述第一运动信息索引值指示的所述运动信息候选列表中的运动信息确定为第一分区对应的运动信息,将所述第二运动信息索引值指示的所述运动信息候选列表中的运动信息确定为第二分区的运动信息;根据所述第一分区对应的运动信息和所述第二分区的运动信息,确定所述当前块的帧间预测值。这样,充分利用了第一分区的运动信息索引值和/或第二分区的运动信息索引值在二值化后的第一个比特、第二个比特或者每一个比特的概率分布特性,为其设计对应的上下型概率模型,从而能够减小编码所需的比特数,提升了解码性能,以达到提升解码效率的目的。
基于前述实施例相同的发明构思,参见图8,其示出了本申请实施例提供的一种编码器80的组成结构示意图。如图8所示,编码器80可以包括:第一确定单元801、设置单元802、处理单元803和编码单元804;其中,
第一确定单元801,配置为确定当前块的预测模式参数;
第一确定单元801,还配置为当所述预测模式参数指示采用几何划分模式GPM确定所述当前块的帧间预测值时,确定待编码图像中当前块的两个分区;
设置单元802,配置为从运动信息候选列表中,确定所述两个分区的运动信息,并将第一运动信息索引值设置为第一分区的运动信息在所述运动信息候选列表中的索引序号值,第二运动信息索引值设置为第二分区的运动信息在所述运动信息候选列表中的索引序号值;
处理单元803,配置为分别对所述第一运动信息索引值和所述第二运动信息索引值进行二值化处理,得到第一符号串和第二符号串;其中,所述符号串包含一个或多个二元符号;
编码单元804,配置为使用不同的上下文概率模型分别对所述第一符号串和所述第二符号串的第一个二元符号进行熵编码;使用预设模型分别对所述第一符号串和所述第二符号串内除第一个二元符号之外的二元符号进行熵编码;并将对所述第一符号串和所述第二符号串进行编码后得到的比特写入码流。
在一些实施例中,参见图8,编码器80还可以包括第一构造单元805,配置为利用所述当前块的相邻块的运动信息,构造所述运动信息候选列表。
在一些实施例中,编码单元804,具体配置为利用第一上下文概率模型对所述第一符号串的第一个二元符号进行熵编码,利用第二上下文概率模型对所述第二符号串的第一个二元符号进行熵编码;其中,所述第一上下文概率模型与所述第二上下文概率模型不同。
在一些实施例中,编码单元804,还配置为利用旁路模型对所述第一符号串和所述第二符号串内除第一个二元符号之外的二元符号进行熵编码;其中,所述旁路模型表征利用等概率模型进行二元算术熵编码。
在一些实施例中,编码单元804,还配置为利用不同的上下文概率模型对所述第一符号串和所述第二符号串的第二个二元符号进行熵编码;利用旁路模型对所述第一符号串和所述第二符号串内除第一个二元符号和第二个二元符号之外的二元符号进行熵编码;其中,所述旁路模型表征利用等概率模型进行二元算术熵编码。
进一步地,编码单元804,具体配置为利用第三上下文概率模型对所述第一符号串的第二个二元符号进行熵编码,利用第四上下文概率模型对所述第二符号串的第二个二元符号进行熵编码;其中,所述第三上下文概率模型与所述第四上下文概率模型不同。
在一些实施例中,编码单元804,还配置为利用不同的上下文概率模型对所述第一符号串和所述第二符号串内每一个二元符号进行熵编码。
在一些实施例中,编码单元804,还配置为利用旁路模型对所述第一符号串和所述第二符号串内每一个二元符号进行熵编码。
在一些实施例中,第一确定单元801,具体配置为利用多种预测模式对所述当前块进行预编码处理,获得每一种预测模式对应的率失真代价值;以及从所获得的多个率失真代价值中选择最小率失真代价值,将所述最小率失真代价值对应的预测模式确定为当前块的预测模式参数。
可以理解地,在本申请实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
因此,本申请实施例提供了一种计算机存储介质,应用于编码器80,该计算机存储介质存储有编码程序,所述编码程序被第一处理器执行时实现前述实施例中任一项所述的方法。
基于上述编码器80的组成以及计算机存储介质,参见图9,其示出了本申请实施例提供的编码器80的具体硬件结构示例,可以包括:第一通信接口901、第一存储器902和第一处理器903;各个组件通过第一总线系统904耦合在一起。可理解,第一总线系统904用于实现这些组件之间的连接通信。第一总线系统904除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图9中将各种总线都标为第一总线系统904。其中,
第一通信接口901,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
第一存储器902,用于存储能够在第一处理器903上运行的计算机程序;
第一处理器903,用于在运行所述计算机程序时,执行:
确定当前块的预测模式参数;
当所述预测模式参数指示采用几何划分模式GPM确定所述当前块的帧间预测值时,确定所述当前块的两个分区;
从运动信息候选列表中,确定所述两个分区的运动信息,并将第一运动信息索引值设置为第一分区的运动信息在所述运动信息候选列表中的索引序号值,第二运动信息索引值设置为第二分区的运动信息在所述运动信息候选列表中的索引序号值;
分别对所述第一运动信息索引值和所述第二运动信息索引值进行二值化处理,得到第一符号串和第二符号串;其中,所述符号串包含一个或多个二元符号;
使用不同的上下文概率模型分别对所述第一符号串和所述第二符号串的第一个二元符号进行熵编码;
使用预设模型分别对所述第一符号串和所述第二符号串内除第一个二元符号之外的二元符号进行 熵编码;
将对所述第一符号串和所述第二符号串进行编码后得到的比特写入码流。
可以理解,本申请实施例中的第一存储器902可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请描述的系统和方法的第一存储器902旨在包括但不限于这些和任意其它适合类型的存储器。
而第一处理器903可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过第一处理器903中的硬件的集成逻辑电路或者软件形式的指令完成。上述的第一处理器903可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于第一存储器902,第一处理器903读取第一存储器902中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本申请描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(Application Specific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable Logic Device,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。对于软件实现,可通过执行本申请所述功能的模块(例如过程、函数等)来实现本申请所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
可选地,作为另一个实施例,第一处理器903还配置为在运行所述计算机程序时,执行前述实施例中任一项所述的方法。
本实施例提供了一种编码器,该编码器可以包括第一确定单元、设置单元、处理单元和编码单元。在该编码器中,充分利用了第一分区的运动信息索引值和/或第二分区的运动信息索引值在二值化后的第一个比特、第二个比特或者每一个比特的概率分布特性,为其设计对应的上下型概率模型,从而能够减小编码所需的比特数,提升了编码性能。
基于前述实施例相同的发明构思,参见图10,其示出了本申请实施例提供的一种解码器100的组成结构示意图。如图10所示,该解码器100可以包括:解析单元1001、第二确定单元1002、逆处理单元1003和预测单元1004;其中,
解析单元1001,配置为解析码流,获得当前块的预测模式参数;
第二确定单元1002,配置为当所述预测模式参数指示采用几何划分模式GPM确定所述当前块的帧间预测值时,确定所述当前块的两个分区;
解析单元1001,还配置为解析码流,确定所述当前块的两个分区的运动信息索引值对应的第一符号串和第二符号串,其中,所述第一符号串和所述第二符号串包含一个或多个二元符号,包括:使用不同的上下文概率模型解析码流,获得第一符号串和第二符号串的第一个二元符号;使用预设模型继续解析码流,获得所述第一符号串和所述第二符号串内除第一个二元符号之外的二元符号;
逆处理单元1003,配置为根据预设的二值化模型,确定所述第一符号串和所述第二符号串的对应第一数值和第二数值,将所述第一数值和所述第二数值分别设置为第一运动信息索引值和第二运动信息索引值;
第二确定单元1002,还配置为基于运动信息候选列表,将所述第一运动信息索引值指示的所述运动信息候选列表中的运动信息确定为第一分区对应的运动信息,将所述第二运动信息索引值指示的所述 运动信息候选列表中的运动信息确定为第二分区的运动信息;
预测单元1004,配置为根据所述第一分区对应的运动信息和所述第二分区的运动信息,确定所述当前块的帧间预测值。
在一些实施例中,参见图10,解码器100还可以包括第二构造单元1005,配置为利用所述当前块的相邻块的运动信息,构造所述运动信息候选列表。
在一些实施例中,解析单元1001,具体配置为利用第一上下文概率模型进行二元算术熵解码,获得所述第一符号串的第一个二元符号;利用第二上下文概率模型进行二元算术熵解码,获得所述第二符号串的第一个二元符号;其中,所述第一上下文概率模型与所述第二上下文概率模型不同。
在一些实施例中,解析单元1001,还配置为利用旁路模型解析码流,依次获得所述第一符号串和所述第二符号串内除第一个二元符号之外的二元符号;其中,所述旁路模型表征利用等概率模型进行二元算术熵解码。
在一些实施例中,解析单元1001,还配置为利用不同的上下文概率模型解析码流,获得所述第一符号串和所述第二符号串的第二个二元符号;利用旁路模型继续解析码流,依次获得所述第一符号串和所述第二符号串内除第一个二元符号和第二个二元符号之外的二元符号;其中,所述旁路模型表征利用等概率模型进行二元算术熵解码。
进一步地,解析单元1001,具体配置为利用第三上下文概率模型进行二元算术熵解码,获得所述第一符号串的第二个二元符号;利用第四上下文概率模型进行二元算术熵解码,获得所述第二组符号串的第二个二元符号;其中,所述第三上下文概率模型与所述第四上下文概率模型不同。
在一些实施例中,解析单元1001,还配置为利用不同的上下文概率模型解析码流,获得所述第一符号串和所述第二符号串内每一个二元符号。
在一些实施例中,解析单元1001,还配置为利用旁路模型解析码流,获得所述第一符号串和所述第二符号串内每一个二元符号。
可以理解地,在本实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例提供了一种计算机存储介质,应用于解码器100,该计算机存储介质存储有解码程序,所述解码程序被第二处理器执行时实现前述实施例中任一项所述的方法。
基于上述解码器100的组成以及计算机存储介质,参见图11,其示出了本申请实施例提供的解码器100的具体硬件结构示例,可以包括:第二通信接口1101、第二存储器1102和第二处理器1103;各个组件通过第二总线系统1104耦合在一起。可理解,第二总线系统1104用于实现这些组件之间的连接通信。第二总线系统1104除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图11中将各种总线都标为第二总线系统1104。其中,
第二通信接口1101,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
第二存储器1102,用于存储能够在第二处理器1103上运行的计算机程序;
第二处理器1103,用于在运行所述计算机程序时,执行:
解析码流,获得当前块的预测模式参数;
当所述预测模式参数指示采用几何划分模式GPM确定所述当前块的帧间预测值时,确定所述当前块的两个分区;
解析码流,确定所述当前块的两个分区的运动信息索引值对应的第一符号串和第二符号串,其中,所述第一符号串和所述第二符号串包含一个或多个二元符号,包括:使用不同的上下文概率模型解析码流,获得第一符号串和第二符号串的第一个二元符号;使用预设模型继续解析码流,获得所述第一符号串和所述第二符号串内除第一个二元符号之外的二元符号;
根据预设的二值化模型,确定所述第一符号串和所述第二符号串的对应第一数值和第二数值,将所述第一数值和所述第二数值分别设置为第一运动信息索引值和第二运动信息索引值;
基于运动信息候选列表,将所述第一运动信息索引值指示的所述运动信息候选列表中的运动信息确定为第一分区对应的运动信息,将所述第二运动信息索引值指示的所述运动信息候选列表中的运动信息确定为第二分区的运动信息;
根据所述第一分区对应的运动信息和所述第二分区的运动信息,确定所述当前块的帧间预测值。
可选地,作为另一个实施例,第二处理器1103还配置为在运行所述计算机程序时,执行前述实施例中任一项所述的方法。
可以理解,第二存储器1102与第一存储器902的硬件功能类似,第二处理器1103与第一处理器903的硬件功能类似;这里不再详述。
本实施例提供了一种解码器,该解码器可以包括解析单元、第二确定单元、逆处理单元和预测单元。在该解码器中,充分利用了第一分区的运动信息索引值和/或第二分区的运动信息索引值在二值化后的第一个比特、第二个比特或者每一个比特的概率分布特性,为其设计对应的上下型概率模型,从而能够减小编码所需的比特数,提升了解码性能。
需要说明的是,在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
本申请实施例中,无论是编码器还是解码器,充分利用了第一分区的运动信息索引值和/或第二分区的运动信息索引值在二值化后的第一个比特、第二个比特或者每一个比特的概率分布特性,为其设计对应的上下型概率模型,从而能够减小编码所需的比特数,提升了编解码性能,以达到提升编解码效率的目的。
Claims (22)
- 一种编码方法,应用于编码器,所述方法包括:确定当前块的预测模式参数;当所述预测模式参数指示采用几何划分模式GPM确定所述当前块的帧间预测值时,确定所述当前块的两个分区;从运动信息候选列表中,确定所述两个分区的运动信息,并将第一运动信息索引值设置为第一分区的运动信息在所述运动信息候选列表中的索引序号值,第二运动信息索引值设置为第二分区的运动信息在所述运动信息候选列表中的索引序号值;分别对所述第一运动信息索引值和所述第二运动信息索引值进行二值化处理,得到第一符号串和第二符号串;其中,所述符号串包含一个或多个二元符号;使用不同的上下文概率模型分别对所述第一符号串和所述第二符号串的第一个二元符号进行熵编码;使用预设模型分别对所述第一符号串和所述第二符号串内除第一个二元符号之外的二元符号进行熵编码;将对所述第一符号串和所述第二符号串进行编码后得到的比特写入码流。
- 根据权利要求1所述的方法,其中,所述方法还包括:利用所述当前块的相邻块的运动信息,构造所述运动信息候选列表。
- 根据权利要求1所述的方法,其中,所述使用不同的上下文概率模型分别对所述第一符号串和所述第二符号串的第一个二元符号进行熵编码,包括:利用第一上下文概率模型对所述第一符号串的第一个二元符号进行熵编码,利用第二上下文概率模型对所述第二符号串的第一个二元符号进行熵编码;其中,所述第一上下文概率模型与所述第二上下文概率模型不同。
- 根据权利要求1所述的方法,其中,所述使用预设模型分别对所述第一符号串和所述第二符号串内除第一个二元符号之外的二元符号进行熵编码,包括:利用旁路模型对所述第一符号串和所述第二符号串内除第一个二元符号之外的二元符号进行熵编码;其中,所述旁路模型表征利用等概率模型进行二元算术熵编码。
- 根据权利要求1所述的方法,其中,所述使用预设模型分别对所述第一符号串和所述第二符号串内除第一个二元符号之外的二元符号进行熵编码,包括:利用不同的上下文概率模型对所述第一符号串和所述第二符号串的第二个二元符号进行熵编码;利用旁路模型对所述第一符号串和所述第二符号串内除第一个二元符号和第二个二元符号之外的二元符号进行熵编码;其中,所述旁路模型表征利用等概率模型进行二元算术熵编码。
- 根据权利要求5所述的方法,其中,所述使用预设模型分别对所述第一符号串和所述第二符号串内除第一个二元符号之外的二元符号进行熵编码,包括:利用第三上下文概率模型对所述第一符号串的第二个二元符号进行熵编码,利用第四上下文概率模型对所述第二符号串的第二个二元符号进行熵编码;其中,所述第三上下文概率模型与所述第四上下文概率模型不同。
- 根据权利要求1所述的方法,其中,所述方法还包括:利用不同的上下文概率模型对所述第一符号串和所述第二符号串内每一个二元符号进行熵编码。
- 根据权利要求1所述的方法,其中,所述方法还包括:利用旁路模型对所述第一符号串和所述第二符号串内每一个二元符号进行熵编码。
- 根据权利要求1至8任一项所述的方法,其中,所述确定当前块的预测模式参数,包括:利用多种预测模式对所述当前块进行预编码处理,获得每一种预测模式对应的率失真代价值;从所获得的多个率失真代价值中选择最小率失真代价值,将所述最小率失真代价值对应的预测模式确定为当前块的预测模式参数。
- 一种解码方法,应用于解码器,所述方法包括:解析码流,获得当前块的预测模式参数;当所述预测模式参数指示采用几何划分模式GPM确定所述当前块的帧间预测值时,确定所述当前块的两个分区;解析码流,确定所述当前块的两个分区的运动信息索引值对应的第一符号串和第二符号串,其中,所述第一符号串和所述第二符号串包含一个或多个二元符号,包括:使用不同的上下文概率模型解析码 流,获得第一符号串和第二符号串的第一个二元符号;使用预设模型继续解析码流,获得所述第一符号串和所述第二符号串内除第一个二元符号之外的二元符号;根据预设的二值化模型,确定所述第一符号串和所述第二符号串的对应第一数值和第二数值,将所述第一数值和所述第二数值分别设置为第一运动信息索引值和第二运动信息索引值;基于运动信息候选列表,将所述第一运动信息索引值指示的所述运动信息候选列表中的运动信息确定为第一分区对应的运动信息,将所述第二运动信息索引值指示的所述运动信息候选列表中的运动信息确定为第二分区的运动信息;根据所述第一分区对应的运动信息和所述第二分区的运动信息,确定所述当前块的帧间预测值。
- 根据权利要求10所述的方法,其中,所述方法还包括:利用所述当前块的相邻块的运动信息,构造所述运动信息候选列表。
- 根据权利要求10所述的方法,其中,所述使用不同的上下文概率模型解析码流,获得第一符号串和第二符号串的第一个二元符号,包括:利用第一上下文概率模型进行二元算术熵解码,获得所述第一符号串的第一个二元符号;利用第二上下文概率模型进行二元算术熵解码,获得所述第二符号串的第一个二元符号;其中,所述第一上下文概率模型与所述第二上下文概率模型不同。
- 根据权利要求10所述的方法,其中,所述使用预设模型继续解析码流,获得所述第一符号串和所述第二符号串内除第一个二元符号之外的二元符号,包括:利用旁路模型解析码流,依次获得所述第一符号串和所述第二符号串内除第一个二元符号之外的二元符号;其中,所述旁路模型表征利用等概率模型进行二元算术熵解码。
- 根据权利要求10所述的方法,其中,所述使用预设模型继续解析码流,获得所述第一符号串和所述第二符号串内除第一个二元符号之外的二元符号,包括:利用不同的上下文概率模型解析码流,获得所述第一符号串和所述第二符号串的第二个二元符号;利用旁路模型继续解析码流,依次获得所述第一符号串和所述第二符号串内除第一个二元符号和第二个二元符号之外的二元符号;其中,所述旁路模型表征利用等概率模型进行二元算术熵解码。
- 根据权利要求14所述的方法,其中,所述使用预设模型继续解析码流,获得所述第一符号串和所述第二符号串内除第一个二元符号之外的二元符号,包括:利用第三上下文概率模型进行二元算术熵解码,获得所述第一符号串的第二个二元符号;利用第四上下文概率模型进行二元算术熵解码,获得所述第二组符号串的第二个二元符号;其中,所述第三上下文概率模型与所述第四上下文概率模型不同。
- 根据权利要求10所述的方法,其中,所述方法还包括:利用不同的上下文概率模型解析码流,获得所述第一符号串和所述第二符号串内每一个二元符号。
- 根据权利要求10所述的方法,其中,所述方法还包括:利用旁路模型解析码流,获得所述第一符号串和所述第二符号串内每一个二元符号。
- 一种编码器,所述编码器包括第一确定单元、设置单元、处理单元和编码单元;其中,所述第一确定单元,配置为确定当前块的预测模式参数;所述第一确定单元,还配置为当所述预测模式参数指示采用几何划分模式GPM确定所述当前块的帧间预测值时,确定待编码图像中当前块的两个分区;所述设置单元,配置为从运动信息候选列表中,确定所述两个分区的运动信息,并将第一运动信息索引值设置为第一分区的运动信息在所述运动信息候选列表中的索引序号值,第二运动信息索引值设置为第二分区的运动信息在所述运动信息候选列表中的索引序号值;所述处理单元,配置为分别对所述第一运动信息索引值和所述第二运动信息索引值进行二值化处理,得到第一符号串和第二符号串;其中,所述符号串包含一个或多个二元符号;所述编码单元,配置为使用不同的上下文概率模型分别对所述第一符号串和所述第二符号串的第一个二元符号进行熵编码;使用预设模型分别对所述第一符号串和所述第二符号串内除第一个二元符号之外的二元符号进行熵编码;并将对所述第一符号串和所述第二符号串进行编码后得到的比特写入码流。
- 一种编码器,所述编码器包括第一存储器和第一处理器;其中,所述第一存储器,用于存储能够在所述第一处理器上运行的计算机程序;所述第一处理器,用于在运行所述计算机程序时,执行如权利要求1至9任一项所述的方法。
- 一种解码器,所述解码器包括解析单元、第二确定单元、逆处理单元和预测单元;其中,所述解析单元,配置为解析码流,获得当前块的预测模式参数;所述第二确定单元,配置为当所述预测模式参数指示采用几何划分模式GPM确定所述当前块的帧间预测值时,确定所述当前块的两个分区;所述解析单元,还配置为解析码流,确定所述当前块的两个分区的运动信息索引值对应的第一符号串和第二符号串,其中,所述第一符号串和所述第二符号串包含一个或多个二元符号,包括:使用不同的上下文概率模型解析码流,获得第一符号串和第二符号串的第一个二元符号;使用预设模型继续解析码流,获得所述第一符号串和所述第二符号串内除第一个二元符号之外的二元符号;所述逆处理单元,配置为根据预设的二值化模型,确定所述第一符号串和所述第二符号串的对应第一数值和第二数值,将所述第一数值和所述第二数值分别设置为第一运动信息索引值和第二运动信息索引值;所述第二确定单元,还配置为基于运动信息候选列表,将所述第一运动信息索引值指示的所述运动信息候选列表中的运动信息确定为第一分区对应的运动信息,将所述第二运动信息索引值指示的所述运动信息候选列表中的运动信息确定为第二分区的运动信息;所述预测单元,配置为根据所述第一分区对应的运动信息和所述第二分区的运动信息,确定所述当前块的帧间预测值。
- 一种解码器,所述解码器包括第二存储器和第二处理器;其中,所述第二存储器,用于存储能够在所述第二处理器上运行的计算机程序;所述第二处理器,用于在运行所述计算机程序时,执行如权利要求10至17任一项所述的方法。
- 一种计算机存储介质,其中,所述计算机存储介质存储有计算机程序,所述计算机程序被第一处理器执行时实现如权利要求1至9任一项所述的方法、或者被第二处理器执行时实现如权利要求10至17任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010271284.3A CN113497936A (zh) | 2020-04-08 | 2020-04-08 | 编码方法、解码方法、编码器、解码器以及存储介质 |
CN202010271284.3 | 2020-04-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021203924A1 true WO2021203924A1 (zh) | 2021-10-14 |
Family
ID=77994973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2021/081147 WO2021203924A1 (zh) | 2020-04-08 | 2021-03-16 | 编码方法、解码方法、编码器、解码器以及存储介质 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN113497936A (zh) |
TW (1) | TW202139706A (zh) |
WO (1) | WO2021203924A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024103304A1 (zh) * | 2022-11-16 | 2024-05-23 | Oppo广东移动通信有限公司 | 点云编解码方法、编码器、解码器、码流及存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023065202A1 (en) * | 2021-10-21 | 2023-04-27 | Qualcomm Incorporated | Multiple composition distribution matching based on arithmetic coding and geometry-specific parameters |
WO2024027700A1 (en) * | 2022-08-05 | 2024-02-08 | Mediatek Inc. | Joint indexing of geometric partitioning mode in video coding |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101527845A (zh) * | 2008-12-19 | 2009-09-09 | 无锡亿普得科技有限公司 | 一种指数分布数据的基于块自适应量化的方法 |
CN103650510A (zh) * | 2011-07-15 | 2014-03-19 | 摩托罗拉移动有限责任公司 | 用于变换系数级编码的上下文建模技术 |
CN110784712A (zh) * | 2019-06-21 | 2020-02-11 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置及存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004040246A (ja) * | 2002-06-28 | 2004-02-05 | Canon Inc | 情報処理装置、情報処理方法 |
MX2012009474A (es) * | 2010-02-24 | 2012-10-09 | Sharp Kk | Dispositivo de codificacion de imagen y dispositivo de decodificacion de imagen. |
CN105847830B (zh) * | 2010-11-23 | 2019-07-12 | Lg电子株式会社 | 由编码装置和解码装置执行的间预测方法 |
CN102611880B (zh) * | 2011-01-19 | 2015-02-04 | 华为技术有限公司 | 标识图像块几何划分模式的编解码方法和设备 |
US10123053B2 (en) * | 2011-05-23 | 2018-11-06 | Texas Instruments Incorporated | Acceleration of bypass binary symbol processing in video coding |
RU2647674C1 (ru) * | 2012-07-02 | 2018-03-16 | Самсунг Электроникс Ко., Лтд. | Способ и устройство для кодирования видео и способ и устройство для декодирования видео, определяющие список опорных изображений внешнего прогнозирования в зависимости от размера блока |
CN112655209B (zh) * | 2018-07-02 | 2024-03-29 | 弗劳恩霍夫应用研究促进协会 | 对块的变换系数进行解码或编码的装置和方法 |
-
2020
- 2020-04-08 CN CN202010271284.3A patent/CN113497936A/zh active Pending
-
2021
- 2021-03-16 WO PCT/CN2021/081147 patent/WO2021203924A1/zh active Application Filing
- 2021-03-16 TW TW110109404A patent/TW202139706A/zh unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101527845A (zh) * | 2008-12-19 | 2009-09-09 | 无锡亿普得科技有限公司 | 一种指数分布数据的基于块自适应量化的方法 |
CN103650510A (zh) * | 2011-07-15 | 2014-03-19 | 摩托罗拉移动有限责任公司 | 用于变换系数级编码的上下文建模技术 |
CN110784712A (zh) * | 2019-06-21 | 2020-02-11 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置及存储介质 |
Non-Patent Citations (1)
Title |
---|
BENJAMIN BROSS , JIANLE CHEN , SHAN LIU , YE-KUI WANG: "Versatile Video Coding (Draft 8)", 17. JVET MEETING; 20200107 - 20200117; BRUSSELS; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ), no. JVET-Q2001-vE, 12 March 2020 (2020-03-12), pages 1 - 510, XP030285390 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024103304A1 (zh) * | 2022-11-16 | 2024-05-23 | Oppo广东移动通信有限公司 | 点云编解码方法、编码器、解码器、码流及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
TW202139706A (zh) | 2021-10-16 |
CN113497936A (zh) | 2021-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110933424B (zh) | 一个帧内编码块的多个预测块 | |
WO2021203924A1 (zh) | 编码方法、解码方法、编码器、解码器以及存储介质 | |
CN113711597B (zh) | 上下文建模和多重变换矩阵的选择 | |
WO2022117089A1 (zh) | 预测方法、编码器、解码器以及存储介质 | |
WO2021238396A1 (zh) | 帧间预测方法、编码器、解码器以及计算机存储介质 | |
WO2022116113A1 (zh) | 一种帧内预测方法、装置及解码器和编码器 | |
WO2020182104A1 (zh) | 进行编码和解码的方法、解码装置和编码装置 | |
TWI838406B (zh) | 色度模式幀內編解碼 | |
WO2021258841A1 (zh) | 帧间预测方法、编码器、解码器以及计算机存储介质 | |
WO2021196228A1 (zh) | 帧间预测方法、编码器、解码器以及存储介质 | |
WO2022188114A1 (zh) | 帧内预测方法、编码器、解码器以及存储介质 | |
WO2022174467A1 (zh) | 帧内预测方法、编码器、解码器以及存储介质 | |
WO2022227082A1 (zh) | 块划分方法、编码器、解码器以及计算机存储介质 | |
WO2022140905A1 (zh) | 预测方法、编码器、解码器以及存储介质 | |
CN113395520B (zh) | 解码预测方法、装置及计算机存储介质 | |
WO2024119521A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
WO2024108391A1 (zh) | 视频编解码方法、装置、设备、系统、及存储介质 | |
CN114175653B (zh) | 用于视频编解码中的无损编解码模式的方法和装置 | |
WO2024197748A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
WO2023123736A1 (zh) | 预测方法、装置、设备、系统、及存储介质 | |
WO2024077553A1 (zh) | 视频编解码方法、装置、设备、系统、及存储介质 | |
WO2024000768A1 (zh) | 视频编、解码方法及装置、码流、解码器、编码器、存储介质 | |
WO2023141970A1 (zh) | 解码方法、编码方法、解码器、编码器和编解码系统 | |
WO2022174478A1 (zh) | 编码方法、解码方法、编码器、解码器及存储介质 | |
WO2024197752A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21785184 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 21785184 Country of ref document: EP Kind code of ref document: A1 |