Image compression method and apparatus for dedicated history recent motion vector prediction candidate set

CN116193127BActive Publication Date: 2026-08-18SHANGHAI TIANHE ELECTRONIC INFORMATION CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202211585709.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2018-09-22
Filing Date
2019-09-23
Publication Date
2026-08-18
Estimated Expiration
2039-09-23

AI Technical Summary

Technical Problem

[0017]在现有技术中,仅有一个单一的历史最近运动矢量预测值候选集,并且其中的所有运动矢量,不管其对应的参考图像索引取什么值(表示帧间预测的参考像素在参考图像队列的哪一帧图像中),都不加区别地用于当前运动矢量的预测

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116193127B_ABST
    Figure CN116193127B_ABST
Patent Text Reader

Abstract

The present application provides an image compression method and device using special history recent motion vector prediction candidate sets, one history recent motion vector prediction candidate set is used for the case that the reference image is the current image, and at least one history recent motion vector prediction candidate set is used for the case that the reference image is not the current image, and different special history recent motion vector prediction candidate sets are suitable for different coding modes, so as to improve the coding 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] The original application was filed on September 23, 2019.

[0003] The original application number was 201910901050X.

[0004] The original invention application was titled: "Image Compression Method and Apparatus for Dedicated Historical Recent Motion Vector Prediction Candidate Set" (the name at the time of registration was: "Image Compression Encoding Method and Apparatus, Decoding Method and Apparatus"). Technical Field

[0005] This invention relates to an encoding and decoding system for lossy or lossless compression of data, particularly a method and apparatus for encoding and decoding image and video data. Background Technology

[0006] 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, and virtual reality, ultra-high compression ratio and extremely high quality data compression for various types of data, including big data, image data, and video data, has become an indispensable technology.

[0007] Images and videos are collections of finite data composed of pixel samples arranged in a certain spatial (one-dimensional, two-dimensional, or multi-dimensional) shape (e.g., a single image frame, a video sequence, a 3D scene, or a sequence of continuously changing 3D scenes). When encoding (and corresponding decoding) image data for compression, the image is typically divided into several subsets with predetermined shapes, called coded blocks (or decoded blocks from a decoding perspective, collectively referred to as code-decode blocks). Encoding or decoding is performed block by block, according to a predetermined time sequence. At any given moment, the coded block being encoded is called the current coded block. At any given moment, the decoded block being decoded is called the current decoded block. The current coded block or current decoded block is collectively referred to as the current code-decode block or simply the current block. The sample value being encoded or decoded is called the current coded sample value or current decoded sample value, or simply the current sample value.

[0008] For an encoding / decoding block with a certain shape (not necessarily limited to a square or rectangle, but can be any other reasonable shape), in many cases it is necessary to divide it into finer sub-blocks (not necessarily limited to a square or rectangle, but can be any other reasonable shape), and encode or decode one sub-block at a time according to a predetermined time sequence. The same type of encoding or decoding operation is usually performed on all samples within a sub-block. At any given moment, the sub-block being encoded or decoded is called the current sub-block. Encoding a sub-block results in one or more encoding parameters, ultimately producing a compressed data bitstream containing these encoding parameters. Decoding a sub-block involves parsing the compressed data bitstream to obtain one or more encoding parameters, and then reconstructing the reconstructed data samples from these one or more encoding parameters.

[0009] Examples of sub-blocks include codec blocks (the entire codec block is considered as a sub-block), square or rectangular or triangular or trapezoidal sub-blocks, micro-blocks, strings, pixel strings, sample strings, index strings, and lines.

[0010] The image data involved in this invention includes raw state image data acquired or generated, intermediate state data and datasets after several processing steps, and encoding parameter data and datasets generated during the encoding and decoding process, such as various encoding modes, multi-dimensional or three-dimensional or two-dimensional motion vectors, matching lengths, etc.

[0011] One method of image compression is to explore the correlation between data units at different levels and in different aspects of the image. Data units, which are usually called reference data units (also known as prediction data units, compensation data units, matching data units, matched data units, predicted values, compensation values, reference values, etc.), are used to match (also known as prediction, representation, representation, compensation, approximation, etc.) the current data units to achieve lossless or lossy data compression.

[0012] Motion vectors (MVs) are an important data unit in image compression. Using the motion vectors of codec blocks or sub-blocks that have completed at least part of the encoding / decoding process as motion vector prediction values ​​to predict a current motion vector (i.e., the motion vector currently being encoded / decoded) can effectively improve the coding efficiency of inter-frame coding. Possible sources of motion vector prediction values ​​include at least:

[0013] 1) In the same frame, also known as spatial neighboring, one or more motion vectors of a codec block that have completed at least part of the encoding and decoding operations are called adjacent motion vectors in the same frame.

[0014] 2) Pre-frame adjacent, also known as temporal adjacent, refers to one or more motion vectors of a codec block that have completed at least part of the encoding and decoding operations. These are called pre-frame adjacent motion vectors.

[0015] 3) The candidate set of the most recent historical motion vector prediction values ​​consists of the motion vectors of the most recent codec blocks that have completed at least part of the encoding and decoding operations in the encoding and decoding process and appear in the encoding and decoding order.

[0016] Each motion vector typically includes at least one horizontal component and one vertical component, and optionally includes a reference image index indicating which frame in the reference image queue the reference pixel is taken from. Therefore, each motion vector corresponds to a reference image frame, i.e., a reference block or sub-block, and the image containing its reference pixels.

[0017] In existing technologies, there is only a single candidate set of recently predicted historical motion vectors. All motion vectors within this set are used indiscriminately for predicting the current motion vector, regardless of the value of their corresponding reference image index (indicating which frame in the reference image queue the reference pixel for inter-frame prediction resides in). Therefore, this candidate set of recently predicted historical motion vectors is not efficient enough for various inter-frame coding scenarios, especially when the current image (i.e., the image containing the current block or sub-block) is allowed to be used as the reference image (i.e., the image containing the reference block or sub-block), thus impacting coding efficiency. Summary of the Invention

[0018] To address this problem in image compression, the present invention provides an image compression method and apparatus using a dedicated historical recent motion vector prediction candidate set. One historical recent motion vector prediction candidate set is mainly used when the reference image is the current image, and at least one other historical recent motion vector prediction candidate set is mainly used when the reference image is not the current image. Different dedicated historical recent motion vector prediction candidate sets are applicable to different situations of inter-frame coding, thereby improving coding efficiency.

[0019] The primary technical feature of this invention is that it has Current image reference dedicated history recent motion vector prediction candidate set and Non-current image reference dedicated history recent motion vector prediction candidate set These are mainly used when the reference image is the current image and when it is not the current image.

