WO2021238396A1 - 帧间预测方法、编码器、解码器以及计算机存储介质 - Google Patents

帧间预测方法、编码器、解码器以及计算机存储介质 Download PDF

Info

Publication number
WO2021238396A1
WO2021238396A1 PCT/CN2021/084278 CN2021084278W WO2021238396A1 WO 2021238396 A1 WO2021238396 A1 WO 2021238396A1 CN 2021084278 W CN2021084278 W CN 2021084278W WO 2021238396 A1 WO2021238396 A1 WO 2021238396A1
Authority
WO
WIPO (PCT)
Prior art keywords
current block
candidate
motion information
lower right
candidate position
Prior art date
Application number
PCT/CN2021/084278
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 CN202180005705.0A priority Critical patent/CN114651443A/zh
Priority to CN202210679842.9A priority patent/CN115052161A/zh
Priority to MX2022015006A priority patent/MX2022015006A/es
Publication of WO2021238396A1 publication Critical patent/WO2021238396A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/55Motion estimation with spatial constraints, e.g. at image or region borders

Definitions

  • This application relates to the technical field of video coding and decoding, and in particular to an inter-frame prediction method, an encoder, a decoder, and a computer storage medium.
  • inter-frame prediction method can also be used in the coding and decoding process for the current block.
  • inter-frame prediction can include geometric partitioning prediction mode (Geometric Partitioning Mode, GPM) and angle-weighted prediction mode (Angular Weighted Prediction, AWP), etc., by dividing the current block between frames into two non-rectangular partitions ( (Or two blocks) are respectively predicted and then weighted and merged to obtain the predicted value of the current block.
  • GPM geometric Partitioning Mode
  • AWP Angular Weighted Prediction
  • the time domain motion information used is based on the position of the upper left corner of the current block in the specified reference frame To find the corresponding location.
  • some partitions are not clearly adjacent to the relevant positions used when constructing the motion information candidate list, which leads to the correlation between these partitions and these positions when making predictions.
  • the performance is weak, which affects the performance of the codec.
  • This application proposes an inter-frame prediction method, an encoder, a decoder, and a computer storage medium, which can increase the diversity of motion information in the motion information candidate list, thereby improving coding and decoding performance.
  • an embodiment of the present application provides an inter-frame prediction method, which is applied to a decoder, and the method includes:
  • the prediction mode parameter indicates that the preset inter prediction mode is used to determine the inter prediction value of the current block
  • at least one candidate position of the current block is determined; wherein, the candidate position includes at least the internal prediction value of the current block The lower right position and the lower right position outside the current block;
  • an embodiment of the present application provides an inter-frame prediction method, which is applied to an encoder, and the method includes:
  • the prediction mode parameter indicates that the preset inter prediction mode is used to determine the inter prediction value of the current block
  • at least one candidate position of the current block is determined; wherein, the candidate position includes at least the internal prediction value of the current block The lower right position and the lower right position outside the current block;
  • an embodiment of the present application provides a decoder, which includes a parsing unit, a first determination unit, a first construction unit, and a first prediction unit; wherein,
  • the parsing unit is configured to parse the code stream to obtain the prediction mode parameter of the current block
  • the first determining unit is configured to determine at least one candidate position of the current block when the prediction mode parameter indicates that a preset inter prediction mode is used to determine the inter prediction value of the current block; wherein, the candidate The position includes at least a lower right position inside the current block and a lower right position outside the current block;
  • the first determining unit is further configured to determine at least one temporal motion information of the current block based on the at least one candidate position;
  • the first construction unit is configured to construct a new motion information candidate list based on the at least one temporal motion information
  • the first prediction unit is configured to determine the inter prediction value of the current block according to the new motion information candidate list.
  • an embodiment of the present application provides a decoder, which includes a first memory and a first processor; wherein,
  • the first memory is configured to store a computer program that can run on the first processor
  • the first processor is configured to execute the method described in the first aspect when the computer program is running.
  • an encoder which includes a second determination unit, a second construction unit, and a second prediction unit; wherein,
  • the second determining unit is configured to determine the prediction mode parameter of the current block; and when the prediction mode parameter indicates that the preset inter prediction mode is used to determine the inter prediction value of the current block, determine at least A candidate position; wherein the candidate position includes at least a lower right position inside the current block and a lower right position outside the current block;
  • the second determining unit is further configured to determine at least one temporal motion information of the current block based on the at least one candidate position;
  • the second construction unit is configured to construct a new motion information candidate list based on the at least one temporal motion information
  • the second prediction unit is configured to determine the inter prediction value of the current block according to the new motion information candidate list.
  • an encoder which includes a second memory and a second processor; wherein,
  • the second memory is configured to store a computer program that can run on the second processor
  • the second processor is configured to execute the method described in the second aspect when the computer program is running.
  • an embodiment of the present application provides a computer storage medium that stores a computer program that, when executed by a first processor, implements the method described in the first aspect, or is executed by a second processor.
  • the processor implements the method described in the second aspect when executed.
  • An inter-frame prediction method, an encoder, a decoder, and a computer storage medium parse the code stream to obtain the prediction mode parameters of the current block; when the prediction mode parameters indicate that the preset inter-frame prediction is used
  • the mode determines the inter prediction value of the current block, determine at least one candidate position of the current block; wherein the candidate position includes at least a lower right position inside the current block and a lower right position outside the current block; Determine at least one temporal motion information of the current block based on the at least one candidate position; construct a new motion information candidate list based on the at least one temporal motion information; determine according to the new motion information candidate list The inter-frame prediction value of the current block.
  • the motion information candidate list can be supplemented and enhanced with more relevant motion information on the lower right.
  • This increases the diversity of motion information in the motion information candidate list; especially for GPM or AWP inter-frame prediction modes, by increasing the position of the temporal motion information candidate at the bottom right, the correlation at the bottom right can be improved, thereby improving Codec 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 schematic flowchart of an inter-frame prediction method provided by an embodiment of the application.
  • FIG. 4 is a schematic diagram of the structure of a typical image group provided by an embodiment of this application.
  • FIG. 5 is a schematic diagram of a spatial position relationship between a current block and neighboring blocks provided by an embodiment of this application;
  • FIG. 6 is a schematic diagram of another spatial position relationship between a current block and neighboring blocks provided by an embodiment of this application.
  • FIG. 7 is a schematic diagram of another spatial position relationship between a current block and neighboring blocks provided by an embodiment of this application.
  • FIG. 8 is a schematic flowchart of another inter-frame prediction method provided by an embodiment of the application.
  • 9A is a schematic diagram of weight distribution of multiple division modes of GPM on a 64 ⁇ 64 current block provided by an embodiment of the application;
  • 9B is a schematic diagram of weight distribution of multiple division modes of AWP on a 64 ⁇ 64 current block according to an embodiment of the application;
  • FIG. 10 is a schematic flowchart of another inter-frame prediction method provided by an embodiment of this application.
  • FIG. 11 is a schematic diagram of the composition structure of a decoder provided by an embodiment of the application.
  • FIG. 12 is a schematic diagram of the hardware structure of a decoder provided by an embodiment of the application.
  • FIG. 13 is a schematic diagram of the composition structure of an encoder provided by an embodiment of the application.
  • FIG. 14 is a schematic diagram of the hardware structure of an encoder provided by an embodiment of the application.
  • the first image component, the second image component, and the third image component are generally used to represent the current block (Coding Block, CB); among them, the three image components are a luminance component and a blue chrominance component. And a red chrominance component, specifically, the luminance component is usually represented by the symbol Y, the blue chrominance component is usually represented by the symbol Cb or U, and the red chrominance component is usually represented by the symbol Cr or V; in this way, the video image can be in YCbCr format It can also be expressed in YUV format.
  • CB Current Block
  • each frame in the video image is divided into square largest coding units (LCU) of the same size (such as 128 ⁇ 128, 64 ⁇ 64, etc.). Each largest coding unit can also be divided into rectangles according to rules.
  • Coding Unit CU
  • the coding unit may be divided into smaller prediction units (PU).
  • the hybrid coding framework may include modules such as prediction, transformation (Transform), quantization (Quantization), entropy coding (Entropy Coding), and loop filtering (In Loop Filter); among them, the prediction module may include intra prediction (intra Prediction and inter prediction (inter prediction), inter prediction may include motion estimation (motion estimation) and motion compensation (motion compensation).
  • the video encoding system 11 may include: a transformation unit 111, a quantization unit 112, a mode selection and encoding control logic unit 113, and an intra prediction unit 114 , Inter prediction unit 115 (including: motion compensation and motion estimation), inverse quantization unit 116, inverse transform unit 117, loop filter unit 118, encoding unit 119 and decoded image buffer unit 110; for the input original video signal, pass Coding Tree Unit (CTU) is divided to obtain a video reconstruction block, the coding mode is determined by the mode selection and coding control logic unit 113, and then the residual pixel information obtained after intra-frame or inter-frame prediction is determined by the mode selection and coding control logic unit 113.
  • CTU pass Coding Tree Unit
  • the intra prediction unit 114 Used to perform intra-frame prediction on the video reconstruction block; wherein, the intra-frame prediction unit 114 is used to determine the optimal intra-frame prediction mode (ie target prediction mode) of the video reconstruction block; the inter-frame prediction unit 115 is used to perform the received
  • the video reconstruction block is coded with respect to one or more blocks in one or more reference frames to provide temporal prediction information; among them, motion estimation is the process of generating motion vectors, and the motion vectors can be estimated
  • the video reconstructs the motion of the block, and then, the motion compensation performs motion compensation based on the motion vector determined by the motion estimation; after determining the inter prediction mode, the inter prediction unit 115 is also used to provide the selected inter prediction data to the encoding
  • the unit 119 also sends the calculated motion vector data to the encoding unit 119; in addition, the
  • the reconstructed residual block is passed through the loop filtering unit 118 to remove the blocking artifacts, and then the reconstructed residual block is added to a predictive block in the frame of the decoded image buffer unit 110 to generate a reconstructed residual block.
  • the video reconstruction block; the encoding unit 119 is used to encode various encoding parameters and quantized transform coefficients.
  • the decoded image buffer unit 110 is used to store the reconstructed video reconstruction block 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.
  • the embodiment of the present application also provides a video decoding system.
  • the video decoding system 12 may include: a decoding unit 121, an inverse transform unit 127, and an inverse quantization unit 122, an intra prediction unit 123, and a motion compensation unit 124.
  • Loop filter unit 125 and decoded image buffer unit 126 after the input video signal is encoded by the video encoding system 11, the code stream of the video signal is output; the code stream is input into the video decoding system 12, and is first decoded
  • the unit 121 is used to obtain the decoded transform coefficient; the transform coefficient is processed by the inverse transform unit 127 and the inverse quantization unit 122 to generate a residual block in the pixel domain; the intra prediction unit 123 can be used to generate a residual block based on the determined
  • the prediction data of the current video decoding block is generated by the intra prediction direction and the data from the previous decoded block of the current frame or picture; the motion compensation unit 124 determines the prediction for the video decoding block by analyzing the motion vector and other associated syntax elements Information and use the prediction information to generate the predictive block of the video decoding block being decoded; by comparing the residual block from the inverse transform unit 127 and the inverse quantization unit 122 with the intra prediction unit 123 or the motion compensation unit 124 The corresponding
  • 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 inter-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 and improve the coding performance through the inter-frame prediction method provided in the embodiments of the present application; then, correspondingly, the video decoding system 12 can also improve the video decoding restoration quality, thereby improving the decoding performance.
  • the embodiment of the present application provides an inter-frame prediction method, which is applied to a video decoding device, that is, a decoder.
  • the function implemented by this method can be implemented by the first processor in the decoder calling a computer program.
  • the computer program can be stored in the first memory.
  • the decoder includes at least a first processor and a first memory.
  • FIG. 3 shows a schematic flowchart of an inter-frame prediction method according to an embodiment of the present application.
  • the method may include:
  • each current block may include a first image component, a second image component, and a third image component, that is, the current block represents the prediction of the first image component, the second image component, or the third image component in the image to be decoded.
  • Image block may include a first image component, a second image component, and a third image component, that is, the current block represents the prediction of the first image component, the second image component, or the third image component in the image to be decoded.
  • 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 prediction mode adopted by the current block and the parameters related to the prediction mode.
  • prediction modes usually include inter prediction modes, traditional intra prediction modes, and non-traditional intra prediction modes, etc.
  • inter prediction modes include ordinary inter prediction modes, GPM prediction modes, and AWP prediction modes.
  • the encoder will select the optimal prediction mode to pre-encode the current block.
  • the prediction mode of the current block can be determined, and the corresponding prediction mode parameters will be written into the code stream and transmitted by the encoder. To the decoder.
  • the prediction mode parameters of the current block can be directly obtained by parsing the code stream, and the obtained prediction mode parameters are used to determine whether the current block uses the preset inter prediction mode, such as GPM prediction mode or AWP prediction model.
  • the decoder parses the code stream and obtains that the prediction mode parameter indicates that the preset inter prediction mode is used to determine the inter prediction value of the current block
  • the inter prediction provided in the embodiment of the application can be used. method.
  • the motion information may include motion vector (Motion Vector, MV) information and reference frame information.
  • MV Motion Vector
  • the current frame in which the current block is located has one or more reference frames, and the current block can be a coding unit or a prediction unit, and a set of motion vectors and reference frames can be used.
  • the motion information of the frame information indicates a pixel area of the same size as the current block in a reference frame, which is referred to as a reference block here.
  • a motion information containing two sets of motion vectors and reference frame information can also be used to indicate to two The two reference blocks in the reference frame may be the same or different; then, the motion compensation may obtain the inter-frame prediction value of the current block according to the reference block indicated by the motion information.
  • a P frame is a frame that can only be predicted using a reference frame before the current frame in the Picture Order Count (POC).
  • the current reference frame has only one reference frame list, which is represented by RefPicList0; and RefPicList0 is all reference frames with POC before the current frame.
  • B-frame Bi-directional Interpolated Prediction Frame early is a frame that can be predicted using the reference frame of the POC before the current frame and the reference frame of the POC after the current frame.
  • the B frame has two reference frame lists, which are represented by RefPicList0 and RefPicList1 respectively; where RefPicList0 is the reference frame of the POC before the current frame, and RefPicList1 is the reference frame of the POC after the current frame.
  • RefPicList0 is the reference frame of the POC before the current frame
  • RefPicList1 is the reference frame of the POC after the current frame.
  • For the current block you can only refer to the reference block of a frame in RefPicList0, which can be called forward prediction; or you can only refer to the reference block of a frame in RefPicList1, which can be called backward Prediction; or it can also refer to a reference block of a frame in RefPicList0 and a reference block of a frame in RefPicList1 at the same time. This situation can be called bidirectional prediction.
  • a simple way to refer to two reference blocks at the same time is to average the pixels at each corresponding position in the two reference blocks to obtain the inter prediction value of each pixel in the current block (or may be called a prediction block).
  • Later B frames are no longer restricted to the reference frames in RefPicList0 that are all POC before the current frame, and RefPicList1 are all reference frames that are POC after the current frame.
  • RefPicList0 can also have a reference frame with POC after the current frame
  • RefPicList1 can also have a reference frame with POC before the current frame, which means that the current block can also refer to the reference frame with POC before the current frame or Also refer to the reference frame after the current frame of the POC.
  • the reference frame used when the current block is bidirectional prediction must come from RefPicList0 and the other from RefPicList1; this kind of B frame is also called generalized B frame.
  • the B frame can refer to the information before the current frame and the information after the current frame at the same time, which can significantly improve the coding performance.
  • a classic group of pictures (GOP) structure of RA is shown in Figure 4.
  • the arrows indicate the reference relationship. Since the I frame does not require a reference frame, then the POC is 0.
  • the P frame with the POC of 4 will be decoded, and the I frame with the POC of 0 can be referred to when decoding the P frame with the POC of 4.
  • Low Delay configuration is divided into Low Delay P and Low Delay B.
  • Low Delay P is the traditional Low Delay configuration. Its typical structure is IPPP..., that is, an I frame is first encoded and decoded, and then all frames decoded are P frames.
  • the typical structure of Low Delay B is IBBB...
  • the difference from Low Delay P is that each inter frame is a B frame, that is, two reference frame lists are used, and the current block can refer to a reference block of a frame in RefPicList0 at the same time And the reference block of a frame in RefPicList1.
  • a reference frame list of the current frame can have at most several reference frames, such as 2, 3, or 4, etc.
  • the reference frames in RefPicList0 and RefPicList1 are determined by the preset configuration or algorithm, but the same reference frame can appear in RefPicList0 and RefPicList1 at the same time, that is, encoder or decoder
  • the device allows the current block to refer to two reference blocks in the same reference frame at the same time.
  • the encoder or the decoder can usually use the index value (indicated by index) in the reference frame list to correspond to the reference frame. If the length of a reference frame list is 4, then index has four values such as 0, 1, 2, and 3. For example, if the RefPicList0 of the current frame has 4 reference frames with POCs of 5, 4, 3, 0, then index 0 of RefPicList0 is the reference frame of POC 5, index 1 of RefPicList0 is the reference frame of POC 4, and index 2 of RefPicList0 It is the reference frame of POC 3, and index 3 of RefPicList0 is the reference frame of POC 0.
  • the preset inter prediction mode may be the GPM prediction mode.
  • the preset inter prediction mode may be the AWP prediction mode.
  • the two prediction modes have different names and different specific implementation forms, they are common in principle, that is, the two prediction modes can be applied to the inter-frame prediction method in the embodiment of the present application.
  • the prediction mode parameters under GPM such as the specific division mode of GPM, will be transmitted in the code stream; generally, GPM includes 64 division modes.
  • the prediction mode parameters under the AWP will be transmitted in the code stream, such as the specific AWP division mode; under normal circumstances, AWP includes 56 division modes.
  • the current implementation is to construct a motion information candidate list (also called a one-way motion information candidate list) on the encoder side using the relevant information of the previously encoded/decoded part of the current block, and select a single motion information candidate list from the motion information candidate list.
  • a motion information candidate list also called a one-way motion information candidate list
  • To motion information write the index values of the two one-way motion information in the motion information candidate list into the code stream.
  • a motion information candidate list is constructed using the relevant information of the previously decoded part of the current block.
  • This motion information candidate list must be the same as the candidate list constructed on the encoder side. In this way, the index values of the two motion information are parsed from the code stream, and then the two unidirectional motion information is found from the motion information candidate list, which is the two unidirectional motion information that the current block needs to use.
  • the one-way motion information described in the embodiments of the present application may include motion vector information, that is, the value of (x, y), and the corresponding reference frame information, that is, the reference frame list and the reference frame list.
  • the reference index value One way of expression is to record the reference index values of two reference frame lists, where the reference index value corresponding to one reference frame list is valid, such as 0, 1, 2, etc.; the reference index value corresponding to the other reference frame list is invalid, that is -1.
  • the reference frame list for which the reference index value is valid is the reference frame list used by the motion information of the current block, and the corresponding reference frame can be found from the reference frame list according to the reference index value.
  • Each reference frame list has a corresponding motion vector, the motion vector corresponding to the valid reference frame list is valid, and the motion vector corresponding to the invalid reference frame list is invalid.
  • the decoder can find the required reference frame through the reference frame information in the one-way motion information. According to the position of the current block and the value of the motion vector (x, y), the reference block can be found in the reference frame to determine the current block The inter prediction value of.
  • the construction method of the motion information candidate list not only uses spatial motion information, but also uses temporal motion information.
  • temporal motion information and spatial motion information are also used.
  • Figure 5 shows the motion information of the relevant positions used in the construction of the merge list.
  • the candidate positions with filling elements of 1, 2, 3, 4, and 5 indicate the relative positions in the spatial domain, that is, the current frame and the current.
  • the motion information used by these position blocks adjacent to the block; the candidate positions with fill elements 6 and 7 indicate time-domain related positions, that is, the motion information used by the corresponding positions in a certain reference frame.
  • These motion information can also be passed Scaling.
  • the motion information candidate list in the Triangle Partition Mode (Triangle Partition Mode, TPM) and GPM prediction mode also involves the use of these locations; and the block size here is not the actual size, just As an example.
  • block E is the current block
  • block A, block B, block C, block D, block F, and block G are all adjacent blocks of block E
  • block H is block The upper left position inside E.
  • block A, block B, block C, block D, block F, and block G can be used to determine the spatial motion information, while the temporal motion information is to find the corresponding position in the specified reference frame according to the inner upper left corner of the current block. , That is, the gray filling position shown in FIG. 6 (ie, block H), where the block H is only used to indicate the position, and does not indicate the block size.
  • the relevant positions of the AWP all come from the left, upper left, upper, and upper right of the current block, but not from the lower, lower right, and right relevant positions of the current block.
  • GPM and AWP essentially divide the current block into two partitions.
  • the positions shown in FIG. 6 are closely related to the current block, for example, these positions are adjacent to at least one boundary of the current block, or these positions overlap with the current block. But for the two partitions of GPM and AWP, this is not the case. It is more obvious that the partitions in the lower right corner under certain partitioning modes are not clearly adjacent to the relevant positions used to construct the motion information candidate list. .
  • the corresponding position in the time domain may overlap with the partition at the lower right corner of the current block; but if the current block is large, then the partition and the relative position used to construct the motion information candidate list are both Not adjacent, so that the correlation between the partition and these selected locations is weaker.
  • each partition in GPM and AWP must use different motion information, otherwise GPM and AWP are meaningless.
  • AWP Take AWP as an example.
  • the correlation in the lower right corner is obviously missing.
  • the temporal motion information comes from different frames, and the spatial motion information comes from the same frame, so that the correlation of the spatial motion information will be stronger, while the correlation in the lower right corner is weak. This kind of correlation in the lower right corner is insufficient, and it has a greater impact than other prediction modes in GPM and AWP, which will affect the performance of the codec.
  • the embodiment of the present application needs to enhance the correlation between the AWP and the lower right corner of the GPM. That is to say, in the AWP prediction mode, when constructing the motion information candidate list and using the time domain motion information, you can add the time domain motion information corresponding to the position of the lower right corner of the current block, or change the original use corresponding to the position of the upper left corner of the current block. The time domain motion information is replaced with the time domain motion information corresponding to the position of the lower right corner of the current block.
  • the order of the time domain motion information corresponding to the position of the lower right corner of the current block may be before the time domain motion information corresponding to the position of the upper left corner of the current block.
  • the position of the lower right corner here may include the lower right position inside the current block and the lower right position outside the current block.
  • the determining at least one candidate position of the current block may include:
  • the first lower right candidate position represents the lower right position inside the current block
  • the second lower right candidate position, the third lower right candidate position, and the fourth lower right candidate position represent the lower right position outside the current block. Lower right position.
  • the gray filling positions are all represented as the lower right corner of the current block, and here can be divided into 4 lower right candidate positions.
  • the lower right position inside the current block may be the first lower right candidate position, as shown in the position filled with 1 in Fig. 7; the lower right position outside the current block may be the second lower right candidate position, as shown in Fig. 7
  • the position of padding 2 is shown; the lower right position outside the current block can also be the third lower right candidate position, as shown in the position of padding 3 in Figure 7; the lower right position outside the current block can also be the fourth lower right candidate position Position, as shown in the position filled with 4 in Figure 7.
  • the lower right corner in the embodiment of the present application may refer to the lower right corner inside the current block, as shown in the position of padding 1 in FIG. 7; or it may refer to the lower right corner outside the current block, as shown in the position of padding 2 in FIG. 7 As shown; or it refers to the bottom of the current block (and to the right), as shown in the position of filling 3 in Figure 7; or it refers to the right (and to the bottom) outside the current block, as shown in the position of filling 4 in Figure 7 Show.
  • the filled 1, 2, 3, and 4 can be replaced by H, I, J, and K.
  • a candidate position set can be formed; and then from the candidate position set, the current At least one candidate position of the block.
  • the acquiring the first lower right candidate position, the second lower right candidate position, the third lower right candidate position, and the fourth lower right candidate position may include:
  • the position corresponding to the first coordinate information is determined as the first lower right candidate position
  • the position corresponding to the second coordinate information is determined as the second lower right candidate position
  • the third coordinate information is corresponding
  • the position of is determined as the third lower right candidate position
  • the position corresponding to the fourth coordinate information is determined as the fourth lower right candidate position.
  • the position of 1 in the lower right corner of the current block is determined according to the pixel position of the lower right corner of the current block.
  • the upper left pixel position of the current block that is, the upper left pixel position
  • the width of the current block is represented by width
  • the height of the current block is represented by height
  • the first coordinate information can be obtained as ( x+width-1, y+height-1)
  • the first lower right candidate position that is, the position of 1
  • the second coordinate information can also be obtained as (x +width, y+height)
  • the second lower right candidate position ie the position of 2 can be the position determined according to the second coordinate information
  • the third coordinate information can also be obtained as (x+width-1, y+height).
  • the third lower right candidate position (that is, the position of 3) can be the position determined according to the third coordinate information; even the fourth coordinate information can be obtained as (x+width, y+height- 1)
  • the fourth lower right candidate position (that is, the position of 4) may be the position determined according to the fourth coordinate information.
  • the method may further include:
  • the second coordinate information, the third coordinate information, and the fourth coordinate information are corrected by using the first preset offset to obtain the first corrected second coordinate information and the first corrected third coordinate information. Coordinate information and the first corrected fourth coordinate information;
  • the position corresponding to the first coordinate information is determined as the first lower right candidate position
  • the position corresponding to the first corrected second coordinate information is determined as the second lower right candidate position
  • the The position corresponding to the first corrected third coordinate information is determined to be the third lower right candidate position
  • the position corresponding to the first corrected fourth coordinate information is determined to be the fourth lower right candidate position.
  • the position of 1 can still be the position determined according to the first coordinate information, that is, (x+width-1, y+height-1); and the position of 2 can be based on the first coordinate information.
  • the corrected second coordinate information that is, the position determined by (x+width+offset, y+height+offset);
  • the position of 3 can be the third coordinate information after the first correction, that is, (x+width-1 , Y+height+offset);
  • the position of 4 may be the position determined according to the first modified fourth coordinate information, that is, (x+width+offset, y+height-1).
  • the offset in the embodiment of this application can be a preset fixed value, such as 0, 1, 2, 4, 8, 16, etc.; or, it can also be based on the size of the current block (ie width, height); or, it may even be a value determined in other ways.
  • the value of the offset at each position may be the same or different, which is not limited in the embodiment of the present application.
  • the method may further include:
  • the candidate reference frame is a reference frame for determining the motion information referenced by the temporal motion information
  • the image A block includes at least a neighboring block, and the neighboring block is spatially adjacent to the current block in the current frame
  • the position corresponding to the second corrected first coordinate information is determined as the first lower right candidate position, and the position corresponding to the second corrected second coordinate information is determined as the second lower right candidate Position, the position corresponding to the second corrected third coordinate information is determined as the third lower right candidate position, and the position corresponding to the second corrected fourth coordinate information is determined as the fourth right Next candidate position.
  • a possible implementation is to find the corresponding position in the reference frame of the motion information referenced by the time-domain motion information in the above-mentioned way, it is necessary to consider the block on the current frame to the one used to derive the time-domain motion information. There is a motion vector in the reference frame.
  • the 2 position is the position determined according to the second coordinate information (x+width, y+height)
  • the (x+width, y+height) block on the current frame to export the temporal motion
  • the motion of the reference frame used by the information assuming (x', y') is the motion vector from the (x+width, y+height) block on the current frame to the reference frame used to derive the temporal motion information
  • the second The corrected second coordinate information is (x+width+x', y+height+y'), that is, the 2 position can be (x+width+x', y +height+y').
  • the position may be (x+width+x’, y+height+y’), or it may be obtained by other calculations based on (x+width+x’, y+height+y’).
  • the 2 position is the position determined according to (x+width+offset, y+height+offset), then consider the current frame (x+width+offset, The motion from the block of y+height+offset) to the reference frame used to derive the temporal motion information, assuming (x', y') is still the block of (x+width+offset, y+height+offset) on the current frame
  • the second corrected second coordinate information is (x+width+offset+x', y+height+offset+y'), that is, the 2 position can be The position determined by (x+width+offset+x', y+height+offset+y'), that is, the 2 position can be The position determined by (x+width+offset+x',
  • the position may be (x+width+offset+x', y+height+offset+y'), or it may be based on (x+width+offset+x', y+height+offset+y') Other calculations.
  • position 1, position 3, and position 4 can also be determined, which will not be described in detail here.
  • the determining the second preset offset may include:
  • the motion information of the preset neighboring block on the current frame is scaled to the candidate reference frame, a scaled motion vector is obtained, and the scaled motion vector is determined as the second preset offset.
  • the determination of (x', y') can be to find a certain neighboring block to the reference frame used to derive the time-domain motion information (or determine the reference frame for the time-domain motion information).
  • the motion vector of the reference frame of the motion information is used as (x', y'), or the motion information of a certain neighboring block is scaled to the reference frame used to derive the time-domain motion information (or the reference frame used to derive the time-domain motion information)
  • the motion vector of the reference frame of the motion information or the reference frame of the motion information referenced by the temporal motion information is determined as (x', y'), which is not specifically limited here.
  • the 2 position is the position determined according to (x+width, y+height)
  • the block of (x+width, y+height) on the current frame is not considered to be used to derive the temporal motion information
  • the motion of the reference frame, then the second coordinate information at this time is (x+width, y+height), that is, the 2 position can be (x+width, y+height) of the reference frame used in exporting the temporal motion information
  • the determined location the position may be (x+width, y+height), or it may be obtained by other calculations based on (x+width, y+height).
  • the 2 position is the position determined according to (x+width+offset, y+height+offset), at this time (x+width+offset, y+height+offset) block to the reference frame used to derive the time-domain motion information
  • the second coordinate information at this time is (x+width+offset, y+height+offset), that is, the 2 position can be The position determined by (x+width+offset, y+height+offset) of the reference frame used to derive the temporal motion information.
  • the position may be (x+width+offset, y+height+offset), or it may be obtained by other calculations based on (x+width+offset, y+height+offset).
  • position 1, position 3, and position 4 can also be determined, which will not be described in detail here.
  • the determining at least one candidate position of the current block from the candidate position set may include:
  • a candidate position corresponding to a high priority is selected according to a preset priority order and the selected candidate position is available, and the selected candidate position is determined as a candidate position of the current block.
  • the determining at least one candidate position of the current block from the candidate position set may include:
  • a plurality of candidate positions are selected according to a preset priority order and the selected candidate positions are available, and the selected candidate positions are determined as the plurality of candidate positions of the current block.
  • a certain position can be selected from the above-mentioned positions 1, 2, 3, 4, etc. in a preset manner as Candidate positions, or can be in a preset priority order, such as 2, 1, 3, 4. If 2 has the highest priority and 2 is available, then position 2 will be used as a candidate position; if 2 has the highest priority, but 2 is not available. At this time, according to the preset priority order, the 1 corresponding to the high priority will be selected in order, and if 1 is available, then the 1 position can be used as a candidate position.
  • multiple positions can be selected as candidate positions according to a preset combination from the above 1, 2, 3, 4, etc.
  • Set the priority order for example, 2 has the highest priority, arrange the 2 position at the top, and then when the selected candidate position is available, select multiple positions as candidate positions according to the preset priority order.
  • one possible way is to use only one of the above four positions, and another possible way is to use a combination of some of the above four positions, such as using 2, 3, 4 The position combination of 3, 4, etc. are used.
  • all positions 1, 2, 3, and 4 are also a combination.
  • the permutation and combination of any number (1, 2, 3, 4) of the above four positions can be used as a selection method for determining candidate positions. It should be noted that when multiple positions need to be used, one possible way is to set 2 to be arranged first, that is, position 2 has the highest priority.
  • the method may further include:
  • the candidate position to be selected belongs to the lower right position outside the current block and none of the lower right positions outside the current block is available, then the first lower right position The candidate position is determined as the candidate position to be selected.
  • positions 2, 3, and 4 are all outside the current block, and positions 2, 3, and 4 are sometimes unavailable. If you encounter an image boundary, a boundary that cannot be crossed by a certain inter-frame reference, etc., positions 2, 3, and 4 may not be available at this time. In the case that positions 2, 3, and 4 are unavailable, one possible way is to use position 1 instead of the unavailable position. If the 1 position has been used in the construction of the current motion information candidate list, then the unavailable positions can also be skipped.
  • the candidate position is the position of the lower right corner of the current block, which can be the lower right position inside the current block or the lower right position outside the current block.
  • these Candidate positions are used to determine at least one temporal motion vector of the current block, so that when temporal motion information is used in the construction of the motion information candidate list, the temporal motion information corresponding to the position of the lower right corner of the current block can be added, thereby improving the correlation of the lower right corner .
  • S303 Determine at least one temporal motion information of the current block based on the at least one candidate position.
  • the time-domain motion information can be determined according to the obtained candidate position.
  • the motion information used for the time-domain position in the corresponding reference frame is used as the time-domain of the candidate position.
  • Sports information the frame to which the current block belongs may be referred to as the current frame.
  • the candidate position in the current frame and the time domain position in the reference frame belong to different frames, the positions are the same.
  • the determining at least one temporal motion information of the current block based on the at least one candidate position may include:
  • For each candidate position determine the time domain position associated with the candidate position in the corresponding reference frame information, and determine the motion information used by the time domain position as the time domain motion information corresponding to the candidate position;
  • At least one temporal motion information is correspondingly obtained.
  • the temporal motion information is determined according to the motion information used in the corresponding position in a certain reference frame information. And for different candidate positions, different time-domain motion information can be obtained.
  • the width of the luminance prediction block is l_width
  • the height of the luminance prediction block is l_height
  • the lower right luminance sample position of the selected current prediction unit is (x', y')
  • the current prediction The L0 reference index and L1 reference index of the unit are both equal to zero.
  • Both the L0 reference index and the L1 reference index of the current prediction unit are equal to zero.
  • the distance indexes of the image corresponding to the L0 reference index and the L1 reference index of the current prediction unit are recorded as DistanceIndexL0 and DistanceIndexL1, respectively;
  • the BlockDistance of the image corresponding to the L0 reference index and the L1 reference index of the current prediction unit are recorded as BlockDistanceL0 and BlockDistanceL1, respectively.
  • the L0 motion vector of the temporal motion information storage unit where the luminance sample corresponding to the lower right luminance sample position of the selected current prediction unit is located in the image with the reference index of 0 in the reference image queue 1 is denoted as mvRef(mvRef_x, mvRef_y),
  • the distance index of the image where the motion information storage unit is located is recorded as DistanceIndexCol, and the distance index of the image where the reference unit pointed to by the motion vector is located is recorded as DistanceIndexRef.
  • BlockDistanceRef DistanceIndexCol-DistanceIndexRef
  • mvX is mvRef
  • MVX is mvE0.
  • mvX is mvRef
  • MVX is mvE1.
  • the value of interPredRefMode is equal to ‘PRED_List01’.
  • the current prediction The L0 reference index and L1 reference index of the unit are both equal to zero.
  • Both the L0 reference index and the L1 reference index of the current prediction unit are equal to zero.
  • the distance indexes of the image corresponding to the L0 reference index and the L1 reference index of the current prediction unit are recorded as DistanceIndexL0 and DistanceIndexL1, respectively;
  • the BlockDistance of the image corresponding to the L0 reference index and the L1 reference index of the current prediction unit are recorded as BlockDistanceL0 and BlockDistanceL1, respectively.
  • the L0 motion vector of the temporal motion information storage unit where the brightness sample corresponding to the right brightness sample position of the selected current prediction unit is located in the image with the reference index of 0 in the reference image queue 1 is denoted as mvRef(mvRef_x, mvRef_y),
  • the distance index of the image where the motion information storage unit is located is recorded as DistanceIndexCol, and the distance index of the image where the reference unit pointed to by the motion vector is located is recorded as DistanceIndexRef.
  • BlockDistanceRef DistanceIndexCol-DistanceIndexRef
  • mvX is mvRef
  • MVX is mvE0.
  • mvX is mvRef
  • MVX is mvE1.
  • the value of interPredRefMode is equal to ‘PRED_List01’.
  • the current prediction unit The L0 reference index and L1 reference index of both are equal to 0.
  • Both the L0 reference index and the L1 reference index of the current prediction unit are equal to zero.
  • the distance indexes of the image corresponding to the L0 reference index and the L1 reference index of the current prediction unit are recorded as DistanceIndexL0 and DistanceIndexL1, respectively;
  • the BlockDistance of the image corresponding to the L0 reference index and the L1 reference index of the current prediction unit are recorded as BlockDistanceL0 and BlockDistanceL1, respectively.
  • the L0 motion vector of the temporal motion information storage unit where the brightness sample corresponding to the lower brightness sample position of the selected current prediction unit is located in the image with the reference index of 0 in the reference image queue 1 is denoted as mvRef(mvRef_x, mvRef_y).
  • the distance index of the image where the motion information storage unit is located is recorded as DistanceIndexCol, and the distance index of the image where the reference unit pointed to by the motion vector is located is recorded as DistanceIndexRef.
  • BlockDistanceRef DistanceIndexCol-DistanceIndexRef
  • mvX is mvRef
  • MVX is mvE0.
  • mvX is mvRef
  • MVX is mvE1.
  • the value of interPredRefMode is equal to ‘PRED_List01’.
  • the obtained temporal motion information can be filled into the motion information candidate list to obtain a new motion information candidate list.
  • this step may include: filling at least one temporal motion information into the motion information candidate list to obtain the new motion information candidate list.
  • the method may further include:
  • the ratio of the temporal motion information in the motion information candidate list can be increased. If at least 1 position is reserved for temporal motion information in the candidate list in AWP prediction mode, then it can be adjusted to reserve at least 2 (or 3) positions for temporal motion information in the candidate list in AWP prediction mode, so that the new At least two filling positions of time-domain motion information are reserved in the candidate list of motion information.
  • the prediction mode parameter indicates that a preset inter prediction mode (such as GPM or AWP) is used to determine the inter prediction value of the current block
  • two partitions of the current block can be determined at this time. That is, the method may further include: when the prediction mode parameter indicates that the inter prediction value of the current block is determined using GPM or AWP, determining two partitions of the current block; wherein, the two partitions include the first partition And the second partition.
  • a preset inter prediction mode such as GPM or AWP
  • the candidate positions used to derive the time-domain motion information can also be selected according to the division mode of GPM or AWP, or the permutation and combination of deriving the time-domain motion information from different positions can be selected.
  • the method may further include:
  • the step of determining at least one temporal motion information of the current block based on the at least one candidate position is performed according to the correspondingly determined at least one candidate position.
  • the at least two sets of division patterns include a first set of division patterns and a second set of division patterns, and the method may further include:
  • the upper left pixel position inside the current block is determined as at least one candidate position of the current block, and the determination based on the at least one candidate position is performed.
  • the lower right pixel position outside the current block is determined as at least one candidate position of the current block, and the determination based on the at least one candidate position is performed.
  • the step of at least one temporal motion information of the current block is performed.
  • the at least two sets of division patterns include a first set of division patterns, a second set of division patterns, a third set of division patterns, and a fourth set of division patterns.
  • the method may further include:
  • the current division mode belongs to the first group of division mode set, determine the first lower right candidate position of the current block as at least one candidate position of the current block, and perform the based on the at least one candidate position, A step of determining at least one temporal motion information of the current block;
  • the current division mode belongs to the second group of division mode set, determine the second lower right candidate position of the current block as at least one candidate position of the current block, and perform the based on the at least one candidate position, A step of determining at least one temporal motion information of the current block;
  • the current division mode belongs to the third group of division mode set, determine the third lower right candidate position of the current block as at least one candidate position of the current block, and perform the based on the at least one candidate position, A step of determining at least one temporal motion information of the current block;
  • the current division mode belongs to the fourth group of division mode set, determine the fourth lower right candidate position of the current block as at least one candidate position of the current block, and perform the based on the at least one candidate position, The step of determining at least one temporal motion information of the current block.
  • the division modes of GPM or AWP can be grouped to obtain at least two sets of division modes.
  • a possible implementation is to divide the AWP division mode into a set of division modes from 0 to 31, and another set of division modes from 32 to 55, then if the current AWP division mode is from 0 to 31
  • the temporal motion information can be derived according to the existing method (that is, the position of the upper left corner of the current block); otherwise, if the current AWP division mode is one of the 32 to 55 division modes, the The method of the embodiment of the present application (that is, the position of the lower right corner outside the current block) derives time-domain motion information.
  • the GPM or AWP division mode into four division mode sets, which correspond to the four lower right positions of the current block, for example, the first division mode set corresponds to the first lower right candidate position (as shown in the figure) 7), the second set of division patterns corresponds to the second lower right candidate position (position 2 in Fig. 7), and the third set of division patterns corresponds to the third lower right candidate position (3 in Fig. 7). Position), the fourth set of division patterns corresponds to the fourth lower right candidate position (position 4 in FIG. 7).
  • Another possible implementation is to select the position used to derive the time-domain motion information according to the division mode of GPM or AWP, or select the permutation and combination of deriving the time-domain motion information according to different positions.
  • two ways of deriving temporal motion information using the position of the upper left corner of the current block and using the position of the lower right corner of the current block (position 2 in Fig. 7) to derive temporal motion information are taken as examples, namely GPM Or some division modes under AWP can use the position of the upper left corner of the current block to derive time domain motion information, while other division modes under GPM or AWP can use the position of the lower right corner of the current block (position 2 in Figure 7) to derive Out of time domain motion information.
  • the embodiment of the present application is not limited to the upper left corner and the lower right corner of the current block, and may also be the lower left corner, the upper right corner, etc., which is not limited in the embodiment of the present application.
  • the method may further include:
  • the first number or the second number is less than a preset value, determine at least one candidate position of the current block based on the lower right pixel position outside the current block, and execute the step based on the at least one candidate position , The step of determining at least one temporal motion information of the current block;
  • the upper left pixel position of the current block is determined as at least one candidate position of the current block, and the execution based on the at least one candidate position , The step of determining at least one temporal motion information of the current block.
  • a possible implementation principle is if a certain zone divided under GPM or AWP can find a closely related airspace location (that is, the airspace location of F, G, C, A, B, D, etc. in Figure 7
  • the number of nearest pixel positions adjacent is less than N, where N is 1 or 2 or 3 or 4; at this time, the temporal motion information can use the position of the lower right corner of the current block to derive temporal motion information, otherwise the temporal motion information Motion information uses the position of the upper left corner of the current block to derive time-domain motion information.
  • the temporal motion information can use the position of the upper left corner of the current block to derive temporal motion information, otherwise temporal motion The information uses the position of the lower right corner of the current block to derive time-domain motion information.
  • the same division mode of GPM or AWP can be found respectively
  • the number of closely related airspace locations that is, the airspace locations of F, G, C, A, B, D, etc. in Figure 7 are adjacent to the nearest pixel location of the partition
  • the division mode uses the same derivation method of time-domain motion information in any shape, and which one or several positions are used to derive the time-domain motion information may be determined by the corresponding situation of the square.
  • Another possible way is to use different time-domain motion information derivation methods under different shapes for the same division mode.
  • Another possible way is to specify certain division modes to use one method of airspace motion information derivation, specify other division modes to use another method of airspace motion information derivation, etc.
  • specify which modes use which airspace motion information The derivation method is comprehensively determined based on the correlation described above, and the embodiment of the present application does not specifically limit it.
  • a new motion information candidate list can be constructed. Subsequently, the inter prediction value of the current block is determined according to the new motion information candidate list.
  • S305 Determine the inter prediction value of the current block according to the new motion information candidate list.
  • the prediction mode parameter indicates to use GPM or AWP to determine the inter-frame prediction value of the current block
  • two partitions of the current block can be determined at this time; wherein, the two partitions may include the first partition and the second partition .
  • the motion information corresponding to the first partition of the current block and the motion information of the second partition can be determined; then according to the motion information corresponding to the first partition and the second partition
  • the motion information can determine the inter-frame prediction value of the current block.
  • FIG. 8 shows a schematic flowchart of another inter-frame prediction method provided by an embodiment of the present application.
  • the method can include:
  • S801 Parse the code stream, and determine a first motion information index value corresponding to the first partition and a second motion information index value corresponding to the second partition;
  • S802 Based on the new motion information candidate list, determine the motion information in the new motion information candidate list indicated by the first motion information index value as the motion information of the first partition, and determine the second motion The motion information in the new motion information candidate list indicated by the information index value is determined to be the motion information of the second partition;
  • S803 Use the motion information of the first partition to calculate a first prediction value of the first partition, and use the motion information of the second partition to calculate a second prediction value of the second partition.
  • S804 Perform weighted fusion on the first predicted value and the second predicted value to obtain the inter-frame predicted value of the current block.
  • the traditional one-way prediction only finds a reference block with the same size as the current block
  • the traditional two-way prediction uses two reference blocks with the same size as the current block
  • the pixel value of each point in the prediction block is The average value of the corresponding positions of the two reference blocks, that is, all points of each reference block account for 50% of the proportion.
  • Bidirectional weighted prediction makes the ratio of two reference blocks different. For example, all points in the first reference block account for 75%, and all points in the second reference block account for 25%. But the proportions of all points in the same reference block are the same.
  • Other optimization methods such as the use of decoder side Motion Vector Refinement (DMVR) technology, bi-directional optical flow (BIO), etc.
  • DMVR decoder side Motion Vector Refinement
  • BIO bi-directional optical flow
  • GPM or AWP Two reference blocks of the same size as the current block are also used, but some pixel positions 100% use the pixel value of the corresponding position of the first reference block, and some pixel positions 100% use the pixel value of the corresponding position of the second reference block. In the boundary area, the pixel values of the corresponding positions of the two reference blocks are used in a certain proportion. How to allocate these weights is determined by the prediction mode of GPM or AWP, or it can also be considered that GPM or AWP uses two reference blocks with different sizes from the current block, that is, each takes a required part as a reference block.
  • FIG. 9A it shows a schematic diagram of the weight distribution of multiple division modes of a GPM on a 64 ⁇ 64 current block provided by an embodiment of the present application.
  • FIG. 9B shows a schematic diagram of weight distribution of multiple division modes of an AWP on a 64 ⁇ 64 current block provided by an embodiment of the present application.
  • FIG. 9B there are 56 division modes for AWP.
  • the black area indicates that the weight value of the corresponding position of the first reference block is 0%
  • the white area indicates that the weight value of the corresponding position of the first reference block is 100%
  • the gray indicates that the weight value of the corresponding position of the first reference block is a weight value greater than 0% and less than 100%
  • the weight value of the corresponding position of the second reference block is 100% minus the first The weight value of the corresponding position of each reference block.
  • this division only divides the weight of the two reference blocks when generating the prediction block, or it can be simply understood that part of the position of the prediction block comes from the first reference block, and another part of the position comes from the second reference block, and There is no real division of the current block into two CUs or PUs or TUs according to the dividing line. In this way, the transformation, quantization, inverse transformation, and inverse quantization of the residuals after prediction are also processed with the current block as a whole.
  • GPM or AWP belongs to an inter-frame prediction technology, and GPM or AWP needs to transmit a flag (flag) of whether GPM or AWP is used in the code stream, and the flag can indicate whether the current block uses GPM or AWP.
  • the encoder needs to transmit the specific mode used in the code stream, that is, one of the 64 division modes of GPM, or one of the 56 division modes of AWP; and the index value of two unidirectional motion information. That is to say, for the current block, the decoder can obtain information about whether GPM or AWP is used by parsing the code stream.
  • the decoder can parse out the prediction mode parameters of GPM or AWP and two motion information
  • the index value for example, the current block can be divided into two partitions, then the first motion information index value corresponding to the first partition and the second motion information index value corresponding to the second partition can be parsed.
  • a new motion information candidate list needs to be constructed first.
  • the following uses the AWP in AVS as an example to introduce the construction method of the motion information candidate list.
  • block E is the current block
  • block A, block B, block C, block D, block F, and block G are all adjacent blocks of block E.
  • the adjacent block A of the block E is the block where the sample (x0-1, y0) is located
  • the adjacent block B of the block E is the block where the sample (x0, y0-1) is located
  • the adjacent block C of the block E is The block where the sample (x 0 +1, y 0 -1) is located
  • the adjacent block D of the block E is the block where the sample (x 0 -1, y 0 -1) is located
  • the adjacent block F of the block E is the sample ( The block where x 0 -1, y 1 ) is located
  • the adjacent block G of block E is the block where the sample (x 1 , y 0 -1) is located.
  • the "existence" of the adjacent block X means that the block should be in the image to be decoded and that the block should belong to the same spatial region as the block E ; Otherwise, the adjacent block "does not exist”. It can be obtained that if the block "does not exist” or has not been decoded, then this block is "unavailable”; otherwise, this block is "available”. Or, if the block in which the image sample to be decoded is located "does not exist" or the sample has not been decoded, then this sample is "unavailable”; otherwise, this sample is "available”.
  • the first one-way motion information is represented as mvAwp0L0, mvAwp0L1, RefIdxAwp0L0, and RefIdxAwp0L1.
  • mvAwp0L0 represents the corresponding motion vector in the first reference frame list RefPicList0
  • RefIdxAwp0L0 represents the reference index value of the corresponding reference frame in the first reference frame list RefPicList0
  • mvAwp0L1 represents the corresponding motion vector in the second reference frame list RefPicList1
  • the motion vector, RefIdxAwp0L1 represents the reference index value of the corresponding reference frame in the second reference frame list RefPicList1.
  • RefIdxAwp0L0 and RefIdxAwp0L1 must be a valid value, such as 0, 1, 2, etc.; the other is an invalid value, such as -1. If RefIdxAwp0L0 is a valid value, then RefIdxAwp0L1 is -1; at this time, the corresponding mvAwp0L0 is the required motion vector, namely (x, y), mvAwp0L1 does not need to be considered. vice versa.
  • the steps to derive mvAwp0L0, mvAwp0L1, RefIdxAwp0L0, RefIdxAwp0L1, mvAwp1L0, mvAwp1L1, RefIdxAwp1L0, and RefIdxAwp1L1 are as follows:
  • F, G, C, A, B, and D are adjacent blocks of the current block E. Determine the "availability" of F, G, C, A, B, and D:
  • the second step is to put the one-way available motion information into the one-way motion information candidate list (indicated by AwpUniArray) in the order of F, G, C, A, B and D, until the length of AwpUniArray is 3 (or 4) or traversed Finish.
  • the third step if the length of AwpUniArray is less than 3 (or 4), split the bidirectional motion information available in the order of F, G, C, A, B, and D into one-way motion information pointing to the reference frame list List0 and pointing Refer to the one-way motion information of the frame list List1, first perform the one-way motion information double-checking operation, if it is not repeated, put it into the AwpUniArray until the length is 3 (or 4) or the traversal ends.
  • the fourth step is to sequentially split the time-domain bidirectional motion information derived according to the aforementioned method 1, method 2, and method 3 into one-way motion information pointing to the reference frame list List0 and one-way motion information pointing to the reference frame list List1 , First perform a one-way motion information check operation, if it is not repeated, put it into AwpUniArray until the length is 4 (or 5) or the traversal ends.
  • the fifth step if the length of AwpUniArray is less than 4 (or 5), the last one-way motion information in AwpUniArray is filled repeatedly until the length of AwpUniArray is 4 (or 5).
  • the sixth step is to assign the AwpCandIdx0+1th motion information in the AwpUniArray to mvAwp0L0, mvAwp0L1, RefIdxAwp0L0 and RefIdxAwp0L1, and assign the AwpCandIdx1+1th motion information in the AwpUniArray to mv1, mvAwp1wpLw1, and mv1RefAwp1wpL0L0 and mv1Ref.
  • the decoder can obtain information about whether GPM or AWP is used by parsing the code stream. If it is determined to use GPM or AWP, the decoder can parse out the prediction mode parameters of GPM or AWP and two motion information index values. , And the decoder constructs the motion information candidate list used by the current block GPM or AWP, and then according to the two parsed motion information index values, two one-way motion information can be found in the new motion information candidate list constructed above, and then use The two one-way motion information can find two reference blocks. According to the specific prediction mode used by GPM or AWP, the weight of the two reference blocks at each pixel position can be determined. Finally, the two reference blocks are weighted and calculated to obtain The prediction block of the current block.
  • the prediction block is a decoded block, which means that the decoding of the current block ends. If the current mode is not the skip mode, entropy decoding analyzes the quantized coefficients, then inverse quantization and inverse transformation to obtain the residual block, and finally the residual block and the prediction block are added to obtain the decoded block, which means that the decoding of the current block is finished.
  • the temporal motion information can be derived according to the existing method; otherwise, it will be derived according to the aforementioned method 1.
  • Time-domain motion information (or the time-domain motion information will be derived in sequence according to the aforementioned method 1, method 2, and method 3), and (sequentially) split the derived time-domain bidirectional motion information into the reference frame list List0
  • the one-way motion information and the one-way motion information pointing to the reference frame list List1, and the one-way motion information is checked first, and if it is not repeated, it is put into the AwpUniArray until the length is 4 (or 5) or the traversal ends.
  • the specific text description is as follows,
  • the steps to derive mvAwp0L0, mvAwp0L1, RefIdxAwp0L0, RefIdxAwp0L1, mvAwp1L0, mvAwp1L1, RefIdxAwp1L0, and RefIdxAwp1L1 are as follows:
  • F, G, C, A, B, and D are adjacent blocks of the current block E. Determine the "availability" of F, G, C, A, B, and D:
  • the second step is to put the one-way available motion information into the one-way motion information candidate list (indicated by AwpUniArray) in the order of F, G, C, A, B and D, until the length of AwpUniArray is 3 (or 4) or traversed Finish.
  • the third step if the length of AwpUniArray is less than 3 (or 4), split the bidirectional motion information available in the order of F, G, C, A, B, and D into one-way motion information pointing to the reference frame list List0 and pointing Refer to the one-way motion information of the frame list List1, first perform the one-way motion information double-checking operation, if it is not repeated, put it into the AwpUniArray until the length is 3 (or 4) or the traversal ends.
  • AwpIdx in AWP prediction mode belongs to 0-31, derive the two-way motion information in the time domain according to the existing method (that is, the position of the upper left corner of the current block), otherwise according to the method of the embodiment of this application (such as the aforementioned Method 1) derive the two-way motion information in the time domain, split the derived two-way motion information into one-way motion information pointing to the reference frame list List0 and one-way motion information pointing to the reference frame list List1, and perform one-way motion first Information duplication operation, if it is not repeated, put it into AwpUniArray until the length is 4 (or 5) or the traversal ends.
  • the existing method that is, the position of the upper left corner of the current block
  • the method of the embodiment of this application such as the aforementioned Method 1
  • derive the two-way motion information in the time domain split the derived two-way motion information into one-way motion information pointing to the reference frame list List0 and one-way motion information pointing to the reference frame list
  • the fifth step if the length of AwpUniArray is less than 4 (or 5), the last one-way motion information in AwpUniArray is filled repeatedly until the length of AwpUniArray is 4 (or 5).
  • the sixth step is to assign the AwpCandIdx0+1th motion information in the AwpUniArray to mvAwp0L0, mvAwp0L1, RefIdxAwp0L0 and RefIdxAwp0L1, and assign the AwpCandIdx1+1th motion information in the AwpUniArray to mv1, mvAwp1wpLw1, and mv1RefAwp1wpL0L0 and mv1Ref.
  • the temporal motion information is constructed by using the inter-frame prediction method of the embodiment of the present application and filled in the motion information candidate list, so that the lower right time frame is used in the construction of the motion information candidate list.
  • Domain motion information For AWP or GPM, use more candidate positions in the lower right to enhance the correlation in the lower right. You can also use an offset to reduce the number of selected blocks belonging to one block in the reference frame.
  • the selected position when the selected position is not available, use the lower right corner position inside the current block instead; or select the position used to derive the temporal motion information according to the division mode of GPM or AWP, or choose the one that derives the temporal motion information according to different positions Permutations.
  • the motion information candidate list of the embodiment of the present application supplements and enhances the motion information that is more relevant to the lower right, especially to make those motion information related to the lower right in the AWP division and related to the upper left in the original construction method.
  • Blocks that are not strong can get more relevant motion information, thereby improving coding performance; while the correlation in the lower right of GPM is weak, by increasing the lower right time domain motion information candidate position, the lower right correlation can also be improved Performance, thereby improving coding performance.
  • the motion information candidate list in the embodiment of the present application generally refers to the one-way motion information candidate list, but the construction method of the one-way motion information in the embodiment of the present application can be extended to the construction of two-way motion information, thereby one-way motion
  • the construction of the information candidate list can also be extended to the construction of the bidirectional motion information candidate list.
  • This embodiment provides an inter-frame prediction method, which is applied to a decoder. Analyze the code stream to obtain the prediction mode parameters of the current block; when the prediction mode parameters indicate that the preset inter prediction mode is used to determine the inter prediction value of the current block, determine at least one candidate position of the current block; wherein, The candidate position includes at least a lower right position inside the current block and a lower right position outside the current block; at least one temporal motion information of the current block is determined based on the at least one candidate position; based on the At least one piece of temporal motion information is used to construct a new motion information candidate list; according to the new motion information candidate list, the inter-frame prediction value of the current block is determined.
  • the motion information candidate list can be supplemented and enhanced with more relevant motion information on the lower right.
  • This increases the diversity of motion information in the motion information candidate list; especially for GPM or AWP inter-frame prediction modes, by increasing the position of the temporal motion information candidate at the bottom right, the correlation at the bottom right can be improved, thereby improving Codec performance.
  • 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 second processor in the encoder calling a computer program.
  • the computer program can be stored in the second memory.
  • the encoder includes at least a second processor and a second memory.
  • FIG. 10 shows a schematic flowchart of another inter-frame prediction method according to an embodiment of the present application.
  • the method may include:
  • each current block may include a first image component, a second image component, and a third image component; that is, the current block is the first image component, the second image component, or the third image component currently to be predicted in the image to be encoded.
  • Image block may include a first image component, a second image component, and a third image component; that is, the current block is the first image component, the second image component, or the third image component currently to be predicted in the image to be encoded.
  • 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 prediction mode adopted by the current block and the parameters related to the prediction mode.
  • simple decision-making strategies can be used, such as determining based on the magnitude of the distortion value; complex decision-making strategies, such as determining based on the result of Rate Distortion Optimization (RDO), can also be used.
  • RDO Rate Distortion Optimization
  • the embodiments of this application do not make any limitation.
  • the RDO method can be used to determine the prediction mode parameters of the current block.
  • the determining the prediction mode parameter of the current block may include:
  • the minimum rate-distortion cost value is selected from the obtained multiple rate-distortion cost values, and the prediction mode corresponding to the minimum rate-distortion cost value is determined as the prediction mode parameter of the current block.
  • multiple prediction modes can be used to perform precoding processing on the current block respectively.
  • multiple prediction modes usually include inter prediction mode, traditional intra prediction mode, and non-traditional intra prediction mode; among them, the traditional intra prediction mode can include direct current (DC) mode, plane (PLANAR) Mode and angle mode, etc.
  • Non-traditional intra prediction modes can include matrix-based intra prediction (MIP) mode, cross-component linear model prediction (CCLM) mode, frame Intra Block Copy (IBC) mode and PLT (Palette) mode, etc.
  • inter prediction mode may include ordinary inter prediction mode, GPM prediction mode, and AWP prediction mode.
  • the rate-distortion cost value corresponding to each prediction mode can be obtained; then the smallest rate-distortion cost value is selected from the obtained multiple rate-distortion cost values, And the prediction mode corresponding to the minimum rate-distortion cost value is determined as the prediction mode parameter of the current block.
  • the distortion value corresponding to each prediction mode can be obtained; then the minimum distortion value can be selected from the obtained multiple distortion values, and the The prediction mode corresponding to the minimum distortion value is determined as the prediction mode parameter of the current block. In this way, the current block is finally encoded using the determined prediction mode parameters, and in this prediction mode, the prediction residual can be made smaller, and the coding efficiency can be improved.
  • the prediction mode parameter indicates that the preset inter prediction mode is used to determine the inter prediction value of the current block
  • the inter prediction method provided in the embodiment of the present application can be used.
  • the preset inter-frame prediction mode may be a GPM prediction mode or an AWP prediction mode.
  • the motion information may include motion vector information and reference frame information.
  • the reference frame information may be the reference frame corresponding to the reference frame list and the reference index value.
  • the determining at least one candidate position of the current block may include:
  • the first lower right candidate position represents the lower right position inside the current block
  • the second lower right candidate position, the third lower right candidate position, and the fourth lower right candidate position represent the lower right position outside the current block. Lower right position.
  • the lower right position inside the current block can be the first lower right candidate position, as shown by the position filled with 1 in Fig. 7; the lower right position outside the current block can be the second right position.
  • the lower candidate position as shown in the position filled with 2 in Figure 7; the lower right position outside the current block can also be the third lower right candidate position, as shown in the position filled with 3 in Figure 7; the lower right position outside the current block It can also be the fourth lower right candidate position, as shown in the position filled with 4 in FIG. 7.
  • a candidate position set can be formed; and then from the candidate position set, the current At least one candidate position of the block.
  • the acquiring the first lower right candidate position, the second lower right candidate position, the third lower right candidate position, and the fourth lower right candidate position may include:
  • the position corresponding to the first coordinate information is determined as the first lower right candidate position
  • the position corresponding to the second coordinate information is determined as the second lower right candidate position
  • the third coordinate information is corresponding
  • the position of is determined as the third lower right candidate position
  • the position corresponding to the fourth coordinate information is determined as the fourth lower right candidate position.
  • the position of 1 in the lower right corner of the current block is determined according to the pixel position of the lower right corner of the current block.
  • the upper left pixel position of the current block that is, the pixel position of the upper left corner
  • the width of the current block is represented by width
  • the height of the current block is represented by height
  • the first coordinate information is (x+width-1, y+height-1)
  • the second coordinate information is (x+width, y+height)
  • the third coordinate information is (x+width-1, y+height )
  • the fourth coordinate information is (x+width, y+height-1); then according to these four coordinate information, the first lower right candidate position (ie 1 position) and the second lower right candidate position ( That is, position 2), the third lower right candidate position (that is, position 3), and the fourth lower right candidate position (that is, position 4).
  • the method may further include:
  • the second coordinate information, the third coordinate information, and the fourth coordinate information are corrected by using the first preset offset to obtain the first corrected second coordinate information and the first corrected third coordinate information. Coordinate information and the first corrected fourth coordinate information;
  • the position corresponding to the first coordinate information is determined as the first lower right candidate position
  • the position corresponding to the first corrected second coordinate information is determined as the second lower right candidate position
  • the The position corresponding to the first corrected third coordinate information is determined to be the third lower right candidate position
  • the position corresponding to the first corrected fourth coordinate information is determined to be the fourth lower right candidate position.
  • the position of 1 can still be the position determined according to the first coordinate information, that is, (x+width-1, y+height-1); and the position of 2 can be based on the first coordinate information.
  • the corrected second coordinate information that is, the position determined by (x+width+offset, y+height+offset);
  • the position of 3 can be the third coordinate information after the first correction, that is, (x+width-1 , Y+height+offset);
  • the position of 4 may be the position determined according to the first modified fourth coordinate information, that is, (x+width+offset, y+height-1).
  • the method may further include:
  • the candidate reference frame is a reference frame for determining the motion information referenced by the temporal motion information
  • the image A block includes at least a neighboring block, and the neighboring block is spatially adjacent to the current block in the current frame
  • the position corresponding to the second corrected first coordinate information is determined as the first lower right candidate position, and the position corresponding to the second corrected second coordinate information is determined as the second lower right candidate Position, the position corresponding to the second corrected third coordinate information is determined as the third lower right candidate position, and the position corresponding to the second corrected fourth coordinate information is determined as the fourth right Next candidate position.
  • the determining the second preset offset may include:
  • the motion information of the preset neighboring block on the current frame is scaled to the candidate reference frame, a scaled motion vector is obtained, and the scaled motion vector is determined as the second preset offset.
  • the determination of (x', y') can be to find the motion vector of a certain neighboring block to the reference frame used to derive the temporal motion information as (x', y'), or to find a certain phase
  • the motion information of the neighboring blocks is scaled to the motion vector of the reference frame used to derive the temporal motion information as (x', y'), which is not specifically limited here.
  • a possible implementation is to find the corresponding position in the reference frame information used to derive the time-domain motion information according to the above method, and it is necessary to consider the block on the current frame to the reference used to derive the time-domain motion information.
  • the 2 position is the position determined according to (x+width+offset, y+height+offset), then consider the current frame (x+width+offset).
  • the second corrected second coordinate information is (x+width+offset+x', y+height+offset+y'), which is 2 position It may be a position determined by (x+width+offset+x', y+height+offset+y') of the reference frame used to derive the temporal motion information.
  • Another possible implementation is to find the corresponding position in the reference frame information used to derive the time-domain motion information in the above manner, without considering the existence of the block on the current frame to the reference frame used to derive the time-domain motion information.
  • the 2 position is the position determined according to (x+width+offset, y+height+offset). At this time, (x+width+offset) is no longer considered in the current frame.
  • the second coordinate information at this time is (x+width+offset, y+height+offset), which is 2 positions It may be a position determined by (x+width+offset, y+height+offset) of the reference frame used to derive the temporal motion information.
  • the specific implementation can refer to the description on the decoder side.
  • the determining at least one candidate position of the current block from the candidate position set may include:
  • a candidate position corresponding to a high priority is selected according to a preset priority order and the selected candidate position is available, and the selected candidate position is determined as a candidate position of the current block.
  • the determining at least one candidate position of the current block from the candidate position set may include:
  • a plurality of candidate positions are selected according to a preset priority order and the selected candidate positions are available, and the selected candidate positions are determined as the plurality of candidate positions of the current block.
  • one possible way is to use only one of the above four positions, and another possible way is to use a combination of some of the above four positions, such as using 2, 3, 4 The position combination of 3, 4, etc. are used.
  • all positions 1, 2, 3, and 4 are also a combination.
  • the permutation and combination of any number (1, 2, 3, 4) of the above four positions can be used as a selection method for determining candidate positions. It should be noted that when multiple positions need to be used, one possible way is to set 2 to be arranged first, that is, position 2 has the highest priority.
  • the method may further include:
  • the candidate position to be selected belongs to the lower right position outside the current block and none of the lower right positions outside the current block is available, then the first lower right position The candidate position is determined as the candidate position to be selected.
  • positions 2, 3, and 4 are all outside the current block, and positions 2, 3, and 4 are sometimes unavailable. If you encounter an image boundary, a boundary that cannot be crossed by a certain inter-frame reference, etc., positions 2, 3, and 4 may not be available at this time. In the case that positions 2, 3, and 4 are unavailable, one possible way is to use position 1 instead of the unavailable position. If the 1 position has been used in the construction of the current motion information candidate list, then the unavailable positions can also be skipped.
  • the candidate position is the position of the lower right corner of the current block, which can be the lower right position inside the current block or the lower right position outside the current block.
  • these Candidate positions are used to determine at least one temporal motion vector of the current block, so that when temporal motion information is used in the construction of the motion information candidate list, the temporal motion information corresponding to the position of the lower right corner of the current block can be added, thereby improving the correlation of the lower right corner .
  • S1003 Determine at least one temporal motion information of the current block based on the at least one candidate position.
  • the temporal motion information can be determined according to the obtained candidate position.
  • the determining at least one temporal motion information of the current block based on the at least one candidate position may include:
  • For each candidate position determine the time domain position associated with the candidate position in the corresponding reference frame information, and determine the motion information used by the time domain position as the time domain motion information corresponding to the candidate position;
  • At least one temporal motion information is correspondingly obtained.
  • the temporal motion information is determined according to the motion information used in the corresponding position in a certain reference frame information. And for different candidate positions, different time-domain motion information can be obtained. In this way, after the time-domain motion information is derived, the obtained time-domain motion information can be filled into the motion information candidate list to obtain a new motion information candidate list.
  • this step may include: filling at least one temporal motion information into the motion information candidate list to obtain the new motion information candidate list.
  • the method may further include:
  • the ratio of the temporal motion information in the motion information candidate list can be increased. If at least 1 position is reserved for temporal motion information in the candidate list in AWP prediction mode, then it can be adjusted to reserve at least 2 (or 3) positions for temporal motion information in the candidate list in AWP prediction mode, so that the new At least two filling positions of time-domain motion information are reserved in the candidate list of motion information.
  • the prediction mode parameter indicates that a preset inter prediction mode (such as GPM or AWP) is used to determine the inter prediction value of the current block
  • two partitions of the current block can be determined at this time. That is, the method may further include: when the prediction mode parameter indicates that the inter prediction value of the current block is determined using GPM or AWP, determining two partitions of the current block; wherein, the two partitions include the first partition And the second partition.
  • a preset inter prediction mode such as GPM or AWP
  • the candidate positions used to derive the time-domain motion information can also be selected according to the division mode of GPM or AWP, or the permutation and combination of deriving the time-domain motion information from different positions can be selected.
  • the method may further include:
  • the step of determining at least one temporal motion information of the current block based on the at least one candidate position is performed according to the correspondingly determined at least one candidate position.
  • the at least two sets of division patterns include a first set of division patterns and a second set of division patterns, and the method may further include:
  • the upper left pixel position inside the current block is determined as at least one candidate position of the current block, and the determination based on the at least one candidate position is performed.
  • the lower right pixel position outside the current block is determined as at least one candidate position of the current block, and the determination based on the at least one candidate position is performed.
  • the step of at least one temporal motion information of the current block is performed.
  • the method may further include:
  • the first number or the second number is less than a preset value, determine at least one candidate position of the current block based on the lower right pixel position outside the current block, and execute the step based on the at least one candidate position , The step of determining at least one temporal motion information of the current block;
  • the upper left pixel position of the current block is determined as at least one candidate position of the current block, and the execution based on the at least one candidate position , The step of determining at least one temporal motion information of the current block.
  • one possible way is to select the position used to derive the time-domain motion information according to the division mode of GPM or AWP, or select the permutation and combination of deriving the time-domain motion information according to different positions.
  • the specific implementation can refer to the description on the decoder side.
  • a new motion information candidate list can be constructed. Subsequently, the inter prediction value of the current block is determined according to the new motion information candidate list.
  • S1005 Determine the inter prediction value of the current block according to the new motion information candidate list.
  • the prediction mode parameter indicates to use GPM or AWP to determine the inter-frame prediction value of the current block
  • two partitions of the current block can be determined at this time; wherein, the two partitions may include the first partition and the second partition .
  • the motion information corresponding to the first partition of the current block and the motion information of the second partition can be determined; then according to the motion information corresponding to the first partition and the second partition
  • the motion information can determine the inter-frame prediction value of the current block.
  • the determining the inter prediction value of the current block according to the new motion information candidate list may include:
  • the new motion information candidate list determine the motion information of the first partition and the motion information of the second partition, and set the first motion information index value as the motion information of the first partition in the The index number value in the new motion information candidate list, and the second motion information index value is set as the index number value of the motion information of the second partition in the new motion information candidate list;
  • the method may further include:
  • the first motion information index value and the second motion information index value are written into a code stream.
  • GPM or AWP is an inter-frame prediction technology.
  • GPM or AWP needs to transmit a flag of whether GPM or AWP is used in the code stream and two motion information index values (such as The first motion information index value and the second motion information index value), so that the subsequent decoder side can directly obtain the flag of whether GPM or AWP is used and the two motion information index values by parsing the code stream.
  • GPM or AWP For the current block, you can try to use GPM or AWP for precoding and other available prediction modes for precoding to determine whether to use GPM or AWP. If the precoding cost of GPM or AWP is the smallest, then GPM or AWP can be used. At the same time, when trying to use GPM or AWP, a motion information candidate list can also be constructed, and this construction method is the same as the construction method described in the embodiment on the decoder side.
  • two unidirectional motion information is selected from the motion information candidate list, and then one of the GPM or AWP division modes is selected for precoding to determine the precoding cost of GPM or AWP.
  • One possible way is to combine all possible one-way motion information candidates, determine the cost based on all possible GPM or AWP division modes, and then replace the two least expensive one-way motion information and the GPM or AWP division mode The combination of two one-way motion information and GPM or AWP finally determined prediction mode.
  • write information about whether GPM or AWP is used in the code stream If it is determined to use GPM or AWP, write the prediction mode parameter of GPM or AWP and two unidirectional motion information index values in the code stream. In this way, if the current mode is the skip mode, then the prediction block is both a coding block, which means that the coding of the current block is finished. If the current mode is not the skip mode, quantization coefficients need to be written in the bitstream; among them, the quantization coefficient is a residual block composed of the actual value of the current block minus the residual obtained by the inter-frame prediction value, and the residual The difference block is obtained by transforming and quantizing. At this time, the encoding of the current block ends.
  • the current mode is not the skip mode
  • the quantized coefficients are analyzed through entropy decoding, then inverse quantization and inverse transformation are used to obtain the residual block, and finally the residual block and the prediction block are added to obtain the decoded block, which means that the decoding of the current block is finished.
  • This embodiment provides an inter-frame prediction method, which is applied to an encoder. Determine the prediction mode parameter of the current block; when the prediction mode parameter indicates that the preset inter prediction mode is used to determine the inter prediction value of the current block, determine at least one candidate position of the current block; wherein, the candidate position Including at least a lower right position inside the current block and a lower right position outside the current block; based on the at least one candidate position, determining at least one temporal motion information of the current block; based on the at least one temporal domain Motion information, constructing a new motion information candidate list; and determining the inter-frame prediction value of the current block according to the new motion information candidate list.
  • the motion information candidate list can be supplemented and enhanced with more relevant motion information on the lower right.
  • This increases the diversity of motion information in the motion information candidate list; especially for GPM or AWP inter-frame prediction modes, by increasing the position of the temporal motion information candidate at the bottom right, the correlation at the bottom right can be improved, thereby improving Codec performance.
  • FIG. 11 shows a schematic diagram of the composition structure of a decoder 110 provided by an embodiment of the present application.
  • the decoder 110 may include: an analysis unit 1101, a first determination unit 1102, a first construction unit 1103, and a first prediction unit 1104; wherein,
  • the parsing unit 1101 is configured to parse the code stream and obtain the prediction mode parameters of the current block;
  • the first determining unit 1102 is configured to determine at least one candidate position of the current block when the prediction mode parameter indicates that the preset inter prediction mode is used to determine the inter prediction value of the current block; wherein, the candidate position Including at least the lower right position inside the current block and the lower right position outside the current block;
  • the first determining unit 1102 is further configured to determine at least one temporal motion information of the current block based on the at least one candidate position;
  • the first construction unit 1103 is configured to construct a new motion information candidate list based on the at least one temporal motion information
  • the first prediction unit 1104 is configured to determine the inter prediction value of the current block according to the new motion information candidate list.
  • the motion information includes motion vector information and reference frame information.
  • the first determining unit 1102 is further configured to obtain a first lower right candidate position, a second lower right candidate position, a third lower right candidate position, and a fourth lower right candidate position to form a candidate position set; In the candidate position set, at least one candidate position of the current block is determined; wherein, the first lower right candidate position represents the lower right position inside the current block, and the second lower right candidate position, the third The lower right candidate position and the fourth lower right candidate position represent the lower right position outside the current block.
  • the first determining unit 1102 is further configured to obtain the coordinate information corresponding to the upper left pixel position of the current block, the width information of the current block, and the height information of the current block; respectively use the upper left
  • the coordinate information corresponding to the pixel position, the width information, and the height information are calculated to obtain the first coordinate information, the second coordinate information, the third coordinate information, and the fourth coordinate information;
  • the position is determined as the first lower right candidate position
  • the position corresponding to the second coordinate information is determined as the second lower right candidate position
  • the position corresponding to the third coordinate information is determined as the third right
  • the position corresponding to the fourth coordinate information is determined as the fourth lower right candidate position.
  • the first determining unit 1102 is further configured to use a first preset offset to correct the second coordinate information, the third coordinate information, and the fourth coordinate information to obtain the first The corrected second coordinate information, the first corrected third coordinate information, and the first corrected fourth coordinate information; the position corresponding to the first coordinate information is determined as the first lower right candidate position, and The position corresponding to the first corrected second coordinate information is determined to be the second lower right candidate position, and the position corresponding to the first corrected third coordinate information is determined to be the third lower right candidate position , Determining a position corresponding to the first corrected fourth coordinate information as the fourth lower right candidate position.
  • the first determining unit 1102 is further configured to determine a second preset offset when there is a motion vector from the image block on the current frame to the candidate reference frame; wherein, the candidate reference frame is determined
  • the reference frame of the motion information referenced by the temporal motion information, the image block includes at least an adjacent block, and the adjacent block is spatially adjacent to the current block in the current frame; and the first coordinate is adjusted by a second preset offset Information, the second coordinate information, the third coordinate information, and the fourth coordinate information are corrected to obtain the second corrected first coordinate information, the second corrected second coordinate information, and the second corrected The third coordinate information and the second corrected fourth coordinate information;
  • the position corresponding to the second corrected first coordinate information is determined as the first lower right candidate position, and the second corrected
  • the position corresponding to the second coordinate information is determined as the second lower right candidate position, the position corresponding to the second corrected third coordinate information is determined as the third lower right candidate position, and the second corrected The position corresponding to the subsequent fourth coordinate information is determined as the fourth lower right candidate position.
  • the first determining unit 1102 is further configured to obtain a motion vector from a preset neighboring block on the current frame to the candidate reference frame, and determine the obtained motion vector as the second predetermined reference frame. Set the offset; or, scale the motion information of the preset neighboring block on the current frame to the candidate reference frame, obtain the scaled motion vector, and determine the scaled motion vector as the first 2. Preset offset.
  • the decoder 110 may further include a first selection unit 1105 configured to, when the number of the at least one time-domain motion information is one, select from the candidate position set according to the preset Assume that a candidate position is selected, and the selected candidate position is determined as a candidate position of the current block; or, from the candidate position set, a candidate position corresponding to a high priority is selected according to a preset priority order and is selected The selected candidate position is available, and the selected candidate position is determined as a candidate position of the current block.
  • a first selection unit 1105 configured to, when the number of the at least one time-domain motion information is one, select from the candidate position set according to the preset Assume that a candidate position is selected, and the selected candidate position is determined as a candidate position of the current block; or, from the candidate position set, a candidate position corresponding to a high priority is selected according to a preset priority order and is selected The selected candidate position is available, and the selected candidate position is determined as a candidate position of the current block.
  • the first selection unit 1105 is further configured to select multiple candidate positions from the set of candidate positions according to a preset combination when the number of the at least one temporal motion information is multiple. , Determine the selected multiple candidate locations as multiple candidate locations of the current block; or, from the candidate location set, select multiple candidate locations according to a preset priority order and the selected candidate locations are available, The selected multiple candidate positions are determined as multiple candidate positions of the current block.
  • the first selection unit 1105 is further configured to select a candidate position from the set of candidate positions, if the candidate position to be selected belongs to the lower right position outside the current block and the position outside the current block If none of the lower right positions are available, the first lower right candidate position is determined as the candidate position to be selected.
  • the decoder 110 may further include a first adjustment unit 1106 configured to adjust the scale value of the temporal motion information in the new motion information candidate list; according to the adjusted scale value, Controlling to reserve at least two filling positions of time domain motion information in the new motion information candidate list.
  • a first adjustment unit 1106 configured to adjust the scale value of the temporal motion information in the new motion information candidate list; according to the adjusted scale value, Controlling to reserve at least two filling positions of time domain motion information in the new motion information candidate list.
  • the first determining unit 1102 is further configured to determine the reference frame information corresponding to each candidate position in the at least one candidate position; for each candidate position, determine the reference frame information corresponding to the corresponding reference frame information.
  • the candidate position is associated with a time domain position, and the motion information used for the time domain position is determined as the time domain motion information corresponding to the candidate position; based on the at least one candidate position, at least one time domain motion information is correspondingly obtained.
  • the preset inter prediction mode includes: GPM or AWP;
  • the first determining unit 1102 is further configured to determine two partitions of the current block when the prediction mode parameter indicates that GPM or AWP is used to determine the inter prediction value of the current block; wherein, the two partitions include the first Partition and second partition.
  • the first determining unit 1102 is further configured to group multiple partition modes under GPM or AWP to obtain at least two sets of partition patterns; determine each group of partitions in the at least two sets of partition patterns At least one candidate position corresponding to each of the pattern sets; wherein the division pattern sets of different groups correspond to different at least one candidate positions; for the division patterns in each group of division pattern sets, the execution is performed according to the correspondingly determined at least one candidate position The step of determining at least one temporal motion information of the current block based on the at least one candidate position.
  • the first determining unit 1102 is further configured such that the at least two sets of division patterns include a first set of division patterns and a second set of division patterns, and if the current division pattern belongs to the first group of division patterns Set, the upper left pixel position inside the current block is determined as at least one candidate position of the current block, and the step of determining at least one temporal motion information of the current block based on the at least one candidate position is performed If the current division mode belongs to the second set of division modes, the lower right pixel position outside the current block is determined as at least one candidate position of the current block, and the execution is based on the at least one candidate position, The step of determining at least one temporal motion information of the current block.
  • the first determining unit 1102 is further configured to determine a first number corresponding to a first spatial pixel position; wherein the first spatial pixel position is adjacent to at least one boundary space of the first partition; Determine the second number corresponding to the second spatial pixel position; wherein the second spatial pixel position is adjacent to at least one boundary space of the second partition; and if the first number or the second number is less than the predetermined Set a value, the lower right pixel position outside the current block is used to determine at least one candidate position of the current block, and the determination of at least one temporal motion information of the current block based on the at least one candidate position is performed.
  • the parsing unit 1101 is further configured to parse the code stream to determine a first motion information index value corresponding to the first partition and a second motion information index value corresponding to the second partition;
  • the first determining unit 1102 is further configured to determine the motion information in the new motion information candidate list indicated by the first motion information index value as the first partition based on the new motion information candidate list.
  • Motion information determining the motion information in the new motion information candidate list indicated by the second motion information index value as the motion information of the second partition;
  • the first prediction unit 1104 is further configured to calculate a first prediction value of the first partition using the motion information of the first partition, and calculate a second prediction value of the second partition using the motion information of the second partition And performing weighted fusion on the first predicted value and the second predicted value to obtain the inter-frame predicted value of the current block.
  • a "unit" may be a part of a circuit, a part of a processor, a part of a program, or software, etc., of course, may also be a module, or may also be non-modular.
  • the various components in this embodiment may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
  • the above-mentioned integrated unit can be realized in the form of hardware or software function module.
  • the integrated unit is implemented in the form of a software function module and is not sold or used as an independent product, it can be stored in a computer readable storage medium.
  • the technical solution of this embodiment is essentially or It is said that the part that contributes to the existing technology or all or part of the technical solution can be embodied in the form of a software product.
  • the computer software product is stored in a storage medium and includes several instructions to enable a computer device (which can It is a personal computer, a server, or a network device, etc.) or a processor (processor) that executes all or part of the steps of the method described in this embodiment.
  • the aforementioned storage media include: U disk, mobile hard disk, read only memory (Read Only Memory, ROM), random access memory (Random Access Memory, RAM), magnetic disk or optical disk and other media that can store program codes.
  • the embodiment of the present application provides a computer storage medium, which is applied to the decoder 110, and the computer storage medium stores an inter-frame prediction program.
  • the inter-frame prediction program is executed by the first processor to realize the decoding in the foregoing embodiment. The method described on the device side.
  • FIG. 12 shows an example of a specific hardware structure of the decoder 110 provided by an embodiment of the present application, which may include: a first communication interface 1201, a first memory 1202, and a first communication interface 1201; A processor 1203; various components are coupled together through a first bus system 1204.
  • the first bus system 1204 is used to implement connection and communication between these components.
  • the first bus system 1204 also includes a power bus, a control bus, and a status signal bus.
  • various buses are marked as the first bus system 1204 in FIG. 12. in,
  • the first communication interface 1201 is used for receiving and sending signals in the process of sending and receiving information with other external network elements;
  • the first memory 1202 is configured to store a computer program that can run on the first processor 1203;
  • the first processor 1203 is configured to execute: when running the computer program:
  • the prediction mode parameter indicates that the preset inter prediction mode is used to determine the inter prediction value of the current block
  • at least one candidate position of the current block is determined; wherein, the candidate position includes at least the internal prediction value of the current block The lower right position and the lower right position outside the current block;
  • the first memory 1202 in the embodiment of the present application may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memory.
  • the non-volatile memory can be read-only memory (Read-Only Memory, ROM), programmable read-only memory (Programmable ROM, PROM), erasable programmable read-only memory (Erasable PROM, EPROM), and electrically available Erase programmable read-only memory (Electrically EPROM, EEPROM) or flash memory.
  • the volatile memory may be a random access memory (Random Access Memory, RAM), which is used as an external cache.
  • RAM static random access memory
  • DRAM dynamic random access memory
  • DRAM synchronous dynamic random access memory
  • DDRSDRAM Double Data Rate Synchronous Dynamic Random Access Memory
  • Enhanced SDRAM, ESDRAM Synchronous Link Dynamic Random Access Memory
  • Synchlink DRAM Synchronous Link Dynamic Random Access Memory
  • DRRAM Direct Rambus RAM
  • the first processor 1203 may be an integrated circuit chip with signal processing capability. In the implementation process, the steps of the foregoing method can be completed by an integrated logic circuit of hardware in the first processor 1203 or instructions in the form of software.
  • the above-mentioned first processor 1203 may be a general-purpose processor, a digital signal processor (Digital Signal Processor, DSP), an application specific integrated circuit (ASIC), a ready-made programmable gate array (Field Programmable Gate Array, FPGA) Or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components.
  • DSP Digital Signal Processor
  • ASIC application specific integrated circuit
  • FPGA ready-made programmable gate array
  • the methods, steps, and logical block diagrams disclosed in the embodiments of the present application can be implemented or executed.
  • the general-purpose processor may be a microprocessor or the processor may also be any conventional processor or the like.
  • the steps of the method disclosed in the embodiments of the present application may be directly embodied as being executed and completed by a hardware decoding processor, or executed and completed by a combination of hardware and software modules in the decoding processor.
  • the software module can be located in a mature storage medium in the field, such as random access memory, flash memory, read-only memory, programmable read-only memory, or electrically erasable programmable memory, registers.
  • the storage medium is located in the first memory 1202, and the first processor 1203 reads the information in the first memory 1202, and completes the steps of the foregoing method in combination with its hardware.
  • the embodiments described in this application can be implemented by hardware, software, firmware, middleware, microcode, or a combination thereof.
  • the processing unit can be implemented in one or more application specific integrated circuits (ASICs), digital signal processors (Digital Signal Processing, DSP), digital signal processing devices (DSP Device, DSPD), programmable Logic device (Programmable Logic Device, PLD), Field-Programmable Gate Array (Field-Programmable Gate Array, FPGA), general-purpose processors, controllers, microcontrollers, microprocessors, and others for performing the functions described in this application Electronic unit or its combination.
  • ASICs application specific integrated circuits
  • DSP digital signal processors
  • DSP Device digital signal processing devices
  • DSPD digital signal processing devices
  • PLD programmable Logic Device
  • Field-Programmable Gate Array Field-Programmable Gate Array
  • FPGA Field-Programmable Gate Array
  • the technology described in this application can be implemented through modules (for example, procedures, functions, etc.) that perform the functions
  • the first processor 1203 is further configured to execute the method described in any one of the foregoing embodiments when running the computer program.
  • This embodiment provides a decoder, which may include a parsing unit, a first determination unit, a first construction unit, and a first prediction unit.
  • the motion information candidate list can be supplemented and enhanced with more relevant motion information at the bottom right, thereby increasing the diversity of motion information in the motion information candidate list; especially for GPM or AWP inter prediction modes.
  • the correlation at the bottom right can be improved, thereby improving the coding and decoding performance.
  • FIG. 13 shows a schematic diagram of the composition structure of an encoder 130 provided by an embodiment of the present application.
  • the encoder 130 may include: a second determination unit 1301, a second construction unit 1302, and a second prediction unit 1303; wherein,
  • the second determining unit 1301 is configured to determine the prediction mode parameter of the current block; and when the prediction mode parameter indicates that the preset inter prediction mode is used to determine the inter prediction value of the current block, determine at least one of the current block Candidate positions; wherein the candidate positions include at least a lower right position inside the current block and a lower right position outside the current block;
  • the second determining unit 1301 is further configured to determine at least one temporal motion information of the current block based on the at least one candidate position;
  • the second construction unit 1302 is configured to construct a new motion information candidate list based on the at least one temporal motion information
  • the second prediction unit 1303 is configured to determine the inter prediction value of the current block according to the new motion information candidate list.
  • the motion information includes motion vector information and reference frame information.
  • the encoder 130 may further include a pre-encoding unit 1304 and a second selection unit 1305; wherein,
  • the pre-coding unit 1304 is configured to perform pre-coding processing on the current block by using multiple prediction modes to obtain the rate-distortion cost value corresponding to each prediction mode;
  • the second selection unit 1305 is configured to select the minimum rate-distortion cost value from the obtained multiple rate-distortion cost values, and determine the prediction mode corresponding to the minimum rate-distortion cost value as the prediction mode parameter of the current block.
  • the second determining unit 1301 is further configured to obtain a first lower right candidate position, a second lower right candidate position, a third lower right candidate position, and a fourth lower right candidate position to form a candidate position set; In the candidate position set, at least one candidate position of the current block is determined; wherein, the first lower right candidate position represents the lower right position inside the current block, and the second lower right candidate position, the third The lower right candidate position and the fourth lower right candidate position represent the lower right position outside the current block.
  • the second determining unit 1301 is further configured to obtain the coordinate information corresponding to the upper left pixel position of the current block, the width information of the current block, and the height information of the current block; respectively use the upper left
  • the coordinate information corresponding to the pixel position, the width information, and the height information are calculated to obtain the first coordinate information, the second coordinate information, the third coordinate information, and the fourth coordinate information;
  • the position is determined as the first lower right candidate position
  • the position corresponding to the second coordinate information is determined as the second lower right candidate position
  • the position corresponding to the third coordinate information is determined as the third right
  • the position corresponding to the fourth coordinate information is determined as the fourth lower right candidate position.
  • the second determining unit 1301 is further configured to use a first preset offset to correct the second coordinate information, the third coordinate information, and the fourth coordinate information to obtain the first The corrected second coordinate information, the first corrected third coordinate information, and the first corrected fourth coordinate information; the position corresponding to the first coordinate information is determined as the first lower right candidate position, and The position corresponding to the first corrected second coordinate information is determined to be the second lower right candidate position, and the position corresponding to the first corrected third coordinate information is determined to be the third lower right candidate position , Determining a position corresponding to the first corrected fourth coordinate information as the fourth lower right candidate position.
  • the second determining unit 1301 is further configured to determine a second preset offset when there is a motion vector from the image block on the current frame to the candidate reference frame; wherein, the candidate reference frame is determined
  • the reference frame of the motion information referenced by the temporal motion information, the image block includes at least an adjacent block, and the adjacent block is spatially adjacent to the current block in the current frame; and the first coordinate is adjusted by a second preset offset Information, the second coordinate information, the third coordinate information, and the fourth coordinate information are corrected to obtain the second corrected first coordinate information, the second corrected second coordinate information, and the second corrected The third coordinate information and the second corrected fourth coordinate information;
  • the position corresponding to the second corrected first coordinate information is determined as the first lower right candidate position, and the second corrected
  • the position corresponding to the second coordinate information is determined as the second lower right candidate position, the position corresponding to the second corrected third coordinate information is determined as the third lower right candidate position, and the second corrected The position corresponding to the subsequent fourth coordinate information is determined as the fourth lower right candidate position.
  • the second determining unit 1301 is further configured to acquire a motion vector from a preset neighboring block on the current frame to the candidate reference frame, and determine the acquired motion vector as the second predetermined reference frame. Set the offset; or, scale the motion information of the preset neighboring block on the current frame to the candidate reference frame, obtain the scaled motion vector, and determine the scaled motion vector as the first 2. Preset offset.
  • the second selection unit 1305 is further configured to select a candidate position from the set of candidate positions in a preset manner when the number of the at least one temporal motion information is one, and then The selected candidate position is determined as a candidate position of the current block; or, from the candidate position set, a candidate position corresponding to a high priority is selected according to a preset priority order and the selected candidate position is available, and the selected candidate position The candidate position of is determined as a candidate position of the current block.
  • the second selection unit 1305 is further configured to select a plurality of candidate positions from the set of candidate positions according to a preset combination, and determine the selected candidate positions as the plurality of candidate positions of the current block.
  • Candidate positions; or, from the candidate position set, select multiple candidate positions according to a preset priority order and the selected candidate positions are available, and determine the selected multiple candidate positions as multiple candidates of the current block Location.
  • the second selection unit 1305 is further configured to select a candidate position from the candidate position set, if the candidate position to be selected belongs to the lower right position outside the current block and the position outside the current block If none of the lower right positions are available, the first lower right candidate position is determined as the candidate position to be selected.
  • the encoder 130 may further include a second adjustment unit 1306 configured to adjust the scale value of the temporal motion information in the new motion information candidate list; according to the adjusted scale value, Controlling to reserve at least two filling positions of time domain motion information in the new motion information candidate list.
  • a second adjustment unit 1306 configured to adjust the scale value of the temporal motion information in the new motion information candidate list; according to the adjusted scale value, Controlling to reserve at least two filling positions of time domain motion information in the new motion information candidate list.
  • the second determining unit 1301 is further configured to determine the reference frame information corresponding to each candidate position in the at least one candidate position; for each candidate position, determine the reference frame information corresponding to the corresponding reference frame information.
  • the candidate position is associated with a time domain position, and the motion information used for the time domain position is determined as the time domain motion information corresponding to the candidate position; based on the at least one candidate position, at least one time domain motion information is correspondingly obtained.
  • the preset inter prediction mode includes: GPM or AWP;
  • the second determining unit 1301 is further configured to determine two partitions of the current block when the prediction mode parameter indicates that GPM or AWP is used to determine the inter prediction value of the current block; wherein, the two partitions include the first Partition and second partition.
  • the second determining unit 1301 is further configured to group multiple partition modes under GPM or AWP to obtain at least two sets of partition patterns; determine each group of partitions in the at least two sets of partition patterns At least one candidate position corresponding to each of the pattern sets; wherein the division pattern sets of different groups correspond to different at least one candidate positions; for the division patterns in each group of division pattern sets, the execution is performed according to the correspondingly determined at least one candidate position The step of determining at least one temporal motion information of the current block based on the at least one candidate position.
  • the second determining unit 1301 is further configured such that the at least two sets of division patterns include a first set of division patterns and a second set of division patterns, if the division pattern to be used belongs to the first group Partition mode set, the upper left pixel position inside the current block is determined as at least one candidate position of the current block, and the at least one temporal motion information of the current block is determined based on the at least one candidate position If the division mode to be used belongs to the second group of division mode sets, the lower right pixel position outside the current block is determined as at least one candidate position of the current block, and the execution is based on the at least A candidate position, the step of determining at least one temporal motion information of the current block.
  • the second determining unit 1301 is further configured to determine a first number corresponding to a first spatial pixel position; wherein the first spatial pixel position is adjacent to at least one boundary space of the first partition; Determine the second number corresponding to the second spatial pixel position; wherein the second spatial pixel position is adjacent to at least one boundary space of the second partition; and if the first number or the second number is less than the predetermined Set a value, the lower right pixel position outside the current block is used to determine at least one candidate position of the current block, and the determination of at least one temporal motion information of the current block based on the at least one candidate position is performed.
  • the second determining unit 1301 is further configured to determine the motion information of the first partition and the motion information of the second partition based on the new motion information candidate list, and combine the first motion information
  • the index value is set to the index number value of the motion information of the first partition in the new motion information candidate list
  • the second motion information index value is set to the motion information of the second partition in the new motion information.
  • the second prediction unit 1303 is further configured to calculate a first prediction value of the first partition using the motion information of the first partition, and calculate a second prediction value of the second partition using the motion information of the second partition And performing weighted fusion on the first predicted value and the second predicted value to obtain the inter-frame predicted value of the current block.
  • the encoder 130 may further include a writing unit 1307 configured to write the first motion information index value and the second motion information index value into a code stream.
  • a "unit" may be a part of a circuit, a part of a processor, a part of a program or software, etc., of course, it may also be a module, or it may be non-modular.
  • the various components in this embodiment may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
  • the above-mentioned integrated unit can be realized in the form of hardware or software function module.
  • the integrated unit is implemented in the form of a software function module and is not sold or used as an independent product, it can be stored in a computer readable storage medium.
  • this embodiment provides a computer storage
  • the medium is applied to the encoder 130, and the computer storage medium stores an inter-frame prediction program.
  • the inter-frame prediction program is executed by the second processor, the method described on the encoder side in the foregoing embodiment is implemented.
  • FIG. 14 shows an example of the specific hardware structure of the encoder 130 provided by the embodiment of the present application, which may include: a second communication interface 1401, a second memory 1402, and a second communication interface 1401; Two processors 1403; various components are coupled together through a second bus system 1404.
  • the second bus system 1404 is used to implement connection and communication between these components.
  • the second bus system 1404 also includes a power bus, a control bus, and a status signal bus.
  • various buses are marked as the second bus system 1404 in FIG. 14. in,
  • the second communication interface 1401 is used for receiving and sending signals in the process of sending and receiving information with other external network elements;
  • the second memory 1402 is configured to store a computer program that can run on the second processor 1403;
  • the second processor 1403 is configured to execute: when the computer program is running:
  • the prediction mode parameter indicates that the preset inter prediction mode is used to determine the inter prediction value of the current block
  • at least one candidate position of the current block is determined; wherein, the candidate position includes at least the internal prediction value of the current block The lower right position and the lower right position outside the current block;
  • the second processor 1403 is further configured to execute the method described in any one of the foregoing embodiments when the computer program is running.
  • the hardware function of the second memory 1402 is similar to that of the first memory 1202, and the hardware function of the second processor 1403 is similar to that of the first processor 1203; it will not be described in detail here.
  • This embodiment provides an encoder, which may include a second determination unit, a second construction unit, and a second prediction unit.
  • the motion information candidate list can be supplemented and enhanced with more relevant motion information at the bottom right, thereby increasing the diversity of motion information in the motion information candidate list; especially for GPM or AWP inter prediction modes
  • the correlation at the bottom right can be improved, thereby improving the coding and decoding performance.
  • the temporal motion information of the current block is determined based on the lower right position inside the current block or the lower right position outside the current block, it can be added in the motion information candidate list Enhance the motion information that is more relevant to the bottom right, thereby increasing the diversity of motion information in the motion information candidate list; especially for GPM or AWP inter prediction modes, by adding the time domain motion information candidate position at the bottom right
  • the method can improve the correlation in the lower right, which can improve the codec performance.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

一种帧间预测方法、编码器、解码器以及计算机存储介质,方法应用于解码器,包括:解析码流,获取当前块的预测模式参数;当预测模式参数指示使用预设的帧间预测模式确定当前块的帧间预测值时,确定当前块的至少一个候选位置;其中,候选位置至少包括当前块内部的右下位置和当前块外部的右下位置;基于至少一个候选位置,确定当前块的至少一个时域运动信息;基于至少一个时域运动信息,构建新的运动信息候选列表;根据新的运动信息候选列表,确定当前块的帧间预测值。

Description

帧间预测方法、编码器、解码器以及计算机存储介质
相关申请的交叉引用
本申请要求在2020年05月29日提交中国专利局、申请号为202010479444.3、申请名称为“帧间预测方法、编码器、解码器以及计算机存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及视频编解码技术领域,尤其涉及一种帧间预测方法、编码器、解码器以及计算机存储介质。
背景技术
在视频编解码领域,针对当前块进行编解码的过程,除了采用帧内预测方式外,还可以采用帧间预测方式。其中,帧间预测可以包括帧间几何划分预测模式(Geometric Partitioning Mode,GPM)和角度加权预测模式(Angular Weighted Prediction,AWP)等,通过将帧间的当前块划分为两个非矩形的分区(或两个块)分别进行预测后再加权融合,能够得到当前块的预测值。
目前,在GPM或AWP的预测过程中,虽然使用了空域运动信息和时域运动信息来构造运动信息候选列表,但是使用到的时域运动信息是按照当前块内部的左上角位置在指定参考帧中寻找对应位置。这样,对于GPM或AWP的两个分区,在部分划分模式下,某些分区与构建运动信息候选列表时所使用的相关位置都不明确相邻,导致这些分区在进行预测时与这些位置的相关性较弱,从而影响了编解码的性能。
发明内容
本申请提出一种帧间预测方法、编码器、解码器以及计算机存储介质,可以增加运动信息候选列表中运动信息的多样性,从而提升编解码性能。
本申请的技术方案是这样实现的:
第一方面,本申请实施例提供了一种帧间预测方法,应用于解码器,该方法包括:
解析码流,获取当前块的预测模式参数;
当所述预测模式参数指示使用预设的帧间预测模式确定当前块的帧间预测值时,确定所述当前块的至少一个候选位置;其中,所述候选位置至少包括所述当前块内部的右下位置和所述当前块外部的右下位置;
基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息;
基于所述至少一个时域运动信息,构建新的运动信息候选列表;
根据所述新的运动信息候选列表,确定所述当前块的帧间预测值。
第二方面,本申请实施例提供了一种帧间预测方法,应用于编码器,该方法包括:
确定当前块的预测模式参数;
当所述预测模式参数指示使用预设的帧间预测模式确定当前块的帧间预测值时,确定所述当前块的至少一个候选位置;其中,所述候选位置至少包括所述当前块内部的右下位置和所述当前块外部的右下位置;
基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息;
基于所述至少一个时域运动信息,构建新的运动信息候选列表;
根据所述新的运动信息候选列表,确定所述当前块的帧间预测值。
第三方面,本申请实施例提供了一种解码器,该解码器包括解析单元、第一确定单元、第一构建单元和第一预测单元;其中,
所述解析单元,配置为解析码流,获取当前块的预测模式参数;
所述第一确定单元,配置为当所述预测模式参数指示使用预设的帧间预测模式确定当前块的帧间预测值时,确定所述当前块的至少一个候选位置;其中,所述候选位置至少包括所述当前块内部的右下位置和所述当前块外部的右下位置;
所述第一确定单元,还配置为基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息;
所述第一构建单元,配置为基于所述至少一个时域运动信息,构建新的运动信息候选列表;
所述第一预测单元,配置为根据所述新的运动信息候选列表,确定所述当前块的帧间预测值。
第四方面,本申请实施例提供了一种解码器,该解码器包括第一存储器和第一处理器;其中,
所述第一存储器,用于存储能够在所述第一处理器上运行的计算机程序;
所述第一处理器,用于在运行所述计算机程序时,执行如第一方面所述的方法。
第五方面,本申请实施例提供了一种编码器,该编码器包括第二确定单元、第二构建单元和第二预测单元;其中,
所述第二确定单元,配置为确定当前块的预测模式参数;及当所述预测模式参数指示使用预设的帧间预测模式确定当前块的帧间预测值时,确定所述当前块的至少一个候选位置;其中,所述候选位置至少包括所述当前块内部的右下位置和所述当前块外部的右下位置;
所述第二确定单元,还配置为基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息;
所述第二构建单元,配置为基于所述至少一个时域运动信息,构建新的运动信息候选列表;
所述第二预测单元,配置为根据所述新的运动信息候选列表,确定所述当前块的帧间预测值。
第六方面,本申请实施例提供了一种编码器,该编码器包括第二存储器和第二处理器;其中,
所述第二存储器,用于存储能够在所述第二处理器上运行的计算机程序;
所述第二处理器,用于在运行所述计算机程序时,执行如第二方面所述的方法。
第七方面,本申请实施例提供了一种计算机存储介质,该计算机存储介质存储有计算机程序,所述计算机程序被第一处理器执行时实现如第一方面所述的方法、或者被第二处理器执行时实现如第二方面所述的方法。
本申请实施例所提供的一种帧间预测方法、编码器、解码器以及计算机存储介质,解析码流,获取当前块的预测模式参数;当所述预测模式参数指示使用预设的帧间预测模式确定当前块的帧间预测值时,确定所述当前块的至少一个候选位置;其中,所述候选位置至少包括所述当前块内部的右下位置和所述当前块外部的右下位置;基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息;基于所述至少一个时域运动信息,构建新的运动信息候选列表;根据所述新的运动信息候选列表,确定所述当前块的帧间预测值。这样,由于当前块的时域运动信息是基于当前块内部的右下位置或当前块外部的右下位置确定的,可以在运动信息候选列表中补充增强与右下方更有相关性的运动信息,从而增加了运动信息候选列表中运动信息的多样性;尤其是对于GPM或AWP帧间预测模式而言,通过增加右下方时域运动信息候选位置的方式能够提高右下方的相关性,从而能够提升编解码性能。
附图说明
图1为本申请实施例提供的一种视频编码系统的组成框图示意图;
图2为本申请实施例提供的一种视频解码系统的组成框图示意图;
图3为本申请实施例提供的一种帧间预测方法的流程示意图;
图4为本申请实施例提供的一种典型图像组的结构示意图;
图5为本申请实施例提供的一种当前块与相邻块的空间位置关系示意图;
图6为本申请实施例提供的另一种当前块与相邻块的空间位置关系示意图;
图7为本申请实施例提供的又一种当前块与相邻块的空间位置关系示意图;
图8为本申请实施例提供的另一种帧间预测方法的流程示意图;
图9A为本申请实施例提供的一种GPM在64×64的当前块上多种划分模式的权重分配示意图;
图9B为本申请实施例提供的一种AWP在64×64的当前块上多种划分模式的权重分配示意图;
图10为本申请实施例提供的又一种帧间预测方法的流程示意图;
图11为本申请实施例提供的一种解码器的组成结构示意图;
图12为本申请实施例提供的一种解码器的硬件结构示意图;
图13为本申请实施例提供的一种编码器的组成结构示意图;
图14为本申请实施例提供的一种编码器的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅仅用于解释相关申请,而非对该申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关申请相关的部分。
在视频图像中,一般采用第一图像分量、第二图像分量和第三图像分量来表征当前块(Coding Block,CB);其中,这三个图像分量分别为一个亮度分量、一个蓝色色度分量和一个红色色度分量,具体地,亮度分量通常使用符号Y表示,蓝色色度分量通常使用符号Cb或者U表示,红色色度分量通常使用符号Cr或者V表示;这样,视频图像可以用YCbCr格式表示,也可以用YUV格式表示。
目前,通用的视频编解码标准基于都采用基于块的混合编码框架。视频图像中的每一帧被分割成相同大小(比如128×128,64×64等)的正方形的最大编码单元(Largest Coding Unit,LCU),每个最大编码单元还可以根据规则划分成矩形的编码单元(Coding Unit,CU);而且编码单元可能还会划分成更小的预测单元(Prediction Unit,PU)。具体地,混合编码框架可以包括有预测、变换(Transform)、量化(Quantization)、熵编码(Entropy Coding)、环路滤波(In Loop Filter)等模块;其中,预测模块可以包括帧内预测(intra prediction)和帧间预测(inter prediction),帧间预测可以包括运动估计(motion estimation)和运动补偿(motion compensation)。由于视频图像的一个帧内相邻像素之间存在很强的相关性,在视频编解码技术中使用帧内预测方式能够消除相邻像素之间的空间冗余;但是由于视频图像中的相邻帧之间也存在着很强的相似性,在视频编解码技术中使用帧间预测方式消除相邻帧之间的时间冗余,从而能够提高编码效率。下述本申请将以帧间预测进行详细描述。
应理解,本申请实施例提供一种视频编码系统,如图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所示,该视频解码系统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能够通过本申请实施例提供的帧间预测方法得到一个较好的预测效果,提高编码性能;那么,对应地,在视频解码系统12,也能够改善视频解码恢复质量,从而提高解码性能。
基于此,下面结合附图和实施例对本申请的技术方案进一步详细阐述。在进行详细阐述之前,需要说明的是,说明书通篇中提到的“第一”、“第二”、“第三”等,仅仅是为了区分不同的特征,不具有限定优先级、先后顺序、大小关系等功能。
本申请实施例提供一种帧间预测方法,该方法应用于视频解码设备,即解码器。该方法所实现的功能可以通过解码器中的第一处理器调用计算机程序来实现,当然计算机程序可以保存在第一存储器中,可见,该解码器至少包括第一处理器和第一存储器。
参见图3,其示出了本申请实施例一种帧间预测方法的流程示意图。如图3所示,该方法可以包括:
S301:解析码流,获取当前块的预测模式参数。
需要说明的是,待解码图像可以划分为多个图像块,而当前待解码的图像块可以称为当前块(可以用CU表示),与当前块相邻的图像块可以称为相邻块;即在待解码图像中,当前块与相邻块之间具有相邻关系。这里,每个当前块可以包括第一图像分量、第二图像分量和第三图像分量,也即当前块表示待解码图像中当前待进行第一图像分量、第二图像分量或者第三图像分量预测的图像块。
其中,假定当前块进行第一图像分量预测,而且第一图像分量为亮度分量,即待预测图像分量为亮度分量,那么当前块也可以称为亮度块;或者,假定当前块进行第二图像分量预测,而且第二图像分量为色度分量,即待预测图像分量为色度分量,那么当前块也可以称为色度块。
还需要说明的是,预测模式参数指示了当前块采用的预测模式以及与该预测模式相关的参数。其中,预测模式通常包括有帧间预测模式、传统帧内预测模式和非传统帧内预测模式等,而帧间预测模式又包括有普通帧间预测模式、GPM预测模式和AWP预测模式等。也就是说,编码器会选取最优的预测模式对当前块进行预编码,在这过程中就可以确定出当前块的预测模式,从而将相应的预测模式参数写入码流,由编码器传输到解码器。
这样,在解码器侧,通过解析码流就可以直接获取到当前块的预测模式参数,根据所获取的预测模式参数用以确定当前块是否使用预设的帧间预测模式,比如GPM预测模式或AWP预测模式。
S302:当所述预测模式参数指示使用预设的帧间预测模式确定当前块的帧间预测值时,确定当前块的至少一个候选位置;其中,所述候选位置至少包括所述当前块内部的右下位置和所述当前块外部的右下位置。
需要说明的是,在解码器解析码流获取到预测模式参数指示使用预设的帧间预测模式确定当前块的帧间预测值的情况下,就可以采用本申请实施例所提供的帧间预测方法。
还需要说明的是,运动信息可以包括运动矢量(Motion Vector,MV)信息和参考帧信息。具体地,对于使用帧间预测的当前块而言,该当前块所在的当前帧具有一个或多个参考帧,而当前块可以是编码单元或预测单元,可以使用一个包含一组运动矢量和参考帧信息的运动信息指示到某一参考帧内一个与当前块大小相同的像素区域,这里称之为参考块,也可以使用一个包含两组运动矢量和参考帧信息的运动信息指示到某两个可以相同也可以不同的参考帧内的两个参考块;然后运动补偿可以根据运动信息所指示的参考块得到当前块的帧间预测值。
应理解,P帧(Predictive Frame)是只能使用图像播放顺序(Picture Order Count,POC)在当前帧之前的参考帧进行预测的帧。这时候当前参考帧只有一个参考帧列表,用RefPicList0表示;且RefPicList0中都是POC在当前帧之前的参考帧。B帧(Bi-directional Interpolated Prediction Frame)早期是可以使用POC在当前帧之前的参考帧及POC在当前帧之后的参考帧进行预测的帧。B帧有两个参考帧列表,分别用RefPicList0和RefPicList1表示;其中,RefPicList0中都是POC在当前帧之前的参考帧,RefPicList1中都是POC在当前帧之后的参考帧。对于当前块而言,可以只参考RefPicList0中某一帧的参考块,这种情况可称为前向预测;或者也可以只参考RefPicList1中某一帧的参考块,这种情况可称为后向预测;或者还可以同时参考RefPicList0中某一帧的参考块和RefPicList1中某一帧的参考块,这种情况可称为双向预测。同时参考两个参考块的一种简单方式是将两个参考块内每一个对应位置的像素进行平均以得到当前块内每一像素的帧间预测值(或者可以称为预测块)。后期B帧不再限制RefPicList0中都是POC在当前帧之前的参考帧,RefPicList1中都是POC在当前帧之后的参考帧。换句话说,RefPicList0中也可以有POC在当前帧之后的参考帧,RefPicList1中也可以有POC在当前帧之前的参考帧,也即是指当前块可以同时参考POC在当前帧之前的参考帧或者同时参考POC在当前帧之后的参考帧。但是当前块为双向预测时所使用的参考帧必须一个来自于RefPicList0,一个来自于RefPicList1;这种B帧也称为广义B帧。
由于随机访问(Random Access,RA)配置的编解码顺序与POC顺序不同,这样B帧可以同时参 考当前帧之前的信息和当前帧之后的信息,能够明显提高编码性能。示例性地,RA的一种经典的图像组(Group Of Pictures,GOP)结构如图4所示,在图4中,箭头表示参考关系,由于I帧不需要参考帧,那么在POC为0的I帧解码后,将会解码POC为4的P帧,而在解码POC为4的P帧时可以参考POC为0的I帧。在POC为4的P帧解码后,然后再解码POC为2的B帧,而在解码POC为2的B帧时可以参考POC为0的I帧和POC为4的P帧,等等。这样,根据图4可以得到,POC顺序为{0 1 2 3 4 5 6 7 8}的情况下,其对应的解码顺序为{0 3 2 4 1 7 6 8 5}。
另外,低延迟(Low Delay,LD)配置的编解码顺序与POC顺序是相同的,这时候当前帧只能参考当前帧之前的信息。其中,Low Delay配置又分Low Delay P和Low Delay B。Low Delay P即传统的Low Delay配置。其典型的结构是IPPP……,即先编解码一个I帧,之后解码的帧都是P帧。Low Delay B的典型结构是IBBB……,与Low Delay P的区别在于每个帧间帧都是B帧,即使用两个参考帧列表,当前块可以同时参考RefPicList0中的某一帧的参考块和RefPicList1中的某一帧的参考块。这里,当前帧的一个参考帧列表最多可以有几个参考帧,如2个、3个或4个等。当编码或解码某一个当前帧时,RefPicList0和RefPicList1内各有哪几个参考帧是由预设配置或算法决定的,但是同一个参考帧可以同时出现在RefPicList0和RefPicList1中,即编码器或解码器允许当前块同时参考同一个参考帧中的两个参考块。
在本申请实施例中,编码器或解码器通常可以使用参考帧列表里的索引值(用index表示)来对应参考帧。如果一个参考帧列表长度为4,那么index有0、1、2、3等四个值。例如,如果当前帧的RefPicList0有POC为5,4,3,0的4个参考帧,那么RefPicList0的index 0为POC 5的参考帧,RefPicList0的index 1为POC 4的参考帧,RefPicList0的index 2为POC 3的参考帧,RefPicList0的index 3为POC 0的参考帧。
目前的多功能视频编码(Versatile Video Coding,VVC)标准中,预设的帧间预测模式可以为GPM预测模式。目前的数字音视频编解码技术标准(Audio Video coding Standard,AVS)中,预设的帧间预测模式可以为AWP预测模式。这两种预测模式虽然名称不同、具体的实现形式不同、但原理上是共通的,即这两种预测模式都可以适用本申请实施例的帧间预测方法。
具体来讲,对于GPM预测模式来说,如果使用GPM,那么码流中将会传输GPM下的预测模式参数,比如GPM具体的划分模式;通常情况下,GPM包括有64种划分模式。对于AWP预测模式来说,如果使用AWP,那么码流中将会传输AWP下的预测模式参数,比如AWP具体的划分模式;通常情况下,AWP包括有56种划分模式。
在预设的预测模式下,比如GPM和AWP均需要使用两个单向运动信息查找两个参考块。目前的实现方式是在编码器侧利用当前块之前已编码/已解码部分的相关信息构建一个运动信息候选列表(也可以称为单向运动信息候选列表),从该运动信息候选列表中选择单向运动信息,将这两个单向运动信息在运动信息候选列表中的索引值(index)写入码流。在解码器侧采用同样的方式,即利用当前块之前已解码部分的相关信息构建一个运动信息候选列表,这个运动信息候选列表与编码器侧构建的候选列表一定是相同的。如此,从码流中解析出两个运动信息的索引值,然后从运动信息候选列表中查找出这两个单向运动信息即为当前块需要使用的两个单向运动信息。
还需要说明的是,本申请实施例所描述的单向运动信息可以包括有运动矢量信息,即(x,y)的值,以及对应的参考帧信息,即参考帧列表及在参考帧列表中的参考索引值。一种表示方式是记录两个参考帧列表的参考索引值,其中一个参考帧列表对应的参考索引值有效,如0,1,2等;另一个参考帧列表对应的参考索引值为无效,即-1。参考索引值有效的参考帧列表即为当前块的运动信息所使用的参考帧列表,根据参考索引值可以从该参考帧列表中查找到对应的参考帧。每个参考帧列表都有一个对应的运动矢量,有效的参考帧列表对应的运动矢量是有效的,无效的参考帧列表对应的运动矢量是无效的。解码器可以通过单向运动信息中的参考帧信息找到所需的参考帧,根据当前块的位置以及运动矢量即(x,y)的值可以在参考帧中找到参考块,进而确定出当前块的帧间预测值。
实际应用中,运动信息候选列表的构建方式不仅使用了空域运动信息,还使用了时域运动信息。其中,在VVC中构建合并候选列表(merge list)时,也用到了时域运动信息和空域运动信息。如图5所示,其示出了merge list构建时所使用到的相关位置的运动信息,填充元素为1、2、3、4、5的候选位置表示空域相关位置,即当前帧内与当前块相邻的这些位置块所使用的运动信息;填充元素为6和7的候选位置表示时域相关位置,即某一个参考帧中对应位置所使用的运动信息,这些运动信息还可以是经过了缩放(scaling)。这里,对于时域运动信息来说,如果候选位置6可用,那么可以使用6位置对应的运动信息;否则,可以使用7位置对应的运动信息。需要注意的是,三角划分预测模式(Triangle Partition Mode,TPM)和GPM预测模式中关于运动信息候选列表的构建中也涉及到了这几个位置的使用;而且这里块的大小并非为实际大小,只是作为示例说明。
对于AWP预测模式来说,如图6所示,块E为当前块,而块A、块B、块C、块D、块F、块G均为块E的相邻块,块H为块E内部的左上位置。其中,块A、块B、块C、块D、块F、块G可以用于确定空域运动信息,而时域运动信息则是按当前块的内部左上角位置在指定参考帧中寻找对应位置,即图6所示的灰色填充位置(即块H),这里的块H只是用来表示位置,并不表示块大小。基于图6可以明显看到,AWP的相关位置全部来自于当前块的左、左上、上、右上,但是并没有来自于当前块的下、右下、右的相关位置。
然而,GPM和AWP相对于其他预测模式,不同之处在于GPM和AWP实质上把当前块划分成两个分区。对于这些其他预测模式来说,图6所示的这些位置都是和当前块是紧密相关的,比如这些位置与当前块的至少一个边界相邻,或者这些位置与当前块存在重叠。但是对GPM和AWP的两个分区而言,就不是这样的,比较明显的是某些划分模式下处于右下角的分区,这些分区与构建运动信息候选列表所使用的相关位置都不明确相邻。也就是说,如果当前块较小,那么时域上的对应位置可能与当前块右下角的分区重叠;但是如果当前块较大,这时候该分区与构建运动信息候选列表所使用的相关位置都不相邻,这样该分区与这些所选位置的相关性就较弱。
另外,GPM和AWP中每个分区必须使用不同的运动信息,否则GPM和AWP就没有意义。以AWP为例,极端情况下,如果当前所选相关的运动信息都与当前块的左上角部分相同的话,右下角部分找不到可用的运动信息,导致AWP不会被使用到。也就是指,对于AWP来说,右下角的相关性明显缺失。而对于GPM来说,时域运动信息是来自于不同帧,而空域运动信息来自于相同帧,使得空域运动信息的相关性会更强,而右下角的相关性处于弱势。这种右下角的相关性存在不足,在GPM和AWP中要比其他预测模式的影响更大,从而会影响到编解码的性能。
这时候,为了提高编解码的性能,本申请实施例就需要增强AWP和GPM右下角的相关性。也就是说,在AWP预测模式下,构建运动信息候选列表使用时域运动信息时,可以增加与当前块右下角位置对应的时域运动信息,或者将原来使用的与当前块左上角位置对应的时域运动信息替换为与当前块右下角位置对应的时域运动信息。需要注意的是,如果是增加右下角的相关性,那么与当前块右下角位置对应的时域运动信息的顺序可以是在当前块左上角位置对应的时域运动信息前面。这里的右下角位置可以包括当前块内部的右下位置和当前块外部的右下位置。
在一些实施例中,对于S302来说,所述确定所述当前块的至少一个候选位置,可以包括:
获取第一右下候选位置、第二右下候选位置、第三右下候选位置和第四右下候选位置,组成候选位置集合;
从所述候选位置集合中,确定所述当前块的至少一个候选位置;
其中,所述第一右下候选位置表征所述当前块内部的右下位置,所述第二右下候选位置、第三右下候选位置和第四右下候选位置表征所述当前块外部的右下位置。
需要说明的是,以图7为例,灰色填充位置均表示为当前块的右下角,这里可以分为4个右下候选位置。具体地,当前块内部的右下位置可以是第一右下候选位置,如图7中填充1的位置所示;当前块外部的右下位置可以是第二右下候选位置,如图7中填充2的位置所示;当前块外部的右下位置也可以是第三右下候选位置,如图7中填充3的位置所示;当前块外部的右下位置还可以是第四右下候选位置,如图7中填充4的位置所示。换句话说,本申请实施例中的右下角,可以是指当前块内部右下角,如图7中填充1的位置所示;或者是指当前块外部右下角,如图7中填充2的位置所示;或者是指当前块外部下方(且靠右),如图7中填充3的位置所示;或者是指当前块外部右方(且靠下),如图7中填充4的位置所示。这里,如果与AVS标准的文本保持一致,那么填充的1、2、3、4可以用H、I、J、K替代。
这样,在获取到第一右下候选位置、第二右下候选位置、第三右下候选位置和第四右下候选位置后,可以组成候选位置集合;然后从该候选位置集合中,确定当前块的至少一个候选位置。
进一步地,在一些实施例中,所述获取第一右下候选位置、第二右下候选位置、第三右下候选位置和第四右下候选位置,可以包括:
获取所述当前块的左上像素位置对应的坐标信息、所述当前块的宽度信息和所述当前块的高度信息;
分别利用所述左上像素位置对应的坐标信息、所述宽度信息和所述高度信息进行坐标计算,获得第一坐标信息、第二坐标信息、第三坐标信息和第四坐标信息;
将所述第一坐标信息对应的位置确定为所述第一右下候选位置,将所述第二坐标信息对应的位置确定为所述第二右下候选位置,将所述第三坐标信息对应的位置确定为所述第三右下候选位置,将所述第四坐标信息对应的位置确定为所述第四右下候选位置。
也就是说,当前块内部右下角即1位置是根据当前块右下角的像素位置来确定的。这里,假定当前块的左上像素位置(即左上角的像素位置)用(x,y)表示,当前块的宽度用width表示,当前块的高 度用height表示,那么可以得到第一坐标信息为(x+width-1,y+height-1),这时候第一右下候选位置(即1的位置)可以是根据该第一坐标信息所确定的位置;也可以得到第二坐标信息为(x+width,y+height),这时候第二右下候选位置(即2的位置)可以是根据该第二坐标信息所确定的位置;还可以得到第三坐标信息为(x+width-1,y+height),这时候第三右下候选位置(即3的位置)可以是根据该第三坐标信息所确定的位置;甚至还可以得到第四坐标信息为(x+width,y+height-1),这时候第四右下候选位置(即4的位置)可以是根据该第四坐标信息所确定的位置。
进一步地,如果考虑到上述的方式所确定的四个位置距离太近,在对应的参考帧的对应位置上属于同一个块的可能性较大,这时候还可以设置一个偏移量,即第一预设偏移量,用offset表示。因此,在一些实施例中,在所述得到第一坐标信息、第二坐标信息、第三坐标信息和第四坐标信息之后,该方法还可以包括:
利用第一预设偏移量对所述第二坐标信息、所述第三坐标信息和所述第四坐标信息进行修正,得到第一修正后的第二坐标信息、第一修正后的第三坐标信息和第一修正后的第四坐标信息;
将所述第一坐标信息对应的位置确定为所述第一右下候选位置,将所述第一修正后的第二坐标信息对应的位置确定为所述第二右下候选位置,将所述第一修正后的第三坐标信息对应的位置确定为所述第三右下候选位置,将所述第一修正后的第四坐标信息对应的位置确定为所述第四右下候选位置。
也就是说,上述四个位置中,1的位置仍然可以是根据第一坐标信息,即(x+width-1,y+height-1)所确定的位置;而2的位置可以是根据第一修正后的第二坐标信息,即(x+width+offset,y+height+offset)所确定的位置;3的位置可以是根据第一修正后的第三坐标信息,即(x+width-1,y+height+offset)所确定的位置;4的位置可以是根据第一修正后的第四坐标信息,即(x+width+offset,y+height-1)所确定的位置。
还需要说明的是,本申请实施例中的offset可以是一个预设的固定值,比如0,1,2,4,8,16等;或者,还可以是根据当前块的大小(即width,height)所确定的一个值;或者,甚至还可以是采用其他方式所确定的一个值。这里,每个位置处offset的取值可以相同,也可以不同,本申请实施例不作限定。
进一步地,由于当前帧和导出时域运动信息所参考运动信息的参考帧之间可能存在着时间上的偏差,即当前帧上的块到导出时域运动信息所使用的参考帧可能也存在一个运动,这时候还可以设置第二偏移量,用(x’,y’)表示。因此,在一些实施例中,在所述得到第一坐标信息、第二坐标信息、第三坐标信息和第四坐标信息之后,该方法还可以包括:
在当前帧上的图像块到候选参考帧存在有运动矢量时,确定第二预设偏移量;其中,所述候选参考帧为确定时域运动信息所参考运动信息的参考帧,所述图像块至少包括相邻块,所述相邻块与所述当前块在所述当前帧内空间相邻;
利用第二预设偏移量对所述第一坐标信息、所述第二坐标信息、所述第三坐标信息和所述第四坐标信息进行修正,得到第二修正后的第一坐标信息、第二修正后的第二坐标信息、第二修正后的第三坐标信息和第二修正后的第四坐标信息;
将所述第二修正后的第一坐标信息对应的位置确定为所述第一右下候选位置,将所述第二修正后的第二坐标信息对应的位置确定为所述第二右下候选位置,将所述第二修正后的第三坐标信息对应的位置确定为所述第三右下候选位置,将所述第二修正后的第四坐标信息对应的位置确定为所述第四右下候选位置。
也就是说,一种可能的实施方式是按照上述方式在导出时域运动信息所参考运动信息的参考帧中找对应位置的时候,需要考虑当前帧上的块到导出时域运动信息所使用的参考帧存在有运动矢量。示例性地,如果2位置是根据第二坐标信息(x+width,y+height)所确定的位置,这时候考虑到当前帧上(x+width,y+height)的块到导出时域运动信息所使用的参考帧的运动,假定(x’,y’)为当前帧上(x+width,y+height)的块到导出时域运动信息所使用的参考帧的运动矢量,那么第二修正后的第二坐标信息为(x+width+x’,y+height+y’),即2位置可以是在导出时域运动信息所使用的参考帧的(x+width+x’,y+height+y’)所确定的位置。其中,该位置可能就是(x+width+x’,y+height+y’),也可能是根据(x+width+x’,y+height+y’)经过其他计算得到的。或者,如果考虑到第一预设偏移量,2位置是根据(x+width+offset,y+height+offset)所确定的位置,这时候再考虑到当前帧上(x+width+offset,y+height+offset)的块到导出时域运动信息所使用的参考帧的运动,假定(x’,y’)仍为当前帧上(x+width+offset,y+height+offset)的块到导出时域运动信息所用的参考帧的运动矢量,那么第二修正后的第二坐标信息为(x+width+offset+x’,y+height+offset+y’),即2位置可以是在导出时域运动信息所使用的参考帧的(x+width+offset+x’,y+height+offset+y’)所确定的位置。其中,该位置可能就是(x+width+offset+x’,y+height+offset+y’),也可能是根据(x+width+offset+x’,y+height+offset+y’)经过其他计算得到的。同理还可以确定出1位置、3位置和4位置等,这里不再详述。
进一步地,在一些实施例中,所述确定第二预设偏移量,可以包括:
获取所述当前帧上的预设相邻块到所述候选参考帧的运动矢量,将所获取的运动矢量确定为所述第二预设偏移量;或者,
将所述当前帧上的预设相邻块的运动信息缩放到所述候选参考帧,获得缩放后的运动矢量,将所述缩放后的运动矢量确定为所述第二预设偏移量。
也就是说,在本申请实施例中,对于(x’,y’)的确定,可以是查找某一个相邻块到导出时域运动信息所使用的参考帧(或者确定时域运动信息所参考运动信息的参考帧)的运动矢量作为(x’,y’),或者是查找某一个相邻块的运动信息缩放到导出时域运动信息所使用的参考帧(或者导出时域运动信息所参考运动信息的参考帧或者确定时域运动信息所参考运动信息的参考帧)的运动矢量作为(x’,y’),这里不作具体限定。
应理解,另一种可能的实施方式是按照上述方式在导出时域运动信息所使用的参考帧信息中找对应位置的时候,不考虑到当前帧上的块到导出时域运动信息所使用的参考帧存在有运动矢量。示例性地,如果2位置是根据(x+width,y+height)所确定的位置,这时候不考虑当前帧上(x+width,y+height)的块到导出时域运动信息所使用的参考帧的运动,那么这时候的第二坐标信息为(x+width,y+height),即2位置可以是在导出时域运动信息所使用的参考帧的(x+width,y+height)所确定的位置。其中,该位置可能就是(x+width,y+height),也可能是根据(x+width,y+height)经过其他计算得到的。或者,如果考虑到第一预设偏移量,2位置是根据(x+width+offset,y+height+offset)所确定的位置,这时候不再考虑当前帧上(x+width+offset,y+height+offset)的块到导出时域运动信息所使用的参考帧的运动,那么这时候的第二坐标信息为(x+width+offset,y+height+offset),即2位置可以是在导出时域运动信息所使用的参考帧的(x+width+offset,y+height+offset)所确定的位置。其中,该位置可能就是(x+width+offset,y+height+offset),也可能是根据(x+width+offset,y+height+offset)经过其他计算得到的。同理还可以确定出1位置、3位置和4位置等,这里不再详述。
此外,在本申请实施例中,一种可能的方式是只使用上述四个位置中的某一个位置,一种可能的方式是使用上述四个位置中的某几个位置的组合。因此,可选地,在一些实施例中,所述从所述候选位置集合中,确定所述当前块的至少一个候选位置,可以包括:
从所述候选位置集合中按照预设方式选取一个候选位置,将所选取的候选位置确定为所述当前块的一个候选位置;或者,
从所述候选位置集合中,按照预设优先级顺序选取高优先级对应的候选位置且被选取的候选位置可用,将所选取的候选位置确定为所述当前块的一个候选位置。
可选地,在一些实施例中,所述从所述候选位置集合中,确定所述当前块的至少一个候选位置,可以包括:
从所述候选位置集合中按照预设组合方式选取多个候选位置,将所选取的多个候选位置确定为所述当前块的多个候选位置;或者,
从所述候选位置集合中,按照预设优先级顺序选取多个候选位置且被选取的候选位置可用,将所选取的多个候选位置确定为所述当前块的多个候选位置。
需要说明的是,以图7为例,当运动信息候选列表中只需要一个时域运动信息时,这时候可以从上述1、2、3、4等位置中按照预设方式选取某一个位置作为候选位置,或者可以是按照预设优先级顺序,比如2、1、3、4,如果2的优先级最高,且2可用,这时候将2位置作为候选位置;如果2的优先级最高,但2不可用,这时候按照预设优先级顺序,将顺序选择高优先级对应的1,且1可用,那么可以将1位置作为候选位置。或者,当运动信息候选列表中需要多个时域运动信息时,这时候可以从上述1、2、3、4等位置中按照预设组合方式选取多个位置作为候选位置,或者可以是按照预设优先级顺序,比如2的优先级最高,将2位置排列在最前面,然后在被选取的候选位置可用的情况下,按照预设优先级顺序选择多个位置作为候选位置。
也就是说,一种可能的方式是只使用上述四个位置中的某一个位置,另一种可能的方式是使用上述四个位置中的某几个位置的组合,比如使用2、3、4的位置组合,使用3、4的位置组合等。这里,1、2、3、4位置全用也是一种组合。换句话说,上述四个位置的任意个数(1,2,3,4)的排列组合,均可以作为确定候选位置所采用的一种选择方式。需要注意的是,当需要使用多个位置时,一种可能的方式是设置2排列在第一个,即2位置具有最高的优先级。
进一步地,在一些实施例中,该方法还可以包括:
从所述候选位置集合中选取候选位置时,若待选取的候选位置属于所述当前块外部的右下位置且所述当前块外部的右下位置均不可用,则将所述第一右下候选位置确定为所述待选取的候选位置。
也就是说,仍以图7为例,2、3、4位置都位于当前块的外面,而且2、3、4位置有时是不可用的。 如果遇到图像边界,某种帧间参考无法跨越的边界等,这时候2、3、4位置可能都不可用。在遇到2、3、4位置均不可用的情况下,一种可能的方式是使用1位置代替不可用的位置。如果当前运动信息候选列表的构建中已经使用了1位置,那么还可以跳过不可用的位置。
这样,在确定出当前块的至少一个候选位置后,这里的候选位置是为当前块右下角的位置,可以是当前块内部的右下位置,也可以是当前块外部的右下位置,根据这些候选位置来确定当前块的至少一个时域运动矢量,可以使得构建运动信息候选列表使用时域运动信息时,能够增加与当前块右下角位置对应的时域运动信息,从而提升右下角的相关性。
S303:基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息。
需要说明的是,在得到至少一个候选位置之后,可以根据所得到的候选位置来确定时域运动信息,具体是将对应参考帧中的时域位置所使用的运动信息作为该候选位置的时域运动信息。这里,当前块所属的帧可以为称为当前帧,当前帧中的候选位置与参考帧中的时域位置虽然所属的帧不同,但是位置是相同的。
在一些实施例中,对于S303来说,所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息,可以包括:
确定所述至少一个候选位置中每一候选位置对应的参考帧信息;
针对每一候选位置,在对应的参考帧信息中确定与所述候选位置关联的时域位置,并将所述时域位置使用的运动信息确定为所述候选位置对应的时域运动信息;
基于所述至少一个候选位置,对应得到至少一个时域运动信息。
也就是说,时域运动信息是根据某一个参考帧信息中对应位置所使用的运动信息来确定的。而且针对不同的候选位置,可以得到不同的时域运动信息。
示例性地,方法一,以图7中的2位置为例,推导时域运动信息的步骤如下:
假定当前预测单元的左上角亮度样本位置为(x,y),亮度预测块的宽度为l_width,亮度预测块的高度为l_height;而所选当前预测单元的右下方亮度样本位置为(x’,y’),那么x’=x+l_width,y’=y+l_height。
如果上面推导出的(x’,y’)不可用,比如超出图像边界、patch边界等,那么x’=x+l_width-1,y’=y+l_height-1。
第一步,
如果参考图像队列1中参考索引值为0的图像中与所选当前预测单元的右下方亮度样本位置对应的亮度样本所在的时域运动信息存储单元存储的参考帧索引为-1,则当前预测单元的L0参考索引和L1参考索引均等于0。以当前预测单元所在编码单元的尺寸和位置作为当前预测单元的尺寸和位置,然后将所得到的L0运动矢量预测值和L1运动矢量预测值分别作为当前预测单元的L0运动矢量MvE0和L1运动矢量MvE1,并令当前预测单元的L0参考索引RefIdxL0和L1参考索引RefIdxL1均等于0,结束运动信息导出过程。
否则,
当前预测单元的L0参考索引和L1参考索引均等于0。当前预测单元的L0参考索引和L1参考索引对应的图像的距离索引分别记为DistanceIndexL0和DistanceIndexL1;当前预测单元的L0参考索引和L1参考索引对应的图像的BlockDistance分别记为BlockDistanceL0和BlockDistanceL1。
在参考图像队列1中参考索引为0的图像中与所选当前预测单元的右下方亮度样本位置对应的亮度样本所在的时域运动信息存储单元的L0运动矢量记为mvRef(mvRef_x,mvRef_y),该运动信息存储单元所在的图像的距离索引记为DistanceIndexCol,该运动矢量指向的参考单元所在的图像的距离索引记为DistanceIndexRef。
第二步,
BlockDistanceRef=DistanceIndexCol-DistanceIndexRef
第三步,
令当前预测单元的L0参考索引RefIdxL0等于0,计算当前预测单元的L0运动矢量mvE0(mvE0_x,mvE0_y):
Figure PCTCN2021084278-appb-000001
这里,mvX即为mvRef,MVX即为mvE0。
令当前预测单元的L1参考索引RefIdxL1等于0,计算当前预测单元的L1运动矢量mvE1(mvE1_x, mvE1_y):
Figure PCTCN2021084278-appb-000002
这里,mvX即为mvRef,MVX即为mvE1。
第四步,interPredRefMode的值等于‘PRED_List01’。
方法二,以图7中的4位置为例,推导时域运动信息的步骤如下:
假定当前预测单元的左上角亮度样本位置为(x,y),亮度预测块的宽度为l_width,亮度预测块的高度为l_height;而所选当前预测单元的右方亮度样本位置为(x’,y’),x’=x+l_width,y’=y+l_height–1。
如果上面推导出的(x’,y’)不可用,比如超出图像边界、patch边界等,那么x’=x+l_width-1,y’=y+l_height-1。
第一步,
如果参考图像队列1中参考索引值为0的图像中与所选当前预测单元的右方亮度样本位置对应的亮度样本所在的时域运动信息存储单元存储的参考帧索引为-1,则当前预测单元的L0参考索引和L1参考索引均等于0。以当前预测单元所在编码单元的尺寸和位置作为当前预测单元的尺寸和位置,然后将所得到的L0运动矢量预测值和L1运动矢量预测值分别作为当前预测单元的L0运动矢量MvE0和L1运动矢量MvE1,并令当前预测单元的L0参考索引RefIdxL0和L1参考索引RefIdxL1均等于0,结束运动信息导出过程。
否则,
当前预测单元的L0参考索引和L1参考索引均等于0。当前预测单元的L0参考索引和L1参考索引对应的图像的距离索引分别记为DistanceIndexL0和DistanceIndexL1;当前预测单元的L0参考索引和L1参考索引对应的图像的BlockDistance分别记为BlockDistanceL0和BlockDistanceL1。
在参考图像队列1中参考索引为0的图像中与所选当前预测单元的右方亮度样本位置对应的亮度样本所在的时域运动信息存储单元的L0运动矢量记为mvRef(mvRef_x,mvRef_y),该运动信息存储单元所在的图像的距离索引记为DistanceIndexCol,该运动矢量指向的参考单元所在的图像的距离索引记为DistanceIndexRef。
第二步,
BlockDistanceRef=DistanceIndexCol-DistanceIndexRef
第三步,
令当前预测单元的L0参考索引RefIdxL0等于0,计算当前预测单元的L0运动矢量mvE0(mvE0_x,mvE0_y):
Figure PCTCN2021084278-appb-000003
这里,mvX即为mvRef,MVX即为mvE0。
令当前预测单元的L1参考索引RefIdxL1等于0,计算当前预测单元的L1运动矢量mvE1(mvE1_x,mvE1_y):
Figure PCTCN2021084278-appb-000004
这里,mvX即为mvRef,MVX即为mvE1。
第四步,interPredRefMode的值等于‘PRED_List01’。
方法三,以图7中的3位置为例,推导时域运动信息的步骤如下:
假定当前预测单元的左上角亮度样本位置为(x,y),亮度预测块的宽度为l_width,亮度预测块的高度为l_height;而所选当前预测单元的下方亮度样本位置为(x’,y’),那么x’=x+l_width–1,y’=y+l_height。
如果上面推导出的(x’,y’)不可用,比如超出图像边界、patch边界等,那么x’=x+l_width-1, y’=y+l_height-1。
第一步,
如果参考图像队列1中参考索引值为0的图像中与所选当前预测单元的下方亮度样本位置对应的亮度样本所在的时域运动信息存储单元存储的参考帧索引为-1,则当前预测单元的L0参考索引和L1参考索引均等于0。以当前预测单元所在编码单元的尺寸和位置作为当前预测单元的尺寸和位置,然后将所得到的L0运动矢量预测值和L1运动矢量预测值分别作为当前预测单元的L0运动矢量MvE0和L1运动矢量MvE1,并令当前预测单元的L0参考索引RefIdxL0和L1参考索引RefIdxL1均等于0,结束运动信息导出过程。
否则,
当前预测单元的L0参考索引和L1参考索引均等于0。当前预测单元的L0参考索引和L1参考索引对应的图像的距离索引分别记为DistanceIndexL0和DistanceIndexL1;当前预测单元的L0参考索引和L1参考索引对应的图像的BlockDistance分别记为BlockDistanceL0和BlockDistanceL1。
在参考图像队列1中参考索引为0的图像中与所选当前预测单元的下方亮度样本位置对应的亮度样本所在的时域运动信息存储单元的L0运动矢量记为mvRef(mvRef_x,mvRef_y),该运动信息存储单元所在的图像的距离索引记为DistanceIndexCol,该运动矢量指向的参考单元所在的图像的距离索引记为DistanceIndexRef。
第二步,
BlockDistanceRef=DistanceIndexCol-DistanceIndexRef
第三步,
令当前预测单元的L0参考索引RefIdxL0等于0,计算当前预测单元的L0运动矢量mvE0(mvE0_x,mvE0_y):
Figure PCTCN2021084278-appb-000005
这里,mvX即为mvRef,MVX即为mvE0。
令当前预测单元的L1参考索引RefIdxL1等于0,计算当前预测单元的L1运动矢量mvE1(mvE1_x,mvE1_y):
Figure PCTCN2021084278-appb-000006
这里,mvX即为mvRef,MVX即为mvE1。
第四步,interPredRefMode的值等于‘PRED_List01’。
这样,在导出时域运动信息之后,可以将所得到的时域运动信息填充至运动信息候选列表中,以得到新的运动信息候选列表。
S304:基于所述至少一个时域运动信息,构建新的运动信息候选列表。
需要说明的是,在得到至少一个时域运动信息之后,可以将其填入到运动信息候选列表中,以得到新的运动信息候选列表。具体地,对于S304来说,该步骤可以包括:将至少一个时域运动信息填入运动信息候选列表中,得到所述新的运动信息候选列表。
还需要说明的是,现有的运动信息候选列表中只预留一个时域运动信息的填充位置,为了提高右下角的相关性,还可以增加运动信息候选列表中时域运动信息的填充位置。具体地,在一些实施例中,该方法还可以包括:
调整时域运动信息在所述新的运动信息候选列表中的比例值;
根据所调整的比例值,控制所述新的运动信息候选列表中预留至少两个时域运动信息的填充位置。
也就是说,可以增加时域运动信息在运动信息候选列表中的比例值。如果AWP预测模式下候选列表中给时域运动信息保留了至少1个位置,那么可以调整为AWP预测模式下候选列表中给时域运动信息保留了至少2个(或3个)位置,使得新的运动信息候选列表中预留至少两个时域运动信息的填充位置。
可以理解地,当预测模式参数指示使用预设的帧间预测模式(比如GPM或AWP)确定当前块的帧间预测值时,这时候可以确定出当前块的两个分区。也就是说,该方法还可以包括:当预测模式参数指示使用GPM或AWP确定当前块的帧间预测值时,确定所述当前块的两个分区;其中,所述两个分区包括第一分区和第二分区。
这里,在GPM或AWP预测模式下,还可以根据GPM或AWP的划分模式选择导出时域运动信息所使用的候选位置,或选择根据不同位置导出时域运动信息的排列组合。在一些实施例中,该方法还可以包括:
将GPM或AWP下的多种划分模式进行分组,得到至少两组划分模式集合;
确定所述至少两组划分模式集合中每一组划分模式集合各自对应的至少一个候选位置;其中,不同组的划分模式集合对应不同的至少一个候选位置;
针对每一组划分模式集合内的划分模式,根据对应确定的至少一个候选位置,执行所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息的步骤。
进一步地,至少两组划分模式集合包括第一组划分模式集合和第二组划分模式集合,该方法还可以包括:
若当前划分模式属于所述第一组划分模式集合,则将所述当前块内部的左上像素位置确定为所述当前块的至少一个候选位置,执行所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息的步骤;
若当前划分模式属于所述第二组划分模式集合,则将所述当前块外部的右下像素位置确定为所述当前块的至少一个候选位置,执行所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息的步骤。
进一步地,至少两组划分模式集合包括第一组划分模式集合、第二组划分模式集合、第三划分模式集合和第四划分模式集合,该方法还可以包括:
若当前划分模式属于所述第一组划分模式集合,则将所述当前块的第一右下候选位置确定为所述当前块的至少一个候选位置,执行所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息的步骤;
若当前划分模式属于所述第二组划分模式集合,则将所述当前块的第二右下候选位置确定为所述当前块的至少一个候选位置,执行所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息的步骤;
若当前划分模式属于所述第三组划分模式集合,则将所述当前块的第三右下候选位置确定为所述当前块的至少一个候选位置,执行所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息的步骤;
若当前划分模式属于所述第四组划分模式集合,则将所述当前块的第四右下候选位置确定为所述当前块的至少一个候选位置,执行所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息的步骤。
也就是说,可以将GPM或AWP的划分模式进行分组,以得到至少两组划分模式集合。比如一种可能的实施方式是如果将AWP的划分模式分为0~31为一组划分模式集合,32~55为另一组划分模式集合,那么若当前AWP的划分模式是第0~31中某一种划分模式,则可以按照现有方法(即当前块的左上角位置)推导出时域运动信息;否则,若当前AWP的划分模式是第32~55中某一种划分模式,则将本申请实施例的方法(即当前块外部的右下角位置)推导出时域运动信息。或者,将GPM或AWP的划分模式分成四组划分模式集合,这四组划分模式集合分别对应当前块的四个右下位置,比如第一组划分模式集合对应第一右下候选位置(如图7中的1位置),第二组划分模式集合对应第二右下候选位置(如图7中的2位置),第三组划分模式集合对应第三右下候选位置(如图7中的3位置),第四组划分模式集合对应第四右下候选位置(如图7中的4位置)。
另一种可能的实施方式是可以根据GPM或AWP的划分模式选择导出时域运动信息所使用的位置,或者选择根据不同位置导出时域运动信息的排列组合。示例性地,以使用当前块左上角的位置推导出时域运动信息和使用当前块右下角的位置(如图7中的2位置)推导出时域运动信息等两种方式为例,即GPM或AWP下的一些划分模式可使用当前块左上角的位置推导出时域运动信息,而GPM或AWP下的另一些划分模式可使用当前块右下角的位置(如图7中的2位置)推导出时域运动信息。这里,本申请实施例并不局限于当前块的左上角和右下角,也可能是左下角、右上角等,本申请实施例不作限定。
还需要说明的是,由于GPM或AWP预测模式下,某些划分模式所得到的两个分区,它们所能够找到的紧密相关的空域位置个数是不同的,还可以根据这些个数来确定当前块使用哪个部分的位置推导出时域运动信息。因此,在一些实施例中,该方法还可以包括:
确定第一空域像素位置对应的第一数量;其中,所述第一空域像素位置与所述第一分区的至少一个边界空间相邻;
确定第二空域像素位置对应的第二数量;其中,所述第二空域像素位置与所述第二分区的至少一个边界空间相邻;
若所述第一数量或所述第二数量小于预设值,则将所述当前块外部的右下像素位置确定所述当前块的至少一个候选位置,执行所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息的步骤;
若所述第一数量和所述第二数量均大于预设值,则将所述当前块的左上像素位置确定为所述当前块的至少一个候选位置,执行所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息的步骤。
这里,一种可能的实施原则是如果GPM或AWP下划分的某一个分区能够找到紧密相关的空域位置(即图7中的F、G、C、A、B、D等空域位置与该分区的最近像素位置相邻)的个数少于N,这里的N为1或2或3或4等;这时候时域运动信息可以使用当前块右下角的位置推导出时域运动信息,否则时域运动信息使用当前块左上角的位置推导出时域运动信息。
另一种可能的实施原则是如果GPM或AWP下划分的两个分区分别能够找到紧密相关的空域位置(即图7中的F、G、C、A、B、D等空域位置与该分区的最近像素位置相邻)的个数大于N,这里的N为1或2或3或4等;这时候时域运动信息可以使用当前块左上角的位置推导出时域运动信息,否则时域运动信息使用当前块右下角的位置推导出时域运动信息。
需要注意的是,针对不同的编码块或预测块形状,如正方形、2N×N、N×2N、4N×N、N×4N等不同形状时,由于GPM或AWP的同一个划分模式分别能够找到紧密相关的空域位置(即图7中的F、G、C、A、B、D等空域位置与该分区的最近像素位置相邻)的个数不一定相同,一种可能的方式是同一个划分模式在任何形状下都使用同一种时域运动信息的推导方法,而使用哪一个或哪几个位置用来推导出时域运动信息可能是由正方形时对应的情况决定的。另一种可能的方式是同一个划分模式在不同形状下使用不同的时域运动信息推导方法。又一种可能的方式是指定某些划分模式使用一种空域运动信息推导方法,指定另外某些划分模式使用另外一种空域运动信息推导方法等等,这里,指定哪些模式使用哪种空域运动信息推导方法是根据以上所述的相关性综合确定的,本申请实施例不作具体限定。
这样,在推导出时域运动信息之后,可以构建出新的运动信息候选列表。后续根据新的运动信息候选列表来确定当前块的帧间预测值。
S305:根据所述新的运动信息候选列表,确定所述当前块的帧间预测值。
需要说明的是,当预测模式参数指示使用GPM或AWP确定当前块的帧间预测值时,这时候可以确定出当前块的两个分区;其中,两个分区可以包括第一分区和第二分区。
这样,在得到新的运动信息候选列表后,可以确定出当前块的第一分区对应的运动信息和所述第二分区的运动信息;然后根据第一分区对应的运动信息和所述第二分区的运动信息,能够确定出当前块的帧间预测值。
具体地,如图8所示,其示出了本申请实施例提供的另一种帧间预测方法的流程示意图。该方法可以包括:
S801:解析码流,确定所述第一分区对应的第一运动信息索引值和所述第二分区对应的第二运动信息索引值;
S802:基于新的运动信息候选列表,将所述第一运动信息索引值指示的所述新的运动信息候选列表中的运动信息确定为所述第一分区的运动信息,将所述第二运动信息索引值指示的所述新的运动信息候选列表中的运动信息确定为所述第二分区的运动信息;
S803:利用所述第一分区的运动信息计算所述第一分区的第一预测值,利用所述第二分区的运动信息计算所述第二分区的第二预测值;
S804:对所述第一预测值和所述第二预测值进行加权融合,得到所述当前块的帧间预测值。
需要说明的是,传统的单向预测只是查找一个与当前块大小相同的参考块,而传统的双向预测使用两个与当前块大小相同的参考块,且预测块内每个点的像素值为两个参考块对应位置的平均值,即每一个参考块的所有点都占50%的比例。双向加权预测使得两个参考块的比例可以不同,如第一个参考块中所有点都占75%的比例,第二个参考块中所有点都占25%的比例。但同一个参考块中的所有点的比例都相同。其他一些优化方式比如采用解码端运动矢量修正(Decoder side Motion Vector Refinement,DMVR)技术、双向光流(Bi-directional Optical Flow,BIO)等会使参考像素或预测像素产生一些变化,而且GPM或AWP也使用两个与当前块大小相同的参考块,但某些像素位置100%使用第一个参考块对应位置的像素值,某些像素位置100%使用第二个参考块对应位置的像素值,而在交界区域,按一定比例使用这两个参考块对应位置的像素值。具体这些权重如何分配,由GPM或AWP的预测模式决定,或者也可以认为GPM或AWP使用两个与当前块大小不相同的参考块,即各取所需的一部分作为参考块。
示例性地,如图9A所示,其示出了本申请实施例提供的一种GPM在64×64的当前块上的多种划 分模式的权重分配示意图。在图9A中,GPM存在有64种划分模式。如图9B所示,其示出了本申请实施例提供的一种AWP在64×64的当前块上的多种划分模式的权重分配示意图。在图9B中,AWP存在有56种划分模式。无论是图9A还是图9B,每一种划分模式下,黑色区域表示第一个参考块对应位置的权重值为0%,白色区域表示第一个参考块对应位置的权重值为100%,灰色区域则按颜色深浅的不同表示第一个参考块对应位置的权重值为大于0%且小于100%的某一个权重值,第二个参考块对应位置的权重值则为100%减去第一个参考块对应位置的权重值。
应理解,早期的编解码技术中只存在矩形的划分方式,无论是CU、PU还是变换单元(Transform Unit,TU)的划分。而GPM或AWP均实现了非矩形的划分,即用一条直线可以将一个矩形块分成两个分区,根据直线的位置和角度的不同,划分的两个分区可能是三角形或梯形或矩形等,从而能使得划分更贴近物体的边缘或者两个运动不同区域的边缘。需要注意的是,这里所说的划分并不是真正意义上的划分,而更像是一种预测效果上的划分。因为这个划分只是划分了两个参考块在产生预测块时的权重,或者可以简单地理解为预测块的一部分位置来自于第一个参考块,而另一部分位置来自于第二个参考块,并没有真正按划分线把当前块划分成两个CU或PU或TU。这样,在预测之后残差的变换、量化、反变换、反量化等也都是将当前块作为一个整体进行处理。
还需要说明的是,GPM或AWP属于一种帧间预测技术,GPM或AWP需要在码流中传输一个GPM或AWP是否使用的标志(flag),该flag可以指示当前块是否使用GPM或AWP。如果使用GPM或AWP,编码器在码流中需要传输具体使用的模式,即GPM的64种划分模式之一,或AWP的56种划分模式之一;以及两个单向运动信息的索引值。也就是说,对于当前块而言,解码器通过解析码流可以得到GPM或AWP是否使用的信息,如果确定使用GPM或AWP,解码器可以解析出GPM或AWP的预测模式参数以及两个运动信息索引值,比如当前块可以划分为两个分区,那么可以解析出第一分区对应的第一运动信息索引值和第二分区对应的第二运动信息索引值。
在计算当前块的帧间预测值之前,首先需要构建一个新的运动信息候选列表,下面以AVS中的AWP为例介绍运动信息候选列表的构建方法。
如图7所示,块E为当前块,而块A、块B、块C、块D、块F、块G均为块E的相邻块。其中,块E的相邻块A是样本(x0-1,y0)所在的块,块E的相邻块B是样本(x0,y0-1)所在的块,块E的相邻块C是样本(x 0+1,y 0-1)所在的块,块E的相邻块D是样本(x 0-1,y 0-1)所在的块,块E的相邻块F是样本(x 0-1,y 1)所在的块,块E的相邻块G是样本(x 1,y 0-1)所在的块。其中(x 0,y 0)是块E左上角样本在图像中的坐标,(x 1,y 0)是块E右上角样本在图像中的坐标,(x 0,y 1)是块E左下角样本在图像中的坐标。也就是说,块E和它的相邻块A、B、C、D、F和G的空间位置关系详见图7。
对于图7而言,相邻块X(X表示为A、B、C、D、F或G)“存在”是指该块应在待解码图像内并且该块应与块E属于同一空间区域;否则相邻块“不存在”。可以得到,如果块“不存在”或者尚未解码,那么此块“不可用”;否则此块“可用”。或者,如果待解码图像样本所在的块“不存在”或者此样本尚未解码,那么此样本“不可用”;否则此样本“可用”。
假定第一个单向运动信息表示为mvAwp0L0、mvAwp0L1、RefIdxAwp0L0和RefIdxAwp0L1。其中,mvAwp0L0表示在第一个参考帧列表RefPicList0中对应的运动矢量,RefIdxAwp0L0表示在第一个参考帧列表RefPicList0中对应的参考帧的参考索引值;mvAwp0L1表示在第二个参考帧列表RefPicList1中对应运动矢量,RefIdxAwp0L1表示在第二个参考帧列表RefPicList1中对应的参考帧的参考索引值。第二个单向运动信息以此类推。
由于这里的运动信息都是单向的,所以RefIdxAwp0L0和RefIdxAwp0L1必有一个为有效值,比如0,1,2等;另一个为无效值,比如-1。如果RefIdxAwp0L0为有效值,那么RefIdxAwp0L1为-1;这时候对应的mvAwp0L0即为所需要的运动矢量,即(x,y),mvAwp0L1不需要考虑。反之亦然。
具体来讲,推导mvAwp0L0、mvAwp0L1、RefIdxAwp0L0、RefIdxAwp0L1、mvAwp1L0、mvAwp1L1、RefIdxAwp1L0和RefIdxAwp1L1的步骤如下:
第一步,如图7所示,F、G、C、A、B和D是当前块E的相邻块,确定F、G、C、A、B和D的“可用”性:
(a)如果F存在且采用帧间预测模式,那么F“可用”;否则F“不可用”。
(b)如果G存在且采用帧间预测模式,则G“可用”;否则G“不可用”。
(c)如果C存在且采用帧间预测模式,则C“可用”;否则C“不可用”。
(d)如果A存在且采用帧间预测模式,则A“可用”;否则A“不可用”。
(e)如果B存在且采用帧间预测模式,则B“可用”;否则B“不可用”。
(f)如果D存在且采用帧间预测模式,则D“可用”;否则D“不可用”。
第二步,按F、G、C、A、B和D的顺序将单向可用的运动信息放入单向运动信息候选列表(用AwpUniArray表示),直至AwpUniArray长度为3(或4)或者遍历结束。
第三步,如果AwpUniArray的长度小于3(或4),按F、G、C、A、B和D的顺序将双向可用的运动信息拆分为指向参考帧列表List0的单向运动信息以及指向参考帧列表List1的单向运动信息,先进行单向运动信息查重操作,若不重复则放入AwpUniArray,直至长度为3(或4)或遍历结束。
第四步,依次将按照前述的方法一、方法二、方法三推导出的时域双向的运动信息拆分为指向参考帧列表List0的单向运动信息以及指向参考帧列表List1的单向运动信息,先进行单向运动信息查重操作,若不重复则放入AwpUniArray,直至长度为4(或5)或遍历结束。
第五步,如果AwpUniArray的长度小于4(或5),那么将AwpUniArray中最后一个单向运动信息进行重复填充操作,直至AwpUniArray长度为4(或5)。
第六步,将AwpUniArray中第AwpCandIdx0+1个运动信息赋值给mvAwp0L0、mvAwp0L1、RefIdxAwp0L0和RefIdxAwp0L1,将AwpUniArray中第AwpCandIdx1+1个运动信息赋值给mvAwp1L0、mvAwp1L1、RefIdxAwp1L0和RefIdxAwp1L1。
这样,对于当前块而言,解码器通过解析码流可以得到GPM或AWP是否使用的信息,如果确定使用GPM或AWP,解码器可以解析出GPM或AWP的预测模式参数以及两个运动信息索引值,并且解码器构造当前块GPM或AWP使用的运动信息候选列表,然后根据解析到的两个运动信息索引值可以在上述构建出新的运动信息候选列表中找到两个单向运动信息,然后利用这两个单向运动信息可以查找到两个参考块,根据GPM或AWP使用的具体预测模式能够确定出两个参考块在每一个像素位置的权值,最后将两个参考块加权计算以得到当前块的预测块。
进一步地,如果当前模式是跳过(skip)模式,那么预测块就是解码块,意味着当前块的解码结束。如果当前模式不是跳过模式,熵解码解析量化系数,接着反量化与反变换以得到残差块,最后将残差块与预测块相加可以得到解码块,意味着当前块的解码结束。
除此之外,对于解码器而言,如果当前AWP的划分模式是第0~31中某一种划分模式,可以按照现有方法推导出时域运动信息;否则,将按照前述的方法一推导出时域运动信息(或者依次将按照前述的方法一、方法二、方法三推导出时域运动信息),(依次)将推导出的时域双向的运动信息拆分为指向参考帧列表List0的单向运动信息以及指向参考帧列表List1的单向运动信息,并且先进行单向运动信息查重操作,若不重复则放入AwpUniArray,直至长度为4(或5)或遍历结束。具体的文本描述如下,
具体来讲,推导mvAwp0L0、mvAwp0L1、RefIdxAwp0L0、RefIdxAwp0L1、mvAwp1L0、mvAwp1L1、RefIdxAwp1L0和RefIdxAwp1L1的步骤如下:
第一步,如图7所示,F、G、C、A、B和D是当前块E的相邻块,确定F、G、C、A、B和D的“可用”性:
(a)如果F存在且采用帧间预测模式,那么F“可用”;否则F“不可用”。
(b)如果G存在且采用帧间预测模式,则G“可用”;否则G“不可用”。
(c)如果C存在且采用帧间预测模式,则C“可用”;否则C“不可用”。
(d)如果A存在且采用帧间预测模式,则A“可用”;否则A“不可用”。
(e)如果B存在且采用帧间预测模式,则B“可用”;否则B“不可用”。
(f)如果D存在且采用帧间预测模式,则D“可用”;否则D“不可用”。
第二步,按F、G、C、A、B和D的顺序将单向可用的运动信息放入单向运动信息候选列表(用AwpUniArray表示),直至AwpUniArray长度为3(或4)或者遍历结束。
第三步,如果AwpUniArray的长度小于3(或4),按F、G、C、A、B和D的顺序将双向可用的运动信息拆分为指向参考帧列表List0的单向运动信息以及指向参考帧列表List1的单向运动信息,先进行单向运动信息查重操作,若不重复则放入AwpUniArray,直至长度为3(或4)或遍历结束。
第四步,如果AwpIdx(AWP预测模式下)属于0~31,按现有方法(即当前块的左上角位置)推导出时域双向的运动信息,否则按照本申请实施例的方法(比如前述的方法一)推导出时域双向的运动信息,将导出的双向的运动信息拆分为指向参考帧列表List0的单向运动信息以及指向参考帧列表List1的单向运动信息,先进行单向运动信息查重操作,若不重复则放入AwpUniArray,直至长度为4(或5)或遍历结束。
第五步,如果AwpUniArray的长度小于4(或5),那么将AwpUniArray中最后一个单向运动信息进行重复填充操作,直至AwpUniArray长度为4(或5)。
第六步,将AwpUniArray中第AwpCandIdx0+1个运动信息赋值给mvAwp0L0、mvAwp0L1、RefIdxAwp0L0和RefIdxAwp0L1,将AwpUniArray中第AwpCandIdx1+1个运动信息赋值给mvAwp1L0、mvAwp1L1、RefIdxAwp1L0和RefIdxAwp1L1。
也就是说,在本申请实施例中,通过使用本申请实施例的帧间预测方法构造时域运动信息并填入运动信息候选列表,使得该运动信息候选列表的构建中使用了右下方的时域运动信息。对于AWP或GPM使用更多的右下方的候选位置,可以增强右下方的相关性。还可以使用一个offset来减少所选的几个块在参考帧中属于一个块的情况。另外,当所选的位置不可用时,使用当前块内部的右下角位置替代;或者根据GPM或AWP的划分模式选择导出时域运动信息所使用的位置,或选择根据不同位置导出时域运动信息的排列组合。
这样,本申请实施例的运动信息候选列表补充增强与右下方更有相关性的运动信息,特别是使那些在AWP划分中处于右下方且与原有构建方式中左上方相关的运动信息相关性不强的块,能够得到更有相关性的运动信息,从而提高编码性能;而GPM中右下方的相关性偏弱,通过增加右下方时域运动信息候选位置的方式也能够提高右下方的相关性,从而提高编码性能。
还需要说明的是,本申请实施例的运动信息候选列表一般是指单向运动信息候选列表,但是本申请实施例单向运动信息的构造方式可以扩展到双向运动信息的构造,从而单向运动信息候选列表的构建也可以扩展到双向运动信息候选列表的构建。
本实施例提供了一种帧间预测方法,应用于解码器。解析码流,获取当前块的预测模式参数;当所述预测模式参数指示使用预设的帧间预测模式确定当前块的帧间预测值时,确定所述当前块的至少一个候选位置;其中,所述候选位置至少包括所述当前块内部的右下位置和所述当前块外部的右下位置;基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息;基于所述至少一个时域运动信息,构建新的运动信息候选列表;根据所述新的运动信息候选列表,确定所述当前块的帧间预测值。这样,由于当前块的时域运动信息是基于当前块内部的右下位置或当前块外部的右下位置确定的,可以在运动信息候选列表中补充增强与右下方更有相关性的运动信息,从而增加了运动信息候选列表中运动信息的多样性;尤其是对于GPM或AWP帧间预测模式而言,通过增加右下方时域运动信息候选位置的方式能够提高右下方的相关性,从而能够提升编解码性能。
本申请实施例提供一种帧间预测方法,该方法应用于视频编码设备,即编码器。该方法所实现的功能可以通过编码器中的第二处理器调用计算机程序来实现,当然计算机程序可以保存在第二存储器中,可见,该编码器至少包括第二处理器和第二存储器。
参见图10,其示出了本申请实施例又一种帧间预测方法的流程示意图。如图10所示,该方法可以包括:
S1001:确定当前块的预测模式参数;
需要说明的是,待编码图像可以划分为多个图像块,当前待编码的图像块可以称为当前块,与当前块相邻的图像块可以称为相邻块;即在待编码图像中,当前块与相邻块之间具有相邻关系。这里,每个当前块可以包括第一图像分量、第二图像分量和第三图像分量;也即当前块为待编码图像中当前待进行第一图像分量、第二图像分量或者第三图像分量预测的图像块。
其中,假定当前块进行第一图像分量预测,而且第一图像分量为亮度分量,即待预测图像分量为亮度分量,那么当前块也可以称为亮度块;或者,假定当前块进行第二图像分量预测,而且第二图像分量为色度分量,即待预测图像分量为色度分量,那么当前块也可以称为色度块。
还需要说明的是,预测模式参数指示了当前块采用的预测模式以及与该预测模式相关的参数。这里,针对预测模式参数的确定,可以采用简单的决策策略,比如根据失真值的大小进行确定;也可以采用复杂的决策策略,比如根据率失真优化(Rate Distortion Optimization,RDO)的结果进行确定,本申请实施例不作任何限定。通常而言,可以采用RDO方式来确定当前块的预测模式参数。
具体地,在一些实施例中,对于S1001来说,所述确定当前块的预测模式参数,可以包括:
利用多种预测模式对所述当前块进行预编码处理,获得每一种预测模式对应的率失真代价值;
从所获得的多个率失真代价值中选择最小率失真代价值,将所述最小率失真代价值对应的预测模式确定为当前块的预测模式参数。
也就是说,在编码器侧,针对当前块可以采用多种预测模式分别对当前块进行预编码处理。这里,多种预测模式通常包括有帧间预测模式、传统帧内预测模式和非传统帧内预测模式;其中,传统帧内预测模式可以包括有直流(Direct Current,DC)模式、平面(PLANAR)模式和角度模式等,非传统帧内预测模式可以包括有基于矩阵的帧内预测(Matrix-based Intra Prediction,MIP)模式、跨分量线性模型预测(Cross-component Linear Model Prediction,CCLM)模式、帧内块复制(Intra Block Copy,IBC)模式和PLT(Palette)模式等,而帧间预测模式可以包括有普通帧间预测模式、GPM预测模式和AWP预测模式等。
这样,在利用多种预测模式分别对当前块进行预编码之后,可以得到每一种预测模式对应的率失真代价值;然后从所得到的多个率失真代价值中选取最小率失真代价值,并将该最小率失真代价值对应的 预测模式确定为当前块的预测模式参数。除此之外,还可以在利用多种预测模式分别对当前块进行预编码之后,得到每一种预测模式对应的失真值;然后从所得到的多个失真值中选取最小失真值,并将该最小失真值对应的预测模式确定为当前块的预测模式参数。如此,最终使用所确定的预测模式参数对当前块进行编码,而且在这种预测模式下,可以使得预测残差较小,能够提高编码效率。
S1002:当所述预测模式参数指示使用预设的帧间预测模式确定当前块的帧间预测值时,确定所述当前块的至少一个候选位置;其中,所述候选位置至少包括所述当前块内部的右下位置和所述当前块外部的右下位置。
需要说明的是,如果预测模式参数指示使用预设的帧间预测模式确定当前块的帧间预测值的情况下,就可以采用本申请实施例所提供的帧间预测方法。这里,预设的帧间预测模式可以为GPM预测模式或AWP预测模式等。
还需要说明的是,运动信息可以包括运动矢量信息和参考帧信息。另外,参考帧信息可以是由参考帧列表以及参考索引值共同确定所对应的参考帧。
在一些实施例中,对于S1002来说,所述确定所述当前块的至少一个候选位置,可以包括:
获取第一右下候选位置、第二右下候选位置、第三右下候选位置和第四右下候选位置,组成候选位置集合;
从所述候选位置集合中,确定所述当前块的至少一个候选位置;
其中,所述第一右下候选位置表征所述当前块内部的右下位置,所述第二右下候选位置、第三右下候选位置和第四右下候选位置表征所述当前块外部的右下位置。
需要说明的是,以图7为例,当前块内部的右下位置可以是第一右下候选位置,如图7中填充1的位置所示;当前块外部的右下位置可以是第二右下候选位置,如图7中填充2的位置所示;当前块外部的右下位置也可以是第三右下候选位置,如图7中填充3的位置所示;当前块外部的右下位置还可以是第四右下候选位置,如图7中填充4的位置所示。
这样,在获取到第一右下候选位置、第二右下候选位置、第三右下候选位置和第四右下候选位置后,可以组成候选位置集合;然后从该候选位置集合中,确定当前块的至少一个候选位置。
进一步地,在一些实施例中,所述获取第一右下候选位置、第二右下候选位置、第三右下候选位置和第四右下候选位置,可以包括:
获取所述当前块的左上像素位置对应的坐标信息、所述当前块的宽度信息和所述当前块的高度信息;
分别利用所述左上像素位置对应的坐标信息、所述宽度信息和所述高度信息进行坐标计算,获得第一坐标信息、第二坐标信息、第三坐标信息和第四坐标信息;
将所述第一坐标信息对应的位置确定为所述第一右下候选位置,将所述第二坐标信息对应的位置确定为所述第二右下候选位置,将所述第三坐标信息对应的位置确定为所述第三右下候选位置,将所述第四坐标信息对应的位置确定为所述第四右下候选位置。
也就是说,当前块内部右下角即1位置是根据当前块右下角的像素位置来确定的。这里,仍以图7为例,假定当前块的左上像素位置(即左上角的像素位置)用(x,y)表示,当前块的宽度用width表示,当前块的高度用height表示,那么可以得到第一坐标信息为(x+width-1,y+height-1),第二坐标信息为(x+width,y+height),第三坐标信息为(x+width-1,y+height),第四坐标信息为(x+width,y+height-1);然后根据这四个坐标信息,可以依次确定出第一右下候选位置(即1位置)、第二右下候选位置(即2位置)、第三右下候选位置(即3位置)和第四右下候选位置(即4位置)。
进一步地,如果考虑到上述的方式所确定的四个位置距离太近,在对应的参考帧的对应位置上属于同一个块的可能性较大,这时候还可以设置一个偏移量,即第一预设偏移量,用offset表示。因此,在一些实施例中,在所述得到第一坐标信息、第二坐标信息、第三坐标信息和第四坐标信息之后,该方法还可以包括:
利用第一预设偏移量对所述第二坐标信息、所述第三坐标信息和所述第四坐标信息进行修正,得到第一修正后的第二坐标信息、第一修正后的第三坐标信息和第一修正后的第四坐标信息;
将所述第一坐标信息对应的位置确定为所述第一右下候选位置,将所述第一修正后的第二坐标信息对应的位置确定为所述第二右下候选位置,将所述第一修正后的第三坐标信息对应的位置确定为所述第三右下候选位置,将所述第一修正后的第四坐标信息对应的位置确定为所述第四右下候选位置。
也就是说,上述四个位置中,1的位置仍然可以是根据第一坐标信息,即(x+width-1,y+height-1)所确定的位置;而2的位置可以是根据第一修正后的第二坐标信息,即(x+width+offset,y+height+offset)所确定的位置;3的位置可以是根据第一修正后的第三坐标信息,即(x+width-1,y+height+offset)所确定的位置;4的位置可以是根据第一修正后的第四坐标信息,即(x+width+offset,y+height-1)所确定的位置。
进一步地,由于当前帧和导出时域运动信息所使用的参考帧信息之间可能存在着时间上的偏差,当前帧上的块到导出时域运动信息所使用的参考帧间可能也存在一个运动,这时候还可以设置第二偏移量,用(x’,y’)表示。因此,在一些实施例中,在所述得到第一坐标信息、第二坐标信息、第三坐标信息和第四坐标信息之后,该方法还可以包括:
在当前帧上的图像块到候选参考帧存在有运动矢量时,确定第二预设偏移量;其中,所述候选参考帧为确定时域运动信息所参考运动信息的参考帧,所述图像块至少包括相邻块,所述相邻块与所述当前块在所述当前帧内空间相邻;
利用第二预设偏移量对所述第一坐标信息、所述第二坐标信息、所述第三坐标信息和所述第四坐标信息进行修正,得到第二修正后的第一坐标信息、第二修正后的第二坐标信息、第二修正后的第三坐标信息和第二修正后的第四坐标信息;
将所述第二修正后的第一坐标信息对应的位置确定为所述第一右下候选位置,将所述第二修正后的第二坐标信息对应的位置确定为所述第二右下候选位置,将所述第二修正后的第三坐标信息对应的位置确定为所述第三右下候选位置,将所述第二修正后的第四坐标信息对应的位置确定为所述第四右下候选位置。
进一步地,在一些实施例中,所述确定第二预设偏移量,可以包括:
获取所述当前帧上的预设相邻块到所述候选参考帧的运动矢量,将所获取的运动矢量确定为所述第二预设偏移量;或者,
将所述当前帧上的预设相邻块的运动信息缩放到所述候选参考帧,获得缩放后的运动矢量,将所述缩放后的运动矢量确定为所述第二预设偏移量。
这里,对于(x’,y’)的确定,可以是查找某一个相邻块到导出时域运动信息所使用的参考帧的运动矢量作为(x’,y’),或者是查找某一个相邻块的运动信息缩放到导出时域运动信息所使用的参考帧的运动矢量作为(x’,y’),这里不作具体限定。
也就是说,一种可能的实施方式是按照上述方式在导出时域运动信息所使用的参考帧信息中找对应位置的时候,需要考虑当前帧上的块到导出时域运动信息所使用的参考帧存在有运动矢量。示例性地,如果考虑到第一预设偏移量,2位置是根据(x+width+offset,y+height+offset)所确定的位置,这时候再考虑到当前帧上(x+width+offset,y+height+offset)的块到导出时域运动信息所使用的参考帧的运动,假定(x’,y’)仍为当前帧上(x+width+offset,y+height+offset)的块到导出时域运动信息所用的参考帧的运动矢量,那么第二修正后的第二坐标信息为(x+width+offset+x’,y+height+offset+y’),即2位置可以是在导出时域运动信息所使用的参考帧的(x+width+offset+x’,y+height+offset+y’)所确定的位置。
另一种可能的实施方式是按照上述方式在导出时域运动信息所使用的参考帧信息中找对应位置的时候,不考虑到当前帧上的块到导出时域运动信息所使用的参考帧存在有运动矢量。示例性地,如果考虑到第一预设偏移量,2位置是根据(x+width+offset,y+height+offset)所确定的位置,这时候不再考虑当前帧上(x+width+offset,y+height+offset)的块到导出时域运动信息所使用的参考帧的运动,那么这时候的第二坐标信息为(x+width+offset,y+height+offset),即2位置可以是在导出时域运动信息所使用的参考帧的(x+width+offset,y+height+offset)所确定的位置。这里,具体的实施方式可以参见解码器侧的描述。
此外,在本申请实施例中,一种可能的方式是只使用上述四个位置中的某一个位置,一种可能的方式是使用上述四个位置中的某几个位置的组合。因此,可选地,在一些实施例中,所述从所述候选位置集合中,确定所述当前块的至少一个候选位置,可以包括:
从所述候选位置集合中按照预设方式选取一个候选位置,将所选取的候选位置确定为所述当前块的一个候选位置;或者,
从所述候选位置集合中,按照预设优先级顺序选取高优先级对应的候选位置且被选取的候选位置可用,将所选取的候选位置确定为所述当前块的一个候选位置。
可选地,在一些实施例中,所述从所述候选位置集合中,确定所述当前块的至少一个候选位置,可以包括:
从所述候选位置集合中按照预设组合方式选取多个候选位置,将所选取的多个候选位置确定为所述当前块的多个候选位置;或者,
从所述候选位置集合中,按照预设优先级顺序选取多个候选位置且被选取的候选位置可用,将所选取的多个候选位置确定为所述当前块的多个候选位置。
也就是说,一种可能的方式是只使用上述四个位置中的某一个位置,另一种可能的方式是使用上述四个位置中的某几个位置的组合,比如使用2、3、4的位置组合,使用3、4的位置组合等。这里,1、 2、3、4位置全用也是一种组合。换句话说,上述四个位置的任意个数(1,2,3,4)的排列组合,均可以作为确定候选位置所采用的一种选择方式。需要注意的是,当需要使用多个位置时,一种可能的方式是设置2排列在第一个,即2位置具有最高的优先级。
进一步地,在一些实施例中,该方法还可以包括:
从所述候选位置集合中选取候选位置时,若待选取的候选位置属于所述当前块外部的右下位置且所述当前块外部的右下位置均不可用,则将所述第一右下候选位置确定为所述待选取的候选位置。
也就是说,仍以图7为例,2、3、4位置都位于当前块的外面,而且2、3、4位置有时是不可用的。如果遇到图像边界,某种帧间参考无法跨越的边界等,这时候2、3、4位置可能都不可用。在遇到2、3、4位置均不可用的情况下,一种可能的方式是使用1位置代替不可用的位置。如果当前运动信息候选列表的构建中已经使用了1位置,那么还可以跳过不可用的位置。
这样,在确定出当前块的至少一个候选位置后,这里的候选位置是为当前块右下角的位置,可以是当前块内部的右下位置,也可以是当前块外部的右下位置,根据这些候选位置来确定当前块的至少一个时域运动矢量,可以使得构建运动信息候选列表使用时域运动信息时,能够增加与当前块右下角位置对应的时域运动信息,从而提升右下角的相关性。
S1003:基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息。
需要说明的是,在得到至少一个候选位置之后,可以根据所得到的候选位置来确定时域运动信息。具体地,在一些实施例中,对于S1003来说,所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息,可以包括:
确定所述至少一个候选位置中每一候选位置对应的参考帧信息;
针对每一候选位置,在对应的参考帧信息中确定与所述候选位置关联的时域位置,并将所述时域位置使用的运动信息确定为所述候选位置对应的时域运动信息;
基于所述至少一个候选位置,对应得到至少一个时域运动信息。
也就是说,时域运动信息是根据某一个参考帧信息中对应位置所使用的运动信息来确定的。而且针对不同的候选位置,可以得到不同的时域运动信息。这样,在推导出时域运动信息之后,可以将所得到的时域运动信息填充至运动信息候选列表中,以得到新的运动信息候选列表。
S1004:基于所述至少一个时域运动信息,构建新的运动信息候选列表。
需要说明的是,在得到至少一个时域运动信息之后,可以将其填入到运动信息候选列表中,以得到新的运动信息候选列表。具体地,对于S304来说,该步骤可以包括:将至少一个时域运动信息填入运动信息候选列表中,得到所述新的运动信息候选列表。
还需要说明的是,现有的运动信息候选列表中只预留一个时域运动信息的填充位置,为了提高右下角的相关性,还可以增加运动信息候选列表中时域运动信息的填充位置。具体地,在一些实施例中,该方法还可以包括:
调整时域运动信息在所述新的运动信息候选列表中的比例值;
根据所调整的比例值,控制所述新的运动信息候选列表中预留至少两个时域运动信息的填充位置。
也就是说,可以增加时域运动信息在运动信息候选列表中的比例值。如果AWP预测模式下候选列表中给时域运动信息保留了至少1个位置,那么可调整为AWP预测模式下候选列表中给时域运动信息保留了至少2个(或3个)位置,使得新的运动信息候选列表中预留至少两个时域运动信息的填充位置。
可以理解地,当预测模式参数指示使用预设的帧间预测模式(比如GPM或AWP)确定当前块的帧间预测值时,这时候可以确定出当前块的两个分区。也就是说,该方法还可以包括:当预测模式参数指示使用GPM或AWP确定当前块的帧间预测值时,确定所述当前块的两个分区;其中,所述两个分区包括第一分区和第二分区。
这里,在GPM或AWP预测模式下,还可以根据GPM或AWP的划分模式选择导出时域运动信息所使用的候选位置,或选择根据不同位置导出时域运动信息的排列组合。在一些实施例中,该方法还可以包括:
将GPM或AWP下的多种划分模式进行分组,得到至少两组划分模式集合;
确定所述至少两组划分模式集合中每一组划分模式集合各自对应的至少一个候选位置;其中,不同组的划分模式集合对应不同的至少一个候选位置;
针对每一组划分模式集合内的划分模式,根据对应确定的至少一个候选位置,执行所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息的步骤。
进一步地,至少两组划分模式集合包括第一组划分模式集合和第二组划分模式集合,该方法还可以包括:
若当前划分模式属于所述第一组划分模式集合,则将所述当前块内部的左上像素位置确定为所述当 前块的至少一个候选位置,执行所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息的步骤;
若当前划分模式属于所述第二组划分模式集合,则将所述当前块外部的右下像素位置确定为所述当前块的至少一个候选位置,执行所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息的步骤。
还需要说明的是,由于GPM或AWP预测模式下,某些划分模式所得到的两个分区,它们所能够找到的紧密相关的空域位置个数是不同的,还可以根据这些个数来确定当前块使用哪个部分的位置推导出时域运动信息。因此,在一些实施例中,该方法还可以包括:
确定第一空域像素位置对应的第一数量;其中,所述第一空域像素位置与所述第一分区的至少一个边界空间相邻;
确定第二空域像素位置对应的第二数量;其中,所述第二空域像素位置与所述第二分区的至少一个边界空间相邻;
若所述第一数量或所述第二数量小于预设值,则将所述当前块外部的右下像素位置确定所述当前块的至少一个候选位置,执行所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息的步骤;
若所述第一数量和所述第二数量均大于预设值,则将所述当前块的左上像素位置确定为所述当前块的至少一个候选位置,执行所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息的步骤。
需要说明的是,一种可能的方式是根据GPM或AWP的划分模式选择导出时域运动信息所使用的位置,或选择根据不同位置导出时域运动信息的排列组合。这里,具体的实施方式可以参见解码器侧的描述。
这样,在推导出时域运动信息之后,可以构建出新的运动信息候选列表。后续根据新的运动信息候选列表来确定当前块的帧间预测值。
S1005:根据所述新的运动信息候选列表,确定所述当前块的帧间预测值。
需要说明的是,当预测模式参数指示使用GPM或AWP确定当前块的帧间预测值时,这时候可以确定出当前块的两个分区;其中,两个分区可以包括第一分区和第二分区。
这样,在得到新的运动信息候选列表后,可以确定出当前块的第一分区对应的运动信息和所述第二分区的运动信息;然后根据第一分区对应的运动信息和所述第二分区的运动信息,能够确定出当前块的帧间预测值。
具体地,在一些实施例中,对于S1005来说,所述根据所述新的运动信息候选列表,确定所述当前块的帧间预测值,可以包括:
基于所述新的运动信息候选列表,确定所述第一分区的运动信息和所述第二分区的运动信息,并将第一运动信息索引值设置为所述第一分区的运动信息在所述新的运动信息候选列表中的索引序号值,将第二运动信息索引值设置为所述第二分区的运动信息在所述新的运动信息候选列表中的索引序号值;
利用所述第一分区的运动信息计算所述第一分区的第一预测值,利用所述第二分区的运动信息计算所述第二分区的第二预测值;
对所述第一预测值和所述第二预测值进行加权融合,得到所述当前块的帧间预测值。
进一步地,在一些实施例中,该方法还可以包括:
将所述第一运动信息索引值和所述第二运动信息索引值写入码流。
需要说明的是,GPM或AWP属于一种帧间预测技术,在编码器侧,GPM或AWP需要在码流中传输一个GPM或AWP是否使用的标志(flag)以及两个运动信息索引值(比如第一运动信息索引值和第二运动信息索引值),这样后续解码器侧,能够通过解析码流直接得到GPM或AWP是否使用的flag以及两个运动信息索引值。
也就是说,对于当前块而言,可以尝试使用GPM或AWP进行预编码及其他可用预测模式进行预编码,确定是否使用GPM或AWP。如果GPM或AWP的预编码代价最小,那么可以使用GPM或AWP。同时,在尝试使用GPM或AWP时,还可以构建运动信息候选列表,该构建方式和解码器侧实施例所述的构建方式相同。
这样,在编码器侧,从运动信息候选列表中选择两个单向运动信息,然后从GPM或AWP的划分模式中选择一种模式进行预编码来确定GPM或AWP的预编码代价。一种可能的方式是对所有可能的单向运动信息候选的组合,基于所有可能的GPM或AWP的划分模式确定其代价,然后取代价最小的两个单向运动信息和GPM或AWP的划分模式的组合作为最终所确定的两个单向运动信息和GPM或AWP的预测模式。
最后,在码流中写入GPM或AWP是否使用的信息。如果确定使用GPM或AWP,在码流中写入GPM或AWP的预测模式参数和两个单向运动信息索引值。如此,如果当前模式是跳过模式,那么预测块既是编码块,意味着当前块的编码结束。如果当前模式不是跳过模式,还需要在码流中写入量化系数;其中,量化系数由当前块的实际值减去帧间预测值所得到的残差而组成的残差块,并对残差块进行变换与量化得到,这时候当前块的编码结束。也就是说,如果当前模式不是跳过模式,需要将当前块与帧间预测块相减得到残差块,然后将残差块进行变换、量化、熵编码;后续在解码器侧,对于当前模式不是跳过模式的情况,通过熵解码解析量化系数,然后反量化、反变换以得到残差块,最后将残差块与预测块相加得到解码块,意味着当前块的解码结束。
本实施例提供了一种帧间预测方法,应用于编码器。确定当前块的预测模式参数;当所述预测模式参数指示使用预设的帧间预测模式确定当前块的帧间预测值时,确定所述当前块的至少一个候选位置;其中,所述候选位置至少包括所述当前块内部的右下位置和所述当前块外部的右下位置;基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息;基于所述至少一个时域运动信息,构建新的运动信息候选列表;根据所述新的运动信息候选列表,确定所述当前块的帧间预测值。这样,由于当前块的时域运动信息是基于当前块内部的右下位置或当前块外部的右下位置确定的,可以在运动信息候选列表中补充增强与右下方更有相关性的运动信息,从而增加了运动信息候选列表中运动信息的多样性;尤其是对于GPM或AWP帧间预测模式而言,通过增加右下方时域运动信息候选位置的方式能够提高右下方的相关性,从而能够提升编解码性能。
基于前述实施例相同的发明构思,参见图11,其示出了本申请实施例提供的一种解码器110的组成结构示意图。如图11所示,解码器110可以包括:解析单元1101、第一确定单元1102、第一构建单元1103和第一预测单元1104;其中,
解析单元1101,配置为解析码流,获取当前块的预测模式参数;
第一确定单元1102,配置为当所述预测模式参数指示使用预设的帧间预测模式确定当前块的帧间预测值时,确定所述当前块的至少一个候选位置;其中,所述候选位置至少包括所述当前块内部的右下位置和所述当前块外部的右下位置;
第一确定单元1102,还配置为基于所述至少一个候选位置,确定当前块的至少一个时域运动信息;
第一构建单元1103,配置为基于所述至少一个时域运动信息,构建新的运动信息候选列表;
第一预测单元1104,配置为根据所述新的运动信息候选列表,确定所述当前块的帧间预测值。
在一些实施例中,所述运动信息包括运动矢量信息和参考帧信息。
在一些实施例中,第一确定单元1102,还配置为获取第一右下候选位置、第二右下候选位置、第三右下候选位置和第四右下候选位置,组成候选位置集合;从所述候选位置集合中,确定所述当前块的至少一个候选位置;其中,所述第一右下候选位置表征所述当前块内部的右下位置,所述第二右下候选位置、第三右下候选位置和第四右下候选位置表征所述当前块外部的右下位置。
在一些实施例中,第一确定单元1102,还配置为获取所述当前块的左上像素位置对应的坐标信息、所述当前块的宽度信息和所述当前块的高度信息;分别利用所述左上像素位置对应的坐标信息、所述宽度信息和所述高度信息进行坐标计算,获得第一坐标信息、第二坐标信息、第三坐标信息和第四坐标信息;将所述第一坐标信息对应的位置确定为所述第一右下候选位置,将所述第二坐标信息对应的位置确定为所述第二右下候选位置,将所述第三坐标信息对应的位置确定为所述第三右下候选位置,将所述第四坐标信息对应的位置确定为所述第四右下候选位置。
在一些实施例中,第一确定单元1102,还配置为利用第一预设偏移量对所述第二坐标信息、所述第三坐标信息和所述第四坐标信息进行修正,得到第一修正后的第二坐标信息、第一修正后的第三坐标信息和第一修正后的第四坐标信息;将所述第一坐标信息对应的位置确定为所述第一右下候选位置,将所述第一修正后的第二坐标信息对应的位置确定为所述第二右下候选位置,将所述第一修正后的第三坐标信息对应的位置确定为所述第三右下候选位置,将所述第一修正后的第四坐标信息对应的位置确定为所述第四右下候选位置。
在一些实施例中,第一确定单元1102,还配置为在当前帧上的图像块到候选参考帧存在有运动矢量时,确定第二预设偏移量;其中,所述候选参考帧为确定时域运动信息所参考运动信息的参考帧,所述图像块至少包括相邻块,相邻块与当前块在当前帧内空间相邻;利用第二预设偏移量对所述第一坐标信息、所述第二坐标信息、所述第三坐标信息和所述第四坐标信息进行修正,得到第二修正后的第一坐标信息、第二修正后的第二坐标信息、第二修正后的第三坐标信息和第二修正后的第四坐标信息;将所述第二修正后的第一坐标信息对应的位置确定为所述第一右下候选位置,将所述第二修正后的第二坐标信息对应的位置确定为所述第二右下候选位置,将所述第二修正后的第三坐标信息对应的位置确定为所述第三右下候选位置,将所述第二修正后的第四坐标信息对应的位置确定为所述第四右下候选位置。
在一些实施例中,第一确定单元1102,还配置为获取所述当前帧上的预设相邻块到所述候选参考帧的运动矢量,将所获取的运动矢量确定为所述第二预设偏移量;或者,将所述当前帧上的预设相邻块的运动信息缩放到所述候选参考帧,获得缩放后的运动矢量,将所述缩放后的运动矢量确定为所述第二预设偏移量。
在一些实施例中,参见图11,解码器110还可以包括第一选择单元1105,配置为在所述至少一个时域运动信息的数量为一个的情况下,从所述候选位置集合中按照预设方式选取一个候选位置,将所选取的候选位置确定为所述当前块的一个候选位置;或者,从所述候选位置集合中,按照预设优先级顺序选取高优先级对应的候选位置且被选取的候选位置可用,将所选取的候选位置确定为所述当前块的一个候选位置。
在一些实施例中,第一选择单元1105,还配置为在所述至少一个时域运动信息的数量为多个的情况下,从所述候选位置集合中按照预设组合方式选取多个候选位置,将所选取的多个候选位置确定为所述当前块的多个候选位置;或者,从所述候选位置集合中,按照预设优先级顺序选取多个候选位置且被选取的候选位置可用,将所选取的多个候选位置确定为所述当前块的多个候选位置。
在一些实施例中,第一选择单元1105,还配置为从所述候选位置集合中选取候选位置时,若待选取的候选位置属于所述当前块外部的右下位置且所述当前块外部的右下位置均不可用,则将所述第一右下候选位置确定为所述待选取的候选位置。
在一些实施例中,参见图11,解码器110还可以包括第一调整单元1106,配置为调整时域运动信息在所述新的运动信息候选列表中的比例值;根据所调整的比例值,控制所述新的运动信息候选列表中预留至少两个时域运动信息的填充位置。
在一些实施例中,第一确定单元1102,还配置为确定所述至少一个候选位置中每一候选位置对应的参考帧信息;针对每一候选位置,在对应的参考帧信息中确定与所述候选位置关联的时域位置,并将所述时域位置使用的运动信息确定为所述候选位置对应的时域运动信息;基于所述至少一个候选位置,对应得到至少一个时域运动信息。
在一些实施例中,所述预设的帧间预测模式包括:GPM或AWP;
第一确定单元1102,还配置为当所述预测模式参数指示使用GPM或AWP确定当前块的帧间预测值时,确定所述当前块的两个分区;其中,所述两个分区包括第一分区和第二分区。
在一些实施例中,第一确定单元1102,还配置为将GPM或AWP下的多种划分模式进行分组,得到至少两组划分模式集合;确定所述至少两组划分模式集合中每一组划分模式集合各自对应的至少一个候选位置;其中,不同组的划分模式集合对应不同的至少一个候选位置;针对每一组划分模式集合内的划分模式,根据对应确定的至少一个候选位置,执行所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息的步骤。
在一些实施例中,第一确定单元1102,还配置为所述至少两组划分模式集合包括第一组划分模式集合和第二组划分模式集合,若当前划分模式属于所述第一组划分模式集合,则将所述当前块内部的左上像素位置确定为所述当前块的至少一个候选位置,执行所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息的步骤;若当前划分模式属于所述第二组划分模式集合,则将所述当前块外部的右下像素位置确定为所述当前块的至少一个候选位置,执行所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息的步骤。
在一些实施例中,第一确定单元1102,还配置为确定第一空域像素位置对应的第一数量;其中,所述第一空域像素位置与所述第一分区的至少一个边界空间相邻;确定第二空域像素位置对应的第二数量;其中,所述第二空域像素位置与所述第二分区的至少一个边界空间相邻;以及若所述第一数量或所述第二数量小于预设值,则将所述当前块外部的右下像素位置确定所述当前块的至少一个候选位置,执行所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息的步骤;若所述第一数量和所述第二数量均大于预设值,则将所述当前块的左上像素位置确定为所述当前块的至少一个候选位置,执行所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息的步骤。
在一些实施例中,解析单元1101,还配置为解析码流,确定所述第一分区对应的第一运动信息索引值和所述第二分区对应的第二运动信息索引值;
第一确定单元1102,还配置为基于所述新的运动信息候选列表,将所述第一运动信息索引值指示的所述新的运动信息候选列表中的运动信息确定为所述第一分区的运动信息,将所述第二运动信息索引值指示的所述新的运动信息候选列表中的运动信息确定为所述第二分区的运动信息;
第一预测单元1104,还配置为利用所述第一分区的运动信息计算所述第一分区的第一预测值,利用所述第二分区的运动信息计算所述第二分区的第二预测值;以及对所述第一预测值和所述第二预测值进行加权融合,得到所述当前块的帧间预测值。
可以理解地,在本申请实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
因此,本申请实施例提供了一种计算机存储介质,应用于解码器110,该计算机存储介质存储有帧间预测程序,所述帧间预测程序被第一处理器执行时实现前述实施例中解码器侧所述的方法。
基于上述解码器110的组成以及计算机存储介质,参见图12,其示出了本申请实施例提供的解码器110的具体硬件结构示例,可以包括:第一通信接口1201、第一存储器1202和第一处理器1203;各个组件通过第一总线系统1204耦合在一起。可理解,第一总线系统1204用于实现这些组件之间的连接通信。第一总线系统1204除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图12中将各种总线都标为第一总线系统1204。其中,
第一通信接口1201,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
第一存储器1202,用于存储能够在第一处理器1203上运行的计算机程序;
第一处理器1203,用于在运行所述计算机程序时,执行:
解析码流,获取当前块的预测模式参数;
当所述预测模式参数指示使用预设的帧间预测模式确定当前块的帧间预测值时,确定所述当前块的至少一个候选位置;其中,所述候选位置至少包括所述当前块内部的右下位置和所述当前块外部的右下位置;
基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息;
基于所述至少一个时域运动信息,构建新的运动信息候选列表;
根据所述新的运动信息候选列表,确定所述当前块的帧间预测值。
可以理解,本申请实施例中的第一存储器1202可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请描述的系统和方法的第一存储器1202旨在包括但不限于这些和任意其它适合类型的存储器。
而第一处理器1203可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过第一处理器1203中的硬件的集成逻辑电路或者软件形式的指令完成。上述的第一处理器1203可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于第一存储器1202,第一处理器1203读取第一存储器1202中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本申请描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(Application Specific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、 可编程逻辑设备(Programmable Logic Device,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。对于软件实现,可通过执行本申请所述功能的模块(例如过程、函数等)来实现本申请所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
可选地,作为另一个实施例,第一处理器1203还配置为在运行所述计算机程序时,执行前述实施例中任一项所述的方法。
本实施例提供了一种解码器,该解码器可以包括解析单元、第一确定单元、第一构建单元和第一预测单元。在该解码器中,可以在运动信息候选列表中补充增强与右下方更有相关性的运动信息,从而增加了运动信息候选列表中运动信息的多样性;尤其是对于GPM或AWP帧间预测模式而言,通过增加右下方时域运动信息候选位置的方式能够提高右下方的相关性,从而能够提升编解码性能。
基于前述实施例相同的发明构思,参见图13,其示出了本申请实施例提供的一种编码器130的组成结构示意图。如图13所示,该编码器130可以包括:第二确定单元1301、第二构建单元1302和第二预测单元1303;其中,
第二确定单元1301,配置为确定当前块的预测模式参数;及当所述预测模式参数指示使用预设的帧间预测模式确定当前块的帧间预测值时,确定所述当前块的至少一个候选位置;其中,所述候选位置至少包括所述当前块内部的右下位置和所述当前块外部的右下位置;
第二确定单元1301,还配置为基于所述至少一个候选位置,确定当前块的至少一个时域运动信息;
第二构建单元1302,配置为基于所述至少一个时域运动信息,构建新的运动信息候选列表;
第二预测单元1303,配置为根据所述新的运动信息候选列表,确定所述当前块的帧间预测值。
在一些实施例中,所述运动信息包括运动矢量信息和参考帧信息。
在一些实施例中,参见图13,编码器130还可以包括预编码单元1304和第二选择单元1305;其中,
预编码单元1304,配置为利用多种预测模式对所述当前块进行预编码处理,获得每一种预测模式对应的率失真代价值;
第二选择单元1305,配置为从所获得的多个率失真代价值中选择最小率失真代价值,将所述最小率失真代价值对应的预测模式确定为当前块的预测模式参数。
在一些实施例中,第二确定单元1301,还配置为获取第一右下候选位置、第二右下候选位置、第三右下候选位置和第四右下候选位置,组成候选位置集合;从所述候选位置集合中,确定所述当前块的至少一个候选位置;其中,所述第一右下候选位置表征所述当前块内部的右下位置,所述第二右下候选位置、第三右下候选位置和第四右下候选位置表征所述当前块外部的右下位置。
在一些实施例中,第二确定单元1301,还配置为获取所述当前块的左上像素位置对应的坐标信息、所述当前块的宽度信息和所述当前块的高度信息;分别利用所述左上像素位置对应的坐标信息、所述宽度信息和所述高度信息进行坐标计算,获得第一坐标信息、第二坐标信息、第三坐标信息和第四坐标信息;将所述第一坐标信息对应的位置确定为所述第一右下候选位置,将所述第二坐标信息对应的位置确定为所述第二右下候选位置,将所述第三坐标信息对应的位置确定为所述第三右下候选位置,将所述第四坐标信息对应的位置确定为所述第四右下候选位置。
在一些实施例中,第二确定单元1301,还配置为利用第一预设偏移量对所述第二坐标信息、所述第三坐标信息和所述第四坐标信息进行修正,得到第一修正后的第二坐标信息、第一修正后的第三坐标信息和第一修正后的第四坐标信息;将所述第一坐标信息对应的位置确定为所述第一右下候选位置,将所述第一修正后的第二坐标信息对应的位置确定为所述第二右下候选位置,将所述第一修正后的第三坐标信息对应的位置确定为所述第三右下候选位置,将所述第一修正后的第四坐标信息对应的位置确定为所述第四右下候选位置。
在一些实施例中,第二确定单元1301,还配置为在当前帧上的图像块到候选参考帧存在有运动矢量时,确定第二预设偏移量;其中,所述候选参考帧为确定时域运动信息所参考运动信息的参考帧,所述图像块至少包括相邻块,相邻块与当前块在当前帧内空间相邻;利用第二预设偏移量对所述第一坐标信息、所述第二坐标信息、所述第三坐标信息和所述第四坐标信息进行修正,得到第二修正后的第一坐标信息、第二修正后的第二坐标信息、第二修正后的第三坐标信息和第二修正后的第四坐标信息;将所述第二修正后的第一坐标信息对应的位置确定为所述第一右下候选位置,将所述第二修正后的第二坐标信息对应的位置确定为所述第二右下候选位置,将所述第二修正后的第三坐标信息对应的位置确定为所述第三右下候选位置,将所述第二修正后的第四坐标信息对应的位置确定为所述第四右下候选位置。
在一些实施例中,第二确定单元1301,还配置为获取所述当前帧上的预设相邻块到所述候选参考帧的运动矢量,将所获取的运动矢量确定为所述第二预设偏移量;或者,将所述当前帧上的预设相邻块的运动信息缩放到所述候选参考帧,获得缩放后的运动矢量,将所述缩放后的运动矢量确定为所述第二 预设偏移量。
在一些实施例中,第二选择单元1305,还配置为在所述至少一个时域运动信息的数量为一个的情况下,从所述候选位置集合中按照预设方式选取一个候选位置,将所选取的候选位置确定为所述当前块的一个候选位置;或者,从所述候选位置集合中,按照预设优先级顺序选取高优先级对应的候选位置且被选取的候选位置可用,将所选取的候选位置确定为所述当前块的一个候选位置。
在一些实施例中,第二选择单元1305,还配置为从所述候选位置集合中按照预设组合方式选取多个候选位置,将所选取的多个候选位置确定为所述当前块的多个候选位置;或者,从所述候选位置集合中,按照预设优先级顺序选取多个候选位置且被选取的候选位置可用,将所选取的多个候选位置确定为所述当前块的多个候选位置。
在一些实施例中,第二选择单元1305,还配置为从所述候选位置集合中选取候选位置时,若待选取的候选位置属于所述当前块外部的右下位置且所述当前块外部的右下位置均不可用,则将所述第一右下候选位置确定为所述待选取的候选位置。
在一些实施例中,参见图13,编码器130还可以包括第二调整单元1306,配置为调整时域运动信息在所述新的运动信息候选列表中的比例值;根据所调整的比例值,控制所述新的运动信息候选列表中预留至少两个时域运动信息的填充位置。
在一些实施例中,第二确定单元1301,还配置为确定所述至少一个候选位置中每一候选位置对应的参考帧信息;针对每一候选位置,在对应的参考帧信息中确定与所述候选位置关联的时域位置,并将所述时域位置使用的运动信息确定为所述候选位置对应的时域运动信息;基于所述至少一个候选位置,对应得到至少一个时域运动信息。
在一些实施例中,所述预设的帧间预测模式包括:GPM或AWP;
第二确定单元1301,还配置为当所述预测模式参数指示使用GPM或AWP确定当前块的帧间预测值时,确定所述当前块的两个分区;其中,所述两个分区包括第一分区和第二分区。
在一些实施例中,第二确定单元1301,还配置为将GPM或AWP下的多种划分模式进行分组,得到至少两组划分模式集合;确定所述至少两组划分模式集合中每一组划分模式集合各自对应的至少一个候选位置;其中,不同组的划分模式集合对应不同的至少一个候选位置;针对每一组划分模式集合内的划分模式,根据对应确定的至少一个候选位置,执行所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息的步骤。
在一些实施例中,第二确定单元1301,还配置为所述至少两组划分模式集合包括第一组划分模式集合和第二组划分模式集合,若待使用的划分模式属于所述第一组划分模式集合,则将所述当前块内部的左上像素位置确定为所述当前块的至少一个候选位置,执行所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息的步骤;若待使用的划分模式属于所述第二组划分模式集合,则将所述当前块外部的右下像素位置确定为所述当前块的至少一个候选位置,执行所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息的步骤。
在一些实施例中,第二确定单元1301,还配置为确定第一空域像素位置对应的第一数量;其中,所述第一空域像素位置与所述第一分区的至少一个边界空间相邻;确定第二空域像素位置对应的第二数量;其中,所述第二空域像素位置与所述第二分区的至少一个边界空间相邻;以及若所述第一数量或所述第二数量小于预设值,则将所述当前块外部的右下像素位置确定所述当前块的至少一个候选位置,执行所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息的步骤;若所述第一数量和所述第二数量均大于预设值,则将所述当前块的左上像素位置确定为所述当前块的至少一个候选位置,执行所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息的步骤。
在一些实施例中,第二确定单元1301,还配置为基于所述新的运动信息候选列表,确定所述第一分区的运动信息和所述第二分区的运动信息,并将第一运动信息索引值设置为所述第一分区的运动信息在所述新的运动信息候选列表中的索引序号值,将第二运动信息索引值设置为所述第二分区的运动信息在所述新的运动信息候选列表中的索引序号值;
第二预测单元1303,还配置为利用所述第一分区的运动信息计算所述第一分区的第一预测值,利用所述第二分区的运动信息计算所述第二分区的第二预测值;以及对所述第一预测值和所述第二预测值进行加权融合,得到所述当前块的帧间预测值。
在一些实施例中,参见图13,编码器130还可以包括写入单元1307,配置为将所述第一运动信息索引值和所述第二运动信息索引值写入码流。
可以理解地,在本实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以 采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例提供了一种计算机存储介质,应用于编码器130,该计算机存储介质存储有帧间预测程序,所述帧间预测程序被第二处理器执行时实现前述实施例中编码器侧所述的方法。
基于上述编码器130的组成以及计算机存储介质,参见图14,其示出了本申请实施例提供的编码器130的具体硬件结构示例,可以包括:第二通信接口1401、第二存储器1402和第二处理器1403;各个组件通过第二总线系统1404耦合在一起。可理解,第二总线系统1404用于实现这些组件之间的连接通信。第二总线系统1404除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图14中将各种总线都标为第二总线系统1404。其中,
第二通信接口1401,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
第二存储器1402,用于存储能够在第二处理器1403上运行的计算机程序;
第二处理器1403,用于在运行所述计算机程序时,执行:
确定当前块的预测模式参数;
当所述预测模式参数指示使用预设的帧间预测模式确定当前块的帧间预测值时,确定所述当前块的至少一个候选位置;其中,所述候选位置至少包括所述当前块内部的右下位置和所述当前块外部的右下位置;
基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息;
基于所述至少一个时域运动信息,构建新的运动信息候选列表;
根据所述新的运动信息候选列表,确定所述当前块的帧间预测值。
可选地,作为另一个实施例,第二处理器1403还配置为在运行所述计算机程序时,执行前述实施例中任一项所述的方法。
可以理解,第二存储器1402与第一存储器1202的硬件功能类似,第二处理器1403与第一处理器1203的硬件功能类似;这里不再详述。
本实施例提供了一种编码器,该编码器可以包括第二确定单元、第二构建单元和第二预测单元。在该编码器中,可以在运动信息候选列表中补充增强与右下方更有相关性的运动信息,从而增加了运动信息候选列表中运动信息的多样性;尤其是对于GPM或AWP帧间预测模式而言,通过增加右下方时域运动信息候选位置的方式能够提高右下方的相关性,从而能够提升编解码性能。
需要说明的是,在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
工业实用性
本申请实施例中,无论是编码器还是解码器,由于当前块的时域运动信息是基于当前块内部的右下位置或当前块外部的右下位置确定的,可以在运动信息候选列表中补充增强与右下方更有相关性的运动信息,从而增加了运动信息候选列表中运动信息的多样性;尤其是对于GPM或AWP帧间预测模式而言,通过增加右下方时域运动信息候选位置的方式能够提高右下方的相关性,从而能够提升编解码性能。

Claims (41)

  1. 一种帧间预测方法,应用于解码器,所述方法包括:
    解析码流,获取当前块的预测模式参数;
    当所述预测模式参数指示使用预设的帧间预测模式确定当前块的帧间预测值时,确定所述当前块的至少一个候选位置;其中,所述候选位置至少包括所述当前块内部的右下位置和所述当前块外部的右下位置;
    基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息;
    基于所述至少一个时域运动信息,构建新的运动信息候选列表;
    根据所述新的运动信息候选列表,确定所述当前块的帧间预测值。
  2. 根据权利要求1所述的方法,其中,所述运动信息包括运动矢量信息和参考帧信息。
  3. 根据权利要求1所述的方法,其中,所述确定所述当前块的至少一个候选位置,包括:
    获取第一右下候选位置、第二右下候选位置、第三右下候选位置和第四右下候选位置,组成候选位置集合;
    从所述候选位置集合中,确定所述当前块的至少一个候选位置;
    其中,所述第一右下候选位置表征所述当前块内部的右下位置,所述第二右下候选位置、第三右下候选位置和第四右下候选位置表征所述当前块外部的右下位置。
  4. 根据权利要求3所述的方法,其中,所述获取第一右下候选位置、第二右下候选位置、第三右下候选位置和第四右下候选位置,包括:
    获取所述当前块的左上像素位置对应的坐标信息、所述当前块的宽度信息和所述当前块的高度信息;
    分别利用所述左上像素位置对应的坐标信息、所述宽度信息和所述高度信息进行坐标计算,获得第一坐标信息、第二坐标信息、第三坐标信息和第四坐标信息;
    将所述第一坐标信息对应的位置确定为所述第一右下候选位置,将所述第二坐标信息对应的位置确定为所述第二右下候选位置,将所述第三坐标信息对应的位置确定为所述第三右下候选位置,将所述第四坐标信息对应的位置确定为所述第四右下候选位置。
  5. 根据权利要求4所述的方法,其中,在所述得到第一坐标信息、第二坐标信息、第三坐标信息和第四坐标信息之后,所述方法还包括:
    利用第一预设偏移量对所述第二坐标信息、所述第三坐标信息和所述第四坐标信息进行修正,得到第一修正后的第二坐标信息、第一修正后的第三坐标信息和第一修正后的第四坐标信息;
    将所述第一坐标信息对应的位置确定为所述第一右下候选位置,将所述第一修正后的第二坐标信息对应的位置确定为所述第二右下候选位置,将所述第一修正后的第三坐标信息对应的位置确定为所述第三右下候选位置,将所述第一修正后的第四坐标信息对应的位置确定为所述第四右下候选位置。
  6. 根据权利要求4或5所述的方法,其中,在所述得到第一坐标信息、第二坐标信息、第三坐标信息和第四坐标信息之后,所述方法还包括:
    在当前帧上的图像块到候选参考帧存在有运动矢量时,确定第二预设偏移量;其中,所述候选参考帧为确定时域运动信息所参考运动信息的参考帧,所述图像块至少包括相邻块,所述相邻块与所述当前块在所述当前帧内空间相邻;
    利用第二预设偏移量对所述第一坐标信息、所述第二坐标信息、所述第三坐标信息和所述第四坐标信息进行修正,得到第二修正后的第一坐标信息、第二修正后的第二坐标信息、第二修正后的第三坐标信息和第二修正后的第四坐标信息;
    将所述第二修正后的第一坐标信息对应的位置确定为所述第一右下候选位置,将所述第二修正后的第二坐标信息对应的位置确定为所述第二右下候选位置,将所述第二修正后的第三坐标信息对应的位置确定为所述第三右下候选位置,将所述第二修正后的第四坐标信息对应的位置确定为所述第四右下候选位置。
  7. 根据权利要求6所述的方法,其中,所述确定第二预设偏移量,包括:
    获取所述当前帧上的预设相邻块到所述候选参考帧的运动矢量,将所获取的运动矢量确定为所述第二预设偏移量;或者,
    将所述当前帧上的预设相邻块的运动信息缩放到所述候选参考帧,获得缩放后的运动矢量,将所述缩放后的运动矢量确定为所述第二预设偏移量。
  8. 根据权利要求3所述的方法,其中,在所述至少一个时域运动信息的数量为一个的情况下,所述从所述候选位置集合中,确定所述当前块的至少一个候选位置,包括:
    从所述候选位置集合中按照预设方式选取一个候选位置,将所选取的候选位置确定为所述当前块的一个候选位置;或者,
    从所述候选位置集合中,按照预设优先级顺序选取高优先级对应的候选位置且被选取的候选位置可用,将所选取的候选位置确定为所述当前块的一个候选位置。
  9. 根据权利要求3所述的方法,其中,在所述至少一个时域运动信息的数量为多个的情况下,所述从所述候选位置集合中,确定所述当前块的至少一个候选位置,包括:
    从所述候选位置集合中按照预设组合方式选取多个候选位置,将所选取的多个候选位置确定为所述当前块的多个候选位置;或者,
    从所述候选位置集合中,按照预设优先级顺序选取多个候选位置且被选取的候选位置可用,将所选取的多个候选位置确定为所述当前块的多个候选位置。
  10. 根据权利要求3所述的方法,其中,所述方法还包括:
    从所述候选位置集合中选取候选位置时,若待选取的候选位置属于所述当前块外部的右下位置且所述当前块外部的右下位置均不可用,则将所述第一右下候选位置确定为所述待选取的候选位置。
  11. 根据权利要求1所述的方法,其中,所述方法还包括:
    调整时域运动信息在所述新的运动信息候选列表中的比例值;
    根据所调整的比例值,控制所述新的运动信息候选列表中预留至少两个时域运动信息的填充位置。
  12. 根据权利要求1所述的方法,其中,所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息,包括:
    确定所述至少一个候选位置中每一候选位置对应的参考帧信息;
    针对每一候选位置,在对应的参考帧信息中确定与所述候选位置关联的时域位置,并将所述时域位置使用的运动信息确定为所述候选位置对应的时域运动信息;
    基于所述至少一个候选位置,对应得到至少一个时域运动信息。
  13. 根据权利要求1所述的方法,其中,所述预设的帧间预测模式包括:几何划分预测模式或角度加权预测模式;
    相应地,所述方法还包括:
    当所述预测模式参数指示使用所述预设的帧间预测模式确定当前块的帧间预测值时,确定所述当前块的两个分区;其中,所述两个分区包括第一分区和第二分区。
  14. 根据权利要求13所述的方法,其中,所述方法还包括:
    将所述预设的帧间预测模式下的多种划分模式进行分组,得到至少两组划分模式集合;
    确定所述至少两组划分模式集合中每一组划分模式集合各自对应的至少一个候选位置;其中,不同组的划分模式集合对应不同的至少一个候选位置;
    针对每一组划分模式集合内的划分模式,根据对应确定的至少一个候选位置,执行所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息的步骤。
  15. 根据权利要求14所述的方法,其中,所述至少两组划分模式集合包括第一组划分模式集合和第二组划分模式集合,所述方法还包括:
    若当前划分模式属于所述第一组划分模式集合,则将所述当前块内部的左上像素位置确定为所述当前块的至少一个候选位置,执行所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息的步骤;
    若当前划分模式属于所述第二组划分模式集合,则将所述当前块外部的右下像素位置确定为所述当前块的至少一个候选位置,执行所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息的步骤。
  16. 根据权利要求13所述的方法,其中,所述方法还包括:
    确定第一空域像素位置对应的第一数量;其中,所述第一空域像素位置与所述第一分区的至少一个边界空间相邻;
    确定第二空域像素位置对应的第二数量;其中,所述第二空域像素位置与所述第二分区的至少一个边界空间相邻;
    若所述第一数量或所述第二数量小于预设值,则将所述当前块外部的右下像素位置确定所述当前块的至少一个候选位置,执行所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息的步骤;
    若所述第一数量和所述第二数量均大于预设值,则将所述当前块内部的左上像素位置确定为所述当前块的至少一个候选位置,执行所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息的步骤。
  17. 根据权利要求13所述的方法,其中,所述根据所述新的运动信息候选列表,确定所述当前块的帧间预测值,包括:
    解析码流,确定所述第一分区对应的第一运动信息索引值和所述第二分区对应的第二运动信息索引值;
    基于所述新的运动信息候选列表,将所述第一运动信息索引值指示的所述新的运动信息候选列表中的运动信息确定为所述第一分区的运动信息,将所述第二运动信息索引值指示的所述新的运动信息候选列表中的运动信息确定为所述第二分区的运动信息;
    利用所述第一分区的运动信息计算所述第一分区的第一预测值,利用所述第二分区的运动信息计算所述第二分区的第二预测值;
    对所述第一预测值和所述第二预测值进行加权融合,得到所述当前块的帧间预测值。
  18. 一种帧间预测方法,应用于编码器,所述方法包括:
    确定当前块的预测模式参数;
    当所述预测模式参数指示使用预设的帧间预测模式确定当前块的帧间预测值时,确定所述当前块的至少一个候选位置;其中,所述候选位置至少包括所述当前块内部的右下位置和所述当前块外部的右下位置;
    基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息;
    基于所述至少一个时域运动信息,构建新的运动信息候选列表;
    根据所述新的运动信息候选列表,确定所述当前块的帧间预测值。
  19. 根据权利要求18所述的方法,其中,所述运动信息包括运动矢量信息和参考帧信息。
  20. 根据权利要求18所述的方法,其中,所述确定当前块的预测模式参数,包括:
    利用多种预测模式对所述当前块进行预编码处理,获得每一种预测模式对应的率失真代价值;
    从所获得的多个率失真代价值中选择最小率失真代价值,将所述最小率失真代价值对应的预测模式确定为当前块的预测模式参数。
  21. 根据权利要求18所述的方法,其中,所述确定所述当前块的至少一个候选位置,包括:
    获取第一右下候选位置、第二右下候选位置、第三右下候选位置和第四右下候选位置,组成候选位置集合;
    从所述候选位置集合中,确定所述当前块的至少一个候选位置;
    其中,所述第一右下候选位置表征所述当前块内部的右下位置,所述第二右下候选位置、第三右下候选位置和第四右下候选位置表征所述当前块外部的右下位置。
  22. 根据权利要求21所述的方法,其中,所述获取第一右下候选位置、第二右下候选位置、第三右下候选位置和第四右下候选位置,包括:
    获取所述当前块的左上像素位置对应的坐标信息、所述当前块的宽度信息和所述当前块的高度信息;
    分别利用所述左上像素位置对应的坐标信息、所述宽度信息和所述高度信息进行坐标计算,获得第一坐标信息、第二坐标信息、第三坐标信息和第四坐标信息;
    将所述第一坐标信息对应的位置确定为所述第一右下候选位置,将所述第二坐标信息对应的位置确定为所述第二右下候选位置,将所述第三坐标信息对应的位置确定为所述第三右下候选位置,将所述第四坐标信息对应的位置确定为所述第四右下候选位置。
  23. 根据权利要求22所述的方法,其中,在所述得到第一坐标信息、第二坐标信息、第三坐标信息和第四坐标信息之后,所述方法还包括:
    利用第一预设偏移量对所述第二坐标信息、所述第三坐标信息和所述第四坐标信息进行修正,得到第一修正后的第二坐标信息、第一修正后的第三坐标信息和第一修正后的第四坐标信息;
    将所述第一坐标信息对应的位置确定为所述第一右下候选位置,将所述第一修正后的第二坐标信息对应的位置确定为所述第二右下候选位置,将所述第一修正后的第三坐标信息对应的位置确定为所述第三右下候选位置,将所述第一修正后的第四坐标信息对应的位置确定为所述第四右下候选位置。
  24. 根据权利要求22或23所述的方法,其中,在所述得到第一坐标信息、第二坐标信息、第三坐标信息和第四坐标信息之后,所述方法还包括:
    在当前帧上的图像块到候选参考帧存在有运动矢量时,确定第二预设偏移量;其中,所述候选参考帧为确定时域运动信息所参考运动信息的参考帧,所述图像块至少包括相邻块,所述相邻块与所述当前块在所述当前帧内空间相邻;
    利用第二预设偏移量对所述第一坐标信息、所述第二坐标信息、所述第三坐标信息和所述第四坐标信息进行修正,得到第二修正后的第一坐标信息、第二修正后的第二坐标信息、第二修正后的第三坐标信息和第二修正后的第四坐标信息;
    将所述第二修正后的第一坐标信息对应的位置确定为所述第一右下候选位置,将所述第二修正后的第二坐标信息对应的位置确定为所述第二右下候选位置,将所述第二修正后的第三坐标信息对应的位置确定为所述第三右下候选位置,将所述第二修正后的第四坐标信息对应的位置确定为所述第四右下候选位置。
  25. 根据权利要求24所述的方法,其中,所述确定第二预设偏移量,包括:
    获取所述当前帧上的预设相邻块到所述候选参考帧的运动矢量,将所获取的运动矢量确定为所述第二预设偏移量;或者,
    将所述当前帧上的预设相邻块的运动信息缩放到所述候选参考帧,获得缩放后的运动矢量,将所述缩放后的运动矢量确定为所述第二预设偏移量。
  26. 根据权利要求21所述的方法,其中,在所述至少一个时域运动信息的数量为一个的情况下,所述从所述候选位置集合中,确定所述当前块的至少一个候选位置,包括:
    从所述候选位置集合中按照预设方式选取一个候选位置,将所选取的候选位置确定为所述当前块的一个候选位置;或者,
    从所述候选位置集合中,按照预设优先级顺序选取高优先级对应的候选位置且被选取的候选位置可用,将所选取的候选位置确定为所述当前块的一个候选位置。
  27. 根据权利要求21所述的方法,其中,在所述至少一个时域运动信息的数量为多个的情况下,所述从所述候选位置集合中,确定所述当前块的至少一个候选位置,包括:
    从所述候选位置集合中按照预设组合方式选取多个候选位置,将所选取的多个候选位置确定为所述当前块的多个候选位置;或者,
    从所述候选位置集合中,按照预设优先级顺序选取多个候选位置且被选取的候选位置可用,将所选取的多个候选位置确定为所述当前块的多个候选位置。
  28. 根据权利要求21所述的方法,其中,所述方法还包括:
    从所述候选位置集合中选取候选位置时,若待选取的候选位置属于所述当前块外部的右下位置且所述当前块外部的右下位置均不可用,则将所述第一右下候选位置确定为所述待选取的候选位置。
  29. 根据权利要求18所述的方法,其中,所述方法还包括:
    调整时域运动信息在所述新的运动信息候选列表中的比例值;
    根据所调整的比例值,控制所述新的运动信息候选列表中预留至少两个时域运动信息的填充位置。
  30. 根据权利要求18所述的方法,其中,所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息,包括:
    确定所述至少一个候选位置中每一候选位置对应的参考帧信息;
    针对每一候选位置,在对应的参考帧信息中确定与所述候选位置关联的时域位置,并将所述时域位置使用的运动信息确定为所述候选位置对应的时域运动信息;
    基于所述至少一个候选位置,对应得到至少一个时域运动信息。
  31. 根据权利要求18所述的方法,其中,所述预设的帧间预测模式包括:几何划分预测模式或角度加权预测模式;
    相应地,所述方法还包括:
    当所述预测模式参数指示使用所述预设的帧间预测模式确定当前块的帧间预测值时,确定所述当前块的两个分区;其中,所述两个分区包括第一分区和第二分区。
  32. 根据权利要求31所述的方法,其中,所述方法还包括:
    将所述预设的帧间预测模式下的多种划分模式进行分组,得到至少两组划分模式集合;
    确定所述至少两组划分模式集合中每一组划分模式集合各自对应的至少一个候选位置;其中,不同组的划分模式集合对应不同的至少一个候选位置;
    针对每一组划分模式集合内的划分模式,根据对应确定的至少一个候选位置,执行所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息的步骤。
  33. 根据权利要求32所述的方法,其中,所述至少两组划分模式集合包括第一组划分模式集合和第二组划分模式集合,所述方法还包括:
    若待使用的划分模式属于所述第一组划分模式集合,则将所述当前块内部的左上像素位置确定为所述当前块的至少一个候选位置,执行所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息的步骤;
    若待使用的划分模式属于所述第二组划分模式集合,则将所述当前块外部的右下像素位置确定为所述当前块的至少一个候选位置,执行所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息的步骤。
  34. 根据权利要求31所述的方法,其中,所述方法还包括:
    确定第一空域像素位置对应的第一数量;其中,所述第一空域像素位置与所述第一分区的至少一个边界空间相邻;
    确定第二空域像素位置对应的第二数量;其中,所述第二空域像素位置与所述第二分区的至少一个边界空间相邻;
    若所述第一数量或所述第二数量小于预设值,则将所述当前块外部的右下像素位置确定所述当前块的至少一个候选位置,执行所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息的步骤;
    若所述第一数量和所述第二数量均大于预设值,则将所述当前块的左上像素位置确定为所述当前块的至少一个候选位置,执行所述基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息的步骤。
  35. 根据权利要求31所述的方法,其中,所述根据所述新的运动信息候选列表,确定所述当前块的帧间预测值,包括:
    基于所述新的运动信息候选列表,确定所述第一分区的运动信息和所述第二分区的运动信息,并将第一运动信息索引值设置为所述第一分区的运动信息在所述新的运动信息候选列表中的索引序号值,将第二运动信息索引值设置为所述第二分区的运动信息在所述新的运动信息候选列表中的索引序号值;
    利用所述第一分区的运动信息计算所述第一分区的第一预测值,利用所述第二分区的运动信息计算所述第二分区的第二预测值;
    对所述第一预测值和所述第二预测值进行加权融合,得到所述当前块的帧间预测值。
  36. 根据权利要求35所述的方法,其中,所述方法还包括:
    将所述第一运动信息索引值和所述第二运动信息索引值写入码流。
  37. 一种解码器,所述解码器包括解析单元、第一确定单元、第一构建单元和第一预测单元;其中,
    所述解析单元,配置为解析码流,获取当前块的预测模式参数;
    所述第一确定单元,配置为当所述预测模式参数指示使用预设的帧间预测模式确定当前块的帧间预测值时,确定所述当前块的至少一个候选位置;其中,所述候选位置至少包括所述当前块内部的右下位置和所述当前块外部的右下位置;
    所述第一确定单元,还配置为基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息;
    所述第一构建单元,配置为基于所述至少一个时域运动信息,构建新的运动信息候选列表;
    所述第一预测单元,配置为根据所述新的运动信息候选列表,确定所述当前块的帧间预测值。
  38. 一种解码器,所述解码器包括第一存储器和第一处理器;其中,
    所述第一存储器,用于存储能够在所述第一处理器上运行的计算机程序;
    所述第一处理器,用于在运行所述计算机程序时,执行如权利要求1至17任一项所述的方法。
  39. 一种编码器,所述编码器包括第二确定单元、第二构建单元和第二预测单元;其中,
    所述第二确定单元,配置为确定当前块的预测模式参数;及当所述预测模式参数指示使用预设的帧间预测模式确定当前块的帧间预测值时,确定所述当前块的至少一个候选位置;其中,所述候选位置至少包括所述当前块内部的右下位置和所述当前块外部的右下位置;
    所述第二确定单元,还配置为基于所述至少一个候选位置,确定所述当前块的至少一个时域运动信息;
    所述第二构建单元,配置为基于所述至少一个时域运动信息,构建新的运动信息候选列表;
    所述第二预测单元,配置为根据所述新的运动信息候选列表,确定所述当前块的帧间预测值。
  40. 一种编码器,所述编码器包括第二存储器和第二处理器;其中,
    所述第二存储器,用于存储能够在所述第二处理器上运行的计算机程序;
    所述第二处理器,用于在运行所述计算机程序时,执行如权利要求18至36任一项所述的方法。
  41. 一种计算机存储介质,其中,所述计算机存储介质存储有计算机程序,所述计算机程序被第一处理器执行时实现如权利要求1至17任一项所述的方法、或者被第二处理器执行时实现如权利要求18至36任一项所述的方法。
PCT/CN2021/084278 2020-05-29 2021-03-31 帧间预测方法、编码器、解码器以及计算机存储介质 WO2021238396A1 (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202180005705.0A CN114651443A (zh) 2020-05-29 2021-03-31 帧间预测方法、编码器、解码器以及计算机存储介质
CN202210679842.9A CN115052161A (zh) 2020-05-29 2021-03-31 帧间预测方法、编码器、解码器以及计算机存储介质
MX2022015006A MX2022015006A (es) 2020-05-29 2021-03-31 Metodo de prediccion intercuadro, codificador, decodificador y medio de almacenamiento informatico.

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010479444.3A CN113747172A (zh) 2020-05-29 2020-05-29 帧间预测方法、编码器、解码器以及计算机存储介质
CN202010479444.3 2020-05-29

Publications (1)

Publication Number Publication Date
WO2021238396A1 true WO2021238396A1 (zh) 2021-12-02

Family

ID=78725117

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/084278 WO2021238396A1 (zh) 2020-05-29 2021-03-31 帧间预测方法、编码器、解码器以及计算机存储介质

Country Status (4)

Country Link
CN (3) CN113747172A (zh)
MX (1) MX2022015006A (zh)
TW (1) TW202145794A (zh)
WO (1) WO2021238396A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023123478A1 (zh) * 2021-12-31 2023-07-06 Oppo广东移动通信有限公司 预测方法、装置、设备、系统、及存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023130233A1 (zh) * 2022-01-04 2023-07-13 Oppo广东移动通信有限公司 时域运动信息预测和构建候选列表的方法、装置和系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170094311A1 (en) * 2015-09-30 2017-03-30 Apple Inc. Memory-to-memory low resolution motion estimation systems and methods
CN110213590A (zh) * 2019-06-25 2019-09-06 浙江大华技术股份有限公司 时域运动矢量获取、帧间预测、视频编码的方法及设备
CN110719482A (zh) * 2018-07-13 2020-01-21 腾讯美国有限责任公司 视频编解码的方法、装置、设备以及存储介质
CN110868602A (zh) * 2018-08-27 2020-03-06 华为技术有限公司 视频编码器、视频解码器及相应方法
CN111093074A (zh) * 2018-10-24 2020-05-01 北京字节跳动网络技术有限公司 子块运动矢量预测中基于多个信息的运动候选推导

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170094311A1 (en) * 2015-09-30 2017-03-30 Apple Inc. Memory-to-memory low resolution motion estimation systems and methods
CN110719482A (zh) * 2018-07-13 2020-01-21 腾讯美国有限责任公司 视频编解码的方法、装置、设备以及存储介质
CN110868602A (zh) * 2018-08-27 2020-03-06 华为技术有限公司 视频编码器、视频解码器及相应方法
CN111093074A (zh) * 2018-10-24 2020-05-01 北京字节跳动网络技术有限公司 子块运动矢量预测中基于多个信息的运动候选推导
CN110213590A (zh) * 2019-06-25 2019-09-06 浙江大华技术股份有限公司 时域运动矢量获取、帧间预测、视频编码的方法及设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023123478A1 (zh) * 2021-12-31 2023-07-06 Oppo广东移动通信有限公司 预测方法、装置、设备、系统、及存储介质

Also Published As

Publication number Publication date
TW202145794A (zh) 2021-12-01
MX2022015006A (es) 2023-01-04
CN115052161A (zh) 2022-09-13
CN114651443A (zh) 2022-06-21
CN113747172A (zh) 2021-12-03

Similar Documents

Publication Publication Date Title
WO2021196235A1 (zh) 帧间预测方法、编码器、解码器及存储介质
JP7372433B2 (ja) オプティカルフローを用いた予測リファインメントに関する方法および装置
WO2021244125A1 (zh) 帧间预测方法、解码器、编码器及计算机存储介质
WO2021238396A1 (zh) 帧间预测方法、编码器、解码器以及计算机存储介质
WO2022067805A1 (zh) 图像预测方法、编码器、解码器以及计算机存储介质
WO2021203924A1 (zh) 编码方法、解码方法、编码器、解码器以及存储介质
TW202139708A (zh) 一種幀間預測方法、編碼器、解碼器及儲存媒介
WO2021258841A1 (zh) 帧间预测方法、编码器、解码器以及计算机存储介质
TW202139700A (zh) 一種幀間預測方法、編碼器、解碼器及儲存媒介
KR20230111255A (ko) 인트라 프레임 예측 방법, 장치 및 디코더와 인코더
TW202145784A (zh) 幀間預測方法、編碼器、解碼器以及電腦儲存媒介
WO2021196228A1 (zh) 帧间预测方法、编码器、解码器以及存储介质
TWI737055B (zh) 視訊編碼系統中用於決定儲存用運動向量的視訊處理方法和裝置
TWI749297B (zh) 合成式預測及限制性合併技術
WO2022140905A1 (zh) 预测方法、编码器、解码器以及存储介质
WO2023044917A1 (zh) 帧内预测的方法、编码器、解码器和编解码系统
WO2023044916A1 (zh) 帧内预测的方法、编码器、解码器和编解码系统
WO2023044918A1 (zh) 帧内预测的方法、编码器、解码器和编解码系统
CN113727119B (zh) 帧间预测方法、编码器、解码器以及计算机存储介质
WO2023044900A1 (zh) 编解码方法、码流、编码器、解码器以及存储介质
WO2024108391A1 (zh) 视频编解码方法、装置、设备、系统、及存储介质
WO2024152254A1 (zh) 视频编解码方法、装置、设备、系统、及存储介质
WO2024077553A1 (zh) 视频编解码方法、装置、设备、系统、及存储介质
WO2024007120A1 (zh) 编解码方法、编码器、解码器以及存储介质
WO2023123358A1 (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: 21814390

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21814390

Country of ref document: EP

Kind code of ref document: A1