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

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

Info

Publication number
WO2021196220A1
WO2021196220A1 PCT/CN2020/083342 CN2020083342W WO2021196220A1 WO 2021196220 A1 WO2021196220 A1 WO 2021196220A1 CN 2020083342 W CN2020083342 W CN 2020083342W WO 2021196220 A1 WO2021196220 A1 WO 2021196220A1
Authority
WO
WIPO (PCT)
Prior art keywords
motion
motion vector
candidate list
information
gpm
Prior art date
Application number
PCT/CN2020/083342
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 PCT/CN2020/083342 priority Critical patent/WO2021196220A1/zh
Priority to CN202080098827.4A priority patent/CN115315953A/zh
Priority to EP20929510.4A priority patent/EP4131958A4/en
Priority to TW110109411A priority patent/TW202139700A/zh
Publication of WO2021196220A1 publication Critical patent/WO2021196220A1/zh
Priority to US17/935,441 priority patent/US20230042640A1/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/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/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/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/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/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/88Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks

Definitions

  • the embodiments of the present application relate to video coding technology, and relate to, but are not limited to, inter-frame prediction methods, encoders, decoders, and storage media.
  • inter-frame prediction can also be used.
  • Inter-frame prediction can include motion estimation and motion compensation.
  • GPS Geometrical Geotriacl Partition Mode
  • GPM Geometrical Geotriacl Partition Mode
  • the motion information candidate list is actually formed by selecting from a conventional motion information candidate list in a parity check.
  • the GPM motion information candidate list generated according to the parity check method has certain irrationality.
  • the motion vectors included in the GPM motion information candidate list may not be suitable for inter-frame prediction.
  • a better motion vector cannot be obtained from the GPM motion information candidate list for inter-frame prediction. Prediction, which causes a loss of predictive performance.
  • the embodiments of the present application provide an inter-frame prediction method, an encoder, a decoder, and a storage medium, which improve the reliability of the GPM motion information candidate list, thereby improving inter-frame prediction performance and coding performance.
  • an embodiment of the present application provides an inter-frame prediction method applied to an encoder, including:
  • the prediction mode parameter indicates that the geometric partition prediction mode GPM is used to determine the inter prediction value of the current block
  • a candidate list of fused motion information corresponding to the current block is obtained;
  • the candidate list of fused motion information includes methods for determining all One or more motion candidate information of the inter prediction value of the current block, wherein the motion candidate information includes one or two motion vectors;
  • the motion candidate information is used to construct the to-be-filled motion information candidate list to generate the GPM motion information candidate list, wherein the GPM motion information candidate list is The motion candidate information of includes a motion vector;
  • an embodiment of the present application provides an inter-frame prediction method applied to a decoder, including:
  • the prediction mode parameter indicates that the geometric partition prediction mode GPM is used to determine the inter prediction value of the current block
  • a candidate list of fused motion information corresponding to the current block is obtained;
  • the candidate list of fused motion information includes methods for determining all One or more motion candidate information of the inter prediction value of the current block, wherein the motion candidate information includes one or two motion vectors;
  • the motion vector included in the motion candidate information is used to construct a motion information candidate list to be filled to generate a GPM motion information candidate list, wherein the GPM motion
  • the motion candidate information in the information candidate list includes a motion vector
  • the prediction mode parameter of the current block from the GPM motion information candidate list, determine the first motion vector corresponding to the first partition in the current block, and the second motion corresponding to the second partition in the current block Vector
  • an encoder including:
  • the first determining unit is used to determine the prediction mode parameter of the current block
  • the first acquiring unit is configured to acquire the fused motion information candidate list corresponding to the current block when the prediction mode parameter indicates that the geometric partition prediction mode GPM is used to determine the inter prediction value of the current block; the fused motion information
  • the candidate list includes one or more pieces of motion candidate information used to determine the inter prediction value of the current block, wherein the motion candidate information includes one or two motion vectors;
  • the first generating unit is configured to construct a candidate list of motion information to be filled according to the sequence of the candidate motion information in the candidate list of fused motion information, and generate a GPM motion information candidate list, wherein the GPM motion information
  • the motion candidate information in the candidate list includes a motion vector
  • a first selection unit configured to select a first motion vector corresponding to a first partition in the current block and a second motion vector corresponding to a second partition in the current block from the GPM motion information candidate list;
  • the first prediction unit is configured to use the first motion vector and the second motion vector to determine the inter-frame prediction value of the current block.
  • 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
  • the second obtaining unit is configured to obtain a candidate list of fused motion information corresponding to the current block when the prediction mode parameter indicates that the geometric partition prediction mode GPM is used to determine the inter prediction value of the current block; the fused motion information
  • the candidate list includes one or more pieces of motion candidate information used to determine the inter prediction value of the current block, wherein the motion candidate information includes one or two motion vectors;
  • the second generating unit is configured to use the motion vectors included in the motion candidate information to construct the motion information candidate list to be filled according to the sequence of the motion candidate information in the merged motion information candidate list, and generate the GPM motion information candidate list , Wherein the motion candidate information in the GPM motion information candidate list includes a motion vector;
  • the second determining unit is configured to determine the first motion vector corresponding to the first partition in the first current block from the GPM motion information candidate list according to the prediction mode parameter of the current block, and the current block The second motion vector corresponding to the second partition in the middle;
  • the second prediction unit is configured to use the first motion vector and the second motion vector to determine the inter prediction value of the current block.
  • an encoder including:
  • the first memory and the first processor are The first memory and the first processor;
  • the first memory stores a computer program that can be run on a first processor, and when the first processor executes the program, the inter-frame prediction method of the encoder is implemented.
  • an embodiment of the present application also provides a decoder, including:
  • the second memory stores a computer program that can be run on a second processor, and the second processor implements the inter-frame prediction method of the decoder when the second processor executes the program.
  • 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 the first processor, the inter-frame prediction method of the encoder is realized; or, when the computer program is executed by the second processor, the inter-frame prediction method of the decoder is realized. method of prediction.
  • the embodiments of the present application provide an inter-frame prediction method, an encoder, a decoder, and a storage medium, including: determining the prediction mode parameter of the current block; when the prediction mode parameter indicates that the geometric partition prediction mode GPM is used to determine the inter-frame prediction of the current block
  • the fusion motion information candidate list corresponding to the current block is obtained; the fusion motion information candidate list includes one or more motion candidate information used to determine the inter prediction value of the current block, and the motion candidate information includes one or two motion vectors ;
  • the motion vector included in the motion candidate information is used to construct the motion information candidate list to be filled to generate the GPM motion information candidate list, where the motion candidates in the GPM motion information candidate list
  • the information includes a motion vector; from the GPM motion information candidate list, select the first motion vector corresponding to the first partition in the current block and the second motion vector corresponding to the second partition in the current block; use the first motion vector and the second motion vector
  • the technical solution provided by the embodiments of this application uses a motion vector in the fused motion information candidate list as one item, and uses the motion vectors to construct the GPM motion information candidate list according to the sequence in the fused motion information candidate list, which improves the GPM motion information.
  • the reliability of the candidate list improves inter-frame prediction performance and coding performance.
  • 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 first schematic diagram of an implementation process of an intra-frame prediction method provided by an embodiment of the application
  • 4a-4g are schematic diagrams of exemplary 7 division modes provided by embodiments of this application.
  • Fig. 5 is a schematic diagram of the angle and step length of an exemplary current block provided by an embodiment of the application.
  • FIG. 6 is a schematic diagram of the arrangement of exemplary reference blocks provided by an embodiment of the application.
  • FIG. 7 is a schematic diagram 1 of an exemplary mapping relationship provided by an embodiment of the application.
  • FIG. 8 is a schematic diagram of calculating an exemplary offset value provided by an embodiment of the application.
  • FIG. 9a is a schematic diagram of an exemplary first weight value of brightness provided by an embodiment of the application.
  • FIG. 9b is a schematic diagram of an exemplary first weight value of chromaticity provided by an embodiment of the application.
  • FIG. 10 is a schematic diagram 2 of the implementation process of an intra-frame prediction method provided by an embodiment of the application;
  • FIG. 11 is a second schematic diagram of an exemplary mapping relationship provided by an embodiment of the application.
  • FIG. 12 is a third schematic diagram of an exemplary mapping relationship provided by an embodiment of the application.
  • FIG. 13 is a first structural diagram of an encoder provided by an embodiment of the application.
  • FIG. 14 is a second structural diagram of an encoder provided by an embodiment of this application.
  • FIG. 15 is a schematic structural diagram 1 of a decoder provided by an embodiment of this application.
  • FIG. 16 is a second structural diagram of a decoder provided by an embodiment of this application.
  • the video encoding system 11 includes:
  • Transform unit 111 Transform unit 111, quantization unit 112, mode selection and encoding control logic unit 113, intra prediction unit 114, inter prediction unit 115 (including: motion compensation and motion estimation), inverse quantization unit 116, inverse transform unit 117, loop Filtering unit 118, encoding unit 119, and decoded image buffer unit 110; for the input original video signal, a video reconstruction block can be obtained through coding tree unit (CTU) division, and the mode selection and coding control logic unit 113 Determine the encoding mode, and then transform the residual pixel information obtained after intra-frame or inter-frame prediction through the transform unit 111 and the quantization unit 112 to transform the video reconstruction block, including transforming the residual information from the pixel domain to the transform domain And quantize the obtained transform coefficients to further reduce the bit rate; the intra-frame prediction unit 114 is used to perform intra-frame prediction on the video reconstruction block; wherein, the intra-frame prediction unit 114 is used to determine the maximum value of the video reconstruction block Optimal intra prediction mode (ie
  • 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 12 includes:
  • 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 12, and is first passed through the decoding unit 121 to obtain the decoded transform coefficient;
  • the transform coefficient is passed through the inverse transform unit 127 and the inverse quantization unit 122 Perform processing to generate a residual block in the pixel domain;
  • the intra prediction unit 123 can be used to generate prediction data of the current video decoding block based on the determined intra prediction direction and data from the previous decoded block of the current frame or picture ;
  • the motion compensation unit 124 determines the prediction information for the video decoding block by analyzing the motion vector and other associated syntax elements, and uses the prediction information to generate the predictive block of the video decoding block being decode
  • the inter-frame prediction method provided by the embodiment of the present application mainly acts on the inter-frame prediction unit 215 of the video encoding system 11 and the intra-frame prediction unit of the video decoding system 12, that is, the motion compensation unit 124;
  • 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 implementation process of an intra-frame prediction method according to an embodiment of the application. As shown in FIG. 3, the method includes:
  • a video image can be divided into multiple image blocks, and each image block currently to be encoded can be called a coding block (Coding Block, CB), where each coding block can include a first image component, The second image component and the third image component; and the current block is a coding block in the video image for which prediction of the first image component, the second image component, or the third image component is currently to be performed.
  • CB Coding Block
  • the current block performs the first image component prediction, and the first image component is the brightness component, that is, the image component to be predicted is the brightness component, then the current block can also be called the brightness block; or, it is assumed that the current block performs the second image component Prediction, and the second image component is a chrominance component, that is, the image component to be predicted is a chrominance component, then the current block can also be called a chrominance 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 traditional intra prediction modes and non-traditional intra prediction modes, while traditional intra prediction modes can include direct current (DC) mode, planar (PLANAR) mode, angular 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, etc.
  • the inter prediction mode may include: geometrical partition mode (Geometrical partition Mode, GEO), triangular prediction mode (Triangle partition mode, TPM), etc.
  • 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.
  • the prediction mode parameter indicates that the geometric partition prediction mode GPM is used to determine the inter prediction value of the current block
  • the candidate list of fused motion information corresponding to the current block can be obtained.
  • the current block in the embodiment of the present application refers to an inter-frame block.
  • sequence layer parameter set allows the use of GPM
  • the current block belongs to a bidirectional predictive slice
  • the width and height of the current block are both Greater than or equal to 8 and less than or equal to 64, and the aspect ratio and aspect ratio of the current block are both less than 8
  • the current block is not general merged prediction (general merge), non-fused subblock prediction (merge subblock), non-affine prediction, And non-joint intra-frame inter-frame prediction (composed intra-inter predicitn, CIIP);
  • GPM is disabled for chrominance components in the 4:0:0 format.
  • the 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 the motion vector 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.
  • 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.
  • GPM divides the inter-frame block (ie, the current block) into two non-rectangular sub-regions for the edge part of the object in the image, respectively, and then performs weighted fusion after prediction.
  • the non-rectangular form can be as shown in Figures 4a-4g below.
  • GPM has a total of 82 division modes. Each division mode corresponds to an angle ⁇ and a step size ⁇ . The angle is divided into 24 kinds of 360 degrees. Therefore, there are 24 kinds of angles. There are 4 kinds of step length, so there are 96 kinds of combinations of angle and step length.
  • angle table replaces the previous angle table based on a fixed step with a slope-based angle table, and uses 5 fixed slopes (1, 1/2, 1/4, 4, 2) to construct unequal intervals Angle table.
  • each angle ⁇ and step size ⁇ constitutes a division mode (wherein, all the first step sizes with angle indexes 0, 6, 12 to 23 are eliminated and 82 is obtained.
  • a division mode GPM divides the current block into two non-rectangular sub-partitions, and each sub-partition performs unidirectional motion compensation separately to obtain a unidirectional prediction value, and finally uses the weight matrix corresponding to the current block to perform the unidirectional prediction of the two partitions.
  • the predicted value is weighted and fused to obtain the final GPM predicted value of the current block.
  • the encoder when it is determined that GPM is used for inter-frame prediction on the encoder side, the encoder can obtain the fused motion information candidate list corresponding to the current block, where the fused motion information candidate list is used to compare the current block Make motion predictions.
  • the encoder acquiring the fused motion information candidate list corresponding to the current block includes: acquiring one or more reference blocks corresponding to the current block; acquiring the reference block in one or two preset directions The motion vector is used to obtain the motion candidate information; the motion candidate information is arranged according to the preset arrangement manner, and the fused motion information candidate list is obtained.
  • the encoder may use the current block as a reference to sequentially combine the upper neighboring block B1, the left neighboring block A1, the upper right neighboring block B0, and the lower left neighboring block A0 of the current block.
  • the upper left neighboring block B2, and the block col corresponding to the reference frame is determined as the reference block.
  • the reference block may also be a historical coding block, etc., which is not limited in the embodiment of the present application.
  • the encoder may obtain the motion vector information of the reference block in two preset directions, and the two preset directions may be selected according to actual needs, which is not limited in the embodiment of the present application.
  • the two motion vectors of each reference block in the two preset directions are one item of motion candidate information in the fused motion information candidate list.
  • the encoder when it obtains the two motion vectors in the two preset directions corresponding to each reference block, it can arrange the two motion vectors in a preset order.
  • the sequence can be the upper side adjacent block B1, the left side adjacent block A1, the upper right side adjacent block B0, the lower left side adjacent block A0, the upper left side adjacent block B2, the reference frame corresponding position block col is determined as the motion of the reference block
  • the vector information is arranged in sequence, and different sources of direction are distinguished. Exemplarily, the candidate list of fusion motion information is shown in Table 1 below.
  • 0-4 in the serial number column respectively indicate different reference blocks corresponding to the current block
  • list0 and list1 respectively indicate a preset direction.
  • Each row can record a certain reference block corresponding to the current block.
  • the sequence numbers of the two motion vectors are the same, which belong to a piece of motion candidate information, and correspondingly, correspond to a reference block.
  • the encoder after the encoder obtains the fused motion information candidate list, further, according to the sequence of the motion candidate information in the fused motion information candidate list, use the motion vectors included in the motion candidate information to construct the motion information to be filled Candidate list, generate GPM motion information candidate list.
  • the encoder may regard each motion vector in the motion candidate information as an item, according to the sequence number 0-4, list0-list1 In order, fill in the candidate list of motion information to be filled, thereby generating the candidate list of GPM motion information shown in Table 2.
  • each motion vector corresponds to a different sequence number, that is, 0-9 filled in in Table 2.
  • Each motion vector can be used as an independent item.
  • the sequence number is divided by 2 and rounded down.
  • the value is actually its serial number in Table 1.
  • the parity of the sequence number in Table 2 corresponds to the source of list0 or list1, respectively.
  • the encoder uses the motion vectors included in the motion candidate information to construct the to-be-filled motion information candidate list according to the sequence of the motion candidate information in the fusion motion information candidate list, and generates the GPM motion information candidate list. Including: when the target motion vector is to be filled in the motion information candidate list according to the order in the fusion motion information candidate list, judging whether the target motion vector is available; the target motion vector is the value of any one of the multiple motion candidate information Any motion vector; when the target motion vector is not available, skip using the target motion vector to construct the candidate list of motion information to be filled; using the fusion motion information candidate list, the sequence of the next motion vector after the target motion vector continues The candidate list of motion information to be filled is constructed.
  • multiple motion vector information may include unusable motion vectors, that is, unusable motion vectors. Therefore, the encoder fills in the motion vectors as one item in the order of arrangement. When filling the motion information candidate list, unavailable motion vectors can be skipped to improve the efficiency of subsequent information selection from the GPM motion information candidate list, and it can also reduce the storage space occupied by the GPM motion information candidate list.
  • the encoder uses the motion vectors included in the motion candidate information to construct the to-be-filled motion information candidate list according to the sequence of the motion candidate information in the fusion motion information candidate list, and generates the GPM motion information candidate list. Including: when the number of motion vector items included in the motion information candidate list to be filled reaches the preset number of items, it is determined that the motion information candidate list to be filled is the GPM motion information candidate list.
  • the encoder stores a preset number of items, and the preset number of items can be selected according to actual needs, which is not limited in the embodiment of the present application.
  • the encoder can also fill some of the top-ranked motion vectors in the candidate list of fused motion information into the candidate list of motion information to be filled, and the top motion vectors are performing inter-frame
  • the prediction is more reliable, which not only reduces the complexity of the encoder, but also does not cause loss of coding efficiency.
  • two motion vectors in two preset directions corresponding to the first 3 reference blocks in the fused motion information candidate list can be sequentially filled into the motion information candidate list to be filled, thereby generating GPM Motion information candidate list.
  • the current block of geometric prediction includes two partitions. Each partition will only use a one-way prediction mode, and the candidate list of fused motion information may contain bidirectional information. Therefore, the encoder needs to perform information Selection. At present, the encoder selects a motion vector in one direction from the two motion vectors in its two preset directions for each reference block according to the parity check method. However, the discarded motion vector may also be more suitable Perform subsequent inter predictions. Therefore, in this embodiment of the present application, the encoder directly determines a motion vector of the motion candidate information in the fused motion information candidate list as an item, and constructs the motion information candidate list to be filled in order without performing parity checking. The encoder thus ensures the reliability of the GPM motion information candidate list when making subsequent selections, and improves the coding performance.
  • the encoder can also directly construct the GPM motion information candidate list.
  • the construction process is similar to the construction method of the fusion motion information candidate list, and the principle is the same as the above steps S102 to S103.
  • the device can directly check the availability of the motion vectors in the two directions of each spatial adjacent, temporal adjacent, historical information, average construction, and zero motion vector. , And then use the available items of these motion vectors to fill in the candidate list of motion information to be filled one by one, thereby constructing the candidate list of GPM motion information.
  • the following sequence can be used to check and fill in the list one by one:
  • a duplicate check and de-duplication operation may also be added to ensure the diversity of the final GPM motion information candidate list.
  • the encoder can check whether the LXj item in the fused motion information candidate list overlaps with items 0 to i-1 of the current motion information candidate list to be filled, and if so, i remains unchanged. ,J is incremented by 1; if not, the statement stored in the table is executed, so as to finally generate a GPM motion information candidate list that does not include the overlapped motion vector.
  • MaxNumGpmMergeCand is the length of the GPM motion information candidate list.
  • Figure 7 shows a process of duplicate checking and de-duplication when constructing with the mapping table method.
  • the encoder after the encoder generates the GPM motion information candidate list, it can select the first motion vector corresponding to the first partition in the current block from the GPM motion information candidate list, and the second partition corresponding to the second partition in the current block from the GPM motion information candidate list.
  • the second motion vector after the encoder generates the GPM motion information candidate list, it can select the first motion vector corresponding to the first partition in the current block from the GPM motion information candidate list, and the second partition corresponding to the second partition in the current block from the GPM motion information candidate list. The second motion vector.
  • the encoder may select the first motion vector and the second motion vector based on the positions of the first partition and the second partition in the current block. Among them, there is a certain order for the encoder to select the first motion vector and the second motion vector.
  • the corresponding motion vector can be stored in the processing variable of the corresponding partition to prepare for subsequent inter-frame predict.
  • the encoder selects the first motion vector corresponding to the first partition in the current block and the second motion vector corresponding to the second partition in the current block from the GPM motion information candidate list, including: obtaining the first motion vector The motion vector selection order corresponding to the partition and the second partition; according to the motion vector selection order, the first motion vector and the second motion vector are selected from the GPM motion information candidate list.
  • the encoder selects the first motion vector and the second motion vector from the GPM motion information candidate list according to the motion vector selection order, including: the first partition takes precedence over the motion vector selection order In the case of the second partition, select the first motion vector from the GPM motion information candidate list; from the GPM motion information candidate list, obtain the motion vector that belongs to the same item of motion candidate information in the multiple motion candidate information as the first motion vector, It is determined that the motion vector is not selectable; the second motion vector is selected from the motion vector different from the first motion vector and the unselectable motion vector from the GPM motion information candidate list.
  • the encoder selects the first motion vector and the second motion vector from the GPM motion information candidate list according to the motion vector selection order, including: the second partition takes precedence over the motion vector selection order.
  • the first partition select the second motion vector from the GPM motion information candidate list; from the GPM motion information candidate list, obtain the motion vector that belongs to the same item of motion candidate information in the multiple motion candidate information as the second motion vector, It is determined that the motion vector is not selectable; the first motion vector is selected from the motion vector different from the second motion vector and the unselectable motion vector from the GPM motion information candidate list.
  • the encoder first selects the first motion vector corresponding to the first partition, and the first position information corresponding to the first motion vector is m, as shown in expression (1):
  • the second motion vector corresponding to the second partition selected after the encoder, and the second position information corresponding to the second motion vector is n, as shown in expression (2):
  • the first partition after the encoder first selects the first motion vector corresponding to the first partition, when performing the second motion vector corresponding to the second partition, the first partition first selects the first motion vector.
  • the motion vector is at the front of the GPM motion information candidate list, and decreases by 2.
  • m and n correspond to the serial numbers 0-9 in Table 2 or 0-6 in Table 3.
  • each partition will only use the one-way prediction mode, and each item in the GPM motion information candidate list may be a two-way predicted motion vector, so you need to take out the one-way motion vector 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.
  • mvA is the first motion 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.
  • mvB is the second motion 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 encoder may also remove Two items of list0 and list1 in the candidate list of fused motion information corresponding to the first partition (if both exist), and then the table is renumbered.
  • the second partition selects the n-th motion vector
  • the motion vector is the second motion vector
  • the encoder can use the first motion vector and the second motion vector to determine the inter-frame prediction value of the current block.
  • the encoder uses the first motion vector and the second motion vector to determine the inter prediction value of the current block, including: using the first motion vector to determine the first prediction value corresponding to the first partition; using the second motion vector The motion vector determines the second prediction value corresponding to the second partition; performing weighted fusion processing on the first prediction value and the second prediction value to obtain the inter-frame prediction value of the current block.
  • first predicted value and the second predicted value are two predicted values corresponding to each pixel in the current block, and the first weight value and the second weight value also correspond to each pixel of the current block. Two different weight values.
  • the flow of the encoder for GPM prediction processing mainly includes four steps, in order: calculating the one-way prediction values of the two partitions of the current block, that is, the first prediction value and the second prediction value; Segmentation angle and position; derive weighted prediction pixel value predSamples for the three components of L, Cb, and Cr; store motion vector information for subsequent prediction.
  • the encoder derives the reference frame list refPicLN for the three components of L, Cb, and Cr, and the sub-pixel predicted pixel value predSamplesLN, where N is the first partition or the second partition, and the steps are the same as the general Inter prediction
  • the technology is the same. That is, using the existing motion compensation method, the one-way prediction values of the two partitions are calculated to be 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 and copied through the corresponding motion vector. I won't repeat them here.
  • the encoder when the encoder determines that GPM is used for inter-frame prediction, the encoder may also derive the division angle and position.
  • the encoder determines the partition mode with the least rate-distortion cost by traversing the 82 partition models corresponding to the GPM, that is, determines the target partition mode; the encoder can then determine the target partition mode according to the target partition mode, through preset partition
  • the mapping table of mode, angle index, and step index determines the angle index information and step index information corresponding to the target division mode.
  • the mapping table of the preset division mode, angle index, and step index is shown in Table 4:
  • wedge_partition_idx is the partition mode index
  • angleIdx is the angle index information
  • distanceIdx is the step index information.
  • the encoder derives the weighted prediction pixel value predSamples for the three components of L, Cb, and Cr, which includes the calculation of the luminance prediction value of the current block and the calculation of the chrominance prediction value of the current block .
  • the encoder calculates the brightness prediction value of the current block, and can first obtain the weight mask matrix of the current block by cropping the predefined weight matrix, and then perform the calculation of the two partitions of the current block.
  • the predicted value is weighted pixel by pixel to obtain the brightness predicted value of the current block.
  • the encoder first obtains the weight matrix to calculate the offset value Offset(x,y ), and the coordinate origin is at the geometric center point of the same size block with the same angle dividing line passing through the geometric center point, as shown in Figure 8.
  • the background area is based on the current limited conditions, through the offset value offset vector, the largest size block (64 ⁇ 64) relative to the maximum moving range of the coordinate system (112 ⁇ 112). 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 an appropriate division.
  • the index number displacementX is the expression (1)
  • the index number displacementY is the expression (2):
  • 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).
  • PaetFlip is calculated by the following expression (1):
  • partFlip is 0, which means that the distance between the point obtained in the subsequent expression (8) and the dividing line is negative.
  • the partition on the side where the weightIdg is negative needs to be transmitted first.
  • partFlip is 1, which means that the current block weighIdg is positive.
  • the partition on one side of the value needs to be transferred first.
  • the encoder can obtain the key parameter shiftHor through the following expressions (4) and (5):
  • nH is the height of the current block
  • nW is the height of the current block
  • the meaning of shiftHor is the determination of the displacement direction between different dividing lines at the same angle. If the value is 0, the dividing line will shift on the Y axis; Its value is 1, the dividing line will be offset on the X axis.
  • the encoder uses expressions (6-7) to calculate the offset values offsetX and offsetY of the current block according to the size and division information of the current prediction block:
  • offsetY ((-nH)>>1)+angleIdx ⁇ 16? (distanceIdx*nH)>>3:-((distanceIdx*nH)>>3) (6)
  • offsetX ((-nW)>>1)+angleIdx ⁇ 16? (distanceIdx*nW)>>3:-((distanceIdx*nW)>>3)
  • the encoder calculates the weight index weightIdx of the pixel according to the position of the pixel in the current block, and the following expression (8)-( 10) Calculate the weight value at the pixel point to obtain the weight matrix of the current block:
  • weightIdx (((x*subW+offsetX) ⁇ 1)+1)*disLut[displacementX]
  • 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 5 provides an example of the search for the distance arrangement of the geometric division line.
  • the disLut[] used in equation (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 is shown in Table 5.
  • subW and subH indicate the downsampling rate, if it is 420 format, both subW and subH are 2.
  • the brightness does not need to be down-sampled, and the chroma weight is obtained by down-sampling the brightness weight.
  • weightIdxL the closer the pixel point is to the edge of the partition, and the more even the weight distribution of the point on the first partition and the second partition.
  • the encoder performs pixel-by-pixel weighting on the predicted values of the two partitions of the current block to obtain the final inter-frame prediction value of the current block.
  • the specific weighting calculation is shown in formula (11):
  • offset1 and shift1 are shown in the calculation expressions (12)-(13), offset1 is used for rounding, and shift1 is used to restore the predicted value after weighted average to the same bit depth as the input video.
  • the encoder calculates the chroma prediction value of the current block by obtaining the weight of the luminance sample in the upper left corner of each 2*2 block directly as the weight of the chrominance sample at the current (x, y), That is, the weight of the luminance sample is down-sampled, and the weighting calculation method of the chrominance predicted value is the same as the calculation of the luminance predicted value shown in expression (11).
  • the sampling relationship of the luminance and chrominance weight matrices is shown in Figure 9a and Figure 9b.
  • the process of the encoder storing the GPM motion vector of the current prediction block is implemented by using a motion mask matrix. If the prediction value is entirely from the first partition, the first motion of the first partition is recorded. The vector is completely from the second partition, and the second motion vector of the second partition is recorded; otherwise, the motion vectors of the two partitions are recorded at the same time.
  • 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 expressions (14)-(15):
  • cbWidth is the width of the motion mask matrix corresponding to the current block
  • cbHeight is the height of the motion mask matrix corresponding to the current block, which is actually the width and height of the brightness component of the current block.
  • the motion mask matrix of the current block is still calculated in units of 4 ⁇ 4 sub-blocks, and the center position of each 4 ⁇ 4 sub-block is (4i+2, 4j+2
  • the calculation of motionIdx at) is similar to the calculation of weightIdx in expression (8), as shown in expression (16):
  • motionIdx (((4*xSbIdx+offsetX) ⁇ 1)+5)*disLut[displacementX]
  • the encoder determines that the motion vector that the current 4x4 sub-block needs to store is the same as when predicting weighting, and it needs to first determine whether the current sub-block is on the side of the first partition or the second partition.
  • (XSbIdx, ySbIdx) represents the sub-block coordinates of each 4 ⁇ 4 sub-block (subblock, sb) in the current block.
  • the encoder determines whether the current sub-block stores unidirectional or bidirectional motion vectors according to the size of abs (motionIdx) at the center position (4i+2, 4j+2) of each 4 ⁇ 4 sub-block.
  • the current block stores the constructed bidirectional motion vector, that is, the first motion vector and the second motion vector are stored at the same time;
  • the current block stores the first motion vector of the first partition
  • the current block stores the second motion vector of the second partition
  • the stored motion vector will be used for the motion vector prediction of the subsequent coding block.
  • the encoder determines the inter prediction value of the current block by using the first motion vector and the second motion vector, that is, after step S105, the following steps may be performed: In the motion information candidate list, first position information corresponding to the first motion vector and second position information corresponding to the second motion vector are acquired; the first position information and the second position information are written into the code stream.
  • the encoder regards GPM and other inter-frame prediction modes as competing modes, and selects between modes according to rate-distortion optimization (RDO) or other strategies, and the selected result is coded
  • RDO rate-distortion optimization
  • the form of the syntax element in the stream is transmitted to the decoder.
  • the encoder can respectively assign values to the first position information corresponding to the first motion vector and the second position information corresponding to the second motion vector, and then perform binarization and entropy encoding on them, and finally write them into the code stream for transmission.
  • the encoder performs the assignment of position information according to the following expressions (19)-(20):
  • n is the second position information corresponding to the second motion vector in the GPM motion information candidate list.
  • the second position information of the second motion vector of the second partition in the GPM motion information candidate list may be because the first partition first selected the first motion vector in the front position. , And decrease by 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] representing the first position information corresponding to the first motion vector of the first partition of the current block
  • merge_gpm_idx1[x0][y0] representing the first position information corresponding to the second motion vector of the second partition of the current block.
  • Position information, MaxNumGpmMergeCand is the maximum length of the motion information candidate list.
  • the encoder may also perform the following after obtaining the merged motion information candidate list corresponding to the current block Step: For the first partition and the second partition, each motion vector of each motion candidate information in the multiple motion candidate information is generated as the indication information of the available motion vector.
  • the encoder may add a sentence indicating a direction, as shown in the following:
  • merge_gpm_idx0[x0][y0] and merge_gpm_idx1[x0][y0] are the same as in the prior art, but the list0 and list1 items in the fusion motion information candidate list are both available, so whether to choose list0 or list1 It is indicated by merge_gpm_dir0[x0][y0] and merge_gpm_dir1[x0][y0] respectively.
  • merge_gpm_dir0[x0][y0] merge_gpm_dir1[x0][y0] represents the corresponding list0 item, and 1 represents the corresponding list1 item.
  • the encoder uses each motion vector of each motion candidate information in the multiple motion candidate information as one item, and fills in the motion information candidate list to be filled in the sequence of the fusion motion information candidate list.
  • the encoder Before generating the GPM motion information candidate list, it also includes: obtaining the first length corresponding to the fused motion information candidate list, and the syntax value of the sequence layer parameter set; calculating twice the difference between the first length and the syntax value of the sequence layer parameter set to obtain GPM The second length corresponding to the motion information candidate list.
  • max_num_merge_cand_minus_max_num_gpm_cand (for example, 1) is twice the difference.
  • the sequence layer parameter set syntax value max_num_merge_cand_minus_max_num_gpm_cand has the same meaning as before. It refers to the number of two-way/one-way motion vectors used for GPM in the fusion motion information candidate list (one item in both directions) Included in) is not used for GPM candidates. However, in the embodiment of this application, the grammatical meaning of this item is modified as: in the bidirectional/unidirectional motion vector used for GPM in the fusion motion information candidate list, how many (two directions are counted as two items) are not used Candidate for use in GPM. In this way, the number of available motion vectors can be turned into more options, such as 4, 5, 6, 7, 8, 9, 10, 11, 12.
  • the encoder uses the motion vectors included in the motion candidate information to construct the motion information candidate list to be filled according to the sequence of the motion candidate information in the fused motion information candidate list.
  • the method also Including: obtaining the number of motion vectors in the candidate list of fused motion information that cannot be used to construct the candidate list of motion information to be filled, and determining it as the sequence layer parameter set syntax value.
  • the embodiment of the application provides an inter-frame prediction method, which is applied to an encoder, and includes: determining the prediction mode parameter of the current block; when the prediction mode parameter indicates that the geometric partition prediction mode GPM is used to determine the inter-frame prediction value of the current block, Obtain the fused motion information candidate list corresponding to the current block; the fused motion information candidate list includes one or more motion candidate information used to determine the inter prediction value of the current block, according to the arrangement of the motion candidate information in the fused motion information candidate list In order, use the motion vectors included in the motion candidate information to construct the motion information candidate list to be filled, and generate the GPM motion information candidate list, where the motion candidate information in the GPM motion information candidate list includes a motion vector; from the GPM motion information candidate list, The first motion vector corresponding to the first partition in the current block and the second motion vector corresponding to the second partition in the current block are selected; the first motion vector and the second motion vector are used to determine the inter prediction value of the current block.
  • the technical solution provided by the embodiments of this application uses a motion vector in the fused motion information candidate list as one item, and uses the motion vectors to construct the GPM motion information candidate list according to the sequence in the fused motion information candidate list, which improves the GPM motion information.
  • the reliability of the candidate list improves inter-frame prediction performance and coding performance.
  • the embodiment of the present application provides an inter-frame prediction method, which is applied to a decoder.
  • the function implemented by the method can be implemented by the processor in the decoder calling program code.
  • 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. 10 is a schematic diagram of the implementation process of an intra-frame prediction method according to an embodiment of the application. As shown in FIG. 10, the method includes:
  • the prediction mode parameter indicates that the geometric partition prediction mode GPM is used to determine the inter prediction value of the current block
  • the motion candidate information in the fusion motion information candidate list use the motion vectors included in the motion candidate information to construct a motion information candidate list to be filled to generate a GPM motion information candidate list, where the motion in the GPM motion information candidate list
  • the candidate information includes a motion vector.
  • S205 Determine the inter-frame prediction value of the current block by using the first motion vector and the second motion vector.
  • the decoder acquiring the fused motion information candidate list corresponding to the current block includes: acquiring one or more reference blocks corresponding to the current block; acquiring the reference block in one or two preset directions The motion vector is used to obtain the motion candidate information; the motion candidate information is arranged according to the preset arrangement manner, and the fused motion information candidate list is obtained.
  • the decoder uses the motion vectors included in the motion candidate information to construct the to-be-filled motion information candidate list according to the sequence of the motion candidate information in the fusion motion information candidate list, and generates the GPM motion information candidate list.
  • the decoder constructs the GPM motion information candidate list by skipping motion vectors that are not available in the fused motion information candidate list, if the established GPM motion information candidate list includes
  • the mapping table of motion vector position information is specifically implemented as follows:
  • mergeCandList represents a candidate list of fused motion information
  • mergeGPMCandMapList represents a candidate list of GPM motion information (mapping table).
  • the decoder constructs the GPM motion information candidate list by skipping the motion vectors that are not available in the fused motion information candidate list, that is, if a certain motion vector is unavailable or does not exist, then Continue to take the available motion vectors sequentially until the length of the motion information candidate list to be filled reaches the preset length, which is determined as the GPM motion information candidate list.
  • step S104 For the way that the encoder skips the unavailable motion vectors to generate the GPM motion information candidate list, the way of performing step S104 is specifically as follows:
  • m merge_gpm_idx0[xCb][yCb], waiting for subsequent processing.
  • merge_gpm_idx1[x0][y0] represents the position of the second motion vector of the second partition in the GPM motion information candidate list.
  • the position of the second motion vector of the second partition in the GPM motion information candidate list may be selected because A The option for the front position is reduced, and it is reduced by 1.
  • the motion vector corresponding to list0 with sequence number 0 is added, the motion vector corresponding to list0 at position 1 is added to sequence number 1, the motion vector corresponding to list1 at position 1 is added to sequence number 2, and so on.
  • m and n correspond to the black serial number in the figure, and the mapping is the white two-tuple information.
  • 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]]
  • X mergeGPMCandMapList[n][1]
  • 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.
  • N mergeCandList[mergeGPMCandMapList[n]>>1]
  • X mergeGPMCandMapList[n]&0x01,...
  • & is bit AND operation
  • &0x01 means to take out the last bit
  • the decoder constructs the GPM motion information candidate list by skipping the motion vectors that are not available in the fused motion information candidate list, if the established GPM motion information candidate list is directly Including the list of motion vectors, the specific implementation is as follows:
  • gpmMergeCandList is a GPM motion information candidate list (a list of specific motion vectors).
  • merge_gpm_idx0[x0][y0] represents the position of the first motion vector of the first partition in the GPM motion information candidate list
  • m merge_gpm_idx0[xCb][yCb], waiting for subsequent processing.
  • merge_gpm_idx1[x0][y0] represents the position of the second motion vector of the second partition in the GPM motion information candidate list.
  • the position of the second motion vector of the second partition in the GPM motion information candidate list may be because the first partition is first The option for the front position is selected, and 1 is reduced.
  • n indicates that the second motion selected by the second partition is the actual position of the vector in the gpm merge candidate list, waiting for subsequent processing.
  • the motion vector corresponding to list0 with sequence number 0 is added, the motion vector corresponding to list0 at position 1 is added to sequence number 1, the motion vector corresponding to list1 at position 1 is added to sequence number 2, and so on.
  • m and n correspond to the black serial numbers on the right side of the figure.
  • mvA[1] gpmMergeCandList[m].mv[1]
  • refIdxA gpmMergeCandList[m].refIdx
  • 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.
  • refIdxB gpmMergeCandList[n].refIdx
  • 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.
  • GPM motion information candidate list (a mapping table or a list that directly includes motion vectors)
  • Count the m-th usable motion vector from the candidate list of fusion motion information and store it in the motion information corresponding to the first partition; then follow the sequence number from small to large, and start each item in the order of list0 and then list1 from the fusion motion information
  • the nth usable motion vector is counted from the candidate list and stored in the motion information corresponding to the second partition.
  • the decoder uses the motion vectors included in the motion candidate information to construct the motion information candidate list to be filled according to the sequence of the motion candidate information in the fusion motion information candidate list, and generates GPM motion information candidates
  • the list includes: when the number of motion vector items included in the motion information candidate list to be filled reaches the preset number of items, it is determined that the motion information candidate list to be filled is the GPM motion information candidate list.
  • the prediction mode parameters of the current block that the decoder parses from the code stream include the first position information corresponding to the first motion vector, and the second position information corresponding to the second motion vector. location information.
  • the decoder can find the first motion vector from the GPM motion information candidate list according to the first position information, and find the second motion vector from the GPM motion information candidate list according to the second position information.
  • the decoder using the first motion vector and the second motion vector to determine the inter prediction value of the current block includes: using the first motion vector to determine the first prediction value corresponding to the first partition; Use the second motion vector to determine the second prediction value corresponding to the second partition; use the first prediction value and the second prediction value to perform GPM inter prediction on the current block to obtain the inter prediction value of the current block.
  • the method when the prediction mode parameter indicates that the decoder uses the geometric partition prediction mode GPM to determine the inter-frame prediction of the current block, after obtaining the fused motion information candidate list corresponding to the current block, the method further includes: The partition and the second partition are generated to indicate that the motion vector included in the fused motion candidate information is the available motion vector.
  • the encoder uses the motion vectors included in the motion candidate information to construct the motion information candidate list to be filled according to the sequence of the motion candidate information in the fusion motion information candidate list, and before generating the GPM motion information candidate list ,
  • the method further includes: obtaining the first length corresponding to the fusion motion information candidate list and the syntax value of the sequence layer parameter set; calculating twice the difference between the first length and the syntax value of the sequence layer parameter set to obtain the GPM motion information candidate list The second length.
  • the motion vector uses the motion vector included in the motion vector motion candidate information to construct the to-be-filled motion information candidate list according to the sequence of the motion vector motion candidate information in the motion vector fusion motion information candidate list, and generates Before the GPM motion information candidate list, the motion vector method further includes: obtaining the number of motion vectors in the motion vector fusion motion information candidate list that cannot be used to construct the motion vector to be filled in the motion information candidate list, and determining it as the sequence layer parameter set syntax value.
  • the embodiment of the application provides an inter-frame prediction method, which is applied in a decoder, including: parsing a code stream to determine the prediction mode parameter of the current block; when the prediction mode parameter indicates that the geometric division prediction mode GPM is used to determine the inter-frame of the current block
  • obtain the fused motion information candidate list corresponding to the current block the fused motion information candidate list includes one or more motion candidate information used to determine the inter prediction value of the current block, wherein the motion candidate information includes one or two A motion vector; according to the sequence of the motion candidate information in the fusion motion information candidate list, use the motion candidate information to construct the motion information candidate list to be filled to generate the GPM motion information candidate list; determine the current block according to the prediction mode parameters of the current block
  • the first motion vector corresponding to the first partition, and the second motion vector corresponding to the second partition in the current block; the first motion vector and the second motion vector are used to determine the inter prediction value of the current block.
  • the technical solution provided by the embodiments of this application uses a motion vector in the fused motion information candidate list as one item, and uses the motion vectors to construct the GPM motion information candidate list according to the sequence in the fused motion information candidate list, which improves the GPM motion information.
  • the reliability of the candidate list improves inter-frame prediction performance and coding performance.
  • an encoder 1 including:
  • the first determining unit 10 is configured to determine the prediction mode parameter of the current block
  • the first obtaining unit 11 is configured to obtain a candidate list of fused motion information corresponding to the current block when the prediction mode parameter indicates that the geometric division prediction mode GPM is used to determine the inter prediction value of the current block; the fused motion
  • the information candidate list includes one or more pieces of motion candidate information used to determine the inter prediction value of the current block, where the motion candidate information includes one or two motion vectors;
  • the first generating unit 12 is configured to use the motion vectors included in the motion candidate information to construct the motion information candidate list to be filled according to the sequence of the motion candidate information in the fusion motion information candidate list to generate GPM motion An information candidate list, wherein the motion candidate information in the GPM motion information candidate list includes a motion vector;
  • the first selecting unit 13 is configured to select, from the GPM motion information candidate list, a first motion vector corresponding to a first partition in the current block, and a second motion vector corresponding to a second partition in the current block;
  • the first prediction unit 14 is configured to use the first motion vector and the second motion vector to determine the inter prediction value of the current block.
  • the first obtaining unit 11 is configured to obtain multiple reference blocks corresponding to the current block; obtain the motion vectors of the reference block in one or two preset directions to obtain the Motion candidate information; according to a preset arrangement manner, arrange the multiple motion candidate information to obtain the merged motion information candidate list.
  • the first generating unit 12 is configured to use the target motion vector to construct the motion information candidate to be filled according to the sequence of the target motion vector in the fusion motion information candidate list. In the list, it is judged whether the target motion vector is available; the target motion vector is any motion vector in the motion candidate information; in the case that the target motion vector is not available, skip using the target motion vector to construct The candidate list of motion information to be filled; the next motion vector in the candidate list of fused motion information whose sequence is arranged after the target motion vector is used to continue to construct the candidate list of motion information to be filled.
  • the first generating unit 12 is configured to determine the motion to be filled when the number of motion vector items included in the motion information candidate list to be filled reaches a preset number of items
  • the information candidate list is the GPM motion information candidate list.
  • the first selection unit 13 is configured to obtain the motion vector selection sequence corresponding to the first partition and the second partition; The first motion vector and the second motion vector are selected from the motion information candidate list.
  • the first selection unit 13 is configured to select from the GPM motion information candidate when the motion vector selection order is that the first partition is prior to the second partition Select the first motion vector from the list; from the GPM motion information candidate list, obtain a motion vector belonging to the same item of motion candidate information in the multiple motion candidate information as the first motion vector, and determine it as not selectable Motion vector; selecting the second motion vector from a motion vector that is different from the first motion vector and the non-selectable motion vector from the GPM motion information candidate list.
  • the first selection unit 13 is configured to select from the GPM motion information candidate when the motion vector selection order is that the second partition has priority over the first partition Select the second motion vector from the list; from the GPM motion information candidate list, obtain a motion vector belonging to the same item of motion candidate information in the multiple motion candidate information as the second motion vector, and determine it as not selectable Motion vector; selecting the first motion vector from a motion vector that is different from the second motion vector and the non-selectable motion vector from the GPM motion information candidate list.
  • the first prediction unit 14 is configured to use the first motion vector to determine the first prediction value corresponding to the first partition; use the second motion vector to determine the first prediction value The second prediction value corresponding to the two partitions; GPM inter prediction is performed on the current block by using the first prediction value and the second prediction value to obtain the inter prediction value of the current block.
  • the encoder 1 further includes a writing unit 15 (not shown in the figure),
  • the first obtaining unit 11 is further configured to obtain first position information corresponding to the first motion vector and second position information corresponding to the second motion vector from the GPM motion information candidate list;
  • the writing unit 15 is configured to write the first position information and the second position information into a code stream.
  • the first generating unit 12 is further configured to generate the fused motion information candidate list for the first partition and the second partition, and the motion vectors included in the candidate list are those of available motion vectors. Instructions.
  • the first determining unit 10 is further configured to obtain the first length corresponding to the candidate list of fused motion information and the syntax value of the sequence layer parameter set;
  • the second length corresponding to the GPM motion information candidate list is obtained by twice the difference between the syntax values of the sequence layer parameter set.
  • the first determining unit 10 is further configured to obtain the number of motion vectors in the fused motion information candidate list that cannot be used to construct the to-be-filled motion information candidate list, which is determined as The syntax value of the sequence layer parameter set.
  • an encoder 1 including:
  • the first memory 16 stores a computer program that can be run on the first processor 17, and the inter-frame prediction method on the encoder side when the first processor 17 executes the program.
  • the embodiment of the present application provides an encoder to determine the prediction mode parameter of the current block; when the prediction mode parameter indicates that the geometric partition prediction mode GPM is used to determine the inter prediction value of the current block, obtain the fused motion information candidate list corresponding to the current block ;
  • the fusion motion information candidate list includes one or more motion candidate information used to determine the inter prediction value of the current block, wherein the motion candidate information includes one or two motion vectors; in the fusion motion information candidate list according to the motion candidate information Use the motion candidate information to construct the candidate list of motion information to be filled to generate the candidate list of GPM motion information; among them, the motion candidate information in the GPM motion information candidate list includes a motion vector; from the GPM motion information candidate list, select the current The first motion vector corresponding to the first partition in the block, and the second motion vector corresponding to the second partition in the current block; the first motion vector and the second motion vector are used to determine the inter prediction value of the current block.
  • the encoder provided by the embodiment of the application uses a motion vector of the fused motion information candidate list as one item, and uses the motion vectors to construct the GPM motion information candidate list according to the sequence in the fused motion information candidate list, which improves the GPM motion information
  • the reliability of the candidate list improves inter-frame prediction performance and coding performance.
  • an embodiment of the present application provides a decoder 2, including:
  • the parsing unit 20 is used for parsing the code stream and determining the prediction mode parameter of the current block
  • the second obtaining unit 21 is configured to obtain a candidate list of fused motion information corresponding to the current block when the prediction mode parameter indicates that the geometric partition prediction mode GPM is used to determine the inter prediction of the current block; the fused motion information
  • the candidate list includes one or more motion candidate information used to determine the inter prediction value of the current block, and the motion candidate information includes one or two motion vectors;
  • the second generating unit 22 is configured to use the motion vectors included in the motion candidate information to construct the motion information candidate list to be filled according to the sequence of the motion candidate information in the merged motion information candidate list, and generate GPM motion information candidates List, wherein the motion candidate information in the GPM motion information candidate list includes a motion vector;
  • the second determining unit 23 is configured to determine the first motion vector corresponding to the first partition in the current block from the GPM motion information candidate list according to the prediction mode parameter of the current block, and the current block The second motion vector corresponding to the second partition in the middle;
  • the second prediction unit 24 is configured to use the first motion vector and the second motion vector to determine the inter prediction value of the current block.
  • the second obtaining unit 21 is configured to obtain one or more reference blocks corresponding to the current block; obtain the motion vector of the reference block in one or two preset directions , Obtain the motion candidate information; Arrange the motion candidate information according to a preset arrangement manner to obtain the merged motion information candidate list.
  • the second generating unit 22 is configured to use the target motion vector to construct the to-be-filled motion information candidate list according to the sequence of the target motion vector in the fusion motion information candidate list.
  • the target motion vector is available, it is determined whether the target motion vector is available; the target motion vector is any motion vector in the motion candidate information; in the case that the target motion vector is not available, skip using the target motion vector to construct the The motion information candidate list to be filled; using the fusion motion information candidate list, the next motion vector arranged after the target motion vector is used to continue to construct the motion information candidate list to be filled.
  • the second generating unit 22 is configured to determine the motion to be filled when the number of motion vector items included in the motion information candidate list to be filled reaches a preset number of items.
  • the information candidate list is the GPM motion information candidate list.
  • the second prediction unit 23 is configured to use the first motion vector to determine the first prediction value corresponding to the first partition; use the second motion vector to determine the first prediction value The second prediction value corresponding to the two partitions; GPM inter prediction is performed on the current block by using the first prediction value and the second prediction value to obtain the inter prediction value of the current block.
  • the second generating unit 22 is further configured to generate the fused motion information candidate list for the first partition and the second partition, and the motion vectors included in the candidate list are those of available motion vectors. Instructions.
  • the second determining unit 23 is further configured to obtain the first length corresponding to the fused motion information candidate list and the syntax value of the sequence layer parameter set; Double the difference between the syntax values of the sequence layer parameter set, and obtain the second length corresponding to the GPM motion candidate information list.
  • the second determining unit 23 is further configured to obtain the number of motion vectors in the merged motion information candidate list that cannot be used to construct the to-be-filled motion information candidate list, which is determined as The syntax value of the sequence layer parameter set.
  • an embodiment of the present application also provides a decoder 2, including:
  • the second memory 25 stores a computer program that can be run on the second processor 26, and the decoder side inter-frame prediction method when the second processor 26 executes the program.
  • the embodiment of the application provides a decoder that parses the code stream to determine the prediction mode parameter of the current block; when the prediction mode parameter indicates that the geometric partition prediction mode GPM is used to determine the inter prediction value of the current block, the fusion corresponding to the current block is obtained Motion information candidate list; the fusion motion information candidate list includes one or more motion candidate information used to determine the inter prediction value of the current block, wherein the motion candidate information includes one or two motion vectors; The sequence of the information candidate list is to use the motion vectors included in the motion candidate information to construct the motion information candidate list to be filled to generate the GPM motion information candidate list; wherein, the motion candidate information in the GPM motion information candidate list includes a motion vector; The prediction mode parameter of the block, from the GPM motion information candidate list, determine the first motion vector corresponding to the first partition in the current block and the second motion vector corresponding to the second partition in the current block; use the first motion vector and the second motion vector The motion vector determines the inter prediction value of the current block.
  • the decoder provided by the embodiment of the application takes a motion vector of the fused motion information candidate list as one item, and uses the motion vectors to construct the GPM motion information candidate list according to the sequence in the fused motion information candidate list, which improves the GPM motion information
  • the reliability of the candidate list improves inter-frame prediction performance and coding performance.
  • 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.
  • a motion vector in the fused motion information candidate list is taken as an item, and the motion vectors are used to construct the GPM motion information candidate list according to the sequence in the fused motion information candidate list. , Improve the reliability of the GPM motion information candidate list, thereby improving the inter-frame prediction performance and coding performance.

