CN116193127A - Image compression method and device for special historical nearest motion vector prediction candidate set - Google Patents

Image compression method and device for special historical nearest motion vector prediction candidate set Download PDF

Info

Publication number
CN116193127A
CN116193127A CN202211585709.3A CN202211585709A CN116193127A CN 116193127 A CN116193127 A CN 116193127A CN 202211585709 A CN202211585709 A CN 202211585709A CN 116193127 A CN116193127 A CN 116193127A
Authority
CN
China
Prior art keywords
motion vector
block
current
sub
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211585709.3A
Other languages
Chinese (zh)
Inventor
林涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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
Publication of CN116193127A publication Critical patent/CN116193127A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/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 image compression method and device using special historical nearest motion vector prediction candidate sets, wherein one historical nearest motion vector prediction candidate set is used for the occasion that a reference image is a current image, and at least one historical nearest motion vector prediction candidate set is used for the occasion that the reference image is not the current image, and different special historical nearest motion vector prediction candidate sets are suitable for different coding modes, so that coding efficiency is improved.

Description

Image compression method and device for special historical nearest motion vector prediction candidate set
This application is a divisional application of the following original applications:
filing date of the original application: 2019-09-23
Application number of the original application: 201910901050X
The invention of the original application creates the name: image compression method and apparatus (name at registration process handling: encoding method and apparatus, decoding method and apparatus for image compression) for a dedicated history latest motion vector prediction candidate set.
Technical Field
The present invention relates to a coding and decoding system for lossy or lossless compression of data, in particular to a method and a device for coding and decoding image and video data.
Background
As human society enters 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, virtual reality, ultra-high compression ratio and ultra-high quality data compression are indispensable for various data including big data, image data, video data.
Images and videos are a collection of finite data (e.g., a frame of image, a video sequence, a three-dimensional scene, a sequence of constantly changing three-dimensional scenes) that are arranged in a spatial (one-dimensional, two-dimensional, or multi-dimensional) shape made up of samples of pixels. When encoding (and correspondingly decoding) image data for data compression, the image is generally divided into a plurality of subsets having a predetermined shape, which are called encoding blocks (from the decoding point of view, i.e., decoding blocks, collectively called encoding and decoding blocks), and a block is encoded or decoded in a predetermined time sequence in units of encoding and decoding blocks. 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 encoded block or current decoded block is collectively referred to as a current encoded block or simply a current block. The sample being encoded or decoded is referred to as the current encoded sample or the current decoded sample, simply the current sample.
For a codec block having a certain shape (not necessarily limited to square or rectangular, but any reasonable other shape), it is necessary in many cases to divide it into finer sub-blocks (not necessarily limited to square or rectangular, but any reasonable other shape), and the sub-blocks are encoded or decoded in a predetermined time order. 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, which ultimately result in a compressed data stream containing these encoding parameters. Decoding a sub-block is to parse the compressed data stream to obtain one or more coding parameters, and recover samples of the reconstructed data from the one or more coding parameters.
Examples of sub-blocks include a codec block (the entire codec block is one sub-block), square or rectangular or triangular or trapezoidal sub-blocks, micro-blocks, strings, pixel strings, sample strings, index strings, lines.
The image data related in the invention comprises the collected or generated original state image data, also comprises intermediate state data and data sets which are processed by a plurality of processes, and also comprises coding parameter data and data sets which are generated in the coding and decoding process, such as various coding modes, multidimensional or three-dimensional or two-dimensional motion vectors, matching lengths and the like.
One means of image compression is to mine the correlation between data units in various aspects of the layers in the image, match (also commonly referred to as predicting, representing, compensating, approximating, etc.) the current data unit with data units commonly referred to as reference data units (also commonly referred to as predicted data units, compensating data units, matched data units, predicted values, compensating values, reference values, etc.), achieving lossless or lossy compression of the data.
Motion Vector (MV) is an important data unit in image compression. The use of the motion vector of the codec block or sub-block, for which at least part of the codec operation has been completed, as a motion vector predictor for predicting a current motion vector (i.e., the motion vector currently being encoded) can effectively improve the coding efficiency of inter-frame coding. Possible sources of motion vector predictors include at least:
1) The one or more motion vectors of the co-frame neighboring, also called spatially neighboring (spatial neighboring), codec block for which at least part of the codec operation has been completed, called co-frame neighboring motion vectors,
2) The one or more motion vectors of the previous frame neighboring, also called temporal neighboring (temporal neighboring), codec block for which at least part of the codec operation has been completed, called previous frame neighboring motion vectors,
3) The historical latest motion vector predicted value candidate set consists of motion vectors of at least partial coding and decoding operations of a plurality of latest coding and decoding blocks adopting inter coding modes, which appear in a coding and decoding historical process according to coding and decoding sequences, and the motion vectors are called historical latest 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 picture in the reference picture queue the reference pixel is taken. Thus, each motion vector corresponds to an image in which a frame of reference image, i.e., a reference block or sub-block, and its reference pixels, are located.
In the prior art, there is only a single set of historical most recent motion vector predictor candidates, and all of the motion vectors therein are indiscriminately used for prediction of the current motion vector, regardless of what value their corresponding reference picture index takes (which frame picture of the reference picture queue represents the reference pixel for inter prediction). Therefore, the historical latest motion vector predictor candidate set cannot be effectively adapted to various inter-coding occasions, particularly, the occasions that the current image, i.e. the current block or the sub-block, is allowed to be used for the reference image, i.e. the image of the reference block or the sub-block, which affects 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 nearest motion vector prediction candidate set, wherein one historical nearest motion vector prediction candidate set is mainly used for the occasion that a reference image is a current image, and at least one historical nearest motion vector prediction candidate set is mainly used for the occasion that the reference image is not the current image, and different special historical nearest motion vector prediction candidate sets are applicable to different occasions of inter-frame coding, so that the coding efficiency is improved.
The primary technique of the inventionThe operation is characterized by havingCurrent image reference specific historical nearest motion vector prediction candidate setAndnon-current image reference specific historical nearest motion vector prediction candidate setThe method is mainly used for the occasions that the reference image is the current image and the reference image is the non-current image respectively.
The most basic characteristic feature of the coding method or apparatus of the present invention is that when coding a current motion vector, i.e. a motion vector of a current block or sub-block, the use is made of at least the degree of likelihood of whether the reference picture is or is not a current pictureCurrent image reference specific historical nearest motion vector prediction candidate set Or alternativelyNon-current image reference specific historical recently performed Motion vector prediction candidate setOr alternativelyMixing of the twoAs a means ofCurrent historical recent motion vector prediction candidate setAnd selecting an optimal motion vector from at least the current historical latest motion vector prediction candidate set at least according to a preset evaluation rule, such as the number of consumed bits and/or the size of coding errors, as a predicted motion vector or a called motion vector predicted value of the current motion vector, and generating a compressed data code stream at least containing part or all of information representing the motion vector predicted value of the current motion vector. Fig. 1 is a schematic diagram of the encoding method or apparatus of the present invention.
The most basic characteristic feature of the decoding method or apparatus of the present invention is to parse the compressed data stream to obtain at least part or all of the information representing the motion vector predictor of the current motion vector, using at least the reference picture or the degree of likelihood of whether it is the current pictureCurrent image reference specific historical nearest motion vector prediction candidate setOr alternativelyNon-current map Reference specific historical recent motion vector prediction candidate setOr alternativelyMixing of the two As a means ofCurrent history recent motion vector prediction Candidate set of measurementsAnd decoding to obtain a motion vector predicted value of the current motion vector according to part or all of information of the motion vector predicted value of the current motion vector from at least the current historical latest motion vector predicted candidate set. Fig. 2 is a schematic diagram of the decoding method or apparatus of the present invention.
According to one aspect of the present invention, there is provided an encoding method or apparatus for image compression, comprising at least the steps or modules for performing the following functions and operations:
in encoding a current motion vector in a coding block, the method is used at least according to the degree of likelihood of whether the reference picture is or is not the current pictureCurrent image reference specific historical nearest motion vector prediction candidate setOr alternativelyNon-current Image reference specific historical nearest motion vector prediction candidate setOr alternativelyMixing of the twoAs a means ofCurrent history recent motion vector Predicting candidate setsPredicting a candidate set from at least the current historical most recent motion vector, based at least on a predetermined evaluation rule,
selecting a motion vector as a motion vector predictor for the current motion vector
Or alternatively
Selecting a preset number of historical nearest motion vectors, putting the selected historical nearest motion vectors into a candidate list for motion vector prediction, and selecting a motion vector from the candidate list as a motion vector predicted value of the current motion vector;
A compressed data stream is generated containing at least some or all of the information representing the motion vector predictor of the current motion vector.
According to another aspect of the present invention, there is also provided a decoding method or apparatus for image compression, at least including steps or modules for performing the following functions and operations:
in decoding a current motion vector in a decoding block, the compressed data stream is parsed to obtain partial or complete information representing at least a motion vector predictor of the current motion vector, using at least a reference picture depending on whether it is a current picture or notCurrent image reference specific historical nearest motion vector prediction candidate setOr alternativelyNon-current map Reference specific historical recent motion vector prediction candidate setOr alternativelyMixing of the twoAs a means ofCurrent history recent motion vector prediction Candidate set of measurementsPredicting a candidate set from at least said current historical most recent motion vector, based at least on said motion vector representing the current motion vectorSome or all of the information of the measured value,
selecting a motion vector as a motion vector predictor for the current motion vector
Or alternatively
Selecting a preset number of historical nearest motion vectors, putting the selected historical nearest motion vectors into a candidate list for motion vector prediction, and selecting a motion vector from the candidate list as a motion vector predicted value of the current motion vector;
And then decodes to obtain the current motion vector itself.
From a first aspect, the present invention provides a method of encoding an image, comprising at least the steps of:
1) In encoding a current motion vector in a coding block, the method is used at least according to the degree of likelihood of whether the reference picture is or is not the current pictureCurrent image reference specific historical nearest motion vector prediction candidate setOr alternativelyImproper use Front image reference specific historical nearest motion vector prediction candidate setOr alternativelyMixing of the twoAs a means ofCurrent history recent motion vector Quantity prediction candidate set
2) Predicting a candidate set from at least the current historical most recent motion vector, based at least on a predetermined evaluation rule,
selecting a motion vector as a motion vector predictor for the current motion vector
Or alternatively
Selecting a preset number of historical nearest motion vectors, putting the selected historical nearest motion vectors into a candidate list for motion vector prediction, and selecting a motion vector from the candidate list as a motion vector predicted value of the current motion vector;
3) A compressed data stream is generated containing at least some or all of the information representing the motion vector predictor of the current motion vector.
From a second aspect, the present invention provides a decoding method for compressing an image, characterized by 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 of a motion vector predicted value at least representing the current motion vector;
2) Based at least on the likelihood of whether the reference image is or is not the current image, usingSpecial calendar for current image reference History recent motion vector prediction candidate setOr alternativelyNon-current image reference specific historical nearest motion vector prediction candidate setOr alternativelyMixing of the twoAs a means ofCurrent historical recent motion vector prediction candidate set
3) Predicting a candidate set from at least said current historical most recent motion vector, based at least on some or all of said information representing motion vector predictors for the current motion vector,
selecting a motion vector as a motion vector predictor for the current motion vector
Or alternatively
Selecting a predetermined number of historical latest motion vectors, putting the historical latest motion vectors into a candidate list for motion vector prediction, selecting a motion vector from the candidate list as a motion vector predicted value of the current motion vector,
And then decodes to obtain the current motion vector itself.
From a third aspect, the present invention provides an encoding apparatus for compressing an image, comprising at least the following modules:
1) The current candidate set selection module, when encoding a current motion vector in a coding block, uses at least according to the likelihood of whether the reference picture is or is not the current pictureCurrent image reference specific history nearest motion vector Quantity prediction candidate setOr alternativelyNon-current image reference specific historical nearest motion vector prediction candidate setOr alternativelyMixing of the twoAs a means ofCurrent historical recent motion vector prediction candidate set
2) A motion vector predictor selection module for predicting a candidate set from at least said current historical most recent motion vector, at least according to a predetermined evaluation rule,
selecting a motion vector as a motion vector predictor for the current motion vector
Or alternatively
Selecting a preset number of historical nearest motion vectors, putting the selected historical nearest motion vectors into a candidate list for motion vector prediction, and selecting a motion vector from the candidate list as a motion vector predicted value of the current motion vector;
3) The compressed data code stream generating module generates a compressed data code stream containing at least part or all of information representing a motion vector predicted value of a current motion vector.
From a fourth aspect, the present invention provides a decoding apparatus for compressing an image, comprising at least the following modules:
1) The compressed data code stream analyzing module analyzes the compressed data code stream when decoding one current motion vector in one decoding block, and obtains partial or all information of a motion vector predicted value at least representing the current motion vector;
2) The current candidate set selection module uses, at least depending on the likelihood of whether the reference image is or is not the current imageCurrent image reference specific historical nearest motion vector prediction candidate setOr alternativelyNon-current image reference specific historical recently performed Motion vector prediction candidate setOr alternativelyMixing of the twoAs a means ofCurrent historical recent motion vector prediction candidate set
3) A motion vector predictor decoding module for predicting a candidate set from at least said current historical most recent motion vector based at least on some or all of said motion vector predictor information representing the current motion vector,
selecting a motion vector as a motion vector predictor for the current motion vector
Or alternatively
Selecting a predetermined number of historical latest motion vectors, putting the historical latest motion vectors into a candidate list for motion vector prediction, selecting a motion vector from the candidate list as a motion vector predicted value of the current motion vector,
And then decodes to obtain the current motion vector itself.
The invention is suitable for encoding and decoding of lossy image compression, and is also suitable for encoding and decoding of lossless image compression.
In the present invention, the encoded block or the decoded block is an encoded region or a decoded region of an image, including at least one of: the method comprises the steps of a whole image, a sub-image of the image, a slice, a tile, a macroblock, a maximum coding unit LCU, a coding tree unit CTU, a coding unit CU, a sub-region of the CU, a sub-coding unit sub-CU, a prediction unit PU, a sub-region of the PU, a sub-prediction unit sub-PU, a transformation unit TU, a sub-region of the TU and a sub-transformation unit sub-TU.
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 microblock, a string of pixels, a string of samples, an index string, a line.
The technical features of the present invention are described above by means of several specific embodiments. Other advantages and effects of the present invention will be readily apparent to those skilled in the art from the present disclosure. The invention may be practiced or carried out in other embodiments that depart from the spirit and scope of the present invention, and the details of the present invention may be modified or changed from various points of view and applications.
Drawings
Fig. 1 is a schematic diagram of the encoding method or apparatus of the present invention.
Fig. 2 is a schematic diagram of the decoding method or apparatus of the present invention.
Detailed Description
Further details or variations of the invention are set forth below.
Implementation or modification 1 (example of a manner of indicating whether or not a reference image is a possible degree of a current image)
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 between the two-dimensional coordinates of the current block or sub-block in the current image and the two-dimensional coordinates of the corresponding reference block or sub-block in the reference image, namely the offset;
the degree of likelihood of whether the reference image is or is not the current image is represented using one of two ways:
mode one:
the motion vector comprises a reference picture index ref_idx, which indicates the index of the reference picture in the reference picture queue, i.e. which frame picture in the reference picture queue the reference block or sub-block is in;
the value of the reference picture index being equal to a predetermined value (typically 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;
mode two:
the current block or the sub-block to which the motion vector belongs has a corresponding coding mode;
when the coding mode isIntra block copy prediction, intra Block Copy prediction abbreviated IBC prediction modeWhen the reference picture is the current picture, in this case the motion vector is also called block vector, abbreviated bv;
when the coding mode isInter prediction, i.e. inter prediction modeWhen the reference picture is a non-current picture.
Implementation or modification example 2 (example of candidate list for motion vector prediction)
In the encoding method or apparatus or the decoding method or apparatus,
the motion vector predicted value of the current motion vector is from at least a merging candidate list mergeCandList;
the merge candidate list includes at least the following motion vectors as motion vector predictors of the motion vector of the current block:
motion vectors of co-frame adjacent, also called spatially adjacent (spatial neighboring) codec blocks or sub-blocks thereof, called co-frame adjacent motion vectors
And/or
Motion vectors of previous frame neighboring, also called temporal neighboring (temporal neighboring) codec blocks or sub-blocks thereof, called previous frame neighboring motion vectors
And/or
The current historical most recent motion vector predicts some or all of the motion vectors of the candidate set.
Implementation or variation 3 (two dedicated historical most 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 historical nearest motion vector prediction candidate set and the non-current image reference special historical nearest motion vector prediction candidate set are different subsets of the same common historical nearest motion vector prediction candidate set and are respectively called a current image reference special subset and a non-current image reference special subset, and motion vectors in the common historical nearest 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 reference images of the motion vectors are current images or not;
the current image reference-specific subset and the non-current image reference-specific subset are respectively one representation of the current image reference-specific historical nearest motion vector prediction candidate set and the non-current image reference-specific historical nearest motion vector prediction candidate set.
Implementation or modification 4 (example of construction procedure of candidate list for motion vector prediction)
In the encoding method or apparatus or the decoding method or apparatus,
the motion vector predicted value of the current motion vector is from at least a merging candidate list;
the construction process of the merging candidate list at least comprises one of the following three types of operations or logical combination thereof:
the first type of operation, suitable for the case where the reference image is always not the current image, at least comprises:
first a non-duplicate co-frame neighboring motion vector is placed into the merge candidate list,
next, non-repeated previous frame neighboring motion vectors are put into the merge candidate list,
then, partial or all motion vectors in the non-repeated non-current image reference special history recent motion vector prediction candidate set are put into the merging candidate list;
a second type of operation, adapted to the case where the reference image is always the current image, comprises at least:
first a non-duplicate co-frame neighboring motion vector is placed into the merge candidate list,
then, partial or all motion vectors in the non-repeated current image reference special history recent motion vector prediction candidate set are put into the merging candidate list;
A third type of operation, applicable to the case where the reference image may be the current image or the non-current image, includes at least:
first a non-duplicate co-frame neighboring motion vector is placed into the merge candidate list,
next, non-repeated previous frame neighboring motion vectors are put into the merge candidate list,
and then interleaving part or all of the motion vectors in the non-repeated current image reference special historical nearest motion vector prediction candidate set and part or all of the motion vectors in the non-current image reference special historical nearest motion vector prediction candidate set into the merging candidate list one by one.
Implementation or modification 5 (example of construction procedure of candidate list for motion vector prediction)
In the encoding method or apparatus or the decoding method or apparatus,
the motion vector predicted value of the current motion vector is from at least a merging candidate list;
the merging candidate list has MaxNumMergeCand candidate motion vector predicted values which are respectively represented by sequence numbers i from 0 to MaxNumMergeCand-1;
the construction process of the merging candidate list at least comprises one of the following three types of operations or logical combination thereof:
The first type of operation, suitable for the case where the reference image is always not the current image, at least comprises:
the initialization sequence number i is set to 0,
if a block or sub-block to the left adjacent to the frame is available and valid, the motion vector of said block or sub-block to the left is assigned a candidate motion vector predictor with sequence number i and sequence number i is incremented by one,
if an upper block or sub-block adjacent to the frame is available and valid, the motion vector of the upper block or sub-block is assigned a candidate motion vector predictor with sequence number i and sequence number i is incremented by one,
if an upper right block or sub-block adjacent to the frame is available and valid, the motion vector of the upper right block or sub-block is assigned a candidate motion vector predictor with a sequence number i and the sequence number i is incremented by one,
if a block or sub-block next to the frame and below left is available and valid, the motion vector of said block or sub-block below left is assigned a candidate motion vector predictor with a sequence number i and the sequence number i is incremented by one,
if a block or sub-block of a previous frame adaptation position is available and valid, the motion vector of said block or sub-block of a previous frame adaptation position is assigned a candidate motion vector predictor with a sequence number i and the sequence number i is incremented by one,
If the block or sub-block above the left adjacent to the frame is available and valid, the motion vector of said block or sub-block above the left is assigned a candidate motion vector predictor with a sequence number i and the sequence number i is incremented by one,
if a co-located block of a previous frame is available and valid, the motion vector of the co-located block of the previous frame is assigned a candidate motion vector predictor with a sequence number i and the sequence number i is incremented by one,
repeatedly and repeatedly assigning a motion vector in the prediction candidate set of the non-current image reference special history latest motion vector to a candidate motion vector predicted value with a sequence number i and adding one to the sequence number i in sequence as long as the motion vector value and/or the reference image index value of the motion vector is not equal to the motion vector value and/or the reference image index value of the motion vector which is already put in the merging candidate list in the construction process of the merging 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 merging candidate list are not repeated, and the sequence number i is added by one until the sequence number i is equal to MaxNumMergeCand;
a second type of operation, adapted to the case where the reference image is always the current image, comprises at least:
the initialization sequence number i is set to 0,
if a block or sub-block to the left adjacent to the frame is available and valid, the motion vector of said block or sub-block to the left is assigned a candidate motion vector predictor with sequence number i and sequence number i is incremented by one,
If an upper block or sub-block adjacent to the frame is available and valid, the motion vector of the upper block or sub-block is assigned a candidate motion vector predictor with sequence number i and sequence number i is incremented by one,
if an upper right block or sub-block adjacent to the frame is available and valid, the motion vector of the upper right block or sub-block is assigned a candidate motion vector predictor with a sequence number i and the sequence number i is incremented by one,
if a block or sub-block next to the frame and below left is available and valid, the motion vector of said block or sub-block below left is assigned a candidate motion vector predictor with a sequence number i and the sequence number i is incremented by one,
if the block or sub-block above the left adjacent to the frame is available and valid, the motion vector of said block or sub-block above the left is assigned a candidate motion vector predictor with a sequence number i and the sequence number i is incremented by one,
and repeatedly assigning candidate motion vector predicted values with the sequence number i and adding one to the sequence number i in sequence until the sequence number i is equal to MaxNumMergeCand as long as the motion vector value and/or the reference image index value of the motion vector which is put into the merging candidate list in the construction process of the merging candidate list 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 merging candidate list.
A third type of operation, applicable to the case where the reference image may be the current image or the non-current image, includes at least:
the initialization sequence number i is set to 0,
if a block or sub-block to the left adjacent to the frame is available and valid, the motion vector of said block or sub-block to the left is assigned a candidate motion vector predictor with sequence number i and sequence number i is incremented by one,
if an upper block or sub-block adjacent to the frame is available and valid, the motion vector of the upper block or sub-block is assigned a candidate motion vector predictor with sequence number i and sequence number i is incremented by one,
if an upper right block or sub-block adjacent to the frame is available and valid, the motion vector of the upper right block or sub-block is assigned a candidate motion vector predictor with a sequence number i and the sequence number i is incremented by one,
if a block or sub-block next to the frame and below left is available and valid, the motion vector of said block or sub-block below left is assigned a candidate motion vector predictor with a sequence number i and the sequence number i is incremented by one,
if a block or sub-block of a previous frame adaptation position is available and valid, the motion vector of said block or sub-block of a previous frame adaptation position is assigned a candidate motion vector predictor with a sequence number i and the sequence number i is incremented by one,
If the block or sub-block above the left adjacent to the frame is available and valid, the motion vector of said block or sub-block above the left is assigned a candidate motion vector predictor with a sequence number i and the sequence number i is incremented by one,
if a co-located block of a previous frame is available and valid, the motion vector of the co-located block of the previous frame is assigned a candidate motion vector predictor with a sequence number i and the sequence number i is incremented by one,
repeatedly interleaving the motion vector in the non-current image reference special history nearest motion vector prediction candidate set and the motion vector in the current image reference special history nearest motion vector prediction candidate set one by one, so long as the motion vector value and/or the reference image index value of the motion vector is not equal to the motion vector value and/or the reference image index value of the motion vector which is put into the merging candidate list in the construction process of the merging candidate list, namely the motion vector value and/or the reference image index value of the motion vector with smaller sequence number in the merging candidate list are not repeated, and sequentially assigning the candidate motion vector prediction value with the sequence number i and adding one to the sequence number i until the sequence number i is equal to MaxNumMergeCand.
Implementation or modification example 6 (examples of "useful" and "effective" definitions)
Implementation or variation 5 of the encoding or decoding method or apparatus, the definition of "useful" is that the block or sub-block exists, at least part of the codec operation has been completed and is in the same slice as the current block where adjacent to the frame, and the definition of "useful" is one or a combination of the following:
1) There is a motion vector that is used to determine the motion vector,
2) The motion vector values and/or reference picture index values having motion vectors and whose motion vector values and/or reference picture index values are not equal to the motion vector values and/or reference picture index values of the motion vectors that have been put into the merge candidate list during the construction of the merge candidate list i.e. are not repeated with the motion vector values and/or reference picture index values of the motion vectors having a smaller sequence number within the merge candidate list,
3) A coding mode with at least one motion vector is employed, comprising: inter prediction mode, inter prediction mode allowing use of a current image as a reference image, intra block matching mode, intra block prediction mode, string matching mode, string prediction mode, micro block matching mode, micro block prediction mode, line matching mode, line prediction mode,
3) Having a predetermined characteristic of being able to be used,
4) The predetermined condition is satisfied and,
5) With a motion vector of a predetermined type,
6) Having a motion vector whose value falls within a predetermined range of values,
7) With motion vectors whose values fall outside a predetermined range of values.
Implementation or modification 7 (Special historical recent motion vector prediction candidate set example)
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 between the two-dimensional coordinates of the current block or sub-block in the current image and the two-dimensional coordinates of the corresponding reference block or sub-block in the reference image, namely the offset;
the current block or the sub-block to which the motion vector belongs has a corresponding coding mode;
when the coding mode isIntra block copy prediction, intra Block Copy prediction abbreviated IBC prediction modeWhen the reference picture is the current picture, in this case the motion vector is also called block vector, abbreviated bv;
when the coding mode isInter prediction, i.e. inter prediction modeWhen the reference image is a non-current image;
the saidCurrent picture consults special history recent motion vector prediction candidate set hmvpibbccandlist ={HmvpIbcCandList[i], 0 ≤ i ≤ I 1 -1 the element stored block vector is a block vector of a coded block or sub-block which has completed at least part of the coding operation and which at least meets a predetermined rule of the first type, which still further meets a selection condition of the first type, wherein I 1 Is thatHmvpIbcCandListThe number of block vectors stored in I 1 Less than or equal to a predetermined first maximum value;
the saidNon-current image reference specific historical nearest motion vector prediction candidate set HmvpCANDLST={HmvpCandList[i], 0 ≤ i ≤I 2 The element-1 }, i.e. the stored motion vector, is a motion vector of a codec block or sub-block which has completed at least part of the codec operation and which at least meets a predetermined rule of the second type, which still further meets a selection condition of the second type, wherein I 2 Is thatHmvpCandListThe number of motion vectors stored in I 2 Less than or equal to a predetermined second maximum.
Implementation or modification 8 (examples of predetermined rules and selection conditions)
In carrying out or modifying the encoding method or apparatus or the decoding method or apparatus of example 7,
the first predetermined rule includes at least that the coding mode of the coding block or sub-block for which at least part of the coding operation is completed isIntra block copy prediction modeThe first 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;
The second type of predetermined rule includes at least that the coding mode of the coding block or sub-block for which at least part of the coding operation has been completed isInter prediction modeThe second class of selection conditions comprises at least that the reference block or sub-block represented by the motion vector in question is within a predetermined reference range.
Implementation or modification 9 (example of a predetermined maximum value)
In carrying out or modifying the encoding method or apparatus or the decoding method or apparatus of example 7,
the first maximum is an integer between 4 and 12;
the second maximum is an integer between 4 and 12.
Implementation or modification 10 (example of candidate list for motion vector prediction)
In carrying out or modifying the encoding method or apparatus or the decoding method or apparatus of example 7,
when the reference image is the current image, at least from the followingHmvpIbcCandListWherein the predetermined number K is selected in a predetermined manner 1 HmvpIBcCandList [ i ]]Put into a block vector candidate list for block vector predictionbvCandList={bvCandList[j], 0 ≤ j ≤ J 1 -1}, from thebvCandListSelecting a block vector bvCandList [ mvIdx ]]Block vector predictor as the current block vector, where J 1 Is thatbvCandListThe number of motion vectors stored in J 1 Less than or equal to a predetermined maximum (typically an integer between 4 and 16), mvIdx satisfying 0.ltoreq.mvIdx.ltoreq.J 1 -1;
When the reference image is a non-current image, at least from the followingHmvpCandListWherein the predetermined number K is selected in a predetermined manner 2 HmvpCANdList [ i ]]Put into a merge candidate list for motion vector predictionmergeCandList={mergeCandList[j], 0 ≤ j ≤ J 2 -1}, from themergeCandListSelecting a motion vector mergeCandList [ merge_idx ]]A motion vector predictor as the current motion vector, wherein J 2 Is thatmergeCandListThe number of motion vectors stored in J 2 Less than or equal to a predetermined maximum (typically an integer between 4 and 16), with merge_idx satisfying 0 < merge_idx < J 2 -1。
Implementation or modification 11 (example of candidate list for motion vector prediction)
In implementing or modifying the encoding method or apparatus or decoding method or apparatus of example 10,
said mvIdx being present in or derived from at least part or all of said motion vector predictor representing a 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 12 (example of composition of elements of dedicated historic recent motion vector prediction candidate set)
In carrying out or modifying the encoding method or apparatus or the decoding method or apparatus of example 7,
the saidHmvpIbcCandListThe constituent components of the element of (a) include at least a horizontal component and a vertical component of the block vector;
the saidHmvpCandListComprising at least a horizontal component, a vertical component of one or two motion vectors, a reference index indicating which frame of picture in the reference picture queue the reference picture is, and at most one bi-predictive CU level weight.
Implementation or variation example 13 (example of constructing and updating a dedicated set of historical recent motion vector prediction candidates)
In carrying out or modifying the encoding method or apparatus or the decoding method or apparatus of example 7,
the saidHmvpIbcCandListAnd/orHmvpCandListThe time at which the encoding and decoding of one frame image is started is reset to an empty set.
Implementation or variation 14 (example of constructing and updating a dedicated set of historical recent motion vector prediction candidates)
In carrying out or modifying the encoding method or apparatus or the decoding method or apparatus of example 7,
the saidHmvpIbcCandListAnd/orHmvpCandListIs reset to the empty set at the moment when the codec of one slice starts.
Implementation or modification 15 (example of constructing and updating a dedicated set of historical recent motion vector prediction candidates)
In carrying out or modifying the encoding method or apparatus or the decoding method or apparatus of example 7,
when a new motion vector is obtained in the encoding and decoding, the new motion vector is updated according to a first predetermined schemeHmvpIbcCandList
When a new motion vector is obtained in the encoding and decoding, wherein the reference image is not the current image, the new motion vector is updated according to a second preset schemeHmvpCandList
Implementation or variant example 16 (an example of constructing and updating a dedicated set of historical recent motion vector prediction candidates)
In implementing or modifying the encoding method or apparatus or the decoding method or apparatus of example 15,
the first predetermined scheme includes at least 1) theHmvpIbcCandListIs a first-in-first-out buffer, i.e. FIFO buffer, 2) delete the saidHmvpIbcCandListA motion vector which is identical to the new motion vector and moves forward by one position all following the new motion vector, 3) when the new motion vector is detectedHmvpIbcCandListWhen the space in the motion vector is full, moving out the motion vector which is put in first according to the rule of first in first out, moving forward all the rest motion vectors by one position and moving 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) delete the saidHmvpCandListA motion vector which is identical to the new motion vector and moves forward by one position all following the new motion vector, 3) when the new motion vector is detected HmvpCandListWhen the space in the motion vector 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 are moved into the new motion vector.

