CN110944190B - Encoding method and device, decoding method and device for image compression - Google Patents

Encoding method and device, decoding method and device for image compression Download PDF

Info

Publication number
CN110944190B
CN110944190B CN201910901050.XA CN201910901050A CN110944190B CN 110944190 B CN110944190 B CN 110944190B CN 201910901050 A CN201910901050 A CN 201910901050A CN 110944190 B CN110944190 B CN 110944190B
Authority
CN
China
Prior art keywords
motion vector
block
current
sub
index
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
CN201910901050.XA
Other languages
Chinese (zh)
Other versions
CN110944190A (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.)
Shanghai Tianhe Electronic Information Co ltd
Original Assignee
Shanghai Tianhe Electronic Information 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 Shanghai Tianhe Electronic Information Co ltd filed Critical Shanghai Tianhe Electronic Information Co ltd
Priority to CN202211585709.3A priority Critical patent/CN116193127A/en
Publication of CN110944190A publication Critical patent/CN110944190A/en
Application granted granted Critical
Publication of CN110944190B publication Critical patent/CN110944190B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

The invention provides an encoding method and an encoding device, a decoding method and a decoding device for image compression by using special historical recent motion vector prediction candidate sets.

Description

Encoding method and device, decoding method and device for image compression
Technical Field
The present invention relates to an encoding and decoding system for lossy or lossless compression of data, and more particularly to a method and apparatus for encoding and decoding image and video data.
Background
With the human society entering the era of big data, cloud computing, mobile computing, cloud-mobile computing, ultra high definition (4K) and ultra high definition (8K) video image resolution, 4G/5G communication, and virtual reality, it becomes an indispensable technology to compress various data, including big data, image data, and video data, with ultra high compression ratio and extremely high quality.
Images and videos are finite sets of data (e.g., a frame of images, a sequence of videos, a three-dimensional scene, a sequence of constantly changing three-dimensional scenes) that are organized into a spatial (one-, two-, or multi-dimensional) shape that is composed of samples of pixels. When encoding (and corresponding decoding) of data compression of image data, an image is generally divided into a number of subsets having a predetermined shape, called encoding blocks (i.e., decoding blocks from the decoding point of view, collectively referred to as encoding and decoding blocks), and the encoding or decoding is performed on a block-by-block basis in a predetermined time sequence. At any one time, the coding block being coded is referred to as the current coding block. At any one time, the decoding block being decoded is referred to as the current decoding block. The current encoding block or the current decoding block is commonly referred to as the current encoding and decoding block or simply the current block. The sample being encoded or decoded is referred to as the current encoded sample or current decoded sample, simply as the current sample.
For a codec block with a certain shape (not necessarily limited to a square or a rectangle, but may be any other reasonable shape), it is necessary to divide the codec block into more fine sub-blocks (not necessarily limited to a square or a rectangle, but may be any other reasonable shape) in many cases, and the sub-blocks are encoded or decoded one by one according to a predetermined time sequence. The same type of encoding or decoding operation is typically performed on all samples within a sub-block. At any one time, the sub-block being encoded or decoded is referred to as the current sub-block. The result of encoding a sub-block is one or more encoding parameters, and finally a compressed data code stream containing the encoding parameters is generated. Decoding a sub-block is to analyze the compressed data code stream to obtain one or more encoding parameters, and to recover reconstructed data samples from the one or more encoding parameters.
Examples of sub-blocks include codec blocks (the entire codec block as a sub-block), square or rectangular or triangular or trapezoidal sub-blocks, micro-blocks, strings, pixel strings, sample strings, index strings, lines.
The image data involved in the invention comprises the acquired or generated original state image data, also comprises a plurality of processed intermediate state data and data sets, and also comprises coding parameter data and data sets generated in the coding and decoding processes, such as various coding modes, multi-dimensional or three-dimensional or two-dimensional motion vectors, matching lengths and the like.
One approach to image compression is to mine the correlation between data units of each hierarchical aspect in an image, and match (also commonly referred to as predict, represent, compensate, approximate, etc.) a current data unit with a data unit commonly referred to as a reference data unit (also commonly referred to as predict data unit, compensate data unit, match data unit, matched data unit, predicted value, compensation value, reference value, etc.), so as to achieve lossless or lossy compression of data.
Motion Vector (MV) is an important data unit in image compression. The coding efficiency of the inter-frame coding can be effectively improved by using the motion vector of the coding and decoding block or sub-block which completes at least part of coding and decoding operation as the motion vector predicted value to predict a current motion vector (namely, the motion vector currently being coded and decoded). Possible sources of motion vector predictors include at least:
1) One or more motion vectors of a frame-adjacent, also referred to as spatial neighboring (spatial neighboring) codec block, that have completed at least a portion of the codec operation, are referred to as frame-adjacent motion vectors,
2) One or more motion vectors of a previous frame neighboring, also referred to as temporal neighboring (temporal neighboring) codec block, for which at least a partial codec operation has been completed, are referred to as previous frame neighboring motion vectors,
3) The historical recent motion vector predicted value candidate set is composed of motion vectors which are generated according to the coding and decoding sequence in the coding and decoding historical process and are used for completing at least partial coding and decoding operations of a plurality of latest coding and decoding blocks adopting an interframe coding mode, and the motion vectors are called historical recent motion vectors.
Each motion vector typically includes at least a horizontal component and a vertical component, and optionally a reference picture index, indicating from which frame of the reference picture queue the reference pixel was taken. Thus, each motion vector corresponds to a frame of reference image, i.e., the reference block or sub-block and the image in which its reference pixels are located.
In the prior art, there is only one single historical recent motion vector predictor candidate set, and all motion vectors therein, regardless of the value of their corresponding reference picture index (indicating in which frame of the reference picture queue the reference pixel for inter prediction is), are indiscriminately used for prediction of the current motion vector. Therefore, the historical recent motion vector predictor candidate set cannot be effectively adapted to various interframe coding occasions, particularly the occasions of allowing the current image, namely the current block or subblock, to be used as a reference image, namely a reference block or subblock, influence the improvement of the coding efficiency.
Disclosure of Invention
In order to solve the problem in image compression, the invention provides an image compression method and device using a special historical recent motion vector prediction candidate set, wherein one historical recent motion vector prediction candidate set is mainly used when a reference image is a current image, at least one historical recent motion vector prediction candidate set is mainly used when the reference image is not the current image, and different special historical recent motion vector prediction candidate sets are suitable for different occasions of inter-frame coding, so that the coding efficiency is improved.
The invention is characterized in thatCurrent image reference dedicated history recent motion vector prediction candidate setAndhistorical recent motion vector prediction candidate set dedicated to non-current picture referenceIt is mainly used in the case where the reference picture is a current picture and a non-current picture, respectively.
The most basic characteristic feature of the encoding method or apparatus of the present invention is to use the current motion vector, i.e., the motion vector of the current block or sub-block, when encoding the current motion vector, at least depending on the degree of possibility of whether the reference picture is the current picture or notCurrent image reference dedicated history recent motion vector prediction candidate setOr alternativelySpecial historical recent motion for non-current image reference Motion vector prediction candidate setOrMixing bothAsCurrent historical recent motion vector prediction candidate setIn at least the current historical latest motion vector prediction candidate set, an optimal motion vector is selected as a prediction motion vector or motion vector prediction value of the current motion vector at least according to a preset evaluation rule, such as the number of bits consumed and/or the size of a coding error, and a compressed data code stream at least containing part or all information of the motion vector prediction value representing the current motion vector is generated. Fig. 1 is a schematic diagram of an encoding method or apparatus of the present invention.
The most basic characteristic technical feature of the decoding method or device of the invention is to analyze the compressed data code stream to obtain the motion vector at least representing the current motion vectorUsing part or all of the information of the motion vector predictor, depending at least on how likely it is that the reference picture is or is not the current pictureCurrent image reference dedicated history recent motion vector prediction candidate setOrNon-current picture Reference-specific history-like recent motion vector prediction candidate setOrMixing bothAsCurrent historical recent motion vector prediction Candidate setAnd decoding the current motion vector prediction candidate set from at least the current historical latest motion vector according to part or all of the information of the motion vector prediction value of the current motion vector to obtain the motion vector prediction value of the current motion vector. Fig. 2 is a schematic diagram of a decoding method or apparatus of the present invention.
According to an aspect of the present invention, there is provided an encoding method or apparatus for image compression, comprising at least the steps or modules of:
in encoding a current motion vector in an encoding block, use is made of a reference picture, depending at least on how likely it is that the reference picture is or is not the current pictureCurrent image reference dedicated history recent motion vector prediction candidate setOrIs not current Image reference-specific historical recent motion vector prediction candidate setOrMixing the twoAsCurrent historical recent motion vector Predicting candidate setsPredicting a candidate set from at least said current historical recent motion vector, according to at least a predetermined evaluation rule,
selecting a motion vector as the motion vector predictor of the current motion vector
Or
Selecting a preset number of historical recent motion vectors, putting the historical recent motion vectors into a candidate list for motion vector prediction, and selecting one motion vector from the candidate list as a motion vector prediction value of the current motion vector;
a compressed data code stream containing at least part or all of information representing a motion vector predictor of the current motion vector is generated.
According to another aspect of the present invention, there is also provided a decoding method or apparatus for image compression, comprising at least the steps or modules for performing the following functions and operations:
when decoding a current motion vector in a decoded block, the compressed data code stream is parsed to obtain some or all information representing at least the motion vector predictor of the current motion vector, which is used at least depending on the degree of likelihood of whether the reference picture is the current picture or notCurrent image reference dedicated history recent motion vector prediction candidate setOrNon-current picture Reference-specific historical recent motion vector prediction candidate setOr alternativelyMixing bothAsCurrent historical recent motion vector prediction Candidate setPredicting a candidate set from at least the current historical most recent motion vector, based on at least part or all of the information of the motion vector predictor representing the current motion vector,
selecting a motion vector as the motion vector predictor of the current motion vector
Or
Selecting a preset number of historical recent motion vectors, putting the historical recent motion vectors into a candidate list for predicting the motion vectors, and selecting one motion vector from the candidate list as the motion vector predicted value of the current motion vector;
and then decoded to obtain the current motion vector itself.
From a first aspect, the invention provides a coding method for compressing an image, characterized in that it comprises at least the following steps:
1) In encoding a current motion vector in an encoding block, use is made of a reference picture, depending at least on how likely it is that the reference picture is or is not the current pictureCurrent image reference dedicated history recent motion vector prediction candidate setOrIs improper Previous image reference dedicated history recent motion vector prediction candidate setOr alternativelyMixing the twoAsCurrent historical nearest motion vector Volume prediction candidate set
2) Predicting a candidate set from at least the current historical recent motion vector, based on at least a predetermined evaluation rule,
selecting a motion vector as the motion vector predictor of the current motion vector
Or
Selecting a preset number of historical recent motion vectors, putting the historical recent motion vectors into a candidate list for motion vector prediction, and selecting one motion vector from the candidate list as a motion vector prediction value of the current motion vector;
3) A compressed data code stream containing at least part or all of information representing a motion vector predictor of the current motion vector is generated.
From a second aspect, the present invention provides a decoding method for compressing an image, comprising at least the following steps:
1) When a current motion vector in a decoding block is decoded, analyzing a compressed data code stream to obtain partial or all information at least representing a motion vector predicted value of the current motion vector;
2) Using at least the extent to which it is possible that the reference picture is or is not the current pictureCalendar special for current image reference History recent motion vector prediction candidate setOrHistorical recent motion vector prediction candidate set dedicated to non-current picture referenceOrMixing bothAsCurrent historical recent motion vector prediction candidate set
3) Predicting a candidate set from at least the current historical most recent motion vector, based on at least some or all of the information representing the motion vector predictor of the current motion vector,
selecting a motion vector as the motion vector predictor of the current motion vector
Or
Selecting a predetermined number of historical recent motion vectors into a candidate list for motion vector prediction and selecting a motion vector from the candidate list as the motion vector predictor of the current motion vector,
and then decoded to obtain the current motion vector itself.
From a third perspective, the present invention provides an encoding apparatus for compressing an image, characterized by comprising at least the following modules:
1) A current candidate set selection module for using a current motion vector in a coding block based on at least the likelihood of a reference picture being a current picture or notSpecial historical recent motion vector for current image reference Volume prediction candidate setOrNon-current image reference dedicated history recent motion vector prediction candidate setOrMixing bothAsCurrent historical recent motion vector prediction candidate set
2) A motion vector predictor selection module that predicts a set of candidates from at least the current historical most recent motion vector, based at least on a predetermined evaluation rule,
selecting a motion vector as the motion vector predictor of the current motion vector
Or
Selecting a preset number of historical recent motion vectors, putting the historical recent motion vectors into a candidate list for motion vector prediction, and selecting one motion vector from the candidate list as a motion vector prediction value of the current motion vector;
3) And the compressed data code stream generating module is used for generating a compressed data code stream at least containing part or all of information of the motion vector predicted value representing the current motion vector.
From a fourth perspective, the present invention provides a decoding apparatus for compressing an image, characterized by comprising at least the following modules:
1) The compressed data code stream analyzing module is used for analyzing the compressed data code stream when decoding a current motion vector in a decoding block and acquiring part or all information of a motion vector predicted value at least representing the current motion vector;
2) A current candidate set selection module for using the reference image based on at least how likely it is that the reference image is or is not the current imageHistorical recent motion vector prediction candidate set dedicated to current image referenceOrSpecial historical recent movement for non-current image reference Motion vector prediction candidate setOrMixing the twoAsCurrent historical recent motion vector prediction candidate set
3) A motion vector predictor decoding module for predicting a candidate set from at least the current historical latest motion vector, based on at least some or all of the information of the motion vector predictor representing the current motion vector,
selecting a motion vector as the motion vector predictor of the current motion vector
Or
Selecting a predetermined number of historical recent motion vectors into a candidate list for motion vector prediction and selecting a motion vector from the candidate list as the motion vector predictor of the current motion vector,
and then decoded to obtain the current motion vector itself.
The invention is suitable for coding and decoding of lossy image compression, and the invention is also suitable for coding and decoding of lossless image compression.
In the present invention, a coding block or a decoding block is a coding region or a decoding region of an image, and includes at least one of: a full picture, a sub-picture of a picture, a slice, a tile, a macroblock, a largest coding unit, LCU, coding tree unit, CTU, coding unit, CU, sub-region of CU, sub-coding unit, subCU, sub-region of prediction unit, PU, sub-prediction unit, subppu, transform unit, TU, sub-region of TU, sub-transform unit, subptu.
In the present invention, the sub-blocks include one or a combination of the following cases: a codec block, a sub-region of a codec block, a square or rectangular or triangular or trapezoidal sub-block, a micro-block, a string, a pixel string, a sample string, an index string, a line.
The technical features of the present invention are explained above by specific embodiments. Other advantages and effects of the present invention will be readily apparent to those skilled in the art from the disclosure herein. The invention is capable of other and different embodiments and of being practiced or of being carried out in various ways, and its several details are capable of modification in various respects, all without departing from the spirit and scope of the present invention.
Drawings
Fig. 1 is a schematic diagram of an encoding method or apparatus of the present invention.
Fig. 2 is a schematic diagram of a decoding method or apparatus of the present invention.
Detailed Description
The following are further implementation details or variations of the present invention.
Example 1 (example of manner of indicating the degree of possibility of whether the reference picture is the current picture)
In the encoding method or apparatus or the decoding method or apparatus,
the motion vector at least comprises a two-dimensional vector (mv [0], mv [1 ]), which represents the difference (coordinate) between the two-dimensional coordinate of the current block or sub-block in the current image and the two-dimensional coordinate of the corresponding reference block or sub-block in the reference image, namely the offset;
the degree of likelihood of whether the reference picture is or is not the current picture is expressed using one of the following two ways:
the first method is as follows:
the motion vector comprises a reference picture index ref _ idx indicating the index of the reference picture in the reference picture queue, i.e. indicating in which frame picture the reference block or sub-block is in the reference picture queue;
the value of the reference picture index being equal to a predetermined value (usually the maximum value of the reference picture index) indicates that the reference picture is the current picture;
the value of the reference picture index not being equal to a predetermined value (typically the maximum value of the reference picture index) indicates that the reference picture is a non-current picture;
the second method comprises the following steps:
the current block or sub-block to which the motion vector belongs has a corresponding encoding mode;
when the coding mode isIntra-frame Block Copy prediction (Intra Block Copy prediction) IBC for short prediction modeWhen the reference picture is the current picture, in this case, the motion vector is also called a block vector, which is abbreviated as bv;
when the coding mode isInter prediction or inter predicon modeThe reference picture is a non-current picture.
Embodiment or variation 2 (example of candidate list for motion vector prediction)
In the encoding method or apparatus or the decoding method or apparatus,
the motion vector predictor of the current motion vector is from at least a merge candidate list, mergecandList;
the merge candidate list includes at least the following motion vectors as the motion vector predictor of the motion vector of the current block:
motion vectors of coded and decoded blocks or sub-blocks thereof adjacent to each other in a frame, also called spatial neighboring (spatial neighboring) coding, are called neighboring motion vectors in a frame
And/or
Motion vectors of previous frame neighboring, also called temporal neighboring (temporal neighboring) coded blocks or sub-blocks thereof, called previous frame neighboring motion vectors
And/or
The current historical recent motion vector predicts some or all of the motion vectors of the candidate set.
Implementation or variation 3 (two private historical recent motion vector prediction candidate sets are two subsets of a common candidate set)
In the encoding method or apparatus or the decoding method or apparatus,
the current image reference special history latest motion vector prediction candidate set and the non-current image reference special history latest motion vector prediction candidate set are respectively different subsets of the same common history latest motion vector prediction candidate set and are respectively called as a current image reference special subset and a non-current image reference special subset, and motion vectors in the common history latest motion vector prediction candidate set are respectively classified into the current image reference special subset and the non-current image reference special subset according to whether a reference image of the motion vectors is a current image;
said dedicated current picture reference subset and said dedicated non-current picture reference subset are respectively one representation of said dedicated current picture reference history most recent motion vector prediction candidate set and of said dedicated non-current picture reference history most recent motion vector prediction candidate set.
Implementation or modification example 4 (example of candidate list construction for motion vector prediction)
In the encoding method or apparatus or the decoding method or apparatus,
the motion vector predictor of the current motion vector is from at least a merge candidate list;
the construction process of the merging candidate list at least comprises one of the following three types of operations or a logical combination thereof:
the first kind of operation, which is applicable to the case that the reference image is always a non-current image, at least includes:
non-repeating neighboring motion vectors of the same frame are first put into the merge candidate list,
secondly putting non-repeating previous frame neighboring motion vectors into the merge candidate list,
then putting part or all of the motion vectors in the nonrepeating special-purpose history latest motion vector prediction candidate set of the non-current image into the merge candidate list;
the second kind of operation, which is applicable to the case that the reference image is always the current image, at least includes:
non-repeating neighboring motion vectors of the same frame are first put into the merge candidate list,
then putting part or all of the motion vectors in the non-repeated current image reference special history recent motion vector prediction candidate set into the merging candidate list;
a third type of operation, applicable to a situation where the reference picture may be the current picture or the non-current picture, includes at least:
non-repeating neighboring motion vectors of the same frame are first put into the merge candidate list,
secondly putting non-repeating previous frame neighboring motion vectors into the merge candidate list,
then, some or all of the non-repeated motion vectors in the current picture reference only history recent motion vector prediction candidate set and some or all of the non-repeated motion vectors in the non-current picture reference only history recent motion vector prediction candidate set are interleaved into the merge candidate list.
Implementation or modification example 5 (example of candidate list construction Process for motion vector prediction)
In the encoding method or apparatus or the decoding method or apparatus,
the motion vector predictor of the current motion vector is from at least a merge candidate list;
the merging candidate list comprises candidate motion vector predicted values of MaxUMMergeCand, which are respectively represented by sequence numbers i from 0 to MaxUMMergeCand-1;
the construction process of the merging candidate list at least comprises one of the following three types of operations or a logical combination thereof:
the first kind of operation, applicable to the case where the reference picture is always a non-current picture, includes at least:
the initialization serial number i is 0 and,
if the block or sub-block adjacent to the left of the same frame is available and valid, the motion vector of the block or sub-block to the left is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if an upper block or sub-block adjacent to the same frame is available and valid, assigning the motion vector of the upper block or sub-block to a candidate motion vector predictor with index i and adding one to index i,
if the block or sub-block adjacent to the upper right of the same frame is available and valid, the motion vector of the upper right block or sub-block is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if the adjacent lower left block or sub-block of the same frame is available and valid, the motion vector of the lower left block or sub-block is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if the block or sub-block of the previous frame adaptation position is available and valid, the motion vector of the block or sub-block of the previous frame adaptation position is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if the adjacent upper left block or sub-block of the same frame is available and valid, the motion vector of the upper left block or sub-block is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if a previous co-located block is available and valid, assigning the motion vector of said previous co-located block to the candidate motion vector predictor with index i and adding one to index i,
repeatedly predicting the motion vector in the candidate set by using the non-current image reference special history latest motion vector, as long as the motion vector value and/or the reference image index value are not equal to the motion vector value and/or the reference image index value of the motion vector already put into the merge candidate list in the construction process of the merge candidate list, namely the motion vector value and/or the reference image index value are not repeated with the motion vector value and/or the reference image index value of the motion vector with a smaller sequence number in the merge candidate list, sequentially assigning a candidate motion vector predicted value with a sequence number i and adding the sequence number i by one, and only until the sequence number i is equal to MaxMMergeCand;
the second kind of operation, which is applicable to the case that the reference image is always the current image, at least includes:
the initialization sequence number i is 0 and,
if the block or sub-block adjacent to the left of the same frame is available and valid, the motion vector of the block or sub-block to the left is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if an upper block or sub-block adjacent to the same frame is available and valid, assigning the motion vector of the upper block or sub-block to a candidate motion vector predictor with index i and adding one to index i,
if the block or sub-block adjacent to the upper right of the same frame is available and valid, the motion vector of the upper right block or sub-block is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if the adjacent lower left block or sub-block of the same frame is available and valid, the motion vector of the lower left block or sub-block is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if the adjacent upper left block or sub-block of the same frame is available and valid, the motion vector of the upper left block or sub-block is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
repeatedly predicting the motion vector in the candidate set by using the current image reference dedicated history latest motion vector as long as the motion vector value and/or the reference image index value thereof is not equal to the motion vector value and/or the reference image index value of the motion vector already put into the merge candidate list in the construction process of the merge candidate list, namely the motion vector value and/or the reference image index value are not repeated with the motion vector value and/or the reference image index value of the motion vector with the smaller sequence number in the merge candidate list, sequentially assigning the candidate motion vector predicted value with the sequence number i and adding the sequence number i by one until the sequence number i is equal to MaxMMergeCand.
A third type of operation, applicable to a situation where the reference picture may be the current picture or the non-current picture, includes at least:
the initialization sequence number i is 0 and,
if the block or sub-block to the left adjacent to the same frame is available and valid, the motion vector of the block or sub-block to the left is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if the above block or subblock adjacent to the same frame is available and valid, the motion vector of the above block or subblock is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if the block or sub-block adjacent to the upper right of the same frame is available and valid, assigning the motion vector of the upper right block or sub-block to the candidate motion vector predictor with index i and adding one to index i,
if the adjacent lower left block or sub-block of the same frame is available and valid, the motion vector of the lower left block or sub-block is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if the block or sub-block of the previous frame adaptation position is available and valid, the motion vector of the block or sub-block of the previous frame adaptation position is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if the adjacent upper left block or sub-block of the same frame is available and valid, the motion vector of the upper left block or sub-block is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if a previous co-located block is available and valid, assigning the motion vector of said previous co-located block to the candidate motion vector predictor with index i and adding one to index i,
repeatedly assigning a motion vector in the non-current picture reference dedicated history latest motion vector prediction candidate set and a motion vector in the current picture reference dedicated history latest motion vector prediction candidate set in an interleaved manner, to a candidate motion vector predictor with index i in sequence and adding one to index i only until index i equals to MaxNumMergeCand, as long as its motion vector value and/or reference picture index value does not equal a motion vector value and/or reference picture index value of a motion vector already placed in the merge candidate list in the construction process of the merge candidate list, i.e., does not repeat with a motion vector value and/or reference picture index value of a motion vector with a smaller index in the merge candidate list.
EXAMPLE or VARIATION EXAMPLE 6 (examples of definition of "useful" and of "effective")
Implementation or variation 5 wherein the encoding method or apparatus or the decoding method or apparatus is defined as "useful" in that the block or sub-block exists, at least part of the encoding/decoding operation has been completed, and is in the same band as the current block in the case of being adjacent to the same frame, and "effective" is defined as one or a combination of the following cases:
1) With the motion vector(s) being present,
2) Having a motion vector and having a motion vector value and/or reference picture index value that is not equal to the motion vector value and/or reference picture index value of a motion vector that has been put into the merge candidate list during construction of the merge candidate list, i.e. that is not repeated with the motion vector value and/or reference picture index value of a motion vector of smaller ordinal number within the merge candidate list,
3) -employing a coding mode with at least one motion vector comprising: an inter prediction mode, an inter prediction mode allowing use of the current image as a reference image, an intra block matching mode, an intra block prediction mode, a string matching mode, a string prediction mode, a micro block matching mode, a micro block prediction mode, a line matching mode, a line prediction mode,
3) Having the characteristics of a predetermined number of components,
4) The predetermined condition is satisfied and the data is transmitted,
5) With a motion vector of a predetermined type,
6) With motion vectors whose values fall within a predetermined range of values,
7) With motion vectors whose values fall outside a predetermined range of values.
EXAMPLE 7 EXPERIMENT OR VARIABLE EXAMPLE (EXAMPLE OF SPECIFIC HISTORY MOVEMENT PREDICTION CONCENTRATED SETTINGS)
In the encoding method or apparatus or the decoding method or apparatus,
the motion vector at least comprises a two-dimensional vector (mv [0], mv [1 ]), which represents the difference (coordinate) between the two-dimensional coordinate of the current block or sub-block in the current image and the two-dimensional coordinate of the corresponding reference block or sub-block in the reference image, namely the offset;
the current block or sub-block to which the motion vector belongs has a corresponding encoding mode;
when the coding mode isIntra-frame Block Copy prediction (Intra Block Copy prediction) IBC for short prediction modeWhen the reference picture is the current picture, in this case, the motion vector is also called a block vector, which is abbreviated as bv;
when the coding mode isInter prediction or inter prediction modeWhen the reference image is a non-current image;
the above-mentionedCurrent picture reference dedicated history recent motion vector prediction candidate set HmvpIBCandList={HmvpIbcCandList[i], 0 ≤ i ≤ I 1 -1} is a block vector that has completed at least part of the coding and decoding operations and further satisfies a first type of selection condition among block vectors of at least the coding and decoding blocks or sub-blocks that comply with at least a first type of predetermined rule, wherein I 1 Is thatHmvpIbcCandListNumber of block vectors stored in, I 1 Less than or equal to a predetermined first maximum value;
the above-mentionedNon-current picture reference dedicated history recent motion vector prediction candidate set hmvpandlist={HmvpCandList[i], 0 ≤ i ≤I 2 -1} is a motion vector that has completed at least part of the coding operation and further satisfies a second type of selection condition among the motion vectors of at least the coded block or sub-block that complies with a second type of predetermined rule, wherein I 2 Is thatHmvpCandListNumber of motion vectors stored in, I 2 Less than or equal to a predetermined second maximum value.
Embodiment or variation 8 (examples of predetermined rules and selection conditions)
In the encoding method or apparatus or the decoding method or apparatus according to embodiment or variation 7,
the first class of predetermined rules comprises at least that the coding mode of the coding/decoding block or sub-block that has completed at least part of the coding/decoding operation isIntra block copy prediction modeThe first type of selection condition comprises that at least the reference block or sub-block represented by the motion vector concerned is within a predetermined reference range;
the second type of predetermined rule at least comprises that the coding mode of the coding and decoding block or sub-block which has completed at least part of the coding and decoding operation isInter prediction modeThe second type of selection condition comprises at least that the reference block or sub-block represented by the motion vector concerned is within a predetermined reference range.
EXAMPLES OR VARIATIONS 9 (examples of predetermined maximum values)
In the encoding method or apparatus or the decoding method or apparatus according to embodiment or variation 7,
said first maximum value is an integer between 4 and 12;
the second maximum value is an integer between 4 and 12.
Embodiment or variation 10 (example of candidate list for motion vector prediction)
In the encoding method or apparatus or the decoding method or apparatus according to embodiment or variation 7,
when the reference picture is the current picture, at least from the reference pictureHmvpIbcCandListIn a predetermined manner, selecting a predetermined number K 1 Individual HmvpIBCandList [ i]Putting a block vector candidate list for block vector predictionbvCandList={bvCandList[j], 0 ≤ j ≤ J 1 -1}, and then from saidbvCandListSelects a block vector bvCandList [ mvIdx]A block vector predictor as said current block vector, wherein J 1 Is thatbvCandListNumber of motion vectors stored in, J 1 Less than or equal to a predetermined maximum value (typically an integer between 4 and 16), mvIdx satisfies 0 ≦ mvIdx ≦ J 1 -1;
When the reference picture is a non-current picture, at least from the current pictureHmvpCandListIn a predetermined manner to select a predetermined number K 2 HmvpCandList [ i]Put into a merge candidate list for motion vector predictionmergeCandList={mergeCandList[j], 0 ≤ j ≤ J 2 -1} and from saidmergeCandListSelecting a motion vector mergeCandList [ merge _ idx [ ]]A motion vector predictor as said current motion vector, wherein J 2 Is thatmergeCandListNumber of motion vectors stored in, J 2 Less than or equal to a predetermined maximum value (typically an integer between 4 and 16), merge _ idx satisfies 0 ≦ merge _ idx ≦ J 2 -1。
Embodiment or variant 11 (example of candidate list for motion vector prediction)
In the encoding method or apparatus or the decoding method or apparatus according to embodiment or variation 10,
the mvIdx is present in or derived from at least part or all of the information representing the motion vector predictor of the current motion vector;
the merge _ idx is present in or derived from at least part or all of the information representing the motion vector predictor of the current motion vector.
Implementation or modification example 12 (example of composition of elements of the exclusive past recent motion vector prediction candidate set)
In the encoding method or apparatus or the decoding method or apparatus according to embodiment or variation 7,
the above-mentionedHmvpIbcCandListThe composition of the elements of (a) includes at least a horizontal component and a vertical component of the block vector;
the above-mentionedHmvpCandListComprises at least a horizontal component and a vertical component of one or two motion vectors, a reference index indicating which frame of the reference picture is in the reference picture queue, and at most one bi-directional predicted CU hierarchical weight.
Implementation or variation example 13 (example of construction and update of a specific historical recent motion vector prediction candidate set)
In the encoding method or apparatus or the decoding method or apparatus according to embodiment or variation 7,
the above-mentionedHmvpIbcCandListAnd/orHmvpCandListIs reset to the empty set at the time of starting the codec of one frame image.
EXAMPLE 14 EXPERIMENTAL OR VARIABLE EXAMPLE 14 (example of constructing and updating a dedicated historical recent motion vector prediction candidate set)
In the encoding method or apparatus or the decoding method or apparatus according to embodiment or variation 7,
the above-mentionedHmvpIbcCandListAnd/orHmvpCandListReset to the empty set at the moment of starting the codec of one slice.
Implementation or variation example 15 (example of construction and update of a specific historical recent motion vector prediction candidate set)
In the encoding method or apparatus or the decoding method or apparatus according to embodiment or variation 7,
updating according to a first predetermined scheme when a new motion vector is obtained for a reference picture as a current picture in encoding and decodingHmvpIbcCandList
Updating according to a second predetermined scheme when a new motion vector is obtained in the encoding/decoding, the reference picture being a non-current pictureHmvpCandList
EXAMPLE OR VARIATION 16 (example of constructing and updating a dedicated historical recent motion vector prediction candidate set)
In the encoding method or apparatus or the decoding method or apparatus according to embodiment or variation 15,
the first predetermined scheme includes at least 1) theHmvpIbcCandListIs a first-in first-out buffer, i.e. FIFO buffer, 2) deletes saidHmvpIbcCandListInterpolating motion vectors equivalent to said new motion vector and advancing immediately subsequent motion vectors by one position, 3) when said new motion vector is interpolated from said first motion vector and said second motion vectorHmvpIbcCandListWhen the space in the space is full, moving out the motion vector which is put in first according to the rule of first-in first-out, moving the rest motion vectors forward by a position and moving the rest motion vectors into the new motion vector;
the second predetermined scheme includes at least 1) theHmvpCandListIs a first-in first-out buffer, i.e. FIFO buffer, 2) deletes saidHmvpCandListInterpolating motion vectors equivalent to said new motion vector and advancing immediately subsequent motion vectors by one position, 3) when said new motion vector is interpolated from said first motion vector and said second motion vectorHmvpCandListWhen the space in the space is full, the motion vector which is put in first is moved out according to the rule of first-in first-out, and the rest motion vectors are moved forward by one position and moved into the new motion vector.

