WO2022140905A1 - 预测方法、编码器、解码器以及存储介质 - Google Patents

预测方法、编码器、解码器以及存储介质 Download PDF

Info

Publication number
WO2022140905A1
WO2022140905A1 PCT/CN2020/140106 CN2020140106W WO2022140905A1 WO 2022140905 A1 WO2022140905 A1 WO 2022140905A1 CN 2020140106 W CN2020140106 W CN 2020140106W WO 2022140905 A1 WO2022140905 A1 WO 2022140905A1
Authority
WO
WIPO (PCT)
Prior art keywords
prediction
prediction mode
mode
current block
value
Prior art date
Application number
PCT/CN2020/140106
Other languages
English (en)
French (fr)
Inventor
王凡
Original Assignee
Oppo广东移动通信有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oppo广东移动通信有限公司 filed Critical Oppo广东移动通信有限公司
Priority to PCT/CN2020/140106 priority Critical patent/WO2022140905A1/zh
Priority to CN202080108133.4A priority patent/CN116711304A/zh
Publication of WO2022140905A1 publication Critical patent/WO2022140905A1/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh

Definitions

  • the embodiments of the present application relate to the technical field of image processing, and in particular, to a prediction method, an encoder, a decoder, and a storage medium.
  • inter-frame prediction sometimes cannot find reference blocks with a high degree of matching from the reference frame, or can only find a part of the reference blocks with a high degree of matching, so a good inter-frame prediction effect cannot be achieved.
  • VVC Versatile Video Coding
  • the CIIP technology can improve the prediction quality through the weighted average of the intra-frame prediction block and the inter-frame prediction block, if some of the intra-frame prediction blocks or the inter-frame prediction blocks have poor prediction quality, they still cannot obtain a better prediction quality in the end. predict the effect.
  • Embodiments of the present application provide a prediction method, an encoder, a decoder, and a storage medium, which can improve prediction quality and improve compression performance.
  • an embodiment of the present application provides a prediction method, which is applied to a decoder, and the method includes:
  • a first prediction mode and a second prediction mode of the current block are determined; wherein the first prediction mode and The second prediction modes are respectively any two of the following multiple prediction modes: intra prediction mode, inter prediction mode, intra block copy mode, palette mode, and string prediction mode;
  • a prediction value of the current block is determined.
  • an embodiment of the present application provides a prediction method, which is applied to an encoder, and the method includes:
  • a first prediction mode and a second prediction mode of the current block are determined; wherein the first prediction mode and The second prediction modes are respectively any two of the following multiple prediction modes: intra prediction mode, inter prediction mode, intra block copy mode, palette mode, and string prediction mode;
  • a prediction value of the current block is determined.
  • an embodiment of the present application provides an encoder, where the encoder includes: a first determining part,
  • the first determining part is configured to determine the prediction mode parameter of the current block; when the prediction mode parameter indicates that the current block uses different prediction modes to determine the prediction value of the current block, determine the first prediction value of the current block A prediction mode and a second prediction mode; wherein the first prediction mode and the second prediction mode are respectively any two of the following multiple prediction modes: intra prediction mode, inter prediction mode, intra block copy mode, palette mode, string prediction mode; based on the first prediction mode and the second prediction mode, determine the prediction value of the current block.
  • an embodiment of the present application provides an encoder, where the encoder includes a first processor and a first memory storing an executable instruction of the first processor, and when the instruction is executed, the When executed by the first processor, the above-mentioned prediction method is implemented.
  • an embodiment of the present application provides a decoder, where the decoder includes: a decoding part, a second determining part
  • the decoding part is configured to parse the code stream
  • the second determination part is configured to determine a prediction mode parameter of the current block; when the prediction mode parameter indicates that the current block uses different prediction modes to determine the prediction value of the current block, determine the first prediction value of the current block A prediction mode and a second prediction mode; wherein the first prediction mode and the second prediction mode are respectively any two of the following multiple prediction modes: intra prediction mode, inter prediction mode, intra block copy mode, palette mode, string prediction mode; based on the first prediction mode and the second prediction mode, determine the prediction value of the current block.
  • an embodiment of the present application provides a decoder, where the decoder includes a second processor and a second memory storing an executable instruction of the second processor, when the instruction is executed, the When executed by the second processor, the prediction method as described above is implemented.
  • an embodiment of the present application provides a computer storage medium, where the computer storage medium stores a computer program, and when the computer program is executed by the first processor and the second processor, the above prediction method is implemented .
  • the embodiments of the present application provide a prediction method, an encoder, a decoder, and a storage medium.
  • the decoder parses a code stream and determines a prediction mode parameter of a current block; when the prediction mode parameter indicates that the current block uses different prediction modes to determine the prediction of the current block value, determine the first prediction mode and the second prediction mode of the current block; wherein, the first prediction mode and the second prediction mode are any two of the following multiple prediction modes: intra prediction mode, inter prediction mode mode, intra-block copy mode, palette mode, string prediction mode; based on the first prediction mode and the second prediction mode, the prediction value of the current block is determined.
  • the encoder determines the prediction mode parameter of the current block; when the prediction mode parameter indicates that the current block uses different prediction modes to determine the prediction value of the current block, determines the first prediction mode and the second prediction mode of the current block; based on the first prediction mode and the first prediction mode
  • the second prediction mode determines the prediction value of the current block. That is to say, in the embodiment of the present application, the codec may determine two different prediction blocks of the current block by using two different prediction modes, and then may combine the two different prediction blocks according to the weight matrix, and finally Obtaining a more complex prediction block improves the prediction accuracy, that is to say, the prediction method proposed in the present application can improve the prediction quality and the compression performance.
  • Figure 1 is a schematic diagram 1 of weight allocation
  • Figure 2 is a schematic diagram 2 of weight allocation
  • 3 is a schematic diagram 1 of intra-frame prediction
  • 4 is a schematic diagram 2 of intra-frame prediction
  • 5A-5I are schematic diagrams three of intra-frame prediction
  • FIG. 6 is a schematic diagram 1 of an intra prediction mode
  • FIG. 7 is a schematic diagram 2 of an intra prediction mode
  • FIG. 8 is a schematic diagram 3 of an intra-frame prediction mode
  • Figure 10 is a schematic diagram of a common prediction method
  • Fig. 11 is the composition block diagram of video coding system
  • Fig. 12 is the composition block diagram of video decoding system
  • FIG. 13 is a schematic diagram 1 of the realization flow of the prediction method
  • FIG. 14 is a schematic diagram 2 of the realization flow of the prediction method
  • 15 is a schematic diagram of a prediction method
  • FIG. 16 is a schematic diagram three of the realization flow of the prediction method
  • FIG. 17 is a schematic diagram four of the realization flow of the prediction method.
  • FIG. 18 is a schematic diagram 1 of the composition and structure of an encoder proposed by an embodiment of the present application.
  • FIG. 19 is a second schematic diagram of the composition and structure of an encoder proposed by an embodiment of the application.
  • FIG. 20 is a schematic diagram 1 of the composition and structure of a decoder proposed by an embodiment of the present application.
  • FIG. 21 is a second schematic diagram of the composition and structure of a decoder proposed by an embodiment of the present application.
  • LCUs Large Coding Units
  • CU Coding Unit
  • Prediction Unit PU
  • the hybrid coding framework may include modules such as prediction, transform (Transform), quantization (Quantization), entropy coding (EntropyCoding), and loop filtering (In Loop Filter); wherein, the prediction module may include intraPrediction (intraPrediction) And inter prediction (interPrediction), inter prediction can include motion estimation (motion estimation) and motion compensation (motion compensation).
  • intra-frame prediction mode in video coding and decoding technology can eliminate the spatial redundancy between adjacent pixels; There is also a strong similarity between frames.
  • the inter-frame prediction mode is used to eliminate the temporal redundancy between adjacent frames, so as to improve the coding and decoding efficiency.
  • the basic process of a video codec is as follows: at the encoding end, a frame of image is divided into blocks, intra-frame prediction or inter-frame prediction is used for the current block to generate the prediction block of the current block, and the original block of the current block is subtracted from the prediction block to obtain the residual. Difference block, transform and quantize the residual block to obtain a quantized coefficient matrix, perform entropy encoding on the quantized coefficient matrix and output it to the code stream.
  • intra-frame prediction or inter-frame prediction for the current block to generate the prediction block of the current block.
  • parse the code stream to obtain a quantized coefficient matrix perform inverse quantization and inverse transformation on the quantized coefficient matrix to obtain a residual block, and then predict the The block and residual block are added to obtain the reconstructed block.
  • the reconstructed blocks form a reconstructed image
  • the decoded image is obtained by loop filtering the reconstructed image based on the image or based on the block.
  • the encoding side also needs a similar operation to the decoding side to obtain the decoded image.
  • the decoded image can be used as a reference frame for inter-frame prediction for subsequent frames.
  • the block division information determined by the coding end, mode information such as prediction, transformation, quantization, entropy coding, and loop filtering, or parameter information should be output to the code stream if necessary.
  • the decoding end determines the same block division information, prediction, transformation, quantization, entropy coding, loop filtering and other mode information or parameter information as the encoding end through analysis and analysis according to the existing information, so as to ensure the decoded image and decoded image obtained by the encoding end.
  • the decoded image obtained at the end is the same.
  • the decoded image obtained by the encoding end is usually also called the reconstructed image.
  • the current block may be divided into prediction units during prediction, and the current block may be divided into transformation units during transformation, and the division of prediction units and transformation units may be different.
  • the above is the basic process of the video codec under the block-based hybrid coding framework. With the development of technology, some modules or steps of the framework or process may be optimized. The embodiments of the present application are applicable to the block-based hybrid coding.
  • the basic process of the video codec under the framework but not limited to the framework and process.
  • the current block may be a current coding unit (CU) or a current prediction unit (PU), or the like.
  • Inter prediction uses information from a decoded or reconstructed image, or reference frame, to predict the current block.
  • Inter prediction uses motion information to find a reference block from a reference frame, and generates a prediction block from the reference block.
  • the motion information includes the reference frame list where the reference frame is located, the reference frame index, and the motion vector.
  • the motion vector can be of whole pixel or sub-pixel. If the motion vector is sub-pixel, then it is necessary to use interpolation filtering in the reference frame to make the required sub-pixel block.
  • the reference frame found according to the motion vector is used.
  • the whole pixel or sub-pixel block is called the reference block.
  • the reference block is directly used as the prediction block, and some technologies are processed on the basis of the reference block to generate the prediction block. Reprocessing to generate a prediction block on the basis of the reference block can also be understood as taking the reference block as a prediction block and then processing it on the basis of the prediction block to generate a new prediction block.
  • VVC Versatile Video Coding
  • GPM Geometric Partitioning Mode
  • AVS Angular Weighted prediction mode
  • the traditional unidirectional prediction just finds a reference block with the same size as the current block
  • the traditional bidirectional prediction uses two reference blocks with the same size as the current block
  • the pixel value of each point in the predicted 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 ratio.
  • Bidirectional weighted prediction enables two reference blocks to have different proportions, such as 75% of all points in the first reference block and 25% of all points in the second reference block. But all points in the same reference block have the same scale.
  • Some other optimization methods such as Decoder side Motion Vector Refinement (DMVR) technology, Bi-directional Optical Flow (BIO), etc., will cause some changes in reference pixels or predicted pixels, and GPM or AWP also Use two reference blocks of the same size as the current block, but some pixel positions use 100% of the pixel values of the corresponding positions of the first reference block, some pixel positions 100% use the pixel values of the corresponding positions of the second reference block, and In the boundary area, the pixel values of the corresponding positions of the two reference blocks are used in a certain proportion.
  • DMVR Decoder side Motion Vector Refinement
  • BIO Bi-directional Optical Flow
  • GPM or AWP uses two reference blocks with different sizes from the current block, that is, each takes a required part as the reference block. That is, the part whose weight is not 0 is used as a reference block, and the part whose weight is 0 is eliminated.
  • FIG. 1 is a schematic diagram 1 of weight allocation. As shown in FIG. 1 , it shows a schematic diagram of weight allocation for multiple division modes of a GPM on a 64 ⁇ 64 current block provided by an embodiment of the present application, wherein , GPM has 64 division modes.
  • FIG. 2 is a schematic diagram 2 of weight allocation. As shown in FIG. 2 , it shows a schematic diagram of weight allocation of multiple division modes of an AWP on a 64 ⁇ 64 current block provided by an embodiment of the present application. 56 division modes.
  • area 2 indicates that the weight value of the corresponding position of the first reference block is 0%
  • area 1 indicates that the weight value of the corresponding position of the first reference block is 100%
  • gray indicates that the weight value of the corresponding position of the first reference block is greater than 0% and less than 100% according to the different shades of color
  • the weight value of the corresponding position of the second reference block is 100% minus the first weight value. The weight value of the corresponding position of each reference block.
  • the weights are derived in different ways for GPM and AWP.
  • GPM determines the angle and offset according to each mode, and then calculates the weight matrix for each mode.
  • AWP first makes a one-dimensional weighted line, and then uses a method similar to intra-frame angle prediction to fill the entire matrix with the one-dimensional weighted line.
  • GPM and AWP both achieve the predicted non-rectangular division effect without division.
  • GPM and AWP use a mask of the weights of the two reference blocks, the aforementioned weight map. This mask determines the weight of the two reference blocks when generating the prediction block, or it can be simply understood that a part of the position of the prediction block comes from the first reference block and part of the position comes from the second reference block, and the transition area (blending area) is weighted by the corresponding positions of the two reference blocks to make the transition smoother.
  • GPM and AWP do not divide the current block into two CUs or PUs according to the dividing line, so the transform, quantization, inverse transform, and inverse quantization of the residual after prediction are also processed by the current block as a whole.
  • the motion information used by the current block can be saved.
  • the subsequent coded and decoded blocks of the current frame may use the motion information of the previously coded and decoded blocks, such as adjacent blocks, according to the adjacent positional relationship. This takes advantage of the correlation in the spatial domain, so this encoded and decoded motion information is called motion information in the spatial domain.
  • the motion information used by each block of the current frame can be saved.
  • the subsequent coded frame can use the motion information of the previous coded frame according to the reference relationship. This utilizes the correlation in the time domain, so the motion information of the encoded and decoded frame is called the motion information in the time domain.
  • the storage method of the motion information used by each block of the current frame usually takes a fixed-size matrix, such as a 4 ⁇ 4 matrix, as a minimum unit, and each minimum unit stores a set of motion information separately.
  • a fixed-size matrix such as a 4 ⁇ 4 matrix
  • each minimum unit stores a set of motion information separately.
  • the minimum units corresponding to its position can store the motion information of the block.
  • the motion information in the space domain or the motion information in the time domain is used, the motion information corresponding to the position can be directly found according to the position. If a 16 ⁇ 16 block uses traditional unidirectional prediction, then all 4 ⁇ 4 minimum units corresponding to this block store the motion information of the unidirectional prediction.
  • a block uses GPM or AWP, then all the minimum units corresponding to this block will determine each minimum unit according to the mode of GPM or AWP, the first motion information, and the second motion information and the position of each minimum unit Stored athletic information.
  • One method is that if all the 4 ⁇ 4 pixels corresponding to a minimum unit come from the first motion information, then this minimum unit stores the first motion information, if all the 4 ⁇ 4 pixels corresponding to a minimum unit come from the first motion information. two motion information, then this minimum unit stores the second motion information.
  • AWP will select one of the motion information for storage; GPM’s approach is that if the two motion information point to different The reference frame list, then combine them into bidirectional motion information storage, otherwise only store the second motion information.
  • GPM or AWP belongs to an inter-frame prediction technology, and GPM or AWP needs to transmit a flag (flag) in the code stream whether GPM or AWP is used, and the flag can indicate the current Whether the block uses GPM or AWP. If GPM or AWP is used, 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 two index values of unidirectional motion information. That is to say, for the current block, the decoder can obtain the information of whether GPM or AWP is used by parsing the code stream.
  • the decoder can parse 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 index value corresponding to the first partition and the second index value corresponding to the second partition can be parsed.
  • the prediction mode parameters under GPM will be transmitted in the code stream, such as the specific division mode of GPM; under normal circumstances, GPM includes 64 division modes.
  • the prediction mode parameters under the AWP will be transmitted in the code stream, such as the specific division mode of the AWP; under normal circumstances, the AWP includes 56 division modes.
  • the current implementation is to construct a unidirectional motion information candidate list by using the relevant information of the coded/decoded part before the current block on the encoder side, select unidirectional motion information from the unidirectional motion information candidate list, and combine the two unidirectional motion information. Write the code stream to the index value (index) of the motion information in the unidirectional motion information candidate list.
  • a unidirectional motion information candidate list is constructed by using the relevant information of the decoded part before the current block.
  • This unidirectional motion information candidate list must be the same as the candidate list constructed by the encoder side. In this way, the index values of the two unidirectional motion information are parsed from the code stream, and then the two unidirectional motion information are found from the unidirectional motion information candidate list, which are the two unidirectional motion information that the current block needs to use.
  • the unidirectional motion information described in this application may include: motion vector information, that is, the value of (x, y), and corresponding reference frame information, that is, the reference frame list and the reference frame index in the reference frame list value.
  • motion vector information that is, the value of (x, y)
  • reference frame information that is, the reference frame list and the reference frame index in the reference frame list value.
  • One representation is to record the reference frame index values of two reference frame lists, where the reference frame index value corresponding to one reference frame list is valid, such as 0, 1, 2, etc.; the reference frame index value corresponding to the other reference frame list is Invalid, i.e. -1.
  • the reference frame list with a valid reference frame index value is the reference frame list used by the motion information of the current block, and a corresponding reference frame can be found from the reference frame list according to the reference frame 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 unidirectional motion information, and can find the reference block in the reference frame according to the position of the current block and the value of the motion vector (x, y), and then determine the current block.
  • the inter-frame prediction value can be found the required reference frame through the reference frame information in the unidirectional motion information, and can find the reference block in the reference frame according to the position of the current block and the value of the motion vector (x, y), and then determine the current block.
  • the inter-frame prediction value can be found from the required reference frame through the reference frame information in the unidirectional motion information, and can find the reference block in the reference frame according to the position of the current block and the value of the motion vector (x, y), and then determine the current block.
  • the intra-frame prediction method uses the encoded and decoded reconstructed pixels around the current block as reference pixels to predict the current block.
  • Figure 3 is a schematic diagram of intra prediction. As shown in Figure 3, the size of the current block is 4 ⁇ 4, and the pixels in the left row and the upper column of the current block are the reference pixels of the current block. block for prediction. These reference pixels may already be all available, ie all already coded and decoded. Some parts may not be available. For example, if the current block is the leftmost part of the whole frame, the reference pixels to the left of the current block are not available. Or when the current block is encoded and decoded, the lower left part of the current block has not been encoded or decoded, so the reference pixels at the lower left are also unavailable. For cases where reference pixels are not available, the available reference pixels or some value or some method can be used for padding, or no padding is performed.
  • Figure 4 is a schematic diagram 2 of intra-frame prediction.
  • the multiple reference line intra-prediction method (Multiple reference line, MRL) can use more reference pixels to improve encoding and decoding efficiency. For example, using 4 reference lines
  • the / column is the reference pixel for the current block.
  • Figures 5A-5I are schematic diagrams of intra-frame prediction.
  • the intra-frame prediction for 4 ⁇ 4 blocks in H.264 mainly includes 9 mode.
  • mode 0 as shown in FIG. 5A copies the pixels above the current block to the current block in the vertical direction as the predicted value
  • mode 1 as shown in FIG. 5B copies the reference pixels on the left to the current block in the horizontal direction as the predicted value.
  • the mode 2 DC DC shown in Figure 5C uses the average value of the 8 points A ⁇ D and I ⁇ L as the predicted value of all points, and the modes 3 ⁇ 8 shown in Figure 5D-5I respectively according to a certain angle Copy the reference pixels to the corresponding positions of the current block, because some positions of the current block cannot exactly correspond to the reference pixels, it may be necessary to use the weighted average of the reference pixels, or the sub-pixels of the interpolated reference pixels.
  • FIG. 6 is a schematic diagram 1 of an intra-frame prediction mode.
  • the intra-frame prediction modes used by HEVC include Planar, DC, and 33 angle modes, a total of 35 prediction modes.
  • FIG. 7 is a schematic diagram 2 of an intra-frame prediction mode.
  • the intra-frame modes used by VVC include Planar, DC, and 65 angle modes, a total of 67 prediction modes.
  • FIG. 8 is a schematic diagram 3 of an intra-frame prediction mode. As shown in FIG. 8 , AVS3 uses DC, Planar, Bilinear, and 63 angle modes, a total of 66 prediction modes.
  • the multiple intraprediction filter (MIPF) in AVS3 uses different filters to generate predicted values for different block sizes. For pixels at different positions within the same block, one filter is used to generate predicted values for pixels closer to the reference pixel, and another filter is used to generate predicted values for pixels farther from the reference pixel.
  • MIPF intraprediction filter
  • a technique for filtering predicted pixels, such as intraprediction filter (IPF) in AVS3, can use reference pixels to filter predicted values.
  • information such as an intra-frame prediction mode can also be saved in intra-frame prediction for reference of subsequent codec blocks.
  • the subsequent coded and decoded blocks of the current frame may use the intra-frame prediction mode of the previously coded and decoded blocks, such as adjacent blocks, according to the adjacent positional relationship.
  • a chroma block (coding unit) may use the intra prediction mode of a previously coded luma block (coding unit) according to position. Note that the information stored here is referenced for subsequent codec blocks, because the coding mode information in the same block (coding unit) can be obtained directly, but the coding mode information in different blocks (coding units) cannot be directly obtained. obtained, so it needs to be stored.
  • the storage method of the intra prediction mode used by each block of the current frame usually uses a fixed-size matrix, such as a 4 ⁇ 4 matrix, as a minimum unit, and each minimum unit stores an intra prediction mode independently.
  • the minimum units corresponding to its position can store the intra prediction mode of the block.
  • a 16 ⁇ 16 block uses intra prediction mode 5
  • the intra prediction modes of all 4 ⁇ 4 minimum units corresponding to this block are stored in 5.
  • only luma intra prediction modes are generally stored, including luma intra prediction modes for blocks containing both luma and chroma components, and luma intra prediction modes for blocks containing only luma components.
  • CIIP inter and intra prediction
  • VVC inter and intra prediction
  • the CIIP inter-frame prediction block P inter is derived from the normal merge mode
  • the CIIP intra-frame prediction block P intra is derived from the normal intra-frame prediction Planar mode. Then, the weight values of P inter and P intra are determined according to the conditions of the left block and the upper block of the current block.
  • the new prediction block P CIIP of the current block can be derived by the following formula:
  • wt is the weight parameter
  • Figure 9 is a schematic diagram of the position of the current block. As shown in Figure 9, if the left block left and the top block top of the current block both use intra-frame prediction, then wt can be set to 3; if the current block The left block left and top block top use intra prediction and inter prediction respectively, then wt can be set to 2, if the left block left and top block top of the current block both use inter prediction, then wt can be set to 1 .
  • FIG. 10 is a schematic diagram of a common prediction method.
  • the intra prediction mode can be used to determine the intra prediction block of the current block
  • the inter prediction mode can be used to determine the current block.
  • the intra-frame prediction block and the inter-frame prediction block may be weighted and averaged using the intra-frame prediction block weight and the inter-frame prediction block weight, respectively, to finally obtain a new prediction block.
  • CIIP intra-frame prediction blocks and inter-frame prediction blocks.
  • CIIP uses the same weight for all pixels of the entire block, and it can also be considered that it treats the intra-frame prediction block and the inter-frame prediction block as a whole. This does not take into account the fact that some of the intra-frame prediction blocks or inter-frame prediction blocks have good prediction quality and some have poor prediction quality, and it is not flexible enough.
  • the codec can determine two different prediction blocks of the current block through two different prediction modes, and then can combine the two different prediction blocks according to the weight matrix, and finally Obtaining a more complex prediction block improves the prediction accuracy, that is to say, the prediction method proposed in the present application can improve the prediction quality and the compression performance.
  • the video coding system 10 includes a transformation and quantization unit 101, an intra-frame estimation unit 102, an intra-frame The prediction unit 103, the motion compensation unit 104, the motion estimation unit 105, the inverse transform and inverse quantization unit 106, the filter control analysis unit 107, the filtering unit 108, the encoding unit 109, the decoded image buffer unit 110, etc., wherein the filtering unit 108 can To implement deblocking filtering and sample adaptive offset (Sample Adaptive Offset, SAO) filtering, the encoding unit 109 can implement header information encoding and context-based Adaptive Binary Arithmatic Coding (CABAC).
  • CABAC Adaptive Binary Arithmatic Coding
  • a video coding block can be obtained by dividing the coding tree block (Coding Tree Unit, CTU), and then the residual pixel information obtained after intra-frame or inter-frame prediction is transformed and quantized.
  • Unit 101 pairs The video coding block is transformed, including transforming residual information from the pixel domain to the transform domain, and quantizing the resulting transform coefficients to further reduce the bit rate;
  • the intra-frame estimation unit 102 and the intra-frame prediction unit 103 are used for Intra prediction is performed on the video coding block; specifically, the intra prediction unit 102 and the intra prediction unit 103 are used to determine the intra prediction mode to be used to encode the video coding block;
  • the motion compensation unit 104 and the motion estimation unit 105 is used to perform inter-predictive encoding of the received video encoding block relative to one or more blocks in one or more reference frames to provide temporal prediction information; the motion estimation performed by the motion estimation unit 105 is to generate a motion vector.
  • the motion vector can estimate the motion of the video coding block, and then the motion compensation unit 104 performs motion compensation based on the motion vector determined by the motion estimation unit 105; after determining the intra prediction mode, the intra prediction unit 103 also For providing the selected intra prediction data to the encoding unit 109, and the motion estimation unit 105 also sends the calculated motion vector data to the encoding unit 109; in addition, the inverse transform and inverse quantization unit 106 is used for the video Reconstruction of the coding block, reconstructing the residual block in the pixel domain, the reconstructed residual block removing the blocking artifacts by the filter control analysis unit 107 and the filtering unit 108, and then adding the reconstructed residual block to the decoding A predictive block in the frame of the image buffer unit 110 is used to generate a reconstructed video coding block; the coding unit 109 is used for coding various coding parameters and quantized transform coefficients.
  • the context content can be based on adjacent coding blocks, and can be used to encode information indicating the determined intra-frame prediction mode, and output a code stream of the video signal; and the decoded image buffer unit 110 is used to store the reconstructed video coding blocks, for Forecast reference. As the video image coding proceeds, new reconstructed video coding blocks are continuously generated, and these reconstructed video coding blocks are all stored in the decoded image buffer unit 110 .
  • FIG. 12 shows an example of a block diagram of a video decoding system provided by an embodiment of the present application; as shown in FIG. 12, the video decoding system 20 includes a decoding unit 201, an inverse transform and inverse quantization unit 202, an intra-frame The prediction unit 203, the motion compensation unit 204, the filtering unit 205, and the decoded image buffering unit 206, etc., wherein the decoding unit 201 can implement header information decoding and CABAC decoding, and the filtering unit 205 can implement deblocking filtering and SAO filtering.
  • the decoding unit 201 can implement header information decoding and CABAC decoding
  • the filtering unit 205 can implement deblocking filtering and SAO filtering.
  • the code stream of the video signal is output; the code stream is input into the video decoding system 20, and first passes through the decoding unit 201 to obtain the decoded transform coefficient; Inverse transform and inverse quantization unit 202 processes to generate residual blocks in the pixel domain; intra prediction unit 203 may be used to generate based on the determined intra prediction mode and data from previously decoded blocks of the current frame or picture Prediction data for the current video decoding block; motion compensation unit 204 determines prediction information for the video decoding block by parsing the motion vector and other associated syntax elements, and uses the prediction information to generate predictive information for the video decoding block being decoded block; a decoded video block is formed by summing the residual block from inverse transform and inverse quantization unit 202 and the corresponding predictive block produced by intra prediction unit 203 or motion compensation unit 204; the decoded video signal Video quality may be improved by filtering unit 205 in order to remove blocking artifacts; decoded video blocks are then stored in decoded image buffer unit 206, which stores reference images for subsequent
  • the prediction method in the embodiment of the present application can be applied to a video encoding system, a video decoding system, or even a video encoding system and a video decoding system at the same time, but the embodiment of the present application does not make any specific limitation. It should also be noted that when the prediction method is applied to a video encoding system, the "current block” specifically refers to the current encoding block; when the prediction method is applied to a video decoding system, the “current block” specifically refers to the current decoding block.
  • FIG. 13 is a schematic diagram 1 of the implementation flow of the prediction method.
  • the method for the decoder to perform prediction may include the following steps:
  • Step 101 Parse the code stream to determine the prediction mode parameter of the current block.
  • the decoder parses the code stream to determine the prediction mode parameter of the current block.
  • the prediction mode parameter may indicate whether the current block can use different prediction modes to determine the prediction value, that is, the prediction mode parameter may indicate whether the current block can use two different prediction modes for determining the prediction value. Predictive processing.
  • the prediction mode parameter can be understood as a flag bit indicating whether different prediction modes are used.
  • the decoder parses the code stream, and can determine a variable as the prediction mode parameter, so that the prediction mode parameter can be determined by the value of the variable.
  • the two different prediction modes include but are not limited to intra prediction mode, inter prediction mode, intra block copy (IntraBlockCopy, IBC) mode, palette mode Palette, string prediction mode, etc.
  • the decoder may use the inter prediction mode and the intra prediction mode to perform prediction processing on the current block, for example, the decoder uses the Plane mode and the translation prediction mode to determine the prediction block of the current block, respectively. . It is precisely because the inter-frame prediction mode and the intra-frame prediction mode are respectively used to perform prediction processing on the current block to obtain the prediction block of the current block, which can better optimize the prediction that the intra-frame prediction mode can only handle simple textures. At the same time, it can better optimize the reference block with high matching degree that sometimes cannot be obtained from the reference frame in the inter-frame prediction mode, and finally obtain a better prediction effect.
  • the decoder may also use the intra prediction mode and the intra block copy mode to perform prediction processing on the current block, or use the palette mode and the inter prediction mode to perform prediction processing on the current block respectively. . That is to say, in this application, if the prediction mode parameter indicates that the current block can use two different prediction modes to determine the prediction value, then there can be multiple combinations of the two different prediction modes.
  • the application is not specifically limited.
  • the size of the current block may be limited.
  • the decoder can first determine the size parameter of the current block, and then determine whether the current block uses two different prediction modes according to the size parameter.
  • the size parameter of the current block may include the height and width of the current block. Therefore, the decoder may use the height and width of the current block to limit the use of two different prediction modes. That is, the size of a prediction block that can use two different prediction modes is limited.
  • the width is greater than the first threshold and the height is greater than the second threshold
  • it is determined that the current block uses two different prediction modes that is, it is determined that the current block uses different prediction modes to determine the prediction value of the current block.
  • a possible restriction is to use two different prediction modes only when the width of the prediction block is greater than (or equal to) the first threshold and the height of the prediction block is greater than (or equal to) the second threshold.
  • the values of the first threshold and the second threshold may be 8, 16, 32, etc., and the first threshold may be equal to the second threshold.
  • the width is smaller than the third threshold and the height is smaller than the fourth threshold, it is determined that the current block uses two different prediction modes, that is, it is determined that the current block uses different prediction modes to determine the prediction value of the current block. It can be seen that a possible restriction is to use two different prediction modes only when the width of the prediction block is less than (or less than or equal to) the third threshold and the height of the prediction block is less than (or less than or equal to) the fourth threshold.
  • the values of the third threshold and the fourth threshold may be 8, 16, 32, etc., and the third threshold may be equal to the fourth threshold.
  • the decoder can also determine the aspect ratio of the current block according to the width and length of the current block; limit.
  • the aspect ratio is smaller than the fifth threshold, it is determined that the current block uses different prediction modes to determine the prediction value of the current block; or, if the inverse of the aspect ratio is smaller than the fifth threshold, it is determined that the current block uses different prediction modes. Different prediction modes determine the prediction value of the current block.
  • the current division method can support aspect ratios of 1:2, 1:4, 1:8, 2:1, 4:1 , 8:1 and other shaped blocks. Therefore, in the embodiments of the present application, for certain aspect ratio blocks, such as 1:4 or 4:1 blocks and 1:8 or 8:1 blocks, or for certain sizes of aspect ratios
  • the compression performance brought by the prediction method proposed in this application may not be good enough or not obvious, so you can set the limit of the aspect ratio. If the length is less than (or less than or equal to) the fifth threshold than the width, use different prediction modes to determine the prediction value of the current block, or if the width is less than (or less than or equal to) the fifth threshold than the length, use different prediction modes to determine the prediction of the current block value.
  • the fifth threshold may be 4, 8 and so on.
  • the size limitation method and the aspect ratio limitation method of the current block may be used simultaneously.
  • the decoder can set two different predictions when the height of the current block is greater than or equal to 8, the width of the current block is greater than or equal to 8, and the height to width (or width to width ratio) of the current block is less than or equal to 4 mode for prediction processing, otherwise two different prediction modes are not used for prediction processing by default.
  • the current block can use two different prediction modes for prediction processing.
  • the decoder may also limit the prediction blocks that can use two different prediction modes by limiting the total number of pixels.
  • the decoder may first determine the total number of pixels of the current block, and then further determine whether the current block can use different prediction modes to determine the prediction of the current block according to the total number of pixels and the sixth threshold. It can be seen that one possible limitation is to use two different prediction modes only when the number of pixels of the prediction block is greater than (or greater than or equal to) the sixth threshold.
  • the value of the sixth threshold may be 8, 16, 32 and so on.
  • the seventh threshold may be equal to the sixth threshold, and the value of the seventh threshold may be 8, 16, 32 and so on.
  • intra-frames eg, I-frames
  • inter-frames eg, B-frames, P-frames
  • intra-frame prediction can also be used for inter-frame frames
  • inter-frame frames it is also possible for inter-frame frames to use the prediction method proposed in this application.
  • a flag below the frame level and above the CU level (such as tile, slice, patch, LCU, etc.) to determine whether this region uses the prediction method proposed in this application.
  • the flag of whether to use the prediction method proposed in this application is at the same level as the judgment of the prediction modes of intra prediction and inter prediction. That is to say, the current block will determine whether to use the intra prediction mode, the inter prediction mode or the prediction mode of the present invention.
  • whether to use the prediction method proposed in this application may be used as the following prediction mode of an inter prediction mode. That is to say, if the current block determines to use the inter prediction mode, it is then judged whether to use the prediction method proposed in this application.
  • the decoder may also parse the code stream to determine the intra prediction mode parameter of the current block; when the intra prediction mode parameter indicates that the current block uses the intra prediction mode parameter When the prediction mode determines the prediction value of the current block, the prediction mode parameter of the current block is determined; when the prediction mode parameter indicates that the current block uses different prediction modes to determine the prediction value of the current block, the first prediction mode and the second prediction mode are determined; wherein, The first prediction mode or the second prediction mode is the intra prediction mode; finally, the prediction value of the current block is determined based on the first prediction mode and the second prediction mode.
  • whether to use the prediction method proposed in this application may be used as the following prediction mode of an inter prediction mode. That is to say, if the current block determines to use the inter prediction mode, it is then judged whether to use the prediction method proposed in this application.
  • the decoder may also parse the code stream to determine the inter-frame prediction mode parameter of the current block; when the inter-frame prediction mode parameter indicates that the current block uses inter-frame When the prediction mode determines the prediction value of the current block, the prediction mode parameter of the current block is determined; when the prediction mode parameter indicates that the current block uses different prediction modes to determine the prediction value of the current block, the first prediction mode and the second prediction mode are determined; wherein, The first prediction mode or the second prediction mode is an inter prediction mode; finally, a prediction value of the current block is determined based on the first prediction mode and the second prediction mode.
  • a video image may be divided into multiple image blocks, and the current block is each image block currently to be decoded, which may be called a Coding Block (CB).
  • each decoding block may include a first image component, a second image component, and a third image component.
  • the decoding block to be predicted can be called a luminance block; or, it is assumed that prediction processing is performed , and the second image component is a chrominance component, that is, the image component to be predicted is a chrominance component, then the decoding block to be predicted can be called a chrominance block.
  • Step 102 When the prediction mode parameter indicates that the current block uses different prediction modes to determine the prediction value of the current block, determine the first prediction mode and the second prediction mode of the current block, wherein the first prediction mode and the second prediction mode are respectively: Any two of the following multiple prediction modes: intra prediction mode, inter prediction mode, intra block copy mode, palette mode, string prediction mode.
  • the decoder may further determine that the current block needs The first prediction mode and the second prediction mode used.
  • the decoder can determine the two different prediction modes, that is, the first A prediction mode and a second prediction mode.
  • the first prediction mode and the second prediction mode may include, but are not limited to, intra prediction mode, inter prediction mode, intra block copy mode, palette mode Palette, string prediction mode, and the like.
  • the first prediction mode and the second prediction mode are an intra prediction mode and an inter prediction mode, respectively.
  • the first prediction mode may be an inter prediction mode
  • the second prediction mode may be a frame prediction mode.
  • Intra prediction mode is an intra prediction mode and an inter prediction mode
  • the first prediction mode and the second prediction mode are any two of the following multiple prediction modes: intra prediction mode, inter prediction mode, intra block copy mode, palette mode, the string prediction mode.
  • the first prediction mode may be an inter prediction mode
  • the second prediction mode may be a palette mode.
  • the first prediction mode and the second prediction mode are respectively an inter prediction mode and an intra prediction mode.
  • the first prediction mode may be an affine prediction mode
  • the second prediction mode may be a Bilinear mode.
  • the prediction mode parameter indicates that the current block can use two different prediction modes to determine the prediction value, then there can be multiple combinations of the first prediction mode and the second prediction mode.
  • This application is not specifically limited.
  • the intra-frame prediction mode used by the current block includes but is not limited to any common intra-frame prediction mode, including but not limited to intra-frame prediction modes such as DC, Planar, Bilinear, and angle prediction modes. model.
  • the intra prediction mode also includes techniques for improving prediction, such as improving sub-pixel interpolation of reference pixels, filtering predicted pixels, etc., such as MIPF, IPF, etc.
  • intra-frame prediction modes such as DC, Planar, Bilinear, and angular prediction modes may be referred to as basic intra-frame prediction modes
  • improved prediction techniques such as MIPF, IPF, etc.
  • the basic intra-frame prediction mode is an intra-frame prediction mode that can generate a prediction block independently of other intra-frame prediction modes, that is, after determining the reference pixel and the basic intra-frame prediction mode, the prediction block can be determined.
  • the improved intra prediction modes cannot generate prediction blocks independently, they need to depend on the basic intra prediction mode to determine the prediction block. For example, a certain angle prediction mode can determine and generate a prediction block according to a reference pixel, and MIPF can use different filters to generate or determine a prediction block for pixels at different positions on the basis of this angle prediction mode.
  • the intra-frame prediction mode may be a basic intra-frame prediction mode, or a basic intra-frame prediction mode and an improved intra-frame prediction mode.
  • inter prediction modes include but are not limited to unidirectional prediction, bidirectional prediction and the like.
  • Inter prediction modes include, but are not limited to, sub-block-based prediction, such as affine prediction (AFFINE), sub-block-based temporal motion vector prediction (SbTMVP), and the like.
  • Inter prediction modes include, but are not limited to, translation prediction, affine prediction (AFFINE), decoder-side motion vector optimization (DMVR), bidirectional optical flow (BIO), and the like.
  • the motion information deriving method of the inter prediction mode includes, but is not limited to, directly deriving motion information according to relevant motion information, constructing a motion information candidate list to select motion information from, and adding motion vectors on the basis of the aforementioned methods. difference, motion vector offset, etc.
  • the decoder when determining the first prediction mode and the second prediction mode of the current block, can determine the first mode flag and the second mode flag by parsing the code stream; The prediction mode indicated by a mode flag is determined as the first prediction mode, and the prediction mode indicated by the second mode flag is determined as the second prediction mode.
  • the decoder can directly determine the corresponding first prediction mode and second prediction mode according to the first mode flag and the second mode flag, that is, the first mode flag and the second mode flag can be directly Indicate prediction mode
  • the decoder parses the code stream, the determined first mode flag indicates that the first prediction mode is an intra prediction mode, and the determined second mode flag indicates that the second prediction mode is an inter prediction mode. mode, the decoder can use the intra prediction mode and the inter prediction mode to perform prediction processing on the current block.
  • the decoder when the decoder determines the first prediction mode and the second prediction mode of the current block, it can also parse the code stream to determine the first mode flag and the second mode flag; A mode flag determines the first prediction mode in the candidate mode; finally, according to the second mode flag, the second prediction mode is determined in other modes of the candidate mode other than the first prediction mode.
  • the decoder may first determine the first prediction mode in the candidate modes according to the first mode flag, and then determine the candidate modes other than the first prediction mode according to the second mode flag.
  • the second prediction mode is determined, that is, the first mode flag and the second mode flag can be used to select the prediction mode based on the candidate mode.
  • the candidate modes include inter prediction mode, intra prediction mode, string prediction mode, intra block copy prediction mode, etc.
  • the decoder parses the code stream, and determines the first mode flag. Indicates that one prediction mode in the candidate modes is the first prediction mode, and the determined second mode flag indicates that the other prediction mode in the candidate modes is the second prediction mode.
  • the decoder parses the code stream, and in addition to determining the prediction mode parameter indicating that two different prediction modes can be used for prediction processing, it can also determine the first prediction mode and the second prediction mode. logo information.
  • the decoder can directly use the first mode flag and the second mode obtained by decoding.
  • the flag performs the determination of the first prediction mode and the second prediction mode without selecting the prediction mode.
  • the available prediction modes include (normal) intra-frame prediction modes.
  • 1 to two bits can be used to indicate which prediction mode the first prediction mode is.
  • 10 means intra prediction
  • 00 means IBC
  • 01 means SP.
  • the code stream parsed by the decoder also transmits various flags such as the first mode index, the second mode index, and the information of the weight matrix.
  • the decoder parses the code stream, and can determine the first mode index and the second mode index.
  • the first mode index may be used to indicate which prediction mode the first prediction mode is
  • the second mode index may be used to indicate which prediction mode the second prediction mode is.
  • the first The mode index may indicate that the first prediction mode is the DC mode in the intra prediction mode
  • the second mode index may indicate that the second prediction mode is the affine mode in the inter prediction mode.
  • the decoder parses the code stream, and can determine the first weight flag and the second weight flag; and then can determine the first weight corresponding to the first predicted value in the weight matrix according to the first weight flag; According to the first weight flag, the first weight corresponding to the first predicted value is determined in the weight matrix.
  • the decoded code stream can also determine the mode information of the inter-frame prediction mode, and also determine the information such as the motion vector deviation of the inter-frame prediction mode.
  • the decoded code stream can also determine the mode information of the intra prediction mode.
  • the decoded code stream can also determine the information of the weight matrix. Specifically, it can also be determined that the inter prediction mode and the intra prediction mode are the first prediction mode for the weight matrix, and which mode is the second prediction mode for the weight matrix. Alternatively, it is determined which prediction block is the first prediction block to the weight matrix and which prediction block is the second prediction block to the weight matrix.
  • Step 103 Determine the prediction value of the current block based on the first prediction mode and the second prediction mode.
  • the decoder can determine the prediction value based on the first prediction mode and the second prediction mode of the current block.
  • the prediction mode and the second prediction mode further determine the prediction value of the current block.
  • the decoder when determining the prediction value of the current block based on the first prediction mode and the second prediction mode, may determine the prediction value corresponding to the current block based on the first prediction mode a first prediction value; based on the second prediction mode, determine a second prediction value corresponding to the current block; finally, based on the first prediction value and the second prediction value, further determine the prediction of the current block value.
  • the common technology improves the prediction quality through the weighted average of the intra-frame prediction block and the inter-frame prediction block of the current block. All blocks use the same weight, so when some of the intra-frame prediction blocks or inter-frame prediction blocks have poor prediction quality, the final prediction effect cannot be effectively improved.
  • the prediction method proposed in the present application can improve the prediction effect by using different weights for different pixels in the intra-frame prediction block and the inter-frame prediction block.
  • FIG. 14 is a second schematic diagram of the implementation flow of the prediction method. As shown in FIG. 14 , after the decoder determines the prediction mode parameter of the current block, that is, after step 101, the decoder performs The method of prediction processing may further include the following steps:
  • Step 104 When the prediction mode parameter indicates that the current block uses different prediction modes to determine the prediction value of the current block, determine the weight matrix derivation mode of the current block.
  • Step 105 Determine the weight matrix of the current block according to the weight matrix derivation mode.
  • the decoder may further determine the weight of the current block The matrix derivation mode, and then the weight matrix of the current block can be determined according to the weight matrix derivation mode.
  • the decoder when the decoder determines the prediction value of the current block based on the first prediction mode and the second prediction mode, it can finally determine the prediction value based on the first prediction mode, the second prediction mode and the weight matrix. The predicted value of the current block.
  • the weight matrix derivation mode is used to determine the weight matrix used by the current block.
  • the weight matrix derivation mode may be a mode of deriving the weight matrix.
  • each weight matrix derivation mode can derive a weight matrix; for a prediction block of the same size, different weight matrix derivation modes derive different weight matrices.
  • not all points in all possible weight matrices have the same weight.
  • at least one possible weight matrix contains at least two different weight values.
  • all possible weight matrices contain at least two different weight values.
  • the partial weight matrix contains at least two different weight values.
  • the minimum weight value is 0 and the maximum weight value is 8, there is a point in the weight matrix. is 0, and some points are 8.
  • the same weight value is included in the partial weight matrix.
  • the at least one weight value is greater than the lower weight threshold and smaller than the upper weight threshold.
  • the lower threshold of the weight can be set to 0, and the upper threshold of the weight can be set to 1.
  • a limit of a minimum weight value and a maximum weight value may be set, so that each point in the current block is Weighted predictions derived from two different prediction modes. For example, setting the weight to 5 bins, including 0, 1/4, 1/2, 3/4, and 1, divides 0 to 1 into 5 bins, where 0 indicates that this point is completely derived from a prediction mode. A value of 1 indicates that this point is entirely derived from a predicted value derived from another prediction mode.
  • the minimum weight value can be set to 1/4, and the maximum weight value can be set to 3/4, then all points of the weight matrix need to be weighted by the predicted values derived from the two prediction modes, but not all points have the same weight.
  • the weight can also be limited by the minimum weight value and the maximum weight value, that is, the weight is also greater than the weight lower limit threshold and Any value less than the weight upper threshold. This can make the weight matrix more diverse, make more diverse prediction blocks, and cover more scenes.
  • the weight matrix includes two weight values
  • the two weight values are respectively a lower weight threshold and an upper weight threshold.
  • weights in a weight matrix there are only two weights in a weight matrix, one of which indicates that the predicted value of the corresponding point completely comes from the value of the corresponding point of the first prediction block, and the other weight indicates that the predicted value of the corresponding point completely comes from The value of the corresponding point in the second prediction block.
  • weights in a weight matrix 0 and 1, respectively.
  • the maximum value (the upper limit of the weight threshold) and the minimum value (the lower limit of the weight threshold) respectively indicate that the predicted value of the corresponding point completely comes from the corresponding first prediction block.
  • the value of the point or the value of the corresponding point of the second prediction block A weight value that is not a maximum value or a minimum value indicates that the predicted value of the corresponding point comes from the weighted average of the values of the corresponding points of the first prediction block and the second prediction block.
  • the area composed of the weight value of the maximum or minimum value can be called the blending area.
  • the positions where the weight changes form a straight line
  • the positions with the same weight in the transition area form a straight line (line segment).
  • the straight lines may all be horizontal and vertical, or may not all be horizontal and vertical.
  • the positions where the weights change constitute a curve (curve segment), or when the weight matrix has multiple weights, the positions with the same weights in the transition area. Constructs a curve (curve segment).
  • the decoder may adopt a method similar to GPM or AWP to realize the determination of the weight matrix. Specifically, if GPM or AWP is used in the same codec standard or codec, this method can be used to determine the weight matrix, so that the same logic in the multiplexing part can be achieved. If AWP is used in AVS3 inter-frame prediction, the AWP method can be used to determine the weight matrix in AVS3. Of course, different methods from GPM or AWP in the same codec standard or codec can also be used, such as using different mode numbers, or different transition region algorithms, or using different parameters.
  • AWP mode is used in inter-frame prediction in AVS3, and there are 56 weight matrices of AWP.
  • 64 kinds of weight matrices are used in intra-frame prediction, of which 56 are the same as the weight matrix of AWP.
  • the first 56 weight matrices are the same as AWP, and each of the remaining 8 weight matrices has only one weight value, and the weight values are 1, 2, ..., 7, 8 respectively.
  • the total weight value is 16, that is, a weight value of 1 means 1:15 weighting, and a weight value of 2 means 2:14 weighting. In this way, when the mode numbers of the 64 weight matrices are binarized, 6-bit codewords can be used.
  • inter-frame prediction exploits the correlation in the temporal domain, it uses the reconstructed image in the reference frame as the reference block.
  • Intra-frame prediction utilizes the correlation in the spatial domain, and it uses the reconstructed pixels around the current block as reference pixels. In the airspace, the closer the distance, the stronger the correlation, and the farther the distance, the worse the correlation. Therefore, if a certain weight matrix makes the obtained pixel position used by a prediction block far away from the reference pixel, then this part may not be able to make a more suitable prediction value than the existing technology, so such a weight matrix may not be used, but Can be used in inter prediction.
  • the AWP of AVS3 has 56 weight matrix derivation modes
  • the GPM of VVC has 64 weight matrix derivation modes.
  • the decoder when the decoder determines the predicted value of the current block based on the first prediction mode, the second prediction mode and the weight matrix, it can determine the first predicted value of the current block according to the first prediction mode; The second prediction mode determines the second prediction value of the current block; then the weighted average calculation can be performed on the first prediction value and the second prediction value by using the weight matrix, and finally the prediction value of the current block is obtained.
  • the decoder may determine two different prediction blocks (the first prediction value and the second prediction value) for the current block respectively, determine a weight matrix, and then use the two different prediction blocks according to The weight matrices are combined to obtain a new prediction block.
  • the decoder may first determine a prediction block (first prediction value) according to the first prediction mode, determine a prediction block (second prediction value) according to the second prediction mode, and determine a weight matrix, A new prediction block is obtained by combining two different prediction blocks according to the weight matrix.
  • two different prediction blocks are determined by two different prediction modes respectively, that is, the first prediction value is determined by the first prediction mode, and the first prediction value is determined by the first prediction mode.
  • the second prediction mode determines the second prediction value.
  • the intra prediction mode and the inter prediction mode are respectively used to determine two different prediction modes for the current block.
  • the prediction block determine the weight matrix of the current block, and combine two different prediction blocks according to the weight matrix to obtain a new prediction block.
  • the first prediction mode is an intra-frame prediction mode
  • a prediction block is determined according to the intra-frame prediction mode.
  • the second prediction mode is determined to be an inter prediction mode, and a prediction block is determined according to the inter prediction mode.
  • the current block is determined by using the intra-frame prediction and the intra-frame block copy mode respectively to determine two differences.
  • prediction block Determine the weight matrix of the current block, and combine two different prediction blocks according to the weight matrix to obtain a new prediction block.
  • the first prediction mode when performing prediction processing on the current block, may be an intra-frame prediction mode, and a prediction block is determined according to the intra-frame prediction mode.
  • the second prediction mode is determined to be an intra-block copy mode, and a prediction block is determined according to the intra-block copy mode. Determine the weight matrix of the current block, and combine two different prediction blocks according to the weight matrix to obtain a new prediction block.
  • FIG. 15 is a schematic diagram of the prediction method.
  • the first prediction mode when performing intra-frame prediction on the current block, the first prediction mode may be used to determine the first prediction block of the current block, and the second prediction mode may be used to determine the current block.
  • the second prediction block of the block can then be combined with the first prediction block and the second prediction block by using the weight matrix, and finally a new prediction block is obtained. That is, based on the first prediction mode and the second prediction mode, two different prediction blocks may be determined for the current block, a weight matrix may be determined, and a new prediction block may be obtained by combining the two different prediction blocks according to the weight matrix.
  • FIG. 16 is a schematic diagram 3 of the implementation flow of the prediction method.
  • the method for the decoder to perform prediction may further include the following steps:
  • Step 201 Parse the code stream, and determine the prediction mode parameter of the current block.
  • Step 202 When the prediction mode parameter indicates that the current block uses different prediction modes to determine the prediction value of the current block, determine the first prediction mode of the current block, and determine the first prediction value of the current block according to the first prediction mode.
  • Step 203 Determine the second prediction mode of the current block, and determine the second prediction value of the current block according to the second prediction mode.
  • Step 204 Determine the predicted value of the current block based on the first predicted value and the second predicted value.
  • the prediction mode decoded first is used as the first prediction mode
  • the prediction block of the first decoded prediction mode is used as the first prediction mode.
  • the later-decoded prediction mode is used as the second prediction mode
  • the prediction block of the later-decoded prediction mode is used as the second prediction block (ie, the second prediction value).
  • the decoder can directly use the prediction block of the first decoded prediction mode as the first prediction block, and use the prediction block of the later encoded prediction mode as the second prediction block.
  • the prediction method proposed in this application needs to use two different prediction modes and a weight matrix to determine the prediction value of the current block, therefore, in order to reduce overhead, in this application,
  • the number of bits can be reduced by restricting the two prediction modes of the current block, and at the same time, the number of bits can also be reduced by restricting the derivation mode of the weight matrix of the current block.
  • the first 33 prediction modes of AVS3 since the first 33 prediction modes of AVS3 have covered almost the entire angle range, only using the first 33 prediction modes in AVS3 can ensure better performance, and only needs to be used in decoding. It can be adjusted to not use EIPM. Further, the number of intra prediction modes that may be used by the current block can be further compressed and limited, and finally only 5 bits are used for decoding, thereby further reducing overhead and achieving better performance.
  • the overhead of the weight matrix derivation mode can be reduced by reducing the number of weight matrix derivation modes that may be used by the current block. For example, in AVS3, if 56 weight matrix derivation modes are used, at most 6 bits are required to decode one weight matrix derivation mode, while if only 3 two weight matrix derivation modes are used, at most 5 bits are required to decode one Weight matrix export mode. Further, it is possible to further compress and limit the number of weight matrix derivation modes that may be used by the current block. For example, if only 16 weight matrix derivation modes are used, only 4 bits are used for decoding, thereby further reducing the overhead. to achieve better performance.
  • a prediction block with a larger size parameter such as a prediction block with a size of 64 ⁇ 64 or 32 ⁇ 32
  • all weight matrix derivation modes can be used to determine the weight matrix derivation mode of the current block
  • the partial weight matrix derivation mode can be used to determine the weight matrix derivation mode of the current block, that is, the number of weight matrix derivation modes that the current block may use.
  • a size threshold such as a first size threshold
  • the number of weight matrix derivation modes that can be selected by the current block can be limited.
  • the limitation on the number of the weight matrix derivation modes may be implemented by limiting the index number of the weight matrix derivation mode in the current block.
  • the weight matrix derivation mode may be determined according to the first mode index range; The index number is restricted.
  • the first mode index range may include a first lower threshold and a first upper threshold, and the index numbers of each mode in the weight matrix may be compared with the first lower threshold and the first upper threshold, respectively. If the index of the mode is derived from the weight matrix If the serial number is less than the first lower threshold, the index serial number of the weight matrix export mode can be set to the first lower threshold; if the index serial number of the weight matrix export mode is greater than the first upper threshold, then the index serial number of the weight matrix export mode can be set to The first upper limit threshold.
  • the index number of the weight matrix derivation mode of the current block can be limited by the first mode index range, so as to complete the limitation on the number of the weight matrix derivation modes.
  • the first mode index range can be 0-32, that is, the index number of the weight matrix derived mode can be limited within 0-32 through the first mode index range, so the current block can use the first 33 weights
  • the matrix derivation mode is used to determine the weight matrix derivation mode of the current block.
  • the overhead of decoding the two prediction modes can be reduced by reducing the number of intra prediction modes that may be used by the current block. For example, in AVS3, if 66 intra-prediction modes are used, up to 7 bits are needed to decode an intra-prediction mode, while if only 33 intra-prediction modes are used, and no PCM mode is used, only up to 6 bits are needed bits to decode an intra prediction mode.
  • a prediction block with a larger size parameter such as a prediction block with a size of 64 ⁇ 64 or 32 ⁇ 32
  • all intra prediction modes can be used to determine the intra prediction mode of the current block
  • a prediction block with a smaller size parameter such as a prediction block with a size of 8 ⁇ 8
  • partial intra prediction modes can be used to determine the intra prediction mode of the current block, that is, the number of intra prediction modes that the current block may use.
  • Limitation because for prediction blocks with small size parameters, the effect of small angle differences is not obvious.
  • a size threshold such as a second size threshold
  • the number of intra prediction modes that can be selected by the current block can be limited.
  • the restriction on the number of intra prediction modes may be implemented by restricting the index number of the intra prediction mode of the current block.
  • the intra prediction mode may be determined according to the second mode index range;
  • the index number is restricted.
  • the second mode index range may include a second lower threshold and a second upper threshold, and may first determine the index number of the intra prediction mode; then set the index number to be greater than the second lower threshold; and set the index number to be less than the second upper threshold.
  • the index number of the intra prediction mode of the current block may be limited by the second mode index range, thereby completing the restriction on the number of intra prediction modes.
  • the second mode index range can be 0-32, that is, the index number of the first prediction mode can be limited within 0-32 through the second mode index range, so the current block can use the first 33 predictions mode to determine the intra prediction mode.
  • first size threshold and the second size threshold may be the same or different; the first mode index range and the second mode index range may be the same or different.
  • the overhead of encoding the inter-frame prediction mode in the present application can be reduced by reducing the used inter-frame prediction mode.
  • this application it is possible to choose to use only skip or merge or direct mode instead of the normal inter mode which requires encoding mvd.
  • the restriction process when limiting the number of inter-frame prediction modes, the restriction process may be performed directly on the number of inter-frame prediction modes of all prediction blocks, and the size of the current block may also be referred to. parameter to use different limits for current blocks of different sizes.
  • the candidate inter prediction mode can be used to determine the inter prediction mode of the current block, wherein , the candidate inter prediction mode can include the common inter mode that needs to encode mvd, and for prediction blocks with smaller size parameters, such as 8 ⁇ 8 prediction blocks, other inter prediction modes other than the candidate inter prediction mode can be selected for
  • the determination of the inter-frame prediction mode of the current block that is, the number of possible inter-frame prediction modes used by the current block is limited. This is because for the prediction block with a smaller size parameter, the influence caused by the slight angle difference is not enough. Not obvious.
  • a size threshold such as a third size threshold
  • the candidate inter prediction mode needs to limit the selection of the current block. the inter prediction mode.
  • the third size threshold and the second size threshold may be the same or different.
  • the prediction mode used by the current block after the prediction mode used by the current block is determined, information such as the prediction mode of the current block needs to be saved for reference of subsequent codec blocks, wherein the subsequent codec blocks include but It is not limited to the prediction block adjacent to the current block in the spatial domain and the prediction block in which the information of the current block is used in the temporal domain.
  • the preservation of the prediction modes of the current block may be performed according to various methods.
  • the current block uses two different prediction modes, then when using the current block to predict other blocks to be predicted, the first prediction mode and/or the second prediction mode are used. Set to the prediction mode of the current block.
  • the current block uses two different prediction modes, the inter-frame prediction mode and the intra-frame prediction mode, then a part of the minimum units of the current block choose to save the intra-frame prediction mode, and a part of the minimum units choose to save the frame.
  • inter-prediction mode Specifically, methods similar to GPM or AWP can be used. Similar logic to this approach can be used if either GPM or AWP is used in the same codec standard or codec. In this way, the same logic can be reused.
  • AWP3 inter-frame prediction uses AWP, then in AVS3, two different prediction modes can be saved using a logic similar to that used by AWP to save two different motion information, that is, if the position corresponding to a minimum unit only uses intra-frame The prediction block determined by the prediction mode, then the smallest unit saves the intra prediction mode; if the position corresponding to a smallest unit only uses the prediction block determined by the inter prediction mode, then the smallest unit saves the inter prediction mode; if a The position corresponding to the minimum unit uses both the prediction block determined by the intra prediction mode and the prediction block determined by the inter prediction mode, then one of the intra prediction mode and the inter prediction mode can be selected for saving.
  • the current block uses two different prediction modes, the inter prediction mode and the intra prediction mode, then only the same prediction mode can be selected for all the minimum units corresponding to the entire current block. to save.
  • the intra-frame prediction mode and the inter-frame motion information are stored for reference to other blocks, the intra-frame prediction mode and the inter-frame motion information are encoded differently. They are different. Therefore, selecting whether to use the intra-frame prediction mode or the inter-frame prediction mode for each minimum unit brings a certain complexity.
  • AVS3 there are currently 66 modes of intra-frame prediction in AVS3. Before each current block is predicted, 2 most probable modes (MPM) will be constructed. If the current block uses MPM, then from 2 Choose one of the MPMs, otherwise you need to choose a prediction mode among the 64 modes.
  • MPM most probable modes
  • the prediction value of the motion vector motion vector prediction/predictor, MVP
  • all the weight matrix derivation modes of the current block all select the intra prediction mode.
  • all the weight matrix derivation modes of the current block all select the inter prediction mode.
  • all minimum units of certain weight matrix derivation modes of the current block select the intra prediction mode
  • all minimum units of some weight matrix derivation modes select the inter prediction mode. That is, according to the weight matrix derivation mode, it is determined whether all the smallest units of the current block save the intra-frame prediction mode or all save the inter-frame prediction mode.
  • the mode number calculation of the mode is derived using the weight matrix of the current block.
  • the mode number look-up table of the mode is derived using the weight matrix of the current block. For example, if the same weight matrix derivation mode as AWP is used, if the mode number of the weight matrix derivation mode corresponds to 0, select the intra prediction mode, and if the mode number of the weight matrix derivation mode corresponds to 1, select the inter frame forecast mode.
  • the prediction mode stored in a minimum unit of the current block is the intra prediction mode, then this minimum unit is marked as using intra prediction at the same time. If the prediction mode stored in a minimum unit of the current block is an inter prediction mode, then this minimum unit is also marked as using inter prediction.
  • the embodiment of the present application provides a prediction method.
  • the decoder parses the code stream and determines the prediction mode parameter of the current block; when the prediction mode parameter indicates that the current block uses different prediction modes to determine the prediction value of the current block, the first prediction of the current block is determined. mode and a second prediction mode; wherein, the first prediction mode and the second prediction mode are any two modes of the following multiple prediction modes: intra prediction mode, inter prediction mode, intra block copy mode, color matching Plate mode, string prediction mode; based on the first prediction mode and the second prediction mode, determine the prediction value of the current block.
  • the codec may determine two different prediction blocks of the current block by using two different prediction modes, and then may combine the two different prediction blocks according to the weight matrix, and finally Obtaining a more complex prediction block improves the prediction accuracy, that is to say, the prediction method proposed in the present application can improve the prediction quality and the compression performance.
  • FIG. 17 is a schematic diagram 4 of the implementation flow of the prediction method.
  • the prediction method by the encoder may include the following steps:
  • Step 301 Determine the prediction mode parameter of the current block.
  • the encoder may first determine the prediction mode parameter of the current block.
  • the prediction mode parameter may indicate whether the current block can use different prediction modes to determine the prediction value, that is, the prediction mode parameter may indicate whether the current block can use two different prediction modes for determining the prediction value. Predictive processing.
  • the prediction mode parameter can be understood as a flag bit indicating whether different prediction modes are used.
  • the encoder can determine a variable that is a parameter of the prediction mode, so that the determination of the parameter of the prediction mode can be realized by the value of the variable.
  • the prediction mode parameter indicates that the current block can use two different prediction modes to determine the prediction value
  • the two different prediction modes include but are not limited to intra prediction mode, inter prediction mode, intra block copy mode, palette mode Palette, string prediction mode, etc.
  • the encoder may use the inter prediction mode and the intra prediction mode to perform prediction processing on the current block; the encoder may also use the intra prediction mode and the intra block copy mode to perform prediction processing on the current block, respectively. Predictive processing.
  • the prediction mode parameter indicates that the current block can use two different prediction modes to determine the prediction value, then there can be multiple combinations of the two different prediction modes.
  • the application is not specifically limited.
  • the size of the current block may be limited.
  • the encoder can first determine the size parameter of the current block, and then determine whether the current block uses two different prediction modes according to the size parameter.
  • the size parameter of the current block may include the height and width of the current block. Therefore, the encoder may use the height and width of the current block to limit the use of two different prediction modes, That is, the size of a prediction block that can use two different prediction modes is limited.
  • the width is greater than the first threshold and the height is greater than the second threshold
  • it is determined that the current block uses two different prediction modes that is, it is determined that the current block uses different prediction modes to determine the prediction value of the current block.
  • a possible restriction is to use two different prediction modes only when the width of the prediction block is greater than (or equal to) the first threshold and the height of the prediction block is greater than (or equal to) the second threshold.
  • the values of the first threshold and the second threshold may be 8, 16, 32, etc., and the first threshold may be equal to the second threshold.
  • the width is smaller than the third threshold and the height is smaller than the fourth threshold, it is determined that the current block uses two different prediction modes, that is, it is determined that the current block uses different prediction modes to determine the prediction value of the current block. It can be seen that a possible restriction is to use two different prediction modes only when the width of the prediction block is less than (or less than or equal to) the third threshold and the height of the prediction block is less than (or less than or equal to) the fourth threshold.
  • the values of the third threshold and the fourth threshold may be 8, 16, 32, etc., and the third threshold may be equal to the fourth threshold.
  • the encoder can also determine the aspect ratio of the current block according to the width and length of the current block; limit.
  • the aspect ratio is smaller than the fifth threshold, it is determined that the current block uses different prediction modes to determine the prediction value of the current block; or, if the inverse of the aspect ratio is smaller than the fifth threshold, it is determined that the current block uses different prediction modes. Different prediction modes determine the prediction value of the current block.
  • the current division method can support aspect ratios of 1:2, 1:4, 1:8, 2:1, 4:1 , 8:1 and other shaped blocks. Therefore, in the embodiments of the present application, for certain aspect ratio blocks, such as 1:4 or 4:1 blocks and 1:8 or 8:1 blocks, or for certain sizes of aspect ratios
  • the compression performance brought by the prediction method proposed in this application may not be good enough or not obvious, so you can set the limit of the aspect ratio. If the length is less than (or less than or equal to) the fifth threshold than the width, use different prediction modes to determine the prediction value of the current block, or if the width is less than (or less than or equal to) the fifth threshold than the length, use different prediction modes to determine the prediction of the current block value.
  • the fifth threshold may be 4, 8 and so on.
  • the size limitation method and the aspect ratio limitation method of the current block may be used simultaneously.
  • the encoder can set the current block to use two different predictions when the height of the current block is greater than or equal to 8, the width of the current block is greater than or equal to 8, and the height to width (or width to width ratio) of the current block is less than or equal to 4 mode for prediction processing, otherwise two different prediction modes are not used for prediction processing by default.
  • the current block can use two different prediction modes for prediction processing.
  • the encoder may also limit the prediction blocks that can use two different prediction modes by limiting the total number of pixels.
  • the encoder may first determine the total number of pixels of the current block, and then further determine whether the current block can use different prediction modes to determine the prediction of the current block according to the total number of pixels and the sixth threshold. It can be seen that one possible limitation is to use two different prediction modes only when the number of pixels of the prediction block is greater than (or greater than or equal to) the sixth threshold.
  • the value of the sixth threshold may be 8, 16, 32 and so on.
  • the seventh threshold may be equal to the sixth threshold, and the value of the seventh threshold may be 8, 16, 32 and so on.
  • intra-frames eg, I frames
  • inter-frames eg, B-frames, P-frames
  • intra-frame not may be configured to use the prediction method proposed in this application
  • inter-frame may also be configured to use the prediction method proposed in this application
  • some inter-frames may also be configured to use the prediction method proposed in this application, and some inter-frames do not use this method. Since intra-frame prediction can also be used for inter-frame frames, it is also possible for inter-frame frames to use the prediction method proposed in this application.
  • a flag below the frame level and above the CU level (such as tile, slice, patch, LCU, etc.) to determine whether this region uses the prediction method proposed in this application.
  • the flag of whether to use the prediction method proposed in this application is at the same level as the judgment of the prediction modes of intra prediction and inter prediction. That is to say, the current block will determine whether to use the intra prediction mode, the inter prediction mode or the prediction mode of the present invention.
  • whether to use the prediction method proposed in this application may be used as the following prediction mode of an inter prediction mode. That is to say, if the current block determines to use the inter prediction mode, it is then judged whether to use the prediction method proposed in this application.
  • the encoder may also determine the intra prediction mode parameter of the current block; when the intra prediction mode parameter indicates that the current block uses the intra prediction mode to determine the current block When the prediction value of the block is determined, the prediction mode parameter of the current block is determined; when the prediction mode parameter indicates that the current block uses different prediction modes to determine the prediction value of the current block, the first prediction mode and the second prediction mode are determined; wherein, the first prediction mode Or the second prediction mode is an intra-frame prediction mode; finally, the prediction value of the current block is determined based on the first prediction mode and the second prediction mode.
  • whether to use the prediction method proposed in this application may be used as the following prediction mode of an inter prediction mode. That is to say, if the current block determines to use the inter prediction mode, it is then judged whether to use the prediction method proposed in this application.
  • the encoder may also determine the inter prediction mode parameter of the current block; when the inter prediction mode parameter indicates that the current block uses the inter prediction mode to determine the current block When the prediction value of the block is determined, the prediction mode parameter of the current block is determined; when the prediction mode parameter indicates that the current block uses different prediction modes to determine the prediction value of the current block, the first prediction mode and the second prediction mode are determined; wherein, the first prediction mode Or the second prediction mode is an inter prediction mode; finally, the prediction value of the current block is determined based on the first prediction mode and the second prediction mode.
  • a video image may be divided into multiple image blocks, and the current block is each image block currently to be encoded, which may be referred to as a coding block CB.
  • each coding block may include a first image component, a second image component, and a third image component.
  • the first image component is a luminance component, that is, the image component to be predicted is a luminance component
  • the coding block to be predicted can be called a luminance block
  • the second image component is a chrominance component, that is, the image component to be predicted is a chrominance component
  • the coding block to be predicted can be called a chrominance block.
  • Step 302 when the prediction mode parameter indicates that the current block uses different prediction modes to determine the prediction value of the current block, determine the first prediction mode and the second prediction mode of the current block; wherein, the first prediction mode and the second prediction mode are respectively: Any two of the following multiple prediction modes: intra prediction mode, inter prediction mode, intra block copy mode, palette mode, string prediction mode.
  • the encoder may further determine that the current block needs The first prediction mode and the second prediction mode used.
  • the encoder can determine the two different prediction modes, that is, the first A prediction mode and a second prediction mode.
  • the first prediction mode and the second prediction mode may include, but are not limited to, intra prediction mode, inter prediction mode, intra block copy mode, palette mode Palette, string prediction mode, and the like.
  • the first prediction mode and the second prediction mode are an intra prediction mode and an inter prediction mode, respectively.
  • the first prediction mode may be an inter prediction mode
  • the second prediction mode may be a frame prediction mode.
  • Intra prediction mode is an intra prediction mode and an inter prediction mode
  • the first prediction mode and the second prediction mode are any two of the following multiple prediction modes: intra prediction mode, inter prediction mode, intra block copy mode, palette mode, the string prediction mode.
  • the first prediction mode may be an inter prediction mode
  • the second prediction mode may be a palette mode.
  • the prediction mode parameter indicates that the current block can use two different prediction modes to determine the prediction value, then there can be multiple combinations of the first prediction mode and the second prediction mode.
  • This application is not specifically limited.
  • the intra-frame prediction mode used by the current block includes but is not limited to any common intra-frame prediction mode, including but not limited to intra-frame prediction modes such as DC, Planar, Bilinear, and angle prediction modes. model.
  • the intra prediction mode also includes techniques for improving prediction, such as improving sub-pixel interpolation of reference pixels, filtering predicted pixels, etc., such as MIPF, IPF, etc.
  • intra-frame prediction modes such as DC, Planar, Bilinear, and angular prediction modes may be referred to as basic intra-frame prediction modes
  • improved prediction techniques such as MIPF, IPF, etc.
  • the basic intra-frame prediction mode is an intra-frame prediction mode that can generate a prediction block independently of other intra-frame prediction modes, that is, after determining the reference pixel and the basic intra-frame prediction mode, the prediction block can be determined.
  • the improved intra prediction modes cannot generate prediction blocks independently, they need to depend on the basic intra prediction mode to determine the prediction block. For example, a certain angle prediction mode can determine and generate a prediction block according to a reference pixel, and MIPF can use different filters to generate or determine a prediction block for pixels at different positions on the basis of this angle prediction mode.
  • the intra-frame prediction mode may be a basic intra-frame prediction mode, or a basic intra-frame prediction mode and an improved intra-frame prediction mode.
  • inter prediction modes include but are not limited to unidirectional prediction, bidirectional prediction and the like.
  • Inter prediction modes include, but are not limited to, sub-block-based prediction, such as affine prediction (AFFINE), sub-block-based temporal motion vector prediction (SbTMVP), and the like.
  • Inter prediction modes include, but are not limited to, translation prediction, affine prediction (AFFINE), decoder-side motion vector optimization (DMVR), bidirectional optical flow (BIO), and the like.
  • the motion information derivation method of the inter prediction mode includes, but is not limited to, directly deriving motion information according to relevant motion information, constructing a motion information candidate list to select motion information from, and adding motion vectors on the basis of the aforementioned methods. difference, motion vector offset, etc.
  • the encoder when the encoder determines the first prediction mode and the second prediction mode of the current block, it can determine the first mode flag and the second mode flag; The prediction mode is determined as the first prediction mode, and the prediction mode indicated by the second mode flag is determined as the second prediction mode.
  • the encoder can directly determine the corresponding first prediction mode and second prediction mode according to the first mode flag and the second mode flag, that is, the first mode flag and the second mode flag can be directly Indicate prediction mode
  • the first mode flag determined by the encoder indicates that the first prediction mode is the intra-frame prediction mode
  • the determined second mode flag indicates that the second prediction mode is the inter-frame prediction mode
  • the processor may perform prediction processing on the current block using the intra prediction mode and the inter prediction mode.
  • the encoder when determining the first prediction mode and the second prediction mode of the current block, may also determine the first mode flag and the second mode flag; The first prediction mode is determined in the candidate mode; finally, the second prediction mode is determined in the candidate modes other than the first prediction mode according to the second mode flag.
  • the encoder may also first determine the first prediction mode in the candidate modes according to the first mode flag, and then determine the candidate modes other than the first prediction mode according to the second mode flag.
  • the second prediction mode is determined, that is, the first mode flag and the second mode flag can be used to select the prediction mode based on the candidate mode.
  • the candidate modes include an inter prediction mode, an intra prediction mode, a string prediction mode, an intra block copy prediction mode, etc.
  • the first mode flag determined by the encoder indicates that one of the candidate modes is One of the prediction modes is the first prediction mode
  • the determined second mode flag indicates that the other prediction mode in the candidate modes is the second prediction mode.
  • the encoder can also determine flag information indicating the first prediction mode and the second prediction mode in addition to determining the prediction mode parameter indicating whether the prediction processing can be performed using two different prediction modes.
  • the encoder can directly determine the first mode flag and the second mode flag to perform the first mode flag.
  • a prediction mode and a second prediction mode are determined without selecting a prediction mode.
  • the available prediction modes include (normal) intra-frame prediction, intra-frame block copy mode.
  • the string predicts SP
  • the first mode flag and the second mode flag determined by the encoder can indicate which prediction mode the first prediction mode is and which prediction mode the second prediction mode is.
  • 1 to two bits can be used to indicate which prediction mode the first prediction mode is.
  • 10 means intra prediction
  • 00 means IBC
  • 01 means SP.
  • the encoder also needs to transmit various flags, such as the first mode index, the second mode index, and the information of the weight matrix.
  • the encoder may determine the first mode index and the second mode index, and write the first mode index and the second mode index into the code stream.
  • the first mode index may be used to indicate which prediction mode the first prediction mode is
  • the second mode index may be used to indicate which prediction mode the second prediction mode is.
  • the first The mode index may indicate that the first prediction mode is the DC mode in the intra prediction mode
  • the second mode index may indicate that the second prediction mode is the affine mode in the inter prediction mode.
  • the encoder may determine the first weight flag and the second weight flag, and write the first weight flag and the second weight flag into the code stream; then, according to the first weight flag, in the weight matrix The first weight corresponding to the first predicted value is determined in the weight matrix; the first weight corresponding to the first predicted value is determined in the weight matrix according to the first weight flag.
  • the encoder can also determine the mode information of the inter-frame prediction mode, and can also determine information such as the motion vector deviation of the inter-frame prediction mode.
  • the encoder can also determine the mode information of the intra prediction mode.
  • the encoder can also determine the information of the weight matrix. Specifically, it can also be determined that the inter prediction mode and the intra prediction mode are the first prediction mode for the weight matrix, and which mode is the second prediction mode for the weight matrix. Alternatively, it is determined which prediction block is the first prediction block to the weight matrix and which prediction block is the second prediction block to the weight matrix.
  • the current block uses two determined prediction modes, for example, one is intra-frame prediction and the other is inter-frame prediction. Then in the code stream, in addition to the need to transmit the flag of whether to use two different prediction modes, if the current block uses the prediction method proposed in this application, it is also necessary to transmit the prediction mode information of the inter-frame prediction, and if necessary, the motion vector deviation needs to be transmitted. and other information.
  • Prediction mode information for intra prediction needs to be transmitted.
  • Information that determines the weight matrix needs to be transmitted. It is also necessary to determine which mode is the first prediction mode for the weight matrix and which mode is the second prediction mode for the weight matrix. In other words, it is determined which prediction block is the first prediction block for the weight matrix, and which prediction block is the second prediction block for the weight matrix.
  • Step 303 Determine the prediction value of the current block based on the first prediction mode and the second prediction mode.
  • the encoder can determine the prediction value based on the first prediction mode and the second prediction mode of the current block.
  • the prediction mode and the second prediction mode further determine the prediction value of the current block.
  • the encoder when the encoder determines the prediction value of the current block based on the first prediction mode and the second prediction mode, the encoder may determine the prediction value corresponding to the current block based on the first prediction mode. a first prediction value; based on the second prediction mode, determine a second prediction value corresponding to the current block; finally, based on the first prediction value and the second prediction value, further determine the prediction of the current block value.
  • the common technology improves the prediction quality through the weighted average of the intra-frame prediction block and the inter-frame prediction block of the current block. All blocks use the same weight, so when some of the intra-frame prediction blocks or inter-frame prediction blocks have poor prediction quality, the final prediction effect cannot be effectively improved.
  • the prediction method proposed in the present application can improve the prediction effect by using different weights for different pixels in the intra-frame prediction block and the inter-frame prediction block.
  • the method for performing prediction processing by the encoder may further include the following steps:
  • Step 304 When the prediction mode parameter indicates that the current block uses different prediction modes to determine the prediction value of the current block, determine the weight matrix derivation mode of the current block.
  • Step 305 Determine the weight matrix of the current block according to the weight matrix derivation mode.
  • the encoder may further determine the weight matrix of the current block to derive mode, and then the weight matrix of the current block can be determined according to the weight matrix derivation mode.
  • the encoder when the encoder determines the prediction value of the current block based on the first prediction mode and the second prediction mode, it can finally determine the prediction value based on the first prediction mode, the second prediction mode and the weight matrix. The predicted value of the current block.
  • the weight matrix derivation mode is used to determine the weight matrix used by the current block.
  • the weight matrix derivation mode may be a mode of deriving the weight matrix.
  • each weight matrix derivation mode can derive a weight matrix; for a prediction block of the same size, different weight matrix derivation modes derive different weight matrices.
  • not all points in all possible weight matrices have the same weight.
  • at least one possible weight matrix contains at least two different weight values.
  • all possible weight matrices contain at least two different weight values.
  • the partial weight matrix contains at least two different weight values.
  • the minimum weight value is 0 and the maximum weight value is 8, there is a point in the weight matrix. is 0, and some points are 8.
  • the same weight value is included in the partial weight matrix.
  • the at least one weight value is greater than the lower weight threshold and smaller than the upper weight threshold.
  • the lower threshold of the weight can be set to 0, and the upper threshold of the weight can be set to 1.
  • a limit of a minimum weight value and a maximum weight value may be set, so that each point in the current block is Weighted predictions derived from two different prediction modes. For example, setting the weight to 5 bins, including 0, 1/4, 1/2, 3/4, and 1, divides 0 to 1 into 5 bins, where 0 indicates that this point is completely derived from a prediction mode. A value of 1 indicates that this point is entirely derived from a predicted value derived from another prediction mode.
  • the minimum weight value can be set to 1/4, and the maximum weight value can be set to 3/4, then all points of the weight matrix need to be weighted by the predicted values derived from the two prediction modes, but not all points have the same weight.
  • the weight can also be limited by the minimum weight value and the maximum weight value, that is, the weight is also greater than the weight lower limit threshold and Any value less than the weight upper threshold. This can make the weight matrix more diverse, make more diverse prediction blocks, and cover more scenes.
  • the weight matrix includes two weight values
  • the two weight values are respectively a lower weight threshold and an upper weight threshold.
  • weights in a weight matrix there are only two weights in a weight matrix, one of which indicates that the predicted value of the corresponding point completely comes from the value of the corresponding point of the first prediction block, and the other weight indicates that the predicted value of the corresponding point completely comes from The value of the corresponding point in the second prediction block.
  • weights in a weight matrix 0 and 1, respectively.
  • the maximum value (the upper limit of the weight threshold) and the minimum value (the lower limit of the weight threshold) respectively indicate that the predicted value of the corresponding point completely comes from the corresponding first prediction block.
  • the value of the point or the value of the corresponding point of the second prediction block A weight value that is not a maximum value or a minimum value indicates that the predicted value of the corresponding point comes from the weighted average of the values of the corresponding points of the first prediction block and the second prediction block.
  • the area composed of the weight value of the maximum or minimum value can be called the blending area.
  • the positions where the weight changes form a straight line
  • the positions with the same weight in the transition area form a straight line (line segment).
  • the straight lines may all be horizontal and vertical, or may not all be horizontal and vertical.
  • the positions where the weights change constitute a curve (curve segment), or when the weight matrix has multiple weights, the positions with the same weights in the transition area. Constructs a curve (curve segment).
  • the encoder may adopt a method similar to GPM or AWP to realize the determination of the weight matrix. Specifically, if GPM or AWP is used in the same codec standard or codec, this method can be used to determine the weight matrix, so that the same logic in the multiplexing part can be achieved. If AWP is used in AVS3 inter-frame prediction, the AWP method can be used to determine the weight matrix in AVS3. Of course, different methods from GPM or AWP in the same codec standard or codec can also be used, such as using different mode numbers, or different transition region algorithms, or using different parameters.
  • AWP mode is used in inter-frame prediction in AVS3, and there are 56 weight matrices of AWP.
  • 64 kinds of weight matrices are used in intra-frame prediction, of which 56 are the same as the weight matrix of AWP.
  • the first 56 weight matrices are the same as AWP, and each of the remaining 8 weight matrices has only one weight value, and the weight values are 1, 2, ..., 7, 8 respectively.
  • the total weight value is 16, that is, a weight value of 1 means 1:15 weighting, and a weight value of 2 means 2:14 weighting. In this way, when the mode numbers of the 64 weight matrices are binarized, 6-bit codewords can be used.
  • inter-frame prediction exploits the correlation in the temporal domain, it uses the reconstructed image in the reference frame as the reference block.
  • Intra-frame prediction utilizes the correlation in the spatial domain, and it uses the reconstructed pixels around the current block as reference pixels. In the airspace, the closer the distance, the stronger the correlation, and the farther the distance, the worse the correlation. Therefore, if a certain weight matrix makes the obtained pixel position used by a prediction block far away from the reference pixel, then this part may not be able to make a more suitable prediction value than the existing technology, so such a weight matrix may not be used, but Can be used in inter prediction.
  • the AWP of AVS3 has 56 weight matrix derivation modes
  • the GPM of VVC has 64 weight matrix derivation modes.
  • the encoder when the encoder determines the predicted value of the current block based on the first prediction mode, the second prediction mode and the weight matrix, the encoder can determine the first predicted value of the current block according to the first prediction mode; The second prediction mode determines the second prediction value of the current block; then the weighted average calculation can be performed on the first prediction value and the second prediction value by using the weight matrix, and finally the prediction value of the current block is obtained.
  • the encoder may determine two different prediction blocks (the first prediction value and the second prediction value) for the current block respectively, determine a weight matrix, and then use the two different prediction blocks according to The weight matrices are combined to obtain a new prediction block.
  • the encoder may first determine a prediction block (first prediction value) according to the first prediction mode, determine a prediction block (second prediction value) according to the second prediction mode, and determine a weight matrix, A new prediction block is obtained by combining two different prediction blocks according to the weight matrix.
  • two different prediction blocks are determined by two different prediction modes respectively, that is, the first prediction value is determined by the first prediction mode, and the first prediction value is determined by the first prediction mode.
  • the second prediction mode determines the second prediction value.
  • the intra prediction mode and the inter prediction mode are respectively used to determine two different prediction modes for the current block.
  • the prediction block determine the weight matrix of the current block, and combine two different prediction blocks according to the weight matrix to obtain a new prediction block.
  • the first prediction mode is an intra-frame prediction mode
  • a prediction block is determined according to the intra-frame prediction mode.
  • the second prediction mode is determined to be an inter prediction mode, and a prediction block is determined according to the inter prediction mode.
  • the current block is determined by using the intra-frame prediction and the intra-frame block copy mode respectively to determine two differences.
  • prediction block Determine the weight matrix of the current block, and combine two different prediction blocks according to the weight matrix to obtain a new prediction block.
  • the first prediction mode when performing prediction processing on the current block, may be an intra-frame prediction mode, and a prediction block is determined according to the intra-frame prediction mode.
  • the second prediction mode is determined to be an intra-block copy mode, and a prediction block is determined according to the intra-block copy mode. Determine the weight matrix of the current block, and combine two different prediction blocks according to the weight matrix to obtain a new prediction block.
  • the first prediction mode can be used to determine the first prediction block of the current block
  • the second prediction mode can be used to determine the second prediction block of the current block
  • the weight matrix can be used to determine the first prediction block of the current block.
  • a prediction block and a second prediction block are combined, and a new prediction block is finally obtained. That is, based on the first prediction mode and the second prediction mode, two different prediction blocks may be determined for the current block, a weight matrix may be determined, and a new prediction block may be obtained by combining the two different prediction blocks according to the weight matrix.
  • predMatrix new [i][j] is the point ( i, j) new predicted value
  • predMatrix intra [i][j] is the intra frame predicted value of point (i, j) in the current block
  • predMatrix inter is the frame of point (i, j) in the current block
  • weightMatrix is the weight matrix of the current block
  • weightMatrix[i][j] is the weight value of the point (i, j) in the current block:
  • the encoder may encode the intra prediction mode first and then encode the inter prediction mode.
  • the inter-frame prediction mode is encoded first and then the intra-frame prediction mode is encoded.
  • the intra prediction block is the first prediction block
  • the inter prediction block is the second prediction block:
  • weightMatrix[i][j] can be fractions or decimals, in order to avoid increasing the computational complexity of fractions or decimals, weightMatrix[i][j] can be enlarged by 2 n , that is, rewritten as:
  • the intra prediction block is the second prediction block and the inter prediction block is the first prediction block for the weight matrix:
  • weightMatrix[i][j] can be fractions or decimals, in order to avoid increasing the computational complexity of fractions or decimals, weightMatrix[i][j] can be enlarged by 2 n , that is, rewritten as:
  • the encoder may encode the intra prediction mode first and then encode the inter prediction mode.
  • the inter-frame prediction mode is encoded first and then the intra-frame prediction mode is encoded.
  • a flag is then encoded to indicate which prediction block is the first prediction block, wherein the flag may also be encoded first. Specifically, if this flag is 0, it means that the intra-frame prediction block is the first prediction block predMatrix 0 [i][j], and the inter-frame prediction block is the second prediction block predMatrix 1 [i][j]:
  • weightMatrix[i][j] can be fractions or decimals, in order to avoid increasing the computational complexity of fractions or decimals, weightMatrix[i][j] can be enlarged by 2 n , that is, rewritten as:
  • the encoder may also first encode a flag to indicate whether to encode the intra-frame prediction mode first and then encode the inter-frame prediction mode, or to encode the inter-frame prediction mode first and then encode the intra-frame prediction mode.
  • the prediction block of the prediction mode is regarded as the first prediction block, and the prediction block of the post-coded prediction mode is regarded as the second prediction block.
  • the method for predicting by the encoder may further include the following steps:
  • Step 401 Determine the prediction mode parameter of the current block.
  • Step 402 When the prediction mode parameter indicates that the current block uses different prediction modes to determine the prediction value of the current block, determine the first prediction mode of the current block, and determine the first prediction value of the current block according to the first prediction mode.
  • Step 403 Determine the second prediction mode of the current block, and determine the second prediction value of the current block according to the second prediction mode.
  • Step 404 Determine the predicted value of the current block based on the first predicted value and the second predicted value.
  • the prediction mode encoded first is used as the first prediction mode
  • the prediction block of the first encoded prediction mode is used as the first prediction mode.
  • the post-coded prediction mode is used as the second prediction mode
  • the prediction block of the post-coded prediction mode is used as the second prediction block (ie, the second prediction value).
  • the encoder can directly use the prediction block of the prediction mode encoded first as the first prediction block, and the prediction block of the prediction mode encoded later as the second prediction block.
  • the decoding end may perform decoding according to the rules corresponding to the encoding end.
  • the prediction method proposed in this application needs to use two different prediction modes and a weight matrix to determine the prediction value of the current block, therefore, in order to reduce overhead, in this application,
  • the number of bits can be reduced by restricting the two prediction modes of the current block, and at the same time, the number of bits can also be reduced by restricting the derivation mode of the weight matrix of the current block.
  • the first 33 prediction modes of AVS3 since the first 33 prediction modes of AVS3 have covered almost the entire angle range, only using the first 33 prediction modes in AVS3 can ensure better performance, and only needs to be used in decoding. It can be adjusted to not use EIPM. Further, the number of intra prediction modes that may be used by the current block can be further compressed and limited, and finally only 5 bits are used for decoding, thereby further reducing overhead and achieving better performance.
  • the overhead of the weight matrix derivation mode can be reduced by reducing the number of weight matrix derivation modes that may be used by the current block. For example, in AVS3, if 56 weight matrix derivation modes are used, at most 6 bits are required to decode one weight matrix derivation mode, while if only 3 two weight matrix derivation modes are used, at most 5 bits are required to decode one Weight matrix export mode. Further, it is possible to further compress and limit the number of weight matrix derivation modes that may be used by the current block. For example, if only 16 weight matrix derivation modes are used, only 4 bits are used for decoding, thereby further reducing the overhead. to achieve better performance.
  • a prediction block with a larger size parameter such as a prediction block with a size of 64 ⁇ 64 or 32 ⁇ 32
  • all weight matrix derivation modes can be used to determine the weight matrix derivation mode of the current block
  • the partial weight matrix derivation mode can be used to determine the weight matrix derivation mode of the current block, that is, the number of weight matrix derivation modes that the current block may use.
  • a size threshold such as a first size threshold
  • the number of weight matrix derivation modes that can be selected by the current block can be limited.
  • the limitation on the number of the weight matrix derivation modes may be implemented by limiting the index number of the weight matrix derivation mode in the current block.
  • the weight matrix derivation mode may be determined according to the first mode index range; The index number is restricted.
  • the first mode index range may include a first lower threshold and a first upper threshold, and the index numbers of each mode in the weight matrix may be compared with the first lower threshold and the first upper threshold, respectively. If the index of the mode is derived from the weight matrix If the serial number is less than the first lower threshold, the index serial number of the weight matrix export mode can be set to the first lower threshold; if the index serial number of the weight matrix export mode is greater than the first upper threshold, then the index serial number of the weight matrix export mode can be set to The first upper limit threshold.
  • the index number of the weight matrix derivation mode of the current block can be limited by the first mode index range, so as to complete the limitation on the number of the weight matrix derivation modes.
  • the first mode index range can be 0-32, that is, the index number of the weight matrix derived mode can be limited within 0-32 through the first mode index range, so the current block can use the first 33 weights
  • the matrix derivation mode is used to determine the weight matrix derivation mode of the current block.
  • the overhead of decoding the two prediction modes can be reduced by reducing the number of intra prediction modes that may be used by the current block. For example, in AVS3, if 66 intra-prediction modes are used, up to 7 bits are needed to decode an intra-prediction mode, while if only 33 intra-prediction modes are used, and no PCM mode is used, only up to 6 bits are needed bits to decode an intra prediction mode.
  • a prediction block with a larger size parameter such as a prediction block with a size of 64 ⁇ 64 or 32 ⁇ 32
  • all intra prediction modes can be used to determine the intra prediction mode of the current block
  • a prediction block with a smaller size parameter such as a prediction block with a size of 8 ⁇ 8
  • partial intra prediction modes can be used to determine the intra prediction mode of the current block, that is, the number of intra prediction modes that the current block may use.
  • Limitation because for prediction blocks with small size parameters, the effect of small angle differences is not obvious.
  • a size threshold such as a second size threshold
  • the number of intra prediction modes that can be selected by the current block can be limited.
  • the restriction on the number of intra prediction modes may be implemented by restricting the index number of the intra prediction mode of the current block.
  • the intra prediction mode may be determined according to the second mode index range;
  • the index number is restricted.
  • the second mode index range may include a second lower threshold and a second upper threshold, and may first determine the index number of the intra prediction mode; then set the index number to be greater than the second lower threshold; and set the index number to be less than the second upper threshold.
  • the index number of the intra prediction mode of the current block may be limited by the second mode index range, thereby completing the restriction on the number of intra prediction modes.
  • the second mode index range can be 0-32, that is, the index number of the first prediction mode can be limited within 0-32 through the second mode index range, so the current block can use the first 33 predictions mode to determine the intra prediction mode.
  • first size threshold and the second size threshold may be the same or different; the first mode index range and the second mode index range may be the same or different.
  • the overhead of encoding the inter-frame prediction mode in the present application can be reduced by reducing the used inter-frame prediction mode.
  • this application it is possible to choose to use only skip or merge or direct mode instead of the normal inter mode which requires encoding mvd.
  • the restriction process when limiting the number of inter-frame prediction modes, the restriction process may be performed directly on the number of inter-frame prediction modes of all prediction blocks, and the size of the current block may also be referred to. parameter to use different limits for current blocks of different sizes.
  • the candidate inter prediction mode can be used to determine the inter prediction mode of the current block, wherein , the candidate inter prediction mode can include the common inter mode that needs to encode mvd, and for prediction blocks with smaller size parameters, such as 8 ⁇ 8 prediction blocks, other inter prediction modes other than the candidate inter prediction mode can be selected for
  • the determination of the inter-frame prediction mode of the current block that is, the number of possible inter-frame prediction modes used by the current block is limited. This is because for the prediction block with a smaller size parameter, the influence caused by the slight angle difference is not enough. Not obvious.
  • a size threshold such as a third size threshold
  • the candidate inter prediction mode needs to limit the selection of the current block. the inter prediction mode.
  • the third size threshold and the second size threshold may be the same or different.
  • the prediction mode used by the current block after the prediction mode used by the current block is determined, information such as the prediction mode of the current block needs to be saved for reference of subsequent codec blocks, wherein the subsequent codec blocks include but It is not limited to the prediction block adjacent to the current block in the spatial domain and the prediction block in which the information of the current block is used in the temporal domain.
  • the preservation of the prediction modes of the current block may be performed according to various methods.
  • the current block uses two different prediction modes, then when using the current block to predict other blocks to be predicted, the first prediction mode and/or the second prediction mode are used. Set to the prediction mode of the current block.
  • the current block uses two different prediction modes, the inter-frame prediction mode and the intra-frame prediction mode, then a part of the minimum units of the current block choose to save the intra-frame prediction mode, and a part of the minimum units choose to save the frame.
  • inter-prediction mode Specifically, methods similar to GPM or AWP can be used. Similar logic to this approach can be used if either GPM or AWP is used in the same codec standard or codec. In this way, the same logic can be reused.
  • AWP3 inter-frame prediction uses AWP, then in AVS3, two different prediction modes can be saved using a logic similar to that used by AWP to save two different motion information, that is, if the position corresponding to a minimum unit only uses intra-frame The prediction block determined by the prediction mode, then the smallest unit saves the intra prediction mode; if the position corresponding to a smallest unit only uses the prediction block determined by the inter prediction mode, then the smallest unit saves the inter prediction mode; if a The position corresponding to the minimum unit uses both the prediction block determined by the intra prediction mode and the prediction block determined by the inter prediction mode, then one of the intra prediction mode and the inter prediction mode can be selected for saving.
  • the current block uses two different prediction modes, the inter prediction mode and the intra prediction mode, then only the same prediction mode can be selected for all the minimum units corresponding to the entire current block. to save.
  • the intra-frame prediction mode and the inter-frame motion information are stored for reference to other blocks, the intra-frame prediction mode and the inter-frame motion information are encoded differently. They are different. Therefore, selecting whether to use the intra-frame prediction mode or the inter-frame prediction mode for each minimum unit brings a certain complexity.
  • AVS3 there are currently 66 modes of intra-frame prediction in AVS3. Before each current block is predicted, 2 most probable modes (MPM) will be constructed. If the current block uses MPM, then from 2 Choose one of the MPMs, otherwise you need to choose a prediction mode among the 64 modes.
  • MPM most probable modes
  • the prediction value of the motion vector motion vector prediction/predictor, MVP
  • all the weight matrix derivation modes of the current block all select the intra prediction mode.
  • all the weight matrix derivation modes of the current block all select the inter prediction mode.
  • all minimum units of certain weight matrix derivation modes of the current block select the intra prediction mode
  • all minimum units of some weight matrix derivation modes select the inter prediction mode. That is, according to the weight matrix derivation mode, it is determined whether all the smallest units of the current block save the intra-frame prediction mode or all save the inter-frame prediction mode.
  • the mode number calculation of the mode is derived using the weight matrix of the current block.
  • the mode number look-up table of the mode is derived using the weight matrix of the current block. For example, if the same weight matrix derivation mode as AWP is used, if the mode number of the weight matrix derivation mode corresponds to 0, select the intra prediction mode, and if the mode number of the weight matrix derivation mode corresponds to 1, select the inter frame forecast mode.
  • the prediction mode stored in a minimum unit of the current block is the intra prediction mode, then this minimum unit is marked as using intra prediction at the same time. If the prediction mode stored in a minimum unit of the current block is an inter prediction mode, then this minimum unit is also marked as using inter prediction.
  • the effect of the superposition of the prediction method proposed in this application and some improved prediction modes may not be obvious.
  • Mutually exclusive relationship That is to say, if the prediction method proposed in the present application is used for the current block, it can be determined that the mutually exclusive prediction mode is not used, so it is not necessary to transmit the flag of whether the mutually exclusive prediction mode is used in the code stream.
  • the current block uses the mutually exclusive prediction mode, it can be determined that the current block does not use the prediction method proposed by the present application, so there is no need to transmit the flag of whether the prediction method proposed by the present application is used in the code stream. Thereby, the transmission of unnecessary flags in the code stream is saved, and the overall compression performance is better.
  • the prediction method proposed in this application is mutually exclusive with IPF.
  • the prediction method proposed in this application is mutually exclusive with a derivation tree (derived tree, DT).
  • DT derivation tree
  • the DT technology can divide the current CU into rectangular PUs.
  • the prediction method proposed in this application is mutually exclusive with bidirectional prediction.
  • the prediction method proposed in this application is mutually exclusive with affine prediction.
  • the prediction method proposed in this application is mutually exclusive with this prediction mode, then if the current block uses the prediction method proposed in this application, this mutually exclusive prediction mode will not be used.
  • the inter-frame prediction of the prediction method proposed in this application can be set to use bidirectional prediction, but BIO and DMVR are not used.
  • An embodiment of the present application provides a prediction method.
  • the encoder determines a prediction mode parameter of a current block; when the prediction mode parameter indicates that the current block uses different prediction modes to determine the prediction value of the current block, the first prediction mode and the second prediction mode of the current block are determined.
  • Prediction mode wherein, the first prediction mode and the second prediction mode are respectively any two modes in the following multiple prediction modes: intra prediction mode, inter prediction mode, intra block copy mode, palette mode, string prediction mode; based on the first prediction mode and the second prediction mode, determine the prediction value of the current block.
  • the codec may determine two different prediction blocks of the current block by using two different prediction modes, and then may combine the two different prediction blocks according to the weight matrix, and finally Obtaining a more complex prediction block improves the prediction accuracy, that is to say, the prediction method proposed in the present application can improve the prediction quality and the compression performance.
  • FIG. 18 is a schematic diagram of the composition and structure of the encoder proposed by the embodiment of the present application.
  • the encoder 300 proposed by the embodiment of the present application may include the first A determination section 301,
  • the first determining part 301 is configured to determine the prediction mode parameter of the current block; when the prediction mode parameter indicates that the current block uses different prediction modes to determine the prediction value of the current block, determine the first prediction value of the current block.
  • FIG. 19 is a second schematic diagram of the composition and structure of the encoder proposed by the embodiment of the present application.
  • the encoder 300 proposed by the embodiment of the present application may further include a first processor 302, and store the executable of the first processor 302.
  • the above-mentioned first processor 302 is configured to determine the prediction mode parameter of the current block; when the prediction mode parameter indicates that the current block uses different prediction modes to determine the prediction of the current block value, determine the first prediction mode and the second prediction mode of the current block; wherein, the first prediction mode and the second prediction mode are respectively any two of the following multiple prediction modes: prediction mode, inter prediction mode, intra block copy mode, palette mode, string prediction mode; based on the first prediction mode and the second prediction mode, the prediction value of the current block is determined.
  • FIG. 20 is a first schematic diagram of the composition and structure of the decoder proposed by the embodiment of the present application.
  • the decoder 400 proposed by the embodiment of the present application may include a decoding part 401, a second determining part 402,
  • the decoding part 401 is configured to parse the code stream
  • the second determination part 402 is configured to determine the prediction mode parameter of the current block; when the prediction mode parameter indicates that the current block uses different prediction modes to determine the prediction value of the current block, determine the first prediction value of the current block.
  • FIG. 21 is a second schematic diagram of the composition and structure of the decoder proposed by the embodiment of the present application.
  • the decoder 400 proposed by the embodiment of the present application may further include a second processor 403 and store the executable of the second processor 403 A second memory 404 for instructions, a second communication interface 405 , and a second bus 406 for connecting the second processor 403 , the second memory 404 , and the second communication interface 405 .
  • the above-mentioned second processor 403 is configured to parse the code stream and determine the prediction mode parameter of the current block; when the prediction mode parameter indicates that the current block uses different prediction modes, determine the prediction mode parameter of the current block.
  • the first prediction mode and the second prediction mode of the current block are determined; wherein, the first prediction mode and the second prediction mode are respectively any two of the following multiple prediction modes Mode: intra prediction mode, inter prediction mode, intra block copy mode, palette mode, string prediction mode; based on the first prediction mode and the second prediction mode, determine the prediction value of the current block .
  • each functional module in this embodiment may be integrated into one processing unit, or each unit may exist physically alone, or two or more units may be integrated into one unit.
  • the above-mentioned integrated units can be implemented in the form of hardware, or can be implemented in the form of software function modules.
  • the integrated unit is implemented in the form of software function modules 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 correct. Part of the contribution made by the prior art 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 make a computer device (which can be a personal A computer, a server, or a network device, etc.) or a processor (processor) executes all or part of the steps of the method in this embodiment.
  • the aforementioned storage medium includes: 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 codec, the decoder parses the code stream, and determines the prediction mode parameter of the current block; when the prediction mode parameter indicates that the current block uses different prediction modes to determine the prediction value of the current block, determines the first block of the current block.
  • a prediction mode and a second prediction mode wherein, the first prediction mode and the second prediction mode are any two modes of the following multiple prediction modes: intra prediction mode, inter prediction mode, intra block copy mode, palette mode, string prediction mode; based on the first prediction mode and the second prediction mode, determine the prediction value of the current block.
  • the encoder determines the prediction mode parameter of the current block; when the prediction mode parameter indicates that the current block uses different prediction modes to determine the prediction value of the current block, determines the first prediction mode and the second prediction mode of the current block; based on the first prediction mode and the first prediction mode The second prediction mode, which determines the prediction value of the current block. That is to say, in the embodiment of the present application, the codec can determine two different prediction blocks of the current block by using two different prediction modes, and then can combine the two different prediction blocks according to the weight matrix, and finally Obtaining a more complex prediction block improves the prediction accuracy, that is to say, the prediction method proposed in the present application can improve the prediction quality and the compression performance.
  • Embodiments of the present application provide a computer-readable storage medium and a computer-readable storage medium, on which a program is stored, and when the program is executed by a processor, the method described in the foregoing embodiments is implemented.
  • a program instruction corresponding to a prediction method in this embodiment may be stored on a storage medium such as an optical disc, a hard disk, a U disk, etc.
  • a storage medium such as an optical disc, a hard disk, a U disk, etc.
  • a first prediction mode and a second prediction mode of the current block are determined; wherein the first prediction mode and The second prediction modes are respectively any two of the following multiple prediction modes: intra prediction mode, inter prediction mode, intra block copy mode, palette mode, and string prediction mode;
  • a prediction value of the current block is determined.
  • a first prediction mode and a second prediction mode of the current block are determined; wherein the first prediction mode and The second prediction modes are respectively any two of the following multiple prediction modes: intra prediction mode, inter prediction mode, intra block copy mode, palette mode, and string prediction mode;
  • a prediction value of the current block is determined.
  • the embodiments of the present application may be provided as a method, a system, or a computer program product. Accordingly, the application may take the form of a hardware embodiment, a software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the present application may take the form of a computer program product embodied on one or more computer-usable storage media having computer-usable program code embodied therein, including but not limited to disk storage, optical storage, and the like.
  • These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory result in an article of manufacture comprising instruction means, the instructions
  • An apparatus implements the functions specified in a flow or flows of the implementation flow diagram and/or a block or blocks of the block diagram.
  • These computer program instructions can also be loaded on a computer or other programmable data processing device to cause a series of operational steps to be performed on the computer or other programmable device to produce a computer-implemented process such that The instructions provide steps for implementing the functions specified in the flow or blocks of the implementing flow diagram and/or the block or blocks of the block diagram.
  • the embodiments of the present application provide a prediction method, an encoder, a decoder, and a storage medium.
  • the decoder parses a code stream and determines a prediction mode parameter of a current block; when the prediction mode parameter indicates that the current block uses different prediction modes to determine the prediction of the current block value, determine the first prediction mode and the second prediction mode of the current block; wherein, the first prediction mode and the second prediction mode are any two of the following multiple prediction modes: intra prediction mode, inter prediction mode mode, intra-block copy mode, palette mode, string prediction mode; based on the first prediction mode and the second prediction mode, the prediction value of the current block is determined.
  • the encoder determines the prediction mode parameter of the current block; when the prediction mode parameter indicates that the current block uses different prediction modes to determine the prediction value of the current block, determines the first prediction mode and the second prediction mode of the current block; based on the first prediction mode and the first prediction mode
  • the second prediction mode determines the prediction value of the current block. That is to say, in the embodiment of the present application, the codec may determine two different prediction blocks of the current block by using two different prediction modes, and then may combine the two different prediction blocks according to the weight matrix, and finally Obtaining a more complex prediction block improves the prediction accuracy, that is to say, the prediction method proposed in the present application can improve the prediction quality and the compression performance.