[0020] The most fundamental and unique technical feature of the encoding method or apparatus of the present invention is that, when encoding the current motion vector, i.e., the motion vector of the current block or sub-block, at least based on the likelihood that the reference image is or is not the current image, it uses... Current image reference dedicated history recent motion vector prediction candidate set or Non-current image reference dedicated history recent operation Dynamic vector prediction candidate set or The mixture of the two As Current historical recent motion vector prediction candidate setFrom at least the current historical recent motion vector prediction candidate set, at least according to predetermined evaluation rules, such as the number of bits consumed and / or the magnitude of the coding error, an optimal motion vector is selected as the predicted motion vector or motion vector prediction value of the current motion vector, and a compressed data bitstream containing at least some or all of the information representing the motion vector prediction value of the current motion vector is generated. Figure 1 This is a schematic diagram of the encoding method or apparatus of the present invention.

[0021] The most fundamental and unique technical feature of the decoding method or apparatus of the present invention is to parse the compressed data bitstream, obtain at least some or all of the information representing the predicted motion vector value of the current motion vector, and at least based on the probability that the reference image is or is not the current image, use... Current image reference dedicated history recent motion vector prediction candidate set or Non-current image Like a reference-specific history recent motion vector prediction candidate set or The mixture of the two As Current historical recent motion vector prediction Candidate set From at least the current historical recent motion vector prediction candidate set, the motion vector prediction value of the current motion vector is decoded based on some or all of the information of the motion vector prediction value of the current motion vector. Figure 2 This is a schematic diagram of the decoding method or apparatus of the present invention.

[0022] According to one aspect of the present invention, an encoding method or apparatus for image compression is provided, comprising at least the steps or modules that perform the following functions and operations:

[0023] When encoding a current motion vector within a coding block, at least based on the likelihood that the reference image is or is not the current image, the following is used: Current image reference dedicated history recent motion vector prediction candidate set or Non-current Image reference dedicated history recent motion vector prediction candidate set or The mixture of the two As Current historical recent motion vector Predicted candidate set From at least the current historical most recent motion vector prediction candidate set, based at least on predetermined evaluation rules,

[0024] Select a motion vector as the motion vector prediction value of the current motion vector.

[0025] or

[0026] A predetermined number of recent historical motion vectors are selected and placed into a candidate list for motion vector prediction. Then, a motion vector is selected from the candidate list as the motion vector prediction value of the current motion vector.

[0027] Generate a compressed data stream containing at least some or all of the information representing the predicted motion vector values ​​of the current motion vector.

[0028] According to another aspect of the present invention, a decoding method or apparatus for image compression is also provided, comprising at least the steps or modules that perform the following functions and operations:

[0029] When decoding a current motion vector within a decoding block, the compressed data stream is parsed to obtain at least some or all information representing the motion vector prediction value of the current motion vector, based at least on the likelihood that the reference image is or is not the current image. Current image reference dedicated history recent motion vector prediction candidate set or Non-current image Like a reference-specific history recent motion vector prediction candidate set or The mixture of the two As Current historical recent motion vector prediction Candidate set From at least the current historical most recent motion vector prediction candidate set, based at least on some or all of the information representing the motion vector prediction value of the current motion vector,

[0030] Select a motion vector as the motion vector prediction value of the current motion vector.

[0031] or

[0032] A predetermined number of recent historical motion vectors are selected and placed into a candidate list for motion vector prediction. Then, a motion vector is selected from the candidate list as the motion vector prediction value of the current motion vector.

[0033] And then decode to obtain the current motion vector itself.

[0034] From a first perspective, the present invention provides an encoding method for compressing images, characterized by comprising at least the following steps:

[0035] 1) When encoding a current motion vector within a coding block, at least based on the likelihood that the reference image is or is not the current image, use Current image reference dedicated history recent motion vector prediction candidate set or inappropriate Previous Image Reference Dedicated History Recent Motion Vector Prediction Candidate Set or The mixture of the two As Current history recent motion vector Quantitative prediction candidate set ;

[0036] 2) From at least the current historical most recent motion vector prediction candidate set, based at least on predetermined evaluation rules,

[0037] Select a motion vector as the motion vector prediction value of the current motion vector.

[0038] or

[0039] A predetermined number of recent historical motion vectors are selected and placed into a candidate list for motion vector prediction. Then, a motion vector is selected from the candidate list as the motion vector prediction value of the current motion vector.

[0040] 3) Generate a compressed data stream containing at least some or all of the information representing the predicted motion vector values ​​of the current motion vector.

[0041] From a second perspective, the present invention provides a decoding method for compressing images, characterized by comprising at least the following steps:

[0042] 1) When decoding a current motion vector in a decoding block, parse the compressed data stream to obtain at least some or all of the information representing the motion vector prediction value of the current motion vector;

[0043] 2) At least based on the likelihood that the reference image is or is not the current image, use Current image reference dedicated calendar Recent motion vector prediction candidate set or Non-current image reference dedicated history recent motion vector prediction candidate set or The mixture of the two As Current historical recent motion vector prediction candidate set ;

[0044] 3) From at least the current historical most recent motion vector prediction candidate set, based at least some or all of the information representing the motion vector prediction value of the current motion vector,

[0045] Select a motion vector as the motion vector prediction value of the current motion vector.

[0046] or

[0047] A predetermined number of recent historical motion vectors are selected and placed into a candidate list for motion vector prediction. Then, a motion vector is selected from the candidate list as the predicted motion vector value for the current motion vector.

[0048] And then decode to obtain the current motion vector itself.

[0049] From a third perspective, the present invention provides an encoding apparatus for compressing images, characterized by comprising at least the following modules:

[0050] 1) The current candidate set selection module, when encoding a current motion vector in a coding block, uses at least the likelihood that the reference image is or is not the current image to select the candidate set. Current image reference dedicated history recent motion vector Quantitative prediction candidate set or Non-current image reference dedicated history recent motion vector prediction candidate set or The mixture of the two As Current historical recent motion vector prediction candidate set ;

[0051] 2) The motion vector prediction value selection module selects the most recent historical motion vector prediction candidate set from at least the current historical data, based on at least a predetermined evaluation rule.

[0052] Select a motion vector as the motion vector prediction value of the current motion vector.

[0053] or

[0054] A predetermined number of recent historical motion vectors are selected and placed into a candidate list for motion vector prediction. Then, a motion vector is selected from the candidate list as the motion vector prediction value of the current motion vector.

[0055] 3) Compressed data stream generation module, which generates a compressed data stream containing at least some or all of the information representing the predicted value of the current motion vector.

