WO2021196211A1 - 一种帧间预测方法、编码器、解码器及存储介质 - Google Patents

一种帧间预测方法、编码器、解码器及存储介质 Download PDF

Info

Publication number
WO2021196211A1
WO2021196211A1 PCT/CN2020/083313 CN2020083313W WO2021196211A1 WO 2021196211 A1 WO2021196211 A1 WO 2021196211A1 CN 2020083313 W CN2020083313 W CN 2020083313W WO 2021196211 A1 WO2021196211 A1 WO 2021196211A1
Authority
WO
WIPO (PCT)
Prior art keywords
motion information
candidate list
gpm
information
current block
Prior art date
Application number
PCT/CN2020/083313
Other languages
English (en)
French (fr)
Inventor
马彦卓
霍俊彦
万帅
杨付正
冉启宏
Original Assignee
Oppo广东移动通信有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oppo广东移动通信有限公司 filed Critical Oppo广东移动通信有限公司
Priority to CN202080098331.7A priority Critical patent/CN115244925A/zh
Priority to EP20928595.6A priority patent/EP4131955A4/en
Priority to PCT/CN2020/083313 priority patent/WO2021196211A1/zh
Priority to TW110109409A priority patent/TW202139693A/zh
Publication of WO2021196211A1 publication Critical patent/WO2021196211A1/zh
Priority to US17/955,264 priority patent/US20230045687A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Definitions

  • the embodiments of the present application relate to video image processing technology, and relate to but not limited to inter-frame prediction methods, encoders, decoders, and storage media.
  • Inter-frame prediction may include motion estimation and motion compensation.
  • VVC Versatile Video Coding
  • TPM Triangular Partition Mode
  • the embodiments of the present application provide an inter-frame prediction method, an encoder, a decoder, and a storage medium, which can improve the expression efficiency of motion information and improve the efficiency of video encoding and decoding.
  • an embodiment of the present application provides an inter-frame prediction method, which is applied to an encoder, and the method includes:
  • the prediction mode parameter indicates that the current block uses the geometric division prediction mode GPM to determine the inter prediction value, constructing a merge candidate list of the current block;
  • an embodiment of the present application provides an inter-frame prediction method, which is applied to a decoder, and the method includes:
  • the prediction mode parameter indicates that the current block uses the geometric division prediction mode GPM to determine the inter prediction value, constructing a merge candidate list of the current block;
  • an encoder including:
  • the determining unit is used to determine the prediction mode parameter of the current block
  • a first construction unit configured to construct a merge candidate list of the current block when the prediction mode parameter indicates that the current block uses the geometric partition prediction mode GPM to determine the inter prediction value;
  • the first processing unit is configured to construct a GPM motion information candidate list according to the first motion information in the merge candidate list of the current block, wherein the construction process includes deduplication information on the first motion information Processing
  • the first prediction unit is configured to determine the inter prediction value of the current block according to the GPM motion information candidate list.
  • an embodiment of the present application provides a decoder, including:
  • the parsing unit is used to parse the code stream and determine the prediction mode parameters of the current block
  • a second construction unit configured to construct a merge candidate list of the current block when the prediction mode parameter indicates that the current block uses the geometric division prediction mode GPM to determine the inter prediction value;
  • the second processing unit is configured to construct a GPM motion information candidate list according to the first motion information in the merge candidate list of the current block, wherein the construction process includes deduplication information on the first motion information Processing
  • the second prediction unit is configured to determine the inter prediction value of the current block according to the GPM motion information candidate list.
  • an embodiment of the present application also provides an encoder, including: a first memory and a first processor; the first memory stores a computer program that can run on the first processor, and the first memory The inter-frame prediction method of the encoder is realized when the processor executes the program.
  • an embodiment of the present application also provides a decoder, including: a second memory and a second processor; the second memory stores a computer program that can run on the second processor, and the second memory When the processor executes the program, the inter-frame prediction method of the decoder is implemented.
  • an embodiment of the present application provides a storage medium, including: a computer program is stored thereon, and when the computer program is executed by a first processor, the inter-frame prediction method of the encoder is implemented; or, the computer When the program is executed by the second processor, the inter-frame prediction method of the decoder is implemented.
  • the embodiments of the present application provide an inter-frame prediction method, an encoder, a decoder, and a storage medium, including: determining a prediction mode parameter of a current block; when the prediction mode parameter indicates that the current block uses the geometric partition prediction mode GPM to determine For inter-frame prediction, construct a merge candidate list of the current block; construct a GPM motion information candidate list according to the first motion information in the merge candidate list of the current block, and construct a GPM motion information candidate list according to the GPM motion information candidate list , Determine the inter-frame prediction value of the current block.
  • the merge candidate list is checked and deduplicated first, and then the motion information candidate list is constructed, which can avoid duplicate motion information in the GPM motion information candidate list and reduce GPM
  • the length of the motion information candidate list improves the expression efficiency of motion information, thereby improving the efficiency of video encoding and decoding.
  • FIG. 1 is a schematic diagram of a composition block diagram of a video encoding system provided by an embodiment of the application;
  • FIG. 2 is a schematic diagram of the composition of a video decoding system provided by an embodiment of the application.
  • FIG. 3 is a schematic diagram of the first process of an intra prediction method provided by an embodiment of the application.
  • FIGS. 4a-4b are schematic diagrams of two divisions of TPM mode
  • FIGS 5a-5g are schematic diagrams of seven divisions of GPM mode
  • Fig. 6 is a schematic diagram of the angle and step length of an exemplary current block provided by an embodiment of the application.
  • FIG. 7 is a schematic diagram of the positions of neighboring blocks of the spatial Merge candidate list in an embodiment of the application.
  • FIG. 8 is a schematic diagram of the first composition structure of the merge list in an embodiment of the application.
  • FIG. 9 is a schematic flowchart of a deduplication processing method in an embodiment of the application.
  • FIG. 10 is a schematic diagram of the second composition structure of the merge list in an embodiment of the application.
  • FIG. 11 is a schematic diagram of the first composition structure of the GPM motion information candidate list in an embodiment of this application.
  • FIG. 12 is a schematic diagram of the second composition structure of the GPM motion information candidate list in an embodiment of this application.
  • FIG. 13 is a schematic diagram of the third composition structure of the GPM motion information candidate list in an embodiment of this application.
  • FIG. 14 is a schematic diagram of a GPM mode prediction process in an embodiment of this application.
  • FIG. 15 is a schematic diagram of a division method of a current block in an embodiment of the application.
  • FIG. 16a is a schematic diagram of an exemplary brightness weight value provided by an embodiment of the application.
  • FIG. 16b is a schematic diagram of an exemplary chromaticity weight value provided by an embodiment of the application.
  • FIG. 17 is a schematic diagram of a second process of an intra prediction method provided by an embodiment of the application.
  • Figure 19 is a schematic diagram of the second composition structure of the encoder in an embodiment of the application
  • 20 is a schematic diagram of the first composition structure of a decoder in an embodiment of the application.
  • FIG. 21 is a schematic diagram of the second composition structure of the decoder in an embodiment of the application.
  • the video encoding system 11 includes: a transformation unit 111, a quantization unit 112, a mode selection and encoding control logic unit 113, an intra prediction unit 114, and an inter prediction unit 115 (Including: motion compensation and motion estimation), inverse quantization unit 116, inverse transform unit 117, loop filter unit 118, coding unit 119, and decoded image buffer unit 110; for the input original video signal, through coding tree block (Coding Tree) Unit, CTU) can be divided to obtain a video reconstruction block, the coding mode is determined by the mode selection and coding control logic unit 113, and then the residual pixel information obtained after intra-frame or inter-frame prediction is passed through the transform unit 111 and quantized
  • the unit 112 transforms the video reconstruction block, including transforming the residual information from the pixel domain to the transform domain, and quantizing the obtained transform coefficients to further reduce the bit rate; the intra prediction unit 114 is used to reconstruct the video Block performs intra prediction; where
  • the block passes through the loop filter unit 118 to remove the block effect artifact, and then the reconstructed residual block is added to a predictive block in the frame of the decoded image buffer unit 111 to generate a reconstructed video reconstruction block; encoding;
  • the unit 119 is used to encode various coding parameters and quantized transform coefficients.
  • the decoded image buffer unit 110 is used to store reconstructed video reconstruction blocks for prediction reference. As the video image encoding progresses, new reconstructed video reconstruction blocks will be continuously generated, and these reconstructed video reconstruction blocks will all be stored in the decoded image buffer unit 110.
  • FIG. 2 is a schematic diagram of the composition structure of a video encoding system according to an embodiment of the application.
  • the video encoding system 21 includes: a decoding unit 211, an inverse transform unit 217, and an inverse Quantization unit 212, intra-frame prediction unit 213, motion compensation unit 214, loop filter unit 215, and decoded image buffer unit 216 units; after the input video signal is encoded by the video encoding system 11, the code stream of the video signal is output; The code stream is input into the video decoding system 21, and first goes through the decoding unit 211 to obtain the decoded transform coefficients; the transform coefficients are processed by the inverse transform unit 217 and the inverse quantization unit 212 to generate residuals in the pixel domain.
  • the intra prediction unit 213 can be used to generate prediction data of the current video decoding block based on the determined intra prediction direction and the data from the previous decoded block of the current frame or picture;
  • the motion compensation unit 214 analyzes the motion vector and Other associated syntax elements determine the prediction information for the video decoding block, and use the prediction information to generate the predictive block of the video decoding block being decoded; by comparing the residual blocks from the inverse transform unit 217 and the inverse quantization unit 212 Sum with the corresponding predictive blocks generated by the intra prediction unit 213 or the motion compensation unit 214 to form a decoded video block;
  • the decoded video signal is passed through the loop filter unit 215 to remove block artifacts, which can improve the video Quality; then the decoded video block is stored in the decoded image buffer unit 216, the decoded image buffer unit 216 stores the reference image used for subsequent intra prediction or motion compensation, and is also used for the output of the video signal to obtain the restored Original video signal.
  • the inter-frame prediction method provided by the embodiment of the present application mainly acts on the inter-frame prediction unit 115 of the video encoding system 11 and the intra-frame prediction unit of the video decoding system 21, that is, the motion compensation unit 214;
  • the system 11 can obtain a better prediction effect through the inter-frame prediction method provided in the embodiments of the present application, and correspondingly, at the decoding end, the video decoding restoration quality can also be improved.
  • the embodiment of the present application provides an inter-frame prediction method, which is applied to a video encoding device, that is, an encoder.
  • the functions implemented by the method can be implemented by the processor in the video encoding device calling program codes.
  • the program code can be stored in a computer storage medium. It can be seen that the video encoding device includes at least a processor and a storage medium.
  • Fig. 3 is a schematic diagram of the first flow of an intra prediction method provided by an embodiment of the application. The method is applied to an encoder. As shown in Fig. 3, the method includes:
  • Step 101 Determine the prediction mode parameter of the current block.
  • the prediction mode parameter indicates the coding mode of the current block and parameters related to the mode.
  • a rate-distortion optimization (Rate Distortion Optimization, RDO) method can be used to determine the prediction mode parameters of the current block.
  • the encoder to determine the prediction mode parameters of the current block is implemented as follows: the encoder determines the image components to be predicted for the current block; based on the parameters of the current block, multiple prediction modes are used to perform the prediction on the image components to be predicted. Predictive coding, calculate the rate-distortion cost result corresponding to each prediction mode in multiple prediction modes; select the minimum rate-distortion cost result from the calculated multiple rate-distortion cost results, and assign the minimum rate-distortion cost result to the corresponding prediction mode Determined as the prediction mode parameter of the current block.
  • multiple prediction modes can be used for the current block to respectively encode the image components to be predicted.
  • multiple prediction modes usually include inter prediction mode, traditional intra prediction mode, and non-traditional intra prediction mode
  • traditional intra prediction modes can include direct current (DC) mode and plane (PLANAR). Mode and angle mode, etc.
  • Non-traditional intra prediction modes can include MIP mode, Cross-component Linear Model Prediction (CCLM) mode, Intra Block Copy (IBC) mode and PLT (Palette) mode
  • the inter-frame prediction mode may include: inter-frame geometric partition prediction mode (Geometrical partition Mode, GPM), triangular prediction mode (Triangle partition mode, TPM), and so on.
  • the rate-distortion cost result corresponding to each prediction mode can be obtained; then the minimum rate-distortion cost result is selected from the obtained multiple rate-distortion cost results, and The prediction mode corresponding to the minimum rate-distortion cost result is determined as the prediction mode parameter of the current block; in this way, the determined prediction mode can be used to encode the current block, and in this prediction mode, the prediction residual can be made small , Can improve coding efficiency.
  • Step 102 When the prediction mode parameter indicates that the current block uses the geometric partition prediction mode GPM to determine the inter prediction value, construct a merge candidate list of the current block;
  • the prediction mode parameter indicates that when the GPM is used to determine the inter prediction of the current block, a merge candidate list of the current block is constructed.
  • the merge candidate list contains multiple candidate motion vectors (motion vectors, MV) used for motion prediction of the current block.
  • MV motion vectors
  • mv is a two-dimensional vector used for inter-frame prediction, which provides information from the coordinates in the decoded picture to the reference picture. The offset of the coordinates in.
  • Inter-frame prediction is based on the pixels in the reference frame of the current block, and the position of the pixels used for prediction in the reference frame is indicated by mv to generate the predicted value of the current block.
  • the reference frame is a picture or frame of a short-term reference picture or a long-term reference picture, and the reference frame contains samples that can be used for inter-frame prediction in the decoding process of subsequent pictures in the decoding order.
  • Coding unit corresponding to an A ⁇ B rectangular area in the image, containing A ⁇ B luminance pixels or/and its corresponding chrominance pixels, A is the width of the rectangle, B is the height of the rectangle, A It can be the same as or different from B.
  • the values of A and B are usually a power of two, such as 128, 64, 32, 16, 8, 4.
  • a coding unit contains a prediction image and a residual image, and the prediction image and the residual image are added to obtain a reconstructed image of the coding unit.
  • the predicted image is generated by intra-frame prediction or inter-frame prediction, and the residual image is generated by inverse quantization and inverse transformation of transform coefficients.
  • the current block can select the corresponding motion information from the merge candidate list according to the merge index, and use the motion information of the merged candidate as the motion information of the current block, or use the motion information of the merged candidate as the motion information after scaling.
  • the motion information of the current block; the current block determines the inter prediction value according to the motion information.
  • the images of a video sequence are divided into image blocks for encoding.
  • coding techniques such as prediction, transformation, and quantization are usually implemented in units of square and rectangular blocks.
  • the edges of moving objects are not necessarily horizontal or vertical. Even if they are, they may not be exactly on the edge of the block that can be divided.
  • the motion vectors on both sides of the moving edge are often different, so in the encoding process Performing motion prediction and compensation in a whole block is prone to large prediction errors, which leads to limited coding efficiency.
  • TPM introduced a square or rectangular diagonal or anti-diagonal line as the dividing line to obtain a triangular prediction unit, as shown in Figure 4a-4b, so as to express inter-frame prediction more flexibly. Data, reduce prediction errors, thereby improving coding efficiency.
  • each division mode corresponds to an angle ⁇ and a step size ⁇ , and there are a total of 20 angles and 4 step sizes.
  • each combination of angle and step length constitutes a division mode.
  • GPM divides the current block into two non-rectangular sub-partitions, and each sub-partition performs one-way motion compensation separately to obtain a one-way prediction value, and finally uses a weight matrix to weight and fuse the one-way prediction values of the two partitions to obtain the final GPM prediction value .
  • the encoder when it is determined on the encoder side that GMP is used for inter-frame prediction, the encoder can obtain the GPM parameters of the current block when GPM is used for inter-frame prediction.
  • the encoder determines the partition mode with the least rate-distortion cost by traversing the 64 partition models corresponding to GPM, that is, determines the target partition mode; the encoder can preset the partition mode, angle index and step size according to the target partition mode.
  • the index mapping table determines the angle index information and step length index information corresponding to the target division mode.
  • the current prediction block When the current prediction block is in GPM mode, it will look up the table according to the selected partition mode index merge_gpm_partition_idx of the current block to obtain the corresponding angle angleIdx and step distanceIdx.
  • the mapping table of this partition mode is shown in Table 1:
  • wedge_partition_idx is the partition mode index
  • angleIdx is the angle index information
  • distanceIdx is the step index information.
  • FIG. 7 is a schematic diagram of the positions of neighboring blocks of the spatial Merge candidate list in an embodiment of the application.
  • the construction order of neighboring blocks in the Merge candidate list is: the neighboring block A1 on the left, and the neighboring block B1 on the upper side.
  • the upper right adjacent block B0, the lower left adjacent block A0, the upper left adjacent block B2, the reference frame corresponding position block col is the motion vector information of the adjacent blocks arranged in sequence, and the sources of different directions are distinguished.
  • the addition order of adjacent blocks represents the correlation between each mv information and the mv information of the current block, that is, the addition order of the merge candidate list represents the possibility of this candidate being selected as the mv information of the current block. Represents the accuracy of this candidate after being selected as the current block mv information.
  • FIG. 8 is a schematic diagram of the first composition structure of the merge list in the embodiment of the application. According to the schematic diagram of the positions of the adjacent blocks in FIG. 7, the merge candidate list of FIG. 8 is obtained. As shown in FIG. 8, the merge candidate list includes 5 adjacent The mv information of the block, the sequence numbers are 0, 1, 2, 3, 4, and each adjacent block contains bidirectional prediction mv information, namely list0 and list1. Because in the GPM prediction mode, each partition will only use the one-way prediction mode, and each item in the merge list may be the mv information for bidirectional prediction, so the one-way prediction mv needs to be taken out for use.
  • X (m&0x01), where X is the reference list indication information, which is used to indicate list0 and list1, and & is the bit AND operation, that is, the last bit of m is taken out (similar to parity check).
  • X the reference list indication information
  • & the bit AND operation, that is, the last bit of m is taken out (similar to parity check).
  • Step 103 Construct a GPM motion information candidate list according to the first motion information in the merge candidate list of the current block, where the construction process includes deduplication information processing on the first motion information;
  • the purpose of performing duplicate check and deduplication processing on the first motion information in the merge candidate list of the current block is to construct a GPM motion information candidate list (also called "mv candidate list") to avoid duplication in the mv candidate list Motion information, reduce the length of the mv candidate list, improve the expression efficiency of motion information, thereby improving the efficiency of video encoding and decoding.
  • GPM motion information candidate list also called "mv candidate list”
  • FIG. 9 is a schematic flowchart of a deduplication processing method in an embodiment of the present application.
  • the deduplication processing step of step 103 in an inter prediction method provided in an embodiment of the present application may specifically include:
  • Step 201 Initialize the GPM motion information candidate list of the current block
  • the initialization of the mv candidate list can be to create an empty mv candidate list for GPM, and the mv information in the merge candidate list (referred to as "merge list") is first checked and deduplicated, and then added to the mv candidate list of GMP , To ensure that there is no duplicate mv information in the mv candidate list of GMP.
  • Step 202 Acquire first motion information in the merge candidate list in sequence according to a preset acquisition strategy
  • the acquisition strategy stipulates the duplication check order of the first motion information (also called the first mv information) in the merge list.
  • the fetched first mv information already exists in the mv candidate list, the fetched first mv information is ignored without using it to update the mv candidate list; when the fetched first mv information does not exist in the mv candidate list, you need to use fetch
  • the first mv information updates the mv candidate list.
  • the acquisition strategy is determined by the construction order of adjacent blocks in the merge candidate list and the reference list indication information.
  • the construction order of the adjacent blocks may be the order shown in FIG. 7, and the reference list indication information is used to indicate Use priority of the mv information of the first reference list and the mv information of the second reference list.
  • Step 202 may specifically include: sequentially acquiring first motion information in the merge candidate list according to the construction order of neighboring blocks in the merge candidate list and reference list indication information; wherein, the reference list indication information is used to indicate The motion information of the first reference list or the motion information of the second reference list is preferentially used.
  • the Merge candidate list includes the mv information of 5 adjacent blocks, the sequence numbers are 0, 1, 2, 3, and 4 respectively.
  • the construction order of adjacent blocks can be from small to large, each The adjacent block contains the bidirectional prediction mv information, that is, the mv information in the list0 reference list and the mv information in the list1 reference list. Because in the GPM prediction mode, each partition will only use the one-way prediction mode, and each item in the merge list may be the mv information for bidirectional prediction, so the one-way prediction mv needs to be taken out for use.
  • the mv information predFlagLXM corresponding to the reference frame in the reference list corresponding to X is preferentially used for partition prediction, as shown in the options corresponding to the shaded area in FIG. 8.
  • the first mv information in the merge candidate list in sequence, that is, select each item indicated by the reference list indication information from top to bottom
  • the first mv information in list0 or list1 that is, the first mv information in the shaded area is preferentially used from top to bottom in FIG. 8, and the retrieved first mv information is checked and deduplicated.
  • the step of sequentially acquiring the first motion information in the merge candidate list according to the construction order of the neighboring blocks in the merge candidate list and the reference list indication information includes: following the neighboring blocks in the merge candidate list Determine the target position of the merge candidate list according to the order of construction and reference list indication information; if the first motion information in the target position is available, obtain the first motion information stored in the target position; if the target position If the first motion information in is not available, the first motion information stored in the opposite position of the target position is acquired.
  • the first target position is the first in the first column of the first row in the merge list.
  • mv information that is, item L00
  • list0 and list1 respectively store mv information predicted in different directions
  • the target position and the opposite position store the positions of mv information in different directions, respectively.
  • Step 203 Detect whether the first motion information overlaps with the second motion information in the GPM motion information candidate list, and obtain a duplicate check detection result;
  • the motion information in the merge list is called the first mv information
  • the motion information in the mv candidate list is called the second motion information (also called the second mv information)
  • the first mv information and the second mv information It is only used to indicate that the sources of the two are different, and not used to distinguish the same and different information between the two.
  • Step 204 Use the first motion information to update the GPM motion information candidate list based on the duplicate check detection result to obtain the constructed GPM motion information candidate list.
  • step 204 specifically includes: when the duplicate check detection result indicates that the first motion information does not coincide with the second motion information in the GPM motion information candidate list, adding the first motion information To the GPM motion information candidate list; when the duplicate check detection result indicates that the first motion information overlaps with the second motion information in the GPM motion information candidate list, ignore the current first motion information; according to the preset
  • the acquisition strategy is to acquire the next first motion information in the merge candidate list, and continue to process the next first motion information to de-duplicate information to update the GPM motion information candidate list.
  • the first motion information is used as a candidate for GPM.
  • the specific duplicate checking and deduplication steps include: the input is the ordinary merge list mergeCandList, and the output is the mv candidate list mergeGPMCandList.
  • MaxNumGpmMergeCand represents the maximum number of candidates in the merge list
  • i represents the sequence number of the second mv information in the mv candidate list
  • j represents the first mv information in the merge list
  • the mv information predFlagLXM corresponding to the reference frame in the reference list corresponding to X is preferentially used for partition prediction, as shown in the options corresponding to the shaded area in FIG. 8.
  • the mv information with the value of 0 is subsequently complemented, or the mv information of the last candidate stored before that is repeated.
  • FIG. 10 is a schematic diagram of the second composition structure of the merge list in an embodiment of this application
  • FIG. 11 is a schematic diagram of the first composition structure of the GPM motion information candidate list in an embodiment of this application.
  • step 204 specifically includes: when the duplicate check detection result indicates that the first motion information does not coincide with the second motion information in the GPM motion information candidate list, adding the first motion information Into the GPM motion information candidate list; when the duplicate check detection result indicates that the first motion information overlaps the second motion information, the first motion information stored in the opposite position of the position where the first motion information is located is obtained One movement information, using the first movement information stored in the opposite position to update the GPM movement information candidate list; according to the preset acquisition strategy, the next first movement information in the merge candidate list is acquired, and the next one The first motion information undergoes deduplication information processing to update the GPM motion information candidate list.
  • the first motion information is the first motion information in the first column of the first row in the merge list (that is, item L00).
  • the item L00 is obtained, if the item L00 is related to the motion information
  • the items 0 to i-1 in the candidate list overlap.
  • the opposite position that is, the first motion information in the second column of the first row (that is, the first motion information in the second column of the first row). Item), and then use the first motion information of the object position to update the GPM motion information candidate list.
  • the updating the GPM motion information candidate list using the first motion information stored in the opposite position includes: deduplicating the first motion information stored in the opposite position, To update the GPM motion information candidate list; or, add the first motion information stored in the opposite position to the GPM motion information candidate list.
  • the first motion information stored in the opposite position is deduplicated information processing to update the GPM motion information candidate list, that is, the first motion information of the detection target position and the first motion information in the GPM motion information candidate list Whether the second motion information overlaps, the duplicate check detection result is obtained; when the first motion information representing the object position of the duplicate check detection result does not coincide with the second motion information in the GPM motion information candidate list, the first motion information of the object position The motion information is added to the GPM motion information candidate list; when the first motion information representing the object position in the duplicate check detection result overlaps with the second motion information in the GPM motion information candidate list, the first motion information of the object position is ignored. Sports information.
  • the first motion information stored in the opposite position is added to the GPM motion information candidate list, that is, there is no need to deduplicate the first motion information of the object position, and the first motion information of the object position is directly added.
  • the motion information is added to the motion information candidate list.
  • step 103 specifically includes: according to the first motion information in the merge candidate list of the current block, respectively constructing the first motion information candidate list corresponding to the first partition of the current block, and The second motion information candidate list corresponding to the second partition of the current block; wherein, the construction process includes processing the first motion information to remove duplicate information.
  • the first motion information candidate list and the second motion information candidate list are both GPM motion information candidate lists
  • the first motion information in the merge candidate list of the current block is checked and duplicated, and then the first motion information candidate list of the A partition is constructed according to the A partition mv selection strategy; according to the B partition
  • the user of the selection strategy of A partition determines the priority of use of mv information and the sequence position of mv information in the mv candidate list
  • the selection strategy of B partition determines the priority of use of mv information and the mv information is in mv candidates.
  • the order of the positions in the list the higher the priority, the higher the position in the mv candidate list.
  • the method further includes: when the number of candidates in the GPM motion information candidate list is greater than 2, obtaining the GPM motion information candidate list from the GPM motion information candidate list.
  • the first index information corresponding to the motion information of the first partition, and the second index information corresponding to the second partition motion information; the first index information and the second index information are written into a code stream.
  • the encoder sends the code stream to the decoder, and the decoder parses the code stream to determine the first index information of the motion information of the first partition in the motion information candidate list, and the second index information of the motion information of the second partition, and further according to the index information Obtain the motion information of each partition from the motion information candidate list established by the decoder.
  • the method further includes: when the number of candidates in the GPM motion information candidate list is equal to 2, obtaining all the candidates from the GPM motion information candidate list.
  • the first index information corresponding to the motion information of the first partition, or the second index information corresponding to the second partition motion information; the first index information or the second index information is written into a code stream.
  • the encoder sends the code stream to the decoder, and the decoder parses the code stream to determine the first index information of the motion information of the first partition in the motion information candidate list. Since the motion information candidate list contains only two candidates, when the After one index information determines the motion information of the first partition, the motion information in the other candidate must be the motion information of the second partition.
  • the decoder parses the code stream to determine the second index information of the motion information of the second partition in the motion information candidate list, and the same is true.
  • the decoder needs to write the first index information and the second index information into the code stream at the same time, so as to instruct the decoder to obtain the motion information of each partition according to the index information;
  • the decoder only needs to write one index information into the code stream, and the decoder can obtain the motion information of each partition according to one index information;
  • the candidate in the motion information candidate list If the number is less than 2, the decoder only needs to write one index information into the code stream to indicate that the candidate is a candidate for that partition.
  • Step 104 Determine the inter prediction value of the current block according to the GPM motion information candidate list.
  • the method for determining the inter-frame prediction value of the current block includes: obtaining, from the GPM motion information candidate list, the motion information used for the first partition of the current block, and the motion information used for the second partition of the current block Motion information; using the motion information of the first partition to calculate the first predictive value of the first partition, and using the motion information of the second partition to calculate the second predictive value of the second partition; for the first partition
  • the predicted value and the second predicted value are weighted and merged to obtain the inter-frame predicted value of the current block.
  • the method also includes: the encoder obtains the absolute information of the weight index corresponding to the pixel in the current block, and determines the absolute information of the weight index corresponding to the pixel in the current block and the absolute information of the weight index corresponding to the pixel in the current block.
  • the weight value corresponding to the weight index absolute information and then based on the weight value corresponding to the weight index absolute information, the weight value of the first pixel in the first partition and the second pixel in the second partition are determined from the pixels in the current block Then, according to the weight value of the first pixel in the first partition and the weight value of the second pixel in the second partition, the first weight value of the pixel in the current block corresponding to the first partition is determined, and finally According to the first weight value, the second weight value of the pixel point in the current block corresponding to the second partition is determined.
  • the encoder can multiply the first predicted value of each pixel by the first weight value, and add the product of the second predicted value and the second weight value of each pixel to complete
  • the weighted fusion of pixels in the current block obtains the inter-frame prediction value of the current block.
  • the mv acquisition steps of the two partitions include the following:
  • merge_gpm_idx0[x0][y0] indicates the position of the mv of the A partition in the merge list
  • the position of the mv of the B partition in the merge list may be reduced by 1 because A first selected the option at the top position.
  • n represents the actual position of the mv selected by partition B in the merge candidate list, waiting for subsequent processing.
  • adding the mv information in list0 corresponding to sequence number 0 is exactly the same as the mv information corresponding to list1 in sequence number 1. They will correspond to the same option in the reconstructed mv candidate list, and m is the first index information. , N is the second index information, and m and n correspond to the sequence numbers 0-3 in the block in Figure 11.
  • the corresponding mv information is stored in the processing variable of the A partition, and the subsequent prediction block structure is prepared.
  • predListFlagA predListFlagGPMM
  • mvA is the mv vector
  • refIdxA is the reference frame corresponding to the motion vector
  • predListFlagA indicates which component of the list of the motion vector alternatives is currently selected.
  • N mergeCandList[n]
  • predListFlagB predListFlagGPMN
  • mvB is the mv vector
  • refIdxB is the reference frame corresponding to the motion vector
  • predListFlagB indicates which component of the list of the motion vector alternatives is currently selected.
  • Step 202 may specifically include: sequentially acquiring all the candidate lists in the merge candidate list according to the construction order of neighboring blocks in the merge candidate list. The first exercise information available.
  • mv available means that the target location has motion information stored. If the mv of the adjacent block of the current block is unidirectional, only one of list0 and list1 stores motion information, and the other does not store motion information. It is a reference for storing motion information. The motion information in the list is available, and the mv in the reference list that does not store the motion information is unavailable. If the mv of the adjacent block of the current block is bidirectional, the mv in list0 and list1 are both available.
  • step 204 specifically includes: when the duplicate check detection result indicates that the first motion information does not overlap with the second motion information in the GPM motion information candidate list, adding the first motion information to the In the GPM motion information candidate list; when the duplicate detection result indicates that the first motion information overlaps with the second motion information in the GPM motion information candidate list, ignore the current first motion information; follow the preset acquisition strategy , Acquire the next first motion information in the merge candidate list, and continue to perform deduplication information processing on the next first motion information to update the GPM motion information candidate list.
  • Fig. 12 is a schematic diagram of the second composition structure of the GPM motion information candidate list in the embodiment of the application. If the mv information in the shaded area in the merge list of Fig. 10 is available, after checking the available mv information in the merge list, there is no The overlapping mv information stores the mv in the 5 shaded areas in the merge list into the mv candidate list. In Figure 12, there are 5 candidates in the mv candidate list, and the sequence numbers are 0-4.
  • the white area in Figure 10 also contains available mv information
  • the available mv information in the white area also needs to be taken out, and the subsequent duplicate checking and deduplication operations are performed and the mv candidate list is established.
  • the candidates in the mv candidate list The number of items may be greater than 5.
  • At least part of the first motion information in the merge candidate list is stored in the GPM motion information candidate list. That is to say, after the duplicate check and deduplication operation is performed on the merge list, the motion information in the merge list is directly used to establish a motion information candidate list.
  • the mapping information of at least part of the first motion information in the merge candidate list is stored in the GPM motion information candidate list. That is to say, after the duplicate check and deduplication operation is performed on the merge list, the index information of the motion information in the merge list is used to establish a motion information candidate list.
  • the above step 204 can be replaced with: when the duplicate check detection result indicates that the first motion information does not overlap with the second motion information in the GPM motion information candidate list, mapping the first motion information Information is added to the GPM motion information candidate list; wherein, the mapping information of the first motion information includes: the sequence number of the first motion information in the merge candidate list and reference list indication information; the duplicate check detection result When characterizing that the first motion information overlaps with the second motion information in the GPM motion information candidate list, ignore the current first motion information; acquire the next first motion in the merge candidate list according to the preset acquisition strategy Information, and continue to de-duplicate the next first motion information to update the GPM motion information candidate list.
  • the first motion information is used as a candidate for GPM.
  • the specific duplicate checking and deduplication steps include: the input is the ordinary merge list mergeCandList, and the output is the mv candidate list mapping table mergeGPMCandMapList.
  • MaxNumGpmMergeCand represents the maximum number of candidates in the merge list
  • i represents the sequence number of the second mv information in the mv candidate list
  • j represents the first mv information in the merge list
  • the mv information predFlagLXM corresponding to the reference frame in the reference list corresponding to X is preferentially used for partition prediction, as shown in the options corresponding to the shaded area in FIG. 10.
  • the mv information mapping information whose value is 0 is subsequently complemented, or the mv information mapping information of the last candidate stored before that is repeated.
  • FIG. 10 is a schematic diagram of the third composition structure of the GPM motion information candidate list in the embodiment of the application.
  • Figure 13 maps the two-tuple information (j, X) of the mv information in the merge list, where j is the sequence number of the merge list, and j Take 0-4, X is the reference list indication information, and X takes 0 or 1.
  • the binary group (0, 0) with sequence number 0 corresponds to item L00 of the merge list
  • the binary group with sequence number 0 (2, 0) corresponds to item L20 of the merge list
  • the binary group (4, 0) with sequence number 0 corresponds to item L40 of the merge list.
  • the above step 204 can also be replaced with: when the duplicate check detection result indicates that the first motion information does not coincide with the second motion information in the GPM motion information candidate list, the second motion information
  • the mapping information of a motion information is added to the GPM motion information candidate list; wherein, the mapping information of the first motion information includes: the sequence number of the first motion information in the merge candidate list and reference list indication information;
  • the duplicate check detection result indicates that the first motion information overlaps the second motion information
  • the first motion information stored in the opposite position of the position where the first motion information is located is acquired, and the opposite position is used
  • the stored first motion information updates the GPM motion information candidate list; according to the preset acquisition strategy, the next first motion information in the merge candidate list is acquired, and the next first motion information is processed to remove duplicate information, To update the GPM motion information candidate list.
  • the first mv information is the first mv information in the first column of the first row in the merge list (ie item L00). After the item L00 is obtained, if the item L00 is related to the mv candidate list There are overlaps in items 0 to i-1 in the mv candidate list.
  • the first mv information that is, item L01
  • the first mv information of the target position is then used to update the mv candidate list.
  • the updating the GPM motion information candidate list using the first motion information stored in the opposite position includes: deduplicating the first motion information stored in the opposite position, To update the GPM motion information candidate list; or, add the first motion information stored in the opposite position to the GPM motion information candidate list.
  • the first motion information stored in the opposite position is deduplicated information processing to update the GPM motion information candidate list, that is, the first motion information of the detection target position and the first motion information in the GPM motion information candidate list Whether the second motion information overlaps, the duplicate check detection result is obtained; when the first motion information representing the position of the object in the duplicate check detection result does not coincide with the second motion information in the GPM motion information candidate list, the first motion The mapping information of the information is added to the GPM motion information candidate list; when the first motion information representing the position of the object in the duplicate check detection result coincides with the second motion information in the GPM motion information candidate list, the object position is ignored The first movement information.
  • the first motion information stored in the opposite position is added to the GPM motion information candidate list, that is, there is no need to de-duplicate the first motion information of the object position, and the first motion information of the object position is directly added.
  • the mapping information of the motion information is added to the motion information candidate list.
  • the method further includes: when the number of candidates in the GPM motion information candidate list is greater than 2, obtaining the GPM motion information candidate list from the GPM motion information candidate list.
  • the first index information corresponding to the motion information of the first partition, and the second index information corresponding to the second partition motion information; the first index information and the second index information are written into a code stream.
  • the first index information corresponding to the motion information of the first partition is obtained from the GPM motion information candidate list, or the second partition motion
  • the second index information corresponding to the information; the first index information or the second index information is written into the code stream.
  • the first index information is used to indicate the mapping information of the motion information of the first partition in the motion information candidate list
  • the second index information is used to indicate the mapping information of the motion information of the second partition in the motion information candidate list.
  • the method further includes: obtaining first mapping information for the motion information of the first partition of the current block from the GPM motion information candidate list, and The second mapping information used for the motion information of the second partition of the current block; the motion information corresponding to the first mapping information and the motion information corresponding to the second mapping information are obtained from the merge candidate list; the first partition is used Calculate the first predicted value of the first partition using the motion information of the second partition, calculate the second predicted value of the second partition using the motion information of the second partition; compare the first predicted value and the second predicted value Perform weighted fusion to obtain the inter-frame prediction value of the current block.
  • the mv acquisition steps of the two partitions include the following:
  • merge_gpm_idx0[x0][y0] indicates the position of the mv of the A partition in the merge list
  • the position of the mv of the B partition in the merge list may be reduced by 1 because A first selected the option at the top position.
  • n represents the actual position of the mv selected by partition B in the merge candidate list, waiting for subsequent processing.
  • adding the mv information in list0 corresponding to sequence number 0 is exactly the same as the mv information corresponding to list1 in sequence number 1. They will correspond to the same option in the reconstructed mv candidate list, and m is the first index.
  • Information, n is the second index information, m and n correspond to the sequence numbers 0-3 in FIG. 13, and a two-tuple information is obtained according to the sequence number, and the two-tuple information can be mapped to a candidate in the merge list.
  • mvA is the mv vector
  • refIdxA is the reference frame corresponding to the motion vector
  • predListFlagA indicates which component of the list of the motion vector alternatives is currently selected.
  • N mergeCandList[mergeGPMCandMapList[n][0]]
  • mvB is the mv vector
  • refIdxB is the reference frame corresponding to the motion vector
  • predListFlagB indicates which component of the list of the motion vector alternatives is currently selected.
  • the above mv candidate list can also consist of one item:
  • N mergeCandList[mergeGPMCandMapList[n]>>1]
  • X mergeGPMCandMapList[n]&0x01,...
  • & is bit AND operation
  • &0x01 means to take out the last bit
  • the merge candidate list is checked and deduplicated first, and then the motion information candidate list is constructed, which can avoid duplicate motion information in the GPM motion information candidate list, and reduce The length of the candidate list of small GPM motion information improves the expression efficiency of motion information, thereby improving the efficiency of video encoding and decoding.
  • inter-frame prediction Based on the aforementioned inter-frame prediction method of this application, a specific implementation process of inter-frame prediction is provided, and the process includes:
  • the first step use conditions and grammatical analysis
  • Sequence layer parameter set (Sequence Parameter Set, SPS) allows the use of GPM prediction mode;
  • the coded image area of the current block belongs to a bi-directional predictive slice (B slice);
  • the current block is general merge prediction, merge_subblock prediction, non-affine prediction, and non-composed intra-inter prediction (CIIP);
  • the coding unit layer syntax description corresponding to the current block is shown in Table 2.
  • ae(v) represents context-adaptive arithmetic entropy-coded syntax element, that is, context-adaptive arithmetic entropy coding syntax element.
  • merge_gpm_idx0[x0][y0] indicates the position of the mv of partition A in the merge list
  • merge_gpm_idx1[x0][y0] indicates the position of the mv of partition B in the merge list
  • MaxNumGpmMergeCand is the length of the table after duplicate checking and deduplication Determined.
  • the merge list is constructed, and the merge list of the current block can be obtained.
  • the construction of the merge candidate list is consistent with the process of constructing the list in the regular merge mode.
  • the construction order is: the construction order of adjacent blocks in the Merge candidate list is: upper adjacent block B1, left adjacent block A1, upper right adjacent block B0, lower left adjacent block A0, upper left adjacent block B2, the motion vector information of the block col corresponding to the position of the reference frame is arranged in sequence of the neighboring blocks, and the sources of different directions are distinguished.
  • the historical reference block his, the average MV avg of the first and second candidate MVs, and the zero motion vector 0 can also be added to the merge list.
  • Step 2 Check and remove duplicates of the merge list constructed in the first step and construct the mv candidate list.
  • any one of the candidate list construction methods given in the foregoing embodiments of the present application is used for construction, and details are not described herein again.
  • Step 3 Obtain mv of two partitions (first partition A and then partition B)
  • the mv acquisition steps of the two partitions include the following:
  • merge_gpm_idx0[x0][y0] indicates the position of the mv of the A partition in the merge list
  • the position of the mv of the B partition in the merge list may be reduced by 1 because A first selected the option at the top position.
  • n represents the actual position of the mv selected by partition B in the merge candidate list, waiting for subsequent processing.
  • the corresponding mv information is stored in the processing variable of the A partition, and the subsequent prediction block structure is prepared.
  • predListFlagA predListFlagGPMM
  • mvA is the mv vector
  • refIdxA is the reference frame corresponding to the motion vector
  • predListFlagA indicates which component of the list of the motion vector alternatives is currently selected.
  • N mergeCandList[n]
  • predListFlagB predListFlagGPMN
  • mvB is the mv vector
  • refIdxB is the reference frame corresponding to the motion vector
  • predListFlagB indicates which component of the list of the motion vector alternatives is currently selected.
  • the mv acquisition steps of the two partitions include the following:
  • merge_gpm_idx0[x0][y0] indicates the position of the mv of the A partition in the merge list
  • the position of the mv of the B partition in the merge list may be reduced by 1 because A first selected the option at the top position.
  • n represents the actual position of the mv selected by partition B in the merge candidate list, waiting for subsequent processing.
  • adding the mv information in list0 corresponding to sequence number 0 is exactly the same as the mv information corresponding to list1 in sequence number 1.
  • m and n correspond to It is the sequence number 0-3 in Figure 13, and what the mapping gets is the two-tuple information in the square.
  • mvA is the mv vector
  • refIdxA is the reference frame corresponding to the motion vector
  • predListFlagA indicates which component of the list of the motion vector alternatives is currently selected.
  • N mergeCandList[mergeGPMCandMapList[n][0]]
  • mvB is the mv vector
  • refIdxB is the reference frame corresponding to the motion vector
  • predListFlagB indicates which component of the list of the motion vector alternatives is currently selected.
  • the above mv candidate list can also consist of one item:
  • N mergeCandList[mergeGPMCandMapList[n]>>1]
  • X mergeGPMCandMapList[n]&0x01,...
  • & is bit AND operation
  • &0x01 means to take out the last bit
  • Step 4 Encoder GPM prediction process
  • FIG. 14 is a schematic diagram of the prediction process of the GPM mode in an embodiment of the application.
  • the input of the prediction process includes:
  • predListFlagA and predListFlagB are predListFlagA and predListFlagB.
  • the prediction process for input information specifically includes:
  • the GPM mode reuses the existing conventional Merge list and constructs a one-way Merge list belonging to GPM in a parity check.
  • the Merge candidates of the two sub-partitions after GPM division are selected from the one-way Merge candidate list.
  • This step is the same as the general Inter prediction technique. That is, using the existing motion compensation method, the one-way motion compensation prediction value of each of the two partitions is calculated, which is used in the final weighted fusion process of the subsequent GPM.
  • the motion compensation here is the same as the conventional motion compensation process, that is, the pixel value of the corresponding area is found through the motion vector and copied.
  • the corresponding angle angleIdx and step distanceIdx will be obtained by looking up the table according to the selected partition mode index merge_gpm_partition_idx of the current block.
  • the mapping table of this partition mode is shown in Table 1.
  • Figure 15 is a schematic diagram of the current block division method in an embodiment of the application.
  • the dotted line represents the dividing line, where the white background is based on the current limiting conditions, and the shaded area is the current block.
  • the current block and the current block are divided
  • the mode calculates the offset value (OffsetX, OffsetX) of the upper left corner of the current block corresponding to the origin of the coordinate, and then determines the maximum movement range (112x112) of the largest size block (64x64) relative to the coordinate system. If the dividing line does not pass through the center point of the block, keep the relative position of the dividing line unchanged, and move the position of the block in the coordinate system to obtain a proper division.
  • the step length used when constructing the predefined weight matrix is only the first step length (that is, the dividing line must intersect the center point of the block).
  • the partFlip value is calculated by the following formula, as shown in the following:
  • partFlip is used to indicate the distribution positions of the A partition and the B partition in the current block.
  • partFlip is 0, which means that the side where the distance between the point and the dividing line weightIdx obtained in the following equation (8) is negative is the A partition, and the opposite side of the dividing line is the B partition; when partFlip is 1, the opposite is true, that is, weightIdx
  • the side with the positive value is the A partition, and the opposite side (ie, the negative side) is the B partition.
  • the key parameter shiftHor is calculated by the following two formulas:
  • shiftHor is the determination of the displacement direction between different dividing lines at the same angle. If its value is 0, the dividing line will shift on the Y axis; if its value is 1, the dividing line will shift on the X axis.
  • the current block has an offset value related to the height of the current block in the vertical direction at this time, and the offset information at this time is as follows:
  • offsetY ((-nH)>>1)+angleIdx ⁇ 16? (distanceIdx*nH)>>3:-((distanceIdx*nH)>>3) (6)
  • the current block has an offset value related to the width of the current block in the vertical direction.
  • the offset information at this time is as follows:
  • offsetX ((-nW)>>1)+angleIdx ⁇ 16? (distanceIdx*nW)>>3:-((distanceIdx*nW)>>3)
  • nW the width of the current block
  • nH the height of the current block
  • the weight index value of the current pixel can be calculated by the position of the pixel in the current block (represented by weightIdx), and then the current pixel can be calculated by formulas (8-10) To get the weight matrix of the current block.
  • weightIdx (((x*subW+offsetX) ⁇ 1)+1)*disLut[displacementX]+(((y*subH+offsetY) ⁇ 1)+1)*disLut[displacementY]. (8)
  • weightIdxL partFlip? 32+weightIdx:32--weightIdx (9)
  • clip3 represents the clamp operator, 0 represents the lower bound value, and 8 represents the upper bound value.
  • clip3(i, j, x) represents: when x is less than i, its value is i; when x is greater than j, its The value is j; when x is greater than or equal to i and less than or equal to j, the value is x.
  • Table 3 provides an example of the search for the distance arrangement of the geometric dividing line.
  • the disLut[] used in formula (8) is shown in Table 3.
  • subW and subH represent the downsampling rate. If the YUV format of the current block is 420 The format, both subW and subH can be 2.
  • the disLut[] used among them is shown in Table 3.
  • subW and subH indicate the downsampling rate, if it is 420 format, both subW and subH are 2.
  • Luminance does not need to be down-sampled, and the chroma weight is obtained by down-sampling the luminance weight, see section S3.2.
  • weightIdx the absolute value of weightIdx
  • BitDepth represents the bit depth
  • offset1 is used for rounding
  • shift1 is used to restore the weighted average predicted value to the same bit depth as the input video
  • the storage process is realized by using the motion mask matrix of the current brightness block. If the predicted value is completely from the A partition, then the motion vector of the A partition is recorded, and if it is completely from the B partition, the motion vector of the B partition is recorded; otherwise, at the same time Record the motion vectors of the two partitions.
  • the calculation of the motion mask is basically the same as the process of calculating the brightness weight matrix. First, the offset value offset is calculated. The calculation of the offset is shown in equations (14-17):
  • the offset information at this time is as follows:
  • the offset information at this time is as follows:
  • offsetX ((-cbWidth)>>1)+(angleIdx ⁇ 16?(distanceIdx*cbWidth)>>3:-((distanceIdx*cbWidth)>>3)) (16)
  • cbWidth and cbHeight are the width and height of the motion mask matrix corresponding to the GPM prediction block (that is, the width and height of the luminance component of the current block).
  • motionIdx (((4*xSbIdx+offsetX) ⁇ 1)+5)*disLut[displacementX]+(((4*ySbIdx+offsetY) ⁇ 1)+5)*disLut[displacementY] (18)
  • (XSbIdx, ySbIdx) represents the sub-block coordinates of each 4 ⁇ 4 sub-block (subblock, sb) in the current CU.
  • the output of the prediction process includes: predicted pixel values predSamplesL, predSamplesCb, and predSamplesCr.
  • the current block stores the MVA of the first partition
  • the current block stores the MVB of the second partition
  • the fifth step the encoding process of the encoder for the relevant syntax of the GPM prediction mode
  • the encoder regards GPM and other inter-frame prediction modes as competing modes, selects between modes according to rate-distortion optimization (RDO) or other strategies, and transmits the selected result to the decoding in the form of syntax elements in the code stream end. That is, the write operation of the syntax described in section 1).
  • RDO rate-distortion optimization
  • This process is opposite to the parsing process. Firstly, the reference option position information selected in the merge list of the two partitions A and B of m and n is obtained, and then the syntax elements are assigned according to the following formula.
  • FIG. 17 is a schematic diagram of the second process of the intra prediction method provided by an embodiment of the application, which is applied to a decoder. As shown in FIG. 17, the method includes:
  • Step 301 Parse the code stream and determine the prediction mode parameters of the current block
  • Step 302 When the prediction mode parameter indicates that the current block uses the geometric partition prediction mode GPM to determine the inter prediction value, construct a merge candidate list of the current block;
  • Step 303 Construct a GPM motion information candidate list according to the first motion information in the merge candidate list of the current block, where the construction process includes deduplication information processing on the first motion information;
  • Step 304 Determine the inter-frame prediction value of the current block according to the GPM motion information candidate list.
  • the constructing the GPM motion information candidate list according to the first motion information in the merge candidate list of the current block includes: initializing the GPM motion information candidate list of the current block; acquiring according to a preset The strategy is to obtain the first motion information in the merge candidate list in sequence; detect whether the first motion information overlaps with the second motion information in the GPM motion information candidate list, and obtain the duplicate check detection result; based on the check The re-detection result uses the first motion information to update the GPM motion information candidate list to obtain the constructed GPM motion information candidate list.
  • the step of sequentially obtaining the first motion information in the merge candidate list according to a preset acquisition strategy includes: according to the construction order of neighboring blocks in the merge candidate list and reference list indication information, Acquire the first motion information in the merge candidate list in sequence; wherein the reference list indication information is used to indicate the motion information of the first reference list or the motion information of the second reference list that is preferentially used.
  • the step of sequentially acquiring the first motion information in the merge candidate list according to the construction order of the neighboring blocks in the merge candidate list and the reference list indication information includes: The construction order of adjacent blocks and the reference list indication information determine the target position of the merge candidate list; if the first motion information in the target position is available, obtain the first motion information stored in the target position; If the first motion information in the target position is unavailable, the first motion information stored in the opposite position of the target position is acquired.
  • the step of sequentially obtaining the first motion information in the merge candidate list according to a preset acquisition strategy includes: sequentially obtaining the first motion information in the merge candidate list according to the construction order of adjacent blocks in the merge candidate list. Merge all available first motion information in the candidate list.
  • the specific deduplication step may include: when the duplicate check detection result indicates that the first motion information does not coincide with the second motion information in the GPM motion information candidate list, the first motion information The motion information is added to the GPM motion information candidate list; when the duplicate check detection result indicates that the first motion information overlaps with the second motion information in the GPM motion information candidate list, the current first motion information is ignored; According to a preset acquisition strategy, the next first motion information in the merge candidate list is acquired, and the next first motion information is continuously processed to remove duplicate information to update the GPM motion information candidate list.
  • the specific deduplication step may further include: when the duplicate check detection result indicates that the first motion information does not coincide with the second motion information in the GPM motion information candidate list, the second motion information A motion information is added to the GPM motion information candidate list; when the duplicate check detection result indicates that the first motion information overlaps the second motion information, the opposite position of the position where the first motion information is located is obtained Use the first motion information stored in the opposite position to update the GPM motion information candidate list; obtain the next first motion information in the merge candidate list according to the preset acquisition strategy, and Continue to de-duplicate the next first motion information to update the GPM motion information candidate list.
  • the updating the GPM motion information candidate list using the first motion information stored in the opposite position includes: deduplicating the first motion information stored in the opposite position, To update the GPM motion information candidate list; or, add the first motion information stored in the opposite position to the GPM motion information candidate list.
  • the first motion information stored in the opposite position is deduplicated information processing to update the GPM motion information candidate list, that is, the first motion information of the detection target position and the first motion information in the GPM motion information candidate list Whether the second motion information overlaps, the duplicate check detection result is obtained; when the first motion information representing the object position of the duplicate check detection result does not coincide with the second motion information in the GPM motion information candidate list, the first motion information of the object position The motion information is added to the GPM motion information candidate list; when the first motion information representing the object position in the duplicate check detection result overlaps the second motion information in the GPM motion information candidate list, the first motion information of the object position is ignored. Sports information.
  • the first motion information stored in the opposite position is added to the GPM motion information candidate list, that is, there is no need to deduplicate the first motion information of the object position, and the first motion information of the object position is directly added.
  • the motion information is added to the motion information candidate list.
  • the GPM motion information candidate list stores at least part of the first motion information in the merge candidate list, or stores the mapping information of at least part of the first motion information in the merge candidate list.
  • the first motion information is added to the GPM motion information candidate
  • the list includes: adding the mapping information of the first motion information to the GPM motion information candidate list; wherein, the mapping information of the first motion information includes: the first motion information is in the merge candidate list The serial number and reference list instructions.
  • the constructing the GPM motion information candidate list according to the first motion information in the merge candidate list of the current block includes: according to the first motion information in the merge candidate list of the current block Motion information, respectively constructing a first motion information candidate list corresponding to the first partition of the current block, and a second motion information candidate list corresponding to the second partition of the current block; wherein, the construction process includes The movement information is processed to remove duplicate information.
  • the first motion information in the merge candidate list of the current block is checked and duplicated, and then the first motion information candidate list of the A partition is constructed according to the A partition mv selection strategy; according to the B partition
  • the user determines the priority of the use of motion information and the arrangement position of the motion information in the motion information candidate list for the selection strategy of the A partition, and the user determines the priority of the use of the motion information and the motion information in the motion information for the selection strategy of the B partition.
  • the arrangement position in the candidate list the higher the priority, the higher the position in the motion information candidate list.
  • the method further includes: parsing the code stream to determine the first index corresponding to the motion information of the first partition of the current block in the GPM motion information candidate list Information, and the second index information corresponding to the second partition motion information of the current block; based on the first index information, obtain the motion information of the first partition from the GPM motion information candidate list; based on the first index information Second index information, obtaining the motion information of the second partition from the GPM motion information candidate list; using the motion information of the first partition to calculate the first prediction value of the first partition, and using the second partition Calculate the second prediction value of the second partition from the motion information; perform weighted fusion on the first prediction value and the second prediction value to obtain the inter-frame prediction value of the current block.
  • the code stream is parsed, and when the number of candidates in the GPM motion information candidate list is greater than 2, the first index information corresponding to the motion information of the first partition and the first index information corresponding to the motion information of the first partition are obtained from the GPM motion information candidate list. Second index information corresponding to the second partition motion information;
  • the first index information corresponding to the motion information of the first partition is obtained from the GPM motion information candidate list, or the second partition motion information corresponds to The second index information.
  • the method also includes: the encoder obtains the absolute information of the weight index corresponding to the pixel in the current block, and determines the absolute information of the weight index corresponding to the pixel in the current block and the absolute information of the weight index corresponding to the pixel in the current block.
  • the weight value corresponding to the weight index absolute information and then based on the weight value corresponding to the weight index absolute information, the weight value of the first pixel in the first partition and the second pixel in the second partition are determined from the pixels in the current block Then, according to the weight value of the first pixel in the first partition and the weight value of the second pixel in the second partition, the first weight value of the pixel in the current block corresponding to the first partition is determined, and finally According to the first weight value, the second weight value of the pixel point in the current block corresponding to the second partition is determined.
  • the encoder can multiply the first predicted value of each pixel by the first weight value, and add the product of the second predicted value and the second weight value of each pixel to complete
  • the weighted fusion of pixels in the current block obtains the inter-frame prediction value of the current block.
  • the decoder parses the code stream to obtain the first index information of the first partition and the second index information of the second partition, and then determines the motion information of the respective partition from the motion information candidate list established by the decoder according to the index information.
  • the method for the decoder side to check and remove duplicates of the merge list to construct the GPM motion information candidate list is the same as that of the decoder side, and other inter-frame prediction processes at the decoder side are the same as those on the encoder side, and will not be repeated here.
  • the merge candidate list is first checked and deduplicated, and then the motion information candidate list is constructed, which can avoid GPM motion.
  • the motion information candidate list is constructed, which can avoid GPM motion.
  • There are repetitive motion information in the information candidate list which reduces the length of the GPM motion information candidate list, improves the expression efficiency of motion information, and thereby improves the efficiency of video encoding and decoding.
  • FIG. 18 is a schematic diagram of the first composition structure of the encoder in an embodiment of the present application. As shown in FIG. 18, the encoder 40 includes:
  • the determining unit 401 is configured to determine the prediction mode parameter of the current block
  • the first construction unit 402 is configured to construct a merge candidate list of the current block when the prediction mode parameter indicates that the current block uses the geometric partition prediction mode GPM to determine the inter prediction value;
  • the first processing unit 403 is configured to construct a GPM motion information candidate list according to the first motion information in the merge candidate list of the current block, wherein the construction process includes deduplication of the first motion information Information processing;
  • the first prediction unit 404 is configured to determine the inter prediction value of the current block according to the GPM motion information candidate list.
  • the first processing unit 403 is specifically configured to initialize the GPM motion information candidate list of the current block; according to a preset acquisition strategy, sequentially acquire the first motion information in the merge candidate list; and detect Whether the first motion information overlaps with the second motion information in the GPM motion information candidate list to obtain a duplicate check detection result; based on the duplicate check detection result, the GPM motion information candidate list is updated by using the first movement information, Obtain the completed GPM motion information candidate list.
  • the first processing unit 403 is specifically configured to sequentially obtain the first motion information in the merge candidate list according to the construction order of neighboring blocks in the merge candidate list and the reference list indication information.
  • the reference list indication information is used to indicate the motion information of the first reference list or the motion information of the second reference list that is preferentially used.
  • the first processing unit 403 is specifically configured to determine the target position of the merge candidate list according to the construction order of neighboring blocks in the merge candidate list and the reference list indication information; if said If the first motion information in the target position is available, obtain the first motion information stored in the target position; if the first motion information in the target position is not available, obtain the first motion information stored in the opposite position of the target position One sports information.
  • the first processing unit 403 is specifically configured to sequentially obtain all available first motion information in the merge candidate list according to the construction order of adjacent blocks in the merge candidate list.
  • the first processing unit 403 is specifically configured to: when the duplicate check detection result indicates that the first motion information does not coincide with the second motion information in the GPM motion information candidate list, the The first motion information is added to the GPM motion information candidate list; when the duplicate check detection result indicates that the first motion information coincides with the second motion information in the GPM motion information candidate list, the current first motion information is ignored 1 motion information; or, when the duplicate check detection result indicates that the first motion information overlaps the second motion information, obtain the first motion information stored in the opposite position of the position where the first motion information is located, Use the first motion information stored in the opposite position to update the GPM motion information candidate list; according to the preset acquisition strategy, obtain the next first motion information in the merge candidate list, and continue to check the next first motion information Perform deduplication information processing to update the GPM motion information candidate list.
  • the first processing unit 403 is specifically configured to perform deduplication processing on the first motion information stored in the opposite position to update the GPM motion information candidate list; or, to update the GPM motion information candidate list; or The first motion information stored in the opposite position is added to the GPM motion information candidate list.
  • the GPM motion information candidate list stores at least part of the first motion information in the merge candidate list, or stores the mapping information of at least part of the first motion information in the merge candidate list .
  • the first processing unit 403 when the mapping information of at least part of the first motion information in the merge candidate list is stored in the GPM motion information candidate list, the first processing unit 403 is specifically configured to: The mapping information of the motion information is added to the GPM motion information candidate list; wherein, the mapping information of the first motion information includes: the sequence number of the first motion information in the merge candidate list and reference list indication information.
  • the first processing unit 403 is specifically configured to construct the first motion corresponding to the first partition of the current block according to the first motion information in the merge candidate list of the current block.
  • the first prediction unit 404 is specifically configured to obtain the motion information for the first partition of the current block from the GPM motion information candidate list, and for the first partition of the current block. Motion information of the second partition; using the motion information of the first partition to calculate the first predictive value of the first partition, and using the motion information of the second partition to calculate the second predictive value of the second partition; The first predicted value and the second predicted value are weighted and merged to obtain the inter-frame predicted value of the current block.
  • the encoder 40 further includes: a writing unit (not shown in the figure), a writing unit configured to, when the number of candidates in the GPM motion information candidate list is greater than 2, Obtain the first index information corresponding to the motion information of the first partition and the second index information corresponding to the second partition motion information from the GPM motion information candidate list; combine the first index information with the The second index information is written into the code stream;
  • the writing unit is further configured to obtain the first index information corresponding to the motion information of the first partition from the GPM motion information candidate list when the number of candidates in the GPM motion information candidate list is equal to 2, or Second index information corresponding to the second partition motion information; write the first index information or the second index information into a code stream.
  • FIG. 19 is a schematic diagram of the second composition structure of the encoder in the embodiment of the present application.
  • the encoder 40 includes:
  • the merge candidate list is first checked and deduplicated, and then the motion information candidate list is constructed, which can avoid GPM motion.
  • the motion information candidate list is constructed, which can avoid GPM motion.
  • There are repetitive motion information in the information candidate list which reduces the length of the GPM motion information candidate list, improves the expression efficiency of motion information, and thereby improves the efficiency of video encoding and decoding.
  • FIG. 20 is a schematic diagram of the first composition structure of the decoder in an embodiment of the present application.
  • the decoder 50 includes:
  • the parsing unit 501 is configured to parse the code stream and determine the prediction mode parameter of the current block
  • the second construction unit 502 is configured to construct a merge candidate list of the current block when the prediction mode parameter indicates that the current block uses the geometric division prediction mode GPM to determine the inter prediction value;
  • the second processing unit 503 is configured to construct a GPM motion information candidate list according to the first motion information in the merge candidate list of the current block, wherein the construction process includes deduplication of the first motion information Information processing;
  • the second prediction unit 504 is configured to determine the inter prediction value of the current block according to the GPM motion information candidate list.
  • the second processing unit 503 is specifically configured to initialize the GPM motion information candidate list of the current block; according to a preset acquisition strategy, sequentially acquire the first motion information in the merge candidate list; and detect Whether the first motion information overlaps with the second motion information in the GPM motion information candidate list to obtain a duplicate check detection result; based on the duplicate check detection result, the GPM motion information candidate list is updated by using the first movement information, Obtain the completed GPM motion information candidate list.
  • the second processing unit 503 is specifically configured to sequentially obtain the first motion information in the merge candidate list according to the construction order of neighboring blocks in the merge candidate list and the reference list indication information.
  • the reference list indication information is used to indicate the motion information of the first reference list or the motion information of the second reference list that is preferentially used.
  • the second processing unit 503 is specifically configured to determine the target position of the merge candidate list according to the construction order of adjacent blocks in the merge candidate list and the reference list indication information; if said If the first motion information in the target position is available, obtain the first motion information stored in the target position; if the first motion information in the target position is not available, obtain the first motion information stored in the opposite position of the target position One sports information.
  • the second processing unit 503 is specifically configured to sequentially obtain all available first motion information in the merge candidate list according to the construction order of adjacent blocks in the merge candidate list.
  • the second processing unit 503 is specifically configured to: when the duplicate check detection result indicates that the first motion information does not coincide with the second motion information in the GPM motion information candidate list, it will The first motion information is added to the GPM motion information candidate list; when the duplicate check detection result indicates that the first motion information coincides with the second motion information in the GPM motion information candidate list, the current first motion information is ignored 1 motion information; or, when the duplicate check detection result indicates that the first motion information overlaps the second motion information, obtain the first motion information stored in the opposite position of the position where the first motion information is located, Use the first motion information stored in the opposite position to update the GPM motion information candidate list; according to the preset acquisition strategy, obtain the next first motion information in the merge candidate list, and continue to check the next first motion information Perform deduplication information processing to update the GPM motion information candidate list.
  • the second processing unit 503 is specifically configured to perform deduplication processing on the first motion information stored in the opposite position to update the GPM motion information candidate list; or The first motion information stored in the opposite position is added to the GPM motion information candidate list.
  • the GPM motion information candidate list stores at least part of the first motion information in the merge candidate list, or stores the mapping information of at least part of the first motion information in the merge candidate list .
  • the second processing unit 503 when the mapping information of at least part of the first motion information in the merge candidate list is stored in the GPM motion information candidate list, the second processing unit 503 is specifically configured to transfer the first motion information
  • the mapping information of the motion information is added to the GPM motion information candidate list; wherein, the mapping information of the first motion information includes: the sequence number of the first motion information in the merge candidate list and reference list indication information.
  • the second processing unit 503 is specifically configured to construct the first motion corresponding to the first partition of the current block according to the first motion information in the merge candidate list of the current block.
  • the second prediction unit 504 is specifically configured to parse the code stream, determine the first index information corresponding to the motion information of the first partition of the current block in the GPM motion information candidate list, and Second index information corresponding to the second partition motion information of the current block; based on the first index information, obtain the motion information of the first partition from the GPM motion information candidate list; based on the second index information, Obtain the motion information of the second partition from the GPM motion information candidate list; use the motion information of the first partition to calculate the first predicted value of the first partition, and use the motion information of the second partition to calculate The second predicted value of the second partition; weighted fusion is performed on the first predicted value and the second predicted value to obtain the inter-frame predicted value of the current block.
  • FIG. 21 is a schematic diagram of the second composition structure of the decoder in an embodiment of the present application.
  • the decoder 50 includes:
  • the merge candidate list is first checked and deduplicated, and then the motion information candidate list is constructed, which can avoid There are repetitive motion information in the GPM motion information candidate list, which reduces the length of the GPM motion information candidate list, improves the expression efficiency of motion information, and thereby improves the efficiency of video encoding and decoding.
  • the functional modules in this embodiment may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
  • the above-mentioned integrated unit can be realized in the form of hardware or software function module.
  • an embodiment of the present application provides a storage medium on which a computer program is stored.
  • the computer program is executed by the first processor, the inter-frame prediction method of the encoder is implemented; or, the computer program is processed by the second processor.
  • the decoder is executed, the inter-frame prediction method of the decoder is realized.
  • the prediction mode parameter of the current block is determined; when the prediction mode parameter indicates that the current block uses the geometric partition prediction mode GPM to determine the inter prediction value, the fusion merge candidate list of the current block is constructed; according to The first motion information in the merge candidate list of the current block constructs a GPM motion information candidate list, and the inter prediction value of the current block is determined according to the GPM motion information candidate list.
  • the merge candidate list is checked and deduplicated first, and then the motion information candidate list is constructed, which can avoid duplicate motion information in the GPM motion information candidate list and reduce GPM
  • the length of the motion information candidate list improves the expression efficiency of motion information, thereby improving the efficiency of video encoding and decoding.