Landscapes

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

Abstract

本申请实施例提供了一种帧间预测方法、编码器、解码器及存储介质,包括:确定当前块的预测模式参数;当预测模式参数指示使用几何划分预测模式GPM确定当前块的帧间预测值时,获取当前块对应的融合运动信息候选列表;融合运动信息候选列表包括用于确定当前块的帧间预测值的一项或多项运动候选信息,其中,运动候选信息包括一个或两个运动矢量;按照运动候选信息在融合运动信息候选列表中的排列顺序,使用运动候选信息包括的运动矢量构造待填充运动信息候选列表,生成GPM运动信息候选列表,其中,GPM运动信息候选列表中的运动候选信息包括一个运动矢量;从GPM运动信息候选列表中,选取当前块中第一分区对应的第一运动矢量,以及当前块中第二分区对应的第二运动矢量;利用第一运动矢量和第二运动矢量,确定当前块的帧间预测值。

Description

一种帧间预测方法、编码器、解码器及存储介质 技术领域
本申请实施例涉及视频编码技术,涉及但不限于帧间预测方法、编码器、解码器及存储介质。
背景技术
在视频编解码,对当前块进行编解码的过程中,除了有帧内预测外,还可以采用帧间预测方式。帧间预测可以包括运动估计和运动补偿,针对运动补偿,可以采用几何划分预测模式(Geometrical Geometriacl partition Mode,GPM),将帧间的当前块划分为两个非矩形的分区分别进行预测后进行加权融合,从而得到当前块的预测值。
现有技术中,在GPM的预测过程中,需要构造相应的运动信息候选列表,该运动信息候选列表实际上是以奇偶校验的方式从常规的运动信息候选列表中进行选取所组成的。
然而,按照奇偶校验的方式所生成的GPM的运动信息候选列表,存在一定的不合理性。GPM的运动信息候选列表中包括的运动矢量可能并不是适合进行帧间预测的,相应的,在进行帧间预测时,也无法从GPM的运动信息候选列表中得到较佳的运动矢量进行帧间预测,从而引起预测性能的损失。
发明内容
本申请实施例提供了一种帧间预测方法、编码器、解码器和存储介质,提高了GPM运动信息候选列表的可靠性,从而提高了帧间预测性能和编码性能。
第一方面,本申请实施例提供了一种帧间预测方法,应用于编码器中,包括:
确定当前块的预测模式参数;
当所述预测模式参数指示使用几何划分预测模式GPM确定所述当前块的帧间预测值时,获取所述当前块对应的融合运动信息候选列表;所述融合运动信息候选列表包括用于确定所述当前块的帧间预测值的一项或多项运动候选信息,其中,所述运动候选信息包括一个或两个运动矢量;
按照所述运动候选信息在所述融合运动信息候选列表中的排列顺序,使用所述运动候选信息构造待填充运动信息候选列表,生成GPM运动信息候选列表,其中,所述GPM运动信息候选列表中的运动候选信息包括一个运动矢量;
从所述GPM运动信息候选列表中,选取所述当前块中第一分区对应的第一运动矢量,以及所述当前块中第二分区对应的第二运动矢量;
利用所述第一运动矢量和所述第二运动矢量,确定所述当前块的帧间预测值。
第二方面,本申请实施例提供了一种帧间预测方法,应用于解码器中,包括:
解析码流,确定当前块的预测模式参数;
当所述预测模式参数指示使用几何划分预测模式GPM确定所述当前块的帧间预测值时,获取所述当前块对应的融合运动信息候选列表;所述融合运动信息候选列表包括用于确定所述当前块的帧间预测值的一项或多项运动候选信息,其中,所述运动候选信息包括一个或两个运动矢量;
按照所述运动候选信息在所述融合运动信息候选列表中的排列顺序,使用所述运动候选信息包括的运动矢量构造待填充运动信息候选列表,生成GPM运动信息候选列表,其中,所述GPM运动信息候选列表中的运动候选信息包括一个运动矢量;
根据所述当前块的预测模式参数,从所述GPM运动信息候选列表中,确定所述当前块中第一分区对应的第一运动矢量,以及所述当前块中第二分区对应的第二运动矢量;
利用所述第一运动矢量和所述第二运动矢量,确定所述当前块的帧间预测值。
第三方面,本申请实施例提供了一种编码器,包括:
第一确定单元,用于确定当前块的预测模式参数;
第一获取单元,用于当所述预测模式参数指示使用几何划分预测模式GPM确定所述当前块的帧间预测值时,获取所述当前块对应的融合运动信息候选列表;所述融合运动信息候选列表包括用于确定所述当前块的帧间预测值的一项或多项运动候选信息,其中,所述运动候选信息包括一个或两个运动矢量;
所述第一生成单元,用于按照所述运动候选信息在所述融合运动信息候选列表中的排列顺序,构造待填充运动信息候选列表,生成GPM运动信息候选列表,其中,所述GPM运动信息候选列表中的运动候选信息包括一个运动矢量;
第一选取单元,用于从所述GPM运动信息候选列表中,选取所述当前块中第一分区对应的第一运动矢量,以及所述当前块中第二分区对应的第二运动矢量;
第一预测单元,用于利用所述第一运动矢量和所述第二运动矢量,确定所述当前块的帧间预测值。
第四方面,本申请实施例提供了一种解码器,包括:
解析单元,用于解析码流,确定当前块的预测模式参数;
第二获取单元,用于当所述预测模式参数指示使用几何划分预测模式GPM确定所述当前块的帧间预测值时,获取所述当前块对应的融合运动信息候选列表;所述融合运动信息候选列表包括用于确定所述当前块的帧间预测值的一项或多项运动候选信息,其中,所述运动候选信息包括一个或两个运动矢量;
第二生成单元,用于按照所述运动候选信息在所述融合运动信息候选列表中的排列顺序,使用所述运动候选信息包括的运动矢量构造待填充运动信息候选列表,生成GPM运动信息候选列表,其中,所述GPM运动信息候选列表中的运动候选信息包括一个运动矢量;
第二确定单元,用于根据所述当前块的预测模式参数,从所述GPM运动信息候选列表中,确定所述第一当前块中第一分区对应的第一运动矢量,以及所述当前块中第二分区对应的第二运动矢量;
第二预测单元,用于利用所述第一运动矢量和所述第二运动矢量,确定所述当前块的帧间预测值。
第五方面,本申请实施例还提供了一种编码器,包括:
第一存储器和第一处理器;
所述第一存储器存储有可在第一处理器上运行的计算机程序,所述第一处理器执行所述程序时实现编码器的所述帧间预测方法。
第六方面,本申请实施例还提供了一种解码器,包括:
第二存储器和第二处理器;
所述第二存储器存储有可在第二处理器上运行的计算机程序,所述第二处理器执行所述程序时实现解码器的所述帧间预测方法。
第七方面,本申请实施例提供了一种存储介质,包括:
其上存储有计算机程序,该计算机程序被第一处理器执行时,实现编码器的所述帧间预测方法;或者,该计算机程序被第二处理器执行时,实现解码器的所述帧间预测方法。
本申请实施例提供了一种帧间预测方法、编码器、解码器和存储介质,包括:确定当前块的预测模式参数;当预测模式参数指示使用几何划分预测模式GPM确定当前块的帧间预测值时,获取当前块对应的融合运动信息候选列表;融合运动信息候选列表包括用于确定当前块的帧间预测值的一项或多项运动候选信息,运动候选信息包括一个或两个运动矢量;按照运动候选信息在融合运动信息候选列表中的排列顺序,使用运动候选信息包括的运动矢量构造待填充运动信息候选列表,生成GPM运动信息候选列表,其中,GPM运动信息候选列表中的运动候选信息包括一个运动矢量;从GPM运动信息候选列表中,选取当前块中第一分区对应的第一运动矢量,以及当前块中第二分区对应的第二运动矢量;利用第一运动矢量和第二运动矢量,确定当前块的帧间预测值。本申请实施例提供的技术方案,将融合运动信息候选列表的一个运动矢量作为一项,按照在融合运动信息候选列表中的先后顺序,使用运动矢量构造GPM运动信息候选列表,提高了GPM运动信息候选列表的可靠性,从而提高了帧间预测性能和编码性能。
附图说明
图1为本申请实施例提供的一种视频编码系统的组成框图示意图;
图2为本申请实施例提供的一种视频解码系统的组成框图示意图;
图3为本申请实施例提供的一种帧内预测方法的实现流程示意图一;
图4a-4g为本申请实施例提供的示例性的7种划分模式的示意图;
图5为本申请实施例提供的示例性当前块的角度和步长的示意图;
图6为本申请实施例提供的示例性的参考块的排布示意图;
图7为本申请实施例提供的实例性的映射关系示意图一;
图8为本申请实施例提供的示例性的偏移值的计算示意图;
图9a为本申请实施例提供的示例性的亮度的第一权重值的示意图;
图9b为本申请实施例提供的示例性的色度的第一权重值的示意图;
图10为本申请实施例提供的一种帧内预测方法的实现流程示意图二;
图11为本申请实施例提供的示例性的映射关系示意图二;
图12为本申请实施例提供的示例性的映射关系示意图三;
图13为本申请实施例提供的一种编码器的结构示意图一;
图14为本申请实施例提供的一种编码器的结构示意图二;
图15为本申请实施例提供的一种解码器的结构示意图一;
图16为本申请实施例提供的一种解码器的结构示意图二。
具体实施方式
为本申请提供一种视频编码系统,如图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去除方块效应伪影,然后,将该重构残差块添加到解码图像缓存单元110的帧中的一个预测性块,用以产生经重构建的视频重建块;编码单元119是用于编码各种编码参数及量化后的变换系数。而解码图像缓存单元110用于存放重构建的视频重建块,用于预测参考。随着视频图像编码的进行,会不断生成新的重构建的视频重建块,这些重构建的视频重建块都会被存放在解码图像缓存单元110中。
本申请实施例提供一种视频解码系统,图2为本申请实施例视频编码系统的组成结构示意图,如图2所示,该视频编码系统12包括:
解码单元121、反变换单元127,与反量化单元122、帧内预测单元123、运动补偿单元124、环路滤波单元125和解码图像缓存单元126单元;输入的视频信号经过视频编码系统11进行编码处理之后,输出该视频信号的码流;该码流输入视频解码系统12中,首先经过解码单元121,用于得到解码后的变换系数;针对该变换系数通过反变换单元127与反量化单元122进行处理,以便在像素域中产生残差块;帧内预测单元123可用于基于所确定的帧内预测方向和来自当前帧或图片的先前经解码块的数据而产生当前视频解码块的预测数据;运动补偿单元124是通过剖析运动矢量和其他关联语法元素来确定用于视频解码块的预测信息,并使用该预测信息以产生正被解码的视频解码块的预测性块;通过对来自反变换单元127与反量化单元122的残差块与由帧内预测单元123或运动补偿单元124产生的对应预测性块进行求和,而形成解码的视频块;该解码的视频信号通过环路滤波单元125以便去除方块效应伪影,可以改善视频质量;然后将经解码的视频块存储于解码图像缓存单元126中,解码图像缓存单元126存储用于后续帧内预测或运动补偿的参考图像,同时也用于视频信号的输出,得到所恢复的原始视频信号。
本申请实施例提供的一种帧间预测方法主要作用于视频编码系统11的帧间预测单元215和视频解码系统12的帧内预测单元,即运动补偿单元124;也就是说,如果在视频编码系统11能够通过本申请实施例提供的帧间预测方法得到一个较好的预测效果,那么,对应地,在解码端,也能够改善视频解码恢复质量。
基于此,下面结合附图和实施例对本申请的技术方案进一步详细阐述。在进行详细阐述之前,需要说明的是,说明书通篇中提到的“第一”、“第二”、“第三”等,仅仅是为了区分不同的特征,不具有限定优先级、先后顺序、大小关系等功能。
本申请实施例提供一种帧间预测方法,该方法应用于视频编码设备,即编码器。该方法所实现的功能可以通过视频编码设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该视频编码设备至少包括处理器和存储介质。
图3为本申请实施例一种帧内预测方法的实现流程示意图,如图3所示,该方法包括:
S101、确定当前块的预测模式参数。
在本申请实施例中,视频图像可以划分为多个图像块,每个当前待编码的图像块可以称为编码块(Coding Block,CB),其中,每个编码块可以包括第一图像分量、第二图像分量和第三图像分量;而当前块为视频图像中当前待进行第一图像分量、第二图像分量或者第三图像分量预测的编码块。
其中,假定当前块进行第一图像分量预测,而且第一图像分量为亮度分量,即待预测图像分量为亮度分量,那么当前块也可以称为亮度块;或者,假定当前块进行第二图像分量预测,而且第二图像分量为色度分量,即待预测图像分量为色度分量,那么当前块也可以称为色度块。
还需要说明的是,预测模式参数指示了当前块的编码模式及该模式相关的参数。通常可以采用率失真优化(Rate Distortion Optimization,RDO)的方式确定当前块的预测模式参数。
具体地,在一些实施例中,编码器确定当前块的预测模式参数的实现为:编码器确定当前块的待预测图像分量;基于当前块的参数,利用多种预测模式分别对待预测图像分量进行预测编码,计算多种预测模式下每一种预测模式对应的率失真代价结果;从计算得到的多个率失真代价结果中选取最小率失真代价结果,并将最小率失真代价结果对应的预测模式确定为当前块的预测模式参数。
也就是说,在编码器侧,针对当前块可以采用多种预测模式分别对待预测图像分量进行编码。这里,多种预测模式通常包括有传统帧内预测模式和非传统帧内预测模式,而传统帧内预测模式又可以包括有直流(Direct Current,DC)模式、平面(PLANAR)模式和角度模式等,非传统帧内预测模式又可以包括有MIP模式、跨分量线性模型预测(Cross-component Linear Model Prediction,CCLM)模式、帧内块复制(Intra Block Copy,IBC)模式和PLT(Palette)模式等,帧间预测模式可以包括:几何划分预测模式(Geometrical partition Mode,GEO)、三角预测模式(Triangle partition mode,TPM)等。
这样,在利用多种预测模式分别对当前块进行编码之后,可以得到每一种预测模式对应的率失真代价结果;然后从所得到的多个率失真代价结果中选取最小率失真代价结果,并将该最小率失真代价结果对应的预测模式确定为当前块的预测模式参数;如此,最终可以使用所确定的预测模式对当前块进行编码,而且在这种预测模式下,可以使得预测残差小,能够提高编码效率。
S102、当预测模式参数指示使用几何划分预测模式GPM确定当前块的帧间预测值时,获取当前帧对应的融合运动信息候选列表;融合运动信息候选列表包括用于确定当前块的帧间预测值的一项或多项运动候选信息,其中,运动候选信息包括一个或两个运动矢量。
在本申请实施例中,预测模式参数指示使用GPM确定当前块的帧间预测值时,就可以获取当前块对应的融合运动信息候选列表。其中,本申请实施例中的当前块指帧间块。
需要说明的是,在本申请实施例中,当前块使用GPM存在以下限制条件:序列层参数集(sequence parameter set,sps)允许采用GPM;当前块属于双向预测片;当前块的宽和高均大于等于8且小于等于64,并且,当前块的宽高比和高宽比都小于8;当前块非普通融合预测(general merge)、非融合子块预测(merge subblock)、非仿射预测,以及非联合帧内帧间预测(composed intra inter predicitn,CIIP);对4:0:0格式的色度分量禁用GPM。
需要说明的是,在本申请实施例中,帧间预测是根据当前块的参考帧中的像素,通过运动矢量指示参考帧中用于预测的像素的位置,产生当前块的预测值。参考帧作为短期参考图片或长期参考图片的图片或帧,参考帧含有可以按解码顺序用于后续图片的解码过程中的帧间预测的样本。
融合编码(merge):一种帧间编码方式,其运动矢量不直接在码流中传递。当前块可根据融合序号(merge index)从融合候选列表(merge candidate list)中选择对应的运动信息,将融合候选的运动信息作为当前块的运动信息,或者对融合候选的运动信息经过缩放后作为当前块的运动信息;当前块根据运动信息确定帧间预测值。
通常情况下,视频序列的图像被划分成图像块进行编码。在视频编码混合框架中,通常只以正方形和矩形的块为单位实施预测、变换和量化等编码技术。然而实际中运动物体的边缘并不一定都是水平或者垂直方向的,即使是,也不一定刚好在可以划分的块边缘上,而运动边缘两侧的运动矢量往往不同,这样在编码的过程中以一个整块进行运动预测和补偿,易产生较大的预测误差,从而导致编码效率受限。
需要说明的是,在本申请实施例中,GPM是针对图像中物体边缘部分,将帧间块(即,当前块)划分为两个非矩形的子分区分别进行预测后进行加权融合。例如,非矩形的形式可以如下图4a-4g所示。
其中,在目前VVC Draft7中,GPM总共有82种划分模式,每种划分模式对应一种角度α和一种步长ρ,角度为将360度划分成了24种,因此,角度包括24种,步长包括4种,这样角度和步长的组合为96种。
需要说明的是,角度表用基于斜率的角度表替代之前基于固定步长的角度表,使用5种固定的斜率(1、1/2、1/4、4、2)去构造不等间隔的角度表。
示例性的,如图5所示,每种角度α和步长ρ的组合构成一种划分模式(其中剔除了角度索引为0、6、12~23的所有第一种步长去除后得到82种划分模式),GPM所将当前块划分为两个非矩形的子分区,每个子分区单独进行单向的运动补偿得到单向预测值,最后利用当前块对应的权重矩阵对两分区的单向预测值加权融合得到当前块的最终GPM预测值。
在本申请实施例中,在编码器侧,确定是采用GPM进行帧间预测时,该编码器就可以获取当前块对应的融合运动信息候选列表,其中,融合运动信息候选列表用于对当前块进行运动预测。
具体的,在本申请实施例中,编码器获取当前块对应的融合运动信息候选列表,包括:获取当前块对应的一个或多个参考块;获取参考块在一个或两个预设方向上的运动矢量,得到运动候选信息;按照预设排列方式,对运动候选信息进行排列,得到融合运动信息候选列表。
示例性的,如图6所示,编码器可以以当前块为基准,依次将当前块上侧相邻块B1、左侧相邻块A1、右上侧相邻块B0、左下侧相邻块A0、左上侧相邻块B2、参考帧对应位置块col确定为参考块。此外,参考块还可以是历史编码块等,本申请实施例不作限定。
示例性的,在本申请实施例中,编码器可以获取参考块在两个预设方向上的运动矢量信息,两个预设方向可以根据实际需求选择,本申请实施例不作限定。其中,每个参考块在两个预设方向上的两个运动矢量就是融合运动信息候选列表中的一项运动候选信息。
需要说明的是,在本申请实施例中,编码器在获取到每个参考块对应的两个预设方向上的两个运动矢量时,可以对按照预设排列顺序进行排列,该预设排列顺序可以为上侧相邻块B1、左侧相邻块A1、右上侧相邻块B0、左下侧相邻块A0、左上侧相邻块B2、参考帧对应位置块col确定为参考块的运动矢量信息依次排列,且区分不同方向来源。示例性的,融合运动信息候选列表如以下表1所示。
表1
序号 List0 List1
0 0 0
1 1 1
2 2 2
3 3 3
4 4 4
如表1所示,在本申请实施例中,序号列的0-4分别表示当前块对应的不同的参考块,list0和list1分别表示一个预设方向,每一行可以记录当前块对应的某一参考块在两个预设方向上的两个运动矢量,两个运动矢量的序号是相同的,属于一项运动候选信息,相应的,对应一个参考块。
S103、按照运动候选信息在融合运动信息候选列表中的排列顺序,使用运动候选信息包括的运动矢量构造待填充运动信息候选列表,生成GPM运动信息候选列表。
在本申请实施例中,编码器在获取到融合运动信息候选列表之后,进一步的,按照运动候选信息在融合运动信 息候选列表中的排列顺序,使用运动候选信息包括的运动矢量构造待填充运动信息候选列表,生成GPM运动信息候选列表。
示例性的,在本申请实施例中,对应表1所示的融合运动信息候选列表,编码器可以将运动候选信息中的每个运动矢量作为一项,按照序号0-4,list0-list1的顺序,填入待填充运动信息候选列表,从而生成表2所示的GPM运动信息候选列表。
表2
序号 List0 List1
0 0 1
1 2 3
2 4 5
3 6 7
4 8 9
如表2所示,每个运动矢量对应有不同的序号,即在表2中填入的0-9,每个运动矢量可以作为独立的一项,该序号除以2下取整得到的整数值,实际上就是其在表1中的序号。表2中序号的奇偶性分别对应了list0或者list1的来源。
具体的,在本申请实施例中,编码器按照运动候选信息在融合运动信息候选列表中的排列顺序,使用运动候选信息包括的运动矢量构造待填充运动信息候选列表,生成GPM运动信息候选列表,包括:在将目标运动矢量按照在融合运动信息候选列表中的排列顺序待填充运动信息候选列表时,判断目标运动矢量是否可用;目标运动矢量为多项运动候选信息中任意一项运动候选信息的任意一个运动矢量;在目标运动矢量不可用的情况下,跳过使用目标运动矢量构造待填充运动信息候选列表;使用融合运动信息候选列表中,排列顺序在目标运动矢量之后的下一个运动矢量继续对待填充运动信息候选列表进行构造。
可以理解的是,在本申请实施例中,多个运动矢量信息中可能包括不可用的运动矢量,即不可用运动矢量,因此,编码器在将运动矢量按照排列顺序依次作为一项填入待填充运动信息候选列表时,可以跳过不可用的运动矢量,以提高后续从GPM运动信息候选列表中进行信息选取的效率,也可以减少GPM运动信息候选列表所占用的存储空间。
具体的,在本申请实施例中,编码器按照运动候选信息在融合运动信息候选列表中的排列顺序,使用运动候选信息包括的运动矢量构造待填充运动信息候选列表,生成GPM运动信息候选列表,包括:在待填充运动信息候选列表中,包括的运动矢量的项数达到预设项数时,确定待填充运动信息候选列表为GPM运动信息候选列表。
需要说明的是,在本申请实施例中,编码器中存储有预设项数,预设项数可以根据实际需求进行选择,本申请实施例不作限定。
可以理解的是,在本申请实施例中,编码器也可以将融合运动信息候选列表中的部分排序靠前的运动矢量填入待填充运动信息候选列表,而靠前的运动矢量在进行帧间预测时可靠性更高,从而不仅降低了编码器的复杂度,也不会引起编码效率的损失。
示例性的,如表3所示,可以将融合运动信息候选列表中的前3个参考块对应的两个预设方向的两个运动矢量按照顺序填入待填充运动信息候选列表,从而生成GPM运动信息候选列表。
表3
序号 List0 List1
0 0 1
1 2 3
2 4 5
3    
4    
需要说明的是,在几何预测的当前块中,包括两个分区,每个分区都只会使用单向预测模式,而融合运动信息候选列表中可能是双向的信息,因此,编码器需要进行信息的选取。目前,编码器按照奇偶校验的方式,针对于每 个参考块,从其两个预设方向上的两个运动矢量中选择一个方向的运动矢量,然而,舍弃掉的运动矢量也可能更适合进行后续帧间预测。因此,在本申请实施例中,编码器直接确定融合运动信息候选列表中运动候选信息的一个运动矢量作为一项,按顺序构造待填充运动信息候选列表,而不进行奇偶检验的筛选。编码器从而在后续进行选择时保证GPM运动信息候选列表的可靠性,提高编码性能。
需要说明的是,在本申请的实施例中,编码器还可以直接构造GPM运动信息候选列表,该构造过程与融合运动信息候选列表的构造方式类似,与上述步骤S102~S103的原理相同,编码器可以直接在获取融合运动信息候选列表的运动候选信息包括的运动矢量时,逐一检查各个空间相邻、时间相邻、历史信息、平均值构造、零运动矢量的两个方向的运动矢量的可用性,再使用这些运动矢量的可用项逐个填入待填充运动信息候选列表,从而构造生成GPM运动信息候选列表。示例性的,对应于图6所示的参考块,可以采用下面的顺序逐个检验和填入列表:
B1List0-B1List1-A1List0-A1List1-B0List0-B0List1-A0List0-A0List1-B2List0-B2List1-ColList0-ColList1-HisList0-Hi sList1-AvgList0-AvgList1-0
需要说明的是,在本申请实施例中,在使用运动矢量构造待填充运动信息候选列表的过程中,也可以加入查重去重的操作,以保证最终生成的GPM运动信息候选列表的多样性。
具体的,在本申请实施例中,编码器可以检验融合运动信息候选列表中的第LXj项与当前待填充运动信息候选列表的第0~i-1项是否有重合,如果有,i不变,j自增1;如果没有,才执行存入表的语句,从而最终生成不包括重合的运动矢量的GPM运动信息候选列表。
若i还没有达到MaxNumGpmMergeCand-1,而j已经增加到MaxNumGpmMergeCand,则后续补值为0的运动矢量,或重复在此之前存入的最后一个运动矢量相应的信息。其中,MaxNumGpmMergeCand为GPM运动信息候选列表的长度。
图7中的给出了一个用映射表方法构建时查重去重构造的过程。
S104、从GPM运动信息候选列表中,选取当前块中第一分区对应的第一运动矢量,以及当前块中第二分区对应的第二运动矢量。
在本申请实施例中,编码器在生成GPM运动信息候选列表之后,即可从GPM运动信息候选列表中,选取当前块中第一分区对应的第一运动矢量,以及当前块中第二分区对应的第二运动矢量。
需要说明的是,在本申请实施例中,编码器可以基于当前块中第一分区和第二分区的位置,分别进行第一运动矢量和第二运动矢量的选取。其中,编码器进行第一运动矢量和第二运动矢量的选取存在一定顺序。
需要说明的是,在本申请实施例中,编码器在选取出第一运动矢量和第二运动矢量之后,可以将相应的运动矢量存入给相应分区的处理变量,以准备进行后续的帧间预测。
在本申请实施例中,编码器从GPM运动信息候选列表中,选取当前块中第一分区对应的第一运动矢量,以及当前块中第二分区对应的第二运动矢量,包括:获取第一分区和第二分区对应的运动矢量选取顺序;按照运动矢量选取顺序,从GPM运动信息候选列表中,选取第一运动矢量和第二运动矢量。
具体的,在本申请实施例中,编码器按照运动矢量选取顺序,从GPM运动信息候选列表中,选取第一运动矢量和第二运动矢量,包括:在运动矢量选取顺序为第一分区优先于第二分区的情况下,从GPM运动信息候选列表中选取第一运动矢量;从GPM运动信息候选列表中,获取与第一运动矢量属于多项运动候选信息中同一项运动候选信息的运动矢量,确定为不可选运动矢量;从GPM运动信息候选列表中,与第一运动矢量和不可选运动矢量中不同的运动矢量中选取第二运动矢量。
具体的,在本申请实施例中,编码器按照运动矢量选取顺序,从GPM运动信息候选列表中,选取第一运动矢量和第二运动矢量,包括:在运动矢量选取顺序为第二分区优先于第一分区的情况下,从GPM运动信息候选列表中选取第二运动矢量;从GPM运动信息候选列表中,获取与第二运动矢量属于多项运动候选信息中同一项运动候选信息的运动矢量,确定为不可选运动矢量;从GPM运动信息候选列表中,与第二运动矢量和不可选运动矢量中不同的运动矢量中选取第一运动矢量。
示例性的,在本申请实施例中,编码器先选取出的第一分区对应的第一运动矢量,第一运动矢量对应的第一位置信息为m,如表达式(1)所示:
m=merge_gpm_idx0[xCb][yCb]     (1)
具体的,在本申请实施例中,编码器之后选取出的第二分区对应的第二运动矢量,第二运动矢量对应的第二位置信息为n,如表达式(2)所示:
n=merge_gpm_idx1[xCb][yCb]+(merge_gpm_idx1[xCb][yCb]>=m)?2:0      (2)
可以理解的是,在本申请实施例中,编码器在先选取第一分区对应的第一运动矢量之后,在进行第二分区对应的第二运动矢量时,由于第一分区先选取的第一运动矢量在GPM运动信息候选列表的位置靠前,而减小2。m和n对应的是表2中0-9或表3中0-6的序号。
因为在几何预测的块中,每个分区都只会使用单向预测模式,而GPM运动信息候选列表中每一项都可能是双向预测的运动矢量,因此需要取出其中的单向运动矢量供使用。令X=(m&0x01),其中,X为参考列表指示信息,用于指示list0和list1,&为位与运算,即取出m的最后一个比特位。
令M=mergeGPMCandList[m>>1],从GPM运动信息候选列表中取出第m>>1项用于第一分区的第一运动矢量构造。将相应的第一运动矢量存入给第一分区的处理变量,准备后续的预测块构造。
mvA[0]=mvLXM[0]
mvA[1]=mvLXM[1]
refIdxA=refIdxLXM
predListFlagA=X
其中mvA为第一运动矢量,refIdxA为该运动矢量对应的参考帧,predListFlagA表示当前选用了该运动矢量备 选项的哪个list中的分量。
令N=mergeCandList[n>>1],从merge列表中取出第n>>1项用于第二分区的第二运动矢量构造。
mvB[0]=mvLXN[0]
mvB[1]=mvLXN[1]
refIdxB=refIdxLXN
predListFlagB=X
其中mvB为第二运动矢量,refIdxB为该运动矢量对应的参考帧,predListFlagB表示当前选用了该运动矢量备选项的哪个list中的分量。
需要说明的是,在本申请实施例中,编码器在从GPM运动候选信息列表中选择选择完第一分区的第一运动矢量之后,在选择第二分区的第二运动矢量之前,还可以去掉第一分区所对应融合运动信息候选列表中的list0和list1的两项(如果都存在),再对表重新排号。
即,在写入码流时,假设第一分区选择第m个运动矢量为第一运动矢量(对应于融合运动信息候选列表的M项)且其对象运动矢量有效,第二分区选择第n个运动矢量为第二运动矢量,有
merge_gpm_idx0[xCb][yCb]=m
merge_gpm_idx1[xCb][yCb]=n-(merge_gpm_idx1[xCb][yCb]>=m)?(((predFlagL0M+predFlagL1M)==2)?2:1):0
S105、利用第一运动矢量和第二运动矢量,确定当前块的帧间预测值。
在本申请实施例中,编码器在得到第一运动矢量和第二运动矢量之后,即可利用第一运动矢量和第二运动矢量,确定当前块的帧间预测值。
在本申请实施例中,编码器利用第一运动矢量和第二运动矢量,确定当前块的帧间预测值,包括:利用第一运动矢量确定第一分区对应的第一预测值;利用第二运动矢量确定第二分区对应的第二预测值;对第一预测值和第二预测值进行加权融合处理,得到当前块的帧间预测值。
在本申请实施例中,编码器可以根据每个像素点的第一预测值与第一权重值相乘,加上对应的每个像素点的第二预测值与第二权重值之积,完成对当前块内像素点的加权融合,得到当前块的帧间预测值。
需要说明的是,第一预测值和第二预测值为当前块内的各个像素点对应的两个预测值,第一权重值和第二权重值也是分别都对应了当前块的各个像素点的不同的两种权重值。
具体的,在本申请实施例中,编码器进行GPM预测处理的流程主要包括四步,依次为:计算当前块两个分区的单向预测值,即第一预测值和第二预测值;推导分割角度和位置;为L、Cb、Cr三个分量推导加权预测像素值predSamples;存储运动矢量信息用于后续预测。
具体的,在本申请实施例中,编码器为L、Cb、Cr三个分量推导参考帧列表refPicLN、亚像素预测像素值predSamplesLN,N为第一分区或第二分区,其步骤同一般Inter预测技术相同。即用现有的运动补偿方式,计算得到两个分区各自的单向预测值,以用于后面GPM最终的加权融合过程。这里的运动补偿和常规运动补偿过程一样,即通过对应的运动矢量找到相应的区域的像素值并复制。在此不再赘述。
具体的,在本申请实施例中,编码器确定是采用GPM进行帧间预测时,编码器还可以推导分割角度和位置。
在本申请实施例中,编码器通过遍历GPM对应的82种划分模型,确定出率失真代价最小的划分模式,即确定出目标划分模式;该编码器就可以依据目标划分模式,通过预设划分模式、角度索引和步长索引的映射表,确定出该目标划分模式对应的角度索引信息和步长索引信息了。其中,预设划分模式、角度索引和步长索引的映射表如表4所示:
表4
merge_gpm_partition_idx 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
angleIdx 0 0 2 2 2 2 3 3 3 3 4 4 4 4 5 5
distanceIdx 1 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1
merge_gpm_partition_idx 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
angleIdx 5 5 8 8 11 11 11 11 12 12 12 12 13 13 13 13
distanceIdx 2 3 1 3 0 1 2 3 0 1 2 3 0 1 2 3
merge_gpm_partition_idx 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
angleIdx 14 14 14 14 16 16 18 18 18 19 19 19 20 20 20 21
distanceIdx 0 1 2 3 1 3 1 2 3 1 2 3 1 2 3 1
merge_gpm_partition_idx 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
angleIdx 21 21 24 24 27 27 27 28 28 28 29 29 29 30 30 30
distanceIdx 2 3 1 3 1 2 3 1 2 3 1 2 3 1 2 3
其中,wedge_partition_idx为划分模式索引,angleIdx为角度索引信息,distanceIdx为步长索引信息。
具体的,在本申请实施例中,编码器为L、Cb、Cr三个分量推导加权预测像素值predSamples,其中,包括当前块的亮度预测值的计算,以及当前块的色度预测值的计算。
具体的,在本申请实施例中,编码器对当前块进行亮度预测值的计算,可以先通过对预定义的权重矩阵裁剪获取当前块的权重掩码矩阵,之后对当前块的两个分区的预测值进行逐像素加权,得到当前块的亮度预测值。
需要说明的是,在本申请实施例中,编码器先首先权重矩阵的获取需要通过当前块以及当前块的划分模式去计算当前块的左上角对应于坐标原点的偏移值Offset(x,y),而坐标原点处于同样角度分割线穿过几何中心点的同样尺寸 块的几何中心点,如图8所示。
需要说明的是,在本申请实施例中,如图8所示,背景区域是根据目前的限定条件,通过偏移值offset矢量,最大尺寸块(64×64)相对该坐标系的最大移动范围(112×112).如果分割线不经过块的中心点,则保持分割线相对位置不变,移动块在坐标系中的位置,从而得到恰当的分割。
需要说明的是,在本申请实施例中,偏移值计算所需要用到的核心参数如下:
因为点(x1,y1)到线cosαx-sinαy=0的距离d=cosαx1-sinαy1,
首先需要获取当前角度所对应的cos(α)中α的索引号displacementX,以及对应的
Figure PCTCN2020083342-appb-000001
对应的
Figure PCTCN2020083342-appb-000002
的索引号displacementY。其中,索引号displacementX为表达式(1),索引号displacementY为表达式(2):
displacementX=angleIdx;        (1)
displacementY=(displacementX+8)%32;       (2)
其中,构造预定义权重矩阵时所使用的步长仅仅为第一个步长(即分割线一定与块的中心点相交)。
可以理解的是,在本申请实施例中,第一分区和第二分区在码流中相关信息的传输是有先后顺序的。因此,在两个分区的顺序安排上须遵循一定的原则,通过以下表达式(1)计算获得paetFlip:
partFlip=(angleIdx>=13&&angleIdx<=27)?0:1      (3)
其中,partFlip为0,表示后续表达式(8)中得到的点与分割线之间的距离weigheIdg为负值的一侧分区需要先进行传输,相应的,partFlip为1,表示当前块weigheIdg为正值的一侧分区需要先进行传输。
需要说明的是,在本申请实施例中,编码器可以通过以下表达式(4)和表达式(5)获得关键参数shiftHor:
hwRatio=nH/nW        (4)
shiftHor=(angleIdx%16==8||(angleIdx%16!=0&&hwRatio>0))?0:1   (5)
其中,nH为当前块的高,nW为当前块的高,shiftHor的含义是在同一角度下不同分割线之间的位移方向的确定,如其值为0,分割线将在Y轴上偏移;其值为1,分割线将在X轴上偏移。
需要说明的是,在本申请实施例中,编码器在获得关键参数shiftHor之后,根据当前预测块的尺寸和划分信息,用表达式(6~7)计算当前块的偏移值offsetX和offsetY:
如果shiftHor==0,当前块在垂直方向上存在与当前块的高相关的偏移值,此时的偏移信息如以下表达式(6)所示:
offsetX=(-nW)>>1
offsetY=((-nH)>>1)+angleIdx<16?(distanceIdx*nH)>>3:-((distanceIdx*nH)>>3)  (6)
如果shiftHor==1,当前块在水平方向上存在与当前块的宽相关的偏移值,此时的偏移信息如以下表达式(7)所示:
offsetX=((-nW)>>1)+angleIdx<16?(distanceIdx*nW)>>3:-((distanceIdx*nW)>>3)
offsetY=(-nH)>>1         (7)
需要说明的是,在本申请实施例中,编码器在确定出偏移信息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。
另外,表5提供了一种几何分割线距离排列查找表示例,式(8)中所使用的disLut[]如表3所示,subW和subH表示下采样率,如果当前块的YUV格式为420格式,subW和subH都可以为2。其中使用的disLut[]如表5所示。subW和subH表示下采样率,如果是420格式,subW和subH都为2。亮度不需要下采样,色度权重是对亮度权重下采样得到的。
表5
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
其中,weightIdxL绝对值越小,像素点距离分区边缘越近,该点处在第一分区、第二分区上的权重分布越平均。
具体的,在本申请实施例中,编码器对当前块两个分区的预测值进行逐像素加权,得到最终的当前块的帧间预测值,具体加权的计算如式(11)所示:
pbSamples[x][y]=Clip3(0,(1<<BitDepth)-1,(predSamplesLA[x][y]*wValue+
predSamplesLB[x][y]*(8-wValue)+offset1)>>shift1)   (11)
其中,offset1和shift1计算表达式(12)-(13)所示,offset1用于四舍五入,shift1用于使得加权平均后的预测值恢复到与输入视频相同的比特深度。
shift1=Max(5,17-BitDepth         (12)
offset1=1<<(shift1-1)        (13)
在本申请实施例中,编码器对当前块色度预测值的计算,可以通过获取每个2*2块的左上角的亮度样本权重直接作为当前(x,y)处的色度样本权重,即对亮度样本权重进行下采样,色度预测值的加权计算方式同表达式(11)所示的亮度预测值计算相同。亮度和色度权重矩阵的采样关系如图9a和图9b所示。
具体的,在本申请实施例中,编码器存储当前预测块GPM运动矢量的过程是利用运动掩码矩阵来实现的,预测值完全来自于第一分区的,则记录第一分区的第一运动矢量,完全来自于第二分区的,记录第二分区的第二运动矢量;否则同时记录两个分区的运动矢量。运动掩码的计算同计算亮度权重矩阵的过程基本一致,首先计算偏移值offset,该offset的计算如表达式(14)-(15)所示:
在shiftHor==0的情况下:
offsetX=(-cbWidth)>>1
offsetY=((-cbHeight)>>1)+
(angleIdx<16?(distanceIdx*cbHeight)>>3:-((distanceIdx*cbHeight)>>3))      (14)
在shiftHor==1的情况下:
offsetX=((-cbWidth)>>1)+
(angleIdx<16?(distanceIdx*cbWidth)>>3:-((distanceIdx*cbWidth)>>3))
offsetY=(-cbHeight)>>1           (15)
其中,cbWidth是当前块对应的运动掩码矩阵的宽,cbHeight是当前块对应的运动掩码矩阵的高实际上也是当前块亮度分量的宽和高。
需要说明的是,在本申请实施例中,当前块的运动掩码矩阵仍是以4×4子块为单位进行计算的,每个4×4子块中心位置(4i+2,4j+2)处的motionIdx的计算类似于如表达式(8)中weightIdx的计算,如表达式(16)所示:
motionIdx=(((4*xSbIdx+offsetX)<<1)+5)*disLut[displacementX]
+(((4*ySbIdx+offsetY)<<1)+5)*disLut[displacementY]         (16)
可以理解的是,在本申请实施例中,编码器确定当前4x4的子块需要存储的运动矢量同预测加权时一样,需要首先确定当前子块处于第一分区还是第二分区的一侧。
partIdx=(angleIdx>=13&&angleIdx<=27)?0:1       (17)
其中(xSbIdx,ySbIdx)表示每个4×4子块(subblock,sb)在当前块中的子块坐标。坐标的范围为xSbIdx=0..numSbX–1和ySbIdx=0..numSbY–1。partIdx表示是否需要对两个分区进行翻转。
sType=abs(motionIdx)<32?2:(motionIdx<=0?(1-partIdx):partIdx)     (18)
在本申请实施例中,编码器根据每个4×4子块中心位置(4i+2,4j+2)处的abs(motionIdx)的大小,来判断当前子块存储单向还是双向运动矢量。
示例性的,如果sType为2,当前块存储构造的双向运动矢量,即同时存储第一运动矢量和第二运动矢量;
否则,
如果sType为0,当前块存储第一个分区的第一运动矢量;
如果sType为1,当前块存储第二个分区的第二运动矢量;
需要说明的是,在本申请实施例中,存储下来的运动矢量将用于后续编码块的运动矢量预测。
需要说明的是,在本申请实施例中,编码器在利用第一运动矢量和所述第二运动矢量,确定当前块的帧间预测值之后,即步骤S105之后,可以执行以下步骤:从GPM运动信息候选列表中,获取第一运动矢量对应的第一位置信息,以及第二运动矢量对应的第二位置信息;将第一位置信息和所述第二位置信息写入码流。
具体的,在本申请实施例中,编码器将GPM与其他帧间预测模式视为相互竞争的模式,依照率失真优化(RDO)或其他策略在模式之间进行选择,将选择的结果以码流中语法元素的形式传送给解码器。编码器可以对第一运动矢量对应的第一位置信息,以及第二运动矢量对应的第二位置信息分别进行赋值,之后再对其进行二值化、熵编码,从而最终写入码流传输。其中,编码器按照以下表达式(19)-(20)进行位置信息的赋值:
merge_gpm_idx0[xCb][yCb]=m        (19)
merge_gpm_idx1[xCb][yCb]=n-(merge_gpm_idx1[xCb][yCb]>=m)?2:0    (20)
其中,m为第一运动矢量在GPM运动信息候选列表中的对应的第一位置信息,n为第二运动矢量在GPM运动信息候选列表中对应的第二位置信息。
可以理解的是,在本申请实施例中,第二分区的第二运动矢量在GPM运动信息候选列表中的第二位置信息,可能因为第一分区先选去了靠前位置的第一运动矢量,而减小2。
需要说明的是,在本申请实施例中,当前块对应的编码单元层语法描述如表6所示。
表6
Figure PCTCN2020083342-appb-000003
这里,ae(v)表示context-adaptive arithmetic entropy-coded syntax element,即上下文自适应的算术熵编码语法元素。merge_gpm_idx0[x0][y0],表征当前块的第一分区的第一运动矢量对应的第一位置信息,merge_gpm_idx1[x0][y0],表征当前块的第二分区的第二运动矢量对应的第二位置信息,MaxNumGpmMergeCand为运动信息候选列表的最大长度。
需要说明的是,在本申请实施例中,当预测模式参数指示使用几何划分预测模式GPM确定当前块的帧间预测时,编码器获取当前块对应的融合运动信息候选列表之后,还可以执行以下步骤:针对第一分区和第二分区,生成多项 运动候选信息中每项运动候选信息的每个运动矢量为可用运动矢量的指示信息。
示例性的,在本申请实施例中,编码器可以增加方向指示的语句,如以下所示:
Figure PCTCN2020083342-appb-000004
这样,merge_gpm_idx0[x0][y0]和merge_gpm_idx1[x0][y0]的含义就和现有技术一样,但是融合运动信息候选列表中的list0和list1项都是可用的,那么是选用list0还是list1就由merge_gpm_dir0[x0][y0]和merge_gpm_dir1[x0][y0]分别来指示。merge_gpm_dir0[x0][y0]、merge_gpm_dir1[x0][y0]的值为0代表对应list0项,为1则代表对用list1项。
在本申请实施例中,编码器将多项运动候选信息中每项运动候选信息的每个运动矢量作为一项,按照在融合运动信息候选列表中的排列顺序填入待填充运动信息候选列表,生成GPM运动信息候选列表之前,还包括:获取融合运动信息候选列表对应的第一长度,以及序列层参数集语法值;计算第一长度与序列层参数集语法值之差的二倍,得到GPM运动信息候选列表对应的第二长度。
示例性的,在本申请实施例中,将GPM运动信息候选列表长度(例如2*(6-1)=10)设为融合运动信息候选列表长度(例如6)减去序列层参数集层语法的值max_num_merge_cand_minus_max_num_gpm_cand(例如1)的差值的两倍。
在现有技术中,序列层参数集语法值max_num_merge_cand_minus_max_num_gpm_cand的含义与原来一样,是指在融合运动信息候选列表中用于GPM的双向/单向运动矢量中,有多少个(两个方向作一项计入)项不用于GPM候选使用。然而,在本申请实施例中,修改本项语法含义为:在融合运动信息候选列表中用于GPM的双向/单向运动矢量中,有多少个(两个方向作两项计入)项不用于GPM候选使用。这样,可用运动矢量的个数可以变成更多的选项,例如为4、5、6、7、8、9、10、11、12。
在本申请实施例中,编码器按照运动候选信息在融合运动信息候选列表中的排列顺序,使用运动候选信息包括的运动矢量构造待填充运动信息候选列表,生成GPM运动信息候选列表之前,方法还包括:获取融合运动信息候选列表中,不可用于构造待填充运动信息候选列表的运动矢量的数量,确定为序列层参数集语法值。
本申请实施例提供了一种帧间预测方法,应用于编码器中,包括:确定当前块的预测模式参数;当预测模式参数指示使用几何划分预测模式GPM确定当前块的帧间预测值时,获取当前块对应的融合运动信息候选列表;融合运动信息候选列表包括用于确定当前块的帧间预测值的一项或多项运动候选信息,按照运动候选信息在融合运动信息候选列表中的排列顺序,使用运动候选信息包括的运动矢量构造待填充运动信息候选列表,生成GPM运动信息候选列表,其中,GPM运动信息候选列表中的运动候选信息包括一个运动矢量;从GPM运动信息候选列表中,选取当前块中第一分区对应的第一运动矢量,以及当前块中第二分区对应的第二运动矢量;利用第一运动矢量和第二运动矢量,确定当前块的帧间预测值。本申请实施例提供的技术方案,将融合运动信息候选列表的一个运动矢量作为一项,按照在融合运动信息候选列表中的先后顺序,使用运动矢量构造GPM运动信息候选列表,提高了GPM运动信息候选列表的可靠性,从而提高了帧间预测性能和编码性能。
本申请实施例提供一种帧间预测方法,该方法应用于解码器。该方法所实现的功能可以通过解码器中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该视频编码设备至少包括处理器和存储介质。
图10为本申请实施例一种帧内预测方法的实现流程示意图,如图10所示,该方法包括:
S201、解析码流,确定当前块的预测模式参数;
S202、当预测模式参数指示使用几何划分预测模式GPM确定当前块的帧间预测值时,获取当前块对应的融合运动信息候选列表;融合运动信息候选列表包括用于确定当前块的帧间预测值的一项或多项运动候选信息,其中,运动候选信息包括一个或两个运动矢量。
S203、按照运动候选信息在融合运动信息候选列表中的排列顺序,使用运动候选信息包括的运动矢量构造待填充运动信息候选列表,生成GPM运动信息候选列表,其中,GPM运动信息候选列表中的运动候选信息包括一个运动矢量。
S204、根据当前块的预测模式参数,从GPM运动信息候选列表中,确定当前块中第一分区对应的第一运动矢量,以及当前块中第二分区对应的第二运动矢量。
S205、利用第一运动矢量和第二运动矢量,确定当前块的帧间预测值。
具体的,在本申请实施例中,解码器获取当前块对应的融合运动信息候选列表,包括:获取当前块对应的一个或多个参考块;获取参考块在一个或两个预设方向上的运动矢量,得到运动候选信息;按照预设排列方式,对运动候选信息进行排列,得到融合运动信息候选列表。
具体的,在本申请实施例中,解码器按照运动候选信息在融合运动信息候选列表中的排列顺序,使用运动候选信息包括的运动矢量构造待填充运动信息候选列表,生成GPM运动信息候选列表,包括:在按照目标运动矢量在融合运动信息候选列表中的排列顺序,使用目标运动矢量构造待填充运动信息候选列表时,判断目标运动矢量是否可用;目标运动矢量为运动候选信息中任意一个运动矢量;在目标运动矢量不可用的情况下,跳过使用目标运动矢量构造待填充运动信息候选列表;使用融合运动信息候选列表中,排列顺序在目标运动矢量之后的下一个运动矢量继续对待填充运动信息候选列表进行构造。
需要说明的是,在本申请实施例中,解码器以跳过融合运动信息候选列表中不可用的运动矢量的方式构造GPM运动信息候选列表的过程中,如果建立的GPM运动信息候选列表是包括运动矢量位置信息的映射表,具体实现方式如以下:
对i=0~MaxNumGpmMergeCand-1,j=0~MaxNumMergeCand-1实施以下操作:
令X=0,检验merge列表的LXm是否可用,可用则将相应运动矢量信息存入mergeGPMCandMapListi。
mergeGPMCandMapList[i][0]=j
mergeGPMCandMapList[i][1]=X
i=i+1
若i<MaxNumGpmMergeCand-1,再令X=1,检验merge列表的LXm是否可用,可用则将相应运动矢量信息存入mergeGPMCandMapListi。
mergeGPMCandMapList[i][0]=j
mergeGPMCandMapList[i][1]=X
i=i+1.j=j+1.
需要说明的是,在本申请实施例中,mergeCandList表示融合运动信息候选列表,mergeGPMCandMapList表示GPM运动信息候选列表(映射表),上述过程的一个例子如图11所示。
可以理解的是,在本申请实施例中,解码器以跳过融合运动信息候选列表中不可用的运动矢量的方式构造GPM运动信息候选列表,即如果某个运动矢量不可用或不存在,则继续向后依次取可用的运动矢量,直至待填充运动信息候选列表的长度达到预设长度,将其确定为GPM运动信息候选列表。
相应的,针对于编码器跳过不可用运动矢量生成GPM运动信息候选列表的方式,其执行步骤S104的方式具体如下:
merge_gpm_idx0[x0][y0],表示第一分区的第一运动矢量在GPM运动信息候选列表中的位置,令
m=merge_gpm_idx0[xCb][yCb],等待后续处理。
merge_gpm_idx1[x0][y0],代表第二分区的第二运动矢量在GPM运动信息候选列表中的位置,第二分区的第二运动矢量在GPM运动信息候选列表中的位置可能因为A先选去了靠前位置的选项,而减小1.令
n=merge_gpm_idx1[xCb][yCb]+(merge_gpm_idx1[xCb][yCb]>=m)?1:0,n表示的就是第二分区选择的第二运动矢量在GPM运动信息候选列表中的实际位置,等待后续处理。
如图11所示例子,加入序号0的list0对应的运动矢量,加入序号1的是1位置list0对应的运动矢量,加入序号2的是1位置list1对应的运动矢量,等等。m和n对应的是图中黑色的序号,而映射得到的是白色的二元组信息。
令M=mergeCandList[mergeGPMCandMapList[m][0]],X=mergeGPMCandMapList[m][1],从GPM运动信息候选列表中取出第m项用于第一分区的第一运动矢量构造。将相应的第一运动矢量存入给第一分区的处理变量,准备后续的预测块构造。
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],从merge列表中取出第n项用于第二分区的第二运动矢量构造。
mvB[0]=mvLXN[0]
mvB[1]=mvLX[1]
refIdxB=refIdxLXN
predListFlagB=X
其中mvB为mv矢量,refIdxB为该运动矢量对应的参考帧,predListFlagB表示当前选用了该运动矢量备选项的哪个list中的分量。
上述列表也可以由一项组成:
mergeGPMCandMapList[i]=j<<1+X
对应的第三步中从其中取出数据的时候就可以如下进行:
令M=mergeCandList[mergeGPMCandMapList[m]]>>1],X=mergeGPMCandMapList[m]&0x01,…
令N=mergeCandList[mergeGPMCandMapList[n]>>1],X=mergeGPMCandMapList[n]&0x01,…
其中的&为位与操作,&0x01即取出最后一个比特的意思。
需要说明的是,在本申请实施例中,解码器以跳过融合运动信息候选列表中不可用的运动矢量的方式构造GPM运动信息候选列表的过程中,如果建立的GPM运动信息候选列表是直接包括运动矢量的列表,具体实现方式如以下:
对i=0~MaxNumGpmMergeCand-1,j=0~MaxNumMergeCand-1实施以下操作:
令X=0,检验merge列表的LXm是否可用,可用则将相应运动矢量信息存入mergeGPMCandMapListi。
令M=mergeCandList[i]
gpmMergeCandList[i].mv[0]=mvLXM[0]
gpmMergeCandList[i].mv[1]=mvLXM[1]
gpmMergeCandList[i].refIdx=refIdxLXM
gpmMergeCandList[i].predListFlag=X
i=i+1.
若i<MaxNumGpmMergeCand-1,再令X=1,检验merge列表的LXm是否可用,可用则将相应运动矢量信息存 入mergeGPMCandMapListi。
令M=mergeCandList[i]
gpmMergeCandList[i].mv[0]=mvLXM[0]
gpmMergeCandList[i].mv[1]=mvLXM[1]
gpmMergeCandList[i].refIdx=refIdxLXM
gpmMergeCandList[i].predListFlag=X
i=i+1.j=j+1.
需要说明的是,在本申请实施例中,gpmMergeCandList为GPM运动信息候选列表(存有具体运动矢量的列表)。
该过程的一个例子如图12所示。
merge_gpm_idx0[x0][y0],表示第一分区的第一运动矢量在GPM运动信息候选列表中的位置,令
m=merge_gpm_idx0[xCb][yCb],等待后续处理。
merge_gpm_idx1[x0][y0],代表第二分区的第二运动矢量在GPM运动信息候选列表中的位置,第二分区的第二运动矢量在GPM运动信息候选列表中的位置可能因为第一分区先选去了靠前位置的选项,而减小1。
令n=merge_gpm_idx1[xCb][yCb]+(merge_gpm_idx1[xCb][yCb]>=m)?1:0,n表示的就是第二分区选择的第二运动是矢量在gpm merge候选列表中的实际位置,等待后续处理。
如图12所示例子,加入序号0的list0对应的运动矢量,加入序号1的是1位置list0对应的运动矢量,加入序号2的是1位置list1对应的运动矢量,等等。m和n对应的是图中右侧黑色的序号。
令X=gpmMergeCandList[m].predListFlag,从GPM运动信息候选列表中取出第m项用于第一分区的第一运动矢量构造。将相应第一运动矢量信息存入给第一分区的处理变量,准备后续的预测块构造。
mvA[0]=gpmMergeCandList[m].mv[0]
mvA[1]=gpmMergeCandList[m].mv[1]
refIdxA=gpmMergeCandList[m].refIdx
predListFlagA=X
其中mvA为mv矢量,refIdxA为该运动矢量对应的参考帧,predListFlagA表示当前选用了该运动矢量备选项的哪个list中的分量。
令X=gpmMergeCandList[n],从merge列表中取出第n项用于第二分区的第二运动矢量构造。
mvB[0]=gpmMergeCandList[n].mv[0]
mvB[1]=gpmMergeCandList[n].mv[1]
refIdxB=gpmMergeCandList[n].refIdx
predListFlagB=X
其中mvB为mv矢量,refIdxB为该运动矢量对应的参考帧,predListFlagB表示当前选用了该运动矢量备选项的哪个list中的分量。
需要说明的是,如果不构造GPM运动信息候选列表(映射表或直接包括运动矢量的列表),就需要取到m和n后,按照序号由小到大,每项内部先list0后list1的顺序从融合运动信息候选列表中数出第m个可用运动矢量,并将其存入第一分区对应的运动信息;再按照序号由小到大,每项内部先list0后list1的顺序从融合运动信息候选列表中数出第n个可用运动矢量,并将其存入第二分区对应的运动信息。
需要说明的是,上述过程是从解码端角度来说明的。在编码端,是通过在各种语法选择的组合进行性能比较,最终选择一组合适的参数(GPM模式、两个分区分别选用的GPM候选序号m、n)写入码流,其中,当第一分区已经选择某个运动矢量之后,第二分区选择运动矢量时,其序号为去掉第一分区已经选择的第一运动矢量之后的列表序号。即,在写入码流时,假设第一分区选择第m个运动矢量,第二分区选择第n个运动矢量,有
merge_gpm_idx0[xCb][yCb]=m
merge_gpm_idx1[xCb][yCb]=n-(merge_gpm_idx1[xCb][yCb]>=m)?1:0
具体的,在本申请实施例中,解码器按照所述运动候选信息在融合运动信息候选列表中的排列顺序,使用运动候选信息包括的运动矢量构造待填充运动信息候选列表,生成GPM运动信息候选列表,包括:在待填充运动信息候选列表中,包括的运动矢量的项数达到预设项数时,确定待填充运动信息候选列表为GPM运动信息候选列表。
需要说明的是,在本申请实施例中,解码器从码流中解析出的当前块的预测模式参数中,包括第一运动矢量对应的第一位置信息,以及第二运动矢量对应的第二位置信息。解码器根据第一位置信息即可从GPM运动信息候选列表中查找出第一运动矢量,根据第二位置信息即可从GPM运动信息候选列表中查找出第二运动矢量。
具体的,在本申请实施例中,解码器利用第一运动矢量和第二运动矢量,确定当前块的帧间预测值,包括:利用第一运动矢量确定第一分区对应的第一预测值;利用第二运动矢量确定第二分区对应的第二预测值;利用第一预测值和第二预测值对当前块进行GPM帧间预测,得到当前块的帧间预测值。
具体的,在本申请实施例中,解码器当预测模式参数指示使用几何划分预测模式GPM确定当前块的帧间预测时,获取当前块对应的融合运动信息候选列表之后,还包括:针对第一分区和第二分区,生成融合运动候选信息包括的运动矢量为可用运动矢量的指示信息。
具体的,在本申请实施例中,编码器按照运动候选信息在融合运动信息候选列表中的排列顺序,使用运动候选信息包括的运动矢量构造待填充运动信息候选列表,生成GPM运动信息候选列表之前,方法还包括:获取融合运动信息候选列表对应的第一长度,以及序列层参数集语法值;计算第一长度与序列层参数集语法值之差的二倍,得到GPM运动信息候选列表对应的第二长度。
具体的,在本申请实施例中,运动矢量按照运动矢量运动候选信息在运动矢量融合运动信息候选列表中的排列顺序,使用运动矢量运动候选信息包括的运动矢量构造待填充运动信息候选列表,生成GPM运动信息候选列表之前,运动矢量方法还包括:获取运动矢量融合运动信息候选列表中,不可用于构造运动矢量待填充运动信息候选列表的 运动矢量的数量,确定为序列层参数集语法值。
需要说明的是,在本申请实施例中,解码器与编码器进行运动信息候选列表的构建和帧间预测的过程类似,在此不再赘述。
本申请实施例提供了一种帧间预测方法,应用于解码器中,包括:解析码流,确定当前块的预测模式参数;当预测模式参数指示使用几何划分预测模式GPM确定当前块的帧间预测值时,获取当前块对应的融合运动信息候选列表;融合运动信息候选列表包括用于确定当前块进帧间预测值的一项或多项运动候选信息,其中,运动候选信息包括一个或两个运动矢量;按照运动候选信息在融合运动信息候选列表中的排列顺序,使用运动候选信息构造待填充运动信息候选列表,生成GPM运动信息候选列表;根据当前块的预测模式参数,确定当前块中第一分区对应的第一运动矢量,以及当前块中第二分区对应的第二运动矢量;利用第一运动矢量和第二运动矢量,确定当前块的帧间预测值。本申请实施例提供的技术方案,将融合运动信息候选列表的一个运动矢量作为一项,按照在融合运动信息候选列表中的先后顺序,使用运动矢量构造GPM运动信息候选列表,提高了GPM运动信息候选列表的可靠性,从而提高了帧间预测性能和编码性能。
如图13所示,本申请实施例提供一种编码器1,包括:
第一确定单元10,用于确定当前块的预测模式参数;
第一获取单元11,用于当所述预测模式参数指示使用几何划分预测模式GPM确定所述当前块的帧间预测值时,获取所述当前块对应的融合运动信息候选列表;所述融合运动信息候选列表包括用于确定所述当前块帧间预测值的一项或多项运动候选信息,其中,运动候选信息包括一个或两个运动矢量;
所述第一生成单元12,用于按照所述运动候选信息在所述融合运动信息候选列表中的排列顺序,使用所述运动候选信息包括的运动矢量构造待填充运动信息候选列表,生成GPM运动信息候选列表,其中,所述GPM运动信息候选列表中的运动候选信息包括一个运动矢量;
第一选取单元13,用于从所述GPM运动信息候选列表中,选取所述当前块中第一分区对应的第一运动矢量,以及所述当前块中第二分区对应的第二运动矢量;
第一预测单元14,用于利用所述第一运动矢量和所述第二运动矢量,确定所述当前块的帧间预测值。
在本申请的一些实施例中,所述第一获取单元11,用于获取所述当前块对应的多个参考块;获取参考块在一个或两个预设方向上的运动矢量,得到所述运动候选信息;按照预设排列方式,对所述多项运动候选信息进行排列,得到所述融合运动信息候选列表。
在本申请的一些实施例中,所述第一生成单元12,用于在按照目标运动矢量按照在所述融合运动信息候选列表中的排列顺序,使用所述目标运动矢量构造待填充运动信息候选列表时,判断所述目标运动矢量是否可用;所述目标运动矢量为所述运动候选信息中任意一个运动矢量;在所述目标运动矢量不可用的情况下,跳过使用所述目标运动矢量构造所述待填充运动信息候选列表;使用进行所述融合运动信息候选列表中,排列顺序在所述目标运动矢量之后的下一个运动矢量继续对所述待填充运动信息候选列表进行构造。
在本申请的一些实施例中,所述第一生成单元12,用于在所述待填充运动信息候选列表中,包括的运动矢量的项数达到预设项数时,确定所述待填充运动信息候选列表为所述GPM运动信息候选列表。
在本申请的一些实施例中,所述第一选取单元13,用于获取所述第一分区和所述第二分区对应的运动矢量选取顺序;按照所述运动矢量选取顺序,从所述GPM运动信息候选列表中选取所述第一运动矢量和所述第二运动矢量。
在本申请的一些实施例中,所述第一选取单元13,用于在所述运动矢量选取顺序为所述第一分区优先于所述第二分区的情况下,从所述GPM运动信息候选列表中选取所述第一运动矢量;从所述GPM运动信息候选列表中,获取与所述第一运动矢量属于所述多项运动候选信息中同一项运动候选信息的运动矢量,确定为不可选运动矢量;从所述GPM运动信息候选列表中,与所述第一运动矢量和所述不可选运动矢量中不同的运动矢量中选取所述第二运动矢量。
在本申请的一些实施例中,所述第一选取单元13,用于在所述运动矢量选取顺序为所述第二分区优先于所述第一分区的情况下,从所述GPM运动信息候选列表中选取所述第二运动矢量;从所述GPM运动信息候选列表中,获取与所述第二运动矢量属于所述多项运动候选信息中同一项运动候选信息的运动矢量,确定为不可选运动矢量;从所述GPM运动信息候选列表中,与所述第二运动矢量和所述不可选运动矢量中不同的运动矢量中选取所述第一运动矢量。
在本申请的一些实施例中,所述第一预测单元14,用于利用所述第一运动矢量确定所述第一分区对应的第一预测值;利用所述第二运动矢量确定所述第二分区对应的第二预测值;利用所述第一预测值和所述第二预测值对所述当前块进行GPM帧间预测,得到所述当前块的帧间预测值。
在本申请的一些实施例中,编码器1还包括写入单元15(图中未示出),
所述第一获取单元11,还用于从所述GPM运动信息候选列表中,获取所述第一运动矢量对应的第一位置信息,以及所述第二运动矢量对应的第二位置信息;
所述写入单元15,用于将所述第一位置信息和所述第二位置信息写入码流。
在本申请的一些实施例中,所述第一生成单元12,还用于针对所述第一分区和所述第二分区,生成所述融合运动信息候选列表包括的运动矢量为可用运动矢量的指示信息。
在本申请的一些实施例中,所述第一确定单元10,还用于获取所述融合运动信息候选列表对应的第一长度,以及序列层参数集语法值;计算所述第一长度与所述序列层参数集语法值之差的二倍,得到所述GPM运动信息候选列表对应的第二长度。
在本申请的一些实施例中,所述第一确定单元10,还用于获取所述融合运动信息候选列表中,不可用于构造所 述待填充运动信息候选列表的运动矢量的数量,确定为序列层参数集语法值。
在实际应用中,如图14所示,本申请实施例还提供了一种编码器1,包括:
第一存储器16和第一处理器17;
所述第一存储器16存储有可在第一处理器17上运行的计算机程序,所述第一处理器17执行所述程序时编码器侧的帧间预测方法。
本申请实施例提供了一种编码器,确定当前块的预测模式参数;当预测模式参数指示使用几何划分预测模式GPM确定当前块的帧间预测值时,获取当前块对应的融合运动信息候选列表;融合运动信息候选列表包括用于确定当前块帧间预测值的一项或多项运动候选信息,其中,运动候选信息包括一个或两个运动矢量;按照运动候选信息在融合运动信息候选列表中的排列顺序,使用运动候选信息构造待填充运动信息候选列表,生成GPM运动信息候选列表;其中,GPM运动信息候选列表中的运动候选信息包括一个运动矢量;从GPM运动信息候选列表中,选取当前块中第一分区对应的第一运动矢量,以及当前块中第二分区对应的第二运动矢量;利用第一运动矢量和第二运动矢量,确定当前块的帧间预测值。本申请实施例提供的编码器,将融合运动信息候选列表的一个运动矢量作为一项,按照在融合运动信息候选列表中的先后顺序,使用运动矢量构造GPM运动信息候选列表,提高了GPM运动信息候选列表的可靠性,从而提高了帧间预测性能和编码性能。
如图15所示,本申请实施例提供一种解码器2,包括:
解析单元20,用于解析码流,确定当前块的预测模式参数;
第二获取单元21,用于当所述预测模式参数指示使用几何划分预测模式GPM确定所述当前块的帧间预测时,获取所述当前块对应的融合运动信息候选列表;所述融合运动信息候选列表包括用于确定所述当前块帧间预测值的一项或多项运动候选信息,运动候选信息包括一个或两个运动矢量;
第二生成单元22,用于按照所述运动候选信息在所述融合运动信息候选列表中的排列顺序,使用所述运动候选信息包括的运动矢量构造待填充运动信息候选列表,生成GPM运动信息候选列表,其中,所述GPM运动信息候选列表中的运动候选信息包括一个运动矢量;
第二确定单元23,用于根据所述当前块的预测模式参数,从所述GPM运动信息候选列表中,,确定所述当前块中第一分区对应的第一运动矢量,以及所述当前块中第二分区对应的第二运动矢量;
第二预测单元24,用于利用所述第一运动矢量和所述第二运动矢量,确定所述当前块的帧间预测值。
在本申请的一些实施例中,所述第二获取单元21,用于获取所述当前块对应的一个或多个参考块;获取所述参考块在一个或两个预设方向上的运动矢量,得到所述运动候选信息;按照预设排列方式,对所述运动候选信息进行排列,得到所述融合运动信息候选列表。
在本申请的一些实施例中,所述第二生成单元22,用于在按照目标运动矢量在所述融合运动信息候选列表中的排列顺序,使用所述目标运动矢量构造待填充运动信息候选列表时,判断所述目标运动矢量是否可用;所述目标运动矢量为所述运动候选信息中任意一个运动矢量;在所述目标运动矢量不可用的情况下,跳过使用所述目标运动矢量构造所述待填充运动信息候选列表;使用所述融合运动信息候选列表中,排列顺序在所述目标运动矢量之后的下一个运动矢量继续对所述待填充运动信息候选列表进行构造。
在本申请的一些实施例中,所述第二生成单元22,用于在所述待填充运动信息候选列表中,包括的运动矢量的项数达到预设项数时,确定所述待填充运动信息候选列表为所述GPM运动信息候选列表。
在本申请的一些实施例中,所述第二预测单元23,用于利用所述第一运动矢量确定所述第一分区对应的第一预测值;利用所述第二运动矢量确定所述第二分区对应的第二预测值;利用所述第一预测值和所述第二预测值对所述当前块进行GPM帧间预测,得到所述当前块的帧间预测值。
在本申请的一些实施例中,所述第二生成单元22,还用于针对所述第一分区和所述第二分区,生成所述融合运动信息候选列表包括的运动矢量为可用运动矢量的指示信息。
在本申请的一些实施例中,所述第二确定单元23,还用于获取所述融合运动信息候选列表对应的第一长度,以及序列层参数集语法值;计算所述第一长度与所述序列层参数集语法值之差的二倍,得到GPM运动候选信息列表对应的第二长度。
在本申请的一些实施例中,所述第二确定单元23,还用于获取所述融合运动信息候选列表中,不可用于构造所述待填充运动信息候选列表的运动矢量的数量,确定为序列层参数集语法值。
在实际应用中,如图16所示,本申请实施例还提供了一种解码器2,包括:
第二存储器25和第二处理器26;
所述第二存储器25存储有可在第二处理器26上运行的计算机程序,所述第二处理器26执行所述程序时解码器侧的帧间预测方法。
本申请实施例提供了一种解码器,解析码流,确定当前块的预测模式参数;当预测模式参数指示使用几何划分预测模式GPM确定当前块的帧间预测值时,获取当前块对应的融合运动信息候选列表;融合运动信息候选列表包括用于确定当前块帧间预测值的一项或多项运动候选信息,其中,运动候选信息包括一个或两个运动矢量;按照运动候选信息在融合运动信息候选列表中的排列顺序,使用运动候选信息包括的运动矢量构造待填充运动信息候选列表,生成GPM运动信息候选列表;其中,GPM运动信息候选列表中的运动候选信息包括一个运动矢量;根据当前块的预测模式参数,从GPM运动信息候选列表中,确定当前块中第一分区对应的第一运动矢量,以及当前块中第二分区对应的第二运动矢量;利用第一运动矢量和第二运动矢量,确定当前块的帧间预测值。本申请实施例提供的解码器,将融合运动信息候选列表的一个运动矢量作为一项,按照在融合运动信息候选列表中的先后顺序,使用运动矢量构造GPM运动信息候选列表,提高了GPM运动信息候选列表的可靠性,从而提高了帧间预测性能和编码性能。
相应的,本申请实施例提供了一种存储介质,其上存储有计算机程序,该计算机程序被第一处理器执行时,实现编码器的帧间预测方法;或者,该计算机程序被第二处理器执行时,实现解码器的帧间预测方法。
这里需要指出的是:以上存储介质和装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质和装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
工业实用性
本申请实施例中,在进行帧间预测的过程中,将融合运动信息候选列表的一个运动矢量作为一项,按照在融合运动信息候选列表中的先后顺序,使用运动矢量构造GPM运动信息候选列表,提高了GPM运动信息候选列表的可靠性,从而提高了帧间预测性能和编码性能。

