CN111866515B - Vector difference decoding method and device and electronic equipment - Google Patents

Vector difference decoding method and device and electronic equipment Download PDF

Info

Publication number
CN111866515B
CN111866515B CN201910364638.6A CN201910364638A CN111866515B CN 111866515 B CN111866515 B CN 111866515B CN 201910364638 A CN201910364638 A CN 201910364638A CN 111866515 B CN111866515 B CN 111866515B
Authority
CN
China
Prior art keywords
component
true value
information
value
equal
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.)
Active
Application number
CN201910364638.6A
Other languages
Chinese (zh)
Other versions
CN111866515A (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.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co 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 Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201910364638.6A priority Critical patent/CN111866515B/en
Priority to PCT/CN2020/087887 priority patent/WO2020221317A1/en
Publication of CN111866515A publication Critical patent/CN111866515A/en
Application granted granted Critical
Publication of CN111866515B publication Critical patent/CN111866515B/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/19Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding using optimisation based on Lagrange multipliers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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
    • 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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Abstract

The embodiment of the invention provides a decoding method, a decoding device and decoding equipment. The decoding method comprises the following steps: acquiring code stream information, wherein the code stream information comprises first indication information, and the first indication information is used for indicating a block vector difference and a reference block vector of a current block; determining a reference block vector and a block vector difference according to the first indication information; determining a final block vector of the current block according to the reference block vector and the block vector difference; wherein determining the block vector difference based on the first indication information comprises: determining a true value of a first component and a true value of a second component according to the first indication information, wherein the block vector difference comprises the first component and the second component; determining a block vector difference according to the true value of the first component and the true value of the second component; wherein determining a true value for the second component comprises: and analyzing the preset truth value attribute information of the second component according to the preset truth value attribute information of the first component. Syntax redundancy in the fusion mode and the normal mode can be removed.

Description

Vector difference decoding method and device and electronic equipment
Technical Field
The present invention relates to the field of image coding technologies, and in particular, to a vector difference decoding method, device, and electronic device.
Background
In the process of restoring the image based on the residual, the decoding side needs to determine an image block to which the encoding side encodes an image block currently being decoded (hereinafter, referred to as a current decoded block). The coding Block may encode a Vector representing a relative displacement between a current coding Block and a reference Block, the Vector being referred to as a Motion Vector (MV) in an inter prediction technique, and the Vector being referred to as a Block Vector (BV) in an intra prediction technique and an intra Block copy technique, into a code stream. And the decoding end determines a reference block corresponding to the current decoding block according to the decoded vector. However, if the encoding end encodes the vector of each image block individually, the data size of the data used for transmitting the vectors in the code stream information may be large, which is not favorable for transmission.
In the related art, the coding block may determine a reference block among already coded image blocks for a current coding block, and encode an index value of the reference block into the code stream. The decoding block determines a reference block of the current decoding block based on the decoded index value, and copies a vector of the reference block to the current decoding block (hereinafter, this mode is referred to as a fusion mode). The encoding block may also determine a reference block in the already encoded image block for the current encoding block, encode a vector of the current encoding block, a difference value (hereinafter referred to as a vector difference) between the vector of the reference block and the vector of the current encoding block into the code stream, and encode an index value of the reference block into the code stream. The decoding block determines a candidate value of the current decoding block from the list based on the decoded index value, superimposes the candidate value on the decoded vector difference, and takes the superimposed result as a vector of the current decoding block (hereinafter referred to as a normal mode).
However, if the candidate value lists of the normal mode and the fusion mode are the same or close to each other, when the vector difference is (0,0), the vectors expressed by the fusion mode and the normal mode may be consistent. That is, in the encoding end and the decoding end, two different expression modes exist for the same vector, that is, syntax redundancy exists in the encoding end and the decoding end, which affects the performance of the encoding end and the decoding end.
Disclosure of Invention
The embodiment of the invention aims to provide a vector difference decoding method, a vector difference decoding device and electronic equipment, so that syntax redundancy in a fusion mode and a common mode is removed, and the performances of an encoding end and a decoding end are improved. The specific technical scheme is as follows:
in a first aspect of the embodiments of the present invention, a decoding method is provided, which applies a decoding end, the method including:
acquiring code stream information, wherein the code stream information comprises first indication information, and the first indication information is used for indicating a block vector difference and a reference block vector of a current block;
determining the reference block vector and the block vector difference according to the first indication information;
determining a final block vector of the current block according to the reference block vector and the block vector difference;
wherein determining the block vector difference according to the first indication information comprises:
determining a true value of a first component and a true value of a second component based on the first indication information, the block vector difference comprising the first component and the second component;
determining the block vector difference according to the true value of the first component and the true value of the second component;
wherein determining a true value of the second component comprises:
and analyzing the preset truth value attribute information of the second component according to the preset truth value attribute information of the first component.
In a second aspect of the embodiments of the present invention, there is provided an encoding method, applied to an encoding end, the method including:
determining a block vector difference and a reference block vector of a current block;
coding the block vector difference and the reference block vector into code stream information to obtain code stream information carrying first indication information, wherein the first indication information is used for indicating the block vector difference and the reference block vector;
wherein encoding the block vector differences comprises:
encoding a true value of a first component and a true value of a second component of the block vector difference;
wherein encoding the truth value for the second component comprises:
and encoding the preset truth value attribute information of the second component according to the truth value or the preset truth value attribute information of the first component.
In a third aspect of the embodiments of the present invention, there is provided a decoding method applied to a decoding end, the method including:
acquiring code stream information, wherein the code stream information comprises first indication information, and the first indication information is used for indicating the motion vector difference and the reference motion vector of the current block;
determining the motion vector difference and the reference motion vector according to the first indication information;
determining a final motion vector of the current block according to the motion vector difference and the reference motion vector;
wherein determining the motion vector difference according to the first indication information comprises:
determining a true value of a first component and a true value of a second component according to the first indication information, the motion vector including the first component and the second component;
determining the motion vector difference according to the true value of the first component and the true value of the second component;
wherein determining a true value of the second component comprises:
and analyzing the preset truth value attribute information of the second component according to the preset truth value attribute information of the first component.
In a fourth aspect of the embodiments of the present invention, there is provided an encoding method, applying an encoding side, the method including:
determining a motion vector difference and a reference motion vector of a current block;
coding the motion vector difference and the reference motion vector into code stream information to obtain code stream information carrying first indication information, wherein the first indication information is used for indicating the motion vector difference and the reference motion vector;
wherein encoding the motion vector difference comprises:
encoding a true value of a first component and a true value of a second component of the motion vector difference;
wherein encoding the truth value for the second component comprises:
and encoding the truth value attribute information of the second component according to the truth value or the preset truth value attribute information of the first component.
In a fifth aspect of the embodiments of the present invention, there is provided a decoding method applied to a decoding end, the method including:
acquiring code stream information, wherein the code stream information comprises first indication information, and the first indication information is used for indicating vector difference information and reference vector information of a current block;
determining the vector difference information and the reference vector information according to the first indication information;
determining final motion vector information of the current block according to the vector difference information and the reference vector information;
wherein determining the vector difference information according to the first indication information comprises:
determining a true value of a first component and a true value of a second component according to the first indication information, the motion vector including the first component and the second component;
determining the vector difference information according to the true value of the first component and the true value of the second component;
wherein determining a true value of the second component comprises:
analyzing the preset truth value attribute information of the second component according to the preset truth value attribute information of the first component;
wherein the ABVP mode of the intra block copy mode and the AMVP mode of the inter prediction share a syntax element decoding scheme of the vector difference information; when the current block starting intra block copy mode is determined according to the code stream information, the reference vector information determined according to the first indication information is a reference block vector of the current block, the vector difference information determined according to the first indication information is a block vector difference of the current block, and the final motion vector information determined according to the reference vector information and the vector difference information is a final block vector of the current block.
In a sixth aspect of the embodiments of the present invention, there is provided an encoding method applied to an encoding end, the method including:
determining vector difference information and reference vector information of a current block;
coding the vector difference information and the reference vector information into code stream information to obtain code stream information carrying first indication information, wherein the first indication information is used for representing the vector difference information and the reference vector information;
wherein encoding the vector difference information comprises:
encoding a true value of a first component and a true value of a second component of the vector difference information;
wherein encoding the truth value for the second component comprises:
encoding the truth value attribute information of the second component according to the truth value or the preset truth value attribute information of the first component;
wherein the ABVP of the intra block copy mode and the AMVP of the inter prediction mode share a coding syntax element of the vector difference information; when encoding decides an intra block copy mode, the reference vector information is a reference block vector of the current block, and the vector difference information is a block vector difference of the current block.
In a seventh aspect of the embodiments of the present invention, there is provided a decoding apparatus, including:
the code stream acquisition module is used for acquiring code stream information, wherein the code stream information comprises first indication information, and the first indication information is used for indicating the block vector difference and the reference block vector of the current block;
a decoding module, configured to determine the reference block vector and the block vector difference according to the first indication information;
a determining module, configured to determine a final block vector of the current block according to the reference block vector and the block vector difference;
wherein determining the block vector difference according to the first indication information comprises:
determining a true value of a first component and a true value of a second component based on the first indication information, the block vector difference comprising the first component and the second component;
determining the block vector difference according to the true value of the first component and the true value of the second component;
wherein determining a true value of the second component comprises:
and analyzing the preset truth value attribute information of the second component according to the preset truth value attribute information of the first component.
In an eighth aspect of embodiments of the present invention, there is provided an encoding apparatus, including:
a determining module for determining a block vector difference of the current block and a reference block vector;
the encoding module is used for encoding the block vector difference and the reference block vector into code stream information to obtain code stream information carrying first indication information, wherein the first indication information is used for indicating the block vector difference and the reference block vector;
wherein encoding the block vector differences comprises:
encoding a true value of a first component and a true value of a second component of the block vector difference;
wherein encoding the truth value for the second component comprises:
and encoding the preset truth value attribute information of the second component according to the truth value or the preset truth value attribute information of the first component.
In a ninth aspect of embodiments of the present invention, there is provided a decoding apparatus, including:
the code stream obtaining module is used for obtaining code stream information, wherein the code stream information comprises first indication information, and the first indication information is used for indicating the motion vector difference and the reference motion vector of the current block;
a decoding module, configured to determine the motion vector difference and the reference motion vector according to the first indication information;
a determining module, configured to determine a final motion vector of the current block according to the motion vector difference and the reference motion vector;
wherein determining the motion vector difference according to the first indication information comprises:
determining a true value of a first component and a true value of a second component according to the first indication information, the motion vector including the first component and the second component;
determining the motion vector difference according to the true value of the first component and the true value of the second component;
wherein determining a true value of the second component comprises:
and analyzing the preset truth value attribute information of the second component according to the preset truth value attribute information of the first component.
In a tenth aspect of the embodiments of the present invention, there is provided an encoding apparatus, including:
a determining module for determining a motion vector difference and a reference motion vector of the current block;
the encoding module is used for encoding the motion vector difference and the reference motion vector into code stream information to obtain code stream information carrying first indication information, wherein the first indication information is used for indicating the motion vector difference and the reference motion vector;
wherein encoding the motion vector difference comprises:
encoding a true value of a first component and a true value of a second component of the motion vector difference;
wherein encoding the truth value for the second component comprises:
and encoding the truth value attribute information of the second component according to the truth value or the preset truth value attribute information of the first component.
In an eleventh aspect of embodiments of the present invention, there is provided a decoding apparatus, including:
the code stream obtaining module is used for obtaining code stream information, wherein the code stream information comprises first indication information, and the first indication information is used for indicating vector difference information and reference vector information of a current block;
a decoding module, configured to determine the vector difference information and the reference vector information according to the first indication information;
a determining module, configured to determine final motion vector information of the current block according to the vector difference information and the reference vector information;
wherein determining the vector difference information according to the first indication information comprises:
determining a true value of a first component and a true value of a second component according to the first indication information, the motion vector including the first component and the second component;
determining the vector difference information according to the true value of the first component and the true value of the second component;
wherein determining a true value of the second component comprises:
analyzing the preset truth value attribute information of the second component according to the preset truth value attribute information of the first component;
wherein the ABVP mode of the intra block copy mode and the AMVP mode of the inter prediction share a syntax element decoding scheme of the vector difference information; when the current block starting intra block copy mode is determined according to the code stream information, the reference vector information determined according to the first indication information is a reference block vector of the current block, the vector difference information determined according to the first indication information is a block vector difference of the current block, and the final motion vector information determined according to the reference vector information and the vector difference information is a final block vector of the current block.
In a twelfth aspect of the embodiments of the present invention, there is provided an encoding apparatus, including:
a determining module for determining vector difference information and reference vector information of the current block;
the encoding module is used for encoding the vector difference information and the reference vector information into code stream information to obtain code stream information carrying first indication information, wherein the first indication information is used for representing the vector difference information and the reference vector information;
wherein encoding the vector difference information comprises:
encoding a true value of a first component and a true value of a second component of the vector difference information;
wherein encoding the truth value for the second component comprises:
encoding the truth value attribute information of the second component according to the truth value or the preset truth value attribute information of the first component;
wherein the ABVP of the intra block copy mode and the AMVP of the inter prediction mode share a coding syntax element of the vector difference information; when encoding decides an intra block copy mode, the reference vector information is a reference block vector of the current block, and the vector difference information is a block vector difference of the current block.
According to the vector difference decoding method, the vector difference decoding device and the electronic equipment, the preset truth value attribute information of the second component can be analyzed based on the preset truth value attribute information of the first component, so that the analysis of the second component depends on the first component, the vector difference of a specific numerical value can be avoided being obtained through analysis, therefore, the grammar redundancy in a fusion mode and a common mode can be removed, and the performances of an encoding end and a decoding end are improved. Of course, not all of the advantages described above need to be achieved at the same time in the practice of any one product or method of the invention.
Drawings
In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings used in the description of the embodiments or the prior art will be briefly described below, it is obvious that the drawings in the following description are only some embodiments of the present invention, and for those skilled in the art, other drawings can be obtained according to the drawings without creative efforts.
Fig. 1 is a flowchart illustrating a decoding method according to an embodiment of the present invention;
fig. 2 is a schematic flowchart of an encoding method according to an embodiment of the present invention;
FIG. 3a is a schematic flow chart of a decoding method according to an embodiment of the present invention;
fig. 3b is a schematic flow chart of an encoding method according to an embodiment of the present invention;
FIG. 4a is a schematic flowchart of another decoding method according to an embodiment of the present invention;
fig. 4b is a schematic flowchart of another encoding method according to an embodiment of the present invention;
fig. 5 is a schematic structural diagram of a decoding apparatus according to an embodiment of the present invention;
fig. 6 is a schematic structural diagram of an encoding apparatus according to an embodiment of the present invention;
fig. 7 is a schematic structural diagram of a decoding apparatus according to an embodiment of the present invention.
Detailed Description
The technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
For clarity of description, some terms appearing herein are explained below:
prediction pixel (Prediction Signal): the prediction pixel is a pixel value derived from a pixel which is already coded and decoded, a residual is obtained through the difference between an original pixel and the prediction pixel, and then residual transformation quantization and coefficient coding are carried out. Specifically, the inter prediction pixel refers to a pixel value derived from a reference frame (reconstructed pixel frame) of the current block, and a final prediction pixel needs to be obtained through an interpolation operation due to the pixel position dispersion. The closer the predicted pixel is to the original pixel, the smaller the residual energy obtained by subtracting the predicted pixel and the original pixel is, and the higher the coding compression performance is.
Motion Vector (MV): in inter-frame coding, the relative displacement between the current coding block and the best matching block in its reference picture is represented by a Motion Vector (MV). Each divided block has a corresponding motion vector to be transmitted to a decoding side. If the MVs of each block are coded and transmitted independently, especially divided into small-sized blocks, a considerable number of bits are consumed. In order to reduce the number of bits used for encoding a motion vector, in video encoding, the motion vector of a current block to be encoded is predicted according to the motion vector of an adjacent encoded block by using spatial correlation between adjacent image blocks, and then a prediction difference is encoded. This effectively reduces the number of bits representing the motion vector. Based on this, in the process of encoding the Motion Vector of the current image block, the Motion Vector of the current macroblock is generally predicted by using the Motion vectors of the adjacent encoded blocks, and then the Difference value (MVD) between the predicted value (MVP) of the Motion Vector and the true estimate value of the Motion Vector is encoded, so as to effectively reduce the number of bits for encoding the MV.
Motion Information (Motion Information): since the motion vector indicates a position offset of the current block from a block of a reference picture, in order to accurately acquire information pointing to the image block, index information of the reference picture is required to indicate which reference picture is used, in addition to the motion vector information. In the video coding technology, a reference picture list is usually established for a current picture based on a certain principle, and the reference picture index information indicates that the current block adopts the second reference picture in the reference picture list. In addition, many coding techniques also support multiple reference picture lists, and therefore an index value is needed to indicate which reference picture list is used, and generally we refer to this index value as the reference direction. In video coding, motion-related coding information such as motion vectors, reference frame indices, and reference directions are collectively referred to as motion information.
The Rate-Distortion principle (Rate-Distortion Optimized) has two major indexes for evaluating the coding efficiency: code rate and PSNR. The smaller the bitstream, the larger the compression rate; the larger the PSNR, the better the reconstructed image quality. In the mode selection, the discriminant formula is essentially the comprehensive evaluation of the two.
Cost corresponding to the mode: j (mode) ═ D + λ R. Wherein, D represents distorsion, which is usually measured by using SSE index, and SSE refers to the sum of the mean square of the difference values between the reconstructed block and the source image; λ is the Lagrangian multiplier; r is the actual number of bits required for encoding the image block in this mode, including the sum of bits required for encoding mode information, motion information, residual, etc. When selecting the mode, if the RDO principle is used to make a comparison decision on the coding mode, the best coding performance can be ensured.
Intra Prediction and Inter Prediction (Intra Prediction and Inter Prediction): intra-prediction refers to predictive coding using reconstructed pixel values of spatial neighboring blocks of a current block (in the same picture as the current block), and inter-prediction refers to predictive coding using reconstructed pixel values of temporal neighboring blocks of the current block (in a different picture from the current block).
Advanced Block Vector Prediction technique (ABVP): advanced block vector prediction techniques utilize block vector correlation at space-time to build a reference block vector list for the current coding unit in intra block copy mode. The encoder selects an optimal reference block vector from the reference block vectors, performs difference operation with the actual block vector to obtain a block vector difference, and encodes the position/index value of the reference block vector in the list and the block vector difference into a code stream.
Intra Block Copy mode (Intra Block Copy, IBC): the intra block copy mode refers to obtaining a predicted pixel of a Current block from a decoded area of the Current frame, similarly to taking the Current frame (decoded area) as a Reference frame of the Current block, so the technique is also referred to as Current Picture Reference (CPR).
Block Vector (Block Vector, BV): indicating that in intra block copy techniques, the current block points to a vector of reference blocks. Similar to inter prediction, the current block points to a Motion Vector (Motion Vector) of a reference block in a reference frame.
Advanced Motion Vector Prediction (AMVP): advanced motion vector prediction techniques utilize motion vector correlation in the spatio-temporal domain to build a reference motion vector list for the current coding unit of inter prediction. The encoder selects an optimal reference motion vector from the list, performs difference operation with the actual motion vector to obtain a motion vector difference, and encodes the position/index value of the reference motion vector in the list and the motion vector difference into a code stream.
The intra block copy technique requires block vector information to obtain the predicted pixels of the current block, and delivers the block vector to the decoding side through a fusion mode or a normal mode (i.e., an advanced block vector prediction mode ABVP mode). The method comprises the steps that an index value of a reference block is coded into a code stream in a fusion mode, a decoding end finds a corresponding reference block through the index value, and a block vector of the reference block is given to a current block; in the normal mode, an index value of a reference block where a reference block vector is located and a block vector difference (BVD, similar to MVD) are coded into a code stream, a decoding end finds a corresponding reference block through the index value, and the block vector of the reference block and the block vector difference are superposed to obtain a final block vector of a current block.
In the coding and decoding scheme of the intra block copy technology, in some application scenarios, the normal mode and the fusion mode use the same (or similar) list, for example, all the candidates of the normal mode exist in the candidate list of the fusion mode, and the length of the candidate list of the fusion mode is longer than that of the candidate list of the normal mode, that is, the candidate list of the normal mode is a subset of the candidate list of the fusion mode. In this case, if the encoding side uses the reference block index value X as a search starting point in the normal mode and the final block vector difference of the search is (0,0), the normal mode matches the block vector expressed in the fusion mode (the reference block index value of the fusion mode is also X). Namely, two expression modes exist, and the expressed block vectors are completely consistent, so that large syntax redundancy is caused, and the coding and decoding compression performance is influenced.
In view of the disadvantages of the related art, the embodiments of the present invention provide a decoding method to remove syntax redundancy in the case where the fusion mode and the normal mode have the same or similar candidate lists.
In a possible implementation manner of the present application, referring to fig. 1, fig. 1 is a schematic flowchart of a decoding method provided in an embodiment of the present invention, where the method is applied to a decoding end, and the method may include:
s110, code stream information is obtained, wherein the code stream information comprises first indication information, and the first indication information is used for indicating the block vector difference and the reference block vector of the current block.
The first indication information may be represented in different forms according to application scenarios. In one possible embodiment of the present application, the first indication information may be a plurality of consecutive or non-consecutive sets of syntax elements. The first indication information may include a plurality of indication information, and illustratively, the first indication information includes one or more indication information for indicating the block vector difference and also includes one or more indication information for indicating the reference block vector.
And S120, determining a difference between the reference block vector of the current block and the block vector of the current block according to the first indication information.
As an example, according to the first indication information, index information of the reference block vector in the ABVP candidate list supported by the intra block copy mode may be determined, and according to the index information, the reference block vector may be determined. For example, two candidates may be included in the ABVP candidate list, the index information may be used to indicate that the candidate is one candidate in the ABVP candidate list, and if the index information indicates the first candidate in the ABVP candidate list, the first candidate in the ABVP candidate list is determined as the reference block vector.
As an example, the truth value of the first component and the truth value of the second component may be determined according to the first indication information, and the block vector difference may be determined according to the truth value of the first component and the truth value of the second component.
As an example, determining the true value of the second component includes parsing the preset true value attribute information of the second component according to the preset true value attribute information of the first component. The preset truth value attribute information of the second component may be analyzed in different manners according to different preset truth value attribute information of the first component.
For example, the preset true value attribute information of the first component may be whether a true value of the first component is equal to 0, and the preset true value attribute information of the second component may be whether a true value of the second component is equal to 0, based on which whether the true value of the second component is equal to 0 is resolved according to whether the true value of the first component is equal to 0.
For example, in some application scenarios, in the intra block copy technique, in order to eliminate syntax redundancy of the ABVP mode and the fusion mode caused by the block vector difference being (0,0), the block vector difference indicated by the first indication information cannot be (0,0), and it may be determined that the absolute value of the true value of the second component is greater than 0 according to whether the true value of the first component is 0 and the resolution of whether the true value of the second component is 0 is not performed. In other application scenarios, whether the truth of the second component is 0 or not may be resolved according to the first indication information, where the truth value of the first component is not equal to 0. Essentially, both avoid the case where the true value of the first component and the true value of the second component are both 0.
As an example, the preset true value attribute information of a component may be determined according to a syntax element or syntax elements of the component, and for example, a component may include four syntax elements, where a first syntax element is used to indicate whether an absolute value of a true value is greater than 0, a second syntax element is used to indicate whether an absolute value of a true value is greater than 1, a third syntax element is used to indicate a portion where an absolute value of a true value exceeds 1, and a fourth syntax element is used to indicate a sign bit of a true value. Taking the first component as 5 as an example, the first syntax element of the first component is logic 1 (indicating that the absolute value of the true value of the first component is greater than 0), the second syntax element is logic 1 (indicating that the absolute value of the true value of the first component is greater than 1), the third syntax element is 3, and the fourth syntax element is logic 0 (indicating that the sign of the true value of the first component is a positive sign). For example, if the preset true value attribute information of the first component is used to indicate whether the true value of the first component is equal to 0, the preset true value attribute information may be determined by parsing the first syntax element. In essence, the attribute information of the preset truth value does not necessarily correspond to a grammar of a certain type, and can be derived from a single grammar or several grammars together.
In the first indication information, the syntax element of one component of the block vector difference may be decoded continuously or discontinuously, or may be decoded alternately with the syntax element of another component.
For convenience of description, the following syntax table is taken as an example:
TABLE 1
Figure GDA0002129915590000141
The meaning of each syntax element appearing in this syntax table is as follows:
abs _ bvd _ grease 0_ flag [0] for indicating whether the absolute value of the true value of the first component is greater than 0;
abs _ bvd _ grease 1_ flag [0] for indicating whether the absolute value of the true value of the first component is greater than 1;
abs _ bvd _ minus2[0] for indicating the portion where the true value of the first component exceeds 1;
bvd _ sign _ flag [0] is used to indicate the sign bit of the first component.
abs _ bvd _ grease 0_ flag [1] to indicate whether the absolute value of the true value of the second component is greater than 0;
abs _ bvd _ grease 1_ flag [1] to indicate whether the absolute value of the true value of the second component is greater than 1;
abs _ bvd _ minus2[1] for indicating the portion of the second component where the true value exceeds 1;
bvd _ sign _ flag [1] is used to indicate the sign bit of the second component.
The block vector difference may be represented in the form of the following set of syntax elements: { abs _ bvd _ grease 0_ flag [0], abs _ bvd _ grease 0_ flag [1], abs _ bvd _ grease 1_ flag [0], abs _ bvd _ grease 1_ flag [1], abs _ bvd _ minus2[0], abs _ bvd _ minus2[1], abs _ bvd _ minus2[1], bvd _ sign _ flag [1 }, which is only one possible representation of block vector differences, in other application scenarios, other representations of block vector differences may be used, and the example is not limiting.
And S130, determining a final block vector of the current block according to the reference block vector and the block vector difference.
As an example, a reference block vector may be superimposed with a block vector to obtain a final block vector of the current block.
By adopting the embodiment, the preset truth value attribute information of the second component can be analyzed based on the preset truth value attribute information of the first component, so that the analysis of the second component depends on the first component, and the vector difference of a specific numerical value can be avoided being obtained by analysis, thus removing the grammar redundancy in a fusion mode and a common mode, and further improving the performance of an encoding end and a decoding end.
In one possible implementation of the present application, the first component in the above embodiments is a transverse component, and the second component is a longitudinal component.
For example,
TABLE 2
Figure GDA0002129915590000161
In the syntax table, default true-value attribute information of the horizontal component is decoded first.
The first component may be a longitudinal component and the second component may be a transverse component.
In an example of the present invention, the encoding end and the decoding end may determine that the first component is a horizontal component and the second component is a vertical component according to the second indication information, or that the first component is a vertical component and the second component is a horizontal component.
The second indication information is used to indicate a decoding (encoding) order of the preset true-value attribute information of the horizontal component and the vertical component of the block vector difference, and if the second indication information is used to indicate that the preset true-value attribute information of the horizontal component is decoded (encoded) first, the first component is the horizontal component and the second component is the vertical component. If the second indication information indicates that the pre-set truth attribute information of the vertical component is decoded (encoded) first, the first component is the vertical component and the second component is the horizontal component.
For example,
TABLE 3
Figure GDA0002129915590000171
In comparison with table 2, the syntax table is default to decode the pre-determined true-valued attribute information of the vertical component.
As another example of the present invention,
TABLE 4
Figure GDA0002129915590000181
That is, the subsequent syntax parsing order may be changed in other preset manners, and does not necessarily coincide with the order indicated by the second indication information. In other words, the second indication information may indicate only the codec order of a part of the syntax elements, not the codec order of all the related syntax elements.
As another example of the present invention,
in the context of Table 5, the following examples are,
Figure GDA0002129915590000191
compared to table 2 or table 3, the decoding order of the horizontal component and the vertical component in the syntax table can be adjusted according to the syntax element bvd _ coding _ order.
The decoding end adaptively determines the decoding order of the preset true value attribute information of the first component and the second component of the block vector difference of the current block, which may include the following several ways.
As an example, the decoding end may also determine which component of each block of the current frame the preset true value attribute information of is decoded first (frame level) according to a case that the first component or the second component in the block vector difference information of each encoded block of the previous frame is 0 or 0.
As an example, the decoding end may also determine which component of the current block has the preset true value attribute information to decode first according to a condition that a first component is 0 or a second component is 0 in the block vector difference information of the current block encoded; (block level).
As an example, the decoding end may also determine, according to a case that a first component is 0 or a second component is 0 in block vector difference information of an encoded block of an encoded frame sequence, which component of the current block of the current frame is decoded first; (frame sequence level).
As an example, for the decoding end, the second indication information may be obtained by parsing the code stream information, or may be obtained by counting the number of image blocks in which a true value of a horizontal component is equal to 0 and the number of image blocks in which a true value of a vertical component is equal to 0 in an image block already decoded in a previous frame.
The second indication information is for indicating that the preset true value attribute information of the horizontal component of the current frame is decoded first if the true value of the horizontal component in the already decoded image block in the previous frame is equal to the number of image blocks of 0 and greater than the true value of the vertical component is equal to the number of image blocks of 0.
The second indication information indicates that the preset true value attribute information for the vertical component of the current frame is decoded first if the true value of the horizontal component in the already decoded image block in the previous frame is equal to the number of image blocks of 0 and less than the true value of the vertical component is equal to the number of image blocks of 0.
The already encoded image block may be an already encoded image block in the current frame to which the current block belongs, or may be an already encoded image block in an already encoded image frame.
In a possible example, the code stream information may further include third indication information, where the third indication information is used to indicate that a preset restoration operation is performed on a true value of the block vector difference, and the preset restoration operation may be a forced preset restoration operation or an optional preset transformation operation according to different application scenarios. The forced preset restoration operation may be a subtraction operation of an absolute value of the second component when a true value of the first component is equal to 0. The optional preset restoring operation may be to perform transformation according to an additional syntax element in the bitstream information, for example, when a true value of the first component is 0 and a true value before restoration of the second component is also 0, the true value of the second component may be restored to 1 or-1 according to the additional syntax element.
Determining the vector difference based on the true value of the first component and the true value of the second component may include: and restoring the true value of the block vector difference according to the third indication information, and determining the restored true value as the true value of the block vector difference.
The decoding end may determine to reply to the true value of the first component according to the third indication information; alternatively, the first and second electrodes may be,
according to the third indication information, determining to recover the true value of the second component; alternatively, the first and second electrodes may be,
and determining to recover the true value of the first component and the true value of the second component according to the third indication information.
The content indicated by the third indication information may be different according to the application scenario. For example, the third indication information may be used to indicate that the true value of the block vector difference is restored according to the preset offset direction information, and for example, the third indication information may also be used to restore the true value of the block vector difference according to the preset offset value and the preset offset direction information.
As an example of the manner in which the device may be used,
TABLE 6
Figure GDA0002129915590000211
A sign bit extra _ bvd _ sign _ flag needs to be additionally encoded in the syntax table to indicate that the true value of the block vector difference is restored according to the preset value.
In a possible implementation manner of the present application, referring to fig. 2, fig. 2 is a schematic flowchart of an encoding method provided in an embodiment of the present invention, where the method is applied to an encoding end, and the method may include:
s210, determining a block vector difference and a reference block vector of the current block.
S220, coding the block vector difference and the reference block vector, and adding the coding information into the code stream information to obtain the code stream information carrying the first indication information.
The first indication information indicates a block vector difference and a reference block vector. Encoding a block vector, comprising: the truth value of the first component and the truth value of the second component of the block vector difference are encoded. Encoding the truth value of the second component, comprising: and encoding the preset truth value attribute information of the second component according to the truth value or the preset truth value attribute information of the first component.
After the code stream information carrying the first indication information is obtained, the encoding end may send the code stream information to the decoding end.
In one possible implementation, the preset true value attribute information includes whether a true value is equal to 0;
encoding the preset truth value attribute information of the second component according to the truth value or the preset truth value attribute information of the first component, comprising: encoding whether the true value of the second component is equal to 0 according to whether the true value of the first component is equal to 0; wherein whether the true value is equal to 0 includes: whether the absolute value of the true value is equal to 0 or whether the absolute value of the true value is greater than 0.
In one possible implementation, encoding whether the true value of the second component is equal to 0 according to whether the true value of the first component is equal to 0 includes:
determining that the absolute value of the true value of the second component is greater than 0 according to the true value of the first component being equal to 0, and not performing encoding of the true value attribute information whether the true value of the second component is equal to 0.
In one possible implementation, encoding whether the true value of the second component is equal to 0 according to whether the true value of the first component is equal to 0 includes:
true attribute information is encoded whether a true value of a second component is equal to 0 based on a true value of the first component not being equal to 0.
In one possible implementation, the first component is a transverse component and the second component is a longitudinal component. Alternatively, the first component is a longitudinal component and the second component is a transverse component.
In one possible implementation, the method further includes:
determining second indication information, wherein the second indication information is used for indicating the coding sequence of the attribute information of the preset truth value of the transverse component and the longitudinal component of the block vector difference;
if the coding sequence is used for indicating that the preset truth value attribute information of the transverse component is coded first, the first component is the transverse component, and the second component is the longitudinal component;
if the coding sequence is used for indicating that the preset truth value attribute information of the longitudinal component is coded first, the first component is the longitudinal component, and the second component is the transverse component;
and carrying the second indication information in the code stream information.
For the encoding end, the second indication information may be determined according to an operation instruction input by a user.
As an example, the encoding side may determine which component of each block of the current frame is encoded first (frame level) according to a case where the first component or the second component in the block vector difference information of each encoded block of the previous frame is 0 or 0.
As an example, the encoding end may also determine which component of the current block has the preset true value attribute information encoded first according to a condition that a first component is 0 or a second component is 0 in the block vector difference information of the current block encoded; (block level).
As an example, the encoding end may also determine which component of the current block of the current frame is encoded first according to a condition that a first component is 0 or a second component is 0 in block vector difference information of an encoded block of the encoded frame sequence; (frame sequence level).
As an example, the encoding end counts the number of image blocks in which the true value of the horizontal component is equal to 0 and the number of image blocks in which the true value of the vertical component is equal to 0 among the already encoded image blocks in the previous frame, and if the true value of the horizontal component is equal to 0 and greater than the number of image blocks in which the true value of the vertical component is equal to 0, the second indication information is used to indicate that the preset true value attribute information of the horizontal component of the current frame is encoded first, and if the true value of the horizontal component is equal to 0 and less than the number of image blocks in which the true value of the vertical component is equal to 0, the second indication information is used to indicate that the preset true value attribute information of the vertical component of the current frame is encoded first.
In one possible implementation, before encoding the block vector difference, the method further comprises:
carrying out preset transformation operation on the true value of the block vector difference, and determining the transformed true value as the true value of the block vector difference;
encoding the true value of the second component, further comprising:
generating third indication information according to the preset transformation operation, wherein the third indication information is used for indicating a decoding end to perform preset recovery operation on a true value after block vector difference transformation, and the preset recovery operation is the inverse operation of the preset transformation operation;
carrying the third indication information in the code stream information;
the preset transformation operation is used for transforming the truth value after the first component transformation; alternatively, the first and second electrodes may be,
the preset transformation operation is used for transforming the truth value after the second component transformation; alternatively, the first and second electrodes may be,
the preset transformation operation is to transform the transformed true value of the first component and the transformed true value of the second component.
In a possible implementation manner, the third indication information is used for indicating that a true value after block vector difference transformation is restored according to preset offset direction information; or
And the third indication information is used for indicating that the true value after the block vector difference transformation is restored according to the preset deviation value and the preset deviation direction information.
As an example, when the block vector difference of the current block is (0, y),
if y >0, changing the block vector difference to (0, y-1) before encoding the block vector difference of the current block;
if y <0, the block vector difference is changed to (0, y +1) before encoding the block vector difference of the current block.
Particularly, when y is ± 1, since the changed value becomes (0,0), the decoding end cannot determine the sign bit of the latter and recovers ± 1, and thus it is necessary to additionally encode one sign bit extra _ bvd _ sign _ flag.
The same principle is applied to the change of the encoding order in the horizontal and vertical directions, namely, (0, y) is changed into (x,0), and if x >0, the BVD is changed into (x-1, 0);
if x <0, the block vector difference is changed to (y +1, 0).
Particularly, when x is ± 1, since the changed value becomes (0,0), the decoding end cannot determine the sign bit of the latter and recover ± 1, and thus it is necessary to additionally encode a sign bit extra _ bvd _ sign _ flag.
As an example, determining a block vector difference for a current block comprises:
if the current block starts the intra block copy mode and the reference block vector is used as a search starting point according to the ABVP mode, searching the final block vector difference as the block vector difference of the current block,
and if the searched final block vector difference is (0,0), changing the search result of the ABVP mode into a corresponding fusion mode pointing to the same reference block vector, and not executing fusion mode decision any more.
As an example, determining a block vector difference for a current block comprises:
if the current block starts the intra block copy mode and the final block vector difference is searched according to the ABVP mode to be used as the block vector difference of the current block, the position pointed by the reference block vector is skipped in the searching process. .
Since the embodiment of the encoding method is basically similar to the embodiment of the decoding method, the description is simple, and for the relevant points, reference may be made to the partial description of the method embodiment
For a clearer description, the decoding method provided by the present invention will be described below with reference to possible examples, which do not limit the decoding method provided by the present invention.
In a possible application scenario, in the intra block copy technology, in order to avoid syntax redundancy between the normal mode and the blend mode due to the block vector difference in the normal mode being (0,0), the encoding end may transfer the block vector difference in the intra block copy mode such that the transferred block vector difference is not (0, 0).
For example, the encoding end may use the search result of the normal mode as the search result of the fusion mode when the final block vector difference is (0,0) after the search, and may not perform the step of searching the final block vector difference according to the fusion mode using the reference block vector as the search starting point, and transfer the block vector to the decoding end through the fusion mode. The encoding side may also search for the final block vector difference as the block vector difference of the current block in the normal mode, and the search starting point skips the (0,0) position.
In an example, the method for encoding the block vector difference of the current block at the encoding end may refer to fig. 3a, and may include:
s311, a first syntax element of a first component of a block vector difference of the current block is encoded.
The first syntax element is for indicating whether an absolute value of a true value is greater than 0, and indicating that the absolute value of the true value is equal to 0 when the first syntax element is a logical 0 and greater than 0 when the first syntax element is a logical 1. For example, if the true value of the first component is 2, the encoded true value attribute information is logic 1 because the absolute value of the true value of the first component is greater than 0, and if the true value of the first component is 0, the encoded true value attribute information is logic 0 because the absolute value of the true value of the first component is not greater than 0.
The logic 0 and the logic 1 may be represented by different characters according to an application scenario, for example, according to an actual requirement, the logic 0 may be represented by a numeral 0, the logic 1 may be represented by a numeral 1, or the logic 0 may be represented by a letter N, and the letter Y represents a logic 1, which is not limited in this embodiment.
S312, if the true value of the first component is not equal to 0, a first syntax element of a second component of the block vector difference of the current block is encoded.
The true value of the first component is not equal to 0, and may be determined by determining whether the true value (or the absolute value of the true value) of the first component is equal to 0, or may be determined by determining whether the absolute value of the true value of the first component is greater than 0. The true value of the first component is not equal to 0 if the absolute value of the true value of the first component is greater than 0, and the true value of the first component is equal to 0 if the absolute value of the true value of the first component is equal to 0.
For the encoding end, the true value of the first component is known, so that whether the first component is equal to 0 or not can be determined directly according to the true value of the first component or according to the true value attribute information of the first component. Illustratively, if the truth attribute information for the first component indicates that the absolute value of the truth value for the first component is greater than 0, then it is determined that the truth value for the first component is not equal to 0,
if the true value of the first component is not equal to 0, the second component of the block vector difference may be 0, thus requiring the first syntax element of the second component to be encoded.
If the true value of the first component is equal to 0, the true value of the second component is not equal to 0 since the block vector difference is not (0,0), so in this case it can be directly determined that the true value of the second component is not equal to 0 without the need to encode the first syntax element of the second component. In other encoding schemes, if the true value of the first component is equal to 0, then there is no need to encode a true value of the second component of 0.
S313, if the truth values of the first component do not equal 0, encoding a second syntax element of the first component.
The second syntax element is for indicating whether an absolute value of a true value is greater than 1, and indicating that the absolute value of the true value is not greater than 1 when the second syntax element is a logical 0 and greater than 1 when the second syntax element is a logical 1. For example, if the true value of the second component is 2, the encoded true value attribute information is logic 1 because the absolute value of the true value of the first component is greater than 1, and if the true value of the first component is 0, the encoded true value attribute information is logic 0 because the absolute value of the true value of the first component is not greater than 1.
If the true value of the first component is equal to 0, the absolute value of the true value of the first component is not greater than 1, and thus the second syntax element of the first component does not need to be encoded.
S314, if the truth values of the second component of the block vector difference of the current block do not equal 0, encoding a second syntax element of the second component.
It may be determined directly whether the true value of the second component is equal to 0 based on the true value of the second component, or it may be determined directly that the true value of the second component is not equal to 0 based on the true value of the first component being equal to 0.
If the true value of the second component is equal to 0, the absolute value of the true value of the second component is not greater than 1, and thus the second syntax element of the second component does not need to be encoded.
S315, if the absolute value of the true value of the first component is greater than 1, encoding a third syntax element of the first component.
The third syntax element is used to indicate a portion where the absolute value of the true value exceeds 1, and may be represented by a difference value between the absolute value of the true value and 2. For example, if the true value of the first component is 2, the third true value attribute information may be 0, and if the true value of the first component is 6, the third true value attribute information may be 3.
If the absolute value of the true value of the first component is not greater than 1, there is no portion of the true value of the first component that exceeds 1, and thus there is no need to encode the third syntax element of the first component.
S316, if the absolute value of the true value of the first component is greater than 0, encoding a fourth syntax element of the true value of the first component.
The fourth syntax element is for indicating whether the sign bit of the true value is a positive sign or not, and when the fourth syntax element is a logic 0, the sign bit of the true value is a positive sign, and when the first syntax element is a logic 1, the sign bit of the true value is a negative sign. Illustratively, the fourth syntax element may be a logic 0 if the true value of the first component is 5 and a logic 1 if the true value of the first component is-3.
If the true value of the first component is equal to 0, the true value of the first component has no sign bit, and thus the fourth syntax element of the first component does not need to be encoded.
S317, if the absolute value of the true value of the second component is greater than 1, encoding a third syntax element of the second component.
If the absolute value of the true value of the second component is not greater than 1, there is no portion of the true value of the second component that exceeds 1, and therefore there is no need to encode the third syntax element of the second component.
S318, if the absolute value of the true value of the second component is greater than 0, encoding a fourth syntax element of the true value of the second component.
If the true value of the second component is equal to 0, the true value of the second component has no sign bit, and thus the fourth syntax element of the second component does not need to be encoded.
The decoding method of the block vector difference of the current block at the decoding end may refer to fig. 3b, and may include:
s321, a first syntax element of a first component of a block vector difference of the current block is decoded.
For the first syntax element, reference may be made to the related description in the foregoing S211, which is not described herein again. By decoding the first syntax element of the first component, the decoding end may determine whether a true value of the first component is equal to 0.
S322, if the true value of the first component is not equal to 0, the first syntax element of the second component is decoded.
For the decoding side, the true value of the first component is unknown. Therefore, it can be determined whether the true value of the first component is equal to 0 according to the true value attribute information of the first component parsed from one or some syntax elements obtained from the code stream information.
If the true value of the first component is not equal to 0, then the true value of the second component may be equal to 0, thus requiring the decoding of the first syntax element of the second component. If the true value of the first component is equal to 0 because the block vector difference is not (0,0), and therefore the true value of the second component is not equal to 0, the decoding end does not need to decode the first syntax element of the second component, and can directly determine that the absolute value of the true value of the second component is greater than 0.
S323, if the true value of the first component is not equal to 0, decoding the second syntax element of the first component.
For the second syntax element, reference may be made to the related description in the foregoing S213, which is not described herein again. If the true value of the first component is equal to 0, the absolute value of the true value of the first component is not greater than 1, and thus there is no need to decode the second syntax element of the first component.
S324, if the true value of the block vector difference second component of the current block is not equal to 0, decoding a second syntax element of the second component.
If the true value of the second component is equal to 0, the absolute value of the true value of the second component is not greater than 1, and thus there is no need to decode the second syntax element of the second component.
S325, if the absolute value of the true value of the first component is greater than 1, decoding a third syntax element of the first component.
For the third syntax element, reference may be made to the related description in the foregoing S215, which is not described herein again. If the absolute value of the true value of the first component is not greater than 1, there is no portion of the absolute value of the true value of the first component that exceeds 1, and thus there is no need to decode the third syntax element of the first component.
S326, if the true value of the first component is not equal to 0, the fourth syntax element of the first component is decoded.
For the fourth syntax element, reference may be made to the related description in the foregoing S216, which is not described herein again. If the true value of the first component is equal to 0, the true value of the first component does not have a sign bit, and thus there is no need to decode the fourth syntax element of the first component.
S327, if the absolute value of the true value of the first component is greater than 1, decoding a third syntax element of the first component.
If the absolute value of the true value of the second component is not greater than 1, there is no portion of the absolute value of the true value of the second component that exceeds 1, and therefore there is no need to decode the third syntax element of the second component.
S328, if the true value of the first component is not equal to 0, the fourth syntax element of the first component is decoded.
If the true value of the second component is equal to 0, the true value of the second component does not have a sign bit, and thus there is no need to decode the fourth syntax element of the second component.
After decoding the syntax elements of the first component and the second component, the decoding may determine the true values of the first component and the second component. For example, assuming that the first syntax element of the first component is logic 1, the second syntax element is logic 1, the third syntax element is 3, and the fourth syntax element is logic 0, the true value of the first component may be determined to be 5. Assuming that the first syntax element of the first component is a logic 1, the second syntax element is a logic 0, and the fourth syntax element is a logic 1, a true value of the first component may be determined to be-1.
The decoding method and the coding method can be realized through different syntax tables in different application scenes. For example, the syntax table may be implemented by the following syntax table, which is only one possible example and does not limit the embodiments of the present invention:
TABLE 7
Figure GDA0002129915590000301
In the syntax table, whether or not to decode the first syntax element of the second component and whether or not to decode the second syntax element of the first component are determined once.
abs _ bvd _ header 0_ flag [0], abs _ bvd _ header 1_ flag [0], abs _ bvd _ minus2[0], bvd _ sign _ flag [0] respectively represent first to fourth syntax elements of the first component, and abs _ bvd _ header 0_ flag [1], abs _ bvd _ header 1_ flag [1], abs _ bvd _ minus2[1], bvd _ sign _ flag [1] respectively represent first to fourth syntax elements of the second component. "if" is a conditional statement, "! Meaning not equal.
In another example, the encoding method of the encoding end may refer to fig. 4a, and may include:
s411, a first syntax element of a block vector difference first component of the current block is encoded.
Reference may be made to the related description in the foregoing S211, which is not described in detail herein.
In step S412, it is determined whether the true value of the first component is equal to 0, if the true value of the first component is equal to 0, step S413 is performed, and if the true value of the first component is not equal to 0, step S414 is performed.
S413, encoding the second syntax element of the first component.
Reference may be made to the related description in the foregoing S213, which is not described in detail herein.
S414, the first syntax element of the second component is encoded.
Reference may be made to the related description in the foregoing S212, which is not described in detail herein.
S415, if the truth values of the second component do not equal 0, encoding the second syntax element of the first component.
Reference may be made to the related description in the foregoing S214, which is not described in detail herein.
S416, if the absolute value of the true value of the first component is greater than 1, encoding a third syntax element of the first component.
Reference may be made to the related description in the foregoing S215, which is not described in detail herein.
S417, if the true value of the first component is not equal to 0, a fourth syntax element of the true value of the first component is encoded.
Reference may be made to the related description in the foregoing S216, which is not described in detail herein.
S418, if the absolute value of the true value of the block vector difference second component of the current block is greater than 1, encoding third true value attribute information of the second component.
Reference may be made to the foregoing description in S217, which is not repeated herein.
The decoding method of the decoding end may be as shown in fig. 4b, and may include:
s421, a first syntax element of the first component is decoded.
Reference may be made to the foregoing description of S221, which is not repeated herein.
S422, determine whether the true value of the first component is equal to 0, if the true value of the first component is equal to 0, go to S423, and if the true value of the first component is not equal to 0, go to S424.
S423, if the true value of the first component is not equal to 0, decoding a second syntax element of the first component.
Reference may be made to the foregoing description of S223, which is not repeated herein.
S424, the first syntax element of the second component is decoded.
Reference may be made to the foregoing description of S222, which is not repeated herein.
S425, if the true value of the second component is not equal to 0, decoding a second syntax element of the second component.
Reference may be made to the foregoing description of S224, which is not repeated herein.
S426, if the absolute value of the true value of the first component is greater than 1, decoding a third syntax element of the first component.
Reference may be made to the foregoing description of S225, which is not repeated herein.
S427, if the true value of the first component is not equal to 0, the fourth syntax element of the first component is decoded.
Reference may be made to the foregoing description of S226, which is not repeated herein.
S428, if the absolute value of the true value of the first component is greater than 1, decoding a third syntax element of the first component.
Reference may be made to the foregoing description of S227, which is not repeated herein.
S429, if the true value of the first component is not equal to 0, decoding the fourth syntax element of the first component.
Reference may be made to the foregoing description of S228, which is not repeated herein.
Taking the encoding method in this example as an example, the two steps S413 and S414 share the same judgment, so that compared with the example shown in fig. 2, one judgment can be reduced to improve the encoding efficiency. The decoding scheme in this example is similar to that shown in fig. 2, and one decision can be reduced to improve decoding efficiency.
The decoding method and the coding method can be realized through different syntax tables in different application scenes. For example, the syntax table may be implemented by the following syntax table, which is only one possible example and does not limit the embodiments of the present invention:
TABLE 8
Figure GDA0002129915590000331
"else" indicates that otherwise, compared to table 7, the syntax table has a decision whether to decode the first syntax element of the second component and a decision whether to decode the second syntax element of the first component, i.e. a decision is reduced relative to table 7.
In another example, the syntax table used for the codec may be as follows:
TABLE 9
Figure GDA0002129915590000332
Figure GDA0002129915590000341
Different types of syntax elements from those in table 1 are used in the syntax to represent the preset true value attribute information.
When the encoding end encodes the true-value attribute information of the first component, the syntax element may be encoded according to the following table:
watch 10
Figure GDA0002129915590000342
There is a syntax element corresponding to (0,0) in the syntax table. The Proposed Method is an MVD coding scheme Proposed by the related art, the HEVC MVD _ coding () part is an MVD coding scheme in the current HEVC standard,
the first column is an absolute value of a true value of the first component, and the second column and the third column are syntax elements corresponding to the absolute value of the true value of the first component. Illustratively, if the absolute value of the true value of the first component is 1, the syntax element of the first component resulting from the encoding is 10.
If the absolute value of the true value of the first component is not equal to 0, since the absolute value of the true value of the second component may be equal to 0, the coding end may also perform the coding of the syntax element according to table 10 when coding the true value attribute information of the second component. If the true value of the first component is equal to 0, since the true value of the second component is not equal to 0, in this example, the encoding end may encode the second component according to the following table:
TABLE 11-1
Figure GDA0002129915590000351
TABLE 11-2
Figure GDA0002129915590000352
The syntax element corresponding to 0 is not present in the syntax table, and the table 11-2 can be considered as being shifted by one code bit as a whole compared to the table 10, as shown in the table 11-1, when the true value of one component is 0, the table is changed to not encode the first bin in the table 9 when encoding and decoding the other component.
In this example, the decoding side can decode according to table 9 when decoding the first component, and can decode according to table 10 when decoding the second component if the absolute value of the true value of the first component is not equal to 0. If the absolute value of the true value of the first component is equal to 0, then decoding may be according to table 11-2 when decoding the second component.
In another example, the syntax table used for the codec may be as follows:
TABLE 12
Figure GDA0002129915590000361
Different types of syntax elements from those in table 1 are used in the syntax to represent the preset true value attribute information.
When the encoding end encodes the true-value attribute information of the first component, the syntax element may be encoded according to the following table:
table 13.
abs_mvd_prefix gt0 gt1 gt3 gt7 gt15
0 0
1 1 0
2 1 1 0
3 1 1 1 0
4 1 1 1 1 0
5 1 1 1 1 1
There is a syntax element in the syntax table corresponding to the block vector difference (0, 0).
The first column is an absolute value of the true value of the first component, and the third to seventh columns are syntax elements corresponding to the absolute value of the true value of the first component. Illustratively, if the true value of the first component is 2, the syntax element of the first component obtained by encoding is 20.
If the absolute value of the true value of the first component is not equal to 0, since the absolute value of the true value of the second component may be equal to 0, the encoding end may encode the syntax element according to table 13 when encoding the true value attribute information of the second component. If the true value of the first component is equal to 0, since the true value of the second component is not equal to 0, in this example, the encoding end may encode the second component according to the following table:
table 14.
Figure GDA0002129915590000371
In the syntax table, there is no syntax element corresponding to 0, and in comparison with table 13, in table 14, when the true value of one component is 0, the table is changed to not encode the first bin in table 9 when encoding and decoding another component, and can be regarded as being shifted by one code bit as a whole.
In this example, the decoding side can decode according to table 12 when decoding the first component, and can decode according to table 13 when decoding the second component if the absolute value of the true value of the first component is not equal to 0. If the absolute value of the true value of the first component is equal to 0, then decoding may be according to table 14 when decoding the second component.
In a possible application scenario, the method for encoding the block vector difference of the current block at the encoding end may refer to, and may include:
and determining a block vector difference of the current block and a reference block vector.
The determination method can be referred to the related description in the foregoing term explanation, and is not repeated herein.
And carrying out preset transformation operation on the true value of the block vector difference, and determining the transformed true value as the true value of the block vector difference.
The predetermined transformation operation performed by the encoding end on the true value of the block vector difference may be to transform the true value of the first component, or to transform the true value of the second component, or to transform the true value of the first component and the true value of the second component. For example, when the true value of the first component is equal to 0, if the true value of the second component is less than 0, the true value of the second component is increased by one, and if the true value of the second component is greater than 0, the true value of the second component is decreased by one. For example, assuming that the true value of the block vector difference is (0,8), the true value of the block vector difference is (0,7) after the preset transform operation. For another example, if the true value of the block vector difference is (0, -3), the true value of the block vector difference is (0, -2) after the predetermined transformation operation.
In this example, after analyzing the true values of the first component and the second component, the decoding end needs to perform a preset recovery operation on the first component and the second component, where the preset recovery operation is an inverse operation of the preset transformation operation. For example, assuming that the decoding end analyzes that the true value of the first component is 0 and the true value of the second component is 7, the true value of the second component may be increased by one to restore the block vector difference to (0, 8). For another example, assuming that the true value of the first component analyzed by the decoding end is 0 and the true value of the second component is-2, the true value of the second component may be subtracted by one to restore the block vector difference to (0, -3).
Specifically, when the true value after the block vector difference transformation is (0,0,) obtained by the analysis of the decoding end, it may be considered that the predetermined transformation operation performed by the encoding end may be (0,1) to (0,0) or (0, -1) to (0, 0). Therefore, the decoding end cannot perform the predetermined recovery operation according to the true value of the first component and the true value of the second component. In view of this, the encoding end may add third indication information to the code stream information, where the third indication information is used to indicate the decoding end to perform a preset recovery operation on the true value after the block vector difference transformation. Illustratively, the third indication information is denoted by extra _ bvd _ sign _ flag, and when the encoding side transforms the block vector difference (0,1) into (0,0) by a preset transform operation, the extra _ bvd _ sign _ flag is coded into the bitstream information as 1, and when the encoding side transforms the block vector difference (0, -1) into (0,0) by a preset transform operation, the extra _ bvd _ sign _ flag is coded into the bitstream information as 0. The encoding side may parse the third indication information if the true value obtained by the parsing after the block vector difference transformation is (0,0), restore the true value to (0,1) if the third indication information is extra _ bvd _ sign _ flag is 1, and restore the true value to (0, -1) if the third indication information is extra _ bvd _ sign _ flag is 0
S613, coding the block vector difference and the reference block vector, and adding the coding information into the code stream information to obtain the code stream information carrying the first indication information.
The first indication information indicates a block vector difference and a reference block vector. Encoding the block vector difference may include encoding a true value of a first component and a true value of a second component of the block vector difference. Encoding the true value of the second component includes encoding the preset true value attribute information of the second component according to the true value or the preset true value attribute information of the first component.
The decoding method of the block vector difference of the current block at the decoding end may include:
and S621, acquiring code stream information.
The code stream includes third indication information, and for the third indication information, reference may be made to the relevant description in S612, which is not described herein again.
S622, according to the third indication information, the true value of the block vector difference is restored, and the restored true value is determined as the true value of the block vector difference.
For the preset recovery operation, reference may be made to the relevant description in S612, and details are not described here. The true value of the first component may be restored according to the third indication information, the true value of the second component may be restored according to the third indication information, or the true values of the first component and the second component may be restored according to the third indication information.
The decoding method and the coding method can be realized through different syntax tables in different application scenes. For example, the syntax table may be implemented by the following syntax table, which is only one possible example and does not limit the embodiments of the present invention:
watch 15
Figure GDA0002129915590000401
And "&" is a logical and operator and "═ denotes equality. A sign bit extra _ bvd _ sign _ flag needs to be additionally encoded in the syntax table to indicate that the true value of the block vector difference is restored according to the preset value.
In another example, to remove syntax redundancy in the case where the fusion mode and the normal mode have the same or similar candidate lists, block vector candidates existing in the candidate list of the normal mode may be removed in the candidate list of the fusion mode. For example, assuming that the candidate list of the fusion mode is { a, B, C, D, E }, where A, B, C, D, E is a block vector candidate and the candidate list of the normal mode is { a, B }, it may be that A, B is deleted from the candidate list of the fusion mode, that is, the candidate list of the fusion mode is changed to { C, D, E }, and even if the block vector difference indicated by the first indication information is (0,0) in the normal mode, since A, B does not exist in the candidate list of the fusion mode, the same block vector is not expressed in the fusion mode, that is, syntax redundancy in the case where the fusion mode and the normal mode have the same or similar candidate lists is removed.
In another application scenario, in the coding and decoding scheme of the inter-frame prediction technique, in some application scenarios, the common mode and the fusion mode use the same (or similar) list. In this case, if the encoding side uses the reference block index value X as a search starting point in the normal mode and the final motion vector difference of the search is (0,0), the normal mode matches the block vector expressed in the fusion mode (the reference block index value of the fusion mode is also X). Namely, two expression modes exist, and the expressed motion vectors are completely consistent, so that large syntax redundancy is caused, and the coding and decoding compression performance is influenced.
In view of the disadvantages of the related art, the embodiments of the present invention provide a decoding method to remove syntax redundancy in the case where the fusion mode and the normal mode have the same or similar candidate lists. The method is applied to a decoding end, and the method can comprise the following steps:
s710, code stream information is obtained, wherein the code stream information comprises first indication information, and the first indication information is used for indicating the motion vector difference and the reference motion vector of the current block.
And S720, determining a reference motion vector and a motion vector difference according to the first indication information.
Wherein determining the motion vector difference according to the first indication information comprises:
determining a true value of a first component and a true value of a second component according to the first indication information, wherein the motion vector comprises the first component and the second component;
determining a motion vector difference according to the true value of the first component and the true value of the second component;
wherein determining a true value for the second component comprises:
and analyzing the preset truth value attribute information of the second component according to the preset truth value attribute information of the first component.
And S730, determining the final motion vector of the current block according to the reference motion vector and the motion vector difference.
In this example, the encoding method at the encoding end may include:
s810, determining a motion vector difference and a reference motion vector of the current block;
s820, coding the motion vector difference and the reference motion vector, adding coding information into a code stream to obtain a code stream carrying first indication information, wherein the first indication information is used for indicating the motion vector difference and the reference motion vector;
wherein encoding the motion vector difference comprises:
encoding a true value of a first component and a true value of a second component of the motion vector difference;
wherein encoding the true value of the second component comprises:
and encoding the truth value attribute information of the second component according to the truth value or the preset truth value attribute information of the first component.
Since this example differs from the foregoing coding and decoding method for the intra block copy mode only in that the block vector difference is replaced with the motion vector difference and the reference block vector is replaced with the reference motion vector, reference may be made to the foregoing description regarding the intra block copy mode, and details are not described here.
In another application scenario, the intra block copy mode and the inter prediction mode may share a candidate list. For example, table 16, in view of this, in one example, the ABVP of the intra block copy mode and the AMVP of the inter prediction mode may share coding syntax elements of the vector difference information. The decoding method may include:
s810, code stream information is obtained, wherein the code stream information comprises first indicating information, and the first indicating information is used for indicating vector difference information and reference vector information of a current block;
s820, determining vector difference information and reference vector information according to the first indication information;
s830, determining final motion vector information of the current block according to the vector difference information and the reference vector information;
wherein determining vector difference information based on the first indication information comprises:
determining a true value of a first component and a true value of a second component according to the first indication information, wherein the motion vector comprises the first component and the second component;
determining vector difference information according to the true value of the first component and the true value of the second component;
wherein determining a true value for the second component comprises:
analyzing the preset truth value attribute information of the second component according to the preset truth value attribute information of the first component;
wherein the ABVP mode of the intra block copy mode and the AMVP mode of the inter prediction share a syntax element decoding scheme of the vector difference information; when the current block starting intra block copy mode is determined according to the code stream information, the reference vector information determined according to the first indication information is a reference block vector of the current block, the vector difference information determined according to the first indication information is a block vector difference of the current block, and the final motion vector information determined according to the reference vector information and the vector difference information is a final block vector of the current block.
As an example, when it is determined that the current block starts the inter prediction mode according to the code stream information, the reference vector information determined according to the first indication information is a reference motion vector of the current block, the vector difference information determined according to the first indication information is a motion vector difference of the current block, and the final motion vector information determined according to the reference vector information and the vector difference information is a final motion vector of the current block.
The encoding method may include:
s910, determining vector difference information and reference vector information of the current block;
s920, coding the vector difference information and the reference vector information, and adding the coding information into a code stream to obtain a code stream carrying first indication information, wherein the first indication information is used for representing the vector difference information and the reference vector information;
wherein encoding vector difference information comprises:
encoding a true value of a first component and a true value of a second component of the vector difference information;
wherein encoding the truth value for the second component comprises:
encoding the truth value attribute information of the second component according to the truth value or the preset truth value attribute information of the first component; wherein the ABVP of the intra block copy mode and the AMVP of the inter prediction mode share a coding syntax element of the vector difference information; when encoding decides an intra block copy mode, the reference vector information is a reference block vector of the current block, and the vector difference information is a block vector difference of the current block. When encoding decides an inter prediction mode, the reference vector information is a reference motion vector of the current block, and the vector difference information is a motion vector difference of the current block.
Since this example differs from the foregoing coding and decoding method for the intra block copy mode only in that the block vector difference is replaced by the vector difference information and the reference block vector is replaced by the reference vector information, reference may be made to the foregoing description regarding the intra block copy mode, and details are not described here.
The decoding method and the coding method can be realized through different syntax tables in different application scenes. For example, the syntax table may be implemented by the following syntax table, which is only one possible example and does not limit the embodiments of the present invention:
TABLE 16
Figure GDA0002129915590000441
In the syntax table, the ABVP of the intra block copy mode and the AMVP of the inter prediction mode may share an encoding syntax element of the vector difference information. There is no need to separately set a syntax table for ABVP of intra block copy mode. For the AMVP of the inter prediction mode, a determination is made whether the current block initiates an intra block copy mode.
Based on the same application concept as the method, an embodiment of the present application further provides a decoding apparatus applied to a decoding end, as shown in fig. 5, which is a structural diagram of the apparatus, and the apparatus may include:
a code stream obtaining module 1001, configured to obtain code stream information, where the code stream information includes first indication information, and the first indication information is used to indicate a block vector difference and a reference block vector of a current block;
a decoding module 1002, configured to determine the reference block vector and the block vector difference according to the first indication information;
a determining module 1003, configured to determine a final block vector of the current block according to the reference block vector and the block vector difference;
wherein determining the block vector difference according to the first indication information comprises:
determining a true value of a first component and a true value of a second component based on the first indication information, the block vector difference comprising the first component and the second component;
determining the block vector difference according to the true value of the first component and the true value of the second component;
wherein determining a true value of the second component comprises:
and analyzing the preset truth value attribute information of the second component according to the preset truth value attribute information of the first component.
As an example, the preset true value attribute information includes whether a true value is equal to 0;
a decoding module 1002, configured to analyze whether the true value of the second component is equal to 0 according to whether the true value of the first component is equal to 0;
wherein whether the true value is equal to 0 includes:
whether an absolute value of the true value is equal to 0 or whether the absolute value of the true value is greater than 0.
As an example, the decoding module 1002 is specifically configured to determine that the absolute value of the true value of the second component is greater than 0 according to that the true value of the first component is equal to 0.
As an example, the decoding module 1002 is specifically configured to parse whether the true value of the second component is 0 according to the first indication information, where the true value of the first component is not equal to 0.
As an example, the decoding module 1002 is specifically configured to determine the preset truth attribute information of the second component as the absolute value of the truth value of the second component being greater than 0, without performing the step of analyzing whether the truth value of the second component is 0 or not according to the fact that the truth value of the first component is 0.
As an example, the first component is a lateral component and the second component is a longitudinal component.
As an example, the first component is a longitudinal component and the second component is a transverse component.
As an example, the decoding module 1002 is further configured to obtain second indication information carried in the code stream information, where the second indication information is used to indicate a decoding order of attribute information of a preset true value of a horizontal component and a vertical component of the block vector difference;
if the second indication information is used for indicating that the preset true value attribute information of the transverse component is decoded first, the first component is the transverse component, and the second component is the longitudinal component;
if the second indication information is used to indicate that the preset true-value attribute information of the longitudinal component is decoded first, the first component is the longitudinal component, and the second component is the transverse component.
As an example, the code stream information further includes third indication information, where the third indication information is used to indicate that a preset recovery operation is performed on a true value of the block vector difference;
a decoding module 1002, configured to restore the true value of the block vector difference according to the third indication information, and determine the restored true value as the true value of the block vector difference;
wherein, according to the third indication information, restoring the true value of the block vector difference includes:
according to the third indication information, determining to recover the truth value of the first component; alternatively, the first and second electrodes may be,
according to the third indication information, determining to recover the true value of the second component; alternatively, the first and second electrodes may be,
and determining to recover the true value of the first component and the true value of the second component according to the third indication information.
As an example, the third indication information is used to indicate that a true value of the block vector difference is restored according to preset offset direction information; or
And the third indication information is used for indicating that the true value of the block vector difference is restored according to a preset offset value and preset offset direction information.
As an example, the decoding module 1002 is specifically configured to determine, according to the first indication information, index information of the reference block vector in an advanced block vector prediction mode ABVP candidate list supported by an intra block copy mode;
and determining the reference block vector according to the index information.
The apparatus further includes a pixel prediction module for determining a predicted pixel of the current block according to a final block vector of the current block after determining the block vector of the current block.
Based on the same application concept as the method, an embodiment of the present application further provides an encoding apparatus applied to an encoding end, as shown in fig. 6, which is a structural diagram of the apparatus, and the apparatus may include:
a determining module 1101 for determining a block vector difference and a reference block vector of the current block;
an encoding module 1102, configured to encode the block vector difference and the reference block vector into code stream information to obtain code stream information carrying first indication information, where the first indication information is used to indicate the block vector difference and the reference block vector;
wherein encoding the block vector differences comprises:
encoding a true value of a first component and a true value of a second component of the block vector difference;
wherein encoding the truth value for the second component comprises:
and encoding the preset truth value attribute information of the second component according to the truth value or the preset truth value attribute information of the first component.
As an example, the preset true value attribute information includes whether a true value is equal to 0;
an encoding module 1102, configured to encode whether the true value of the second component is equal to 0 according to whether the true value of the first component is equal to 0;
wherein whether the true value is equal to 0 includes:
whether an absolute value of the true value is equal to 0 or whether the absolute value of the true value is greater than 0.
As an example, the encoding module 1102 is specifically configured to determine that the absolute value of the true value of the second component is greater than 0 according to the true value of the first component being equal to 0, and not perform encoding on the true value attribute information of whether the true value of the second component is equal to 0.
As an example, the encoding module 1102 is specifically configured to encode the truth attribute information of whether the truth value of the second component is equal to 0 according to the truth value of the first component not being equal to 0.
As an example, the first component is a longitudinal component and the second component is a transverse component.
As an example, the first component is a longitudinal component and the second component is a transverse component.
As an example, the decoding module 1102 is further configured to determine second indication information, where the second indication information is used to indicate an encoding order of the attribute information of the horizontal component and the vertical component of the block vector difference;
if the coding sequence is used for indicating that the preset truth value attribute information of the transverse component is coded first, the first component is the transverse component, and the second component is the longitudinal component;
if the coding sequence is used for indicating that the preset truth value attribute information of the longitudinal component is coded first, the first component is the longitudinal component, and the second component is the transverse component;
and carrying the second indication information in the code stream information.
As an example, the encoding module 1102 is further configured to perform a preset transformation operation on a true value of the block vector difference before the encoding of the block vector difference, and determine the transformed true value as a true value of the block vector difference;
generating third indication information according to the preset transformation operation, wherein the third indication information is used for indicating a decoding end to perform preset recovery operation on a true value after the block vector difference transformation, and the preset recovery operation is the inverse operation of the preset transformation operation;
carrying the third indication information in the code stream information;
wherein the preset transformation operation is used for transforming the true value after the first component transformation; alternatively, the first and second electrodes may be,
the preset transformation operation is used for transforming the truth value after the second component transformation; alternatively, the first and second electrodes may be,
the preset transformation operation is used for transforming the transformed true value of the first component and the transformed true value of the second component.
As an example, the third indication information is used to indicate that the true value after the block vector difference transformation is restored according to preset offset direction information; or
And the third indication information is used for indicating that the true value after the block vector difference transformation is restored according to a preset deviation value and preset deviation direction information.
As an example, the determining module 1101 is specifically configured to, if the current block starts the intra block copy mode, and the reference block vector is taken as a search starting point according to the ABVP mode, search for a final block vector difference as a block vector difference of the current block,
and if the searched final block vector difference is (0,0), changing the search result of the ABVP mode into a corresponding fusion mode pointing to the same reference block vector, and not executing fusion mode decision any more.
As an example, the determining module 1101 is specifically configured to skip the position pointed by the reference block vector if the current block starts the intra block copy mode and searches the final block vector difference within a certain search range according to the ABVP mode as the block vector difference of the current block.
Based on the same application concept as the method, an embodiment of the present application further provides a decoding apparatus applied to a decoding end, where the apparatus may include:
the code stream obtaining module is used for obtaining code stream information, wherein the code stream information comprises first indication information, and the first indication information is used for indicating the motion vector difference and the reference motion vector of the current block;
a decoding module, configured to determine the motion vector difference and the reference motion vector according to the first indication information;
a determining module, configured to determine a final motion vector of the current block according to the motion vector difference and the reference motion vector;
wherein determining the motion vector difference according to the first indication information comprises:
determining a true value of a first component and a true value of a second component according to the first indication information, the motion vector including the first component and the second component;
determining the motion vector difference according to the true value of the first component and the true value of the second component;
wherein determining a true value of the second component comprises:
and analyzing the preset truth value attribute information of the second component according to the preset truth value attribute information of the first component.
Based on the same application concept as the method, an embodiment of the present application further provides an encoding apparatus, applied to an encoding end, where the apparatus may include:
a determining module for determining a motion vector difference and a reference motion vector of the current block;
the encoding module is used for encoding the motion vector difference and the reference motion vector into code stream information to obtain code stream information carrying first indication information, wherein the first indication information is used for indicating the motion vector difference and the reference motion vector;
wherein encoding the motion vector difference comprises:
encoding a true value of a first component and a true value of a second component of the motion vector difference;
wherein encoding the truth value for the second component comprises:
and encoding the truth value attribute information of the second component according to the truth value or the preset truth value attribute information of the first component.
Based on the same application concept as the method, an embodiment of the present application further provides a decoding apparatus applied to a decoding end, where the apparatus may include:
the code stream obtaining module is used for obtaining code stream information, wherein the code stream information comprises first indication information, and the first indication information is used for indicating vector difference information and reference vector information of a current block;
a decoding module, configured to determine the vector difference information and the reference vector information according to the first indication information;
a determining module, configured to determine final motion vector information of the current block according to the vector difference information and the reference vector information;
wherein determining the vector difference information according to the first indication information comprises:
determining a true value of a first component and a true value of a second component according to the first indication information, the motion vector including the first component and the second component;
determining the vector difference information according to the true value of the first component and the true value of the second component;
wherein determining a true value of the second component comprises:
analyzing the preset truth value attribute information of the second component according to the preset truth value attribute information of the first component;
wherein the ABVP mode of the intra block copy mode and the AMVP mode of the inter prediction share a syntax element decoding scheme of the vector difference information; when the current block starting intra block copy mode is determined according to the code stream information, the reference vector information determined according to the first indication information is a reference block vector of the current block, the vector difference information determined according to the first indication information is a block vector difference of the current block, and the final motion vector information determined according to the reference vector information and the vector difference information is a final block vector of the current block.
Based on the same application concept as the method, an embodiment of the present application further provides an encoding apparatus, applied to an encoding end, where the apparatus may include:
a determining module for determining vector difference information and reference vector information of the current block;
the encoding module is used for encoding the vector difference information and the reference vector information into code stream information to obtain code stream information carrying first indication information, wherein the first indication information is used for representing the vector difference information and the reference vector information;
wherein encoding the vector difference information comprises:
encoding a true value of a first component and a true value of a second component of the vector difference information;
wherein encoding the truth value for the second component comprises:
encoding the truth value attribute information of the second component according to the truth value or the preset truth value attribute information of the first component;
wherein the ABVP of the intra block copy mode and the AMVP of the inter prediction mode share a coding syntax element of the vector difference information; when encoding decides an intra block copy mode, the reference vector information is a reference block vector of the current block, and the vector difference information is a block vector difference of the current block.
In terms of hardware, the hardware architecture diagram of the decoding-side device provided in the embodiment of the present application may specifically refer to fig. 7, and the method includes: a processor 1701 and a machine-readable storage medium 1702, the machine-readable storage medium 102 storing machine-executable instructions executable by the processor 1701; the processor 1701 is configured to execute machine-executable instructions to implement the methods disclosed in the above examples of the present application. For example, a processor is used to execute machine executable instructions to implement the steps of:
acquiring code stream information, wherein the code stream information comprises first indication information, and the first indication information is used for indicating a block vector difference and a reference block vector of a current block;
determining the reference block vector and the block vector difference according to the first indication information;
determining a final block vector of the current block according to the reference block vector and the block vector difference;
wherein determining the block vector difference according to the first indication information comprises:
determining a true value of a first component and a true value of a second component based on the first indication information, the block vector difference comprising the first component and the second component;
determining the block vector difference according to the true value of the first component and the true value of the second component;
wherein determining a true value of the second component comprises:
and analyzing the preset truth value attribute information of the second component according to the preset truth value attribute information of the first component.
As an example, the preset true value attribute information includes whether a true value is equal to 0;
the analyzing the preset truth value attribute information of the second component according to the preset truth value attribute information of the first component includes:
analyzing whether the truth value of the second component is equal to 0 according to whether the truth value of the first component is equal to 0;
wherein whether the true value is equal to 0 includes:
whether an absolute value of the true value is equal to 0 or whether the absolute value of the true value is greater than 0.
As an example, the parsing whether the true value of the second component is equal to 0 according to whether the true value of the first component is equal to 0 includes:
determining that an absolute value of a true value of the second component is greater than 0 based on a true value of the first component being equal to 0.
As an example, the parsing whether the true value of the second component is equal to 0 according to whether the true value of the first component is equal to 0 includes:
and according to the fact that the truth value of the first component is not equal to 0, whether the truth value of the second component is 0 or not is analyzed according to the first indication information.
As an example, the determining that the absolute value of the true value of the second component is greater than 0 based on the true value of the first component being equal to 0 includes:
and according to the fact that the truth value of the first component is 0, not executing the step of analyzing whether the truth value of the second component is 0, and determining the preset truth value attribute information of the second component as the absolute value of the truth value of the second component is larger than 0.
As an example, the first component is a lateral component and the second component is a longitudinal component.
As an example, the first component is a longitudinal component and the second component is a transverse component.
As an example, the method further comprises:
acquiring second indication information carried in the code stream information, wherein the second indication information is used for indicating the decoding sequence of the preset true value attribute information of the transverse component and the longitudinal component of the block vector difference;
if the second indication information is used for indicating that the preset true value attribute information of the transverse component is decoded first, the first component is the transverse component, and the second component is the longitudinal component;
if the second indication information is used to indicate that the preset true-value attribute information of the longitudinal component is decoded first, the first component is the longitudinal component, and the second component is the transverse component.
As an example, the code stream information further includes third indication information, where the third indication information is used to indicate that a preset recovery operation is performed on a true value of the block vector difference;
determining the vector difference based on the true value of the first component and the true value of the second component comprises:
restoring the true value of the block vector difference according to the third indication information, and determining the restored true value as the true value of the block vector difference;
wherein, according to the third indication information, restoring the true value of the block vector difference includes:
according to the third indication information, determining to recover the truth value of the first component; alternatively, the first and second electrodes may be,
according to the third indication information, determining to recover the true value of the second component; alternatively, the first and second electrodes may be,
and determining to recover the true value of the first component and the true value of the second component according to the third indication information.
As an example, the third indication information is used to indicate that a true value of the block vector difference is restored according to preset offset direction information; or
And the third indication information is used for indicating that the true value of the block vector difference is restored according to a preset offset value and preset offset direction information.
As an example, the determining the reference block vector according to the first indication information includes:
according to the first indication information, determining index information of the reference block vector in an advanced block vector prediction mode ABVP candidate list supported by an intra block copy mode;
and determining the reference block vector according to the index information.
After determining the block vector for the current block, the method further comprises:
and determining the predicted pixel of the current block according to the final block vector of the current block.
As an example, the following steps may also be implemented:
acquiring code stream information, wherein the code stream information comprises first indication information, and the first indication information is used for indicating the motion vector difference and the reference motion vector of the current block;
determining the motion vector difference and the reference motion vector according to the first indication information;
determining a final motion vector of the current block according to the motion vector difference and the reference motion vector;
wherein determining the motion vector difference according to the first indication information comprises:
determining a true value of a first component and a true value of a second component according to the first indication information, the motion vector including the first component and the second component;
determining the motion vector difference according to the true value of the first component and the true value of the second component;
wherein determining a true value of the second component comprises:
and analyzing the preset truth value attribute information of the second component according to the preset truth value attribute information of the first component.
As an example, the following steps may also be implemented:
in terms of hardware, the hardware architecture diagram of the encoding end device provided in the embodiment of the present application may specifically include: a processor and a machine-readable storage medium storing machine-executable instructions executable by the processor; the processor 111 is configured to execute machine-executable instructions to implement the methods disclosed in the above examples of the present application. For example, a processor is used to execute machine executable instructions to implement the steps of:
as an example, the following steps may also be implemented:
acquiring code stream information, wherein the code stream information comprises first indication information, and the first indication information is used for indicating vector difference information and reference vector information of a current block;
determining the vector difference information and the reference vector information according to the first indication information;
determining final motion vector information of the current block according to the vector difference information and the reference vector information;
wherein determining the vector difference information according to the first indication information comprises:
determining a true value of a first component and a true value of a second component according to the first indication information, the motion vector including the first component and the second component;
determining the vector difference information according to the true value of the first component and the true value of the second component;
wherein determining a true value of the second component comprises:
analyzing the preset truth value attribute information of the second component according to the preset truth value attribute information of the first component;
wherein the ABVP mode of the intra block copy mode and the AMVP mode of the inter prediction share a syntax element decoding scheme of the vector difference information; when the current block starting intra block copy mode is determined according to the code stream information, the reference vector information determined according to the first indication information is a reference block vector of the current block, the vector difference information determined according to the first indication information is a block vector difference of the current block, and the final motion vector information determined according to the reference vector information and the vector difference information is a final block vector of the current block.
As an example, when it is determined that the current block starts the inter prediction mode according to the code stream information, the reference vector information determined according to the first indication information is a reference motion vector of the current block, the vector difference information determined according to the first indication information is a motion vector difference of the current block, and the final motion vector information determined according to the reference vector information and the vector difference information is a final motion vector of the current block.
In terms of hardware, the hardware architecture diagram of the decoding-side device provided in the embodiment of the present application may specifically include: a processor and a machine-readable storage medium storing machine-executable instructions executable by the processor; the processor is configured to execute machine-executable instructions to implement the methods disclosed in the above examples of the present application. For example, the processor is configured to perform determining a block vector difference and a reference block vector for the current block;
the machine is operable to execute instructions to perform the steps of:
coding the block vector difference and the reference block vector into code stream information to obtain code stream information carrying first indication information, wherein the first indication information is used for indicating the block vector difference and the reference block vector;
wherein encoding the block vector differences comprises:
encoding a true value of a first component and a true value of a second component of the block vector difference;
wherein encoding the truth value for the second component comprises:
and encoding the preset truth value attribute information of the second component according to the truth value or the preset truth value attribute information of the first component.
As an example, the preset true value attribute information includes whether a true value is equal to 0;
the encoding the preset truth value attribute information of the second component according to the truth value or the preset truth value attribute information of the first component includes:
encoding whether a true value of the second component is equal to 0 according to whether a true value of the first component is equal to 0;
wherein whether the true value is equal to 0 includes:
whether an absolute value of the true value is equal to 0 or whether the absolute value of the true value is greater than 0.
As an example, encoding whether the true value of the second component is equal to 0 based on whether the true value of the first component is equal to 0 comprises:
and determining that the absolute value of the true value of the second component is greater than 0 according to the fact value of the first component being equal to 0, and not performing encoding of the true value attribute information whether the true value of the second component is equal to 0.
As an example, encoding whether the true value of the second component is equal to 0 based on whether the true value of the first component is equal to 0 comprises:
encoding truth attribute information of whether a truth value of the second component is equal to 0 according to whether the truth value of the first component is not equal to 0.
As an example, the first component is a lateral component and the second component is a longitudinal component.
As an example, the first component is a longitudinal component and the second component is a transverse component.
As an example, the method further comprises:
determining second indication information, wherein the second indication information is used for indicating the coding sequence of the attribute information of the preset truth values of the transverse component and the longitudinal component of the block vector difference;
if the coding sequence is used for indicating that the preset truth value attribute information of the transverse component is coded first, the first component is the transverse component, and the second component is the longitudinal component;
if the coding sequence is used for indicating that the preset truth value attribute information of the longitudinal component is coded first, the first component is the longitudinal component, and the second component is the transverse component;
and carrying the second indication information in the code stream information.
As one example, prior to said encoding the block vector differences, the method further comprises:
performing preset transformation operation on the true value of the block vector difference, and determining the transformed true value as the true value of the block vector difference;
the encoding the true value of the second component further comprises:
generating third indication information according to the preset transformation operation, wherein the third indication information is used for indicating a decoding end to perform preset recovery operation on a true value after the block vector difference transformation, and the preset recovery operation is the inverse operation of the preset transformation operation;
carrying the third indication information in the code stream information;
wherein the preset transformation operation is used for transforming the true value after the first component transformation; alternatively, the first and second electrodes may be,
the preset transformation operation is used for transforming the truth value after the second component transformation; alternatively, the first and second electrodes may be,
the preset transformation operation is used for transforming the transformed true value of the first component and the transformed true value of the second component.
As an example, the third indication information is used to indicate that the true value after the block vector difference transformation is restored according to preset offset direction information; or
And the third indication information is used for indicating that the true value after the block vector difference transformation is restored according to a preset deviation value and preset deviation direction information.
As an example, the determining the block vector difference for the current block comprises:
if the current block starts the intra block copy mode and the reference block vector is used as a search starting point according to the ABVP mode, searching the final block vector difference as the block vector difference of the current block,
and if the searched final block vector difference is (0,0), changing the search result of the ABVP mode into a corresponding fusion mode pointing to the same reference block vector, and not executing fusion mode decision any more.
As an example, the following steps may also be implemented:
if the current block starts an intra block copy mode, and the final block vector difference is searched in a certain search range according to the ABVP mode to be used as the block vector difference of the current block, the search process skips the position pointed by the reference block vector.
As an example, the processor is configured to determine a motion vector difference and a reference motion vector for the current block;
the machine is operable to execute instructions to perform the steps of:
determining a motion vector difference and a reference motion vector of a current block;
coding the motion vector difference and the reference motion vector into code stream information to obtain code stream information carrying first indication information, wherein the first indication information is used for indicating the motion vector difference and the reference motion vector;
wherein encoding the motion vector difference comprises:
encoding a true value of a first component and a true value of a second component of the motion vector difference;
wherein encoding the truth value for the second component comprises:
and encoding the truth value attribute information of the second component according to the truth value or the preset truth value attribute information of the first component.
As an example, the following steps may also be implemented:
the machine is operable to execute instructions to perform the steps of:
determining vector difference information and reference vector information of a current block;
coding the vector difference information and the reference vector information into code stream information to obtain code stream information carrying first indication information, wherein the first indication information is used for representing the vector difference information and the reference vector information;
wherein encoding the vector difference information comprises:
determining vector difference information and reference vector information of a current block;
coding the vector difference information and the reference vector information into code stream information to obtain code stream information carrying first indication information, wherein the first indication information is used for representing the vector difference information and the reference vector information;
wherein encoding the vector difference information comprises:
encoding a true value of a first component and a true value of a second component of the vector difference information;
wherein encoding the truth value for the second component comprises:
encoding the truth value attribute information of the second component according to the truth value or the preset truth value attribute information of the first component;
wherein the ABVP of the intra block copy mode and the AMVP of the inter prediction mode share a coding syntax element of the vector difference information; when encoding decides an intra block copy mode, the reference vector information is a reference block vector of the current block, and the vector difference information is a block vector difference of the current block. When encoding decides an inter prediction mode, the reference vector information is a reference motion vector of the current block, and the vector difference information is a motion vector difference of the current block.
The Memory mentioned in the above decoding device and encoding may include a Random Access Memory (RAM) or a Non-Volatile Memory (NVM), such as at least one disk Memory. Optionally, the memory may also be at least one memory device located remotely from the processor.
The Processor may be a general-purpose Processor, including a Central Processing Unit (CPU), a Network Processor (NP), and the like; but also Digital Signal Processors (DSPs), Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs) or other Programmable logic devices, discrete Gate or transistor logic devices, discrete hardware components.
In yet another embodiment of the present invention, a computer-readable storage medium is further provided, which stores instructions that, when executed on a computer, cause the computer to perform any one of the decoding methods or the encoding methods of the above embodiments.
In yet another embodiment, a computer program product containing instructions is provided, which when run on a computer causes the computer to perform any one of the decoding methods or the encoding methods of the above embodiments.
In the above embodiments, the implementation may be wholly or partially realized by software, hardware, firmware, or any combination thereof. When implemented in software, may be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When loaded and executed on a computer, cause the processes or functions described in accordance with the embodiments of the invention to occur, in whole or in part. The computer may be a general purpose computer, a special purpose computer, a network of computers, or other programmable device. The computer instructions may be stored in a computer readable storage medium or transmitted from one computer readable storage medium to another, for example, from one website site, computer, server, or data center to another website site, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, Digital Subscriber Line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.). The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device, such as a server, a data center, etc., that incorporates one or more of the available media. The usable medium may be a magnetic medium (e.g., floppy Disk, hard Disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., Solid State Disk (SSD)), among others.
It is noted that, herein, relational terms such as first and second, and the like may be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. Also, 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 identical elements in a process, method, article, or apparatus that comprises the element.
All the embodiments in the present specification are described in a related manner, and the same and similar parts among the embodiments may be referred to each other, and each embodiment focuses on the differences from the other embodiments. In particular, for the embodiments of the encoding method, the apparatus, the encoding device, the decoding device, the computer-readable storage medium, and the computer program product, since they are substantially similar to the method embodiments, the description is relatively simple, and for the relevant points, reference may be made to the partial description of the method embodiments.
The above description is only for the preferred embodiment of the present invention, and is not intended to limit the scope of the present invention. Any modification, equivalent replacement, or improvement made within the spirit and principle of the present invention shall fall within the protection scope of the present invention.