[0056] From a fourth perspective, the present invention provides a decoding apparatus for compressing images, characterized by comprising at least the following modules:

[0057] 1) The compressed data stream parsing module parses the compressed data stream when decoding a current motion vector in a decoding block to obtain at least some or all of the information representing the motion vector prediction value of the current motion vector;

[0058] 2) The current candidate set selection module, based at least on the likelihood that the reference image is or is not the current image, uses... Current image reference dedicated history recent motion vector prediction candidate set or Non-current image reference dedicated history recent operation Dynamic vector prediction candidate set or The mixture of the two As Current historical recent motion vector prediction candidate set ;

[0059] 3) The motion vector prediction value decoding module, from at least the current historical most recent motion vector prediction candidate set, based at least some or all of the information representing the motion vector prediction value of the current motion vector,

[0060] Select a motion vector as the motion vector prediction value of the current motion vector.

[0061] or

[0062] A predetermined number of recent historical motion vectors are selected and placed into a candidate list for motion vector prediction. Then, a motion vector is selected from the candidate list as the predicted motion vector value for the current motion vector.

[0063] And then decode to obtain the current motion vector itself.

[0064] This invention is applicable to the encoding and decoding of lossy image compression, and it is also applicable to the encoding and decoding of lossless image compression.

[0065] In this invention, a coding block or a decoding block is a coding region or a decoding region 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 maximum coding unit (LCU), a coding tree unit (CTU), a coding unit (CU), a sub-region of a CU, a sub-coding unit (SubCU), a prediction unit (PU), a sub-region of a PU, a sub-prediction unit (SubPU), a transform unit (TU), a sub-region of a TU, and a sub-transform unit (SubTU).

[0066] In this invention, a sub-block includes one or a combination of the following: a codec block, a sub-region of a codec block, a square, rectangular, triangular, or trapezoidal sub-block, a micro-block, a string, a pixel string, a sample string, an index string, or a line.

[0067] The technical features of the present invention have been illustrated above through several 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 embodiments, 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. Attached Figure Description

[0068] Figure 1 This is a schematic diagram of the encoding method or apparatus of the present invention.

[0069] Figure 2 This is a schematic diagram of the decoding method or apparatus of the present invention. Detailed Implementation

[0070] The following are further implementation details or variations of the present invention.

[0071] Implementation or variant example 1 (an example of how to indicate the degree of possibility that the reference image is or is not the current image)

[0072] In the encoding method or apparatus or the decoding method or apparatus

[0073] The motion vector includes at least one two-dimensional vector (mv[0], mv[1]), which represents the difference between the two-dimensional coordinates of the current block or sub-block in the current image and the two-dimensional coordinates of the corresponding reference block or sub-block in the reference image, i.e., the offset.

[0074] Use one of the following two methods to indicate the likelihood that the reference image is or is not the current image:

[0075] Method 1:

[0076] The motion vector includes a reference image index ref_idx, which represents the index of the reference image in the reference image queue, that is, it represents which frame of the reference image queue the reference block or sub-block is in;

[0077] The value of the reference image index is equal to a predetermined value (usually the maximum value of the reference image index) indicating that the reference image is the current image;

[0078] The fact that the value of the reference image index is not equal to a predetermined value (usually the maximum value of the reference image index) indicates that the reference image is not the current image;

[0079] Method 2:

[0080] The current block or sub-block to which the motion vector belongs has a corresponding encoding mode;

[0081] When the encoding mode is Intra-block copy prediction, or IBC for short prediction mode When the reference image is the current image, the motion vector is also called the block vector, abbreviated as bv.

[0082] When the encoding mode is Inter-frame prediction, also known as inter-prediction mode At that time, the reference image is not the current image.

[0083] Implementation or variant example 2 (example of a candidate list for motion vector prediction)

[0084] In the encoding method or apparatus or the decoding method or apparatus

[0085] The predicted motion vector value of the current motion vector comes from at least the merged candidate list mergeCandList;

[0086] The merge candidate list includes at least the following motion vectors as predicted motion vector values ​​for the current block:

[0087] In-frame adjacency, also known as spatial adjacency, refers to the motion vectors of a codec block or its sub-blocks, which are called in-frame adjacency motion vectors.

[0088] and / or

[0089] The motion vectors of a codec block or its sub-blocks, also known as temporal neighboring, are called the previous frame neighboring motion vectors.

[0090] and / or

[0091] The current historical recent motion vector prediction candidate set includes some or all of the motion vectors.

[0092] Implementation or variant example 3 (two dedicated historical recent motion vector prediction candidate sets are two subsets of a common candidate set)

[0093] In the encoding method or apparatus or the decoding method or apparatus

[0094] The current image reference dedicated history recent motion vector prediction candidate set and the non-current image reference dedicated history recent motion vector prediction candidate set are different subsets of the same common history recent motion vector prediction candidate set, respectively called the current image reference dedicated subset and the non-current image reference dedicated subset. The motion vectors in the common history recent motion vector prediction candidate set are classified into the current image reference dedicated subset and the non-current image reference dedicated subset according to whether their reference image is the current image.

[0095] The current image reference subset and the non-current image reference subset are respectively a representation of the current image reference historical recent motion vector prediction candidate set and the non-current image reference historical recent motion vector prediction candidate set.

[0096] Implementation or variant example 4 (Example of the process for constructing a candidate list for motion vector prediction)

[0097] In the encoding method or apparatus or the decoding method or apparatus

[0098] The predicted motion vector value of the current motion vector comes from at least a merged candidate list;

[0099] The process of constructing the candidate list for merging includes at least one of the following three types of operations or a logical combination thereof:

[0100] The first type of operation applies to situations where the reference image is always not the current image, and includes at least the following:

[0101] First, non-repeating adjacent motion vectors within the same frame are added to the merging candidate list.

[0102] Next, the non-repeating adjacent motion vectors from the previous frame are added to the merging candidate list.

[0103] Then, some or all of the motion vectors from the non-repeating non-current image reference dedicated history recent motion vector prediction candidate set are added to the merged candidate list;

[0104] The second type of operation applies to situations where the reference image is always the current image, and includes at least:

[0105] First, non-repeating adjacent motion vectors within the same frame are added to the merging candidate list.

[0106] Then, some or all of the motion vectors from the current image reference dedicated history recent motion vector prediction candidate set that are not repeated are added to the merged candidate list;

[0107] The third type of operation applies to situations where the reference image may be the current image or a non-current image, and includes at least:

[0108] First, non-repeating adjacent motion vectors within the same frame are added to the merging candidate list.

[0109] Next, the non-repeating adjacent motion vectors from the previous frame are added to the merging candidate list.