Abstract

本申请实施例公开了一种预测方法、编码器、解码器以及存储介质,解码器解析码流,确定当前块的预测模式参数;当预测模式参数指示当前块使用不同预测模式确定当前块的预测值时,确定当前块的第一预测模式和第二预测模式;其中,第一预测模式和第二预测模式分别为以下多个预测模式中的任意两个模式:帧内预测模式、帧间预测模式、帧内块拷贝模式,调色板模式,串预测模式;基于第一预测模式和第二预测模式,确定当前块的预测值。编码器确定当前块的预测模式参数;当预测模式参数指示当前块使用不同预测模式确定当前块的预测值时,确定当前块的第一预测模式和第二预测模式;基于第一预测模式和第二预测模式,确定当前块的预测值。

Description

预测方法、编码器、解码器以及存储介质 技术领域
本申请实施例涉及图像处理技术领域,尤其涉及一种预测方法、编码器、解码器以及存储介质。
背景技术
目前的帧内预测模式仅仅能处理简单的纹理的预测。对于复杂的纹理,处理的复杂度较高。而帧间预测有时不能从参考帧中找到匹配度很高的参考块,或者只能找到一部分匹配度很高的参考块,因此无法达到很好的帧间预测效果。
针对上述问题,在多功能视频编码(Versatile Video Coding,VVC)中,提出了基于当前块的一个帧间预测的预测块和一个帧内预测的预测块进行预测处理的联合帧内帧间预测(combined inter and intra prediction,CIIP)技术。
虽然CIIP技术可以通过帧内预测块和帧间预测块的加权平均提升预测质量,但是如果帧内预测块或帧间预测块存在有一部分预测质量不好的情况,那么最终仍然无法获得较好的预测效果。
发明内容
本申请实施例提供一种预测方法、编码器、解码器以及存储介质,能够提升预测质量,提高压缩性能。
本申请实施例的技术方案可以如下实现:
第一方面,本申请实施例提供了一种预测方法,应用于解码器,所述方法包括:
解析码流,确定当前块的预测模式参数;
当所述预测模式参数指示所述当前块使用不同预测模式确定所述当前块的预测值时,确定所述当前块的第一预测模式和第二预测模式;其中,所述第一预测模式和所述第二预测模式分别为以下多个预测模式中的任意两个模式:帧内预测模式、帧间预测模式、帧内块拷贝模式,调色板模式,串预测模式;
基于所述第一预测模式和所述第二预测模式,确定所述当前块的预测值。
第二方面,本申请实施例提供了一种预测方法,应用于编码器,所述方法包括:
确定当前块的预测模式参数;
当所述预测模式参数指示所述当前块使用不同预测模式确定所述当前块的预测值时,确定所述当前块的第一预测模式和第二预测模式;其中,所述第一预测模式和所述第二预测模式分别为以下多个预测模式中的任意两个模式:帧内预测模式、帧间预测模式、帧内块拷贝模式,调色板模式,串预测模式;
基于所述第一预测模式和所述第二预测模式,确定所述当前块的预测值。
第三方面,本申请实施例提供了一种编码器,所述编码器包括:第一确定部分,
所述第一确定部分,配置为确定当前块的预测模式参数;当所述预测模式参数指示所述当前块使用不同预测模式确定所述当前块的预测值时,确定所述当前块的第一预测模式和第二预测模式;其中,所述第一预测模式和所述第二预测模式分别为以下多个预测模式中的任意两个模式:帧内预测模式、帧间预测模式、帧内块拷贝模式,调色板模式,串预测模式;基于所述第一预测模式和所述第二预测模式,确定所述当前块的预测值。
第四方面,本申请实施例提供了一种编码器,所述编码器包括第一处理器、存储有所述第一处理器可执行指令的第一存储器,当所述指令被执行时,所述第一处理器执行时实现如上所述的预测方法。
第五方面,本申请实施例提供了一种解码器,所述解码器包括:解码部分,第二确定部分
所述解码部分,配置为解析码流;
所述第二确定部分,配置为确定当前块的预测模式参数;当所述预测模式参数指示所述当前块使用不同预测模式确定所述当前块的预测值时,确定所述当前块的第一预测模式和第二预测模式;其中,所述第一预测模式和所述第二预测模式分别为以下多个预测模式中的任意两个模式:帧内预测模式、帧间预测模式、帧内块拷贝模式,调色板模式,串预测模式;基于所述第一预测模式和所述第二预测模式,确定所述当前块的预测值。
第六方面,本申请实施例提供了一种解码器,所述解码器包括第二处理器、存储有所述第二处理器可执行指令的第二存储器,当所述指令被执行时,所述第二处理器执行时实现如上所述的预测方法。
第七方面,本申请实施例提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被第一处理器和第二处理器执行时,实现如上所述的预测方法。
本申请实施例提供了一种预测方法、编码器、解码器以及存储介质,解码器解析码流,确定当前块的预测模式参数;当预测模式参数指示当前块使用不同预测模式确定当前块的预测值时,确定当前块的第一预测模式和第二预测模式;其中,第一预测模式和第二预测模式分别为以下多个预测模式中的任意两个模式:帧内预测模式、帧间预测模式、帧内块拷贝模式,调色板模式,串预测模式;基于第一预测模式和第二预测模式,确定当前块的预测值。编码器确定当前块的预测模式参数;当预测模式参数指示当前块使用不同预测模式确定当前块的预测值时,确定当前块的第一预测模式和第二预测模式;基于第一预测模式和第二预测模式,确定当前块的预测值。也就是说,在本申请的实施例中,编解码器可以通过两种不同的预测模式确定当前块的两个不同的预测块,然后可以按照权重矩阵对两个不同的预测块进行组合,最终得到更复杂的预测块,提高了预测的准确性,也就是说,本申请提出的预测方法,能够提升预测质量,提高压缩性能。
附图说明
图1为权重分配示意图一;
图2为权重分配示意图二;
图3为帧内预测的示意图一;
图4为帧内预测的示意图二;
图5A-5I为帧内预测的示意图三;
图6为帧内预测模式的示意图一;
图7为帧内预测模式的示意图二;
图8为帧内预测模式的示意图三;
图9为当前块的位置示意图;
图10为常见的预测方法的示意图;
图11为视频编码系统的组成框图;
图12为视频解码系统的组成框图;
图13为预测方法的实现流程示意图一;
图14为预测方法的实现流程示意图二;
图15为预测方法的示意图;
图16为预测方法的实现流程示意图三;
图17为预测方法的实现流程示意图四;
图18为本申请实施例提出的编码器的组成结构示意图一;
图19为本申请实施例提出的编码器的组成结构示意图二;
图20为本申请实施例提出的解码器的组成结构示意图一;
图21为本申请实施例提出的解码器的组成结构示意图二。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅仅用于解释相关申请,而非对该申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关申请相关的部分。
目前,通用的视频编解码标准基于都采用基于块的混合编码框架。视频图像中的每一帧被分割成相同大小(比如128×128,64×64等)的正方形的最大编码单元(Largest Coding Unit,LCU),每个最大编码单元还可以根据规则划分成矩形的编码单元(Coding Unit,CU);而且编码单元可能还会划分成更小的预测单元(Prediction Unit,PU)。具体地,混合编码框架可以包括有预测、变换(Transform)、量化(Quantization)、熵编码(EntropyCoding)、环路滤波(In Loop Filter)等模块;其中,预测模块可以包括帧内预测(intraPrediction)和帧间预测(interPrediction),帧间预测可以包括运动估计(motion estimation)和运动补偿(motion compensation)。由于视频图像的一个帧内相邻像素之间存在很强的相关性,在视频编解码技术中使用帧内预测模式能够消除相邻像素之间的空间冗余;但是由于视频图像中的相邻帧之间也存在着很强的相似性,在视频编解码技术中使用帧间预测模式消除相邻帧之间的时间冗余,从而能够提高编解码效率。
视频编解码器的基本流程如下:在编码端,将一帧图像划分成块,对当前块使用帧内预测或帧间预测产生当前块的预测块,当前块的原始块减去预测块得到残差块,对残差块进行变换、量化得到量化系数矩阵,对量化系数矩阵进行熵编码输出到码流中。在解码端,对当前块使用帧内预测或帧间预测产生当前块的预测块,另一方面解析码流得到量化系数矩阵,对量化系数矩阵进行反量化、反变换得到残差块,将预测块和残差块相加得到重建块。重建块组成重建图像,基于图像或基于块对重建图像进行环路滤波得到解码图像。编码端同样需要和解码端类似的操作获得解码图像。解码图像可以为后续的帧作为帧间预测的参考帧。编码端确定的块划分信息,预测、变换、量化、熵编码、环路滤波等模式信息或者参数信息如果有必要需要在输出到码流中。解码端通过解析及根据已有信息进行分析确定与编码端相同的块划分信息,预测、变换、量化、熵编码、环路滤波等模式信息或者参数信息,从而保证编码端获得的解码图像和解码端获得的解码图像相同。编码端获得的解码图像通常也叫做重建图像。在预测时可以将当前块划分成预测单元,在变换时可以将当前块划分成变换单元,预测单元和变换单元的划分可以不同。上述是基于块的混合编码框架下的视频编解码器的基本流程,随着技术的发展,该框架或流程的一些模块或步骤可能会被优化,本申请实施例适用于该基于块的混合编码框架下的视频编解码器的基本流程,但不限于该框架及流程。
当前块(current block)可以是当前编码单元(CU)或当前预测单元(PU)等。
帧间预测使用已解码或重建的图像或者叫参考帧的信息对当前块进行预测。帧间预测使用运动信息从参考帧中找到参考块,根据参考块生成预测块。运动信息包括参考帧所在的参考帧列表,参考帧索引,以及运动矢量。运动矢量可以是整像素的或者是分像素的,如果运动矢量是分像素的,那么需要在参考帧中使用插值滤波做出所需的分像素的块,这里把根据运动矢量找到的参考帧中的整像素或者分像素的块叫参考块。有的技术会直接把参考块作为预测块,有的技术会在参考块的基础上再处理生成预测块。在参考块的基础上再处理生成预测块也可以理解为把参考块作为预测块然后再在预测块的基础上处理生成新的预测块。
目前正在制定中的多功能视频编码(Versatile Video Coding,VVC)视频编解码标准中,有一个叫做几何划分预测模式(GeometricpartitioningMode,GPM)的帧间预测模式。目前正在制定中的视频编解码标准(Audio Video coding Standard,AVS)视频编解码标准中,有一个叫做角度加权预测模式(Angular Weightedprediction,AWP)的帧间预测模式。这两种模式虽然名称不同、具体的实现形式不同、但原理上有共通之处。
需要说明的是,传统的单向预测只是查找一个与当前块大小相同的参考块,而传统的双向预测使用两个与当前块大小相同的参考块,且预测块内每个点的像素值为两个参考块对应位置的平均值,即每一个参考块的所有点都占50%的比例。双向加权预测使得两个参考块的比例可以不同,如第一个参考块中所有点都占75%的比例,第二个参考块中所有点都占25%的比例。但同一个参考块中的所有点的比例都相同。其他一些优化方式比如采用解码端运动矢量修正(Decoder sideMotion Vector Refinement,DMVR)技术、双向光流(Bi-directional Optical Flow,BIO)等会使参考像素或预测像素产生一些变化,而且GPM或AWP也使用两个与当前块大小相同的参考块,但某些像素位置100%使用第一个参考块对应位置的像素值,某些像素位置100%使用第二个参考块对应位置的像素值,而在交界区 域,按一定比例使用这两个参考块对应位置的像素值。具体这些权重如何分配,由GPM或AWP的预测模式决定,或者也可以认为GPM或AWP使用两个与当前块大小不相同的参考块,即各取所需的一部分作为参考块。即将权重不为0的部分作为参考块,而将权重为0的部分剔除出来。
示例性地,图1为权重分配示意图一,如图1所示,其示出了本申请实施例提供的一种GPM在64×64的当前块上的多种划分模式的权重分配示意图,其中,GPM存在有64种划分模式。图2为权重分配示意图二,如图2所示,其示出了本申请实施例提供的一种AWP在64×64的当前块上的多种划分模式的权重分配示意图,其中,AWP存在有56种划分模式。无论是图2还是图3,每一种划分模式下,区域2表示第一个参考块对应位置的权重值为0%,区域1表示第一个参考块对应位置的权重值为100%,灰色区域则按颜色深浅的不同表示第一个参考块对应位置的权重值为大于0%且小于100%的某一个权重值,第二个参考块对应位置的权重值则为100%减去第一个参考块对应位置的权重值。
GPM和AWP的权重导出方法不同。GPM根据每种模式确定角度及偏移量,而后计算出每个模式的权重矩阵。AWP首先做出一维的权重的线,然后使用类似于帧内角度预测的方法将一维的权重的线铺满整个矩阵。
应理解,早期的编解码技术中只存在矩形的划分方式,无论是CU、PU还是变换单元(Transform Unit,TU)的划分。而GPM或AWP均在没有划分的情况下实现了预测的非矩形的划分效果。GPM和AWP使用了两个参考块的权重的蒙版(mask),即上述的权重图。这个蒙版确定了两个参考块在产生预测块时的权重,或者可以简单地理解为预测块的一部分位置来自于第一个参考块一部分位置来自于第二个参考块,而过渡区域(blending area)用两个参考块的对应位置加权得到,从而使过渡更平滑。GPM和AWP没有按划分线把当前块划分成两个CU或PU,于是在预测之后的残差的变换、量化、反变换、反量化等也都是将当前块作为一个整体来处理。
当前块所使用的运动信息可以保存下来。当前帧的后续编解码的块可以根据相邻的位置关系使用前面已编解码的块,如相邻块,的运动信息。这利用了空域上的相关性,所以这种已编解码的运动信息叫做空域上的运动信息。当前帧的每个块所使用的运动信息可以保存下来。后续编解码的帧可以根据参考关系使用前面已编解码的帧的运动信息。这利用了时域上的相关性,所以这种已编解码的帧的运动信息叫做时域上的运动信息。当前帧的每个块所使用的运动信息的存储方法通常将一个固定大小的矩阵,如4×4的矩阵,作为一个最小单元,每个最小单元单独存储一组运动信息。这样每编解码一个块,它的位置对应的那些最小单元就可以把这个块的运动信息存储下来。这样使用空域上的运动信息或时域上的运动信息时可以直接根据位置找到该位置对应的运动信息。如一个16×16的块使用了传统的单向预测,那么这个块对应的所有的4×4个最小单元都存储这个单向预测的运动信息。如果一个块使用了GPM或AWP,那么这个块对应的所有的最小单元会根据GPM或AWP的模式,第一个运动信息,和第二个运动信息以及每个最小单元的位置确定每个最小单元存储的运动信息。一种方法是如果一个最小单元对应的4×4的像素全部来自于第一个运动信息,那么这个最小单元存储第一个运动信息,如果一个最小单元对应的4×4的像素全部来自于第二个运动信息,那么这个最小单元存储第二个运动信息。如果一个最小单元对应的4×4的像素既来自于第一个运动信息又来自于第二个运动信息,那么AWP会选择其中一个运动信息进行存储;GPM的做法是如果两个运动信息指向不同的参考帧列表,那么把它们组合成双向运动信息存储,否则只存储第二个运动信息。
需要说明的是,在本申请的实施例中,GPM或AWP属于一种帧间预测技术,GPM或AWP需要在码流中传输一个GPM或AWP是否使用的标志(flag),该flag可以指示当前块是否使用GPM或AWP。如果使用GPM或AWP,编码器在码流中需要传输具体使用的模式,即GPM的64种划分模式之一,或AWP的56种划分模式之一;以及两个单向运动信息的索引值。也就是说,对于当前块而言,解码器通过解析码流可以得到GPM或AWP是否使用的信息,如果确定使用GPM或AWP,解码器可以解析出GPM或AWP的预测模式参数以及两个运动信息索引值,比如当前块可以划分为两个分区,那么可以解析出第一分区对应的第一索引值和第二分区对应的第二索引值。
具体来讲,对于GPM模式来说,如果使用GPM,那么码流中将会传输GPM下的预测模式参数,比如GPM具体的划分模式;通常情况下,GPM包括有64种划分模式。对于AWP模式来说,如果使用AWP,那么码流中将会传输AWP下的预测模式参数,比如AWP具体的划分模式;通常情况下,AWP包括有56种划分模式。
在帧间预测模式下,比如GPM和AWP均需要使用两个单向运动信息查找两个参考块。目前的实现方式是在编码器侧利用当前块之前已编码/已解码部分的相关信息构建一个单向运动信息候选列表,从单向运动信息候选列表中选择单向运动信息,将这两个单向运动信息在单向运动信息候选列表中的索引值(index)写入码流。在解码器侧采用同样的方式,即利用当前块之前已解码部分的相关信息构建一个单向运动信息候选列表,这个单向运动信息候选列表与编码器侧构建的候选列表一定是相同的。如此,从码流中解析出两个单向运动信息的索引值,然后从单向运动信息候选列表中查找出这两个单向运动信息即为当前块需要使用的两个单向运动信息。
也就是说,本申请所描述的单向运动信息可以包括:运动矢量信息,即(x,y)的值,以及对应的参考帧信息,即参考帧列表及在参考帧列表中的参考帧索引值。一种表示方式是记录两个参考帧列表的参考帧索引值,其中一个参考帧列表对应的参考帧索引值有效,如0,1,2等;另一个参考帧列表对应的参考帧索引值为无效,即-1。参考帧索引值有效的参考帧列表即为当前块的运动信息所使用的参考帧列表,根据参考帧索引值可以从该参考帧列表中查找到对应的参考帧。每个参考帧列表都有一个对应的运动矢量,有效的参考帧列表对应的运动矢量是有效的,无效的参考帧列表对应的运动矢量是无效的。解码器可以通过单向运动信息中的参考帧信息找到所需的参考帧,根据当前块的位置以及运动矢量即(x,y)的值可以在参考帧中找到参考块,进而确定出当前块的帧间预测值。
帧内预测方法是使用当前块周边已编解码的重建像素作为参考像素来对当前块进行预测。图3为帧内预测的示意图一,如图3所示,当前块的大小为4×4,当前块左边一行和上面一列的像素为当前块的参考像素,帧内预测使用这些参考像素对当前块进行预测。这些参考像素可能已经全部可得,即全部已经编解码。也可能有部分不可得,比如当前块是整帧的最左侧,那么当前块的左边的参考像素不可得。或者编解码当前块时,当前块左下方的部分还没有编解码,那么左下方的参考像素也不可得。对于参考像素不可得的情况,可以使用可得的参考像素或某些值或某 些方法进行填充,或者不进行填充。
图4为帧内预测的示意图二,如图4所示,多参考行帧内预测方法(Multiple reference line,MRL)可以使用更多的参考像素从而提高编解码效率,例如,使用4个参考行/列为当前块的参考像素。
进一步地,帧内预测有多种预测模式,图5A-5I为帧内预测的示意图三,如图5A-5I所示,H.264中对4×4的块进行帧内预测主要可以包括9种模式。其中,如图5A所示的模式0将当前块上面的像素按垂直方向复制到当前块作为预测值,如图5B所示的模式1将左边的参考像素按水平方向复制到当前块作为预测值,如图5C所示的模式2直流DC将A~D和I~L这8个点的平均值作为所有点的预测值,如图5D-5I所示的模式3~8分别按某一个角度将参考像素复制到当前块的对应位置,因为当前块某些位置不能正好对应到参考像素,可能需要使用参考像素的加权平均值,或者说是插值的参考像素的分像素。
除此之外,还有Planar模式等,而随着技术的发展以及块的扩大,角度预测模式也越来越多。图6为帧内预测模式的示意图一,如图6所示,如HEVC使用的帧内预测模式有Planar、DC和33种角度模式共35种预测模式。图7为帧内预测模式的示意图二,如图7所示,VVC使用的帧内模式有Planar、DC和65种角度模式共67种预测模式。图8为帧内预测模式的示意图三,如图8所示,AVS3使用DC、Planar、Bilinear和63种角度模式共66种预测模式。
另外还有一些技术对预测进行改进,如改进参考像素的分像素插值,对预测像素进行滤波等。如AVS3中的多组合帧内预测滤波(multipleintraprediction filter,MIPF)对不同的块大小,使用不同的滤波器产生预测值。对同一个块内的不同位置的像素,与参考像素较近的像素使用一种滤波器产生预测值,与参考像素较远的像素使用另一种滤波器产生预测值。对预测像素进行滤波的技术如AVS3中的帧内预测滤波(intraprediction filter,IPF),对预测值可以使用参考像素进行滤波。
需要说明的是,与帧间预测相比,帧内预测中同样可以保存帧内预测模式等信息以供后续编解码的块参考。具体地,当前帧的后续编解码的块可以根据相邻的位置关系使用前面已编解码的块,如相邻块,的帧内预测模式。色度块(编码单元)可以根据位置使用前面已编解码的亮度块(编码单元)的帧内预测模式。注意这里存储的这些信息是为后续编解码的块参考的,因为同一个块(编码单元)里面的编码模式信息是可以直接获得的,但是不同块(编码单元)里面的编码模式信息是不能直接获得的,所以需要存储下来。后续编解码的块根据位置去读取这些信息。当前帧的每个块所使用的帧内预测模式的存储方法通常将一个固定大小的矩阵,如4×4的矩阵,作为一个最小单元,每个最小单元单独存储一个帧内预测模式。这样每编解码一个块,它的位置对应的那些最小单元就可以把这个块的帧内预测模式存储下来。示例性的,例如,一个16×16的块使用了帧内预测模式5,那么这个块对应的所有的4×4个最小单元的帧内预测模式都存5。对YUV格式来说一般只存储亮度的帧内预测模式,包括既包含亮度分量又包括色度分量的块的亮度的帧内预测模式,和只包含亮度分量的块的亮度帧内预测模式。
虽然现在的帧内预测有DC、Planar、Bilinear等模式,但它们都只能处理简单的纹理的预测;即使角度模式越来越多,但它们的预测只能循着一个角度的直线来进行。可见,目前的帧内预测模式仅仅能处理简单的纹理的预测。对于复杂的纹理,在预测时则需要划分成更小的块,或者对更多的残差进行编码,或者造成较大的失真。而帧间预测有时不能从参考帧中找到匹配度很高的块,或者只能找到一部分匹配度很高的块,这种情况帧间预测就达不到很好的效果。
针对上述问题,目前提出了联合帧内帧间预测(combined inter and intra prediction,CIIP)技术,CIIP技术将当前块的一个帧间预测的预测块和一个帧内预测的预测块进行加权平均,最后得到当前块的新的预测块。在VVC中,CIIP的帧间预测块P inter由普通的合并模式导出,CIIP的帧内预测块P intra由普通帧内预测的Planar模式导出。然后根据当前块的左边块和上边块的情况确定P inter和P intra的权重值。
具体地,当前块的新的预测块P CIIP可以通过以下公式导出:
P CIIP=((4-wt)×P inter+wt×P intra+2)>>2     (1)
其中,wt为权重参数,图9为当前块的位置示意图,如图9所示,如果当前块的左边块left和上边块top均使用帧内预测,那么可以将wt设为3;如果当前块的左边块left和上边块top分别使用帧内预测和帧间预测,那么可以将wt设为2,如果当前块的左边块left和上边块top均使用帧间预测,那么可以将wt设为1。
可见,图10为常见的预测方法的示意图,如图10所示,在对当前块进行帧内预测时,可以使用帧内预测模式确定当前块的帧内预测块,使用帧间预测模式确定当前块的帧间预测块,然后可以对帧内预测块和帧间预测块分别使用帧内预测块权重和帧间预测块权重进行加权平均处理,最终获得一个新的预测块。
然而,对某些当前块,虽然CIIP技术可以通过帧内预测块和帧间预测块的加权平均提升预测质量。但是CIIP是对整块的所有像素使用相同的权重,也可以认为它是把帧内预测块和帧间预测块分别作为一个整体来处理。这样做没有考虑到帧内预测块或帧间预测块有一部分预测质量好有一部分预测质量不好的情况,不够灵活。
针对以上问题,在本申请的实施例中,编解码器可以通过两种不同的预测模式确定当前块的两个不同的预测块,然后可以按照权重矩阵对两个不同的预测块进行组合,最终得到更复杂的预测块,提高了预测的准确性,也就是说,本申请提出的预测方法,能够提升预测质量,提高压缩性能。
参见图11,其示出了本申请实施例提供的一种视频编码系统的组成框图示例;如图11所示,该视频编码系统10包括变换与量化单元101、帧内估计单元102、帧内预测单元103、运动补偿单元104、运动估计单元105、反变换与反量化单元106、滤波器控制分析单元107、滤波单元108、编码单元109和解码图像缓存单元110等,其中,滤波单元108可以实现去方块滤波及样本自适应缩进(Sample Adaptive 0ffset,SAO)滤波,编码单元109可以实现头信息编码及基于上下文的自适应二进制算术编码(Context-based Adaptive Binary Arithmatic Coding,CABAC)。针对输入的原始视频信号,通过编码树块(Coding Tree Unit,CTU)的划分可以得到一个视频编码块,然后对经过帧内或帧间预测后得到的残差像素信息通过变换与量化单元101对该视频编码块进行变换,包括将残差信息从像素域变换到变换域,并对所得的变换系数进行量化,用以进一步减少比特率;帧内估计单元102和帧内预测单元103是 用于对该视频编码块进行帧内预测;明确地说,帧内估计单元102和帧内预测单元103用于确定待用以编码该视频编码块的帧内预测模式;运动补偿单元104和运动估计单元105用于执行所接收的视频编码块相对于一或多个参考帧中的一或多个块的帧间预测编码以提供时间预测信息;由运动估计单元105执行的运动估计为产生运动向量的过程,所述运动向量可以估计该视频编码块的运动,然后由运动补偿单元104基于由运动估计单元105所确定的运动向量执行运动补偿;在确定帧内预测模式之后,帧内预测单元103还用于将所选择的帧内预测数据提供到编码单元109,而且运动估计单元105将所计算确定的运动向量数据也发送到编码单元109;此外,反变换与反量化单元106是用于该视频编码块的重构建,在像素域中重构建残差块,该重构建残差块通过滤波器控制分析单元107和滤波单元108去除方块效应伪影,然后将该重构残差块添加到解码图像缓存单元110的帧中的一个预测性块,用以产生经重构建的视频编码块;编码单元109是用于编码各种编码参数及量化后的变换系数,在基于CABAC的编码算法中,上下文内容可基于相邻编码块,可用于编码指示所确定的帧内预测模式的信息,输出该视频信号的码流;而解码图像缓存单元110是用于存放重构建的视频编码块,用于预测参考。随着视频图像编码的进行,会不断生成新的重构建的视频编码块,这些重构建的视频编码块都会被存放在解码图像缓存单元110中。
参见图12,其示出了本申请实施例提供的一种视频解码系统的组成框图示例;如图12所示,该视频解码系统20包括解码单元201、反变换与反量化单元202、帧内预测单元203、运动补偿单元204、滤波单元205和解码图像缓存单元206等,其中,解码单元201可以实现头信息解码以及CABAC解码,滤波单元205可以实现去方块滤波以及SAO滤波。输入的视频信号经过图9的编码处理之后,输出该视频信号的码流;该码流输入视频解码系统20中,首先经过解码单元201,用于得到解码后的变换系数;针对该变换系数通过反变换与反量化单元202进行处理,以便在像素域中产生残差块;帧内预测单元203可用于基于所确定的帧内预测模式和来自当前帧或图片的先前经解码块的数据而产生当前视频解码块的预测数据;运动补偿单元204是通过剖析运动向量和其他关联语法元素来确定用于视频解码块的预测信息,并使用该预测信息以产生正被解码的视频解码块的预测性块;通过对来自反变换与反量化单元202的残差块与由帧内预测单元203或运动补偿单元204产生的对应预测性块进行求和,而形成解码的视频块;该解码的视频信号通过滤波单元205以便去除方块效应伪影,可以改善视频质量;然后将经解码的视频块存储于解码图像缓存单元206中,解码图像缓存单元206存储用于后续帧内预测或运动补偿的参考图像,同时也用于视频信号的输出,即得到了所恢复的原始视频信号。
本申请实施例中的预测方法,既可以应用于视频编码系统,也可以应用于视频解码系统,甚至还可以同时应用于视频编码系统和视频解码系统,但是本申请实施例不作具体限定。还需要说明的是,当该预测方法应用于视频编码系统时,“当前块”具体是指当前编码块;当该预测方法应用于视频解码系统时,“当前块”具体是指当前解码块。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
本申请的一实施例提出了一种预测方法,应用于解码器,图13为预测方法的实现流程示意图一,如图13所示,解码器进行预测的方法可以包括以下步骤:
步骤101、解析码流,确定当前块的预测模式参数。
在本申请的实施例中,解码器解析码流,确定当前块的预测模式参数。
需要说明的是,在本申请的实施中,预测模式参数可以指示当前块是否可以使用不同的预测模式进行预测值的确定,即预测模式参数可以指示当前块是否可以使用两种不同的预测模式进行预测处理。
可以理解的是,在本申请的实施例中,可以将预测模式参数理解为一个表明是否使用了不同预测模式的标志位。具体地,解码器解析码流,可以确定作为预测模式参数的一个变量,从而可以通过该变量的取值来实现预测模式参数的确定。
需要说明的是,在本申请的实施例中,如果预测模式参数指示当前块可以两种使用不同的预测模式进行预测值的确定,那么,该两种不同的预测模式包括但不限于帧内预测模式、帧间预测模式、帧内块拷贝(IntraBlockCopy,IBC)模式、调色板模式Palette,串预测模式等。
示例性的,在本申请中,解码器可以分别使用帧间预测模式和帧内预测模式对当前块进行预测处理,例如,解码器分别使用Plane模式和平移预测模式对当前块的预测块进行确定。正是由于分别使用帧间预测模式和帧内预测模式分别对当前块进行预测处理,获得当前块的预测块,从而可以较好地对帧内预测模式仅能处理简单的纹理的预测进行优化,同时可以较好地对帧间预测模式有时不能从参考帧中获得匹配度高的参考块进行优化,最终获得更佳的预测效果。
示例性的,在本申请中,解码器也可以分别使用帧内预测模式和帧内块拷贝模式对当前块进行预测处理,或者分别使用调色板模式和帧间预测模式度当前块进行预测处理。也就是说,在本申请中,如果预测模式参数指示当前块可以两种使用不同的预测模式进行预测值的确定,那么,该两种不同的预测模式的组合形式可以有多种,对此本申请不进行具体限定。
进一步地,在本申请的实施例中,在应用两种不同预测模式对当前块进行预测时,可以对当前块的尺寸进行限制。
可以理解的是,由于本申请实施例提出的预测方法需要分别使用两个不同的预测模式生成两个不同的预测块,再根据权重矩阵进行加权得到新的预测块,为了降低预测的复杂度,同时考虑压缩性能和复杂度的权衡,在本申请的实施例中,可以限制对一些大小的预测块不使用两种不同的预测模式。因此,在本申请中,解码器可以先确定当前块的尺寸参数,然后根据尺寸参数确定当前块是否使用两种不同的预测模式。
需要说明的是,在本申请的实施例中,当前块的尺寸参数可以包括当前块的高度和宽度,因此,解码器可以利用当前块的高度和宽度对使用两种不同的预测模式进行限制,即限制能够使用两种不同的预测模式的预测块的尺寸。
示例性的,在本申请中,若宽度大于第一阈值且高度大于第二阈值,则确定当前块使用两种不同的预测模式, 即确定当前块使用不同预测模式确定当前块的预测值。可见,一种可能的限制是仅仅在预测块的宽度大于(或大于等于)第一阈值,且预测块的高度大于(或大于等于)第二阈值的情况下使用两种不同的预测模式。其中,第一阈值和第二阈值的值可以是8,16,32等,第一阈值可以等于第二阈值。
示例性的,在本申请中,若宽度小于第三阈值且高度小于第四阈值,则确定当前块使用两种不同的预测模式,即确定当前块使用不同预测模式确定当前块的预测值。可见,一种可能的限制是仅仅在预测块的宽度小于(或小于等于)第三阈值,且预测块的高度小于(或小于等于)第四阈值的情况下使用两种不同的预测模式。其中,第三阈值和第四阈值的值可以是8,16,32等,第三阈值可以等于第四阈值。
进一步地,在本申请的实施例中,解码器在确定当前块的高度和宽度之后,还可以根据当前块的宽度和长度确定当前块的长宽比;然后再利用当前块的长宽比进行限制。
具体地,在本申请中,若长宽比小于第五阈值,则确定当前块使用不同预测模式确定当前块的预测值;或者,若长宽比的倒数小于第五阈值,则确定当前块使用不同预测模式确定当前块的预测值。
也就是说,随着技术的发展,块划分越来越灵活,除了正方形的块,现在的划分方法可以支持长宽比1:2,1:4,1:8,2:1,4:1,8:1等形状的块。因此,在本申请的实施例中,对于某些长宽比的块,如1:4或4:1的块以及1:8或8:1的块,或者对于某些大小的长宽比的块,如8×32,8×64,32×8,64×8的块,本申请提出的预测方法所带来的压缩性能可能不够好或者说不明显,那么可以设置长宽比的限制,如长度比宽度小于(或小于等于)第五阈值,则使用不同预测模式确定当前块的预测值,或者宽度比长度小于(或小于等于)第五阈值,则使用不同预测模式确定当前块的预测值。其中,第五阈值可以为4,8等。
需要说明的是,在本申请的实施例中,当前块的大小限制方法和长宽比限制方法可以同时使用。例如,解码器可以设置在当前块的高度大于等于8,且当前块的宽度大于等于8,且当前块的高度比宽度(或宽度比宽度比)小于等于4时,可以使用两种不同的预测模式进行预测处理,否则默认不两种不同的预测模式进行预测处理。
也就是说,在本申请中,只有在当前块的尺寸参数满足大小要求的条件下,当前块才可以使用两种不同的预测模式进行预测处理。
进一步地,在本申请的实施例中,解码器还可以通过像素总数的限制来实现限制能够使用两种不同的预测模式的预测块。
示例性的,在本申请中,解码器可以先确定当前块的像素总数,然后再根据像素总数和第六阈值进一步判断当前块是否可以使用不同预测模式确定当前块的预测。可见,一种可能的限制是仅仅在预测块的像素数大于(或大于等于)第六阈值的情况下使用两种不同的预测模式。其中,第六阈值的值可以是8,16,32等。
或者,还有一种可能的限制是仅仅在预测块的像素数小于(或小于等于)第七阈值的情况下使用两种不同的预测模式。其中,第七阈值可以等于第六阈值,第七阈值的值可以是8,16,32等。
示例性的,在本申请中,可以有一个帧级的标志来确定当前待解码帧是否使用本申请提出的预测方法。例如,可以配置帧内帧(如I帧)使用本申请提出的预测方法,帧间帧(如B帧、P帧)不使用该方法。或者,也可以配置帧内帧不使用本申请提出的预测方法,帧间帧使用该方法。或者,还可以配置某些帧间帧使用本申请提出的预测方法,某些帧间帧不使用该方法。由于帧间帧也可以使用帧内预测,因而帧间帧也有可能使用本申请提出的预测方法。
进一步地,还可以有一个帧级以下、CU级以上(如tile、slice、patch、LCU等)的标志来确定这一区域是否使用本申请提出的预测方法。
可选地,在本申请中,在CU级,或PU级,或者块级,是否使用本申请提出的预测方法的标志与帧内预测和帧间预测的预测模式的判断同级。也就是说当前块会判断是使用帧内预测模式还是帧间预测模式还是本发明的预测模式。
可选地,在本申请中,可以把是否使用本申请提出的预测方法作为一种帧间预测模式的下面的预测模式。也就是说,如果当前块确定使用帧间预测模式,再判断是否使用是否使用本申请提出的预测方法。
示例性的,在本申请中,解码器在确定当前块的预测模式参数之前,还可以先解析码流,确定当前块的帧内预测模式参数;当帧内预测模式参数指示当前块使用帧内预测模式定当前块的预测值时,确定当前块的预测模式参数;当预测模式参数指示当前块使用不同预测模式确定当前块的预测值时,确定第一预测模式和第二预测模式;其中,第一预测模式或第二预测模式为帧内预测模式;最后便基于第一预测模式和第二预测模式,确定当前块的预测值。
可选地,在本申请中,可以把是否使用本申请提出的预测方法作为一种帧间预测模式的下面的预测模式。也就是说,如果当前块确定使用帧间预测模式,再判断是否使用是否使用本申请提出的预测方法。
示例性的,在本申请中,解码器在确定当前块的预测模式参数之前,还可以先解析码流,确定当前块的帧间预测模式参数;当帧间预测模式参数指示当前块使用帧间预测模式定当前块的预测值时,确定当前块的预测模式参数;当预测模式参数指示当前块使用不同预测模式确定当前块的预测值时,确定第一预测模式和第二预测模式;其中,第一预测模式或第二预测模式为帧间预测模式;最后基于第一预测模式和第二预测模式,确定当前块的预测值。
需要说明的是,在本申请的实施例中,视频图像可以划分为多个图像块,当前块即为每个当前待解码的图像块,可以称为解码块(Coding Block,CB)。这里,每个解码块可以包括第一图像分量、第二图像分量和第三图像分量。具体地,在本申请中,假定进行预测处理,而且第一图像分量为亮度分量,即待预测图像分量为亮度分量,那么可以将待预测的解码块称为亮度块;或者,假定进行预测处理,而且第二图像分量为色度分量,即待预测图像分量为色度分量,那么可以将待预测的解码块称为色度块。
步骤102、当预测模式参数指示当前块使用不同的预测模式确定当前块的预测值时,确定当前块的第一预测模式和第二预测模式,其中,第一预测模式和第二预测模式分别为以下多个预测模式中的任意两个模式:帧内预测模式、帧间预测模式、帧内块拷贝模式,调色板模式,串预测模式。
在本申请的实施例中,解码器在确定当前块的预测模式参数之后,如果预测模式参数指示当前块使用两种不同的预测模式确定当前块的预测值,那么解码器可以进一步确定当前块需要使用的第一预测模式和第二预测模式。
需要说明的是,在本申请的实施例中,如果预测模式参数指示当前块可以两种使用不同的预测模式进行预测值的确定,那么解码器可以确定出该两种不同的预测模式,即第一预测模式和第二预测模式。其中,第一预测模式和第二预测模式可以包括但不限于帧内预测模式、帧间预测模式、帧内块拷贝模式、调色板模式Palette,串预测模式等。
示例性的,在本申请中,第一预测模式和第二预测模式分别为帧内预测模式和帧间预测模式,例如,第一预测模式可以为帧间预测模式,第二预测模式可以为帧内预测模式。
示例性的,在本申请中,第一预测模式和第二预测模式分别以下多个预测模式中的任意两个模式:帧内预测模式、帧间预测模式、帧内块拷贝模式,调色板模式,串预测模式。例如,第一预测模式可以为帧间预测模式,第二预测模式可以为调色板模式。或者第一预测模式和第二预测模式分别为帧间预测模式和帧内预测模式,例如,第一预测模式可以为仿射预测模式,第二预测模式可以为Bilinear模式。
也就是说,在本申请中,如果预测模式参数指示当前块可以两种使用不同的预测模式进行预测值的确定,那么,第一预测模式和第二预测模式的组合形式可以有多种,对此本申请不进行具体限定。
需要说明的是,在本申请中,当前块使用的帧内预测模式包括但不限于目前常见的任意一种帧内预测模式,包括但不限于DC、Planar、Bilinear以及角度预测模式等帧内预测模式。
可选地,在本申请中,更广泛的理解是其中帧内预测模式还包括对预测进行改进的技术,如改进参考像素的分像素插值,对预测像素进行滤波等,如MIPF,IPF等。
相应地,在本申请中,可以将DC、Planar、Bilinear以及角度预测模式等帧内预测模式称为基本帧内预测模式,预测进行改进的技术如MIPF,IPF等称为改进帧内预测模式。基本帧内预测模式是可以不依赖于其他帧内预测模式独立生成预测块的帧内预测模式,即确定了参考像素和基本帧内预测模式,就可以确定预测块。而改进帧内预测模式不能独立生成预测块,它们需要依赖于基本帧内预测模式才能确定预测块。比如某一种角度预测模式可以根据参考像素确定生成预测块,而MIPF可以在这个角度预测模式的基础上对不同位置的像素使用不同的滤波器生成或确定预测块。
示例性的,在本申请中,如果第一预测模式或第二预测模式为帧内预测模式,那么该帧内预测模式可以是基本帧内预测模式,也可以基本帧内预测模式和改进帧内预测模式的组合。还可以理解为根据其中的基本帧内预测模式确定帧内预测块,但是确定帧内预测块的过程还使用了改进帧内预测模式。
进一步地,在本申请中,帧间预测模式包括但不限于单向预测、双向预测等。帧间预测模式包括但不限于基于子块的预测,如仿射预测(AFFINE),基于子块的时域运动矢量预测(SbTMVP)等。帧间预测模式包括但不限于平移预测、仿射预测(AFFINE)、解码端运动矢量优化(DMVR)、双向光流(BIO)等。
具体地,在本申请中,帧间预测模式的运动信息导出方式包括但不限于根据相关运动信息直接导出运动信息,构建运动信息候选列表从中选择运动信息,以及在前述方法的基础上增加运动矢量差值,运动矢量偏移等方法。
进一步地,在本申请的实施例中,解码器在确定当前块的第一预测模式和第二预测模式时,可以通过解析码流,确定第一模式标志和第二模式标志;然后再将第一模式标志指示的预测模式确定为第一预测模式,将第二模式标志指示的预测模式确定为第二预测模式。
也就是是说,在本申请中,解码器可以直接根据第一模式标志和第二模式标志确定出对应的第一预测模式和第二预测模式,即第一模式标志和第二模式标志可以直接对预测模式进行指示
示例性的,在本申请的实施例中,解码器解析码流,确定的第一模式标志指示第一预测模式为帧内预测模式,确定的第二模式标志指示第二预测模式为帧间预测模式,那么解码器可以使用帧内预测模式和帧间预测模式对当前块进行预测处理。
进一步地,在本申请的实施例中,解码器在确定当前块的第一预测模式和第二预测模式时,还可以解析码流,确定第一模式标志和第二模式标志;然后先根据第一模式标志在候选模式中确定第一预测模式;最后再根据第二模式标志,在候选模式的、第一预测模式以外的其他模式中确定第二预测模式。
也就是是说,在本申请中,解码器还可以先根据第一模式标志在候选模式中确定出第一预测模式,然后再根据第二模式标志在去除第一预测模式以外的候选模式中确定出第二预测模式,即第一模式标志和第二模式标志可以用于基于候选模式对预测模式进行选择。
示例性的,在本申请的实施例中,候选模式包括有帧间预测模式、帧内预测模式、串预测模式、帧内块拷贝预测模式等,解码器解析码流,确定的第一模式标志指示候选模式中的一个预测模式为第一预测模式,确定的第二模式标志指示候选模式中的另一个预测模式为第二预测模式。
由此可见,在本申请中,解码器解析码流,除了确定指示是够使用两种不同的预测模式进行预测处理的预测模式参数以外,还可以确定出指示第一预测模式和第二预测模式的标志信息。
可选地,在本申请中,对于仅仅使用两种确定的预测模式,如一种是帧内预测,一种是帧间预测,那么解码器可以直接通过解码获得的第一模式标志和第二模式标志进行第一预测模式和第二预测模式的确定,而不需要选择预测模式。
可选地,在本申请中,如果需要在多种预测模式中选择两种预测模式,比如说在帧内SCC(screen content coding)编码中,可以使用的预测模式包括(普通)帧内预测模式,帧内块拷贝模式,串预测SP,那么,解码器解码获得的第一模式标志和第二模式标志可以表明第一预测模式是哪种预测模式,第二预测模式是哪种预测模式。例如,可以用1~两个bit标志第一预测模式是哪种预测模式,如10表示帧内预测,00表示IBC,01表示SP,对第二预测模式则只有两种选择,只需要1个bit标志。
需要说明的是,解码器解析的码流中除了传输上述的控制标志以外,还传输了表示第一模式索引,第二模式索引,以及权重矩阵的信息等多种标志。
示例性的,在本申请中,解码器解析码流,可以确定第一模式索引和第二模式索引。其中,第一模式索引可以用于对第一预测模式具体为哪一种预测模式进行指示,第二模式索引可以用于对第二预测模式具体为哪一种预测模式进行指示,例如,第一模式索引可以指示第一预测模式为帧内预测模式中的DC模式,第二模式索引可以指示第二预测模式为帧间预测模式中的仿射模式。
示例性的,在本申请中,解码器解析码流,可以确定第一权重标志和第二权重标志;然后可以根据第一权重标志,在权重矩阵中确定第一预测值对应的第一权重;根据第一权重标志,在权重矩阵中确定第一预测值对应的第一权重。
也就是说,在本申请的实施例中,如果当前块使用了两种确定的预测模式,如一种是帧内预测,一种是帧间预测。那么解码码流还可以确定帧间预测模式的模式信息,还可以确定帧间预测模式的运动矢量偏差等信息。相应地,解码码流还可以确定帧内预测模式的模式信息。
进一步地,解码码流还可以确定权重矩阵的信息。具体地,还可以确定帧间预测模式和帧内预测模式对权重矩阵来说是第一预测模式,哪个模式对权重矩阵来说是第二预测模式。或者,确定哪个预测块对权重矩阵来说是第一预测块,哪个预测块对权重矩阵来说是第二预测块。
步骤103、基于第一预测模式和第二预测模式,确定当前块的预测值。
在本申请的实施例中,如果预测模式参数指示当前块使用不同预测模式确定当前块的预测值,那么解码器在确定当前块的第一预测模式和第二预测模式之后,便可以基于第一预测模式和第二预测模式,进一步确定当前块的预测值。
具体地,在本申请的实施例中,解码器在基于第一预测模式和第二预测模式,确定当前块的预测值时,可以基于所述第一预测模式,确定与所述当前块对应的第一预测值;基于所述第二预测模式,确定与所述当前块对应的第二预测值;最后,可以基于所述第一预测值和第二预测值,进一步确定所述当前块的预测值。
需要说明的是,在本申请的实施例中,常见技术在通过当前块的帧内预测块和帧间预测块的加权平均来提升预测质量的,由于对整个帧内预测块和整个帧间预测块均使用同一个权重,因此在帧内预测块或帧间预测块有一部分预测质量不好时,并不能有效地提高最终的预测效果。而本申请提出的预测方法,可以通过对帧内预测块和帧间预测块中的不同像素使用不同的权重,实现预测效果的提升。
可以理解的是,在本申请的实施例中,图14为预测方法的实现流程示意图二,如图14所示,解码器在确定当前块的预测模式参数之后,即步骤101之后,解码器进行预测处理的方法还可以包括以下步骤:
步骤104、当预测模式参数指示当前块使用不同预测模式确定当前块的预测值时,确定当前块的权重矩阵导出模式。
步骤105、根据权重矩阵导出模式确定当前块的权重矩阵。
在本申请的实施例中,解码器解析码流确定当前块的预测模式参数之后,如果预测模式参数指示当前块使用不同预测模式确定当前块的预测值,那么解码器可以进一步确定当前块的权重矩阵导出模式,进而可以根据权重矩阵导出模式确定当前块的权重矩阵。
进一步地,在本申请的实施例中,解码器在基于第一预测模式和第二预测模式,确定当前块的预测值时,可以基于第一预测模式、第二预测模式以及权重矩阵,最终确定当前块的预测值。
需要说明的是,在本申请中,权重矩阵导出模式用于对当前块使用的权重矩阵进行确定。具体地,权重矩阵导出模式可以是导出权重矩阵的模式。对于一个给定长度和宽度的预测块,每一种权重矩阵导出模式可以导出一个权重矩阵;对于同样大小的预测块,不同权重矩阵导出模式导出的权重矩阵不同。
进一步地,在本申请的实施例中,所有可能的权重矩阵中并非每一个权重矩阵的所有的点的权重都相同。换句话说,至少有一个可能的权重矩阵中包含至少两个不同的权重值。
可选地,在本申请中,所有可能的权重矩阵中都包含至少两个不同的权重值。
可选地,在本申请中,部分权重矩阵中包含至少两个不同的权重值,例如,在本申请中,如果最小权重值是0,最大权重值是8,有一个权重矩阵中有的点是0,有的点是8。相应地,部分权重矩阵中只包含同一个权重值,例如,在本申请中,有一个权重矩阵中所有的点都是4。
需要说明的是,在申请的实施例中,如果权重矩阵包括至少一个权重值,那么该至少一个权重值均大于权重下限阈值且小于权重上限阈值。
具体地,在可以设置权重下限阈值为0,设置权重上限阈值为1。
示例性的,在本申请中,对某个或某些包含至少两个不同权重值的权重矩阵,可以设置一个最小权重值和最大权重值的限制,以使得当前块中的每一个点都是由两个不同的预测模式导出的预测值加权得到的。比如将权重设置为5个档,包括0,1/4,1/2,3/4,1,即将0~1划分为5个档,其中,0表示这个点完全由一个预测模式导出的预测值得到,1表示这个点完全由另一个预测模式导出的预测值得到。此时,可以设置最小权重值为1/4,最大权重值为3/4,那么该权重矩阵所有点都需要两种预测模式导出的预测值加权得到,但并非所有点的权重都相同。
相应地,在本申请中,对某个或某些至包含一个权重值的权重矩阵,该一个权重也可以被最小权重值和最大权重值的限制,即该一个权重也为大于权重下限阈值且小于权重上限阈值的任意值。这样可以使权重矩阵更多样,做出更多样的预测块,覆盖更多场景。
需要说明的是,在申请的实施例中,如果权重矩阵包括两个权重值,那么该两个权重值分别为权重下限阈值和权重上限阈值。
可选地,在本申请中,一个权重矩阵中只有两种权重,其中一个权重表示对应点的预测值完全来自于第一预测 块对应点的值,另一个权重表示对应点的预测值完全来自于第二预测块对应点的值。例如,在本申请中,一个权重矩阵中只有两种权重,分别是0和1。
可选地,在本申请中,一个权重矩阵中可能有多种权重,其中最大值(权重上限阈值)和最小值(权重下限阈值)分别表示对应点的预测值完全来自于第一预测块对应点的值或第二预测块对应点的值。不是最大值或最小值的权重值表示对应点的预测值来自于第一预测块和第二预测块对应点的值的加权平均。其中,这个最大值或最小值的权重值组成的区域可以叫做过渡区域(blending area)。
需要说明的是,在本申请中,在权重矩阵只有两种权重的情况下,权重变化的位置构成一条直线,或权重矩阵有多种权重的情况下,过渡区域中权重相同的位置构成一条直线(线段)。其中,该直线可以全是水平竖直的,也可以不全是水平竖直的。
可选地,在本申请中,在权重矩阵只有两种权重的情况下,权重变化的位置构成一条曲线(曲线段),或权重矩阵有多种权重的情况下,过渡区域中权重相同的位置构成一条曲线(曲线段)。
进一步地,在本申请的实施例中,解码器可以采用类似于GPM或AWP的方法来实现权重矩阵的确定。具体地,如果同一个编解码标准或编解码器中使用了GPM或AWP,那么可以使用该方法来确定权重矩阵,这样可以做到复用部分相同的逻辑。如AVS3帧间预测使用了AWP,那么在AVS3中可以使用AWP的方法来确定权重矩阵。当然也可以使用和同一个编解码标准或编解码器中的GPM或AWP不同方法,比如使用不同的模式数,或者不同的过渡区域算法,或者使用不同的参数等。
示例性的饿,AVS3中在帧间预测中使用了AWP模式,AWP的权重矩阵有56种,在本发明中在帧内预测中使用64种权重矩阵,其中有56种和AWP的权重矩阵相同,比如前56种和AWP的权重矩阵相同,剩余的8种权重矩阵每一个权重矩阵都只有一种权重值,该权重值分别为1,2,……,7,8。对这8种权重矩阵,总的权重值为16,即权重值为1表示1:15加权,权重值为2表示2:14加权。这样在64种权重矩阵的模式号进行二值化时,可以都使用6个比特的码字。
因为帧间预测利用了时域上的相关性,它使用的是参考帧中已重建的图像作为参考块。而帧内预测利用了空域上的相关性,它使用的是当前块周边已重建的像素作为参考像素。空域上距离越近相关性越强,距离越远相关性越差。所以如果某种权重矩阵使得一个预测块使用的得到的像素位置都距离参考像素较远,那么这部分可能做不出比现有技术更合适的预测值,那么可以不使用这样的权重矩阵,而在帧间预测中可以使用。
示例性的,在本申请中,AVS3的AWP有56种权重矩阵导出模式,VVC的GPM有64种权重矩阵导出模式。
进一步地,在本申请中,解码器在基于第一预测模式、第二预测模式以及权重矩阵,确定当前块的预测值时,可以根据第一预测模式确定当前块的第一预测值;根据第二预测模式确定当前块的第二预测值;然后可以利用权重矩阵对第一预测值和第二预测值进行加权平均计算,最终获得当前块的预测值。
可选地,在本申请中,解码器可以对当前块分别确定两个不同的预测块(第一预测值和第二预测值),确定一个权重矩阵,接着可以将两个不同的预测块依据权重矩阵进行组合,得到新的预测块。
可选地,在本申请中,解码器可以先根据第一预测模式确定一个预测块(第一预测值),根据第二预测模式确定一个预测块(第二预测值),确定一个权重矩阵,将两个不同的预测块依据权重矩阵进行组合得到新的预测块。
可以理解的是,在本申请中,两个不同的预测块(第一预测值和第二预测值)分别由两种不同的预测模式确定,即通过第一预测模式确定第一预测值,通过第二预测模式确定第二预测值。
示例性的,在本申请中,如果第一预测模式为帧内预测模式,第二预测模式为帧间预测模式,那么对当前块分别使用帧内预测模式和帧间预测模式确定两个不同的预测块,确定当前块的权重矩阵,将两个不同的预测块依据权重矩阵进行组合得到新的预测块。
示例性的,在本申请中,在对当前块进行预测处理时,可以确定第一预测模式为帧内预测模式,并根据该帧内预测模式确定一个预测块。确定第二预测模式为帧间预测模式,并根据该帧间预测模式确定一个预测块。确定当前块的权重矩阵,将两个不同的预测块依据权重矩阵进行组合得到新的预测块。
示例性的,在本申请中,如果第一预测模式为帧内预测模式,第二预测模式为帧内块拷贝模式,那么对当前块分别使用帧内预测和帧内块拷贝模式确定两个不同的预测块。确定当前块的权重矩阵,将两个不同的预测块依据权重矩阵进行组合得到新的预测块。
示例性的,在本申请中,在对当前块进行预测处理时,可以第一预测模式为帧内预测模式,并根据该帧内预测模式确定一个预测块。确定第二预测模式为帧内块拷贝模式,并根据该帧内块拷贝模式确定一个预测块。确定当前块的权重矩阵,将两个不同的预测块依据权重矩阵进行组合得到新的预测块。
由此可见,图15为预测方法的示意图,如图15所示,在对当前块进行帧内预测时,可以使用第一预测模式确定当前块的第一预测块,使用第二预测模式确定当前块的第二预测块,然后可以利用权重矩阵对第一预测块和第二预测块进行组合处理,最终获得一个新的预测块。即基于第一预测模式和第二预测模式,可以对当前块确定两个不完全相同的预测块,确定一个权重矩阵,将两个不同的预测块依据权重矩阵进行组合得到新的预测块。
进一步地,在本申请的实施例中,图16为预测方法的实现流程示意图三,如图16所示,解码器进行预测的方法还可以包括以下步骤:
步骤201、解析码流,确定当前块的预测模式参数。
步骤202、当预测模式参数指示当前块使用不同预测模式确定当前块的预测值时,确定当前块的第一预测模式,并根据第一预测模式确定当前块的第一预测值。
步骤203、确定当前块的第二预测模式,并根据第二预测模式确定当前块的第二预测值。
步骤204、基于第一预测值和第二预测值,确定当前块的预测值。
可以理解的是,在本申请中,解码器在确定当前块使用不同预测模式确定当前块的预测值之后,先解码的预测 模式作为第一预测模式,先解码的预测模式的预测块就作为第一预测块(即第一预测值),后解码的预测模式作为第二预测模式,后解码的预测模式的预测块就作为第二预测块(即第二预测值)。
示例性的,在本申请中,如果当前块的两种预测模式为帧间预测模式和帧内预测模块,那么无论是先解码帧内预测模式再解码帧间预测模式,还是先解码帧间预测模式再解码帧内预测模式,解码器可以直接将先解码的预测模式的预测块就作为第一预测块,将后编码的预测模式的预测块就作为第二预测块。
在本申请的实施例中,进一步地,由于本申请提出的预测方法,需要使用两个不同的预测模式,和一个权重矩阵确定当前块的预测值,因此,为了降低开销,在本申请中,可以通过对当前块的两种预测模式进行限制来降低比特数,同时,也可以通过对当前块的权重矩阵导出模式进行限制来降低比特数。
示例性的,在本申请中,由于AVS3的前33个预测模式已经几乎覆盖了整个角度范围,因此在AVS3中只使用前33种预测模式便可以保证较好的性能,且在解码时只需要调整为不使用EIPM即可。进一步地,还可以对当前块可能使用的帧内预测模式的个数进行进一步的压缩和限制,最终实现只使用5个比特进行解码,从而进一步减少开销,进而达到更好的性能。
可选地,在本申请中,可以通过减少当前块可能使用的权重矩阵导出模式个数来降低权重矩阵导出模式的开销。例如,在AVS3中,如果使用56种权重矩阵导出模式,最多需要6个比特来解码一个权重矩阵导出模式,而如果只使用3两种权重矩阵导出模式,则最多只需要5个比特来解码一个权重矩阵导出模式。进一步地,还可以对当前块可能使用的权重矩阵导出模式的个数进行进一步的压缩和限制,如只使用16种权重矩阵导出模式,最终实现只使用4个比特进行解码,从而进一步减少开销,进而达到更好的性能。
需要说明的是,在本申请的实施例中,在对权重矩阵导出模式的个数进行限制时,既可以直接对全部预测块的权重矩阵导出模式的个数执行限制处理,还可以参考当前块的尺寸参数,对不同大小的当前块使用不同的限制方式。
示例性的,在本申请中,对于尺寸参数较大的预测块,如64×64或32×32大小的预测块,可以使用全部权重矩阵导出模式进行当前块的权重矩阵导出模式的确定,而对于尺寸参数较小的预测块,如8×8大小的预测块,可以使用部分权重矩阵导出模式进行当前块的权重矩阵导出模式的确定,即对当前块可能使用的权重矩阵导出模式的数量进行限制,这是因为对于尺寸参数较小的预测块来说,细微的角度差异所造成的影响的并不明显。
可以理解的是,在本申请中,可以先设置一个尺寸阈值,如第一尺寸阈值,若当前块的尺寸参数小于第一尺寸阈值,那么可以认为细微的角度差异不会造成较大的影响,因此可以限制当前块能够选择的权重矩阵导出模式的个数。具体地,可以通过对在当前块的权重矩阵导出模式的索引序号进行限制,来实现对权重矩阵导出模式的个数的限制。
示例性的,在本申请中,如果当前块的尺寸参数小于第一尺寸阈值,那么可以根据第一模式索引范围确定权重矩阵导出模式;其中,第一模式索引范围用于对权重矩阵导出模式的索引序号进行限制。具体地,第一模式索引范围可以包括第一下限阈值和第一上限阈值,可以将权重矩阵到处模式的索引序号分别与第一下限阈值和第一上限阈值进行比较,如果权重矩阵导出模式的索引序号小于第一下限阈值,那么可以将权重矩阵导出模式的索引序号设置为第一下限阈值;如果权重矩阵导出模式的索引序号大于第一上限阈值,那么可以将权重矩阵导出模式的索引序号设置为第一上限阈值。
也就是说,在本申请中,可以通过第一模式索引范围限制当前块的权重矩阵导出模式的索引序号,从而完成对权重矩阵导出模式数量的限制。
例如,在AVS3中,第一模式索引范围可以为0-32,即可以通过第一模式索引范围将权重矩阵导出模式的索引序号限制在0-32之内,因此当前块可以使用前33种权重矩阵导出模式来进行当前块的权重矩阵导出模式的确定。
可选地,在本申请中,可以通过减少当前块可能使用的帧内预测模式个数来降低解码两种预测模式的开销。例如,在AVS3中,如果使用66种帧内预测模式,最多需要7个比特来解码一个帧内预测模式,而如果只使用33种帧内预测模式,且不使用PCM模式,则最多只需要6个比特来解码一个帧内预测模式。
需要说明的是,在本申请的实施例中,在对帧内预测模式的个数进行限制时,既可以直接对全部预测块的帧内预测模式的个数执行限制处理,还可以参考当前块的尺寸参数,对不同大小的当前块使用不同的限制方式。
示例性的,在本申请中,对于尺寸参数较大的预测块,如64×64或32×32大小的预测块,可以使用全部帧内预测模式进行当前块的帧内预测模式的确定,而对于尺寸参数较小的预测块,如8×8大小的预测块,可以使用部分帧内预测模式进行当前块的帧内预测模式的确定,即对当前块可能使用的帧内预测模式的数量进行限制,这是因为对于尺寸参数较小的预测块来说,细微的角度差异所造成的影响的并不明显。
可以理解的是,在本申请中,可以先设置一个尺寸阈值,如第二尺寸阈值,若当前块的尺寸参数小于第二尺寸阈值,那么可以认为细微的角度差异不会造成较大的影响,因此可以限制当前块能够选择的帧内预测模式的个数。具体地,可以通过对在当前块的帧内预测模式的索引序号进行限制,来实现对帧内预测模式的个数的限制。
示例性的,在本申请中,如果当前块的尺寸参数小于第二尺寸阈值,那么可以根据第二模式索引范围确定帧内预测模式;其中,第二模式索引范围用于对帧内预测模式的索引序号进行限制。具体地,第二模式索引范围可以包括第二下限阈值和第二上限阈值,可以先确定帧内预测模式的索引序号;然后设置索引序号大于第二下限阈值;设置索引序号小于第二上限阈值。
也就是说,在本申请中,可以通过第二模式索引范围限制当前块的帧内预测模式的索引序号,从而完成对帧内预测模式数量的限制。
例如,在AVS3中,第二模式索引范围可以为0-32,即可以通过第二模式索引范围将第一预测模式的索引序号限制在0-32之内,因此当前块可以使用前33种预测模式来进行帧内预测模式的确定。
可以理解的是,在本申请中,第一尺寸阈值与第二尺寸阈值可以相同也可以不同;第一模式索引范围与第二模式索引范围可以相同也可以不同。
进一步地,在本申请中,对于帧间预测模式,可以通过减少使用的帧间预测模式,来降低本申请编码帧间预测模式的开销。例如,在本申请中,可以选择只使用skip或merge或direct模式,而不使用需要编码mvd的普通inter模式。
具体地,在本申请中,由于在块的尺寸较小的情况下,细微的角度差异影响的并不明显,因此,对于尺寸较大的块,如64×64,32×32的块,选择使用需要编码mvd的普通inter模式,而对于尺寸较小的块,如8×8的块,选择不使用需要编码mvd的普通inter模式。例如,设置一个块大小的预测INTER_MODE_SIZE_THR,如16,如果块的长度和宽度都大于等于INTER_MODE_SIZE_THR,便可以使用需要编码mvd的普通inter模式,否则,可以不使用需要编码mvd的普通inter模式。
也就是说,在本申请的实施例中,在对帧间预测模式的数量进行限制时,既可以直接对全部预测块的帧间预测模式的个数执行限制处理,还可以参考当前块的尺寸参数,对不同大小的当前块使用不同的限制方式。
示例性的,在本申请中,对于尺寸参数较大的预测块,如64×64或32×32大小的预测块,可以使用候选帧间预测模式进行当前块的帧间预测模式的确定,其中,候选帧间预测模式可以包括需要编码mvd的普通inter模式,而对于尺寸参数较小的预测块,如8×8大小的预测块,可以选择候选帧间预测模式以外的其他帧间预测模式进行当前块的帧间预测模式的确定,即对当前块可能使用的帧间预测模式的数量进行限制,这是因为对于尺寸参数较小的预测块来说,细微的角度差异所造成的影响的并不明显。
可以理解的是,在本申请中,可以先设置一个尺寸阈值,如第三尺寸阈值,若当前块的尺寸参数小于第三尺寸阈值,那么可以认为细微的角度差异不会造成较大的影响,因此可以选择候选帧间预测模式以外的其他帧间预测模式进行当前块的帧间预测模式的确定,而在尺寸参数大于第三尺寸阈值时,则需要通过候选帧间预测模式限制当前块能够选择的帧间预测模式。
可以理解的是,在本申请中,第三尺寸阈值与第二尺寸阈值可以相同也可以不同。
进一步地,在本申请的实施例中,在确定出当前块使用的预测模式之后,需要保存该当前块的预测模式等信息以供后续编解码的块参考,其中,后续编解码的块包括但不限于空域上与当前块相邻的预测块和时域上会用到当前块的信息的预测块。具体地,如果当前块使用两种不同的预测模式,那么可以根据多种方法进行当前块的预测模式的保存。
可以理解的是,在本申请的实施例中,如果当前块使用两种不同的预测模式,那么在使用当前块对其他待预测块进行预测时,将第一预测模式和/或第二预测模式设置为当前块的预测模式。
示例性的,在本申请中,如果当前块使用帧间预测模式和帧内预测模式这两种不同的预测模式,那么当前块的一部分最小单元选择保存帧内预测模式,一部分最小单元选择保存帧间预测模式。具体地,可以使用与GPM或AWP类似的方法。如果同一个编解码标准或编解码器中使用了GPM或AWP其一,那么可以使用与该方法相似的逻辑。这样可以做到复用部分相同的逻辑。例如,AVS3帧间预测使用了AWP,那么在AVS3中,可以使用与AWP保存两个不同运动信息相似的逻辑来保存两个不同的预测模式,即如果一个最小单元对应的位置只使用了帧内预测模式确定的预测块,那么这个最小单元保存该帧内预测模式;如果一个最小单元对应的位置只使用了帧间预测模式确定的预测块,那么这个最小单元保存该帧间预测模式;如果一个最小单元对应的位置既使用了帧内预测模式确定的预测块又使用了帧间预测模式确定的预测块,那么根据可以在帧内预测模式和帧间预测模式之中选择一个进行保存。
示例性的,在本申请中,如果当前块使用帧间预测模式和帧内预测模式这两种不同的预测模式,那么还可以对整个当前块所对应的所有最小单元都只选择同一个预测模式进行保存。
可以理解的是,在本申请中,虽然帧内的预测模式和帧间的运动信息的保存都是为了给其他块做参考,但是帧内的预测模式和帧间的运动信息的编码方式不同,它们是有区别的。因此对每一个最小单元选择是使用帧内预测模式或帧间预测模式会带来一定的复杂度。以AVS3为例,目前AVS3的帧内预测共66种模式,每个当前块预测前会构造出2个最可能模式MPM(most probable mode,MPM),如果当前块使用了MPM,那么就从2个MPM中选择一个,否则需要在64个模式中选择一个预测模式。而对帧间预测来说,预测前当前块会构建运动矢量的预测值(motion vector prediction/predictor,MVP),在使用MVP和不直接使用MVP时,都需要通过选择来编码运动矢量偏差(motion vector difference,MVD)。可以认为MVP越接近编码效率越高,但MPM如果没有选到就基本没有作用。
可见,对整个当前块所对应的所有最小单元都只选择同一个预测模式进行保存,复杂度更低。
可选地,在本申请中,当前块的所有权重矩阵导出模式全都选择帧内预测模式。
可选地,在本申请中,当前块的所有权重矩阵导出模式全都选择帧间预测模式。
可选地,在本申请中,当前块的某些权重矩阵导出模式的所有最小单元都选择帧内预测模式,某些权重矩阵导出模式的所有最小单元都选择帧间预测模式。即根据权重矩阵导出模式确定当前块的所有最小单元是都保存帧内预测模式还是都保存帧间预测模式。
可选地,在本申请中,使用当前块的权重矩阵导出模式的模式号计算。
可选地,在本申请中,使用当前块的权重矩阵导出模式的模式号查表。例如,如果使用和AWP相同的权重矩阵导出模式,如果权重矩阵导出模式的模式号对应的是0,则选择帧内预测模式,如果权重矩阵导出模式的模式号对应的是1,则选择帧间预测模式。相应地,在本申请中,如果当前块的一个最小单元保存的预测模式为帧内预测模式,那么这个最小单元同时标记为使用帧内预测。如果当前块的一个最小单元保存的预测模式为帧间预测模式,那么这个最小单元同时标记为使用帧间预测。
本申请实施例提供一种预测方法,解码器解析码流,确定当前块的预测模式参数;当预测模式参数指示当前块使用不同预测模式确定当前块的预测值时,确定当前块的第一预测模式和第二预测模式;其中,第一预测模式和第二预测模式分别为以下多个预测模式中的任意两个模式:帧内预测模式、帧间预测模式、帧内块拷贝模式,调色板 模式,串预测模式;基于第一预测模式和第二预测模式,确定当前块的预测值。也就是说,在本申请的实施例中,编解码器可以通过两种不同的预测模式确定当前块的两个不同的预测块,然后可以按照权重矩阵对两个不同的预测块进行组合,最终得到更复杂的预测块,提高了预测的准确性,也就是说,本申请提出的预测方法,能够提升预测质量,提高压缩性能。
本申请的一实施例提出了一种预测方法,应用于编码器,图17为预测方法的实现流程示意图四,如图17所示,编码器进行预测的方法可以包括以下步骤:
步骤301、确定当前块的预测模式参数。
在本申请的实施例中,编码器可以先确定当前块的预测模式参数。
需要说明的是,在本申请的实施中,预测模式参数可以指示当前块是否可以使用不同的预测模式进行预测值的确定,即预测模式参数可以指示当前块是否可以使用两种不同的预测模式进行预测处理。
可以理解的是,在本申请的实施例中,可以将预测模式参数理解为一个表明是否使用了不同预测模式的标志位。具体地,编码器可以确定作为预测模式参数的一个变量,从而可以通过该变量的取值来实现预测模式参数的确定。
需要说明的是,在本申请的实施例中,如果预测模式参数指示当前块可以两种使用不同的预测模式进行预测值的确定,那么,该两种不同的预测模式包括但不限于帧内预测模式、帧间预测模式、帧内块拷贝模式、调色板模式Palette,串预测模式等。
示例性的,在本申请中,编码器可以分别使用帧间预测模式和帧内预测模式对当前块进行预测处理;编码器也可以分别使用帧内预测模式和帧内块拷贝模式对当前块进行预测处理。
也就是说,在本申请中,如果预测模式参数指示当前块可以两种使用不同的预测模式进行预测值的确定,那么,该两种不同的预测模式的组合形式可以有多种,对此本申请不进行具体限定。
进一步地,在本申请的实施例中,在应用两种不同预测模式对当前块进行预测时,可以对当前块的尺寸进行限制。
可以理解的是,由于本申请实施例提出的预测方法需要分别使用两个不同的预测模式生成两个不同的预测块,再根据权重矩阵进行加权得到新的预测块,为了降低预测的复杂度,同时考虑压缩性能和复杂度的权衡,在本申请的实施例中,可以限制对一些大小的预测块不使用两种不同的预测模式。因此,在本申请中,编码器可以先确定当前块的尺寸参数,然后根据尺寸参数确定当前块是否使用两种不同的预测模式。
需要说明的是,在本申请的实施例中,当前块的尺寸参数可以包括当前块的高度和宽度,因此,编码器可以利用当前块的高度和宽度对使用两种不同的预测模式进行限制,即限制能够使用两种不同的预测模式的预测块的尺寸。
示例性的,在本申请中,若宽度大于第一阈值且高度大于第二阈值,则确定当前块使用两种不同的预测模式,即确定当前块使用不同预测模式确定当前块的预测值。可见,一种可能的限制是仅仅在预测块的宽度大于(或大于等于)第一阈值,且预测块的高度大于(或大于等于)第二阈值的情况下使用两种不同的预测模式。其中,第一阈值和第二阈值的值可以是8,16,32等,第一阈值可以等于第二阈值。
示例性的,在本申请中,若宽度小于第三阈值且高度小于第四阈值,则确定当前块使用两种不同的预测模式,即确定当前块使用不同预测模式确定当前块的预测值。可见,一种可能的限制是仅仅在预测块的宽度小于(或小于等于)第三阈值,且预测块的高度小于(或小于等于)第四阈值的情况下使用两种不同的预测模式。其中,第三阈值和第四阈值的值可以是8,16,32等,第三阈值可以等于第四阈值。
进一步地,在本申请的实施例中,编码器在确定当前块的高度和宽度之后,还可以根据当前块的宽度和长度确定当前块的长宽比;然后再利用当前块的长宽比进行限制。
具体地,在本申请中,若长宽比小于第五阈值,则确定当前块使用不同预测模式确定当前块的预测值;或者,若长宽比的倒数小于第五阈值,则确定当前块使用不同预测模式确定当前块的预测值。
也就是说,随着技术的发展,块划分越来越灵活,除了正方形的块,现在的划分方法可以支持长宽比1:2,1:4,1:8,2:1,4:1,8:1等形状的块。因此,在本申请的实施例中,对于某些长宽比的块,如1:4或4:1的块以及1:8或8:1的块,或者对于某些大小的长宽比的块,如8×32,8×64,32×8,64×8的块,本申请提出的预测方法所带来的压缩性能可能不够好或者说不明显,那么可以设置长宽比的限制,如长度比宽度小于(或小于等于)第五阈值,则使用不同预测模式确定当前块的预测值,或者宽度比长度小于(或小于等于)第五阈值,则使用不同预测模式确定当前块的预测值。其中,第五阈值可以为4,8等。
需要说明的是,在本申请的实施例中,当前块的大小限制方法和长宽比限制方法可以同时使用。例如,编码器可以设置在当前块的高度大于等于8,且当前块的宽度大于等于8,且当前块的高度比宽度(或宽度比宽度比)小于等于4时,可以使用两种不同的预测模式进行预测处理,否则默认不两种不同的预测模式进行预测处理。
也就是说,在本申请中,只有在当前块的尺寸参数满足大小要求的条件下,当前块才可以使用两种不同的预测模式进行预测处理。
进一步地,在本申请的实施例中,编码器还可以通过像素总数的限制来实现限制能够使用两种不同的预测模式的预测块。
示例性的,在本申请中,编码器可以先确定当前块的像素总数,然后再根据像素总数和第六阈值进一步判断当前块是否可以使用不同预测模式确定当前块的预测。可见,一种可能的限制是仅仅在预测块的像素数大于(或大于等于)第六阈值的情况下使用两种不同的预测模式。其中,第六阈值的值可以是8,16,32等。
或者,还有一种可能的限制是仅仅在预测块的像素数小于(或小于等于)第七阈值的情况下使用两种不同的预测模式。其中,第七阈值可以等于第六阈值,第七阈值的值可以是8,16,32等。
示例性的,在本申请中,可以有一个帧级的标志来确定当前待解码帧是否使用本申请提出的预测方法。例如, 可以配置帧内帧(如I帧)使用本申请提出的预测方法,帧间帧(如B帧、P帧)不使用该方法。或者,也可以配置帧内帧不使用本申请提出的预测方法,帧间帧使用该方法。或者,还可以配置某些帧间帧使用本申请提出的预测方法,某些帧间帧不使用该方法。由于帧间帧也可以使用帧内预测,因而帧间帧也有可能使用本申请提出的预测方法。
进一步地,还可以有一个帧级以下、CU级以上(如tile、slice、patch、LCU等)的标志来确定这一区域是否使用本申请提出的预测方法。
可选地,在本申请中,在CU级,或PU级,或者块级,是否使用本申请提出的预测方法的标志与帧内预测和帧间预测的预测模式的判断同级。也就是说当前块会判断是使用帧内预测模式还是帧间预测模式还是本发明的预测模式。
可选地,在本申请中,可以把是否使用本申请提出的预测方法作为一种帧间预测模式的下面的预测模式。也就是说,如果当前块确定使用帧间预测模式,再判断是否使用是否使用本申请提出的预测方法。
示例性的,在本申请中,编码器在确定当前块的预测模式参数之前,还可以先确定当前块的帧内预测模式参数;当帧内预测模式参数指示当前块使用帧内预测模式定当前块的预测值时,确定当前块的预测模式参数;当预测模式参数指示当前块使用不同预测模式确定当前块的预测值时,确定第一预测模式和第二预测模式;其中,第一预测模式或第二预测模式为帧内预测模式;最后便基于第一预测模式和第二预测模式,确定当前块的预测值。
可选地,在本申请中,可以把是否使用本申请提出的预测方法作为一种帧间预测模式的下面的预测模式。也就是说,如果当前块确定使用帧间预测模式,再判断是否使用是否使用本申请提出的预测方法。
示例性的,在本申请中,编码器在确定当前块的预测模式参数之前,还可以先确定当前块的帧间预测模式参数;当帧间预测模式参数指示当前块使用帧间预测模式定当前块的预测值时,确定当前块的预测模式参数;当预测模式参数指示当前块使用不同预测模式确定当前块的预测值时,确定第一预测模式和第二预测模式;其中,第一预测模式或第二预测模式为帧间预测模式;最后基于第一预测模式和第二预测模式,确定当前块的预测值。
需要说明的是,在本申请的实施例中,视频图像可以划分为多个图像块,当前块即为每个当前待编码的图像块,可以称为编码块CB。这里,每个编码块可以包括第一图像分量、第二图像分量和第三图像分量。具体地,在本申请中,假定进行预测处理,而且第一图像分量为亮度分量,即待预测图像分量为亮度分量,那么可以将待预测的编码块称为亮度块;或者,假定进行预测处理,而且第二图像分量为色度分量,即待预测图像分量为色度分量,那么可以将待预测的编码块称为色度块。
步骤302、当预测模式参数指示当前块使用不同的预测模式确定当前块的预测值时,确定当前块的第一预测模式和第二预测模式;其中,第一预测模式和第二预测模式分别为以下多个预测模式中的任意两个模式:帧内预测模式、帧间预测模式、帧内块拷贝模式,调色板模式,串预测模式。
在本申请的实施例中,编码器在确定当前块的预测模式参数之后,如果预测模式参数指示当前块使用两种不同的预测模式确定当前块的预测值,那么编码器可以进一步确定当前块需要使用的第一预测模式和第二预测模式。
需要说明的是,在本申请的实施例中,如果预测模式参数指示当前块可以两种使用不同的预测模式进行预测值的确定,那么编码器可以确定出该两种不同的预测模式,即第一预测模式和第二预测模式。其中,第一预测模式和第二预测模式可以包括但不限于帧内预测模式、帧间预测模式、帧内块拷贝模式、调色板模式Palette,串预测模式等。
示例性的,在本申请中,第一预测模式和第二预测模式分别为帧内预测模式和帧间预测模式,例如,第一预测模式可以为帧间预测模式,第二预测模式可以为帧内预测模式。
示例性的,在本申请中,第一预测模式和第二预测模式分别以下多个预测模式中的任意两个模式:帧内预测模式、帧间预测模式、帧内块拷贝模式,调色板模式,串预测模式。例如,第一预测模式可以为帧间预测模式,第二预测模式可以为调色板模式。
也就是说,在本申请中,如果预测模式参数指示当前块可以两种使用不同的预测模式进行预测值的确定,那么,第一预测模式和第二预测模式的组合形式可以有多种,对此本申请不进行具体限定。
需要说明的是,在本申请中,当前块使用的帧内预测模式包括但不限于目前常见的任意一种帧内预测模式,包括但不限于DC、Planar、Bilinear以及角度预测模式等帧内预测模式。
可选地,在本申请中,更广泛的理解是其中帧内预测模式还包括对预测进行改进的技术,如改进参考像素的分像素插值,对预测像素进行滤波等,如MIPF,IPF等。
相应地,在本申请中,可以将DC、Planar、Bilinear以及角度预测模式等帧内预测模式称为基本帧内预测模式,预测进行改进的技术如MIPF,IPF等称为改进帧内预测模式。基本帧内预测模式是可以不依赖于其他帧内预测模式独立生成预测块的帧内预测模式,即确定了参考像素和基本帧内预测模式,就可以确定预测块。而改进帧内预测模式不能独立生成预测块,它们需要依赖于基本帧内预测模式才能确定预测块。比如某一种角度预测模式可以根据参考像素确定生成预测块,而MIPF可以在这个角度预测模式的基础上对不同位置的像素使用不同的滤波器生成或确定预测块。
示例性的,在本申请中,如果第一预测模式或第二预测模式为帧内预测模式,那么该帧内预测模式可以是基本帧内预测模式,也可以基本帧内预测模式和改进帧内预测模式的组合。还可以理解为根据其中的基本帧内预测模式确定帧内预测块,但是确定帧内预测块的过程还使用了改进帧内预测模式。
进一步地,在本申请中,帧间预测模式包括但不限于单向预测、双向预测等。帧间预测模式包括但不限于基于子块的预测,如仿射预测(AFFINE),基于子块的时域运动矢量预测(SbTMVP)等。帧间预测模式包括但不限于平移预测、仿射预测(AFFINE)、解码端运动矢量优化(DMVR)、双向光流(BIO)等。
具体地,在本申请中,帧间预测模式的运动信息导出方式包括但不限于根据相关运动信息直接导出运动信息, 构建运动信息候选列表从中选择运动信息,以及在前述方法的基础上增加运动矢量差值,运动矢量偏移等方法。
进一步地,在本申请的实施例中,编码器在确定当前块的第一预测模式和第二预测模式时,可以确定第一模式标志和第二模式标志;然后再将第一模式标志指示的预测模式确定为第一预测模式,将第二模式标志指示的预测模式确定为第二预测模式。
也就是是说,在本申请中,编码器可以直接根据第一模式标志和第二模式标志确定出对应的第一预测模式和第二预测模式,即第一模式标志和第二模式标志可以直接对预测模式进行指示
示例性的,在本申请的实施例中,编码器确定的第一模式标志指示第一预测模式为帧内预测模式,确定的第二模式标志指示第二预测模式为帧间预测模式,那么编码器可以使用帧内预测模式和帧间预测模式对当前块进行预测处理。
进一步地,在本申请的实施例中,编码器在确定当前块的第一预测模式和第二预测模式时,还可以确定第一模式标志和第二模式标志;然后先根据第一模式标志在候选模式中确定第一预测模式;最后再根据第二模式标志,在候选模式的、第一预测模式以外的其他模式中确定第二预测模式。
也就是是说,在本申请中,编码器还可以先根据第一模式标志在候选模式中确定出第一预测模式,然后再根据第二模式标志在去除第一预测模式以外的候选模式中确定出第二预测模式,即第一模式标志和第二模式标志可以用于基于候选模式对预测模式进行选择。
示例性的,在本申请的实施例中,候选模式包括有帧间预测模式、帧内预测模式、串预测模式、帧内块拷贝预测模式等,编码器确定的第一模式标志指示候选模式中的一个预测模式为第一预测模式,确定的第二模式标志指示候选模式中的另一个预测模式为第二预测模式。
由此可见,在本申请中,编码器除了确定指示是够使用两种不同的预测模式进行预测处理的预测模式参数以外,还可以确定出指示第一预测模式和第二预测模式的标志信息。
可选地,在本申请中,对于仅仅使用两种确定的预测模式,如一种是帧内预测,一种是帧间预测,那么编码器可以直接确定第一模式标志和第二模式标志进行第一预测模式和第二预测模式的确定,而不需要选择预测模式。
可选地,在本申请中,如果需要在多种预测模式中选择两种预测模式,比如说在帧内SCC编码中,可以使用的预测模式包括(普通)帧内预测,帧内块拷贝模式,串预测SP,那么,编码器确定的第一模式标志和第二模式标志可以表明第一预测模式是哪种预测模式,第二预测模式是哪种预测模式。例如,可以用1~两个bit标志第一预测模式是哪种预测模式,如10表示帧内预测,00表示IBC,01表示SP,对第二预测模式则只有两种选择,只需要1个bit标志。
需要说明的是,编码器除了需要传输上述的控制标志以外,还需要传输表示第一模式索引,第二模式索引,以及权重矩阵的信息等多种标志。
示例性的,在本申请中,编码器可以确定第一模式索引和第二模式索引,并将第一模式索引和第二模式索引写入码流。其中,第一模式索引可以用于对第一预测模式具体为哪一种预测模式进行指示,第二模式索引可以用于对第二预测模式具体为哪一种预测模式进行指示,例如,第一模式索引可以指示第一预测模式为帧内预测模式中的DC模式,第二模式索引可以指示第二预测模式为帧间预测模式中的仿射模式。
示例性的,在本申请中,编码器可以确定第一权重标志和第二权重标志,并将第一权重标志和第二权重标志写入码流;然后可以根据第一权重标志,在权重矩阵中确定第一预测值对应的第一权重;根据第一权重标志,在权重矩阵中确定第一预测值对应的第一权重。
也就是说,在本申请的实施例中,如果当前块使用了两种确定的预测模式,如一种是帧内预测,一种是帧间预测。那么编码器还可以确定帧间预测模式的模式信息,还可以确定帧间预测模式的运动矢量偏差等信息。相应地,编码器还可以确定帧内预测模式的模式信息。
进一步地,编码器还可以确定权重矩阵的信息。具体地,还可以确定帧间预测模式和帧内预测模式对权重矩阵来说是第一预测模式,哪个模式对权重矩阵来说是第二预测模式。或者,确定哪个预测块对权重矩阵来说是第一预测块,哪个预测块对权重矩阵来说是第二预测块。
也就是说,在本申请的实施例中,如果当前块使用了两种确定的预测模式,如一种是帧内预测,一种是帧间预测。那么在码流中除了需要传输是否使用两种不同预测模式的标志以外,如果当前块使用本申请提出的预测方法,那么还需要传输帧间预测的预测模式信息,如果有必要需要传输运动矢量偏差等信息。需要传输帧内预测的预测模式信息。需要传输确定权重矩阵的信息。还需要确定哪个模式对权重矩阵来说是第一预测模式,哪个模式对权重矩阵来说是第二预测模式。或者说确定哪个预测块对权重矩阵来说是第一预测块,哪个预测块对权重矩阵来说是第二预测块。
步骤303、基于第一预测模式和第二预测模式,确定当前块的预测值。
在本申请的实施例中,如果预测模式参数指示当前块使用不同预测模式确定当前块的预测值,那么编码器在确定当前块的第一预测模式和第二预测模式之后,便可以基于第一预测模式和第二预测模式,进一步确定当前块的预测值。
具体地,在本申请的实施例中,编码器在基于第一预测模式和第二预测模式,确定当前块的预测值时,可以基于所述第一预测模式,确定与所述当前块对应的第一预测值;基于所述第二预测模式,确定与所述当前块对应的第二预测值;最后,可以基于所述第一预测值和第二预测值,进一步确定所述当前块的预测值。
需要说明的是,在本申请的实施例中,常见技术在通过当前块的帧内预测块和帧间预测块的加权平均来提升预测质量的,由于对整个帧内预测块和整个帧间预测块均使用同一个权重,因此在帧内预测块或帧间预测块有一部分预测质量不好时,并不能有效地提高最终的预测效果。而本申请提出的预测方法,可以通过对帧内预测块和帧间预测块中的不同像素使用不同的权重,实现预测效果的提升。
可以理解的是,在本申请的实施例中,编码器在确定当前块的预测模式参数之后,即步骤301之后,编码器进行预测处理的方法还可以包括以下步骤:
步骤304、当预测模式参数指示当前块使用不同预测模式确定当前块的预测值时,确定当前块的权重矩阵导出模式。
步骤305、根据权重矩阵导出模式确定当前块的权重矩阵。
在本申请的实施例中,编码器在确定当前块的预测模式参数之后,如果预测模式参数指示当前块使用不同预测模式确定当前块的预测值,那么编码器可以进一步确定当前块的权重矩阵导出模式,进而可以根据权重矩阵导出模式确定当前块的权重矩阵。
进一步地,在本申请的实施例中,编码器在基于第一预测模式和第二预测模式,确定当前块的预测值时,可以基于第一预测模式、第二预测模式以及权重矩阵,最终确定当前块的预测值。
需要说明的是,在本申请中,权重矩阵导出模式用于对当前块使用的权重矩阵进行确定。具体地,权重矩阵导出模式可以是导出权重矩阵的模式。对于一个给定长度和宽度的预测块,每一种权重矩阵导出模式可以导出一个权重矩阵;对于同样大小的预测块,不同权重矩阵导出模式导出的权重矩阵不同。
进一步地,在本申请的实施例中,所有可能的权重矩阵中并非每一个权重矩阵的所有的点的权重都相同。换句话说,至少有一个可能的权重矩阵中包含至少两个不同的权重值。
可选地,在本申请中,所有可能的权重矩阵中都包含至少两个不同的权重值。
可选地,在本申请中,部分权重矩阵中包含至少两个不同的权重值,例如,在本申请中,如果最小权重值是0,最大权重值是8,有一个权重矩阵中有的点是0,有的点是8。相应地,部分权重矩阵中只包含同一个权重值,例如,在本申请中,有一个权重矩阵中所有的点都是4。
需要说明的是,在申请的实施例中,如果权重矩阵包括至少一个权重值,那么该至少一个权重值均大于权重下限阈值且小于权重上限阈值。
具体地,在可以设置权重下限阈值为0,设置权重上限阈值为1。
示例性的,在本申请中,对某个或某些包含至少两个不同权重值的权重矩阵,可以设置一个最小权重值和最大权重值的限制,以使得当前块中的每一个点都是由两个不同的预测模式导出的预测值加权得到的。比如将权重设置为5个档,包括0,1/4,1/2,3/4,1,即将0~1划分为5个档,其中,0表示这个点完全由一个预测模式导出的预测值得到,1表示这个点完全由另一个预测模式导出的预测值得到。此时,可以设置最小权重值为1/4,最大权重值为3/4,那么该权重矩阵所有点都需要两种预测模式导出的预测值加权得到,但并非所有点的权重都相同。
相应地,在本申请中,对某个或某些至包含一个权重值的权重矩阵,该一个权重也可以被最小权重值和最大权重值的限制,即该一个权重也为大于权重下限阈值且小于权重上限阈值的任意值。这样可以使权重矩阵更多样,做出更多样的预测块,覆盖更多场景。
需要说明的是,在申请的实施例中,如果权重矩阵包括两个权重值,那么该两个权重值分别为权重下限阈值和权重上限阈值。
可选地,在本申请中,一个权重矩阵中只有两种权重,其中一个权重表示对应点的预测值完全来自于第一预测块对应点的值,另一个权重表示对应点的预测值完全来自于第二预测块对应点的值。例如,在本申请中,一个权重矩阵中只有两种权重,分别是0和1。
可选地,在本申请中,一个权重矩阵中可能有多种权重,其中最大值(权重上限阈值)和最小值(权重下限阈值)分别表示对应点的预测值完全来自于第一预测块对应点的值或第二预测块对应点的值。不是最大值或最小值的权重值表示对应点的预测值来自于第一预测块和第二预测块对应点的值的加权平均。其中,这个最大值或最小值的权重值组成的区域可以叫做过渡区域(blending area)。
需要说明的是,在本申请中,在权重矩阵只有两种权重的情况下,权重变化的位置构成一条直线,或权重矩阵有多种权重的情况下,过渡区域中权重相同的位置构成一条直线(线段)。其中,该直线可以全是水平竖直的,也可以不全是水平竖直的。
可选地,在本申请中,在权重矩阵只有两种权重的情况下,权重变化的位置构成一条曲线(曲线段),或权重矩阵有多种权重的情况下,过渡区域中权重相同的位置构成一条曲线(曲线段)。
进一步地,在本申请的实施例中,编码器可以采用类似于GPM或AWP的方法来实现权重矩阵的确定。具体地,如果同一个编解码标准或编编码器中使用了GPM或AWP,那么可以使用该方法来确定权重矩阵,这样可以做到复用部分相同的逻辑。如AVS3帧间预测使用了AWP,那么在AVS3中可以使用AWP的方法来确定权重矩阵。当然也可以使用和同一个编解码标准或编编码器中的GPM或AWP不同方法,比如使用不同的模式数,或者不同的过渡区域算法,或者使用不同的参数等。
示例性的饿,AVS3中在帧间预测中使用了AWP模式,AWP的权重矩阵有56种,在本发明中在帧内预测中使用64种权重矩阵,其中有56种和AWP的权重矩阵相同,比如前56种和AWP的权重矩阵相同,剩余的8种权重矩阵每一个权重矩阵都只有一种权重值,该权重值分别为1,2,……,7,8。对这8种权重矩阵,总的权重值为16,即权重值为1表示1:15加权,权重值为2表示2:14加权。这样在64种权重矩阵的模式号进行二值化时,可以都使用6个比特的码字。
因为帧间预测利用了时域上的相关性,它使用的是参考帧中已重建的图像作为参考块。而帧内预测利用了空域上的相关性,它使用的是当前块周边已重建的像素作为参考像素。空域上距离越近相关性越强,距离越远相关性越差。所以如果某种权重矩阵使得一个预测块使用的得到的像素位置都距离参考像素较远,那么这部分可能做不出比现有技术更合适的预测值,那么可以不使用这样的权重矩阵,而在帧间预测中可以使用。
示例性的,在本申请中,AVS3的AWP有56种权重矩阵导出模式,VVC的GPM有64种权重矩阵导出模式。
进一步地,在本申请中,编码器在基于第一预测模式、第二预测模式以及权重矩阵,确定当前块的预测值时,可以根据第一预测模式确定当前块的第一预测值;根据第二预测模式确定当前块的第二预测值;然后可以利用权重矩阵对第一预测值和第二预测值进行加权平均计算,最终获得当前块的预测值。
可选地,在本申请中,编码器可以对当前块分别确定两个不同的预测块(第一预测值和第二预测值),确定一个权重矩阵,接着可以将两个不同的预测块依据权重矩阵进行组合,得到新的预测块。
可选地,在本申请中,编码器可以先根据第一预测模式确定一个预测块(第一预测值),根据第二预测模式确定一个预测块(第二预测值),确定一个权重矩阵,将两个不同的预测块依据权重矩阵进行组合得到新的预测块。
可以理解的是,在本申请中,两个不同的预测块(第一预测值和第二预测值)分别由两种不同的预测模式确定,即通过第一预测模式确定第一预测值,通过第二预测模式确定第二预测值。
示例性的,在本申请中,如果第一预测模式为帧内预测模式,第二预测模式为帧间预测模式,那么对当前块分别使用帧内预测模式和帧间预测模式确定两个不同的预测块,确定当前块的权重矩阵,将两个不同的预测块依据权重矩阵进行组合得到新的预测块。
示例性的,在本申请中,在对当前块进行预测处理时,可以确定第一预测模式为帧内预测模式,并根据该帧内预测模式确定一个预测块。确定第二预测模式为帧间预测模式,并根据该帧间预测模式确定一个预测块。确定当前块的权重矩阵,将两个不同的预测块依据权重矩阵进行组合得到新的预测块。
示例性的,在本申请中,如果第一预测模式为帧内预测模式,第二预测模式为帧内块拷贝模式,那么对当前块分别使用帧内预测和帧内块拷贝模式确定两个不同的预测块。确定当前块的权重矩阵,将两个不同的预测块依据权重矩阵进行组合得到新的预测块。
示例性的,在本申请中,在对当前块进行预测处理时,可以第一预测模式为帧内预测模式,并根据该帧内预测模式确定一个预测块。确定第二预测模式为帧内块拷贝模式,并根据该帧内块拷贝模式确定一个预测块。确定当前块的权重矩阵,将两个不同的预测块依据权重矩阵进行组合得到新的预测块。
由此可见,在对当前块进行帧内预测时,可以使用第一预测模式确定当前块的第一预测块,使用第二预测模式确定当前块的第二预测块,然后可以利用权重矩阵对第一预测块和第二预测块进行组合处理,最终获得一个新的预测块。即基于第一预测模式和第二预测模式,可以对当前块确定两个不完全相同的预测块,确定一个权重矩阵,将两个不同的预测块依据权重矩阵进行组合得到新的预测块。
下面,以帧内预测模式和帧间预测模式这两种不同的预测模式为例,对本申请提出的预测方法进行示例性说明,其中,predMatrix new[i][j]为当前块中的点(i,j)的新的预测值,predMatrix intra[i][j]为当前块中的点(i,j)的帧内预测值,predMatrix inter为当前块中的点(i,j)的帧间预测值,weightMatrix为当前块的权重矩阵,weightMatrix[i][j]为当前块中的点(i,j)的权重值:
可选地,在本申请中,编码器可以先编码帧内预测模式再编码帧间预测模式。或者先编码帧间预测模式再编码帧内预测模式。对权重矩阵来说,帧内预测块是第一预测块,帧间预测块是第二预测块:
Figure PCTCN2020140106-appb-000001
由于weightMatrix[i][j]可以为分数或者小数,为了避免分数或小数增加计算的复杂度,可以将weightMatrix[i][j]放大2 n,即改写为:
Figure PCTCN2020140106-appb-000002
或者,对权重矩阵来说帧内预测块是第二预测块,而帧间预测块是第一预测块:
Figure PCTCN2020140106-appb-000003
由于weightMatrix[i][j]可以为分数或者小数,为了避免分数或小数增加计算的复杂度,可以将weightMatrix[i][j]放大2 n,即改写为:
Figure PCTCN2020140106-appb-000004
可选地,在本申请中,编码器可以先编码帧内预测模式再编码帧间预测模式。或者先编码帧间预测模式再编码帧内预测模式。然后编码一个标志来表示哪一个预测块是第一预测块,其中,该也可以先编码标志。具体地,如果这个标志为0,则表示帧内预测块为第一预测块predMatrix 0[i][j],帧间预测块为第二预测块predMatrix 1[i][j]:
Figure PCTCN2020140106-appb-000005
由于weightMatrix[i][j]可以为分数或者小数,为了避免分数或小数增加计算的复杂度,可以将weightMatrix[i][j]放大2 n,即改写为:
Figure PCTCN2020140106-appb-000006
可选地,在本申请中,编码器也可以先编码一个标志来表示先编码帧内预测模式再编码帧间预测模式,还是先编码帧间预测模式再编码帧内预测模式,其中,先编码的预测模式的预测块就作为第一预测块,后编码的预测模式的预测块就作为第二预测块。
进一步地,在本申请的实施例中,编码器进行预测的方法还可以包括以下步骤:
步骤401、确定当前块的预测模式参数。
步骤402、当预测模式参数指示当前块使用不同预测模式确定当前块的预测值时,确定当前块的第一预测模式,并根据第一预测模式确定当前块的第一预测值。
步骤403、确定当前块的第二预测模式,并根据第二预测模式确定当前块的第二预测值。
步骤404、基于第一预测值和第二预测值,确定当前块的预测值。
可以理解的是,在本申请中,编码器在确定当前块使用不同预测模式确定当前块的预测值之后,先编码的预测模式作为第一预测模式,先编码的预测模式的预测块就作为第一预测块(即第一预测值),后编码的预测模式作为第二预测模式,后编码的预测模式的预测块就作为第二预测块(即第二预测值)。
示例性的,在本申请中,如果当前块的两种预测模式为帧间预测模式和帧内预测模块,那么无论是先编码帧内预测模式再编码帧间预测模式,还是先编码帧间预测模式再编码帧内预测模式,编码器可以直接将先编码的预测模式的预测块就作为第一预测块,将后编码的预测模式的预测块就作为第二预测块。
对应地,在本申请的实施例中,在解码端可以按照与编码端对应的规则进行解码。
在本申请的实施例中,进一步地,由于本申请提出的预测方法,需要使用两个不同的预测模式,和一个权重矩阵确定当前块的预测值,因此,为了降低开销,在本申请中,可以通过对当前块的两种预测模式进行限制来降低比特数,同时,也可以通过对当前块的权重矩阵导出模式进行限制来降低比特数。
示例性的,在本申请中,由于AVS3的前33个预测模式已经几乎覆盖了整个角度范围,因此在AVS3中只使用前33种预测模式便可以保证较好的性能,且在解码时只需要调整为不使用EIPM即可。进一步地,还可以对当前块可能使用的帧内预测模式的个数进行进一步的压缩和限制,最终实现只使用5个比特进行解码,从而进一步减少开销,进而达到更好的性能。
可选地,在本申请中,可以通过减少当前块可能使用的权重矩阵导出模式个数来降低权重矩阵导出模式的开销。例如,在AVS3中,如果使用56种权重矩阵导出模式,最多需要6个比特来解码一个权重矩阵导出模式,而如果只使用3两种权重矩阵导出模式,则最多只需要5个比特来解码一个权重矩阵导出模式。进一步地,还可以对当前块可能使用的权重矩阵导出模式的个数进行进一步的压缩和限制,如只使用16种权重矩阵导出模式,最终实现只使用4个比特进行解码,从而进一步减少开销,进而达到更好的性能。
需要说明的是,在本申请的实施例中,在对权重矩阵导出模式的个数进行限制时,既可以直接对全部预测块的权重矩阵导出模式的个数执行限制处理,还可以参考当前块的尺寸参数,对不同大小的当前块使用不同的限制方式。
示例性的,在本申请中,对于尺寸参数较大的预测块,如64×64或32×32大小的预测块,可以使用全部权重矩阵导出模式进行当前块的权重矩阵导出模式的确定,而对于尺寸参数较小的预测块,如8×8大小的预测块,可以使用部分权重矩阵导出模式进行当前块的权重矩阵导出模式的确定,即对当前块可能使用的权重矩阵导出模式的数量进行限制,这是因为对于尺寸参数较小的预测块来说,细微的角度差异所造成的影响的并不明显。
可以理解的是,在本申请中,可以先设置一个尺寸阈值,如第一尺寸阈值,若当前块的尺寸参数小于第一尺寸阈值,那么可以认为细微的角度差异不会造成较大的影响,因此可以限制当前块能够选择的权重矩阵导出模式的个数。具体地,可以通过对在当前块的权重矩阵导出模式的索引序号进行限制,来实现对权重矩阵导出模式的个数的限制。
示例性的,在本申请中,如果当前块的尺寸参数小于第一尺寸阈值,那么可以根据第一模式索引范围确定权重矩阵导出模式;其中,第一模式索引范围用于对权重矩阵导出模式的索引序号进行限制。具体地,第一模式索引范围可以包括第一下限阈值和第一上限阈值,可以将权重矩阵到处模式的索引序号分别与第一下限阈值和第一上限阈值进行比较,如果权重矩阵导出模式的索引序号小于第一下限阈值,那么可以将权重矩阵导出模式的索引序号设置为第一下限阈值;如果权重矩阵导出模式的索引序号大于第一上限阈值,那么可以将权重矩阵导出模式的索引序号设置为第一上限阈值。
也就是说,在本申请中,可以通过第一模式索引范围限制当前块的权重矩阵导出模式的索引序号,从而完成对权重矩阵导出模式数量的限制。
例如,在AVS3中,第一模式索引范围可以为0-32,即可以通过第一模式索引范围将权重矩阵导出模式的索引序号限制在0-32之内,因此当前块可以使用前33种权重矩阵导出模式来进行当前块的权重矩阵导出模式的确定。
可选地,在本申请中,可以通过减少当前块可能使用的帧内预测模式个数来降低解码两种预测模式的开销。例如,在AVS3中,如果使用66种帧内预测模式,最多需要7个比特来解码一个帧内预测模式,而如果只使用33种帧 内预测模式,且不使用PCM模式,则最多只需要6个比特来解码一个帧内预测模式。
需要说明的是,在本申请的实施例中,在对帧内预测模式的个数进行限制时,既可以直接对全部预测块的帧内预测模式的个数执行限制处理,还可以参考当前块的尺寸参数,对不同大小的当前块使用不同的限制方式。
示例性的,在本申请中,对于尺寸参数较大的预测块,如64×64或32×32大小的预测块,可以使用全部帧内预测模式进行当前块的帧内预测模式的确定,而对于尺寸参数较小的预测块,如8×8大小的预测块,可以使用部分帧内预测模式进行当前块的帧内预测模式的确定,即对当前块可能使用的帧内预测模式的数量进行限制,这是因为对于尺寸参数较小的预测块来说,细微的角度差异所造成的影响的并不明显。
可以理解的是,在本申请中,可以先设置一个尺寸阈值,如第二尺寸阈值,若当前块的尺寸参数小于第二尺寸阈值,那么可以认为细微的角度差异不会造成较大的影响,因此可以限制当前块能够选择的帧内预测模式的个数。具体地,可以通过对在当前块的帧内预测模式的索引序号进行限制,来实现对帧内预测模式的个数的限制。
示例性的,在本申请中,如果当前块的尺寸参数小于第二尺寸阈值,那么可以根据第二模式索引范围确定帧内预测模式;其中,第二模式索引范围用于对帧内预测模式的索引序号进行限制。具体地,第二模式索引范围可以包括第二下限阈值和第二上限阈值,可以先确定帧内预测模式的索引序号;然后设置索引序号大于第二下限阈值;设置索引序号小于第二上限阈值。
也就是说,在本申请中,可以通过第二模式索引范围限制当前块的帧内预测模式的索引序号,从而完成对帧内预测模式数量的限制。
例如,在AVS3中,第二模式索引范围可以为0-32,即可以通过第二模式索引范围将第一预测模式的索引序号限制在0-32之内,因此当前块可以使用前33种预测模式来进行帧内预测模式的确定。
可以理解的是,在本申请中,第一尺寸阈值与第二尺寸阈值可以相同也可以不同;第一模式索引范围与第二模式索引范围可以相同也可以不同。
进一步地,在本申请中,对于帧间预测模式,可以通过减少使用的帧间预测模式,来降低本申请编码帧间预测模式的开销。例如,在本申请中,可以选择只使用skip或merge或direct模式,而不使用需要编码mvd的普通inter模式。
具体地,在本申请中,由于在块的尺寸较小的情况下,细微的角度差异影响的并不明显,因此,对于尺寸较大的块,如64×64,32×32的块,选择使用需要编码mvd的普通inter模式,而对于尺寸较小的块,如8×8的块,选择不使用需要编码mvd的普通inter模式。例如,设置一个块大小的预测INTER_MODE_SIZE_THR,如16,如果块的长度和宽度都大于等于INTER_MODE_SIZE_THR,便可以使用需要编码mvd的普通inter模式,否则,可以不使用需要编码mvd的普通inter模式。
也就是说,在本申请的实施例中,在对帧间预测模式的数量进行限制时,既可以直接对全部预测块的帧间预测模式的个数执行限制处理,还可以参考当前块的尺寸参数,对不同大小的当前块使用不同的限制方式。
示例性的,在本申请中,对于尺寸参数较大的预测块,如64×64或32×32大小的预测块,可以使用候选帧间预测模式进行当前块的帧间预测模式的确定,其中,候选帧间预测模式可以包括需要编码mvd的普通inter模式,而对于尺寸参数较小的预测块,如8×8大小的预测块,可以选择候选帧间预测模式以外的其他帧间预测模式进行当前块的帧间预测模式的确定,即对当前块可能使用的帧间预测模式的数量进行限制,这是因为对于尺寸参数较小的预测块来说,细微的角度差异所造成的影响的并不明显。
可以理解的是,在本申请中,可以先设置一个尺寸阈值,如第三尺寸阈值,若当前块的尺寸参数小于第三尺寸阈值,那么可以认为细微的角度差异不会造成较大的影响,因此可以选择候选帧间预测模式以外的其他帧间预测模式进行当前块的帧间预测模式的确定,而在尺寸参数大于第三尺寸阈值时,则需要通过候选帧间预测模式限制当前块能够选择的帧间预测模式。
可以理解的是,在本申请中,第三尺寸阈值与第二尺寸阈值可以相同也可以不同。
进一步地,在本申请的实施例中,在确定出当前块使用的预测模式之后,需要保存该当前块的预测模式等信息以供后续编解码的块参考,其中,后续编解码的块包括但不限于空域上与当前块相邻的预测块和时域上会用到当前块的信息的预测块。具体地,如果当前块使用两种不同的预测模式,那么可以根据多种方法进行当前块的预测模式的保存。
可以理解的是,在本申请的实施例中,如果当前块使用两种不同的预测模式,那么在使用当前块对其他待预测块进行预测时,将第一预测模式和/或第二预测模式设置为当前块的预测模式。
示例性的,在本申请中,如果当前块使用帧间预测模式和帧内预测模式这两种不同的预测模式,那么当前块的一部分最小单元选择保存帧内预测模式,一部分最小单元选择保存帧间预测模式。具体地,可以使用与GPM或AWP类似的方法。如果同一个编解码标准或编编码器中使用了GPM或AWP其一,那么可以使用与该方法相似的逻辑。这样可以做到复用部分相同的逻辑。例如,AVS3帧间预测使用了AWP,那么在AVS3中,可以使用与AWP保存两个不同运动信息相似的逻辑来保存两个不同的预测模式,即如果一个最小单元对应的位置只使用了帧内预测模式确定的预测块,那么这个最小单元保存该帧内预测模式;如果一个最小单元对应的位置只使用了帧间预测模式确定的预测块,那么这个最小单元保存该帧间预测模式;如果一个最小单元对应的位置既使用了帧内预测模式确定的预测块又使用了帧间预测模式确定的预测块,那么根据可以在帧内预测模式和帧间预测模式之中选择一个进行保存。
示例性的,在本申请中,如果当前块使用帧间预测模式和帧内预测模式这两种不同的预测模式,那么还可以对整个当前块所对应的所有最小单元都只选择同一个预测模式进行保存。
可以理解的是,在本申请中,虽然帧内的预测模式和帧间的运动信息的保存都是为了给其他块做参考,但是帧内的预测模式和帧间的运动信息的编码方式不同,它们是有区别的。因此对每一个最小单元选择是使用帧内预测模式或帧间预测模式会带来一定的复杂度。以AVS3为例,目前AVS3的帧内预测共66种模式,每个当前块预测前会 构造出2个最可能模式MPM(most probable mode,MPM),如果当前块使用了MPM,那么就从2个MPM中选择一个,否则需要在64个模式中选择一个预测模式。而对帧间预测来说,预测前当前块会构建运动矢量的预测值(motion vector prediction/predictor,MVP),在使用MVP和不直接使用MVP时,都需要通过选择来编码运动矢量偏差(motion vector difference,MVD)。可以认为MVP越接近编码效率越高,但MPM如果没有选到就基本没有作用。
可见,对整个当前块所对应的所有最小单元都只选择同一个预测模式进行保存,复杂度更低。
可选地,在本申请中,当前块的所有权重矩阵导出模式全都选择帧内预测模式。
可选地,在本申请中,当前块的所有权重矩阵导出模式全都选择帧间预测模式。
可选地,在本申请中,当前块的某些权重矩阵导出模式的所有最小单元都选择帧内预测模式,某些权重矩阵导出模式的所有最小单元都选择帧间预测模式。即根据权重矩阵导出模式确定当前块的所有最小单元是都保存帧内预测模式还是都保存帧间预测模式。
可选地,在本申请中,使用当前块的权重矩阵导出模式的模式号计算。
可选地,在本申请中,使用当前块的权重矩阵导出模式的模式号查表。例如,如果使用和AWP相同的权重矩阵导出模式,如果权重矩阵导出模式的模式号对应的是0,则选择帧内预测模式,如果权重矩阵导出模式的模式号对应的是1,则选择帧间预测模式。相应地,在本申请中,如果当前块的一个最小单元保存的预测模式为帧内预测模式,那么这个最小单元同时标记为使用帧内预测。如果当前块的一个最小单元保存的预测模式为帧间预测模式,那么这个最小单元同时标记为使用帧间预测。
进一步地,在本申请的实施例中,本申请提出的预测方法与某些改进预测模式叠加作用的效果可能并不明显,因此可以设置本申请提出的预测方法与某个或某些预测模式的互斥关系。也就是说,如果当前块使用本申请提出的预测方法,便可以确定不使用该互斥的预测模式,这样就不需要在码流中传输该互斥的预测模式是否使用的标志。或者,如果当前块使用该互斥的预测模式,便可以确定当前块不使用本申请提出的预测方法,这样就不需要在码流中传输是否使用本申请提出的预测方法的标志。从而节省没必要的标志在码流中的传输,这样在整体的压缩性能上更好。
可选地,在本申请中,在AVS3中,本申请提出的预测方法与IPF互斥。
可选地,在本申请中,在AVS3中,本申请提出的预测方法与推导树(derived tree,DT)互斥。其中,DT技术可以将当前CU划分成矩形的PU。
可选地,在本申请中,本申请提出的预测方法与双向预测互斥。
可选地,在本申请中,本申请提出的预测方法与仿射预测互斥。
进一步地,在本申请中,还有一些预测模式,如BIO和DMVR,它们不需要对当前块单独标志是否使用,而是在条件符合的情况下自动开启。那么如果本申请提出的预测方法与这种预测模式互斥,那么如果当前块使用了本申请提出的预测方法就不会再使用这种互斥的预测模式。例如,可以设置本申请提出的预测方法的帧间预测可以使用双向预测,但不使用BIO和DMVR。
本申请实施例提供一种预测方法,编码器确定当前块的预测模式参数;当预测模式参数指示当前块使用不同预测模式确定当前块的预测值时,确定当前块的第一预测模式和第二预测模式;其中,第一预测模式和第二预测模式分别为以下多个预测模式中的任意两个模式:帧内预测模式、帧间预测模式、帧内块拷贝模式,调色板模式,串预测模式;基于第一预测模式和第二预测模式,确定当前块的预测值。也就是说,在本申请的实施例中,编解码器可以通过两种不同的预测模式确定当前块的两个不同的预测块,然后可以按照权重矩阵对两个不同的预测块进行组合,最终得到更复杂的预测块,提高了预测的准确性,也就是说,本申请提出的预测方法,能够提升预测质量,提高压缩性能。
基于上述实施例,在本申请的再一实施例中,图18为本申请实施例提出的编码器的组成结构示意图一,如图18所示,本申请实施例提出的编码器300可以包括第一确定部分301,
所述第一确定部分301,配置为确定当前块的预测模式参数;当所述预测模式参数指示所述当前块使用不同预测模式确定所述当前块的预测值时,确定所述当前块的第一预测模式和第二预测模式;其中,所述第一预测模式和所述第二预测模式分别为以下多个预测模式中的任意两个模式:帧内预测模式、帧间预测模式、帧内块拷贝模式,调色板模式,串预测模式;基于所述第一预测模式和所述第二预测模式,确定所述当前块的预测值。
图19为本申请实施例提出的编码器的组成结构示意图二,如图19所示,本申请实施例提出的编码器300还可以包括第一处理器302、存储有第一处理器302可执行指令的第一存储器303、第一通信接口304,和用于连接第一处理器302、第一存储器303以及第一通信接口304的第一总线305。
进一步地,在本申请的实施例中,上述第一处理器302,用于确定当前块的预测模式参数;当所述预测模式参数指示所述当前块使用不同预测模式确定所述当前块的预测值时,确定所述当前块的第一预测模式和第二预测模式;其中,所述第一预测模式和所述第二预测模式分别为以下多个预测模式中的任意两个模式:帧内预测模式、帧间预测模式、帧内块拷贝模式,调色板模式,串预测模式;基于所述第一预测模式和所述第二预测模式,确定所述当前块的预测值。
图20为本申请实施例提出的解码器的组成结构示意图一,如图20所示,本申请实施例提出的解码器400可以包括解码部分401,第二确定部分402,
所述解码部分401,配置为解析码流;
所述第二确定部分402,配置为确定当前块的预测模式参数;当所述预测模式参数指示所述当前块使用不同预测模式确定所述当前块的预测值时,确定所述当前块的第一预测模式和第二预测模式;其中,所述第一预测模式和所述第二预测模式分别为以下多个预测模式中的任意两个模式:帧内预测模式、帧间预测模式、帧内块拷贝模式,调 色板模式,串预测模式;基于所述第一预测模式和所述第二预测模式,确定所述当前块的预测值。
图21为本申请实施例提出的解码器的组成结构示意图二,如图21所示,本申请实施例提出的解码器400还可以包括第二处理器403、存储有第二处理器403可执行指令的第二存储器404、第二通信接口405,和用于连接第二处理器403、第二存储器404以及第二通信接口405的第二总线406。
进一步地,在本申请的实施例中,上述第二处理器403,用于解析码流,确定当前块的预测模式参数;当所述预测模式参数指示所述当前块使用不同预测模式确定所述当前块的预测值时,确定所述当前块的第一预测模式和第二预测模式;其中,所述第一预测模式和所述第二预测模式分别为以下多个预测模式中的任意两个模式:帧内预测模式、帧间预测模式、帧内块拷贝模式,调色板模式,串预测模式;基于所述第一预测模式和所述第二预测模式,确定所述当前块的预测值。
另外,在本实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例提供了一种编解码器,解码器解析码流,确定当前块的预测模式参数;当预测模式参数指示当前块使用不同预测模式确定当前块的预测值时,确定当前块的第一预测模式和第二预测模式;其中,第一预测模式和第二预测模式分别为以下多个预测模式中的任意两个模式:帧内预测模式、帧间预测模式、帧内块拷贝模式,调色板模式,串预测模式;基于第一预测模式和第二预测模式,确定当前块的预测值。编码器确定当前块的预测模式参数;当预测模式参数指示当前块使用不同预测模式确定当前块的预测值时,确定当前块的第一预测模式和第二预测模式;基于第一预测模式和第二预测模式,确定当前块的预测值。也就是说,在本申请的实施例中,编解码器可以通过两种不同的预测模式确定当前块的两个不同的预测块,然后可以按照权重矩阵对两个不同的预测块进行组合,最终得到更复杂的预测块,提高了预测的准确性,也就是说,本申请提出的预测方法,能够提升预测质量,提高压缩性能。
本申请实施例提供计算机可读存储介质和计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现如上述实施例所述的方法。
具体来讲,本实施例中的一种预测方法对应的程序指令可以被存储在光盘,硬盘,U盘等存储介质上,当存储介质中的与一种预测方法对应的程序指令被一电子设备读取或被执行时,包括如下步骤:
解析码流,确定当前块的预测模式参数;
当所述预测模式参数指示所述当前块使用不同预测模式确定所述当前块的预测值时,确定所述当前块的第一预测模式和第二预测模式;其中,所述第一预测模式和所述第二预测模式分别为以下多个预测模式中的任意两个模式:帧内预测模式、帧间预测模式、帧内块拷贝模式,调色板模式,串预测模式;
基于所述第一预测模式和所述第二预测模式,确定所述当前块的预测值。
还包括如下步骤:
确定当前块的预测模式参数;
当所述预测模式参数指示所述当前块使用不同预测模式确定所述当前块的预测值时,确定所述当前块的第一预测模式和第二预测模式;其中,所述第一预测模式和所述第二预测模式分别为以下多个预测模式中的任意两个模式:帧内预测模式、帧间预测模式、帧内块拷贝模式,调色板模式,串预测模式;
基于所述第一预测模式和所述第二预测模式,确定所述当前块的预测值。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的实现流程示意图和/或方框图来描述的。应理解可由计算机程序指令实现流程示意图和/或方框图中的每一流程和/或方框、以及实现流程示意图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。
工业实用性
本申请实施例提供了一种预测方法、编码器、解码器以及存储介质,解码器解析码流,确定当前块的预测模式参数;当预测模式参数指示当前块使用不同预测模式确定当前块的预测值时,确定当前块的第一预测模式和第二预测模式;其中,第一预测模式和第二预测模式分别为以下多个预测模式中的任意两个模式:帧内预测模式、帧间预测模式、帧内块拷贝模式,调色板模式,串预测模式;基于第一预测模式和第二预测模式,确定当前块的预测值。编码器确定当前块的预测模式参数;当预测模式参数指示当前块使用不同预测模式确定当前块的预测值时,确定当前块的第一预测模式和第二预测模式;基于第一预测模式和第二预测模式,确定当前块的预测值。也就是说,在本申请的实施例中,编解码器可以通过两种不同的预测模式确定当前块的两个不同的预测块,然后可以按照权重矩阵对两个不同的预测块进行组合,最终得到更复杂的预测块,提高了预测的准确性,也就是说,本申请提出的预测方法,能够提升预测质量,提高压缩性能。

