CN116320474A - Data compression method and device for selecting one of multiple motion vector candidate sets in coding mode - Google Patents

Data compression method and device for selecting one of multiple motion vector candidate sets in coding mode Download PDF

Info

Publication number
CN116320474A
CN116320474A CN202310131546.XA CN202310131546A CN116320474A CN 116320474 A CN116320474 A CN 116320474A CN 202310131546 A CN202310131546 A CN 202310131546A CN 116320474 A CN116320474 A CN 116320474A
Authority
CN
China
Prior art keywords
block
motion vector
sub
decoding
current
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
CN202310131546.XA
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 CN116320474A publication Critical patent/CN116320474A/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/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/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

The present invention provides a data compression method and apparatus using a plurality of motion vector candidate sets, which are associated with each other in a coding mode, and one of the plurality of candidate sets is selected as a current candidate set of a current data unit according to the coding mode of the current data unit when the current data unit is coded. Thus, there is no need to consume any number of bits to indicate which candidate set is selected, thereby improving coding efficiency.

Description

Data compression method and device for selecting one of multiple motion vector candidate sets in coding mode
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: 2019109018338
The invention of the original application creates the name: data compression method and apparatus using a plurality of candidate sets associated with coding parameters (names at the time of registering process: data compression coding method and apparatus, decoding method and decoding apparatus)
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.
A dataset is a collection of finite data (e.g., a one-dimensional data queue, a two-dimensional data file, a frame of an image, a video sequence, a transform domain, a transform block, multiple transform blocks, a three-dimensional scene, a sequence of continuously varying three-dimensional scenes) made up of samples (e.g., bytes, bits, pixels, pixel components, spatial sampling points, transform domain coefficients) of data, arranged in a spatial (one-dimensional, two-dimensional, or multi-dimensional) shape. When encoding (and correspondingly decoding) a data set, in particular a two-dimensional or more data set, the data set is typically divided into a number of subsets having a predetermined shape, called encoding blocks (from the decoding point of view, i.e. decoding blocks, collectively called codec blocks), and a block is encoded or decoded in a predetermined time sequence in units of codec 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 rectangle, but any reasonable other shape), it is necessary in many cases to divide it into finer cells (basic units), and to encode or decode cell by cell in a predetermined time sequence. The same type of encoding or decoding operation is typically performed on all samples within a primitive. At any one time, the primitive being encoded or decoded is referred to as the current primitive. The result of encoding a primitive is one or more encoding parameters that ultimately produce a compressed data stream containing the encoding parameters. Decoding a primitive is to parse the compressed data stream to obtain one or more coding parameters, and recover samples of reconstructed data from the one or more coding parameters.
Examples of primitives include codec blocks (the entire codec block serves as one primitive), sub-blocks of various shapes such as square or rectangular or triangular or trapezoidal, micro-blocks, strings, pixel strings, sample strings, index strings, lines, and the like.
The data and the data set related in the invention comprise the collected or generated original state data and the data set, also comprise the intermediate state data and the data set which are processed by a plurality of processes, and also comprise the coding parameter data and the data set 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 data compression is to mine the correlation between data units in various aspects of the hierarchy, and 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, matching data units, matched data units, predicted values, compensating values, reference values, etc.), to achieve the effect of lossless or lossy compression of the data.
One or more data units that may be used as prediction data units (also commonly referred to as reference data units, compensation data units, matched data units, predictors, compensation values, reference values, etc.) that have completed at least a portion of the codec operation constitute a prediction candidate set (also referred to as predictor candidate set or reference candidate set, etc.) simply candidate set. When a candidate set has multiple data units, predicting (also commonly referred to as matching, representing, compensating, approximating, etc.) a current data unit with a data unit in the candidate set requires an index (also commonly referred to as an address, index, etc.) to specify which data unit in the candidate set the predicted data unit is to the bottom.
In the prior art, in order to increase the number of predicted data units in order to facilitate the possibility of finding good predicted data units, thereby improving the compression effect, multiple candidate sets are often employed. However, on the other hand, the more candidate sets, the more bits are consumed to indicate which candidate set and which index value are selected as the predicted data unit of the current data unit, thereby affecting the compression effect and reducing the coding efficiency.
Disclosure of Invention
In order to solve this problem in data compression, the present invention provides a data compression method and apparatus using a plurality of candidate sets associated with each other with a specific coding parameter, the candidate sets being associated with each other with a specific coding parameter corresponding to a current data unit existing in a predetermined codec process, and selecting one of the plurality of candidate sets as a current candidate set of the current data unit according to a value of the specific coding parameter corresponding to the current data unit when the current data unit is encoded. Thus, there is no need to consume any number of bits to indicate which candidate set is selected, thereby improving coding efficiency.
The invention is primarily characterized in that it has a plurality of candidate sets associated with each other by a specific coding parameter, each current data unit corresponding to a value of a specific coding parameter, one of the plurality of candidate sets being selected as the current candidate set for said current data unit according to the value of the specific coding parameter.
The most basic characteristic feature of the coding method or device of the present invention is that when a current data unit is coded, one of a plurality of candidate sets is selected as the current candidate set of the current data unit according to the value of a specific coding parameter corresponding to the current data unit, and in at least the current candidate set, an optimal data unit is derived or selected as the predicted data unit of the current data unit according to a predetermined scheme, such as the number of consumed bits and/or the size of coding errors, and a compressed data code stream at least containing information representing the predicted data unit of the current data unit is generated. Fig. 1 is a schematic diagram of the encoding method or apparatus of the present invention.
The most basic characteristic technical feature of the decoding method or device of the present invention is to parse the compressed data code stream, obtain the information of the predicted data unit at least representing the current data unit, select one of a plurality of candidate sets as the current candidate set of the current data unit according to the value of the specific coding parameter corresponding to the current data unit, decode and obtain the predicted data unit of the current data unit according to the information of the predicted data unit of the current data unit in at least the current 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 a data compression encoding method or apparatus, comprising at least the steps or modules for performing the following functions and operations:
when a current data unit in an encoding block is encoded, one of a plurality of candidate sets is selected as a current candidate set for the current data unit at least according to a value of a specific encoding parameter corresponding to the current data unit, a data unit called a selected data unit is derived or selected as a predicted data unit (the predicted data unit is a selected data unit close to or identical to the current data unit) for the current data unit at least according to a predetermined scheme from at least the current candidate set, and a special case of the predicted data unit is an equivalent data unit (the equivalent data unit is a selected data unit identical to the current data unit), and a compressed data code stream containing at least part or all of information representing the predicted data unit of the current data unit is generated.
According to another aspect of the present invention, there is also provided a decoding method or apparatus for data compression, at least including steps or modules for performing the following functions and operations:
When decoding a current data unit in a decoding block, parsing the compressed data code stream, obtaining at least part or all of the information representing the predicted data unit of the current data unit, selecting one of a plurality of candidate sets as the current candidate set of the current data unit at least according to the value of a specific coding parameter corresponding to the current data unit, deriving or selecting a data unit called the selected data unit from at least the current candidate set at least according to a predetermined scheme as the predicted data unit of the current data unit (the predicted data unit is a selected data unit which is close to or identical to the current data unit), and a special case of the predicted data unit is an equivalent data unit (the equivalent data unit is a selected data unit which is identical to the current data unit).
From a first aspect, the present invention provides a method of encoding a data set and its data compression, characterized in that it comprises at least the following steps:
1) Selecting one of a plurality of candidate sets as a current candidate set of a current data unit in a coding block according to at least a value of a specific coding parameter corresponding to the current data unit when coding the current data unit;
2) Deriving or selecting a data unit called a selected data unit from at least the current candidate set, at least according to a predetermined scheme, as a predicted data unit of the current data unit (predicted data unit being a selected data unit that is close to or identical to the current data unit), a special case of predicted data unit being an equivalent data unit (equivalent data unit being a selected data unit that is identical to the current data unit);
3) A compressed data stream is generated containing at least some or all of the information representing the predicted data unit of the current data unit.
From a second aspect, the present invention provides a decoding method for compressing a data set and data thereof, characterized by comprising at least the steps of:
1) When decoding a current data unit in a decoding block, analyzing a compressed data code stream to obtain partial or all information of a predicted data unit at least representing the current data unit;
2) Selecting one of a plurality of candidate sets as a current candidate set for the current data unit based at least on a value of a particular coding parameter corresponding to the current data unit;
3) Deriving or selecting a data unit called a selected data unit from at least the current candidate set, at least according to a predetermined scheme, as a predicted data unit of the current data unit (predicted data unit is a selected data unit that is close to or identical to the current data unit), a special case of predicted data unit being an equivalent data unit (equivalent data unit is a selected data unit that is identical to the current data unit).
From a third aspect, the present invention provides an encoding device for compressing a data set and data thereof, comprising at least the following modules:
1) A current candidate set selection module for selecting one of a plurality of candidate sets as a current candidate set of a current data unit according to at least a value of a specific coding parameter corresponding to the current data unit when encoding the current data unit in one coding block;
2) A predicted data unit selection module that derives or selects a data unit called a selected data unit as a predicted data unit of the current data unit from at least the current candidate set according to at least a predetermined scheme (the predicted data unit is a selected data unit that is close to or identical to the current data unit), a special case of the predicted data unit being an equivalent data unit (the equivalent data unit is a selected data unit that is identical to the current data unit);
3) The compressed data code stream generating module generates a compressed data code stream containing at least part or all of the information representing the predicted data unit of the current data unit.
From a fourth aspect, the present invention provides a decoding device for compressing a data set and data thereof, comprising at least the following modules:
1) The compressed data code stream analysis module is used for analyzing the compressed data code stream when decoding one current data unit in one decoding block, and acquiring partial or all information of a predicted data unit at least representing the current data unit;
2) A current candidate set selection module that selects one of a plurality of candidate sets as a current candidate set for the current data unit based at least on a value of a particular coding parameter corresponding to the current data unit;
4) A predictive data unit decoding module derives or selects a data unit called a selected data unit as a predictive data unit of the current data unit from at least the current candidate set according to at least a predetermined scheme (the predictive data unit is a selected data unit that is close to or identical to the current data unit), and a special case of the predictive data unit is an equivalent data unit (the equivalent data unit is a selected data unit that is identical to the current data unit).
The invention is suitable for encoding and decoding of lossy data compression, and is also suitable for encoding and decoding of lossless data compression. The invention is applicable to the encoding and decoding of image data, and is also applicable to the encoding and decoding of any one-dimensional, two-dimensional or multi-dimensional data.
In the present invention, the data involved in the data compression includes one or a combination of the following types of data
1) One-dimensional data;
2) Two-dimensional data;
3) Multidimensional data;
4) An image;
5) A sequence of images;
6) Video;
7) A three-dimensional scene;
8) A sequence of continuously varying three-dimensional scenes;
9) A virtual reality scene;
10 Sequence of continuously changing virtual reality scenes
11 An image in the form of pixels;
12 Transform domain data of the image;
13 A set of bytes of two or more dimensions;
14 A set of bits that are two or more dimensions;
15 A set of pixels;
16 A set of pixel components.
In the present invention, in the case where data is generated from an image, a sequence of images, video, or the like, an encoded block or a decoded block is one encoded region or one 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 prediction block, a prediction sub-block, a sub-prediction block, a sub-region of a transformation unit TU and TU, a sub-transformation unit sub-TU, a transformation block, a transformation sub-block and a sub-transformation block.
In the present invention, the primitive includes one or a combination of the following cases: a codec block, a sub-region of a codec block, a sub-block, a micro-block, a string, a pixel string, a sample string, an index string, a line, etc., of various shapes such as a square or rectangle or triangle or trapezoid.
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.
Description of the embodiments
Further details or variations of the invention are set forth below.
Examples or variants 1
In the encoding method or apparatus or the decoding method or apparatus,
in inter coding of video codecs (including the case where the current picture is allowed to be used as a reference picture), the data units are motion vectors of the codec blocks or sub-blocks, comprising at least one two-dimensional vector (mv [0], mv [1 ]) representing the difference, i.e. offset, between the two-dimensional coordinates of the current block or sub-block in the picture in which it is located, i.e. the current picture, and the two-dimensional coordinates of the corresponding reference block or sub-block in the picture in which it is located, i.e. the reference picture;
The specific coding parameter is a reference picture index ref_idx of an inter-coded coding and decoding block or sub-block, and the reference picture index ref_idx represents a position or an address of a picture where the reference block or the sub-block is located, namely, a reference picture in a reference picture queue, namely, represents which frame picture of the reference block or the sub-block in the reference picture queue;
the candidate set is a historical latest motion vector predicted value candidate set and consists of motion vectors of a plurality of latest coded and decoded blocks or subblocks which are in an inter-frame coding mode and appear in the coding and decoding historical process according to the coding and decoding sequence;
the historical most recent motion vectors with the same set (i.e., one or more) of reference image index values form a historical most recent motion vector predictor candidate set;
the plurality of candidate sets are a plurality of historical latest motion vector predictor candidate sets respectively corresponding to a plurality of groups, wherein each group has one or a plurality of reference image index values.
Examples or variants 2
In the encoding method or apparatus or the decoding method or apparatus,
in inter coding of video codecs (including the case where the current picture is allowed to be used as a reference picture), the data units are motion vectors of the codec blocks or sub-blocks, comprising at least one two-dimensional vector (mv [0], mv [1 ]) representing the difference, i.e. offset, between the two-dimensional coordinates of the current block or sub-block in the picture in which it is located, i.e. the current picture, and the two-dimensional coordinates of the corresponding reference block or sub-block in the picture in which it is located, i.e. the reference picture;
The motion vector predictor of the motion vector of the inter-coded codec block or sub-block is from at least the merge 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
Some or all of the motion vectors belonging to a candidate set of historical most recent motion vector predictors corresponding to a selected set (i.e., one or more) of the particular reference image index values are referred to as historical most recent motion vectors;
the merging candidate list has MaxNumMergeCand candidate motion vector predicted values which are respectively represented by sequence numbers i from 0 to MaxNumMergeCand-1;
if the motion vector predictor with sequence number 0 is not the historical latest motion vector, the selected group of specific reference picture index values at least comprises the reference picture index of the motion vector predictor with sequence number 0, otherwise, the selected group of specific reference picture index values at least comprises 0.
Examples or variants 3
In the implementation of the encoding method or apparatus or the decoding method or apparatus described in variant 2,
the construction process of the merging candidate list at least comprises the following operations:
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, the non-repeated historical latest motion vector with the same reference image index value is put into the merging candidate list.
Examples or variants 4
In the implementation of the encoding method or apparatus or the decoding method or apparatus described in variant 2,
the construction process of the merging candidate list at least comprises the following operations:
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 the previous frame adaptation position is available and valid, the motion vector of said block or sub-block of the previous frame adaptation position is assigned a candidate motion vector predictor with sequence number i and sequence number i is incremented by one (only adapted to AMVP cand list),
if the upper left block or sub-block adjacent to the frame is available and valid, the motion vector of the upper left block or sub-block is assigned a 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,
and repeatedly assigning a motion vector among a candidate set of historical nearest motion vector predictors having at least a reference image index value equal to a reference image index value of a motion vector predictor having a sequence number of a predetermined constant (e.g., 0) to a candidate motion vector predictor having a sequence number i and adding one to the sequence number i in order until the sequence number i is equal to MaxNumMergeCand, 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 having been put in the merge candidate list in the construction process of the merge candidate list, i.e., the motion vector value and/or the reference image index value of the motion vector having a sequence number smaller than the sequence number in the merge candidate list.
Examples or variants 5
Implementation or variation 4 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 6
In the encoding method or apparatus or the decoding method or apparatus, when a candidate set has more than one element (i.e., data unit), the element of the candidate set is represented using the index Idx, and thus, the selected data unit is represented by one selected index.
Implementation or modification 7
In the encoding method or apparatus or the decoding method or apparatus,
the data unit is a motion vector of a coding and decoding block or a subblock in video coding and decoding, and at least comprises a two-dimensional vector (mv 0, mv 1) representing the difference, namely the offset, between the two-dimensional coordinates of the current block or subblock in the image where the current block or subblock is located, namely the current image, and the two-dimensional coordinates of the corresponding reference block or subblock in the image where the corresponding reference block or subblock is located, namely the reference image;
the predicted data unit is a motion vector predictor of the current motion vector;
the part or all of the information representing the predicted data unit of the current data unit is part or all of the information representing the motion vector predicted value of the current motion vector;
The specific coding parameter is coding mode of coding and decoding block or subblock, and its value at least includesIntra block copy pre-processing IBC prediction mode for short for Intra Block Copy predictionAndinter prediction, i.e. inter prediction mode
The candidate set is a historical nearest motion vector prediction candidate set, and consists of motion vectors of a plurality of nearest coded and decoded blocks or subblocks which adopt an inter-frame prediction mode and/or an IBC prediction mode and appear in a coding and decoding historical process according to a coding and decoding sequence, wherein the motion vectors of the coded and decoded blocks or subblocks which adopt the IBC prediction mode are also called block vectors, namely block vector is abbreviated as bv;
historical latest motion vectors with IBC prediction modes constitute an IBC historical latest motion vector prediction candidate setHmvpIbcCandList={HmvpIbcCandList[i], 0 ≤ i ≤ I 1 -1, whose elements, i.e. stored block vectors, are at least partially completeA block vector of a coded block or sub-block which is code operated and which at least meets a predetermined rule of a first kind, and which still further meets a selection condition of a first kind, wherein I 1 Is thatHmvpIbcCandListThe number of block vectors stored in I 1 Less than or equal to a predetermined first maximum value;
historical latest motion vector with inter-frame prediction mode constitutes inter-frame historical latest motion vector prediction candidate set HmvpCandList={HmvpCandList[i], 0 ≤ i ≤I 2 -1, the element of which, 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 a second kind, yet further meets a selection condition of the second kind, wherein I 2 Is thatHmvpCandListThe number of motion vectors stored in I 2 Less than or equal to a predetermined second maximum value;
the plurality of candidate sets areHmvpIbcCandListAndHmvpCandList
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,
at least from the coding mode when the coding mode is an IBC prediction modeHmvpIbcCandListWherein 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;
At least from the coding mode when the coding mode is inter prediction modeHmvpCandListWherein the predetermined number K is selected in a predetermined manner 2 HmvpCANdList [ i ]]Put into a merge candidate list for motion vector prediction mergeCandList={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 the historical 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 picture 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 historical 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 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 historical 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 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 historical 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,
when a reference picture is obtained in the codec Updating according to a first predetermined scheme when a new motion vector of a previous image is generatedHmvpIbcCandList
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 variation example 16 (an example of constructing and updating a historical recent motion vector prediction candidate set)
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 detectedHmvpCandListWhen 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.
Examples or variants 17
In the encoding method or apparatus or the decoding method or apparatus, the plurality of candidate sets are mutually different proper subsets of a total candidate set whose number of elements is greater than 1.
Implementation or modification 18
In the encoding method or apparatus or the decoding method or apparatus,
in video coding and decoding, when the prediction residual of a coding block or a subblock is subjected to main transformation to obtain a main transformation coefficient, the low-frequency part of the main transformation coefficient is often subjected to optional low-frequency transformation to obtain a final transformation coefficient. In order to improve coding efficiency, the low frequency transform usually selects a most suitable secondary transform positive matrix from a plurality of predetermined secondary transform positive matrices to perform the low frequency transform, or selects not to perform the low frequency transform (in this case, the transform coefficient is equal to the primary transform coefficient). For non-low frequency coefficients, no secondary transform is performed, i.e. the transform coefficients are equal to the primary transform coefficients. Accordingly, upon decoding, the reconstructed (also reconstructed) low frequency portion of the reconstructed (also reconstructed) transform coefficients of the decoded block or sub-block is subjected to an optional inverse low frequency transform to obtain reconstructed main transform coefficients. Accordingly, the inverse low frequency transform typically selects a corresponding secondary transform inverse matrix from a plurality of predetermined secondary transform inverse matrices to perform the inverse low frequency transform, or selects not to perform the inverse low frequency transform (in this case, the reconstructed primary transform coefficient is equal to the reconstructed transform coefficient). For non-low frequency coefficients, no secondary transform is performed, i.e. the reconstructed primary transform coefficients are equal to the reconstructed transform coefficients.
When a codec block or sub-block of size and shape m×n block, where m=m×l and n=n×l are integer multiples of L (L is typically 4), is transformed (forward or inverse), the m×n transform coefficients of the codec block or sub-block are typically divided into m×n coefficient sets, each of which consists of the l×l transform coefficients of an l×l minimum block. The coefficient group consisting of the leftmost upper corner l×l transform coefficients, whose group number is set to 0, is the lowest frequency part of the transform coefficients.
The data unit is a transformation matrix (including a transformation positive matrix and a transformation inverse matrix) used in the video encoding and decoding process of performing optional low-frequency transformation and inverse low-frequency transformation on the encoding and decoding block or sub-block;
the specific coding parameters at least comprise intra-frame prediction modes used by the coding and decoding blocks or the subblocks in a prediction stage, and the values of the specific coding parameters at least comprise integers from-14 to 83;
the plurality of candidate sets is K (K is typically less than 16) candidate sets: candidate set K, K is more than or equal to 0 and less than or equal to K-1;
the predicted data units are equivalent data units, i.e. the current transformation matrix is identical to the selected transformation matrix selected from the candidate set;
the part or all of the information representing the predicted data unit of the current data unit includes a reference to a low frequency transform index LowFreqSecTransIdxParameters of (2);LowFreqSecTransIdxa value of 0 indicates no low frequency transform;LowFreqSecTransIdxlow frequency transform for non-0 representation andLowFreqSecTransIdxthe value of (2) indicates which matrix within the current candidate set the selected transformation matrix is;
when a codec block or sub-block, which is a transform block or sub-block, has a non-zero non-upper left-most coefficient set, i.e. not only the upper left-most coefficient set has non-zero transform coefficients,LowFreqSecTransIdxis not present in the compressed data stream;
when (when)LowFreqSecTransIdxWhen not present in the compressed data stream,LowFreqSecTransIdxis defaulted to a default value of 0, i.e. no low frequency conversion is performed.
Implementation or modification 19
In implementing or modifying the encoding method or apparatus or the decoding method or apparatus of example 18, when the main transform uses no DCT-2 (also called DCT-II) and other types of transforms,LowFreqSecTransIdxis not present in the compressed data stream.
Implementation or modification 20
In implementing or modifying the encoding method or apparatus or the decoding method or apparatus of example 18, when the main transform uses an implicit transform selection,LowFreqSecTransIdxis not present in the compressed data stream.
Implementation or modification 21
In implementing or modifying the encoding method or apparatus or the decoding method or apparatus of example 18,
the range of intra prediction modes is divided into K mutually disjoint sub-ranges of values: the subvalue range K is more than or equal to 0 and less than or equal to K-1;
When the value of the intra prediction mode belongs to the sub-value range k, the candidate set k is selected as the current candidate set.
Implementation or modification 22
In implementing or modifying the encoding method or apparatus or the decoding method or apparatus of example 18,
the k=4;
the range of intra prediction modes is divided into 4 mutually disjoint sub-ranges of values:
the subvalue range 0 consists of the following integers: 0,1, 81, 82, 83,
the subvalue range 1 consists of the following integers: less than 0, more than or equal to 2 and less than or equal to 12, more than or equal to 56 and less than or equal to 80,
the subvalue range 2 consists of the following integers: 13 or more and 23 or less, 45 or more and 55 or less,
the subvalue range 3 consists of the following integers: 24 or more and 44 or less;
when the value of the intra prediction mode belongs to the sub-value range k, the candidate set k is selected as the current candidate set.
Implementation or modification 23
In implementing or modifying the encoding method or apparatus or the decoding method or apparatus of example 18,
the k=3;
the range of intra prediction modes is divided into 3 mutually disjoint sub-ranges of values:
the subvalue range 0 consists of the following integers: 0,1, 81, 82, 83,
The subvalue range 1 consists of the following integers: less than 0, more than or equal to 2 and less than or equal to 18, more than or equal to 50 and less than or equal to 80,
the subvalue range 2 consists of the following integers: 19 or more and 49 or less;
when the value of the intra prediction mode belongs to the sub-value range k, the candidate set k is selected as the current candidate set.
Implementation or modification 24
In implementing or modifying the encoding method or apparatus or the decoding method or apparatus of example 18,
the k=2;
the range of intra prediction modes is divided into 2 mutually disjoint sub-ranges of values:
the subvalue range 0 consists of the following integers: an even number of-14 or more and 34 or less, an odd number of 35 or less and 83 or less,
the subvalue range 1 consists of the following integers: an odd number of-14 or more and 34 or less, an even number of 35 or more and 83 or less;
when the value of the intra prediction mode belongs to the sub-value range k, the candidate set k is selected as the current candidate set.
Implementation or modification 25
In carrying out or modifying the encoding method or apparatus or the decoding method or apparatus described in examples 19 or 20 or 21 or 22 or 23 or 24,
each candidate set k is composed of two mutually exclusive subsets, subset k 1 And subset k 2 Composition;
the specific coding parameters also include at least the size of a codec block or sub-block;
dividing the value range of the size and shape of the coding and decoding block or the subblock as the transformation block into two mutually disjoint subblock value ranges: a sub-value range 1 and a sub-value range 2;
when the size of the coding and decoding block or the sub-block belongs to the sub-value range 1, selecting the subset k 1 As the current candidate set, the selected transformation matrix is selected from the subset k 1 Otherwise, select subset k 2 As the current candidate set, the selected transformation matrix is selected from the subset k 2
Implementation or modification 26
In the encoding method or apparatus or the decoding method or apparatus,
the data unit is a motion vector of a coding block or a sub-block which adopts an inter prediction mode in video coding and decoding and the reference image is not a current image, and 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 the sub-block in the image where the current block or the sub-block is located, namely the current image, and the two-dimensional coordinates of the corresponding reference block or the sub-block in the image where the corresponding reference block or the sub-block is located, namely the two-dimensional coordinates in the reference image, namely the offset;
the predicted data unit is a motion vector predictor of the current motion vector;
The part or all of the information representing the predicted data unit of the current data unit is part or all of the information representing the motion vector predicted value of the current motion vector;
the specific coding parameters at least comprise inter affine marks, merging triangular dividing marks and merging subblock dividing marks of the coding and decoding blocks or subblocks;
the plurality of candidate sets includes at least three candidate sets: a general merge candidate list, a sub-block merge candidate list, and a triangle merge candidate set;
allowing the general merge candidate list to be selected as a current candidate set if all three flags of the inter affine flag, the merge triangular partition flag, and the merge subblock partition flag are 0; otherwise, if the merge triangle division flag is 1 and both the inter affine flag and the merge sub-block division flag are 0, allowing the triangle merge candidate set to be selected as a current candidate set; otherwise, the subblock merge candidate list is allowed to be selected as the current candidate set.
Implementation or modification 27
In implementing or modifying the encoding method or apparatus or decoding method or apparatus of example 26,
the maximum value of the number of elements of the general merging candidate list in a frame of image is determined by the image parameter set or image header existing in the compressed data code stream Maximum number of merging candidate list elementsSyntax element specification;
when saidMaximum number of merging candidate list elementsWhen the value of the syntax element is 0, each slice header of the image has a maximum value of the number of elements of a general merging candidate list in a syntax element prescribing the slice in the compressed data code stream;
the maximum value of the element number of the sub-block merging candidate list in one frame image is determined by the image parameter set or the image header existing in the compressed data code streamMaximum value of number of sub-block merging candidate list elementsSyntax element specification;
when saidMaximum value of number of sub-block merging candidate list elementsEach slice header of the picture when the syntax element has a value of 0 and at least inter-affine is allowed to be used in the sequenceThere is a syntax element in the compressed data stream specifying a maximum value of the number of elements of the sub-block merging candidate list in the stripe;
the maximum value of the element number of the triangle merging candidate set in one frame image is obtained by the image parameter set or the image head existing in the compressed data code streamMaximum value of element number of triangle merging candidate setSyntax element specification;
when saidMaximum value of element number of triangle merging candidate set When the syntax element has a value of 0 and the maximum value of the number of elements in the sequence that allows the use of trigonometric prediction and the general merge candidate list is greater than or equal to 2, each slice header of the picture has a maximum value of the number of elements in the compressed data bitstream that one syntax element specifies the trigonometric merge candidate set in that slice.
Implementation or modification 28
In implementing or modifying the encoding method or apparatus or decoding method or apparatus of example 26,
the maximum value of the number of elements of the general merge candidate list in a frame of image is specified by the following syntax elements present in the image parameter set or image header of the compressed data stream:
pps_six_minus_max_num_merge_cand_plus1
when the value of pps_six_minus_max_num_merge_cand_plus1 is 0, each slice header of the picture has the following syntax elements in the compressed data stream that specify the maximum value of the number of elements of the general merge candidate list in the slice:
six_minus_max_num_merge_cand
the maximum value of the number of elements of the sub-block merging candidate list in a frame image is specified by the following syntax elements present in the image parameter set or image header of the compressed data stream:
pps_five_minus_max_num_subblock_merge_cand_plus1
when the value of pps_five_minus_max_num_sample_merge_cand_plus 1 is 0 and inter affine is allowed to be used in the sequence, each slice header of the picture has the following syntax elements in the compressed data stream that specify the maximum of the number of elements of the sub-block merge candidate list in that slice:
five_minus_max_num_subblock_merge_cand
The maximum value of the number of elements of the triangle merging candidate set in a frame image is specified by the following syntax elements present in the image parameter set or image header of the compressed data stream:
pps_max_num_merge_cand_minus_max_num_triangle_cand_minus1
when the value of pps_max_num_merge_merge_minus_max_num_triangularly_cand_minus1 is 0 and the maximum value of the number of elements of the general merge candidate list is greater than or equal to 2 in the sequence, each slice header of the image has the following syntax elements in the compressed data stream that specify the maximum value of the number of elements of the triangle merge candidate set in the slice:
max_num_merge_cand_minus_max_num_triangle_cand。
implementation or modification 29
In implementing or modifying the encoding method or apparatus or decoding method or apparatus of example 26,
the triangle merging candidate set is marked as triangulmergecand= { triangulmergecand [ I ], I is more than or equal to 0 and less than or equal to I-1}, wherein each element triangulmergecand [ I ] at least comprises a unidirectional motion vector triangulmergeMv 0[ I ];
the merging candidate list is generally expressed as mergeCandList [ J ], wherein, J is more than or equal to 0 and less than or equal to J-1}, and each element mergeCandList [ J ] at least comprises bidirectional motion vectors mergeMv0[ J ] and/or mergeMv1[ J ];
calculating j=j (i) from i using a predetermined map J (i); a special case of the predetermined mapping is j=i; another special case of the predetermined mapping is j=i+1; the predetermined map may also be defined by a predetermined map table;
TrianglemegeMergeMv 0[ i ] is derived from mergeMv0[ J ] and/or mergeMv1[ J ], where j=J (i), according to a predetermined rule.
Implementation or modification 30
In implementing or modifying the encoding method or apparatus or the decoding method or apparatus of example 29,
the predetermined rule for deriving triamclemegelgemv 0[ i ] from mergeMv0[ j ] and/or mergeMv1[ j ] includes deciding how to derive triamclemegelgemv 0[ i ] based on at least the parity of j and whether mergeMv0[ j ] and/or mergeMv1[ j ] are present.
Implementation or modification 31
In implementing or modifying the encoding method or apparatus or the decoding method or apparatus of example 29,
deriving the predetermined rule of triamclemegelgemv 0[ i ] from mergeMv0[ j ] and/or mergeMv1[ j ] comprises at least the following operations:
TriangleMergeMv0[ i ] derives or equals mergeMv0[ j ] from mergeMv0[ j ] when mergeMv0[ j ] is present if j is even, otherwise TriangleMergeMv0[ i ] derives or equals mergeMv1[ j ] from mergeMv1[ j ]:
if j is an odd number, triangleMergeMv0[ i ] is derived from or equal to mergeMv1[ j ] when mergeMv1[ j ] is present, otherwise TriangleMergeMv0[ i ] is derived from or equal to mergeMv0[ j ].
Implementation or modification 32
In implementing or modifying the encoding method or apparatus or the decoding method or apparatus described in examples 29 or 30 or 31,
The codec block or sub-block is divided into two triangles, so that two selected unidirectional motion vectors are derived or selected from the triangulmergecand candidate set, denoted as first unidirectional motion vector triangulmergemv 0[ i ], respectively 1 ]And a second unidirectional motion vector TriangleMerrgeMv 0[ i ] 2 ];
The first unidirectional motion vector TriangleMergemv0[ i ] 1 ]From mergeMv0[ j ]]And/or mergeMv1[ j ]]Derivation, where j=j 1 (i 1 );
The second unidirectional motion vector TriangleMergemv0[ i ] 2 ]Also from mergeMv0[ j ]]And/or mergeMv1[ j ]]Derivation, where j=j 2 (i 2 )。
Implementation or modification 33
In implementing or modifying the encoding method or apparatus or decoding method or apparatus of example 32,
map J 1 And J 2 The definition is as follows:
if i 2 < i 1 J is then 1 (i 1 ) = i 1 ,J 2 (i 2 ) = i 2 The method comprises the steps of carrying out a first treatment on the surface of the Otherwise, J 1 (i 1 ) = i 1 ,J 2 (i 2 ) = i 2 + 1。