[0110] Then, some or all of the motion vectors from the current image reference dedicated history recent motion vector prediction candidate set (which do not repeat) and some or all of the motion vectors from the non-current image reference dedicated history recent motion vector prediction candidate set are alternately placed into the merged candidate list.

[0111] Implementation or variant example 5 (Example of the process for constructing a candidate list for motion vector prediction)

[0112] In the encoding method or apparatus or the decoding method or apparatus

[0113] The predicted motion vector value of the current motion vector comes from at least a merged candidate list;

[0114] The merged candidate list has MaxNumMergeCand candidate motion vector prediction values, which are represented by the index i from 0 to MaxNumMergeCand-1 respectively;

[0115] The process of constructing the candidate list for merging includes at least one of the following three types of operations or a logical combination thereof:

[0116] The first type of operation applies to situations where the reference image is always not the current image, and includes at least the following:

[0117] Initialize the index i to 0.

[0118] If an adjacent left-hand block or sub-block in the same frame is available and valid, then the motion vector of the left-hand block or sub-block is assigned to the candidate motion vector prediction value with index i, and index i is incremented by one.

[0119] If an adjacent block or sub-block above in the same frame is available and valid, then the motion vector of the block or sub-block above is assigned to the candidate motion vector prediction value with index i, and index i is incremented by one.

[0120] If an adjacent upper-right block or sub-block in the same frame is available and valid, then the motion vector of the upper-right block or sub-block is assigned to the candidate motion vector prediction value with index i, and index i is incremented by one.

[0121] If an adjacent lower-left block or sub-block in the same frame is available and valid, then the motion vector of the lower-left block or sub-block is assigned to the candidate motion vector prediction value with index i, and index i is incremented by one.

[0122] If the block or sub-block at the adaptive position of the previous frame is available and valid, then the motion vector of the block or sub-block at the adaptive position of the previous frame is assigned to the candidate motion vector prediction value with index i, and index i is incremented by one.

[0123] If an adjacent upper-left block or sub-block in the same frame is available and valid, then the motion vector of the upper-left block or sub-block is assigned to the candidate motion vector prediction value with index i, and index i is incremented by one.

[0124] If a block at the same position in the previous frame is available and valid, then the motion vector of that block at the same position in the previous frame is assigned to the predicted value of the candidate motion vector with index i, and index i is incremented by one.

[0125] The motion vectors in the non-current image reference dedicated history recent motion vector prediction candidate set are repeatedly assigned to the candidate motion vector prediction value with the index i in sequence, as long as their motion vector value and / or reference image index value are not equal to the motion vector value and / or reference image index value of the motion vector that has been put into the merged candidate list during the construction of the merged candidate list, i.e., they do not repeat the motion vector value and / or reference image index value of the motion vector with a smaller index in the merged candidate list. The index i is incremented by one until the index i is equal to MaxNumMergeCand.

[0126] The second type of operation applies to situations where the reference image is always the current image, and includes at least:

[0127] Initialize the index i to 0.

[0128] If an adjacent left-hand block or sub-block in the same frame is available and valid, then the motion vector of the left-hand block or sub-block is assigned to the candidate motion vector prediction value with index i, and index i is incremented by one.

[0129] If an adjacent block or sub-block above in the same frame is available and valid, then the motion vector of the block or sub-block above is assigned to the candidate motion vector prediction value with index i, and index i is incremented by one.

[0130] If an adjacent upper-right block or sub-block in the same frame is available and valid, then the motion vector of the upper-right block or sub-block is assigned to the candidate motion vector prediction value with index i, and index i is incremented by one.

[0131] If an adjacent lower-left block or sub-block in the same frame is available and valid, then the motion vector of the lower-left block or sub-block is assigned to the candidate motion vector prediction value with index i, and index i is incremented by one.

[0132] If an adjacent upper-left block or sub-block in the same frame is available and valid, then the motion vector of the upper-left block or sub-block is assigned to the candidate motion vector prediction value with index i, and index i is incremented by one.

[0133] The motion vectors in the current image reference the recent motion vector prediction candidate set of the dedicated history are repeatedly assigned their motion vector values ​​and / or reference image index values ​​to the candidate motion vector prediction value of index i in sequence, as long as the 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 put into the merged candidate list during the construction of the merged candidate list, i.e., it does not repeat the motion vector value and / or reference image index value of the motion vector with a smaller index in the merged candidate list. The index i is incremented by one until the index i is equal to MaxNumMergeCand.

[0134] The third type of operation applies to situations where the reference image may be the current image or a non-current image, and includes at least:

[0135] Initialize the index i to 0.

[0136] If an adjacent left-hand block or sub-block in the same frame is available and valid, then the motion vector of the left-hand block or sub-block is assigned to the candidate motion vector prediction value with index i, and index i is incremented by one.

[0137] If an adjacent block or sub-block above in the same frame is available and valid, then the motion vector of the block or sub-block above is assigned to the candidate motion vector prediction value with index i, and index i is incremented by one.

[0138] If an adjacent upper-right block or sub-block in the same frame is available and valid, then the motion vector of the upper-right block or sub-block is assigned to the candidate motion vector prediction value with index i, and index i is incremented by one.

[0139] If an adjacent lower-left block or sub-block in the same frame is available and valid, then the motion vector of the lower-left block or sub-block is assigned to the candidate motion vector prediction value with index i, and index i is incremented by one.

[0140] If the block or sub-block at the adaptive position of the previous frame is available and valid, then the motion vector of the block or sub-block at the adaptive position of the previous frame is assigned to the candidate motion vector prediction value with index i, and index i is incremented by one.

[0141] If an adjacent upper-left block or sub-block in the same frame is available and valid, then the motion vector of the upper-left block or sub-block is assigned to the candidate motion vector prediction value with index i, and index i is incremented by one.

[0142] If a block at the same position in the previous frame is available and valid, then the motion vector of that block at the same position in the previous frame is assigned to the predicted value of the candidate motion vector with index i, and index i is incremented by one.

[0143] The motion vectors in the candidate set of the most recent motion vector prediction in the non-current image reference history and the candidate set of the most recent motion vector prediction in the current image reference history are repeatedly interleaved. As long as their motion vector value and / or reference image index value are not equal to the motion vector value and / or reference image index value of the motion vector that has been added to the merged candidate list during the construction of the merged candidate list, that is, they do not repeat the motion vector value and / or reference image index value of the motion vector with a smaller index in the merged candidate list, the predicted value of the candidate motion vector with index i is assigned sequentially and the index i is incremented by one, until the index i is equal to MaxNumMergeCand.

[0144] Implementation or variant example 6 (examples of the definitions of "useful" and "effective")