Claims (16)

1. An encoding method for image compression, characterized by comprising at least the following steps:
1) When encoding a current motion vector in an encoding block, using at least one of the reference pictures based on whether the reference picture is a current picture or a non-current pictureCurrent image reference dedicated history recent motion vector prediction candidate setOrNon-current image parameter Special history recent motion vector prediction candidate for examinationSelection setOrMixing the twoAsRecent motion vector predictor for current history Selection set
Whether the reference picture is the current picture or the non-current picture is represented in at least one of the following two ways:
the first method is as follows:
the motion vector comprises a reference picture index ref _ idx indicating the position or address of the reference picture in the reference picture queue, i.e. indicating in which frame of picture the reference block or sub-block is in the reference picture queue;
the value of the reference picture index being equal to a predetermined value indicating that the reference picture is the current picture;
the value of the reference picture index being unequal to a predetermined value indicates that the reference picture is a non-current picture;
the second method comprises the following steps:
the current block or sub-block to which the motion vector belongs has a corresponding encoding mode;
when the coding mode isIntra-frame Block Copy prediction, intra Block Copy prediction, IBC for short prediction modeWhen the reference picture is the current picture, in this case, the motion vector is also called a block vector, which is abbreviated as bv;
when the coding mode isInter prediction modeWhen the reference image is a non-current image;
obtaining the current picture reference dedicated history recent motion vector prediction candidate set and/or the non-current picture reference dedicated history recent motion vector prediction candidate set using at least one of the following two schemes:
the first scheme comprises the following steps:
the current image reference special history latest motion vector prediction candidate set and the non-current image reference special history latest motion vector prediction candidate set are respectively different subsets of the same common history latest motion vector prediction candidate set and are respectively called as a current image reference special subset and a non-current image reference special subset, and motion vectors in the common history latest motion vector prediction candidate set are respectively classified into the current image reference special subset and the non-current image reference special subset according to whether a reference image of the motion vectors is a current image;
said dedicated current picture reference subset and said dedicated non-current picture reference subset are respectively one representation of said dedicated current picture reference history recent motion vector prediction candidate set and of said dedicated non-current picture reference history recent motion vector prediction candidate set;
scheme two is as follows:
the current block or sub-block to which the motion vector belongs has a corresponding encoding mode;
when the coding mode isIntra-frame Block Copy prediction (Intra Block Copy prediction) IBC for short prediction modeWhen the reference picture is the current picture, in this case, the motion vector is also called a block vector, which is abbreviated as bv;
when the coding mode isInter prediction or inter prediction modeWhen the reference image is a non-current image;
the describedCurrent picture reference dedicated history recent motion vector prediction candidate set HmvpIBCandList={HmvpIbcCandList[i], 0 ≤ i ≤ I 1 -1} wherein I, i.e. the stored block vector, is a block vector that has completed at least part of the encoding operation and further satisfies a first type of selection condition among the block vectors of the encoded block or sub-block that at least complies with a first type of predetermined rule 1 Is thatHmvpIbcCandListNumber of block vectors stored in, I 1 Less than or equal to a predetermined first maximum value;
the above-mentionedNon-current picture reference dedicated history recent motion vector prediction candidate set hmvpandlist={HmvpCandList[i], 0 ≤ i ≤I 2 -1} wherein I, i.e. the stored motion vector, is a motion vector that has completed at least part of the encoding operation and further satisfies a second type of selection condition among the motion vectors of the encoded block or sub-block that at least complies with a second type of predetermined rule 2 Is thatHmvpCandListNumber of motion vectors stored in, I 2 Less than or equal to a predetermined second maximum value;
the first class of predetermined rules includes at least theThe coding mode of the coding block or sub-block that has completed at least part of the coding operation isIntra block copy prediction modeThe first type of selection condition includes that at least the reference block or sub-block represented by the motion vector concerned is within a predetermined reference range;
the second type of predetermined rule comprises that at least the coding mode of the coding block or sub-block which has completed at least part of the coding operation isInter prediction modeThe second type of selection condition comprises that at least the reference block or sub-block represented by the motion vector concerned is within a predetermined reference range;
2) Predicting a candidate set from at least the current historical recent motion vector, based on at least a predetermined evaluation rule,
selecting a motion vector as the motion vector predictor of the current motion vector
Or alternatively
Selecting a preset number of historical recent motion vectors, putting the historical recent motion vectors into a candidate list for predicting the motion vectors, and selecting one motion vector from the candidate list as the motion vector predicted value of the current motion vector;
3) A compressed data code stream containing at least part or all of information representing a motion vector predictor of the current motion vector is generated.
2. An encoding apparatus for image compression, characterized by comprising at least the following modules:
1) A current candidate set selection module for using, when encoding a current motion vector in a coding block, at least one of the reference pictures being a current picture or a non-current pictureHistorical recent motion vector predictor dedicated to current image reference Selection setOrNon-current image reference dedicated history recent motion vector prediction candidate setOrMixing bothAsCurrent calendar History recent motion vector prediction candidate set
Whether the reference picture is the current picture or the non-current picture is represented in at least one of the following two ways:
the method I comprises the following steps:
the motion vector comprises a reference picture index ref _ idx indicating the position or address of the reference picture in the reference picture queue, i.e. indicating in which frame of picture the reference block or sub-block is in the reference picture queue;
the value of the reference picture index being equal to a predetermined value indicating that the reference picture is the current picture;
the value of the reference picture index being unequal to a predetermined value indicates that the reference picture is a non-current picture;
the second method comprises the following steps:
the current block or sub-block to which the motion vector belongs has a corresponding encoding mode;
when the coding mode isIntra-frame Block Copy prediction (Intra Block Copy prediction) IBC for short prediction modeWhen the reference picture is the current picture, in this case, the motion vector is also called a block vector, which is abbreviated as bv;
when the coding mode isInter prediction modeWhen the reference image is a non-current image;
obtaining the current picture reference dedicated history recent motion vector prediction candidate set and/or the non-current picture reference dedicated history recent motion vector prediction candidate set using at least one of the following two schemes:
the first scheme is as follows:
the current image reference special history latest motion vector prediction candidate set and the non-current image reference special history latest motion vector prediction candidate set are respectively different subsets of the same common history latest motion vector prediction candidate set and are respectively called as a current image reference special subset and a non-current image reference special subset, and motion vectors in the common history latest motion vector prediction candidate set are respectively classified into the current image reference special subset and the non-current image reference special subset according to whether a reference image of the motion vectors is a current image;
said dedicated current picture reference subset and said dedicated non-current picture reference subset are respectively one representation of said dedicated current picture reference history recent motion vector prediction candidate set and of said dedicated non-current picture reference history recent motion vector prediction candidate set;
scheme II:
the current block or sub-block to which the motion vector belongs has a corresponding encoding mode;
when the coding mode isIntra-frame Block Copy prediction (Intra Block Copy prediction) IBC for short prediction modeWhen the reference picture is the current picture, in this case, the motion vector is also called a block vector, which is abbreviated as bv;
when the coding mode isInter prediction or inter prediction modeWhen the reference image is a non-current image;
the describedCurrent picture reference dedicated history recent motion vector prediction candidate set HmvpIBCandList={HmvpIbcCandList[i], 0 ≤ i ≤ I 1 1} that the stored block vector is a block vector that has completed at least part of the encoding operation and that further satisfies a first type of selection condition among block vectors of at least encoding blocks or sub-blocks that comply with at least a first type of predetermined rule, wherein I 1 Is thatHmvpIbcCandListNumber of block vectors stored in, I 1 Less than or equal to a predetermined first maximum value;
the describedNon-current picture reference dedicated history recent motion vector prediction candidate set HmvpCandList={HmvpCandList[i], 0 ≤ i ≤I 2 -1} wherein I, i.e. the stored motion vector, is a motion vector that has completed at least part of the encoding operation and further satisfies a second type of selection condition among the motion vectors of the encoded block or sub-block that at least complies with a second type of predetermined rule 2 Is thatHmvpCandListNumber of motion vectors stored in, I 2 Less than or equal to a predetermined second maximum value;
the first type of predetermined rule at least comprises that the coding mode of the coding block or the sub-block which completes at least partial coding operation isIntra block copy prediction modeThe first type of selection condition comprises that at least the reference block or sub-block represented by the motion vector concerned is within a predetermined reference range;
the second class of predetermined rules includes at least the completedThe coding mode of the coding block or sub-block of the partial coding operation isInter prediction modeThe second type of selection condition comprises that at least the reference block or sub-block represented by the motion vector concerned is within a predetermined reference range;
2) A motion vector predictor selection module that predicts a set of candidates from at least the current historical most recent motion vector, based at least on a predetermined evaluation rule,
selecting a motion vector as the motion vector predictor of the current motion vector
Or alternatively
Selecting a preset number of historical recent motion vectors, putting the historical recent motion vectors into a candidate list for motion vector prediction, and selecting one motion vector from the candidate list as a motion vector prediction value of the current motion vector;
3) And the compressed data code stream generating module is used for generating a compressed data code stream at least containing part or all of information of the motion vector predicted value representing the current motion vector.
3. A method for decoding image compression, comprising at least the steps of:
1) When decoding a current motion vector in a decoding block, analyzing a compressed data code stream to obtain partial or all information at least representing a motion vector predicted value of the current motion vector;
2) Using at least depending on whether the reference picture is a current picture or a non-current pictureCurrent image reference dedicated history recent motion Motion vector prediction candidate setOrHistorical recent motion vector prediction candidate set dedicated to non-current picture referenceOrThe mixture of the two Combination of Chinese herbsAsCurrent historical recent motion vector prediction candidate set
Whether the reference picture is the current picture or the non-current picture is represented using at least one of the following two ways:
the first method is as follows:
the motion vector comprises a reference picture index ref _ idx indicating the position or address of the reference picture in the reference picture queue, i.e. indicating in which frame of picture the reference block or sub-block is in the reference picture queue;
the value of the reference picture index being equal to a predetermined value indicating that the reference picture is the current picture;
the value of the reference picture index being unequal to a predetermined value indicates that the reference picture is a non-current picture;
the second method comprises the following steps:
the current block or sub-block to which the motion vector belongs has a corresponding encoding mode;
when the coding mode isIntra-frame Block Copy prediction (Intra Block Copy prediction) IBC for short prediction modeWhen the reference picture is the current picture, in this case, the motion vector is also called a block vector, which is abbreviated as bv;
when the coding mode isInter prediction or inter prediction modeWhen the reference image is a non-current image;
obtaining the current picture reference dedicated history recent motion vector prediction candidate set and/or the non-current picture reference dedicated history recent motion vector prediction candidate set using at least one of the following two schemes:
the first scheme is as follows:
the current image reference dedicated history latest motion vector prediction candidate set and the non-current image reference dedicated history latest motion vector prediction candidate set are respectively different subsets of the same common history latest motion vector prediction candidate set, and are respectively called as a current image reference dedicated subset and a non-current image reference dedicated subset, and motion vectors in the common history latest motion vector prediction candidate set are respectively classified into the current image reference dedicated subset and the non-current image reference dedicated subset according to whether a reference image of the reference image is a current image;
said dedicated current picture reference subset and said dedicated non-current picture reference subset are respectively one representation of said dedicated current picture reference history recent motion vector prediction candidate set and of said dedicated non-current picture reference history recent motion vector prediction candidate set;
scheme two is as follows:
the current block or sub-block to which the motion vector belongs has a corresponding encoding mode;
when the coding mode isIntra-frame Block Copy prediction (Intra Block Copy prediction) IBC for short prediction modeWhen the reference picture is the current picture, in this case, the motion vector is also called a block vector, which is abbreviated as bv;
when the coding mode isInter prediction or inter prediction modeWhen the reference image is a non-current image;
the describedCurrent picture reference dedicated history recent motion vector prediction candidate set HmvpIBCandList={HmvpIbcCandList[i], 0 ≤ i ≤ I 1 -1} is a block vector that has completed at least part of the decoding operation and further satisfies a first type of selection condition among block vectors of decoded blocks or sub-blocks that at least comply with a first type of predetermined rule, wherein I 1 Is thatHmvpIbcCandListNumber of block vectors stored in, I 1 Less than or equal to a predetermined first maximum value;
the above-mentionedNon-current picture reference dedicated history recent motion vector prediction candidate set hmvpandlist={HmvpCandList[i], 0 ≤ i ≤I 2 -1} is a motion vector that has completed at least part of the decoding operation and further satisfies a second type of selection condition among the motion vectors of decoded blocks or sub-blocks that at least comply with a second type of predetermined rule, wherein I 2 Is thatHmvpCandListNumber of motion vectors stored in, I 2 Less than or equal to a predetermined second maximum value;
the first class of predetermined rules comprises at least that the coding mode of the decoded block or sub-block that has completed at least part of the decoding operation isIntra block copy prediction modeThe first type of selection condition comprises that at least the reference block or sub-block represented by the motion vector concerned is within a predetermined reference range;
the second type of predetermined rule comprises at least that the encoding mode of the decoded block or sub-block that has completed at least part of the decoding operation isInter prediction modeSaid second type of selection condition comprising at leastThe reference block or sub-block represented by the motion vector of (2) is within a predetermined reference range;
3) Predicting a candidate set from at least the current historical most recent motion vector, based on at least some or all of the information representing the motion vector predictor of the current motion vector,
selecting a motion vector as the motion vector predictor of the current motion vector
Or alternatively
Selecting a predetermined number of historical recent motion vectors into a candidate list for motion vector prediction and selecting a motion vector from the candidate list as the motion vector predictor of the current motion vector,
and then decoded to obtain the current motion vector itself.
4. The decoding method according to claim 3,
the decoding block is a decoding area of the image, and comprises at least one of the following: a whole picture, a sub-picture of a picture, a slice, a tile, a macroblock, a largest coding unit, LCU, coding tree unit, CTU, coding unit, CU, sub-region of CU, sub-coding unit, subbcu, prediction unit, PU, sub-region of PU, sub-prediction unit, transform unit, TU, sub-region of TU, sub-transform unit, subTU;
the sub-blocks involved in the decoding process include one or a combination of the following: decoding blocks, sub-regions of decoding blocks, square or rectangular or triangular or trapezoidal sub-blocks, micro-blocks, strings, pixel strings, sample strings, index strings, lines.
5. The decoding method according to claim 3, characterized by comprising one or any combination of the following features:
the method is characterized in that:
the predetermined value is the maximum value of the available values of the reference image index;
and (2) feature:
the candidate list is called the merge candidate list, mergeCandList,
the motion vector predictor of the current motion vector is from at least a merge candidate list, mergecandList;
the merge candidate list includes at least the following motion vectors as the motion vector predictor of the motion vector of the current block:
the motion vector of the decoding block or its sub-block adjacent to the same frame, also called spatial neighboring or spatial neighboring, is called the adjacent motion vector of the same frame
And/or
Motion vector of previous frame adjacent also called temporal adjacent decoding block or its sub-block, called previous frame adjacent motion vector
And/or
Some or all of the motion vectors of the current historical recent motion vector prediction candidate set.
6. The decoding method according to claim 3, characterized by comprising one or any combination of the following features:
the method is characterized in that:
the candidate list is called the merge candidate list, mergeCandList,
the motion vector predictor of the current motion vector is from at least a merge candidate list;
the construction process of the merging candidate list at least comprises one of the following three types of operations or a logical combination thereof:
the first kind of operation, which is applicable to the case that the reference image is always a non-current image, at least includes:
non-repeating neighboring motion vectors of the same frame are first put into the merge candidate list,
secondly putting non-repeating previous frame neighboring motion vectors into the merge candidate list,
then putting part or all of the motion vectors in the nonrepeating special-purpose history latest motion vector prediction candidate set of the non-current image into the merge candidate list;
the second kind of operation, which is applicable to the case that the reference image is always the current image, at least includes:
non-repeating neighboring motion vectors of the same frame are first put into the merge candidate list,
then putting some or all motion vectors in the non-repeated current image reference special history recent motion vector prediction candidate set into the merging candidate list;
a third type of operation, applicable to a situation where the reference picture may be the current picture or the non-current picture, includes at least:
non-repeating neighboring motion vectors of the same frame are first put into the merge candidate list,
second placing non-repeating previous frame neighboring motion vectors into the merge candidate list,
then, interleaving part or all of the motion vectors in the non-repeated current image reference special history recent motion vector prediction candidate set and part or all of the motion vectors in the non-current image reference special history recent motion vector prediction candidate set into the merge candidate list;
and (2) characteristic:
the candidate list is called the merge candidate list, mergeCandList,
the motion vector predictor of the current motion vector is from at least a merge candidate list;
the merging candidate list comprises candidate motion vector predicted values of MaxUMMergeCand, which are respectively represented by sequence numbers i from 0 to MaxUMMergeCand-1;
the construction process of the merging candidate list at least comprises one of the following three types of operations or a logical combination thereof:
the first kind of operation, applicable to the case where the reference picture is always a non-current picture, includes at least:
the initialization serial number i is 0 and,
if the block or sub-block adjacent to the left of the same frame is available and valid, the motion vector of the block or sub-block to the left is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if an upper block or sub-block adjacent to the same frame is available and valid, assigning the motion vector of the upper block or sub-block to a candidate motion vector predictor with index i and adding one to index i,
if the block or sub-block adjacent to the upper right of the same frame is available and valid, the motion vector of the upper right block or sub-block is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if the adjacent lower left block or subblock of the same frame is available and valid, the motion vector of the lower left block or subblock is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if the block or sub-block of the previous frame adaptation position is available and valid, the motion vector of the block or sub-block of the previous frame adaptation position is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if the adjacent upper left block or sub-block of the same frame is available and valid, the motion vector of the upper left block or sub-block is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if a previous co-located block is available and valid, assigning the motion vector of said previous co-located block to the candidate motion vector predictor with index i and adding one to index i,
repeatedly predicting the motion vector in the candidate set by using the non-current image reference special history latest motion vector, as long as the motion vector value and/or the reference image index value are not equal to the motion vector value and/or the reference image index value of the motion vector already put into the merge candidate list in the construction process of the merge candidate list, namely the motion vector value and/or the reference image index value are not repeated with the motion vector value and/or the reference image index value of the motion vector with a smaller sequence number in the merge candidate list, sequentially assigning a candidate motion vector predicted value with a sequence number i and adding the sequence number i by one, and only until the sequence number i is equal to MaxMMergeCand;
the second kind of operation, which is applicable to the case that the reference image is always the current image, at least includes:
the initialization sequence number i is 0 and,
if the block or sub-block adjacent to the left of the same frame is available and valid, the motion vector of the block or sub-block to the left is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if an upper block or sub-block adjacent to the same frame is available and valid, assigning the motion vector of the upper block or sub-block to a candidate motion vector predictor with index i and adding one to index i,
if the block or sub-block adjacent to the upper right of the same frame is available and valid, assigning the motion vector of the upper right block or sub-block to the candidate motion vector predictor with index i and adding one to index i,
if the adjacent lower left block or sub-block of the same frame is available and valid, the motion vector of the lower left block or sub-block is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if the adjacent upper left block or sub-block of the same frame is available and valid, the motion vector of the upper left block or sub-block is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
repeatedly predicting the motion vector in the candidate set by the current image reference special history latest motion vector as long as the motion vector value and/or the reference image index value are not equal to the motion vector value and/or the reference image index value of the motion vector already put into the merge candidate list in the construction process of the merge candidate list, namely the motion vector value and/or the reference image index value of the motion vector with a smaller sequence number in the merge candidate list are not repeated, sequentially assigning a candidate motion vector predicted value with a sequence number i and adding one to the sequence number i until the sequence number i is equal to MaxNumMergeCand;
a third type of operation, applicable to a situation where the reference picture may be the current picture or the non-current picture, includes at least:
the initialization serial number i is 0 and,
if the block or sub-block to the left adjacent to the same frame is available and valid, the motion vector of the block or sub-block to the left is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if the above block or subblock adjacent to the same frame is available and valid, the motion vector of the above block or subblock is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if the block or sub-block adjacent to the upper right of the same frame is available and valid, assigning the motion vector of the upper right block or sub-block to the candidate motion vector predictor with index i and adding one to index i,
if the adjacent lower left block or sub-block of the same frame is available and valid, the motion vector of the lower left block or sub-block is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if the block or sub-block of the previous frame adaptation position is available and valid, the motion vector of the block or sub-block of the previous frame adaptation position is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if the adjacent upper left block or sub-block of the same frame is available and valid, the motion vector of the upper left block or sub-block is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if a previous co-located block is available and valid, assigning the motion vector of said previous co-located block to the candidate motion vector predictor with index i and adding one to index i,
repeatedly assigning a motion vector in the non-current picture reference dedicated history latest motion vector prediction candidate set and a motion vector in the current picture reference dedicated history latest motion vector prediction candidate set in an interleaved manner, to a candidate motion vector predictor with index i in sequence and adding one to index i only until index i equals to MaxNumMergeCand as long as its motion vector value and/or reference picture index value does not equal the motion vector value and/or reference picture index value of the motion vector already placed in the merge candidate list during construction of the merge candidate list, i.e. does not repeat with the motion vector value and/or reference picture index value of the motion vector with a smaller index in the merge candidate list;
and (3) feature:
on the basis of the feature 2, the following features are also provided:
said available means that said block or sub-block is present, has completed at least part of the codec operation and is in the same stripe as the current block on the occasion of being adjacent to the same frame, and said valid means one or a combination of the following cases:
1) With the motion vector(s) being present,
2) Has a motion vector and has a motion vector value and/or reference picture index value that is not equal to the motion vector value and/or reference picture index value of a motion vector that has been put into the merge candidate list during construction of the merge candidate list, i.e. that is not repeated with the motion vector value and/or reference picture index value of a motion vector of a lower sequence number within the merge candidate list,
3) -employing a coding mode with at least one motion vector comprising: an inter prediction mode, an inter prediction mode allowing use of the current image as a reference image, an intra block matching mode, an intra block prediction mode, a string matching mode, a string prediction mode, a micro block matching mode, a micro block prediction mode, a line matching mode, a line prediction mode,
4) Having the characteristics of a predetermined number of components,
5) The predetermined condition is satisfied and the data is transmitted,
6) Having a motion vector of a predetermined type and,
7) With motion vectors whose values fall within a predetermined range of values,
8) With motion vectors whose values fall outside a predetermined range of values.
7. The decoding method according to claim 3, characterized by comprising the following features:
said first maximum value is an integer between 4 and 12;
the second maximum value is an integer between 4 and 12.
8. The decoding method according to claim 3, characterized by comprising one or any combination of the following features:
the method is characterized in that:
when the reference picture is the current picture, at least from the pictureHmvpIbcCandListIn a predetermined manner, selecting a predetermined number K 1 Individual HmvpIBCandList [ i]Putting a block vector candidate list for block vector predictionbvCandList={bvCandList[j], 0 ≤ j ≤ J 1 -1}, and then from saidbvCandListSelects a block vector bvCandList [ mvIdx ]]A block vector predictor as the current block vector, wherein J 1 Is thatbvCandListNumber of motion vectors stored in, J 1 Less than or equal to a predetermined maximum value, mvIdx satisfies 0 ≦ mvIdx ≦ J 1 -1;
When the reference picture is a non-current picture, at least from the current pictureHmvpCandListIn a predetermined manner, selecting a predetermined number K 2 HmvpCandList [ i]Put into a merge candidate list for motion vector predictionmergeCandList={mergeCandList[j], 0 ≤ j ≤ J 2 -1}, and then from saidmergeCandListSelecting a motion vector mergeCandList [ merge _ idx [ ]]A motion vector predictor as said current motion vector, wherein J 2 Is thatmergeCandListNumber of motion vectors stored in, J 2 Less than or equal to a predetermined maximum value, merge _ idx satisfies 0 ≦ merge _ idx ≦ J 2 -1;
And (2) feature:
on the basis of the feature 1, the following features are provided:
the mvIdx is present in or derived from at least part or all of the information representing the motion vector predictor of the current motion vector;
the merge _ idx is present in or derived from at least part or all of the information representing the motion vector predictor of the current motion vector;
and (3) feature:
on the basis of the feature 1, the following features are provided:
the predetermined maximum value is an integer between 4 and 16.
9. The decoding method according to claim 3, characterized by comprising one or any combination of the following features:
the method is characterized in that:
the above-mentionedHmvpIbcCandListThe composition of the elements of (a) includes at least a horizontal component and a vertical component of the block vector;
the above-mentionedHmvpCandListThe composition of the element(s) of (b) includes at least a horizontal component and a vertical component of one or two motion vectors, a reference index indicating which frame of picture the reference picture is in the reference picture queue, and additionally includes at most one bi-directional prediction CU hierarchical weight;
and (2) feature:
the above-mentionedHmvpIbcCandListAnd/orHmvpCandListReset to the empty set at the moment of starting the decoding of one frame of image;
and (3) feature:
the above-mentionedHmvpIbcCandListAnd/orHmvpCandListReset to an empty set at the moment of starting decoding of one slice;
and (4) feature:
updating according to a first predetermined scheme when a new motion vector is obtained for a reference picture as the current picture during decodingHmvpIbcCandList
Updating according to a second predetermined scheme when a new motion vector is obtained in decoding for which the reference picture is a non-current pictureHmvpCandList
And (5) feature:
on the basis of the feature 4, the following features are also provided:
the first predetermined scheme includes at least 1) theHmvpIbcCandListIs a first-in first-out buffer, i.e. FIFO buffer, 2) deletes saidHmvpIbcCandListInterpolating motion vectors equivalent to said new motion vector and advancing immediately subsequent motion vectors by one position, 3) when said new motion vector is interpolated from said first motion vector and said second motion vectorHmvpIbcCandListWhen the space in the space is full, the first-in first-out rule is used to move out the first-in motion vector, and the rest motion vectors are moved forward by one position and moved into the new motion vector;
The second predetermined scheme includes at least 1) theHmvpCandListIs a first-in first-out buffer, i.e. FIFO buffer, 2) deletes saidHmvpCandListInterpolating motion vectors equivalent to the new motion vector and advancing all immediately subsequent motion vectors by one position, 3) when the new motion vector is interpolated from the immediately subsequent motion vectorsHmvpCandListWhen the space in the space is full, the motion vector which is put in first is moved out according to the rule of first-in first-out, and the rest motion vectors are moved forward by one position and moved into the new motion vector.
10. A decoding apparatus for image compression, comprising at least the following modules:
1) The compressed data code stream analyzing module is used for analyzing the compressed data code stream when decoding a current motion vector in a decoding block and acquiring part or all information of a motion vector predicted value at least representing the current motion vector;
2) A current candidate set selection module for using based on at least whether the reference image is a current image or a non-current imageCurrent picture Reference-specific history-like recent motion vector prediction candidate setOrHistorical recent motion vector predictor dedicated to non-current image reference Candidate setOrMixing bothAsCurrent historical recent motion vector prediction candidate set
Whether the reference picture is the current picture or the non-current picture is represented in at least one of the following two ways:
the method I comprises the following steps:
the motion vector comprises a reference picture index ref _ idx indicating the position or address of the reference picture in the reference picture queue, i.e. indicating in which frame of picture the reference block or sub-block is in the reference picture queue;
the value of the reference picture index being equal to a predetermined value indicating that the reference picture is the current picture;
the value of the reference picture index being unequal to a predetermined value indicates that the reference picture is a non-current picture;
the second method comprises the following steps:
the current block or sub-block to which the motion vector belongs has a corresponding encoding mode;
when the coding mode isIntra-frame Block Copy prediction (Intra Block Copy prediction) IBC for short prediction modeWhen the reference picture is the current picture, in this case, the motion vector is also called a block vector, which is abbreviated as bv;
when the coding mode isInter prediction or inter prediction modeWhen the reference image is a non-current image;
obtaining the current picture reference dedicated history recent motion vector prediction candidate set and/or the non-current picture reference dedicated history recent motion vector prediction candidate set using at least one of the following two schemes:
the first scheme is as follows:
the current image reference special history latest motion vector prediction candidate set and the non-current image reference special history latest motion vector prediction candidate set are respectively different subsets of the same common history latest motion vector prediction candidate set and are respectively called as a current image reference special subset and a non-current image reference special subset, and motion vectors in the common history latest motion vector prediction candidate set are respectively classified into the current image reference special subset and the non-current image reference special subset according to whether a reference image of the motion vectors is a current image;
said dedicated current picture reference subset and said dedicated non-current picture reference subset are respectively one representation of said dedicated current picture reference history recent motion vector prediction candidate set and of said dedicated non-current picture reference history recent motion vector prediction candidate set;
scheme two is as follows:
the current block or sub-block to which the motion vector belongs has a corresponding encoding mode;
when the coding mode isIntra-frame Block Copy prediction, intra Block Copy prediction, IBC for short prediction modeWhen the reference picture is the current picture, in this case, the motion vector is also called a block vector, which is abbreviated as bv;
when the coding mode isInterframe predictionInter prediction modeWhen the reference image is a non-current image;
the above-mentionedCurrent picture reference dedicated history recent motion vector prediction candidate set HmvpIBCandList={HmvpIbcCandList[i], 0 ≤ i ≤ I 1 -1} is a block vector that has completed at least part of the decoding operation and further satisfies a first type of selection condition among block vectors of decoded blocks or sub-blocks that at least comply with a first type of predetermined rule, wherein I 1 Is thatHmvpIbcCandListNumber of block vectors stored in, I 1 Less than or equal to a predetermined first maximum value;
the above-mentionedNon-current picture reference dedicated history recent motion vector prediction candidate set hmvpandlist={HmvpCandList[i], 0 ≤ i ≤I 2 -1} is a motion vector that has completed at least part of the decoding operation and further satisfies a second type of selection condition among the motion vectors of decoded blocks or sub-blocks that at least comply with a second type of predetermined rule, wherein I 2 Is thatHmvpCandListNumber of motion vectors stored in, I 2 Less than or equal to a predetermined second maximum value;
the first class of predetermined rules comprises at least that the coding mode of the decoded block or sub-block that has completed at least part of the decoding operation isIntra block copy prediction modeThe first type of selection condition comprises that at least the reference block or sub-block represented by the motion vector concerned is within a predetermined reference range;
the second type of predetermined rule at least comprises that the encoding mode of the decoded block or sub-block which has completed at least part of the decoding operation isInter prediction modeThe second type of selection condition at least comprises that a reference block or sub-block represented by the motion vector concerned is within a predetermined reference range;
3) A motion vector predictor decoding module for predicting a candidate set from at least the current historical most recent motion vector based on at least some or all of the information of the motion vector predictor representing the current motion vector,
selecting a motion vector as the motion vector predictor of the current motion vector
Or
Selecting a predetermined number of historical recent motion vectors into a candidate list for motion vector prediction and selecting a motion vector from the candidate list as the motion vector predictor of the current motion vector,
and then decoded to obtain the current motion vector itself.
11. The decoding apparatus according to claim 10,
the decoding block is a decoding area of the image and comprises at least one of the following: a whole picture, a sub-picture of a picture, a slice, a tile, a macroblock, a largest coding unit LCU, a coding tree unit CTU, a coding unit CU, a sub-region of a CU, a sub-coding unit SubCU, a prediction unit PU, a sub-region of a PU, a sub-prediction unit SubPU, a transform unit TU, a sub-region of a TU, a sub-transform unit SubTU;
the sub-blocks involved in the decoding process include one or a combination of the following: decoding blocks, sub-regions of decoding blocks, square or rectangular or triangular or trapezoidal sub-blocks, micro-blocks, strings, pixel strings, sample strings, index strings, lines.
12. The decoding apparatus according to claim 10, characterized by comprising one or any combination of the following features:
the method is characterized in that:
the predetermined value is a maximum value of the available values of the reference picture index;
and (2) characteristic:
the candidate list is called the merge candidate list, mergeCandList,
the motion vector predictor of the current motion vector is from at least a merge candidate list, mergecandList;
the merge candidate list includes at least the following motion vectors as the motion vector predictor of the motion vector of the current block:
the motion vector of the decoding block or its sub-block adjacent to the same frame, also called spatial neighboring or spatial neighboring, is called the adjacent motion vector of the same frame
And/or
Motion vector of previous frame adjacent, also called temporal neighboring or temporal neighboring decoding block or its sub-block, called previous frame adjacent motion vector
And/or
Some or all of the motion vectors of the current historical recent motion vector prediction candidate set.
13. The decoding apparatus according to claim 10, characterized by comprising one or any combination of the following features:
the method is characterized in that:
the candidate list is called the merge candidate list, mergeCandList,
the motion vector predictor of the current motion vector is from at least a merge candidate list;
the construction process of the merging candidate list at least comprises one of the following three types of operations or a logical combination thereof:
the first kind of operation, applicable to the case where the reference picture is always a non-current picture, includes at least:
non-repeating neighboring motion vectors of the same frame are first put into the merge candidate list,
second placing non-repeating previous frame neighboring motion vectors into the merge candidate list,
then putting part or all of the motion vectors in the nonrepeating special-purpose history latest motion vector prediction candidate set of the non-current image into the merge candidate list;
the second kind of operation, applicable to the case where the reference picture is always the current picture, includes at least:
non-repeating neighboring motion vectors of the same frame are first put into the merge candidate list,
then putting some or all motion vectors in the non-repeated current image reference special history recent motion vector prediction candidate set into the merging candidate list;
a third type of operation, applicable to a situation where the reference picture may be the current picture or the non-current picture, includes at least:
non-repeating neighboring motion vectors of the same frame are first put into the merge candidate list,
second placing non-repeating previous frame neighboring motion vectors into the merge candidate list,
then, interleaving part or all of the motion vectors in the non-repeated current image reference special history recent motion vector prediction candidate set and part or all of the motion vectors in the non-current image reference special history recent motion vector prediction candidate set into the merge candidate list;
and (2) feature:
the candidate list is called the merge candidate list, mergeCandList,
the motion vector predictor of the current motion vector is from at least a merge candidate list;
the merge candidate list comprises candidate motion vector predictors of MaxNumMergeCand, which are respectively represented by sequence numbers i from 0 to MaxMMergeCand-1;
the construction process of the merging candidate list at least comprises one of the following three types of operations or a logical combination thereof:
the first kind of operation, which is applicable to the case that the reference image is always a non-current image, at least includes:
the initialization sequence number i is 0 and,
if the block or sub-block adjacent to the left of the same frame is available and valid, the motion vector of the block or sub-block to the left is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if an upper block or sub-block adjacent to the same frame is available and valid, assigning the motion vector of the upper block or sub-block to a candidate motion vector predictor with index i and adding one to index i,
if the block or sub-block adjacent to the upper right of the same frame is available and valid, assigning the motion vector of the upper right block or sub-block to the candidate motion vector predictor with index i and adding one to index i,
if the adjacent lower left block or sub-block of the same frame is available and valid, the motion vector of the lower left block or sub-block is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if the block or sub-block of the previous frame adaptation position is available and valid, the motion vector of the block or sub-block of the previous frame adaptation position is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if the adjacent upper left block or sub-block of the same frame is available and valid, the motion vector of the upper left block or sub-block is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if a previous co-located block is available and valid, assigning the motion vector of said previous co-located block to the candidate motion vector predictor with index i and adding one to index i,
repeatedly predicting the motion vector in the candidate set by using the non-current image reference special history latest motion vector, as long as the motion vector value and/or the reference image index value are not equal to the motion vector value and/or the reference image index value of the motion vector already put into the merge candidate list in the construction process of the merge candidate list, namely the motion vector value and/or the reference image index value are not repeated with the motion vector value and/or the reference image index value of the motion vector with a smaller sequence number in the merge candidate list, sequentially assigning a candidate motion vector predicted value with a sequence number i and adding the sequence number i by one, and only until the sequence number i is equal to MaxMMergeCand;
the second kind of operation, which is applicable to the case that the reference image is always the current image, at least includes:
the initialization sequence number i is 0 and,
if the block or sub-block adjacent to the left of the same frame is available and valid, the motion vector of the block or sub-block to the left is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if an upper block or sub-block adjacent to the same frame is available and valid, assigning the motion vector of the upper block or sub-block to a candidate motion vector predictor with index i and adding one to index i,
if the block or sub-block adjacent to the upper right of the same frame is available and valid, the motion vector of the upper right block or sub-block is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if the adjacent lower left block or sub-block of the same frame is available and valid, the motion vector of the lower left block or sub-block is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if the adjacent upper left block or sub-block of the same frame is available and valid, the motion vector of the upper left block or sub-block is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
repeatedly predicting the motion vector in the candidate set by the current image reference special history latest motion vector as long as the motion vector value and/or the reference image index value are not equal to the motion vector value and/or the reference image index value of the motion vector already put into the merge candidate list in the construction process of the merge candidate list, namely the motion vector value and/or the reference image index value of the motion vector with a smaller sequence number in the merge candidate list are not repeated, sequentially assigning a candidate motion vector predicted value with a sequence number i and adding one to the sequence number i until the sequence number i is equal to MaxNumMergeCand;
a third type of operation, applicable to a situation where the reference picture may be the current picture or a non-current picture, includes at least:
the initialization serial number i is 0 and,
if the block or sub-block adjacent to the left of the same frame is available and valid, the motion vector of the block or sub-block to the left is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if an upper block or sub-block adjacent to the same frame is available and valid, assigning the motion vector of the upper block or sub-block to a candidate motion vector predictor with index i and adding one to index i,
if the block or sub-block adjacent to the upper right of the same frame is available and valid, assigning the motion vector of the upper right block or sub-block to the candidate motion vector predictor with index i and adding one to index i,
if the adjacent lower left block or sub-block of the same frame is available and valid, the motion vector of the lower left block or sub-block is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if the block or sub-block of the previous frame adaptation position is available and valid, the motion vector of the block or sub-block of the previous frame adaptation position is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if the adjacent upper left block or sub-block of the same frame is available and valid, the motion vector of the upper left block or sub-block is assigned to the candidate motion vector predictor with index i and index i is incremented by one,
if a previous co-located block is available and valid, assigning the motion vector of said previous co-located block to the candidate motion vector predictor with index i and adding one to index i,
repeatedly assigning a motion vector in the non-current picture reference dedicated history latest motion vector prediction candidate set and a motion vector in the current picture reference dedicated history latest motion vector prediction candidate set in an interlaced manner to a candidate motion vector predictor with sequence number i and adding a sequence number i in order only until a sequence number i equals to maxnummerrgecand as long as a motion vector value and/or a reference picture index value thereof is not equal to a motion vector value and/or a reference picture index value of a motion vector already put into the merge candidate list in the construction process of the merge candidate list, i.e., is not repeated with a motion vector value and/or a reference picture index value of a motion vector with a smaller sequence number in the merge candidate list;
and (3) feature:
on the basis of the feature 2, the following features are also provided:
said available means that said block or sub-block is present, has completed at least part of the codec operation and is in the same stripe as the current block on the occasion of being adjacent to the same frame, and said valid means one or a combination of the following cases:
1) With the motion vector(s) being present,
2) Having a motion vector and having a motion vector value and/or reference picture index value that is not equal to the motion vector value and/or reference picture index value of a motion vector that has been put into the merge candidate list during construction of the merge candidate list, i.e. that is not repeated with the motion vector value and/or reference picture index value of a motion vector of smaller ordinal number within the merge candidate list,
3) -employing a coding mode with at least one motion vector comprising: an inter prediction mode, an inter prediction mode allowing use of the current image as a reference image, an intra block matching mode, an intra block prediction mode, a string matching mode, a string prediction mode, a micro block matching mode, a micro block prediction mode, a line matching mode, a line prediction mode,
4) Having the characteristics of the liquid crystal display device as predetermined,
5) The predetermined condition is satisfied and the data is transmitted,
6) Having a motion vector of a predetermined type and,
7) With motion vectors whose values fall within a predetermined range of values,
8) With motion vectors whose values fall outside a predetermined range of values.
14. The decoding apparatus according to claim 10, characterized by comprising the following features:
said first maximum value is an integer between 4 and 12;
the second maximum value is an integer between 4 and 12.
15. The decoding apparatus according to claim 10, comprising one or any combination of the following features:
the method is characterized in that:
when the reference picture is the current picture, at least from the pictureHmvpIbcCandListIn a predetermined manner to select a predetermined number K 1 Individual HmvpIBCandList [ i]Putting a block vector candidate list for block vector predictionbvCandList={bvCandList[j], 0 ≤ j ≤ J 1 -1} and from saidbvCandListSelects a block vector bvCandList [ mvIdx ]]As said whenBlock vector predictor of previous block vector, where J 1 Is thatbvCandListNumber of motion vectors stored in, J 1 Less than or equal to a predetermined maximum value, and mvIdx satisfies 0 ≦ mvIdx ≦ J 1 -1;
When the reference picture is a non-current picture, at least from the current pictureHmvpCandListIn a predetermined manner to select a predetermined number K 2 HmvpCandList [ i]Put into a merge candidate list for motion vector predictionmergeCandList={mergeCandList[j], 0 ≤ j ≤ J 2 -1} and from saidmergeCandListSelecting a motion vector mergeCandList [ merge _ idx [ ]]A motion vector predictor as said current motion vector, wherein J 2 Is thatmergeCandListNumber of motion vectors stored in, J 2 Less than or equal to a predetermined maximum value, merge _ idx satisfies 0 ≦ merge _ idx ≦ J 2 -1;
And (2) feature:
on the basis of the feature 1, the following features are also provided:
the mvIdx is present in or derived from at least part or all of the information representing the motion vector predictor of the current motion vector;
the merge _ idx is present in or derived from at least part or all of the information representing the motion vector predictor of the current motion vector;
and (3) feature:
on the basis of the feature 1, the following features are also provided:
the predetermined maximum value is an integer between 4 and 16.
16. The decoding apparatus according to claim 10, comprising one or any combination of the following features:
the method is characterized in that:
the above-mentionedHmvpIbcCandListComprises at least the horizontal component of the block vectorAnd a vertical component;
the above-mentionedHmvpCandListThe element(s) of (a) includes at least a horizontal component, a vertical component of one or two motion vectors, a reference index indicating which frame of picture the reference picture is in the reference picture queue, and additionally includes at most one bi-directionally predicted CU hierarchical weight;
and (2) characteristic:
the above-mentionedHmvpIbcCandListAnd/orHmvpCandListReset to an empty set at the time of starting decoding of one frame image;
and (3) feature:
the above-mentionedHmvpIbcCandListAnd/orHmvpCandListReset to an empty set at the moment of starting decoding of one slice;
and (4) characteristic:
updating according to a first predetermined scheme when a new motion vector is obtained for a reference picture as the current picture during decodingHmvpIbcCandList
Updating according to a second predetermined scheme when a new motion vector is obtained in decoding for which the reference picture is a non-current pictureHmvpCandList
And (5) characteristic:
on the basis of the feature 4, the following features are also provided:
the first predetermined scheme includes at least 1) theHmvpIbcCandListIs a first-in first-out buffer, i.e. FIFO buffer, 2) deletes saidHmvpIbcCandListInterpolating motion vectors equivalent to said new motion vector and advancing immediately subsequent motion vectors by one position, 3) when said new motion vector is interpolated from said first motion vector and said second motion vectorHmvpIbcCandListWhen the space in the device is full, moving out the motion vector which is put in first according to the first-in first-out rule, moving the rest motion vectors forward by one position and moving the rest motion vectors into the new motion vector;
the second predetermined scheme includes at least 1) theHmvpCandListIs a first-in first-out buffer, i.e. FIFO buffer, 2) deletes saidHmvpCandListInterpolating motion vectors equivalent to the new motion vector and advancing all immediately subsequent motion vectors by one position, 3) when the new motion vector is interpolated from the immediately subsequent motion vectorsHmvpCandListWhen the space in the chamber is full, according to the first-in first-out ruleThe first placed motion vector is shifted out and the remaining motion vectors are all shifted forward one position and into the new motion vector.
CN201910901050.XA 2018-09-22 2019-09-23 Encoding method and device, decoding method and device for image compression Active CN110944190B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211585709.3A CN116193127A (en) 2018-09-22 2019-09-23 Image compression method and device for special historical nearest motion vector prediction candidate set

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811110820 2018-09-22
CN2018111108200 2018-09-22

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202211585709.3A Division CN116193127A (en) 2018-09-22 2019-09-23 Image compression method and device for special historical nearest motion vector prediction candidate set