Claims (31)

1. A decoding method applied to a decoding end, the method comprising:
acquiring code stream information, wherein the code stream information comprises first indication information, and the first indication information is used for indicating a block vector difference and a reference block vector of a current block;
determining the reference block vector and the block vector difference according to the first indication information;
determining a final block vector of the current block according to the reference block vector and the block vector difference;
wherein determining the block vector difference according to the first indication information comprises:
determining a true value of a first component and a true value of a second component based on the first indication information, the block vector difference comprising the first component and the second component;
determining the block vector difference according to the true value of the first component and the true value of the second component;
wherein determining a true value of the second component comprises:
analyzing the preset truth value attribute information of the second component according to the preset truth value attribute information of the first component;
the preset true value attribute information includes whether a true value is equal to 0;
the analyzing the preset truth value attribute information of the second component according to the preset truth value attribute information of the first component includes:
analyzing whether the truth value of the second component is equal to 0 according to whether the truth value of the first component is equal to 0;
the analyzing whether the true value of the second component is equal to 0 according to whether the true value of the first component is equal to 0 includes:
if the true value of the first component is not equal to 0, analyzing whether the true value of the second component is equal to 0;
wherein whether the true value is equal to 0 includes:
whether an absolute value of the true value is equal to 0 or whether the absolute value of the true value is greater than 0.
2. The method of claim 1, wherein resolving whether the true value of the second component is equal to 0 based on whether the true value of the first component is equal to 0 comprises:
determining that an absolute value of a true value of the second component is greater than 0 based on a true value of the first component being equal to 0.
3. The method of claim 1, wherein resolving whether the true value of the second component is equal to 0 based on whether the true value of the first component is equal to 0 comprises:
and according to the fact that the truth value of the first component is not equal to 0, whether the truth value of the second component is 0 or not is analyzed according to the first indication information.
4. The method of claim 2, wherein determining that the absolute value of the true value of the second component is greater than 0 based on the true value of the first component being equal to 0 comprises:
and according to the fact that the truth value of the first component is 0, not executing the step of analyzing whether the truth value of the second component is 0, and determining the preset truth value attribute information of the second component as the absolute value of the truth value of the second component is larger than 0.
5. The method of claim 1, wherein the first component is a transverse component and the second component is a longitudinal component.
6. The method of claim 1, wherein the first component is a longitudinal component and the second component is a transverse component.
7. The method of claim 1, further comprising:
acquiring second indication information carried in the code stream information, wherein the second indication information is used for indicating the decoding sequence of the preset true value attribute information of the transverse component and the longitudinal component of the block vector difference;
if the second indication information is used for indicating that the preset true value attribute information of the transverse component is decoded first, the first component is the transverse component, and the second component is the longitudinal component;
if the second indication information is used to indicate that the preset true-value attribute information of the longitudinal component is decoded first, the first component is the longitudinal component, and the second component is the transverse component.
8. The method according to claim 1, wherein the code stream information further includes third indication information, the third indication information is used to indicate that a preset recovery operation is performed on a true value of the block vector difference;
determining the vector difference based on the true value of the first component and the true value of the second component comprises:
restoring the true value of the block vector difference according to the third indication information, and determining the restored true value as the true value of the block vector difference;
wherein, according to the third indication information, restoring the true value of the block vector difference includes:
according to the third indication information, determining to recover the truth value of the first component; alternatively, the first and second electrodes may be,
according to the third indication information, determining to recover the true value of the second component; alternatively, the first and second electrodes may be,
and determining to recover the true value of the first component and the true value of the second component according to the third indication information.
9. The method of claim 8,
the third indication information is used for indicating that the true value of the block vector difference is recovered according to preset offset direction information; or
And the third indication information is used for indicating that the true value of the block vector difference is restored according to a preset offset value and preset offset direction information.
10. The method of claim 1,
the determining the reference block vector according to the first indication information includes:
according to the first indication information, determining index information of the reference block vector in an advanced block vector prediction mode ABVP candidate list supported by an intra block copy mode;
determining the reference block vector according to the index information;
after determining the block vector for the current block, the method further comprises:
and determining the predicted pixel of the current block according to the final block vector of the current block.
11. An encoding method applied to an encoding end, the method comprising:
determining a block vector difference and a reference block vector of a current block;
coding the block vector difference and the reference block vector into code stream information to obtain code stream information carrying first indication information, wherein the first indication information is used for indicating the block vector difference and the reference block vector;
wherein encoding the block vector differences comprises:
encoding a true value of a first component and a true value of a second component of the block vector difference;
wherein encoding the truth value for the second component comprises:
encoding the preset truth value attribute information of the second component according to the truth value or the preset truth value attribute information of the first component;
the preset true value attribute information includes whether a true value is equal to 0;
the encoding the preset truth value attribute information of the second component according to the truth value or the preset truth value attribute information of the first component includes:
encoding whether a true value of the second component is equal to 0 according to whether a true value of the first component is equal to 0;
the analyzing whether the true value of the second component is equal to 0 according to whether the true value of the first component is equal to 0 includes:
if the true value of the first component is not equal to 0, analyzing whether the true value of the second component is equal to 0;
wherein whether the true value is equal to 0 includes:
whether an absolute value of the true value is equal to 0 or whether the absolute value of the true value is greater than 0.
12. The method of claim 11, wherein encoding whether the true value of the second component is equal to 0 based on whether the true value of the first component is equal to 0 comprises:
and determining that the absolute value of the true value of the second component is greater than 0 according to the true value of the first component being equal to 0, not performing the step of encoding the true value attribute information of whether the true value of the second component is equal to 0, and determining the preset true value attribute information of the second component as the absolute value of the true value of the second component being greater than 0.
13. The method of claim 11, wherein encoding whether the true value of the second component is equal to 0 based on whether the true value of the first component is equal to 0 comprises:
encoding truth attribute information of whether a truth value of the second component is equal to 0 according to whether the truth value of the first component is not equal to 0.
14. The method of claim 11, wherein the first component is a transverse component and the second component is a longitudinal component.
15. The method of claim 11, wherein the first component is a longitudinal component and the second component is a transverse component.
16. The method of claim 11, further comprising:
determining second indication information, wherein the second indication information is used for indicating the coding sequence of the attribute information of the preset truth values of the transverse component and the longitudinal component of the block vector difference;
if the coding sequence is used for indicating that the preset truth value attribute information of the transverse component is coded first, the first component is the transverse component, and the second component is the longitudinal component;
if the coding sequence is used for indicating that the preset truth value attribute information of the longitudinal component is coded first, the first component is the longitudinal component, and the second component is the transverse component;
and carrying the second indication information in the code stream information.
17. The method according to claim 11, wherein prior to said encoding said block vector differences, said method further comprises:
performing preset transformation operation on the true value of the block vector difference, and determining the transformed true value as the true value of the block vector difference;
the encoding the true value of the second component further comprises:
generating third indication information according to the preset transformation operation, wherein the third indication information is used for indicating a decoding end to perform preset recovery operation on a true value after the block vector difference transformation, and the preset recovery operation is the inverse operation of the preset transformation operation;
carrying the third indication information in the code stream information;
wherein the preset transformation operation is used for transforming the true value after the first component transformation; alternatively, the first and second electrodes may be,
the preset transformation operation is used for transforming the truth value after the second component transformation; alternatively, the first and second electrodes may be,
the preset transformation operation is used for transforming the transformed true value of the first component and the transformed true value of the second component.
18. The method according to claim 17, wherein the third indication information is used for indicating that the true value after the block vector difference transformation is restored according to preset offset direction information; or
And the third indication information is used for indicating that the true value after the block vector difference transformation is restored according to a preset deviation value and preset deviation direction information.
19. The method of claim 11, wherein determining the block vector difference for the current block comprises:
if the current block starts the intra block copy mode and the reference block vector is used as a search starting point according to the ABVP mode, searching the final block vector difference as the block vector difference of the current block,
and if the searched final block vector difference is (0,0), changing the search result of the ABVP mode into a corresponding fusion mode pointing to the same reference block vector, and not executing fusion mode decision any more.
20. The method of claim 11, wherein determining the block vector difference for the current block comprises:
if the current block starts an intra block copy mode, and the final block vector difference is searched in a certain search range according to the ABVP mode to be used as the block vector difference of the current block, the search process skips the position pointed by the reference block vector.
21. A decoding method applied to a decoding end, the method comprising:
acquiring code stream information, wherein the code stream information comprises first indication information, and the first indication information is used for indicating the motion vector difference and the reference motion vector of the current block;
determining the motion vector difference and the reference motion vector according to the first indication information;
determining a final motion vector of the current block according to the motion vector difference and the reference motion vector;
wherein determining the motion vector difference according to the first indication information comprises:
determining a true value of a first component and a true value of a second component according to the first indication information, the motion vector including the first component and the second component;
determining the motion vector difference according to the true value of the first component and the true value of the second component;
wherein determining a true value of the second component comprises:
analyzing the preset truth value attribute information of the second component according to the preset truth value attribute information of the first component;
the preset true value attribute information includes whether a true value is equal to 0;
the analyzing the preset truth value attribute information of the second component according to the preset truth value attribute information of the first component includes:
analyzing whether the truth value of the second component is equal to 0 according to whether the truth value of the first component is equal to 0;
the analyzing whether the true value of the second component is equal to 0 according to whether the true value of the first component is equal to 0 includes:
if the true value of the first component is not equal to 0, analyzing whether the true value of the second component is equal to 0;
wherein whether the true value is equal to 0 includes:
whether an absolute value of the true value is equal to 0 or whether the absolute value of the true value is greater than 0.
22. A method of encoding, wherein an encoding side is applied, the method comprising:
determining a motion vector difference and a reference motion vector of a current block;
coding the motion vector difference and the reference motion vector into code stream information to obtain code stream information carrying first indication information, wherein the first indication information is used for indicating the motion vector difference and the reference motion vector;
wherein encoding the motion vector difference comprises:
encoding a true value of a first component and a true value of a second component of the motion vector difference;
wherein encoding the truth value for the second component comprises:
encoding the truth value attribute information of the second component according to the truth value or the preset truth value attribute information of the first component;
the preset true value attribute information includes whether a true value is equal to 0;
the encoding the preset truth value attribute information of the second component according to the truth value or the preset truth value attribute information of the first component includes:
encoding whether a true value of the second component is equal to 0 according to whether a true value of the first component is equal to 0;
the analyzing whether the true value of the second component is equal to 0 according to whether the true value of the first component is equal to 0 includes:
if the true value of the first component is not equal to 0, analyzing whether the true value of the second component is equal to 0;
wherein whether the true value is equal to 0 includes:
whether an absolute value of the true value is equal to 0 or whether the absolute value of the true value is greater than 0.
23. A decoding method applied to a decoding end, the method comprising:
acquiring code stream information, wherein the code stream information comprises first indication information, and the first indication information is used for indicating vector difference information and reference vector information of a current block;
determining the vector difference information and the reference vector information according to the first indication information;
determining final motion vector information of the current block according to the vector difference information and the reference vector information;
wherein determining the vector difference information according to the first indication information comprises:
determining a true value of a first component and a true value of a second component according to the first indication information, the motion vector including the first component and the second component;
determining the vector difference information according to the true value of the first component and the true value of the second component;
wherein determining a true value of the second component comprises:
analyzing the preset truth value attribute information of the second component according to the preset truth value attribute information of the first component;
wherein the ABVP mode of the intra block copy mode and the AMVP mode of the inter prediction share a syntax element decoding scheme of the vector difference information; when determining that the current block starts an intra block copy mode according to the code stream information, the reference vector information determined according to the first indication information is a reference block vector of the current block, the vector difference information determined according to the first indication information is a block vector difference of the current block, and the final motion vector information determined according to the reference vector information and the vector difference information is a final block vector of the current block;
the preset true value attribute information includes whether a true value is equal to 0;
the analyzing the preset truth value attribute information of the second component according to the preset truth value attribute information of the first component includes:
analyzing whether the truth value of the second component is equal to 0 according to whether the truth value of the first component is equal to 0;
the analyzing whether the true value of the second component is equal to 0 according to whether the true value of the first component is equal to 0 includes:
if the true value of the first component is not equal to 0, analyzing whether the true value of the second component is equal to 0;
wherein whether the true value is equal to 0 includes:
whether an absolute value of the true value is equal to 0 or whether the absolute value of the true value is greater than 0.
24. The method of claim 23,
when the inter prediction mode of the current block is determined to be started according to the code stream information, the reference vector information determined according to the first indication information is a reference motion vector of the current block, the vector difference information determined according to the first indication information is a motion vector difference of the current block, and the final motion vector information determined according to the reference vector information and the vector difference information is a final motion vector of the current block.
25. An encoding method applied to an encoding end, the method comprising:
determining vector difference information and reference vector information of a current block;
coding the vector difference information and the reference vector information into code stream information to obtain code stream information carrying first indication information, wherein the first indication information is used for representing the vector difference information and the reference vector information;
wherein encoding the vector difference information comprises:
encoding a true value of a first component and a true value of a second component of the vector difference information;
wherein encoding the truth value for the second component comprises:
encoding the truth value attribute information of the second component according to the truth value or the preset truth value attribute information of the first component;
wherein the ABVP of the intra block copy mode and the AMVP of the inter prediction mode share a coding syntax element of the vector difference information; when the intra block copy mode is decided by encoding, the reference vector information is a reference block vector of the current block, and the vector difference information is a block vector difference of the current block;
the preset true value attribute information includes whether a true value is equal to 0;
the encoding the preset truth value attribute information of the second component according to the truth value or the preset truth value attribute information of the first component includes:
encoding whether a true value of the second component is equal to 0 according to whether a true value of the first component is equal to 0;
the analyzing whether the true value of the second component is equal to 0 according to whether the true value of the first component is equal to 0 includes:
if the true value of the first component is not equal to 0, analyzing whether the true value of the second component is equal to 0;
wherein whether the true value is equal to 0 includes:
whether an absolute value of the true value is equal to 0 or whether the absolute value of the true value is greater than 0.
26. A decoding apparatus, applied to a decoding side, the apparatus comprising:
the code stream acquisition module is used for acquiring code stream information, wherein the code stream information comprises first indication information, and the first indication information is used for indicating the block vector difference and the reference block vector of the current block;
a decoding module, configured to determine the reference block vector and the block vector difference according to the first indication information;
a determining module, configured to determine a final block vector of the current block according to the reference block vector and the block vector difference;
wherein determining the block vector difference according to the first indication information comprises:
determining a true value of a first component and a true value of a second component based on the first indication information, the block vector difference comprising the first component and the second component;
determining the block vector difference according to the true value of the first component and the true value of the second component;
wherein determining a true value of the second component comprises:
analyzing the preset truth value attribute information of the second component according to the preset truth value attribute information of the first component;
the preset true value attribute information includes whether a true value is equal to 0;
analyzing the preset truth value attribute information of the second component according to the preset truth value attribute information of the first component, wherein the analyzing comprises:
analyzing whether the truth value of the second component is equal to 0 according to whether the truth value of the first component is equal to 0;
the analyzing whether the true value of the second component is equal to 0 according to whether the true value of the first component is equal to 0 includes:
if the true value of the first component is not equal to 0, analyzing whether the true value of the second component is equal to 0;
wherein whether the true value is equal to 0 includes:
whether an absolute value of the true value is equal to 0 or whether the absolute value of the true value is greater than 0.
27. An encoding apparatus applied to an encoding side, the apparatus comprising:
a determining module for determining a block vector difference of the current block and a reference block vector;
the encoding module is used for encoding the block vector difference and the reference block vector into code stream information to obtain code stream information carrying first indication information, wherein the first indication information is used for indicating the block vector difference and the reference block vector;
wherein encoding the block vector differences comprises:
encoding a true value of a first component and a true value of a second component of the block vector difference;
wherein encoding the truth value for the second component comprises:
encoding the preset truth value attribute information of the second component according to the truth value or the preset truth value attribute information of the first component;
the preset true value attribute information includes whether a true value is equal to 0;
the encoding of the preset truth value attribute information of the second component according to the truth value or the preset truth value attribute information of the first component includes:
encoding whether a true value of the second component is equal to 0 according to whether a true value of the first component is equal to 0;
the analyzing whether the true value of the second component is equal to 0 according to whether the true value of the first component is equal to 0 includes:
if the true value of the first component is not equal to 0, analyzing whether the true value of the second component is equal to 0;
wherein whether the true value is equal to 0 includes:
whether an absolute value of the true value is equal to 0 or whether the absolute value of the true value is greater than 0.
28. An apparatus for decoding, the apparatus comprising:
the code stream obtaining module is used for obtaining code stream information, wherein the code stream information comprises first indication information, and the first indication information is used for indicating the motion vector difference and the reference motion vector of the current block;
a decoding module, configured to determine the motion vector difference and the reference motion vector according to the first indication information;
a determining module, configured to determine a final motion vector of the current block according to the motion vector difference and the reference motion vector;
wherein determining the motion vector difference according to the first indication information comprises:
determining a true value of a first component and a true value of a second component according to the first indication information, the motion vector including the first component and the second component;
determining the motion vector difference according to the true value of the first component and the true value of the second component;
wherein determining a true value of the second component comprises:
analyzing the preset truth value attribute information of the second component according to the preset truth value attribute information of the first component;
the preset true value attribute information includes whether a true value is equal to 0;
analyzing the preset truth value attribute information of the second component according to the preset truth value attribute information of the first component, wherein the analyzing comprises:
analyzing whether the truth value of the second component is equal to 0 according to whether the truth value of the first component is equal to 0;
the analyzing whether the true value of the second component is equal to 0 according to whether the true value of the first component is equal to 0 includes:
if the true value of the first component is not equal to 0, analyzing whether the true value of the second component is equal to 0;
wherein whether the true value is equal to 0 includes:
whether an absolute value of the true value is equal to 0 or whether the absolute value of the true value is greater than 0.
29. An encoding apparatus applied to an encoding side, the apparatus comprising:
a determining module for determining a motion vector difference and a reference motion vector of the current block;
the encoding module is used for encoding the motion vector difference and the reference motion vector into code stream information to obtain code stream information carrying first indication information, wherein the first indication information is used for indicating the motion vector difference and the reference motion vector;
wherein encoding the motion vector difference comprises:
encoding a true value of a first component and a true value of a second component of the motion vector difference;
wherein encoding the truth value for the second component comprises:
encoding the truth value attribute information of the second component according to the truth value or the preset truth value attribute information of the first component;
the preset true value attribute information includes whether a true value is equal to 0;
the encoding of the preset truth value attribute information of the second component according to the truth value or the preset truth value attribute information of the first component includes:
encoding whether a true value of the second component is equal to 0 according to whether a true value of the first component is equal to 0;
the analyzing whether the true value of the second component is equal to 0 according to whether the true value of the first component is equal to 0 includes:
if the true value of the first component is not equal to 0, analyzing whether the true value of the second component is equal to 0;
wherein whether the true value is equal to 0 includes:
whether an absolute value of the true value is equal to 0 or whether the absolute value of the true value is greater than 0.
30. A decoding apparatus, for a decoding side, the apparatus comprising:
the code stream obtaining module is used for obtaining code stream information, wherein the code stream information comprises first indication information, and the first indication information is used for indicating vector difference information and reference vector information of a current block;
a decoding module, configured to determine the vector difference information and the reference vector information according to the first indication information;
a determining module, configured to determine final motion vector information of the current block according to the vector difference information and the reference vector information;
wherein determining the vector difference information according to the first indication information comprises:
determining a true value of a first component and a true value of a second component according to the first indication information, the motion vector including the first component and the second component;
determining the vector difference information according to the true value of the first component and the true value of the second component;
wherein determining a true value of the second component comprises:
analyzing the preset truth value attribute information of the second component according to the preset truth value attribute information of the first component;
wherein the ABVP mode of the intra block copy mode and the AMVP mode of the inter prediction share a syntax element decoding scheme of the vector difference information; when determining that the current block starts an intra block copy mode according to the code stream information, the reference vector information determined according to the first indication information is a reference block vector of the current block, the vector difference information determined according to the first indication information is a block vector difference of the current block, and the final motion vector information determined according to the reference vector information and the vector difference information is a final block vector of the current block;
the preset true value attribute information includes whether a true value is equal to 0;
analyzing the preset truth value attribute information of the second component according to the preset truth value attribute information of the first component, wherein the analyzing comprises:
analyzing whether the truth value of the second component is equal to 0 according to whether the truth value of the first component is equal to 0;
the analyzing whether the true value of the second component is equal to 0 according to whether the true value of the first component is equal to 0 includes:
if the true value of the first component is not equal to 0, analyzing whether the true value of the second component is equal to 0;
wherein whether the true value is equal to 0 includes:
whether an absolute value of the true value is equal to 0 or whether the absolute value of the true value is greater than 0.
31. An encoding apparatus, characterized in that the apparatus comprises:
a determining module for determining vector difference information and reference vector information of the current block;
the encoding module is used for encoding the vector difference information and the reference vector information into code stream information to obtain code stream information carrying first indication information, wherein the first indication information is used for representing the vector difference information and the reference vector information;
wherein encoding the vector difference information comprises:
encoding a true value of a first component and a true value of a second component of the vector difference information;
wherein encoding the truth value for the second component comprises:
encoding the truth value attribute information of the second component according to the truth value or the preset truth value attribute information of the first component;
wherein the ABVP of the intra block copy mode and the AMVP of the inter prediction mode share a coding syntax element of the vector difference information; when the intra block copy mode is decided by encoding, the reference vector information is a reference block vector of the current block, and the vector difference information is a block vector difference of the current block;
the preset true value attribute information includes whether a true value is equal to 0;
the encoding of the preset truth value attribute information of the second component according to the truth value or the preset truth value attribute information of the first component includes:
encoding whether a true value of the second component is equal to 0 according to whether a true value of the first component is equal to 0;
the analyzing whether the true value of the second component is equal to 0 according to whether the true value of the first component is equal to 0 includes:
if the true value of the first component is not equal to 0, analyzing whether the true value of the second component is equal to 0;
wherein whether the true value is equal to 0 includes:
whether an absolute value of the true value is equal to 0 or whether the absolute value of the true value is greater than 0.
CN201910364638.6A 2019-04-30 2019-04-30 Vector difference decoding method and device and electronic equipment Active CN111866515B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910364638.6A CN111866515B (en) 2019-04-30 2019-04-30 Vector difference decoding method and device and electronic equipment
PCT/CN2020/087887 WO2020221317A1 (en) 2019-04-30 2020-04-29 Vector difference decoding method, apparatus and electronic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910364638.6A CN111866515B (en) 2019-04-30 2019-04-30 Vector difference decoding method and device and electronic equipment