[0145] In the implementation or variation of Example 5, the encoding method or apparatus, or the decoding method or apparatus, is defined as "useful" when the block or sub-block exists, has completed at least part of the encoding / decoding operation, and is in the same stripe as the current block in the case of being adjacent in the same frame, while "effective" is defined as one or a combination of the following:

[0146] 1) It has a motion vector.

[0147] 2) It has a motion vector and its motion vector value and / or reference image index value are not equal to the motion vector value and / or reference image index value of the motion vector that has already been added to the merge candidate list during the construction of the merge candidate list, i.e., it does not repeat the motion vector value and / or reference image index value of the motion vector with a smaller sequence number in the merge candidate list.

[0148] 3) Employ coding modes with at least one motion vector, including: inter-frame prediction mode, inter-frame prediction mode that allows the current image to be used as a reference image, intra-frame block matching mode, intra-frame block prediction mode, string matching mode, string prediction mode, micro-block matching mode, micro-block prediction mode, line matching mode, and line prediction mode.

[0149] 3) Possesses predetermined characteristics.

[0150] 4) Meets the predetermined conditions.

[0151] 5) Has a motion vector of a predetermined type,

[0152] 6) A motion vector whose values ​​fall within a predetermined range.

[0153] 7) A motion vector whose value falls outside a predetermined range.

[0154] Implementation or variant example 7 (example of a dedicated historical recent motion vector prediction candidate set)

[0155] In the encoding method or apparatus or the decoding method or apparatus

[0156] The motion vector includes at least one two-dimensional vector (mv[0], mv[1]), which represents the difference between the two-dimensional coordinates of the current block or sub-block in the current image and the two-dimensional coordinates of the corresponding reference block or sub-block in the reference image, i.e., the offset.

[0157] The current block or sub-block to which the motion vector belongs has a corresponding encoding mode;

[0158] When the encoding mode is Intra-block copy prediction, or IBC for short prediction mode When the reference image is the current image, the motion vector is also called the block vector, abbreviated as bv.

[0159] When the encoding mode is Inter-frame prediction, also known as inter-prediction mode At that time, the reference image is not the current image;

[0160] The Current image reference dedicated history recent motion vector prediction candidate set HmvpIbcCandList ={HmvpIbcCandList[i], 0 ≤ i ≤ I1-1}, i.e., the stored block vectors, are block vectors that have completed at least partial encoding and decoding operations and at least conform to the first type of predetermined rules, and further satisfy the first type of selection conditions, where I1 is... HmvpIbcCandList The number of block vectors stored in I1 is less than or equal to a predetermined first maximum value;

[0161] The Non-current image reference dedicated history recent motion vector prediction candidate set HmvpCandList ={HmvpCandList[i], 0 ≤ i ≤ I2-1}, i.e., the stored motion vectors, are motion vectors that have completed at least partial encoding and decoding operations and at least conform to 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 in I2 is less than or equal to a predetermined second maximum value.

[0162] Implementation or variant example 8 (example of predefined rules and selection conditions)

[0163] In the implementation or variation of Example 7, the encoding method or apparatus, or the decoding method or apparatus,

[0164] The first type of predetermined rule includes at least the encoding mode of the encoding / decoding block or sub-block that has completed at least part of the encoding / decoding operation. Intra-block copy prediction mode The first type of selection condition includes at least that the reference block or sub-block represented by the motion vector involved is within a predetermined reference range;

[0165] The second type of predetermined rule includes at least the encoding mode of the encoding / decoding block or sub-block that has completed at least part of the encoding / decoding operation. Inter-frame prediction mode The second type of selection condition includes at least that the reference block or sub-block represented by the motion vector involved is within a predetermined reference range.

[0166] Implementation or variant example 9 (example of a predetermined maximum value)

[0167] In the implementation or variation of Example 7, the encoding method or apparatus, or the decoding method or apparatus,

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

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

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

[0171] In the implementation or variation of Example 7, the encoding method or apparatus, or the decoding method or apparatus,

[0172] When the reference image is the current image, at least from the... HmvpIbcCandList Following a predetermined method, a predetermined number K1 HmvpIbcCandList[i] are selected and placed into a block vector candidate list for block vector prediction. bvCandList ={bvCandList[j], 0 ≤ j ≤ J1-1}, then from the above bvCandList Select a block vector bvCandList[mvIdx] as the block vector prediction value of the current block vector, where J1 is... bvCandList The number of motion vectors stored in J1 is less than or equal to a predetermined maximum value (usually an integer between 4 and 16), and mvIdx satisfies 0 ≤ mvIdx ≤ J1-1;

[0173] When the reference image is not the current image, at least from the... HmvpCandList Following a predetermined method, a predetermined number K2 HmvpCandList[i] are selected and placed into a merged candidate list for motion vector prediction. mergeCandList={mergeCandList[j], 0 ≤ j ≤ J2-1}, then from the above mergeCandList Select a motion vector mergeCandList[merge_idx] as the predicted motion vector value of the current motion vector, where J2 is... mergeCandList The number of motion vectors stored in 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.

[0174] Implementation or variant example 11 (example of a candidate list for motion vector prediction)

[0175] In the implementation or variation of Example 10, the encoding method or apparatus or the decoding method or apparatus,

[0176] The mvIdx exists in some or all of the information representing the motion vector prediction value of the current motion vector or is derived from at least some or all of the information representing the motion vector prediction value of the current motion vector.

[0177] The merge_idx exists in some or all of the information representing the motion vector prediction value of the current motion vector, or is derived from at least some or all of the information representing the motion vector prediction value of the current motion vector.

[0178] Implementation or variant example 12 (example of the composition of elements in a candidate set of recent motion vector predictions based on historical data)

[0179] In the implementation or variation of Example 7, the encoding method or apparatus, or the decoding method or apparatus,

[0180] The HmvpIbcCandList The elements of the block vector consist of at least the horizontal and vertical components.

[0181] The HmvpCandList The elements of the CU consist of at least one or two horizontal and vertical components of motion vectors, a reference index indicating which frame in the reference image queue the reference image is, and at most one bidirectional prediction CU hierarchical weight.

[0182] Implementation or variant example 13 (Example of constructing and updating a dedicated historical recent motion vector prediction candidate set)

[0183] In the implementation or variation of Example 7, the encoding method or apparatus, or the decoding method or apparatus,

[0184] The HmvpIbcCandList and / or HmvpCandList It is reset to an empty set at the moment when the encoding and decoding of a frame begins.

[0185] Implementation or variant example 14 (Example of constructing and updating a dedicated historical recent motion vector prediction candidate set)