Claims (10)

1. An encoding method for image compression, characterized by comprising at least the following steps:
1) In encoding a current motion vector in a coding block, at least depending on whether the reference picture is a current picture or a non-current picture, use is made ofCurrent image reference specific historical nearest motion vector prediction candidate setOr alternativelyNon-current image parameters Candidate set for prediction of special historical latest motion vector for examinationOr alternativelyMixing of the twoAs a means ofCurrent history recent motion vector prediction candidates Selection set
The reference picture is represented as being a current picture or a non-current picture using at least the following means:
the current block or the sub-block to which the motion vector belongs has a corresponding coding mode;
when the coding mode isIntra block copy prediction mode, IBC mode for shortWhen the reference picture is the current picture, in this case the motion vector is also called block vector, abbreviated bv;
when the coding mode isInter prediction modeWhen the reference image is a non-current image;
Obtaining the current image reference specific historical latest motion vector prediction candidate set and/or the non-current image reference specific historical latest motion vector prediction candidate set using at least the following schemes:
the saidCurrent picture consults special history recent motion vector prediction candidate set hmvpibbccandlist={HmvpIbcCandList[i], 0 ≤ i ≤ I 1 The element of-1, i.e. the stored block vector, is at least partially encoded and at least coincidentA block vector which still further satisfies the first type selection condition among the block vectors of the encoded blocks or sub-blocks which meet the first type predetermined rule, wherein I 1 Is thatHmvpIbcCandListThe number of block vectors stored in I 1 Less than or equal to a predetermined first maximum value;
the saidNon-current image reference specific historical nearest motion vector prediction candidate set HmvpCANDLST={HmvpCandList[i], 0 ≤ i ≤I 2 The element-1 }, i.e. the stored motion vector, is a motion vector which has completed at least part of the encoding operation and which still further satisfies a second type of selection condition among the motion vectors of the encoded blocks or sub-blocks which at least meet a second type of predetermined rule, wherein I 2 Is thatHmvpCandListThe number of motion vectors stored in I 2 Less than or equal to a predetermined second maximum value;
the first predetermined rule includes at least that the coding mode of the coding block or sub-block for which at least part of the coding operation is completed is Intra block copy prediction modeThe first 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;
the second predetermined rule includes at least that the coding mode of the coding block or sub-block for which at least part of the coding operation is completed 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;
2) Predicting a candidate set from at least the current historical most recent motion vector, based at least on a predetermined evaluation rule,
selecting a preset number of historical nearest motion vectors, putting the selected historical nearest motion vectors into a candidate list for motion vector prediction, and selecting a motion vector from the candidate list as a motion vector predicted value of the current motion vector;
the candidate list is referred to as a merge candidate list, denoted mergeCandList, and in the case where the reference picture is the current picture, the merge candidate list is also denoted block vector candidate list bvCandList,
one of the sources of motion vector predictors of the current motion vector is a merge candidate list;
3) A compressed data stream is generated containing at least some or all of the information representing the motion vector predictor of the current motion vector.
2. An image compression encoding device, characterized by comprising at least the following modules:
1) The current candidate set selection module, when encoding a current motion vector in a coding block, uses at least according to whether the reference picture is a current picture or a non-current pictureCurrent image reference specific historical nearest motion vector prediction candidates Selection setOr alternativelyNon-current image reference specific historical nearest motion vector prediction candidate setOr alternativelyMixing of the twoAs a means ofCurrent calendar History recent motion vector prediction candidate set
The reference picture is represented as being a current picture or a non-current picture using at least the following means:
the current block or the sub-block to which the motion vector belongs has a corresponding coding mode;
when the coding mode isIntra block copy prediction mode, IBC mode for shortWhen the reference picture is the current picture, in this case the motion vector is also called block vector, abbreviated bv;
when the coding mode isInter prediction modeWhen the reference image is a non-current image;
obtaining the current image reference specific historical latest motion vector prediction candidate set and/or the non-current image reference specific historical latest motion vector prediction candidate set using at least the following schemes:
The saidCurrent picture consults special history recent motion vector prediction candidate set hmvpibbccandlist={HmvpIbcCandList[i], 0 ≤ i ≤ I 1 The element-1 }, i.e. the stored block vector, is a block vector which has completed at least part of the encoding operation and which still further satisfies the first type of selection condition among the block vectors of the encoded blocks or sub-blocks which at least meet the first type of predetermined rule, wherein I 1 Is thatHmvpIbcCandListThe number of block vectors stored in I 1 Less than or equal to a predetermined first maximum value;
the saidNon-current image reference specific historical nearest motion vector prediction candidate set HmvpCANDLST={HmvpCandList[i], 0 ≤ i ≤I 2 The element-1 }, i.e. the stored motion vector, is a motion vector which has completed at least part of the encoding operation and which still further satisfies a second type of selection condition among the motion vectors of the encoded blocks or sub-blocks which at least meet a second type of predetermined rule, wherein I 2 Is thatHmvpCandListThe number of motion vectors stored in I 2 Less than or equal to a predetermined second maximum value;
the first predetermined rule includes at least that the coding mode of the coding block or sub-block for which at least part of the coding operation is completed isIntra block copy prediction modeThe first 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;
The second predetermined rule includes at least that the coding mode of the coding block or sub-block for which at least part of the coding operation is completed 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;
2) A motion vector predictor selection module for predicting a candidate set from at least said current historical most recent motion vector, at least according to a predetermined evaluation rule,
selecting a preset number of historical nearest motion vectors, putting the selected historical nearest motion vectors into a candidate list for motion vector prediction, and selecting a motion vector from the candidate list as a motion vector predicted value of the current motion vector;
the candidate list is referred to as a merge candidate list, denoted mergeCandList, and in the case where the reference picture is the current picture, the merge candidate list is also denoted block vector candidate list bvCandList,
one of the sources of motion vector predictors of the current motion vector is a merge candidate list;
3) The compressed data code stream generating module generates a compressed data code stream containing at least part or all of information representing a motion vector predicted value of a current motion vector.
3. A decoding method for image compression, characterized by 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 of a motion vector predicted value at least representing the current motion vector;
2) Based at least on whether the reference image is a current image or a non-current image, usingCurrent image reference dedicated history latest fortune Motion vector prediction candidate setOr alternativelyNon-current image reference specific historical nearest motion vector prediction candidate setOr alternativelyMixing of the two Closing deviceAs a means ofCurrent historical recent motion vector prediction candidate set
The reference picture is represented as being a current picture or a non-current picture using at least the following means:
the current block or the sub-block to which the motion vector belongs has a corresponding coding mode;
when the coding mode isIntra block copy prediction mode, IBC mode for shortWhen the reference picture is the current picture, in this case the motion vector is also called block vector, abbreviated bv;
when the coding mode isInter prediction modeWhen the reference image is a non-current image;
obtaining the current image reference specific historical latest motion vector prediction candidate set and/or the non-current image reference specific historical latest motion vector prediction candidate set using at least the following schemes:
The saidCurrent picture consults special history recent motion vector prediction candidate set hmvpibbccandlist={HmvpIbcCandList[i], 0 ≤ i ≤ I 1 The element-1 }, i.e. the stored block vector, is a block vector of the decoded block or sub-block which has completed at least part of the decoding operation and which at least meets a predetermined rule of the first type, yet further meets a selection condition of the first type, wherein I 1 Is thatHmvpIbcCandListThe number of block vectors stored in I 1 Less than or equal to a predetermined first maximum value;
the saidNon-current image reference specific historical nearest motion vector prediction candidate set HmvpCANDLST={HmvpCandList[i], 0 ≤ i ≤I 2 The element-1 }, i.e. the stored motion vector, is a motion vector of a decoded block or sub-block which has completed at least a partial decoding operation and which at least meets a predetermined rule of a second type, yet further meets a selection condition of the second type, wherein I 2 Is thatHmvpCandListThe number of motion vectors stored in I 2 Less than or equal to a predetermined second maximum value;
the first predetermined rule includes at least that the coding mode of the decoding block or sub-block for which the at least partial decoding operation has been completed isIntra block copy prediction modeThe first 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;
The second type of predetermined rule includes at least that the coding mode of the decoding block or sub-block for which the at least partial decoding operation has been completed 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;
3) Predicting a candidate set from at least said current historical most recent motion vector, based at least on some or all of said information representing motion vector predictors for the current motion vector,
selecting a predetermined number of historical latest motion vectors, putting the historical latest motion vectors into a candidate list for motion vector prediction, selecting a motion vector from the candidate list as a motion vector predicted value of the current motion vector,
and then decoding to obtain the current motion vector;
the candidate list is referred to as a merge candidate list, denoted mergeCandList, and in the case where the reference picture is the current picture, the merge candidate list is also denoted block vector candidate list bvCandList,
one of the sources of the motion vector predictor of the current motion vector is a merge candidate list.
4. A decoding device for image compression, characterized by comprising at least the following modules:
1) The compressed data code stream analyzing module analyzes the compressed data code stream when decoding one current motion vector in one decoding block, and obtains partial or all information of a motion vector predicted value at least representing the current motion vector;
2) The current candidate set selection module uses, at least depending on whether the reference image is a current image or a non-current imageCurrent diagram Reference specific historical recent motion vector prediction candidate setOr alternativelyNon-current image reference specific historical latest motion vector pre-prediction Candidate set of measurementsOr alternativelyMixing of the twoAs a means ofCurrent historical recent motion vector prediction candidate set
The reference picture is represented as being a current picture or a non-current picture using at least the following means:
the current block or the sub-block to which the motion vector belongs has a corresponding coding mode;
when the coding mode isIntra block copy prediction mode, IBC mode for shortWhen the reference picture is the current picture, in this case the motion vector is also called block vector, abbreviated bv;
when the coding mode isInter prediction modeWhen the reference image is a non-current image;
obtaining the current image reference specific historical latest motion vector prediction candidate set and/or the non-current image reference specific historical latest motion vector prediction candidate set using at least the following schemes:
the saidCurrent picture consults special history recent motion vector prediction candidate set hmvpibbccandlist={HmvpIbcCandList[i], 0 ≤ i ≤ I 1 The element-1 }, i.e. the stored block vector, is a block vector of the decoded block or sub-block which has completed at least part of the decoding operation and which at least meets a predetermined rule of the first type, yet further meets a selection condition of the first type, wherein I 1 Is thatHmvpIbcCandListThe number of block vectors stored in I 1 Less thanOr equal to a predetermined first maximum value;
the saidNon-current image reference specific historical nearest motion vector prediction candidate set HmvpCANDLST={HmvpCandList[i], 0 ≤ i ≤I 2 The element-1 }, i.e. the stored motion vector, is a motion vector of a decoded block or sub-block which has completed at least a partial decoding operation and which at least meets a predetermined rule of a second type, yet further meets a selection condition of the second type, wherein I 2 Is thatHmvpCandListThe number of motion vectors stored in I 2 Less than or equal to a predetermined second maximum value;
the first predetermined rule includes at least that the coding mode of the decoding block or sub-block for which the at least partial decoding operation has been completed isIntra block copy prediction modeThe first 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;
the second type of predetermined rule includes at least that the coding mode of the decoding block or sub-block for which the at least partial decoding operation has been completed 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;
3) A motion vector predictor decoding module for predicting a candidate set from at least said current historical most recent motion vector based at least on some or all of said motion vector predictor information representing the current motion vector,
Selecting a predetermined number of historical latest motion vectors, putting the historical latest motion vectors into a candidate list for motion vector prediction, selecting a motion vector from the candidate list as a motion vector predicted value of the current motion vector,
and then decoding to obtain the current motion vector;
the candidate list is referred to as a merge candidate list, denoted mergeCandList, and in the case where the reference picture is the current picture, the merge candidate list is also denoted block vector candidate list bvCandList,
one of the sources of the motion vector predictor of the current motion vector is a merge candidate list.
5. The decoding method according to claim 3 or the decoding apparatus according to claim 4,
the decoding block is a decoding area of the image, and comprises at least one of the following: the method comprises the steps of a whole image, a sub-image of the image, a slice, a tile, a macro block, a maximum coding unit LCU, a coding tree unit CTU, a coding unit CU, a sub-region of the CU, a sub-coding unit sub-CU, a prediction unit PU, a sub-region of the PU, a sub-prediction unit sub-PU, a transformation unit TU, a sub-region of the TU and a sub-transformation unit sub-TU;
the sub-blocks involved in the decoding process include one or a combination of the following cases: a decoding block, a sub-region of a decoding block, a square or rectangular or triangular or trapezoidal sub-block, a micro-block, a string of pixels, a string of samples, an index string, a line.
6. A decoding method according to claim 3 or a decoding apparatus according to claim 4, characterized in that:
the merge candidate list includes at least the following motion vectors as motion vector predictors of the motion vector of the current block:
motion vectors of decoded blocks or sub-blocks thereof, which are co-frame adjacent, also called spatial adjacent, spatial neighboring, called co-frame adjacent motion vectors
And/or
The motion vector of the decoded block or its sub-block, which is also called temporal neighboring, temporal neighboring, of the previous frame neighboring, called previous frame neighboring motion vector
And/or
The current historical most recent motion vector predicts some or all of the motion vectors of the candidate set.
7. A decoding method according to claim 3 or a decoding apparatus according to claim 4, characterized by comprising one or any combination of the following features:
feature 1:
the construction process of the merging candidate list at least comprises one of the following two types of operations or logical combination thereof:
the first type of operation, suitable for the case where the reference image is always not the current image, at least comprises:
first a non-duplicate co-frame neighboring motion vector is placed into the merge candidate list,
next, non-repeated previous frame neighboring motion vectors are put into the merge candidate list,
Then, partial or all motion vectors in the non-repeated non-current image reference special history recent motion vector prediction candidate set are put into the merging candidate list;
a second type of operation, adapted to the case where the reference image is always the current image, comprises at least:
first a non-duplicate co-frame neighboring motion vector is placed into the merge candidate list,
then, partial or all motion vectors in the non-repeated current image reference special history recent motion vector prediction candidate set are put into the merging candidate list;
feature 2:
the merging candidate list has MaxNumMergeCand candidate motion vector predicted values which are respectively represented by sequence numbers i from 0 to MaxNumMergeCand-1;
the construction process of the merging candidate list at least comprises one of the following two types of operations or logical combination thereof:
the first type of operation, suitable for the case where the reference image is always not the current image, at least comprises:
the initialization sequence number i is set to 0,
if a block or sub-block to the left adjacent to the frame is available and valid, the motion vector of said block or sub-block to the left is assigned a candidate motion vector predictor with sequence number i and sequence number i is incremented by one,
If an upper block or sub-block adjacent to the frame is available and valid, the motion vector of the upper block or sub-block is assigned a candidate motion vector predictor with sequence number i and sequence number i is incremented by one,
if an upper right block or sub-block adjacent to the frame is available and valid, the motion vector of the upper right block or sub-block is assigned a candidate motion vector predictor with a sequence number i and the sequence number i is incremented by one,
if a block or sub-block next to the frame and below left is available and valid, the motion vector of said block or sub-block below left is assigned a candidate motion vector predictor with a sequence number i and the sequence number i is incremented by one,
if a block or sub-block of a previous frame adaptation position is available and valid, the motion vector of said block or sub-block of a previous frame adaptation position is assigned a candidate motion vector predictor with a sequence number i and the sequence number i is incremented by one,
if the block or sub-block above the left adjacent to the frame is available and valid, the motion vector of said block or sub-block above the left is assigned a candidate motion vector predictor with a sequence number i and the sequence number i is incremented by one,
if a co-located block of a previous frame is available and valid, the motion vector of the co-located block of the previous frame is assigned a candidate motion vector predictor with a sequence number i and the sequence number i is incremented by one,
Repeatedly and repeatedly assigning a motion vector in the prediction candidate set of the non-current image reference special history latest motion vector to a candidate motion vector predicted value with a sequence number i and adding one to the sequence number i in sequence as long as the motion vector value and/or the reference image index value of the motion vector is not equal to the motion vector value and/or the reference image index value of the motion vector which is already put in the merging candidate list in the construction process of the merging 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 merging candidate list are not repeated, and the sequence number i is added by one until the sequence number i is equal to MaxNumMergeCand;
a second type of operation, adapted to the case where the reference image is always the current image, comprises at least:
the initialization sequence number i is set to 0,
if a block or sub-block to the left adjacent to the frame is available and valid, the motion vector of said block or sub-block to the left is assigned a candidate motion vector predictor with sequence number i and sequence number i is incremented by one,
if an upper block or sub-block adjacent to the frame is available and valid, the motion vector of the upper block or sub-block is assigned a candidate motion vector predictor with sequence number i and sequence number i is incremented by one,
If an upper right block or sub-block adjacent to the frame is available and valid, the motion vector of the upper right block or sub-block is assigned a candidate motion vector predictor with a sequence number i and the sequence number i is incremented by one,
if a block or sub-block next to the frame and below left is available and valid, the motion vector of said block or sub-block below left is assigned a candidate motion vector predictor with a sequence number i and the sequence number i is incremented by one,
if the block or sub-block above the left adjacent to the frame is available and valid, the motion vector of said block or sub-block above the left is assigned a candidate motion vector predictor with a sequence number i and the sequence number i is incremented by one,
repeatedly and repeatedly assigning a motion vector in the prediction candidate set of the current image reference special history latest motion vector to a candidate motion vector predicted value with a sequence number i and adding one to the sequence number i in sequence as long as the motion vector value and/or the reference image index value of the motion vector is not equal to the motion vector value and/or the reference image index value of the motion vector which is already put in the merging candidate list in the construction process of the merging 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 merging candidate list are not repeated, and the sequence number i is added by one until the sequence number i is equal to MaxNumMergeCand;
Feature 3:
on the basis of the feature 2, the following features are also provided:
the usable means that the block or sub-block exists, that at least part of the decoding operation has been completed and that it is within the same slice as the current block in the case of being adjacent to the frame, and the effective means one or a combination of the following cases:
1) There is a motion vector that is used to determine the motion vector,
2) The motion vector values and/or reference picture index values having motion vectors and whose motion vector values and/or reference picture index values are not equal to the motion vector values and/or reference picture index values of the motion vectors that have been put into the merge candidate list during the construction of the merge candidate list i.e. are not repeated with the motion vector values and/or reference picture index values of the motion vectors having a smaller sequence number within the merge candidate list,
3) A coding mode with at least one motion vector is employed, comprising: inter prediction mode, inter prediction mode allowing use of a current image as a reference image, intra block matching mode, intra block prediction mode, string matching mode, string prediction mode, micro block matching mode, micro block prediction mode, line matching mode, line prediction mode,
4) Having a predetermined characteristic of being able to be used,
5) The predetermined condition is satisfied and,
6) With a motion vector of a predetermined type,
7) Having a motion vector whose value falls within a predetermined range of values,
8) With motion vectors whose values fall outside a predetermined range of values.
8. A decoding method according to claim 3 or a decoding apparatus according to claim 4, characterized by comprising the following features:
the first maximum is an integer between 4 and 12;
the second maximum is an integer between 4 and 12.
9. A decoding method according to claim 3 or a decoding apparatus according to claim 4, characterized by comprising one or any combination of the following features:
feature 1:
when the reference image is the current image, at least from the followingHmvpIbcCandListWherein the predetermined number K is selected in a predetermined manner 1 HmvpIBcCandList [ i ]]Put into a block vector candidate list for block vector predictionbvCandList={bvCandList[j], 0 ≤ j ≤ J 1 -1}, from thebvCandListSelecting a block vector bvCandList [ mvIdx ]]Block vector predictor as the current block vector, where J 1 Is thatbvCandListMotion vectors stored thereinNumber of amounts, J 1 Less than or equal to a predetermined maximum, mvIdx satisfying 0.ltoreq.mvIdx.ltoreq.J 1 -1;
When the reference image is a non-current image, at least from the followingHmvpCandListWherein the predetermined number K is selected in a predetermined manner 2 HmvpCANdList [ i ]]Put into a merge candidate list for motion vector predictionmergeCandList={mergeCandList[j], 0 ≤ j ≤ J 2 -1}, from themergeCandListSelecting a motion vector mergeCandList [ merge_idx ]]A motion vector predictor as the current motion vector, wherein J 2 Is thatmergeCandListThe number of motion vectors stored in J 2 Less than or equal to a predetermined maximum, with merge_idx satisfying 0.ltoreq.merge_idx.ltoreq.J 2 -1;
Feature 2:
on the basis of the feature 1, the following features are also provided:
said mvIdx being present in or derived from at least part or all of said motion vector predictor representing a current motion vector;
the merge_idx is present in or derived from at least part or all of the motion vector predictor representing the current motion vector;
feature 3:
on the basis of the feature 1, the following features are also provided:
the predetermined maximum value is an integer between 4 and 16.
10. A decoding method according to claim 3 or a decoding apparatus according to claim 4, characterized by comprising one or any combination of the following features:
Feature 1:
the saidHmvpIbcCandListThe constituent components of the element of (a) include at least a horizontal component and a vertical component of the block vector;
the saidHmvpCandListComprises at least a horizontal component, a vertical component of one or two motion vectors, a reference index indicating which frame of image in the reference image queue the reference image is, and at most one bi-predictive CU hierarchy weight;
feature 2:
the saidHmvpIbcCandListAnd/orHmvpCandListReset to an empty set at the time of starting decoding of one frame image;
feature 3:
the saidHmvpIbcCandListAnd/orHmvpCandListReset to an empty set at the moment decoding of one slice is started;
feature 4:
when a new motion vector is obtained in decoding, the new motion vector is updated according to a first predetermined schemeHmvpIbcCandList
Updating according to a second predetermined scheme when a new motion vector is obtained in decoding where a reference picture is not the current pictureHmvpCandList
Feature 5:
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) delete the saidHmvpIbcCandListA motion vector which is identical to the new motion vector and moves forward by one position all following the new motion vector, 3) when the new motion vector is detected HmvpIbcCandListWhen the space in the motion vector is full, moving out the motion vector which is put in first according to the rule of first in first out, moving forward all the rest motion vectors by one position and moving 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) delete the saidHmvpCandListA motion vector which is identical to the new motion vector and moves forward by one position all following the new motion vector, 3) when the new motion vector is detectedHmvpCandListWhen the space in the space is full, the first-in motion vector is moved out according to the rule of first-in first-out, and the rest motion vectors are moved outMove forward one position and move into the new motion vector.
CN202211585709.3A 2018-09-22 2019-09-23 Image compression method and device for special historical nearest motion vector prediction candidate set Pending CN116193127A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN2018111108200 2018-09-22
CN201811110820 2018-09-22
CN201910901050.XA CN110944190B (en) 2018-09-22 2019-09-23 Encoding method and device, decoding method and device for image compression

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201910901050.XA Division CN110944190B (en) 2018-09-22 2019-09-23 Encoding method and device, decoding method and device for image compression

