WO2020181504A1 - Procédé et appareil de codage vidéo, et procédé et appareil de décodage vidéo - Google Patents

Procédé et appareil de codage vidéo, et procédé et appareil de décodage vidéo Download PDF

Info

Publication number
WO2020181504A1
WO2020181504A1 PCT/CN2019/077882 CN2019077882W WO2020181504A1 WO 2020181504 A1 WO2020181504 A1 WO 2020181504A1 CN 2019077882 W CN2019077882 W CN 2019077882W WO 2020181504 A1 WO2020181504 A1 WO 2020181504A1
Authority
WO
WIPO (PCT)
Prior art keywords
type
offset value
current block
candidate list
frame
Prior art date
Application number
PCT/CN2019/077882
Other languages
English (en)
Chinese (zh)
Inventor
郑萧桢
孟学苇
王苫社
马思伟
Original Assignee
深圳市大疆创新科技有限公司
北京大学
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 深圳市大疆创新科技有限公司, 北京大学 filed Critical 深圳市大疆创新科技有限公司
Priority to CN201980005231.2A priority Critical patent/CN111264061B/zh
Priority to PCT/CN2019/077882 priority patent/WO2020181504A1/fr
Publication of WO2020181504A1 publication Critical patent/WO2020181504A1/fr

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding

Definitions

  • This application relates to the field of video encoding and video decoding, and more specifically, to a method and device for video encoding, and a method and device for video decoding.
  • the basic principle of video coding is to use the correlation between the spatial domain, the time domain, and the codeword to remove redundancy as much as possible to save transmission bandwidth or storage space.
  • the current common practice is to adopt a block-based hybrid video coding framework, and realize video coding compression through steps such as prediction (including intra-frame prediction and inter-frame prediction), transformation, quantization, and entropy coding.
  • prediction including intra-frame prediction and inter-frame prediction
  • transformation including intra-frame prediction and inter-frame prediction
  • quantization quantization
  • entropy coding a block-based hybrid video coding framework
  • motion estimation and motion compensation are key technologies that affect coding performance and decoding performance.
  • the frame to be encoded can be divided into several image blocks, and the position of each image block in the adjacent frame can be searched out, and the difference between the two can be obtained.
  • the relative offset of the spatial position, the obtained relative offset is the motion vector (motion vector, MV).
  • the process of obtaining the motion vector is called motion estimation (ME), and the inter-frame redundancy can be removed through motion estimation , To reduce the bit overhead of video transmission.
  • This application provides a method and device for video encoding, and a method and device for video decoding, which can reduce the complexity of encoding and the complexity of decoding.
  • this application provides a video encoding method, including: determining the reference motion information of the current block according to the motion information candidate list of the current block; selecting the offset value candidate set from the corresponding offset value candidate set according to the type of the frame to which the current block belongs Determine the target offset value, where the types include a first type and a second type, and the offset value candidate set corresponding to the first type is a subset of the offset value candidate set corresponding to the second type; determined according to the reference motion information Search starting point; use the target offset value as the search step at the search starting point to search the reference block of the current block.
  • the video encoding device applying the above method uses different offset value sets to perform inter-frame prediction for different types of frames. For frames with more complex motion, the video encoding device can use a set containing more offset values, so that a smaller search step can be selected to accurately search for the optimal motion vector; for frames with relatively simple motion, the video encoding device can use A set of fewer offset values (that is, a subset of the set containing more offset values), so that the optimal motion vector can be quickly searched. In addition, since the video encoding device selects the target offset value from a preset set for different types of frames, it is no longer necessary to determine whether to shift the offset value based on different types, thereby reducing the complexity of video encoding .
  • the present application provides another video encoding method, including: determining the reference motion information of the current block according to the motion information candidate list of the current block; according to the type of the frame to which the current block belongs, starting from the same offset value candidate list Determine the target offset value in, determine the search starting point according to the reference motion information; use the target offset value as the search step at the search starting point to search for the reference block of the current block.
  • the video encoding device applying the above method uses different offset value sets to perform inter-frame prediction for different types of frames. For frames with more complex motion, the video encoding device can use a set containing more offset values, so that a smaller search step can be selected to accurately search for the optimal motion vector; for frames with relatively simple motion, the video encoding device can use A collection of fewer offset values, so that the optimal motion vector can be searched quickly. In addition, since the video encoding device selects the target offset value from the preset list for different types of frames, it is no longer necessary to determine whether to shift the offset value based on different types, thereby reducing the complexity of video encoding .
  • this application provides yet another video encoding method, including: determining the reference motion information of the current block according to the motion information candidate list of the current block; selecting the target of the current block from the offset value candidate list The offset value, wherein the video frames of the screen content and the non-screen content adopt the same offset value candidate list; determine the motion information of the current block according to the reference motion information and the target offset value; The motion information of the block encodes the current block to obtain a code stream, wherein the code stream includes the index number of the target offset value in the offset value candidate list.
  • the video encoding device applying the above method uses different offset value sets to perform inter-frame prediction for different types of frames. For frames with more complex motion, the video encoding device can use a set containing more offset values, so that a smaller search step can be selected to accurately search for the optimal motion vector; for frames with relatively simple motion, the video encoding device can use A collection of fewer offset values, so that the optimal motion vector can be searched quickly.
  • the video encoding device selects the target offset value from the preset list for different types of frames, it is no longer necessary to determine whether to shift the offset value based on different types, thereby reducing the complexity of video encoding .
  • the index numbers of the target offset values corresponding to different types of frames are arranged in the same arrangement, the code stream does not need to carry indication information indicating the type of the frame, thereby reducing the bit overhead of the code stream.
  • the present application provides a video decoding method, including: determining the reference motion information of the current block according to the motion information candidate list of the current block; determining the target offset value, where the target offset value is the one to which the current block belongs An offset value in the offset value candidate set corresponding to the type of the frame, where the type includes a first type and a second type, and the offset value candidate set corresponding to the first type is the offset value corresponding to the second type A subset of the candidate set; determine the search starting point according to the reference motion information; use the target offset value as the search step at the search starting point to search for the reference block of the current block.
  • the video decoding device Since the offset value sets corresponding to different types of frames are all preset offset value sets, the video decoding device does not need to determine whether to shift the offset value according to the type of the frame. Therefore, the video decoding device applying the above method Reduce the complexity of decoding.
  • the present application provides another video decoding method, including: determining the reference motion information of the current block according to the motion information candidate list of the current block; determining the target offset value from an offset value candidate list, wherein, Image blocks in different types of frames use the same offset value candidate list to determine the target offset value; determine the search starting point according to the reference motion information; use the target offset value at the search starting point to search for the reference block of the current block.
  • the video decoding device Since the offset value sets corresponding to different types of frames belong to the set in the preset offset value list, the video decoding device does not need to determine whether to perform shift processing on the offset value according to the type of the frame. Therefore, the video using the above method The decoding device reduces the complexity of decoding.
  • this application provides yet another video decoding method, including: receiving a code stream, the code stream including an index number; and selecting the target offset of the current block from a candidate list of offset values according to the index number. Shift value, wherein the video frames of screen content and non-screen content adopt the same offset value candidate list; determine the reference motion information of the current block according to the motion information candidate list of the current block; according to the reference motion information and the The target offset value determines the motion information of the current block; and decodes the current block according to the motion information of the current block to obtain the decoded current block.
  • the video decoding device can determine the target offset value based on the index number in the code stream, without determining whether to offset according to the frame type
  • the shift value performs shift processing. Therefore, the video decoding device applying the above method reduces the complexity of decoding. In addition, the video decoding device applying the above method does not need to receive the indication information indicating the type of the frame, and the code stream does not need to carry the indication information, thereby reducing the bit overhead of the code stream.
  • the present application provides an encoding device.
  • the encoding device includes a processing unit, configured to: determine the reference motion information of the current block according to the motion information candidate list of the current block;
  • the target offset value is determined from the offset value candidate set in the offset value candidate set, where the types include a first type and a second type, and the offset value candidate set corresponding to the first type is a child of the offset value candidate set corresponding to the second type Set; determine the search starting point according to the reference motion information; use the target offset value as the search step at the search starting point to search for the reference block of the current block.
  • the present application provides an encoding device.
  • the encoding device includes a memory and a processor.
  • the memory is used to store instructions.
  • the processor is used to execute instructions stored in the memory and store instructions in the memory. Execution of the instructions of causes the processor to execute the method provided in the first aspect.
  • the present application provides a chip including a processing module and a communication interface, the processing module is used to control the communication interface to communicate with the outside, and the processing module is also used to implement the method.
  • the present application provides a computer-readable storage medium on which a computer program is stored.
  • the computer program When the computer program is executed by a computer, the computer realizes the method provided in the first aspect.
  • the present application provides a computer program product containing instructions that when executed by a computer cause the computer to implement the method provided in the first aspect.
  • the present application provides an encoding device, the encoding device includes a processing unit configured to: determine the reference motion information of the current block according to the motion information candidate list of the current block; Determine the target offset value in the same offset value candidate list; determine the search starting point according to the reference motion information; use the target offset value at the search starting point to search for the reference block of the current block.
  • the present application provides an encoding device, the encoding device includes a memory and a processor, the memory is used to store instructions, the processor is used to execute instructions stored in the memory, and Execution of the stored instructions causes the processor to execute the method provided in the second aspect.
  • the present application provides a chip that includes a processing module and a communication interface, the processing module is used to control the communication interface to communicate with the outside, and the processing module is also used to implement the second aspect Methods.
  • this application provides a computer-readable storage medium on which a computer program is stored, and when the computer program is executed by a computer, the computer realizes the method provided in the second aspect.
  • this application provides a computer program product containing instructions, which when executed by a computer causes the computer to implement the method provided in the second aspect.
  • the present application provides an encoding device, the encoding device includes a processing unit, configured to: determine the reference motion information of the current block according to the motion information candidate list of the current block; Select the target offset value of the current block, where the video frames of screen content and non-screen content use the same offset value candidate list; determine the target offset value of the current block according to the reference motion information and the target offset value Motion information; encoding the current block according to the motion information of the current block to obtain a code stream, wherein the code stream contains the index number of the target offset value in the offset value candidate list.
  • the present application provides an encoding device, the encoding device includes a memory and a processor, the memory is used to store instructions, the processor is used to execute instructions stored in the memory, and Execution of the stored instructions causes the processor to execute the method provided in the third aspect.
  • this application provides a chip that includes a processing module and a communication interface, the processing module is used to control the communication interface to communicate with the outside, and the processing module is also used to implement the third aspect Methods.
  • this application provides a computer-readable storage medium on which a computer program is stored, and when the computer program is executed by a computer, the computer realizes the method provided in the third aspect.
  • this application provides a computer program product containing instructions that when executed by a computer causes the computer to implement the method provided in the third aspect.
  • the present application provides a decoding device, the decoding device includes a processing unit, configured to: determine the reference motion information of the current block according to the motion information candidate list of the current block; determine the target offset value, wherein, The target offset value is an offset value in the offset value candidate set corresponding to the type of the frame to which the current block belongs, where the type includes a first type and a second type, and the offset value candidate set corresponding to the first type It is a subset of the offset value candidate set corresponding to the second type; the search starting point is determined according to the reference motion information; the target offset value is used at the search starting point to search the reference block of the current block.
  • the present application provides a decoding device, the decoding device includes a memory and a processor, the memory is used to store instructions, the processor is used to execute the instructions stored in the memory, and to the memory The execution of the instructions stored in the processor causes the processor to execute the method provided in the fourth aspect.
  • the present application provides a chip that includes a processing module and a communication interface, the processing module is used to control the communication interface to communicate with the outside, and the processing module is also used to implement the fourth aspect Provided method.
  • the present application provides a computer-readable storage medium on which a computer program is stored.
  • the computer program When the computer program is executed by a computer, the computer realizes the method provided in the fourth aspect.
  • the present application provides a computer program product containing instructions that when executed by a computer causes the computer to implement the method provided in the fourth aspect.
  • the present application provides a decoding device, the decoding device includes a processing unit, configured to: determine the reference motion information of the current block according to the motion information candidate list of the current block; Determine the target offset value, where the image blocks in different types of frames use the same offset value candidate list to determine the target offset value; determine the search starting point according to the reference motion information; use the target offset value as the search step at the search starting point To search for the reference block of the current block.
  • the present application provides a decoding device, the decoding device includes a memory and a processor, the memory is used to store instructions, the processor is used to execute the instructions stored in the memory, and to the memory Execution of the instructions stored in the processor causes the processor to execute the method provided in the fifth aspect.
  • the present application provides a chip that includes a processing module and a communication interface, the processing module is used to control the communication interface to communicate with the outside, and the processing module is also used to implement the fifth aspect Provided method.
  • the present application provides a computer-readable storage medium on which a computer program is stored.
  • the computer program When the computer program is executed by a computer, the computer realizes the method provided in the fifth aspect.
  • the present application provides a computer program product containing instructions that, when executed by a computer, cause the computer to implement the method provided in the fifth aspect.
  • the present application provides a decoding device, the decoding device includes a receiving unit and a processing unit, the receiving unit is configured to: receive a code stream, the code stream includes an index number; the processing unit uses Yu: Select the target offset value of the current block from the offset value candidate list according to the index number, wherein the video frame of the screen content and the non-screen content adopts the same offset value candidate list; according to the motion of the current block
  • the information candidate list determines the reference motion information of the current block; determines the motion information of the current block according to the reference motion information and the target offset value; and decodes the current block according to the motion information of the current block To obtain the decoded current block.
  • the present application provides a decoding device, the decoding device includes a memory and a processor, the memory is used to store instructions, the processor is used to execute the instructions stored in the memory, and to the memory Execution of the instructions stored in the processor causes the processor to execute the method provided in the sixth aspect.
  • the present application provides a chip including a processing module and a communication interface, the processing module is used to control the communication interface to communicate with the outside, and the processing module is also used to implement the sixth aspect Provided method.
  • the present application provides a computer-readable storage medium on which a computer program is stored.
  • the computer program When the computer program is executed by a computer, the computer realizes the method provided in the sixth aspect.
  • the present application provides a computer program product containing instructions that when executed by a computer cause the computer to implement the method provided in the sixth aspect.
  • Figure 1 is a schematic diagram of a video encoding method suitable for the present application.
  • Fig. 2 is a schematic diagram of a video decoding method suitable for the present application.
  • Fig. 3 is a schematic diagram of a method for constructing a motion information candidate list applicable to the present application.
  • Fig. 4 is a schematic diagram of a method for determining an optimal motion vector suitable for the present application.
  • Fig. 5 is a schematic diagram of an interpolation method suitable for the present application.
  • Fig. 6 is a schematic diagram of a video encoding method provided by the present application.
  • Fig. 7 is a schematic diagram of a video decoding method provided by the present application.
  • Fig. 8 is a schematic diagram of a video encoder provided by the present application.
  • Fig. 9 is a schematic diagram of a video decoder provided by the present application.
  • Fig. 10 is a schematic diagram of an inter-frame prediction apparatus provided by the present application.
  • Fig. 11 is a schematic diagram of a video encoding device or a video decoding device provided by the present application.
  • Figure 1 shows a schematic diagram of a video encoding method suitable for the present application.
  • the video coding method includes intra prediction, inter prediction, transform, quantization, entropy encoding, and in-loop filtering. After the image is divided into coding blocks, intra-frame prediction or inter-frame prediction is performed, and after the residual error is obtained, transform and quantization are performed, and finally entropy coding is performed and a code stream is output.
  • the encoding block is an M ⁇ N array composed of pixels (M may be equal to N or not equal to N), and the pixel value of each pixel is known.
  • P represents the predicted value
  • Dn represents the residual
  • uFn' represents the reconstruction value (before filtering)
  • Dn' represents the residual.
  • Intra-frame prediction refers to predicting the pixel value of the pixel in the current coding block by using the pixel value of the pixel in the reconstructed area in the current image.
  • Inter-frame prediction is to find a matching reference block for the current coding block in the current image in the reconstructed image.
  • the pixel value of the pixel in the reference block is used as the prediction information or the predicted value of the pixel value of the pixel in the current coding block (information and value will not be distinguished hereinafter), this process is motion estimation.
  • the motion information of the current coding block includes the indication information of the prediction direction (usually forward prediction, backward prediction or bidirectional prediction), one or two motion vectors pointing to the reference block, and the image of the reference block. Indication information (usually the reference frame index).
  • Forward prediction means that the current coding block selects at least one reference image from the forward reference image set to obtain at least one reference block.
  • Backward prediction means that the current coding block selects at least one reference image from the backward reference image set to obtain at least one reference block.
  • Bidirectional prediction refers to selecting at least one reference image from the forward and backward reference image sets to obtain at least one reference block. When the bidirectional prediction method is used, there will be at least two reference blocks in the current coding block, and each reference block needs a motion vector and a reference frame index to indicate, and then determine the current block according to the pixel values of the pixels in the at least two reference blocks The predicted value of the pixel value of the pixel.
  • the motion estimation process needs to search multiple reference blocks in the reference image for the current coding block.
  • Rate-distortion optimization (RDO) or other methods can be used to determine which reference block or several reference blocks are ultimately used for prediction.
  • the residual information can be obtained according to the pixel value of the pixel in the current coding block and the corresponding prediction information, for example, the pixel value of the current coding block and the pixel value of the reference block
  • the residual information is obtained by directly subtracting the values, or the residual information can be obtained by other possible methods.
  • DCT discrete cosine transformation
  • the prediction information and residual information can also be filtered to obtain reconstruction information, which is used as reference information for subsequent encoding.
  • FIG. 2 shows a schematic flowchart of the code stream decoding method applicable to the present application.
  • the residual information is obtained by transforming operations such as entropy decoding and inverse quantization.
  • the decoding end first obtains the prediction mode of the current block to be decoded by analyzing the code stream. If it is intra-frame prediction, the pixel values of pixels in the reconstructed area around the current block to be decoded are used to construct prediction information. If it is inter-frame prediction, it is necessary to obtain the motion information of the current decoded block, and use the motion information to determine the reference block in the reconstructed image, and use the pixel value of the pixel in the reference block as the prediction information.
  • prediction information also called prediction block
  • residual information also called residual block
  • the reconstruction information of the current block to be decoded also called reconstruction block
  • the encoding end constructs a motion information candidate list before predicting the current image block, and predicts the current image block according to the candidate motion information selected in the motion information candidate list.
  • the current image block is the image block to be encoded (or decoded).
  • the image frame where the current image block is located is called the current frame.
  • the current image block is a coding unit (CU) or a decoding unit (DU) in some video standards.
  • the motion information mentioned in this article may include motion vectors, or include motion vectors and reference frame information.
  • the motion information candidate list refers to a set of candidate motion information of the current block, and each candidate motion information in the motion information candidate list can be stored in the same buffer or in different buffers. There is no restriction here.
  • the index of the motion information in the motion information candidate list mentioned below can be the index of the motion information in all candidate motion information sets of the current block, or the index of the buffer where the motion information is located, here No restrictions.
  • the encoding of the current image block can be completed through the following steps.
  • the current image block can be decoded through the following steps.
  • the preset method can be consistent with the method of constructing the motion information candidate list by the encoder.
  • the motion vector of the current image block is equal to the prediction MV (motion vector prediction, MVP) (for example, the motion vector MV1 mentioned above).
  • this mode includes the merge mode.
  • the merge mode includes a normal merge mode and/or an affine merge mode.
  • the motion vector of the current image block is equal to the prediction MV (motion vector prediction, MVP) (for example, the motion vector MV1 mentioned above).
  • the MVP may be a candidate in the motion information candidate list, or may be obtained after processing (for example, after scaling) according to one of the candidates in the motion information candidate list.
  • the MVP of the current image block can be further optimized on the basis of the MVP of the current image block to obtain the motion vector of the current image block. For example, take MVP as the benchmark MV, search around it with a fixed search step, and select the best MV from the search results.
  • the default fixed direction for example, up, down, left, and right
  • the offset candidate list is used at the encoding end.
  • the default number of step offsets (for example, one offset) is used, and then the index number of the offset value and the index number of the direction used by the image block corresponding to the optimal result of the search are written into the code stream.
  • the decoding end receives the index number of the reference MV, the index number of the offset value, and the index number of the direction, and then according to the block pointed to by the reference MV, the offset value corresponding to the index number is offset once in the direction corresponding to the index number, and the result is The reference block of the current image block.
  • this mode may also be called MVD merge mode (merge mode with MVD, MMVD).
  • Figures 3 and 4 show the method of determining the optimal MV in MMVD.
  • the encoder can select several (for example, two) reference MVs from the motion vector candidate list.
  • one MV is the MV adjacent to the coded block in the spatial domain (for example, the MV of one of the coded blocks in the image blocks 1 to 5 in Figure 3)
  • the other MV is the MV adjacent to the coded block in the time domain (for example, in other
  • the pixels corresponding to the two reference MVs are shown in the two dotted circles in FIG. 4, where L0 represents the image frame pointed to by the first reference MV, and L1 represents the image frame pointed to by the second reference MV.
  • the encoding end respectively uses the selected reference MV as a starting point to search along a fixed direction (for example, four directions up, down, left, and right).
  • the step size used in the search is an offset value in the offset value candidate list.
  • the offset candidate list contains eight offset values, namely ⁇ 1/4, 1/2, 1, 2, 4, 8, 16, 32 ⁇ , and the corresponding search step index numbers are respectively It is 0 ⁇ 7.
  • the encoding end selects an offset value from the offset value candidate list as the search step to search, and determines the optimal MV according to RDO or other rules.
  • the filled circles and hollow circles represent the pixels found based on the two search steps.
  • the MV of the object between two adjacent frames may not be exactly an integer number of pixels. However, there are no fractional pixels (for example, 1/4 pixel and 1/2 pixel) in digital video, that is, there are no other pixels between two pixels.
  • the values of these sub-pixels can be approximated by interpolation, that is, the row direction and column direction of the reference frame are interpolated, and the search is performed in the reference frame after the interpolation.
  • interpolation that is, the row direction and column direction of the reference frame are interpolated, and the search is performed in the reference frame after the interpolation.
  • the pixels in the current block and the pixels in the adjacent area need to be used. The following examples illustrate the interpolation method.
  • a 0,0 and d 0,0 are 1/4 pixels
  • b 0,0 and h 0,0 are 1/2 pixels (also called “half pixels")
  • c 0,0 and n 0,0 are 3/4 pixels.
  • the coding block is a 2x2 block surrounded by A 0,0 to A 1,0 and A 0,0 to A 0,1 .
  • some pixels outside the coding block are needed, including 3 pixels on the left side, 4 pixels on the right side, 3 pixels on the top and 4 pixels on the bottom of the coding block point.
  • the following formula gives the external pixels used by some interpolation pixels in the above coding block.
  • the method 600 includes:
  • S610 Determine a reference MV of the current block according to the motion information candidate list of the current block.
  • the method for determining the reference MV is as described above, and will not be repeated here.
  • S620 Determine a target offset value from a corresponding offset value candidate set according to the type of the frame to which the current block belongs, where the types include a first type and a second type, and the offset value candidate set corresponding to the first type is A subset of the offset candidate set corresponding to the second type.
  • the content change degree of the first type frame is simpler than the content change degree of the second type frame.
  • the first type is, for example, screen content
  • the second type is, for example, non-screen content.
  • the screen content may be a frame obtained by recording a screen
  • the non-screen content may be a frame obtained by shooting a natural object.
  • the movement of objects in screen content (for example, the translation of text) is simpler than the movement of natural objects in non-screen content (for example, the rotation of athletes). Therefore, the first type of frames may also be called simple motion frames, and the second type of frames may also be called complex motion frames.
  • the encoder can use a longer search step to search for the optimal MV to improve coding efficiency; for complex motion frames, the encoder can use a shorter search step to search for the optimal MV.
  • the encoder can select a value from the offset value candidate set ⁇ 1,2,4,8,16,32 ⁇ corresponding to the first type as the current block Target offset value; if the type of the frame to which the current block belongs is the second type, the encoder can select the offset value candidate set from the second type ⁇ 1/4,1/2,1,2,4,8,16 ,32 ⁇ select a value as the target offset value of the current block.
  • the two offset value candidate sets may be combined and stored. That is, the offset value candidate set corresponding to the first type and the offset value candidate set corresponding to the second type are located in the same offset value candidate list.
  • the encoding end may write the index number of the selected offset value in the same offset value candidate list into the code stream.
  • the offset value candidate set corresponding to the first type and the offset value candidate set corresponding to the second type are stored in the same buffer.
  • the offset candidate set corresponding to the first type can also be ⁇ 1,2,4,8,16,32,64 ⁇
  • the offset candidate set corresponding to the second type is ⁇ 1/4,1/2 ,1,2,4,8,16,32 ⁇ .
  • the offset value candidate set corresponding to the first type and the offset value candidate set corresponding to the second type may be located in the same offset value candidate list.
  • S620 can also be replaced with the following steps:
  • the target offset value is determined from the same offset value candidate list according to the type of the frame to which the current block belongs.
  • S630 can also be executed before S620, or together with S620.
  • S630 Determine a search starting point according to the reference MV.
  • S640 Use the target offset value as the search step at the search starting point to search for the reference block of the current block.
  • the encoder needs to interpolate the reference frame and search for the reference block in the interpolated reference frame; if the search step is 1 or 2 If the length of the integer pixels is equal, the encoder does not need to interpolate the reference frame, and can directly search for the reference block in the reference frame.
  • the method of interpolation and the method of searching for reference blocks have been described in detail above, and will not be repeated here.
  • the offset candidate list used by screen content is ⁇ 1,2,4,8,16,32,64,128 ⁇
  • the offset candidate list used by non-screen content is ⁇ 1/4,1 /2,1,2,4,8,16,32 ⁇ ; after the encoding end encodes the image block, an identifier needs to be added to the code stream to indicate whether the frame type belongs to screen content or non-screen content, and The index number of the selected offset value in the corresponding offset value candidate list is added to the code stream.
  • the decoder After receiving the code stream, the decoder determines whether the type of the image frame is screen content or non-screen content according to the identifier in the code stream, and then selects the corresponding offset value candidate list, and according to the index number in the code stream from the corresponding offset Select the corresponding offset value from the shift candidate list as the search step to search.
  • the codec in order to reduce the amount of storage occupied, when storing the offset candidate list, the codec only stores the offset candidate list used by the non-screen content ⁇ 1/4,1/2,1,2,4,8 ,16,32 ⁇ .
  • the offset value candidate list ⁇ 1/4,1/2,1,2,4,8,16,32 ⁇ is shifted to obtain ⁇ 1,2, 4,8,16,32,64,128 ⁇ , and then select the corresponding offset value as the search step size in the offset value candidate list obtained after the shift operation according to the index number.
  • the optimal MV obtained by using these two search step sizes may only be the local optimal MV, which may have a negative impact on the coding performance. Therefore, this application provides The encoding method does not need to use 64 or 128 as the target offset value, which improves the encoding performance.
  • the offset value candidate set corresponding to the first type is a subset of the offset value candidate set corresponding to the second type, or, when determining the search step size of image blocks in different types of frames, they are offset from the same
  • the target offset value is determined in the value candidate list. Therefore, the codec side does not need to perform shift operations in this process, which reduces the coding complexity.
  • the encoding end may not need to add an identifier to indicate whether the image frame belongs to the first type or the second type in the code stream; that is, there is no identifier in the code stream to indicate whether the image frame belongs to the first type.
  • the type is also the second type of identification, reducing byte overhead.
  • the encoding end can encode the current block to obtain a code stream, where the code stream contains the index number of the target offset value in the offset value candidate list.
  • the value in the offset candidate list is ⁇ 1/4,1/2,1,2,4,8,16,32 ⁇
  • the index number in the code stream can be from 0 to 7, respectively corresponding to the offset Move the eight values in the candidate list.
  • the index number used to indicate the search step in the code stream is a number from 2 to 7; for the image block in the second type frame, it is used to indicate the search in the code stream
  • the index number of the step size is a number from 0 to 7.
  • the values in the offset candidate list are ⁇ 1/4,1/2,1,2,4,8,16,32,64 ⁇ , and the index number in the code stream can be 0-8, respectively Corresponds to the nine values in the offset candidate list.
  • the index number used to indicate the search step in the code stream is a number from 2 to 8; for the image block in the second type frame, it is used to indicate the search in the code stream
  • the index number of the step size is a number from 0 to 8.
  • the encoding end may write the index number of the target offset value in the offset value candidate list into the code stream, so that the decoding end can search based on the search step corresponding to the index number. Since different types of frames correspond to a set of offset value index numbers, the decoder does not need to shift the offset value according to the type of the frame. Therefore, the encoder does not need to write the indication information of the frame type in the code stream, thereby reducing The information overhead of encoding.
  • the decoding end can perform decoding based on the method shown in FIG. 7.
  • the method shown in Figure 7 includes:
  • S710 Determine a reference MV of the current block according to the motion information candidate list of the current block.
  • the decoding end can construct the motion information candidate list of the current block according to the method shown by the encoding end. Subsequently, the decoder selects the reference MV from the motion information candidate list and executes the following steps.
  • the target offset value is an offset value in an offset value candidate set corresponding to the type of the frame to which the current block belongs, and the type includes a first type and a second type.
  • the offset value candidate set corresponding to the first type is a subset of the offset value candidate set corresponding to the second type.
  • the decoding end can use an offset value candidate list, that is, the decoding end determines the offset value candidate sets corresponding to different types of frames from an offset value candidate list; the decoding end can also use multiple offset value candidate lists, namely , The decoder selects the target offset value from the offset value candidate list corresponding to different types.
  • the offset candidate set corresponding to the first type is ⁇ 1,2,4,8,16,32 ⁇
  • the offset candidate set corresponding to the second type is ⁇ 1/4,1/2,1,2 ,4,8,16,32 ⁇
  • the two sets can be located in a list, the list contains offset values ⁇ 1/4,1/2,1,2,4,8,16,32 ⁇ .
  • the index number used to indicate the search step size in the code stream received by the decoding end corresponds to different offset values in the same offset value candidate list.
  • the decoding end may use an offset value candidate list, that is, the decoding end determines the offset value candidate sets corresponding to different types of frames from the offset value candidate list.
  • the offset candidate set corresponding to the first type is ⁇ 1,2,4,8,16,32,64 ⁇
  • the offset candidate set corresponding to the second type is ⁇ 1/4,1/2,1 ,2,4,8,16,32 ⁇
  • the two sets can be located in a list, the list contains offset values ⁇ 1/4,1/2,1,2,4,8,16,32 ,64 ⁇ .
  • the decoding end may determine the search step size by itself.
  • the decoding end may determine the index number from the code stream corresponding to the current block, and determine the target offset value from an offset value candidate list according to the index number. Since different types of frames correspond to a set of offset value index numbers, the decoder does not need to shift the offset value according to the type of the frame.
  • the encoding end does not need to write the indication information of the frame type in the code stream, thereby reducing the information overhead of encoding.
  • the decoder does not need to distinguish the type of the frame. No matter which type the image frame belongs to, it will determine the search step size from the same offset candidate list after extracting the index number from the code stream.
  • S730 can also be executed before S720, or together with S720.
  • S730 Determine a search starting point according to the reference MV.
  • S740 Use the target offset value as the search step at the search starting point to search for the reference block of the current block.
  • the decoder needs to interpolate the reference frame and search for the reference block in the interpolated reference frame; if the search step is 1 or 2 If the length of the integer pixels is equal, the decoder does not need to interpolate the reference frame, and can directly search for the reference block in the reference frame.
  • the method of interpolation and the method of searching for reference blocks have been described in detail above, and will not be repeated here.
  • the optimal MV obtained by using these two search steps may only be a local optimal MV, which may have a negative impact on the decoding performance.
  • the decoding method provided in this application is not used 64 or 128 is used as the target offset value to improve the coding performance.
  • Fig. 8 is a schematic diagram of a video encoder provided by this application.
  • the video encoder 100 is used to output the video to the post-processing entity 41.
  • the post-processing entity 41 represents an example of a video entity that can process encoded video data from the video encoder 100, for example, a media-aware network element (MANE) or a splicing/editing device.
  • the post-processing entity 41 and the video encoder 100 are independent devices from each other, or the post-processing entity 41 may be integrated into the video encoder 100.
  • the video encoder 100 may perform inter prediction of image blocks according to the method proposed in this application.
  • the video encoder 100 includes a prediction processing unit 108, a filter 106, a coded picture buffer (CPB) 107, a summer 112, a transformer 101, a quantizer 102, and an entropy encoder 103.
  • the prediction processing unit 108 includes an inter predictor 110 and an intra predictor 109.
  • the video encoder 100 further includes an inverse quantizer 104, an inverse transformer 105, and a summer 111.
  • the filter 106 represents one or more loop filters, such as a deblocking filter, an adaptive loop filter (ALF), and a sample adaptive offset (SAO) filter.
  • the filter 106 in Fig. 8 may be an in-loop filter or a post-loop filter.
  • the video encoder 100 may further include a video data memory (not shown in the figure).
  • the video data storage may store video data to be encoded by the video encoder 100.
  • the video data memory can also be used as a reference image memory to store reference video data when the video encoder 100 encodes video data in the intra-frame decoding mode and/or the inter-frame decoding mode.
  • the video data memory and CPB 107 can be formed by any of a variety of memory devices, for example, including synchronous dynamic random access memory (SDRAM), dynamic random access memory (DRAM), Magnetoresistive random access memory (magnetic random access memory, MRAM), resistive random access memory (resistive random access memory, RRAM) or other types of memory.
  • SDRAM synchronous dynamic random access memory
  • DRAM dynamic random access memory
  • MRAM Magnetoresistive random access memory
  • RRAM resistive random access memory
  • the video data storage and CPB107 can be provided by the same storage device or by separate storage devices.
  • the video data memory may also be integrated with other components of the video encoder 100 on a chip, or may be provided separately from other components.
  • the video encoder 100 receives video data and stores the video data in a video data storage.
  • the dividing unit divides the video data (frame) into several image blocks, and these image blocks can be further divided into smaller blocks, for example, based on a quad-tree structure or a binary tree structure.
  • the result of the above segmentation may be a slice, a tile, or other larger units, and the slice may be divided into a plurality of image blocks or a set of image blocks called "slices".
  • the prediction processing unit 108 (for example, the inter prediction unit 110) may determine the motion information candidate list of the current image block, and determine the target motion information from the motion information candidate list according to the screening rules, and then perform the execution on the current image block according to the target motion information.
  • the prediction processing unit 108 may provide the current image block that has undergone intra-frame decoding and/or inter-frame decoding to the summer 112 to generate a residual block, and the prediction processing unit 108 may further The current image block inter-decoded is provided to the summer 111 to reconstruct a coded block as a reference image block.
  • the prediction processing unit 108 (for example, the inter prediction unit 110) may send the index information of the target motion information to the entropy encoder 103, so that the entropy encoder 103 can encode the index information of the target motion information into the code stream.
  • the intra predictor 109 in the prediction processing unit 108 may perform intra predictive coding on the current image block to remove spatial redundancy.
  • the inter predictor 110 in the prediction processing unit 108 may perform inter predictive encoding on the current image block to remove temporal redundancy.
  • the inter predictor 110 is used to determine target motion information for inter prediction, and predict the motion information of one or more basic motion compensation units in the current image block according to the target motion information, and use one or more motion information in the current image block.
  • the motion information of a basic motion compensation unit obtains or generates a prediction block of the current image block.
  • the inter predictor 110 may calculate the RDO values of various motion information in the motion information candidate list, and select motion information with the best RDO characteristics therefrom.
  • the RDO characteristic is usually used to measure the degree of distortion (or error) between an encoded image block and an unencoded image block.
  • the inter predictor 110 may determine that the motion information with the smallest RDO cost for encoding the current image block in the motion information candidate list is the target motion information for inter prediction of the current image block.
  • the inter predictor 110 may also generate syntax elements associated with image blocks and slices for use by the video decoder 200 when decoding the image blocks in the slice.
  • the inter predictor 110 may send the index of the target motion information of the current image block to the entropy encoder 103 so that the entropy encoder 103 can encode the index.
  • the intra predictor 109 is used to determine target motion information for intra prediction, and perform intra prediction on the current image block based on the target motion information. For example, the intra predictor 109 may calculate the RDO value of each candidate motion information, select the motion information with the least RDO cost as the target motion information for intra prediction of the current image block, and select the frame with the best RDO characteristics based on the RDO value Intra prediction mode. After selecting the target motion information, the intra predictor 109 may send the index of the target motion information of the current image block to the entropy encoder 103 so that the entropy encoder 103 encodes the index.
  • the video encoder 100 subtracts the prediction block from the current image block to be encoded to form a residual image block (residual Piece).
  • the summer 112 represents one or more components that perform this subtraction operation.
  • the residual video data in the residual block may be included in one or more transform units (TU) and applied to the transformer 101.
  • the converter 101 uses a method such as DCT to convert the residual video data into residual transform coefficients.
  • the transformer 101 can transform the residual video data from the pixel value domain to the transform domain, such as the frequency domain.
  • the transformer 101 may send the resulting transform coefficient to the quantizer 102.
  • the quantizer 102 quantizes the transform coefficients to further reduce the bit rate.
  • the quantizer 102 may then perform a scan of the matrix containing the quantized transform coefficients.
  • the entropy encoder 103 may perform scanning.
  • the entropy encoder 103 After quantization, the entropy encoder 103 performs entropy encoding on the quantized transform coefficient. For example, the entropy encoder 103 can perform context-adaptive variable-length coding (CAVLC), context-adaptive binary arithmetic coding (CABAC), and grammar-based context-adaptive binary coding. Arithmetic coding (syntax-based context adaptive binary arithmetic coding, SBAC), probability interval partitioning entropy (PIPE) coding or other entropy coding methods.
  • the entropy encoder 103 may transmit the code stream to the video decoder 200 after performing entropy encoding.
  • the entropy encoder 103 may also perform entropy encoding on the syntax elements of the current image block to be encoded, for example, encoding the target motion information into the code stream.
  • the inverse quantizer 104 and the inverse transformer 105 respectively apply inverse quantization and inverse transformation to reconstruct a residual block (for example, an image block used as a reference image) in the pixel domain.
  • the summer 111 adds the reconstructed residual block to the prediction block generated by the inter predictor 110 or the intra predictor 109 to generate a reconstructed image block.
  • the filter 106 may be used to process the reconstructed image block to reduce distortion, for example, to reduce block artifacts.
  • the reconstructed image block may be stored in the image buffer 107 and used as a reference block for the inter predictor 110 to perform inter prediction on a block in a subsequent video frame or image.
  • the processing procedure of the video encoder 100 described above is only an example, and the video encoder 100 may also perform video encoding based on other processing procedures.
  • the video encoder 100 can directly quantize the residual signal without processing by the transformer 101, and correspondingly without processing by the inverse transformer 105; or, for some image blocks Or image frames, the video encoder 100 does not generate residual data, and accordingly does not need to be processed by the transformer 101, quantizer 102, inverse quantizer 104, and inverse transformer 105; or, the video encoder 100 can transform the reconstructed image
  • the block is directly stored as a reference block without being processed by the filter 106; alternatively, the quantizer 102 and the inverse quantizer 104 in the video encoder 100 may be merged together.
  • FIG. 9 is a schematic diagram of a video decoder provided by this application.
  • the video decoder 200 includes an entropy decoder 203, a prediction processing unit 208, an inverse quantizer 204, an inverse transformer 205, a summer 211, a filter 206, and a decoded image buffer 207.
  • the prediction processing unit 208 may include an inter predictor 210 and an intra predictor 209.
  • video decoder 200 may perform a decoding process that is substantially reciprocal of the encoding process described by video encoder 100.
  • the video decoder 200 receives a code stream including image blocks and associated syntax elements from the video encoder 100.
  • the video decoder 200 may receive video data from the network entity 42, and optionally, may also store the video data in a video data storage (not shown in the figure).
  • the video data memory can be used as a decoded picture buffer (DPB) for storing code streams. Therefore, although the video data storage is not shown in FIG. 9, the video data storage and the DPB 207 may be the same storage or separate storages.
  • the video data memory and DPB 207 can be formed by any of a variety of memory devices, for example, including SDRAM, DRAM, MRAM, RRAM or other types of memory.
  • the video data storage may be integrated with other components of other components of the video decoder 200 on a chip, or may be provided separately from other components.
  • the network entity 42 may be, for example, a server, a MANE, or a video editor/splicer.
  • the network entity 42 may or may not include a video encoder, such as the video encoder 100.
  • the network entity 42 and the video decoder 200 may be independent devices.
  • the network entity 42 and the video decoder 200 may be integrated into one device.
  • the entropy decoder 203 of the video decoder 200 entropy decodes the code stream to generate quantized coefficients and syntax elements.
  • the entropy decoder 203 forwards the syntax element to the prediction processing unit 208.
  • the video decoder 200 may receive syntax elements at the video slice level and/or the image block level.
  • the syntax element here may include target motion information related to the current image block.
  • the intra-frame predictor 209 of the prediction processing unit 208 can generate the signal based on the intra-frame prediction mode indicated in the code stream and the decoded image block from the current frame.
  • the prediction block of the image block of the current video slice can be generated.
  • the inter predictor 210 of the prediction processing unit 208 may determine to use the syntax element received from the entropy decoder 203 based on the syntax element received from the entropy decoder 203 Based on the target motion information for decoding the current image block of the current video slice, the current image block is decoded (for example, inter-frame prediction is performed).
  • the inter predictor 210 may determine whether to use a new inter prediction method to predict the current image block of the current video slice, for example, whether to use the method of the present application to determine the target offset value. If the syntax element indicates that a new inter-frame prediction method is used to predict the current image block, the motion information of the current image block is predicted based on the new inter-frame prediction method (for example, the method of this application is used to determine the target offset value), and pass The motion compensation process uses the predicted motion information of the current image block to generate the prediction block of the current image block.
  • the motion information here may include reference image information and motion vectors, where the reference image information may include, but is not limited to, one-way/two-way prediction information, a reference image list number, and a reference image index corresponding to the reference image list.
  • the video decoder 200 may construct a reference image list based on the reference images stored in the DPB 207.
  • the inter prediction process of using the method 700 to predict the motion information of the current image block has been described in detail.
  • the dequantizer 204 dequantizes (ie, dequantizes) the quantized transform coefficients decoded by the entropy decoder 203.
  • the inverse quantization process may include determining the degree of quantization that should be applied using the quantization parameter calculated by the video encoder 100 for each image block in the video slice, and determining the degree of inverse quantization that should be applied according to the degree of quantization.
  • the inverse transformer 205 performs inverse transform processing on the transform coefficients, for example, inverse DCT, inverse integer transform, or other inverse transform processes to generate residual blocks in the pixel domain.
  • the video decoder 200 After the inter predictor 210 generates the prediction block of the current image block or the sub-block of the current image block, the video decoder 200 sums the residual block from the inverse transformer 205 and the prediction block from the inter predictor 210 to obtain reconstruction Block.
  • the summer 211 represents the component that performs this summing operation.
  • filter 206 (in or after the decoding loop) can also be used to smooth pixel transitions or to improve video quality in other ways.
  • the filter 206 may be one or more loop filters, such as deblocking filters, ALF and SAO filters.
  • the filter 206 is adapted to reconstruct the block to reduce block distortion, and output the result as a decoded video stream.
  • the decoded image block in a given frame or image can also be stored in the DPB 207 to be used as a reference image for subsequent motion compensation. DPB207 can also store the decoded video for later presentation on the display device.
  • the processing procedure of the video decoder 200 described above is only an example, and the video decoder 200 may also perform video decoding based on other processing procedures.
  • the video decoder 200 may output a video stream without processing by the filter 206; or, for some image blocks or image frames, the entropy decoder 203 of the video decoder 200 does not decode the quantized coefficients, and these image blocks may be The image frame does not need to be processed by the inverse quantizer 204 and the inverse transformer 205.
  • FIG. 10 is a schematic block diagram of an inter-frame prediction apparatus 1000 in an embodiment of the application. It should be noted that the inter-frame prediction device 1000 is suitable for both inter-frame prediction of decoded video images and inter-frame prediction of encoded video images. It should be understood that the inter-frame prediction device 1000 here may correspond to The inter predictor 110 may alternatively correspond to the inter predictor 210 in FIG. 9.
  • the inter-frame prediction apparatus 1000 may include:
  • the inter prediction processing unit 1001 is configured to determine the reference MV of the current block according to the motion information candidate list of the current block.
  • the offset value selection unit 1002 is configured to determine the target offset value from the corresponding offset value candidate set according to the type of the frame to which the current block belongs, where the types include a first type and a second type, and the first type corresponds to The offset candidate set of is a subset of the offset candidate set corresponding to the second type.
  • it is used to determine the target offset value from the same offset value candidate list according to the type of the frame to which the current block belongs.
  • the inter-frame prediction processing unit 1001 is further configured to: determine the search starting point according to the reference MV; use the target offset value at the search starting point to search for the reference block of the current block.
  • the inter prediction apparatus 1000 uses different offset value sets to perform inter prediction for different types of frames.
  • the inter-frame prediction device 1000 can use a set containing more offset values, so that a smaller search step can be selected to accurately search for the optimal MV;
  • the inter-frame prediction device 1000 A set containing fewer offset values (ie, a subset of the set containing more offset values) can be used, so that the optimal MV can be quickly searched.
  • the two sets can be located in a list and stored in a buffer, thereby reducing the storage space consumed by video encoding.
  • the apparatus 1000 may include:
  • the frame inter prediction processing unit 1001 is configured to determine the reference MV of the current block according to the motion information candidate list of the current block.
  • the offset value selection unit 1002 is used to determine the target offset value.
  • the target offset value is an offset value in an offset value candidate set corresponding to the type of the frame to which the current block belongs, the type includes a first type and a second type, and the first type corresponds to
  • the offset value candidate set of is a subset of the offset value candidate set corresponding to the second type; or, image blocks in different types of frames use the same offset value candidate list to determine the target offset value.
  • the inter-frame prediction processing unit 1001 is further configured to: determine the search starting point according to the reference MV; use the target offset value at the search starting point to search for the reference block of the current block.
  • the device 1000 can determine the target offset value based on the index number in the code stream without determining whether to perform the offset value according to the type of the frame. Shift processing, therefore, the apparatus 1000 reduces the complexity of decoding.
  • each module in the inter-frame prediction apparatus in the embodiment of the present application is a functional body that implements various steps in the method embodiment of the present application.
  • the introduction of the inter-frame prediction method in the method embodiment herein. I won’t repeat it here.
  • FIG. 11 is a schematic block diagram of an implementation manner of an encoding device or a decoding device (referred to as a decoding device 1100 for short) provided by this application.
  • the decoding device 1100 may include a processor 1110, a memory 1130, and a bus system 1150.
  • the processor and the memory are connected through a bus system, the memory is used to store instructions, and the processor is used to execute instructions stored in the memory.
  • the memory of the encoding device stores program codes, and the processor can call the program codes stored in the memory to execute various video encoding or decoding methods described in this application, especially the inter-frame prediction method described in this application. To avoid repetition, it will not be described in detail here.
  • the processor 1110 may be a CPU, and the processor 1110 may also be other general-purpose processors, DSP, ASIC, FPGA or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components, etc. .
  • the general-purpose processor may be a microprocessor or the processor may also be any conventional processor or the like.
  • the memory 1130 may include ROM or RAM. Any other suitable type of storage device can also be used as the memory 1130.
  • the memory 1130 may include code and data 1131 accessed by the processor 1110 using the bus 1150.
  • the memory 1130 may further include an operating system 1133 and an application program 1135.
  • the application program 1135 includes at least one program that allows the processor 1110 to execute the video encoding or decoding method described in this application (especially the inter-frame prediction method described in this application).
  • the application program 1135 may include applications 1 to N, which further include a video encoding or decoding application (referred to as a video decoding application) that executes the video encoding or decoding method described in this application.
  • the bus system 1150 may also include a power bus, a control bus, and a status signal bus. However, for clear description, various buses are marked as the bus system 1150 in the figure.
  • the decoding device 1100 may further include one or more output devices, such as a display 1170.
  • the display 1170 may be a touch-sensitive display, which merges the display with a touch-sensitive unit operable to sense touch input.
  • the display 1170 may be connected to the processor 1110 via the bus 1150.
  • This application also provides a computer-readable storage medium containing the above-mentioned encoding method and decoding method.
  • the computer-readable storage medium contains a computer program product that can be read by one or more processors to retrieve and implement this
  • the instructions, codes and/or data structures of the technology described in the application are also provided.
  • Computer-readable storage media may include intangible media and tangible media.
  • the intangible medium is, for example, a signal or carrier wave.
  • tangible media may include magnetic media such as floppy disks, hard disks, and magnetic tapes, optical media such as DVDs, and semiconductor media such as solid state disks (SSD).
  • SSD solid state disks
  • connection may also be referred to as a computer-readable medium.
  • coaxial cable optical fiber, twisted pair, digital subscriber line (digital subscriber line, DSL), infrared, radio and microwave to transmit commands from a website, server or other remote source
  • coaxial cable, Optical fiber, twisted pair, DSL, infrared, radio and microwave are included in the definition of media.
  • the technology of the present application can be implemented in various devices or devices, including wireless handsets, integrated circuits (ICs), or a set of ICs (for example, chipsets).
  • ICs integrated circuits
  • a set of ICs for example, chipsets.
  • Various components, modules, or units are described in this application to emphasize that the device can implement the functions of the disclosed technology, but it does not necessarily need to be implemented by different hardware units.
  • various units can be integrated in the hardware unit of the encoder or decoder in combination with appropriate software and/or firmware.

Landscapes

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

Abstract

L'invention concerne un procédé de codage vidéo, comprenant les étapes consistant à : déterminer des informations de mouvement de référence d'un bloc actuel en fonction d'une liste candidate d'informations de mouvement du bloc actuel ; en fonction du type de trame auquel appartient le bloc actuel, déterminer une valeur de décalage cible à partir d'un ensemble candidat de valeurs de décalage correspondant, le type comprenant un premier type et un deuxième type, et l'ensemble candidat de décalage correspondant au premier type étant un sous-ensemble de l'ensemble candidat de décalage correspondant au deuxième type ; déterminer un point de départ de recherche en fonction des informations de mouvement de référence ; au point de départ de recherche, prendre la valeur de décalage cible en tant que taille de pas de recherche, et rechercher un bloc de référence du actuel. Après application du procédé décrit, pour une trame en mouvement complexe, l'appareil de codage vidéo peut utiliser un ensemble contenant davantage de valeurs de décalage, ce qui permet de sélectionner une taille de pas de recherche plus petite pour rechercher précisément un vecteur de mouvement optimal. Pour une trame en mouvement simple, l'appareil de codage vidéo peut utiliser un ensemble contenant moins de valeurs de décalage, ce qui permet de rechercher rapidement le vecteur de mouvement optimal.
PCT/CN2019/077882 2019-03-12 2019-03-12 Procédé et appareil de codage vidéo, et procédé et appareil de décodage vidéo WO2020181504A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201980005231.2A CN111264061B (zh) 2019-03-12 2019-03-12 视频编码的方法与装置,以及视频解码的方法与装置
PCT/CN2019/077882 WO2020181504A1 (fr) 2019-03-12 2019-03-12 Procédé et appareil de codage vidéo, et procédé et appareil de décodage vidéo

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/077882 WO2020181504A1 (fr) 2019-03-12 2019-03-12 Procédé et appareil de codage vidéo, et procédé et appareil de décodage vidéo

Publications (1)

Publication Number Publication Date
WO2020181504A1 true WO2020181504A1 (fr) 2020-09-17

Family

ID=70955212

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/077882 WO2020181504A1 (fr) 2019-03-12 2019-03-12 Procédé et appareil de codage vidéo, et procédé et appareil de décodage vidéo

Country Status (2)

Country Link
CN (1) CN111264061B (fr)
WO (1) WO2020181504A1 (fr)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112055201B (zh) * 2020-08-06 2024-05-28 浙江大华技术股份有限公司 视频编码方法及其相关装置
CN114640856B (zh) * 2021-03-19 2022-12-23 杭州海康威视数字技术股份有限公司 解码方法、编码方法、装置及设备
CN116962708B (zh) * 2023-09-21 2023-12-08 北京国旺盛源智能终端科技有限公司 一种智能服务云终端数据优化传输方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101237580A (zh) * 2008-02-29 2008-08-06 西北工业大学 基于中心预测的整数像素快速混合搜索方法
CN106537918A (zh) * 2014-08-12 2017-03-22 英特尔公司 用于视频编码的运动估计的系统和方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9357214B2 (en) * 2012-12-07 2016-05-31 Qualcomm Incorporated Advanced merge/skip mode and advanced motion vector prediction (AMVP) mode for 3D video

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101237580A (zh) * 2008-02-29 2008-08-06 西北工业大学 基于中心预测的整数像素快速混合搜索方法
CN106537918A (zh) * 2014-08-12 2017-03-22 英特尔公司 用于视频编码的运动估计的系统和方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LG ELECTRONICS INC.: ""Non-CE8: MMVD Harmonization with CPR"", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, JVET-M0341, 18 January 2019 (2019-01-18), pages 1 - 4, XP030201530 *
SAMSUNG ELECTRONICS CO., LTD.: ""CE4 Ultimate Motion Vector Expression (Test 4.5.4)"", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, JVET-L0054, 12 October 2018 (2018-10-12), XP030195378 *

Also Published As

Publication number Publication date
CN111264061B (zh) 2023-07-25
CN111264061A (zh) 2020-06-09

Similar Documents

Publication Publication Date Title
WO2019129130A1 (fr) Procédé et dispositif de prédiction d'images et codec
JP2019508971A (ja) ビデオコーディングのための固定フィルタからのフィルタ係数を予測すること
TWI786790B (zh) 視頻資料的幀間預測方法和裝置
WO2020006969A1 (fr) Procédé de prédiction de vecteur de mouvement et dispositif associé
CN117478873A (zh) 用于视频译码中的条件性解码器侧运动矢量修正的装置和方法
WO2020181504A1 (fr) Procédé et appareil de codage vidéo, et procédé et appareil de décodage vidéo
KR20210153128A (ko) 인터 예측에서의 병합 모드 후보들에 대한 글로벌 모션
KR20210118166A (ko) 적응형 개수의 영역들을 갖는 기하학적 파티셔닝을 위한 모양 적응 이산 코사인 변환
US20230239464A1 (en) Video processing method with partial picture replacement
US20230239494A1 (en) Video encoder, video decoder, and corresponding method
CN114827623A (zh) 用于视频编解码的边界扩展
KR20210153725A (ko) 글로벌 모션 벡터들의 효율적인 코딩
WO2017074539A1 (fr) Techniques de codage arithmétique parallèle
TW201921938A (zh) 具有在用於視訊寫碼之隨機存取組態中之未來參考訊框之可調適圖像群組結構
JP7448558B2 (ja) 画像エンコーディングおよびデコーディングのための方法およびデバイス
WO2020114356A1 (fr) Procédé de prédiction inter-trames et dispositif associé
CN111656786B (zh) 候选运动信息列表的构建方法、帧间预测方法及装置
US11595652B2 (en) Explicit signaling of extended long term reference picture retention
TWI841033B (zh) 視頻數據的幀間預測方法和裝置
US11985318B2 (en) Encoding video with extended long term reference picture retention
CN110868601B (zh) 帧间预测方法、装置以及视频编码器和视频解码器
WO2020007187A1 (fr) Procédé et dispositif de décodage de bloc d'image
WO2019227297A1 (fr) Procédé et dispositif de prédiction inter-trame et codec pour image vidéo
WO2020159993A1 (fr) Signalisation explicite de rétention prolongée d'image de référence à long terme

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19918775

Country of ref document: EP

Kind code of ref document: A1