Claims (58)

  1. 一种预测方法,应用于解码器,所述方法包括:
    解析码流,确定当前块的预测模式参数;
    当所述预测模式参数指示所述当前块使用不同预测模式确定所述当前块的预测值时,确定所述当前块的第一预测模式和第二预测模式;其中,所述第一预测模式和所述第二预测模式分别为以下多个预测模式中的任意两个模式:帧内预测模式、帧间预测模式、帧内块拷贝模式,调色板模式,串预测模式;
    基于所述第一预测模式和所述第二预测模式,确定所述当前块的预测值。
  2. 根据权利要求1所述的方法,其中,所述第一预测模式和所述第二预测模式分别为帧内预测模式和帧间预测模式。
  3. 根据权利要求1所述的方法,其中,所述基于所述第一预测模式和第二预测模式,确定所述当前块的预测值,包括:
    基于所述第一预测模式,确定与所述当前块对应的第一预测值;
    基于所述第二预测模式,确定与所述当前块对应的第二预测值;
    基于所述第一预测值和第二预测值,确定所述当前块的预测值。
  4. 根据权利要求1所述的方法,其中,所述方法还包括:
    当所述预测模式参数指示所述当前块使用不同预测模式确定所述当前块的预测值时,确定所述当前块的权重矩阵导出模式;
    根据所述权重矩阵导出模式确定所述当前块的权重矩阵。
  5. 根据权利要求1所述的方法,其中,所述基于所述第一预测模式和第二预测模式,确定所述当前块的预测值,包括:
    基于所述第一预测模式、所述第二预测模式以及所述权重矩阵,确定所述当前块的预测值。
  6. 根据权利要求5所述的方法,其中,所述基于所述第一预测模式、所述第二预测模式以及所述权重矩阵,确定所述当前块的预测值,包括:
    根据所述第一预测模式确定所述当前块的第一预测值;根据所述第二预测模式确定所述当前块的第二预测值;
    利用所述权重矩阵对所述第一预测值和所述第二预测值进行加权平均计算,获得所述当前块的预测值。
  7. 根据权利要求1或2所述的方法,其中,所述确定所述当前块的第一预测模式和第二预测模式,包括:
    解析所述码流,确定第一模式标志和第二模式标志;
    将所述第一模式标志指示的预测模式确定为所述第一预测模式,将所述第二模式标志指示的预测模式确定为所述第二预测模式。
  8. 根据权利要求1或2所述的方法,其中,所述确定所述当前块的第一预测模式和第二预测模式,包括:
    解析所述码流,确定第一模式标志和第二模式标志;
    根据所述第一模式标志在候选模式中确定所述第一预测模式;
    根据所述第二模式标志,在所述候选模式的、所述第一预测模式以外的其他模式中确定所述第二预测模式。
  9. 根据权利要求4所述的方法,其中,
    若所述权重矩阵包括至少一个权重值,则所述至少一个权重值均大于权重下限阈值且小于权重上限阈值。
  10. 根据权利要求4所述的方法,其中,
    若所述权重矩阵包括两个权重值,则所述两个权重值分别为权重下限阈值和权重上限阈值。
  11. 根据权利要求9或10所述的方法,其中,
    设置所述权重下限阈值为0,设置所述权重上限阈值为1。
  12. 根据权利要求1所述的方法,其中,所述方法还包括:
    确定所述当前块的尺寸参数;
    根据所述尺寸参数确定所述当前块的所述预测模式参数。
  13. 根据权利要求12所述的方法,其中,所述尺寸参数包括宽度和高度;所述方法还包括:
    若所述宽度大于第一阈值且所述高度大于第二阈值,则确定所述当前块使用不同预测模式确定所述当前块的预测值;或者,
    若所述宽度小于第三阈值且所述高度小于第四阈值,则确定所述当前块使用不同预测模式确定所述当前块的预测值。
  14. 根据权利要求13所述的方法,其中,
    根据所述宽度和长度确定所述当前块的长宽比;
    若所述长宽比小于第五阈值,则确定所述当前块使用不同预测模式确定所述当前块的预测值;或者,
    若所述长宽比的倒数小于所述第五阈值,则确定所述当前块使用不同预测模式确定所述当前块的预测值。
  15. 根据权利要求1所述的方法,其中,所述方法还包括:
    确定所述当前块的像素总数;
    根据所述像素总数和第六阈值判断所述当前块是否使用不同预测模式确定所述当前块的预测值。
  16. 根据权利要求2所述的方法,其中,所述方法还包括:
    根据第一模式索引范围确定所述权重矩阵导出模式;其中,所述第一模式索引范围用于对所述权重矩阵导出模式的索引序号进行限制。
  17. 根据权利要求4所述的方法,其中,所述方法还包括:
    若所述当前块的尺寸参数小于第一尺寸阈值,则根据第一模式索引范围确定所述权重矩阵导出模式;其中,所 述第一模式索引范围用于对所述权重矩阵导出模式的索引序号进行限制。
  18. 根据权利要求16或17所述的方法,其中,第一模式索引范围包括第一下限阈值和第一上限阈值,所述方法还包括:
    若所述权重矩阵导出模式的索引序号小于所述第一下限阈值,则将所述权重矩阵导出模式的索引序号设置为所述第一下限阈值;
    若所述权重矩阵导出模式的索引序号大于所述第一上限阈值,则将所述权重矩阵导出模式的索引序号设置为所述第一上限阈值。
  19. 根据权利要求2所述的方法,其中,所述方法还包括:
    根据第二模式索引范围确定所述帧内预测模式;其中,所述第二模式索引范围用于对帧内预测模式的索引序号进行限制。
  20. 根据权利要求2所述的方法,其中,所述方法还包括:
    若所述当前块的尺寸参数小于第二尺寸阈值,则根据第二模式索引范围确定所述帧内预测模式;其中,所述第二模式索引范围用于对帧内预测模式的索引序号进行限制。
  21. 根据权利要求2所述的方法,其中,所述方法还包括:
    根据候选帧间预测模式确定所述帧间预测模式。
  22. 根据权利要求2所述的方法,其中,所述方法还包括:
    若所述当前块的尺寸参数大于第三尺寸阈值,则根据候选帧间预测模式确定所述帧间预测模式。
  23. 根据权利要求1所述的方法,其中,所述方法还包括:
    在使用所述当前块对其他待预测块进行预测时,将所述第一预测模式和/或所述第二预测模式设置为所述当前块的预测模式。
  24. 根据权利要求1所述的方法,其中,所述方法还包括:
    解析所述码流,确定所述当前块的预测模式参数;
    当所述预测模式参数指示所述当前块使用不同预测模式确定所述当前块的预测值时,确定所述当前块的第一预测模式,并根据所述第一预测模式确定所述当前块的第一预测值;
    确定所述当前块的第二预测模式,并根据所述第二预测模式确定所述当前块的第二预测值;
    基于所述第一预测值和所述第二预测值,确定所述当前块的预测值。
  25. 根据权利要求1或2所述的方法,其中,所述方法还包括:
    解析所述码流,确定所述第一模式索引和所述第二模式索引。
  26. 根据权利要求5所述的方法,其中,所述方法还包括:
    解析所述码流,确定第一权重标志和第二权重标志;
    根据所述第一权重标志,在所述权重矩阵中确定所述第一预测值对应的第一权重;根据所述第一权重标志,在所述权重矩阵中确定所述第一预测值对应的第一权重。
  27. 一种预测方法,应用于编码器,所述方法包括:
    确定当前块的预测模式参数;
    当所述预测模式参数指示所述当前块使用不同预测模式确定所述当前块的预测值时,确定所述当前块的第一预测模式和第二预测模式;其中,所述第一预测模式和所述第二预测模式分别为以下多个预测模式中的任意两个模式:帧内预测模式、帧间预测模式、帧内块拷贝模式,调色板模式,串预测模式;
    基于所述第一预测模式和所述第二预测模式,确定所述当前块的预测值。
  28. 根据权利要求27所述的方法,其中,所述第一预测模式和所述第二预测模式分别为帧内预测模式和帧间预测模式。
  29. 根据权利要求27所述的方法,其中,所述基于所述第一预测模式和第二预测模式,确定所述当前块的预测值,包括:
    基于所述第一预测模式,确定与所述当前块对应的第一预测值;
    基于所述第二预测模式,确定与所述当前块对应的第二预测值;
    基于所述第一预测值和第二预测值,确定所述当前块的预测值。
  30. 根据权利要求27所述的方法,其中,所述方法还包括:
    当所述预测模式参数指示所述当前块使用不同预测模式确定所述当前块的预测值时,确定所述当前块的权重矩阵导出模式;
    根据所述权重矩阵导出模式确定所述当前块的权重矩阵。
  31. 根据权利要求27所述的方法,其中,所述基于所述第一预测模式和第二预测模式,确定所述当前块的预测值,包括:
    基于所述第一预测模式、所述第二预测模式以及所述权重矩阵,确定所述当前块的预测值。
  32. 根据权利要求31所述的方法,其中,所述基于所述第一预测模式、所述第二预测模式以及所述权重矩阵,确定所述当前块的预测值,包括:
    根据所述第一预测模式确定所述当前块的第一预测值;根据所述第二预测模式确定所述当前块的第二预测值;
    利用所述权重矩阵对所述第一预测值和所述第二预测值进行加权平均计算,获得所述当前块的预测值。
  33. 根据权利要求28所述的方法,其中,所述确定所述当前块的第一预测模式和第二预测模式,包括:
    确定第一模式标志和第二模式标志;
    将所述第一模式标志指示的预测模式确定为所述第一预测模式,将所述第二模式标志指示的预测模式确定为所 述第二预测模式。
  34. 根据权利要求27所述的方法,其中,所述确定所述当前块的第一预测模式和第二预测模式,包括:
    确定第一模式标志和第二模式标志;
    根据所述第一模式标志在候选模式中确定所述第一预测模式;
    根据所述第二模式标志,在所述候选模式的、所述第一预测模式以外的其他模式中确定所述第二预测模式。
  35. 根据权利要求30所述的方法,其中,
    若所述权重矩阵包括至少一个权重值,则所述至少一个权重值均大于权重下限阈值且小于权重上限阈值。
  36. 根据权利要求30所述的方法,其中,
    若所述权重矩阵包括两个权重值,则所述两个权重值分别为权重下限阈值和权重上限阈值。
  37. 根据权利要求35或36所述的方法,其中,
    设置所述权重下限阈值为0,设置所述权重上限阈值为1。
  38. 根据权利要求27所述的方法,其中,所述方法还包括:
    确定所述当前块的尺寸参数;
    根据所述尺寸参数确定所述当前块的所述预测模式参数。
  39. 根据权利要求38所述的方法,其中,所述尺寸参数包括宽度和高度;所述方法还包括:
    若所述宽度大于第一阈值且所述高度大于第二阈值,则确定所述预测模式参数指示所述当前块使用不同预测模式确定所述当前块的预测值;或者,
    若所述宽度小于第三阈值且所述高度小于第四阈值,则确定所述预测模式参数指示所述当前块使用不同预测模式确定所述当前块的预测值。
  40. 根据权利要求27所述的方法,其中,所述方法还包括:
    确定所述当前块的像素总数;
    根据所述像素总数和第六阈值判断所述预测模式参数是否指示所述当前块使用不同预测模式确定所述当前块的预测值。
  41. 根据权利要求39所述的方法,其中,
    根据所述宽度和长度确定所述当前块的长宽比;
    若所述长宽比大于第五阈值,则确定所述预测模式参数指示所述当前块使用不同预测模式确定所述当前块的预测值;或者,
    若所述长宽比的倒数大于所述第五阈值,则确定所述预测模式参数指示所述当前块使用不同预测模式确定所述当前块的预测值。
  42. 根据权利要求30所述的方法,其中,所述方法还包括:
    根据第一模式索引范围确定所述权重矩阵导出模式;其中,所述第一模式索引范围用于对所述权重矩阵导出模式的索引序号进行限制。
  43. 根据权利要求30所述的方法,其中,所述方法还包括:
    若所述当前块的尺寸参数小于第一尺寸阈值,则根据第一模式索引范围确定所述权重矩阵导出模式;其中,所述第一模式索引范围用于对所述权重矩阵导出模式的索引序号进行限制。
  44. 根据权利要求42或43所述的方法,其中,第一模式索引范围包括第一下限阈值和第一上限阈值,所述方法还包括:
    若所述权重矩阵导出模式的索引序号小于所述第一下限阈值,则将所述权重矩阵导出模式的索引序号设置为所述第一下限阈值;
    若所述权重矩阵导出模式的索引序号大于所述第一上限阈值,则将所述权重矩阵导出模式的索引序号设置为所述第一上限阈值。
  45. 根据权利要求28所述的方法,其中,所述方法还包括:
    根据第二模式索引范围确定所述帧内预测模式;其中,所述第二模式索引范围用于对帧内预测模式的索引序号进行限制。
  46. 根据权利要求28所述的方法,其中,所述方法还包括:
    若所述当前块的尺寸参数小于第二尺寸阈值,则根据第二模式索引范围确定所述一个帧内预测模式;其中,所述第二模式索引范围用于对帧内预测模式的索引序号进行限制。
  47. 根据权利要求28所述的方法,其中,所述方法还包括:
    根据候选帧间预测模式确定所述帧间预测模式。
  48. 根据权利要求28所述的方法,其中,所述方法还包括:
    若所述当前块的尺寸参数大于第三尺寸阈值,则根据候选帧间预测模式确定所述帧间预测模式。
  49. 根据权利要求27所述的方法,其中,所述方法还包括:
    在使用所述当前块对其他待预测块进行预测时,将所述第一预测模式和/或所述第二预测模式设置为所述当前块的预测模式。
  50. 根据权利要求27所述的方法,其中,所述方法还包括:
    当所述预测模式参数指示所述当前块使用不同预测模式确定所述当前块的预测值时,不将预设互斥模式的预测模式参数写入所述码流中。
  51. 根据权利要求27所述的方法,其中,所述方法还包括:
    将第一模式索引和第二模式索引写入所述码流中。
  52. 根据权利要求31所述的方法,其中,所述方法还包括:
    确定第一权重标志和第二权重标志,并将所述第一权重标志和所述第二权重标志写入所述码流中;
    根据所述第一权重标志,在所述权重矩阵中确定所述第一预测值对应的第一权重;根据所述第一权重标志,在所述权重矩阵中确定所述第一预测值对应的第一权重。
  53. 根据权利要求27所述的方法,其中,所述方法还包括:
    确定所述当前块的预测模式参数;
    当所述预测模式参数指示所述当前块使用不同预测模式确定所述当前块的预测值时,确定所述当前块的第一预测模式,并根据所述第一预测模式确定所述当前块的第一预测值;
    确定所述当前块的第二预测模式,并根据所述第二预测模式确定所述当前块的第二预测值;
    基于所述第一预测值和所述第二预测值,确定所述当前块的预测值。
  54. 一种编码器,所述编码器包括:第一确定部分,
    所述第一确定部分,配置为确定当前块的预测模式参数;当所述预测模式参数指示所述当前块使用不同预测模式确定所述当前块的预测值时,确定所述当前块的第一预测模式和第二预测模式;其中,所述第一预测模式和所述第二预测模式分别为以下多个预测模式中的任意两个模式:帧内预测模式、帧间预测模式、帧内块拷贝模式,调色板模式,串预测模式;基于所述第一预测模式和所述第二预测模式,确定所述当前块的预测值。
  55. 一种编码器,所述编码器包括第一处理器、存储有所述第一处理器可执行指令的第一存储器,当所述指令被执行时,所述第一处理器执行时实现如权利要求1-26任一项所述的方法。
  56. 一种解码器,所述解码器包括:解码部分,第二确定部分
    所述解码部分,配置为解析码流;
    所述第二确定部分,配置为确定当前块的预测模式参数;当所述预测模式参数指示所述当前块使用不同预测模式确定所述当前块的预测值时,确定所述当前块的第一预测模式和第二预测模式;其中,所述第一预测模式和所述第二预测模式分别为以下多个预测模式中的任意两个模式:帧内预测模式、帧间预测模式、帧内块拷贝模式,调色板模式,串预测模式;基于所述第一预测模式和所述第二预测模式,确定所述当前块的预测值。
  57. 一种解码器,所述解码器包括第二处理器、存储有所述第二处理器可执行指令的第二存储器,当所述指令被执行时,所述第二处理器执行时实现如权利要求27-53任一项所述的方法。
  58. 一种计算机存储介质,其中,所述计算机存储介质存储有计算机程序,所述计算机程序被第一处理器执行时实现如权利要求1-26任一项所述的方法,或者,被第二处理器执行时实现如权利要求27-53任一项所述的方法。