Publications (1)

Publication Number Publication Date
CN116193127A true CN116193127A (en) 2023-05-30

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 Before (1)

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

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

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2169507T3 (en) * 1997-03-14 2002-07-01 Telecom Italia Lab Spa CIRCUIT FOR ESTIMATION OF MOVEMENT IN DIGITALIZED VIDEO SEQUENCES CODERS.
US10362330B1 (en) * 2018-07-30 2019-07-23 Tencent America LLC Combining history-based motion vector prediction and non-adjacent merge prediction
GB2585021A (en) * 2019-06-24 2020-12-30 Canon Kk Video coding and decoding
CN110213590B (en) * 2019-06-25 2022-07-12 浙江大华技术股份有限公司 Method and equipment for acquiring time domain motion vector, inter-frame prediction and video coding

Also Published As

Publication number Publication date
CN110944190B (en) 2023-01-10
CN110944190A (en) 2020-03-31

Similar Documents

Publication Publication Date Title
CN116193127A (en) Image compression method and device for special historical nearest motion vector prediction candidate set
JP6728249B2 (en) Image coding supporting block division and block integration
KR20130030181A (en) Method and apparatus for motion vector encoding/decoding using motion vector predictor
CN108235007B (en) Data compression method and device for each mode using different precision and same coding parameter
CN116320474A (en) Data compression method and device for selecting one of multiple motion vector candidate sets in coding mode
CN113163205B (en) Encoding and decoding method, device and equipment
CN107770527B (en) Data compression method and apparatus using neighboring encoding parameters and nearest encoding parameters
CN113709502A (en) Decoding method, encoding method, device, equipment and machine readable storage medium
CN111726632B (en) Encoding and decoding method, device and equipment
KR20140031974A (en) Image coding method, image decoding method, image coding device, image decoding device, image coding program, and image decoding program
KR20210001768A (en) Video encoding and decoding method and apparatus using complex motion information model

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