Landscapes

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

Abstract

本申请实施例提供了一种帧间预测方法、编码器、解码器及存储介质,包括:确定当前块的预测模式参数;当所述预测模式参数指示所述当前块使用几何划分预测模式GPM确定帧间预测值时,构造所述当前块的融合merge候选列表;根据所述当前块的所述merge候选列表中的第一运动信息,构建GPM运动信息候选列表,根据所述GPM运动信息候选列表,确定所述当前块的帧间预测值。这样,利用merge候选列表构建GPM运动信息候选列表时,先对merge候选列表进行查重去重处理,再构建运动信息候选列表,可以避免GPM运动信息候选列表中存在重复的运动信息,减小GPM运动信息候选列表长度,提高了运动信息的表达效率,从而提高视频编码和解码效率。

Description

一种帧间预测方法、编码器、解码器及存储介质 技术领域
本申请实施例涉及视频图像处理技术,涉及但不限于帧间预测方法、编码器、解码器及存储介质。
背景技术
在视频编解码,对当前块进行编解码的过程中,除了有帧内预测外,还可以采用帧间预测方式。帧间预测可以包括运动估计和运动补偿,针对运动补偿在多功能视频编码(Versatile Video Coding,VVC)的制定过程中,引入了正方形和矩形之外的其他形状划分。首先是三角形划分模式(Triangular partition Mode,TPM)的引入,以一个正方形或矩形的对角线、或反对角线为分割线,得到三角形的预测单元,从而更灵活的表示帧间预测数据,降低预测误差,从而提高编码效率。
在联合视频专家组(Joint Video Experts Team,JVET)会议中,引入了一种比TPM更为灵活的帧间几何划分预测模式(Geometrical partition Mode,GPM),GPM的Merge列表延续了VVC参考软件测试平台(VVC Test Model,VTM)8.0版本之前的TPM的Merge列表的构造方式,重用现有的常规Merge列表,但是因为不同区域的运动特性不同,GPM的两个分区都只使用单向预测进行构造,所以目前的设计选择了按照一奇一偶的方式,在每个merge列表的选项中仅选择一个方向的运动矢量对GPM运动信息候选列表进行构造。尽管在Merge列表的构造过程中有查重去重的操作,但构造出的运动信息候选列表中仍然大概率会出现重复选项,严重影响到运动信息的表达效率,从而降低视频编码和解码效率。
发明内容
本申请实施例提供了一种帧间预测方法、编码器、解码器及存储介质,能够提高运动信息的表达效率,并提高视频编码和解码效率。
第一方面,本申请实施例提供了一种帧间预测方法,应用于编码器,所述方法包括:
确定当前块的预测模式参数;
当所述预测模式参数指示所述当前块使用几何划分预测模式GPM确定帧间预测值时,构造所述当前块的融合merge候选列表;
根据所述当前块的所述merge候选列表中的第一运动信息,构建GPM运动信息候选列表,其中,所述构建过程包括对所述第一运动信息进行去重复信息的处理;
根据所述GPM运动信息候选列表,确定所述当前块的帧间预测值。
第二方面,本申请实施例提供了一种帧间预测方法,应用于解码器,所述方法包括:
解析码流,确定当前块的预测模式参数;
当所述预测模式参数指示所述当前块使用几何划分预测模式GPM确定帧间预测值时,构造所述当前块的融合merge候选列表;
根据所述当前块的所述merge候选列表中的第一运动信息,构建GPM运动信息候选列表,其中,所述构建过程包括对所述第一运动信息进行去重复信息的处理;
根据所述GPM运动信息候选列表,确定所述当前块的帧间预测值。
第三方面,本申请实施例提供了一种编码器,包括:
确定单元,用于确定当前块的预测模式参数;
第一构造单元,用于当所述预测模式参数指示所述当前块使用几何划分预测模式GPM确定帧间预测值时,构造所述当前块的融合merge候选列表;
第一处理单元,用于根据所述当前块的所述merge候选列表中的第一运动信息,构建GPM运动信息候选列表,其中,所述构建过程包括对所述第一运动信息进行去重复信息的处理;
第一预测单元,用于根据所述GPM运动信息候选列表,确定所述当前块的帧间预测值。
第四方面,本申请实施例提供了一种解码器,包括:
解析单元,用于解析码流,确定当前块的预测模式参数;
第二构造单元,用于当所述预测模式参数指示所述当前块使用几何划分预测模式GPM确定帧间预测值时,构造所述当前块的融合merge候选列表;
第二处理单元,用于根据所述当前块的所述merge候选列表中的第一运动信息,构建GPM运动信息候选列表,其中,所述构建过程包括对所述第一运动信息进行去重复信息的处理;
第二预测单元,用于根据所述GPM运动信息候选列表,确定所述当前块的帧间预测值。
第五方面,本申请实施例还提供了一种编码器,包括:第一存储器和第一处理器;所述第一存储器存储有可在第一处理器上运行的计算机程序,所述第一处理器执行所述程序时实现编码器的所述帧间预测方法。
第六方面,本申请实施例还提供了一种解码器,包括:第二存储器和第二处理器;所述第二存储器存储有可在 第二处理器上运行的计算机程序,所述第二处理器执行所述程序时实现解码器的所述帧间预测方法。
第七方面,本申请实施例提供了一种存储介质,包括:其上存储有计算机程序,该计算机程序被第一处理器执行时,实现编码器的所述帧间预测方法;或者,该计算机程序被第二处理器执行时,实现解码器的所述帧间预测方法。
本申请实施例提供了一种帧间预测方法、编码器、解码器及存储介质,包括:确定当前块的预测模式参数;当所述预测模式参数指示所述当前块使用几何划分预测模式GPM确定帧间预测值时,构造所述当前块的融合merge候选列表;根据所述当前块的所述merge候选列表中的第一运动信息,构建GPM运动信息候选列表,根据所述GPM运动信息候选列表,确定所述当前块的帧间预测值。这样,利用merge候选列表构建GPM运动信息候选列表时,先对merge候选列表进行查重去重处理,再构建运动信息候选列表,可以避免GPM运动信息候选列表中存在重复的运动信息,减小GPM运动信息候选列表长度,提高了运动信息的表达效率,从而提高视频编码和解码效率。
附图说明
图1为本申请实施例提供的一种视频编码系统的组成框图示意图;
图2为本申请实施例提供的一种视频解码系统的组成框图示意图;
图3为本申请实施例提供的帧内预测方法的第一流程示意图;
图4a-4b为TPM模式两种划分示意图;
图5a-5g为GPM模式的7种划分示意图;
图6为本申请实施例提供的示例性当前块的角度和步长的示意图;
图7为本申请实施例中空间Merge候选列表的相邻块位置示意图;
图8为本申请实施例中merge列表的第一组成结构示意图;
图9为本申请实施例中去重处理方法的流程示意图;
图10为本申请实施例中merge列表的第二组成结构示意图;
图11为本申请实施例中GPM运动信息候选列表的第一组成结构示意图;
图12为本申请实施例中GPM运动信息候选列表的第二组成结构示意图;
图13为本申请实施例中GPM运动信息候选列表的第三组成结构示意图;
图14为本申请实施例中GPM模式预测流程示意图;
图15为本申请实施例中当前块的划分方式示意图;
图16a为本申请实施例提供的示例性的亮度的权重值的示意图;
图16b为本申请实施例提供的示例性的色度的权重值的示意图;
图17为本申请实施例提供的帧内预测方法的第二流程示意图;
图18为本申请实施例中编码器的第一组成结构示意图;
图19为本申请实施例中编码器的第二组成结构示意图
图20为本申请实施例中解码器的第一组成结构示意图;
图21为本申请实施例中解码器的第二组成结构示意图。
具体实施方式
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。
本申请提供一种视频编码系统,如图1所示,该视频编码系统11包括:变换单元111、量化单元112、模式选择和编码控制逻辑单元113、帧内预测单元114、帧间预测单元115(包括:运动补偿和运动估计)、反量化单元116、反变换单元117、环路滤波单元118、编码单元119和解码图像缓存单元110;针对输入的原始视频信号,通过编码树块(Coding Tree Unit,CTU)的划分可以得到一个视频重建块,通过模式选择和编码控制逻辑单元113确定编码模式,然后,对经过帧内或帧间预测后得到的残差像素信息,通过变换单元111、量化单元112对该视频重建块进行变换,包括将残差信息从像素域变换到变换域,并对所得的变换系数进行量化,用以进一步减少比特率;帧内预测单元114用于对该视频重建块进行帧内预测;其中,帧内预测单元114用于确定该视频重建块的最优帧内预测模式(即目标预测模式);帧间预测单元115用于执行所接收的视频重建块相对于一或多个参考帧中的一或多个块的帧间预测编码,以提供时间预测信息;其中吗,运动估计为产生运动向量的过程,所述运动向量可以估计该视频重建块的运动,然后,运动补偿基于由运动估计所确定的运动向量执行运动补偿;在确定帧间预测模式之后,帧间预测单元115还用于将所选择的帧间预测数据提供到编码单元119,而且,将所计算确定的运动向量数据也发送到编码单元119;此外,反量化单元116和反变换单元117用于该视频重建块的重构建,在像素域中重构建残差块,该重构建残差块通过环路滤波单元118去除方块效应伪影,然后,将该重构残差块添加到解码图像缓存单元111的帧中的一个预测性块,用以产生经重构建的视频重建块;编码单元119是用于编码各种编码参数及量化后的变换系数。而解码图像缓存单元110用于存放重构建的视频重建块,用于预测参考。随着视频图像编码的进行,会不断生成新的重构建的视频重建块,这些重构建的视频重建块都会被存放在解码图像缓存单元110中。
本申请实施例提供一种视频解码系统,图2为本申请实施例视频编码系统的组成结构示意图,如图2所示,该视频编码系统21包括:解码单元211、反变换单元217,与反量化单元212、帧内预测单元213、运动补偿单元214、 环路滤波单元215和解码图像缓存单元216单元;输入的视频信号经过视频编码系统11进行编码处理之后,输出该视频信号的码流;该码流输入视频解码系统21中,首先经过解码单元211,用于得到解码后的变换系数;针对该变换系数通过反变换单元217与反量化单元212进行处理,以便在像素域中产生残差块;帧内预测单元213可用于基于所确定的帧内预测方向和来自当前帧或图片的先前经解码块的数据而产生当前视频解码块的预测数据;运动补偿单元214是通过剖析运动向量和其他关联语法元素来确定用于视频解码块的预测信息,并使用该预测信息以产生正被解码的视频解码块的预测性块;通过对来自反变换单元217与反量化单元212的残差块与由帧内预测单元213或运动补偿单元214产生的对应预测性块进行求和,而形成解码的视频块;该解码的视频信号通过环路滤波单元215以便去除方块效应伪影,可以改善视频质量;然后将经解码的视频块存储于解码图像缓存单元216中,解码图像缓存单元216存储用于后续帧内预测或运动补偿的参考图像,同时也用于视频信号的输出,得到所恢复的原始视频信号。
本申请实施例提供的一种帧间预测方法主要作用于视频编码系统11的帧间预测单元115和视频解码系统21的帧内预测单元,即运动补偿单元214;也就是说,如果在视频编码系统11能够通过本申请实施例提供的帧间预测方法得到一个较好的预测效果,那么,对应地,在解码端,也能够改善视频解码恢复质量。
基于此,下面结合附图和实施例对本申请的技术方案进一步详细阐述。在进行详细阐述之前,需要说明的是,说明书通篇中提到的“第一”、“第二”、“第三”等,仅仅是为了区分不同的特征,不具有限定优先级、先后顺序、大小关系等功能。
本申请实施例提供一种帧间预测方法,该方法应用于视频编码设备,即编码器。该方法所实现的功能可以通过视频编码设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该视频编码设备至少包括处理器和存储介质。
图3为本申请实施例提供的帧内预测方法的第一流程示意图,该方法应用于编码器,如图3所示,该方法包括:
步骤101、确定当前块的预测模式参数。
需要说明的是,预测模式参数指示了当前块的编码模式及该模式相关的参数。通常可以采用率失真优化(Rate Distortion Optimization,RDO)的方式确定当前块的预测模式参数。
具体地,在一些实施例中,编码器确定当前块的预测模式参数的实现为:编码器确定当前块的待预测图像分量;基于当前块的参数,利用多种预测模式分别对待预测图像分量进行预测编码,计算多种预测模式下每一种预测模式对应的率失真代价结果;从计算得到的多个率失真代价结果中选取最小率失真代价结果,并将最小率失真代价结果对应的预测模式确定为当前块的预测模式参数。
也就是说,在编码器侧,针对当前块可以采用多种预测模式分别对待预测图像分量进行编码。这里,多种预测模式通常包括有帧间预测模式、传统帧内预测模式和非传统帧内预测模式,而传统帧内预测模式又可以包括有直流(Direct Current,DC)模式、平面(PLANAR)模式和角度模式等,非传统帧内预测模式又可以包括有MIP模式、跨分量线性模型预测(Cross-component Linear Model Prediction,CCLM)模式、帧内块复制(Intra Block Copy,IBC)模式和PLT(Palette)模式等,帧间预测模式可以包括:帧间几何划分预测模式(Geometrical partition Mode,GPM)、三角预测模式(Triangle partition mode,TPM)等。
这样,在利用多种预测模式分别对当前块进行编码之后,可以得到每一种预测模式对应的率失真代价结果;然后从所得到的多个率失真代价结果中选取最小率失真代价结果,并将该最小率失真代价结果对应的预测模式确定为当前块的预测模式参数;如此,最终可以使用所确定的预测模式对当前块进行编码,而且在这种预测模式下,可以使得预测残差小,能够提高编码效率。
步骤102、当预测模式参数指示当前块使用几何划分预测模式GPM确定帧间预测值时,构造当前块的融合merge候选列表;
在本申请实施例中,预测模式参数指示使用GPM确定当前块的帧间预测时,构造当前块的merge候选列表。merge候选列表包含用于对所述当前块进行运动预测的多项候选运动矢量(motion vector,MV),mv为用于帧间预测的二维矢量,其提供从解码图片中的坐标到参考图片中的坐标的偏移量。
帧间预测是根据当前块的参考帧中的像素,通过mv指示参考帧中用于预测的像素的位置,产生当前块的预测值。参考帧作为短期参考图片或长期参考图片的图片或帧,参考帧含有可以按解码顺序用于后续图片的解码过程中的帧间预测的样本。
编码单元(coding unit,CU),对应于图像中一个A×B的矩形区域,包含A×B亮度像素或/和它对应的色度像素,A为矩形的宽,B为矩形的高,A和B可以相同也可以不同,A和B的取值通常为2的整数次幂,例如128、64、32、16、8、4。一个编码单元包含预测图像和残差图像,预测图像与残差图像相加得到编码单元的重建图像。预测图像通过帧内预测或帧间预测生成,残差图像通过对变换系数进行反量化和反变换处理生成。
融合编码(merge):一种帧间编码方式,其运动矢量不直接在码流中传递。当前块可根据融合序号(merge index)从融合候选列表(merge candidate list)中选择对应的运动信息,将融合候选的运动信息作为当前块的运动信息,或者对融合候选的运动信息经过缩放后作为当前块的运动信息;当前块根据运动信息确定帧间预测值。
通常情况下,视频序列的图像被划分成图像块进行编码。在视频编码混合框架中,通常只以正方形和矩形的块为单位实施预测、变换和量化等编码技术。然而实际中运动物体的边缘并不一定都是水平或者垂直方向的,即使是,也不一定刚好在可以划分的块边缘上,而运动边缘两侧的运动矢量往往不同,这样在编码的过程中以一个整块进行运动预测和补偿,易产生较大的预测误差,从而导致编码效率受限。
在VVC的制定过程中,TPM引入以一个正方形或矩形的对角线、或反对角线为分割线,得到三角形的预测单元,如图4a-图4b所示,从而更灵活的表示帧间预测数据,降低预测误差,从而提高编码效率。
在JVET第15次会议中,提出了一种比TPM更为灵活的帧间几何划分帧间预测模式(Geometrical partitioning for  inter blocks,GEO),经过两次会议的讨论,JVET正式将GEO预测模式采纳到VVC的标准中,并更名为几何划分预测模式(Geometrical partition Mode,GPM)。该技术针对图像中运动物体边缘部分,采用更为灵活的表示方法,将帧间块划分为两个非矩形的子分区分别进行预测后进行加权融合。如图5a-图5g所示。
在目前VVC Draft8中GPM技术总共有64种划分模式,每种划分模式对应一种角度α和一种步长ρ,总共有20种角度,4种步长。
示例性的,如图6所示,每种角度和步长的组合构成一种划分模式。GPM将当前块划分为两个非矩形的子分区,每个子分区单独进行单向的运动补偿得到单向预测值,最后利用权重矩阵对两分区的单向预测值加权融合得到最终的GPM预测值。
在本申请实施例中,在编码器侧,确定是采用GMP进行帧间预测时,该编码器就可以获取该当前块采用GPM进行帧间预测时的GPM参数了。编码器通过遍历GPM对应的64种划分模型,确定出率失真代价最小的划分模式,即确定出目标划分模式;该编码器就可以依据目标划分模式,通过预设划分模式、角度索引和步长索引的映射表,确定出该目标划分模式对应的角度索引信息和步长索引信息了。当前预测块是GPM模式时,会根据当前块选中的划分模式索引merge_gpm_partition_idx去查表得到对应的角度angleIdx和步长distanceIdx,该划分模式的映射表如表1所示:
表1
Figure PCTCN2020083313-appb-000001
其中,wedge_partition_idx为划分模式索引,angleIdx为角度索引信息,distanceIdx为步长索引信息。
具体的,构造当前块的merge候选列表,与普通merge模式构造列表的过程一致。图7为本申请实施例中空间Merge候选列表的相邻块位置示意图,如图7所示,Merge候选列表中相邻块的构造顺序为:左侧相邻块A1,上侧相邻块B1,右上侧相邻块B0,左下侧相邻块A0,左上侧相邻块B2,参考帧对应位置块col为相邻块的运动矢量信息依次排列,且区分不同方向来源。
获取图7中5个相邻块的单向或双向mv信息,将每个相邻块的单向或双向mv信息按照相邻块的添加顺序(A1-B1-B0-A0(B2)),添加到merge候选列表中组成当前块的候选项,其中B2为替补,当前面四项有至少一项不可用时,需要使用B2的mv信息加入到候选列表。相邻块的添加顺序代表了各个mv信息与当前块的mv信息之间相关性大小,也就是merge候选列表的添加顺序代表了这个候选项被选为当前块的mv信息的可能性大小,也代表了这个候选项被选为当前块mv信息之后精确度的大小。
图8为本申请实施例中merge列表的第一组成结构示意图,根据图7相邻块的位置示意图得到图8这种merge候选列表,如图8所示,Merge候选列表中包括5个相邻块的mv信息,序号分别为0、1、2、3、4,每个相邻块包含双向预测mv信息,即list0和list1。因为在GPM预测模式中,每个分区都只会使用单向预测模式,而merge列表中每一项都可能是双向预测的mv信息,因此需要取出其中的单向预测mv来供使用。令X=(m&0x01),其中,X为参考列表指示信息,用于指示list0和list1,&为位与运算,即取出m的最后一个比特位(类似于奇偶校验)。这样,优先使用X对应的参考列表中的参考帧对应的mv信息predFlagLXM用于分区预测,如图8中的阴影区域对应的选项。如果相应的mv不可用(相邻块的mv本身也可能是单向的),才使用对向位置的mv(与阴影区域水平对应的空白区域中表示的mv),即X=1-X。
步骤103、根据当前块的merge候选列表中的第一运动信息,构建GPM运动信息候选列表,其中,构建过程包括对第一运动信息进行去重复信息的处理;
实际应用中,对当前块的所述merge候选列表中的第一运动信息进行查重去重处理目的是在构建GPM运动信息候选列表(也称“mv候选列表”)避免mv候选列表中存在重复的运动信息,减小mv候选列表长度,提高了运动信息的表达效率,从而提高视频编码和解码效率。
图9为本申请实施例中去重处理方法的流程示意图,如图9所示,本申请实施例提供的一种帧间预测方法中步骤103的去重处理步骤具体可以包括:
步骤201:初始化当前块的GPM运动信息候选列表;
这里,初始化mv候选列表可以是为GPM建立一个空的mv候选列表,将merge候选列表(简称“merge列表”)中的mv信息先进行查重去重处理,再添加到GMP的mv候选列表中,保证GMP的mv候选列表无重复mv信息。
步骤202:按照预设的获取策略,依次获取所述merge候选列表中的第一运动信息;
这里,获取策略规定了merge列表中第一运动信息(也称第一mv信息)的查重顺序,查重顺序越靠前,merge列表中第一mv信息先被取出进行去重复信息的处理,当取出的第一mv信息已经在mv候选列表中存在,则忽略取出的第一mv信息无需利用其更新mv候选列表;当取出的第一mv信息在mv候选列表中不存在,则需要利用取出的第一mv信息更新mv候选列表。
在一些实施例中,获取策略由merge候选列表中相邻块的构造顺序和参考列表指示信息决定,相邻块的构造顺序可以为图7所示的顺序,所述参考列表指示信息用于指示第一参考列表的mv信息和第二参考列表的mv信息的使用优先级。
步骤202具体可以包括:按照所述merge候选列表中相邻块的构造顺序和参考列表指示信息,依次获取所述merge候选列表中的第一运动信息;其中,所述参考列表指示信息用于指示优先使用的第一参考列表的运动信息或第二参考列表的运动信息。
如图8所示,Merge候选列表中包括5个相邻块的mv信息,序号分别为0、1、2、3、4,相邻块的构造顺序可以为序号从小到大的顺序,每个相邻块包含双向预测mv信息,即list0参考列表中的mv信息,和list1参考列表中的mv信息。因为在GPM预测模式中,每个分区都只会使用单向预测模式,而merge列表中每一项都可能是双向预测的mv信息,因此需要取出其中的单向预测mv来供使用。令X=(m&0x01),其中,X为参考列表指示信息,用于指示list0和list1的使用优先级,X=0表示优先使用list0中的mv信息,X=1表示优先使用list1中的mv信息,&为位与运算,即取出m的最后一个比特位(类似于奇偶校验)。这样,优先使用X对应的参考列表中的参考帧对应的mv信息predFlagLXM用于分区预测,如图8中的阴影区域对应的选项。如果相应的mv不可用(相邻块的mv本身也可能是单向的),才使用对向位置的mv(与阴影区域水平对应的空白区域中表示的mv),即X=1-X。
按照所述merge候选列表中相邻块的构造顺序和参考列表指示信息,依次获取所述merge候选列表中的第一mv信息,即从上往下选择每一项中参考列表指示信息所指示的list0或list1中的第一mv信息,也就是图8中从上往下优先使用阴影区域中的第一mv信息,并对取出的第一mv信息进行查重去重处理。
具体的,所述按照所述merge候选列表中相邻块的构造顺序和参考列表指示信息,依次获取所述merge候选列表中的第一运动信息,包括:按照所述merge候选列表中相邻块的构造顺序和参考列表指示信息,确定所述merge候选列表的目标位置;若所述目标位置中的第一运动信息可用,获取所述目标位置中存储的第一运动信息;若所述目标位置中的第一运动信息不可用,获取所述目标位置的对向位置中存储的第一运动信息。
以图8为例,根据merge列表中相邻块的构造顺序和参考列表指示信息,优先使用阴影区域对应的选项,第一个目标位置为merge列表中第一行的第一列中的第一mv信息(即第L00项),获取到第L00项后,先判断L00项是否可用,如果可用再执行后续的查重去重处理,如果不可用,则获取第一个目标位置的对向位置即第一行的第二列中的第一mv信息(即第L01项),再执行后续的查重去重处理。这里,由于list0和list1中分别存储不同方向预测的mv信息,所以目标位置和对向位置分别存储不同方向的mv信息的位置。
步骤203:检测所述第一运动信息与所述GPM运动信息候选列表中的第二运动信息是否重合,得到查重检测结果;
本申请实施例中,merge列表中的运动信息称为第一mv信息,mv候选列表中的运动信息称为第二运动信息(也称第二mv信息),第一mv信息和第二mv信息只是用来表示二者的来源不同,并不是用来区分二者的信息内同不同。
步骤204:基于所述查重检测结果利用所述第一运动信息更新GPM运动信息候选列表,得到构建完成的GPM运动信息候选列表。
在一些实施例中,步骤204具体包括:所述查重检测结果表征所述第一运动信息与所述GPM运动信息候选列表中的第二运动信息不重合时,将所述第一运动信息添加到所述GPM运动信息候选列表中;所述查重检测结果表征所述第一运动信息与所述GPM运动信息候选列表中的第二运动信息重合时,忽略当前第一运动信息;按照预设的获取策略,获取所述merge候选列表中下一个第一运动信息,并继续对下一个第一运动信息进行去重复信息的处理,以更新GPM运动信息候选列表。
也就是说,在获取到merge列表中的第一运动信息之后,若运动信息候选列表中已经存储在相同的第二运动信息,则不需要将第一运动信息作为GPM的候选项;若不存在相同的第二运动信息,则将第一运动信息作为GPM的候选项。
具体的查重去重步骤包括:输入为普通merge列表mergeCandList,输出为mv候选列表mergeGPMCandList。
对i=0~MaxNumGpmMergeCand-1,j=0~MaxNumGpmMergeCand-1,MaxNumGpmMergeCand表示merge列表中候选项的最大数,i表示mv候选列表中第二mv信息的序号,j表示merge列表中第一mv信息的序号,实施以下操作:。
令X=(j&0x01),其中,X为参考列表指示信息,用于指示list0和list1的使用优先级,X=0表示优先使用list0中的mv信息,X=1表示优先使用list1中的mv信息,&为位与运算,即取出j的最后一个比特位(类似于奇偶校验)。这样,优先使用X对应的参考列表中的参考帧对应的mv信息predFlagLXM用于分区预测,如图8中的阴影区域对应的选项。如果相应的mv不可用(相邻块的mv本身也可能是单向的),才使用对向位置的mv(与阴影区域水平对应的空白区域中表示的mv),即X=1-X。
检验当前普通merge列表中的第LXj项与mv候选列表的第0~i-1项是否有重合,如果有,i不变,j自增1;如果没有,则执行下面的语句:
mvGPMi[0]=mvLXj[0]
mvGPMi[1]=mvLXj[1]
refIdxGPMi=refIdxLXj
predListFlagGPMi=X
然后i和j各自自增1.当j增加到MaxNumGpmMergeCand,则执行结束。
在一些实施例中,若i还没有达到MaxNumGpmMergeCand-1,而j已经增加到MaxNumGpmMergeCand则后续补值为0的mv信息,或重复在此之前存入的最后一个候选项的mv信息。
图10为本申请实施例中merge列表的第二组成结构示意图,图11为本申请实施例中GPM运动信息候选列表的第一组成结构示意图,若图10的merge列表中的序号0的list0对应的mv信息,与序号1的list1对应的mv信息恰好相同,即双向箭头所指的两个阴影区域,在重构的mv候选列表中它们将对应同一个选项,即merge列表中序号0和1中的两个单向mv信息进行去重操作后,建立mv候选列表,图11中mv候选列表的序号0对应merge列表的序号0和1,由于去重操作使mv候选列表中的序号相比于merge列表中的序号减少一个。
在一些实施例中,步骤204具体包括:所述查重检测结果表征所述第一运动信息与所述GPM运动信息候选列表中的第二运动信息不重合时,将所述第一运动信息添加到所述GPM运动信息候选列表中;所述查重检测结果表征所述第一运动信息与所述第二运动信息重合时,获取所述第一运动信息所在位置的对向位置中存储的第一运动信息,利用所述对向位置中存储的第一运动信息更新GPM运动信息候选列表;按照预设的获取策略,获取所述merge候选列表中下一个第一运动信息,并继续对下一个第一运动信息进行去重复信息的处理,以更新GPM运动信息候选列表。
也就是说,在获取到merge列表中的第一运动信息之后,若运动信息候选列表中已经存储在相同的第二运动信息,则获取第一运动信息所在位置的对象位置中存储的第一运动信息,以图10为例,第一运动信息为merge列表中第一行的第一列中的第一运动信息(即第L00项),获取到第L00项后,如果第L00项与运动信息候选列表中第0~i-1项有重合,为了使运动信息候选列表中的运动信息更丰富,需要在获取对向位置即第一行的第二列中的第一运动信息(即第L01项),再利用对象位置的第一运动信息更新GPM运动信息候选列表。
在一些实施例中,所述利用所述对向位置中存储的第一运动信息更新GPM运动信息候选列表,包括:对所述对向位置中存储的第一运动信息进行去重复信息的处理,以更新GPM运动信息候选列表;或者,将所述对向位置中存储的第一运动信息添加到所述GPM运动信息候选列表中。
这里,对所述对向位置中存储的第一运动信息进行去重复信息的处理,以更新GPM运动信息候选列表,即检测对象位置的第一运动信息与所述GPM运动信息候选列表中的第二运动信息是否重合,得到查重检测结果;所述查重检测结果表征对象位置的第一运动信息与所述GPM运动信息候选列表中的第二运动信息不重合时,将对象位置的第一运动信息添加到所述GPM运动信息候选列表中;所述查重检测结果表征对象位置的第一运动信息与所述GPM运动信息候选列表中的第二运动信息重合时,忽略对象位置的第一运动信息。
这里,将所述对向位置中存储的第一运动信息添加到所述GPM运动信息候选列表中,即无需对对象位置的第一运动信息进行去重复信息的处理,直接将对象位置的第一运动信息添加到运动信息候选列表中。
在另一些实施例中,步骤103具体包括:根据所述当前块的所述merge候选列表中的第一运动信息,分别构建所述当前块第一分区对应的第一运动信息候选列表,以及所述当前块第二分区对应的第二运动信息候选列表;其中,所述构建过程包括对所述第一运动信息进行去重复信息的处理。这里,所说的第一运动信息候选列表和第二运动信息候选列表均为GPM运动信息候选列表
也就是说,先对当前块的所述merge候选列表中的第一运动信息进行查重去重处理,再分别根据A分区mv选择策略,构造A分区的第一运动信息候选列表;根据B分区的mv选择策略,构造B分区的第二运动信息候选列表。
需要说明的是,A分区的选择策略用户确定mv信息的使用优先级和mv信息在mv候选列表中排列的先后位置,B分区的选择策略用户确定mv信息的使用优先级和mv信息在mv候选列表中排列的先后位置,使用优先级越高在mv候选列表中位置越靠前。当A分区和B分区的选择策略不相同时,需要为A分区和B分区构造不同的mv候选列表;当A分区和B分区的选择策略相同时,可以为A分区和B分区构造同一个mv候选列表。
在一些实施例中,所述构建GPM运动信息候选列表之后,所述方法还包括:当所述GPM运动信息候选列表的候选项数量大于2时,从所述GPM运动信息候选列表中获取所述第一分区的运动信息对应的第一索引信息,以及所述第二分区运动信息对应的第二索引信息;将所述第一索引信息和所述第二索引信息写入码流。编码器将码流发送给解码器,解码器解析码流确定运动信息候选列表中第一分区的运动信息的第一索引信息,以及第二分区的运动信息的第二索引信息,进一步根据索引信息从解码端建立的运动信息候选列表中获取各个分区的运动信息。
在另一些实施例中,所述构建GPM运动信息候选列表之后,所述方法还包括:当所述GPM运动信息候选列表的候选项数量等于2时,从所述GPM运动信息候选列表中获取所述第一分区的运动信息对应的第一索引信息,或者所述第二分区运动信息对应的第二索引信息;将所述第一索引信息或者所述第二索引信息写入码流。编码器将码流发送给解码器,解码器解析码流确定运动信息候选列表中第一分区的运动信息的第一索引信息,由于运动信息候选列表只包含两个候选项,因此,当根据第一索引信息确定第一分区的运动信息之后,另一个候选项中的运动信息肯定是第二分区的运动信息。解码器解析码流确定运动信息候选列表中第二分区的运动信息的第二索引信息,同理。
也就是说,当运动信息候选列表中候选项的数量大于2则解码器需要将第一索引信息和第二索引信息同时写入码流,以指示解码器根据索引信息获取各个分区的运动信息;当运动信息候选列表中候选项的数量等于2则解码器只需要将一个索引信息写入码流,解码端便可以根据一个索引信息获取各个分区的运动信息;当运动信息候选列表中候选项的数量小于2则解码器只需要将一个索引信息写入码流,用于指示该候选项是那个分区的候选项。
步骤104:根据所述GPM运动信息候选列表,确定所述当前块的帧间预测值。
具体的,确定当前块的帧间预测值的方法包括:从所述GPM运动信息候选列表中,获取用于所述当前块第一分区的运动信息,以及用于所述当前块第二分区的运动信息;利用所述第一分区的运动信息计算所述第一分区的第一预测值,利用所述第二分区的运动信息计算所述第二分区的第二预测值;对所述第一预测值和所述第二预测值进行加权融合,得到当前块的帧间预测值。
实际应用中,该方法还包括:编码器获取当前块内像素点对应的权重索引绝对信息,根据该当前块内像素点对应的权重索引和当前块内像素点对应的权重索引绝对信息,确定出与权重索引绝对信息对应的权重值,再基于权重索引绝对信息对应的权重值,从当前块内像素点中确定出第一分区的第一像素点的权重值和第二分区的第二像素点的权重值,然后根据和第一分区的第一像素点的权重值和第二分区的第二像素点的权重值,确定出第一分区对应的当前块内像素点的第一权重值,最后根据第一权重值,确定出第二分区对应的当前块内像素点的第二权重值。
在本申请实施例中,编码器可以根据每个像素点的第一预测值与第一权重值相乘,加上对应的每个像素点的第二预测值与第二权重值之积,完成对当前块内像素点的加权融合,得到当前块的帧间预测值。
具体的,mv候选列表建立之后,两个分区(先A分区后B分区)的mv获取步骤包括以下:
merge_gpm_idx0[x0][y0],表示A分区的mv在merge列表中的位置;
令m=merge_gpm_idx0[xCb][yCb],等待后续处理。
merge_gpm_idx1[x0][y0],代表B分区的mv在merge列表中的位置,B分区的mv在merge列表中的位置可能因为A先选去了靠前位置的选项,而减小1。
令n=merge_gpm_idx1[xCb][yCb]+(merge_gpm_idx1[xCb][yCb]>=m)?1:0,n表示的就是B分区选择的mv在merge候选列表中的实际位置,等待后续处理。
以图10为例,加入序号0对应的list0中的mv信息,与序号1的list1对应的mv信息恰好相同,在重构的mv候选列表中它们将对应同一个选项,m为第一索引信息,n为第二索引信息,m和n对应的是图11方块内0-3的序号。
令M=mergeGPMCandList[m],从GPM模式的mv候选列表中取出第m项用于A分区的mv构造。将相应的mv信息存入给A分区的处理变量,准备后续的预测块构造。
mvA[0]=mvGPMM[0]
mvA[1]=mvGPMM[1]
refIdxA=refIdxGPMM
predListFlagA=predListFlagGPMM
其中mvA为mv矢量,refIdxA为该运动矢量对应的参考帧,predListFlagA表示当前选用了该运动矢量备选项的哪个list中的分量。
令N=mergeCandList[n],从GPM模式的mv候选列表取出第n项用于B分区的mv构造。
mvB[0]=mvGPMN[0]
mvB[1]=mvGPMN[1]
refIdxB=refIdxGPMN
predListFlagB=predListFlagGPMN
其中mvB为mv矢量,refIdxB为该运动矢量对应的参考帧,predListFlagB表示当前选用了该运动矢量备选项的哪个list中的分量。
本申请实施例还提供了另一种GPM运动信息候选列表的构造方法,步骤202具体还可以包括:按照所述merge候选列表中相邻块的构造顺序,依次获取所述merge候选列表中的所有可用的第一运动信息。
以图10中merge列表为例,从上到下,从左到右依次获取merge列表中list0中的单向运动信息和list1中的可用的单向运动信息,将所有可用的单向运动信息按照merge列表中候选项的添加顺序依次添加到GPM运动信息候选列表中,无需区分list0和list1的使用优先级。
这里,mv可用是指目标位置存储有运动信息,如果当前块的相邻块的mv是单向的,list0和list1中只有一个存储有运动信息,另一个没有存储运动信息,存储运动信息的参考列表中的运动信息即为可用,没有存储运动信息的参考列表中的mv即为不可用。如果,当前块的相邻块的mv是双向的,则list0和list1中的mv均可用。
进一步的,在利用merge列表中所有可用运动信息构建运动信息候选列表之前,同样需要对merge列表中可用运动信息进行去重复信息的处理,即检测所述第一运动信息与所述GPM运动信息候选列表中的第二运动信息是否重合,得到查重检测结果。
相应的,步骤204具体包括:所述查重检测结果表征所述第一运动信息与所述GPM运动信息候选列表中的第二运动信息不重合时,将所述第一运动信息添加到所述GPM运动信息候选列表中;所述查重检测结果表征所述第一运动信息与所述GPM运动信息候选列表中的第二运动信息重合时,忽略当前第一运动信息;按照预设的获取策略,获取所述merge候选列表中下一个第一运动信息,并继续对下一个第一运动信息进行去重复信息的处理,以更新GPM运动信息候选列表。
也就是说,在获取到merge列表中的可用的第一运动信息之后,若运动信息候选列表中已经存储在相同的第二运动信息,则不需要将第一运动信息作为GPM的候选项;若不存在相同的第二运动信息,则将第一运动信息作为GPM的候选项。
图12为本申请实施例中GPM运动信息候选列表的第二组成结构示意图,若图10的merge列表中的阴影区域中的mv信息均可用,对merge列表中可用的mv信息查重后,没有重合的mv信息则将merge列表中5个阴影区域中的mv存储到mv候选列表中。图12中mv候选列表候选项为5项,序号为0-4。
需要说明的是,若图10中白色区域中也包含可用的mv信息,则同样需要取出白色区域中的可用mv信息,进行后续的查重去重操作并建立mv候选列表,mv候选列表中候选项的数量可能大于5。
上述方案中,所述GPM运动信息候选列表中存储所述merge候选列表中的至少部分第一运动信息。也就是说,对merge列表进行查重去重操作之后,直接利用merge列表中的运动信息建立运动信息候选列表。
本申请另一些实施例中,所述GPM运动信息候选列表中存储所述merge候选列表中的至少部分第一运动信息的 映射信息。也就是说,对merge列表进行查重去重操作之后,利用merge列表中的运动信息的索引信息建立运动信息候选列表。
相应的,上述步骤204可以替换为:所述查重检测结果表征所述第一运动信息与所述GPM运动信息候选列表中的第二运动信息不重合时,将所述第一运动信息的映射信息添加到所述GPM运动信息候选列表中;其中,所述第一运动信息的映射信息包括:第一运动信息在所述merge候选列表中的序号和参考列表指示信息;所述查重检测结果表征所述第一运动信息与所述GPM运动信息候选列表中的第二运动信息重合时,忽略当前第一运动信息;按照预设的获取策略,获取所述merge候选列表中下一个第一运动信息,并继续对下一个第一运动信息进行去重复信息的处理,以更新GPM运动信息候选列表。
也就是说,在获取到merge列表中的第一运动信息之后,若运动信息候选列表中已经存储在相同的第二运动信息,则不需要将第一运动信息作为GPM的候选项;若不存在相同的第二运动信息,则将第一运动信息作为GPM的候选项。
具体的查重去重步骤包括:输入为普通merge列表mergeCandList,输出为mv候选列表映射表mergeGPMCandMapList。
对i=0~MaxNumGpmMergeCand-1,j=0~MaxNumGpmMergeCand-1,MaxNumGpmMergeCand表示merge列表中候选项的最大数,i表示mv候选列表中第二mv信息的序号,j表示merge列表中第一mv信息的序号,实施以下操作:
令X=(j&0x01),其中,X为参考列表指示信息,用于指示list0和list1的使用优先级,X=0表示优先使用list0中的mv信息,X=1表示优先使用list1中的mv信息,&为位与运算,即取出j的最后一个比特位(类似于奇偶校验)。这样,优先使用X对应的参考列表中的参考帧对应的mv信息predFlagLXM用于分区预测,如图10中的阴影区域对应的选项。如果相应的mv不可用(相邻块的mv本身也可能是单向的),才使用对向位置的mv(与阴影区域水平对应的空白区域中表示的mv),即X=1-X。
检验当前普通merge列表中的第LXj项与mv候选列表的第0~i-1项是否有重合,如果有,i不变,j自增1;如果没有,则执行下面的语句:
mergeGPMCandMapList[i][0]=j
mergeGPMCandMapList[i][1]=X
然后i和j各自自增1.当j增加到MaxNumGpmMergeCand,则执行结束。
在一些实施例中,若i还没有达到MaxNumGpmMergeCand-1,而j已经增加到MaxNumGpmMergeCand则后续补值为0的mv信息映射信息,或重复在此之前存入的最后一个候选项的mv信息映射信息。
该过程的一个例子如图13所示。
以图10为例,若图10的merge列表中的序号0的list0对应的mv信息,与序号1的list1对应的mv信息恰好相同,即双向箭头所指的两个阴影区域,在重构的mv候选列表中它们将对应同一个选项,即merge列表中序号0和1中的两个单向mv信息进行去重操作后,建立mv候选列表。图13为本申请实施例中GPM运动信息候选列表的第三组成结构示意图,图13中映射的是merge列表中mv信息的二元组信息(j,X),j为merge列表的序号,j取0-4,X为参考列表指示信息,X取0或1。序号为0的二元组(0,0)对应merge列表的第L00项,序号为0的二元组(2,0)对应merge列表的第L20项,序号为0的二元组(3,1)对应merge列表的第L31项,序号为0的二元组(4,0)对应merge列表的第L40项。
在另一些实施例中,上述步骤204还可以替换为:所述查重检测结果表征所述第一运动信息与所述GPM运动信息候选列表中的第二运动信息不重合时,将所述第一运动信息的映射信息添加到所述GPM运动信息候选列表中;其中,所述第一运动信息的映射信息包括:第一运动信息在所述merge候选列表中的序号和参考列表指示信息;所述查重检测结果表征所述第一运动信息与所述第二运动信息重合时,获取所述第一运动信息所在位置的对向位置中存储的第一运动信息,利用所述对向位置中存储的第一运动信息更新GPM运动信息候选列表;按照预设的获取策略,获取所述merge候选列表中下一个第一运动信息,并继续对下一个第一运动信息进行去重复信息的处理,以更新GPM运动信息候选列表。
也就是说,在获取到merge列表中的第一mv信息之后,若mv候选列表中已经存储在相同的第二mv信息,则获取第一mv信息所在位置的对象位置中存储的第一mv信息,以图10为例,第一mv信息为merge列表中第一行的第一列中的第一mv信息(即第L00项),获取到第L00项后,如果第L00项与mv候选列表中第0~i-1项有重合,为了使mv候选列表中的mv信息更丰富,需要在获取对向位置即第一行的第二列中的第一mv信息(即第L01项),再利用对象位置的第一mv信息更新mv候选列表。
在一些实施例中,所述利用所述对向位置中存储的第一运动信息更新GPM运动信息候选列表,包括:对所述对向位置中存储的第一运动信息进行去重复信息的处理,以更新GPM运动信息候选列表;或者,将所述对向位置中存储的第一运动信息添加到所述GPM运动信息候选列表中。
这里,对所述对向位置中存储的第一运动信息进行去重复信息的处理,以更新GPM运动信息候选列表,即检测对象位置的第一运动信息与所述GPM运动信息候选列表中的第二运动信息是否重合,得到查重检测结果;所述查重检测结果表征对象位置的第一运动信息与所述GPM运动信息候选列表中的第二运动信息不重合时,将所述第一运动信息的映射信息添加到所述GPM运动信息候选列表中;所述查重检测结果表征对象位置的第一运动信息与所述GPM运动信息候选列表中的第二运动信息重合时,忽略对象位置的第一运动信息。
这里,将所述对向位置中存储的第一运动信息添加到所述GPM运动信息候选列表中,即无需对对象位置的第一运动信息进行去重复信息的处理,直接将对象位置的第一运动信息的映射信息添加到运动信息候选列表中。
在一些实施例中,所述构建GPM运动信息候选列表之后,所述方法还包括:当所述GPM运动信息候选列表的 候选项数量大于2时,从所述GPM运动信息候选列表中获取所述第一分区的运动信息对应的第一索引信息,以及所述第二分区运动信息对应的第二索引信息;将所述第一索引信息和所述第二索引信息写入码流。
或者,当所述GPM运动信息候选列表的候选项数量等于2时,从所述GPM运动信息候选列表中获取所述第一分区的运动信息对应的第一索引信息,或者所述第二分区运动信息对应的第二索引信息;将所述第一索引信息或者所述第二索引信息写入码流。
这里,第一索引信息用于指示运动信息候选列表中第一分区的运动信息的映射信息,第二索引信息用于指示运动信息候选列表中第二分区的运动信息的映射信息。
实际应用中,所述构建GPM运动信息候选列表之后,所述方法还包括:从所述GPM运动信息候选列表中,获取用于所述当前块第一分区的运动信息的第一映射信息,以及用于所述当前块第二分区的运动信息的第二映射信息;再从merge候选列表中获取第一映射信息对应的运动信息,以及第二映射信息对应的运动信息;利用所述第一分区的运动信息计算所述第一分区的第一预测值,利用所述第二分区的运动信息计算所述第二分区的第二预测值;对所述第一预测值和所述第二预测值进行加权融合,得到当前块的帧间预测值。
具体的,mv候选列表建立之后,两个分区(先A分区后B分区)的mv获取步骤包括以下:
merge_gpm_idx0[x0][y0],表示A分区的mv在merge列表中的位置;
令m=merge_gpm_idx0[xCb][yCb],等待后续处理。
merge_gpm_idx1[x0][y0],代表B分区的mv在merge列表中的位置,B分区的mv在merge列表中的位置可能因为A先选去了靠前位置的选项,而减小1。
令n=merge_gpm_idx1[xCb][yCb]+(merge_gpm_idx1[xCb][yCb]>=m)?1:0,n表示的就是B分区选择的mv在merge候选列表中的实际位置,等待后续处理。
如图10所示例子,加入序号0对应的list0中的mv信息,与序号1的list1对应的mv信息恰好相同,在重构的mv候选列表中它们将对应同一个选项,m为第一索引信息,n为第二索引信息,m和n对应的是图13中序号0-3,根据序号得到一个二元组信息,该二元组信息能够映射merge列表中的一个候选项。
令M=mergeCandList[mergeGPMCandMapList[m][0]],X=mergeGPMCandMapList[m][1],从GPM模式mv候选列表中取出第m项用于A分区的mv构造。将相应的mv信息存入给A分区的处理变量,准备后续的预测块构造。
mvA[0]=mvLXM[0]
mvA[1]=mvLXM[1]
refIdxA=refIdxLXM
predListFlagA=X
其中mvA为mv矢量,refIdxA为该运动矢量对应的参考帧,predListFlagA表示当前选用了该运动矢量备选项的哪个list中的分量。
令N=mergeCandList[mergeGPMCandMapList[n][0]],X=mergeGPMCandMapList[n][1],从GPM模式的mv候选列表取出第n项用于B分区的mv构造。
mvB[0]=mvLXN[0]
mvB[1]=mvLXN[1]
refIdxB=mvLXN
predListFlagB=X
其中mvB为mv矢量,refIdxB为该运动矢量对应的参考帧,predListFlagB表示当前选用了该运动矢量备选项的哪个list中的分量。
上述mv候选列表也可以由一项组成:
mergeGPMCandMapList[i]=j<<1+X
对应的两个分区(先A分区后B分区)的mv获取步骤中从其中取出数据的时候就可以如下进行:
令M=mergeCandList[mergeGPMCandMapList[m]]>>1],X=mergeGPMCandMapList[m]&0x01,…
令N=mergeCandList[mergeGPMCandMapList[n]>>1],X=mergeGPMCandMapList[n]&0x01,…
其中的&为位与操作,&0x01即取出最后一个比特的意思。
采用上述方案,利用merge候选列表构建GPM运动信息候选列表时,先对merge候选列表进行查重去重处理,再构建运动信息候选列表,可以避免GPM运动信息候选列表中存在重复的运动信息,减小GPM运动信息候选列表长度,提高了运动信息的表达效率,从而提高视频编码和解码效率。
基于本申请上述帧间预测方法,提供了一种具体的帧间预测实现过程,该过程包括:
第一步:使用条件与语法解析
需要说明的是,目前在VTM8.0中,每个当前块对应的编码单元对GPM预测模式的使用需要满足一些限制条件。示例性地,这些限制条件可以包括:
(a)序列层参数集(Sequence Parameter Set,SPS)允许采用GPM预测模式;
(b)当前块的编码图像区域属于双向预测片(B slice);
(c)当前块的尺寸限制,宽度和高度必须都大于或等于8,且小于或等于64,并且当前块的宽高比和高宽比都小于8;
(d)当前块为非普通融合(general merge)预测,非融合子块(merge_subblock)预测,非仿射预测,也非联合帧内帧间预测(Composed Intra Inter Prediction,CIIP);
(e)对4:0:0格式的色度分量禁用GPM预测模式。
当前块对应的编码单元层语法描述如表2所示。
表2
Figure PCTCN2020083313-appb-000002
这里,ae(v)表示context-adaptive arithmetic entropy-coded syntax element,即上下文自适应的算术熵编码语法元素。merge_gpm_idx0[x0][y0],表示A分区的mv在merge列表中的位置,merge_gpm_idx1[x0][y0],表示B分区的mv在merge列表中的位置,MaxNumGpmMergeCand由查重去重后的表长所确定。
按照图7的构造顺序进行merge列表构造,能够得到当前块的merge列表。构造merge候选列表,与常规merge模式下构造列表的过程一致。其构造顺序为:Merge候选列表中相邻块的构造顺序为:上侧相邻块B1,左侧相邻块A1,右上侧相邻块B0,左下侧相邻块A0,左上侧相邻块B2,参考帧对应位置块col为相邻块的运动矢量信息依次排列,且区分不同方向来源。需要说明的是,merge列表中还可以添加历史参考块his,第一、第二候选MV的平均MV avg,以及零运动矢量0。
第二步:对第一步构建的merge列表进行查重去重后构建mv候选列表。
具体的采用本申请上述实施例中给出的任意一种候选列表的构建方法进行构建,这里不再赘述。
第三步:两个分区(先A分区后B分区)的mv获取
(a)当mv候选列表中包括mv信息时,两个分区的mv获取步骤包括以下:
merge_gpm_idx0[x0][y0],表示A分区的mv在merge列表中的位置;
令m=merge_gpm_idx0[xCb][yCb],等待后续处理。
merge_gpm_idx1[x0][y0],代表B分区的mv在merge列表中的位置,B分区的mv在merge列表中的位置可能因为A先选去了靠前位置的选项,而减小1。
令n=merge_gpm_idx1[xCb][yCb]+(merge_gpm_idx1[xCb][yCb]>=m)?1:0,n表示的就是B分区选择的mv在merge候选列表中的实际位置,等待后续处理。
以图10为例,加入序号0对应的list0中的mv信息,与序号1的list1对应的mv信息恰好相同,在重构的mv候选列表中它们将对应同一个选项,m和n对应的是图11方块内0-3的序号。
令M=mergeGPMCandList[m],从GPM模式mv候选列表中取出第m项用于A分区的mv构造。将相应的mv信息存入给A分区的处理变量,准备后续的预测块构造。
mvA[0]=mvGPMM[0]
mvA[1]=mvGPMM[1]
refIdxA=refIdxGPMM
predListFlagA=predListFlagGPMM
其中mvA为mv矢量,refIdxA为该运动矢量对应的参考帧,predListFlagA表示当前选用了该运动矢量备选项的哪个list中的分量。
令N=mergeCandList[n],从GPM模式的mv候选列表取出第n项用于B分区的mv构造。
mvB[0]=mvGPMN[0]
mvB[1]=mvGPMN[1]
refIdxB=refIdxGPMN
predListFlagB=predListFlagGPMN
其中mvB为mv矢量,refIdxB为该运动矢量对应的参考帧,predListFlagB表示当前选用了该运动矢量备选项的哪个list中的分量。
(b)当mv候选列表中包括mv信息的映射信息时,两个分区的mv获取步骤包括以下:
merge_gpm_idx0[x0][y0],表示A分区的mv在merge列表中的位置;
令m=merge_gpm_idx0[xCb][yCb],等待后续处理。
merge_gpm_idx1[x0][y0],代表B分区的mv在merge列表中的位置,B分区的mv在merge列表中的位置可能因为A先选去了靠前位置的选项,而减小1。
令n=merge_gpm_idx1[xCb][yCb]+(merge_gpm_idx1[xCb][yCb]>=m)?1:0,n表示的就是B分区选择的mv在merge候选列表中的实际位置,等待后续处理。
如图10所示例子,加入序号0对应的list0中的mv信息,与序号1的list1对应的mv信息恰好相同,在重构的mv候选列表中它们将对应同一个选项,m和n对应的是图13中序号0-3,而映射得到的是方块内的二元组信息。
令M=mergeCandList[mergeGPMCandMapList[m][0]],X=mergeGPMCandMapList[m][1],从GPM模式mv候选列表中取出第m项用于A分区的mv构造。将相应的mv信息存入给A分区的处理变量,准备后续的预测块构造。
mvA[0]=mvLXM[0]
mvA[1]=mvLXM[1]
refIdxA=refIdxLXM
predListFlagA=X
其中mvA为mv矢量,refIdxA为该运动矢量对应的参考帧,predListFlagA表示当前选用了该运动矢量备选项的哪个list中的分量。
令N=mergeCandList[mergeGPMCandMapList[n][0]],X=mergeGPMCandMapList[n][1],从GPM模式的mv 候选列表取出第n项用于B分区的mv构造。
mvB[0]=mvLXN[0]
mvB[1]=mvLXN[1]
refIdxB=mvLXN
predListFlagB=X
其中mvB为mv矢量,refIdxB为该运动矢量对应的参考帧,predListFlagB表示当前选用了该运动矢量备选项的哪个list中的分量。
上述mv候选列表也可以由一项组成:
mergeGPMCandMapList[i]=j<<1+X
对应的两个分区(先A分区后B分区)的mv获取步骤中从其中取出数据的时候就可以如下进行:
令M=mergeCandList[mergeGPMCandMapList[m]]>>1],X=mergeGPMCandMapList[m]&0x01,…
令N=mergeCandList[mergeGPMCandMapList[n]>>1],X=mergeGPMCandMapList[n]&0x01,…
其中的&为位与操作,&0x01即取出最后一个比特的意思。
第四步:编码器GPM预测过程
2、下面对VVC Draft8相应的编码器中的GPM模式预测过程进行详细介绍:
图14为本申请实施例中GPM模式预测流程示意图,预测流程的输入包括:
a luma location(xCb,yCb)
cbWidth,cbHeight
1/16fractional-sample accuracy mvA and mvB
mvCA and mvCB
refidxA and refidxB
predListFlagA and predListFlagB.
针对输入信息预测流程具体包括:
S1:计算两个分区的单向预测值
GPM模式重用现有的常规Merge列表,按照奇偶校验的方式构造属于GPM的单向Merge列表,GPM划分后的两个子分区各自的Merge候选都是从该单向Merge候选列表中选出的。
然后为L、Cb、Cr三个分量推导参考帧列表refPicLN、亚像素预测像素值predSamplesLN,N为A或B。该步骤同一般Inter预测技术相同。即用现有的运动补偿方式,计算得到两个分区各自的单向运动补偿预测值,用于后面GPM最终的加权融合过程。这里的运动补偿和常规运动补偿过程一样,即通过运动矢量找到相应的区域的像素值并复制。
S2:获取GMP模式的角度和步长
当前预测块是GPM模式时,会根据当前块选中的划分模式索引merge_gpm_partition_idx去查表得到对应的角度angleIdx和步长distanceIdx,该划分模式的映射表如表1所示。
S3:为L、Cb、Cr三个分量推导加权预测像素值predSamples
S3.1:当前亮度块预测值的计算
S3.1.1:通过对预定义的权重矩阵裁剪获取当前亮度块的权重掩码矩阵:
1)首先权重矩阵的获取需要通过当前块以及当前块的划分模式去计算当前块的左上角对应于坐标原点的偏移值Offset(x,y),而坐标原点处于同样角度分割线穿过几何中心点的同样尺寸块的几何中心点。
图15为本申请实施例中当前块的划分方式示意图,如图15所示,虚线表示分割线,其中白色背景是根据目前的限定条件,阴影区域为当前块,通过当前块以及当前块的划分模式去计算当前块的左上角对应于坐标原点的偏移值(OffsetX,OffsetX),进而确定最大尺寸块(64x64)相对该坐标系的最大移动范围(112x112)。如果分割线不经过块中心点,那么就保持分割线相对位置不动,移动该块在坐标系中的位置,从而得到恰当的分割。
下面是偏移值计算所需要用到的核心参数:
因为点(x1,y1)到线cosα·x-sinα·y=0的距离d=cosα·x1-sinα·y1,首先需要获取当前角度所对应的cos(α)中α的索引号displacementX,以及对应的-sin(α)=cos(α+π/2)对应的α+π/2的索引号displacementY。
displacementX=angleIdx;                     (1)
displacementY=(displacementX+8)%32;         (2)
其中,构造预定义权重矩阵时所使用的步长仅仅为第一个步长(即分割线一定与块的中心点相交)。
由于A分区和B分区在码流中相关信息的传输是有先后顺序的,从而使得在两个分区的顺序安排上必须遵循一定的原则,即通过下式来计算partFlip值,具体如下所示:
partFlip=(angleIdx>=13&&angleIdx<=27)?0:1         (3)
其中,partFlip用于指示A分区和B分区在当前块内的分布位置。具体地,partFlip为0,表示后续(8)式中得到的点与分割线距离weightIdx为负值的一侧为A分区,分割线对侧为B分区;partFlip为为1时则相反,即weightIdx为正值的一侧为A分区,其对侧(即负值一侧)为B分区。
通过下面两式计算获得关键参数shiftHor:
hwRatio=nH/nW             (4)
即CU的高/CU的宽
shiftHor=(angleIdx%16==8||(angleIdx%16!=0&&hwRatio>0))?0:1    (5)
shiftHor的含义是在同一角度下不同分割线之间的位移方向的确定,如其值为0,分割线将在Y轴上偏移;其值 为1,分割线将在X轴上偏移。
然后根据当前预测块的尺寸和划分信息,用式(6~7)计算当前预测块的偏移值offsetX和offsetY:
如果shiftHor==0,这时候当前块在垂直方向上存在与当前块的高度相关的偏移值,此时的偏移信息如下所示:
offsetX=(-nW)>>1
offsetY=((-nH)>>1)+angleIdx<16?(distanceIdx*nH)>>3:-((distanceIdx*nH)>>3)   (6)
如果偏移方向标识值等于1,即shiftHor等于1,这时候当前块在垂直方向上存在与当前块的宽度相关的偏移值,此时的偏移信息如下所示:
offsetX=((-nW)>>1)+angleIdx<16?(distanceIdx*nW)>>3:-((distanceIdx*nW)>>3)
offsetY=(-nH)>>1                                              (7)
其中,“>>”表示右移运算符,nW表示当前块的宽度,nH表示当前块的高度。
2)在确定出偏移信息offsetX和offsetY后,通过当前块内像素点位置可以计算当前像素点处的权重索引值(用weightIdx表示),进而通过式(8~10)能够计算出当前像素点处的权重值,以得到当前块的权重矩阵。
weightIdx=(((x*subW+offsetX)<<1)+1)*disLut[displacementX]+(((y*subH+offsetY)<<1)+1)*disLut[displacementY].               (8)
weightIdxL=partFlip?32+weightIdx:32–weightIdx          (9)
wValue=Clip3(0,8,(weightIdxL+4)>>3)                   (10)
其中,clip3表示钳位运算符,0表示下界值,8表示上界值,比如clip3(i,j,x)表示:当x小于i时,其取值为i;当x大于j时,其取值为j;当x大于或等于i且小于或等于j时,其取值为x。
另外,表3提供了一种几何分割线距离排列查找表示例,式(8)中所使用的disLut[]如表3所示,subW和subH表示下采样率,如果当前块的YUV格式为420格式,subW和subH都可以为2。其中使用的disLut[]如表3所示。subW和subH表示下采样率,如果是420格式,subW和subH都为2。亮度不需要下采样,色度权重是对亮度权重下采样得到的,见S3.2节。
表3.
idx 0 2 3 4 5 6 8 10 11 12 13 14
disLut[idx] 8 8 8 4 4 2 0 -2 -4 -4 -8 -8
idx 16 18 19 20 21 22 24 26 27 28 29 30
disLut[idx] -8 -8 -8 -4 -4 -2 0 2 4 4 8 8
这里,weightIdx绝对值越小,表明了当前像素点距离分区的边缘越近,该像素点处在A、B两个分区上的权重分布越平均。
S3.1.2:对两个分区的单向预测值进行逐像素加权,得到最终的GPM预测块,具体加权的计算如式(11)所示:
pbSamples[x][y]=Clip3(0,(1<<BitDepth)-1,(predSamplesLA[x][y]*wValue+predSamplesLB[x][y]*(8-wValue)+offset1)>>shift1)           (11)
其中,BitDepth表示比特深度,offset1用于四舍五入,shift1用于使得加权平均后的预测值恢复到与输入视频相同的比特深度;而offset1和shift1的计算如式(12~13)所示:
shift1=Max(5,17-BitDepth                (12)
offset1=1<<(shift1-1)                   (13)
S3.2:当前色度块(Cb和Ct)预测值的计算
通过获取图16a中每个2*2块的左上角的亮度样本权重直接作为当前(x,y)处的色度样本权重,即对亮度样本权重进行下采样,得到图16b当前块色度权重矩阵。色度加权的计算也如式(11)所示。
亮度和色度权重矩阵的采样关系如图16a和图16b所示。
S4:存储MV信息用于后续预测mvN、refidxN、predListFlagN
该存储过程是利用当前亮度块的运动掩码矩阵来实现的,预测值完全来自于A分区的,则记录A分区的运动矢量,完全来自于B分区的,记录B分区的运动矢量;否则同时记录两个分区的运动矢量。运动掩码的计算同计算亮度权重矩阵的过程基本一致,首先计算偏移值offset,该offset的计算如式(14~17)所示:
如果偏移方向标识值等于0,即shiftHor等于0,这时候的偏移信息如下所示:
offsetX=(-cbWidth)>>1                          (14)
offsetY=((-cbHeight)>>1)+(angleIdx<16?(distanceIdx*cbHeight)>>3:-((distanceIdx*cbHeight)>>3))    (15)
如果偏移方向标识值等于1,即shiftHor等于1,这时候的偏移信息如下所示:
offsetX=((-cbWidth)>>1)+(angleIdx<16?(distanceIdx*cbWidth)>>3:-((distanceIdx*cbWidth)>>3))   (16)
offsetY=(-cbHeight)>>1                                 (17)
其中,cbWidth和cbHeight是GPM预测块对应的运动掩码矩阵的宽度和高度(即当前块亮度分量的宽度和高度)。
由于GPM预测块的运动掩码矩阵仍是以4×4子块为单位进行计算的,那么每个4×4子块的几何中心位置(4i+2,4j+2)处的运动索引值(可以用motionIdx表示)的计算类似于式(8)权重索引值weightIdx的计算,具体如下所示,
motionIdx=(((4*xSbIdx+offsetX)<<1)+5)*disLut[displacementX]+(((4*ySbIdx+offsetY)<<1)+5)*disLut[displacementY]              (18)
然后,再确定当前4×4的子块需要存储的mv信息。同预测加权时一样,需要首先确定出当前子块处于A分区还是B分区。
partIdx=(angleIdx>=13&&angleIdx<=27)?0:1          (19)
其中(xSbIdx,ySbIdx)表示每个4×4子块(subblock,sb)在当前CU中的子块坐标。坐标的范围为xSbIdx=0..numSbX–1和ySbIdx=0..numSbY–1。partIdx表示是否需要对两个分区进行翻转。
sType=abs(motionIdx)<32?2:(motionIdx<=0?(1-partIdx):partIdx)        (20)
预测流程的输出包括:预测像素值predSamplesL、predSamplesCb和predSamplesCr。
如此,根据每个4×4子块的几何中心位置(4i+2,4j+2)处abs(motionIdx)的大小,来判断当前子块存储单向mv还是双向mv;具体判断过程如下:
如果sType为2,当前块存储构造的双向MV;
否则,如果sType为0,当前块存储第一个分区的MVA;
如果sType为1,当前块存储第二个分区的MVB;
这些存储下来的mv信息将用于后续编码块的mv预测。
第五步、编码器针对GPM预测模式相关语法的编码过程
编码器中将GPM与其他帧间预测模式视为相互竞争的模式,依照率失真优化(RDO)或其他策略在模式之间进行选择,将选择的结果以码流中语法元素的形式传送给解码端。即1)节中所述语法的写入操作。该过程与解析过程相反,首先得到的m和n这两个A、B分区各自在merge列表中所选择的参考选项位置信息,然后再依照下式对语法元素进行赋值。
merge_gpm_idx0[xCb][yCb]=m
merge_gpm_idx1[xCb][yCb]=n-(merge_gpm_idx1[xCb][yCb]>=m)?1:0
再对其进行二值化、熵编码,从而最终写入码流传输。
图17为本申请实施例提供的帧内预测方法的第二流程示意图,应用于解码器,如图17所示,该方法包括:
步骤301:解析码流,确定当前块的预测模式参数;
步骤302:当预测模式参数指示当前块使用几何划分预测模式GPM确定帧间预测值时,构造当前块的融合merge候选列表;
步骤303:根据当前块的merge候选列表中的第一运动信息,构建GPM运动信息候选列表,其中,构建过程包括对第一运动信息进行去重复信息的处理;
步骤304:根据GPM运动信息候选列表,确定当前块的帧间预测值。
在一些实施例中,所述根据所述当前块的所述merge候选列表中的第一运动信息,构建GPM运动信息候选列表,包括:初始化当前块的GPM运动信息候选列表;按照预设的获取策略,依次获取所述merge候选列表中的第一运动信息;检测所述第一运动信息与所述GPM运动信息候选列表中的第二运动信息是否重合,得到查重检测结果;基于所述查重检测结果利用所述第一运动信息更新GPM运动信息候选列表,得到构建完成的GPM运动信息候选列表。
在一些实施例中,所述按照预设的获取策略,依次获取所述merge候选列表中的第一运动信息,包括:按照所述merge候选列表中相邻块的构造顺序和参考列表指示信息,依次获取所述merge候选列表中的第一运动信息;其中,所述参考列表指示信息用于指示优先使用的第一参考列表的运动信息或第二参考列表的运动信息。
也就是说,按照相邻块的构造顺序在merge列表中从上往下选择每一项中参考列表指示信息所指示的list0或list1中的第一运动信息,并对取出的第一运动信息进行查重去重处理。
在一些实施例中,所述按照所述merge候选列表中相邻块的构造顺序和参考列表指示信息,依次获取所述merge候选列表中的第一运动信息,包括:按照所述merge候选列表中相邻块的构造顺序和参考列表指示信息,确定所述merge候选列表的目标位置;若所述目标位置中的第一运动信息可用,获取所述目标位置中存储的第一运动信息;若所述目标位置中的第一运动信息不可用,获取所述目标位置的对向位置中存储的第一运动信息。
在另一些实施例中,所述按照预设的获取策略,依次获取所述merge候选列表中的第一运动信息,包括:按照所述merge候选列表中相邻块的构造顺序,依次获取所述merge候选列表中的所有可用的第一运动信息。
在一些实施例中,具体的去重步骤可以包括:所述查重检测结果表征所述第一运动信息与所述GPM运动信息候选列表中的第二运动信息不重合时,将所述第一运动信息添加到所述GPM运动信息候选列表中;所述查重检测结果表征所述第一运动信息与所述GPM运动信息候选列表中的第二运动信息重合时,忽略当前第一运动信息;按照预设的获取策略,获取所述merge候选列表中下一个第一运动信息,并继续对下一个第一运动信息进行去重复信息的处理,以更新GPM运动信息候选列表。
在一些实施例中,具体的去重步骤还可以包括:所述查重检测结果表征所述第一运动信息与所述GPM运动信息候选列表中的第二运动信息不重合时,将所述第一运动信息添加到所述GPM运动信息候选列表中;所述查重检测结果表征所述第一运动信息与所述第二运动信息重合时,获取所述第一运动信息所在位置的对向位置中存储的第一运动信息,利用所述对向位置中存储的第一运动信息更新GPM运动信息候选列表;按照预设的获取策略,获取所述merge候选列表中下一个第一运动信息,并继续对下一个第一运动信息进行去重复信息的处理,以更新GPM运动信息候选列表。
在一些实施例中,所述利用所述对向位置中存储的第一运动信息更新GPM运动信息候选列表,包括:对所述对向位置中存储的第一运动信息进行去重复信息的处理,以更新GPM运动信息候选列表;或者,将所述对向位置中存储的第一运动信息添加到所述GPM运动信息候选列表中。
这里,对所述对向位置中存储的第一运动信息进行去重复信息的处理,以更新GPM运动信息候选列表,即检测对象位置的第一运动信息与所述GPM运动信息候选列表中的第二运动信息是否重合,得到查重检测结果;所述查重检测结果表征对象位置的第一运动信息与所述GPM运动信息候选列表中的第二运动信息不重合时,将对象位置的第一运动信息添加到所述GPM运动信息候选列表中;所述查重检测结果表征对象位置的第一运动信息与所述GPM运 动信息候选列表中的第二运动信息重合时,忽略对象位置的第一运动信息。
这里,将所述对向位置中存储的第一运动信息添加到所述GPM运动信息候选列表中,即无需对对象位置的第一运动信息进行去重复信息的处理,直接将对象位置的第一运动信息添加到运动信息候选列表中。
在一些实施例中,所述GPM运动信息候选列表中存储所述merge候选列表中的至少部分第一运动信息,或者存储所述merge候选列表中的至少部分第一运动信息的映射信息。
在一些实施例中,所述GPM运动信息候选列表中存储所述merge候选列表中的至少部分第一运动信息的映射信息时,所述将所述第一运动信息添加到所述GPM运动信息候选列表中,包括:将所述第一运动信息的映射信息添加到所述GPM运动信息候选列表中;其中,所述第一运动信息的映射信息包括:第一运动信息在所述merge候选列表中的序号和参考列表指示信息。
在一些实施例中,所述根据所述当前块的所述merge候选列表中的第一运动信息,构建GPM运动信息候选列表,包括:根据所述当前块的所述merge候选列表中的第一运动信息,分别构建所述当前块第一分区对应的第一运动信息候选列表,以及所述当前块第二分区对应的第二运动信息候选列表;其中,所述构建过程包括对所述第一运动信息进行去重复信息的处理。
也就是说,先对当前块的所述merge候选列表中的第一运动信息进行查重去重处理,再分别根据A分区mv选择策略,构造A分区的第一运动信息候选列表;根据B分区的mv选择策略,构造B分区的第二运动信息候选列表。
需要说明的是,A分区的选择策略用户确定运动信息的使用优先级和运动信息在运动信息候选列表中的排列位置,B分区的选择策略用户确定运动信息的使用优先级和运动信息在运动信息候选列表中的排列位置,使用优先级越高在运动信息候选列表中位置越靠前。当A分区和B分区的选择策略不相同时,需要为A分区和B分区构造不同的运动信息候选列表;当A分区和B分区的选择策略相同时,可以为A分区和B分区构造相同的运动信息候选列表。
在一些实施例中,所述构建GPM运动信息候选列表之后,所述方法还包括:解析码流,确定所述GPM运动信息候选列表中所述当前块第一分区的运动信息对应的第一索引信息,以及所述当前块第二分区运动信息对应的第二索引信息;基于所述第一索引信息,从所述GPM运动信息候选列表中获取所述第一分区的运动信息;基于所述第二索引信息,从所述GPM运动信息候选列表中获取所述第二分区的运动信息;利用所述第一分区的运动信息计算所述第一分区的第一预测值,利用所述第二分区的运动信息计算所述第二分区的第二预测值;对所述第一预测值和所述第二预测值进行加权融合,得到当前块的帧间预测值。
具体的,解析码流,当所述GPM运动信息候选列表的候选项数量大于2时,从所述GPM运动信息候选列表中获取所述第一分区的运动信息对应的第一索引信息和所述第二分区运动信息对应的第二索引信息;
当所述GPM运动信息候选列表的候选项数量等于2时,从所述GPM运动信息候选列表中获取所述第一分区的运动信息对应的第一索引信息,或者所述第二分区运动信息对应的第二索引信息。
实际应用中,该方法还包括:编码器获取当前块内像素点对应的权重索引绝对信息,根据该当前块内像素点对应的权重索引和当前块内像素点对应的权重索引绝对信息,确定出与权重索引绝对信息对应的权重值,再基于权重索引绝对信息对应的权重值,从当前块内像素点中确定出第一分区的第一像素点的权重值和第二分区的第二像素点的权重值,然后根据和第一分区的第一像素点的权重值和第二分区的第二像素点的权重值,确定出第一分区对应的当前块内像素点的第一权重值,最后根据第一权重值,确定出第二分区对应的当前块内像素点的第二权重值。
在本申请实施例中,编码器可以根据每个像素点的第一预测值与第一权重值相乘,加上对应的每个像素点的第二预测值与第二权重值之积,完成对当前块内像素点的加权融合,得到当前块的帧间预测值。
实际应用中,解码器解析码流获取第一分区的第一索引信息和第二分区的第二索引信息,再根据索引信息从解码器建立的运动信息候选列表中确定各自分区的运动信息。解码器端对merge列表查重去重操作构建GPM运动信息候选列表的方法与解码端相同,解码器端的其他帧间预测过程与编码器端相同,这里不再赘述。
采用上述方案,解码器在进行帧间预测的过程中,利用merge候选列表构建GPM运动信息候选列表时,先对merge候选列表进行查重去重处理,再构建运动信息候选列表,可以避免GPM运动信息候选列表中存在重复的运动信息,减小GPM运动信息候选列表长度,提高了运动信息的表达效率,从而提高视频编码和解码效率。
本申请实施例提供一种编码器,图18为本申请实施例中编码器的第一组成结构示意图,如图18所示,该编码器40包括:
确定单元401,用于确定当前块的预测模式参数;
第一构造单元402,用于当所述预测模式参数指示所述当前块使用几何划分预测模式GPM确定帧间预测值时,构造所述当前块的融合merge候选列表;
第一处理单元403,用于根据所述当前块的所述merge候选列表中的第一运动信息,构建GPM运动信息候选列表,其中,所述构建过程包括对所述第一运动信息进行去重复信息的处理;
第一预测单元404,用于根据所述GPM运动信息候选列表,确定所述当前块的帧间预测值。
在本申请的一些实施例中,第一处理单元403,具体用于初始化当前块的GPM运动信息候选列表;按照预设的获取策略,依次获取所述merge候选列表中的第一运动信息;检测所述第一运动信息与所述GPM运动信息候选列表中的第二运动信息是否重合,得到查重检测结果;基于所述查重检测结果利用所述第一运动信息更新GPM运动信息候选列表,得到构建完成的GPM运动信息候选列表。
在本申请的一些实施例中,第一处理单元403,具体用于按照所述merge候选列表中相邻块的构造顺序和参考列表指示信息,依次获取所述merge候选列表中的第一运动信息;其中,所述参考列表指示信息用于指示优先使用的第一参考列表的运动信息或第二参考列表的运动信息。
在本申请的一些实施例中,第一处理单元403,具体用于按照所述merge候选列表中相邻块的构造顺序和参考列表指示信息,确定所述merge候选列表的目标位置;若所述目标位置中的第一运动信息可用,获取所述目标位置中 存储的第一运动信息;若所述目标位置中的第一运动信息不可用,获取所述目标位置的对向位置中存储的第一运动信息。
在本申请的一些实施例中,第一处理单元403,具体用于按照所述merge候选列表中相邻块的构造顺序,依次获取所述merge候选列表中的所有可用的第一运动信息。
在本申请的一些实施例中,第一处理单元403,具体用于所述查重检测结果表征所述第一运动信息与所述GPM运动信息候选列表中的第二运动信息不重合时,将所述第一运动信息添加到所述GPM运动信息候选列表中;所述查重检测结果表征所述第一运动信息与所述GPM运动信息候选列表中的第二运动信息重合时,忽略当前第一运动信息;或者,所述查重检测结果表征所述第一运动信息与所述第二运动信息重合时,获取所述第一运动信息所在位置的对向位置中存储的第一运动信息,利用所述对向位置中存储的第一运动信息更新GPM运动信息候选列表;按照预设的获取策略,获取所述merge候选列表中下一个第一运动信息,并继续对下一个第一运动信息进行去重复信息的处理,以更新GPM运动信息候选列表。
在本申请的一些实施例中,第一处理单元403,具体用于对所述对向位置中存储的第一运动信息进行去重复信息的处理,以更新GPM运动信息候选列表;或者,将所述对向位置中存储的第一运动信息添加到所述GPM运动信息候选列表中。
在本申请的一些实施例中,所述GPM运动信息候选列表中存储所述merge候选列表中的至少部分第一运动信息,或者存储所述merge候选列表中的至少部分第一运动信息的映射信息。
在本申请的一些实施例中,所述GPM运动信息候选列表中存储所述merge候选列表中的至少部分第一运动信息的映射信息时,第一处理单元403,具体用于将所述第一运动信息的映射信息添加到所述GPM运动信息候选列表中;其中,所述第一运动信息的映射信息包括:第一运动信息在所述merge候选列表中的序号和参考列表指示信息。
在本申请的一些实施例中,第一处理单元403,具体用于根据所述当前块的所述merge候选列表中的第一运动信息,分别构建所述当前块第一分区对应的第一运动信息候选列表,以及所述当前块第二分区对应的第二运动信息候选列表;其中,所述构建过程包括对所述第一运动信息进行去重复信息的处理。
在本申请的一些实施例中,第一预测单元404,具体用于从所述GPM运动信息候选列表中,获取用于所述当前块第一分区的运动信息,以及用于所述当前块第二分区的运动信息;利用所述第一分区的运动信息计算所述第一分区的第一预测值,利用所述第二分区的运动信息计算所述第二分区的第二预测值;对所述第一预测值和所述第二预测值进行加权融合,得到当前块的帧间预测值。
在本申请的一些实施例中,所述编码器40还包括:写入单元(图中未示出),写入单元,用于当所述GPM运动信息候选列表的候选项数量大于2时,从所述GPM运动信息候选列表中获取所述第一分区的运动信息对应的第一索引信息,以及所述第二分区运动信息对应的第二索引信息;将所述第一索引信息和所述第二索引信息写入码流;
写入单元,还用于当所述GPM运动信息候选列表的候选项数量等于2时,从所述GPM运动信息候选列表中获取所述第一分区的运动信息对应的第一索引信息,或者所述第二分区运动信息对应的第二索引信息;将所述第一索引信息或者所述第二索引信息写入码流。
在实际应用中,本申请实施例还提供了一种编码器,图19为本申请实施例中编码器的第二组成结构示意图如图19所示,编码器40包括:
第一存储器405和第一处理器406;所述第一存储器405存储有可在第一处理器406上运行的计算机程序,所述第一处理器406执行所述程序时编码器侧的帧间预测方法。
采用上述方案,编码器在进行帧间预测的过程中,利用merge候选列表构建GPM运动信息候选列表时,先对merge候选列表进行查重去重处理,再构建运动信息候选列表,可以避免GPM运动信息候选列表中存在重复的运动信息,减小GPM运动信息候选列表长度,提高了运动信息的表达效率,从而提高视频编码和解码效率。
本申请实施例提供一种解码器器,图20为本申请实施例中解码器的第一组成结构示意图,如图20所示,该解码器50包括:
解析单元501,用于解析码流,确定当前块的预测模式参数;
第二构造单元502,用于当所述预测模式参数指示所述当前块使用几何划分预测模式GPM确定帧间预测值时,构造所述当前块的融合merge候选列表;
第二处理单元503,用于根据所述当前块的所述merge候选列表中的第一运动信息,构建GPM运动信息候选列表,其中,所述构建过程包括对所述第一运动信息进行去重复信息的处理;
第二预测单元504,用于根据所述GPM运动信息候选列表,确定所述当前块的帧间预测值。
在本申请的一些实施例中,第二处理单元503,具体用于初始化当前块的GPM运动信息候选列表;按照预设的获取策略,依次获取所述merge候选列表中的第一运动信息;检测所述第一运动信息与所述GPM运动信息候选列表中的第二运动信息是否重合,得到查重检测结果;基于所述查重检测结果利用所述第一运动信息更新GPM运动信息候选列表,得到构建完成的GPM运动信息候选列表。
在本申请的一些实施例中,第二处理单元503,具体用于按照所述merge候选列表中相邻块的构造顺序和参考列表指示信息,依次获取所述merge候选列表中的第一运动信息;其中,所述参考列表指示信息用于指示优先使用的第一参考列表的运动信息或第二参考列表的运动信息。
在本申请的一些实施例中,第二处理单元503,具体用于按照所述merge候选列表中相邻块的构造顺序和参考列表指示信息,确定所述merge候选列表的目标位置;若所述目标位置中的第一运动信息可用,获取所述目标位置中存储的第一运动信息;若所述目标位置中的第一运动信息不可用,获取所述目标位置的对向位置中存储的第一运动信息。
在本申请的一些实施例中,第二处理单元503,具体用于按照所述merge候选列表中相邻块的构造顺序,依次获 取所述merge候选列表中的所有可用的第一运动信息。
在本申请的一些实施例中,第二处理单元503,具体用于所述查重检测结果表征所述第一运动信息与所述GPM运动信息候选列表中的第二运动信息不重合时,将所述第一运动信息添加到所述GPM运动信息候选列表中;所述查重检测结果表征所述第一运动信息与所述GPM运动信息候选列表中的第二运动信息重合时,忽略当前第一运动信息;或者,所述查重检测结果表征所述第一运动信息与所述第二运动信息重合时,获取所述第一运动信息所在位置的对向位置中存储的第一运动信息,利用所述对向位置中存储的第一运动信息更新GPM运动信息候选列表;按照预设的获取策略,获取所述merge候选列表中下一个第一运动信息,并继续对下一个第一运动信息进行去重复信息的处理,以更新GPM运动信息候选列表。
在本申请的一些实施例中,第二处理单元503,具体用于对所述对向位置中存储的第一运动信息进行去重复信息的处理,以更新GPM运动信息候选列表;或者,将所述对向位置中存储的第一运动信息添加到所述GPM运动信息候选列表中。
在本申请的一些实施例中,所述GPM运动信息候选列表中存储所述merge候选列表中的至少部分第一运动信息,或者存储所述merge候选列表中的至少部分第一运动信息的映射信息。
在本申请的一些实施例中,所述GPM运动信息候选列表中存储所述merge候选列表中的至少部分第一运动信息的映射信息时,第二处理单元503,具体用于将所述第一运动信息的映射信息添加到所述GPM运动信息候选列表中;其中,所述第一运动信息的映射信息包括:第一运动信息在所述merge候选列表中的序号和参考列表指示信息。
在本申请的一些实施例中,第二处理单元503,具体用于根据所述当前块的所述merge候选列表中的第一运动信息,分别构建所述当前块第一分区对应的第一运动信息候选列表,以及所述当前块第二分区对应的第二运动信息候选列表;其中,所述构建过程包括对所述第一运动信息进行去重复信息的处理。
在本申请的一些实施例中,第二预测单元504,具体用于解析码流,确定所述GPM运动信息候选列表中所述当前块第一分区的运动信息对应的第一索引信息,以及所述当前块第二分区运动信息对应的第二索引信息;基于所述第一索引信息,从所述GPM运动信息候选列表中获取所述第一分区的运动信息;基于所述第二索引信息,从所述GPM运动信息候选列表中获取所述第二分区的运动信息;利用所述第一分区的运动信息计算所述第一分区的第一预测值,利用所述第二分区的运动信息计算所述第二分区的第二预测值;对所述第一预测值和所述第二预测值进行加权融合,得到当前块的帧间预测值。
在实际应用中,本申请实施例还提供了一种解码器,图21为本申请实施例中解码器的第二组成结构示意图,如图21所示,解码器50包括:
第二存储器505和第二处理器506;所述第二存储器505存储有可在第二处理器506上运行的计算机程序,所述第二处理器506执行所述程序时解码器侧的帧间预测方法。
可以理解的是,解码器在进行帧间预测的过程中,在利用merge候选列表构建GPM运动信息候选列表时,先对merge候选列表进行查重去重处理,再构建运动信息候选列表,可以避免GPM运动信息候选列表中存在重复的运动信息,减小GPM运动信息候选列表长度,提高了运动信息的表达效率,从而提高视频编码和解码效率。
另外,在本实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
相应的,本申请实施例提供了一种存储介质,其上存储有计算机程序,该计算机程序被第一处理器执行时,实现编码器的帧间预测方法;或者,该计算机程序被第二处理器执行时,实现解码器的帧间预测方法。
这里需要指出的是:以上存储介质和装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质和装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
工业实用性
本申请实施例中,确定当前块的预测模式参数;当所述预测模式参数指示所述当前块使用几何划分预测模式GPM确定帧间预测值时,构造所述当前块的融合merge候选列表;根据所述当前块的所述merge候选列表中的第一运动信息,构建GPM运动信息候选列表,根据所述GPM运动信息候选列表,确定所述当前块的帧间预测值。这样,利用merge候选列表构建GPM运动信息候选列表时,先对merge候选列表进行查重去重处理,再构建运动信息候选列表,可以避免GPM运动信息候选列表中存在重复的运动信息,减小GPM运动信息候选列表长度,提高了运动信息的表达效率,从而提高视频编码和解码效率。