Claims (25)

  1. 一种帧间预测方法,其特征在于,应用于编码器中,包括:
    确定当前块的预测模式参数;
    当所述预测模式参数指示使用几何划分预测模式GPM确定所述当前块的帧间预测值时,获取所述当前块对应的融合运动信息候选列表;所述融合运动信息候选列表包括用于确定所述当前块的帧间预测值的一项或多项运动候选信息,其中,所述运动候选信息包括一个或两个运动矢量;
    按照所述运动候选信息在所述融合运动信息候选列表中的排列顺序,使用所述运动候选信息包括的运动矢量构造待填充运动信息候选列表,生成GPM运动信息候选列表,其中,所述GPM运动信息候选列表中的运动候选信息包括一个运动矢量;
    从所述GPM运动信息候选列表中,选取所述当前块中第一分区对应的第一运动矢量,以及所述当前块中第二分区对应的第二运动矢量;
    利用所述第一运动矢量和所述第二运动矢量,确定所述当前块的帧间预测值。
  2. 根据权利要求1所述的方法,其特征在于,所述获取所述当前块对应的融合运动信息候选列表,包括:
    获取所述当前块对应的一个或多个参考块;
    获取所述参考块在一个或两个预设方向上的运动矢量,得到所述运动候选信息;
    按照预设排列方式,对所述运动候选信息进行排列,得到所述融合运动信息候选列表。
  3. 根据权利要求1所述的方法,其特征在于,所述按照所述运动候选信息在所述融合运动信息候选列表中的排列顺序,使用所述运动候选信息包括的运动矢量构造待填充运动信息候选列表,生成GPM运动信息候选列表,包括:
    在按照目标运动矢量在所述融合运动信息候选列表中的排列顺序,使用所述目标运动矢量构造所述待填充运动信息候选列表时,判断所述目标运动矢量是否可用;所述目标运动矢量为所述运动候选信息中任意一个运动矢量;
    在所述目标运动矢量不可用的情况下,跳过使用所述目标运动矢量构造所述待填充运动信息候选列表;
    使用所述融合运动信息候选列表中,排列顺序在所述目标运动矢量之后的下一个运动矢量继续对所述待填充运动信息候选列表进行构造。
  4. 根据权利要求1所述的方法,其特征在于,所述按照所述运动候选信息在所述融合运动信息候选列表中的排列顺序,使用所述运动候选信息包括的运动矢量构造待填充运动信息候选列表,生成GPM运动信息候选列表,包括:
    在所述待填充运动信息候选列表中,包括的运动矢量的项数达到预设项数时,确定所述待填充运动信息候选列表为所述GPM运动信息候选列表。
  5. 根据权利要求1所述的方法,其特征在于,所述从所述GPM运动信息候选列表中,选取所述当前块中第一分区对应的第一运动矢量,以及所述当前块中第二分区对应的第二运动矢量,包括:
    获取所述第一分区和所述第二分区对应的运动矢量选取顺序;
    按照所述运动矢量选取顺序,从所述GPM运动信息候选列表中选取所述第一运动矢量和所述第二运动矢量。
  6. 根据权利要求5所述的方法,其特征在于,所述按照所述运动矢量选取顺序,从所述GPM运动信息候选列表中选取所述第一运动矢量和所述第二运动矢量,包括:
    在所述运动矢量选取顺序为所述第一分区优先于所述第二分区的情况下,从所述GPM运动信息候选列表中选取所述第一运动矢量;
    从所述GPM运动信息候选列表中,获取所述第一运动矢量属于所述多项运动候选信息中同一项运动候选信息的运动矢量,确定为不可选运动矢量;
    从所述GPM运动信息候选列表中,与所述第一运动矢量和所述不可选运动矢量中不同的运动矢量中选取所述第二运动矢量。
  7. 根据权利要求5所述的方法,其特征在于,所述按照所述运动矢量选取顺序,从所述GPM运动信息候选列表中选取所述第一运动矢量和所述第二运动矢量,包括:
    在所述运动矢量选取顺序为所述第二分区优先于所述第一分区的情况下,从所述GPM运动信息候选列表中选取所述第二运动矢量;
    从所述GPM运动信息候选列表中,获取与所述第二运动矢量属于同一项运动候选信息的运动矢量,确定为不可选运动矢量;
    从所述GPM运动信息候选列表中,与所述第二运动矢量和所述不可选运动矢量中不同的运动矢量中选取所述第一运动矢量。
  8. 根据权利要求1-7任一项所述的方法,其特征在于,所述利用所述第一运动矢量和所述第二运动矢量,确定所述当前块的帧间预测值,包括:
    利用所述第一运动矢量确定所述第一分区对应的第一预测值;
    利用所述第二运动矢量确定所述第二分区对应的第二预测值;
    利用所述第一预测值和所述第二预测值对所述当前块进行GPM帧间预测,得到所述当前块的帧间预测值。
  9. 根据权利要求1所述的方法,其特征在于,所述利用所述第一运动矢量和所述第二运动矢量,确定所述当前块的帧间预测值之后,所述方法还包括:
    从所述GPM运动信息候选列表中,获取所述第一运动矢量对应的第一位置信息,以及所述第二运动矢量对应的第二位置信息;
    将所述第一位置信息和所述第二位置信息写入码流。
  10. 根据权利要求1所述的方法,其特征在于,所述当所述预测模式参数指示使用几何划分预测模式GPM确定所述当前块的帧间预测值时,获取所述当前块对应的融合运动信息候选列表之后,所述方法还包括:
    针对所述第一分区和所述第二分区,生成所述融合运动信息候选列表包括的运动矢量为可用运动矢量的指示信息。
  11. 根据权利要求1所述的方法,其特征在于,所述按照所述运动候选信息在所述融合运动信息候选列表中的排列顺序,使用所述运动候选信息包括的运动矢量构造待填充运动信息候选列表,生成GPM运动信息候选列表之前,所述方法还包括:
    获取所述融合运动信息候选列表对应的第一长度,以及序列层参数集语法值;
    计算所述第一长度与所述序列层参数集语法值之差的二倍,得到所述GPM运动信息候选列表对应的第二长度。
  12. 根据权利要求1所述的方法,其特征在于,所述按照所述运动候选信息在所述融合运动信息候选列表中的排列顺序,使用所述运动候选信息包括的运动矢量构造待填充运动信息候选列表,生成GPM运动信息候选列表之前,所述方法还包括:
    获取所述融合运动信息候选列表中,不可用于构造所述待填充运动信息候选列表的运动矢量的数量,确定为序列层参数集语法值。
  13. 一种帧间预测方法,其特征在于,应用于解码器中,包括:
    解析码流,确定当前块的预测模式参数;
    当所述预测模式参数指示使用几何划分预测模式GPM确定所述当前块的帧间预测值时,获取所述当前块对应的融合运动信息候选列表;所述融合运动信息候选列表包括用于确定所述当前块的帧间预测值的一项或多项运动候选信息,其中,所述运动候选信息包括一个或两个运动矢量;
    按照所述运动候选信息在所述融合运动信息候选列表中的排列顺序,使用所述运动候选信息包括的运动矢量构造待填充运动信息候选列表,生成GPM运动信息候选列表,其中,所述GPM运动信息候选列表中的运动候选信息包括一个运动矢量;
    根据所述当前块的预测模式参数,从所述GPM运动信息候选列表中,确定所述当前块中第一分区对应的第一运动矢量,以及所述当前块中第二分区对应的第二运动矢量;
    利用所述第一运动矢量和所述第二运动矢量,确定所述当前块的帧间预测值。
  14. 根据权利要求13所述的方法,其特征在于,所述获取所述当前块对应的融合运动信息候选列表,包括:
    获取所述当前块对应的一个或多个参考块;
    获取所述参考块在一个或两个预设方向上的运动矢量,得到所述运动候选信息;
    按照预设排列方式,对所述运动候选信息进行排列,得到所述融合运动信息候选列表。
  15. 根据权利要求13所述的方法,其特征在于,所述按照所述运动候选信息在所述融合运动信息候选列表中的排列顺序,使用所述运动候选信息包括的运动矢量构造待填充运动信息候选列表,生成GPM运动信息候选列表,包括:
    在按照目标运动矢量在所述融合运动信息候选列表中的排列顺序,使用所述目标运动矢量构造所述待填充运动信息候选列表时,判断所述目标运动矢量是否可用;所述目标运动矢量为所述运动候选信息中任意一个运动矢量;
    在所述目标运动矢量不可用的情况下,跳过使用所述目标运动矢量构造所述待填充运动信息候选列表;
    使用所述融合运动信息候选列表中,排列顺序在所述目标运动矢量之后的下一个运动矢量继续对所述待填充运动信息候选列表进行构造。
  16. 根据权利要求13所述的方法,其特征在于,所述按照所述运动候选信息在所述融合运动信息候选列表中的排列顺序,使用所述运动候选信息包括的运动矢量构造待填充运动信息候选列表,生成GPM运动信息候选列表,包括:
    在所述待填充运动信息候选列表中,包括的运动矢量的项数达到预设项数时,确定所述待填充运动信息候选列表为所述GPM运动信息候选列表。
  17. 根据权利要求13-16任一项所述的方法,其特征在于,所述利用所述第一运动矢量和所述第二运动矢量,确定所述当前块的帧间预测值,包括:
    利用所述第一运动矢量确定所述第一分区对应的第一预测值;
    利用所述第二运动矢量确定所述第二分区对应的第二预测值;
    利用所述第一预测值和所述第二预测值对所述当前块进行GPM帧间预测,得到所述当前块的帧间预测值。
  18. 根据权利要求13所述的方法,其特征在于,所述当所述预测模式参数指示使用几何划分预测模式GPM确定所述当前块的帧间预测值时,获取所述当前块对应的融合运动信息候选列表之后,所述方法还包括:
    针对所述第一分区和所述第二分区,生成所述融合运动信息候选列表包括的运动矢量为可用运动矢量的指示信息。
  19. 根据权利要求13所述的方法,其特征在于,所述按照所述运动候选信息在所述融合运动信息候选列表中的排列顺序,使用所述运动候选信息包括的运动矢量构造待填充运动信息候选列表,生成GPM运动信息候选列表之前,所述方法还包括:
    获取所述融合运动信息候选列表对应的第一长度,以及序列层参数集语法值;
    计算所述第一长度与所述序列层参数集语法值之差的二倍,得到所述GPM运动信息后列表对应的第二长度。
  20. 根据权利要求13所述的方法,其特征在于,所述按照所述运动候选信息在所述融合运动信息候选列表中的排列顺序,使用所述运动候选信息包括的运动矢量构造待填充运动信息候选列表,生成GPM运动信息候选列表之前,所述方法还包括:
    获取所述融合运动信息候选列表中,不可用于构造所述待填充运动信息候选列表的运动矢量的数量,确定为序列层参数集语法值。
  21. 一种编码器,其特征在于,包括:
    第一确定单元,用于确定当前块的预测模式参数;
    第一获取单元,用于当所述预测模式参数指示使用几何划分预测模式GPM确定所述当前块的帧间预测值时,获取所述当前块对应的融合运动信息候选列表;所述融合运动信息候选列表包括用于确定所述当前块的帧间预测值的一项或多项运动候选信息,其中,所述运动候选信息包括一个或两个运动矢量;
    第一生成单元,用于按照所述运动候选信息在所述融合运动信息候选列表中的排列顺序,使用所述运动候选信息包括的运动矢量构造待填充运动信息候选列表,生成GPM运动信息候选列表,其中,所述GPM运动信息候选列表中的运动候选信息包括一个运动矢量;
    第一选取单元,用于从所述GPM运动信息候选列表中,选取所述当前块中第一分区对应的第一运动矢量,以及所述当前块中第二分区对应的第二运动矢量;
    第一预测单元,用于利用所述第一运动矢量和所述第二运动矢量,确定所述当前块的帧间预测值。
  22. 一种解码器,其特征在于,包括:
    解析单元,用于解析码流,确定当前块的预测模式参数;
    第二获取单元,用于当所述预测模式参数指示使用几何划分预测模式GPM确定所述当前块的帧间预测值时,获取所述当前块对应的融合运动信息候选列表;所述融合运动信息候选列表包括用于确定所述当前块的帧间预测值的一项或多项运动候选信息,其中,所述运动候选信息包括一个或两个运动矢量;
    第二生成单元,用于按照所述运动候选信息在所述融合运动信息候选列表中的排列顺序,使用所述运动候选信息包括的运动矢量构造待填充运动信息候选列表,生成GPM运动信息候选列表,其中,所述GPM运动信息候选列表中的运动候选信息包括一个运动矢量;
    第二确定单元,用于根据所述当前块的预测模式参数,从所述GPM运动信息候选列表中,确定所述当前块中第一分区对应的第一运动矢量,以及所述当前块中第二分区对应的第二运动矢量;
    第二预测单元,用于利用所述第一运动矢量和所述第二运动矢量,确定所述当前块的帧间预测值。
  23. 一种编码器,其特征在于,包括:
    第一存储器和第一处理器;
    所述第一存储器存储有可在第一处理器上运行的计算机程序,所述第一处理器执行所述程序时实现权利要求1-12任一项所述帧间预测方法。
  24. 一种解码器,其特征在于,包括:
    第二存储器和第二处理器;
    所述第二存储器存储有可在第二处理器上运行的计算机程序,所述第二处理器执行所述程序时实现权利要求13-20任一项所述帧间预测方法。
  25. 一种存储介质,其特征在于,其上存储有计算机程序,该计算机程序被第一处理器执行时,实现权利要求1-12任一项所述帧间预测方法;或者,该计算机程序被第二处理器执行时,实现权利要求13-20任一项所述帧间预测方法。