[0186] In the implementation or variation of Example 7, the encoding method or apparatus, or the decoding method or apparatus,

[0187] The HmvpIbcCandList and / or HmvpCandList It is reset to an empty set at the moment when a stripe encoding / decoding begins.

[0188] Implementation or variant example 15 (Example of constructing and updating a dedicated historical recent motion vector prediction candidate set)

[0189] In the implementation or variation of Example 7, the encoding method or apparatus, or the decoding method or apparatus,

[0190] When a reference image is obtained during encoding and decoding as a new motion vector for the current image, the image is updated according to the first predetermined scheme. HmvpIbcCandList ;

[0191] When a new motion vector is obtained in the reference image that is not the current image during encoding and decoding, the second predetermined scheme is updated. HmvpCandList .

[0192] Implementation or variant example 16 (Example of building and updating a dedicated historical recent motion vector prediction candidate set)

[0193] In the implementation or variation of Example 15, the encoding method or apparatus or the decoding method or apparatus,

[0194] The first predetermined scheme includes at least 1) the above HmvpIbcCandList It is a first-in-first-out (FIFO) buffer, 2) delete the above HmvpIbcCandList The motion vector that is identical to the new motion vector and all subsequent motion vectors are shifted forward by one position, 3) when the HmvpIbcCandList When the space inside is full, the first motion vector put in is removed according to the first-in-first-out rule, and the remaining motion vectors are moved forward one position and then moved into the new motion vector.

[0195] The second predetermined scheme includes at least 1) the above HmvpCandList It is a first-in-first-out (FIFO) buffer, 2) delete the above HmvpCandList The motion vector that is identical to the new motion vector and all subsequent motion vectors are shifted forward by one position, 3) when the HmvpCandList When the space inside is full, the first motion vector placed in is removed according to the first-in-first-out rule, and the remaining motion vectors are moved forward one position and moved into the new motion vector.

Claims

1. A video coding method that uses at least intra-block copying and inter-frame prediction, characterized in that... include: 1) When encoding a current motion vector in a coding block, at least the current image reference-specific history recent motion vector prediction candidate set and the non-current image reference-specific history recent motion vector prediction candidate set are used. At least depending on whether the reference image is the current image or not, the current image reference-specific history recent motion vector prediction candidate set or the non-current image reference-specific history recent motion vector prediction candidate set or a mixture of both are used as the current image recent motion vector prediction candidate set. Use at least the following methods to indicate whether a reference image is the current image or not: The current block or sub-block to which the motion vector belongs has a corresponding encoding mode; When the coding mode is Intra-Block Copy Prediction (IBC) mode, the reference image is the current image. In this case, the motion vector is also called the block vector, abbreviated as bv. When the coding mode is inter-frame prediction mode, the reference image is a non-current image; The elements of the current image reference dedicated history recent motion vector prediction candidate set HmvpIbcCandList = {HmvpIbcCandList[i], 0 ≤ i ≤ I1-1}, i.e. the stored block vectors, are block vectors of coded blocks or their sub-blocks that at least satisfy 1) have completed at least part of the coding operation and 2) have the coding mode of intra-block copy prediction mode, where I1 is the number of block vectors stored in HmvpIbcCandList, and I1 is less than or equal to a predetermined first maximum value, which is an integer between 4 and 12; The elements of the non-current image reference dedicated history recent motion vector prediction candidate set HmvpCandList = {HmvpCandList[i], 0 ≤ i ≤ I2 - 1}, i.e. the stored motion vectors, are motion vectors of coded blocks or their sub-blocks that at least satisfy 1) have completed at least part of the coding operation and 2) have the coding mode of inter-frame prediction mode, where I2 is the number of motion vectors stored in HmvpCandList, and I2 is less than or equal to a predetermined second maximum value, which is an integer between 4 and 12; 2) From at least the current historical most recent motion vector prediction candidate set, based at least on predetermined evaluation rules, A predetermined number of recent historical motion vectors are selected and placed into a candidate list for motion vector prediction. Then, a motion vector is selected from the candidate list as the motion vector prediction value of the current motion vector. One source of the motion vector prediction value of the current motion vector is the merged candidate list. 3) Generate a compressed data stream containing at least some or all of the information representing the predicted motion vector values ​​of the current motion vector.

2. A video coding apparatus that uses at least intra-block copying and inter-frame prediction, characterized in that... include: 1) The current candidate set selection module, when encoding a current motion vector in a coding block, uses at least the current image reference-specific history recent motion vector prediction candidate set and the non-current image reference-specific history recent motion vector prediction candidate set. At least depending on whether the reference image is the current image or not, the current image reference-specific history recent motion vector prediction candidate set or the non-current image reference-specific history recent motion vector prediction candidate set or a mixture of both are used as the current history recent motion vector prediction candidate set. Use at least the following methods to indicate whether a reference image is the current image or not: The current block or sub-block to which the motion vector belongs has a corresponding encoding mode; When the coding mode is Intra-Block Copy Prediction (IBC) mode, the reference image is the current image. In this case, the motion vector is also called the block vector, abbreviated as bv. When the coding mode is inter-frame prediction mode, the reference image is a non-current image; The elements of the current image reference dedicated history recent motion vector prediction candidate set HmvpIbcCandList = {HmvpIbcCandList[i], 0 ≤ i ≤ I1-1}, i.e. the stored block vectors, are block vectors of coded blocks or their sub-blocks that at least satisfy 1) have completed at least part of the coding operation and 2) have the coding mode of intra-block copy prediction mode, where I1 is the number of block vectors stored in HmvpIbcCandList, and I1 is less than or equal to a predetermined first maximum value, which is an integer between 4 and 12; The elements of the non-current image reference dedicated history recent motion vector prediction candidate set HmvpCandList = {HmvpCandList[i], 0 ≤ i ≤ I²-1}, i.e. the stored motion vectors, must at least satisfy 1) at least partial encoding operation has been completed and 2) the encoding mode is [missing information]. Inter-frame prediction mode The motion vector of the coded block or its sub-block, where I2 is the number of motion vectors stored in HmvpCandList, and I2 is less than or equal to a predetermined second maximum value, which is an integer between 4 and 12; 2) The motion vector prediction value selection module selects the most recent historical motion vector prediction candidate set from at least the current historical data, based on at least a predetermined evaluation rule. A predetermined number of recent historical motion vectors are selected and placed into a candidate list for motion vector prediction. Then, a motion vector is selected from the candidate list as the motion vector prediction value of the current motion vector. One source of the motion vector prediction value of the current motion vector is the merged candidate list. 3) Compressed data stream generation module, which generates a compressed data stream containing at least some or all of the information representing the predicted value of the current motion vector.

