WO2025007250A1 - 视频解码方法、装置、设备、及存储介质 - Google Patents
视频解码方法、装置、设备、及存储介质 Download PDFInfo
- Publication number
- WO2025007250A1 WO2025007250A1 PCT/CN2023/105570 CN2023105570W WO2025007250A1 WO 2025007250 A1 WO2025007250 A1 WO 2025007250A1 CN 2023105570 W CN2023105570 W CN 2023105570W WO 2025007250 A1 WO2025007250 A1 WO 2025007250A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- motion information
- block
- sub
- reference image
- current block
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
Definitions
- the present application relates to the field of video encoding and decoding technology, and in particular to a video decoding method, device, equipment, and storage medium.
- Digital video technology can be incorporated into a variety of video devices, such as digital televisions, smart phones, computers, e-readers or video players, etc. With the development of video technology, the amount of data included in video data is large. In order to facilitate the transmission of video data, video devices implement video compression technology to make video data more efficiently transmitted or stored.
- prediction can eliminate or reduce the redundancy in the video and improve the compression efficiency.
- the decoding end improves the motion information determined by the decoding.
- the current motion information improvement method has a poor improvement effect, resulting in inaccurate prediction at the decoding end, which in turn affects the decoding performance of the video.
- the embodiments of the present application provide a video decoding method, apparatus, device, and storage medium, which can improve the improvement effect of motion information, the prediction accuracy of the current block and the decoding performance of the video.
- the present application provides a video decoding method, applied to a decoder, comprising:
- a prediction value of the current block is determined.
- the present application provides a video decoding device, which is used to execute the method in the first aspect or its respective implementations.
- the device includes a functional unit for executing the method in the first aspect or its respective implementations.
- a video decoder comprising a processor and a memory, wherein the memory is used to store a computer program, and the processor is used to call and run the computer program stored in the memory to execute the method in the first aspect or its implementations.
- a video coding and decoding system including a video encoder and a video decoder.
- the video decoder is used to execute the method in the first aspect or its implementation manners.
- a chip for implementing the method of the first aspect.
- the chip includes: a processor for calling and running a computer program from a memory, so that a device equipped with the chip executes the method of the first aspect.
- a computer-readable storage medium for storing a computer program, wherein the computer program enables a computer to execute the method of the first aspect.
- a computer program product comprising computer program instructions, wherein the computer program instructions enable a computer to execute the method of the first aspect.
- the decoding end when decoding the current block, the decoding end first determines the first motion information of the current block, and then improves the first motion information based on the motion information of the reference image of the current block to obtain the second motion information. That is to say, in the embodiment of the present application, when improving the first motion information, the motion information of the reference image is taken into account to achieve effective improvement of the first motion information and obtain accurate second motion information. Then, when determining the prediction value of the current block based on the accurate second motion information, the prediction accuracy of the current block can be improved, thereby improving the decoding performance of the video.
- FIG1 is a schematic block diagram of a video encoding and decoding system according to an embodiment of the present application.
- FIG2 is a schematic block diagram of a video encoder according to an embodiment of the present application.
- FIG3 is a schematic block diagram of a video decoder according to an embodiment of the present application.
- FIG4 is a schematic diagram of a GOP structure
- FIG5 is a schematic diagram of CU division
- FIG6 is a schematic diagram of a spatial domain and a temporal domain block
- FIG7 is a schematic diagram of deriving time domain motion information
- FIG8 is a schematic diagram of the principle of SbTMVP
- FIG9 is a schematic diagram of the principle of MMVD
- FIG10A is a schematic diagram of a principle of affine
- FIG10B is another schematic diagram of the principle of affine
- FIG11 is a schematic diagram of weight allocation
- FIG12 is a schematic diagram of the principle of DMVR
- FIG13 is a schematic diagram of template matching
- FIG14 is a schematic diagram of a video decoding method flow chart provided by an embodiment of the present application.
- FIG15 is a schematic diagram of a current block and a reference block
- FIG16 is a schematic diagram showing the motion of the current block and two reference blocks
- FIG17A is a schematic diagram of a motion when the motion information of the current block is greater than the motion information of the reference block;
- FIG17B is a schematic diagram of a motion when the motion information of the current block is smaller than the motion information of the reference block;
- FIG18A is another motion diagram when the motion information of the current block is smaller than the motion information of the reference block
- FIG18B is another motion diagram when the motion information of the current block is greater than the motion information of the reference block
- FIG19A is a schematic diagram of a motion information search
- FIG19B is another schematic diagram of motion information search
- FIG19C is a schematic diagram of another motion information search
- FIG20 is a schematic diagram showing different motion information in a reference block
- FIG21 is a schematic block diagram of a video decoding device provided by an embodiment of the present application.
- FIG. 22 is a schematic block diagram of an electronic device provided in an embodiment of the present application.
- the present application can be applied to the field of image coding and decoding, the field of video coding and decoding, the field of hardware video coding and decoding, the field of dedicated circuit video coding and decoding, the field of real-time video coding and decoding, etc.
- AVC H.264/audio and video coding
- HEVC H.265/high efficiency video coding
- VVC VVC
- the solution of the present application may be combined with other proprietary or industry standards and operate, the standards include ITU-TH.261, ISO/IEC MPEG-1 Visual, ITU-TH.262 or ISO/IEC MPEG-2 Visual, ITU-TH.263, ISO/IEC MPEG-4 Visual, ITU-TH.264 (also known as ISO/IEC MPEG-4 AVC), including scalable video coding (SVC) and multi-view video coding (MVC) extensions.
- SVC scalable video coding
- MVC multi-view video coding
- FIG1 is a schematic block diagram of a video encoding and decoding system involved in an embodiment of the present application. It should be noted that FIG1 is only an example, and the video encoding and decoding system of the embodiment of the present application includes but is not limited to that shown in FIG1.
- the video encoding and decoding system 100 includes an encoding device 110 and a decoding device 120.
- the encoding device is used to encode (which can be understood as compression) the video data to generate a code stream, and transmit the code stream to the decoding device.
- the decoding device decodes the code stream generated by the encoding device to obtain decoded video data.
- the encoding device 110 of the embodiment of the present application can be understood as a device with a video encoding function
- the decoding device 120 can be understood as a device with a video decoding function, that is, the embodiment of the present application includes a wider range of devices for the encoding device 110 and the decoding device 120, such as smartphones, desktop computers, mobile computing devices, notebook (e.g., laptop) computers, tablet computers, set-top boxes, televisions, cameras, display devices, digital media players, video game consoles, vehicle-mounted computers, etc.
- the encoding device 110 may transmit the encoded video data (eg, a code stream) to the decoding device 120 via the channel 130.
- the channel 130 may include one or more media and/or devices capable of transmitting the encoded video data from the encoding device 110 to the decoding device 120.
- the channel 130 includes one or more communication media that enable the encoding device 110 to transmit the encoded video data directly to the decoding device 120 in real time.
- the encoding device 110 can modulate the encoded video data according to the communication standard and transmit the modulated video data to the decoding device 120.
- the communication medium includes a wireless communication medium, such as a radio frequency spectrum, and optionally, the communication medium may also include a wired communication medium, such as one or more physical transmission lines.
- the channel 130 includes a storage medium, which can store the video data encoded by the encoding device 110.
- the storage medium includes a variety of locally accessible data storage media, such as optical disks, DVDs, flash memories, etc.
- the decoding device 120 can obtain the encoded video data from the storage medium.
- the channel 130 may include a storage server that can store the video data encoded by the encoding device 110.
- the decoding device 120 can download the stored encoded video data from the storage server.
- the storage server can store the encoded video data and transmit the encoded video data to the decoding device 120, such as a web server (e.g., for a website), a file transfer protocol (FTP) server, etc.
- FTP file transfer protocol
- the encoding device 110 includes a video encoder 112 and an output interface 113.
- the output interface 113 may include a modulator/demodulator (modem) and/or a transmitter.
- the encoding device 110 may further include a video source 111 in addition to the video encoder 112 and the input interface 113 .
- the video source 111 may include at least one of a video acquisition device (eg, a video camera), a video archive, a video input interface, and a computer graphics system, wherein the video input interface is used to receive video data from a video content provider, and the computer graphics system is used to generate video data.
- a video acquisition device eg, a video camera
- a video archive e.g., a video archive
- a video input interface e.g., a computer graphics system
- the video input interface is used to receive video data from a video content provider
- the computer graphics system is used to generate video data.
- the video encoder 112 encodes the video data from the video source 111 to generate a bitstream.
- the video data may include one or more pictures or a sequence of pictures.
- the bitstream contains the encoding information of the picture or the sequence of pictures in the form of a bitstream.
- the encoding information may include the encoded picture data and associated data.
- the associated data may include a sequence parameter set (SPS for short), a picture parameter set (PPS for short) and other syntax structures.
- SPS sequence parameter set
- PPS picture parameter set
- the syntax structure refers to a set of zero or more syntax elements arranged in a specified order in the bitstream.
- the video encoder 112 transmits the encoded video data directly to the decoding device 120 via the output interface 113.
- the encoded video data may also be stored in a storage medium or a storage server for subsequent reading by the decoding device 120.
- the decoding device 120 includes an input interface 121 and a video decoder 122 .
- the decoding device 120 may include a display device 123 in addition to the input interface 121 and the video decoder 122 .
- the input interface 121 includes a receiver and/or a modem.
- the input interface 121 can receive the encoded video data through the channel 130 .
- the video decoder 122 is used to decode the encoded video data to obtain decoded video data, and transmit the decoded video data to the display device 123 .
- the display device 123 displays the decoded video data.
- the display device 123 may be integrated with the decoding device 120 or external to the decoding device 120.
- the display device 123 may include a variety of display devices, such as a liquid crystal display (LCD), a plasma display, an organic light emitting diode (OLED) display, or other types of display devices.
- FIG1 is only an example, and the technical solution of the embodiment of the present application is not limited to FIG1 .
- the technology of the present application can also be applied to unilateral video encoding or unilateral video decoding.
- FIG2 is a schematic block diagram of a video encoder according to an embodiment of the present application. It should be understood that the video encoder 200 can be used to perform lossy compression on an image, or can be used to perform lossless compression on an image.
- the lossless compression can be visually lossless compression or mathematically lossless compression.
- the video encoder 200 can be applied to image data in luminance and chrominance (YCbCr, YUV) format.
- the YUV ratio can be 4:2:0, 4:2:2 or 4:4:4, Y represents brightness (Luma), Cb (U) represents blue chrominance, Cr (V) represents red chrominance, and U and V represent chrominance (Chroma) for describing color and saturation.
- 4:2:0 means that every 4 pixels have 4 luminance components and 2 chrominance components (YYYYCbCr)
- 4:2:2 means that every 4 pixels have 4 luminance components and 4 chrominance components (YYYYCbCrCbCr)
- 4:4:4 means full pixel display (YYYYCbCrCbCrCbCrCbCr).
- the video encoder 200 reads video data, and for each frame of the video data, divides the frame into a number of coding tree units (CTUs).
- CTB may be referred to as a "tree block", “largest coding unit” (LCU) or “coding tree block” (CTB).
- Each CTU may be associated with a pixel block of equal size within the image.
- Each pixel may correspond to a luminance (luminance or luma) sample and two chrominance (chrominance or chroma) samples. Therefore, each CTU may be associated with a luminance sample block and two chrominance sample blocks.
- the size of a CTU is, for example, 128 ⁇ 128, 64 ⁇ 64, 32 ⁇ 32, etc.
- a CTU may be further divided into a number of coding units (CUs) for encoding, and a CU may be a rectangular block or a square block.
- CU can be further divided into prediction unit (PU) and transform unit (TU), which makes encoding, prediction and transform separated and more flexible in processing.
- PU prediction unit
- TU transform unit
- CTU is divided into CU in quadtree mode
- CU is divided into TU and PU in quadtree mode.
- the video encoder and video decoder may support various PU sizes. Assuming that the size of a particular CU is 2N ⁇ 2N, the video encoder and video decoder may support PU sizes of 2N ⁇ 2N or N ⁇ N for intra-frame prediction, and support symmetric PUs of 2N ⁇ 2N, 2N ⁇ N, N ⁇ 2N, N ⁇ N or similar sizes for inter-frame prediction. The video encoder and video decoder may also support asymmetric PUs of 2N ⁇ nU, 2N ⁇ nD, nL ⁇ 2N, and nR ⁇ 2N for inter-frame prediction.
- the video encoder 200 may include: a prediction unit 210, a residual unit 220, a transform/quantization unit 230, an inverse transform/quantization unit 240, a reconstruction unit 250, a loop filter unit 260, a decoded image buffer 270, and an entropy coding unit 280. It should be noted that the video encoder 200 may include more, fewer, or different functional components.
- the current block may be referred to as a current coding unit (CU) or a current prediction unit (PU), etc.
- a prediction block may also be referred to as a prediction image block or an image prediction block, and a reconstructed image block may also be referred to as a reconstructed block or an image reconstructed image block.
- the prediction unit 210 includes an inter-frame prediction unit 211 and an intra-frame estimation unit 212. Since there is a strong correlation between adjacent pixels in a frame of a video, an intra-frame prediction method is used in the video coding and decoding technology to eliminate spatial redundancy between adjacent pixels. Since there is a strong similarity between adjacent frames in a video, an inter-frame prediction method is used in the video coding and decoding technology to eliminate temporal redundancy between adjacent frames, thereby improving coding efficiency.
- the inter-frame prediction unit 211 can be used for inter-frame prediction.
- Inter-frame prediction can include motion estimation and motion compensation. It can refer to the image information of different frames.
- Inter-frame prediction uses motion information to find reference blocks from reference frames, and generates prediction blocks based on the reference blocks to eliminate temporal redundancy.
- the frames used for inter-frame prediction can be P frames and/or B frames. P frames refer to forward prediction frames, and B frames refer to bidirectional prediction frames.
- Inter-frame prediction uses motion information to find reference blocks from reference frames, and generates prediction blocks based on the reference blocks.
- Motion information includes a reference frame list where the reference frame is located, a reference frame index, and a motion vector.
- the motion vector can be an integer pixel or a sub-pixel.
- the motion vector is a sub-pixel
- the integer pixel or sub-pixel block in the reference frame found according to the motion vector is called a reference block.
- Some technologies will directly use the reference block as a prediction block, and some technologies will generate a prediction block based on the reference block. Reprocessing the reference block to generate a prediction block can also be understood as taking the reference block as a prediction block and then processing the prediction block to generate a new prediction block.
- the intra-frame estimation unit 212 only refers to the information of the same frame image to predict the pixel information in the current code image block to eliminate spatial redundancy.
- the frame used for intra-frame prediction can be an I frame.
- the intra-frame prediction modes used by HEVC are Planar, DC, and 33 angle modes, for a total of 35 prediction modes.
- the intra-frame modes used by VVC are Planar, DC, and 65 angle modes, for a total of 67 prediction modes.
- the residual unit 220 may generate a residual block of the CU based on the pixel blocks of the CU and the prediction blocks of the PUs of the CU. For example, the residual unit 220 may generate a residual block of the CU so that each sample in the residual block has a value equal to the difference between the following two: a sample in the pixel blocks of the CU and a corresponding sample in the prediction blocks of the PUs of the CU.
- the transform/quantization unit 230 may quantize the transform coefficients.
- the transform/quantization unit 230 may quantize the transform coefficients associated with the TUs of the CU based on a quantization parameter (QP) value associated with the CU.
- QP quantization parameter
- the video encoder 200 may adjust the degree of quantization applied to the transform coefficients associated with the CU by adjusting the QP value associated with the CU.
- the inverse transform/quantization unit 240 may apply inverse quantization and inverse transform to the quantized transform coefficients, respectively, to reconstruct a residual block from the quantized transform coefficients.
- the reconstruction unit 250 may add the samples of the reconstructed residual block to the corresponding samples of one or more prediction blocks generated by the prediction unit 210 to generate a reconstructed image block associated with the TU. By reconstructing the sample blocks of each TU of the CU in this manner, the video encoder 200 may reconstruct the pixel blocks of the CU.
- the loop filter unit 260 is used to process the inverse transformed and inverse quantized pixels to compensate for distortion information and provide a better reference for subsequent coded pixels. For example, a deblocking filter operation may be performed to reduce the blocking effect of the pixel blocks associated with the CU.
- the loop filter unit 260 includes a deblocking filter unit and a sample adaptive offset/adaptive loop filter (SAO/ALF) unit, wherein the deblocking filter unit is used to remove the block effect, and the SAO/ALF unit is used to remove the ringing effect.
- SAO/ALF sample adaptive offset/adaptive loop filter
- the decoded image buffer 270 may store the reconstructed pixel blocks.
- the inter prediction unit 211 may use the reference image containing the reconstructed pixel blocks to perform inter prediction on PUs of other images.
- the intra estimation unit 212 may use the reconstructed pixel blocks in the decoded image buffer 270 to perform intra prediction on other PUs in the same image as the CU.
- the entropy coding unit 280 may receive the quantized transform coefficients from the transform/quantization unit 230.
- the entropy coding unit 280 may perform One or more entropy encoding operations are performed to generate entropy coded data.
- FIG. 3 is a schematic block diagram of a video decoder according to an embodiment of the present application.
- the video decoder 300 includes an entropy decoding unit 310, a prediction unit 320, an inverse quantization/transformation unit 330, a reconstruction unit 340, a loop filter unit 350, and a decoded image buffer 360. It should be noted that the video decoder 300 may include more, fewer, or different functional components.
- the video decoder 300 may receive a bitstream.
- the entropy decoding unit 310 may parse the bitstream to extract syntax elements from the bitstream. As part of parsing the bitstream, the entropy decoding unit 310 may parse the syntax elements in the bitstream that have been entropy encoded.
- the prediction unit 320, the inverse quantization/transformation unit 330, the reconstruction unit 340, and the loop filter unit 350 may decode the video data according to the syntax elements extracted from the bitstream, that is, generate decoded video data.
- the prediction unit 320 includes an intra estimation unit 322 and an inter prediction unit 321 .
- the intra estimation unit 322 may perform intra prediction to generate a prediction block for the PU.
- the intra estimation unit 322 may use an intra prediction mode to generate a prediction block for the PU based on pixel blocks of spatially neighboring PUs.
- the intra estimation unit 322 may also determine the intra prediction mode for the PU according to one or more syntax elements parsed from the code stream.
- the inter prediction unit 321 may construct a first reference image list (list 0) and a second reference image list (list 1) according to the syntax elements parsed from the code stream.
- the entropy decoding unit 310 may parse the motion information of the PU.
- the inter prediction unit 321 may determine one or more reference blocks of the PU according to the motion information of the PU.
- the inter prediction unit 321 may generate a prediction block of the PU according to one or more reference blocks of the PU.
- the inverse quantization/transform unit 330 may inversely quantize (ie, dequantize) the transform coefficients associated with the TU.
- the inverse quantization/transform unit 330 may use the QP value associated with the CU of the TU to determine the degree of quantization.
- the inverse quantization/transform unit 330 may apply one or more inverse transforms to the inverse quantized transform coefficients in order to generate a residual block associated with the TU.
- the reconstruction unit 340 uses the residual block associated with the TU of the CU and the prediction block of the PU of the CU to reconstruct the pixel block of the CU. For example, the reconstruction unit 340 may add samples of the residual block to corresponding samples of the prediction block to reconstruct the pixel block of the CU to obtain a reconstructed image block.
- the loop filtering unit 350 may perform a deblocking filtering operation to reduce blocking effects of pixel blocks associated with a CU.
- the video decoder 300 may store the reconstructed image of the CU in the decoded image buffer 360.
- the video decoder 300 may use the reconstructed image in the decoded image buffer 360 as a reference image for subsequent prediction, or transmit the reconstructed image to a display device for presentation.
- the basic process of video encoding and decoding is as follows: at the encoding end, a frame of image is divided into blocks, and for the current block, the prediction unit 210 uses intra-frame prediction or inter-frame prediction to generate a prediction block of the current block.
- the residual unit 220 can calculate the residual block based on the original block of the prediction block and the current block, that is, the difference between the original block of the prediction block and the current block, and the residual block can also be called residual information.
- the residual block can remove information that is not sensitive to the human eye through the transformation and quantization process of the transformation/quantization unit 230 to eliminate visual redundancy.
- the residual block before transformation and quantization by the transformation/quantization unit 230 can be called a time domain residual block, and the time domain residual block after transformation and quantization by the transformation/quantization unit 230 can be called a frequency residual block or a frequency domain residual block.
- the entropy coding unit 280 receives the quantized change coefficient output by the change quantization unit 230, and can entropy encode the quantized change coefficient and output a bit stream. For example, the entropy coding unit 280 can eliminate character redundancy according to the target context model and the probability information of the binary bit stream.
- the entropy decoding unit 310 can parse the code stream to obtain the prediction information, quantization coefficient matrix, etc. of the current block.
- the prediction unit 320 uses intra-frame prediction or inter-frame prediction to generate a prediction block of the current block based on the prediction information.
- the inverse quantization/transformation unit 330 uses the quantization coefficient matrix obtained from the code stream to inverse quantize and inverse transform the quantization coefficient matrix to obtain a residual block.
- the reconstruction unit 340 adds the prediction block and the residual block to obtain a reconstructed block.
- the reconstructed blocks constitute a reconstructed image, and the loop filtering unit 350 performs loop filtering on the reconstructed image based on the image or on the block to obtain a decoded image.
- the encoding end also requires similar operations as the decoding end to obtain a decoded image.
- the decoded image can also be called a reconstructed image, and the reconstructed image can be used as a reference frame for inter-frame prediction for subsequent
- the block division information determined by the encoder as well as the mode information or parameter information such as prediction, transformation, quantization, entropy coding, loop filtering, etc., are carried in the bitstream when necessary.
- the decoder parses the bitstream and determines the same block division information, prediction, transformation, quantization, entropy coding, loop filtering, etc. mode information or parameter information as the encoder by analyzing the existing information, thereby ensuring that the decoded image obtained by the encoder is the same as the decoded image obtained by the decoder.
- the above is the basic process of the video codec under the block-based hybrid coding framework. With the development of technology, some modules or steps of the framework or process may be optimized. The present application is applicable to the basic process of the video codec under the block-based hybrid coding framework, but is not limited to the framework and process.
- the current block may be a current coding unit (CU) or a current prediction unit (PU), etc.
- CU current coding unit
- PU current prediction unit
- an image may be divided into slices, etc. Slices in the same image may be processed in parallel, that is, there is no data dependency between them.
- "Frame” is a commonly used term, and it can generally be understood that a frame is an image. In the application, the frame may also be replaced by an image or a slice, etc.
- inter-frame prediction uses temporal correlation to eliminate redundancy.
- the frame rate of general videos will be 30 frames per second, 50 frames per second, 60 frames per second, or even 120 frames per second.
- the correlation between adjacent frames in the same scene is very high.
- Inter-frame prediction technology uses this correlation to refer to the content of the frames that have been encoded and decoded to predict the current content to be encoded. Inter-frame prediction can greatly improve encoding performance.
- the most basic inter-frame prediction method is translational prediction.
- Translational prediction assumes that the content to be predicted is in translational motion between the current image and the reference image.
- the content of the current block (coding unit or prediction unit) is in translational motion between the current image and the reference image.
- MV motion vector
- Translational motion accounts for a large proportion in videos. Stationary backgrounds, objects that move as a whole, and lens translation can all be processed using translational prediction.
- Bidirectional prediction finds two reference blocks from the reference image and performs weighted average on the two reference blocks to obtain a prediction block that is as similar to the current block as possible. For example, for some scenes, weighted average of a reference block from the front and back of the current frame may be more similar to the current block than a single reference block. Based on this, bidirectional prediction improves compression performance on the basis of unidirectional prediction.
- POC picture order count
- P-image P Frame
- RPL0 reference image list
- RPL0 The reference image list RPL0 contains all reference images whose POC is before the current image.
- B-image B Frame was previously available. The image predicted by the reference image with POC before the current image and the reference image with POC after the current image.
- RPL0 contains all reference images with POC before the current image
- RPL1 contains all reference images with POC after the current image.
- RPL0 contains all reference images with POC before the current image
- RPL1 contains all reference images with POC after the current image.
- RPL0 contains all reference images with POC before the current image
- RPL1 contains all reference images with POC after the current image.
- RPL0 contains all reference images with POC before the current image
- RPL1 contains all reference images with POC after the current image.
- RPL0 contains all reference images with POC before the current image
- RPL1 contains all reference images with POC after the current image.
- For a current block you can only refer to the reference block of a certain image in RPL0, which is also called forward prediction; you can also only refer to the reference block of a certain image in RPL1, which is also called backward prediction; you can also refer to the reference block of a certain image in RPL0 and the reference block of a certain image in RPL1 at the same
- a simple way to refer to two reference blocks at the same time is to average the pixels in each corresponding position of the two reference blocks to obtain the prediction block of the current block.
- B image no longer restricts RPL0 to contain all reference images with POC before the current image, and RPL1 to contain all reference images with POC after the current image. Therefore, RPL0 can also contain reference images with POC after the current image, and RPL1 can also contain reference images with POC before the current image.
- the current block can also refer to a reference image with a POC before the current image or a reference image with a POC after the current image. This kind of B image is also called a generalized B image.
- the encoding and decoding order of RA (Random Access) configuration is different from the POC order.
- the B picture can refer to the information before the current picture and the information after the current picture, which significantly improves the encoding performance.
- a classic GOP (group of pictures) structure of RA is shown in Figure 4, and the arrows in the figure represent the reference relationship.
- the I picture does not need a reference picture.
- the P picture with POC 4 is decoded.
- the I picture with POC 0 can be referenced.
- the B picture with POC 2 is decoded.
- the I picture with POC 0 and the P picture with POC 4 can be referenced, and so on.
- Low Delay configuration is divided into Low Delay P and Low Delay B.
- Low Delay P is the traditional Low Delay configuration. Its typical structure is IPPP..., that is, an I image is encoded and decoded first, and the subsequent images are all P images.
- the typical structure of Low Delay B is IBBB..., the difference from Low Delay P is that each inter-frame image is a B image, that is, using two reference image lists, the current block can simultaneously refer to the reference block of an image in RPL0 and the reference block of an image in RPL1.
- the compression efficiency of RA configuration is higher than that of LD configuration
- the compression efficiency of LDB configuration is higher than that of LDP configuration. This is because bidirectional prediction can refer to backward information and can reduce prediction errors through some technologies, such as weighted average.
- a reference image list of the current image can have at most several reference images, such as 2, 3 or 4.
- reference images which reference images are in RPL0 and RPL1
- the same reference image may appear in RPL0 and RPL1 at the same time. That is, the codec allows the current block to refer to two reference blocks of the same reference image at the same time.
- Codecs usually use the index value index in the reference image list to correspond to the reference image. If a reference image list is 4 in length, then index has four values: 0, 1, 2, and 3. For example, RPL0 of the current frame has four reference images with POCs 5, 4, 3, and 0. Then RPL0 index 0 is the reference image with POC 5, RPL0 index 1 is the reference image with POC 4, RPL0 index 2 is the reference image with POC 3, and RPL0 index 3 is the reference image with POC 0.
- Inter-frame prediction uses motion information to represent "motion".
- Basic motion information includes reference picture information and motion vector (MV) information.
- MV motion vector
- unidirectional motion information and bidirectional motion information can use the same data structure, but the two sets of reference frame information and motion vector information of the bidirectional motion information are valid, while one set of reference frame information and motion vector information of the unidirectional motion information is invalid.
- the said validity can also be said to be “used”, and the said invalidity can also be said to be "not used”.
- VVC supports two reference image lists, denoted as RPL0 and RPL1.
- RPL0 the reference image index refIdxL0 corresponding to RPL0
- the motion vector mvL0 corresponding to RPL0 the reference image index refIdxL1 corresponding to RPL1
- the motion vector mvL0 corresponding to RPL1 the motion vector mvL0 corresponding to RPL1.
- the reference image index corresponding to RPL0 and the reference image index corresponding to RPL1 here can be understood as the information of the above-mentioned reference image.
- VVC uses two flags to indicate whether to use the motion information corresponding to RPL0 and whether to use the motion information corresponding to RPL1, respectively denoted as predFlagL0 and predFlagL1.
- predFlagL0 and predFlagL1 indicate whether the above-mentioned unidirectional motion information is "valid". Therefore, although VVC does not explicitly mention the data structure of motion information, it uses the reference image index, motion vector and "valid" flag corresponding to each reference image list to represent the motion information. In the VVC standard text, motion information does not appear, but motion vectors are used. It can also be considered that the reference image index and the flag of whether to use the corresponding motion information are attached to the motion vector. For the convenience of description, "motion information” is still used in this article, but it should be understood that “motion vector” can also be used to describe it. “Motion information” can also be called "motion parameter".
- the motion vector can be represented by (x, y), that is, a horizontal component and a vertical component. Since videos are represented by pixels, there is a distance between pixels, and the movement of an object between adjacent images may not always correspond to the whole pixel distance. For example, in a distant video, the distance between 2 pixels is 1 meter for the distant object, and the distance moved by the object in the time between 2 frames is 0.5 meters. This scene cannot be well represented by the whole pixel motion vector. Therefore, the motion vector can be expressed at the sub-pixel level, such as 1/2 pixel accuracy, 1/4 pixel accuracy, 1/8 pixel accuracy, and 1/16 pixel accuracy, to express the motion more finely. And the pixel value of the sub-pixel position in the reference image is obtained by interpolation.
- the unidirectional prediction and bidirectional prediction in the above-mentioned translation prediction are both based on blocks, such as coding units or prediction units. That is, a pixel matrix is used as a unit for prediction.
- the most basic block is a rectangular block, such as a square and a rectangle.
- Video coding standards such as HEVC and VVC allow the encoder to determine the size and division method of the coding unit and prediction unit according to the content of the video. Areas with simple textures or motions tend to use larger blocks, while areas with complex textures or motions tend to use smaller blocks. The deeper the level of block division, the more complex blocks that are closer to the actual texture or motion can be divided, but the corresponding overhead for representing these divisions is also greater. Motion information may also need to be transmitted in the bitstream. And usually, the finer the block division, the greater the overhead of motion information.
- motion vector prediction MVP motion vector prediction
- MVD motion vector difference
- each inter-frame coded block requires a motion information.
- the CU division is equal to the PU division is equal to the TU division, that is, a coding unit has a prediction unit of the same size and position and a transform unit of the same size and position.
- the CU The division is more flexible. Compared with HEVC, VVC tends to weaken PU and TU. Differences in any link of prediction, transformation, quantization, and entropy coding may lead to the division of CU. For example, if the motion information of two regions is different, the encoder may divide the two regions into different CUs.
- the encoder may also divide the two regions into different CUs. How to divide is determined by the overall compression efficiency, not entirely by a single factor. As a result, the same object or regions with the same or similar motion will be divided into different CUs.
- Figure 5 is an example in HEVC
- a is the original image, in which there is an iron rod moving in the direction indicated by the arrow, and the background area moves less.
- Figure b shows the block division of HEVC
- Figure c removes the boundaries of the blocks with the same motion information in Figure b. It can be seen that many adjacent blocks use the same motion information. In this case, if the motion information is encoded separately for each block, there will be obvious waste.
- the complete motion information of VVC mentioned above includes the reference image index of RPL0, the flag whether MV is used, the reference image index of RPL1, and the flag whether MV is used.
- the basic principle of the merge mode is that the current block can inherit the motion information of the adjacent blocks, including the reference image information and the motion vector information.
- Merge mode can build a merge candidate list. If the current block uses Merge mode, an index can be used to indicate which motion information the current block merges with, so there is no need to encode the complete motion information.
- an index can be used to indicate which motion information the current block merges with, so there is no need to encode the complete motion information.
- the adjacent blocks in the spatial domain refer to blocks adjacent to the current block in the same image
- the non-adjacent blocks in the spatial domain refer to blocks non-adjacent to the current block in the same image.
- the motion information in the time domain and the motion information of non-adjacent blocks in the time domain refer to motion information at a specified position on a collocated reference image.
- the large gray block is the current block, wherein positions 1, 2, 3, 4, and 5 are positions of adjacent blocks in the spatial domain used by Merge, and other dark gray positions are positions of non-adjacent blocks in the spatial domain used by Merge.
- Position 6 is the position used for motion information in the time domain.
- the position corresponding to the center of the current block is used.
- Other light gray positions are positions used for motion information of non-adjacent blocks in the time domain.
- the temporal motion information is derived based on the motion information at the corresponding position of the collocated reference image.
- Temporal motion information prediction is used as a supplement to spatial motion information prediction.
- the correlation between adjacent regions on the same image is stronger than that on different images.
- temporal motion information is more useful. For example, if the current block and the surrounding adjacent blocks in the current image belong to different objects and have completely different motions, the motion of the block that belongs to the same object as the current block in a reference image can provide better motion information prediction for the current block.
- the motion vector of the co-located block on the co-located reference image (the block that obtains the temporal motion information is called the co-located block here) is the vector from the co-located reference image col_pic to the reference image col_ref of the co-located block.
- the motion vector it needs is the vector from the current image curr_pic to the reference image curr_ref of the current block.
- the scaling ratio can be determined based on td and tb.
- the motion vector of the co-located block be (col_mv_x, col_mv_y)
- each 4x4 sub-block stores a set of motion information. It is understandable that if the cost of hardware implementation is not considered, the same-position reference image can also store a set of motion information for each pixel.
- VVC introduces sub-block-based temporal motion vector prediction, namely SbTMVP (Subblock-based temporal motion vector prediction).
- SbTMVP Motion vector prediction
- TMVP temporary motion vector prediction
- SbTMVP is based on sub-blocks, so SbTMVP can obtain an MVP for each sub-block. This is also the essential difference between SbTMVP and TMVP.
- TMVP uses the position of the lower right corner of the current block or the position of the center of the current block to locate the co-located block
- SbTMVP finds a motion offset based on the motion of the surrounding blocks to determine the position.
- the motion displacement is set to the motion vector of A1 using the co-located reference image. Otherwise, the motion displacement is set to (0, 0).
- the position is found according to the motion displacement, and then the MV corresponding to the position of each sub-block in the "co-located block" is scaled to obtain the MVP of each sub-block.
- Merge mode directly selects the motion information in the merge candidate list as the motion information of the current block. In actual videos, there are sometimes some differences between the actual motion vector of the current block and the motion vector in the selected merge candidate list.
- MVD in Merge mode is a special Merge mode in VVC, which encodes MVD in this case in an efficient way. Ordinary Merge does not require encoding and decoding MVD (motion vector difference). Ordinary inter mode requires direct encoding and decoding of MVD. As shown in Figure 9, MMVD takes advantage of the fact that MVD is more distributed in a single horizontal direction or a single vertical direction, with more MVDs for smaller values and fewer MVDs for larger values.
- MMVD can only represent MVDs of specific values in some specific directions, and it cannot represent any MVD. It uses mmvd_direction_idx to represent the direction of the MVD, which can also be understood as whether the x and y of the MVD are non-zero and the positive and negative signs. mmvd_distance_idx represents the absolute value of the non-zero x and y of the MVD, MmvdDistance.
- ph_mmvd_fullpel_only_flag is an image header flag that can set 2 different combinations of MMVD.
- Affine uses a linear model to calculate the motion vector of each sub-block or each pixel in the current block based on the motion vectors of 2 control points (4 parameters, a motion vector includes 2 parameters x and y) or 3 control points (6 parameters).
- the motion vector at the (x, y) position in the current block is derived according to the following formula (3):
- the motion vector at the (x, y) position in the current block is derived according to the following formula (4):
- (mv0x, mv0y) is the motion vector of the control point at the upper left corner of the current block
- (mv1x, mv1y) is the motion vector of the control point at the upper right corner of the current block
- (mv2x, mv2y) is the motion vector of the control point at the lower left corner of the current block.
- Affine used in VVC divides the current block into 4x4 sub-blocks, calculates an MV for each sub-block and performs motion compensation.
- Figure 10B is an example of Affine deriving motion vectors based on sub-blocks. It can be understood that with the enhancement of hardware processing capabilities, Affine can also perform pixel-based processing. That is, a motion vector is derived for each pixel, and motion compensation is performed on a pixel based on the motion vector.
- Affine only needs a few control points to derive the motion vector for each sub-block or each pixel, which can achieve more precise predictions than motion compensation based on the entire block. Compared with dividing smaller CUs, Affine has much less overhead.
- HEVC supports a maximum of 64x64 CTUs and can recursively perform quadtree division.
- VVC supports a more flexible block division method than HEVC, supporting a maximum of 128x128 CTUs, including quadtree, ternary tree and binary tree divisions. These division methods.
- block division is becoming more and more flexible, whether it is CU, PU, or TU, it can only be divided into rectangular blocks. It should be noted that VVC has weakened the division of PU and TU.
- the boundaries of texture or motion in natural videos are diverse. For example, when encountering an oblique object boundary, if you simply use rectangular blocks to approach the boundary, you will divide it into many small blocks, which will significantly increase the overhead.
- the geometric partitioning prediction mode (Geometric partitioning Mode, GPM) can better handle textures and boundaries in natural videos.
- GPM uses two prediction blocks with the same size as the current block. Some pixel positions in the prediction block of GPM use 100% of the pixel values of the corresponding positions of the first prediction block, and some pixel positions use 100% of the pixel values of the corresponding positions of the second prediction block. In the boundary area or transition area, the pixel values of the corresponding positions of the two prediction blocks are used in a certain proportion. The weight of the boundary area is also gradually transitioned. Of course, in response to scenes such as screen content encoding, the transition area can also be not used. How these weights are specifically distributed is determined by the "division" mode of GPM. The weight of each pixel position is determined according to the "division" mode of GPM.
- GPM uses two prediction blocks of different sizes from the current block, that is, each takes a required part. The part with a weight of 0 is eliminated. This is an implementation problem and is not the focus of the present invention.
- FIG11 is a weight diagram of 64 modes of GPM in VVC on a square block.
- Black indicates that the weight value of the corresponding position of the first prediction block is 0%
- white indicates that the weight value of the corresponding position of the first prediction block is 100%
- the gray area indicates that the weight value of the corresponding position of the first prediction block is a certain weight value greater than 0% and less than 100% according to the different shades of color.
- the weight value of the corresponding position of the second reference block is 100% minus the weight value of the corresponding position of the first reference block.
- GPM can be said to be a prediction mode or prediction method because it ultimately generates a prediction block. It can also be said that GPM is a "partitioning" mode that simulates the division of the prediction block, which is similar to the implementation of PU division, but without substantial division.
- the first prediction block and the second prediction block used by the above GPM can be prediction blocks generated by intra-frame prediction, prediction blocks generated by unidirectional prediction between frames, or prediction blocks generated by bidirectional prediction between frames.
- the bit rate of general consumer video is limited, so video compression usually seeks a compromise between bit stream overhead and distortion.
- block division for the same content, within a certain range, the finer the division, the greater the overhead and the less distortion; the coarser the division, the less overhead and the greater the distortion.
- encoding of motion information for the same content, within a certain range, the more precise the motion information, the greater the overhead and the less distortion; the coarser the motion information, the less overhead and the greater the distortion.
- Some decoding methods use the information on the decoding side for processing and calculation without occupying overhead, so as to improve motion information, improve prediction effect, and reduce distortion.
- Not occupying overhead means that there is no instruction made by the encoder based on the original image, and it is automatically processed based on the available information.
- Two typical decoding methods in VVC are DMVR (Decoder side motion vector refinement) and BDOF (bi-directional optical flow).
- DMVR in VVC uses bilateral matching BM (bilateral matching), that is, to calculate the matching cost of the reference blocks on both sides, such as SAD (sum of absolute difference). DMVR searches for the matching cost of the MVs around the original MV.
- the MVs of the two reference images are moved in a mirrored manner, that is, one side moves MVdiff and the other side moves -MVdiff based on their respective original MVs, as shown in Figure 12.
- the search also supports sub-pixel search, so DMVR may find MVs with higher accuracy than the original MVs.
- the search is performed according to certain rules. Generally, the integer pixel MVs within a certain range are searched first to find the integer pixel MV with the lowest matching cost, and then the sub-pixel MVs are searched based on the integer pixel MVs. If an MV with a lower matching cost than the original MV is found, the MV with a lower matching cost is used for motion compensation prediction.
- the MV improved by DMVR can theoretically be used to store MVs and surrounding blocks. For example, when the merge candidate list is constructed for the current block, if the surrounding blocks use DMVR to improve the MV, using the improved MV to construct the merge candidate list can achieve better compression effect, but for hardware implementation considerations, VVC does not do this.
- DMVR can be processed based on sub-blocks.
- the sub-blocks will be divided into 16-pixel blocks.
- this is based on the consideration of hardware implementation complexity, because DMVR needs to be searched at the decoding end, and limiting the size of the sub-block can reduce the cost of cache.
- dividing into sub-blocks provides better flexibility, and each sub-block can improve the MV independently, which to a certain extent achieves the effect of improving the division accuracy, which also improves the compression efficiency.
- Bidirectional optical flow is also a typical decoding method.
- BDOF improves MV and prediction based on the principle of optical flow.
- Optical flow is the instantaneous speed of the pixel movement of a moving object in space on the observation imaging plane.
- Optical flow has some basic assumptions, such as constant brightness, that is, the brightness of the same target does not change when it moves between different images. Time is continuous or the movement is small. That is, the change of time will not cause a drastic change in the target position.
- BDOF in VVC will derive a motion vector deviation (v x ,v y ), which is calculated by minimizing the difference between the predicted values in the two directions. This motion vector deviation is also used to adjust the predicted value in the corresponding sub-block.
- the process of deriving the predicted value includes:
- I (k) (i,j) is the predicted value of the coordinate (i,j) of the reference image list k
- k 0,1
- (v x ,v y ) is determined by the following formula (6):
- ⁇ (i,j) (I (1) (i,j)>>n b )-(I (0) (i,j)>>n b ).
- ⁇ is a 6x6 window around the current 4x4 sub-block, na is min(1, bitDepth-11), and n b is min(4, bitDepth-8).
- each prediction value within the 4x4 sub-block is adjusted based on the motion vector deviation and gradient.
- the adjustment value of the predicted value is determined by the following formula (8):
- the prediction value of the current block is adjusted based on the adjustment value of the prediction value to obtain the prediction value of BDOF.
- Ooffset and shift are calculated based on the bit depth of brightness.
- n a , n b and shift are all processed to reduce the bit width during the calculation process.
- the motion vector deviation of BDOF can achieve high precision, making the prediction more accurate, and the sub-block-based processing also improves flexibility. It is similar to DMVR.
- DMVR is based on block matching
- BDOF is based on the principle of optical flow. They can be used in combination.
- An example is as follows, which can be called multi-pass decoder-side motion vector refinement (MDMVR for short).
- MDMVR may include: Step 1, motion vector improvement based on bidirectional matching of the whole block. Step 2, motion vector improvement based on bidirectional matching of sub-blocks. The sub-block size of this step may be 16x16. Step 3, motion vector improvement based on bidirectional optical flow of sub-blocks. The sub-block size of this step may be 8x8. Currently, further steps may be added on this basis, such as a fourth step, motion vector improvement based on bidirectional optical flow of 4x4 sub-blocks. Or a motion vector improvement based on bidirectional optical flow of points, etc.
- the template matching method was first used in inter-frame prediction. It uses the correlation between adjacent pixels and takes some areas around the current block as templates.
- the current block is encoded and decoded, its left and upper sides have been encoded and decoded according to the encoding order.
- the existing hardware decoder is implemented, it is not necessarily guaranteed that when the current block starts to be decoded, its left and upper sides have been decoded.
- this refers to inter-frame blocks.
- the inter-frame coded block when the inter-frame coded block generates a prediction block, the surrounding reconstructed pixels are not required, so the prediction process of the inter-frame block can be carried out in parallel.
- the intra-frame coded block must use the reconstructed pixels on the left and upper sides as reference pixels.
- the left and upper sides are available, which means that the hardware design can be adjusted accordingly.
- the right and lower sides are not available under the current standard such as VVC encoding order.
- the rectangular areas on the left and upper sides of the current block are set as templates.
- the height of the template part on the left is generally the same as the height of the current block, and the width of the template part on the upper side is generally the same as the width of the current block, but of course they can be different.
- the best matching position of the template is found in the reference image to determine the motion information or motion vector of the current block. This process can be roughly described as starting from a starting position in a certain reference image and searching within a certain range around it.
- the search rules such as the search range and search step length, can be pre-set. Each time a position is moved to, the matching degree between the template corresponding to the position and the template around the current block is calculated.
- the so-called matching degree can be measured by some distortion costs, such as SAD (sum of absolute difference), SATD (sum of absolute transformed difference).
- SAD sum of absolute difference
- SATD sum of absolute transformed difference
- MSE mean-square error
- the cost is calculated using the predicted block of the template corresponding to the position and the reconstructed block of the template around the current block.
- the sub-pixel position can also be searched, and the motion information of the current block can be determined based on the position with the highest degree of matching.
- the motion information suitable for the template may also be the appropriate motion information for the current block.
- the template matching method may not necessarily be applicable to all blocks, so some methods can be used to determine whether the current block uses the above template matching method, such as using a control switch in the current block to indicate whether the template matching method is used.
- This template matching method is called DMVD (decoder side motion vector derivation).
- DMVD decoder side motion vector derivation
- Both the encoder and the decoder can use the template to search to derive motion information or find better motion information based on the original motion information. It does not need to transmit specific motion vectors or motion vector differences, but the encoder and decoder perform the same regular search to ensure the consistency of encoding and decoding.
- the template matching method can improve compression performance, but it also requires “searching" at the decoding end, which brings a certain degree of decoding complexity.
- the encoder can decide which prediction mode or model to use for the current block, such as whether to use the merge mode, whether to use the MMVD mode, whether to predict by the whole block or the sub-block. If it is predicted by the whole block, the merge candidate list also includes motion vector prediction in the spatial domain and motion vector prediction in the temporal domain. If it is predicted by the sub-block, there are also modes such as SbTMVP and Affine in the sub-block candidates. Whether to use the GPM mode, etc. On the one hand, the more detailed and accurate information is told to the decoder through the bitstream, the decoder can make better predictions, but the corresponding overhead is greater.
- the encoder needs to make a trade-off between bitrate and distortion.
- the above methods such as merge, MMVD, GPM, SbTMVP, Affine, etc., tell the decoder as much information as possible in a more efficient way, and the decoder executes according to the instructions of the encoder.
- the decoding algorithms such as DMVR and BDOF use block matching or optical flow methods to compensate for the distortion caused by inaccurate motion vectors, which to a certain extent also gives the encoder more room to transmit less information to save bitstream overhead. It can be said that the "smarter" the decoder is, the smaller the distortion it can make when the encoder gives the same instructions.
- the decoder obtains the indication of motion information from the bitstream to obtain the initial motion information, finds the reference block or the area around the reference block according to the initial motion information, and improves the initial motion information and/or improves the prediction value according to the pixel value information of the reference block or the area around the reference block.
- DMVR searches around the initial MV, and its search process and the final selection of which MV depends on the result of block matching.
- BDOF also calculates information such as gradient based on pixel values, and calculates the instantaneous motion vector difference through the optical flow method.
- the present application improves the first motion information based on the motion information of the reference image of the current block to obtain the second motion information, wherein the motion information of the reference image is used to improve the first motion information and/or for block division. That is to say, in the embodiment of the present application, when improving the first motion information, the motion information of the reference image is taken into account to achieve effective improvement of the first motion information and obtain accurate second motion information, and then based on the accurate second motion information, when determining the prediction value of the current block, the prediction accuracy of the current block can be improved, thereby improving the decoding performance of the video.
- the video decoding method provided in the embodiment of the present application is introduced by taking the decoding end as an example.
- FIG14 is a schematic diagram of a video decoding method flow chart provided by an embodiment of the present application, and the embodiment of the present application is applied to the video decoders shown in FIG1 and FIG3. As shown in FIG14, the method of the embodiment of the present application includes:
- S101 Determine first motion information of a current block.
- the decoding method provided in the embodiment of the present application is applied to inter-frame prediction to improve the motion information of the current block.
- the encoder carries less and less prediction-related information in the bitstream for the sake of bitrate considerations, which makes the motion information of the current block obtained by the decoder based on the prediction-related information carried in the bitstream inaccurate. Therefore, the decoder can improve the motion information determined by the decoding to improve the prediction effect.
- the motion information of the reference image is not considered, which makes the improvement of the motion information unsatisfactory.
- the motion information of the reference image is taken into consideration, thereby achieving effective improvement of the motion information of the current block, thereby improving the prediction accuracy of the current block and enhancing the decoding performance of the video.
- the first motion information of the current block can be understood as the initial motion information of the current block, that is, the decoding end obtains the prediction related information carried by the bitstream by decoding the bitstream, and determines the motion information based on the prediction related information.
- the prediction related information may include information such as the prediction mode.
- the first motion information of the current block can be understood as motion information after the initial motion information of the current block has been improved once or multiple times. Through the method of the embodiment of the present application, the first motion information is improved again based on the motion information of the reference image.
- inter-frame prediction uses motion information to represent "motion".
- Basic motion information includes reference picture information and motion vector (MV) information.
- MV motion vector
- a block uses bidirectional prediction, it is necessary to find two reference blocks, so two sets of reference image information and motion vector information are required. Each set can be understood as a unidirectional motion information, and these two sets are combined to form a bidirectional motion information.
- the motion information of the embodiments of the present application may refer to unidirectional motion information, that is, information including a set of reference image information and motion vector information.
- the motion information of the embodiments of the present application may refer to bidirectional motion information, that is, information including two sets of reference image information and motion vector information.
- the motion information of the embodiments of the present application may refer to multi-directional motion information, that is, information including multiple sets of reference image information and motion vector information.
- the reference image index corresponding to each reference image list, the motion vector and the "valid" flag may be used together to represent the motion information.
- the embodiment of the present application does not limit the specific method for the decoding end to determine the first motion information of the current block.
- the encoder carries the prediction mode of the current block in the bitstream, so that the decoder obtains the prediction mode of the current block by decoding the bitstream, and further determines the first motion information of the current block based on the prediction mode.
- the decoding end obtains initial motion information of the current block based on the prediction mode, and determines the initial motion information as the first motion information.
- the decoding end obtains the initial motion information of the current block based on the prediction mode, and then improves the initial motion information, and determines the improved initial motion information as the first motion information.
- the method for the decoding end to improve the initial motion information may be to improve it by using the above-mentioned DMVR and/or BDOF.
- the decoding end uses the DMVR improvement method to improve the initial motion information of the current block to obtain the first motion information.
- the decoding end uses the BDOF improvement method to improve the initial motion information of the current block to obtain the first motion information.
- the decoding end first uses the DMVR improvement method to improve the initial motion information, and then uses the BDOF improvement method to improve it to obtain the first motion information.
- the decoding end first uses the BDOF improvement method to improve the initial motion information, and then uses the BDOF improvement method to improve it to obtain the first motion information.
- the specific improvement methods of DMVR and BDOF refer to the description of the above-mentioned embodiments and will not be repeated here.
- S102 Based on the motion information of the reference image of the current block, improve the first motion information to obtain the second motion information of the current block.
- the motion information of the reference image is used to improve the first motion information and/or for block division.
- the motion information of the embodiment of the present application includes information of the reference image and information of the motion vector. Based on this, the decoding end can obtain the information of the reference image of the current block from the first motion information of the current block determined above, such as obtaining the index of the reference image, and then obtain the reference image of the current block from the reference image list based on the index.
- the current block corresponds to a reference image list, recorded as RPL0.
- the index of the reference image of the current block in the reference image list RPL0 is determined, and then based on the index, the reference image corresponding to the index in the reference image list RPL0 is determined as the reference image of the current block.
- the decoding end determines the index of the reference image of the current block in the reference image list RPL0 in at least the following ways: Method 1, the encoding end and the decoding end determine each reference image in the reference image list RPL0, such as the first reference image, as the reference image of the current block by default, so that the encoding end does not need to indicate the index of the reference image of the current block in the bitstream. Method 2, the encoding end writes the index of the reference image of the current block in the reference image list RPL0 into the bitstream, so that the decoding end obtains the index of the reference image of the current block in the reference image list RPL0 by decoding the bitstream, and then obtains the reference image of the current block based on the index.
- Method 1 the encoding end and the decoding end determine each reference image in the reference image list RPL0, such as the first reference image, as the reference image of the current block by default, so that the encoding end does not need to indicate the index of the reference image of the current block in the bitstream.
- the current block corresponds to two reference image lists, which are respectively recorded as RPL0 and RPL1.
- the decoding end determines that one reference image of the current block is indexed refIdxL0 in the reference image list RPL0, and the other reference image is indexed refIdxL1 in the reference image list RPL1, and then based on these two indexes, the two reference images of the current block are determined in the reference image list RPL0 and the reference image list RPL1.
- the decoding end determines the index of the reference image of the current block in the reference image list RPL0 in at least the following ways: Method 1, the encoding end and the decoding end determine each reference image in the reference image list RPL0, such as the first reference image, as the reference image of the current block by default, so that the encoding end does not need to indicate the index of the reference image of the current block in the bitstream. Method 2: The encoder writes the index of the reference image of the current block in the reference image list RPL0 into the bitstream, so that the decoder obtains the index of the reference image of the current block in the reference image list RPL0 by decoding the bitstream, and then obtains the reference image of the current block based on the index.
- Method 1 the encoding end and the decoding end determine each reference image in the reference image list RPL0, such as the first reference image, as the reference image of the current block by default, so that the encoding end does not need to indicate the index of the reference image of the current block in the bitstream.
- the decoder determines the reference image of the current block. Since the reference images are all decoded images, their motion information is known. Therefore, the decoder can directly obtain the motion information of the reference image, and then determine the second motion information of the current block based on the motion information of the reference image and the first motion information of the current block determined in the above steps, where the second motion information can be understood as more accurate motion information obtained by improving the first motion information.
- the motion information of the reference image plays at least two roles in improving the first motion information.
- One is that the motion information of the reference image directly participates in the improvement of the first motion information, for example, it is used to guide the search process of the second motion information.
- the second is that, in the process of improving the first motion information, the motion information of the reference image is used to indicate the division of blocks.
- the following introduces a process in which the decoding end improves the first motion information based on the motion information of the reference image of the current block to obtain the second motion information of the current block.
- the embodiment of the present application does not limit the specific process of improving the first motion information based on the motion information of the reference image at the decoding end to obtain the second motion information of the current block.
- the decoding end improves the first motion information by at least several methods shown in the following embodiments to obtain the second motion information.
- a template reference area corresponding to the template of the current block is determined in the reference image, wherein the motion information of the template reference area is known, and the motion information of the template of the current block is also known, so the first motion information of the current block can be improved based on the motion information of the template reference area and the motion information of the template of the current block to obtain the second motion information of the current block.
- the difference value between the motion information of the template reference area and the motion information of the template of the current block is determined, and the difference value is added to the first motion information to obtain the second motion information of the current block.
- the above S102 includes the following steps S102-A to S102-C:
- the decoding end first determines the reference block corresponding to the current block in the reference image based on the first motion information. Since the motion information of the reference block is known, the decoding end can determine whether the first motion information of the current block is accurate based on the motion information of the reference block. For example, assuming that the reference block and the current block belong to the same object moving as a whole in the image, and the motion of the entire object is a uniform motion, the reference block can be used as the same block as the current block, and the time domain motion information of the current block can be determined based on the motion information of the reference block. For the convenience of description, the time domain motion information is recorded as the third motion information, and then the first motion information is improved based on the third motion information to achieve accurate improvement of the first motion information.
- the first motion information includes information of the motion vector of the current block.
- the improvement of the first motion information can be understood as the improvement of the motion vector included in the first motion information.
- the decoding end first determines the reference block corresponding to the current block in the reference image based on the first motion information, wherein the first motion information of the current block can be unidirectional motion information or bidirectional motion information, and these two cases are introduced respectively below.
- the first motion information of the current block includes unidirectional motion information, that is, the current block corresponds to a reference image and a motion vector.
- the reference image included in the first motion information of the current block curr_block in the current image curr_pic is the reference image ref_pic_0 in the reference image sequence RPL0
- the motion vector is the first motion vector mv_0.
- the playback order of the reference image ref_pic_0 is before the current image curr_pic.
- the decoding end can locate the corresponding reference block ref_block_0 in the reference image ref_pic_0 based on the position of the current block curr_block and the first vector mv_0 of the current block.
- the current block represented by the dotted box in the reference image in Figure 15 can be understood as the same-position block of the current block in the reference image.
- the first motion information of the current block includes bidirectional motion information, that is, the current block corresponds to two reference images, which are recorded as the first reference image and the second reference image, and the two motion vectors are recorded as the first motion vector and the second motion vector.
- the first reference image included in the first motion information of the current block curr_block in the current image curr_pic is the reference image ref_pic_0 of the reference image sequence RPL0
- the first motion vector is mv_0
- the second reference image of the current block is the reference image ref_pic_1 in the reference image sequence RPL1
- the second motion vector is mv_1.
- the decoding end can locate the corresponding first reference block ref_block_0 in the first reference image ref_pic_0 according to the position of the current block curr_block and the first motion vector mv_0, and can locate the corresponding second reference block ref_block_1 in the second reference image ref_pic_1 according to the position of the current block curr_block and the second motion vector mv_1.
- the decoding end determines the reference block of the current block in the reference image based on the first motion information of the current block. Since the reference images are all decoded images and their motion information is known, the motion information of the reference block can also be obtained.
- the decoding end can infer the direction in which the first motion vector of the current block is more likely to deviate based on the motion information of the reference block. Specifically, based on the motion information of the reference block, the temporal motion information of the current block is determined, recorded as the third motion information, and the third motion information is compared with the first motion information of the current block to determine the direction in which the first motion information is more likely to deviate.
- the implementation methods for determining the third motion information in the above S102-B include but are not limited to the following:
- the decoding end uses the current block as the co-located block of the reference block, determines the time domain motion information of the reference block according to the motion information of the reference block, and then determines the opposite number of the time domain motion information as the third motion information.
- the decoder can infer the vector information in the time domain motion information when the reference block moves from the current position in the reference image to the current block in the current image based on the motion information of the reference block, which is recorded as mv_t. For example, the decoder uses the method for deriving the time domain motion information to derive mv_t. Then, the opposite vector of mv_t -mv_t is determined as the motion vector in the third motion information.
- (ref_mv_x and ref_mv_y) are the motion vectors of the reference block on the x-axis and y-axis
- td is the POC distance between the co-located reference image col_pic and the reference image col_ref of the co-located block
- tb is the POC distance between the current image curr_pic and the reference image curr_ref.
- the absolute value of the motion vector -mv_t in the third motion information determined above is compared with the absolute value of the motion vector mv_0 in the first motion information of the current block to determine in which direction the first motion information is more likely to shift.
- the absolute value of the motion vector -mv_t in the third motion information is less than the absolute value of the motion vector mv_0 in the first motion information of the current block, it means that the reference block can only reach the position of the dotted box shown in Figure 17A according to its existing motion, so it can be inferred that the motion vector mv_0 of the current block in the first motion information is too large.
- the absolute value of the motion vector -mv_t in the third motion information is greater than the absolute value of the motion vector mv_0 in the first motion information of the current block, it means that the reference block can reach the position of the dotted box shown in Figure 17B according to its existing motion, so it can be inferred that the motion vector mv_0 of the current block in the first motion information is too small.
- the decoder can infer the motion vector 0 of the first reference block from the first reference image to the current image based on the motion information of the first reference block, which is recorded as mv_0_t. And the decoder can infer the motion vector 1 of the second reference block from the second reference image to the current image based on the motion information of the second reference block, which is recorded as mv_1_t.
- motion vector 0 and motion vector 1 can be derived using the method of deriving temporal motion information.
- ref_mv_0_x and ref_mv_0_y are motion vectors of the first reference block on the x-axis and y-axis
- td0 is the POC distance between the first co-located reference image col_pic0 and the first reference image col_ref0 of the co-located block
- tb0 is the POC distance between the current image curr_pic and the first reference image curr_ref0.
- ref_mv_1_x and ref_mv_1_y are motion vectors of the second reference block on the x-axis and y-axis
- td1 is the POC distance between the second co-located reference image col_pic1 and the second reference image col_ref1 of the co-located block
- tb1 is the POC distance between the current image curr_pic and the second reference image curr_ref1.
- the decoding end determines the opposite vector -mv_0_t of mv_0_t as the first prediction direction motion vector in the third motion information, and determines the phase vector -mv_1_t of mv_1_t as the second prediction direction motion vector in the third motion information.
- the absolute value of the motion information in the third motion information determined above is compared with the absolute value of the motion vector in the first motion information of the current block to determine in which direction the first motion information is more likely to shift.
- the first motion information and the third motion information both include a first prediction direction motion vector and a second prediction direction motion vector, so that the motion information in each direction is compared separately.
- the absolute value of the first prediction direction motion vector -mv_0_t in the third motion information is compared with the absolute value of the first prediction direction motion example mv_0 in the first motion information. For example, if the absolute value of the first prediction direction motion vector -mv_0_t in the third motion information is smaller than the absolute value of the first prediction direction motion vector mv_0 in the first motion information, it means that when the first reference block moves from the current position in the first reference image to the current image according to its existing motion vector, it cannot reach the position of the current block in the current image, so it can be inferred that the first prediction direction motion vector mv_0 in the first motion information is too large.
- the absolute value of the first prediction direction motion vector -mv_0_t in the third motion information is larger than the absolute value of the first prediction direction motion vector mv_0 in the first motion information, it means that when the first reference block moves from the current position of the first reference block to the current image according to its existing motion vector, its position in the current image exceeds the position of the current block in the current image, so it can be inferred that the first prediction direction motion vector mv_0 in the first motion information is too small.
- the absolute value of the second prediction direction motion vector -mv_1_t in the third motion information is compared with the absolute value of the second prediction direction motion vector mv_1 in the first motion information.
- the absolute value of the second prediction direction motion vector -mv_1_t in the third motion information is smaller than the absolute value of the second prediction direction motion vector mv_1 in the first motion information, it means that when the second reference block moves from the current position in the second reference image to the current image according to its existing motion vector, it cannot reach the current block in the current image, so it can be inferred that the second prediction direction motion vector mv_0 in the first motion information is too large.
- the absolute value of the second prediction direction motion vector -mv_1_t in the third motion information is larger than the absolute value of the second prediction direction motion vector mv_1 in the first motion information, it means that after the second reference block moves from the current position in the second reference image to the current image according to its existing motion vector, its position in the current image exceeds the position of the current block in the current image, so it can be inferred that the second prediction direction motion vector mv_1 in the first motion information is too small.
- the decoding end determines the time domain motion information of the current block as the third motion vector based on the motion information of the reference block.
- the decoding end determines the time domain motion information of the current block as the third motion information according to the motion information of the reference block.
- ref_mv_x and ref_mv_y are the motion vectors of the reference block on the x-axis and y-axis
- mv_t’_x and mv_t’_y are the first prediction direction motion vector and the second prediction direction motion vector in the third motion information
- td is the POC distance between the co-located reference image col_pic and the reference image col_ref of the co-located block
- tb is the POC distance between the current image curr_pic and the reference image curr_ref.
- the absolute value of the motion vector mv_t' in the third motion information determined above is compared with the absolute value of the motion vector mv_0 in the first motion information of the current block to determine in which direction the first motion information is more likely to shift.
- the absolute value of the motion vector mv_t' in the third motion information is smaller than the absolute value of the motion vector mv_0 in the first motion information of the current block, it means that when the current block moves from the current position of the current image to the reference image according to its existing motion vector, it can only reach the dotted box position shown in Figure 18A, then it can be inferred that the motion vector mv_0 of the current block in the first motion information is too small.
- the absolute value of the motion vector mv_t’ in the third motion information is greater than the motion vector mv_0 in the first motion information of the current block, it means that when the current block moves from the current position of the current image to the reference image according to its existing motion vector, it can reach the position of the dotted box shown in Figure 18B. Then it can be inferred that the motion vector mv_0 of the current block in the first motion information is too large.
- the first motion information and the third motion information both include a first prediction direction motion vector and a second prediction direction motion vector.
- the decoder can infer the motion vector mv_0_t’ of the current block when it moves from the current position of the current image to the first reference image based on the motion information of the first reference block.
- the decoder can infer the motion vector mv_1_t’ of the current block when it moves from the current position of the current image to the second reference image based on the motion information of the second reference block.
- mv_0_t’ is the first prediction direction motion vector in the third motion information
- mv_1_t’ is the second prediction direction motion vector in the third motion information.
- mv_0_t’ and mv_1_t’ can be derived using the method for deriving time domain motion information.
- ref_mv_0_x and ref_mv_0_y are motion vectors of the first reference block on the x-axis and y-axis
- td0 is the POC distance between the first co-located reference image col_pic0 and the first reference image col_ref0 of the co-located block
- tb0 is the POC distance between the current image curr_pic and the first reference image curr_ref0.
- ref_mv_1_x and ref_mv_1_y are motion vectors of the second reference block on the x-axis and y-axis
- td1 is the POC distance between the second co-located reference image col_pic1 and the second reference image col_ref1 of the co-located block
- tb1 is the POC distance between the current image curr_pic and the second reference image curr_ref1.
- the absolute value of the motion vector in the third motion information determined above is compared with the absolute value of the motion vector in the first motion information of the current block to determine in which direction the first motion information is more likely to shift.
- the absolute value of the first predicted direction motion vector mv_0_t' in the third motion information is compared with the absolute value of the first predicted direction motion vector mv_0 in the first motion information.
- the first predicted direction motion vector mv_0_t' is less than the absolute value of the first predicted direction motion vector mv_0 in the first motion information, it means that when the current block moves from the current position in the current image to the first reference image according to the first predicted direction motion vector mv_0, it cannot reach the position of the current first reference block in the first reference image. It can be inferred that the first predicted direction motion vector mv_0 in the first motion information is too large.
- the absolute value of the first predicted direction motion vector mv_0_t' in the third motion information is greater than the absolute value of the first predicted direction motion vector mv_0 in the first motion information, it means that the position of the current block in the first reference image after moving from the current position in the current image to the first reference image according to the first predicted direction motion vector mv_0 exceeds the current position of the first reference block in the first reference image. It can be inferred that the first predicted direction motion vector mv_0 in the first motion information is too small.
- the absolute value of the second predicted direction motion vector mv_1_t' in the third motion information is compared with the absolute value of the second predicted direction motion vector mv_1 in the first motion information.
- the absolute value of the second prediction direction motion vector mv_1_t' in the third motion information is smaller than the absolute value of the second prediction direction motion vector mv_1 in the first motion information, it means that the current block moves from the current position in the current image to the second reference image according to the second prediction direction motion vector mv_0, and cannot reach the current position of the second reference block in the second reference image, so it can be inferred that the second prediction direction motion vector mv_0 in the first motion information is too large.
- the absolute value of the second prediction direction motion vector mv_1_t' in the third motion information is larger than the absolute value of the second prediction direction motion vector mv_1 in the first motion information, it means that the position of the current block in the second reference image after moving from the current position in the current image to the second reference image according to the second prediction direction motion vector mv_0 exceeds the current position of the second reference block in the second reference image, so it can be inferred that the second prediction direction motion vector mv_1 in the first motion information is too small.
- the decoding end determines the third motion information based on the above steps, and then executes the above step S102-C.
- using the third motion information to improve the first motion information may result in a greater error, for example, if the object does not move at a uniform speed. Therefore, in an embodiment of the present application, before the decoder improves the first motion information based on the third motion information to obtain the second motion information, it first determines the difference between the first motion information and the third motion information.
- the embodiment of the present application does not limit the specific manner in which the decoding end determines the difference value between the first motion information and the third motion information.
- an absolute value of a difference between a motion vector in the first motion information and a motion vector in the third motion information is determined as a difference value between the first motion information and the third motion information.
- mv_0_x and mv_0_y are motion vectors in the first motion information
- mv_0_t’_x and mv_0_t’_y are motion vectors in the third motion information
- diff is the difference value between the first motion information and the third motion information.
- the step of improving the first motion information based on the third motion information to obtain the second motion information is skipped, and the first motion information is directly improved by a method such as DMVR to obtain the second motion information. If the difference value is less than or equal to the preset threshold value, the above step S102-C is executed to improve the first motion information based on the third motion information to obtain the second motion information.
- the embodiment of the present application does not limit the specific manner in which the decoding end improves the first motion information based on the third motion information to obtain the second motion information.
- the decoding end compares the third motion information with the first motion information to adjust the first motion information based on the third motion information to obtain improved second motion information.
- the first motion information can be adaptively increased to obtain the second motion information. For example, when searching for the second motion information around the first motion information, a larger motion vector can be searched for.
- the first motion information can be adaptively reduced to obtain the second motion information. For example, when searching for the second motion information around the first motion information, a smaller motion vector can be searched for.
- the above S102-C includes the following steps S102-C1 and S102-C2:
- the decoding end determines the fourth motion information based on the third motion information and the first motion information in the following implementations, but is not limited to:
- an average value of the third motion information and the first motion information is determined as the fourth motion information.
- mv_0_c_x and mv_0_c_y in formula (17) are motion vectors in the fourth motion information
- mv_0_x and mv_0_y are motion vectors in the first motion information
- mv_0_t’_x and mv_0_t’_y are motion vectors in the third motion information.
- mv_0_c_x and mv_0_c_y in formula (18) are the first predicted direction motion vector in the fourth motion information
- mv_1_c_x and mv_1_c_y are the second predicted direction motion vector in the fourth motion information
- mv_0_x and mv_0_y are the first predicted direction motion vector in the first motion information
- mv_1_x and mv_1_y are the second predicted direction motion vector in the first motion information
- mv_0_t’_x and mv_0_t’_y are the first predicted direction motion vector in the third operation information
- mv_1_t’_x and mv_1_t’_y are the second predicted direction motion vector in the third operation information.
- Method 2 determine the weights corresponding to the third motion information and the first motion information, determine a weighted average of the third motion information and the first motion information based on the weights, and then determine the weighted average as the fourth motion information.
- the embodiment of the present application does not limit the specific manner in which the decoding end determines the weights corresponding to the third motion information and the first motion information.
- the weight corresponding to the third motion information is greater than the weight corresponding to the first motion information.
- the weight corresponding to the third motion information is less than the weight corresponding to the first motion information.
- the first motion information is a hypothesis (or prediction) of motion information determined based on relevant prediction information provided by the encoder, and the relevant prediction information provided by the encoder includes the encoder from a certain candidate list. A motion information that the encoder considers appropriate is selected, or a prediction mode that the encoder selects that it considers appropriate.
- the third motion information is a hypothesis (or prediction) of motion information inferred by the decoder, such as the motion information of the current block derived by the decoder based on the motion information on the reference image.
- the first motion information is obtained through the selection of the encoder, and the third motion information is derived based on the motion information of the reference image, but the reference image is not the current image after all. Therefore, in this example, a higher weight can be set for the first motion information and a lower weight can be set for the third motion information.
- the decoding end determines the weights corresponding to the third motion information and the first motion information, the third motion information and the first motion information are weighted to obtain fourth motion information.
- a0* is the weight corresponding to the first motion information
- b0* is the weight corresponding to the third motion information
- a0 is greater than b0.
- b0 1-a0.
- a0 may be 3/4, 5/8, etc.
- b0 may be 1/4, 2/8, etc.
- the division in the above formula can also be replaced by a right shift >>.
- a0* in formula (21) is the weight corresponding to the first prediction direction motion information (or the first prediction direction motion vector) in the first motion information
- b0* is the weight corresponding to the second prediction direction motion information (or the second prediction direction motion vector) in the first motion information
- a1* is the weight corresponding to the first prediction direction motion information (or the first prediction direction motion vector) in the third motion information
- b1* is the weight corresponding to the second prediction direction motion information (or the second prediction direction motion vector) in the third motion information.
- different weights may be set according to specific circumstances, such as setting different weights according to different prediction modes.
- the decoding end After the decoding end determines the fourth motion information based on the above steps, it executes the above S102-C2 to determine the second motion information based on the fourth motion information.
- the specific implementation methods of the decoding end in the above S102-C2 determining the second motion information based on the fourth motion information include but are not limited to the following:
- Method 1 Positioning the search center of the second motion information at the position corresponding to the fourth motion information.
- the above S102-C2 includes the following step S102-C2-a:
- the second motion information is obtained by searching around the first motion information.
- the decoding end determines the positioning point of the reference block of the current block in the reference image based on the first motion information.
- the positioning point can be the position of the upper left corner of the reference block or the center position of the reference block, etc.
- a search is performed near the positioning point specified by the first motion information, for example, the search is performed with the positioning point as the center, or the search is performed in the same range up, down, left, and right around the positioning point. Exemplarily, in FIG.
- a square is a pixel position
- the black square is the positioning point specified by the first motion information in the reference image
- the white square is the search position of the second motion information.
- the motion information corresponding to the position with the lowest cost among these square search points is determined as the second motion information.
- the first motion information in the embodiment of the present application may be inaccurate. For example, based on the motion information of the reference image, it is determined that the first motion information is too large or too small. At this time, when the second motion information is searched with the inaccurate first motion information as the search center, the search of the second motion information is inaccurate.
- the embodiment of the present application determines the third motion information based on the motion information of the reference image, and then modifies the search center of the second motion information based on the third motion information and the first motion information of the current block.
- the fourth motion information is determined, and then the corresponding position of the fourth motion information in the reference image is used as the search center point of the second motion information.
- the second motion information is searched in the reference image to obtain the second motion information. Since the fourth motion information takes into account the motion information of the reference image and the first motion information of the current block, the position specified by the fourth motion information is used as the search center of the second motion information.
- the accuracy of the search center can be improved, thereby improving the search accuracy of the second motion information and improving the decoding prediction effect.
- the black square is the first motion information specified as a position in the reference image
- the gray square is the third motion information specified as a position in the reference image.
- the position corresponding to the average value of the third motion information and the first motion information (i.e., the fourth motion information) in the reference image is used as the search center of the second motion information.
- the resulting search range is shown in FIG19B.
- the search range is shifted to the right, and the search is biased towards smaller motion information, thereby achieving accurate search for the second motion information.
- the first motion information is less than the third motion information, it means that the first operation information is too small.
- searching for the second motion information it is more inclined to search for larger motion information.
- the search range of the second motion information is shifted to the left compared to FIG19A, and the search is biased towards larger motion information, thereby achieving accurate search for the second motion information.
- the specific process of determining the search range of the second motion information is basically the same.
- the position corresponding to the fourth motion information in the reference image is used as the search center point of the second motion information
- the process of searching for the second motion information in the reference image can refer to the schemes shown in Figures 19B and 19C.
- the position corresponding to the fourth motion information in the reference image is used as the search center point of the second motion information
- the motion information search is performed within a preset search range near the search center point in the reference image, and the cost of the motion information corresponding to each position point searched is determined, and then the motion information corresponding to the position point with the smallest cost is determined as the current block.
- the second motion information of the block In unidirectional prediction, the cost of the motion information corresponding to each position point can be represented by the matching cost of the motion information of the template of the position point and the motion information of the template of the current block.
- the current block includes a first reference image and a second reference image
- the second motion information and the fourth motion information both include first prediction direction motion information and second prediction direction motion information.
- the decoding end uses the position corresponding to the first prediction direction motion information in the fourth motion information in the first reference image as the search center point of the first prediction direction motion information in the second motion information, and uses the position corresponding to the second prediction direction motion information in the fourth motion information in the second reference image as the search center point of the second prediction direction motion information in the second motion information, and performs motion information search within the preset search range of the first reference image and the second reference image, and determines the bilateral matching cost of each pair of bilateral motion information searched, wherein each pair of motion information includes a first prediction direction motion information and a second prediction direction motion information; and then determines the second motion information from the multiple pairs of bilateral motion information searched based on the bilateral matching cost.
- the decoding end may combine n possible MVs corresponding to the first reference image side with n possible MVs corresponding to the second reference image side in pairs to obtain n 2 pairs of bilateral motion information.
- the MVs of the two reference images are moved in a mirror image, that is, MVdiff is moved on one side and -MVdiff is moved on the other side based on the MVs corresponding to the respective search center points.
- n pairs of bilateral motion information can be obtained.
- the embodiment of the present application does not limit the specific method of determining the bilateral matching cost between bilateral motion information.
- the i-th pair of bilateral motion information includes first prediction direction motion information (for example, first prediction direction motion vector MV0) and second prediction direction motion information (for example, second prediction direction motion vector MV1). Since MV0 and MV1 are both vectors, the distance between MV0 and MV1 can be determined based on the vector distance, and then the distance can be determined as the bilateral matching cost corresponding to the i-th pair of bilateral motion information.
- first prediction direction motion information for example, first prediction direction motion vector MV0
- second prediction direction motion information for example, second prediction direction motion vector MV1
- the decoding end may determine a first prediction block in a first reference image based on the first prediction direction motion information in the i-th pair of bilateral motion information, and determine a second prediction block in a second reference image based on the second prediction direction motion information in the i-th pair of bilateral motion information; determine a matching cost of the first prediction block and the second prediction block; and determine a bilateral matching cost of the i-th pair of bilateral motion information based on the matching cost of the first prediction block and the second prediction block.
- the SAD cost of the first prediction block and the second prediction block is determined as the matching cost of the first prediction block and the second prediction block, and then the matching cost is determined as the bilateral matching cost of the i-th pair of bilateral motion information, or the matching cost is multiplied or divided by a preset coefficient to obtain the bilateral matching cost of the i-th pair of bilateral motion information.
- the decoding end can determine the bilateral matching cost of each pair of bilateral motion information among the multiple pairs of bilateral motion information searched, and then determine the pair of bilateral motion information with the smallest bilateral matching cost among the multiple pairs of bilateral motion information searched as the second motion information, and the obtained second motion information is the bilateral motion information.
- the position corresponding to the fourth motion information in the reference image is used as the search center point of the second motion information, and the specific process of searching for the second motion information in the reference image is introduced.
- Method 2 modify the cost in the second motion information search process through the fourth motion information.
- the above S102-C2 includes the following steps S102-C2-b1 to S102-C2-b4:
- the first cost of each candidate motion information can be searched and determined based on the current first motion information, and then the cost coefficient determined by the fourth motion information can be used to correct the first cost of the candidate motion information to obtain the second cost, and then based on the second cost of each candidate motion information, the second motion information can be selected from each candidate motion information.
- the decoding end first uses the position corresponding to the first motion information in the reference image as the search center point of the second motion information, performs motion information search in the reference image, and determines the first cost of each candidate motion information searched.
- the black square is the positioning point specified by the first motion information in the reference image, and the positioning point is used as the search center of the second motion information.
- the motion information at the position corresponding to the white square is recorded as the candidate motion information of the second motion information, and the first cost of each of these candidate motion information is determined.
- a cost coefficient corresponding to the candidate motion information is determined based on the candidate motion information and the fourth motion information. For example, the absolute value of the difference between the candidate motion information and the fourth motion information is determined as the cost coefficient corresponding to the candidate motion information. Alternatively, the sum of the absolute value of the difference between the candidate motion information and the fourth motion information and a preset value is determined as the cost coefficient corresponding to the candidate motion information.
- the first cost of the candidate motion information can be modified by the above-determined cost coefficient to obtain the second cost.
- the product of the cost coefficient and the first cost of the candidate motion information is determined as the second cost of the candidate motion information.
- the specific process of determining the search range of the second motion information is basically the same.
- the decoding end first uses the position corresponding to the first motion information in the reference image as the search center point of the second motion information, performs motion information search within a preset search range of the reference image, and determines the first cost of each candidate motion information searched.
- the first cost of each candidate motion information can be represented by the matching cost of the motion information of the template at the location of the candidate motion information and the motion information of the template of the current block.
- the cost coefficient corresponding to each candidate motion information is determined.
- the absolute value of the difference between the candidate motion information and the fourth motion information is determined as the cost coefficient corresponding to the candidate motion information.
- the absolute value of the difference between the candidate motion information and the fourth motion information is added to the preset value.
- the value is determined as the cost coefficient corresponding to the candidate motion information.
- the first cost is modified based on the cost coefficient corresponding to the candidate motion information to obtain the second cost of the candidate motion information.
- the product of the cost coefficient and the first cost of the candidate motion information is determined as the second cost of the candidate motion information.
- the second costs of the multiple candidate motion information searched can be determined, and then the candidate motion information with the smallest second cost among the multiple candidate motion information is determined as the second motion information, and the second motion information is unidirectional motion information.
- the current block includes a first reference image and a second reference image
- the first motion information, the second motion information, the fourth motion information and the candidate motion information all include first prediction direction motion information and second prediction direction motion information.
- the decoding end when searching, uses the position corresponding to the first prediction direction motion information in the first motion information in the first reference image as the search center point of the first prediction direction motion information in the second motion information, and can search for n possible MVs on the first reference image side, and uses the position corresponding to the second prediction direction motion information in the first motion information in the second reference image as the search center point of the second prediction direction motion information in the second motion information, and can search for n possible MVs on the second reference image side.
- the n possible MVs on both sides are combined in pairs to obtain n 2 pairs of bilateral motion information, and then obtain n 2 candidate motion information, each of which is bilateral motion information.
- the position corresponding to the first predicted direction motion information in the first motion information in the first reference image is used as the search center point of the first predicted direction motion information in the second motion information
- the position corresponding to the second predicted direction motion information in the first motion information in the second reference image is used as the search center point of the second predicted direction motion information in the second motion information.
- the first cost of the candidate motion information is determined, and the first cost may be a bilateral matching cost.
- the process of determining the first cost of each candidate motion information is the same, and one candidate motion information is used as an example for explanation.
- the candidate motion information includes first prediction direction motion information (e.g., first prediction direction motion vector MV0) and second prediction direction motion information (e.g., second prediction direction motion vector MV1). Since MV0 and MV1 are both vectors, the distance between MV0 and MV1 can be determined based on the vector distance, and then the distance can be determined as the first cost of the candidate motion information.
- first prediction direction motion information e.g., first prediction direction motion vector MV0
- second prediction direction motion information e.g., second prediction direction motion vector MV1
- the decoding end may determine a first prediction block in a first reference image based on the first prediction direction motion information in the candidate motion information, and determine a second prediction block in a second reference image based on the second prediction direction motion information in the candidate motion information; determine the matching cost of the first prediction block and the second prediction block; and determine the first cost of the candidate motion information based on the matching cost of the first prediction block and the second prediction block.
- the SAD cost of the first prediction block and the second prediction block is determined as the matching cost of the first prediction block and the second prediction block, and then the matching cost is determined as the first cost of the candidate motion information, or the matching cost is multiplied or divided by a preset coefficient to obtain the first cost of the candidate motion information.
- a cost coefficient corresponding to the candidate motion information is determined.
- the second method does not change the search range of the second motion information, but is more inclined to select candidate motion information close to the fourth motion information, and then the first cost of each candidate motion information can be multiplied by a coefficient. For example, a smaller cost coefficient can be set for the candidate motion information close to the fourth motion information, and a larger cost coefficient can be set for the candidate motion information far from the fourth motion information.
- the corresponding cost coefficient may be one or two.
- the absolute value of the difference between the first prediction direction motion information in the candidate motion information and the first prediction direction motion information in the fourth motion information can be determined, recorded as difference 1
- the absolute value of the difference between the second prediction direction motion information in the candidate motion information and the second prediction direction motion information in the fourth motion information can be determined, recorded as difference 2.
- difference 3 is determined, for example, the sum of difference 1 and difference 2, or the average value, is used to determine difference 3.
- the candidate motion information corresponds to a cost coefficient
- the difference 3 is determined as the cost coefficient corresponding to the candidate motion information, or the sum of difference 3 and a preset value is determined as the cost coefficient corresponding to the candidate motion information.
- a cost coefficient determined and the above-mentioned first cost can be used to determine the second cost of the candidate motion information, for example, the product of the first cost of the candidate motion information and a cost coefficient corresponding to the candidate motion information is determined as the second cost of the candidate motion information.
- the above S102-C2-b2 includes the following steps:
- the decoding end determines the first cost coefficient corresponding to the first predicted direction motion information in the candidate motion information based on the first predicted direction motion information in the candidate motion information and the first predicted direction motion information in the fourth motion information, and determines the second cost coefficient corresponding to the second predicted direction motion information in the candidate motion information based on the second predicted direction motion information in the candidate motion information and the second predicted direction motion information in the fourth motion information.
- the process of determining the first cost coefficient and the process of determining the second cost coefficient at the decoding end are basically the same.
- the absolute value of the difference between the first prediction direction motion information in the candidate motion information and the first prediction direction motion information in the fourth motion information is determined as the first cost coefficient corresponding to the first prediction direction motion information in the candidate motion information.
- An absolute value of a difference between the second predicted direction motion information and the second predicted direction motion information in the fourth motion information is determined as a second cost coefficient corresponding to the second predicted direction motion information in the candidate motion information.
- the absolute value of the difference between the i-th predicted direction motion information in the candidate motion information and the i-th predicted direction motion information in the fourth motion information is determined, i being one or two; based on the absolute value of the difference, the i-th cost coefficient is determined, wherein the i-th cost coefficient is negatively correlated with the absolute value of the difference. That is, the absolute value 1 of the difference between the first predicted direction motion information in the candidate motion information and the first predicted direction motion information in the fourth motion information is determined, and based on the absolute value 1 of the difference, the first cost coefficient is determined, and the first cost coefficient is negatively correlated with the absolute value 1 of the difference, i.e., the larger the distance 1 is, the smaller the first cost coefficient is.
- the absolute value 2 of the difference between the second predicted direction motion information in the candidate motion information and the second predicted direction motion information in the fourth motion information is determined, and based on the absolute value 2 of the difference, the second cost coefficient is determined, and the second cost coefficient is negatively correlated with the absolute value 2 of the difference, i.e., the larger the absolute value 2 of the difference is, the smaller the second cost coefficient is.
- the embodiment of the present application does not limit the specific method of determining the i-th cost coefficient based on the absolute value of the difference.
- the absolute value of the difference is determined as the i-th cost coefficient. That is, the absolute value 1 of the difference between the first predicted direction motion information in the candidate motion information and the first predicted direction motion information in the fourth motion information is used to determine the first cost coefficient, and the absolute value 2 of the difference between the second predicted direction motion information in the candidate motion information and the second predicted direction motion information in the fourth motion information is used to determine the second cost coefficient.
- the absolute value of the difference and the minimum value in the first preset value are determined; based on the minimum value, the i-th cost coefficient is determined. That is, the absolute value 1 of the difference between the first predicted direction motion information in the candidate motion information and the first predicted direction motion information in the fourth motion information is compared with the first preset value, and the absolute value 1 of the difference and the minimum value 1 in the first preset value are determined, and then the first cost coefficient is determined based on the minimum value 2.
- the absolute value 2 of the difference between the second predicted direction motion information in the candidate motion information and the second predicted direction motion information in the fourth motion information is compared with the first preset value, and the absolute value 2 of the difference and the minimum value 2 in the first preset value are determined, and then the second cost coefficient is determined based on the minimum value 2.
- the embodiment of the present application does not limit the specific value of the first preset value.
- the first preset value is a value greater than 0.
- the first preset value is 4.
- the embodiment of the present application does not limit the specific method of determining the i-th cost coefficient based on the minimum value.
- the minimum value is determined as the i-th cost coefficient.
- the minimum value 1 is determined as the first cost coefficient, and the minimum value 2 is determined as the second cost coefficient.
- the sum of the minimum value and the second preset value is determined as the i-th cost coefficient.
- the sum of the minimum value 1 and the second preset value is determined as the first cost coefficient, and the sum of the minimum value 2 and the second preset value is determined as the second cost coefficient.
- coef_0 is the first cost coefficient of the candidate motion information
- coef_0 is the second cost coefficient of the candidate motion information
- mv_0_x and mv_0_y are the first predicted direction motion information (i.e., the first predicted direction motion vector) in the candidate motion information
- mv_1_x and mv_1_y are the second predicted direction motion information (i.e., the second predicted direction motion vector) in the candidate motion information.
- mv_0_c_x and mv_0_c_y are the first predicted direction motion information (i.e., the first predicted direction motion vector) in the fourth motion information
- mv_0_c_x and mv_0_c_y are the second predicted direction motion information (i.e., the second predicted direction motion vector) in the fourth motion information.
- a is the first preset value
- b is the second preset value
- min() is the operation of taking the minimum value.
- the division in the above formula (21) can also be replaced by right shift.
- the embodiment of the present application does not limit the specific values of the first preset value a and the second preset value b.
- the first preset value a is 4.
- the second preset value b is 32.
- the first cost of the candidate motion information is corrected based on the first cost coefficient and the second cost coefficient to obtain the second cost of the candidate motion information.
- the embodiment of the present application does not limit the specific manner in which the decoding end corrects the first cost of the candidate motion information based on the first cost coefficient and the second cost coefficient to obtain the second cost of the candidate motion information.
- the first cost coefficient and the second cost coefficient are added together and then multiplied with the first cost of the candidate motion information to obtain the second cost of the candidate motion information.
- the first cost of the candidate motion information is multiplied by the first cost coefficient and the second cost coefficient to obtain the second cost of the candidate motion information.
- SAD_c is the second cost of the candidate motion information
- SAD is the first cost of the candidate motion information
- coef_0 is the first cost coefficient of the candidate motion information
- coef_1 is the second cost coefficient of the candidate motion information.
- the decoding end can obtain the second cost of each of the multiple candidate motion information searched, and the second cost is a cost corrected based on the motion information of the reference image, and its accuracy is higher than the first cost. Then, based on the second cost of each of the multiple candidate motion information, the second motion information of the current block is determined from the multiple candidate motion information. For example, the candidate motion information with the smallest second cost among the multiple candidate motion information searched is determined as the second motion information, so as to achieve accurate determination of the second motion information, thereby improving the prediction accuracy of the current block and improving the decoding effect of the decoding end.
- the above embodiments all take the current block as a whole block and introduce the process of improving the first motion information of the entire current block as a whole block.
- the method of the above embodiments is also used for sub-block-based processing, for example, the current block is divided into multiple sub-blocks, and the first motion information of each sub-block is improved separately in the same way as the first motion information of the current block, so as to obtain the second motion information of each sub-block, and then based on the second motion information of each sub-block, the predicted value of each sub-block is obtained, and the predicted value of each sub-block constitutes the predicted value of the current block.
- the above embodiment introduces the specific process of obtaining the second motion information by improving the first motion information at the decoding end in case 1 when the motion information of the reference image is used to directly participate in improving the first motion information.
- Case 2 The motion information of the reference image in the embodiment of the present application can be used to guide the division method of the related blocks in the process of improving the first motion information.
- the above S102 includes the following steps S102-D to S102-F:
- the reference block of the current block is determined, and the motion information of the reference block is obtained.
- the motion vector of the gray area in the upper right corner of the reference block is significantly different from that of other areas.
- a threshold can be set, and the difference between the two motion vectors is considered to be significantly different when it exceeds the threshold. Since the current block has a strong correlation with the reference block, the motion vector of the upper left corner area of the current block is also significantly different from that of other areas. If the current block is improved as a whole, the improvement effect is not obvious.
- the current block when improving the first motion information of the current block, based on the motion information of the reference image block, the current block is divided into at least one sub-block, and the motion information is improved separately for each sub-block.
- This not only reduces the hardware implementation cost, but also provides better flexibility when divided into sub-blocks for improvement.
- the MV can be improved independently for each sub-block, which achieves the effect of improving the accuracy of motion information improvement to a certain extent.
- the decoding end indicates the division of the current block based on the motion information of the reference image.
- the embodiment of the present application does not limit the specific manner in which the decoding end divides the current block into at least one sub-block based on the motion information of the reference image.
- the decoding end first determines the reference block corresponding to the current block in the reference image, and then randomly samples the motion information of several points in the reference block, and then compares the motion information of these points, and divides the points of motion information in these points into a sub-block, and then divides the reference block into at least one sub-block. Then, the decoding end determines the sub-blocks corresponding to each sub-block in the reference block in the current block, and then divides the current block into at least one sub-block.
- the above S102-D includes the following steps S102-D1 to S102-D4:
- S102-D3 classify the acquired motion information of the M sub-blocks to obtain P classification results, where P is a positive integer less than or equal to M;
- the decoding end first determines the reference block of the current block in the reference image based on the first motion information of the current block, and then pre-divides the current block into M sub-blocks, and the sizes of the M sub-blocks can be the same or different. For example, when the M sub-blocks are all 16X16, or 8X8, or 4X4, or when the width and height of the current block are both 2N, the current block can be divided into 4NxN sub-blocks, or when the size of the current block is Nx2N or 2N XN, the current block can be divided into 2NxN sub-blocks. Then, the M sub-blocks corresponding to the M sub-blocks in the reference block in the current block are determined.
- the decoding end can obtain the motion information of the M sub-blocks corresponding to the M sub-blocks of the current block in the reference block.
- the correlation between the current block and the reference block is strong, so the decoding end clusters the motion information of the M sub-blocks in the reference block to obtain P classification results, and then divides the current block into at least one sub-block based on the P classification results.
- the current block is divided into P sub-blocks, one of which corresponds to one classification result.
- the decoding end divides the current block into at least one sub-block, and then improves each sub-block in the at least one sub-block separately.
- the improvement process of each sub-block is basically the same.
- the i-th sub-block is taken as an example for explanation.
- the embodiment of the present application improves the first motion information of the i-th sub-block, and the specific method of obtaining the second motion information of the i-th sub-block is not limited.
- the decoding end adopts the above-mentioned DMVR and/or BDOF and other methods to improve the first motion information of the i-th sub-block to obtain the second motion information of the i-th sub-block.
- the decoding end improves the first motion information of the i-th sub-block by using the motion information of the reference image. Specifically, the decoding end determines the reference block corresponding to the i-th sub-block in the reference image based on the first motion information of the i-th sub-block; determines the time domain motion information of the i-th sub-block as the third motion information corresponding to the i-th sub-block based on the motion information of the reference block of the i-th sub-block; improves the first motion information of the i-th sub-block based on the third motion information to obtain the second motion information of the i-th sub-block.
- the specific process of this implementation can refer to the specific description of improving the first motion information of the current block in the above situation 1, and it only needs to replace the above current block with the i-th sub-block, which will not be repeated here.
- the decoding end may determine the second motion information of each sub-block in the current block based on the above steps, and further determine the second motion information of the current block based on the second motion information of at least one sub-block.
- the second motion information of the at least one sub-block is determined as the second motion information of the current block.
- the second motion information of the current block includes the second motion information of each sub-block in the at least one sub-block.
- the prediction value of each sub-block in the at least one sub-block can be determined based on the second motion information of the at least one sub-block, and then the prediction value of the at least one sub-block constitutes the prediction value of the current block.
- the average value of the second motion information of the at least one sub-block is determined as the second motion information of the current block.
- the second motion information of the current block includes the motion information of a whole block.
- the above embodiment introduces the process of improving the motion information of each sub-block in the current block separately.
- the decoding end when the decoding end improves the first motion information of the current block, it may perform multiple improvements.
- the above S102 includes the following steps S102-G:
- S102-G Based on the motion information of the reference image of the current block, perform N rounds of improvement on the first motion information to obtain second motion information, where N is a positive integer greater than 1.
- the embodiment of the present application does not limit the specific improvement methods used in these N rounds of improvements.
- the specific improvement methods used in the N rounds of improvement are all different.
- the blocks of the previous round are divided in the next round of improvement.
- the decoding end improves the first motion information of the current block based on the motion vector improvement method of the bidirectional matching of the whole block.
- the current block is divided into at least one sub-block, and the motion information of each sub-block of the current block after the first round of improvement is improved based on the motion vector improvement of the bidirectional matching of the sub-block.
- the size of the sub-block in the second round can be 16x16.
- the sub-block of the second round is divided into at least one sub-block, and the motion information after the second round of improvement is improved based on the motion vector improvement of the bidirectional optical flow of the sub-block.
- the size of the sub-block in this round can be 8x8.
- further steps can be enriched on this basis, such as a fourth round of improvement, for example, based on the motion vector improvement of the bidirectional optical flow of the 4x4 sub-block, to improve the motion information after the third round of improvement.
- further improvement can be performed by using improvement methods such as motion vector improvement based on the bidirectional optical flow of the point. Multiple rounds of improvement optimize the motion vector from top to bottom in multiple layers.
- at least one round of sub-block division is performed based on the motion information of the reference image.
- the specific division process can refer to the relevant description of S102-D above, thereby improving the rationality and accuracy of the sub-block division.
- the above S102-G includes the following steps S102-G1 to S102-G4:
- S102-G4 improve the motion information of each sub-block in at least one sub-block corresponding to the j+1th round, repeat N rounds, and obtain second motion information.
- the decoding end first performs a first round of improvement on the first motion information of the current block to obtain the first round of improved motion information 1 corresponding to the current block. Then, based on the motion information of the reference image, the current block is divided into blocks to obtain at least one sub-block 2 corresponding to the second round. The motion information of each sub-block 2 in the at least one sub-block 2 corresponding to the second round is improved, and the motion information of the sub-block 2 is the motion information after the first round of improvement, thereby obtaining the improved motion information of the at least one sub-block 2 corresponding to the second round. Then, based on the motion information of the reference image, the sub-block 2 is divided into blocks to obtain at least one sub-block 3 corresponding to the third round.
- the motion information of each sub-block 3 in the at least one sub-block 3 corresponding to the third round is improved, and the motion information of the sub-block 3 is the motion information after the second round of improvement, thereby obtaining the improved motion information of the at least one sub-block 3 corresponding to the third round.
- the sub-block 3 is divided into blocks to obtain at least one sub-block 4 corresponding to the fourth round.
- the motion information of each sub-block 4 in the at least one sub-block 4 corresponding to the fourth round is improved.
- the motion information of the sub-block 4 is the motion information after the third round of improvement, and then the improved motion information of the at least one sub-block 4 corresponding to the fourth round is obtained.
- the second motion information of the current block is obtained.
- the method of dividing the current block or sub-block into blocks based on the motion information of the reference image is basically the same as the above S102-D.
- the decoding end first determines the reference block corresponding to the second block in the reference image, and the second block is the current block or the sub-block corresponding to the jth round. Then, the motion information of the M sub-blocks corresponding to the M sub-blocks of the second block in the reference block is obtained, where M is a positive integer greater than 1. Then, the obtained motion information of the M sub-blocks is classified to obtain P classification results, where P is a positive integer less than or equal to M.
- the second block is divided into at least one sub-block, for example, based on the sub-blocks corresponding to the P classification results, the second block is divided into P sub-blocks.
- S102-D the relevant description of S102-D above for details, which will not be repeated here.
- the decoding end improves the motion information of the sub-block, and the specific method of obtaining the improved motion information of the sub-block is not limited.
- the decoding end adopts the above-mentioned DMVR and/or BDOF and other methods to improve the motion information of the above-mentioned sub-blocks.
- the decoding end improves the motion information of the sub-block by using the motion information of the reference image. Specifically, the decoding end determines the reference block corresponding to the sub-block in the reference image based on the motion information of the sub-block; determines the temporal motion information of the sub-block as the third motion information corresponding to the sub-block based on the motion information of the reference block of the sub-block; improves the motion information of the sub-block based on the third motion information to obtain the improved motion information of the sub-block.
- the specific process of this implementation can refer to the specific description of improving the first motion information of the current block in the above situation 1, and it only needs to replace the above current block with the sub-block, which will not be repeated here.
- the above embodiment introduces the process of performing multiple improvements on the first motion information of the current block.
- the decoding end before the decoding end improves the first motion information based on the motion information of the reference image of the current block to obtain the second motion information of the current block, it first determines whether the current block meets the preset motion vector improvement condition based on the entire block. If it is determined that the current block meets the motion vector improvement condition based on the entire block, the first motion information is improved based on the motion information of the reference image of the current block to obtain the second motion information of the current block.
- the method of the embodiment of the present application includes the following steps:
- Step 1 Based on the motion information of the reference image, the current block is divided into blocks to obtain a plurality of first sub-blocks;
- Step 2 for any first sub-block of the plurality of first sub-blocks, determining whether the first sub-block satisfies a motion vector improvement condition based on the entire block;
- Step 3 if the first sub-block does not meet the motion vector improvement condition based on the entire block, the first sub-block is divided into blocks based on the motion information of the reference image to obtain a plurality of second sub-blocks;
- Step 4 for any second sub-block among the multiple second sub-blocks, determine whether the second sub-block satisfies the motion vector improvement condition based on the entire block, and repeat the process until the divided sub-block satisfies the motion vector improvement condition based on the entire block, or the size of the divided sub-block satisfies the preset size.
- the decoding end when the decoding end determines that the current block does not meet the motion vector improvement condition based on the entire block, it divides the current block layer by layer until the sub-blocks after division meet the motion vector improvement condition based on the entire block, or when the sub-blocks after division do not meet the motion vector improvement condition based on the entire block, but the size of the sub-blocks after division meets the preset size, the sub-block division is stopped.
- the embodiment of the present application does not limit the specific content of the above-mentioned motion vector improvement condition based on the entire block.
- the whole-block-based motion vector improvement condition may be that the size of the block satisfies a preset threshold size, and the preset threshold may be 8X8 or 4X4, etc.
- the current block is divided into blocks to obtain multiple first sub-blocks.
- the size of the first sub-block is 8X8, the size of the first sub-block does not meet the motion vector improvement condition based on the entire block. Then, based on the motion information of the reference image, the first sub-block is divided into blocks to obtain multiple second sub-blocks.
- the second sub-block meets the motion vector improvement condition based on the entire block, and then based on the motion information of the reference image, the first motion information of each second sub-block is improved to obtain the second motion information of each second sub-block.
- the decoder determines whether the current block or the first sub-block or the second sub-block satisfies the motion vector improvement condition based on the entire block through the following steps a to d:
- Step a determining a reference block corresponding to the first block in the reference image, the first block being the current block or the first sub-block or the second sub-block;
- Step b obtaining motion information of M sub-blocks corresponding to the M sub-blocks of the first block in the reference block, where M is a positive integer greater than 1;
- Step c classifying the acquired motion information of the M sub-blocks to obtain P classification results, where P is a positive integer less than or equal to M;
- Step d Based on the P classification results, determine whether the first block meets the motion vector improvement condition based on the entire block.
- the specific method for the decoding end to determine whether the current block or the first sub-block or the second sub-block meets the motion vector improvement condition based on the entire block is basically the same.
- the first block is used to replace the current block or the first sub-block or the second sub-block.
- the decoding end first determines the reference block corresponding to the first block in the reference image, then divides the first block into M sub-blocks, and obtains the motion information of the M sub-blocks corresponding to the M sub-blocks of the first block in the reference block. Then, the obtained motion information of the M sub-blocks is classified to obtain P types of classification results.
- the specific implementation process of the above steps a to c can refer to the specific description of S102-D1 to S102-D3 above. It only needs to replace the current block in S102-D1 to S102-D3 with the first block, and P types of classification results corresponding to the first block can be obtained.
- P is equal to 1
- P is greater than 1, it means that the motion information of the M sub-blocks in the first block is not completely the same, and the first block needs to be divided, and then it is determined that the first block does not meet the motion vector improvement condition based on the entire block.
- the current block is divided into multiple first sub-blocks based on the motion information of the reference image, and through the above steps a to d, it is determined whether each first sub-block meets the motion vector improvement condition based on the whole block. If part of the first sub-blocks meet the motion vector improvement condition based on the whole block, the motion information of the part of the first sub-blocks is improved based on the motion information of the reference image.
- each first sub-block in the part of the first sub-blocks is divided based on the motion information of the reference image to obtain multiple second sub-blocks. Then, through the above steps a to d, it is determined whether each second sub-block in the multiple second sub-blocks meets the motion vector improvement condition based on the whole block, and for the second sub-block that meets the condition, the motion information of the second sub-block is improved based on the motion information of the reference image.
- the second sub-blocks that do not meet the condition are continued to be divided, and the above steps are repeated until all sub-blocks meet the motion vector improvement condition based on the whole block.
- a motion vector improvement method based on bidirectional optical flow of the sub-block is used by default to improve the motion information of the sub-block.
- the process of dividing the current block or the first sub-block or the second sub-block by the decoding end based on the motion information of the reference image is basically the same as the above S102-D.
- the decoding end first determines the reference block corresponding to the second block in the reference image, and the second block is the current block or the first sub-block or the second sub-block.
- the motion information of the M sub-blocks corresponding to the M sub-blocks of the second block in the reference block is obtained, where M is a positive integer greater than 1.
- the obtained motion information of the M sub-blocks is classified to obtain P classification results, where P is a positive integer less than or equal to M.
- the second block is divided into at least one sub-block, for example, based on the sub-blocks corresponding to the P classification results, the second block is divided into P sub-blocks.
- S102-D the relevant description of S102-D above for details, which will not be repeated here.
- the above embodiment combines Case 1 and Case 2 to introduce the process of using the motion information of the reference image at the decoding end to improve the first motion information of the current block, and the process of using the motion information of the reference image to guide block division.
- the decoding end After obtaining the second motion information of the current block based on the above steps, the decoding end performs the following step S103.
- the decoding end takes into account the motion information of the reference image when improving the first motion information of the current block, thereby achieving effective improvement of the first motion information of the current block and obtaining accurate second motion information.
- the prediction accuracy of the current block can be improved, thereby improving the decoding performance of the video.
- the second motion information includes a motion vector in one direction, and based on the motion vector, a prediction block of the current block is determined in a reference image of the current block to obtain a prediction value of the current block.
- the current block if the current block adopts bidirectional prediction, the current block includes a first reference image and a second reference image, and the second motion information includes a first prediction direction motion vector and a second prediction direction motion vector.
- the decoding end determines prediction block 1 in the first reference image based on the first prediction direction motion vector in the second motion information, and determines prediction block 2 in the second reference image based on the second prediction direction motion vector in the second motion information, and then obtains the prediction value of the current block based on prediction block 1 and prediction block 2.
- the average value or weighted average value of prediction block 1 and prediction block 2 is determined as the prediction value of the current block.
- the decoding end when decoding the current block, the decoding end first determines the first motion information of the current block, and then improves the first motion information based on the motion information of the reference image of the current block to obtain the second motion information. That is to say, in the embodiment of the present application, when improving the first motion information, the motion information of the reference image is taken into account to achieve effective improvement of the first motion information and obtain accurate second motion information. Then, when determining the prediction value of the current block based on the accurate second motion information, the prediction accuracy of the current block can be improved, thereby improving the decoding performance of the video.
- Figures 14 to 20 are merely examples of the present application and should not be construed as limitations to the present application.
- the size of the sequence number of each process does not mean the order of execution, and the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.
- the term "and/or” is merely a description of the association relationship of associated objects, indicating that three relationships may exist. Specifically, A and/or B can represent: A exists alone, A and B exist at the same time, and B exists alone.
- the character "/" in the present application generally indicates that the associated objects before and after are in an "or" relationship.
- FIG. 21 is a schematic block diagram of a video decoding device provided in an embodiment of the present application.
- the video decoding device 10 is applied to the above-mentioned video decoder.
- the video decoding device 10 includes:
- a determination unit 11 configured to determine first motion information of a current block
- An improving unit 12 configured to improve the first motion information based on the motion information of the reference image of the current block to obtain second motion information of the current block;
- the prediction unit 13 is configured to determine a prediction value of the current block based on the second motion information.
- the improvement unit 12 is specifically used to determine, in the reference image, a reference block corresponding to the current block based on the first motion information; determine, based on the motion information of the reference block, the time domain motion information of the current block as the third motion information; and improve the first motion information based on the third motion information to obtain the second motion information.
- the improving unit 12 is specifically configured to determine fourth motion information based on the third motion information and the first motion information; and determine the second motion information based on the fourth motion information.
- the improving unit 12 is specifically configured to determine an average value of the third motion information and the first motion information as the determined fourth motion information.
- the improvement unit 12 is specifically used to determine the weights corresponding to the third motion information and the first motion information; based on the weights, determine the weighted average of the third motion information and the first motion information; and determine the weighted average as the determined fourth motion information.
- the weight of the first motion information is greater than the weight of the third motion information.
- the improving unit 12 is specifically configured to use a position corresponding to the fourth motion information in the reference image as a search center point for the second motion information, and search the reference image to obtain the second motion information.
- the reference image includes a first reference image and a second reference image
- the second motion information and the fourth motion information both include first predicted direction motion information and second predicted direction motion information
- the improvement unit 12 is specifically used to use the position corresponding to the first predicted direction motion information in the fourth motion information in the first reference image as the search center point of the first predicted direction motion information in the second motion information, and use the position corresponding to the second predicted direction motion information in the fourth motion information in the second reference image as the search center point of the second predicted direction motion information in the second motion information, perform motion information search within a preset search range of the first reference image and the second reference image, determine the bilateral matching cost of each pair of bilateral motion information searched, each pair of bilateral motion information including a first predicted direction motion information and a second predicted direction motion information; and determine the second motion information from the multiple pairs of bilateral motion information searched based on the bilateral matching cost.
- the improvement unit 12 is specifically used to determine, for the i-th pair of bilateral motion information searched, a first prediction block in the first reference image based on the first prediction direction motion information in the i-th pair of bilateral motion information, and a second prediction block in the second reference image based on the second prediction direction motion information in the i-th pair of bilateral motion information, where i is a positive integer; determine a matching cost between the first prediction block and the second prediction block; and determine the bilateral matching cost of the i-th pair of bilateral motion information based on the matching cost between the first prediction block and the second prediction block.
- the improving unit 12 is specifically configured to determine a pair of bilateral motion information with the minimum bilateral matching cost among the searched multiple pairs of bilateral motion information as the second motion information.
- the improvement unit 12 is specifically used to use the position corresponding to the first motion information in the reference image as the search center point of the second motion information, perform motion information search in the reference image, and determine the first cost of each candidate motion information searched; determine the cost coefficient corresponding to the candidate motion information based on the candidate motion information and the fourth motion information; correct the first cost based on the cost coefficient corresponding to the candidate motion information to obtain the second cost of the candidate motion information; and determine the second motion information based on the second costs of the multiple candidate motion information searched.
- the reference image includes a first reference image and a second reference image
- the first motion information, the second motion information, the fourth motion information and the candidate motion information all include first predicted direction motion information and second predicted direction motion information
- the improvement unit 12 is specifically used to use the position corresponding to the first predicted direction motion information in the first motion information in the first reference image as the search center point of the first predicted direction motion information in the second motion information, and use the position corresponding to the second predicted direction motion information in the first motion information in the second reference image as the search center point of the second predicted direction motion information in the second motion information, perform motion information search within a preset search range of the first reference image and the second reference image, and determine the first cost of each candidate motion information searched.
- the improvement unit 12 is specifically used to determine the first cost coefficient corresponding to the first predicted direction motion information in the candidate motion information based on the first predicted direction motion information in the candidate motion information and the first predicted direction motion information in the fourth motion information; and determine the second cost coefficient corresponding to the second predicted direction motion information in the candidate motion information based on the second predicted direction motion information in the candidate motion information and the second predicted direction motion information in the fourth motion information.
- the improvement unit 12 is specifically used to determine the absolute value of the difference between the i-th predicted direction motion information in the candidate motion information and the i-th predicted direction motion information in the fourth motion information, where i is one or two; based on the absolute value of the difference, determine the i-th cost coefficient, wherein the i-th cost coefficient is negatively correlated with the absolute value of the difference.
- the improving unit 12 is specifically configured to determine a minimum value between the absolute value of the difference and a first preset value; and determine the i-th cost coefficient based on the minimum value.
- the improving unit 12 is specifically configured to determine the sum of the minimum value and the second preset value as the i-th cost coefficient.
- the improving unit 12 is specifically configured to modify the first cost of the candidate motion information based on the first cost coefficient and the second cost coefficient to obtain the second cost of the candidate motion information.
- the improving unit 12 is specifically configured to multiply the first cost with the first cost coefficient and the second cost coefficient to obtain the second cost of the candidate motion information.
- the improving unit 12 is specifically configured to determine the candidate motion information with the smallest second cost among the searched multiple candidate motion information as the second motion information.
- the improvement unit 12 before improving the first motion information based on the third motion information to obtain the second motion information, further determines the difference value between the first motion information and the third motion information; if the difference value is less than or equal to a preset threshold, the first motion information is improved based on the third motion information to obtain the second motion information.
- the improvement unit 12 is specifically used to divide the current block into at least one sub-block based on the motion information of the reference image; for the i-th sub-block in the at least one sub-block, improve the first motion information of the i-th sub-block to obtain the second motion information of the i-th sub-block, where i is a positive integer; and obtain the second motion information of the current block based on the second motion information of the N sub-blocks.
- the improvement unit 12 is specifically used to determine, in the reference image, a reference block corresponding to the ith sub-block based on the first motion information of the ith sub-block; determine third motion information of the ith sub-block moving from the current image to the reference image according to the motion information of the reference block of the ith sub-block; and improve the first motion information of the ith sub-block based on the third motion information to obtain second motion information of the ith sub-block.
- the improving unit 12 is specifically configured to perform N rounds of improvement on the first motion information based on the motion information of the reference image of the current block to obtain the second motion information, where N is a positive integer greater than 1.
- the improvement unit 12 is specifically used to improve the motion information of each sub-block in the at least one sub-block corresponding to the j-th round to obtain the improved motion information of the at least one sub-block corresponding to the j-th round, and if the j is equal to 1, the sub-block corresponding to the j-th round is the current block; based on the motion information of the reference image, each sub-block in the at least one sub-block corresponding to the j-th round is divided into blocks to obtain at least one sub-block corresponding to the j+1-th round; the motion information of each sub-block in the at least one sub-block corresponding to the j+1-th round is improved, and N rounds are repeated to obtain the second motion information.
- the improvement unit 12 is further used to determine whether the current block satisfies a preset whole-block-based motion vector improvement condition before improving the first motion information based on the motion information of the reference image of the current block to obtain the second motion information of the current block; if the current block satisfies the whole-block-based motion vector improvement condition, the first motion information is improved based on the motion information of the reference image of the current block to obtain the second motion information of the current block.
- the improvement unit 12 is further used to divide the current block into blocks based on the motion information of the reference image to obtain multiple first sub-blocks; for any first sub-block of the multiple first sub-blocks, determine whether the first sub-block meets the whole-block-based motion vector improvement condition; if the first sub-block does not meet the whole-block-based motion vector improvement condition, divide the first sub-block into blocks based on the motion information of the reference image to obtain multiple second sub-blocks; for any second sub-block of the multiple second sub-blocks, determine whether the second sub-block meets the whole-block-based motion vector improvement condition, and repeat the execution until the divided sub-blocks meet the whole-block-based motion vector improvement condition, or the size of the divided sub-blocks meets the preset size.
- the improvement unit 12 is specifically used to determine a reference block corresponding to the first block in the reference image, where the first block is the current block or the first sub-block or the second sub-block; obtain motion information of M sub-blocks corresponding to M sub-blocks of the first block in the reference block, where M is a positive integer greater than 1; classify the obtained motion information of the M sub-blocks to obtain P classification results, where P is a positive integer less than or equal to M; based on the P classification results, determine whether the first block meets the whole-block-based motion vector improvement condition.
- the improvement unit 12 is specifically configured to determine that the first block satisfies the whole-block-based motion vector improvement condition if P is equal to 1; and determine that the first block does not satisfy the whole-block-based motion vector improvement condition if P is greater than 1.
- the improvement unit 12 is specifically used to determine a reference block corresponding to the second block in the reference image, where the second block is any one of the current block, the first sub-block, the second sub-block, and the sub-block corresponding to the jth round; obtain motion information of M sub-blocks of the second block corresponding to M sub-blocks in the reference block, where M is a positive integer greater than 1; classify the acquired motion information of the M sub-blocks to obtain P classification results, where P is a positive integer less than or equal to M; and divide the second block into at least one sub-block based on the P classification results.
- the improving unit 12 is specifically configured to divide the second block into P sub-blocks based on the sub-blocks corresponding to the P classification results.
- the device embodiment and the method embodiment may correspond to each other, and similar descriptions may refer to the method embodiment. To avoid repetition, no further description is given here.
- the device 10 shown in FIG. 21 can perform the decoding method of the decoding end of the embodiment of the present application, and the aforementioned and other operations and/or functions of each unit in the device 10 are respectively for implementing the corresponding processes in each method such as the decoding method of the above-mentioned decoding end, and for the sake of brevity, no further description is given here.
- the functional unit can be implemented in hardware form, can be implemented by instructions in software form, and can also be implemented by a combination of hardware and software units.
- the steps of the method embodiment in the embodiment of the present application can be completed by the hardware integrated logic circuit and/or software form instructions in the processor, and the steps of the method disclosed in the embodiment of the present application can be directly embodied as a hardware decoding processor to perform, or a combination of hardware and software units in the decoding processor to perform.
- the software unit can be located in a mature storage medium in the field such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory, an electrically erasable programmable memory, a register, etc.
- the storage medium is located in a memory, and the processor reads the information in the memory, and completes the steps in the above method embodiment in conjunction with its hardware.
- FIG. 22 is a schematic block diagram of an electronic device provided in an embodiment of the present application.
- the electronic device 30 may be a video decoder as described in an embodiment of the present application, and the electronic device 30 may include:
- the memory 33 and the processor 32, the memory 33 is used to store the computer program 34 and transmit the program code 34 to the processor 32.
- the processor 32 can call and run the computer program 34 from the memory 33 to implement the method in the embodiment of the present application.
- the processor 32 may be configured to execute the steps in the above method 200 according to the instructions in the computer program 34 .
- the processor 32 may include but is not limited to:
- DSP digital signal processor
- ASIC application-specific integrated circuit
- FPGA field programmable gate array
- the memory 33 includes but is not limited to:
- Non-volatile memory can be read-only memory (ROM), programmable ROM (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM) or flash memory.
- the volatile memory can be random access memory (RAM), which is used as an external cache.
- RAM random access memory
- SRAM static RAM
- DRAM dynamic RAM
- SDRAM synchronous DRAM
- DDR SDRAM double data rate synchronous dynamic random access memory
- ESDRAM enhanced synchronous dynamic random access memory
- SLDRAM synchronous link DRAM
- Direct Rambus RAM Direct Rambus RAM
- the computer program 34 may be divided into one or more units, which are stored in the memory 33 and executed by the processor 32 to complete the method provided by the present application.
- the one or more units may be a series of computer program instruction segments capable of completing specific functions, and the instruction segments are used to describe the execution process of the computer program 34 in the electronic device 30.
- the electronic device 30 may further include:
- the transceiver 33 may be connected to the processor 32 or the memory 33 .
- the processor 32 may control the transceiver 33 to communicate with other devices, specifically, to send information or data to other devices, or to receive information or data sent by other devices.
- the transceiver 33 may include a transmitter and a receiver.
- the transceiver 33 may further include an antenna, and the number of antennas may be one or more.
- bus system includes not only a data bus but also a power bus, a control bus and a status signal bus.
- the present application also provides a computer storage medium on which a computer program is stored, and when the computer program is executed by a computer, the computer can perform the method of the above method embodiment.
- the present application embodiment also provides a computer program product containing instructions, and when the instructions are executed by a computer, the computer can perform the method of the above method embodiment.
- the present application also provides a code stream, which is generated according to the above encoding method.
- the computer program product includes one or more computer instructions.
- the computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices.
- the computer instructions can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium.
- the computer instructions can be transmitted from a website site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (digital subscriber line, DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) mode to another website site, computer, server or data center.
- the computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more available media integrations.
- the available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a magnetic tape), an optical medium (e.g., a digital video disc (DVD)), or a semiconductor medium (e.g., a solid state disk (SSD)), etc.
- a magnetic medium e.g., a floppy disk, a hard disk, a magnetic tape
- an optical medium e.g., a digital video disc (DVD)
- DVD digital video disc
- SSD solid state disk
- the disclosed systems, devices and methods can be implemented in other ways.
- the device embodiments described above are only schematic.
- the division of the unit is only a logical function division.
- Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.
- each functional unit in each embodiment of the present application may be integrated into a processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
tmvp_x=col_mv_x*tb/td,tmvp_y=col_mv_y*tb/td (1)
MmvdOffset[x0][y0][0]=(MmvdDistance[x0][y0]<<2)*MmvdSign[x0][y0][0]
MmvdOffset[x0][y0][1]=(MmvdDistance[x0][y0]<<2)*MmvdSign[x0][y0][1] (2)
predBDOF(x,y)=(I(0)(x,y)+I(1)(x,y)+b(x,y)+ooffset)>>shift (9)
mv_t_x=-ref_mv_x*tb/td,mv_t_y=-ref_mv_y*tb/td (10)
mv_0_t_x=-ref_mv_0_x*tb0/td0,mv_0_t_y=-ref_mv_0_y*tb0/td0 (11)
mv_1_t_x=-ref_mv_1_x*tb1/td1,mv_1_t_y=-ref_mv_1_y*tb1/td1 (12)
mv_t’_x=ref_mv_x*tb/td,mv_t’_y=ref_mv_y*tb/td (13)
mv_0_t’_x=ref_mv_0_x*tb0/td0,mv_0_t’_y=ref_mv_0_y*tb0/td0 (14)
mv_1_t’_x=ref_mv_1_x*tb1/td1,mv_1_t_y=ref_mv_1_y*tb1/td1 (15)
diff=abs(mv_0_x-mv_0_t’_x)+abs(mv_0_y-mv_0_t’_y) (16)
mv_0_c_x=(mv_0_x+mv_0_t’_x)/2
mv_0_c_y=(mv_0_y+mv_0_t’_y)/2 (17)
mv_0_c_x=(mv_0_x+mv_0_t’_x)/2,mv_0_c_y=(mv_0_y+mv_0_t’_y)/2
mv_1_c_x=(mv_1_x+mv_1_t’_x)/2,mv_1_c_y=(mv_1_y+mv_1_t’_y)/2 (18)
mv_0_c_x=(a0*mv_0_x+b0*mv_0_t’_x)/2
mv_0_c_y=(a0*mv_0_y+b0*mv_0_t’_y)/2 (19)
mv_0_c_x=(3*mv_0_x+mv_0_t’_x)/8
mv_0_c_y=(3*mv_0_y+mv_0_t’_y)/8 (20)
mv_0_c_x=(a0*mv_0_x+b0*mv_0_t’_x)/2,mv_0_c_y=(a0*mv_0_y+b0*mv_0_t’_y)/2
mv_1_c_x=(a1*mv_1_x+b1*mv_1_t’_x)/2,mv_1_c_y=(a0*mv_1_y+b1*mv_1_t’_y)/2 (21)
coef_0=min(abs(mv_0_x-mv_0_c_x)+abs(mv_0_y-mv_0_c_y),a)+b
coef_1=min(abs(mv_1_x-mv_1_c_x)+abs(mv_1_y-mv_1_c_y),a)+b (211)
SAD_c=SAD*coef_0*coef_1 (23)
Claims (33)
- 一种视频解码方法,其特征在于,包括:确定当前块的第一运动信息;基于所述当前块的参考图像的运动信息,对所述第一运动信息进行改善,得到所述当前块的第二运动信息;基于所述第二运动信息,确定所述当前块的预测值。
- 根据权利要求1所述的方法,其特征在于,所述基于所述当前块的参考图像的运动信息,对所述第一运动信息进行改善,得到所述当前块的第二运动信息,包括:基于所述第一运动信息,在所述参考图像中确定所述当前块对应的参考块;基于所述参考块的运动信息,确定所述当前块的时域运动信息作为第三运动信息;基于所述第三运动信息对所述第一运动信息进行改善,得到所述第二运动信息。
- 根据权利要求2所述的方法,其特征在于,所述基于所述第三运动信息对所述第一运动信息进行改善,得到所述第二运动信息,包括:基于所述第三运动信息和所述第一运动信息,确定第四运动信息;基于所述第四运动信息,确定所述第二运动信息。
- 根据权利要求3所述的方法,其特征在于,所述基于所述第三运动信息和所述第一运动信息,确定第四运动信息,包括:将所述第三运动信息和所述第一运动信息的平均值,确定为所述确定第四运动信息。
- 根据权利要求3所述的方法,其特征在于,所述基于所述第三运动信息和所述第一运动信息,确定第四运动信息,包括:确定所述第三运动信息和所述第一运动信息对应的权重;基于所述权重,确定所述第三运动信息和所述第一运动信息的加权平均值;将所述加权平均值,确定为所述确定第四运动信息。
- 根据权利要求5所述的方法,其特征在于,所述第一运动信息的权重大于所述第三运动信息的权重。
- 根据权利要求3所述的方法,其特征在于,所述基于所述第四运动信息,确定所述第二运动信息,包括:以所述第四运动信息在所述参考图像中对应的位置为所述第二运动信息的搜索中心点,在所述参考图像中搜索得到所述第二运动信息。
- 根据权利要求7所述的方法,其特征在于,所述参考图像包括第一参考图像和第二参考图像,所述第二运动信息和所述第四运动信息均包括第一预测方向运动信息和第二预测方向运动信息,所述以所述第四运动信息在所述参考图像中对应的位置为所述第二运动信息的搜索中心点,在所述参考图像中搜索得到所述第二运动信息,包括:以所述第四运动信息中的第一预测方向运动信息在所述第一参考图像中对应的位置,为所述第二运动信息中的第一预测方向运动信息的搜索中心点,以所述第四运动信息中的第二预测方向运动信息在所述第二参考图像中对应的位置,为所述第二运动信息中的第二预测方向运动信息的搜索中心点,在所述第一参考图像和所述第二参考图像的预设搜索范围内进行运动信息搜索,确定搜索到的每一对双边运动信息的双边匹配代价,所述每一对双边运动信息包括一个第一预测方向运动信息和一个第二预测方向运动信息;基于所述双边匹配代价,从搜索到的多对双边运动信息中,确定所述第二运动信息。
- 根据权利要求8所述的方法,其特征在于,所述确定搜索到的每一对双边运动信息的双边匹配代价,包括:对于搜索到的第i对双边运动信息,基于所述第i对双边运动信息中的第一预测方向运动信息,在所述第一参考图像中确定第一预测块,基于所述第i对双边运动信息中的第二预测方向运动信息,在所述第二参考图像中确定第二预测块,所述i为正整数;确定所述第一预测块和所述第二预测块的匹配代价;基于所述第一预测块和所述第二预测块的匹配代价,确定所述第i对双边运动信息的双边匹配代价。
- 根据权利要求9所述的方法,其特征在于,所述基于所述双边匹配代价,从搜索到的多对双边运动信息中,确定所述第二运动信息,包括:将所述搜索到的多对双边运动信息中双边匹配代价最小的一对双边运动信息,确定为所述第二运动信息。
- 根据权利要求3所述的方法,其特征在于,所述基于所述第四运动信息,确定所述第二运动信息,包括:以所述第一运动信息在所述参考图像中对应的位置为所述第二运动信息的搜索中心点,在所述参考图像中进行运动信息搜索,确定搜索到的每一候选运动信息的第一代价;基于所述候选运动信息和所述第四运动信息,确定所述候选运动信息对应的代价系数;基于所述候选运动信息对应的代价系数对所述第一代价进行修正,得到所述候选运动信息的第二代价;基于搜索到的多个候选运动信息的第二代价,确定所述第二运动信息。
- 根据权利要求11所述的方法,其特征在于,所述参考图像包括第一参考图像和第二参考图像,所述第一运动信息、所述第二运动信息、所述第四运动信息和所述候选运动信息均包括第一预测方向运动信息和第二预测方向运动信息,所述以所述第一运动信息在所述参考图像中对应的位置为所述第二运动信息的搜索中心点,在所述参考图像中进行运动信息搜索,确定搜索到的每一候选运动信息的第一代价,包括:以所述第一运动信息中的第一预测方向运动信息在所述第一参考图像中对应的位置,为所述第二运动信息中的第一预测方向运动信息的搜索中心点,以所述第一运动信息中的第二预测方向运动信息在所述第二参考图像中对应的位置,为所述第二运动信息中的第二预测方向运动信息的搜索中心点,在所述第一参考图像和所述第二参考图像的预设搜索范围内进行运动信息搜索,确定搜索到的每一候选运动信息的第一代价。
- 根据权利要求12所述的方法,其特征在于,若所述候选运动信息对应的代价系数包括第一代价系数和第二代价系数,则所述基于所述候选运动信息和所述第四运动信息,确定所述候选运动信息对应的代价系数,包括:基于所述候选运动信息中的第一预测方向运动信息和所述第四运动信息中的第一预测方向运动信息,确定所述候选运动信息中的第一预测方向运动信息对应的第一代价系数;基于所述候选运动信息中的第二预测方向运动信息和所述第四运动信息中的第二预测方向运动信息,确定所述候选运动信息中的第二预测方向运动信息对应的第二代价系数。
- 根据权利要求13所述的方法,其特征在于,基于所述候选运动信息中的第i预测方向运动信息和所述第四运动信息中的第i预测方向运动信息,确定所述确定所述候选运动信息中的第i预测方向运动信息对应的第i代价系数,包括:确定所述候选运动信息中的第i预测方向运动信息,与所述第四运动信息中的第i预测方向运动信息之间的差的绝对值,所述i为一或二;基于所述差的绝对值,确定所述第i代价系数,其中所述第i代价系数与所述差的绝对值负相关。
- 根据权利要求14所述的方法,其特征在于,所述基于所述差的绝对值,确定所述第i代价系数,包括:确定所述差的绝对值与第一预设值中的最小值;基于所述最小值,确定所述第i代价系数。
- 根据权利要求15所述的方法,其特征在于,所述基于所述最小值,确定所述第i代价系数,包括:将所述最小值和第二预设值的和,确定为所述第i代价系数。
- 根据权利要求13所述的方法,其特征在于,基于所述候选运动信息对应的代价系数对所述第一代价进行修正,得到所述候选运动信息的第二代价,包括:基于所述第一代价系数和所述第二代价系数,对所述候选运动信息的第一代价进行修正,得到所述候选运动信息的第二代价。
- 根据权利要求17所述的方法,其特征在于,所述基于所述第一代价系数和所述第二代价系数,对所述候选运动信息的第一代价进行修正,得到所述候选运动信息的第二代价,包括:将所述第一代价与所述第一代价系数和所述第二代价系数相乘,得到所述候选运动信息第二代价。
- 根据权利要求12所述的方法,其特征在于,所述基于搜索到的多个候选运动信息的第二代价,确定所述第二运动信息,包括:将所述搜索到的多个候选运动信息中第二代价最小的候选运动信息,确定为所述第二运动信息。
- 根据权利要求2-19任一项所述的方法,其特征在于,所述基于所述第三运动信息对所述第一运动信息进行改善,得到所述第二运动信息之前,所述方法包括:确定所述第一运动信息和所述第三运动信息之间的差异值;所述基于所述第三运动信息对所述第一运动信息进行改善,得到所述第二运动信息,包括:若所述差异值小于或等于预设阈值时,则基于所述第三运动信息对所述第一运动信息进行改善,得到所述第二运动信息。
- 根据权利要求1-19任一项所述的方法,其特征在于,所述基于所述当前块的参考图像的运动信息,对所述第一运动信息进行改善,得到所述当前块的第二运动信息,包括:基于所述参考图像的运动信息,将所述当前块划分为至少一个子块;对于所述至少一个子块中的第i个子块,对所述第i个子块的第一运动信息进行改善,得到所述第i个子块的第二运动信息,所述i为正整数;基于所述N个子块的第二运动信息,得到所述当前块的第二运动信息。
- 根据权利要求21所述的方法,其特征在于,所述对所述第i个子块的第一运动信息进行改善,得到所述第i个子块的第二运动信息,包括:基于所述第i个子块的第一运动信息,在所述参考图像中确定所述第i个子块对应的参考块;确定所述第i个子块按照所述第i个子块的参考块的运动信息,从当前图像运动到所述参考图像的第三运动信息;基于所述第三运动信息对所述第i个子块的第一运动信息进行改善,得到所述第i个子块的第二运动信息。
- 根据权利要求1-19任一项所述的方法,其特征在于,所述基于所述当前块的参考图像的运动信息,对所述第一运动信息进行改善,得到所述当前块的第二运动信息,包括:基于所述当前块的参考图像的运动信息,对所述第一运动信息进行N轮改善,得到所述第二运动信息,所述N为大于1的正整数。
- 根据权利要求23所述的方法,其特征在于,所述基于所述当前块的参考图像的运动信息,对所述第一运动信息进行N轮改善,得到所述第二运动信息,包括:对于第j轮对应的至少一个子块中的每一个子块的运动信息进行改善,得到所述第j轮对应的至少一个子块的改善后的运动信息,若所述j等于1时,则所述第j轮对应的子块为所述当前块;基于所述参考图像的运动信息,对所述第j轮对应的至少一个子块中的每一个子块进行块划分,得到第j+1轮对应的至少一个子块;对于所述第j+1轮对应的至少一个子块中的每一个子块的运动信息进行改善,重复执行N轮,得到所述第二运动信息。
- 根据权利要求1-19任一项所述的方法,其特征在于,所述基于所述当前块的参考图像的运动信息,对所述第一运动信息进行改善,得到所述当前块的第二运动信息之前,所述方法还包括:确定所述当前块是否满足预设的基于整块的运动矢量改善条件;所述基于所述当前块的参考图像的运动信息,对所述第一运动信息进行改善,得到所述当前块的第二运动信息,包括:若所述当前块满足所述基于整块的运动矢量改善条件,基于所述当前块的参考图像的运动信息,对所述第一运动 信息进行改善,得到所述当前块的第二运动信息。
- 根据权利要求25所述的方法,其特征在于,若所述当前块不满足所述基于整块的运动矢量改善条件,则所述方法还包括:基于所述参考图像的运动信息,对所述当前块进行块划分,得到多个第一子块;对于所述多个第一子块的任一第一子块,确定所述第一子块是否满足所述基于整块的运动矢量改善条件;若所述第一子块不满足所述基于整块的运动矢量改善条件,则基于所述参考图像的运动信息,对所述第一子块进行块划分,得到多个第二子块;对于所述多个第二子块中的任一第二子块,确定所述第二子块是否满足所述基于整块的运动矢量改善条件,重复执行,直到划分后的子块满足所述基于整块的运动矢量改善条件,或者所述划分后的子块的大小满足预设大小为止。
- 根据权利要求25所述的方法,其特征在于,确定第一块是否满足基于整块的运动矢量改善条件,包括:确定所述第一块在所述参考图像中对应的参考块,所述第一块为所述当前块或者为第一子块或者为第二子块;获取所述第一块的M个子块在所述参考块中对应的M个子块的运动信息,所述M为大于1的正整数;对获取的M个子块的运动信息进行分类,得到P种分类结果,所述P为小于或等于M的正整数;基于所述P种分类结果,确定所述第一块是否满足所述基于整块的运动矢量改善条件。
- 根据权利要求27所述的方法,其特征在于,所述基于所述P种分类结果,确定所述第一块是否满足所述基于整块的运动矢量改善条件,包括:若所述P等于1,则确定所述第一块满足所述基于整块的运动矢量改善条件;若所述P大于1,则确定所述第一块不满足所述基于整块的运动矢量改善条件。
- 根据权利要求21或24或26所述的方法,其特征在于,基于所述参考图像的运动信息,对第二块进行块划分,包括:确定所述第二块在所述参考图像中对应的参考块,所述第二块为所述当前块、第一子块、第二子块、第j轮对应的子块中的任意一个;获取所述第二块的M个子块在所述参考块中对应的M个子块的运动信息,所述M为大于1的正整数;对获取的M个子块的运动信息进行分类,得到P种分类结果,所述P为小于或等于M的正整数;基于所述P种分类结果,将所述第二块划分为至少一个子块。
- 根据权利要求29所述的方法,其特征在于,所述基于所述P种分类结果,将所述第二块划分为至少一个子块,包括:基于所述P种分类结果分别对应的子块,将所述第二块划分为P个子块。
- 一种视频解码装置,其特征在于,包括:确定单元,用于确定当前块的第一运动信息;改善单元,用于基于所述当前块的参考图像的运动信息,对所述第一运动信息进行改善,得到所述当前块的第二运动信息;预测单元,用于基于所述第二运动信息,确定所述当前块的预测值。
- 一种电子设备,其特征在于,包括处理器和存储器;所示存储器用于存储计算机程序;所述处理器用于调用并运行所述存储器中存储的计算机程序,以实现上述权利要求1至30任一项所述的方法。
- 一种计算机可读存储介质,其特征在于,用于存储计算机程序;所述计算机程序使得计算机执行如上述权利要求1至30任一项所述的方法。
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202380100003.XA CN121511598A (zh) | 2023-07-03 | 2023-07-03 | 视频解码方法、装置、设备、及存储介质 |
| PCT/CN2023/105570 WO2025007250A1 (zh) | 2023-07-03 | 2023-07-03 | 视频解码方法、装置、设备、及存储介质 |
| MX2025015514A MX2025015514A (es) | 2023-07-03 | 2025-12-18 | Metodo y aparato de decodificacion de video, dispositivo y medio de almacenamiento |
| US19/428,443 US20260113474A1 (en) | 2023-07-03 | 2025-12-22 | Video decoding method and apparatus, and device and storage medium |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2023/105570 WO2025007250A1 (zh) | 2023-07-03 | 2023-07-03 | 视频解码方法、装置、设备、及存储介质 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US19/428,443 Continuation US20260113474A1 (en) | 2023-07-03 | 2025-12-22 | Video decoding method and apparatus, and device and storage medium |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025007250A1 true WO2025007250A1 (zh) | 2025-01-09 |
Family
ID=94171087
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2023/105570 Ceased WO2025007250A1 (zh) | 2023-07-03 | 2023-07-03 | 视频解码方法、装置、设备、及存储介质 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US20260113474A1 (zh) |
| CN (1) | CN121511598A (zh) |
| MX (1) | MX2025015514A (zh) |
| WO (1) | WO2025007250A1 (zh) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2018128232A1 (ko) * | 2017-01-03 | 2018-07-12 | 엘지전자 주식회사 | 영상 코딩 시스템에서 영상 디코딩 방법 및 장치 |
| WO2019194502A1 (ko) * | 2018-04-01 | 2019-10-10 | 엘지전자 주식회사 | 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 |
| CN110876059A (zh) * | 2018-09-03 | 2020-03-10 | 华为技术有限公司 | 运动矢量的获取方法、装置、计算机设备及存储介质 |
| CN112565768A (zh) * | 2020-12-02 | 2021-03-26 | 浙江大华技术股份有限公司 | 一种帧间预测方法、编解码系统及计算机可读存储介质 |
| CN113747172A (zh) * | 2020-05-29 | 2021-12-03 | Oppo广东移动通信有限公司 | 帧间预测方法、编码器、解码器以及计算机存储介质 |
-
2023
- 2023-07-03 WO PCT/CN2023/105570 patent/WO2025007250A1/zh not_active Ceased
- 2023-07-03 CN CN202380100003.XA patent/CN121511598A/zh active Pending
-
2025
- 2025-12-18 MX MX2025015514A patent/MX2025015514A/es unknown
- 2025-12-22 US US19/428,443 patent/US20260113474A1/en active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2018128232A1 (ko) * | 2017-01-03 | 2018-07-12 | 엘지전자 주식회사 | 영상 코딩 시스템에서 영상 디코딩 방법 및 장치 |
| WO2019194502A1 (ko) * | 2018-04-01 | 2019-10-10 | 엘지전자 주식회사 | 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 |
| CN110876059A (zh) * | 2018-09-03 | 2020-03-10 | 华为技术有限公司 | 运动矢量的获取方法、装置、计算机设备及存储介质 |
| CN113747172A (zh) * | 2020-05-29 | 2021-12-03 | Oppo广东移动通信有限公司 | 帧间预测方法、编码器、解码器以及计算机存储介质 |
| CN112565768A (zh) * | 2020-12-02 | 2021-03-26 | 浙江大华技术股份有限公司 | 一种帧间预测方法、编解码系统及计算机可读存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN121511598A (zh) | 2026-02-10 |
| US20260113474A1 (en) | 2026-04-23 |
| MX2025015514A (es) | 2026-02-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN118945317B (zh) | 对仿射译码块进行光流预测修正的方法及装置 | |
| KR20210072064A (ko) | 인터 예측 방법 및 장치 | |
| CN117596398A (zh) | 用于译码块的几何划分块的帧间预测的装置及方法 | |
| CN117956166A (zh) | 一种编码器、解码器及去块滤波器的边界强度的对应推导方法 | |
| CN111953995A (zh) | 一种帧间预测的方法和装置 | |
| KR102616713B1 (ko) | 이미지 예측 방법, 장치 및 시스템, 디바이스 및 저장 매체 | |
| TWI806212B (zh) | 視訊編碼器、視訊解碼器及相應方法 | |
| CN113196783B (zh) | 去块效应滤波自适应的编码器、解码器及对应方法 | |
| CN113711601A (zh) | 用于推导当前块的插值滤波器索引的方法和装置 | |
| JP7640647B2 (ja) | 双予測のオプティカルフロー計算および双予測補正におけるブロックレベル境界サンプル勾配計算のための整数グリッド参照サンプルの位置を計算するための方法 | |
| CN114913249B (zh) | 编码、解码方法和相关设备 | |
| US20240372984A1 (en) | Prediction methods | |
| CN114079786A (zh) | 一种帧间预测的方法和装置 | |
| CN118435595A (zh) | 帧内预测方法、设备、系统、及存储介质 | |
| CN111866502A (zh) | 图像预测方法、装置和计算机可读存储介质 | |
| WO2024007128A1 (zh) | 视频编解码方法、装置、设备、系统、及存储介质 | |
| WO2023122968A1 (zh) | 帧内预测方法、设备、系统、及存储介质 | |
| JP2025539476A (ja) | ビデオ処理方法および装置 | |
| WO2025007250A1 (zh) | 视频解码方法、装置、设备、及存储介质 | |
| WO2024108391A1 (zh) | 视频编解码方法、装置、设备、系统、及存储介质 | |
| CN119137938B (zh) | 视频编码方法、装置、设备、系统、及存储介质 | |
| WO2025065522A1 (zh) | 编解码方法及装置、编解码器、码流、设备、存储介质 | |
| WO2024092425A1 (zh) | 视频编解码方法、装置、设备、及存储介质 | |
| WO2025208348A1 (zh) | 编解码方法、编解码器、码流以及存储介质 | |
| KR20260036172A (ko) | 인코딩 및 디코딩 방법과 장치 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23943984 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: MX/A/2025/015514 Country of ref document: MX |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 202617011327 Country of ref document: IN |
|
| WWP | Wipo information: published in national office |
Ref document number: MX/A/2025/015514 Country of ref document: MX |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| WWP | Wipo information: published in national office |
Ref document number: 202617011327 Country of ref document: IN |