Publications (2)

Publication Number Publication Date
CN111866515A CN111866515A (en) 2020-10-30
CN111866515B true CN111866515B (en) 2022-03-04

Family

ID=72966165

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910364638.6A Active CN111866515B (en) 2019-04-30 2019-04-30 Vector difference decoding method and device and electronic equipment

Country Status (2)

Country Link
CN (1) CN111866515B (en)
WO (1) WO2020221317A1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009111647A (en) * 2007-10-29 2009-05-21 Panasonic Corp Apparatus for detecting motion vector and method for detecting motion vector
CN103190151A (en) * 2010-08-17 2013-07-03 吴秀美 Inter prediction encoding method
CN105392008A (en) * 2014-08-22 2016-03-09 中兴通讯股份有限公司 Coding and decoding prediction method, corresponding coding and decoding device, and electronic equipment
CN106576172A (en) * 2014-06-20 2017-04-19 成均馆大学校产学协力团 Method for encoding/decoding image and device using same
CN107211136A (en) * 2015-01-30 2017-09-26 联发科技股份有限公司 The method and apparatus of the entropy code of source sample with big alphabet
CN109196864A (en) * 2016-05-24 2019-01-11 韩国电子通信研究院 Image coding/decoding method and recording medium for the method

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150098504A1 (en) * 2013-10-09 2015-04-09 Qualcomm Incorporated Block vector coding for intra block copying
US9930341B2 (en) * 2014-06-20 2018-03-27 Qualcomm Incorporated Block vector coding for intra block copying

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009111647A (en) * 2007-10-29 2009-05-21 Panasonic Corp Apparatus for detecting motion vector and method for detecting motion vector
CN103190151A (en) * 2010-08-17 2013-07-03 吴秀美 Inter prediction encoding method
CN106576172A (en) * 2014-06-20 2017-04-19 成均馆大学校产学协力团 Method for encoding/decoding image and device using same
CN105392008A (en) * 2014-08-22 2016-03-09 中兴通讯股份有限公司 Coding and decoding prediction method, corresponding coding and decoding device, and electronic equipment
CN107211136A (en) * 2015-01-30 2017-09-26 联发科技股份有限公司 The method and apparatus of the entropy code of source sample with big alphabet
CN109196864A (en) * 2016-05-24 2019-01-11 韩国电子通信研究院 Image coding/decoding method and recording medium for the method