Publications (2)

Publication Number Publication Date
CN110944190A CN110944190A (en) 2020-03-31
CN110944190B true CN110944190B (en) 2023-01-10

Family

ID=69905741

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201910901050.XA Active CN110944190B (en) 2018-09-22 2019-09-23 Encoding method and device, decoding method and device for image compression
CN202211585709.3A Pending CN116193127A (en) 2018-09-22 2019-09-23 Image compression method and device for special historical nearest motion vector prediction candidate set

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202211585709.3A Pending CN116193127A (en) 2018-09-22 2019-09-23 Image compression method and device for special historical nearest motion vector prediction candidate set

Country Status (1)

Country Link
CN (2) CN110944190B (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11595694B2 (en) * 2020-04-01 2023-02-28 Tencent America LLC Method and apparatus for video coding
CN113709458B (en) * 2020-05-22 2023-08-29 腾讯科技(深圳)有限公司 Displacement vector prediction method, device and equipment in video coding and decoding
CN114071158A (en) * 2020-07-29 2022-02-18 腾讯科技(深圳)有限公司 Motion information list construction method, device and equipment in video coding and decoding
CN112055219B (en) * 2020-08-05 2021-08-31 浙江大华技术股份有限公司 String matching prediction method and device and computer readable storage medium
CN112532974A (en) * 2020-11-24 2021-03-19 浙江大华技术股份有限公司 Encoding method, apparatus and storage medium for string encoding technique
CN112995661B (en) * 2021-04-14 2021-08-03 浙江华创视讯科技有限公司 Image encoding method and apparatus, electronic device, and storage medium
CN113992635B (en) * 2021-10-20 2022-09-20 腾讯科技(深圳)有限公司 Multimedia data processing method, device, equipment and storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6122320A (en) * 1997-03-14 2000-09-19 Cselt-Centro Studi E Laboratori Telecomunicazioni S.P.A. Circuit for motion estimation in digitized video sequence encoders
US10362330B1 (en) * 2018-07-30 2019-07-23 Tencent America LLC Combining history-based motion vector prediction and non-adjacent merge prediction
GB201909056D0 (en) * 2019-06-24 2019-08-07 Canon Kk Video coding and decoding
CN110213590A (en) * 2019-06-25 2019-09-06 浙江大华技术股份有限公司 Time-domain motion vector acquisition, inter-prediction, Video coding method and apparatus

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6122320A (en) * 1997-03-14 2000-09-19 Cselt-Centro Studi E Laboratori Telecomunicazioni S.P.A. Circuit for motion estimation in digitized video sequence encoders
US10362330B1 (en) * 2018-07-30 2019-07-23 Tencent America LLC Combining history-based motion vector prediction and non-adjacent merge prediction
GB201909056D0 (en) * 2019-06-24 2019-08-07 Canon Kk Video coding and decoding
CN110213590A (en) * 2019-06-25 2019-09-06 浙江大华技术股份有限公司 Time-domain motion vector acquisition, inter-prediction, Video coding method and apparatus

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CE4: History-based Motion Vector Prediction (Test 4.4.7);Li Zhang等;《Joint Video Experts Team (JVET) 》;20181012;全文 *
CE8-1.1: Block vector prediction for IBC;Junghak Nam 等;《Joint Video Experts Team (JVET) 》;20190327;全文 *

Also Published As

Publication number Publication date
CN110944190A (en) 2020-03-31
CN116193127A (en) 2023-05-30

Similar Documents

Publication Publication Date Title
CN110944190B (en) Encoding method and device, decoding method and device for image compression
JP6728249B2 (en) Image coding supporting block division and block integration
KR102216155B1 (en) Method for storing motion information and method for inducing temporal motion vector predictor using same
KR102287971B1 (en) Method for encoding and decoding image and device using same
JP2020065277A (en) Image encoding apparatus, image decoding apparatus, image encoding method, image decoding method, and recording medium recording coded bit stream
CN110809887A (en) Motion vector modification for multi-reference prediction
JP6268989B2 (en) Moving picture coding apparatus, moving picture coding method, and moving picture coding computer program
CN112369022A (en) Image encoding/decoding method and apparatus, and recording medium storing bit stream
CN113163211B (en) Inter-frame prediction method and device based on merging mode
CA2935156A1 (en) Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning
CN112771862A (en) Method and apparatus for encoding/decoding image by using boundary processing and recording medium for storing bitstream
JP2014509093A (en) Video decoding method using buffer compression for motion vector competition
CN110944178B (en) Data compression encoding method and device, and data compression decoding method and device
CN113826393A (en) Image encoding/decoding method and apparatus, and recording medium storing bit stream
JP2019022120A (en) Moving picture coding apparatus, moving picture coding method, moving picture coding computer program, moving picture decoding apparatus, moving picture decoding method, and moving picture decoding computer program
CN109565595B (en) Video coding device and method using partition-based video coding block partitioning
CN107770527B (en) Data compression method and apparatus using neighboring encoding parameters and nearest encoding parameters
JP5479648B1 (en) Image encoding method and image decoding method
JP2016046641A (en) Image coding device, image decoding device, image coding method and image decoding method
JP6300660B2 (en) Image encoding device, image decoding device, image encoding method, and image decoding method
JP2016005211A (en) Terminal and data management device
KR20220077096A (en) Method and Apparatus for Video Coding Using Block Merging
KR20220115971A (en) Image encoding/decoding method, apparatus, and method of transmitting a bitstream for performing prediction based on the reset prediction mode type of a leaf node
JP2014135552A (en) Dynamic image encoder, dynamic image decoder, dynamic image encoding method, and dynamic image decoding method
CN113924773A (en) Image encoding/decoding method and apparatus, and recording medium for storing bit stream

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