Claims (28)

  1. 一种帧间预测方法,其特征在于,应用于编码器,包括:
    确定当前块的预测模式参数;
    当所述预测模式参数指示所述当前块使用几何划分预测模式GPM确定帧间预测值时,构造所述当前块的融合merge候选列表;
    根据所述当前块的所述merge候选列表中的第一运动信息,构建GPM运动信息候选列表,其中,所述构建过程包括对所述第一运动信息进行去重复信息的处理;
    根据所述GPM运动信息候选列表,确定所述当前块的帧间预测值。
  2. 根据权利要求1所述的方法,其中,所述根据所述当前块的所述merge候选列表中的第一运动信息,构建GPM运动信息候选列表,包括:
    初始化所述当前块的GPM运动信息候选列表;
    按照预设的获取策略,依次获取所述merge候选列表中的第一运动信息;
    检测所述第一运动信息与所述GPM运动信息候选列表中的第二运动信息是否重合,得到查重检测结果;
    基于所述查重检测结果利用所述第一运动信息更新GPM运动信息候选列表,得到构建完成的GPM运动信息候选列表。
  3. 根据权利要求2所述的方法,其中,所述按照预设的获取策略,依次获取所述merge候选列表中的第一运动信息,包括:
    按照所述merge候选列表中相邻块的构造顺序和参考列表指示信息,依次获取所述merge候选列表中的第一运动信息;其中,所述参考列表指示信息用于指示优先使用的第一参考列表的运动信息或第二参考列表的运动信息。
  4. 根据权利要求3所述的方法,其中,所述按照所述merge候选列表中相邻块的构造顺序和参考列表指示信息,依次获取所述merge候选列表中的第一运动信息,包括:
    按照所述merge候选列表中相邻块的构造顺序和参考列表指示信息,确定所述merge候选列表的目标位置;
    若所述目标位置中的第一运动信息可用,获取所述目标位置中存储的第一运动信息;
    若所述目标位置中的第一运动信息不可用,获取所述目标位置的对向位置中存储的第一运动信息。
  5. 根据权利要求2所述的方法,其中,所述按照预设的获取策略,依次获取所述merge候选列表中的第一运动信息,包括:
    按照所述merge候选列表中相邻块的构造顺序,依次获取所述merge候选列表中的所有可用的第一运动信息。
  6. 根据权利要求2-5任一项所述的方法,其中,所述基于所述查重检测结果利用所述第一运动信息更新GPM运动信息候选列表,包括:
    所述查重检测结果表征所述第一运动信息与所述GPM运动信息候选列表中的第二运动信息不重合时,将所述第一运动信息添加到所述GPM运动信息候选列表中;
    所述查重检测结果表征所述第一运动信息与所述GPM运动信息候选列表中的第二运动信息重合时,忽略当前第一运动信息;或者,所述查重检测结果表征所述第一运动信息与所述第二运动信息重合时,获取所述第一运动信息所在位置的对向位置中存储的第一运动信息,利用所述对向位置中存储的第一运动信息更新GPM运动信息候选列表;
    按照预设的获取策略,获取所述merge候选列表中下一个第一运动信息,并继续对下一个第一运动信息进行去重复信息的处理,以更新GPM运动信息候选列表。
  7. 根据权利要求6所述的方法,其中,所述利用所述对向位置中存储的第一运动信息更新GPM运动信息候选列表,包括:
    对所述对向位置中存储的第一运动信息进行去重复信息的处理,以更新GPM运动信息候选列表;
    或者,将所述对向位置中存储的第一运动信息添加到所述GPM运动信息候选列表中。
  8. 根据权利要求6所述的方法,其中,所述GPM运动信息候选列表中存储所述merge候选列表中的至少部分第一运动信息,或者存储所述merge候选列表中的至少部分第一运动信息的映射信息。
  9. 根据权利要求8所述的方法,其中,所述GPM运动信息候选列表中存储所述merge候选列表中的至少部分第一运动信息的映射信息时,所述将所述第一运动信息添加到所述GPM运动信息候选列表中,包括:
    将所述第一运动信息的映射信息添加到所述GPM运动信息候选列表中;其中,所述第一运动信息的映射信息包括:第一运动信息在所述merge候选列表中的序号和参考列表指示信息。
  10. 根据权利要求1所述的方法,其中,所述根据所述当前块的所述merge候选列表中的第一运动信息,构建GPM运动信息候选列表,包括:
    根据所述当前块的所述merge候选列表中的第一运动信息,分别构建所述当前块第一分区对应的第一运动信息候选列表,以及所述当前块第二分区对应的第二运动信息候选列表;其中,所述构建过程包括对所述第一运动信息进行去重复信息的处理。
  11. 根据权利要求1所述的方法,其中,所述根据所述GPM运动信息候选列表,确定所述当前块的帧间预测值,包括:
    从所述GPM运动信息候选列表中,获取用于所述当前块第一分区的运动信息,以及用于所述当前块第二分区的运动信息;
    利用所述第一分区的运动信息计算所述第一分区的第一预测值,利用所述第二分区的运动信息计算所述第二分区的第二预测值;
    对所述第一预测值和所述第二预测值进行加权融合,得到所述当前块的帧间预测值。
  12. 根据权利要求11所述的方法,其中,所述构建GPM运动信息候选列表之后,所述方法还包括:
    当所述GPM运动信息候选列表的候选项数量大于2时,从所述GPM运动信息候选列表中获取所述第一分区的运动信息对应的第一索引信息,以及所述第二分区运动信息对应的第二索引信息;将所述第一索引信息和所述第二索引信息写入码流;
    当所述GPM运动信息候选列表的候选项数量等于2时,从所述GPM运动信息候选列表中获取所述第一分区的运动信息对应的第一索引信息,或者所述第二分区运动信息对应的第二索引信息;将所述第一索引信息或者所述第二索引信息写入码流。
  13. 一种帧间预测方法,应用于解码器,所述方法包括:
    解析码流,确定当前块的预测模式参数;
    当所述预测模式参数指示所述当前块使用几何划分预测模式GPM确定帧间预测值时,构造所述当前块的融合merge候选列表;
    根据所述当前块的所述merge候选列表中的第一运动信息,构建GPM运动信息候选列表,其中,所述构建过程包括对所述第一运动信息进行去重复信息的处理;
    根据所述GPM运动信息候选列表,确定所述当前块的帧间预测值。
  14. 根据权利要求13所述的方法,其中,所述根据所述当前块的所述merge候选列表中的第一运动信息,构建GPM运动信息候选列表,包括:
    初始化所述当前块的GPM运动信息候选列表;
    按照预设的获取策略,依次获取所述merge候选列表中的第一运动信息;
    检测所述第一运动信息与所述GPM运动信息候选列表中的第二运动信息是否重合,得到查重检测结果;
    基于所述查重检测结果利用所述第一运动信息更新GPM运动信息候选列表,得到构建完成的GPM运动信息候选列表。
  15. 根据权利要求14所述的方法,其中,所述按照预设的获取策略,依次获取所述merge候选列表中的第一运动信息,包括:
    按照所述merge候选列表中相邻块的构造顺序和参考列表指示信息,依次获取所述merge候选列表中的第一运动信息;其中,所述参考列表指示信息用于指示优先使用的第一参考列表的运动信息或第二参考列表的运动信息。
  16. 根据权利要求15所述的方法,其中,所述按照所述merge候选列表中相邻块的构造顺序和参考列表指示信息,依次获取所述merge候选列表中的第一运动信息,包括:
    按照所述merge候选列表中相邻块的构造顺序和参考列表指示信息,确定所述merge候选列表的目标位置;
    若所述目标位置中的第一运动信息可用,获取所述目标位置中存储的第一运动信息;
    若所述目标位置中的第一运动信息不可用,获取所述目标位置的对向位置中存储的第一运动信息。
  17. 根据权利要求14所述的方法,其中,所述按照预设的获取策略,依次获取所述merge候选列表中的第一运动信息,包括:
    按照所述merge候选列表中相邻块的构造顺序,依次获取所述merge候选列表中的所有可用的第一运动信息。
  18. 根据权利要求13-17任一项所述的方法,其中,所述基于所述查重检测结果利用所述第一运动信息更新GPM运动信息候选列表,包括:
    所述查重检测结果表征所述第一运动信息与所述GPM运动信息候选列表中的第二运动信息不重合时,将所述第一运动信息添加到所述GPM运动信息候选列表中;
    所述查重检测结果表征所述第一运动信息与所述GPM运动信息候选列表中的第二运动信息重合时,忽略当前第一运动信息;或者,所述查重检测结果表征所述第一运动信息与所述第二运动信息重合时,获取所述第一运动信息所在位置的对向位置中存储的第一运动信息,利用所述对向位置中存储的第一运动信息更新GPM运动信息候选列表;
    按照预设的获取策略,获取所述merge候选列表中下一个第一运动信息,并继续对下一个第一运动信息进行去重复信息的处理,以更新GPM运动信息候选列表。
  19. 根据权利要求18所述的方法,其中,所述利用所述对向位置中存储的第一运动信息更新GPM运动信息候选列表,包括:
    对所述对向位置中存储的第一运动信息进行去重复信息的处理,以更新GPM运动信息候选列表;
    或者,将所述对向位置中存储的第一运动信息添加到所述GPM运动信息候选列表中。
  20. 根据权利要求18所述的方法,其中,所述GPM运动信息候选列表中存储所述merge候选列表中的至少部分第一运动信息,或者存储所述merge候选列表中的至少部分第一运动信息的映射信息。
  21. 根据权利要求20所述的方法,其中,所述GPM运动信息候选列表中存储所述merge候选列表中的至少部分第一运动信息的映射信息时,所述将所述第一运动信息添加到所述GPM运动信息候选列表中,包括:
    将所述第一运动信息的映射信息添加到所述GPM运动信息候选列表中;其中,所述第一运动信息的映射信息包括:第一运动信息在所述merge候选列表中的序号和参考列表指示信息。
  22. 根据权利要求13所述的方法,其中,所述根据所述当前块的所述merge候选列表中的第一运动信息,构建GPM运动信息候选列表,包括:
    根据所述当前块的所述merge候选列表中的第一运动信息,分别构建所述当前块第一分区对应的第一运动信息候选列表,以及所述当前块第二分区对应的第二运动信息候选列表;其中,所述构建过程包括对所述第一运动信息进行去重复信息的处理。
  23. 根据权利要求13所述的方法,其中,所述根据所述GPM运动信息候选列表,确定所述当前块的帧间预测 值,包括:
    解析码流,确定所述GPM运动信息候选列表中所述当前块第一分区的运动信息对应的第一索引信息,以及所述当前块第二分区运动信息对应的第二索引信息;
    基于所述第一索引信息,从所述GPM运动信息候选列表中获取所述第一分区的运动信息;
    基于所述第二索引信息,从所述GPM运动信息候选列表中获取所述第二分区的运动信息;
    利用所述第一分区的运动信息计算所述第一分区的第一预测值,利用所述第二分区的运动信息计算所述第二分区的第二预测值;
    对所述第一预测值和所述第二预测值进行加权融合,得到所述当前块的帧间预测值。
  24. 一种编码器,其中,所述编码器包括:
    确定单元,用于确定当前块的预测模式参数;
    第一构造单元,用于当所述预测模式参数指示所述当前块使用几何划分预测模式GPM确定帧间预测值时,构造所述当前块的融合merge候选列表;
    第一处理单元,用于根据所述当前块的所述merge候选列表中的第一运动信息,构建GPM运动信息候选列表,其中,所述构建过程包括对所述第一运动信息进行去重复信息的处理;
    第一预测单元,用于根据所述GPM运动信息候选列表,确定所述当前块的帧间预测值。
  25. 一种解码器,其中,所述解码器包括:
    解析单元,用于解析码流,确定当前块的预测模式参数;
    第二构造单元,用于当所述预测模式参数指示所述当前块使用几何划分预测模式GPM确定帧间预测值时,构造所述当前块的融合merge候选列表;
    第二处理单元,用于根据所述当前块的所述merge候选列表中的第一运动信息,构建GPM运动信息候选列表,其中,所述构建过程包括对所述第一运动信息进行去重复信息的处理;
    第二预测单元,用于根据所述GPM运动信息候选列表,确定所述当前块的帧间预测值。
  26. 一种编码器,其中,所述编码器包括:
    第一存储器和第一处理器;
    所述第一存储器存储有可在第一处理器上运行的计算机程序,所述第一处理器执行所述程序时实现权利要求1至12任一项所述帧间预测方法。
  27. 一种解码器,其特征在于,包括:
    第二存储器和第二处理器;
    所述第二存储器存储有可在第二处理器上运行的计算机程序,所述第二处理器执行所述程序时实现权利要求13至23任一项所述帧间预测方法。
  28. 一种存储介质,其特征在于,其上存储有计算机程序,该计算机程序被第一处理器执行时,实现权利要求1至12任一项所述帧间预测方法;或者,该计算机程序被第二处理器执行时,实现权利要求13至23任一项所述帧间预测方法。
