CN113261285A - 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
CN113261285A
CN113261285A CN201980087954.1A CN201980087954A CN113261285A CN 113261285 A CN113261285 A CN 113261285A CN 201980087954 A CN201980087954 A CN 201980087954A CN 113261285 A CN113261285 A CN 113261285A
Authority
CN
China
Prior art keywords
motion information
value
binary
partition
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.)
Granted
Application number
CN201980087954.1A
Other languages
Chinese (zh)
Other versions
CN113261285B (en
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
Publication of CN113261285A publication Critical patent/CN113261285A/en
Application granted granted Critical
Publication of CN113261285B publication Critical patent/CN113261285B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/124Quantisation
    • 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
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding

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, which are applied to the encoder, wherein the method comprises the following steps: determining at least two partitions of a current block in an image to be coded according to a geometric partition mode of inter-frame prediction; constructing a motion information candidate list using motion information of a neighboring block of the current block based on the at least two partitions; determining the motion information of the at least two partitions from the motion information candidate list, and setting a motion information index value as an index sequence number value of the determined motion information in the motion information candidate list; carrying out binarization processing on the motion information index value to obtain one or more binary symbols; and sequentially coding the one or more binary symbols by using a bypass model, and writing the coded bits into a code stream, wherein the bypass model represents that binary arithmetic entropy coding is carried out by using an equiprobable model.

Description

Encoding method, decoding method, encoder, decoder, and storage medium Technical Field
The present disclosure relates to the field of video encoding and decoding technologies, and in particular, to an encoding method, a decoding method, an encoder, a decoder, and a storage medium.
Background
With the continuous development of Video compression technology, h.266/multifunctional Video Coding (VVC), which is the latest Video Coding standard at present, can meet the demand for rapid development of Video applications, especially new Video applications such as ultra high definition (ultra high definition) and Virtual Reality (VR).
In the h.266/VVC, a Triangle Partition Mode (TPM) is used as an inter-frame prediction Mode, and when encoding and decoding are performed on the TPM, a binary encoding method based on a context model is usually involved. In the binary coding mode based on the context model, the context model needs to be updated depending on coded or analyzed binary symbols in the coding or decoding process; in addition, the updating process of the context model also needs to depend on other prediction modes which are not TPM, so that the updating process of the context model in the TPM mode is complicated.
Disclosure of Invention
The embodiment of the application provides an encoding method, a decoding method, an encoder, a decoder and a storage medium, which can not only reduce the complexity of encoding and decoding but also can not lose the encoding and decoding efficiency on the premise of ensuring the encoding and decoding performance.
The technical scheme of the embodiment of the application can be realized as follows:
in a first aspect, an embodiment of the present application provides an encoding method, where the method includes:
determining at least two partitions of a current block in an image to be coded according to a geometric partition mode of inter-frame prediction;
constructing a motion information candidate list using motion information of a neighboring block of the current block based on the at least two partitions;
determining the motion information of at least two partitions from the motion information candidate list, and setting the index value of the motion information as the index sequence number value of the determined motion information in the motion information candidate list;
carrying out binarization processing on the motion information index value to obtain one or more binary symbols;
and sequentially coding one or more binary symbols by using a bypass model, and writing the coded bits into a code stream, wherein the bypass model represents that binary arithmetic entropy coding is carried out by using an equiprobable model.
In a second aspect, an embodiment of the present application provides a decoding method, where the method includes:
analyzing the code stream to obtain the encoding mode parameter of the current block;
when the encoding mode parameters indicate that the current block adopts an interframe prediction geometric partition mode, analyzing the code stream by using a bypass model to obtain one or more binary symbols related to motion information index values of at least two partitions of the current block, wherein the bypass model represents that binary arithmetic entropy decoding is carried out by using an equiprobable model;
converting one or more binary symbols to obtain a motion information index value;
constructing a motion information candidate list by using motion information of adjacent blocks adjacent to the current block based on at least two partitions, and using the motion information in the motion information candidate list indicated by the motion information index value as the motion information of the current block;
and obtaining a predicted value of the current block according to the motion information of the current block.
In a third aspect, embodiments of the present application provide an encoder including a first determining unit, a first constructing unit, a binarizing unit, and an encoding unit, wherein,
a first determining unit configured to determine at least two partitions of a current block in an image to be encoded according to a geometric partition mode of inter prediction;
a first constructing unit configured to construct a motion information candidate list using motion information of a neighboring block of a current block based on at least two partitions;
a first determining unit, further configured to determine motion information of at least two partitions from the motion information candidate list, and set a motion information index value as an index number value of the determined motion information in the motion information candidate list;
the binarization unit is configured to carry out binarization processing on the motion information index value to obtain one or more binary symbols;
and the encoding unit is configured to sequentially encode one or more binary symbols by using a bypass model and write bits obtained by encoding into a code stream, wherein the bypass model represents that binary arithmetic entropy encoding is performed by using an equiprobable model.
In a fourth aspect, embodiments of the present application provide a decoder, which includes a parsing unit, a converting unit, a second constructing unit, and a predicting unit, wherein,
the analysis unit is configured to analyze the code stream to obtain the encoding mode parameter of the current block;
the analysis unit is also configured to analyze the code stream by using a bypass model when the encoding mode parameter indicates that the current block adopts a geometric partition mode of interframe prediction, and obtain one or more binary symbols related to motion information index values of at least two partitions of the current block, wherein the bypass model represents that binary arithmetic entropy decoding is carried out by using an equiprobable model;
the conversion unit is configured to convert one or more binary symbols to obtain a motion information index value;
a second constructing unit configured to construct a motion information candidate list using motion information of a neighboring block adjacent to a current block based on at least two partitions, taking motion information in the motion information candidate list indicated by the motion information index value as motion information of the current block;
and the prediction unit is configured to obtain a prediction value of the current block according to the motion information of the current block.
In a fifth aspect, embodiments of the present application provide an encoder that includes a first memory and a first processor, wherein,
a first memory for storing a computer program operable on a first processor;
a first processor for performing the method according to the first aspect when running a computer program.
In a sixth aspect, an embodiment of the present application provides a decoder, which includes a second memory and a second processor, wherein,
a second memory for storing a computer program operable on a second processor;
a second processor for performing the method according to the second aspect when running the computer program.
In a seventh aspect, the present application provides a computer storage medium, which stores a computer program, and when the computer program is executed by a first processor, the computer program implements the method according to the first aspect, or when the computer program is executed by a second processor, the computer program implements the method according to the second aspect.
The embodiment of the application provides an encoding method, a decoding method, an encoder, a decoder and a storage medium, wherein the method is applied to the encoder and used for determining at least two partitions of a current block in an image to be encoded according to a geometric partition mode of interframe prediction; constructing a motion information candidate list using motion information of a neighboring block of the current block based on the at least two partitions; determining the motion information of at least two partitions from the motion information candidate list, and setting the index value of the motion information as the index sequence number value of the determined motion information in the motion information candidate list; carrying out binarization processing on the motion information index value to obtain one or more binary symbols; sequentially coding the one or more binary symbols by using a bypass model, writing the coded bits into a code stream, and performing binary arithmetic entropy coding on the bypass model by using an equiprobable model; in this way, the bypass model is utilized to sequentially encode one or more binary symbols, so that all the binary symbols are binary encoded by adopting the equal probability model, the updating operation of the context model can be reduced, and the encoding complexity is reduced; in addition, because the binary coding based on the equiprobability model is adopted to replace the binary coding based on the context model, the coding dependency between the inter-frame prediction and other merge modes can be eliminated, and the whole coding efficiency can not be lost on the premise of ensuring the coding and decoding performance; the method is also applied to a decoder, and the coding mode parameter of the current block is obtained by analyzing the code stream; when the encoding mode parameter indicates that the current block adopts an interframe prediction geometric partition mode, analyzing the code stream by using a bypass model to obtain one or more binary symbols related to motion information index values of at least two partitions of the current block, wherein the bypass model represents that binary arithmetic entropy decoding is carried out by using an equiprobable model; converting one or more binary symbols to obtain a motion information index value; constructing a motion information candidate list by using motion information of a neighboring block adjacent to a current block based on at least two partitions, and using the motion information in the motion information candidate list indicated by the motion information index value as the motion information of the current block; obtaining a predicted value of the current block according to the motion information of the current block; in this way, the bypass model is used for analyzing the code stream to obtain one or more binary symbols related to the motion information index values of at least two partitions of the current block, so that all the binary symbols are subjected to binary decoding by adopting an equiprobable model, the updating operation of a context model can be reduced, and the decoding complexity is reduced; in addition, because the binary decoding based on the equiprobable model is adopted to replace the binary decoding based on the context model, the decoding dependency between the inter-frame prediction and other merge modes can be eliminated, and the overall decoding efficiency can not be lost on the premise of ensuring the coding and decoding performance.
Drawings
Fig. 1 is a schematic diagram illustrating an entropy coding mode according to a related art;
fig. 2 is a schematic diagram of an entropy decoding mode provided in the related art;
fig. 3 is a block diagram illustrating a video coding system according to an embodiment of the present disclosure;
fig. 4 is a block diagram illustrating a video decoding system according to an embodiment of the present application;
fig. 5 is a schematic flowchart of an encoding method according to an embodiment of the present application;
fig. 6A is a schematic diagram of diagonal division of a triangle division mode according to an embodiment of the present application;
FIG. 6B is a schematic diagram illustrating an anti-diagonal partition of a triangle partition mode according to an embodiment of the present application;
FIG. 7A is a diagram illustrating weighting of luminance components of pixels near a diagonal according to an embodiment of the present disclosure;
FIG. 7B is a schematic diagram illustrating weighting of chrominance components of pixels near a diagonal according to an embodiment of the present disclosure;
fig. 8 is a detailed flowchart of an encoding method according to an embodiment of the present application;
fig. 9 is a detailed flowchart of another encoding method provided in the embodiment of the present application;
fig. 10 is a flowchart illustrating a decoding method according to an embodiment of the present application;
fig. 11 is a detailed flowchart of a decoding method according to an embodiment of the present application;
fig. 12 is a detailed flowchart of another decoding method provided in the embodiment of the present application;
fig. 13 is a schematic structural diagram of an encoder according to an embodiment of the present disclosure;
fig. 14 is a schematic hardware structure diagram of an encoder according to an embodiment of the present disclosure;
fig. 15 is a schematic structural diagram of a decoder according to an embodiment of the present application;
fig. 16 is a schematic hardware structure diagram of a decoder according to an embodiment of the present disclosure.
Detailed Description
So that the manner in which the features and elements of the present embodiments can be understood in detail, a more particular description of the embodiments, briefly summarized above, may be had by reference to embodiments, some of which are illustrated in the appended drawings.
In video images, there are two general entropy coding modes of h.266/VVC, namely a context model-based binary coding mode and an equiprobable model-based binary coding mode. Wherein, the Context Model (Context Model) can represent the probability of binary symbol "0" or "1" occurrence, and the Context Model is also required to be updated 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.
Referring to fig. 1, it shows an architecture diagram of an entropy coding mode provided by the related art. As shown in fig. 1, the architecture may include a context modeling module 101, a context model-based encoder 102, and an equiprobable model-based encoder 103. Wherein the upper half of fig. 1 (including the context modeling module 101 and the context model-based encoder 102) is a context model-based binary encoding process, and the lower half of fig. 1 (including the equal probability model-based encoder 103) is an equal probability model-based binary encoding process.
Specifically, in the context model-based binary coding mode, the context modeling module 101 is configured to assign a suitable probability model to each input binary value according to the value of the coded syntax element or binary bit, where the probability model is the context model; each binary value will then enter the context model sequentially and be encoded together with the probability model assigned to it based on the context model encoder 102; in addition, in the context model-based binary encoding mode, the context model also needs to be updated according to the binary-coded value. Because the code of each symbol is related to the coded result, the code word can be adaptively distributed to each symbol according to the statistical characteristics of the symbol stream, and the coding efficiency can be improved.
In the binary encoding mode based on the equal probability model, a specific probability model is not required to be assigned to each binary value at this time, but the input binary value is directly encoded by the encoder 103 based on the equal probability model. Compared with the binary coding mode based on the context model, the overall coding speed can be increased.
According to the characteristics of encoding and decoding, correspondingly, the entropy decoding modes of H.266/VVC are also two, namely a context model-based binary decoding mode and an equiprobable model-based binary decoding mode. Referring to fig. 2, it shows an architecture diagram of an entropy decoding mode provided by the related art. As shown in fig. 2, the architecture may include a context modeling module 201, a context model-based decoder 202, and an equiprobable model-based decoder 203. Wherein, the upper part of fig. 2 (including the context modeling module 201 and the context model-based decoder 202) is a context model-based binary decoding process, and the lower part of fig. 2 (including the equiprobable model-based decoder 203) is an equiprobable model-based binary codec process. That is, the binary decoding process also includes a context model-based binary decoding mode with high decoding efficiency and an equiprobable model-based binary decoding mode with high decoding speed.
In the current solution, for a merge (merge) mode of inter-frame prediction, a plurality of binary symbols or binary codes (bins) obtained by binarizing a merge mode index (merge index) are used, wherein a first bin uses a binary coding mode based on a context model, and other bins use a binary coding mode based on an equal probability model. Thus, for the bin using the context model, the context model needs to be updated depending on the bin that has been encoded or parsed in the encoding or decoding process, thereby reducing the throughput (throughput) of the merge index in the encoding or decoding process; in addition, the updating process of the context model of the merge index needs to depend on other merge indexes, and the updating process of the context model is also complicated.
The embodiment of the application provides an encoding method, wherein one or more binary symbols are sequentially encoded by using a bypass model, so that all the binary symbols are binary encoded by using an equal probability model, the updating operation of a context model can be reduced, and the encoding complexity is reduced; in addition, because the binary coding based on the equiprobable model is adopted to replace the binary coding based on the context model, the coding dependency between the inter-frame prediction and other merge modes can be eliminated, and the whole coding efficiency can not be lost on the premise of ensuring the coding and decoding performance. In addition, the embodiment of the application also provides a decoding method, wherein the bypass model is used for analyzing the code stream to obtain one or more binary symbols related to the motion information index values of at least two partitions of the current block, so that all the binary symbols are subjected to binary decoding by adopting an equiprobable model, the updating operation of a context model can be reduced, and the decoding complexity is reduced; in addition, because the binary decoding based on the equiprobable model is adopted to replace the binary decoding based on the context model, the decoding dependency between the inter-frame prediction and other merge modes can be eliminated, and the overall decoding efficiency can not be lost on the premise of ensuring the coding and decoding performance.
Embodiments of the present application will be described in detail below with reference to the accompanying drawings.
Referring to fig. 3, 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. 3, the video Coding system 30 includes a transform and quantization unit 301, an intra estimation unit 302, an intra prediction unit 303, a motion compensation unit 304, a motion estimation unit 305, an inverse transform and inverse quantization unit 306, a filter control analysis unit 307, a filtering unit 308, an encoding unit 309, a decoded image buffer unit 310, and the like, wherein the filtering unit 308 may implement deblocking filtering and Sample Adaptive 0 offset (SAO) filtering, and the encoding unit 309 may implement header information encoding and Context-based Adaptive Binary Arithmetic Coding (CABAC). For an input original video signal, a Coding Unit (CU) may be obtained by dividing a Coding Tree Unit (CTU), and then the Coding block is transformed by a transform and quantization Unit 301 according to residual pixel information obtained by intra-frame or inter-frame prediction, including transforming the residual information from a pixel domain to a transform domain and quantizing the obtained transform coefficients, so as to further reduce the bit rate; the intra estimation unit 302 and the intra prediction unit 303 are used for intra prediction of the coding block; in particular, intra estimation unit 302 and intra prediction unit 303 are used to determine the intra prediction mode to be used to encode the encoded block; motion compensation unit 304 and motion estimation unit 305 are used to perform inter-prediction encoding of the received encoded 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 305 is a process of generating a motion vector that can estimate the motion of the coding block, and then performing motion compensation by the motion compensation unit 304 based on the motion vector determined by the motion estimation unit 305; after determining the intra prediction mode, the intra prediction unit 303 is also configured to supply the selected intra prediction data to the encoding unit 309, and the motion estimation unit 305 also sends the calculated determined motion vector data to the encoding unit 309; furthermore, the inverse transform and inverse quantization unit 306 is for reconstruction of the encoded block, reconstructing a residual block in the pixel domain, which removes blocking artifacts through the filter control analysis unit 307 and the filtering unit 308, and then adding the reconstructed residual block to a predictive block in the frame of the decoded picture buffer unit 310 to generate a reconstructed video block; the encoding unit 309 is configured to encode various encoding parameters and quantized transform coefficients, and in a CABAC-based encoding algorithm, context content may be based on adjacent encoding blocks, 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 310 is used to store reconstructed video blocks for prediction reference. As the video coding proceeds, new reconstructed video blocks are generated, and these reconstructed video blocks are stored in the decoded picture buffer unit 310.
Referring to fig. 4, 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. 4, the video decoding system 40 includes a decoding unit 401, an inverse transform and inverse quantization unit 402, an intra prediction unit 403, a motion compensation unit 404, a filtering unit 405, a decoded image buffer unit 406, and the like, wherein the decoding unit 401 can implement header information decoding and CABAC decoding, and the filtering unit 405 can implement deblocking filtering and SAO filtering. After the input video signal is subjected to the encoding processing of fig. 3, a code stream of the video signal is output; the code stream is input into the video decoding system 40, and first passes through the decoding unit 401 to obtain a decoded transform coefficient; processing the transform coefficients by an inverse transform and inverse quantization unit 402 to produce a residual block in the pixel domain; intra-prediction unit 403 may be used to generate prediction data for a video block currently to be decoded based on the determined intra-prediction mode and data from previously decoded blocks of the current frame or picture; motion compensation unit 404 is a unit that determines prediction information for the video block to be decoded by parsing the motion vector and other associated syntax elements and uses the prediction information to generate a predictive block for the video block being decoded; forming a decoded video block by summing the residual block from inverse transform and inverse quantization unit 402 with the corresponding predictive block generated by intra prediction unit 403 or motion compensation unit 404; the decoded video block passes through the filtering unit 405 in order to remove the blocking artifacts, which may improve the video quality; the decoded video blocks are then stored in the decoded picture buffer unit 406, and the decoded picture buffer unit 406 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 a CABAC entropy encoding part (i.e. in the encoding unit 309 shown in fig. 3) and a CABAC entropy decoding part (i.e. the decoding unit 401 shown in fig. 4); correspondingly, in the CABAC entropy coding part, the inter prediction part in fig. 3, i.e., the motion compensation unit 304 and the motion estimation unit 305 shown in fig. 3, is also affected; in the CABAC entropy decoding part, the inter prediction part in fig. 4, i.e., the motion compensation unit 404 shown in fig. 4, is also affected. That is, the embodiments of the present application may be applied to a video encoding system and a video decoding system, and the embodiments of the present application are not particularly limited.
Based on the application scenario example of fig. 3 or fig. 4, referring to fig. 5, a flowchart of an encoding method provided in an embodiment of the present application is shown, where the method is applied to an encoder, and the method may include:
s501: determining at least two partitions of a current block in an image to be coded according to a geometric partition mode of inter-frame prediction;
it should be noted that an image to be encoded may be divided into a plurality of image blocks, where the image block to be encoded currently is referred to as a current block (which may be represented by CU), and the image block adjacent to the current block is referred to as a neighboring block; i.e. in the image to be encoded, the current block has a neighboring relationship with the neighboring block.
It should also be noted that the geometric partition mode of inter prediction can partition the current block into at least two partitions. In the h.266/VVC, the geometric Partition Mode may be a Triangle Partition Mode (TPM), and the TPM belongs to one of inter-frame prediction merge modes. As such, the current block may be partitioned into at least two partitions, such as a first partition and a second partition, using the TPM.
In some embodiments, for 501, the determining at least two partitions of a current block in an image to be encoded according to a geometric partitioning mode of inter prediction may include:
if the geometric division mode is a triangle division mode, dividing the current block according to the triangle division mode to obtain at least two partitions of the current block; wherein the at least two partitions include a first partition and a second partition.
That is, when it is determined that the geometric partition mode is a Triangular Partition Mode (TPM), the current block may be partitioned according to the TPM to obtain at least two partitions of the current block, such as a first partition and a second partition. It should be noted that, the current block is divided into at least two partitions, and other geometric partition modes may also be used in addition to the triangle partition mode, and the embodiments of the present application are not limited in particular.
Further, since the triangle partition mode may further include a diagonal partition type and an anti-diagonal partition type, the current block may be uniformly partitioned into two triangle partitions by the diagonal partition type, and may also be uniformly partitioned into two triangle partitions by the anti-diagonal partition type.
In some embodiments, optionally, the dividing the current block according to the triangle division mode to obtain at least two partitions of the current block may include:
and carrying out diagonal division on the current block according to a triangular division mode to obtain the first partition and the second partition.
In some embodiments, optionally, the dividing the current block according to the triangle division mode to obtain at least two partitions of the current block may include:
performing anti-diagonal partitioning on the current block according to a triangle partitioning mode to obtain the first partition and the second partition.
It should be noted that the triangle partition mode may perform diagonal partition on the current block, that is, the current block is uniformly partitioned into two triangle partitions by the diagonal partition type, as shown in fig. 6A; in fig. 6A, two triangular partitions may be represented by a first Partition (Partition 1)601 and a second Partition (Partition 2)602, where the first Partition 601 is located at the upper right portion of the current block and the second Partition 602 is located at the lower left portion of the current block. In addition, the triangle partition mode may inversely angle-partition the current block, i.e., uniformly partition the current block into two triangle partitions by an inverse angle-partition type, as shown in fig. 6B; in fig. 6B, two triangular partitions can still be represented by a first Partition (Partition 1)601 and a second Partition (Partition 2)602, where the first Partition 601 is located at the upper left portion of the current block and the second Partition 602 is located at the lower right portion of the current block.
In this way, at least two partitions of the current block may be obtained according to a geometric partitioning mode of inter prediction, for example, according to a TPM to partition the current block.
S502: constructing a motion information candidate list using motion information of a neighboring block of the current block based on the at least two partitions;
s503: determining the motion information of the at least two partitions from the motion information candidate list, and setting a motion information index value as an index sequence number value of the determined motion information 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.
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.
S504: carrying out binarization processing on the motion information index value to obtain one or more binary symbols;
s505: and sequentially coding the one or more binary symbols by using a bypass model, and writing the coded bits into a code stream, wherein the bypass model represents that binary arithmetic entropy coding is carried out by using an equiprobable model.
It should be noted that after obtaining the motion information index value, first, binarization processing needs to be performed on the motion information index value, so as to obtain one or more binary symbols, where a value of the binary symbol may be 0 or 1; and then, sequentially coding one or more binary symbols by using a bypass model, and writing bits obtained by coding into a code stream.
It should be further noted that the bypass model may also be referred to as a bypass model or an equiprobable model; in this way, the bypass model is used to sequentially encode one or more binary symbols, that is, all binary symbols in the embodiment of the present application are binary-encoded by using the equal probability model; therefore, compared with the prior TPM coding which needs updating based on the context model, the updating operation of the context model can be reduced by replacing the context model which needs updating based on the context model with the equal probability model, thereby reducing the complexity of coding; in addition, the current TPM coding also needs to depend on the coding of other merge modes, and the TPM coding and the merge modes use the same context model, so that the TPM coding and the merge modes have influence in the coding process; in the embodiment of the application, binary coding based on an equiprobable model is adopted to replace binary coding based on a context model, so that coding dependency between the TPM and other merge modes in inter-frame prediction is eliminated, on the premise of ensuring coding and decoding performance, coding efficiency of the TPM is reduced, coding efficiency of the context model used by the other merge modes is improved, and further, the whole coding efficiency is not lost.
For example, according to the triangle partition mode shown in fig. 6A or fig. 6B, after the current block is TPM-partitioned, two triangle partitions may be obtained; then, using the motion information of the neighboring blocks of the current block, each triangle partition can use its own motion estimation and motion compensation to construct a motion information candidate list (represented by the TPM list) composed of the two trianglesThe merge lists of the partitions are integrated, for example, 5 pieces of motion information are stored in the TPM list, and then the predicted value of each triangle partition can be obtained through merge prediction. Further, after each triangle partition is predicted, the pixel values near the diagonal may also be adjusted using a weighted average operation with adaptive weights. The process is weighted such that the luminance component can be weighted by {7/8,6/8,5/8,4/8,3/8,2/8,1/8}, with the particular weighting shown in fig. 7A; the chroma components may be weighted in the manner of 6/8,4/8,2/8, as shown in fig. 7B. Here, P1Denotes a prediction value, P, of the first partition2The predicted value of the second partition is represented by a first pixel 701 near the diagonal line, which is weighted at the position
Figure PCTCN2019107600-APPB-000001
For the second pixel 702 near the diagonal, the weighting pattern at the position is
Figure PCTCN2019107600-APPB-000002
For the third pixel 703 near the diagonal, the weighting pattern at the position is
Figure PCTCN2019107600-APPB-000003
In addition, the prediction value of the whole CU can be obtained by using the weighting method shown in fig. 7A and 7B. It should also be noted that the triangle partition mode is only applicable to CUs with a current block size of 8 × 8 or greater; and as with the other merge prediction modes, the transform and quantization process will be applied to the entire CU.
The present embodiment provides an encoding method, which is applied to an encoder. Determining at least two partitions of a current block in an image to be encoded by a geometric partition mode according to inter prediction; constructing a motion information candidate list using motion information of a neighboring block of the current block based on the at least two partitions; determining the motion information of at least two partitions from the motion information candidate list, and setting the index value of the motion information as the index sequence number value of the determined motion information in the motion information candidate list; carrying out binarization processing on the motion information index value to obtain one or more binary symbols; sequentially coding the one or more binary symbols by using a bypass model, writing the coded bits into a code stream, and performing binary arithmetic entropy coding on the bypass model by using an equiprobable model; in this way, the bypass model is utilized to sequentially encode one or more binary symbols, so that all the binary symbols are binary encoded by adopting the equal probability model, the updating operation of the context model can be reduced, and the encoding complexity is reduced; in addition, because the binary coding based on the equiprobable model is adopted to replace the binary coding based on the context model, the coding dependency between the inter-frame prediction and other merge modes can be eliminated, and the whole coding efficiency can not be lost on the premise of ensuring the coding and decoding performance.
Further, assuming that the geometric partitioning mode of inter-frame prediction is TPM, the current block is partitioned according to TPM to obtain a first partition and a second partition. In the h.266/VVC, the encoding process for the TPM mainly includes three parts: a first part for determining a flag bit (which may be denoted by dir) of a triangle division type; a second part, determining the index value of the motion information of the first partition, namely the index sequence number value (which can be represented by idx 0) of the motion information determined by the first partition in the motion information candidate list; a third part, determining the index value of the motion information of the second partition, namely the index sequence number value (which can be represented by idx 1) of the motion information determined by the second partition in the motion information candidate list; the encoding process for these three parts will be described in detail below.
Since the triangle division mode includes a diagonal division type and an anti-diagonal division type, after the geometric division mode is determined to be the triangle division mode, it is also necessary to determine which of the two division types is adopted by the triangle division mode, and then encode the triangle division mode. Thus, in some embodiments, the method may further comprise:
judging the type of the triangle division mode;
if the type of the triangular partition mode is a diagonal partition type, setting a flag bit as a first symbol value, and performing binary arithmetic entropy coding processing on the first symbol value by using an equiprobable model;
and if the type of the triangular partition mode is an anti-diagonal partition type, setting the flag bit as a second symbol value, and performing binary arithmetic entropy coding processing on the second symbol value by using an equiprobable model.
It should be noted that, assuming that the geometric partition mode of the current block is the triangle partition mode, before binary encoding, it is first required to determine which of the two partition types is used in the triangle partition mode, that is, to determine a flag bit (which may be denoted by dir) for indicating the triangle partition type. Specifically, if the type of the triangle partition mode is a diagonal partition type, dir may be set to a first symbol value, and then binary arithmetic entropy coding processing is performed on the first symbol value using an equiprobable model; if the type of the triangulation mode is an anti-diagonal type, dir may be set to a second symbol value, which is then subjected to a binary arithmetic entropy coding process using an equiprobable model. Here, the first symbol value and the second symbol value are different; wherein the first symbol value may be 0 and the second symbol value may be 1; or the first symbol value may be 1, and the second symbol value may be 0, which is not limited in this embodiment of the application.
Exemplarily, assuming that the first symbol value may be 0 and the second symbol value may be 1, when the type of the triangle partition mode is a diagonal partition type, dir at this time may be set to 0, and then a binary arithmetic entropy coding process is performed on a binary symbol having a value of 0 by using an equiprobable model; when the type of the triangle partition mode is an inverse diagonal partition type, dir at this time may be set to 1, and then binary arithmetic entropy coding processing is performed on the binary symbol whose value is 1 by using an equiprobable model. Therefore, according to the type of the triangle division mode, the value of dir can be determined, and then the dir is coded by adopting a binary coder based on an equiprobable model.
Further, for the first partition, after determining a first motion information index value corresponding to the first partition, first performing binarization processing on the first motion information index value to obtain one or more binary symbols, and then performing binary arithmetic entropy coding processing on the one or more binary symbols by using an equiprobable model. Thus, in some embodiments, for 505, the sequentially encoding the one or more binary symbols using the bypass model may comprise:
determining a first motion information index value corresponding to the first partition;
judging whether the first motion information index value is equal to 0;
when the first motion information index value is equal to 0, performing binary arithmetic entropy coding processing on a binary symbol with the value of 0 by using an equiprobable model;
when the first motion information index value is not equal to 0, performing binary arithmetic entropy coding processing on a binary symbol with a value of 1 by using an equiprobable model, and continuously judging whether the first motion information index value is equal to i, wherein i is 1,2,3, …, N-1, and N is a positive integer greater than or equal to 2;
and when the first motion information index value is equal to N-1, performing binary arithmetic entropy coding processing on the binary symbol with the value of 0 by using an equiprobable model.
Further, the determining whether the first motion information index value is equal to i may include:
when the first motion information index value is equal to i, performing binary arithmetic entropy coding processing on a binary symbol with a value of 0 by using an equiprobable model;
and when the first motion information index value is not equal to i, performing binary arithmetic entropy coding processing on the binary symbol with the value of 1 by using an equiprobable model, and judging whether the first motion information index value is equal to i + 1.
In the embodiment of the present application, all binary symbols in the first partition are binary-coded by using an equiprobable model. Wherein N represents the total number of motion information included in the motion information candidate list, and N is a positive integer greater than or equal to 2.
Exemplarily, as shown in fig. 8, a detailed flowchart of an encoding method provided in an embodiment of the present application is shown. Assuming that the first motion information index value is denoted by idx0, and N is 5, the detailed procedure may include:
s801: judging idx0 to be 0;
s802: when idx0 is equal to 0, performing binary arithmetic entropy coding processing on the binary symbol with the value of 0 by using an equiprobable model;
s803: when idx0 is not equal to 0, performing binary arithmetic entropy coding processing on the binary symbol with the value of 1 by using an equiprobable model, and continuing to execute the step 804;
first, it is determined whether idx0 is the index number value 0 of the motion information candidate list; if idx0 is the index sequence number value 0 of the motion information candidate list, then the equal probability model is used to perform binary arithmetic entropy coding processing on the binary symbol with the value of 0, and the flow shown in fig. 8 is ended; and if the idx0 is not the index sequence number value 0 of the motion information candidate list, performing binary arithmetic entropy coding processing on the binary symbol with the value of 1 by using an equiprobable model, and continuing to perform subsequent judgment.
S804: judging idx0 to be 1;
s805: when idx0 is equal to 1, performing binary arithmetic entropy coding processing on a binary symbol with a value of 0 by using an equiprobable model;
s806: when idx0 is not equal to 1, performing binary arithmetic entropy coding processing on the binary symbol with the value of 1 by using an equiprobable model, and continuing to execute the step 807;
when idx0 is not the index number value 0 of the motion information candidate list, it is necessary to continuously determine whether idx0 is the index number value 1 of the motion information candidate list; if idx0 is the index number value 1 of the motion information candidate list, then the equal probability model is used to perform binary arithmetic entropy coding processing on the binary symbol whose value is 0, and the flow shown in fig. 8 is ended; if idx0 is not the index number value 1 of the motion information candidate list, then the equal probability model is used to perform binary arithmetic entropy coding processing on the binary symbol with the value of 1, and the subsequent judgment is continued.
S807: judging idx0 to be 2;
s808: when idx0 is equal to 2, performing binary arithmetic entropy coding processing on a binary symbol with a value of 0 by using an equiprobable model;
s809: when idx0 is not equal to 2, performing binary arithmetic entropy coding processing on the binary symbol with the value of 1 by using an equiprobable model, and continuing to execute the step 810;
when idx0 is not the index number value 1 of the motion information candidate list, it is necessary to continuously determine whether idx0 is the index number value 2 of the motion information candidate list; if idx0 is the index number value 2 of the motion information candidate list, then the equal probability model is used to perform binary arithmetic entropy coding processing on the binary symbol whose value is 0, and the flow shown in fig. 8 is ended; and if the idx0 is not the index sequence number value 2 of the motion information candidate list, performing binary arithmetic entropy coding processing on the binary symbol with the value of 1 by using an equiprobable model, and continuing to perform subsequent judgment.
S810: judging idx0 to be 3;
s811: when idx0 is equal to 3, performing binary arithmetic entropy coding processing on a binary symbol with a value of 0 by using an equiprobable model;
s812: when idx0 is not equal to 3, performing binary arithmetic entropy coding processing on the binary symbol with the value of 1 by using an equiprobable model, and continuing to execute the step 813;
when idx0 is not index number 2 of the motion information candidate list, it is necessary to continuously determine whether idx0 is index number 3 of the motion information candidate list; if idx0 is the index sequence number value 3 of the motion information candidate list, then the equal probability model is used to perform binary arithmetic entropy coding processing on the binary symbol whose value is 0, and the flow shown in fig. 8 is ended; and if the idx0 is not the index sequence number value 3 of the motion information candidate list, performing binary arithmetic entropy coding processing on the binary symbol with the value of 1 by using an equiprobable model, and continuing to perform subsequent judgment.
S813: when idx0 is 4, performing binary arithmetic entropy coding processing on a binary symbol with a value of 0 by using an equiprobable model;
it should be noted that, since the motion information candidate list only includes 5 pieces of motion information, the index number of the motion information candidate list may be 0,1,2,3, 4; if idx0 is not the index number value 3 of the motion information candidate list, idx0 is determined as the index number value 4 of the motion information candidate list, and at this time, the binary arithmetic entropy coding process is performed on the binary symbol whose value is 0 by using the equiprobable model, and the flow shown in fig. 8 is ended.
The resulting encoding results of idx0 are shown in table 1 based on the flow shown in fig. 8. In table 1, "column" indicates idx0 values, which can be 0,1,2,3, 4; "line" represents the binIdx, i.e., the index number of one or more binary symbols (bins) resulting from binarization by idx 0.
TABLE 1
Figure PCTCN2019107600-APPB-000004
Further, for the second partition, after determining a second motion information index value corresponding to the second partition, it is first determined whether the second motion information index value is greater than the first motion information index value, and then the second motion information index value is binarized to obtain one or more binary symbols, and the one or more binary symbols are subjected to binary arithmetic entropy coding processing by using an equiprobable model. Thus, in some embodiments, for 505, the sequentially encoding the one or more binary symbols using the bypass model may comprise:
determining a first motion information index value corresponding to the first partition and a second motion information index value corresponding to the second partition;
judging whether the second motion information index value is larger than the first motion information index value;
if the second motion information index value is larger than the first motion information index value, updating the second motion information index value by subtracting 1 from the second motion information index value, and judging whether the second motion information index value is equal to j or not;
when the second motion information index value is equal to j, performing binary arithmetic entropy coding processing on the binary symbol with the value of 0 by using an equiprobable model;
when the second motion information index value is not equal to j, performing binary arithmetic entropy coding processing on a binary symbol with a value of 1 by using an equiprobable model, and judging whether the first motion information index value is equal to j +1, wherein j is 0,1,2,3, …, N-2, and N is a positive integer greater than or equal to 2;
and when the second motion information index value is equal to N-2, performing binary arithmetic entropy coding processing on the binary symbol with the value of 0 by using an equiprobable model.
In the embodiment of the present application, all binary symbols of the second partition are binary-coded by using an equiprobable model. Wherein N represents the total number of motion information included in the motion information candidate list, and N is a positive integer greater than or equal to 2.
Exemplarily, as shown in fig. 9, a detailed flowchart of another encoding method provided in the embodiment of the present application is shown. Assuming that the first motion information index value is denoted by idx1, and N is 5, the detailed procedure may include:
s901: judgment idx1> idx 0;
s902: when idx1 is greater than idx0, idx1 is idx 1-1;
s903: when idx1 is not greater than idx0, idx1 is judged to be 0;
s904: when idx1 is equal to 0, performing binary arithmetic entropy coding processing on the binary symbol with the value of 0 by using an equiprobable model;
s905: when idx1 is not equal to 0, performing binary arithmetic entropy coding processing on the binary symbol with the value of 1 by using an equiprobable model, and continuing to execute the step 906;
it should be noted that, firstly, it is determined whether idx1 is greater than idx 0; if idx1 is greater than idx0, idx1 becomes idx1-1, and then a determination is made as to whether idx1 is the index number value 0 of the motion information candidate list; if idx1 is not greater than idx0, idx1 remains unchanged and a determination is then made as to whether idx1 is the index number value 0 of the motion information candidate list. Here, it is to be noted that the determination condition of step S901 may also be a determination of idx1> -idx 0, i.e., a determination of whether idx1 is greater than or equal to idx 0; when idx1 is greater than or equal to idx0, idx1 ═ idx 1-1; when idx1 is less than idx0, idx1 remains unchanged. That is, for the case where idx1 is equal to idx0, step S902 may be performed, that is, idx1 ═ idx 1-1; step S903 may also be executed, that is, idx1 may remain unchanged, and the embodiment of the present application is not particularly limited.
It should be further noted that, it is determined whether idx1 is the index number value 0 of the motion information candidate list; if idx1 is the index sequence number value 0 of the motion information candidate list, then the equal probability model is used to perform binary arithmetic entropy coding processing on the binary symbol with the value of 0, and the flow shown in fig. 9 is ended; and if the idx1 is not the index sequence number value 0 of the motion information candidate list, performing binary arithmetic entropy coding processing on the binary symbol with the value of 1 by using an equiprobable model, and continuing to perform subsequent judgment.
S906: judging idx1 to be 1;
s907: when idx1 is equal to 1, performing binary arithmetic entropy coding processing on a binary symbol with a value of 0 by using an equiprobable model;
s908: when idx1 is not equal to 1, performing binary arithmetic entropy coding processing on the binary symbol with the value of 1 by using an equiprobable model, and continuing to execute step 909;
when idx1 is not the index number value 0 of the motion information candidate list, it is necessary to continuously determine whether idx1 is the index number value 1 of the motion information candidate list; if idx1 is the index number value 1 of the motion information candidate list, then the equal probability model is used to perform binary arithmetic entropy coding processing on the binary symbol whose value is 0, and the flow shown in fig. 9 is ended; if idx1 is not the index number value 1 of the motion information candidate list, then the equal probability model is used to perform binary arithmetic entropy coding processing on the binary symbol with the value of 1, and the subsequent judgment is continued.
S909: judging idx1 to be 2;
s910: when idx1 is equal to 2, performing binary arithmetic entropy coding processing on a binary symbol with a value of 0 by using an equiprobable model;
s911: when idx1 is not equal to 2, performing binary arithmetic entropy coding processing on the binary symbol with the value of 1 by using an equiprobable model, and continuing to execute the step 912;
when idx1 is not the index number value 1 of the motion information candidate list, it is necessary to continuously determine whether idx1 is the index number value 2 of the motion information candidate list; if idx1 is the index number value 2 of the motion information candidate list, then the equal probability model is used to perform binary arithmetic entropy coding processing on the binary symbol whose value is 0, and the flow shown in fig. 9 is ended; and if the idx1 is not the index sequence number value 2 of the motion information candidate list, performing binary arithmetic entropy coding processing on the binary symbol with the value of 1 by using an equiprobable model, and continuing to perform subsequent judgment.
S912: when idx1 is equal to 3, performing binary arithmetic entropy coding processing on a binary symbol with a value of 0 by using an equiprobable model;
it should be noted that, since the motion information candidate list only includes 5 pieces of motion information, and idx0 has already determined its corresponding index number value, the remaining index number values in the motion information candidate list may be 0,1,2, and 3; if idx1 is not the index number 2 of the motion information candidate list, idx1 is determined as the index number 3 of the motion information candidate list, and at this time, the binary arithmetic entropy coding process is performed on the binary symbol whose value is 0 by using the equiprobable model, and the flow shown in fig. 9 is ended.
Based on the flow shown in fig. 9, the obtained encoding result of idx1 is shown in table 2 or table 3. Wherein, table 2 shows the idx1 encoding results when idx1 is less than idx0, and "column" indicates the idx1 value, which is 0,1,2, 3; "line" represents the binIdx, i.e., the index number of one or more binary symbols (bins) resulting from binarization by idx 1; table 3 gives the idx1 encoding results when idx1> idx0, with "column" still indicating the idx1 values, which are 1,2,3, 4; the "row" still represents the binIdx, i.e., the index number of the binary symbol (bin) or symbols resulting from binarization by idx 1.
TABLE 2
Figure PCTCN2019107600-APPB-000005
TABLE 3
Figure PCTCN2019107600-APPB-000006
The present embodiment provides an encoding method, which is applied to an encoder. The specific implementation of the foregoing embodiment is explained in detail through the foregoing embodiment, and it can be seen that, one or more binary symbols are sequentially encoded by using a bypass model, so that all the binary symbols are binary encoded by using an equiprobable model, and the update operation of a context model can be reduced, thereby reducing the complexity of encoding; in addition, because the binary coding based on the equiprobable model is adopted to replace the binary coding based on the context model, the coding dependency between the inter-frame prediction and other merge modes can be eliminated, and the whole coding efficiency can not be lost on the premise of ensuring the coding and decoding performance.
Based on the application scenario example of fig. 3 or fig. 4, referring to fig. 10, a flowchart of a decoding method provided in an embodiment of the present application is shown, where the method is applied to a decoder, and the method may include:
s1001: analyzing the code stream to obtain the encoding mode parameter of the current block;
s1002: when the encoding mode parameter indicates that the current block adopts an interframe prediction geometric partition mode, analyzing a code stream by using a bypass model to obtain one or more binary symbols related to motion information index values of at least two partitions of the current block, wherein the bypass model represents that binary arithmetic entropy decoding is carried out by using an equiprobable model;
it should be noted that an image to be decoded may be divided into a plurality of image blocks, and an image block to be decoded currently may also be referred to as a current block (which may be represented by a CU), and an image block adjacent to the current block is also referred to as an adjacent block; that is, in the image to be decoded, the current block has a neighboring relationship with the neighboring block.
It should also be noted that the geometric partition mode of inter prediction can partition the current block into at least two partitions. Wherein the geometric partitioning pattern is the same at the decoder side and at the encoder side. In particular, the current block may be divided into at least two partitions, such as a first partition and a second partition, using a triangle division mode. Here, the triangulation mode may include a diagonal division type and an anti-diagonal division type, and thus, on the decoder side, it is also necessary to determine the type of the triangulation mode by parsing the code stream.
In some embodiments, when the encoding mode parameter indicates that the current block employs a geometric partition mode of inter prediction, the method may further include:
if the geometric partitioning mode is a triangular partitioning mode, analyzing a code stream by using a bypass model to obtain a symbol value related to the type of the triangular partitioning mode;
if the symbol value is a first symbol value, determining that the type of the triangle division mode is a diagonal division type;
and if the symbol value is a second symbol value, determining that the type of the triangular partition mode is an anti-diagonal partition type.
It should be noted that, the current block is divided into at least two partitions, and other geometric partition modes may also be adopted in addition to the triangle partition mode, and the embodiment of the present application is not particularly limited. If the geometric partition mode is determined to be the triangulation mode (TPM), since the triangulation mode may include a diagonal partition type and an anti-diagonal partition type, it needs to be judged at the decoder side.
Specifically, if the geometric partition mode of the current block is the triangle partition mode, at this time, the merge _ triangle _ split _ dir may be firstly parsed, the codestream may be parsed by using a binary decoder based on an equiprobable model to obtain a symbol value related to the type of the triangle partition mode, and then the type of the triangle partition mode may be determined according to the symbol value; for example, if the symbol value is a first symbol value, it may be determined that the type of the triangle division mode is a diagonal division type; if the symbol value is the second symbol value, it may be determined that the type of the triangle division mode is an anti-diagonal division type.
Here, the first symbol value and the second symbol value are different, wherein the first symbol value may be 0 and the second symbol value may be 1; or the first symbol value may be 1, and the second symbol value may be 0, which is not limited in this embodiment of the application. In addition, the symbol value on the decoder side also has an association relationship with the setting of the flag bit (dir) on the encoder side. Specifically, if on the encoder side, when the type of the triangle division mode is the diagonal division type, dir at this time is set to 0; then, at the decoder side, when the analyzed symbol value is 0, it is indicated that the type of the triangle division mode is a diagonal division type; if on the encoder side, dir at this time is set to 1 when the type of the triangle division mode is the anti-diagonal division type; then at the decoder side, when the parsed symbol value is 1, it indicates that the type of the triangle division mode is an anti-diagonal division type; or, if on the encoder side, dir at this time is set to 0 when the type of the triangle division mode is the anti-diagonal division type; then at the decoder side, when the parsed symbol value is 0, it indicates that the type of the triangle division mode is an anti-diagonal division type; if on the encoder side, when the type of the triangle division mode is the diagonal division type, dir at this time is set to 1; then at the decoder side, when the parsed symbol value is 1, it is stated that the type of the triangle division pattern is a diagonal division type.
Thus, when the encoding mode parameter indicates that the current block adopts the geometric partition mode of inter-frame prediction, in the decoding process, the merge _ triangle _ split _ dir can be firstly analyzed, and a binary decoder based on an equal probability model is utilized to analyze the code stream so as to judge the type of the triangular partition mode; the merge _ triangle _ idx0 and merge _ triangle _ idx1 may then continue to be parsed, still with an equal probability model-based binary decoder, to obtain one or more binary symbols associated with motion information index values of at least two partitions (e.g., a first partition and a second partition) of the current block.
S1003: converting the one or more binary symbols to obtain the motion information index value;
s1004: constructing a motion information candidate list by using motion information of a neighboring block adjacent to the current block based on the at least two partitions, and using the motion information in the motion information candidate list indicated by the motion information index value as the motion information of the current block;
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.
Thus, after obtaining the motion information index value and the motion information candidate list, the motion information of the current block can be determined; specifically, the motion information in the motion information candidate list indicated by the motion information index value may then be taken as the motion information of the current block according to the motion information candidate list.
S1005: and obtaining a predicted value of the current block according to the motion information of the current block.
It should be noted that after obtaining the motion information of the current block by parsing the code stream, the prediction value of the current block may be obtained according to the motion information of the current block.
In this embodiment of the present application, assuming that the geometric partition mode of inter-frame prediction is TPM, a first partition and a second partition may be obtained by partitioning a current block according to TPM. On the encoder side, the encoding process mainly comprises three parts: a first part for determining a flag bit (which may be denoted by dir) of a triangle division type; a second part, determining the index value of the motion information of the first partition, namely the index sequence number value (which can be represented by idx 0) of the motion information determined by the first partition in the motion information candidate list; and a third part, determining the index value of the motion information of the second partition, namely the index sequence number value (which can be represented by idx 1) of the motion information determined by the second partition in the motion information candidate list. Corresponding to the three-part encoding process, there are three important relevant syntax elements on the decoder side, as shown in table 4, which are merge _ triangle _ split _ dir, merge _ triangle _ idx0 and merge _ triangle _ idx1, respectively.
TABLE 4
Figure PCTCN2019107600-APPB-000007
Based on the code stream organization structure shown in table 4, corresponding to the encoding process, in the decoding process, first, the Merge _ triangle _ split _ dir needs to be analyzed, and a binary decoder based on an equal probability model is used for analyzing one bit of the code stream to judge the type of the triangle partition mode (for example, a diagonal partition type or an opposite diagonal partition type); analyzing Merge _ triangle _ idx0, still analyzing one bit of the code stream by using a binary decoder based on an equal probability model, and judging whether the motion information of the first partition is located at the first bit in the motion information candidate list according to whether a binary symbol obtained by analysis is 0; if the judgment result is negative, continuously analyzing the residual bits in the code stream by using a binary decoder based on the equal probability model until the position of the first binary symbol is 0 is analyzed, and obtaining the index sequence number value of the motion information of the first partition in the motion information candidate list, thereby obtaining the motion information of the first partition; then, in the same way as applied to the second partition, the Merge _ triangle _ idx1 is parsed to obtain the motion information of the second partition, which indicates the end of the decoding process.
It should be noted that when the code stream is transmitted from the encoder side to the decoder side, the code stream may be parsed by the decoder side. The bypass model can also be called bypass model or equiprobable model; therefore, the code stream is analyzed by using the bypass model, that is, all binary symbols in the embodiment of the application are all subjected to binary decoding by using the equal probability model, and compared with the existing TPM decoding which needs updating based on the context model, the updating operation of the context model can be reduced by using the binary decoding of the equal probability model to replace the binary decoding based on the context model which needs updating of the model, so that the decoding complexity is reduced; in addition, the decoding of the current TPM also needs to depend on the decoding of other merge modes, and the decoding of the TPM and the decoding of the merge modes use the same context model, so that the decoding process is influenced; in the embodiment of the application, binary decoding based on an equiprobable model is adopted to replace binary decoding based on a context model, so that the decoding dependency between the TPM and other merge modes in inter-frame prediction can be eliminated, and on the premise of ensuring the encoding and decoding performance, the decoding efficiency of the TPM is reduced, but the decoding efficiency of the context models used by other merge modes is improved, so that the integral decoding efficiency can be ensured not to be lost.
The embodiment provides a decoding method which is applied to a decoder. Obtaining the encoding mode parameter of the current block by analyzing the code stream; when the encoding mode parameters indicate that the current block adopts an interframe prediction geometric partition mode, analyzing the code stream by using a bypass model to obtain one or more binary symbols related to motion information index values of at least two partitions of the current block, wherein the bypass model represents that binary arithmetic entropy decoding is carried out by using an equiprobable model; converting one or more binary symbols to obtain a motion information index value; constructing a motion information candidate list by using motion information of a neighboring block adjacent to a current block based on at least two partitions, and using the motion information in the motion information candidate list indicated by the motion information index value as the motion information of the current block; obtaining a predicted value of the current block according to the motion information of the current block; in this way, the bypass model is used for analyzing the code stream to obtain one or more binary symbols related to the motion information index values of at least two partitions of the current block, so that all the binary symbols are subjected to binary decoding by adopting an equiprobable model, the updating operation of a context model can be reduced, and the decoding complexity is reduced; in addition, because the binary decoding based on the equiprobable model is adopted to replace the binary decoding based on the context model, the decoding dependency between the inter-frame prediction and other merge modes can be eliminated, and the overall decoding efficiency can not be lost on the premise of ensuring the coding and decoding performance.
Further, assuming that the geometric partitioning mode of inter-frame prediction is TPM, the current block is partitioned according to TPM to obtain a first partition and a second partition. That is to say, in the decoding process of VVC inter-frame prediction, when TPM is used, two partitions may decode successively, and the first bit of each partition is replaced by the original binary decoding based on the context model to the binary decoding based on the equal probability model, and the remaining bits still retain the original binary decoding based on the equal probability model. The decoding process for each partition will be described in detail below.
In some embodiments, for S1002, the parsing, by using the bypass model, the obtaining one or more binary symbols related to motion information index values of at least two partitions of the current block may include:
analyzing the code stream by using an equiprobable model aiming at one of the at least two partitions to obtain a kth binary symbol related to the motion information index value of the one partition;
judging whether the kth binary symbol is equal to 0 or not;
when the k-th binary symbol is equal to 0, determining that the index sequence number value of the motion information of the partition in the motion information candidate list is k;
when the kth binary symbol is not equal to 0, continuously analyzing the code stream by using an equiprobable model to obtain a kth +1 binary symbol, and judging whether the kth +1 binary symbol is equal to 0 or not; wherein k is 0,1,2,3, …, N-2, N is a positive integer greater than or equal to 2;
when the N-2 bit binary symbol is equal to 0, determining that the index sequence number value of the motion information of the partition in the motion information candidate list is N-2;
and when the N-2 bit binary symbol is not equal to 0, continuously analyzing the code stream by using an equiprobable model to obtain an N-1 bit binary symbol, and determining the index sequence number value of the motion information of the partition in the motion information candidate list to be N-1.
Further, in some embodiments, the at least two partitions include a first partition and a second partition, and the method may further include:
judging whether the second index sequence number value is larger than the first index sequence number value or not; the first index sequence number value is the index sequence number value of the determined motion information of the first partition in the motion information candidate list, and the second index value is the index sequence number value of the determined motion information of the second partition in the motion information candidate list;
and if the second index sequence number value is larger than the first index sequence number value, updating the second index sequence number value by using the value obtained by adding 1 to the second index sequence number value.
It should be noted that, in the embodiment of the present application, all binary symbols in at least two partitions will be binary decoded by using an equal probability model. In addition, N denotes the total number of pieces of motion information included in the motion information candidate list, and N is a positive integer greater than or equal to 2.
It should be further noted that, if at least two partitions include a first partition and a second partition, the first index number value corresponding to the first partition may be directly obtained according to the index number value of the motion information of the first partition in the motion information candidate list; if the second index sequence number value is not greater than the first index sequence number value, the second index sequence number value can be directly obtained according to the index sequence number value of the motion information of the second partition in the motion information candidate list; if the second index sequence number value is greater than the first index sequence number value, after the second index sequence number value is obtained according to the index sequence number value of the motion information of the second partition in the motion information candidate list, a value obtained by adding 1 to the second index sequence number value is used as the finally obtained second index sequence number value.
Exemplarily, for the first partition, as shown in fig. 11, a detailed flowchart of a decoding method provided in an embodiment of the present application is shown. Assuming that the index number value of the motion information of the first partition in the motion information candidate list is denoted by idx0, and N is 5, the detailed procedure may include:
s1101: analyzing the code stream by using an equal probability model to obtain a value bin [0] of a first binary symbol;
it should be noted that, in this step, a bit is read from a code stream (bitstream) for the first partition, and then the bit is parsed into bins; that is, the code stream is parsed to obtain a value bin [0] of a first bin in the syntax element.
S1102: judging that bin [0] ═ 0;
s1103: when bin [0] ═ 0, determine idx0 ═ 0;
s1104: when bin [0] is not equal to 0, continuously analyzing the code stream by using an equiprobable model to obtain a value bin [1] of a second bit binary symbol;
it should be noted that, by determining whether bin [0] is equal to 0, if bin [0] is equal to 0, it may be determined that idx0 is equal to 0, that is, the index number value of the motion information of the first partition in the motion information candidate list is 0, and the flow shown in fig. 11 is ended; if the bin [0] is not equal to 0, the code stream is continuously analyzed by using the equal probability model to obtain the value bin [1] of the second bit binary symbol, and subsequent judgment is carried out.
S1105: judging whether bin [1] is 0;
s1106: when bin [1] ═ 0, determine idx0 ═ 1;
s1107: when bin [1] is not equal to 0, continuously analyzing the code stream by using an equiprobable model to obtain a value bin [2] of a third bit binary symbol;
it should be noted that, by determining whether bin [1] is equal to 0, if bin [1] is equal to 0, it may be determined that idx0 is equal to 1, that is, the index number value of the motion information of the first partition in the motion information candidate list is 1, and the flow shown in fig. 11 is ended; if the bin [1] is not equal to 0, the code stream is continuously analyzed by using the equal probability model, a value bin [2] of a third bit binary symbol is obtained, and subsequent judgment is carried out.
S1108: judging that bin [2] ═ 0;
s1109: when bin [2] ═ 0, determine idx0 ═ 2;
s1110: when bin [2] is not equal to 0, continuously analyzing the code stream by using an equal probability model to obtain a value bin [3] of a fourth bit binary symbol;
it should be noted that, by determining whether bin [2] is equal to 0, if bin [2] is equal to 0, it may be determined that idx0 is 2, that is, the index number value of the motion information of the first partition in the motion information candidate list is 2, and the flow shown in fig. 11 is ended; if the bin [2] is not equal to 0, the code stream is continuously analyzed by using the equal probability model, the value bin [3] of the fourth bit binary symbol is obtained, and subsequent judgment is carried out.
S1111: judging that bin [3] ═ 0;
s1112: when bin [3] ═ 0, determine idx0 ═ 3;
s1113: when bin [3] is not equal to 0, continuously analyzing the code stream by using an equiprobable model to obtain a value bin [4] of a fourth bit binary symbol, and executing a step S1114;
s1114: idx0 was determined to be 4.
It should be noted that, by determining whether bin [3] is equal to 0, if bin [3] is equal to 0, it may be determined that idx0 is equal to 3, that is, the index number value of the motion information of the first partition in the motion information candidate list is 3, and the flow shown in fig. 11 is ended; if bin [3] is not equal to 0, then using an equiprobable model to continue analyzing the code stream to obtain a value bin [4] of a fourth bit binary symbol; since the motion information candidate list only includes 5 pieces of motion information, the index number value of the motion information candidate list may be 0,1,2,3, 4; when the index number value of the motion information of the first partition in the motion information candidate list is also 3 at this time, the index number value of the motion information of the first partition in the motion information candidate list is always 4, that is, idx0 is 4, and the flow shown in fig. 11 is ended.
For the second partition, as shown in fig. 12, a detailed flowchart of another decoding method provided in the embodiment of the present application is shown. Assuming that the index number value of the motion information of the second partition in the motion information candidate list is denoted by idx1, and N is 5, the detailed procedure may include:
s1201: analyzing the code stream by using an equal probability model to obtain a value bin [0] of a first binary symbol;
it should be noted that, in this step, a bit is read from a code stream (bitstream) for the second partition, and then the bit is parsed into bins; that is, the code stream is parsed to obtain a value bin [0] of a first bin in the syntax element.
S1202: judging that bin [0] ═ 0;
s1203: when bin [0] ═ 0, determine idx1 ═ 0;
s1204: when bin [0] is not equal to 0, continuously analyzing the code stream by using an equiprobable model to obtain a value bin [1] of a second bit binary symbol;
it should be noted that by determining whether bin [0] is equal to 0, if bin [0] is equal to 0, it may be determined that idx1 is equal to 0, that is, the index number value of the motion information of the second partition in the motion information candidate list is 0, and then S1211 is performed; if the bin [0] is not equal to 0, the code stream is continuously analyzed by using the equal probability model to obtain the value bin [1] of the second bit binary symbol, and subsequent judgment is carried out.
S1205: judging whether bin [1] is 0;
s1206: when bin [1] ═ 0, determine idx1 ═ 1;
s1207: when bin [1] is not equal to 0, continuously analyzing the code stream by using an equiprobable model to obtain a value bin [2] of a third bit binary symbol;
it should be noted that by determining whether bin [1] is equal to 0, if bin [1] is equal to 0, it may be determined that idx1 is equal to 1, that is, the index number value of the motion information of the second partition in the motion information candidate list is 1, and then S1211 is performed; if the bin [1] is not equal to 0, the code stream is continuously analyzed by using the equal probability model, a value bin [2] of a third bit binary symbol is obtained, and subsequent judgment is carried out.
S1208: judging that bin [2] ═ 0;
s1209: when bin [2] ═ 0, determine idx1 ═ 2;
s1210: when bin [2] is not equal to 0, continuously analyzing the code stream by using an equiprobable model to obtain a value bin [3] of a fourth bit binary symbol, and executing a step S1211;
s1211: determining idx1 ═ 3;
it should be noted that by determining whether bin [2] is equal to 0, if bin [2] is equal to 0, it may be determined that idx1 is 2, that is, the index number value of the motion information of the second partition in the motion information candidate list is 2, and then S1211 is performed; if bin [2] is not equal to 0, then using an equiprobable model to continue analyzing the code stream to obtain a value bin [3] of a fourth bit binary symbol; since the motion information candidate list only includes 5 motion information and idx0 has determined its corresponding index number value, the remaining index number values in the motion information candidate list may be 0,1,2, 3; when the index number value of the motion information of the second partition in the motion information candidate list is also 2, the index number value of the motion information of the second partition in the motion information candidate list must be 3, that is, idx1 is 3, and then the process continues to step S1212.
S1212: judgment idx1> idx 0;
s1213: when idx1 is greater than idx0, idx1 ═ idx1+ 1;
s1214: when idx1 is not greater than idx0, idx1 remains unchanged.
It should be noted that the determination condition in step S1212 may also be to determine that idx1> -idx 0, that is, to determine whether idx1 is greater than or equal to idx 0; when idx1 is greater than or equal to idx0, idx1 ═ idx1+ 1; when idx1 is less than idx0, idx1 remains unchanged. That is, for the case where idx1 is equal to idx0, step S1213 may be performed, i.e., idx1 ═ idx1+ 1; step S1214 may also be executed, that is, idx1 may remain unchanged, and the embodiment of the present application is not particularly limited.
Thus, after obtaining idx1 and idx0, it is also necessary to determine whether idx1 is greater than idx 0; if idx1 is greater than idx0, updating idx1 by idx1 ═ idx1+1, that is, the updated idx1 is the index number value of the motion information of the second partition in the motion information candidate list; if idx1 is not greater than idx0, idx1 remains unchanged, i.e., idx1 is the index number value of the motion information of the second partition in the motion information candidate list.
In the current solution, there is dependency between the TPM encoding and decoding process and other merge mode encoding and decoding processes, so that when the TPM encodes the first bit of each partition, the context model of the other merge mode encoding and decoding is multiplexed, and the encoding and decoding efficiency cannot be improved on the premise of high complexity (maintaining the model refresh operation). In the embodiment of the application, binary coding and decoding based on the context model in the TPM coding and decoding process are removed, binary coding and decoding based on the equal probability model are adopted, and on the premise that the performance is kept unchanged, due to the fact that dependence of TPM on coding and decoding of other merge modes is removed, bit coding and decoding efficiency of the context model used by the other merge modes is improved, and finally the purpose of not losing the whole coding and decoding efficiency can be achieved while complexity is reduced. Specifically, in the embodiment of the present application, for the analysis of the index number value of the motion information in the motion information candidate list, a binary codec based on a context model is not used for the first bit, but a binary codec based on an equal probability model is used, so that on the premise of not affecting the performance, not only the complexity can be reduced, but also the codec efficiency can not be lost.
The embodiment provides a decoding method which is applied to a decoder. The specific implementation of the foregoing embodiment is explained in detail through the foregoing embodiment, and it can be seen that one or more binary symbols related to motion information index values of at least two partitions of a current block are obtained by analyzing a code stream using a bypass model, so that all the binary symbols are binary decoded using an equiprobable model, and an update operation of a context model can be reduced, thereby reducing the complexity of decoding; in addition, because the binary decoding based on the equiprobable model is adopted to replace the binary decoding based on the context model, the decoding dependency between the inter-frame prediction and other merge modes can be eliminated, and the overall decoding efficiency can not be lost on the premise of ensuring the coding and decoding performance.
Based on the same inventive concept of the foregoing embodiment, refer to fig. 13, which shows a schematic structural diagram of an encoder 130 according to an embodiment of the present application. The encoder 130 may include: a first determination unit 1301, a first construction unit 1302, a binarization unit 1303, and an encoding unit 1304, wherein,
the first determining unit 1301 is configured to determine at least two partitions of a current block in an image to be encoded according to a geometric partition mode of inter prediction;
the first constructing unit 1302 is configured to construct a motion information candidate list using motion information of a neighboring block of the current block based on the at least two partitions;
the first determining unit 1301 is further configured to determine motion information of the at least two partitions from the motion information candidate list, and set a motion information index value as an index number value of the determined motion information in the motion information candidate list;
the binarization unit 1303 is configured to perform binarization processing on the motion information index value to obtain one or more binary symbols;
the encoding unit 1304 is configured to sequentially encode the one or more binary symbols by using a bypass model, and write bits obtained by encoding into a code stream, where the bypass model represents that binary arithmetic entropy encoding is performed by using an equiprobable model.
In the above scheme, the motion information includes at least a motion vector and a reference picture index.
In the above solution, referring to fig. 13, the encoder 130 may further include a partitioning unit 1305 configured to, if the geometric partition mode is a triangle partition mode, partition the current block according to the triangle partition mode to obtain at least two partitions of the current block; wherein the at least two partitions include a first partition and a second partition.
In the foregoing solution, the dividing unit 1305 is specifically configured to perform diagonal division on the current block according to a triangle division mode to obtain the first partition and the second partition.
In the above scheme, the dividing unit 1305 is specifically configured to perform anti-diagonal division on the current block according to a triangle division mode to obtain the first partition and the second partition.
In the above scheme, referring to fig. 13, the encoder 130 may further include a first judging unit 1306 configured to judge a type of the triangle division mode;
the encoding unit 1304 is further configured to set a flag bit to a first symbol value if the type of the triangle partition mode is a diagonal partition type, and perform binary arithmetic entropy encoding processing on the first symbol value by using an equiprobable model; and if the type of the triangular partition mode is an anti-diagonal partition type, setting the flag bit as a second symbol value, and performing binary arithmetic entropy coding processing on the second symbol value by using an equiprobable model.
In the above solution, the first determining unit 1301 is further configured to determine a first motion information index value corresponding to the first partition;
the first determining unit 1306 is further configured to determine whether the first motion information index value is equal to 0;
the encoding unit 1304 is configured to perform binary arithmetic entropy encoding processing on the binary symbol whose value is 0 by using an equiprobable model when the first motion information index value is equal to 0; when the first motion information index value is not equal to 0, performing binary arithmetic entropy coding processing on a binary symbol with the value of 1 by using an equiprobable model;
the first determining unit 1306 is further configured to continuously determine whether the first motion information index value is equal to i, where i is 1,2,3, …, N-1, and N is a positive integer greater than or equal to 2;
the encoding unit 1304 is further configured to perform binary arithmetic entropy encoding on the binary symbol with a value of 0 by using an equiprobable model when the first motion information index value is equal to N-1.
In the above solution, the encoding unit 1304 is further configured to perform binary arithmetic entropy encoding processing on a binary symbol whose value is 0 by using an equiprobable model when the first motion information index value is equal to i; and when the first motion information index value is not equal to i, performing binary arithmetic entropy coding processing on the binary symbol with the value of 1 by using an equiprobable model, and judging whether the first motion information index value is equal to i + 1.
In the above scheme, referring to fig. 13, the encoder 130 may further include a first updating unit 1307, wherein,
the first determining unit 1301 is further configured to determine a first motion information index value corresponding to the first partition and a second motion information index value corresponding to the second partition;
the first determining unit 1306 is further configured to determine whether the second motion information index value is greater than the first motion information index value;
the first updating unit 1307 is configured to, if the second motion information index value is greater than the first motion information index value, update the second motion information index value by using a value obtained by subtracting 1 from the second motion information index value;
the first determining unit 1306 is further configured to determine whether the second motion information index value is equal to j, where j is 0,1,2,3, …, N-2, and N is a positive integer greater than or equal to 2;
the encoding unit 1304 is further configured to perform binary arithmetic entropy encoding on the binary symbol with a value of 0 by using an equiprobable model when the second motion information index value is equal to N-2.
In the foregoing solution, the encoding unit 1304 is further configured to perform binary arithmetic entropy encoding processing on a binary symbol whose value is 0 by using an equiprobable model when the second motion information index value is equal to j; and when the second motion information index value is not equal to j, performing binary arithmetic entropy coding processing on the binary symbol with the value of 1 by using an equiprobable model, and judging whether the first motion information index value is equal to j + 1.
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 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 storing an encoding program that implements the encoding method described in any one of the preceding embodiments when executed by a first processor.
Based on the above-mentioned composition of the encoder 130 and the computer storage medium, referring to fig. 14, it shows a specific hardware structure of the encoder 130 provided in the embodiment of the present application, which may include: a first communication interface 1401, a first memory 1402, and a first processor 1403; the various components are coupled together by a first bus system 1404. It is understood that the first bus system 1404 is used to enable communications for connections between these components. The first bus system 1404 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 a first bus system 1404 in fig. 14. Wherein the content of the first and second substances,
a first communication interface 1401 for receiving and transmitting signals in a process of transmitting and receiving information to and from other external network elements;
a first memory 1402 for storing a computer program capable of running on the first processor 1403;
a first processor 1403, configured to perform, when running the computer program:
determining at least two partitions of a current block in an image to be coded according to a geometric partition mode of inter-frame prediction;
constructing a motion information candidate list using motion information of a neighboring block of the current block based on the at least two partitions;
determining the motion information of the at least two partitions from the motion information candidate list, and setting a motion information index value as an index sequence number value of the determined motion information in the motion information candidate list;
carrying out binarization processing on the motion information index value to obtain one or more binary symbols;
and sequentially coding the one or more binary symbols by using a bypass model, and writing the coded bits into a code stream, wherein the bypass model represents that binary arithmetic entropy coding is carried out by using an equiprobable model.
It will be appreciated that the first memory 1402 in the subject embodiment 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 1402 of the systems and methods described herein is intended to comprise, without being limited to, these and any other suitable types of memory.
And the first processor 1403 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 1403. The first Processor 1403 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 1402, and the first processor 1403 reads the information in the first memory 1402 and completes the steps of the above method in combination with the 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 1403 is further configured to execute the encoding method in any one of the previous embodiments when the computer program is executed.
The present embodiment provides an encoder that may include a first determining unit, a first constructing unit, a binarizing unit, and an encoding unit. Wherein the first determining unit is configured to determine at least two partitions of a current block in an image to be encoded according to a geometric partitioning mode of inter prediction; the first constructing unit is configured to construct a motion information candidate list using motion information of a neighboring block of the current block based on the at least two partitions; the first determining unit is further configured to determine motion information of at least two partitions from the motion information candidate list and set a motion information index value as an index number value of the determined motion information in the motion information candidate list; the binarization unit is configured to perform binarization processing on the motion information index value to obtain one or more binary symbols; the encoding unit is configured to sequentially encode one or more binary symbols by using a bypass model, and write bits obtained by encoding into a code stream, wherein the bypass model represents that binary arithmetic entropy encoding is performed by using an equiprobable model; in this way, the bypass model is utilized to sequentially encode one or more binary symbols, so that all the binary symbols are binary encoded by adopting the equal probability model, the updating operation of the context model can be reduced, and the encoding complexity is reduced; in addition, because the binary coding based on the equiprobable model is adopted to replace the binary coding based on the context model, the coding dependency between the inter-frame prediction and other merge modes can be eliminated, and the whole coding efficiency can not be lost on the premise of ensuring the coding and decoding performance.
Based on the same inventive concept of the foregoing embodiment, refer to fig. 15, which shows a schematic structural diagram of a decoder 150 according to an embodiment of the present application. The decoder 150 includes a parsing unit 1501, a conversion unit 1502, a second construction unit 1503, and a prediction unit 1504, wherein,
the parsing unit 1501 is configured to parse the code stream to obtain the encoding mode parameter of the current block;
the parsing unit 1501 is further configured to, when the encoding mode parameter indicates that the current block adopts an inter-frame prediction geometric partition mode, parse a code stream by using a bypass model to obtain one or more binary symbols related to motion information index values of at least two partitions of the current block, where the bypass model represents binary arithmetic entropy decoding by using an equiprobable model;
the converting unit 1502 is configured to convert the one or more binary symbols to obtain the motion information index value;
the second constructing unit 1503 is configured to construct a motion information candidate list using motion information of a neighboring block adjacent to the current block based on the at least two partitions, and use the motion information in the motion information candidate list indicated by the motion information index value as the motion information of the current block;
the prediction unit 1504 is configured to obtain a prediction value of the current block according to the motion information of the current block.
In the above scheme, the motion information includes at least a motion vector and a reference picture index.
In the above scheme, referring to fig. 15, the decoder 150 may further include a second determination unit 1505, wherein,
the parsing unit 1501 is further configured to parse a code stream by using a bypass model if the geometric partition mode is a triangle partition mode, and obtain a symbol value related to the type of the triangle partition mode;
the second determining unit 1505 is configured to determine the type of the triangle partition mode as a diagonal partition type if the symbol value is a first symbol value; and if the symbol value is a second symbol value, determining the type of the triangle division mode as an anti-diagonal division type.
In the above scheme, referring to fig. 15, the decoder 150 may further include a second determining unit 1506, wherein,
the parsing unit 1501 is configured to parse the code stream by using an equiprobable model for one of the at least two partitions, and obtain a kth binary symbol related to the motion information index value of the one partition;
the second determining unit 1506 is configured to determine whether the kth binary symbol is equal to 0;
the second determining unit 1505 is further configured to determine that the index sequence number value of the motion information of the one partition in the motion information candidate list is k when the k-th binary symbol is equal to 0;
the parsing unit 1501 is further configured to continue parsing the code stream by using an equiprobable model when the kth binary symbol is not equal to 0, so as to obtain a kth +1 th binary symbol;
the second determining unit 1506 is further configured to determine whether the (k + 1) th binary symbol is equal to 0; wherein k is 0,1,2,3, …, N-2, N is a positive integer greater than or equal to 2;
the second determining unit 1505 is further configured to determine that the index sequence number value of the motion information of the one partition in the motion information candidate list is N-2 when the N-2 bit binary symbol is equal to 0; and when the N-2 bit binary symbol is not equal to 0, continuously analyzing the code stream by using an equiprobable model to obtain an N-1 bit binary symbol, and determining the index sequence number value of the motion information of the partition in the motion information candidate list to be N-1.
In the above scheme, referring to fig. 15, the decoder 150 may further include a second updating unit 1507, wherein,
the second determining unit 1506 is further configured to determine whether the second index sequence number value is greater than the first index sequence number value; the first index sequence number value is the index sequence number value of the determined motion information of the first partition in the motion information candidate list, and the second index value is the index sequence number value of the determined motion information of the second partition in the motion information candidate list;
the second updating unit 1507 is configured to update the second index number value with a value obtained by adding 1 to the second index number value if the second index number value is greater than the first index number value.
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.
The integrated unit, if implemented in the form of a software functional module and not sold or used as a stand-alone product, may be stored in a computer readable storage medium. Based on such understanding, the present embodiment provides a computer storage medium storing a box-in detection program that implements the method of any one of the preceding embodiments when executed by a second processor.
Based on the above-mentioned composition of the decoder 150 and the computer storage medium, referring to fig. 16, it shows a specific hardware structure of the decoder 150 provided by the embodiment of the present application, which may include: a second communication interface 1601, a second memory 1602, and a second processor 1603; the various components are coupled together by a second bus system 1604. It is understood that the second bus system 1604 is used to enable connective communication between these components. The second bus system 1604 includes a power bus, a control bus, and a status signal bus in addition to the data bus. But for clarity of illustration the various buses are labeled as the second bus system 1604 in figure 16. Wherein the content of the first and second substances,
a second communication interface 1601, configured to receive and transmit signals during information transmission and reception with the charging box;
a second memory 1602 for storing computer programs capable of running on the second processor 1603;
a second processor 1603 for, when running the computer program, performing:
analyzing the code stream to obtain the encoding mode parameter of the current block;
when the encoding mode parameter indicates that the current block adopts an interframe prediction geometric partition mode, analyzing a code stream by using a bypass model to obtain one or more binary symbols related to motion information index values of at least two partitions of the current block, wherein the bypass model represents that binary arithmetic entropy decoding is carried out by using an equiprobable model;
converting the one or more binary symbols to obtain the motion information index value;
constructing a motion information candidate list by using motion information of a neighboring block adjacent to the current block based on the at least two partitions, and using the motion information in the motion information candidate list indicated by the motion information index value as the motion information of the current block;
and obtaining a predicted value of the current block according to the motion information of the current block.
Optionally, as another embodiment, the second processor 1603 is further configured to, when running the computer program, perform the method of any one of the preceding embodiments.
It is understood that the second memory 1602 is similar in hardware functionality to the first memory 1402, and the second processor 1603 is similar in hardware functionality to the first processor 1403; and will not be described in detail herein.
The present embodiment provides a decoder that may include a parsing unit, a conversion unit, a second construction unit, and a prediction unit. The analysis unit is configured to analyze the code stream to obtain the encoding mode parameter of the current block; the analysis unit is also configured to analyze the code stream by using a bypass model when the encoding mode parameter indicates that the current block adopts a geometric partition mode of interframe prediction, so as to obtain one or more binary symbols related to motion information index values of at least two partitions of the current block, wherein the bypass model represents that binary arithmetic entropy decoding is carried out by using an equiprobable model; the conversion unit is configured to convert one or more binary symbols to obtain a motion information index value; the second constructing unit is configured to construct a motion information candidate list by using motion information of a neighboring block adjacent to the current block based on at least two partitions, and to use motion information in the motion information candidate list indicated by the motion information index value as motion information of the current block; the prediction unit is configured to obtain a prediction value of the current block according to the motion information of the current block; in this way, the bypass model is used for analyzing the code stream to obtain one or more binary symbols related to the motion information index values of at least two partitions of the current block, so that all the binary symbols are subjected to binary decoding by adopting an equiprobable model, the updating operation of a context model can be reduced, and the decoding complexity is reduced; in addition, because the binary decoding based on the equiprobable model is adopted to replace the binary decoding based on the context model, the decoding dependency between the inter-frame prediction and other merge modes can be eliminated, and the overall decoding efficiency can not be lost on the premise of ensuring the coding and decoding performance.
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.
Industrial applicability
In the embodiment of the application, the method is applied to an encoder, and at least two partitions of a current block in an image to be encoded are determined according to a geometric partition mode of inter-frame prediction; constructing a motion information candidate list using motion information of a neighboring block of the current block based on the at least two partitions; determining the motion information of at least two partitions from the motion information candidate list, and setting the index value of the motion information as the index sequence number value of the determined motion information in the motion information candidate list; carrying out binarization processing on the motion information index value to obtain one or more binary symbols; sequentially coding the one or more binary symbols by using a bypass model, writing the coded bits into a code stream, and performing binary arithmetic entropy coding on the bypass model by using an equiprobable model; in this way, the bypass model is utilized to sequentially encode one or more binary symbols, so that all the binary symbols are binary encoded by adopting the equal probability model, the updating operation of the context model can be reduced, and the encoding complexity is reduced; in addition, because the binary coding based on the equiprobability model is adopted to replace the binary coding based on the context model, the coding dependency between the inter-frame prediction and other merge modes can be eliminated, and the whole coding efficiency can not be lost on the premise of ensuring the coding and decoding performance; the method is also applied to a decoder, and the coding mode parameter of the current block is obtained by analyzing the code stream; when the encoding mode parameter indicates that the current block adopts an interframe prediction geometric partition mode, analyzing the code stream by using a bypass model to obtain one or more binary symbols related to motion information index values of at least two partitions of the current block, wherein the bypass model represents that binary arithmetic entropy decoding is carried out by using an equiprobable model; converting one or more binary symbols to obtain a motion information index value; constructing a motion information candidate list by using motion information of a neighboring block adjacent to a current block based on at least two partitions, and using the motion information in the motion information candidate list indicated by the motion information index value as the motion information of the current block; obtaining a predicted value of the current block according to the motion information of the current block; in this way, the bypass model is used for analyzing the code stream to obtain one or more binary symbols related to the motion information index values of at least two partitions of the current block, so that all the binary symbols are subjected to binary decoding by adopting an equiprobable model, the updating operation of a context model can be reduced, and the decoding complexity is reduced; in addition, because the binary decoding based on the equiprobable model is adopted to replace the binary decoding based on the context model, the decoding dependency between the inter-frame prediction and other merge modes can be eliminated, and the overall decoding efficiency can not be lost on the premise of ensuring the coding and decoding performance.

Claims (20)

  1. An encoding method applied to an encoder, the method comprising:
    determining at least two partitions of a current block in an image to be coded according to a geometric partition mode of inter-frame prediction;
    constructing a motion information candidate list using motion information of a neighboring block of the current block based on the at least two partitions;
    determining the motion information of the at least two partitions from the motion information candidate list, and setting a motion information index value as an index sequence number value of the determined motion information in the motion information candidate list;
    carrying out binarization processing on the motion information index value to obtain one or more binary symbols;
    and sequentially coding the one or more binary symbols by using a bypass model, and writing the coded bits into a code stream, wherein the bypass model represents that binary arithmetic entropy coding is carried out by using an equiprobable model.
  2. The method of claim 1, wherein the motion information comprises at least a motion vector and a reference picture index.
  3. The method of claim 1, wherein the determining at least two partitions of a current block in an image to be encoded according to a geometric partitioning mode of inter prediction comprises:
    if the geometric division mode is a triangle division mode, dividing the current block according to the triangle division mode to obtain at least two partitions of the current block; wherein the at least two partitions include a first partition and a second partition.
  4. The method of claim 3, wherein said partitioning the current block according to a triangle partition mode resulting in at least two partitions of the current block comprises:
    and carrying out diagonal division on the current block according to a triangular division mode to obtain the first partition and the second partition.
  5. The method of claim 3, wherein said partitioning the current block according to a triangle partition mode resulting in at least two partitions of the current block comprises:
    performing anti-diagonal partitioning on the current block according to a triangle partitioning mode to obtain the first partition and the second partition.
  6. The method of any of claims 3 to 5, wherein the method further comprises:
    judging the type of the triangle division mode;
    if the type of the triangular partition mode is a diagonal partition type, setting a flag bit as a first symbol value, and performing binary arithmetic entropy coding processing on the first symbol value by using an equiprobable model;
    and if the type of the triangular partition mode is an anti-diagonal partition type, setting the flag bit as a second symbol value, and performing binary arithmetic entropy coding processing on the second symbol value by using an equiprobable model.
  7. The method of claim 3, wherein the sequentially encoding the one or more binary symbols using a bypass model comprises:
    determining a first motion information index value corresponding to the first partition;
    judging whether the first motion information index value is equal to 0;
    when the first motion information index value is equal to 0, performing binary arithmetic entropy coding processing on a binary symbol with the value of 0 by using an equiprobable model;
    when the first motion information index value is not equal to 0, performing binary arithmetic entropy coding processing on a binary symbol with a value of 1 by using an equiprobable model, and continuously judging whether the first motion information index value is equal to i, wherein i is 1,2,3, …, N-1, and N is a positive integer greater than or equal to 2;
    and when the first motion information index value is equal to N-1, performing binary arithmetic entropy coding processing on the binary symbol with the value of 0 by using an equiprobable model.
  8. The method of claim 7, wherein the determining whether the first motion information index value is equal to i comprises:
    when the first motion information index value is equal to i, performing binary arithmetic entropy coding processing on a binary symbol with a value of 0 by using an equiprobable model;
    and when the first motion information index value is not equal to i, performing binary arithmetic entropy coding processing on the binary symbol with the value of 1 by using an equiprobable model, and judging whether the first motion information index value is equal to i + 1.
  9. The method of claim 3, wherein the sequentially encoding the one or more binary symbols using a bypass model comprises:
    determining a first motion information index value corresponding to the first partition and a second motion information index value corresponding to the second partition;
    judging whether the second motion information index value is larger than the first motion information index value;
    if the second motion information index value is larger than the first motion information index value, updating the second motion information index value by subtracting 1 from the second motion information index value, and judging whether the second motion information index value is equal to j or not; wherein j is 0,1,2,3, …, N-2, N is a positive integer greater than or equal to 2;
    and when the second motion information index value is equal to N-2, performing binary arithmetic entropy coding processing on the binary symbol with the value of 0 by using an equiprobable model.
  10. The method of claim 9, wherein the determining whether the second motion information index value is equal to j comprises:
    when the second motion information index value is equal to j, performing binary arithmetic entropy coding processing on the binary symbol with the value of 0 by using an equiprobable model;
    and when the second motion information index value is not equal to j, performing binary arithmetic entropy coding processing on the binary symbol with the value of 1 by using an equiprobable model, and judging whether the first motion information index value is equal to j + 1.
  11. A decoding method applied to a decoder, the method comprising:
    analyzing the code stream to obtain the encoding mode parameter of the current block;
    when the encoding mode parameter indicates that the current block adopts an interframe prediction geometric partition mode, analyzing a code stream by using a bypass model to obtain one or more binary symbols related to motion information index values of at least two partitions of the current block, wherein the bypass model represents that binary arithmetic entropy decoding is carried out by using an equiprobable model;
    converting the one or more binary symbols to obtain the motion information index value;
    constructing a motion information candidate list by using motion information of a neighboring block adjacent to the current block based on the at least two partitions, and using the motion information in the motion information candidate list indicated by the motion information index value as the motion information of the current block;
    and obtaining a predicted value of the current block according to the motion information of the current block.
  12. The method of claim 11, wherein the motion information comprises at least a motion vector and a reference picture index.
  13. The method of claim 11, wherein when the encoding mode parameter indicates that the current block employs a geometric partitioning mode of inter prediction, the method further comprises:
    if the geometric partitioning mode is a triangular partitioning mode, analyzing a code stream by using a bypass model to obtain a symbol value related to the type of the triangular partitioning mode;
    if the symbol value is a first symbol value, determining that the type of the triangle division mode is a diagonal division type;
    and if the symbol value is a second symbol value, determining that the type of the triangular partition mode is an anti-diagonal partition type.
  14. The method of claim 11, wherein the parsing the codestream using the bypass model to obtain one or more binary symbols associated with motion information index values of at least two partitions of the current block comprises:
    analyzing the code stream by using an equiprobable model aiming at one of the at least two partitions to obtain a kth binary symbol related to the motion information index value of the one partition;
    judging whether the kth binary symbol is equal to 0 or not;
    when the k-th binary symbol is equal to 0, determining that the index sequence number value of the motion information of the partition in the motion information candidate list is k;
    when the kth binary symbol is not equal to 0, continuously analyzing the code stream by using an equiprobable model to obtain a kth +1 binary symbol, and judging whether the kth +1 binary symbol is equal to 0 or not; wherein k is 0,1,2,3, …, N-2, N is a positive integer greater than or equal to 2;
    when the N-2 bit binary symbol is equal to 0, determining that the index sequence number value of the motion information of the partition in the motion information candidate list is N-2;
    and when the N-2 bit binary symbol is not equal to 0, continuously analyzing the code stream by using an equiprobable model to obtain an N-1 bit binary symbol, and determining the index sequence number value of the motion information of the partition in the motion information candidate list to be N-1.
  15. The method of claim 14, wherein the at least two partitions comprise a first partition and a second partition, the method further comprising:
    judging whether the second index sequence number value is larger than the first index sequence number value or not; the first index sequence number value is the index sequence number value of the determined motion information of the first partition in the motion information candidate list, and the second index value is the index sequence number value of the determined motion information of the second partition in the motion information candidate list;
    and if the second index sequence number value is larger than the first index sequence number value, updating the second index sequence number value by using the value obtained by adding 1 to the second index sequence number value.
  16. An encoder comprising a first determination unit, a first construction unit, a binarization unit, and an encoding unit, wherein,
    the first determining unit is configured to determine at least two partitions of a current block in an image to be encoded according to a geometric partition mode of inter prediction;
    the first constructing unit is configured to construct a motion information candidate list using motion information of a neighboring block of the current block based on the at least two partitions;
    the first determining unit is further configured to determine motion information of the at least two partitions from the motion information candidate list, and set a motion information index value as an index number value of the determined motion information in the motion information candidate list;
    the binarization unit is configured to perform binarization processing on the motion information index value to obtain one or more binary symbols;
    the encoding unit is configured to sequentially encode the one or more binary symbols by using a bypass model, and write bits obtained by encoding into a code stream, wherein the bypass model represents that binary arithmetic entropy encoding is performed by using an equiprobable model.
  17. A decoder comprising a parsing unit, a conversion unit, a second construction unit and a prediction unit, wherein,
    the analysis unit is configured to analyze the code stream to obtain the encoding mode parameter of the current block;
    the analysis unit is further configured to analyze a code stream by using a bypass model when the encoding mode parameter indicates that the current block adopts an interframe prediction geometric partition mode, and obtain one or more binary symbols related to motion information index values of at least two partitions of the current block, wherein the bypass model represents that binary arithmetic entropy decoding is performed by using an equiprobable model;
    the conversion unit is configured to convert the one or more binary symbols to obtain the motion information index value;
    the second constructing unit is configured to construct a motion information candidate list by using motion information of a neighboring block adjacent to the current block based on the at least two partitions, and use the motion information in the motion information candidate list indicated by the motion information index value as the motion information of the current block;
    the prediction unit is configured to obtain a prediction value of the current block according to the motion information of the current block.
  18. An encoder comprising a first memory and a first processor, wherein,
    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 10.
  19. A decoder comprising a second memory and a second processor, wherein,
    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 11 to 15.
  20. A computer storage medium, wherein the computer storage medium stores a computer program which, when executed by a first processor, implements the method of any of claims 1 to 10, or which, when executed by a second processor, implements the method of any of claims 11 to 15.
CN201980087954.1A 2019-09-24 2019-09-24 Encoding method, decoding method, encoder, decoder, and storage medium Active CN113261285B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/107600 WO2021056214A1 (en) 2019-09-24 2019-09-24 Encoding method, decoding method, encoder, decoder and storage medium

Publications (2)

Publication Number Publication Date
CN113261285A true CN113261285A (en) 2021-08-13
CN113261285B CN113261285B (en) 2023-06-02

Family

ID=75166244

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980087954.1A Active CN113261285B (en) 2019-09-24 2019-09-24 Encoding method, decoding method, encoder, decoder, and storage medium

Country Status (2)

Country Link
CN (1) CN113261285B (en)
WO (1) WO2021056214A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023202149A1 (en) * 2022-04-20 2023-10-26 苏州浪潮智能科技有限公司 State selection method and system for finite state entropy encoding, and storage medium and device
WO2024082153A1 (en) * 2022-10-18 2024-04-25 Oppo广东移动通信有限公司 Encoding method, decoding method, code stream, encoder, decoder and storage medium

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106797476A (en) * 2014-10-07 2017-05-31 高通股份有限公司 Frame in BC and interframe are unified
CN107046642A (en) * 2011-11-07 2017-08-15 华为技术有限公司 Video Decoder and video encoder with enhancing CABAC decodings
CN108293128A (en) * 2015-11-20 2018-07-17 联发科技股份有限公司 The method and device of global motion compensation in video coding and decoding system
US20180376151A1 (en) * 2017-05-30 2018-12-27 Thomson Licensing Method and device for picture encoding and decoding
US20190149823A1 (en) * 2017-11-13 2019-05-16 Electronics And Telecommunications Research Institute Method and apparatus for quantization
CN109922336A (en) * 2017-12-12 2019-06-21 华为技术有限公司 The inter-frame prediction method and device of video data
CN109963155A (en) * 2017-12-23 2019-07-02 华为技术有限公司 Prediction technique, device and the codec of the motion information of image block

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107046642A (en) * 2011-11-07 2017-08-15 华为技术有限公司 Video Decoder and video encoder with enhancing CABAC decodings
CN106797476A (en) * 2014-10-07 2017-05-31 高通股份有限公司 Frame in BC and interframe are unified
CN108293128A (en) * 2015-11-20 2018-07-17 联发科技股份有限公司 The method and device of global motion compensation in video coding and decoding system
US20180376151A1 (en) * 2017-05-30 2018-12-27 Thomson Licensing Method and device for picture encoding and decoding
US20190149823A1 (en) * 2017-11-13 2019-05-16 Electronics And Telecommunications Research Institute Method and apparatus for quantization
CN109922336A (en) * 2017-12-12 2019-06-21 华为技术有限公司 The inter-frame prediction method and device of video data
CN109963155A (en) * 2017-12-23 2019-07-02 华为技术有限公司 Prediction technique, device and the codec of the motion information of image block

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CHEN,FANGDONG 等: "Non-CE4: On the Context of Triangle Merge Index" *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023202149A1 (en) * 2022-04-20 2023-10-26 苏州浪潮智能科技有限公司 State selection method and system for finite state entropy encoding, and storage medium and device
WO2024082153A1 (en) * 2022-10-18 2024-04-25 Oppo广东移动通信有限公司 Encoding method, decoding method, code stream, encoder, decoder and storage medium

Also Published As

Publication number Publication date
CN113261285B (en) 2023-06-02
WO2021056214A1 (en) 2021-04-01

Similar Documents

Publication Publication Date Title
RU2720648C1 (en) Method and device for encoding or decoding an image with prediction of motion information between levels in accordance with a motion information compression circuit
TWI753356B (en) Method and apparatuses for coding transform blocks
JP7223045B2 (en) Multi-component image or video coding concept
JP5134001B2 (en) Scalable video coding with lower layer filtering
US20190200025A1 (en) Coded-block-flag coding and derivation
JP6081499B2 (en) Scan-based sliding window in context derivation for transform coefficient coding
JP2017184266A (en) Video decoder with enhanced cabac decoding
GB2519514A (en) Method and apparatus for displacement vector component prediction in video coding and decoding
KR20110056388A (en) System and method for video encoding using adaptive segmentation
KR20060088461A (en) Method and apparatus for deriving motion vectors of macro blocks from motion vectors of pictures of base layer when encoding/decoding video signal
TW202002636A (en) Trellis coded quantization coefficient coding
JP7439841B2 (en) In-loop filtering method and in-loop filtering device
KR101375667B1 (en) Method and apparatus for Video encoding and decoding
KR102123620B1 (en) Method and apparatus for entropy encoding or entropy decoding of video signals for large-scale parallel processing
CN116235496A (en) Encoding method, decoding method, encoder, decoder, and encoding system
CN113261285B (en) Encoding method, decoding method, encoder, decoder, and storage medium
KR20190117352A (en) Apparatus and method for video encoding or decoding
CN113497936A (en) Encoding method, decoding method, encoder, decoder, and storage medium
CN113784128A (en) Image prediction method, encoder, decoder, and storage medium
KR20120045369A (en) Video encoding/decoding apparatus and method for encoding and decoding of block filter information based on quad-tree
WO2022178686A1 (en) Encoding/decoding method, encoding/decoding device, encoding/decoding system, and computer readable storage medium
KR101979379B1 (en) Method and apparatus for encoding image, and method and apparatus for decoding image
WO2023050431A1 (en) Encoding method, decoding method, decoder, encoder and computer-readable storage medium
JP7387806B2 (en) Image decoding device, image decoding method and program
WO2022246809A1 (en) Encoding method, decoding method, code stream, encoder, 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
GR01 Patent grant
GR01 Patent grant