3. A decoding method that uses at least intra-frame block copying and inter-frame prediction, characterized in that... include: 1) When decoding a current motion vector in a decoding block, at least the current image reference dedicated history recent motion vector prediction candidate set and the non-current image reference dedicated history recent motion vector prediction candidate set are used to parse the compressed data bitstream and obtain at least some or all of the information representing the motion vector prediction value of the current motion vector. 2) At least depending on whether the reference image is the current image or not, use the current image reference-specific history recent motion vector prediction candidate set, or the non-current image reference-specific history recent motion vector prediction candidate set, or a mixture of both, as the current history recent motion vector prediction candidate set; Use at least the following methods to indicate whether a reference image is the current image or not: The current block or sub-block to which the motion vector belongs has a corresponding encoding mode; When the coding mode is Intra-Block Copy Prediction (IBC) mode, the reference image is the current image. In this case, the motion vector is also called the block vector, abbreviated as bv. When the coding mode is inter-frame prediction mode, the reference image is a non-current image; The elements of the current image reference dedicated history recent motion vector prediction candidate set HmvpIbcCandList = {HmvpIbcCandList[i], 0 ≤ i ≤ I1-1}, i.e. the stored block vectors, are block vectors of decoded blocks or their sub-blocks that at least satisfy 1) have completed at least partial decoding operations and 2) have an encoding mode of intra-frame block copy prediction mode, where I1 is the number of block vectors stored in HmvpIbcCandList, and I1 is less than or equal to a predetermined first maximum value, which is an integer between 4 and 12; The elements of the non-current image reference dedicated history recent motion vector prediction candidate set HmvpCandList = {HmvpCandList[i], 0 ≤ i ≤ I2 - 1}, i.e. the stored motion vectors, are motion vectors of decoded blocks or their sub-blocks that at least satisfy 1) have completed at least partial decoding operations and 2) have an encoding mode of inter-frame prediction mode, where I2 is the number of motion vectors stored in HmvpCandList, and I2 is less than or equal to a predetermined second maximum value, which is an integer between 4 and 12; 3) From at least the current historical most recent motion vector prediction candidate set, based at least some or all of the information representing the motion vector prediction value of the current motion vector, A predetermined number of recent historical motion vectors are selected and placed into a candidate list for motion vector prediction. Then, a motion vector is selected from the candidate list as the motion vector prediction value of the current motion vector. One source of the motion vector prediction value of the current motion vector is the merged candidate list.

4. The decoding method according to claim 3, characterized in that, The decoding block is a decoding region 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 maximum coding unit (LCU), a coding tree unit (CTU), a coding unit (CU), a sub-region of a CU, a sub-coding unit (SubCU), a prediction unit (PU), a sub-region of a PU, a sub-prediction unit (SubPU), a transform unit (TU), a sub-region of a TU, and a sub-transform unit (SubTU). The sub-blocks involved in the decoding process include one or a combination of the following: decoding block, sub-region of decoding block, square, rectangular, triangular or trapezoidal sub-block, micro-block, string, pixel string, sample string, index string, and line.

5. The decoding method according to claim 3, characterized in that: The merge candidate list includes at least the following motion vectors as predicted motion vector values ​​for the current block: The motion vectors of a decoded block or its sub-blocks, also known as spatial neighboring, are called the intra-frame adjacent motion vectors. and / or The motion vectors of a decoded block or its sub-blocks, also known as temporal neighboring, are called the previous frame neighbor motion vectors. and / or The current historical recent motion vector prediction candidate set includes some or all of the motion vectors.

6. The decoding method according to claim 3, characterized in that... Includes the following characteristics: The process of constructing the candidate list for merging includes at least one of the following two types of operations or a logical combination thereof: The first type of operation applies to situations where the reference image is always not the current image, and includes at least the following: First, non-repeating adjacent motion vectors within the same frame are added to the merging candidate list. Next, the non-repeating adjacent motion vectors from the previous frame are added to the merging candidate list. Then, some or all of the motion vectors from the non-repeating non-current image reference dedicated history recent motion vector prediction candidate set are added to the merged candidate list; The second type of operation applies to situations where the reference image is always the current image, and includes at least: First, non-repeating adjacent motion vectors within the same frame are added to the merging candidate list. Then, some or all of the motion vectors from the current image reference dedicated history recent motion vector prediction candidate set that are not repeated are added to the merged candidate list.

7. The decoding method according to claim 3, characterized in that... Includes the following characteristics: The merged candidate list has MaxNumMergeCand candidate motion vector prediction values, which are represented by the index i from 0 to MaxNumMergeCand-1 respectively; The process of constructing the candidate list for merging includes at least one of the following two types of operations or a logical combination thereof: The first type of operation applies to situations where the reference image is always not the current image, and includes at least the following: Initialize the index i to 0. If an adjacent left-hand block or sub-block in the same frame is available and valid, then the motion vector of the left-hand block or sub-block is assigned to the candidate motion vector prediction value with index i, and index i is incremented by one. If an adjacent block or sub-block above in the same frame is available and valid, then the motion vector of the block or sub-block above is assigned to the candidate motion vector prediction value with index i, and index i is incremented by one. If an adjacent upper-right block or sub-block in the same frame is available and valid, then the motion vector of the upper-right block or sub-block is assigned to the candidate motion vector prediction value with index i, and index i is incremented by one. If an adjacent lower-left block or sub-block in the same frame is available and valid, then the motion vector of the lower-left block or sub-block is assigned to the candidate motion vector prediction value with index i, and index i is incremented by one. If the block or sub-block at the adaptive position of the previous frame is available and valid, then the motion vector of the block or sub-block at the adaptive position of the previous frame is assigned to the candidate motion vector prediction value with index i, and index i is incremented by one. If an adjacent upper-left block or sub-block in the same frame is available and valid, then the motion vector of the upper-left block or sub-block is assigned to the candidate motion vector prediction value with index i, and index i is incremented by one. If a block at the same position in the previous frame is available and valid, then the motion vector of that block at the same position in the previous frame is assigned to the predicted value of the candidate motion vector with index i, and index i is incremented by one. The motion vectors in the non-current image reference dedicated history recent motion vector prediction candidate set are repeatedly assigned to the candidate motion vector prediction value with the index i in sequence, as long as their motion vector value and / or reference image index value are not equal to the motion vector value and / or reference image index value of the motion vector that has been put into the merged candidate list during the construction of the merged candidate list, i.e., they do not repeat the motion vector value and / or reference image index value of the motion vector with a smaller index in the merged candidate list. The index i is incremented by one until the index i is equal to MaxNumMergeCand. The second type of operation applies to situations where the reference image is always the current image, and includes at least: Initialize the index i to 0. If an adjacent left-hand block or sub-block in the same frame is available and valid, then the motion vector of the left-hand block or sub-block is assigned to the candidate motion vector prediction value with index i, and index i is incremented by one. If an adjacent block or sub-block above in the same frame is available and valid, then the motion vector of the block or sub-block above is assigned to the candidate motion vector prediction value with index i, and index i is incremented by one. If an adjacent upper-right block or sub-block in the same frame is available and valid, then the motion vector of the upper-right block or sub-block is assigned to the candidate motion vector prediction value with index i, and index i is incremented by one. If an adjacent lower-left block or sub-block in the same frame is available and valid, then the motion vector of the lower-left block or sub-block is assigned to the candidate motion vector prediction value with index i, and index i is incremented by one. If an adjacent upper-left block or sub-block in the same frame is available and valid, then the motion vector of the upper-left block or sub-block is assigned to the candidate motion vector prediction value with index i, and index i is incremented by one. The motion vectors in the current image reference the recent motion vector prediction candidate set of the dedicated history are repeatedly assigned their motion vector values ​​and / or reference image index values ​​to the candidate motion vector prediction value of index i in sequence, as long as the 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 put into the merged candidate list during the construction of the merged candidate list, i.e., it does not repeat the motion vector value and / or reference image index value of the motion vector with a smaller index in the merged candidate list. The index i is incremented by one until the index i is equal to MaxNumMergeCand.