PCT/CN2020/140106 2020-12-28 2020-12-28 预测方法、编码器、解码器以及存储介质 WO2022140905A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/CN2020/140106 WO2022140905A1 (zh) 2020-12-28 2020-12-28 预测方法、编码器、解码器以及存储介质
CN202080108133.4A CN116711304A (zh) 2020-12-28 2020-12-28 预测方法、编码器、解码器以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/140106 WO2022140905A1 (zh) 2020-12-28 2020-12-28 预测方法、编码器、解码器以及存储介质

Publications (1)

Publication Number Publication Date
WO2022140905A1 true WO2022140905A1 (zh) 2022-07-07

Family

ID=82258683

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/140106 WO2022140905A1 (zh) 2020-12-28 2020-12-28 预测方法、编码器、解码器以及存储介质

Country Status (2)

Country Link
CN (1) CN116711304A (zh)
WO (1) WO2022140905A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080187044A1 (en) * 2007-02-05 2008-08-07 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding based on inter prediction
US20100054334A1 (en) * 2008-09-02 2010-03-04 Samsung Electronics Co., Ltd. Method and apparatus for determining a prediction mode
US20160295237A1 (en) * 2013-12-19 2016-10-06 Samsung Electronics Co., Ltd. Video encoding method and device involving intra prediction, and video decoding method and device
CN107995489A (zh) * 2017-12-20 2018-05-04 北京大学深圳研究生院 一种用于p帧或b帧的帧内帧间组合预测方法
CN111436228A (zh) * 2018-11-12 2020-07-21 北京字节跳动网络技术有限公司 组合帧间-帧内预测的简化

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080187044A1 (en) * 2007-02-05 2008-08-07 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding based on inter prediction
US20100054334A1 (en) * 2008-09-02 2010-03-04 Samsung Electronics Co., Ltd. Method and apparatus for determining a prediction mode
US20160295237A1 (en) * 2013-12-19 2016-10-06 Samsung Electronics Co., Ltd. Video encoding method and device involving intra prediction, and video decoding method and device
CN107995489A (zh) * 2017-12-20 2018-05-04 北京大学深圳研究生院 一种用于p帧或b帧的帧内帧间组合预测方法
CN111436228A (zh) * 2018-11-12 2020-07-21 北京字节跳动网络技术有限公司 组合帧间-帧内预测的简化