PCT/CN2020/083342 2020-04-03 2020-04-03 一种帧间预测方法、编码器、解码器及存储介质 WO2021196220A1 (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
PCT/CN2020/083342 WO2021196220A1 (zh) 2020-04-03 2020-04-03 一种帧间预测方法、编码器、解码器及存储介质
CN202080098827.4A CN115315953A (zh) 2020-04-03 2020-04-03 一种帧间预测方法、编码器、解码器及存储介质
EP20929510.4A EP4131958A4 (en) 2020-04-03 2020-04-03 INTERFRAME PREDICTION METHOD, ENCODER, DECODER AND STORAGE MEDIUM
TW110109411A TW202139700A (zh) 2020-04-03 2021-03-16 一種幀間預測方法、編碼器、解碼器及儲存媒介
US17/935,441 US20230042640A1 (en) 2020-04-03 2022-09-26 Inter prediction method, encoder, decoder, and storage medium

Applications Claiming Priority (1)

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

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/935,441 Continuation US20230042640A1 (en) 2020-04-03 2022-09-26 Inter prediction method, encoder, decoder, and storage medium

Publications (1)

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

Family

ID=77927578

Family Applications (1)

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

Country Status (5)

Country Link
US (1) US20230042640A1 (zh)
EP (1) EP4131958A4 (zh)
CN (1) CN115315953A (zh)
TW (1) TW202139700A (zh)
WO (1) WO2021196220A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023141338A1 (en) * 2022-01-21 2023-07-27 Beijing Dajia Internet Information Technology Co., Ltd. Methods and devices for geometric partitioning mode with split modes reordering
WO2023246868A1 (en) * 2022-06-21 2023-12-28 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102484706A (zh) * 2009-06-26 2012-05-30 汤姆森特许公司 使用自适应几何划分进行视频编码和解码的方法及装置
US20180103273A1 (en) * 2011-01-10 2018-04-12 Qualcomm Incorporated Identification of samples in a transition zone
WO2019246535A1 (en) * 2018-06-22 2019-12-26 Op Solutions, Llc Block level geometric partitioning

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102484706A (zh) * 2009-06-26 2012-05-30 汤姆森特许公司 使用自适应几何划分进行视频编码和解码的方法及装置
US20180103273A1 (en) * 2011-01-10 2018-04-12 Qualcomm Incorporated Identification of samples in a transition zone
WO2019246535A1 (en) * 2018-06-22 2019-12-26 Op Solutions, Llc Block level geometric partitioning

Non-Patent Citations (6)

* 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 ), no. JVET-N0269, 13 March 2019 (2019-03-13), XP030202936 *
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", 125. MPEG MEETING; 20190114 - 20190118; MARRAKECH; (MOTION PICTURE EXPERT GROUP OR ISO/IEC JTC1/SC29/WG11), no. m45537, 3 January 2019 (2019-01-03), XP030198082 *
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 ; m48614, 27 June 2019 (2019-06-27), XP030219715 *
See also references of EP4131958A4 *
T. SOLOVYEV (HUAWEI), S. ESENLIK (HUAWEI), S. IKONIN (HUAWEI), J. CHEN (HUAWEI): "CE4-related: Simplification for merge list derivation in triangular prediction mode on top of test CE4-4.6.b", 14. JVET MEETING; 20190319 - 20190327; GENEVA; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ), no. JVET-N0499, 13 March 2019 (2019-03-13), XP030254992 *
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 ), no. JVET-N0340, 13 March 2019 (2019-03-13), XP030202984 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023141338A1 (en) * 2022-01-21 2023-07-27 Beijing Dajia Internet Information Technology Co., Ltd. Methods and devices for geometric partitioning mode with split modes reordering
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
TW202139700A (zh) 2021-10-16
CN115315953A (zh) 2022-11-08
US20230042640A1 (en) 2023-02-09
EP4131958A1 (en) 2023-02-08
EP4131958A4 (en) 2023-04-26