PCT/CN2020/083313 2020-04-03 2020-04-03 一种帧间预测方法、编码器、解码器及存储介质 WO2021196211A1 (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN202080098331.7A CN115244925A (zh) 2020-04-03 2020-04-03 一种帧间预测方法、编码器、解码器及存储介质
EP20928595.6A EP4131955A4 (en) 2020-04-03 2020-04-03 INTERFRAME PREDICTION METHOD, ENCODER, DECODER AND STORAGE MEDIUM
PCT/CN2020/083313 WO2021196211A1 (zh) 2020-04-03 2020-04-03 一种帧间预测方法、编码器、解码器及存储介质
TW110109409A TW202139693A (zh) 2020-04-03 2021-03-16 一種幀間預測方法、編碼器、解碼器及儲存媒介
US17/955,264 US20230045687A1 (en) 2020-04-03 2022-09-28 Inter Prediction Method, Encoder, Decoder, and Storage Medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/083313 WO2021196211A1 (zh) 2020-04-03 2020-04-03 一种帧间预测方法、编码器、解码器及存储介质

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/955,264 Continuation US20230045687A1 (en) 2020-04-03 2022-09-28 Inter Prediction Method, Encoder, Decoder, and Storage Medium

Publications (1)

Publication Number Publication Date
WO2021196211A1 true WO2021196211A1 (zh) 2021-10-07

Family

ID=77930268

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/083313 WO2021196211A1 (zh) 2020-04-03 2020-04-03 一种帧间预测方法、编码器、解码器及存储介质

Country Status (5)

Country Link
US (1) US20230045687A1 (zh)
EP (1) EP4131955A4 (zh)
CN (1) CN115244925A (zh)
TW (1) TW202139693A (zh)
WO (1) WO2021196211A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023246868A1 (en) * 2022-06-21 2023-12-28 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102870414A (zh) * 2010-05-04 2013-01-09 Lg电子株式会社 处理视频信号的方法和设备
CN109819255A (zh) * 2018-12-28 2019-05-28 杭州海康威视数字技术股份有限公司 一种编解码方法及其设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102870414A (zh) * 2010-05-04 2013-01-09 Lg电子株式会社 处理视频信号的方法和设备
CN109819255A (zh) * 2018-12-28 2019-05-28 杭州海康威视数字技术股份有限公司 一种编解码方法及其设备

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
L. ZHANG (BYTEDANCE), K. ZHANG (BYTEDANCE), H. LIU (BYTEDANCE), J. XU (BYTEDANCE), Y. WANG (BYTEDANCE): "CE4-4.4: Merge list construction for triangular prediction mode", 14. JVET MEETING; 20190319 - 20190327; GENEVA; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ), 19 March 2019 (2019-03-19), Geneva CH, pages 1 - 3, XP030203675 *
L. ZHANG (BYTEDANCE), K. ZHANG (BYTEDANCE), H. LIU (BYTEDANCE), J. XU, Y. WANG, P. ZHAO, D. HONG(BYTEDANCE): "CE10-related: Merge list construction process for triangular prediction mode", 13. JVET MEETING; 20190109 - 20190118; MARRAKECH; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ), 3 January 2019 (2019-01-03), Marrakech MA, pages 1 - 4, XP030200425 *
S. ESENLIK (HUAWEI), H. GAO (HUAWEI), A. FILIPPOV, V. RUFITSKIY, A. M. KOTRA, B. WANG, E. ALSHINA (HUAWEI), M. BLÄSER (RWTH-AACHEN: "Non-CE4: Geometrical partitioning for inter blocks", 15. JVET MEETING; 20190703 - 20190712; GOTHENBURG; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ), no. JVET-O0489-v4, 7 July 2019 (2019-07-07), Gothenburg SE, pages 1 - 9, XP030219723 *
See also references of EP4131955A4 *
X. WANG (KWAI), Y.-W. CHEN (KWAI), X. XIU (KWAI), T.-C. MA (KWAI INC.): "CE4-related: An improved method for triangle merge list construction", 14. JVET MEETING; 20190319 - 20190327; GENEVA; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ), 13 March 2019 (2019-03-13), Geneva CH, pages 1 - 3, XP030202984 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023246868A1 (en) * 2022-06-21 2023-12-28 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing

Also Published As

Publication number Publication date
US20230045687A1 (en) 2023-02-09
EP4131955A1 (en) 2023-02-08
EP4131955A4 (en) 2023-04-19
CN115244925A (zh) 2022-10-25
TW202139693A (zh) 2021-10-16

Similar Documents

Publication Publication Date Title
TWI703861B (zh) 解碼器的視訊解碼方法及裝置
WO2021196235A1 (zh) 帧间预测方法、编码器、解码器及存储介质
CN104244007B (zh) 一种图像编码方法和装置及解码方法和装置
WO2021203841A1 (zh) 一种帧间预测方法、编码器、解码器及存储介质
WO2016050051A1 (zh) 图像预测方法及相关装置
KR20180019688A (ko) 픽처 예측 방법 및 픽처 예측 장치
CN107027025B (zh) 一种基于宏像素块自适应预测的光场图像压缩方法
JP2022130647A (ja) 双方向オプティカル・フローに対するビット幅制御方法およびデバイス
US20230023856A1 (en) Inter prediction method, encoder, decoder, and storage medium
TW202139700A (zh) 一種幀間預測方法、編碼器、解碼器及儲存媒介
CN111131822B (zh) 具有从邻域导出的运动信息的重叠块运动补偿
JP2023052788A (ja) パディングのためのイントラ予測モードを選択する装置
CN108495139A (zh) 屏幕内容编码的哈希块匹配
CN113597767A (zh) 预测方法、编码器、解码器及计算机存储介质
CN110832854B (zh) 利用插值进行帧内预测的方法和装置
WO2021196211A1 (zh) 一种帧间预测方法、编码器、解码器及存储介质
WO2021238396A1 (zh) 帧间预测方法、编码器、解码器以及计算机存储介质
US20230080546A1 (en) Inter Prediction Method, Encoder, Decoder and Storage Medium
CN113709498A (zh) 帧间预测方法、编码器、解码器以及计算机存储介质
WO2021134627A1 (zh) 一种帧间预测方法、编码器、解码器及存储介质
WO2024077569A1 (zh) 编解码方法、码流、编码器、解码器以及存储介质
WO2024119521A1 (zh) 编解码方法、码流、编码器、解码器以及存储介质
WO2024055155A1 (zh) 一种编解码方法、装置、编码器、解码器及存储介质
WO2024007120A1 (zh) 编解码方法、编码器、解码器以及存储介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20928595

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2020928595

Country of ref document: EP

Effective date: 20221026

NENP Non-entry into the national phase

Ref country code: DE