Also Published As

Publication number Publication date
CN116711304A (zh) 2023-09-05

Similar Documents

Publication Publication Date Title
US11350125B2 (en) Method and device for intra-prediction
KR102138828B1 (ko) 영상 부호화 방법 및 장치
KR20130045152A (ko) 인트라 예측 모드 복호화 방법 및 장치
KR20110047697A (ko) 픽처 경계의 부호화 단위를 부호화, 복호화 하는 방법 및 장치
WO2022117089A1 (zh) 预测方法、编码器、解码器以及存储介质
US11706449B2 (en) Method and device for intra-prediction
CN114830651A (zh) 帧内预测方法、编码器、解码器以及计算机存储介质
KR20140124448A (ko) 인트라 예측을 이용한 비디오 부호화/복호화 방법 및 장치
WO2022116113A1 (zh) 一种帧内预测方法、装置及解码器和编码器
CN114143548B (zh) 视频编解码中变换系数的编解码
WO2014084674A2 (ko) 잔차 변환을 이용한 인트라 예측 방법 및 장치
WO2022140905A1 (zh) 预测方法、编码器、解码器以及存储介质
WO2020140219A1 (zh) 帧内预测方法、装置及计算机存储介质
WO2022188114A1 (zh) 帧内预测方法、编码器、解码器以及存储介质
CN117676133A (zh) 帧内预测方法、编码器、解码器以及存储介质
KR20140129418A (ko) 잔차 변환을 이용한 인트라 예측 방법 및 장치
CN117941352A (zh) 帧间预测方法、编码器、解码器以及存储介质
KR20140129419A (ko) 잔차 변환을 이용한 인트라 예측 방법 및 장치

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: 20967257

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 202080108133.4

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20967257

Country of ref document: EP

Kind code of ref document: A1