CN113497936A - Encoding method, decoding method, encoder, decoder, and storage medium - Google Patents

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

Info

Publication number
CN113497936A
CN113497936A CN202010271284.3A CN202010271284A CN113497936A CN 113497936 A CN113497936 A CN 113497936A CN 202010271284 A CN202010271284 A CN 202010271284A CN 113497936 A CN113497936 A CN 113497936A
Authority
CN
China
Prior art keywords
motion information
symbol string
symbol
binary
current block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010271284.3A
Other languages
Chinese (zh)
Inventor
霍俊彦
周玺乐
马彦卓
万帅
杨付正
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202010271284.3A priority Critical patent/CN113497936A/en
Priority to TW110109404A priority patent/TW202139706A/en
Priority to PCT/CN2021/081147 priority patent/WO2021203924A1/en
Publication of CN113497936A publication Critical patent/CN113497936A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/184Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/186Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods 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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

The embodiment of the application discloses an encoding method, a decoding method, an encoder, a decoder and a storage medium, wherein when a prediction mode parameter indicates that a geometric partition mode GPM is adopted to determine an inter-frame prediction value of a current block, two partitions of the current block are determined; determining the motion information of two partitions from the motion information candidate list, setting a first motion information index value as an index sequence number value of the motion information of the first partition in the motion information candidate list, and setting a second motion information index value as an index sequence number value of the motion information of the second partition in the motion information candidate list; respectively carrying out 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; entropy encoding first binary symbols of the first symbol string and the second symbol string, respectively, using different context probability models; entropy encoding binary symbols except for the first binary symbol in the first symbol string and the second symbol string, respectively, using a preset model.

Description