Claims (10)

1. A method or apparatus for encoding data compression, comprising at least the steps or modules for performing the following functions or operations:
1) When a current motion vector of a coding block or a sub-block is coded in video coding, selecting one of a plurality of candidate sets as a current candidate set of the current motion vector at least according to a coding mode of the coding block or the sub-block;
the motion vector at least comprises a two-dimensional vector (mv 0, mv 1) representing the difference, i.e. the offset, between the two-dimensional coordinates of the current block or sub-block in the image in which it is located, i.e. the current image, and the two-dimensional coordinates of the corresponding reference block or sub-block in the image in which it is located, i.e. the reference image;
The coding mode at least comprises an Intra Block Copy prediction (Intra Block Copy prediction) IBC prediction mode and an inter prediction (inter prediction) mode;
the candidate set comprises a historical nearest motion vector prediction candidate set, and consists of motion vectors of a plurality of nearest coded blocks or subblocks which adopt an inter-frame prediction mode and/or an IBC prediction mode and appear in the coding history process according to a coding sequence, wherein the motion vectors of the coded blocks or subblocks adopting the IBC prediction mode are also called block vectors, namely block vectors, which are abbreviated as bv;
historical nearest motion vectors with IBC prediction mode constitute IBC historical nearest motion vector prediction candidate set hmvpibbccandlist = { hmvpibbccandlist [ i ]], 0 ≤ i ≤ I 1 -1, the element of which, 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 a first type of selection condition among the block vectors of the encoded blocks or sub-blocks which at least meet a predetermined rule of the first type, wherein I 1 Is the number of block vectors stored in HmvpIBcCandList, I 1 Less than or equal to a predetermined first maximum value;
historical nearest fortune with inter prediction modeMotion vector composition inter-frame history recent motion vector prediction candidate set hmvpc and list = { hmvpc and list [ i ] ], 0 ≤ i ≤I 2 -1, the element of which, 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 rules, wherein I 2 Is the number of motion vectors stored in HmvpCANdList, I 2 Less than or equal to a predetermined second maximum value;
the plurality of candidate sets includes hmvpibbccandlist and hmvpcndlist;
2) Deriving or selecting a motion vector from at least the current candidate set, at least according to a predetermined scheme, as a predictor for the current motion vector; the predetermined scheme at least comprises:
at least from the coding mode when the coding mode is an IBC prediction modeHmvpIbcCandListWherein 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 ]]As a predictor of 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, mvIdx satisfying 0.ltoreq.mvIdx.ltoreq.J 1 -1;
At least from the coding mode when the coding mode is inter prediction mode HmvpCandListWherein 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 ]]As a predictor of the current motion vector, where 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;
3) A compressed data stream is generated that contains at least some or all of the information representing or deriving the predicted value of the current motion vector.
2. A decoding method or decoding device for data compression, characterized in that it comprises at least the steps or modules that perform the following functions or operations:
1) When decoding a decoding block or sub-block in video decoding, analyzing a compressed data code stream to obtain partial or all information at least representing or deriving a predicted value of a current motion vector of the decoding block or sub-block;
2) Selecting one of a plurality of candidate sets as a current candidate set for the current motion vector based at least on an encoding mode of the decoding block or sub-block;
the motion vector at least comprises a two-dimensional vector (mv 0, mv 1) representing the difference, i.e. the offset, between the two-dimensional coordinates of the current block or sub-block in the image in which it is located, i.e. the current image, and the two-dimensional coordinates of the corresponding reference block or sub-block in the image in which it is located, i.e. the reference image;
The coding mode comprises at leastIntra Block Copy prediction, i.e. Intra Block Copy prediction, IBC prediction for short ModeAndinter prediction, i.e. inter prediction mode
The candidate set comprises a historical nearest motion vector prediction candidate set, and consists of motion vectors of a plurality of nearest decoding blocks or subblocks which adopt an inter-frame prediction mode and/or an IBC prediction mode and appear in a decoding historical process according to a decoding sequence, wherein the motion vectors of the decoding blocks or subblocks adopting the IBC prediction mode are also called block vectors, namely block vectors, which are abbreviated as bv;
historical latest motion vectors with IBC prediction modes constitute an IBC historical latest motion vector prediction candidate setHmvpIbcCandList={HmvpIbcCandList[i], 0 ≤ i ≤ I 1 -1, the element of which, i.e. the stored block vector, is a block vector which has completed at least part of the decoding operation and which still further satisfies a first type of selection condition among the block vectors of the decoded blocks or sub-blocks which at least meet a predetermined rule 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;
historical latest motion vector with inter-frame prediction mode constitutes inter-frame historical latest motion vector prediction candidate setHmvpCandList={HmvpCandList[i], 0 ≤ i ≤I 2 -1, the element of which, i.e. the stored motion vector, is a motion vector of a decoded block or sub-block which has completed at least part of the decoding operation and which at least meets a predetermined rule of a second kind, yet further meets a selection condition of the second kind, wherein I 2 Is thatHmvpCandListThe number of motion vectors stored in I 2 Less than or equal to a predetermined second maximum value;
the plurality of candidate sets includesHmvpIbcCandListAndHmvpCandList
3) Deriving or selecting a motion vector from at least the current candidate set, at least according to a predetermined scheme, as a predictor for the current motion vector; the predetermined scheme at least comprises:
at least from the coding mode when the coding mode is an IBC prediction modeHmvpIbcCandListWherein 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 ]]As a predictor of 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, mvIdx satisfying 0.ltoreq.mvIdx.ltoreq.J 1 -1;
At least from the coding mode when the coding mode is inter prediction modeHmvpCandListWherein 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 ]]As a predictor of the current motion vector, where 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。
3. The decoding method or decoding apparatus according to claim 2, wherein:
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 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.
4. The decoding method or decoding apparatus according to claim 2, wherein:
the first maximum is an integer between 4 and 12;
the second maximum is an integer between 4 and 12;
and/or
The predetermined maximum value is an integer between 4 and 16.
5. The decoding method or decoding apparatus according to claim 2, wherein:
The mvIdx being present in or derived from part or all of the information representing the predicted value of the current block vector;
and/or
The merge idx is present in or derived from at least part or all of the information representing the predicted value of the current motion vector.
6. The decoding method or decoding apparatus according to claim 2, wherein:
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 picture index indicating which frame of picture in the reference picture queue the reference picture is, and additionally allowing at most one bi-predictive CU level weight to be included.
7. The decoding method or decoding apparatus according to claim 2, wherein:
the saidHmvpIbcCandListAnd/orHmvpCandListReset to an empty set at the time of starting decoding of one frame image;
and/or
The saidHmvpIbcCandListAnd/orHmvpCandListReset to the empty set at the moment decoding of one slice is started.
8. The decoding method or decoding apparatus according to claim 2, wherein:
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
9. The decoding method or decoding apparatus according to claim 8, wherein:
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 equivalent to the new motion vector is included and the immediately following motion vector is advanced one bit3) when theHmvpIbcCandListWhen 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 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.
10. The decoding method or decoding apparatus according to any one of claims 2 to 9, characterized in that,
the decoding block is a decoding area of the image, and comprises at least one of the following: 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 sub-CU, a prediction unit PU, a sub-region of a PU, a sub-prediction unit sub-PU, a prediction block, a prediction sub-block, a sub-prediction block, a transform unit TU, a sub-region of a TU, a sub-transform unit sub-TU, a transform block, a transform sub-block, a sub-transform block;
the sub-blocks include one or a combination of the following: sub-regions of a decoded block, square or rectangular or triangular or trapezoidal sub-blocks, micro-blocks, strings, pixel strings, sample strings, index strings, lines.
CN202310131546.XA 2018-09-22 2019-09-23 Data compression method and device for selecting one of multiple motion vector candidate sets in coding mode Pending CN116320474A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201811110886X 2018-09-22
CN201811110886 2018-09-22
CN201910901833.8A CN110944178B (en) 2018-09-22 2019-09-23 Data compression encoding method and device, and data compression decoding method and device

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201910901833.8A Division CN110944178B (en) 2018-09-22 2019-09-23 Data compression encoding method and device, and data compression decoding method and device

Publications (1)

Publication Number Publication Date
CN116320474A true CN116320474A (en) 2023-06-23

Family

ID=69906114

Family Applications (4)

Application Number Title Priority Date Filing Date
CN202310131932.9A Pending CN117061769A (en) 2018-09-22 2019-09-23 Encoding method and encoding device, decoding method and decoding device for data compression
CN201910901833.8A Active CN110944178B (en) 2018-09-22 2019-09-23 Data compression encoding method and device, and data compression decoding method and device
CN202310131546.XA Pending CN116320474A (en) 2018-09-22 2019-09-23 Data compression method and device for selecting one of multiple motion vector candidate sets in coding mode
CN202310131931.4A Pending CN116320485A (en) 2018-09-22 2019-09-23 Data compression method and apparatus for selecting one of a plurality of low frequency transform matrix candidate sets

Family Applications Before (2)

Application Number Title Priority Date Filing Date
CN202310131932.9A Pending CN117061769A (en) 2018-09-22 2019-09-23 Encoding method and encoding device, decoding method and decoding device for data compression
CN201910901833.8A Active CN110944178B (en) 2018-09-22 2019-09-23 Data compression encoding method and device, and data compression decoding method and device

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202310131931.4A Pending CN116320485A (en) 2018-09-22 2019-09-23 Data compression method and apparatus for selecting one of a plurality of low frequency transform matrix candidate sets

Country Status (1)

Country Link
CN (4) CN117061769A (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11405628B2 (en) * 2020-04-06 2022-08-02 Tencent America LLC Method and apparatus for video coding
CN112055219B (en) * 2020-08-05 2021-08-31 浙江大华技术股份有限公司 String matching prediction method and device and computer readable 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
CN103370940B (en) * 2010-12-14 2016-10-12 M&K控股株式会社 Coding/decoding method with the motion picture of inter-frame forecast mode coding
WO2015120823A1 (en) * 2014-02-16 2015-08-20 同济大学 Image compression method and device using reference pixel storage space in multiple forms
US10027981B2 (en) * 2014-09-01 2018-07-17 Hfi Innovation Inc. Method of intra picture block copy for screen content and video coding
WO2017003063A1 (en) * 2015-06-28 2017-01-05 엘지전자(주) Method for processing image based on inter prediction mode and system therefor

Also Published As

Publication number Publication date
CN110944178A (en) 2020-03-31
CN116320485A (en) 2023-06-23
CN117061769A (en) 2023-11-14
CN110944178B (en) 2023-03-07

Similar Documents

Publication Publication Date Title
TWI669948B (en) Method and apparatus for encoding or decoding video data
JP6728249B2 (en) Image coding supporting block division and block integration
CN111819853B (en) Image block encoding device and image block encoding method
TWI556632B (en) Method and apparatus for arithmetic encoding of video, and method and apparatus for arithmetic decoding of video
TWI597975B (en) Apparatus for video decoding
TWI583183B (en) Image coding apparatus, image decoding apparatus, image encoding method, image decoding method, and recording medium
TWI520581B (en) Video decoding method
CN107734348B (en) Device for determining a context model
CN112369022A (en) Image encoding/decoding method and apparatus, and recording medium storing bit stream
CN116193127A (en) Image compression method and device for special historical nearest motion vector prediction candidate set
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
CN112771862A (en) Method and apparatus for encoding/decoding image by using boundary processing and recording medium for storing bitstream
CN105723709A (en) Method for encoding and decoding images, device for encoding and decoding images and corresponding computer programs
CN107770527B (en) Data compression method and apparatus using neighboring encoding parameters and nearest encoding parameters
CN114071140B (en) Decoding method, encoding method, device, equipment and machine readable storage medium
CN111131826A (en) Data compression method and device for fixed-length code unit containing multiple coding parameter variable-length codes
CN112672160B (en) Encoding and decoding method and device for fusing intra-frame block copy and string copy encoding parameters
CN112601086B (en) String length parameter hybrid coding and decoding method and device

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