Also Published As

Publication number Publication date
CN111866515A (en) 2020-10-30
WO2020221317A1 (en) 2020-11-05

Similar Documents

Publication Publication Date Title
CN113455003B (en) Video encoding and decoding method and electronic equipment
KR102344430B1 (en) Motion vector improvement for multi-reference prediction
CN106576172B (en) Method for encoding/decoding image and apparatus using the same
RU2513707C1 (en) Method and apparatus for encoding and decoding motion vector
KR101855542B1 (en) Video encoding using example - based data pruning
EP3197165A1 (en) Image prediction method and relevant device
JP5559139B2 (en) Video encoding and decoding method and apparatus
KR20110017301A (en) Method and apparatus for encoding motion vector
GB2487200A (en) Video encoding and decoding with improved error resilience
KR20090095012A (en) Method and apparatus for encoding and decoding image using consecutive motion estimation
US20220368925A1 (en) Method for encoding/decoding image and device using same
US9094683B2 (en) Method of coding moving image and method of decoding moving image
CN111418214A (en) Syntactic prediction using reconstructed pixel points
EP4037320A1 (en) Boundary extension for video coding
KR100928325B1 (en) Image encoding and decoding method and apparatus
CN111866515B (en) Vector difference decoding method and device and electronic equipment
CN116033162A (en) Rate distortion coding mode selection method and device, coding method and system
CN112261409A (en) Residual encoding method, residual decoding method, residual encoding device, residual decoding device, storage medium and electronic device
JP2007510344A (en) Power optimized array motion prediction method
WO2007029914A1 (en) Video encoding/decoding method and apparatus in temporal direct mode in hierarchica structure
WO2023051645A1 (en) Method, apparatus, and medium for video processing
WO2023226951A1 (en) Method, apparatus, and medium for video processing
KR20080068277A (en) Method and apparatus for encoding and decoding based on motion estimation
WO2023131125A1 (en) Method, apparatus, and medium for video processing
WO2023131047A1 (en) Method, apparatus, and medium for video processing

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