Encoding method, decoding method, encoder, decoder, and storage medium
Technical Field
The present application relates to the field of encoding and decoding technologies, and in particular, to an encoding method, a decoding method, an encoder, a decoder, and a storage medium.
Background
In the field of video encoding and decoding, the process of encoding and decoding the current block can adopt an inter-frame prediction mode besides an intra-frame prediction mode. The inter-frame prediction may specifically adopt a geometric partitioning prediction mode (GEO) for inter blocks (GEO), or referred to as a GPM prediction mode, and the current block is divided into two non-rectangular partitions, and then prediction and weighted fusion are performed respectively, so as to obtain the inter-frame prediction value of the current block.
However, for the two partitions, in the syntax element description, the first bit after Binarization (Binarization) of 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 ]) is encoded by using the same Context (Context) probability model, but the syntax element values do not have the same probability distribution, which will increase the number of encoding bits; in addition, the second bit after binarization is encoded by using an equal probability model, and the probability distribution is not fully considered, so that the number of encoded bits is still increased.
Disclosure of Invention
The embodiment of the application provides an encoding method, a decoding method, an encoder, a decoder and a storage medium, and makes full use of the probability distribution characteristics of the first bit, the second bit or each bit after binarization of the motion information index value of the first partition and/or the motion information index value of the second partition, so that the number of bits required by encoding can be reduced, and the encoding and decoding performance can be improved.
The technical scheme of the embodiment of the application is realized as follows:
in a first aspect, an embodiment of the present application provides an encoding method, applied to an encoder, where the method includes:
determining a prediction mode parameter of a current block;
when the prediction mode parameter indicates that a Geometric Partition Mode (GPM) is adopted to determine the inter prediction value of the current block, determining two partitions of the current block;
determining the motion information of the two partitions from a motion information candidate list, setting a first motion information index value as an index sequence number value of the motion information of the first partition in the motion information candidate list, and setting a second motion information index value as an index sequence number value of the motion information of the second partition in the motion information candidate list;
respectively carrying out 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 comprises one or more binary symbols;
entropy encoding first binary symbols of the first symbol string and the second symbol string, respectively, using different context probability models;
entropy coding binary symbols except for the first binary symbol in the first symbol string and the second symbol string respectively by using a preset model;
and writing bits obtained by coding the first symbol string and the second symbol string into a code stream.
In a second aspect, an embodiment of the present application provides a decoding method, applied to a decoder, the method including:
when the prediction mode parameter indicates that a Geometric Partition Mode (GPM) is adopted to determine the inter prediction value of the current block, determining two partitions of the current block;
analyzing a code stream, and determining a first symbol string and a second symbol string corresponding to motion information index values of two partitions of the current block, wherein the first symbol string and the second symbol string comprise one or more binary symbols, and the method comprises the following steps: analyzing the code stream by using different context probability models to obtain a first binary symbol of the first symbol string and a first binary symbol of the second symbol string; continuously analyzing the code stream by using a preset model to obtain binary symbols except the first binary symbol in the first symbol string and the second symbol string;
determining a first numerical value and a second numerical value corresponding to the first symbol string and the second symbol string according to a preset binarization model, and setting the first numerical value and the second numerical value as a first motion information index value and a second motion information index value respectively;
determining, based on a motion information candidate list, motion information in the motion information candidate list indicated by the first motion information index value as motion information corresponding to a first partition, and determining motion information in the motion information candidate list indicated by the second motion information index value as motion information of a second partition;
and determining the inter-frame prediction value of the current block according to the motion information corresponding to the first partition and the motion information of the second partition.
In a third aspect, an embodiment of the present application provides an encoder, which includes a first determining unit, a setting unit, a processing unit, and an encoding unit; wherein the content of the first and second substances,
the first determining unit is configured to determine a 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 a geometric partition mode GPM is adopted to determine the inter prediction value of the current block;
the setting unit is configured to determine motion information of the two partitions from a motion information candidate list, and set a first motion information index value as an index sequence number value of the motion information of the first partition in the motion information candidate list, and set a second motion information index value as an 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 respectively to obtain a first symbol string and a second symbol string; wherein the symbol string comprises one or more binary symbols;
the encoding unit is configured to entropy encode first binary symbols of the first symbol string and the second symbol string respectively by using different context probability models; entropy coding binary symbols except for the first binary symbol in the first symbol string and the second symbol string respectively by using a preset model; and writing bits obtained by encoding the first symbol string and the second symbol string into a code stream.
In a fourth aspect, an embodiment of the present application provides an encoder, including a first memory and a first processor; wherein the content of the first and second substances,
the first memory for storing a computer program operable on the first processor;
the first processor, when executing the computer program, is configured to perform the method according to the first aspect.
In a fifth aspect, 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 content of the first and second substances,
the analysis unit is configured to analyze the code stream to obtain a prediction mode parameter of the current block;
the second determination unit is configured to determine two partitions of the current block when the prediction mode parameter indicates that an inter prediction value of the current block is determined using a Geometric Partition Mode (GPM);
the parsing unit is further configured to parse a code stream, and determine a first symbol string and a second symbol string corresponding to motion information index values of two partitions of the current block, where the first symbol string and the second symbol string include one or more binary symbols, including: analyzing the code stream by using different context probability models to obtain a first binary symbol of the first symbol string and a first binary symbol of the second symbol string; continuously analyzing the code stream by using a preset model to obtain binary symbols except the first binary symbol in the first symbol string and the second symbol string;
the inverse processing unit is configured to determine corresponding first and second numerical values of the first and second symbol strings according to a preset binarization model, and set the first and second numerical values as first and second motion information index values, respectively;
the second determining unit is further configured to determine, based on a motion information candidate list, motion information in the motion information candidate list indicated by the first motion information index value as motion information corresponding to a first partition, and determine motion information in the motion information candidate list indicated by the second motion information index value as motion information of a second partition;
the prediction unit is configured to determine an 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.
In a sixth aspect, an embodiment of the present application provides a decoder, which includes a second memory and a second processor; wherein the content of the first and second substances,
the second memory for storing a computer program operable on the second processor;
the second processor is adapted to perform the method according to the second aspect when running the computer program.
In a seventh aspect, the present application provides a computer storage medium storing a computer program, where the computer program implements the method according to the first aspect when executed by a first processor or implements the method according to the second aspect when executed by a second processor.
The encoding method, the decoding method, the encoder, the decoder and the storage medium provided by the embodiment of the application are applied to the encoder and used for determining the prediction mode parameter of the current block; when the prediction mode parameter indicates that a Geometric Partition Mode (GPM) is adopted to determine the inter prediction value of the current block, determining two partitions of the current block; determining the motion information of the two partitions from a motion information candidate list, setting a first motion information index value as an index sequence number value of the motion information of the first partition in the motion information candidate list, and setting a second motion information index value as an index sequence number value of the motion information of the second partition in the motion information candidate list; respectively carrying out 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 comprises one or more binary symbols; entropy encoding first binary symbols of the first symbol string and the second symbol string, respectively, using different context probability models; entropy coding binary symbols except for the first binary symbol in the first symbol string and the second symbol string respectively by using a preset model; and writing bits obtained by coding the first symbol string and the second symbol string into a code stream. In addition, the embodiment of the application provides a decoding method, which is applied to a decoder and used for obtaining the prediction mode parameter of the current block by analyzing a code stream; when the prediction mode parameter indicates that a Geometric Partition Mode (GPM) is adopted to determine the inter prediction value of the current block, determining two partitions of the current block; analyzing a code stream, and determining a first symbol string and a second symbol string corresponding to motion information index values of two partitions of the current block, wherein the first symbol string and the second symbol string comprise one or more binary symbols, and the method comprises the following steps: analyzing the code stream by using different context probability models to obtain a first binary symbol of the first symbol string and a first binary symbol of the second symbol string; continuously analyzing the code stream by using a preset model to obtain binary symbols except the first binary symbol in the first symbol string and the second symbol string; determining a first numerical value and a second numerical value corresponding to the first symbol string and the second symbol string according to a preset binarization model, and setting the first numerical value and the second numerical value as a first motion information index value and a second motion information index value respectively; determining, based on a motion information candidate list, motion information in the motion information candidate list indicated by the first motion information index value as motion information corresponding to a first partition, and determining motion information in the motion information candidate list indicated by the second motion information index value as motion information of a second partition; and determining the inter-frame prediction value of the current block according to the motion information corresponding to the first partition and the motion information of the second partition. Therefore, no matter the encoder or the decoder, the probability distribution characteristics of the motion information index value of the first partition and/or the motion information index value of the second partition in the first bit, the second bit or each bit after binarization are fully utilized, and a corresponding upper and lower probability model is designed for the motion information index value, so that the number of bits required by encoding can be reduced, the encoding and decoding performance is improved, and the purpose of improving the encoding and decoding efficiency is achieved.
Drawings
Fig. 1A is a schematic structural diagram of a geometric partitioning mode provided in the related art;
fig. 1B is a schematic structural diagram of another geometric partitioning mode provided in the related art;
FIG. 2 is a schematic structural diagram of an angle and a step size of a current block according to a related art;
fig. 3A is a block diagram of a video coding system according to an embodiment of the present application;
fig. 3B is a block diagram of a video decoding system according to an embodiment of the present application;
fig. 4 is a schematic flowchart of an encoding method according to an embodiment of the present application;
fig. 5 is a schematic diagram illustrating distribution of neighboring blocks for constructing a merge candidate list according to an embodiment of the present disclosure;
fig. 6 is a flowchart illustrating a decoding method according to an embodiment of the present application;
fig. 7 is a schematic diagram of an overall architecture of a GPM prediction processing flow according to an embodiment of the present application;
fig. 8 is a schematic structural diagram of an encoder according to an embodiment of the present disclosure;
fig. 9 is a schematic hardware structure diagram of an encoder according to an embodiment of the present disclosure;
fig. 10 is a schematic structural diagram of a decoder according to an embodiment of the present application;
fig. 11 is a schematic hardware structure diagram of a decoder according to an embodiment of the present disclosure.
Detailed Description
The technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application. It is to be understood that the specific embodiments described herein are merely illustrative of the relevant application and are not limiting of the application. It should be noted that, for the convenience of description, only the parts related to the related applications are shown in the drawings.
In a video image, a first image component, a second image component and a third image component are generally adopted to characterize a current Block (Coding Block, CB); wherein the three image components are respectively a luminance component, a blue chrominance component and a red chrominance component, and specifically, the luminance component is generally represented by a symbol Y, the blue chrominance component is generally represented by a symbol Cb or U, and the red chrominance component is generally represented by a symbol Cr or V; thus, the video image can be represented in YCbCr format, and also in YUV format.
In the embodiment of the present application, the first image component may be a luminance component, the second image component may be a blue chrominance component, and the third image component may be a red chrominance component, but the embodiment of the present application is not particularly limited.
A description of a related art scheme will be made with respect to a geometric Partition prediction Mode (GPM).
In the hybrid framework of video coding, coding techniques such as prediction, transform, and quantization are generally implemented only in units of square and rectangular blocks. However, in practical applications, the edges of the moving object are not necessarily all in the horizontal or vertical direction; even if the motion vector is not exactly located at the edge of the block which can be divided, the motion vectors at the two sides of the motion edge are often different, so that a whole block is used for motion prediction and compensation in the encoding process, a large prediction error is easily generated, and the encoding efficiency is limited.
In the process of establishing a new generation Video Coding standard H.266/multifunctional Video Coding (VVC), other shape division besides square and rectangle is introduced. First, a Triangulation Prediction Mode (TPM) is introduced, as shown in fig. 1A; in fig. 1A, a diagonal line or an anti-diagonal line of a square or a rectangle is used as a partition line to obtain a triangular prediction unit, so that inter-frame prediction data can be more flexibly represented, prediction errors are reduced, and coding efficiency is improved.
In a first meeting of Joint Video Experts Team (jfet), a more flexible inter-frame geometric partitioning (GEO) prediction mode than TPM is proposed, and then the jfet formally adopts the GEO prediction mode into the VVC, and is called GPM. Specifically, the GPM prediction technique adopts a more flexible representation method for the edge portion of a moving object in an image to divide an inter block into two non-rectangular partitions, as shown in fig. 1B; and respectively predicting and then reweighting and fusing the two divided partitions to obtain the interframe prediction value of the current block.
It should be noted that, in the current VVC, there may be 64 partition modes in total, and each partition mode corresponds to one angle (denoted by α) and one step size (denoted by ρ), that is, there may be 20 angles and 4 step sizes in total. As shown in fig. 2, the angle of the horizontal direction rotating to the right to the position of the dividing line normal is α, and the normal distance of the dividing line is ρ; here, each combination of the angle and the step size may constitute one division pattern. Under a GPM prediction mode, a current block can be divided into two non-rectangular partitions according to a division mode, each partition is independently subjected to unidirectional motion compensation to obtain a unidirectional prediction value, and finally the unidirectional prediction values of the two partitions are subjected to weighted fusion by using a weight matrix to obtain a final GPM prediction value.
However, for two partitions per current block, in the syntax element description, the motion information index value of the first partition (denoted by merge _ gpm _ idx0[ xCb ] [ yCb ]) and the motion information index value of the second partition (denoted by merge _ gpm _ idx1[ xCb ] [ yCb ]) both require binarization processing. In the current scheme, the same context probability model is adopted for the first bit after merge _ gpm _ idx0[ xCb ] [ yCb ] and merge _ gpm _ idx1[ xCb ] [ yCb ] binarization processing, and the first bit and the motion information index value (represented by merge _ idx) of the common inter-frame prediction mode share the same context probability model, but the syntax element values do not have the same probability distribution, which causes the context probability model to be slow and stable in the encoding process, so that the number of encoding bits is increased; in addition, for the second bit after the binarization processing, since the probability that the second bit is 0 is far smaller than the probability that the second bit is 1, the probability distribution is not fully considered by using an equiprobable model in the current scheme, so that the number of coded bits is still increased, and the coding and decoding efficiency is reduced.
The embodiment of the application provides an encoding method, which is applied to an encoder and used for determining a prediction mode parameter of a current block; when the prediction mode parameter indicates that a Geometric Partition Mode (GPM) is adopted to determine the inter prediction value of the current block, determining two partitions of the current block; determining the motion information of the two partitions from a motion information candidate list, setting a first motion information index value as an index sequence number value of the motion information of the first partition in the motion information candidate list, and setting a second motion information index value as an index sequence number value of the motion information of the second partition in the motion information candidate list; respectively carrying out 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 comprises one or more binary symbols; entropy encoding first binary symbols of the first symbol string and the second symbol string, respectively, using different context probability models; entropy coding binary symbols except for the first binary symbol in the first symbol string and the second symbol string respectively by using a preset model; and writing bits obtained by coding the first symbol string and the second symbol string into a code stream. In addition, the embodiment of the application provides a decoding method, which is applied to a decoder and used for obtaining the prediction mode parameter of the current block by analyzing a code stream; when the prediction mode parameter indicates that a Geometric Partition Mode (GPM) is adopted to determine the inter prediction value of the current block, determining two partitions of the current block; analyzing a code stream, and determining a first symbol string and a second symbol string corresponding to motion information index values of two partitions of the current block, wherein the first symbol string and the second symbol string comprise one or more binary symbols, and the method comprises the following steps: analyzing the code stream by using different context probability models to obtain a first binary symbol of the first symbol string and a first binary symbol of the second symbol string; continuously analyzing the code stream by using a preset model to obtain binary symbols except the first binary symbol in the first symbol string and the second symbol string; determining a first numerical value and a second numerical value corresponding to the first symbol string and the second symbol string according to a preset binarization model, and setting the first numerical value and the second numerical value as a first motion information index value and a second motion information index value respectively; determining, based on a motion information candidate list, motion information in the motion information candidate list indicated by the first motion information index value as motion information corresponding to a first partition, and determining motion information in the motion information candidate list indicated by the second motion information index value as motion information of a second partition; and determining the inter-frame prediction value of the current block according to the motion information corresponding to the first partition and the motion information of the second partition. Therefore, no matter the encoder or the decoder, the probability distribution characteristics of the motion information index value of the first partition and/or the motion information index value of the second partition in the first bit, the second bit or each bit after binarization are fully utilized, and a corresponding upper and lower probability model is designed for the motion information index value, so that the number of bits required by encoding can be reduced, the encoding and decoding performance is improved, and the purpose of improving the encoding and decoding efficiency is achieved.
Embodiments of the present application will be described in detail below with reference to the accompanying drawings.
Referring to fig. 3A, a block diagram of an example of a video coding system provided in an embodiment of the present application is shown; as shown in fig. 3A, the video Coding system 10 includes a transform and quantization unit 101, an intra estimation unit 102, an intra prediction unit 103, a motion compensation unit 104, a motion estimation unit 105, an inverse transform and inverse quantization unit 106, a filter control analysis unit 107, a filtering unit 108, an entropy Coding unit 109, a decoded image buffer unit 110, and the like, wherein the filtering unit 108 may implement deblocking filtering and Sample Adaptive 0 offset (SAO) filtering, and the entropy Coding unit 109 may implement header information Coding and Context-based Adaptive Binary arithmetic Coding (CABAC). For an input original video signal, a video Coding block can be obtained by dividing a Coding Tree Unit (CTU), and then residual pixel information obtained by intra-frame or inter-frame prediction is transformed by a transformation and quantization Unit 101, including transforming the residual information from a pixel domain to a transformation domain and quantizing the obtained transformation coefficient, so as to further reduce the bit rate; the intra estimation unit 102 and the intra prediction unit 103 are used for intra prediction of the video coding block; in particular, intra estimation unit 102 and intra prediction unit 103 are used to determine the intra prediction mode to be used to encode the video coding block; motion compensation unit 104 and motion estimation unit 105 are to perform inter-prediction encoding of the received video coding block relative to one or more blocks in one or more reference frames to provide temporal prediction information; motion estimation performed by the motion estimation unit 105 is a process of generating motion vectors that can estimate the motion of the video coding block, and then performing motion compensation by the motion compensation unit 104 based on the motion vectors determined by the motion estimation unit 105; after determining the intra prediction mode, the intra prediction unit 103 is also configured to supply the selected intra prediction data to the entropy encoding unit 109, and the motion estimation unit 105 sends the calculated determined motion vector data to the entropy encoding unit 109 as well; furthermore, the inverse transform and inverse quantization unit 106 is used for reconstruction of the video coding block, reconstructing a residual block in the pixel domain, the reconstructed residual block removing blocking artifacts through the filter control analysis unit 107 and the filtering unit 108, and then adding the reconstructed residual block to a predictive block in the frame of the decoded picture buffer unit 110 to generate a reconstructed video coding block; the entropy coding unit 109 is configured to encode various coding parameters and quantized transform coefficients, and in a CABAC-based coding algorithm, context content may be based on adjacent coding blocks, and may be configured to encode information indicating the determined intra prediction mode and output a code stream of the video signal; the decoded picture buffer unit 110 is used to store reconstructed video coding blocks for prediction reference. As the video coding proceeds, new reconstructed video coding blocks are continuously generated, and these reconstructed video coding blocks are stored in the decoded picture buffer unit 110.
Referring to fig. 3B, a block diagram of an example of a video decoding system provided in an embodiment of the present application is shown; as shown in fig. 3B, the video decoding system 20 includes an entropy decoding unit 201, an inverse transform and inverse quantization unit 202, an intra prediction unit 203, a motion compensation unit 204, a filtering unit 205, a decoded image buffer unit 206, and the like, wherein the entropy decoding unit 201 can implement header information decoding and CABAC decoding, and the filtering unit 205 can implement deblocking filtering and SAO filtering. After the input video signal is subjected to the encoding process of fig. 3A, a 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 a decoded transform coefficient; processes the transform coefficients by an inverse transform and inverse quantization unit 202 to produce a residual block in the pixel domain; intra-prediction unit 203 may be used to generate prediction data for a current video decoded block based on the determined intra-prediction mode and data from previously decoded blocks of the current frame or picture; motion compensation unit 204 is a predictive block that determines prediction information for a video decoded block by parsing motion vectors and other associated syntax elements and uses the prediction information to generate the video decoded block being decoded; forming a decoded video block by summing the residual block from inverse transform and inverse quantization unit 202 with the corresponding predictive block generated by intra prediction unit 203 or motion compensation unit 204; the decoded video signal passes through the filtering unit 205 to remove blocking artifacts, which may improve video quality; the decoded video blocks are then stored in the decoded picture buffer unit 206, and the decoded picture buffer unit 206 stores the reference pictures for subsequent intra prediction or motion compensation, and also for the output of the video signal, i.e. the restored original video signal is obtained.
The embodiment of the present application is mainly applied to an entropy encoding part (i.e. in the entropy encoding unit 109 shown in fig. 3A) and an entropy decoding part (i.e. in the entropy decoding unit 201 shown in fig. 3B); correspondingly, in the entropy encoding part, the inter prediction part in fig. 3A, i.e., the motion compensation unit 104 and the motion estimation unit 105 shown in fig. 3A, are also affected; in the entropy decoding part, the inter prediction part in fig. 3B, i.e. the motion compensation unit 204 shown in fig. 3B, is also affected. That is, the embodiments of the present application may be applied to a video encoding system, a video decoding system, or both the video encoding system and the video decoding system, and the embodiments of the present application are not limited in any way.
Based on the application scenario example of fig. 3A, refer to fig. 4, which shows a flowchart of an encoding method provided in an embodiment of the present application. As shown in fig. 4, the method may include:
s401: determining a prediction mode parameter of a current block;
it should be noted that an image to be coded may be divided into a plurality of image blocks, and an image Block to be currently coded may be referred to as a Coding Block (CB). Here, each encoding block may include a first image component, a second image component, and a third image component; and the current block is an encoding block to be subjected to prediction of a first image component, a second image component or a third image component in the image to be encoded.
Wherein, assuming that the current block performs the first image component prediction, and the first image component is a luminance component, that is, the image component to be predicted is a luminance component, then the current block may also be called a luminance block; alternatively, assuming that the current block performs the second image component prediction, and the second image component is a chroma component, that is, the image component to be predicted is a chroma component, the current block may also be referred to as a chroma block.
It should be noted that the prediction mode parameter indicates the prediction mode adopted by the current block and the parameter related to the prediction mode. Here, for the determination of the prediction mode parameter, a simple decision strategy may be adopted, such as determining according to the magnitude of the distortion value; a complex decision strategy, such as determination based on the result of Rate Distortion Optimization (RDO), may also be adopted, and the embodiment of the present application is not limited in any way. Generally, the prediction mode parameter of the current block may be determined in an RDO manner.
Specifically, in some embodiments, for S401, the determining the prediction mode parameter of the current block may include:
carrying out pre-coding processing on the current block by utilizing multiple prediction modes to obtain rate distortion cost values corresponding to each prediction mode;
and selecting a minimum rate distortion cost value from the obtained multiple rate distortion cost values, and determining a prediction mode corresponding to the minimum rate distortion cost value as a prediction mode parameter of the current block.
That is, on the encoder side, the current block may be pre-encoded in a plurality of prediction modes for the current block. Here, the plurality of prediction modes generally include an inter prediction mode, a conventional intra prediction mode, and a non-conventional intra prediction mode; the conventional Intra Prediction mode may include a Direct-Current (DC) mode, a PLANAR (PLANAR) mode, an angular mode, and the like, the non-conventional Intra Prediction mode may include a Matrix-based Intra Prediction (MIP) mode, a Cross-component Linear Model Prediction (CCLM) mode, an Intra Block Copy (IBC) mode, a plt (pattern) mode, and the like, and the inter Prediction mode may include a conventional inter Prediction mode, a GPM Prediction mode, and the like.
Therefore, after the current block is pre-coded by utilizing a plurality of prediction modes, the rate distortion cost value corresponding to each prediction mode can be obtained; and then selecting the minimum rate distortion cost value from the obtained multiple rate distortion cost values, and determining the prediction mode corresponding to the minimum rate distortion cost value as the prediction mode parameter of the current block. In addition, after the current block is pre-coded by utilizing a plurality of prediction modes, a distortion value corresponding to each prediction mode can be obtained; then, the minimum distortion value is selected from the obtained distortion values, and the prediction mode corresponding to the minimum distortion value is determined as the prediction mode parameter of the current block. In this way, the determined prediction mode parameters are finally used for encoding the current block, and in the prediction mode, the prediction residual error can be smaller, and the encoding efficiency can be improved.
S402: when the prediction mode parameter indicates that a Geometric Partition Mode (GPM) is adopted to determine the inter prediction value of the current block, determining two partitions of the current block;
it should be noted that, for the current block, if the current block can use the GPM prediction mode, some limiting conditions need to be satisfied for the current block. Illustratively, these constraints may include:
(a) sequence Parameter Set (SPS) allows for GPM prediction mode;
(b) the coded picture region of the current block belongs to a bi-directional prediction slice (B slice);
(c) the size limit, width and height of the current block must both be greater than or equal to 8 and less than or equal to 64, and the aspect ratio and aspect ratio of the current block are both less than 8;
(d) the current block is non-normal fusion (general merge) Prediction, non-fusion sub-block (merge _ sub) Prediction, non-affine Prediction and non-joint Intra-frame Prediction (CIIP);
(e) the GPM prediction mode is disabled for chroma components of the 4:0:0 format.
It should be noted that, if the current block satisfies the above restriction condition, and the prediction mode parameter indicates that the current block adopts the GPM prediction mode under inter-frame prediction, at this time, an angle and a step length corresponding to a partition line in the current block may be determined, and then two partitions divided by the current block, such as a first partition and a second partition, may be determined and may be represented by a partition and a partition.
Further, the angle index value and the step index value are respectively set as index sequence numbers of the angle and the step corresponding to the dividing line in the current block in the preset mapping table. In some embodiments, when the prediction mode parameter indicates that the inter prediction value of the current block is determined using GPM, the method may further include:
determining a partition mode of the current block;
determining a partition mode index value as an index serial number corresponding to the partition mode in a preset mapping table and writing the index serial number into a code stream; the preset mapping table is used for indicating the corresponding relation among the division mode index value, the angle index value and the step length index.
That is, when it is determined that the prediction mode parameter indicates that the interprediction value of the current block is determined using the GPM prediction mode, the partition mode of the current block may also be determined at this time; wherein, each division mode corresponds to an angle and a step length. Generally speaking, there are 64 partition modes in the GPM prediction mode, for such many partition modes, the RDO mode may still be adopted to determine the partition mode of the current block, and at the same time, the partition mode index value is determined as the index serial number corresponding to the partition mode in the preset mapping table and written into the code stream, so that the code stream may be analyzed at the decoder side in the following step to obtain the partition mode index value, and then the preset mapping table is searched to determine the angle index value and the step length index value of the current block.
The preset mapping table for reflecting the partition mode index value, the angle index value and the step length index is shown in table 1; in table 1, a total of 64 division modes are provided, and an angle index value and a step index value corresponding to each division mode; here, merge _ gpm _ partition _ idx is a partition mode index value, angleIdx is an angle index value, and distanceIdx is a step index value.
TABLE 1
Figure BDA0002443240330000061
Thus, when the current block adopts the GPM prediction mode, the encoder side can determine the partition mode index value written in the code stream according to the preset mapping table shown in the table 1; the decoder side can obtain the division mode index value selected by the current block by analyzing the code stream, obtain the corresponding angle index value and step length index value by looking up the table, and further determine the first partition and the second partition divided by the current block.
S403: determining the motion information of the two partitions from a motion information candidate list, setting a first motion information index value as an index sequence number value of the motion information of the first partition in the motion information candidate list, and setting a second motion information index value as an index sequence number value of the motion information of the second partition in the motion information candidate list;
it should be noted that the motion information at least includes a motion vector and a reference picture index. Since the motion information of the neighboring block 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 block, so that the motion information candidate list can be obtained. Specifically, in some embodiments, before S402, the method may further include:
constructing the motion information candidate list using motion information of neighboring blocks of the current block.
It is understood that, on the encoder side, the GPM prediction mode and the other inter prediction modes can be regarded as competing modes, and if the current block selects the GPM prediction mode, there is a selection process for each parameter in the current block. In addition, it should be noted that the image block adjacent to the current block is referred to as an adjacent block; i.e. in the image to be encoded, the current block has a neighboring relationship with the neighboring block. The neighboring blocks described herein include spatial neighboring blocks and temporal neighboring blocks of the current block. Wherein a spatial neighboring block refers to an encoded (or decoded) block located in the same picture as the current block; a temporal neighboring block refers to an encoded (or decoded) block located in an inter-prediction reference picture of the current block.
Here, the GPM prediction mode may reuse an existing conventional merge list, and construct a unidirectional merge list belonging to the GPM in a parity manner, so that motion vector (mv) candidate information of each of two partitions divided using the GPM is selected from the unidirectional merge list.
Specifically, in the first step, the merge candidate list is constructed, in accordance with the process of constructing the list in the normal merge mode. The construction sequence is as follows: upper adjacent block (with B)1Denoted), left neighboring block (denoted a)1Denoted by B), upper right adjacent block (denoted by B)0Denoted by a), lower left adjacent block (denoted by a)0Denoted), upper left neighboring block (denoted by B)2Denoted by col), a reference frame corresponding position block (denoted by his), a history reference block (denoted by his), an average motion vector of the first and second candidate mvs (denoted by mv avg), and a zero motion vector (denoted by 0). As shown in fig. 5, it shows a schematic diagram of neighboring block distribution of the current block construction merge candidate list; according to the construction order, a merge candidate list of the current block, i.e., a motion information candidate list, can be obtained.
And secondly, selecting the mv of two partitions between different prediction mode parameters including the angle and the step length corresponding to different partition lines and between mv options in the merge candidate list according to RDO or other strategy modes, and transmitting the selected result (the angle and the offset information corresponding to the partition mode and the reference option position information selected by the A, B partition in the merge candidate list respectively and respectively represented by m and n) to the decoder side in the form of syntax elements in the code stream.
Here, a codestream writing process of a first motion information index value (denoted by merge _ gpm _ idx0[ xCb ] [ yCb ]) and a second motion information index value (denoted by merge _ gpm _ idx1[ xCb ] [ yCb ]) is mainly described. After obtaining the reference option position information of each of the two A, B partitions m and n in the merge candidate list, the encoder side may assign a value to the syntax element according to the following formula:
merge_gpm_idx0[xCb][yCb]=m (1)
merge_gpm_idx1[xCb][yCb]=n-(merge_gpm_idx1[xCb][yCb]>=m)?1:0 (2)
then, the binary coding method carries out binarization, entropy coding and other processing on the code stream, and writes the code stream into the code stream for transmission. That is, on the encoder side, a Coding Unit (CU) layer syntax element description corresponding to the current block is as shown in table 2 below.
TABLE 2
Figure BDA0002443240330000071
Here, ae (v) represents a context-adaptive arithmetic entropy coding syntax element, and the merge _ GPM _ partition _ idx [ x0] [ y0] represents a partition mode index value in the GPM prediction mode, so as to obtain the angle and step size corresponding to the partition line in the current block by combining the table lookup in table 1.
In this way, after the motion information candidate list is obtained, the motion information of each partition can be further determined from the motion information candidate list, and the motion information index value of each partition is set to the index number value of the corresponding determined motion information in the motion information candidate list, so that the motion information index value is subjected to binarization and binary coding processes in the following process.
S404: respectively carrying out 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 comprises one or more binary symbols;
it should be noted that after obtaining the first motion information index value and the second motion information index value, first, it is required to perform binarization processing on the two motion information index values, so as to obtain two groups of symbol strings (i.e. a first symbol string and a second symbol string), where each group of symbol string may include one or more binary symbols; here, the binary symbol may take a value of 0 or 1.
It should be further noted that m and n represent reference option position information selected by A, B two partitions in the merge candidate list, and the value ranges of m and n are both 0-MaxNumGpmMergeCand-1; the MaxUMGpmMergeCand is expressed as the length of the GPM merge candidate list, the value of the length can be 2-6, and the length is specifically set by related syntax elements of an SPS layer. Before binarization processing, firstly, mapping operations of the formula (1) and the formula (2) are required to be carried out, so that the value range of the merge _ gpm _ idx0[ xCb ] [ yCb ] is still 0-MaxUMGpmMergeCand-1, and the value range of the merge _ gpm _ idx1[ xCb ] [ yCb ] is reduced to 0-MaxUMGpmMergeCand-2; here, merge _ gpm _ idx0[ xCb ] [ yCb ] and merge _ gpm _ idx1[ xCb ] [ yCb ] represent position information of mv information in a merge candidate list, which is selected by each of two partitions divided by a partition line in a current block. For merge _ gpm _ idx0[ xCb ] [ yCb ] and merge _ gpm _ idx1[ xCb ] [ yCb ], both can be binarized using truncated unary codes.
Taking MaxNumGpmMergeCand ═ 5 as an example, the binarization results of merge _ gpm _ idx0[ xCb ] [ yCb ] are shown in table 3, and the binarization results of merge _ gpm _ idx1[ xCb ] [ yCb ] are shown in table 4.
TABLE 3
merge_gpm_idx0[xCb][yCb] bit string
0 0
1 10
2 110
3 1110
4 1111
TABLE 4
merge_gpm_idx1[xCb][yCb] bit string
0 0
1 10
2 110
3 111
Further, due to the design of the merge candidate list, candidate position information with high possibility is placed at the front position of the candidate list, and small index values are conveniently allocated to the motion information of the candidates; therefore, the possibility that the merge _ gpm _ idx0[ xCb ] [ yCb ] and the merge _ gpm _ idx1[ xCb ] [ yCb ] are 0 is high, and fewer bits may be allocated to the position information index with a high probability in the subsequent entropy coding.
S405: entropy encoding first binary symbols of the first symbol string and the second symbol string, respectively, using different context probability models;
s406: entropy coding binary symbols except for the first binary symbol in the first symbol string and the second symbol string respectively by using a preset model;
s407: and writing bits obtained by coding the first symbol string and the second symbol string into a code stream.
It should be noted that there are two entropy coding modes of h.266/VVC, which are a context probability model-based binary coding mode and an equal probability model-based binary coding mode. Wherein, the Context probability Model (Context Model) can be referred to as Context Model for short, and is used for representing the probability of binary symbol "0" or "1" and updating the Context probability Model according to the value after binary symbol encoding in the binary arithmetic encoding process; the equiprobable Model, which may be called Bypass Model, applies the same probability to the binary symbol "0" or "1" during the binary arithmetic coding process, and does not need to update the equiprobable Model after the binary symbol is coded.
That is, after obtaining the binarized bits, binary arithmetic entropy coding (CABAC) based on a context probability model is generally employed. Here, CABAC selects a probability model for each bit, and arithmetic coding is performed using the probability model. In the current VVC, the first bit after binarization processing of merge _ GPM _ idx0[ xCb ] [ yCb ] and merge _ GPM _ idx1[ xCb ] [ yCb ] and the first bit of a common merge mode (non-GPM prediction mode) are entropy-coded by using the same context probability model, and the rest of bits are entropy-coded by using an equal probability model; however, the probability distribution characteristics of the first bit, the second bit and even each bit are not fully considered, for example, for the first bit, the first bit of merge _ gpm _ idx0[ xCb ] [ yCb ] and merge _ gpm _ idx1[ xCb ] [ yCb ] uses the same context probability model and shares the context probability model with merge _ idx, but the syntax element values do not have the same probability distribution, which results in the increase of the number of coded bits; for the second bit, taking table 3 as an example, the merge _ gpm _ idx0[ xCb ] [ yCb ] performs binarization processing using truncated unary code, where the result of binarization for merge _ gpm _ idx0[ xCb ] [ yCb ] ═ 1 is 10, the second bit is 0, and the second bits of binarization for merge _ gpm _ idx0[ xCb ] [ yCb ]: 2,3, and 4 are all 1; according to statistical probability analysis, the probability of merge _ gpm _ idx0[ xCb ] [ yCb ] ═ 1 is basically much smaller than the sum of the probabilities of merge _ gpm _ idx0[ xCb ] [ yCb ] ═ 2,3 and 4, and the number of coded bits is still increased because the current VVC still uses an equal probability model for entropy coding the second bit.
In the embodiment of the application, an encoder optimizes the encoding process of relative syntax merge _ GPM _ idx0[ x0] [ y0] and merge _ GPM _ idx1[ x0] [ y0] of a GPM prediction mode; specifically, as follows, the following description will be given,
firstly, a context probability model is independently designed for the first bit (bit) after binarization of merge _ gpm _ idx0[ xCb ] [ yCb ] and/or merge _ gpm _ idx1[ xCb ] [ yCb ], so that the probability of the bit can be effectively learned, and the coding performance of the bit is improved;
secondly, a context probability model is independently designed for the second bit (if the second bit exists) after binarization of merge _ gpm _ idx0[ xCb ] [ yCb ] and/or merge _ gpm _ idx1[ xCb ] [ yCb ] for entropy coding, so as to replace equal probability model entropy coding in the current VVC. Here, p (1) < (p (2) + p (3) + p (4)); where p (i) represents the probability of merge _ gpm _ idx0[ xCb ] [ yCb ] ═ i, i ═ 1,2,3, 4; the probability of 0 for the second bit is much smaller than the probability of 1 for the second bit, i.e. the second bit is not suitable for using an equiprobable model.
Specifically, in some embodiments, for S405, the entropy encoding the first binary symbol of the first symbol string and the second symbol string using different context probability models may include:
entropy coding a first binary symbol of the first symbol string using a first context probability model, and entropy coding a first binary symbol of the second symbol string using a second context probability model; wherein the first context probability model is different from the second context probability model.
That is, for the first binary symbol (i.e. the first bit), a context probability model can be designed for the first motion information index value (merge _ gpm _ idx0[ xCb ] [ yCb ]), and the context probability model is separated from the original common context probability model; or, a context probability model can be designed for the second motion information index value (merge _ gpm _ idx1[ xCb ] [ yCb ]), and the context probability model is separated from the original common context probability model; or, a context probability model can be separately designed for the first motion information index value (merge _ gpm _ idx0[ xCb ] [ yCb ]) and the second motion information index value (merge _ gpm _ idx1[ xCb ] [ yCb ]), and both of the first motion information index value and the second motion information index value are separated from the original common context probability model; the embodiments of the present application are not particularly limited.
Taking modified merge _ gpm _ idx0[ xCb ] [ yCb ] as an example, separating the modified merge _ gpm _ idx0[ xCb ] from the original common context probability model and independently designing a context probability model; specific text modification is as follows, table 5 shows an example that three merge _ idx [ ] [ ], merge _ gpm _ idx0[ ] [ ] and merge _ gpm _ idx1[ ] [ ] in the present VVC share the same context probability model, table 6 shows an example that merge _ gpm _ idx0[ ] provided by the embodiment of the present application is separated from the same context probability model shared by three, and table 7 shows an example that the remaining bits except the first bit of merge _ gpm _ idx0[ ] [ ] in the present VVC use an equal probability model, wherein "bypass" represents a bypass model, i.e. an equal probability model; table 8 shows an example of using a context probability model for the second bit of merge _ gpm _ idx0[ ] [ ] provided in an embodiment of the present application, table 9 shows an example of designing a parameter specification of a context probability model shared by three of VVCs at present, table 10 shows an example of designing a parameter specification of a context probability model shared by merge _ idx [ ] [ ] and merge _ gpm _ idx1[ ] [ ] ] provided in an embodiment of the present application, and table 11 shows an example of designing a parameter specification of a context probability model separately designed by merge _ gpm _ idx0[ ] [ ] ] provided in an embodiment of the present application.
TABLE 5
Figure BDA0002443240330000091
TABLE 6
Figure BDA0002443240330000092
TABLE 7
Figure BDA0002443240330000093
TABLE 8
Figure BDA0002443240330000101
TABLE 8.1
Figure BDA0002443240330000102
TABLE 8.2
Figure BDA0002443240330000103
TABLE 9
Figure BDA0002443240330000104
Watch 10
Figure BDA0002443240330000105
TABLE 11
Figure BDA0002443240330000106
Here, EP in the examples of the present application is expressed as equivalent probability. In addition to the merge _ gpm _ idx0[ xCb ] [ yCb ] modifications may be made to merge _ gpm _ idx1[ xCb ] [ yCb ] whose text modification for context probability model selection is the same as merge _ gpm _ idx0[ xCb ] [ yCb ]. Specifically, for table 8, it shows an example of using a context probability model for the second bit after merge _ gpm _ idx0[ ] [ ] binarization, which is provided in the embodiment of the present application; if the merge _ gpm _ idx1[ xCb ] [ yCb ] is modified so that the second bit after merge _ gpm _ idx1[ xCb ] [ yCb ] binarization uses a context probability model, an example of which is shown in Table 8.1; if the merge _ gpm _ idx0[ xCb ] [ yCb ] and merge _ gpm _ idx1[ xCb ] [ yCb ] are modified simultaneously so that both merge _ gpm _ idx0[ xCb ] [ yCb ] and merge _ gpm _ idx1[ xCb ] [ yCb ] binarized second bit use the context probability model, then an example is shown in Table 8.2.
Further, in the embodiment of the present application, each bit after binarization of merge _ gpm _ idx0[ xCb ] [ yCb ] and/or merge _ gpm _ idx1[ xCb ] [ yCb ] may be modified, and a context probability model that meets the bit probability distribution is separately designed, which will be described below separately for these cases.
Optionally, in some embodiments, different context probability models are designed for merge _ gpm _ idx0[ xCb ] [ yCb ] and/or merge _ gpm _ idx1[ xCb ] [ yCb ] only for the first bit after binarization, but the remaining bits after binarization except for the first bit still adopt equal probability models. Specifically, for S406, the entropy encoding, by using a preset model, binary symbols except for a first binary symbol in the first symbol string and the second symbol string respectively includes:
entropy encoding binary symbols within the first string of symbols and the second string of symbols, except for a first binary symbol, using a bypass model; and the bypass model representation utilizes an equiprobable model to carry out binary arithmetic entropy coding.
That is, merge _ gpm _ idx0[ xCb ] [ yCb ] is separated from the common context probability model for merge _ gpm _ idx0[ xCb ] [ yCb ], merge _ gpm _ idx1[ xCb ] [ yCb ] and merge _ idx, and a context probability model is designed for the first bit of merge _ gpm _ idx0[ xCb ] [ yCb ] alone, where 0 after initialization is an approximate rate sign and corresponds to the probability distribution of the first bit after binarization of merge _ gpm _ idx0[ xCb ] [ yCb ]. In addition, merge _ gpm _ idx1[ xCb ] [ yCb ] is separated from the common context probability model for merge _ gpm _ idx0[ xCb ] [ yCb ], merge _ gpm _ idx1[ xCb ] [ yCb ] and merge _ idx, and a context probability model is designed for the first bit of merge _ gpm _ idx1[ xCb ] [ yCb ] alone, wherein 0 is an approximate rate symbol after initialization and corresponds to the probability distribution of the first bit after binarization of merge _ gpm _ idx1[ xCb ] [ yCb ].
Illustratively, the specific text modifications are as follows, and table 12 shows that merge _ idx [ ] [ ] in the present VVC, table 13 shows an example in which the merge _ gpm _ idx0[ ] [ ] and merge _ gpm _ idx1[ ] [ ] share the same context probability model, table 14 shows an example in which both merge _ gpm _ idx0[ ] [ ] and merge _ gpm _ idx1[ ] [ ] are separated from the same context probability model, table 15 shows an example in which the merge _ idx [ ] used by the context probability model, table 16 shows an example in which the merge _ gpm _ idx0[ ], and table 17 shows an example in which the merge _ gpm _ idx1[ ] [ ].
TABLE 12
Figure BDA0002443240330000111
Watch 13
Figure BDA0002443240330000112
TABLE 14
Figure BDA0002443240330000113
Watch 15
Figure BDA0002443240330000114
TABLE 16
Figure BDA0002443240330000115
TABLE 17
Figure BDA0002443240330000116
Optionally, in some embodiments, different context probability models are designed for merge _ gpm _ idx0[ xCb ] [ yCb ] and/or merge _ gpm _ idx1[ xCb ] [ yCb ], not only for the first bit after binarization, but also for the second bit after binarization, but the remaining bits after binarization except for the first and second bits still employ equal probability models. Specifically, for S406, the entropy encoding, by using a preset model, binary symbols except for a first binary symbol in the first symbol string and the second symbol string respectively includes:
entropy encoding a second binary symbol of the first symbol string and the second symbol string using different context probability models;
entropy encoding binary symbols, except for a first binary symbol and a second binary symbol, in the first symbol string and the second symbol string by using a bypass model; and the bypass model representation utilizes an equiprobable model to carry out binary arithmetic entropy coding.
Further, entropy encoding the second binary symbol of the first symbol string and the second symbol string using different context probability models may include:
entropy coding a second binary symbol of the first symbol string by using a third context probability model, and entropy coding a second binary symbol of the second symbol string by using a fourth context probability model; wherein the third context probability model is different from the fourth context probability model.
That is, merge _ gpm _ idx0[ xCb ] [ yCb ] is separated from the common context probability model for merge _ gpm _ idx0[ xCb ] [ yCb ], merge _ gpm _ idx1[ xCb ] [ yCb ] and merge _ idx, and a context probability model is designed for the first bit of merge _ gpm _ idx0[ xCb ] [ yCb ] alone; meanwhile, a context model is also designed for the second bit of merge _ gpm _ idx0[ xCb ] [ yCb ] separately. In addition, merge _ gpm _ idx1[ xCb ] [ yCb ] is separated from a merge _ gpm _ idx0[ xCb ] [ yCb ], merge _ gpm _ idx1[ xCb ] [ yCb ] and merge _ idx shared context probability model, and a context model is designed for the first bit of merge _ gpm _ idx1[ xCb ] [ yCb ] independently; meanwhile, a context model is also designed for the second bit of merge _ gpm _ idx1[ xCb ] [ yCb ] separately.
Illustratively, the specific text modification is as follows, table 18 shows an example that three of merge _ idx [ ] [ ], merge _ gpm _ idx0[ ] [ ] and merge _ gpm _ idx1[ ] in the present VVC share the same context probability model, table 19 shows an example that merge _ gpm _ idx0[ ] and merge _ gpm _ idx1[ ] provided by the embodiments of the present application are all separated from the shared context probability model, table 20 shows an example that all the remaining bits except the first bit of merge _ gpm _ idx0[ ] and merge _ gpm _ idx1[ ] in the present VVC use the equal probability model, table 21, table 21.1 and table 21.2 show an example that the third bit of merge _ gpm _ idx0[ ] and/or merge _ 1[ ] provided by the embodiments of the present application are all designed using the same context probability model, and table 22 shows an example that the third bit of merge _ gpm _ idx [ ], table 23 shows an example of parameter specification design of the context probability model used by merge _ idx [ ] [ ] provided in an embodiment of the present application, table 24 shows an example of parameter specification design of the context probability model used by merge _ gpm _ idx0[ ] [ ], and table 25 shows an example of parameter specification design of the context probability model used by merge _ gpm _ idx1[ ] [ ] provided in an embodiment of the present application.
Watch 18
Figure BDA0002443240330000121
Watch 19
Figure BDA0002443240330000122
Watch 20
Figure BDA0002443240330000123
TABLE 21
Figure BDA0002443240330000131
TABLE 21.1
Figure BDA0002443240330000132
TABLE 21.2
Figure BDA0002443240330000133
TABLE 22
Figure BDA0002443240330000134
TABLE 23
Figure BDA0002443240330000135
Watch 24
Figure BDA0002443240330000136
TABLE 25
Figure BDA0002443240330000137
Optionally, in some embodiments, different context probability models may be designed for each bit after binarization for merge _ gpm _ idx0[ xCb ] [ yCb ] and/or merge _ gpm _ idx1[ xCb ] [ yCb ]. Specifically, the method may further include:
entropy encoding each binary symbol in the first symbol string and the second symbol string in sequence using different context probability models.
That is, merge _ gpm _ idx0[ xCb ] [ yCb ] is separated from the common context probability model for merge _ gpm _ idx0[ xCb ] [ yCb ], merge _ gpm _ idx1[ xCb ] [ yCb ] and merge _ idx, and the context probability model is designed for each bit after the merge _ gpm _ idx0[ xCb ] [ yCb ] is binarized. In addition, merge _ gpm _ idx1[ xCb ] [ yCb ] is separated from a common context probability model of merge _ gpm _ idx0[ xCb ] [ yCb ], merge _ gpm _ idx1[ xCb ] [ yCb ] and merge _ idx, and the context probability model is designed for each bit after the merge _ gpm _ idx1[ xCb ] [ yCb ] is binarized.
Illustratively, the specific text modification is as follows, table 26 shows an example in which three of merge _ idx [ ], merge _ gpm _ idx0[ ] [ ] and merge _ gpm _ idx1[ ] share the same context probability model in the present VVC, table 27 shows an example in which all three of merge _ gpm _ idx0[ ] and merge _ gpm _ idx1[ ] [ ] provided by the embodiment of the present application are separated from the common context probability model, table 28 shows an example in which all the remaining bits except the first bit of merge _ gpm _ idx0[ ] and merge _ gpm _ idx1[ ] in the present VVC use the equal probability model, table 29 shows an example in which all the remaining bits except the first bit of merge _ gpm _ idx0[ ] and merge _ gpm _ 1[ ] provided by the embodiment of the present application use the same context probability model, and table 30 shows an example in which all the common context probability model is designed in the present VVC, table 31 shows an example of parameter specification design of the context probability model used by merge _ idx [ ] [ ] provided in the embodiment of the present application, table 32 shows an example of parameter specification design of the context probability model used by merge _ gpm _ idx0[ ] [ ] ] provided in the embodiment of the present application, and table 33 shows an example of parameter specification design of the context probability model used by merge _ gpm _ idx1[ ] [ ] ] provided in the embodiment of the present application.
Watch 26
Figure BDA0002443240330000141
Watch 27
Figure BDA0002443240330000142
Watch 28
Figure BDA0002443240330000143
Watch 29
Figure BDA0002443240330000144
Watch 30
Figure BDA0002443240330000145
Watch 31
Figure BDA0002443240330000146
Watch 32
Figure BDA0002443240330000147
Watch 33
Figure BDA0002443240330000148
Optionally, in some embodiments, a bypass model may be used for each bit after binarization for merge _ gpm _ idx0[ xCb ] [ yCb ] and/or merge _ gpm _ idx1[ xCb ] [ yCb ]. Specifically, the method may further include:
entropy encoding each binary symbol in the first symbol string and the second symbol string in sequence using a bypass model.
That is, all bits after merge _ gpm _ idx0[ xCb ] [ yCb ] binarization use the bypass coding mode, and all bits after merge _ gpm _ idx1[ xCb ] [ yCb ] binarization use the bypass coding mode.
Illustratively, the specific text modification is as follows, table 34 shows an example that merge _ gpm _ idx0[ ] [ ] and merge _ gpm _ idx1[ ] [ ] provided by the embodiment of the present application are both separated from a common context probability model, and only merge _ idx [ ] [ ] uses the context probability model; table 35 shows an example in which all the remaining bits except the first bit of merge _ gpm _ idx0[ ] and merge _ gpm _ idx1[ ] in the present VVC use an equal probability model, table 36 shows an example in which each bit of merge _ gpm _ idx0[ ] and merge _ gpm _ idx1[ ] provided in the embodiment of the present application uses a bypass model, and table 37 shows an example in which merge _ idx [ ] provided in the embodiment of the present application uses a parameter specification design of a context probability model.
Watch 34
Figure BDA0002443240330000151
Watch 35
Figure BDA0002443240330000152
Watch 36
Figure BDA0002443240330000153
Watch 37
Figure BDA0002443240330000154
Optionally, in some embodiments, in addition to modifying the context probability model when the bits are encoded after binarization, the processing manner for binarization may be optimized.
Specifically, the embodiment of the present application further proposes to modify the binarization of the relevant syntax element merge _ GPM _ idx0[ xCb ] [ yCb ] in the GPM prediction mode, i.e. to replace table 3 above. For each bit of the probabilistic model, entropy coding can be performed using the same context model as the current VVC (i.e., the first bit can select a common context probabilistic model for merge _ gpm _ idx0[ xCb ] [ yCb ], merge _ gpm _ idx1[ xCb ] [ yCb ], merge _ idx, and other bit selection equal probabilistic models).
Taking MaxNumGpmMergeCand ═ 5 as an example, by modifying the binarization manner of merge _ gpm _ idx0[ xCb ] [ yCb ], the obtained binarization results are shown in table 38 below; here, the bold numbers indicate that the bits are entropy-encoded using a context probability model, and the underlined numbers indicate that the bits are entropy-encoded using an equiprobable model.
Watch 38
merge_gpm_idx0[xCb][yCb] bit string
0 0
1 100
2 101
3 110
4 111
The entropy coding method for MaxNumGpmMergeCand 2,3,4, and 6 is the same as that for MaxNumGpmMergeCand 5, and is not changed. As shown below, table 39 shows a binarization result of MaxNumGpmMergeCand ═ 2 according to an embodiment of the present application, table 40 shows a binarization result of MaxNumGpmMergeCand ═ 3 according to an embodiment of the present application, table 41 shows a binarization result of MaxNumGpmMergeCand ═ 4 according to an embodiment of the present application, and table 42 shows a binarization result of MaxNumGpmMergeCand ═ 6 according to an embodiment of the present application.
Watch 39
merge_gpm_idx0[xCb][yCb] bit string
0 0
1 1
Watch 40
merge_gpm_idx0[xCb][yCb] bit string
0 0
1 10
2 11
Table 41
merge_gpm_idx0[xCb][yCb] bit string
0 0
1 10
2 110
3 111
Watch 42
merge_gpm_idx0[xCb][yCb] bit string
0 0
1 100
2 101
3 1100
4 1101
5 1110
Illustratively, the specific text modification is as follows, table 43 shows an example of merge _ gpm _ idx0[ ] [ ] Binarization processing manner in the present VVC, and table 44 shows an example of merge _ gpm _ idx0[ ] [ ] Binarization processing manner provided in the embodiment of the present application, where TR denotes a Truncated Rice, which is a Binarization processing method.
Watch 43
Figure BDA0002443240330000161
Watch 44
Figure BDA0002443240330000162
Further, for the binarization processing of merge _ gpm _ idx0[ ] [ ], the input of this processing procedure is a binarization request of syntax elements merge _ gpm _ idx0[ ] [ ] and cMax; the output of this processing is the binarization result of the syntax element, and the binarization processing manner of merge _ gpm _ idx0[ ] [ ] is as shown in table 45.
TABLE 45
Figure BDA0002443240330000171
Further, in some embodiments, on the basis of the binarization processing manner provided in the foregoing embodiments for modifying the GPM-related syntax element merge _ GPM _ idx0[ xCb ] [ yCb ], the context model (the context probability model for modifying the first bit, the second bit, or each bit) proposed in the embodiments of the present application may be used for the probability model for each bit.
Specifically, the binarization processing may be performed in the manner of the above-described tables 43, 44 and 45, the text selected by the probability model is modified as follows, table 46 shows an example that three merge _ idx [ ], merge _ gpm _ idx0[ ] [ ] and merge _ gpm _ idx1[ ] share the same context probability model in the present VVC, table 47 shows an example that merge _ gpm _ idx0[ ] provided by the embodiment of the present application is separated from the same context probability model shared by three, table 48 shows a parameter specification design example that three share the same context probability model in the present VVC, table 49 shows a parameter specification design example that merge _ idx [ ] and merge _ gpm _ idx1[ ] [ ] provided by the embodiment of the present application share the context probability model, and table 50 shows a parameter specification design example that merge _ gpm _ idx0[ ] provided by the embodiment of the present application individually designs the context probability model.
TABLE 46
Figure BDA0002443240330000172
Watch 47
Figure BDA0002443240330000173
Watch 48
Figure BDA0002443240330000174
Watch 49
Figure BDA0002443240330000175
Watch 50
Figure BDA0002443240330000176
It can be understood that the embodiment of the present application is to fully utilize the probability distribution characteristics of data, and design a context probability model for the first bit, the second bit or each bit after binarization of merge _ gpm _ idx0[ xCb ] [ yCb ] and/or merge _ gpm _ idx1[ xCb ] [ yCb ], respectively, so that the code word used in actual encoding is less than 1 bit, and the number of bits required for encoding can be reduced, thereby improving the encoding performance.
The embodiment provides an encoding method applied to an encoder. Determining a prediction mode parameter of a current block; when the prediction mode parameter indicates that a Geometric Partition Mode (GPM) is adopted to determine the inter prediction value of the current block, determining two partitions of the current block; determining the motion information of the two partitions from a motion information candidate list, setting a first motion information index value as an index sequence number value of the motion information of the first partition in the motion information candidate list, and setting a second motion information index value as an index sequence number value of the motion information of the second partition in the motion information candidate list; respectively carrying out 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 comprises one or more binary symbols; entropy encoding first binary symbols of the first symbol string and the second symbol string, respectively, using different context probability models; entropy coding binary symbols except for the first binary symbol in the first symbol string and the second symbol string respectively by using a preset model; and writing bits obtained by coding the first symbol string and the second symbol string into a code stream. Therefore, the probability distribution characteristics of the motion information index value of the first partition and/or the motion information index value of the second partition in the first bit, the second bit or each bit after binarization are fully utilized, and a corresponding upper and lower type probability model is designed for the motion information index value, so that the number of bits required by coding can be reduced, the coding performance is improved, and the purpose of improving the coding efficiency is achieved.
Based on the above application scenario example of fig. 3B, refer to fig. 6, which shows a flowchart of a decoding method provided in an embodiment of the present application. As shown in fig. 6, the method may include:
s601: analyzing the code stream to obtain the prediction mode parameter of the current block;
it should be noted that the image to be decoded may be divided into a plurality of image blocks, and the image block to be decoded currently may be referred to as a decoded block. Here, each decoding block may include a first image component, a second image component, and a third image component; and the current block is a decoding block to be subjected to first image component, second image component or third image component prediction in the image to be decoded.
It should be noted that the prediction mode parameter indicates the prediction mode adopted by the current block and the parameter related to the prediction mode. The prediction modes generally include inter-frame prediction modes, conventional intra-frame prediction modes, non-conventional intra-frame prediction modes, and the like, and the inter-frame prediction modes include conventional inter-frame prediction modes, GPM prediction modes, and the like. That is, the encoder selects the optimal prediction mode to pre-code the current block, and the prediction mode of the current block can be determined in the process, so that the corresponding prediction mode parameters are written into the code stream and transmitted to the decoder by the encoder.
In this way, on the decoder side, the prediction mode parameter of the current block can be obtained by parsing the code stream, and whether the current block uses the GPM prediction mode is determined according to the obtained prediction mode parameter.
S602: when the prediction mode parameter indicates that a Geometric Partition Mode (GPM) is adopted to determine the inter prediction value of the current block, determining two partitions of the current block;
s603: analyzing a code stream, and determining a first symbol string and a second symbol string corresponding to motion information index values of two partitions of the current block, wherein the first symbol string and the second symbol string comprise one or more binary symbols, and the method comprises the following steps: analyzing the code stream by using different context probability models to obtain a first binary symbol of the first symbol string and a first binary symbol of the second symbol string; continuously analyzing the code stream by using a preset model to obtain binary symbols except the first binary symbol in the first symbol string and the second symbol string;
wherein the first symbol string and the second symbol string represent one or more binary symbols to which motion information index values of two partitions of the current block are respectively associated. Here, the first symbol string includes one or more binary symbols, which are associated with a first motion information index value (denoted by merge _ gpm _ idx0[ xCb ] [ yCb ]) corresponding to the first partition of the current block; the second symbol string also includes one or more binary symbols associated with a second motion information index value (denoted by merge _ gpm _ idx1[ xCb ] [ yCb ]) corresponding to the second partition of the current block.
It should be noted that, if the prediction mode parameter indicates that the current block uses the GPM prediction mode, the code stream also needs to be continuously parsed to obtain the angle index value and the step index value of the current block. Specifically, when the prediction mode parameter indicates that the current block adopts the GPM to determine the inter prediction value of the current block, the method may further include:
analyzing the code stream to obtain a partition mode index value of the current block;
based on the dividing mode index value, inquiring an angle index value and a step length index value corresponding to the dividing mode index value from a preset mapping table; the preset mapping table is used for indicating the corresponding relation among the division mode index value, the angle index value and the step length index;
and determining the inquired angle index value and step index value as the angle index value and step index value corresponding to the dividing line in the current block.
That is to say, when the prediction mode parameter indicates that the current block uses the GPM prediction mode, the code stream may be further analyzed to obtain a partition mode index value of the current block, which is represented by merge _ GPM _ partition _ idx, and in combination with the preset mapping table shown in table 1, a table may be looked up to obtain a corresponding angle index value (represented by angleIdx) and step index value (represented by distanceIdx). In this way, after obtaining the angle index value and the step index value, the partition line of the current block may be determined and divided, so that two partitions of the current block, such as the first partition and the second partition, may be obtained and may be represented by an a partition and a B partition.
Further, on the decoder side, two groups of symbol strings, namely the first symbol string and the second symbol string, can also be obtained by analyzing the code stream. The code stream is entropy decoded using the same arithmetic coding rules of the context probability model as on the encoder side to obtain binarized bits. In this process, the decoder also maintains a probability model consistent with the encoder side, and performs binary arithmetic decoding using the probability model.
The first bits binarized for merge _ gpm _ idx0[ x0] [ y0] and merge _ gpm _ idx1[ x0] [ y0] can be decoded using different context probability models. Specifically, in some embodiments, the parsing the code stream using different context probability models to obtain the first binary symbol of the first symbol string and the first binary symbol of the second symbol string may include:
performing binary arithmetic entropy decoding by using a first context probability model to obtain a first binary symbol of the first symbol string;
performing binary arithmetic entropy decoding by using a second context probability model to obtain a first binary symbol of the second symbol string; wherein the first context probability model is different from the second context probability model.
Optionally, for merge _ gpm _ idx0[ xCb ] [ yCb ] and/or merge _ gpm _ idx1[ xCb ] [ yCb ], different context probability models are designed only for the first bit after binarization, but the remaining bits except the first bit after binarization still adopt equal probability models. In some embodiments, the continuously parsing the code stream using the preset model to obtain the binary symbols in the first symbol string and the second symbol string except for the first binary symbol includes:
analyzing the code stream by using a bypass model, and sequentially obtaining binary symbols except the first binary symbol in the first symbol string and the second symbol string; wherein the bypass model representation utilizes an equiprobable model for binary arithmetic entropy decoding.
Optionally, for merge _ gpm _ idx0[ xCb ] [ yCb ] and/or merge _ gpm _ idx1[ xCb ] [ yCb ], different context probability models are designed not only for the first bit after binarization, but also for the second bit after binarization, but the remaining bits after binarization except for the first bit and the second bit still adopt equal probability models. In some embodiments, the continuously parsing the code stream using the preset model to obtain the binary symbols in the first symbol string and the second symbol string except for the first binary symbol includes:
analyzing the code stream by using different context probability models to obtain a second binary symbol of the first symbol string and the second symbol string;
continuously analyzing the code stream by using a bypass model, and sequentially obtaining binary symbols except a first binary symbol and a second binary symbol in the first symbol string and the second symbol string; wherein the bypass model representation utilizes an equiprobable model for binary arithmetic entropy decoding.
Further, the continuously analyzing the code stream by using the preset model to obtain the binary symbols in the first symbol string and the second symbol string except for the first binary symbol may include:
performing binary arithmetic entropy decoding by using a third context probability model to obtain a second binary symbol of the first symbol string;
performing binary arithmetic entropy decoding by using a fourth context probability model to obtain a second binary symbol of the second group of symbol strings; wherein the third context probability model is different from the fourth context probability model.
Optionally, for merge _ gpm _ idx0[ xCb ] [ yCb ] and/or merge _ gpm _ idx1[ xCb ] [ yCb ], different context probability models can be designed for each bit after binarization. In some embodiments, the method may further comprise:
and analyzing the code stream by using different context probability models to obtain each binary symbol in the first symbol string and the second symbol string.
Optionally, a bypass model may be used for each bit after binarization for merge _ gpm _ idx0[ xCb ] [ yCb ] and/or merge _ gpm _ idx1[ xCb ] [ yCb ]. In some embodiments, the method may further comprise:
and analyzing the code stream by using a bypass model to obtain each binary symbol in the first symbol string and the second symbol string.
In this way, the code stream can be entropy decoded by using the arithmetic coding rule of the context probability model as the encoder side, and the first symbol string and the second symbol string can be obtained by analysis; from the first symbol string and the second symbol string, binarization inverse processing may be subsequently performed thereon, respectively.
S604: determining a first numerical value and a second numerical value corresponding to the first symbol string and the second symbol string according to a preset binarization model, and setting the first numerical value and the second numerical value as a first motion information index value and a second motion information index value respectively;
it should be noted that the binarization model is used for converting the symbol string into a corresponding numerical value; specifically, the same tables 3 and 4 as the encoder may be utilized to restore binary bits to corresponding motion information index values, namely, merge _ gpm _ idx0[ xCb ] [ yCb ] and merge _ gpm _ idx1[ xCb ] [ yCb ].
S605: determining, based on a motion information candidate list, motion information in the motion information candidate list indicated by the first motion information index value as motion information corresponding to a first partition, and determining motion information in the motion information candidate list indicated by the second motion information index value as motion information of a second partition;
it should be noted that the motion information at least includes a motion vector and a reference picture index. Since the motion information of the neighboring block 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 block, so that the motion information candidate list can be obtained. Specifically, in some embodiments, the method may further comprise:
constructing the motion information candidate list using motion information of neighboring blocks of the current block.
Here, the manner in which the decoder side constructs the motion information candidate list coincides with the process of constructing the list in the normal merge mode. The construction sequence is as follows: upper adjacent block B1Left adjacent block A1Upper right adjacent block B0Left lower adjacent block A0Upper left adjacent block B2The reference frame corresponds to the position block col, the history reference block his, the average motion vector mv avg of the first and second candidate mvs, and the zero motion vector 0. That is, the construction of the motion information candidate list on the decoder side coincides with the construction of the motion information candidate list on the encoder side.
Because the code stream transmitted by the encoder comprises the reference position information (represented by merge _ gpm _ idx0[ xCb ] [ yCb ] and merge _ gpm _ idx1[ xCb ] [ yCb ]) respectively selected by the partition A and the partition B in the merge candidate list, the partition A is firstly carried out and then the partition B is carried out), the merge _ gpm _ idx0[ xCb ] [ yCb ] can be obtained by analyzing the code stream, the position of mv of the partition A in the merge candidate list is represented, and the position of mv of the partition A in the merge candidate list is indicated, so that the code stream is ordered to be transmitted by the encoder
m=merge_gpm_idx0[xCb][yCb] (3)
Merge _ gpm _ idx1[ xCb ] [ yCb ] can be obtained by analyzing the code stream, and represents the position of mv of the partition B in the merge candidate list, because the position of mv of the partition B in the merge candidate list can be reduced by 1 because the partition A selects the option at the front position first, namely, order
n=merge_gpm_idx1 [xCb][yCb]+(merge_gpm_idx1[xCb][yCb]>=m)?1:0 (4)
Where n represents the actual position of mv selected by the B partition in the merge list. After M and n are obtained, making M ═ mergeCandList [ M ], and taking the M-th item out of the merge candidate list for the mv construction of the A partition; let N be mergeCandList [ N ], take the nth entry from the merge candidate list for mv construction of the B partition.
It should also be noted that the decoder side does not need to perform motion estimation, and after obtaining M and N, can be used to determine the inter prediction value of the current block.
S606: and determining the inter-frame prediction value of the current block according to the motion information corresponding to the first partition and the motion information of the second partition.
It should be noted that after parsing and binarization inverse processing are performed on the code stream, motion information corresponding to the first partition and motion information of the second partition of the current block may be obtained; and then, according to the motion information corresponding to the first partition and the motion information of the second partition, the inter-frame prediction value of the current block can be determined.
Exemplarily, refer to fig. 7, which shows a general architecture diagram of a GPM prediction processing flow provided by an embodiment of the present application. In fig. 7, 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, where the input parameters include: the pixel position of the current block, taking the luminance component as an example, can be described by a luma location (xCb, yCb); the size information of the current block can be described by cbWidth and cbHeight; 1/16 mv information of luminance components of pixel precision, which can be represented by 1/16fractional-sample acuracy mvA and mvB; 1/32 mv information of chroma components of pixel precision, which can be represented by 1/32fractional-sample acuracy mvCA and mvCB; the reference frame corresponding to mv information can be represented by refIdxA and refIdxB; the list ID selected by mv information is represented by predListFlaga and predListFlagb. The processing module 702 comprises 3 steps: first, a reference frame list (denoted by refPicLN), a sub-pixel prediction pixel value (denoted by predSamplesLN), N being A or B, and the sub-pixel prediction pixel value being 14-bit depth are derived for three image components (including L component, Cb component, and Cr component); secondly, deducing the angle and step length of the dividing line; again, weighted prediction pixel values (denoted predSamples) are derived for the three image components; finally, mv information is stored for subsequent prediction of mvN, refIdxN, and predlistflag. The output module 703 is used for outputting the predicted pixel values, and may include predicted pixel values corresponding to three image components, which are represented by predSampleL, predSampleCb, and predsamplerc, respectively. Here, after determining the motion information corresponding to the first partition and the motion information of the second partition, a first prediction value of the first partition of the current block and a second prediction value of the second partition of the current block may be determined; after 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 be used for carrying out weighted fusion on all pixel points in the current block, and therefore the interframe predicted value of the current block is obtained.
The embodiment provides a decoding method applied to a decoder. Analyzing the code stream to obtain the prediction mode parameter of the current block; when the prediction mode parameter indicates that a Geometric Partition Mode (GPM) is adopted to determine the inter prediction value of the current block, determining two partitions of the current block; analyzing a code stream, and determining a first symbol string and a second symbol string corresponding to motion information index values of two partitions of the current block, wherein the first symbol string and the second symbol string comprise one or more binary symbols, and the method comprises the following steps: analyzing the code stream by using different context probability models to obtain a first binary symbol of the first symbol string and a first binary symbol of the second symbol string; continuously analyzing the code stream by using a preset model to obtain binary symbols except the first binary symbol in the first symbol string and the second symbol string; determining a first numerical value and a second numerical value corresponding to the first symbol string and the second symbol string according to a preset binarization model, and setting the first numerical value and the second numerical value as a first motion information index value and a second motion information index value respectively; determining, based on a motion information candidate list, motion information in the motion information candidate list indicated by the first motion information index value as motion information corresponding to a first partition, and determining motion information in the motion information candidate list indicated by the second motion information index value as motion information of a second partition; and determining the inter-frame prediction value of the current block according to the motion information corresponding to the first partition and the motion information of the second partition. Therefore, the probability distribution characteristics of the motion information index value of the first partition and/or the motion information index value of the second partition in the first bit, the second bit or each bit after binarization are fully utilized, and a corresponding upper and lower type probability model is designed for the motion information index value, so that the number of bits required by coding can be reduced, the decoding performance is improved, and the purpose of improving the decoding efficiency is achieved.
Based on the same inventive concept of the foregoing embodiment, refer to fig. 8, which shows a schematic structural diagram of an encoder 80 according to an embodiment of the present application. As shown in fig. 8, the encoder 80 may include: a first determination unit 801, a setting unit 802, a processing unit 803, and an encoding unit 804; wherein the content of the first and second substances,
a first determination unit 801 configured to determine a prediction mode parameter of a current block;
a first determining unit 801, further configured to determine two partitions of a current block in an image to be encoded when the prediction mode parameter indicates that an inter prediction value of the current block is determined using a geometric partition mode GPM;
a setting unit 802, configured to determine motion information of the two partitions from the motion information candidate list, and set a first motion information index value as an index sequence number value of the motion information of the first partition in the motion information candidate list, and set a second motion information index value as an index sequence number value of the motion information of the second partition in the motion information candidate list;
a processing unit 803, configured to perform binarization processing on the first motion information index value and the second motion information index value respectively to obtain a first symbol string and a second symbol string; wherein the symbol string comprises one or more binary symbols;
an encoding unit 804 configured to entropy encode first binary symbols of the first symbol string and the second symbol string respectively using different context probability models; entropy coding binary symbols except for the first binary symbol in the first symbol string and the second symbol string respectively by using a preset model; and writing bits obtained by encoding the first symbol string and the second symbol string into a code stream.
In some embodiments, referring to fig. 8, the encoder 80 may further include a first constructing unit 805 configured to construct the motion information candidate list using motion information of neighboring blocks of the current block.
In some embodiments, the encoding unit 804 is specifically configured to entropy encode the first binary symbol of the first symbol string by using a first context probability model, and entropy encode the first binary symbol of the second symbol string by using a second context probability model; wherein the first context probability model is different from the second context probability model.
In some embodiments, the encoding unit 804 is further configured to entropy encode binary symbols within the first symbol string and the second symbol string except for a first binary symbol using a bypass model; and the bypass model representation utilizes an equiprobable model to carry out binary arithmetic entropy coding.
In some embodiments, the encoding unit 804 is further configured to entropy encode a second binary symbol of the first symbol string and the second symbol string using different context probability models; entropy encoding binary symbols, except for a first binary symbol and a second binary symbol, in the first symbol string and the second symbol string by using a bypass model; and the bypass model representation utilizes an equiprobable model to carry out binary arithmetic entropy coding.
Further, the encoding unit 804 is specifically configured to perform entropy encoding on a second binary symbol of the first symbol string by using a third context probability model, and perform entropy encoding on a second binary symbol of the second symbol string by using a fourth context probability model; wherein the third context probability model is different from the fourth context probability model.
In some embodiments, the encoding unit 804 is further configured to entropy encode each binary symbol in the first symbol string and the second symbol string using different context probability models.
In some embodiments, the encoding unit 804 is further configured to entropy encode each binary symbol in the first symbol string and the second symbol string using a bypass model.
In some embodiments, the first determining unit 801 is specifically configured to perform pre-coding processing on the current block by using multiple prediction modes, and obtain a rate-distortion cost value corresponding to each prediction mode; and selecting a minimum rate distortion cost value from the obtained multiple rate distortion cost values, and determining a prediction mode corresponding to the minimum rate distortion cost value as a prediction mode parameter of the current block.
It is understood that in the embodiments of the present application, a "unit" may be a part of a circuit, a part of a processor, a part of a program or software, and the like, and may also be a module, and may also be non-modular. Moreover, each component in the embodiment may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit. The integrated unit can be realized in a form of hardware or a form of a software functional module.
Based on the understanding that the technical solution of the present embodiment essentially or a part contributing to the prior art, or all or part of the technical solution may be embodied in the form of a software product stored in a storage medium, and include several instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) or a processor (processor) to execute all or part of the steps of the method of the present embodiment. And the aforementioned storage medium includes: various media capable of storing program codes, such as a usb disk, a removable hard disk, a Read Only Memory (ROM), a Random Access Memory (RAM), a magnetic disk, or an optical disk.
Accordingly, the present embodiment provides a computer storage medium applied to the encoder 80, and the computer storage medium stores an encoding program, and the encoding program realizes the method of any one of the foregoing embodiments when executed by the first processor.
Based on the above composition of the encoder 80 and the computer storage medium, referring to fig. 9, it shows a specific hardware structure example of the encoder 80 provided in the embodiment of the present application, which may include: a first communication interface 901, a first memory 902, and a first processor 903; the various components are coupled together by a first bus system 904. It is understood that the first bus system 904 is used to enable communications among the components. The first bus system 904 includes a power bus, a control bus, and a status signal bus in addition to a data bus. For clarity of illustration, however, the various buses are labeled as first bus system 904 in fig. 9. Wherein the content of the first and second substances,
a first communication interface 901, configured to receive and transmit signals in a process of receiving and transmitting information with other external network elements;
a first memory 902 for storing a computer program capable of running on the first processor 903;
a first processor 903 for performing, when running the computer program, the following:
determining a prediction mode parameter of a current block;
when the prediction mode parameter indicates that a Geometric Partition Mode (GPM) is adopted to determine the inter prediction value of the current block, determining two partitions of the current block;
determining the motion information of the two partitions from a motion information candidate list, setting a first motion information index value as an index sequence number value of the motion information of the first partition in the motion information candidate list, and setting a second motion information index value as an index sequence number value of the motion information of the second partition in the motion information candidate list;
respectively carrying out 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 comprises one or more binary symbols;
entropy encoding first binary symbols of the first symbol string and the second symbol string, respectively, using different context probability models;
entropy coding binary symbols except for the first binary symbol in the first symbol string and the second symbol string respectively by using a preset model;
and writing bits obtained by coding the first symbol string and the second symbol string into a code stream.
It will be appreciated that the first memory 902 in embodiments of the subject application can be either volatile memory or nonvolatile memory, or can include both volatile and nonvolatile memory. The non-volatile Memory may be a Read-Only Memory (ROM), a Programmable ROM (PROM), an Erasable PROM (EPROM), an Electrically Erasable PROM (EEPROM), or a flash Memory. Volatile Memory can be Random Access Memory (RAM), which acts as external cache Memory. By way of illustration and not limitation, many forms of RAM are available, such as Static random access memory (Static RAM, SRAM), Dynamic Random Access Memory (DRAM), Synchronous Dynamic random access memory (Synchronous DRAM, SDRAM), Double Data Rate Synchronous Dynamic random access memory (ddr Data Rate SDRAM, ddr SDRAM), Enhanced Synchronous SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), and Direct Rambus RAM (DRRAM). The first memory 902 of the systems and methods described herein is intended to comprise, without being limited to, these and any other suitable types of memory.
The first processor 903 may be an integrated circuit chip having signal processing capability. In implementation, the steps of the above method may be performed by integrated logic circuits of hardware or instructions in the form of software in the first processor 903. The first Processor 903 may be a general-purpose Processor, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), an off-the-shelf Programmable Gate Array (FPGA) or other Programmable logic device, discrete Gate or transistor logic device, or discrete hardware components. The various methods, steps, and logic blocks disclosed in the embodiments of the present application may be implemented or performed. A general purpose processor may be a microprocessor or the processor may be any conventional processor or the like. The steps of the method disclosed in connection with the embodiments of the present application may be directly implemented by a hardware decoding processor, or implemented by a combination of hardware and software modules in the decoding processor. The software module may be located in ram, flash memory, rom, prom, or eprom, registers, etc. storage media as is well known in the art. The storage medium is located in the first memory 902, and the first processor 903 reads information in the first memory 902, and completes the steps of the method in combination with hardware thereof.
It is to be understood that the embodiments described herein may be implemented in hardware, software, firmware, middleware, microcode, or any combination thereof. For a hardware implementation, the Processing units may be implemented within one or more Application Specific Integrated Circuits (ASICs), Digital Signal Processors (DSPs), Digital Signal Processing Devices (DSPDs), Programmable Logic Devices (PLDs), Field Programmable Gate Arrays (FPGAs), general purpose processors, controllers, micro-controllers, microprocessors, other electronic units configured to perform the functions described herein, or a combination thereof. For a software implementation, the techniques described herein may be implemented with modules (e.g., procedures, functions, and so on) that perform the functions described herein. The software codes may be stored in a memory and executed by a processor. The memory may be implemented within the processor or external to the processor.
Optionally, as another embodiment, the first processor 903 is further configured to execute the method in any one of the foregoing embodiments when the computer program is executed.
The present embodiment provides an encoder that may include a first determining unit, a setting unit, a processing unit, and an encoding unit. In the encoder, the probability distribution characteristics of the first bit, the second bit or each bit after 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, and a corresponding upper and lower probability model is designed for the first bit, the second bit or each bit, so that the number of bits required by encoding can be reduced, and the encoding performance is improved.
Based on the same inventive concept of the foregoing embodiment, refer to fig. 10, which shows a schematic structural diagram of a decoder 100 according to an embodiment of the present application. As shown in fig. 10, the decoder 150 may include: an analysis unit 1001, a second determination unit 1002, an inverse processing unit 1003, and a prediction unit 1004; wherein the content of the first and second substances,
an analysis unit 1001 configured to analyze the code stream to obtain a prediction mode parameter of the current block;
a second determining unit 1002 configured to determine two partitions of the current block when the prediction mode parameter indicates that an inter prediction value of the current block is determined using a geometric partition mode GPM;
the parsing unit 1001 is further configured to parse the code stream, and determine a first symbol string and a second symbol string corresponding to motion information index values of two partitions of the current block, where the first symbol string and the second symbol string include one or more binary symbols, including: analyzing the code stream by using different context probability models to obtain a first binary symbol of the first symbol string and a first binary symbol of the second symbol string; continuously analyzing the code stream by using a preset model to obtain binary symbols except the first binary symbol in the first symbol string and the second symbol string;
an inverse processing unit 1003, configured to determine corresponding first and second numerical values of the first and second symbol strings according to a preset binarization model, and set the first and second numerical values as first and second motion information index values, respectively;
a second determining unit 1002, further configured to determine, based on a motion information candidate list, motion information in the motion information candidate list indicated by the first motion information index value as motion information corresponding to a first partition, and determine motion information in the motion information candidate list indicated by the second motion information index value as motion information of a second partition;
a prediction unit 1004 configured to determine an 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.
In some embodiments, referring to fig. 10, the decoder 100 may further include a second constructing unit 1005 configured to construct the motion information candidate list using motion information of neighboring blocks of the current block.
In some embodiments, the parsing unit 1001 is specifically configured to perform binary arithmetic entropy decoding using a first context probability model to obtain a first binary symbol of the first symbol string; performing binary arithmetic entropy decoding by using a second context probability model to obtain a first binary symbol of the second symbol string; wherein the first context probability model is different from the second context probability model.
In some embodiments, the parsing unit 1001 is further configured to parse the code stream by using a bypass model, and sequentially obtain binary symbols except for a first binary symbol in the first symbol string and the second symbol string; wherein the bypass model representation utilizes an equiprobable model for binary arithmetic entropy decoding.
In some embodiments, the parsing unit 1001 is further configured to parse the code stream by using different context probability models to obtain a second binary symbol of the first symbol string and the second symbol string; continuously analyzing the code stream by using a bypass model, and sequentially obtaining binary symbols except a first binary symbol and a second binary symbol in the first symbol string and the second symbol string; wherein the bypass model representation utilizes an equiprobable model for binary arithmetic entropy decoding.
Further, the parsing unit 1001 is specifically configured to perform binary arithmetic entropy decoding by using a third context probability model to obtain a second binary symbol of the first symbol string; performing binary arithmetic entropy decoding by using a fourth context probability model to obtain a second binary symbol of the second group of symbol strings; wherein the third context probability model is different from the fourth context probability model.
In some embodiments, the parsing unit 1001 is further configured to parse the code stream by using different context probability models to obtain each binary symbol in the first symbol string and the second symbol string.
In some embodiments, the parsing unit 1001 is further configured to parse the code stream by using a bypass model to obtain each binary symbol in the first symbol string and the second symbol string.
It is understood that in this embodiment, a "unit" may be a part of a circuit, a part of a processor, a part of a program or software, etc., and may also be a module, or may also be non-modular. Moreover, each component in the embodiment may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit. The integrated unit can be realized in a form of hardware or a form of a software functional module.
Based on the understanding that the integrated unit, if implemented in the form of a software functional module and not sold or used as a standalone product, may be stored in a computer readable storage medium, the present embodiment provides a computer storage medium for the decoder 100, and the computer storage medium stores a decoding program, and the decoding program is executed by the second processor to implement the method of any one of the foregoing embodiments.
Based on the above-mentioned components of the decoder 100 and the computer storage medium, referring to fig. 11, which shows a specific hardware structure example of the decoder 100 provided in the embodiment of the present application, the specific hardware structure example may include: a second communication interface 1101, a second memory 1102 and a second processor 1103; the various components are coupled together by a second bus system 1104. It will be appreciated that the second bus system 1104 is used to enable communications for connections between these components. The second bus system 1104 includes a power bus, a control bus, and a status signal bus in addition to the data bus. For clarity of illustration, however, the various buses are labeled as the second bus system 1104 in FIG. 11. Wherein the content of the first and second substances,
a second communication interface 1101 for receiving and transmitting signals during the process of transmitting and receiving information to and from other external network elements;
a second memory 1102 for storing a computer program operable on the second processor 1103;
a second processor 1103, configured to, when running the computer program, perform:
analyzing the code stream to obtain the prediction mode parameter of the current block;
when the prediction mode parameter indicates that a Geometric Partition Mode (GPM) is adopted to determine the inter prediction value of the current block, determining two partitions of the current block;
analyzing a code stream, and determining a first symbol string and a second symbol string corresponding to motion information index values of two partitions of the current block, wherein the first symbol string and the second symbol string comprise one or more binary symbols, and the method comprises the following steps: analyzing the code stream by using different context probability models to obtain a first binary symbol of the first symbol string and a first binary symbol of the second symbol string; continuously analyzing the code stream by using a preset model to obtain binary symbols except the first binary symbol in the first symbol string and the second symbol string;
determining a first numerical value and a second numerical value corresponding to the first symbol string and the second symbol string according to a preset binarization model, and setting the first numerical value and the second numerical value as a first motion information index value and a second motion information index value respectively;
determining, based on a motion information candidate list, motion information in the motion information candidate list indicated by the first motion information index value as motion information corresponding to a first partition, and determining motion information in the motion information candidate list indicated by the second motion information index value as motion information of a second partition;
and determining the inter-frame prediction value of the current block according to the motion information corresponding to the first partition and the motion information of the second partition.
Optionally, as another embodiment, the second processor 1103 is further configured to, when running the computer program, perform the method of any of the preceding embodiments.
It is to be understood that the second memory 1102 is similar in hardware functionality to the first memory 902, and the second processor 1103 is similar in hardware functionality to the first processor 903; and will not be described in detail herein.
The present embodiment provides a decoder that may include a parsing unit, a second determining unit, an inverse processing unit, and a prediction unit. In the decoder, the probability distribution characteristics of the first bit, the second bit or 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, and a corresponding upper and lower probability model is designed for the first bit, the second bit or each bit, so that the bit number required by coding can be reduced, and the decoding performance is improved.
It should be noted that, in the present application, the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising an … …" does not exclude the presence of other like elements in a process, method, article, or apparatus that comprises the element.
The above-mentioned serial numbers of the embodiments of the present application are merely for description and do not represent the merits of the embodiments.
The methods disclosed in the several method embodiments provided in the present application may be combined arbitrarily without conflict to obtain new method embodiments.
Features disclosed in several of the product embodiments provided in the present application may be combined in any combination to yield new product embodiments without conflict.
The features disclosed in the several method or apparatus embodiments provided in the present application may be combined arbitrarily, without conflict, to arrive at new method embodiments or apparatus embodiments.
The above description is only for the specific embodiments of the present application, but the scope of the present application is not limited thereto, and any person skilled in the art can easily conceive of the changes or substitutions within the technical scope of the present application, and shall be covered by the scope of the present application. Therefore, the protection scope of the present application shall be subject to the protection scope of the claims.

