WO2020140329A1 - 视频处理方法和装置 - Google Patents

视频处理方法和装置 Download PDF

Info

Publication number
WO2020140329A1
WO2020140329A1 PCT/CN2019/077800 CN2019077800W WO2020140329A1 WO 2020140329 A1 WO2020140329 A1 WO 2020140329A1 CN 2019077800 W CN2019077800 W CN 2019077800W WO 2020140329 A1 WO2020140329 A1 WO 2020140329A1
Authority
WO
WIPO (PCT)
Prior art keywords
motion vector
current block
block
offset
motion
Prior art date
Application number
PCT/CN2019/077800
Other languages
English (en)
French (fr)
Inventor
郑萧桢
孟学苇
王苫社
马思伟
Original Assignee
深圳市大疆创新科技有限公司
北京大学
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 深圳市大疆创新科技有限公司, 北京大学 filed Critical 深圳市大疆创新科技有限公司
Priority to CN201980004998.3A priority Critical patent/CN111226440A/zh
Publication of WO2020140329A1 publication Critical patent/WO2020140329A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution

Definitions

  • the present application relates to the field of video encoding and decoding, and more specifically, to a video processing method and device.
  • Inter prediction is an important part of video codec technology.
  • the relevant video codec standard introduces adaptive motion vector accuracy (adaptive motion vector resolution, AMVR) technology.
  • AMVR adaptive motion vector resolution
  • the AMVR is provided with a motion vector with a precision of whole pixels and a motion vector with a precision of sub-pixels (eg, 1/4 pixel).
  • a motion vector with a precision of whole pixels e.g, 1/4 pixel.
  • sub-pixel precision motion vectors are used for inter-frame prediction, the image in the reference frame needs to be interpolated, causing an increase in data throughput.
  • the present application provides a video processing method and device, which can reduce data throughput while ensuring coding performance as much as possible.
  • a video processing method which includes: obtaining a current block; if the size of the current block does not satisfy the preset condition, adopting a motion vector pair of one of integer pixel precision and sub-pixel precision Performing inter prediction on the current block; if the size of the current block satisfies the preset condition, adopting a motion vector with an accuracy of whole pixels to perform inter prediction on the current block.
  • a video processing device including: a memory for storing code; a processor for reading code in the memory to perform the following operations: acquiring a current block; if the size of the current block If the preset condition is not met, an inter-prediction is performed on the current block using a motion vector with a precision of whole pixel or sub-pixel accuracy; if the size of the current block satisfies the preset condition, the whole The pixel-precision motion vector performs inter prediction on the current block.
  • a video processing method which includes: determining a target motion vector for motion compensation of the current block, wherein the target motion vectors are all motion vectors with integer pixel accuracy; according to the target motion vectors To perform motion compensation on the current block.
  • a video processing device including: a memory for storing code; a processor for reading code in the memory to perform the following operations: determining the current block for motion compensation A target motion vector, wherein the target motion vectors are all motion vectors with full pixel accuracy; and the current block is motion compensated according to the target motion vectors.
  • a computer-readable storage medium having stored thereon code for performing the method of the first aspect or the third aspect.
  • a computer program product including code for performing the method of the first aspect or the third aspect.
  • Figure 1 is a schematic diagram of the video encoding process.
  • FIG. 2 is a schematic diagram of an 8 ⁇ 8 image block and a 4 ⁇ 4 image block.
  • FIG. 3 is a schematic flowchart of a video processing method provided by an embodiment of the present application.
  • FIG. 4 is a schematic flowchart of a video processing method according to another embodiment of the present application.
  • FIG. 5 is a schematic flowchart of a possible implementation manner of the embodiment of FIG. 4.
  • FIG. 6 is a schematic flowchart of another possible implementation manner of the embodiment of FIG. 4.
  • FIG 7 is an example diagram of an implementation manner of MMVD technology.
  • FIG. 8 is a schematic flowchart of still another possible implementation manner of the embodiment of FIG. 4.
  • FIG. 9 is a schematic flowchart of yet another possible implementation manner of the embodiment of FIG. 4.
  • FIG. 10 is a schematic structural diagram of a video processing device provided by an embodiment of the present application.
  • FIG. 11 is a schematic structural diagram of a video processing device according to another embodiment of the present application.
  • This application can be applied to a variety of video coding standards, such as H.264, high efficiency video coding (HEVC), universal video coding (versatile video coding, VVC), audio and video coding standard (audio video coding standard, AVS), AVS+, AVS2 and AVS3 etc.
  • video coding standards such as H.264, high efficiency video coding (HEVC), universal video coding (versatile video coding, VVC), audio and video coding standard (audio video coding standard, AVS), AVS+, AVS2 and AVS3 etc.
  • the video coding process mainly includes prediction, transformation, quantization, entropy coding and other parts.
  • Prediction is an important part of mainstream video coding technology. Prediction can be divided into intra prediction and inter prediction. Inter prediction mainly includes motion estimation and motion compensation processes. The following is an example of the motion compensation process.
  • the coding region may also be called a coding tree unit (CTU).
  • the size of the CTU may be, for example, 64 ⁇ 64 or 128 ⁇ 128 (units are pixels, and the units will be omitted for similar descriptions hereinafter).
  • Each CTU can be divided into square or rectangular image blocks.
  • the image block may also be referred to as a coding unit (CU).
  • CU coding unit
  • the current CU to be encoded will be referred to as a current block.
  • a similar block of the current block can be found from a reference frame (generally a reconstructed frame near the time domain) as a prediction block of the current block.
  • the relative displacement between the current block and the prediction block is called a motion vector (motion vector, MV).
  • the process of acquiring motion vectors is the process of motion estimation.
  • Motion compensation can be understood as the process of obtaining a prediction block using motion vectors and reference frames.
  • the prediction block obtained by this process may be different from the original current block. Therefore, the residuals of the prediction block and the current block may be transformed and quantized. Wait for the operation to pass to the decoder.
  • the encoding side also transfers the motion vector information to the decoding side. In this way, the decoding end can reconstruct the current block through the motion vector, the reference frame of the current block, the prediction block and the residual of the current block.
  • the process described above is the general process of inter prediction.
  • the inter prediction technology mainly includes one-way prediction and two-way prediction, etc., where the one-way prediction may include forward prediction and backward prediction.
  • Forward prediction is to use the previous reconstructed frame ("historical frame") to predict the current frame.
  • Backward prediction is to use the frame after the current frame (“future frame”) to predict the current frame.
  • Bidirectional prediction uses not only "historical frames” but also "future frames” to perform inter prediction on the current frame.
  • the inter prediction mode may include an advanced motion vector prediction (Advanced Motion Vector Prediction, AMVP) mode and a merge (Merge) mode.
  • AMVP Advanced Motion Vector Prediction
  • MVP Motion Vector Prediction
  • a prediction list (Motion Vector Prediction, MVP) candidate list (referred to as MVP candidate list for short) of motion vectors can be generated according to the motion vectors of neighboring blocks of the current block (neighboring blocks in the spatial or temporal domain).
  • the list includes motion vectors of neighboring blocks of one or more current blocks (referred to as candidate MVPs for short).
  • the MVP can be determined in the list, and the MVP can be directly determined as the MV, that is, the motion vector of the current block, and the index number of the MVP and the reference frame index can be passed to the decoding in the code stream End for decoding at the decoding end.
  • the MVP can be determined first. After the MVP is obtained, the starting point of the motion estimation can be determined according to the MVP. A motion search is performed near the starting point. After the search is completed, the optimal MV is obtained, and the reference block is determined by the MV. With reference to the position in the image, the reference block subtracts the current block to obtain the residual block, and the MV minus the MVP to obtain the motion vector difference (Motion Vector Difference, MVD), and transmits the MVD to the decoding end through the code stream.
  • Motion Vector Difference Motion Vector Difference
  • the MVP candidate list may include at least one candidate MVP, and each candidate MVP may correspond to an index.
  • the encoding end is selected from the MVP candidate list. After the MVP is selected, the MVP index can be written into the code stream, and the decoding end can find the MVP corresponding to the index from the MVP candidate list according to the index to achieve decoding of the image block.
  • Step 1 Obtaining the MVP candidate list. Specifically, the motion vectors of the neighboring blocks of the current block (spatial or temporal neighboring blocks) are usually used to obtain the MVP candidate list first;
  • Step 2 Select an optimal MVP from the MVP candidate list, and at the same time obtain the index of the MVP in the MVP candidate list;
  • Step 3 Use the MVP as the MV of the current block
  • Step 4 Determine the position of the reference block in the reference image according to the MV;
  • Step 5 The reference block is subtracted from the current block to obtain a residual block
  • Step 6 Pass the residual data and the MVP index to the decoder.
  • Merge mode can also have other implementations.
  • Skip mode is a special case of Merge mode. After obtaining the MV according to the Merge mode, if the encoder determines that the current block and the reference block are basically the same, then there is no need to transmit residual data, only the index of the MVP needs to be passed, and further a flag can be passed, which can indicate that the current block can Obtained directly from the reference block.
  • the candidate HMVP may be selected from the HMVP candidate list as the candidate MVP in the MVP candidate list.
  • the motion vector of an object between two adjacent frames may not be in whole pixels (the whole pixel may be one pixel or multiple pixels, such as 2 pixels, 4 pixels, or 8 pixels, etc. ) As the unit. Therefore, in order to improve the accuracy of motion vectors, related technologies introduce sub-pixel (or fractional pixels, such as 1/2 pixel, 1/4 pixel, or 1/8 pixel, etc.) precision motion vectors, such as high-efficiency video coding (high efficiency (video, coding, HEVC) introduces motion vectors with 1/4 pixel accuracy for the luminance component.
  • sub-pixel or fractional pixels, such as 1/2 pixel, 1/4 pixel, or 1/8 pixel, etc.
  • high-efficiency video coding high efficiency (video, coding, HEVC) introduces motion vectors with 1/4 pixel accuracy for the luminance component.
  • video images do not have sub-pixel samples, in order to support 1/K times sub-pixel precision motion vectors, video images are usually interpolated K times in the row and column directions to obtain sub-pixel Sample, and then perform motion estimation based on the interpolated image.
  • AMVR adaptive motion vector resolution
  • the AMVR is provided with various precision motion vectors, and the various precisions may include whole pixel precision or sub-pixel precision.
  • AMVR may include motion vectors with 1 pixel accuracy, 4 pixel accuracy (1 pixel accuracy and 4 pixel accuracy both belong to whole pixel accuracy) and 1/4 pixel accuracy (belonging to sub-pixel accuracy).
  • AMVR may include 1 pixel accuracy, 4 pixel accuracy, 1/4 pixel accuracy, 1/8 pixel accuracy, 1/16 pixel accuracy, and so on.
  • the encoder makes AMVR decisions, adaptively selects the motion vector accuracy matching the current block from a variety of motion vector accuracy, and writes the indication information (or AMVR decision result) corresponding to the motion vector accuracy Into the code stream, and passed to the decoder.
  • the decoding end can obtain the indication information from the code stream, and use the motion vector accuracy indicated by the indication information to perform inter prediction.
  • the image blocks in the reference frame need to be interpolated.
  • the interpolation process needs to use multiple pixels around the current block, which will lead to an increase in data throughput. Therefore, some related technologies may prohibit the current block that meets certain conditions from performing inter prediction or the current block that meets certain conditions from performing some type of inter prediction (such as bidirectional inter prediction) to avoid excessive data throughput. Big.
  • the current block is an 8 ⁇ 8 image block as shown on the left side of FIG. 2
  • the reference block of the current block needs to be used The pixels in and the pixels around the reference block of the current block to get the interpolated 1/4 pixel.
  • the 8 ⁇ 8 image block can be divided into 4 4 ⁇ 4 image blocks.
  • the related art directly prohibits certain types of inter prediction of a current block of a certain size, which may cause a decrease in coding performance.
  • the increase in data throughput is caused by sub-pixel precision motion vectors. Therefore, for some type of inter prediction (such as bidirectional prediction) of the current block of a certain size, As long as the inter-prediction process corresponding to sub-pixel precision motion vectors is prohibited, the effect of reducing data throughput can be achieved, and there is no need to prohibit inter-prediction corresponding to whole pixel precision motion vectors.
  • the following solutions provided by the embodiments of the present application may be able to reduce data throughput while ensuring coding performance as much as possible.
  • FIG. 3 includes steps S310-S330, and these steps are described in detail below.
  • step S310 the current block is acquired.
  • step S320 if the size of the current block does not satisfy the preset condition, motion vectors of one precision of whole pixel precision and sub-pixel precision are used to perform inter prediction on the current block.
  • a precision motion vector is selected from the precision of whole pixels and the precision of sub-pixels to perform inter prediction on the current block.
  • the whole pixel precision refers to the pixel precision being an integer multiple of 1 pixel (including 1 pixel).
  • the whole pixel accuracy may include, for example, one or more of the following pixel accuracy: 1 pixel and 4 pixels.
  • the whole pixel accuracy mentioned in the embodiments of the present application may include part or all of the pixel accuracy of the whole pixel accuracy provided by AMVR.
  • Sub-pixel accuracy means that the pixel accuracy is less than 1 pixel.
  • the sub-pixel accuracy may include, for example, one or more of the following pixel accuracy: 1/4 pixel, 1/8 pixel, 1/16 pixel, and so on.
  • the sub-pixel accuracy mentioned in the embodiments of the present application may include part or all of the sub-pixel accuracy provided by AMVR.
  • the embodiments of the present application do not specifically limit the preset conditions.
  • the preset condition may be that the size of the current block is smaller than the preset size.
  • step S320 may be expressed as: if the size of the current block is greater than or equal to the preset size, the whole pixel precision and sub-pixel precision are used One of the motion vectors with precision is inter-prediction of the current block; step S330 can be expressed as: if the size of the current block is smaller than the preset size, the motion vector with the precision of whole pixels is used to inter-predict the current block.
  • the preset condition may be that the size of the current block is less than or equal to the preset size.
  • step S320 may be expressed as: if the size of the current block is greater than the preset size, the whole pixel precision and sub-pixel are used The motion vector of one of the precisions performs inter prediction on the current block;
  • step S330 can be expressed as: if the size of the current block is less than or equal to the preset size, an inter-prediction is performed on the current block using a motion vector with a precision of whole pixels.
  • the preset condition may be that the size of the current block is the preset size.
  • step S320 may be expressed as: if the size of the current block is not the preset size, the whole pixel precision and sub-pixel precision are used.
  • the motion vector of a precision performs inter prediction on the current block;
  • step S330 can be expressed as: if the size of the current block is a preset size, an inter-prediction is performed on the current block using a motion vector with a precision of whole pixels.
  • the preset size may include one or more of 4 ⁇ 4, 8 ⁇ 4, 4 ⁇ 16, 16 ⁇ 4, 16 ⁇ 16, and 8 ⁇ 8.
  • step S330 if the size of the current block satisfies the preset condition, an inter-pixel prediction is performed on the current block using a motion vector with a precision of whole pixels.
  • the inter prediction in steps S320-S330 may refer to unidirectional prediction, bidirectional prediction, and may include both unidirectional prediction and bidirectional prediction.
  • the method shown in FIG. 3 can be applied to unidirectional prediction, bidirectional prediction, or both unidirectional prediction and bidirectional prediction.
  • the inter prediction in steps S320-S330 refers to bi-directional prediction, for uni-directional prediction, even if the size of the current block satisfies the above-mentioned preset conditions, it is possible to perform sub-pixel precision uni-directional prediction on the current block .
  • steps S320-S330 can be regarded as AMVR-based inter-prediction processes, the difference is that the AMVR-based inter-prediction process described in step S320 includes sub-pixel accuracy, and the step S330-based The AMVR inter-frame prediction process does not include sub-pixel accuracy.
  • the size of the current block satisfies the preset condition, it is prohibited to use sub-pixel precision motion vectors to perform some type of inter prediction, rather than completely prohibiting it from performing this type of inter prediction, thereby Can reduce the data throughput while ensuring coding performance.
  • the steps S320-S330 can be replaced by: if the size of the current block is the target size, the current block is bidirectionally predicted using motion vectors with full pixel precision, and the bidirectionally predicting the current block without subpixel motion vectors is used.
  • the pixel accuracy can be 1 whole pixel accuracy or 4 pixel accuracy.
  • the target size may be, for example, one or more of the following sizes: 4 ⁇ 4 or 4 ⁇ 8 or 8 ⁇ 4.
  • AMVR decision can be made on the bidirectional prediction process of the current block, but in the AMVR decision process, the decision process of sub-pixel accuracy can be skipped, and only the decision process of whole pixel accuracy is executed Part or all of the decision-making process.
  • the bidirectional prediction process of the current block if the motion vector accuracy is an integer pixel, bidirectional prediction is performed based on the motion vector, and the bidirectional prediction process of the entire pixel is not skipped as in the related art. In this way, coding performance can be improved as much as possible while maintaining data throughput and bandwidth.
  • the method shown in FIG. 3 can be applied to the encoder and the decoder.
  • the step of performing inter prediction on the current block in FIG. 3 may include: determining the prediction block of the current block; calculating the current according to the original block and the prediction block of the current block The residual block of the block. For example, the difference between the original block and the predicted block corresponding to the current block may be calculated to obtain the residual block.
  • the encoding end may also encode the indication information of the accuracy of the motion vector corresponding to the current block.
  • the indication information has M bits
  • the indication information has N bits
  • M and N are both positive integers
  • N is less than or equal to M.
  • the bit mentioned here may be the bit information actually written into the code stream during actual encoding or actually obtained from the code stream during decoding, or may refer to the bin used in the entropy encoding or entropy decoding process.
  • M can be 2 bits, where "0” represents the accuracy of the current block's motion vector is 1/4 pixel, "10” represents the current block's motion vector accuracy is 1 pixel, and "11” represents the current block's motion vector accuracy is 4
  • N can be 1 bit, where "0” represents the accuracy of the motion vector of the current block is 1 pixel, and "1” represents the accuracy of the motion vector of the current block is 4 pixels.
  • the encoding end may also write the indication information of the accuracy of the motion vector corresponding to the current block into the code stream.
  • the current block if the size of the current block satisfies the preset condition, the current block does not use sub-pixel accuracy for inter-frame prediction. Therefore, a smaller number of bits can be used to represent the decision result of the AMVR, thereby reducing the data volume of the code stream .
  • the encoding end may not encode the indication information of the motion vector accuracy of the current block.
  • the decoding end may not obtain the indication information of the motion vector accuracy of the current block from the actual code stream.
  • the codec determines the motion vector accuracy according to the agreed method according to the size of the current block. When the size of the current block does not satisfy the preset condition, the current block adopts 1/4 pixel motion vector accuracy. When the size of the current block meets the preset condition, the current block adopts 1 pixel motion vector accuracy.
  • the preset condition is: the size of the current block is 4x4, when the size of the current block is not 4x4, the current block adopts 1/4 pixel motion vector accuracy; when the size of the current block is equal to 4x4, the current block adopts 1 pixel motion vector accuracy.
  • the preset condition is: the size of the current block is less than 8x8, when the size of the current block is greater than or equal to 8x8, the current block adopts 1/4 pixel motion vector accuracy; when the size of the current block is less than 8x8, the current The block uses 1 pixel motion vector accuracy.
  • the above method can be applied when the AMVR tool is closed.
  • the above 1/4 pixel motion vector accuracy means that the motion vector is incremented in units of 1/4 pixels, or the motion vector difference value is incremented in 1/4 pixels;
  • the above 1 pixel motion vector accuracy means that the motion vector is in units of 1 pixel Increasing, or the motion vector difference is incremented in units of 1 pixel;
  • the above-mentioned 4-pixel motion vector accuracy means that the motion vector is incremented in units of 4 pixels, or the motion vector difference is incremented in units of 4 pixels.
  • the step of performing inter prediction on the current block in FIG. 3 may include: determining the prediction block and the residual block of the current block; according to the prediction block and the residual block of the current block
  • the difference block calculates the reconstructed block of the current block.
  • the sum of the prediction block and the residual block of the current block may be used as the reconstructed block of the current block.
  • the prediction block of the current block can be determined using the motion information corresponding to the current block.
  • the motion information may include an index of motion vector prediction and indication information of motion vector accuracy, and the like. This information can be obtained from the code stream.
  • the indication information of the motion vector accuracy corresponding to the current block if the size of the current block does not satisfy the preset condition, the indication information may have M bits, and if the size of the current block meets the preset condition, the indication information may have N bits, M , N are positive integers, and N is less than or equal to M.
  • M and N corresponds to the encoding end, and the specific discussion can be referred to above, and will not be described in detail here.
  • the video processing method mentioned above can be applied to the inter prediction process in the AMVP mode (or inter mode).
  • the video processing method mentioned above can be applied to the merge mode.
  • the video processing method provided by another embodiment of the present application will be described in detail below with reference to FIG. 4, wherein the video processing method may be applicable to The video decoding process.
  • the method may be performed by a video processing device, the video processing device may be a video encoding device, and the video processing device may also be a video decoding device, which is not specifically limited herein.
  • the method may include steps S410 to S420.
  • step S410 the target motion vector for motion compensation of the current block is acquired.
  • the video processing device may acquire the target motion vector of the current block that can be used for motion compensation.
  • the target motion vector used for motion compensation of the current block is required to be a motion vector of whole pixel precision .
  • the number of the target motion vectors used for motion compensation may be one or more, and the multiple target motion vectors may include at least two target motion vectors, then each of the multiple target motion vectors is a motion with full pixel precision Vector.
  • the target motion vectors used for motion compensation are all pixel-precision motion vectors, this can ensure that the motion compensation process of the current block does not need to interpolate the pixels in the reference frame, thereby causing no bandwidth pressure on the system.
  • the motion compensation mentioned in step S410 may be motion compensation in a unidirectional prediction mode or a bidirectional prediction mode, which is not limited in this embodiment of the present application.
  • step S410 may include: acquiring an initial motion vector for motion compensation of the current block; converting a sub-pixel precision motion vector in the initial motion vector into a full-pixel precision motion vector to obtain a target motion vector .
  • step S410 may include: acquiring an initial motion vector for motion compensation of the current block; if the initial motion vector includes a sub-pixel precision motion vector, converting the sub-pixel precision motion vector into whole pixels Accurate motion vector to get the target motion vector.
  • the initial motion vector used for motion compensation may be acquired in any manner, for example, acquired in a conventional manner, for example, the initial motion vector list includes the MPV candidate list as described above, and the initial motion vector candidate The list may include one or more sub-pixel candidate motion vectors.
  • the video processing device may select candidate motion vectors from the initial motion candidate list as the initial motion vectors for motion compensation, and then convert the sub-pixel precision motion vectors in the initial motion vectors into integer pixel precision motion vectors to obtain the target motion vector .
  • the acquiring the target motion vector for motion compensation of the current block includes: determining the size of the current block, and when the size of the current block is a preset size, acquiring the current block The target motion vector for motion compensation.
  • the video processing device may first determine the size of the current block.
  • the size of the current block is a preset size
  • the determined target motion vector for motion compensation of the current block must be a motion vector with a precision of whole pixels.
  • the target motion vector used for motion compensation may be any one of a motion vector with full pixel precision and a motion vector with sub-pixel precision.
  • the preset size may be set according to actual needs.
  • the size of the current block may be one or more of the following sizes: 4 ⁇ 4, 8 ⁇ 4, 4 ⁇ 16, 16 ⁇ 4.
  • the embodiment of the present application does not specifically limit the method for acquiring the target motion vector.
  • one possible implementation is to replace the motion vector candidate list (the motion vectors in this application can be replaced with motion information, and the motion vector candidate list can be replaced with motion
  • the candidate motion vectors in the information candidate list or merge candidate list) are pixelized.
  • the candidate motion vectors selected from the motion vector candidate list are all pixel motion vectors and can be directly used as the target motion vector for motion Compensation; another possible implementation is not to perform pixelization processing on the motion vector candidate list.
  • the candidate motion vector selected from the motion vector candidate list is a sub-pixel precision motion vector, it is then pixelized. Use as a target motion vector.
  • the reference motion vector and offset of the current block can be first integerized, so that the target motion vector synthesized by the two is a motion vector with integer pixel accuracy.
  • the reference motion vector of the current block and the offset may be first synthesized. If the candidate motion vector synthesized by the two is a sub-pixel precision motion vector, then the pixel is quantized, and the motion obtained after the pixelization is used. The vector is used as the target motion vector for motion compensation.
  • step 410 The method of acquiring the target motion vector (that is, the implementation of step 410) will be described in detail later in conjunction with specific embodiments, and will not be described in detail here.
  • step S420 motion compensation is performed on the current block according to the target motion vector.
  • the current block when the precision of the target motion vector used for motion compensation is guaranteed to be a whole pixel precision, the current block will use a whole pixel precision motion vector for motion compensation, without interpolating the pixels in the reference frame, reducing The amount of calculation is reduced, thereby reducing the bandwidth pressure of the system.
  • step S410 The implementation of step S410 will be described in detail below.
  • FIG. 5 describes a possible embodiment of step S410. As shown in FIG. 5, step S410 may include step S512 and step S514.
  • step S512 the motion vector candidate list of the current block is acquired.
  • the candidate motion vectors in the obtained motion vector candidate list are all motion vectors with integer pixel accuracy.
  • the method for obtaining the initial motion vector candidate list of the current block may be obtained in a traditional manner, for example, the initial motion vector list includes the MPV candidate list as described above, and the initial motion vector candidate list may include one or For candidate motion vectors of multiple sub-pixels, the video processing device may convert all the candidate motion vectors of the one or more sub-pixels in the initial motion vector candidate list into candidate motion vectors of whole pixels.
  • the motion vector candidate list is described.
  • the candidate motion vectors of the current block may be motion vectors of neighboring blocks of the current block (spatial or temporal neighboring blocks) as described above, and the candidate motion vectors of the current block may include one or more
  • the video processing device may convert all the one or more sub-pixel candidate motion vectors into whole-pixel candidate motion vectors.
  • the converted candidate motion vectors generate the current block’s
  • the motion vector candidate list for example, adds the converted motion vector candidate to the motion vector candidate list.
  • the candidate motion vectors in the obtained motion vector candidate list can be motion vectors with full pixel precision.
  • step S514 the target motion vector is selected from the motion vector candidate list of the current block.
  • the target motion vector used for motion compensation can be directly selected from the motion vector candidate list.
  • FIG. 6 describes another possible embodiment of step S410. As shown in FIG. 6, step S410 may include steps S612-S616.
  • step S612 the motion vector candidate list of the current block is acquired.
  • the embodiment of FIG. 6 may obtain the motion vector candidate list of the current block according to the conventional technology.
  • the motion vector candidate list may include the MPV candidate list as described above.
  • the motion vector candidate column includes one or more initial candidate motion vectors, wherein the one or more initial candidate motion vectors may include a candidate motion vector with whole pixel accuracy, or may include a candidate motion vector with sub-pixel accuracy.
  • step S614 the initial candidate motion vector of the current block is selected from the motion vector candidate list of the current block.
  • the embodiment of the present application does not specifically limit the implementation manner of step S614, and may be selected according to conventional techniques.
  • the initial candidate motion vector may be selected from the motion vector candidate list in a traversal manner.
  • step S616 the sub-pixel precision motion vector in the initial candidate motion vector is converted into a full-pixel precision motion vector to obtain the target motion vector.
  • the video processing device may select one or more initial candidate motion vectors from the motion vector candidate list. There may be sub-pixel accuracy candidate motion vectors in the one or more initial candidate motion vectors, and sub-pixel accuracy candidate motion The vector is converted into a motion vector with integer pixel accuracy. After conversion, one or more motion candidate vectors with integer pixel accuracy corresponding to the one or more initial candidate motion vectors can be obtained. Further, the one or more full-pixel accuracy candidate motion vectors may be determined as the target motion vector.
  • the initial candidate motion vector selected from the motion vector candidate list may be sub-pixel accuracy Sport vector. Therefore, in this embodiment of the present application, the initial candidate motion vectors with sub-pixel accuracy are first pixelized to ensure that the target motion vectors used for motion compensation are all motion vectors with integer pixel accuracy.
  • step S410 may adopt the implementation manners shown in FIGS. 8 to 9.
  • the MMVD technology can be used to further accurately locate the motion vector of the current block on the basis of candidate motion vectors. Specifically, the MMVD technology first determines the reference motion vector of the current block, for example, selects the reference motion vector from the motion vector candidate list. Then, it expands around the reference motion vector according to a certain offset value to determine the optimal motion vector after expansion.
  • the reference motion vector (the reference motion vector is selected from the motion vector candidate list) can be Starting point, and then carry out extended search in four directions of up, down, left, and right according to a certain offset (or step size) to determine the optimal motion vector.
  • the offset used in the expansion process can be the preset offset, or the offset obtained after scaling the preset offset (in the one-way prediction process, the preset offset is usually used directly In the bidirectional prediction process, the offset after scaling is usually used).
  • the value of the preset offset may include, for example, the following 8 values: ⁇ 1/4 pixel, 1/2 pixel, 1 pixel, 2 pixels, 4 pixels, 8 pixels, 16 pixels, 32 pixels ⁇ .
  • the scaling of the offset can be an integer or a decimal.
  • FIG. 8 describes a possible implementation manner of step S410 in the MMVD scenario. As shown in FIG. 8, step S410 may include steps S812-S816.
  • step S812 the reference motion vector of the current block is acquired.
  • the motion vector candidate list of the current block may be obtained first, and then one or more candidate motion vectors in the motion vector candidate list may be determined as the reference motion vector of the current block.
  • the motion vector candidate list of the current block may be the corresponding motion vector candidate list in FIG. 5, and the motion vector candidate list of the current block may be the corresponding motion vector candidate list in FIG. 6.
  • the reference motion vector of the current block may be a motion vector with a precision of whole pixels or a motion vector with a precision of sub-pixels, which is not limited in this embodiment of the present application.
  • step S814 the offset amount of the reference motion vector is acquired.
  • the offset of the reference motion vector may be a preset offset, such as one or more of the following offsets: ⁇ 1/4 pixel, 1/2 pixel, 1 pixel, 2 pixels, 4 pixels , 8 pixels, 16 pixels, 32 pixels ⁇ .
  • the offset of the reference motion vector may be selected from the preset offsets.
  • the offset of the reference motion vector may be the offset obtained after scaling the preset offset.
  • one or more of the following preset offsets can be scaled according to a certain scaling ratio to obtain the reference motion vector offset: ⁇ 1/4 pixel, 1/2 pixel, 1 pixel, 2 Pixels, 4 pixels, 8 pixels, 16 pixels, 32 pixels ⁇ .
  • the preset offset can be scaled according to a certain scaling ratio to obtain a certain reference motion vector offset.
  • the scaling factor can be an integer or a decimal.
  • step S816 the sub-pixel precision motion vector in the sum of the reference motion vector and the offset is converted into a full-pixel precision motion vector to obtain the target motion vector.
  • FIG. 8 may have multiple implementations. For ease of understanding, several examples are given below.
  • both steps S812 and S814 are implemented according to conventional techniques, that is, the acquisition of the motion vector candidate list and the MMVD process are not adjusted.
  • both the reference motion vector and the offset may be sub-pixel precision motion vectors. If the reference motion vector and the offset are followed by a motion vector with sub-pixel accuracy, it can be converted into a target motion vector with whole-pixel accuracy using step S816.
  • the reference motion vector acquired in step S812 may be an integer pixel-based motion vector.
  • the offset acquired in step S814 may be the original offset (the original offset may refer to a preset offset or an offset after scaling). Since the original offset may be an offset of sub-pixel accuracy, step S816 may be used to convert the sum of the reference motion vector and its offset into a target motion vector of integer pixel accuracy.
  • the reference motion vector acquired in step S812 may be a motion vector after pixelization.
  • the offset acquired in step S814 may be an offset obtained by first performing pixelization on the preset offset and then scaling the pixelized offset. Since the offset after the whole pixelization is scaled, it may still be the offset of the sub-pixel accuracy (the scaling ratio may be a decimal). Therefore, the sum of the reference motion vector and its offset can be converted into a whole by step S816 Pixel precision target motion vector.
  • FIG. 9 describes a possible implementation manner of step S410 in the MMVD scenario. As shown in FIG. 9, step S410 may include steps S912-S916.
  • step S912 the reference motion vector of the current block is acquired.
  • the reference motion vector acquired in step S912 is a motion vector with integer pixel accuracy.
  • the accuracy of the reference motion vector is integer pixel accuracy.
  • the corresponding motion vector candidate list in FIG. 5 may be obtained, wherein the motion vector candidate information in the motion vector candidate list is all motion vectors with integer pixel precision, and the reference motion vector selected from the motion vector candidate list; or, The corresponding motion vector candidate list in FIG.
  • one or more initial motion candidate motion vectors are selected from the motion vector candidate list first, and there may be sub-pixel accuracy candidate motions in the one or more initial candidate motion vectors Vector, converting a candidate motion vector with sub-pixel accuracy into a motion vector with integer pixel accuracy, and after conversion, one or more candidate motion vectors with integer pixel accuracy corresponding to the one or more initial candidate motion vectors can be obtained.
  • the reference motion vector may be obtained from the one or more full-pixel precision candidate motion vectors.
  • step S914 the offset amount of the reference motion vector is acquired.
  • the offset acquired in step S914 may be the offset of the whole pixel accuracy.
  • the precision of the offset of the reference motion vector may be the whole pixel accuracy.
  • the preset offset can be directly pixelated to obtain the offset of the reference motion vector.
  • the preset offset needs to be scaled, a possible implementation method is to first scale the preset offset, and then the scaled offset is integerized to obtain the offset of the reference motion vector Shift; another possible implementation is to first pixelize the preset offset, then scale the offset after pixelization, and then pixelize the scaled offset to Get the offset of the reference motion vector.
  • step S916 the sum of the reference motion vector and the offset is determined as the target motion vector.
  • step S914 and step S916 are both integer pixel accuracy, the sum of the two is also integer pixel accuracy, and it can be directly used as the target motion vector for motion compensation.
  • the motion vector MV1 to be pixelated contains a horizontal component MV1x and a vertical component MV1y.
  • the motion vector MV2 is the MV obtained after MV1 is pixelized, and also includes the horizontal components MV2x and MV2y.
  • MV2x ((MV1x+(1 ⁇ (shift-1)))>>shift) ⁇ shift;
  • MV2y ((MV1y+(1 ⁇ (shift-1)))>>shift) ⁇ shift;
  • MV2y -((-MV1y+(1 ⁇ (shift-1)))>>shift) ⁇ shift.
  • MV2x (MV1x>>shift) ⁇ shift
  • MV2y (MV1y>>shift) ⁇ shift.
  • the value of shift is related to the storage accuracy of the motion vector MV, and can be pre-configured according to actual needs, and different codec systems can adopt different configuration methods.
  • the storage accuracy of MV can be 1/16
  • the value of shift can be set to 4. It can be seen that the sub-pixel accuracy candidate motion vector, the initial candidate motion vector, the preset offset, and the scaled preset offset can be pixelized according to the storage accuracy of the motion vector.
  • the motion vector of the neighboring block of the current block (the neighboring block in the time domain or the space domain) is usually used to obtain the motion vector candidate list.
  • the candidate motion vectors in the motion vector candidate list can all be converted to integer pixel accuracy Motion vectors to facilitate subsequent operations.
  • the process of obtaining the motion vector candidate list can introduce a weighting (pruning) operation, which is to determine whether the motion vector to be added to the motion vector candidate list already exists. If it already exists, the motion vector is discarded; if it does not exist, it is added Motion vector candidate list.
  • the embodiment of the present application may combine the pixelization operation and the weighting operation of the candidate motion vectors in the motion vector candidate list to simplify the process of acquiring the motion vector candidate list. There are many ways to combine the two operations, and two possible implementations are given below.
  • the process of acquiring the motion vector candidate list of the current block may include: acquiring the motion vector of the first neighboring block of the current block, where the motion vector of the first neighboring block is sub-pixel precision motion Vector; convert the motion vector of the first neighboring block to a motion vector of full pixel precision; if the motion vector of the full pixel precision exists in the motion vector candidate list of the current block, discard the motion vector of the full pixel precision; if the current block The motion vector of the whole pixel precision does not exist in the motion vector candidate list of, and the motion vector of the whole pixel precision is added to the motion vector candidate list.
  • the motion vectors of the neighboring blocks are first pixelized, and then the weighting operation is performed.
  • the process of acquiring the motion vector candidate list of the current block may include: acquiring the motion vector of the first neighboring block of the current block; and determining whether there is a The motion vector of the first neighboring block is the same as the motion vector; if there is no motion vector in the motion vector candidate list of the current block that is the same as the motion vector of the first neighboring block, the motion vector of the first neighboring block is converted to integer pixel accuracy The motion vector of the whole pixel precision, and add the motion vector of the whole pixel precision to the motion vector candidate list of the current block; if the motion vector of the current block motion vector candidate list is the same as the motion vector of the first neighboring block, the first is discarded Motion vectors of neighboring blocks.
  • this implementation first performs the weighting operation, and then performs the pixelization operation on the motion vectors of neighboring blocks.
  • the motion vector of the current block needs to be stored for subsequent encoding.
  • the motion vector of the current block obtained after motion compensation may be directly stored, that is, the motion vector of the whole pixel accuracy is directly stored.
  • the motion vector of the current block obtained after motion compensation may be the first motion vector in the target motion vector, and the first motion vector is the motion converted from the second motion vector with sub-pixel accuracy
  • the second motion vector can be stored as the motion vector of the current block again. In other words, when storing the motion vector of the current block, the motion vector before integerization is still stored.
  • the method of FIG. 4 can be applied to the encoding side or the decoding side.
  • step 420 in FIG. 4 may include: determining the prediction block of the current block according to the target motion vector; calculating the residual of the current block according to the original block and the prediction block of the current block Piece.
  • step 420 in FIG. 4 may include: determining the prediction block and the residual block of the current block according to the target motion vector; calculating according to the prediction block and the residual block of the current block The reconstructed block of the current block.
  • FIG. 10 is a schematic structural diagram of a video processing device provided by an embodiment of the present application.
  • the device 1000 of FIG. 10 includes a memory 1010 and a processor 1020.
  • the memory 1010 may be used to store codes.
  • the processor 1020 may be used to read the code in the memory to perform the following operations: obtain the current block; if the size of the current block does not satisfy the preset condition, adopt one of the precision of whole pixel precision and sub-pixel precision
  • the motion vector performs inter prediction on the current block; if the size of the current block satisfies a preset condition, an inter-prediction is performed on the current block using a motion vector with a precision of whole pixels.
  • the preset condition is that the size of the current block is less than the preset size; or, the preset condition is that the size of the current block is less than or equal to the preset size; or, the preset condition is The size of the current block is the preset size.
  • the preset size includes one or more of 4 ⁇ 4, 8 ⁇ 4, 4 ⁇ 16, 16 ⁇ 4, 16 ⁇ 16, and 8 ⁇ 8.
  • the inter prediction of the current block may include: determining a prediction block of the current block; and calculating a residual block of the current block according to the original block and the prediction block of the current block.
  • the processor 1020 may also perform the following operations: encoding the indication information of the motion vector accuracy corresponding to the current block, wherein: if the size of the current block does not satisfy the preset condition, the indication information has M bits, If the size of the current block satisfies the preset condition, the indication information has N bits, M and N are both positive integers not less than 1, and N is less than or equal to M.
  • the inter prediction of the current block may include: determining the prediction block and the residual block of the current block; calculating the current block's current block according to the prediction block and the residual block of the current block Reconstruct the block.
  • the processor 1020 may also perform the following operation: obtain the indication information of the accuracy of the motion vector corresponding to the current block from the code stream, wherein: if the size of the current block does not satisfy the preset condition, the The indication information has M bits. If the size of the current block satisfies a preset condition, the indication information has N bits. M and N are both positive integers not less than 1, and N is less than or equal to M.
  • the inter prediction is bidirectional prediction.
  • the preset size includes one or more of 16 ⁇ 16, 8 ⁇ 8, 4 ⁇ 4, 8 ⁇ 4, 4 ⁇ 16, and 16 ⁇ 4.
  • the whole pixel accuracy includes one or more of the following pixel accuracy: 1 pixel and 4 pixels.
  • the sub-pixel accuracy includes one or more of the following pixel accuracy: 1/4, 1/8, and 1/16.
  • FIG. 11 is a schematic structural diagram of a video processing device according to another embodiment of the present application.
  • the apparatus 1100 of FIG. 11 includes a memory 1110 and a processor 1120.
  • the memory 1110 may be used to store codes.
  • the processor 1120 may be used to read the code in the memory to perform the following operations: obtain a target motion vector for motion compensation of the current block, where the target motion vectors are all motion vectors with integer pixel accuracy; Perform motion compensation on the current block according to the target motion vector.
  • the determining the target motion vector for motion compensation of the current block may include: acquiring a motion vector candidate list of the current block; selecting the target motion from the motion vector candidate list of the current block Vector, wherein the candidate motion vectors in the motion vector candidate list are all motion vectors with full pixel precision.
  • the determining a target motion vector for motion compensation of the current block may include: selecting an initial candidate motion vector of the current block from a motion vector candidate list of the current block; and converting the initial candidate The sub-pixel precision motion vector in the motion vector is converted into a full-pixel precision motion vector to obtain the target motion vector.
  • the determining the target motion vector for motion compensation of the current block may include: determining a reference motion vector of the current block; acquiring an offset of the reference motion vector; and converting the reference motion vector The motion vector with sub-pixel accuracy in the sum of the offsets is converted into a motion vector with whole-pixel accuracy to obtain the target motion vector.
  • the reference motion vector of the current block may be a motion vector with a precision of whole pixels.
  • the determining a target motion vector for motion compensation of the current block may include: determining a reference motion vector of the current block, where the reference motion vector is a motion vector with a precision of whole pixels; acquiring the reference An offset of the motion vector, the offset being an offset of the precision of whole pixels; determining the sum of the reference motion vector and the offset as the target motion vector.
  • the offset of the reference motion vector may be a preset offset; or, the offset of the reference motion vector may be an offset obtained after scaling the preset offset.
  • the offset of the reference motion vector is an offset obtained after scaling the preset offset, and before scaling the reference motion vector, the processor 1120 may be further used to execute the following Operation: Convert the offset of sub-pixel precision in the preset offset into an offset of whole pixel precision.
  • the determining the reference motion vector of the current block includes: obtaining a candidate motion vector list of the current block; and selecting the reference motion vector from the candidate motion vector list of the current block.
  • the acquiring a motion vector candidate list of the current block may include: acquiring a motion vector of a first neighboring block of the current block, the motion vector of the first neighboring block being a sub-pixel precision motion vector; Convert the motion vector of the first neighboring block to a motion vector of integer pixel precision; if the motion vector of integer pixel precision exists in the motion vector candidate list of the current block, discard the motion vector of integer pixel precision ; If the motion vector of the current block does not have the motion vector of the whole pixel precision, add the motion vector of the whole pixel precision to the motion vector candidate list.
  • the acquiring the motion vector candidate list of the current block may include: acquiring the motion vector of the first neighboring block of the current block; judging whether the current vector is present in the motion vector candidate list of the current block A motion vector of a neighboring block is the same; if there is no motion vector in the motion vector candidate list of the current block that is the same as the motion vector of the first neighboring block, the motion vector of the first neighboring block Convert to a motion vector with integer pixel accuracy, and add the motion vector with integer pixel accuracy to the motion vector candidate list of the current block; if there is a first neighboring block in the motion vector candidate list of the current block If the motion vector of the same is the same, the motion vector of the first neighboring block is discarded.
  • the processor 1120 may be further configured to perform the following operation: store the motion vector of the current block obtained after the motion compensation.
  • the motion vector of the current block obtained after the motion compensation is the first motion vector in the target motion vector, and the first motion vector is converted from the second motion vector with sub-pixel accuracy
  • the processor 1120 may be further configured to perform the following operation: after the motion compensation is completed, store the second motion vector as the motion vector of the current block again.
  • the motion compensation of the current block according to the target motion vector may include: determining a prediction block of the current block according to the target motion vector; according to the original block and prediction of the current block Block, calculating the residual block of the current block.
  • the motion compensation of the current block according to the target motion vector may include: determining the prediction block and the residual block of the current block according to the target motion vector; and according to the current block Predict the block and the residual block, and calculate the reconstructed block of the current block.
  • the motion compensation is motion compensation in a one-way prediction mode or a two-way prediction mode.
  • the size of the current block includes one or more of 4 ⁇ 4, 8 ⁇ 4, 4 ⁇ 16, and 16 ⁇ 4.
  • the acquiring the target motion vector for motion compensation of the current block may include: acquiring the initial motion vector for motion compensation of the current block; and converting the sub-pixel precision motion vector in the initial motion vector Convert to a motion vector with full pixel precision to obtain the target motion vector.
  • the computer program product includes one or more computer instructions.
  • the computer may be a general-purpose computer, a dedicated computer, a computer network, or other programmable devices.
  • the computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be from a website site, computer, server or data center Transmission to another website, computer, server or data center via wired (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.).
  • the computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device including one or more available medium integrated servers, data centers, and the like.
  • the available media may be magnetic media (eg, floppy disk, hard disk, magnetic tape), optical media (eg, digital video disc (DVD)), or semiconductor media (eg, solid state disk (SSD)), etc. .
  • the disclosed system, device, and method may be implemented in other ways.
  • the device embodiments described above are only schematic.
  • the division of the unit is only a logical function division, and there may be other divisions in actual implementation, for example, multiple units or components may be combined or Can be integrated into another system, or some features can be ignored, or not implemented.
  • the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and may be in electrical, mechanical, or other forms.
  • the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place or may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
  • each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.

Landscapes

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

Abstract

提供一种视频处理方法和装置。该方法包括:如果当前块的尺寸不满足所述预设条件,采用整像素精度和亚像素精度中的一种精度的运动矢量对所述当前块进行帧间预测;如果当前块的尺寸满足所述预设条件,采用整像素精度的运动矢量对所述当前块进行帧间预测。如果当前块的尺寸满足所述预设条件,则禁止其采用亚像素精度的运动矢量进行帧间预测,而非像相关技术那样完全禁止当前块执行该帧间预测,从而可以在降低数据吞吐量的同时尽量保证编码性能。

Description

视频处理方法和装置
版权申明
本专利文件披露的内容包含受版权保护的材料。该版权为版权所有人所有。版权所有人不反对任何人复制专利与商标局的官方记录和档案中所存在的该专利文件或者该专利披露。
技术领域
本申请涉及视频编解码领域,并且更为具体地,涉及一种视频处理方法和装置。
背景技术
帧间预测是视频编解码技术的重要组成部分。为了提高视频压缩质量,相关视频编解码标准引入了自适应运动矢量精度(adaptive motion vector resolution,AMVR)技术。
AMVR设置有整像素精度的运动矢量和亚像素(例如1/4像素)精度的运动矢量。采用亚像素精度的运动矢量进行帧间预测时,需要对参考帧中的图像进行插值,引起数据吞吐量的增加。
发明内容
本申请提供一种视频处理方法和装置,能够在降低数据吞吐量的同时尽量保证编码性能。
第一方面,提供一种视频处理方法,包括:获取当前块;如果所述当前块的尺寸不满足所述预设条件,采用整像素精度和亚像素精度中的一种精度的运动矢量对所述当前块进行帧间预测;如果所述当前块的尺寸满足所述预设条件,采用整像素精度的运动矢量对所述当前块进行帧间预测。
第二方面,提供一种视频处理装置,包括:存储器,用于存储代码;处理器,用于读取所述存储器中的代码,以执行如下操作:获取当前块;如果所述当前块的尺寸不满足所述预设条件,采用整像素精度和亚像素精度中的一种精度的运动矢量对所述当前块进行帧间预测;如果所述当前块的尺寸满足所述预设条件,采用整像素精度的运动矢量对所述当前块进行帧间预测。
第三方面,提供一种视频处理方法,包括:确定所述当前块的用于运动补偿的目标运动矢量,其中,所述目标运动矢量均为整像素精度的运动矢量;根据所述目标运动矢量,对所述当前块进行运动补偿。
第四方面,提供一种视频处理装置,包括:存储器,用于存储代码;处理器,用于读取所述存储器中的代码,以执行如下操作:确定所述当前块的用于运动补偿的目标运动矢量,其中,所述目标运动矢量均为整像素精度的运动矢量;根据所述目标运动矢量,对所述当前块进行运动补偿。
第五方面,提供一种计算机可读存储介质,其上存储有用于执行第一方面或第三方面所述的方法的代码。
第六方面,提供一种计算机程序产品,包括用于执行第一方面或第三方面所述的方法的代码。
附图说明
图1是视频编码过程的示意图。
图2是8×8的图像块和4×4的图像块的示意图。
图3是本申请一个实施例提供的视频处理方法的示意性流程图。
图4是本申请另一实施例提供的视频处理方法的示意性流程图。
图5是图4实施例的一种可能的实现方式的示意性流程图。
图6是图4实施例的另一种可能的实现方式的示意性流程图。
图7是MMVD技术的实现方式示例图。
图8是图4实施例的又一种可能的实现方式的示意性流程图。
图9是图4实施例的又一种可能的实现方式的示意性流程图。
图10是本申请一个实施例提供的视频处理装置的示意性结构图。
图11是本申请另一实施例提供的视频处理装置的示意性结构图。
具体实施方式
本申请可应用于多种视频编码标准,如H.264,高效率视频编码(high efficiency video coding,HEVC),通用视频编码(versatile video coding,VVC),音视频编码标准(audio video coding standard,AVS),AVS+,AVS2以及AVS3等。
如图1所示,视频编码过程主要包括预测、变换、量化、熵编码等部分。 预测是主流视频编码技术的重要组成部分。预测可以分为帧内预测和帧间预测。帧间预测主要包含运动估计和运动补偿过程。下面对运动补偿过程进行举例说明。
例如,对于一帧图像,可以先将其划分成一个或多个编码区域。该编码区域也可称为编码树单元(coding tree unit,CTU)。CTU的尺寸例如可以是64×64,也可以是128×128(单位为像素,后文的类似描述均省略单位)。每个CTU可以划分成方形或矩形的图像块。该图像块也可称为编码单元(coding unit,CU),后文会将待编码的当前CU称为当前块。
在对当前块进行帧间预测时,可以从参考帧(一般是时域附近的已重构帧)中寻找当前块的相似块,作为当前块的预测块。当前块与预测块之间的相对位移称为运动矢量(motion vector,MV)。运动矢量的获取过程即为运动估计过程。运动补偿可以理解为利用运动矢量和参考帧得到预测块的过程,此过程得到的预测块可能与原始的当前块有一定的差别,因此,可以将预测块和当前块的残差经过变换、量化等操作之后传递至解码端。除此之外,编码端还将运动矢量的信息传递至解码端。这样一来,解码端通过运动矢量、当前块的参考帧、预测块和当前块的残差,可以重构出当前块。以上描述的过程即为帧间预测的大致过程。
帧间预测技术主要包括单向预测和双向预测等,其中,单向预测可以包括前向预测和后向预测。前向预测是利用前一重构帧(“历史帧”)对当前帧进行预测。后向预测是利用当前帧之后的帧(“将来帧”)对当前帧进行预测。双向预测是不仅利用“历史帧”,也利用“将来帧”对当前帧进行帧间预测。
帧间预测模式可以包括高级运动向量预测(Advanced Motion Vector Prediction,AMVP)模式和合并(Merge)模式。在Merge模式中,可以根据当前块的邻近块(空域或时域的邻近块)的运动矢量生成运动矢量的预测值(Motion Vector Prediction,MVP)候选列表(简称MVP候选列表),所述MVP候选列表中包括一个或多个当前块的临近块的运动矢量(简称为候选MVP)。在获取所述MVP候选列表后,可以在列表中确定MVP,并直接将该MVP确定为MV,即当前块的运动矢量,并可以在码流中传递该MVP的索引号和参考帧索引至解码端,以用于解码端的解码。
对于AMVP模式而言,可以先确定MVP,在得到MVP之后,可以根据MVP确定运动估计的起始点,在起始点附近,进行运动搜索,搜索完毕 之后得到最优的MV,由MV确定参考块在参考图像中的位置,参考块减去当前块得到残差块,MV减去MVP得到运动矢量差值(Motion Vector Difference,MVD),并将该MVD通过码流传输给解码端。
对于Merge模式而言,可以先确定MVP,并直接将MVP确定为MV。其中,为了得到MVP,可以先获取一个如前所述的MVP候选列表,在MVP候选列表中,可以包括至少一个候选MVP,每个候选MVP可以对应有一个索引,编码端在从MVP候选列表中选择MVP之后,可以将该MVP索引写入到码流中,则解码端可以按照该索引从MVP候选列表中找到该索引对应的MVP,以实现对图像块的解码。
为了更加清楚地理解Merge模式,以下将介绍采用Merge模式进行编码的操作流程。
步骤一、获取MVP候选列表,具体地,通常先利用当前块的邻近块(空域或时域的邻近块)的运动矢量获取MVP候选列表;
步骤二、从MVP候选列表中选出最优的一个MVP,同时得到该MVP在MVP候选列表中的索引;
步骤三、把该MVP作为当前块的MV;
步骤四、根据MV确定参考块在参考图像中的位置;
步骤五、参考块减去当前块得到残差块;
步骤六、把残差数据和MVP的索引传给解码器。
应理解,以下流程只是Merge模式的一种具体实现方式。Merge模式还可以具有其他的实现方式。
例如,Skip模式是Merge模式的一种特例。按照Merge模式得到MV之后,如果编码器确定当前块和参考块基本一样,那么不需要传输残差数据,只需要传递该MVP的索引,以及进一步地可以传递一个标志,该标志可以表明当前块可以直接从参考块得到。
也就是说,Merge模式特点为:MV=MVP(MVD=0);而Skip模式还多一个特点,即:重构值rec=预测值pred(残差值resi=0)。
在获取上述MVP候选列表时,可以从HMVP候选列表中选择候选HMVP作为MVP候选列表中的候选MVP。
上文描述了运动估计的过程。由于自然物体运动的连续性,物体在相邻 两帧之间的运动矢量不一定以整像素(整像素可以是1个像素,也可以是多个像素,例如2像素、4像素或8像素等)为单位。因此,为了提高运动矢量的精确程度,相关技术引入亚像素(或称分数像素,例如1/2像素、1/4像素或1/8像素等)精度的运动矢量,如高效率视频编码(high efficiency video coding,HEVC)对亮度分量引入了1/4像素精度的运动矢量。由于数字视频图像不存在亚像素处的样值,为了支持1/K倍的亚像素精度的运动矢量,通常会对视频图像在行方向和列方向进行K倍内插,以获取亚像素处的样值,然后根据插值之后的图像进行运动估计。
相关技术引入了自适应运动矢量精度(adaptive motion vector resolution,AMVR)技术。AMVR设置有多种精度的运动矢量,且该多种精度可以包括整像素精度,也可以包括亚像素精度。例如,AMVR可以包括1像素精度、4像素精度(1像素精度和4像素精度均属于整像素精度)和1/4像素精度(属于亚像素精度)的运动矢量。又如,AMVR可以包括1像素精度、4像素精度、1/4像素精度、1/8像素精度、1/16像素精度等。在编码端,编码器会进行AMVR决策,自适应地从多种运动矢量精度中选取与当前块匹配的运动矢量精度,并将该运动矢量精度对应的指示信息(或称AMVR的决策结果)写入码流,并传递至解码端。解码端可以从码流中获取该指示信息,并采用该指示信息指示的运动矢量精度进行帧间预测。
前文已经指出,为了支持亚像素精度的运动矢量,需要对参考帧中的图像块进行插值,插值过程需要用到多个当前块周围的像素点,这样会导致数据吞吐量的增加。因此,有些相关技术可能会禁止满足某些条件的当前块进行帧间预测或禁止满足某些条件的当前块进行某种类型的帧间预测(如双向帧间预测),以避免数据吞吐量过大。
举例说明,假设当前块为如图2左侧所示的8×8的图像块,如果采用1/4像素精度的运动矢量对该当前块进行双向帧间预测,则需要利用当前块的参考块中的像素点,以及当前块的参考块周围的像素点来得到内插后的1/4像素点,此过程需要用到(8+7)×(8+7)×2=450个参考像素点。如图2右侧所示,8×8的图像块可以被分割为4个4×4的图像块。假设当前块的尺寸为4×4,如果采用1/4像素精度的运动矢量对该当前块进行双向预测,需要用到(4+7)×(4+7)×2=242个参考像素点,4个4×4的图像块共需要添加242×4=968个参考像素点。通过对比可以看出,与8×8的当前块相比,如 果对4×4的当前块进行双向预测,数据吞吐量会增加115%。因此,为了避免数据吞吐量增长过大,有些相关技术可能会禁止4×4的当前块执行双向帧间预测。
相关技术将某种尺寸的当前块的某种类型的帧间预测直接禁止掉,会导致编码性能下降。实际上,如前文所述,数据吞吐量的增大是由于亚像素精度的运动矢量引起的,因此,对于某种尺寸的当前块的某种类型的帧间预测(如双向预测)而言,只要禁止掉亚像素精度的运动矢量对应的帧间预测过程,就可以起到降低数据吞吐量的效果,没有必要将整像素精度的运动矢量对应的帧间预测也一并禁止掉。
为此,本申请实施例提供的以下方案,可以能够在降低数据吞吐量的同时尽量保证编码性能。
应理解,本申请实施例提供的方案可以不限于用于以上提到的Merge模式,还可以用于其他的帧间预测模式。
下面结合图3,详细描述本申请一个实施例提供的视频处理方法。图3包括步骤S310-S330,下面对这些步骤进行详细描述。
在步骤S310,获取当前块。
在步骤S320,如果当前块的尺寸不满足预设条件,采用整像素精度和亚像素精度中的一种精度的运动矢量对当前块进行帧间预测。或者,从整像素精度和亚像素精度中选取出一种精度的运动矢量对当前块进行帧间预测。
整像素精度指的是像素精度为1个像素的整数倍(包括1个像素)。整像素精度例如可以包括以下像素精度中的一种或多种:1像素和4像素。在某些实施例中,本申请实施例提及的整像素精度可以包括AMVR提供的整像素精度中的部分或全部像素精度。
亚像素精度指的是像素精度小于1个像素。亚像素精度例如可以包括以下像素精度中的一种或多种:1/4像素,1/8像素和1/16像素等等。在某些实施例中,本申请实施例提及的亚像素精度可以包括AMVR提供的亚像素精度中的部分或全部像素精度。
本申请实施例对预设条件不做具体限定。
作为一个示例,预设条件可以为当前块的尺寸小于预设尺寸,在这种情况下,步骤S320可以表述为:如果当前块的尺寸大于或等于预设尺寸,采用整像素精度和亚像素精度中的一种精度的运动矢量对当前块进行帧间预 测;步骤S330可以表述为:如果当前块的尺寸小于预设尺寸,采用整像素精度的运动矢量对当前块进行帧间预测。
作为另一个示例,预设条件可以为当前块的尺寸小于或等于预设尺寸,在这种情况下,步骤S320可以表述为:如果当前块的尺寸大于预设尺寸,采用整像素精度和亚像素精度中的一种精度的运动矢量对当前块进行帧间预测;步骤S330可以表述为:如果当前块的尺寸小于或等于预设尺寸,采用整像素精度的运动矢量对当前块进行帧间预测。
作为一个示例,预设条件可以为当前块的尺寸为预设尺寸,在这种情况下,步骤S320可以表述为:如果当前块的尺寸不为预设尺寸,采用整像素精度和亚像素精度中的一种精度的运动矢量对当前块进行帧间预测;步骤S330可以表述为:如果当前块的尺寸为预设尺寸,采用整像素精度的运动矢量对当前块进行帧间预测。
本申请实施例对预设尺寸不做具体限定,可以根据实际需要设定。例如,预设尺寸可以包括4×4,8×4,4×16,16×4,16×16,8×8中的一个或多个。
在步骤S330,如果当前块的尺寸满足预设条件,采用整像素精度的运动矢量对当前块进行帧间预测。
步骤S320-S330中的帧间预测可以指单向预测,也可以指双向预测,也可以既包括单向预测,也包括双向预测。换句话说,图3所示的方法可以适用于单向预测,也可以适用于双向预测,也可以既适用于单向预测,也适用于双向预测。例如,假设步骤S320-S330中的帧间预测指的是双向预测,则对于单向预测而言,即使当前块的尺寸满足上述预设条件,也可以对当前块执行亚像素精度的单向预测。
在某些实施例中,步骤S320-S330均可看成是基于AMVR的帧间预测过程,不同之处在于,步骤S320描述的基于AMVR的帧间预测过程包含亚像素精度,步骤S330描述的基于AMVR的帧间预测过程不包含亚像素精度。
本申请实施例中,如果当前块的尺寸满足预设条件,则禁止其采用亚像素精度的运动矢量进行某种类型的帧间预测,而非完全禁止其执行该种类型的帧间预测,从而可以在降低数据吞吐量的同时尽量保证编码性能。
由于当前的通用视频编码(versatile video coding,VVC)禁掉了尺寸小于8×8的某些当前块(如4×4的当前块)的双向预测过程,因此,在某些 实施例中,步骤S320-S330可替换为:如果当前块的尺寸为目标尺寸,则采用整像素精度的运动矢量对当前块进行双向预测,不采用亚像素精度的运动矢量对当前块进行双向预测,所采用的整像素精度可以为1整像素精度或4像素精度。该目标尺寸例如可以是以下尺寸中的一种或多种:4×4或4×8或8×4。
以当前块的尺寸等于4×4为例,可以对当前块的双向预测过程进行AMVR决策,不过在AMVR决策过程中,可以跳过亚像素精度的决策过程,仅执行整像素精度的决策过程中的部分或全部决策过程。同理,在对该当前块进行双向预测过程中,如果运动矢量精度为整像素,则基于该运动矢量进行双向预测,并非像相关技术那样跳过该整像素的双向预测过程。这样一来,可以在保持数据吞吐量和带宽的情况下,尽可能提升编码性能。
由于编解码端均需要进行帧间预测,因此,图3所示的方法可应用于编码端,也可应用于解码端。
以图3所示的方法应用于编码端为例,则图3中的对当前块进行帧间预测的步骤可以包括:确定当前块的预测块;根据当前块的原始块和预测块,计算当前块的残差块。例如,可以计算当前块对应的原始块和预测块的差值,以得到该残差块。
进一步地,在某些实施例中,编码端还可以编码当前块对应的运动矢量精度的指示信息。可选地,如果当前块的尺寸不满足预设条件,指示信息具有M比特,如果当前块的尺寸满足预设条件,指示信息具有N比特,M、N均为正整数,且N小于或等于M。这里所说的比特可以为实际编码时实际写入码流或解码时实际从码流中获得比特信息,也可以指在熵编码或熵解码过程中用到的bin。
例如,假设步骤S320对应的帧间预测的运动矢量在4像素,1像素和1/4像素中进行选择,步骤S330对应的帧间预测的运动矢量精度在4像素和1像素中进行选择,则M可以为2比特,其中,“0”代表当前块的运动矢量精度为1/4像素,“10”代表当前块的运动矢量精度为1像素,“11”代表当前块的运动矢量精度为4像素,N可以为1比特,其中“0”代表当前块的运动矢量精度为1像素,“1”代表当前块的运动矢量精度为4像素。
进一步地,在某些实施例中,编码端还可以将当前块对应的运动矢量精度的指示信息写入码流。
本申请实施例中,如果当前块的尺寸满足预设条件,当前块不采用亚像素精度进行帧间预测,因此,可以采用更少的比特数表示AMVR的决策结果,从而降低码流的数据量。
进一步地,在某些实施例中,编码端还可以不编码当前块的运动矢量精度的指示信息。解码端也可以不从实际码流中获取当前块的运动矢量精度的指示信息。编解码端根据当前块的尺寸按约定的方法确定运动矢量精度。当当前块的尺寸不满足预设条件时,当前块采用1/4像素的运动矢量精度,当当前块的尺寸满足预设条件时,当前块采用1像素的运动矢量精度。
例如,假设预设条件为:当前块的尺寸为4x4,则当当前块的尺寸不为4x4时,当前块采用1/4像素的运动矢量精度;当当前块的尺寸等于4x4时,当前块采用1像素的运动矢量精度。
又例如,假设预设条件为:当前块的尺寸小于8x8,则当当前块的尺寸大于或等于8x8时,当前块采用1/4像素的运动矢量精度;当当前块的尺寸小于8x8时,当前块采用1像素的运动矢量精度。
上述方法可以应用于AMVR工具关闭的情况。
上述1/4像素的运动矢量精度表示运动矢量以1/4像素为单位递增,或运动矢量差值以1/4像素为单位递增;上述1像素的运动矢量精度表示运动矢量以1像素为单位递增,或运动矢量差值以1像素为单位递增;上述4像素的运动矢量精度表示运动矢量以4像素为单位递增,或运动矢量差值以4像素为单位递增。
以图3所示的方法应用于解码端为例,则图3中的对当前块进行帧间预测的步骤可以包括:确定当前块的预测块和残差块;根据当前块的预测块和残差块,计算当前块的重构块。例如,可以将当前块的预测块与残差块之和作为当前块的重构块。
当前块的预测块可以利用当前块对应的运动信息确定。运动信息可以包括运动矢量预测的索引以及运动矢量精度的指示信息等。这些信息均可从码流中获取。对于当前块对应的运动矢量精度的指示信息而言,如果当前块的尺寸不满足预设条件,指示信息可以具有M比特,如果当前块的尺寸满足预设条件,指示信息可以具有N比特,M、N均为正整数,且N小于或等于M。关于M和N的实现方式与编码端对应,具体论述可以参见上文,此处不再详述。
上文提及的视频处理方法可应用于AMVP模式(或称inter模式)的帧间预测过程。除了AMVP模式,上文提及的视频处理方法可应用于merge模式。
在现有技术中,如果用于运动补偿的目标运动矢量存在亚像素精度的运动矢量,也会引起系统的带宽压力。为了缓解这种情况下对当前块进行帧间预测时所引起的系统带宽压力,下面结合图4,详细描述本申请另一实施例提供的视频处理方法,其中,所述视频处理方法可以适用于视频的编码过程,也可以适用于视频的解码过程。所述方法可以由视频处理装置来执行,所述视频处理装置可以为视频编码装置,所述视频处理装置也可以为视频解码装置,在这里不作具体地限定。
如图4所示,该方法可以包括步骤S410至步骤S420。
在步骤S410,获取当前块的用于运动补偿的目标运动矢量。
具体地,在获取所述当前块的运动矢量的过程中,视频处理装置可以获取当前块的能够用于运动补偿的目标运动矢量。其中,为了避免帧间预测的过程中由于用于运动补偿的运动矢量为亚像素精度而引起的插值运算,这里要求所述当前块的用于运动补偿的目标运动矢量为整像素精度的运动矢量。所述用于运动补偿的目标运动矢量的数量可以为一个或多个,多个目标运动矢量可以包括至少两个目标运动矢量,则多个目标运动矢量中的每一个都是整像素精度的运动矢量。
由于用于运动补偿的目标运动矢量均为整像素精度的运动矢量,这样可以保证当前块的运动补偿过程无需对参考帧中的像素进行插值,从而不会引起系统的带宽压力。
步骤S410提及的运动补偿可以为单向预测模式或双向预测模式下的运动补偿,本申请实施例对此并不限定。
在某些实施例中,步骤S410可包括:获取当前块的用于运动补偿的初始运动矢量;将初始运动矢量中的亚像素精度的运动矢量转换成整像素精度的运动矢量,得到目标运动矢量。
进一步地,步骤S410可包括:获取当前块的用于运动补偿的初始运动矢量;如果所述初始运动矢量中包含亚像素精度的运动矢量,则将所述亚像素精度的运动矢量转换成整像素精度的运动矢量,得到目标运动矢量。具体地,用于运动补偿的初始运动矢量可以是以任何方式来获取的,例如,按照 传统方式获取,例如所述初始运动矢量列表包括如前所述的MPV候选列表,所述初始运动矢量候选列表中可能包括一个或多个亚像素的候选运动矢量。视频处理装置可以从初始运动候选列表中选取候选运动矢量作为用于运动补偿的初始运动矢量,然后将初始运动矢量中的亚像素精度的运动矢量转换成整像素精度的运动矢量,得到目标运动矢量。
在某些实施例中,所述获取当前块的用于运动补偿的目标运动矢量,包括:确定所述当前块的尺寸,当所述当前块的尺寸为预设尺寸时,获取当前块的用于运动补偿的目标运动矢量。
具体地,视频处理装置在获取到当前块时,可以先确定所述当前块的尺寸。当所述当前块的尺寸为预设尺寸时,确定的所述当前块的用于运动补偿的目标运动矢量必须为整像素精度的运动矢量。当所述当前块的尺寸不为预设尺寸时,用于运动补偿的目标运动矢量可以为整像素精度的运动矢量和亚像素精度的运动矢量中的任一种。预设尺寸可以根据实际需要设定,例如,当前块的尺寸可以是以下尺寸中的一种或多种:4×4,8×4,4×16,16×4。
本申请实施例对所述目标运动矢量的获取方式不做具体限定。针对未采用MMVD(merge with motion vector difference)技术的帧间预测,一种可能的实现方式是将运动矢量候选列表(本申请中的运动矢量可替换为运动信息,运动矢量候选列表可替换为运动信息候选列表,或merge候选列表)中的候选运动矢量整像素化,这样一来,从运动矢量候选列表中选取出的候选运动矢量均为整像素的运动矢量,可以直接作为目标运动矢量进行运动补偿;另一种可能的实现方式是不对运动矢量候选列表进行整像素化处理,当从运动矢量候选列表中选出的候选运动矢量为亚像素精度的运动矢量时,再将其整像素化,作为目标运动矢量使用。
针对采用MMVD技术的帧间预测而言,可以先对当前块的基准运动矢量和偏移量均进行整像素化,使得二者合成的目标运动矢量为整像素精度的运动矢量。或者,也可以先将当前块的基准运动矢量和偏移量合成,如果二者合成的候选运动矢量为亚像素精度的运动矢量,则对其整像素化,并利用整像素化后得到的运动矢量作为目标运动矢量来进行运动补偿。
后文会结合具体的实施例对目标运动矢量的获取方式(即步骤410的实现方式)进行详细描述,此处暂不详述。
在步骤S420,根据目标运动矢量,对当前块进行运动补偿。
本申请实施例中,在保证用于运动补偿的目标运动矢量的精度为整像素精度时,该当前块会采用整像素精度的运动矢量进行运动补偿,无需对参考帧中的像素进行插值,降低了运算量,从而降低了系统的带宽压力。
下面对步骤S410的实现方式进行详细地举例说明。
图5描述的是步骤S410的一种可能的实施例。如图5所示,步骤S410可以包括步骤S512和步骤S514。
在步骤S512,获取当前块的运动矢量候选列表。
本实施例中,获取到的运动矢量候选列表中的候选运动矢量均为整像素精度的运动矢量。此类运动矢量候选列表的获取方式可以有多种,下面示意性地给出几种可行的方式:
一种可行的方式是:获取当前块的初始运动矢量候选列表,将所述初始运动矢量候选列表中的亚像素精度的候选运动矢量转换成整像素精度的候选运动矢量以获取所述运动矢量候选列表。其中,所述获取当前块的初始运动矢量候选列表的方式可以按照传统方式获取,例如所述初始运动矢量列表包括如前所述的MPV候选列表,所述初始运动矢量候选列表中可能包括一个或多个亚像素的候选运动矢量,视频处理装置可以将初始运动矢量候选列表中的所述一个或多个亚像素的候选运动矢量全部转换成整像素的候选运动矢量,在转换之后即可以得到所述运动矢量候选列表。
另一种可行的方式:获取当前块的候选运动矢量,将所述候选运动矢量中的亚像素精度的候选运动矢量转换整像素精度的候选运动矢量,根据所述转换之后的候选运动矢量生成当前块的运动矢量候选列表。其中,所述当前块的候选运动矢量可以为如前所述的当前块的邻近块(空域或时域的邻近块)的运动矢量,所述当前块的候选运动矢量中可能包括一个或多个亚像素的候选运动矢量,视频处理装置可以将所述一个或多个亚像素的候选运动矢量全部转换成整像素的候选运动矢量,在转换之后,所述转换之后的候选运动矢量生成当前块的运动矢量候选列表,例如将所述转换之后的候选运动矢量加入运动矢量候选列表中。
通过以上两种方式可以使得获取的运动矢量候选列表中的候选运动矢量为整像素精度的运动矢量。
在步骤S514,从当前块的运动矢量候选列表中选取目标运动矢量。
本实施例中,由于运动矢量候选列表中的候选运动矢量均为整像素精度 的运动矢量,则用于运动补偿的目标运动矢量可以直接从运动矢量候选列表中选取。
图6描述的是步骤S410的另一种可能的实施例。如图6所示,步骤S410可以包括步骤S612-S616。
在步骤S612,获取当前块的运动矢量候选列表。
与图5中的步骤S512不同,图6的实施例可以按照传统技术获取当前块的运动矢量候选列表,例如该运动矢量候选列表可以包括如前所述的MPV候选列表。其中,所述运动矢量候选列中包括一个或多个初始候选运动矢量,其中,一个或多个初始候选运动矢量可能包括整像素精度的候选运动矢量,也可能包括亚像素精度的候选运动矢量。
在步骤S614,从当前块的运动矢量候选列表中选取当前块的初始候选运动矢量。
本申请实施例对步骤S614的实现方式不做具体限定,可以按照传统技术选取。例如,可以以遍历的方式从运动矢量候选列表中选取初始候选运动矢量。
在步骤S616,将初始候选运动矢量中的亚像素精度的运动矢量转换成整像素精度的运动矢量,得到目标运动矢量。
视频处理装置可以从所述运动矢量候选列表中选取一个或多个初始候选运动矢量,所述一个或多个初始候选运动矢量中可能存在亚像素精度的候选运动矢量,将亚像素精度的候选运动矢量转换成整像素精度的运动矢量,转换之后即可以得到与所述一个或多个初始候选运动矢量对应的一个或多个整像素精度的候选运动矢量。进一步地,可以将所述一个或多个整像素精度的候选运动矢量确定为所述目标运动矢量。
不同于图5所示的实施例,本实施例并未提前将运动矢量候选列表中的候选运动矢量整像素化,因此,从运动矢量候选列表中选取出的初始候选运动矢量可能是亚像素精度的运动矢量。因此,本申请实施例先将亚像素精度的初始候选运动矢量整像素化,以保证用于运动补偿的目标运动矢量均为整像素精度的运动矢量。
图5和图6描述的实现方式可以应用于未使用MMVD技术进行帧间预测的场景。对于使用MMVD技术进行帧间预测的场景,步骤S410可以采用图8至图9所示的实现方式。
为了便于理解,在描述图8-图9之前,先结合图7,对MMVD技术进行简单介绍。
MMVD技术可以用于在候选运动矢量的基础上对当前块的运动矢量进行进一步的精确定位。具体而言,MMVD技术首先确定当前块的基准运动矢量,例如从运动矢量候选列表中选出基准运动矢量。然后,会在基准运动矢量周围按照一定的偏移值进行扩展,以确定扩展后的最优运动矢量。
以双向预测为例,如图7所示,在前向参考帧(L0reference)和后向参考帧(L1reference)中,可以以基准运动矢量(该基准运动矢量从运动矢量候选列表中选出)为起点,然后按照一定的偏移量(或称步长)在上下左右四个方向进行扩展搜索,从而确定最优运动矢量。
扩展过程使用的偏移量可以是预设的偏移量,也可以对预设的偏移量进行缩放之后得到的偏移量(在单向预测过程中,通常会直接使用预设的偏移量;在双向预测过程中,通常会使用缩放之后的偏移量)。预设的偏移量的取值例如可以包括如下的8种取值:{1/4像素,1/2像素,1像素,2像素,4像素,8像素,16像素,32像素}。偏移量的缩放比例可以是整数,也可以是小数。
图8描述的是在MMVD场景下步骤S410的一种可能的实现方式。如图8所示,步骤S410可以包括步骤S812-S816。
在步骤S812,获取当前块的基准运动矢量。
具体地,可以先获取当前块的运动矢量候选列表,然后将所述运动矢量候选列表中一个或多个候选运动矢量确定为当前块的基准运动矢量。其中,所述当前块的运动矢量候选列表可以为图5中对应的运动矢量候选列表,所述当前块的运动矢量候选列表可以为图6中对应的运动矢量候选列表。当前块的基准运动矢量可以为整像素精度的运动矢量,也可以为亚像素精度的运动矢量,本申请实施例对此并不限定。
在步骤S814,获取基准运动矢量的偏移量。
基准运动矢量的偏移量可以是预设的偏移量,如可以是以下偏移量中的一种或多种:{1/4像素,1/2像素,1像素,2像素,4像素,8像素,16像素,32像素}。例如,假设当前块的帧间预测为单向帧间预测,则基准运动矢量的偏移量可以从预设的偏移量中选取。
或者,在某些实施例中,基准运动矢量的偏移量可以是预设的偏移量经 过缩放之后得到的偏移量。举例说明,可以按照一定的缩放比例对以下预设偏移量中的一种或多种进行缩放之后得到基准运动矢量的偏移量:{1/4像素,1/2像素,1像素,2像素,4像素,8像素,16像素,32像素}。例如,假设当前块的帧间预测为双向帧间预测,可以按照一定的缩放比例对预设的偏移量进行缩放操作,得到某个基准运动矢量的偏移量。缩放比例可以是整数,也可以是小数。
在步骤S816,将基准运动矢量和偏移量之和中的亚像素精度的运动矢量转换为整像素精度的运动矢量,得到目标运动矢量。
图8的实施例可以有多种实现方式,为了便于理解,下面给出几个示例。
作为一个示例,步骤S812和步骤S814均按照传统技术实现,即不对运动矢量候选列表的获取以及MMVD过程进行调整。这样一来,基准运动矢量和偏移量均可能是亚像素精度的运动矢量。如果基准运动矢量和偏移量之后是亚像素精度的运动矢量,则可以利用步骤S816将其转换成整像素精度的目标运动矢量。
作为另一个示例,步骤S812获取的基准运动矢量可以是经过整像素化的运动矢量。步骤S814获取的偏移量可以是原始的偏移量(原始的偏移量可以指预设的偏移量或经过缩放之后的偏移量)。由于原始的偏移量可能是亚像素精度的偏移量,因此,可以利用步骤S816将基准运动矢量及其偏移量之和转换成整像素精度的目标运动矢量。
作为又一个示例,步骤S812获取的基准运动矢量可以是经过整像素化的运动矢量。步骤S814获取的偏移量可以是先对预设偏移量进行整像素化、再对整像素化后的偏移量进行缩放之后得到的偏移量。由于整像素化后的偏移量进行缩放之后仍可能是亚像素精度的偏移量(缩放比例可能是小数),因此,可以利用步骤S816将基准运动矢量及其偏移量之和转换成整像素精度的目标运动矢量。
图9描述的是在MMVD场景下步骤S410的一种可能的实现方式。如图9所示,步骤S410可以包括步骤S912-S916。
在步骤S912,获取当前块的基准运动矢量。
步骤S912获取的基准运动矢量为整像素精度的运动矢量,换句话说,所述基准运动矢量的精度为整像素精度。获取整像素精度的基准运动矢量的方式可以有多种。例如,可以获取图5中对应运动矢量候选列表,其中,所 述运动矢量候选列表中的运动矢量候选信息均为整像素精度的运动矢量,从运动矢量候选列表选取出的基准运动矢量;或者,可以获取图6中对应的运动矢量候选列表,先从运动矢量候选列表中选取出一个或多个初始运动候选运动矢量,所述一个或多个初始候选运动矢量中可能存在亚像素精度的候选运动矢量,将亚像素精度的候选运动矢量转换成整像素精度的运动矢量,转换之后即可以得到与所述一个或多个初始候选运动矢量对应的一个或多个整像素精度的候选运动矢量。进一步地,可以将所述一个或多个整像素精度的候选运动矢量获取所述基准运动矢量。
在步骤S914,获取基准运动矢量的偏移量。
步骤S914获取的偏移量可以为整像素精度的偏移量,换句话说,基准运动矢量的偏移量的精度可以为整像素精度。如果无需对预设的偏移量进行缩放,则可以直接对预设的偏移量整像素化以获取基准运动矢量的偏移量。如果需要对预设的偏移量进行缩放,则一种可能的实现方式是先对预设的偏移量进行缩放,再将缩放后的偏移量进行整像素化以获取基准运动矢量的偏移量;另一种可能的实现方式是先将预设的偏移量整像素化,再对整像素化之后的偏移量进行缩放,然后再对缩放后的偏移量进行整像素化以获取基准运动矢量的偏移量。
在步骤S916,将基准运动矢量和偏移量之和确定为目标运动矢量。
由于步骤S914和步骤S916获取的基准运动矢量和偏移量均为整像素精度,因此,二者之和也为整像素精度,可以直接将其作为目标运动矢量进行运动补偿。
前文很多实施例提及亚像素精度的运动矢量或偏移量的整像素化操作。整像素化操作的实现方式可以有多种,本申请实施例对此不做具体限定。
作为一个示例,假设待整像素化的运动矢量MV1包含水平分量MV1x和竖直分量MV1y。运动矢量MV2为MV1经过整像素化之后得到的MV,也包括水平分量MV2x和MV2y,则可以采用如下公式确定MV2x和MV2y的取值:
如果MV1x>=0,MV2x=((MV1x+(1<<(shift-1)))>>shift)<<shift;
如果MV1x<0,MV2x=-((-MV1x+(1<<(shift-1)))>>shift)<<shift;
如果MV1y>=0,MV2y=((MV1y+(1<<(shift-1)))>>shift)<<shift;
如果MV1y<0,MV2y=-((-MV1y+(1<<(shift-1)))>>shift)<<shift。
作为另一个示例,可以采用如下公式确定MV2x和MV2y的取值:
MV2x=(MV1x>>shift)<<shift;
MV2y=(MV1y>>shift)<<shift。
作为又一个示例,可以采用如下公式确定MV2x和MV2y的取值:
如果MV1x>=0,MV2x=(MV1x>>shift)<<shift;
如果MV1x<0,MV2x=-(((-MV1x)>>shift)<<shift);
如果MV1y>=0,MV2y=(MV1y>>shift)<<shift;
如果MV1y<0,MV2y=-(((-MV1y)>>shift)<<shift)。
在上述示例中,shift的取值与运动矢量MV的存储精度有关,可以根据实际需要预先配置,不同的编解码系统可以采用不同的配置方式。例如,MV的存储精度可以为1/16,shift的数值可以设置为4。由此可知,可以根据运动矢量的存储精度来将亚像素精度的候选运动矢量、初始候选运动矢量、预设的偏移量、缩放后的预设的偏移量整像素化。
前文已经提及,在确定当前块的运动矢量的过程中,通常会先利用当前块的邻近块(时域或空域的邻近块)的运动矢量获取运动矢量候选列表。在上文的某些实施例中(如图5、图8、图9对应的实施例),在获取运动矢量候选列表时,可以将运动矢量候选列表中的候选运动矢量均转换为整像素精度的运动矢量,从而方便后续操作。运动矢量候选列表的获取过程可以引入判重(剪枝)操作,即判断准备加入运动矢量候选列表的运动矢量是否已经存在,如果已经存在,则舍弃该运动矢量;如果不存在,则将其加入运动矢量候选列表。本申请实施例可以将运动矢量候选列表中的候选运动矢量的整像素化操作和判重操作结合起来,以简化运动矢量候选列表的获取过程。两种操作的结合方式可以有多种,下面给出两种可能的实现方式。
可选地,作为一种可能的实现方式,获取当前块的运动矢量候选列表的过程可以包括:获取当前块的第一邻近块的运动矢量,第一邻近块的运动矢量为亚像素精度的运动矢量;将第一邻近块的运动矢量转换为整像素精度的运动矢量;如果当前块的运动矢量候选列表中存在该整像素精度的运动矢量,则舍弃该整像素精度的运动矢量;如果当前块的运动矢量候选列表中不存在该整像素精度的运动矢量,将该整像素精度的运动矢量添加至运动矢量候选列表。
本实现方式是先对邻近块的运动矢量进行整像素化操作,再执行判重操 作。
可选地,作为另一种可能的实现方式,获取当前块的运动矢量候选列表的过程可以包括:获取当前块的第一邻近块的运动矢量;判断当前块的运动矢量候选列表中是否存在与第一邻近块的运动矢量相同的运动矢量;如果当前块的运动矢量候选列表中不存在与第一邻近块的运动矢量相同的运动矢量,则将第一邻近块的运动矢量转换为整像素精度的运动矢量,并将该整像素精度的运动矢量添加至当前块的运动矢量候选列表;如果当前块的运动矢量候选列表中存在与第一邻近块的运动矢量相同的运动矢量,则舍弃第一邻近块的运动矢量。
与上一实现方式不同,本实现方式先执行判重操作,再对邻近块的运动矢量进行整像素化操作。
重新回到图4对应的实施例,步骤S420之后,需要存储当前块的运动矢量,供后续编码使用。作为一个示例,可以直接存储运动补偿后得到的当前块的运动矢量,即直接存储该整像素精度的运动矢量。
可选地,作为另一个示例,运动补偿后得到的当前块的运动矢量可以是目标运动矢量中的第一运动矢量,第一运动矢量是由亚像素精度的第二运动矢量转换而成的运动矢量,在运动补偿结束后,可以将第二运动矢量重新作为当前块的运动矢量进行存储。换句话说,在存储当前块的运动矢量时,仍然存储整像素化之前的运动矢量。
图4的方法可以应用于编码端,也可以应用于解码端。
以图4的方法应用于编码端为例,则图4中的步骤420可以包括:根据目标运动矢量,确定当前块的预测块;根据当前块的原始块和预测块,计算当前块的残差块。
以图4的方法应用于解码端为例,则图4中的步骤420可以包括:根据目标运动矢量,确定当前块的预测块和残差块;根据当前块的预测块和残差块,计算当前块的重构块。
上文结合图1至图9,详细描述了本申请的方法实施例,下面结合图10-图11,详细描述本申请的装置实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
图10是本申请一个实施例提供的视频处理装置的示意性结构图。图10的装置1000包括:存储器1010和处理器1020。
存储器1010可用于存储代码。处理器1020可用于读取所述存储器中的代码,以执行如下操作:获取当前块;如果所述当前块的尺寸不满足预设条件,采用整像素精度和亚像素精度中的一种精度的运动矢量对所述当前块进行帧间预测;如果所述当前块的尺寸满足预设条件,采用整像素精度的运动矢量对所述当前块进行帧间预测。
可选地,所述预设条件为所述当前块的尺寸小于预设尺寸;或者,所述预设条件为所述当前块的尺寸小于等于预设尺寸;或者,所述预设条件为所述当前块的尺寸为预设尺寸。
可选地,所述预设尺寸包括4×4,8×4,4×16,16×4,16×16,8×8中的一个或多个。
可选地,所述对所述当前块进行帧间预测可以包括:确定所述当前块的预测块;根据所述当前块的原始块和预测块,计算所述当前块的残差块。
可选地,所述处理器1020还可用执行以下操作:编码当前块对应的运动矢量精度的指示信息,其中:如果所述当前块的尺寸不满足预设条件,所述指示信息具有M比特,如果所述当前块的尺寸满足预设条件,所述指示信息具有N比特,M、N均为不小于1的正整数,且N小于或等于M。
可选地,所述对所述当前块进行帧间预测可以包括:确定所述当前块的预测块和残差块;根据所述当前块的预测块和残差块,计算所述当前块的重构块。
可选地,所述处理器1020还可用执行以下操作:从码流中获取所述当前块对应的运动矢量精度的指示信息,其中:如果所述当前块的尺寸不满足预设条件,所述指示信息具有M比特,如果所述当前块的尺寸满足预设条件,所述指示信息具有N比特,M、N均为不小于1的正整数,且N小于或等于M。
可选地,所述帧间预测为双向预测。
可选地,所述预设尺寸包括16×16,8×8,4×4,8×4,4×16,16×4中的一个或多个。
可选地,所述整像素精度包括以下像素精度中的一种或多种:1像素和4像素。
可选地,所述亚像素精度包括以下像素精度中的一种或多种:1/4,1/8和1/16。
图11是本申请另一实施例提供的视频处理装置的示意性结构图。图11的装置1100包括:存储器1110和处理器1120。
存储器1110可用于存储代码。处理器1120可用于读取所述存储器中的代码,以执行如下操作:获取所述当前块的用于运动补偿的目标运动矢量,其中,所述目标运动矢量均为整像素精度的运动矢量;根据所述目标运动矢量,对所述当前块进行运动补偿。
可选地,所述确定所述当前块的用于运动补偿的目标运动矢量可以包括:获取所述当前块的运动矢量候选列表;从所述当前块的运动矢量候选列表中选取所述目标运动矢量,其中所述运动矢量候选列表中的候选运动矢量均为整像素精度的运动矢量。
可选地,所述确定所述当前块的用于运动补偿的目标运动矢量可以包括:从所述当前块的运动矢量候选列表中选取所述当前块的初始候选运动矢量;将所述初始候选运动矢量中的亚像素精度的运动矢量转换成整像素精度的运动矢量,得到所述目标运动矢量。
可选地,所述确定所述当前块的用于运动补偿的目标运动矢量可以包括:确定所述当前块的基准运动矢量;获取所述基准运动矢量的偏移量;将所述基准运动矢量和所述偏移量之和中的亚像素精度的运动矢量转换为整像素精度的运动矢量,得到所述目标运动矢量。
可选地,所述当前块的基准运动矢量可以为整像素精度的运动矢量。
可选地,所述确定所述当前块的用于运动补偿的目标运动矢量可以包括:确定所述当前块的基准运动矢量,所述基准运动矢量为整像素精度的运动矢量;获取所述基准运动矢量的偏移量,所述偏移量为整像素精度的偏移量;将所述基准运动矢量和所述偏移量之和确定为所述目标运动矢量。
可选地,所述基准运动矢量的偏移量可以为预设的偏移量;或者,所述基准运动矢量的偏移量可以为预设的偏移量经过缩放之后得到的偏移量。
可选地,所述基准运动矢量的偏移量为预设的偏移量经过缩放之后得到的偏移量,在对所述基准运动矢量进行缩放之前,所述处理器1120还可用于执行以下操作:将所述预设的偏移量中的亚像素精度的偏移量转换为整像素精度的偏移量。
可选地,所述确定所述当前块的基准运动矢量,包括:获取所述当前块的运动矢量候选列表;从所述当前块的运动矢量候选列表中选取所述基准运 动矢量。
可选地,所述获取所述当前块的运动矢量候选列表可以包括:获取所述当前块的第一邻近块的运动矢量,所述第一邻近块的运动矢量为亚像素精度的运动矢量;将所述第一邻近块的运动矢量转换为整像素精度的运动矢量;如果所述当前块的运动矢量候选列表中存在所述整像素精度的运动矢量,则舍弃所述整像素精度的运动矢量;如果所述当前块的运动矢量候选列表中不存在所述整像素精度的运动矢量,将所述整像素精度的运动矢量添加至所述运动矢量候选列表。
可选地,所述获取所述当前块的运动矢量候选列表可以包括:获取所述当前块的第一邻近块的运动矢量;判断所述当前块的运动矢量候选列表中是否存在与所述第一邻近块的运动矢量相同的运动矢量;如果所述当前块的运动矢量候选列表中不存在与所述第一邻近块的运动矢量相同的运动矢量,则将所述第一邻近块的运动矢量转换为整像素精度的运动矢量,并将所述整像素精度的运动矢量添加至所述当前块的运动矢量候选列表;如果所述当前块的运动矢量候选列表中存在与所述第一邻近块的运动矢量相同的运动矢量,则舍弃所述第一邻近块的运动矢量。
可选地,所述处理器1120还可用于执行以下操作:存储所述运动补偿后得到的所述当前块的运动矢量。
可选地,所述运动补偿后得到的所述当前块的运动矢量是所述目标运动矢量中的第一运动矢量,所述第一运动矢量是由亚像素精度的第二运动矢量转换而成的运动矢量,所述处理器1120还可用于执行以下操作:在所述运动补偿结束后,将所述第二运动矢量重新作为所述当前块的运动矢量进行存储。
可选地,所述根据所述目标运动矢量,对所述当前块进行运动补偿可以包括:根据所述目标运动矢量,确定所述当前块的预测块;根据所述当前块的原始块和预测块,计算所述当前块的残差块。
可选地,所述根据所述目标运动矢量,对所述当前块进行运动补偿可以包括:根据所述目标运动矢量,确定所述当前块的预测块和残差块;根据所述当前块的预测块和残差块,计算所述当前块的重构块。
可选地,所述运动补偿为单向预测模式或双向预测模式下的运动补偿。
可选地,所述当前块的尺寸包括4×4,8×4,4×16,16×4中的一个 或多个。
可选地,所述获取当前块的用于运动补偿的目标运动矢量可以包括:获取所述当前块的用于运动补偿的初始运动矢量;将所述初始运动矢量中的亚像素精度的运动矢量转换成整像素精度的运动矢量,得到所述目标运动矢量。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其他任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (54)

  1. 一种视频处理方法,其特征在于,包括:
    获取当前块;
    如果所述当前块的尺寸不满足预设条件,采用整像素精度和亚像素精度中的一种精度的运动矢量对所述当前块进行帧间预测;
    如果所述当前块的尺寸满足所述预设条件,采用整像素精度的运动矢量对所述当前块进行帧间预测。
  2. 根据权利要求1所述的方法,其特征在于,所述预设条件为所述当前块的尺寸小于预设尺寸;或者,所述预设条件为所述当前块的尺寸小于等于预设尺寸;或者,所述预设条件为所述当前块的尺寸为预设尺寸。
  3. 根据权利要求1或2所述的方法,其特征在于,所述对所述当前块进行帧间预测,包括:
    确定所述当前块的预测块;
    根据所述当前块的原始块和预测块,计算所述当前块的残差块。
  4. 根据权利要求3所述的方法,其特征在于,还包括:
    编码所述当前块对应的运动矢量精度的指示信息,其中:如果所述当前块的尺寸不满足所述预设条件,所述指示信息具有M比特,如果所述当前块的尺寸满足所述预设条件,所述指示信息具有N比特,M、N均为正整数,且N小于或等于M。
  5. 根据权利要求1或2所述的方法,其特征在于,所述对所述当前块进行帧间预测,包括:
    确定所述当前块的预测块和残差块;
    根据所述当前块的预测块和残差块,计算所述当前块的重构块。
  6. 根据权利和要求5所述的方法,其特征在于,还包括:
    从码流中获取所述当前块对应的运动矢量精度的指示信息,其中:如果所述当前块的尺寸不满足所述预设条件,所述指示信息具有M比特,如果所述当前块的尺寸满足所述预设条件,所述指示信息具有N比特,M、N均为正整数,且N小于或等于M。
  7. 根据权利要求1-6中任一项所述的方法,其特征在于,所述帧间预测为双向预测。
  8. 根据权利要求2所述的方法,其特征在于,所述预设尺寸包括4×4, 8×4,4×16,16×4,16×16,8×8中的一个或多个。
  9. 根据权利要求1-8中任一项所述的方法,其特征在于,所述整像素精度包括以下像素精度中的一种或多种:1像素和4像素。
  10. 根据权利要求1-9中任一项所述的方法,其特征在于,所述亚像素精度包括以下像素精度中的一种或多种:1/4,1/8和1/16。
  11. 一种视频处理装置,其特征在于,包括:
    存储器,用于存储代码;
    处理器,用于读取所述存储器中的代码,以执行如下操作:
    获取当前块;
    如果所述当前块的尺寸不满足所述预设条件,采用整像素精度和亚像素精度中的一种精度的运动矢量对所述当前块进行帧间预测;
    如果所述当前块的尺寸满足所述预设条件,采用整像素精度的运动矢量对所述当前块进行帧间预测。
  12. 根据权利要求11所述的装置,其特征在于,所述预设条件为所述当前块的尺寸小于预设尺寸;或者,所述预设条件为所述当前块的尺寸小于等于预设尺寸;或者,所述预设条件为所述当前块的尺寸为预设尺寸。
  13. 根据权利要求11或12所述的装置,其特征在于,所述对所述当前块进行帧间预测,包括:
    确定所述当前块的预测块;
    根据所述当前块的原始块和预测块,计算所述当前块的残差块。
  14. 根据权利要求13所述的装置,其特征在于,所述处理器还用执行以下操作:
    编码所述当前块对应的运动矢量精度的指示信息,其中:如果所述当前块的尺寸不满足所述预设条件,所述指示信息具有M比特,如果所述当前块的尺寸满足所述预设条件,所述指示信息具有N比特,M、N均为正整数,且N小于或等于M。
  15. 根据权利要求11或12所述的装置,其特征在于,所述对所述当前块进行帧间预测,包括:
    确定所述当前块的预测块和残差块;
    根据所述当前块的预测块和残差块,计算所述当前块的重构块。
  16. 根据权利和要求15所述的装置,其特征在于,所述处理器还用执 行以下操作:
    从码流中获取所述当前块对应的运动矢量精度的指示信息,其中:如果所述当前块的尺寸不满足所述预设条件,所述指示信息具有M比特,如果所述当前块的尺寸满足所述预设条件,所述指示信息具有N比特,M、N均为正整数,且N小于或等于M。
  17. 根据权利要求11-16中任一项所述的装置,其特征在于,所述帧间预测为双向预测。
  18. 根据权利要求12所述的装置,其特征在于,所述预设尺寸包括4×4,8×4,4×16,16×4,16×16,8×8中的一个或多个。
  19. 根据权利要求11-18中任一项所述的装置,其特征在于,所述整像素精度包括以下像素精度中的一种或多种:1像素和4像素。
  20. 根据权利要求11-19中任一项所述的装置,其特征在于,所述亚像素精度包括以下像素精度中的一种或多种:1/4,1/8和1/16。
  21. 一种视频处理方法,其特征在于,包括:
    获取当前块的用于运动补偿的目标运动矢量,其中,所述目标运动矢量均为整像素精度的运动矢量;
    根据所述目标运动矢量,对所述当前块进行运动补偿。
  22. 根据权利要求21所述的方法,其特征在于,所述获取所述当前块的用于运动补偿的目标运动矢量,包括:
    获取所述当前块的运动矢量候选列表,其中所述运动矢量候选列表中的运动矢量均为整像素精度的运动矢量;
    从所述当前块的运动矢量候选列表中选取所述目标运动矢量。
  23. 根据权利要求21所述的方法,其特征在于,所述获取所述当前块的用于运动补偿的目标运动矢量,包括:
    从所述当前块的运动矢量候选列表中选取所述当前块的初始候选运动矢量;
    将所述初始候选运动矢量中的亚像素精度的运动矢量转换成整像素精度的运动矢量,得到所述目标运动矢量。
  24. 根据权利要求21所述的方法,其特征在于,所述获取所述当前块的用于运动补偿的目标运动矢量,包括:
    获取所述当前块的基准运动矢量;
    获取所述基准运动矢量的偏移量;
    将所述基准运动矢量和所述偏移量之和中的亚像素精度的运动矢量转换为整像素精度的运动矢量,得到所述目标运动矢量。
  25. 根据权利要求24所述的方法,其特征在于,所述当前块的基准运动矢量为整像素精度的运动矢量。
  26. 根据权利要求21所述的方法,其特征在于,所述获取所述当前块的用于运动补偿的目标运动矢量,包括:
    获取所述当前块的基准运动矢量,所述基准运动矢量为整像素精度的运动矢量;
    获取所述基准运动矢量的偏移量,所述偏移量为整像素精度的偏移量;
    将所述基准运动矢量和所述偏移量之和确定为所述目标运动矢量。
  27. 根据权利要求24或25所述的方法,其特征在于,所述基准运动矢量的偏移量为预设的偏移量;或者,所述基准运动矢量的偏移量为预设的偏移量经过缩放之后得到的偏移量。
  28. 根据权利要求26所述的方法,其特征在于,所述基准运动矢量的偏移量为将预设的偏移量整像素化得到的偏移量;或者,所述基准运动矢量的偏移量为预设的偏移量经过缩放后再整像素化得到的偏移量。
  29. 根据权利要求24或26所述的方法,其特征在于,所述获取所述当前块的基准运动矢量,包括:
    获取所述当前块的运动矢量候选列表;
    从所述当前块的运动矢量候选列表中选取基准运动矢量。
  30. 根据权利要求22或29所述的方法,其特征在于,所述获取所述当前块的运动矢量候选列表,包括:
    获取所述当前块的第一邻近块的运动矢量,所述第一邻近块的运动矢量为亚像素精度的运动矢量;
    将所述第一邻近块的运动矢量转换为整像素精度的运动矢量;
    如果所述当前块的运动矢量候选列表中存在所述整像素精度的运动矢量,则舍弃所述整像素精度的运动矢量;
    如果所述当前块的运动矢量候选列表中不存在所述整像素精度的运动矢量,将所述整像素精度的运动矢量添加至所述运动矢量候选列表。
  31. 根据权利要求22或29所述的方法,其特征在于,所述获取所述当 前块的运动矢量候选列表,包括:
    获取所述当前块的第一邻近块的运动矢量;
    判断所述当前块的运动矢量候选列表中是否存在与所述第一邻近块的运动矢量相同的运动矢量;
    如果所述当前块的运动矢量候选列表中不存在与所述第一邻近块的运动矢量相同的运动矢量,则将所述第一邻近块的运动矢量转换为整像素精度的运动矢量,并将所述整像素精度的运动矢量添加至所述当前块的运动矢量候选列表;
    如果所述当前块的运动矢量候选列表中存在与所述第一邻近块的运动矢量相同的运动矢量,则舍弃所述第一邻近块的运动矢量。
  32. 根据权利要求21所述的方法,其特征在于,还包括:
    存储所述运动补偿后得到的所述当前块的运动矢量。
  33. 根据权利要求21所述的方法,其特征在于,所述运动补偿后得到的所述当前块的运动矢量是所述目标运动矢量中的第一运动矢量,所述第一运动矢量是由亚像素精度的第二运动矢量转换而成的运动矢量,
    所述方法还包括:
    在所述运动补偿结束后,将所述第二运动矢量重新作为所述当前块的运动矢量进行存储。
  34. 根据权利要求21所述的方法,其特征在于,所述根据所述目标运动矢量,对所述当前块进行运动补偿,包括:
    根据所述目标运动矢量,确定所述当前块的预测块;
    根据所述当前块的原始块和预测块,计算所述当前块的残差块。
  35. 根据权利要求21所述的方法,其特征在于,所述根据所述目标运动矢量,对所述当前块进行运动补偿,包括:
    根据所述目标运动矢量,确定所述当前块的预测块和残差块;
    根据所述当前块的预测块和残差块,计算所述当前块的重构块。
  36. 根据权利要求21所述的方法,其特征在于,所述运动补偿为单向预测模式或双向预测模式下的运动补偿。
  37. 根据权利要求21所述的方法,其特征在于,所述获取当前块的用于运动补偿的目标运动矢量,包括:
    获取所述当前块的用于运动补偿的初始运动矢量;
    将所述初始运动矢量中的亚像素精度的运动矢量转换成整像素精度的运动矢量,得到所述目标运动矢量。
  38. 一种视频处理装置,其特征在于,包括:
    存储器,用于存储代码;
    处理器,用于读取所述存储器中的代码,以执行如下操作:
    获取所述当前块的用于运动补偿的目标运动矢量,其中,所述目标运动矢量均为整像素精度的运动矢量;
    根据所述目标运动矢量,对所述当前块进行运动补偿。
  39. 根据权利要求38所述的装置,其特征在于,所述确定所述当前块的用于运动补偿的目标运动矢量,包括:
    获取所述当前块的运动矢量候选列表;
    从所述当前块的运动矢量候选列表中选取所述目标运动矢量,其中所述运动矢量候选列表中的候选运动矢量均为整像素精度的运动矢量。
  40. 根据权利要求38所述的装置,其特征在于,所述确定所述当前块的用于运动补偿的目标运动矢量,包括:
    从所述当前块的运动矢量候选列表中选取所述当前块的初始候选运动矢量;
    将所述初始候选运动矢量中的亚像素精度的运动矢量转换成整像素精度的运动矢量,得到所述目标运动矢量。
  41. 根据权利要求38所述的装置,其特征在于,所述确定所述当前块的用于运动补偿的目标运动矢量,包括:
    获取所述当前块的基准运动矢量;
    获取所述基准运动矢量的偏移量;
    将所述基准运动矢量和所述偏移量之和中的亚像素精度的运动矢量转换为整像素精度的运动矢量,得到所述目标运动矢量。
  42. 根据权利要求41所述的装置,其特征在于,所述当前块的基准运动矢量为整像素精度的运动矢量。
  43. 根据权利要求38所述的装置,其特征在于,所述确定所述当前块的用于运动补偿的目标运动矢量,包括:
    获取所述当前块的基准运动矢量,所述基准运动矢量为整像素精度的运动矢量;
    获取所述基准运动矢量的偏移量,所述偏移量为整像素精度的偏移量;
    将所述基准运动矢量和所述偏移量之和确定为所述目标运动矢量。
  44. 根据权利要求41或42所述的装置,其特征在于,所述基准运动矢量的偏移量为预设的偏移量;或者,所述基准运动矢量的偏移量为预设的偏移量经过缩放之后得到的偏移量。
  45. 根据权利要求43所述的装置,其特征在于,所述基准运动矢量的偏移量为将预设的偏移量整像素化得到的偏移量;或者,所述基准运动矢量的偏移量为预设的偏移量经过缩放后再整像素化得到的偏移量。
  46. 根据权利要求41或43所述的装置,其特征在于,所述获取所述当前块的基准运动矢量,包括:
    获取所述当前块的运动矢量候选列表;
    从所述当前块的运动矢量候选列表中选取基准运动矢量。
  47. 根据权利要求39或46所述的装置,其特征在于,所述获取所述当前块的运动矢量候选列表,包括:
    获取所述当前块的第一邻近块的运动矢量,所述第一邻近块的运动矢量为亚像素精度的运动矢量;
    将所述第一邻近块的运动矢量转换为整像素精度的运动矢量;
    如果所述当前块的运动矢量候选列表中存在所述整像素精度的运动矢量,则舍弃所述整像素精度的运动矢量;
    如果所述当前块的运动矢量候选列表中不存在所述整像素精度的运动矢量,将所述整像素精度的运动矢量添加至所述运动矢量候选列表。
  48. 根据权利要求39或46所述的装置,其特征在于,所述获取所述当前块的运动矢量候选列表,包括:
    获取所述当前块的第一邻近块的运动矢量;
    判断所述当前块的运动矢量候选列表中是否存在与所述第一邻近块的运动矢量相同的运动矢量;
    如果所述当前块的运动矢量候选列表中不存在与所述第一邻近块的运动矢量相同的运动矢量,则将所述第一邻近块的运动矢量转换为整像素精度的运动矢量,并将所述整像素精度的运动矢量添加至所述当前块的运动矢量候选列表;
    如果所述当前块的运动矢量候选列表中存在与所述第一邻近块的运动 矢量相同的运动矢量,则舍弃所述第一邻近块的运动矢量相同的运动矢量。
  49. 根据权利要求38所述的装置,其特征在于,所述处理器还用于执行以下操作:
    存储所述运动补偿后得到的所述当前块的运动矢量。
  50. 根据权利要求38所述的装置,其特征在于,所述运动补偿后得到的所述当前块的运动矢量是所述目标运动矢量中的第一运动矢量,所述第一运动矢量是由亚像素精度的第二运动矢量转换而成的运动矢量,
    所述处理器还用于执行以下操作:
    在所述运动补偿结束后,将所述第二运动矢量重新作为所述当前块的运动矢量进行存储。
  51. 根据权利要求38所述的装置,其特征在于,所述根据所述目标运动矢量,对所述当前块进行运动补偿,包括:
    根据所述目标运动矢量,确定所述当前块的预测块;
    根据所述当前块的原始块和预测块,计算所述当前块的残差块。
  52. 根据权利要求38所述的装置,其特征在于,所述根据所述目标运动矢量,对所述当前块进行运动补偿,包括:
    根据所述目标运动矢量,确定所述当前块的预测块和残差块;
    根据所述当前块的预测块和残差块,计算所述当前块的重构块。
  53. 根据权利要求38所述的装置,其特征在于,所述运动补偿为单向预测模式或双向预测模式下的运动补偿。
  54. 根据权利要求38所述的装置,其特征在于,所述获取当前块的用于运动补偿的目标运动矢量,包括:
    获取所述当前块的用于运动补偿的初始运动矢量;
    将所述初始运动矢量中的亚像素精度的运动矢量转换成整像素精度的运动矢量,得到所述目标运动矢量。
PCT/CN2019/077800 2019-01-02 2019-03-12 视频处理方法和装置 WO2020140329A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201980004998.3A CN111226440A (zh) 2019-01-02 2019-03-12 视频处理方法和装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CNPCT/CN2019/070152 2019-01-02
PCT/CN2019/070152 WO2020140216A1 (zh) 2019-01-02 2019-01-02 视频处理方法和装置

Publications (1)

Publication Number Publication Date
WO2020140329A1 true WO2020140329A1 (zh) 2020-07-09

Family

ID=70826444

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/CN2019/070152 WO2020140216A1 (zh) 2019-01-02 2019-01-02 视频处理方法和装置
PCT/CN2019/077800 WO2020140329A1 (zh) 2019-01-02 2019-03-12 视频处理方法和装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/070152 WO2020140216A1 (zh) 2019-01-02 2019-01-02 视频处理方法和装置

Country Status (2)

Country Link
CN (1) CN111226439A (zh)
WO (2) WO2020140216A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106165419A (zh) * 2014-01-09 2016-11-23 高通股份有限公司 用于视频译码的自适应运动向量分辨率信令
CN106797229A (zh) * 2014-11-20 2017-05-31 寰发股份有限公司 运动向量和块向量分辨率控制方法
CN107211123A (zh) * 2015-01-13 2017-09-26 英迪股份有限公司 用于编码和解码图像的方法和设备
CN107277506A (zh) * 2017-08-15 2017-10-20 中南大学 一种基于自适应运动矢量精度的运动矢量精度快速选择方法及装置
US20180242011A1 (en) * 2009-08-21 2018-08-23 Sk Telecom., Ltd Method and apparatus for encoding/decoding images using adaptive motion vector resolution

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100568920C (zh) * 2007-07-24 2009-12-09 浙江大学 串行输入并行输出的视频图像亮度插值的方法和装置
US20100074336A1 (en) * 2008-09-25 2010-03-25 Mina Goor Fractional motion estimation engine
US10327008B2 (en) * 2010-10-13 2019-06-18 Qualcomm Incorporated Adaptive motion vector resolution signaling for video coding
US9325991B2 (en) * 2012-04-11 2016-04-26 Qualcomm Incorporated Motion vector rounding
CN104980737B (zh) * 2014-04-01 2018-04-13 扬智科技股份有限公司 帧间模式选择方法
US10200713B2 (en) * 2015-05-11 2019-02-05 Qualcomm Incorporated Search region determination for inter coding within a particular picture of video data
WO2018205914A1 (en) * 2017-05-10 2018-11-15 Mediatek Inc. Method and apparatus of reordering motion vector prediction candidate set for video coding

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180242011A1 (en) * 2009-08-21 2018-08-23 Sk Telecom., Ltd Method and apparatus for encoding/decoding images using adaptive motion vector resolution
CN106165419A (zh) * 2014-01-09 2016-11-23 高通股份有限公司 用于视频译码的自适应运动向量分辨率信令
CN106797229A (zh) * 2014-11-20 2017-05-31 寰发股份有限公司 运动向量和块向量分辨率控制方法
CN107211123A (zh) * 2015-01-13 2017-09-26 英迪股份有限公司 用于编码和解码图像的方法和设备
CN107277506A (zh) * 2017-08-15 2017-10-20 中南大学 一种基于自适应运动矢量精度的运动矢量精度快速选择方法及装置

Also Published As

Publication number Publication date
WO2020140216A1 (zh) 2020-07-09
CN111226439A (zh) 2020-06-02

Similar Documents

Publication Publication Date Title
TWI705703B (zh) 於視訊寫碼中針對子區塊推導運動資訊
US10104393B2 (en) Video prediction encoding device, video prediction encoding method, video prediction encoding program, video prediction decoding device, video prediction decoding method, and video prediction decoding program
WO2019191890A1 (zh) 用于图像处理的方法和图像处理装置
JP3879741B2 (ja) 画像情報符号化装置および画像情報符号化方法
TW201931854A (zh) 統一合併候選列表運用
WO2017005146A1 (zh) 视频编码和解码方法、视频编码和解码装置
WO2019129130A1 (zh) 图像预测方法、装置以及编解码器
TW201906414A (zh) 用於在視訊寫碼中之候選列表之建構的以運動為基礎之優先級
TW202025778A (zh) 用加權平均進行區塊式雙向預測
CN112292862A (zh) 用于运动矢量修正和运动补偿的存储器访问窗口和填充
JP2022523350A (ja) マージモードのための予測重み付けを決定する方法、装置及びシステム
CN111201795B (zh) 存储访问窗口和用于运动矢量修正的填充
TW202038611A (zh) 用於視訊寫碼之三角運動資訊
TW202041010A (zh) 用於編碼視訊資料之訊框間預測方法
WO2015010319A1 (zh) 一种基于p帧的多假设运动补偿编码方法
US20120300845A1 (en) Method, apparatus and computer program product for image motion prediction
JP7148612B2 (ja) ビデオデータインター予測の方法、装置、ビデオエンコーダ、ビデオデコーダ及びプログラム
JP2006217560A (ja) 参考フレームバッファメモリのサイズとアクセス量を減らす方法
JP2010028220A (ja) 動きベクトル検出装置、動きベクトル検出方法、画像符号化装置及びプログラム
AU2022235881B2 (en) Decoding method and apparatus, encoding method and apparatus, device, and storage medium
WO2022227622A1 (zh) 一种权值可配置的帧间帧内联合预测编解码的方法及装置
WO2020258024A1 (zh) 视频处理方法和装置
WO2020181504A1 (zh) 视频编码的方法与装置,以及视频解码的方法与装置
WO2020140329A1 (zh) 视频处理方法和装置
CN111226440A (zh) 视频处理方法和装置

Legal Events

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

Ref document number: 19908050

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19908050

Country of ref document: EP

Kind code of ref document: A1