Similar Documents

Publication Publication Date Title
RU2683495C1 (ru) Нововведения в предсказание блочных векторов и оценку восстановленных значений отсчетов в области перекрытия
KR20190032396A (ko) 지오메트리 변환-기반 적응적 루프 필터링
JP7253564B2 (ja) パディングのためのイントラ予測モードを選択する装置
JP6308449B2 (ja) 高効率ビデオ符号化における演算負荷を低減するための方法および装置
WO2021196235A1 (zh) 帧间预测方法、编码器、解码器及存储介质
US20230042640A1 (en) Inter prediction method, encoder, decoder, and storage medium
KR20210103573A (ko) 크로마 블록 예측 방법 및 디바이스
WO2021196242A1 (zh) 一种帧间预测方法、编码器、解码器及存储介质
WO2021203841A1 (zh) 一种帧间预测方法、编码器、解码器及存储介质
JP2021536710A (ja) ビデオ復号化方法及びビデオ・デコーダ
CN110832854B (zh) 利用插值进行帧内预测的方法和装置
EP3818713A1 (en) Apparatus for block-based predictive video decoding
KR20210095945A (ko) 비디오 픽처 디코딩 및 인코딩 방법 및 장치
WO2021238396A1 (zh) 帧间预测方法、编码器、解码器以及计算机存储介质
KR20220046707A (ko) 광 흐름에 의한 예측 개선, 양방향 광 흐름 및 디코더 측 움직임 벡터 개선을 위한 방법들 및 장치들
US20230045687A1 (en) Inter Prediction Method, Encoder, Decoder, and Storage Medium
JP2023073286A (ja) イントラ予測のためのデバイスおよび方法
CN114175653B (zh) 用于视频编解码中的无损编解码模式的方法和装置
WO2021134627A1 (zh) 一种帧间预测方法、编码器、解码器及存储介质
JP2023546731A (ja) 参照画像再サンプリング(rpr)によるルマ及びクロマのための適応アップサンプリングフィルタ
WO2023283244A1 (en) Improvements on temporal motion vector prediction
WO2023154574A1 (en) Methods and devices for geometric partitioning mode with adaptive blending
WO2021219416A1 (en) Triangulation-based adaptive subsampling of dense motion vector fields
CN117730535A (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: 20929510

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2020929510

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2020929510

Country of ref document: EP

Effective date: 20221103

NENP Non-entry into the national phase

Ref country code: DE