8. The decoding method according to claim 7, characterized in that... Includes the following characteristics: "Available" means that the block or sub-block exists, has completed at least partial decoding, and is in the same stripe as the current block in the case of being adjacent in the same frame, while "valid" means at least one of the following: 1) It has a motion vector. 2) It has a motion vector and its motion vector value and / or reference image index value are not equal to the motion vector value and / or reference image index value of the motion vector that has already been added to the merge candidate list during the construction of the merge candidate list, i.e., it does not repeat the motion vector value and / or reference image index value of the motion vector with a smaller sequence number in the merge candidate list. 3) Employ coding modes with at least one motion vector, including: inter-frame prediction mode, inter-frame prediction mode that allows the current image to be used as a reference image, intra-frame block matching mode, intra-frame block prediction mode, string matching mode, string prediction mode, micro-block matching mode, micro-block prediction mode, line matching mode, and line prediction mode. 4) Has a motion vector of a predetermined type, 5) A motion vector whose values ​​fall within a predetermined range. 6) A motion vector whose value falls outside a predetermined range.

9. The decoding method according to claim 3, characterized in that... Includes the following characteristics: When the reference image is the current image, at least a predetermined number K1 HmvpIbcCandList[i] are selected from the HmvpIbcCandList according to a predetermined method and placed into a block vector candidate list bvCandList = {bvCandList[j], 0 ≤ j ≤ J1-1} for block vector prediction. Then, a block vector bvCandList[mvIdx] is selected from the bvCandList as the block vector prediction value of the current block vector, where J1 is the number of motion vectors stored in bvCandList, J1 is less than or equal to a predetermined maximum value, and mvIdx satisfies 0 ≤ mvIdx ≤ J1-1. When the reference image is not the current image, at least a predetermined number K2 HmvpCandList[i] are selected from the HmvpCandList according to a predetermined method and placed into a merge candidate list for motion vector prediction, mergeCandList = {mergeCandList[j], 0 ≤ j ≤ J2-1}. Then, a motion vector mergeCandList[merge_idx] is selected from the mergeCandList as the motion vector prediction value of the current motion vector, where J2 is the number of motion vectors stored in mergeCandList, J2 is less than or equal to a predetermined maximum value, and merge_idx satisfies 0 ≤ merge_idx ≤ J2-1.

10. The decoding method according to claim 9, characterized in that... Includes the following characteristics: The mvIdx exists in some or all of the information representing the motion vector prediction value of the current motion vector or is derived from at least some or all of the information representing the motion vector prediction value of the current motion vector. The merge_idx exists in some or all of the information representing the motion vector prediction value of the current motion vector, or is derived from at least some or all of the information representing the motion vector prediction value of the current motion vector.

11. The decoding method according to claim 10, characterized in that... Includes the following characteristics: The predetermined maximum value is an integer between 4 and 16.

12. The decoding method according to claim 3, characterized in that... Includes the following characteristics: The elements of the HmvpIbcCandList consist of at least the horizontal and vertical components of the block vector; The elements of the HmvpCandList consist of at least one or two horizontal and vertical components of motion vectors, a reference index indicating which frame in the reference image queue the reference image is, and at most one bidirectional prediction CU hierarchical weight.

13. The decoding method according to claim 3, characterized in that... Includes the following characteristics: The HmvpIbcCandList and / or HmvpCandList are reset to an empty set at the moment the decoding of a frame of image begins.

14. The decoding method according to claim 3, characterized in that... Includes the following characteristics: The HmvpIbcCandList and / or HmvpCandList are reset to an empty set at the moment the decoding of a stripe begins.

15. The decoding method according to claim 3, characterized in that... Includes the following characteristics: When a new motion vector of the current image is obtained as a reference image during decoding, HmvpIbcCandList is updated according to the first predetermined scheme; When a new motion vector is obtained in the decoding process, which is a reference image that is not the current image, HmvpCandList is updated according to the second predetermined scheme.

16. The decoding method according to claim 15, characterized in that... Includes the following characteristics: The first predetermined scheme includes at least 1) HmvpIbcCandList is a first-in-first-out (FIFO) buffer, 2) deleting motion vectors in HmvpIbcCandList that are identical to the new motion vector and shifting all subsequent motion vectors one position forward, 3) when the space in HmvpIbcCandList is full, removing the first motion vector placed in according to the FIFO rule, shifting all other motion vectors one position forward and moving them into the new motion vector; The second predetermined scheme includes at least 1) HmvpCandList is a first-in-first-out (FIFO) buffer, 2) deleting motion vectors in HmvpCandList that are equivalent to the new motion vector and shifting all subsequent motion vectors one position forward, 3) when the space in HmvpCandList is full, removing the first motion vector placed in according to the FIFO rule, shifting all other motion vectors one position forward and moving them into the new motion vector.

17. A video decoding apparatus that uses at least intra-frame block copying and inter-frame prediction, characterized in that, Includes a module that implements the image compression decoding method as described in any one of claims 3 to 16.

Citation Information

Patent Citations

  • Object tracking using momentum and acceleration vectors in a motion estimation system

    CN102461150A

  • Adjacent disparity vector obtaining method for multi-texture multi-depth video

    CN104768019A