Claims (22)

1. A method of encoding, applied to an encoder, the method comprising:
determining a prediction mode parameter of a current block;
when the prediction mode parameter indicates that a Geometric Partition Mode (GPM) is adopted to determine the inter prediction value of the current block, determining two partitions of the current block;
determining the motion information of the two partitions from a motion information candidate list, setting a first motion information index value as an index sequence number value of the motion information of the first partition in the motion information candidate list, and setting a second motion information index value as an index sequence number value of the motion information of the second partition in the motion information candidate list;
respectively carrying out 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 comprises one or more binary symbols;
entropy encoding first binary symbols of the first symbol string and the second symbol string, respectively, using different context probability models;
entropy coding binary symbols except for the first binary symbol in the first symbol string and the second symbol string respectively by using a preset model;
and writing bits obtained by coding the first symbol string and the second symbol string into a code stream.
2. The method of claim 1, further comprising:
constructing the motion information candidate list using motion information of neighboring blocks of the current block.
3. The method of claim 1, wherein entropy encoding the first binary symbol of the first symbol string and the second symbol string using different context probability models comprises:
entropy coding a first binary symbol of the first symbol string using a first context probability model, and entropy coding a first binary symbol of the second symbol string using a second context probability model; wherein the first context probability model is different from the second context probability model.
4. The method according to claim 1, wherein the entropy encoding of the binary symbols except for the first binary symbol in the first symbol string and the second symbol string respectively by using a preset model comprises:
entropy encoding binary symbols within the first string of symbols and the second string of symbols, except for a first binary symbol, using a bypass model; and the bypass model representation utilizes an equiprobable model to carry out binary arithmetic entropy coding.
5. The method according to claim 1, wherein the entropy encoding of the binary symbols except for the first binary symbol in the first symbol string and the second symbol string respectively by using a preset model comprises:
entropy encoding a second binary symbol of the first symbol string and the second symbol string using different context probability models;
entropy encoding binary symbols, except for a first binary symbol and a second binary symbol, in the first symbol string and the second symbol string by using a bypass model; and the bypass model representation utilizes an equiprobable model to carry out binary arithmetic entropy coding.
6. The method according to claim 5, wherein the entropy encoding of the binary symbols except for the first binary symbol in the first symbol string and the second symbol string respectively by using a preset model comprises:
entropy coding a second binary symbol of the first symbol string using a third context probability model, and entropy coding a second binary symbol of the second symbol string using a fourth context probability model; wherein the third context probability model is different from the fourth context probability model.
7. The method of claim 1, further comprising:
entropy encoding each binary symbol within the first string of symbols and the second string of symbols using a different context probability model.
8. The method of claim 1, further comprising:
entropy encoding each binary symbol within the first string of symbols and the second string of symbols using a bypass model.
9. The method of any one of claims 1 to 8, wherein determining the prediction mode parameter of the current block comprises:
carrying out pre-coding processing on the current block by utilizing multiple prediction modes to obtain rate distortion cost values corresponding to each prediction mode;
and selecting a minimum rate distortion cost value from the obtained multiple rate distortion cost values, and determining a prediction mode corresponding to the minimum rate distortion cost value as a prediction mode parameter of the current block.
10. A decoding method, applied to a decoder, the method comprising:
analyzing the code stream to obtain the prediction mode parameter of the current block;
when the prediction mode parameter indicates that a Geometric Partition Mode (GPM) is adopted to determine the inter prediction value of the current block, determining two partitions of the current block;
analyzing a code stream, and determining a first symbol string and a second symbol string corresponding to motion information index values of two partitions of the current block, wherein the first symbol string and the second symbol string comprise one or more binary symbols, and the method comprises the following steps: analyzing the code stream by using different context probability models to obtain a first binary symbol of the first symbol string and a first binary symbol of the second symbol string; continuously analyzing the code stream by using a preset model to obtain binary symbols except the first binary symbol in the first symbol string and the second symbol string;
determining a first numerical value and a second numerical value corresponding to the first symbol string and the second symbol string according to a preset binarization model, and setting the first numerical value and the second numerical value as a first motion information index value and a second motion information index value respectively;
determining, based on a motion information candidate list, motion information in the motion information candidate list indicated by the first motion information index value as motion information corresponding to a first partition, and determining motion information in the motion information candidate list indicated by the second motion information index value as motion information of a second partition;
and determining the inter-frame prediction value of the current block according to the motion information corresponding to the first partition and the motion information of the second partition.
11. The method of claim 10, further comprising:
constructing the motion information candidate list using motion information of neighboring blocks of the current block.
12. The method of claim 10, wherein analyzing the code stream using different context probability models to obtain the first binary symbol of the first symbol string and the second symbol string comprises:
performing binary arithmetic entropy decoding by using a first context probability model to obtain a first binary symbol of the first symbol string;
performing binary arithmetic entropy decoding by using a second context probability model to obtain a first binary symbol of the second symbol string; wherein the first context probability model is different from the second context probability model.
13. The method according to claim 10, wherein the continuously parsing the code stream using the preset model to obtain the binary symbols in the first symbol string and the second symbol string except for the first binary symbol comprises:
analyzing the code stream by using a bypass model, and sequentially obtaining binary symbols except the first binary symbol in the first symbol string and the second symbol string; wherein the bypass model representation utilizes an equiprobable model for binary arithmetic entropy decoding.
14. The method according to claim 10, wherein the continuously parsing the code stream using the preset model to obtain the binary symbols in the first symbol string and the second symbol string except for the first binary symbol comprises:
analyzing the code stream by using different context probability models to obtain a second binary symbol of the first symbol string and the second symbol string;
continuously analyzing the code stream by using a bypass model, and sequentially obtaining binary symbols except a first binary symbol and a second binary symbol in the first symbol string and the second symbol string; wherein the bypass model representation utilizes an equiprobable model for binary arithmetic entropy decoding.
15. The method according to claim 14, wherein the continuously parsing the code stream using the preset model to obtain the binary symbols in the first symbol string and the second symbol string except for the first binary symbol comprises:
performing binary arithmetic entropy decoding by using a third context probability model to obtain a second binary symbol of the first symbol string;
performing binary arithmetic entropy decoding by using a fourth context probability model to obtain a second binary symbol of the second group of symbol strings; wherein the third context probability model is different from the fourth context probability model.
16. The method of claim 10, further comprising:
and analyzing the code stream by using different context probability models to obtain each binary symbol in the first symbol string and the second symbol string.
17. The method of claim 10, further comprising:
and analyzing the code stream by using a bypass model to obtain each binary symbol in the first symbol string and the second symbol string.
18. An encoder, characterized in that the encoder comprises a first determining unit, a setting unit, a processing unit and an encoding unit; wherein the content of the first and second substances,
the first determining unit is configured to determine a 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 a geometric partition mode GPM is adopted to determine the inter prediction value of the current block;
the setting unit is configured to determine motion information of the two partitions from a motion information candidate list, and set a first motion information index value as an index sequence number value of the motion information of the first partition in the motion information candidate list, and set a second motion information index value as an 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 respectively to obtain a first symbol string and a second symbol string; wherein the symbol string comprises one or more binary symbols;
the encoding unit is configured to entropy encode first binary symbols of the first symbol string and the second symbol string respectively by using different context probability models; entropy coding binary symbols except for the first binary symbol in the first symbol string and the second symbol string respectively by using a preset model; and writing bits obtained by encoding the first symbol string and the second symbol string into a code stream.
19. An encoder, characterized in that the encoder comprises a first memory and a first processor; wherein the content of the first and second substances,
the first memory for storing a computer program operable on the first processor;
the first processor, when executing the computer program, is configured to perform the method of any of claims 1 to 9.
20. A decoder, characterized in that the decoder comprises a parsing unit, a second determining unit, an inverse processing unit and a prediction unit; wherein the content of the first and second substances,
the analysis unit is configured to analyze the code stream to obtain a prediction mode parameter of the current block;
the second determination unit is configured to determine two partitions of the current block when the prediction mode parameter indicates that an inter prediction value of the current block is determined using a Geometric Partition Mode (GPM);
the parsing unit is further configured to parse a code stream, and determine a first symbol string and a second symbol string corresponding to motion information index values of two partitions of the current block, where the first symbol string and the second symbol string include one or more binary symbols, including: analyzing the code stream by using different context probability models to obtain a first binary symbol of the first symbol string and a first binary symbol of the second symbol string; continuously analyzing the code stream by using a preset model to obtain binary symbols except the first binary symbol in the first symbol string and the second symbol string;
the inverse processing unit is configured to determine corresponding first and second numerical values of the first and second symbol strings according to a preset binarization model, and set the first and second numerical values as first and second motion information index values, respectively;
the second determining unit is further configured to determine, based on a motion information candidate list, motion information in the motion information candidate list indicated by the first motion information index value as motion information corresponding to a first partition, and determine motion information in the motion information candidate list indicated by the second motion information index value as motion information of a second partition;
the prediction unit is configured to determine an 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.
21. A decoder, characterized in that the decoder comprises a second memory and a second processor; wherein the content of the first and second substances,
the second memory for storing a computer program operable on the second processor;
the second processor, when executing the computer program, is configured to perform the method of any of claims 10 to 17.
22. A computer storage medium, characterized in that it stores a computer program which, when executed by a first processor, implements the method of any one of claims 1 to 9, or which, when executed by a second processor, implements the method of any one of claims 10 to 17.
CN202010271284.3A 2020-04-08 2020-04-08 Encoding method, decoding method, encoder, decoder, and storage medium Pending CN113497936A (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202010271284.3A CN113497936A (en) 2020-04-08 2020-04-08 Encoding method, decoding method, encoder, decoder, and storage medium
TW110109404A TW202139706A (en) 2020-04-08 2021-03-16 Encoding method, decoding method, encoder, decoder, and storage medium
PCT/CN2021/081147 WO2021203924A1 (en) 2020-04-08 2021-03-16 Encoding method, decoding method, encoder, decoder, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010271284.3A CN113497936A (en) 2020-04-08 2020-04-08 Encoding method, decoding method, encoder, decoder, and storage medium

Publications (1)

Publication Number Publication Date
CN113497936A true CN113497936A (en) 2021-10-12

Family

ID=77994973

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010271284.3A Pending CN113497936A (en) 2020-04-08 2020-04-08 Encoding method, decoding method, encoder, decoder, and storage medium

Country Status (3)

Country Link
CN (1) CN113497936A (en)
TW (1) TW202139706A (en)
WO (1) WO2021203924A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
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

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024103304A1 (en) * 2022-11-16 2024-05-23 Oppo广东移动通信有限公司 Point cloud encoding method, point cloud decoding method, encoder, decoder, code stream, and storage medium

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040003261A1 (en) * 2002-06-28 2004-01-01 Canon Kabushiki Kaisha Information processing method and information processing apparatus
CN102611880A (en) * 2011-01-19 2012-07-25 华为技术有限公司 Encoding method and device for marking geometric classification mode of image block
US20120300839A1 (en) * 2011-05-23 2012-11-29 Vivienne Sze Acceleration of Bypass Binary Symbol Processing in Video Coding
CN104604237A (en) * 2012-07-02 2015-05-06 三星电子株式会社 Method and apparatus for encoding video and method and apparatus for decoding video determining inter-prediction reference picture list depending on block size
CN105120262A (en) * 2010-02-24 2015-12-02 夏普株式会社 Image encoding device
CN105847831A (en) * 2010-11-23 2016-08-10 Lg电子株式会社 Method for encoding and decoding images, and device using same
CN112655209A (en) * 2018-07-02 2021-04-13 弗劳恩霍夫应用研究促进协会 Entropy coding of transform coefficients adapted for dependency scalar quantization

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101527845A (en) * 2008-12-19 2009-09-09 无锡亿普得科技有限公司 Block-based adaptive quantizing method for exponentially distributed data
WO2013012819A2 (en) * 2011-07-15 2013-01-24 General Instrument Corporation Context modeling techniques for transform coefficient level coding
CN113382255B (en) * 2019-06-21 2022-05-20 杭州海康威视数字技术股份有限公司 Encoding and decoding method, device and storage medium

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040003261A1 (en) * 2002-06-28 2004-01-01 Canon Kabushiki Kaisha Information processing method and information processing apparatus
CN105120262A (en) * 2010-02-24 2015-12-02 夏普株式会社 Image encoding device
CN105847831A (en) * 2010-11-23 2016-08-10 Lg电子株式会社 Method for encoding and decoding images, and device using same
CN102611880A (en) * 2011-01-19 2012-07-25 华为技术有限公司 Encoding method and device for marking geometric classification mode of image block
US20120300839A1 (en) * 2011-05-23 2012-11-29 Vivienne Sze Acceleration of Bypass Binary Symbol Processing in Video Coding
CN104604237A (en) * 2012-07-02 2015-05-06 三星电子株式会社 Method and apparatus for encoding video and method and apparatus for decoding video determining inter-prediction reference picture list depending on block size
CN112655209A (en) * 2018-07-02 2021-04-13 弗劳恩霍夫应用研究促进协会 Entropy coding of transform coefficients adapted for dependency scalar quantization

Cited By (2)

* Cited by examiner, † Cited by third party
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

Also Published As

Publication number Publication date
TW202139706A (en) 2021-10-16
WO2021203924A1 (en) 2021-10-14

Similar Documents

Publication Publication Date Title
JP6995952B2 (en) Inter-prediction method and its device
JP7483035B2 (en) Video decoding method and video encoding method, apparatus, computer device and computer program thereof
AU2011349244B2 (en) Enhanced intra-prediction coding using planar representations
KR20210145754A (en) Calculations in matrix-based intra prediction
US20190289301A1 (en) Image processing method, and image encoding and decoding method using same
JP2024003124A (en) Restricted upsampling process in matrix-based intra prediction
JP2022529432A (en) Derivation of matrix in intra coding mode
KR20220016232A (en) Coding and decoding method, apparatus and storage medium
WO2021203924A1 (en) Encoding method, decoding method, encoder, decoder, and storage medium
JP2022553789A (en) Syntax signaling and parsing based on color components
MX2012013263A (en) Methods and apparatus for intra coding a block having pixels assigned to groups.
WO2021032113A1 (en) Updating for counter-based intra prediction mode
US20190230352A1 (en) Image decoding method and apparatus in image coding system
US11706449B2 (en) Method and device for intra-prediction
KR20160093565A (en) Method and apparatus for processing a video signal
CN114258680A (en) Residual coding of transform skipped blocks
CN116438796A (en) Image prediction method, encoder, decoder, and computer storage medium
JPWO2020211807A5 (en)
JP7448558B2 (en) Methods and devices for image encoding and decoding
CN116472707A (en) Image prediction method, encoder, decoder, and computer storage medium
CN115280778A (en) Inter-frame prediction method, encoder, decoder, and storage medium
AU2019210554B2 (en) Enhanced intra-prediction coding using planar representations
WO2022188114A1 (en) Intra-frame prediction method, encoder, decoder, and storage medium
WO2024055155A1 (en) Coding method and apparatus, decoding method and apparatus, and coder, decoder and storage medium
WO2022174467A1 (en) Intra-frame prediction method, coder, decoder and storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination