Data compression method and apparatus for selecting one of multiple motion vector candidate sets in an encoding mode

By using the method of selecting the current data unit with candidate sets associated with specific encoding parameters, the bit consumption problem caused by multiple candidate sets is solved, and the encoding efficiency and data compression effect are improved.

CN116320474BActive Publication Date: 2025-07-29SHANGHAI TIANHE ELECTRONIC INFORMATION CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202310131546.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2018-09-22
Filing Date
2019-09-23
Publication Date
2025-07-29
Estimated Expiration
2039-09-23

AI Technical Summary

Technical Problem

In the prior art, the use of multiple candidate sets results in the need to consume more bits to indicate which candidate set is selected, affecting the encoding efficiency and reducing the data compression effect.

Method used

A multiple candidate sets associated with specific encoding parameters are adopted. During the encoding and decoding process, the candidate set is selected based on the specific encoding parameter value of the current data unit to avoid consuming the number of bits indicating which candidate set to be selected.

Benefits of technology

The encoding efficiency is improved, and the data compression effect is improved by selecting the optimal data unit as the prediction data unit.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure FT_1
    Figure FT_1
  • Figure FT_2
    Figure FT_2
Patent Text Reader

Abstract

The present invention provides a data compression method and apparatus using multiple motion vector candidate sets, which are correlated with each other in an encoding mode. When encoding and decoding a current data unit, one of the multiple candidate sets is selected as the current candidate set of the current data unit according to the encoding mode of the current data unit. In this way, no bits are consumed to represent which candidate set is selected, thereby improving the encoding efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the following original application:

[0002] Filing date of the original application: 2019-09-23

[0003] Application number of the original application: 2019109018338

[0004] Title of the invention-creation of the original application: Data compression method and apparatus using multiple candidate sets associated with coding parameters (title at the time of going through the registration formalities: Coding method and coding apparatus for data compression, decoding method and decoding apparatus) Technical field

[0005] The present invention relates to an encoding and decoding system for lossy or lossless compression of data, in particular, a method and apparatus for encoding and decoding image and video data. Background art

[0006] As human society enters the era of big data, cloud computing, mobile computing, cloud-mobile computing, ultra-high definition (4K) and extra-ultra-high definition (8K) video image resolution, 4G / 5G communication, and virtual reality, data compression with ultra-high compression ratio and extremely high quality for various data, including big data, image data, and video data, has become an essential technology.

[0007] A data set is a set of finite data composed of data sample values (such as: bytes, bits, pixels, pixel components, spatial sampling points, transform domain coefficients) arranged in a certain spatial (one-dimensional, two-dimensional, or multi-dimensional) shape (such as: a one-dimensional data queue, a two-dimensional data file, a frame of image, a video sequence, a transform domain, a transform block, multiple transform blocks, a three-dimensional scene, a sequence of continuously changing three-dimensional scenes). When encoding (and corresponding decoding) a data set, especially a two-dimensional or higher-dimensional data set, this data set is usually divided into several subsets with a predetermined shape, called encoding blocks (from the decoding perspective, also decoding blocks, collectively referred to as encoding and decoding blocks), and encoding or decoding is performed block by block in a predetermined time sequence with the encoding and decoding blocks as units. At any moment, the encoding block being encoded is called the current encoding block. At any moment, the decoding block being decoded is called the current decoding block. The current encoding block or the current decoding block is collectively referred to as the current encoding and decoding block or simply the current block. The sample value being encoded or decoded is called the current encoding sample value or the current decoding sample value, simply referred to as the current sample value.

[0008] For a coding / decoding block with a certain shape (not necessarily limited to a square or a rectangle, and can be any other reasonable shape), in many cases, it is necessary to divide it into finer primitives (basic units) and perform coding or decoding one primitive after another in a predetermined time order. For all the samples within a primitive, generally the same type of coding or decoding operation is performed. At any given moment, the primitive being coded or decoded is called the current primitive. The result of coding a primitive is one or more coding parameters, and finally a compressed data bitstream containing these coding parameters is generated. Decoding a primitive is to parse the compressed data bitstream to obtain one or more coding parameters and recover the reconstructed data samples from the one or more coding parameters.

[0009] Examples of primitives include coding / decoding blocks (the entire coding / decoding block as one primitive), sub-blocks of various shapes such as squares, rectangles, triangles, trapezoids, micro-blocks, strings, pixel strings, sample value strings, index strings, and lines.

[0010] The data and data sets involved in the present invention include the original state data and data sets collected or generated, as well as the intermediate state data and data sets after several processes, and also include the coding parameter data and data sets generated during the coding / decoding process, such as various coding modes, multi-dimensional or three-dimensional or two-dimensional motion vectors, matching lengths, etc.

[0011] One means of data compression is to explore the correlations between data units at various levels and in various aspects, and use data units commonly referred to as reference data units (also often called prediction data units, compensation data units, matching data units, matched data units, prediction values, compensation values, reference values, etc.) to match (also often called predict, represent, stand for, compensate, approximate, approach, etc.) the current data unit to achieve the effect of lossless or lossy data compression.

[0012] One or more data units that have completed at least part of the coding / decoding operation and can be used as prediction data units (also often called reference data units, compensation data units, matching data units, matched data units, prediction values, compensation values, reference values, etc.) form a prediction candidate set (also called a prediction value candidate set or a reference candidate set, etc.), abbreviated as a candidate set. When there are multiple data units in a candidate set, using one data unit in the candidate set to predict (also often called match, represent, stand for, compensate, approximate, approach, etc.) a current data unit requires an index (also often called an address, exponent, etc.) to specify which data unit in the candidate set the prediction data unit is.

[0013] In the prior art, in order to increase the number of prediction data units to facilitate increasing the possibility of finding good prediction data units, thereby improving the compression effect, multiple candidate sets are often used. On the other hand, the more candidate sets there are, the more bits are required to represent which candidate set and which index value are selected as the prediction data unit of the current data unit, thus affecting the compression effect and reducing the coding efficiency. Summary of the Invention

[0014] To solve this problem in data compression, the present invention provides a data compression method and apparatus using multiple candidate sets that are mutually associated with specific coding parameters. These candidate sets are mutually associated with a specific coding parameter that is predetermined and existing in the encoding and decoding processes and corresponds to a current data unit. When encoding or decoding the current data unit, one of the multiple candidate sets is selected 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. In this way, no bits are required to represent which candidate set is selected, thereby improving the coding efficiency.

[0015] The primary technical feature of the present invention is that there are multiple candidate sets mutually associated with specific coding parameters, and each current data unit corresponds to a value of a specific coding parameter. One of the multiple candidate sets is selected as the current candidate set of the current data unit according to the value of this specific coding parameter.

[0016] The most basic and unique technical feature of the encoding method or apparatus of the present invention is that when encoding the current data unit, one of the multiple candidate sets is selected 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. Among at least the current candidate set, according to a predetermined scheme, such as the amount of bits consumed and / or the size of the coding error, an optimal data unit is derived or selected as the prediction data unit of the current data unit, and a compressed data code stream containing at least information representing the prediction data unit of the current data unit is generated. Figure 1 is a schematic diagram of the encoding method or apparatus of the present invention.

[0017] The most basic and unique technical feature of the decoding method or apparatus of the present invention is to analyze the compressed data code stream, obtain at least information representing the prediction data unit of the current data unit, select one of the multiple 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, and decode to obtain the prediction data unit of the current data unit according to the information of the prediction data unit of the current data unit among at least the current candidate set. Figure 2 is a schematic diagram of the decoding method or apparatus of the present invention.

[0018] According to one aspect of the present invention, there is provided a coding method or apparatus for data compression, which at least includes steps or modules for performing the following functions and operations:

[0019] When encoding a current data unit in an encoding block, at least 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. From at least the current candidate set, according to at least a predetermined scheme, a data unit called a selected data unit is derived or selected as the predicted data unit of the current data unit (the predicted data unit is a selected data unit that is close to or exactly the same as the current data unit). A special case of the predicted data unit is an identical data unit (the identical data unit is a selected data unit that is exactly the same as the current data unit). Compressed data bitstream containing at least part or all of the information representing the predicted data unit of the current data unit is generated.

[0020] According to another aspect of the present invention, there is also provided a decoding method or apparatus for data compression, which at least includes steps or modules for performing the following functions and operations:

[0021] When decoding a current data unit in a decoding block, the compressed data bitstream is parsed to obtain at least part or all of the information representing the predicted data unit of the current data unit. At least 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. From at least the current candidate set, according to at least a predetermined scheme, a data unit called a selected data unit is derived or selected as the predicted data unit of the current data unit (the predicted data unit is a selected data unit that is close to or exactly the same as the current data unit). A special case of the predicted data unit is an identical data unit (the identical data unit is a selected data unit that is exactly the same as the current data unit).

[0022] From the first perspective, the present invention provides a coding method for compressing a data set and its data, which is characterized by at least including the following steps:

[0023] 1) When encoding a current data unit in an encoding block, at least 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;

[0024] 2) From at least the current candidate set, at least according to a predetermined scheme, derive or select a data unit called the selected data unit as the predicted data unit of the current data unit (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 is the equivalent data unit (the equivalent data unit is a selected data unit that is identical to the current data unit);

[0025] 3) Generate a compressed data bitstream that at least contains part or all of the information representing the predicted data unit of the current data unit.

[0026] From a second perspective, the present invention provides a decoding method for compressing a data set and its data, which is characterized by at least including the following steps:

[0027] 1) When decoding a current data unit in a decoding block, parse the compressed data bitstream to obtain part or all of the information representing the predicted data unit of the current data unit;

[0028] 2) At least according to the value of the specific coding parameter corresponding to the current data unit, select one of the multiple candidate sets as the current candidate set of the current data unit;

[0029] 3) From at least the current candidate set, at least according to a predetermined scheme, derive or select a data unit called the selected data unit as the predicted data unit of the current data unit (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 is the equivalent data unit (the equivalent data unit is a selected data unit that is identical to the current data unit).

[0030] From a third perspective, the present invention provides an encoding device for compressing a data set and its data, which is characterized by at least including the following modules:

[0031] 1) A current candidate set selection module, when encoding a current data unit in an encoding block, at least according to the value of the specific coding parameter corresponding to the current data unit, select one of the multiple candidate sets as the current candidate set of the current data unit;

[0032] 2) A predicted data unit selection module, from at least the current candidate set, at least according to a predetermined scheme, derive or select a data unit called the selected data unit as the predicted data unit of the current data unit (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 is the equivalent data unit (the equivalent data unit is a selected data unit that is identical to the current data unit);

[0033] 3) Compressed data bitstream generation module, which generates a compressed data bitstream containing at least partial or all information representing the predicted data unit of the current data unit.

[0034] From a fourth perspective, the present invention provides a decoding device for compressing a data set and its data, which is characterized by at least including the following modules:

[0035] 1) Compressed data bitstream parsing module, when decoding a current data unit in a decoding block, parses the compressed data bitstream to obtain at least partial or all information representing the predicted data unit of the current data unit;

[0036] 2) Current candidate set selection module, selects one of multiple candidate sets as the current candidate set of the current data unit at least according to the value of specific coding parameters corresponding to the current data unit;

[0037] 4) Predicted data unit decoding module, derives or selects a data unit called the selected data unit as the predicted data unit of the current data unit (the predicted data unit is a selected data unit close to or exactly the same as the current data unit) from at least the current candidate set according to at least a predetermined scheme. A special case of the predicted data unit is an equivalent data unit (the equivalent data unit is a selected data unit exactly the same as the current data unit).

[0038] The present invention is applicable to the encoding and decoding of lossy data compression, and is also equally applicable to the encoding and decoding of lossless data compression. The present invention is applicable to the encoding and decoding of image data, and is also equally applicable to the encoding and decoding of any one-dimensional, two-dimensional or multi-dimensional data.

[0039] In the present invention, the data involved in data compression includes one or a combination of the following types of data

[0040] 1) One-dimensional data;

[0041] 2) Two-dimensional data;

[0042] 3) Multi-dimensional data;

[0043] 4) Images;

[0044] 5) Sequences of images;

[0045] 6) Videos;

[0046] 7) Three-dimensional scenes;

[0047] 8) Sequences of continuously changing three-dimensional scenes;

[0048] 9) Virtual reality scenes;

[0049] 10) A sequence of continuously changing virtual reality scenes

[0050] 11) An image in pixel form;

[0051] 12) Transform domain data of the image;

[0052] 13) A set of bytes in two or more dimensions;

[0053] 14) A set of bits in two or more dimensions;

[0054] 15) A set of pixels;

[0055] 16) A set of pixel components.

[0056] In the present invention, in the case where the data is generated from an image, a sequence of images, a video, etc., an encoded block or a decoded block is an encoded area or a decoded area of an image, including at least one of the following: the entire image, a sub-image of the image, a slice, a tile, a macroblock, a largest coding unit (LCU), a coding tree unit (CTU), a coding unit (CU), a sub-region of the CU, a sub-coding unit (SubCU), a prediction unit (PU), a sub-region of the PU, a sub-prediction unit (SubPU), a prediction block, a sub-prediction block, a sub-prediction sub-block, a transform unit (TU), a sub-region of the TU, a sub-transform unit (SubTU), a transform block, a sub-transform block, a sub-transform sub-block.

[0057] In the present invention, the primitive includes one or a combination of the following cases: an encoding / decoding block, a sub-region of an encoding / decoding block, sub-blocks of various shapes such as a square, a rectangle, a triangle, a trapezoid, etc., a micro-block, a string, a pixel string, a sample value string, an index string, a line.

[0058] The technical features of the present invention are illustrated above through a number of specific examples. Those skilled in the art can easily understand other advantages and effects of the present invention from the content disclosed in this specification. The present invention can also be implemented or applied through other different specific implementation manners, and various details in this specification can also be modified or changed based on different viewpoints and applications without departing from the spirit of the present invention. BRIEF DESCRIPTION OF THE DRAWINGS

[0059] Figure 1 is a schematic diagram of an encoding method or device of the present invention.

[0060] Figure 2 is a schematic diagram of a decoding method or device of the present invention. EMBODIMENTS

[0061] The following are more implementation details or variants of the present invention.

[0062] Embodiment or Variant Example 1

[0063] In the encoding method or apparatus or decoding method or apparatus,

[0064] In inter-frame encoding of video coding and decoding (including the case where the current image is allowed to be used as a reference image), the data unit is a motion vector of an encoded / decoded block or sub-block, at least including 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 its corresponding image, i.e., the current image, and the two-dimensional coordinates of the corresponding reference block or sub-block in its corresponding image, i.e., the reference image.

[0065] The specific encoding parameter is the reference image index ref_idx of an encoded / decoded block or sub-block in inter-frame encoding, representing the position or address of the reference image, i.e., the image where the reference block or sub-block is located, in the reference image queue, that is, which frame image in the reference image queue the reference block or sub-block is in.

[0066] The candidate set is a candidate set of the historical most recent motion vector prediction values, which is composed of the motion vectors of several most recent encoded / decoded blocks or sub-blocks using the inter-frame encoding mode in the order of encoding and decoding in the encoding and decoding history.

[0067] The historical most recent motion vectors with the same set (i.e., one or several) of reference image index values form a candidate set of the historical most recent motion vector prediction values.

[0068] The multiple candidate sets are multiple candidate sets of the historical most recent motion vector prediction values respectively corresponding to multiple groups, where each group has one or several, of reference image index values.

[0069] Implementation or variation example 2

[0070] In the encoding method or apparatus or decoding method or apparatus,

[0071] In inter-frame encoding of video coding and decoding (including the case where the current image is allowed to be used as a reference image), the data unit is a motion vector of an encoded / decoded block or sub-block, at least including 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 its corresponding image, i.e., the current image, and the two-dimensional coordinates of the corresponding reference block or sub-block in its corresponding image, i.e., the reference image.

[0072] The motion vector prediction value of the motion vector of an encoded / decoded block or sub-block in inter-frame encoding comes from at least the merge candidate list mergeCandList.

[0073] The merge candidate list at least includes the following motion vectors as the motion vector prediction values of the current block's motion vector:

[0074] The motion vectors of spatially neighboring coded / decoded blocks or their sub-blocks in the same frame are also called spatially neighboring motion vectors.

[0075] and / or

[0076] The motion vectors of temporally neighboring coded / decoded blocks or their sub-blocks in the previous frame are also called temporally neighboring motion vectors.

[0077] and / or

[0078] Part or all of the motion vectors belonging to a candidate set of the most recent historical motion vector predictions corresponding to a selected group (i.e., one or several) of specific reference image index values are called the most recent historical motion vectors;

[0079] The merge candidate list has MaxNumMergeCand candidate motion vector predictions, which are respectively represented by the serial number i from 0 to MaxNumMergeCand - 1;

[0080] If the motion vector prediction with serial number 0 is not the most recent historical motion vector, the selected group of specific reference image index values includes at least the reference image index of the motion vector prediction with serial number 0, otherwise, the selected group of specific reference image index values includes at least 0.

[0081] Implementing or varying Embodiment 3

[0082] In the encoding method or device or decoding method or device described in Implementing and Varying Embodiment 2,

[0083] The construction process of the merge candidate list at least includes the following operations:

[0084] First, put the non-repeated spatially neighboring motion vectors into the merge candidate list,

[0085] Second, put the non-repeated temporally neighboring motion vectors into the merge candidate list,

[0086] Then, put the non-repeated most recent historical motion vectors with the same reference image index value into the merge candidate list.

[0087] Implementing or varying Embodiment 4

[0088] In the encoding method or device or decoding method or device described in Implementing and Varying Embodiment 2,

[0089] The construction process of the merge candidate list at least includes the following operations:

[0090] Initialize the serial number i to 0,

[0091] If the block or sub-block adjacent to the left in the same frame is available and valid, assign the motion vector of the left block or sub-block to the candidate motion vector prediction value with sequence number i and increment sequence number i by one.

[0092] If the block or sub-block adjacent to the above in the same frame is available and valid, assign the motion vector of the above block or sub-block to the candidate motion vector prediction value with sequence number i and increment sequence number i by one.

[0093] If the block or sub-block adjacent to the upper right in the same frame is available and valid, assign the motion vector of the upper right block or sub-block to the candidate motion vector prediction value with sequence number i and increment sequence number i by one.

[0094] If the block or sub-block adjacent to the lower left in the same frame is available and valid, assign the motion vector of the lower left block or sub-block to the candidate motion vector prediction value with sequence number i and increment sequence number i by one.

[0095] If the block or sub-block at the adaptive position in the previous frame is available and valid, assign the motion vector of the block or sub-block at the adaptive position in the previous frame to the candidate motion vector prediction value with sequence number i and increment sequence number i by one (only applicable to the AMVP cand list).

[0096] If the block or sub-block adjacent to the upper left in the same frame is available and valid, assign the motion vector of the upper left block or sub-block to the motion vector prediction value with sequence number i and increment sequence number i by one.

[0097] If the block at the same position in the previous frame is available and valid, assign the motion vector of the block at the same position in the previous frame to the candidate motion vector prediction value with sequence number i and increment sequence number i by one.

[0098] Repeatedly assign the motion vectors in the candidate set of the most recent motion vector predictions with reference image index values that are at least equal to the reference image index value of the motion vector prediction value with a predetermined constant (such as 0) as the sequence number, as long as their motion vector values and / or reference image index values are not equal to the motion vector values and / or reference image index values of the motion vectors that have been placed in the merge candidate list during the construction of the merge candidate list, that is, they do not repeat the motion vector values and / or reference image index values of the motion vectors with smaller sequence numbers in the merge candidate list, and assign them to the candidate motion vector prediction value with sequence number i in order and increment sequence number i by one until sequence number i is equal to MaxNumMergeCand.

[0099] Implement or vary Example 5

[0100] In the encoding method or apparatus or decoding method or apparatus described in Embodiment or Variation 4, "useful" is defined as the block or sub-block existing, having completed at least a portion of the encoding and decoding operations, and being adjacent to the current block in the same frame and within the same slice, while "valid" is defined as one or a combination of the following:

[0101] 1) With motion vector,

[0102] 2) having a motion vector and its motion vector value and / or reference image index value is not equal to the motion vector value and / or reference image index value of the motion vector that has been placed in the merge candidate list during the construction of the merge candidate list, that is, it does not overlap with the motion vector value and / or reference image index value of the motion vector with a smaller sequence number in the merge candidate list,

[0103] 3) Using coding modes with at least one motion vector, including: inter prediction mode, inter prediction mode that allows using the current image as a reference image, intra block matching mode, intra block prediction mode, string matching mode, string prediction mode, microblock matching mode, microblock prediction mode, line matching mode, line prediction mode,

[0104] 3) have predetermined characteristics,

[0105] 4) meet the predetermined conditions,

[0106] 5) motion vectors of a predetermined type,

[0107] 6) having a motion vector whose value falls within a predetermined value range,

[0108] 7) A motion vector having a value outside a predetermined value range.

[0109] Implementation or Variation Example 6

[0110] In the encoding method or apparatus or the decoding method or apparatus, when a candidate set has more than one element (ie, data unit), an index Idx is used to represent the elements of the candidate set, and thus the selected data unit is represented by a selected index.

[0111] Implementation or Variation Example 7

[0112] In the encoding method or device or the decoding method or device,

[0113] The data unit is a motion vector of a codec block or sub-block in video codec, and includes at least one two-dimensional vector (mv[0], mv[1]) representing the difference (coordinates) 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;

[0114] The predicted data unit is the predicted value of the motion vector of the current motion vector;

[0115] 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 predicted value of the motion vector of the current motion vector;

[0116] The specific coding parameter is the coding mode of the coding and decoding block or sub-block, and its values at least include Intra Block Copy prediction i.e., Intra Block Copy prediction, abbreviated as IBC prediction mode and Inter prediction mode ;

[0117] The candidate set is the historical nearest motion vector prediction candidate set, which is composed of the motion vectors of the nearest several coding and decoding blocks or sub-blocks that adopt the inter-frame prediction mode and / or the IBC prediction mode in the coding and decoding history order. The motion vector of the coding and decoding block or sub-block that adopts the IBC prediction mode is also called the block vector, that is, the block vector is abbreviated as bv;

[0118] The historical nearest motion vectors with the IBC prediction mode form the IBC historical nearest motion vector prediction candidate set HmvpIbcCandList ={HmvpIbcCandList[i], 0 ≤ i ≤ I1 - 1}, and its elements, that is, the stored block vectors, are the block vectors that have completed at least part of the coding and decoding operations and at least meet the first type of predetermined rules and further meet the first type of selection conditions among the block vectors of the coding and decoding blocks or sub-blocks. Where I1 is HmvpIbcCandList the number of block vectors stored in

[0119] The historical nearest motion vectors with the inter-frame prediction mode form the inter-frame historical nearest motion vector prediction candidate set HmvpCandList ={HmvpCandList[i], 0 ≤ i ≤I2 - 1}, and its elements, that is, the stored motion vectors, are the motion vectors that have completed at least part of the coding and decoding operations and at least meet the second type of predetermined rules and further meet the second type of selection conditions among the motion vectors of the coding and decoding blocks or sub-blocks. Where I2 is HmvpCandList the number of motion vectors stored in

[0120] The multiple candidate sets are HmvpIbcCandList and HmvpCandList .

[0121] Implementation or variation example 8 (example of predetermined rules and selection conditions)

[0122] In the coding method or device or the decoding method or device described in implementation or variation example 7,

[0123] The first type of predetermined rules at least include that the coding mode of the coding block or sub-block that has completed at least part of the coding and decoding operations is Intra Block Copy prediction mode , and the first type of selection conditions at least include that the reference block or sub-block represented by the involved motion vector is within a predetermined reference range;

[0124] The second type of predetermined rules at least include that the coding mode of the coding block or sub-block that has completed at least part of the coding and decoding operations is Inter prediction mode , and the second type of selection conditions at least include that the reference block or sub-block represented by the involved motion vector is within a predetermined reference range.

[0125] Implement or variant example 9 (example of a predetermined maximum value)

[0126] In the coding method or device or decoding method or device according to Implement or variant example 7,

[0127] The first maximum value is an integer between 4 and 12;

[0128] The second maximum value is an integer between 4 and 12.

[0129] Implement or variant example 10 (example of a candidate list for motion vector prediction)

[0130] In the coding method or device or decoding method or device according to Implement or variant example 7,

[0131] When the coding mode is the IBC prediction mode, at least select a predetermined number K1 of HmvpIbcCandList[i] from the HmvpIbcCandList in a predetermined manner and put them into a block vector candidate list for block vector prediction bvCandList ={bvCandList[j], 0 ≤ j ≤ J1 - 1}, and then select a block vector bvCandList[mvIdx] from the bvCandList as the block vector prediction value of the current block vector, where J1 is bvCandList the number of motion vectors stored in the

[0132] When the coding mode is the inter prediction mode, at least select a predetermined number K2 of HmvpCandList[i] from the HmvpCandList in a predetermined manner and put them into a merge candidate list for motion vector prediction mergeCandList ={mergeCandList[j], 0 ≤ j ≤ J2 - 1}, and then select a block vector bvCandList[mvIdx] from the mergeCandListSelect a motion vector mergeCandList[merge_idx] from among them as the motion vector prediction value of the current motion vector, where J2 is mergeCandList the number of motion vectors stored therein, J2 is less than or equal to a predetermined maximum value (usually an integer between 4 and 16), and merge_idx satisfies 0 ≤ merge_idx ≤ J2−1.

[0133] Embodiment or Variation Example 11 (Example of Candidate List for Motion Vector Prediction)

[0134] In the encoding method or apparatus or decoding method or apparatus according to Embodiment or Variation Example 10,

[0135] the mvIdx exists in part or all of the information representing the motion vector prediction value of the current motion vector or is derived from at least part or all of the information representing the motion vector prediction value of the current motion vector;

[0136] the merge_idx exists in part or all of the information representing the motion vector prediction value of the current motion vector or is derived from at least part or all of the information representing the motion vector prediction value of the current motion vector.

[0137] Embodiment or Variation Example 12 (Example of Constituent Elements of Historical Nearest Motion Vector Prediction Candidate Set)

[0138] In the encoding method or apparatus or decoding method or apparatus according to Embodiment or Variation Example 7,

[0139] The HmvpIbcCandList constituent elements of at least include the horizontal component and the vertical component of the block vector;

[0140] The HmvpCandList constituent elements of at least include the horizontal component and the vertical component of one or two motion vectors, the reference image index indicating which frame image in the reference image queue the reference image is, and additionally include at most one bi-predictive CU-level weight.

[0141] Embodiment or Variation Example 13 (Example of Constructing and Updating Historical Nearest Motion Vector Prediction Candidate Set)

[0142] In the encoding method or apparatus or decoding method or apparatus according to Embodiment or Variation Example 7,

[0143] The HmvpIbcCandList and / or HmvpCandList is reset to an empty set at the moment of starting the encoding and decoding of a frame of image.

[0144] Embodiment or Variation Example 14 (Example of Constructing and Updating Historical Nearest Motion Vector Prediction Candidate Set)

[0145] In implementing or varying the encoding method or apparatus or decoding method or apparatus described in Example 7,

[0146] the HmvpIbcCandList and / or HmvpCandList is reset to an empty set at the moment of starting the encoding and decoding of a stripe.

[0147] Implementing or varying Example 15 (example of constructing and updating the historical most recent motion vector prediction candidate set)

[0148] In implementing or varying the encoding method or apparatus or decoding method or apparatus described in Example 7,

[0149] When a new motion vector whose reference image is the current image is obtained during encoding and decoding, it is updated according to a first predetermined scheme HmvpIbcCandList ;

[0150] When a new motion vector whose reference image is a non-current image is obtained during encoding and decoding, it is updated according to a second predetermined scheme HmvpCandList .

[0151] Implementing or varying Example 16 (example of constructing and updating the historical most recent motion vector prediction candidate set)

[0152] In implementing or varying the encoding method or apparatus or decoding method or apparatus described in Example 15,

[0153] The first predetermined scheme at least includes 1) the HmvpIbcCandList is a first-in-first-out buffer, i.e., a FIFO buffer, 2) deleting the motion vector in the HmvpIbcCandList that is identical to the new motion vector and moving the subsequent motion vectors forward by one position, 3) when the space in the HmvpIbcCandList is full, removing the motion vector that was put in first according to the first-in-first-out rule, moving the remaining motion vectors forward by one position and moving in the new motion vector;

[0154] The second predetermined scheme at least includes 1) the HmvpCandList is a first-in-first-out buffer, i.e., a FIFO buffer, 2) deleting the motion vector in the HmvpCandList that is identical to the new motion vector and moving the subsequent motion vectors forward by one position, 3) when the space in the HmvpCandList is full, removing the motion vector that was put in first according to the first-in-first-out rule, moving the remaining motion vectors forward by one position and moving in the new motion vector.

[0155] Implementing or varying Example 17

[0156] In the encoding method or apparatus or the decoding method or apparatus, the multiple candidate sets are distinct proper subsets of a total candidate set with an element number greater than 1.

[0157] Implement or vary Example 18

[0158] In the encoding method or apparatus or the decoding method or apparatus,

[0159] In video coding and decoding, during encoding, after obtaining main transform coefficients by performing a main transform on the prediction residual of an encoding block or sub-block, often an optional low-frequency transform is performed on the low-frequency part of the main transform coefficients to obtain final transform coefficients. To improve the encoding 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 coefficients are equal to the main transform coefficients). For non-low-frequency coefficients, no secondary transform is performed, that is, the transform coefficients are equal to the main transform coefficients. Correspondingly, during decoding, an optional inverse low-frequency transform is performed on the low-frequency part of the reconstructed (also called re-constructed) transform coefficients of the decoding block or sub-block to obtain reconstructed main transform coefficients. Correspondingly, the inverse low-frequency transform usually 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 main transform coefficients are equal to the reconstructed transform coefficients). For non-low-frequency coefficients, no secondary transform is performed, that is, the reconstructed main transform coefficients are equal to the reconstructed transform coefficients.

[0160] When performing a transform (forward transform or inverse transform) on an encoding / decoding block or sub-block with a size and shape of M×N block, where M = m×L and N = n×L are both integer multiples of L (L is usually 4), generally the M×N transform coefficients of the encoding / decoding block or sub-block are divided into m×n coefficient groups, and each coefficient group consists of L×L transform coefficients of a smallest L×L block. The coefficient group composed of the left-upper most L×L transform coefficients is the lowest-frequency part of the transform coefficients, and the group number of this left-upper most coefficient group is set to 0.

[0161] The data unit is a transform matrix (including a transform positive matrix and a transform inverse matrix) used for performing an optional low-frequency transform and an inverse low-frequency transform on an encoding / decoding block or sub-block in video coding and decoding;

[0162] The specific encoding parameter at least includes the intra prediction mode used by the encoding / decoding block or sub-block in the prediction stage, and its value at least includes integers from -14 to 83;

[0163] The multiple candidate sets are K (K is usually less than 16) candidate sets: candidate set k, 0 ≤ k ≤ K - 1;

[0164] The prediction data unit is an equivalent data unit, that is, the current transformation matrix is exactly the same as the selected transformation matrix selected from the candidate set;

[0165] Part or all of the information of the prediction data unit representing the current data unit includes a parameter denoted as the low-frequency transformation index LowFreqSecTransIdx ; LowFreqSecTransIdx Being 0 means no low-frequency transformation is performed; LowFreqSecTransIdx Being non-zero means a low-frequency transformation is performed and LowFreqSecTransIdx The value represents which matrix in the current candidate set the selected transformation matrix is;

[0166] When a coding block or sub-block that is a transform block or transform sub-block has a non-zero non-upper-leftmost coefficient group, that is, when not only the upper-leftmost coefficient group has non-zero transform coefficients, LowFreqSecTransIdx It does not exist in the compressed data bitstream;

[0167] When LowFreqSecTransIdx does not exist in the compressed data bitstream, LowFreqSecTransIdx it is defaulted to take the default value 0, that is, no low-frequency transformation is performed.

[0168] Implementation or variation example 19

[0169] In the encoding method or device or decoding method or device described in implementation or variation example 18, when the main transformation does not use DCT-2 (also known as DCT-II) but uses other types of transformations, LowFreqSecTransIdx it does not exist in the compressed data bitstream.

[0170] Implementation or variation example 20

[0171] In the encoding method or device or decoding method or device described in implementation or variation example 18, when the main transformation uses implicit multiple transformation selection, LowFreqSecTransIdx it does not exist in the compressed data bitstream.

[0172] Implementation or variation example 21

[0173] In the encoding method or device or decoding method or device described in implementation or variation example 18,

[0174] The value range of the intra prediction mode is divided into K non-overlapping sub-value ranges: sub-value range k, 0 ≤ k ≤ K - 1;

[0175] When the value of the intra prediction mode belongs to sub-value range k, candidate set k is selected as the current candidate set.

[0176] Implementation or variation example 22

[0177] In the encoding method or device or decoding method or device described in implementation or variation example 18,

[0178] K = 4;

[0179] The value range of the intra prediction mode is divided into 4 non - overlapping sub - value ranges:

[0180] Sub - value range 0 consists of the following integers: 0, 1, 81, 82, 83,

[0181] Sub - value range 1 consists of the following integers: less than 0, greater than or equal to 2 and less than or equal to 12, greater than or equal to 56 and less than or equal to 80,

[0182] Sub - value range 2 consists of the following integers: greater than or equal to 13 and less than or equal to 23, greater than or equal to 45 and less than or equal to 55,

[0183] Sub - value range 3 consists of the following integers: greater than or equal to 24 and less than or equal to 44;

[0184] When the value of the intra prediction mode belongs to sub - value range k, select candidate set k as the current candidate set.

[0185] Implement or vary Example 23

[0186] In the encoding method or device or decoding method or device described in Implement or vary Example 18,

[0187] K = 3;

[0188] The value range of the intra prediction mode is divided into 3 non - overlapping sub - value ranges:

[0189] Sub - value range 0 consists of the following integers: 0, 1, 81, 82, 83,

[0190] Sub - value range 1 consists of the following integers: less than 0, greater than or equal to 2 and less than or equal to 18, greater than or equal to 50 and less than or equal to 80,

[0191] Sub - value range 2 consists of the following integers: greater than or equal to 19 and less than or equal to 49;

[0192] When the value of the intra prediction mode belongs to sub - value range k, select candidate set k as the current candidate set.

[0193] Implement or vary Example 24

[0194] In the encoding method or device or decoding method or device described in Implement or vary Example 18,

[0195] K = 2;

[0196] The value range of the intra prediction mode is divided into 2 non - overlapping sub - value ranges:

[0197] The sub-value range 0 consists of the following integers: even numbers greater than or equal to -14 and less than or equal to 34, and odd numbers greater than or equal to 35 and less than or equal to 83.

[0198] The sub-value range 1 consists of the following integers: odd numbers greater than or equal to -14 and less than or equal to 34, and even numbers greater than or equal to 35 and less than or equal to 83;

[0199] When the value of the intra prediction mode belongs to the sub-value range k, select the candidate set k as the current candidate set.

[0200] Implementation or variation example 25

[0201] In the encoding method or device or decoding method or device described in implementation or variation example 19 or 20 or 21 or 22 or 23 or 24,

[0202] Each candidate set k consists of two non-overlapping subsets, subset k1 and subset k2;

[0203] The specific encoding parameter further includes at least the size of the encoding / decoding block or sub-block;

[0204] The value range of the size and shape of the encoding / decoding block or sub-block serving as the transform block is divided into two non-overlapping sub-value ranges: sub-value range 1 and sub-value range 2;

[0205] When the value of the size of the encoding / decoding block or sub-block belongs to the sub-value range 1, select subset k1 as the current candidate set, and the selected transform matrix is selected from subset k1; otherwise, select subset k2 as the current candidate set, and the selected transform matrix is selected from subset k2.

[0206] Implementation or variation example 26

[0207] In the encoding method or device or decoding method or device,

[0208] The data unit is the motion vector of the encoding / decoding block or sub-block that uses the inter prediction mode in video encoding / decoding and the reference image is not the current image, and at least includes 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 its image, i.e., the current image, and the two-dimensional coordinates of the corresponding reference block or sub-block in its image, i.e., the reference image;

[0209] The predicted data unit is the motion vector prediction value of the current motion vector;

[0210] 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 prediction value of the current motion vector;

[0211] The specific coding parameters at least include the inter-frame affine flag, merge triangular partition flag, and merge sub-block partition flag of the coding / decoding block or sub-block;

[0212] The multiple candidate sets at least include three candidate sets: the general merge candidate list, the sub-block merge candidate list, and the triangular merge candidate set;

[0213] If the three flags, i.e., the inter-frame affine flag, the merge triangular partition flag, and the merge sub-block partition flag, are all 0, it is allowed to select the general merge candidate list as the current candidate set; otherwise, if the merge triangular partition flag is 1 and the inter-frame affine flag and the merge sub-block partition flag are both 0, it is allowed to select the triangular merge candidate set as the current candidate set; otherwise, it is allowed to select the sub-block merge candidate list as the current candidate set.

[0214] Implementation or variation example 27

[0215] In the coding method or device or decoding method or device described in implementation or variation example 26,

[0216] The maximum value of the number of elements in the general merge candidate list in a frame of image is specified by the Maximum value of the number of elements in the general merge candidate list syntax element existing in the picture parameter set or picture header in the compressed data bitstream;

[0217] When the Maximum value of the number of elements in the general merge candidate list value of the syntax element is 0, each slice header of the image has a syntax element in the compressed data bitstream that specifies the maximum value of the number of elements in the general merge candidate list in that slice;

[0218] The maximum value of the number of elements in the sub-block merge candidate list in a frame of image is specified by the Maximum value of the number of elements in the sub-block merge candidate list syntax element existing in the picture parameter set or picture header in the compressed data bitstream;

[0219] When the Maximum value of the number of elements in the sub-block merge candidate list value of the syntax element is 0 and at least inter-frame affine is allowed in the sequence, each slice header of the image has a syntax element in the compressed data bitstream that specifies the maximum value of the number of elements in the sub-block merge candidate list in that slice;

[0220] The maximum value of the number of elements in the triangular merge candidate set in a frame of image is specified by the Maximum value of the number of elements in the triangular merge candidate set syntax element existing in the picture parameter set or picture header in the compressed data bitstream;

[0221] When the Maximum value of the number of elements in the triangular merge candidate setWhen the value of the syntax element is 0, triangular prediction is allowed in the sequence, and the maximum value of the number of elements in the general merge candidate list is greater than or equal to 2, each slice header of the picture has a syntax element in the compressed data bitstream that specifies the maximum value of the number of elements in the triangular merge candidate set in that slice.

[0222] Implementation or variation example 28

[0223] In the encoding method or apparatus or decoding method or apparatus described in Implementation or variation example 26,

[0224] The maximum value of the number of elements in the general merge candidate list in a picture is specified by the following syntax elements existing in the picture parameter set or picture header in the compressed data bitstream:

[0225] pps_six_minus_max_num_merge_cand_plus1

[0226] When the value of pps_six_minus_max_num_merge_cand_plus1 is 0, each slice header of the picture has the following syntax element in the compressed data bitstream that specifies the maximum value of the number of elements in the general merge candidate list in that slice:

[0227] six_minus_max_num_merge_cand

[0228] The maximum value of the number of elements in the sub-block merge candidate list in a picture is specified by the following syntax elements existing in the picture parameter set or picture header in the compressed data bitstream:

[0229] pps_five_minus_max_num_subblock_merge_cand_plus1

[0230] When the value of pps_five_minus_max_num_subblock_merge_cand_plus1 is 0 and inter-frame affine is allowed in the sequence, each slice header of the picture has the following syntax element in the compressed data bitstream that specifies the maximum value of the number of elements in the sub-block merge candidate list in that slice:

[0231] five_minus_max_num_subblock_merge_cand

[0232] The maximum value of the number of elements in the triangular merge candidate set in a picture is specified by the following syntax elements existing in the picture parameter set or picture header in the compressed data bitstream:

[0233] pps_max_num_merge_cand_minus_max_num_triangle_cand_minus1

[0234] When the value of pps_max_num_merge_cand_minus_max_num_triangle_cand_minus1 is 0 and triangular prediction is allowed in the sequence and the maximum value of the number of elements in the general merge candidate list is greater than or equal to 2, each slice header of the picture has the following syntax element in the compressed data bitstream to specify the maximum value of the number of elements in the triangular merge candidate set in the slice:

[0235] max_num_merge_cand_minus_max_num_triangle_cand.

[0236] Implementation or variation example 29

[0237] In the encoding method or apparatus or decoding method or apparatus described in Implementation or Variation Example 26,

[0238] The triangular merge candidate set is denoted as TriangleMergeCand = {TriangleMergeCand[i], 0 ≤ i ≤ I - 1}, where each element TriangleMergeCand[i] includes at least a unidirectional motion vector TriangleMergeMv0[i];

[0239] The general merge candidate list is denoted as mergeCandList = {mergeCandList[j], 0 ≤ j ≤ J - 1}, where each element mergeCandList[j] includes at least a bidirectional motion vector mergeMv0[j] and / or mergeMv1[j];

[0240] Calculate j = J(i) from i using a predetermined mapping 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 mapping can also be defined by a predetermined mapping table;

[0241] TriangleMergeMv0[i] is derived from mergeMv0[j] and / or mergeMv1[j], where j = J(i), according to a predetermined rule.

[0242] Implementation or variation example 30

[0243] In the encoding method or apparatus or decoding method or apparatus described in Implementation or Variation Example 29,

[0244] The predetermined rules for deriving TriangleMergeMv0[i] from mergeMv0[j] and / or mergeMv1[j] at least include determining how to derive TriangleMergeMv0[i] based on the parity of j and the existence of mergeMv0[j] and / or mergeMv1[j].

[0245] Implementation or variation example 31

[0246] In the encoding method or apparatus or decoding method or apparatus described in implementation or variation example 29,

[0247] The predetermined rules for deriving TriangleMergeMv0[i] from mergeMv0[j] and / or mergeMv1[j] at least include the following operations:

[0248] If j is even, when mergeMv0[j] exists, TriangleMergeMv0[i] is derived from mergeMv0[j] or equal to mergeMv0[j]; otherwise, TriangleMergeMv0[i] is derived from mergeMv1[j] or equal to mergeMv1[j].

[0249] If j is odd, when mergeMv1[j] exists, TriangleMergeMv0[i] is derived from mergeMv1[j] or equal to mergeMv1[j]; otherwise, TriangleMergeMv0[i] is derived from mergeMv0[j] or equal to mergeMv0[j].

[0250] Implementation or variation example 32

[0251] In the encoding method or apparatus or decoding method or apparatus described in implementation or variation example 29 or 30 or 31,

[0252] The encoding / decoding block or sub-block is divided into two triangles. Therefore, two selected uni-directional motion vectors are derived or selected from the triangular merge candidate set TriangleMergeCand, denoted as the first uni-directional motion vector TriangleMergeMv0[i1] and the second uni-directional motion vector TriangleMergeMv0[i2] respectively;

[0253] The first uni-directional motion vector TriangleMergeMv0[i1] is derived from mergeMv0[j] and / or mergeMv1[j], where j = J1(i1);

[0254] The second unidirectional motion vector TriangleMergeMv0[i2] is also derived from mergeMv0[j] and / or mergeMv1[j], where j = J2(i2).

[0255] Implementation or variation example 33

[0256] In the encoding method or apparatus or decoding method or apparatus described in implementation or variation example 32,

[0257] The mappings J1 and J2 are defined as follows:

[0258] If i2 < i1, then J1(i1) = i1 and J2(i2) = i2; otherwise, J1(i1) = i1 and J2(i2) = i2 + 1.

Claims

1. A decoding device for data compression, characterized in that Modules that at least perform the following functions or operations: 1) When decoding a decoding block or sub-block in video decoding, parse the compressed data stream to obtain at least part or all of the information representing or deriving the predicted value of the current motion vector of the decoding block or sub-block; 2) Select one of multiple candidate sets as the current candidate set of the current motion vector at least according to the coding mode of the decoding block or sub-block; The motion vector at least includes 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 its image, i.e., the current image, and the two-dimensional coordinates of the corresponding reference block or sub-block in its image, i.e., the reference image; The value range of the encoding mode includes at least Intra Block Copy prediction, abbreviated as IBC prediction Mode and Inter prediction mode ; The candidate set includes the historical nearest motion vector prediction candidate set, which consists of the motion vectors of the nearest several decoding blocks or sub-blocks that appear in the decoding order during the decoding history and adopt the inter prediction mode and / or the IBC prediction mode. The motion vector of a decoding block or sub-block adopting the IBC prediction mode is also called a block vector, i.e., block vector, abbreviated as bv; The historical recent motion vectors with the IBC prediction mode form an IBC historical recent motion vector prediction candidate set HmvpIbcCandList = {HmvpIbcCandList[i], 0 ≤ i ≤ I1 - 1}, where the stored block vectors are the block vectors of decoded blocks or sub-blocks that have completed at least part of the decoding operation and at least meet the first type of predetermined rules, and further meet the first type of selection conditions among them. Here, I1 is HmvpIbcCandList the number of block vectors stored in, and I1 is less than or equal to a predetermined first maximum value; The historical most recent motion vectors with an inter-frame prediction mode form an inter-frame historical most recent motion vector prediction candidate set HmvpCandList = {HmvpCandList[i], 0 ≤ i ≤ I2 - 1}, where the elements, i.e., the stored motion vectors, are the motion vectors of decoded blocks or sub-blocks that have completed at least part of the decoding operation and at least comply with the second type of predetermined rules and further satisfy the second type of selection conditions, where I2 is HmvpCandList the number of motion vectors stored therein, and I2 is less than or equal to a predetermined second maximum value; The multiple candidate sets include HmvpIbcCandList and HmvpCandList ; 3) Derive or select a motion vector as the predicted value of the current motion vector from at least the current candidate set at least according to a predetermined scheme; The predetermined scheme at least includes: When the coding mode is the IBC prediction mode, at least a predetermined number K1 of HmvpIbcCandList[i] are selected from the HmvpIbcCandList in a predetermined manner and put into a block vector candidate list for block vector prediction bvCandList ={bvCandList[j], 0 ≤ j ≤ J1 - 1}, and then a block vector bvCandList[mvIdx] is selected from the bvCandList as the predicted value of the current block vector, where J1 is the number of motion vectors stored in the bvCandList , J1 is less than or equal to a predetermined maximum value, and mvIdx satisfies 0 ≤ mvIdx ≤ J1 - 1; When the coding mode is an inter prediction mode, at least a predetermined number K2 of HmvpCandList[i] are selected from the following HmvpCandList in accordance with a predetermined manner and placed in a merge candidate list for motion vector prediction mergeCandList ={mergeCandList[j], 0 ≤ j ≤ J2 - 1}, and then a motion vector mergeCandList[merge_idx] is selected from the following mergeCandList as the predicted value of the current motion vector, where J2 is the number of motion vectors stored in the following mergeCandList , J2 is less than or equal to a predetermined maximum value, and merge_idx satisfies 0 ≤ merge_idx ≤ J2 - 1; The decoding block is a decoded area of an image, including at least one of the following: macroblock, largest coding unit (LCU), coding tree unit (CTU), coding unit (CU), sub-region of CU, sub-coding unit (SubCU), prediction unit (PU), sub-region of PU, sub-prediction unit (SubPU), prediction block, prediction sub-block, sub-prediction block, transform unit (TU), sub-region of TU, sub-transform unit (SubTU), transform block, transform sub-block, sub-transform block; The sub-block includes one or a combination of the following cases: sub-region of the decoding block, square or rectangular or triangular or trapezoidal sub-block, micro-block, string, pixel string, sample value string, index string, line.

Citation Information

Patent Citations

  • Encoding methods and devices for data compression, and decoding methods and devices

    CN110944178B