WO2020135034A1 - 视频编解码 - Google Patents
视频编解码 Download PDFInfo
- Publication number
- WO2020135034A1 WO2020135034A1 PCT/CN2019/124455 CN2019124455W WO2020135034A1 WO 2020135034 A1 WO2020135034 A1 WO 2020135034A1 CN 2019124455 W CN2019124455 W CN 2019124455W WO 2020135034 A1 WO2020135034 A1 WO 2020135034A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- block
- motion information
- sub
- candidate
- current block
- Prior art date
Links
Images
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/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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame 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
-
- 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/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- 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/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- 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
- H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
-
- 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/174—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 slice, e.g. a line of blocks or a group of blocks
-
- 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/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/186—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 a colour or a chrominance component
-
- 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/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
-
- 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/146—Data rate or code amount at the encoder output
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
-
- 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/184—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 bits, e.g. of the compressed video stream
Definitions
- This application relates to video encoding and decoding, in particular to triangle predictive encoding.
- the video encoding method may include prediction, transformation, quantization, filtering, entropy encoding and other processes.
- Predictive coding may include intra prediction coding and inter prediction coding.
- Inter-frame predictive coding refers to predictive coding using reconstructed pixel values of the time-domain neighboring blocks of the current block (in a different frame from the current block).
- Intra-frame predictive coding refers to the use of reconstructed pixel values of spatial neighboring blocks of the current block (in the same frame as the current block) for predictive coding.
- a motion vector may be used to represent the relative displacement between the current block of the current frame and the reference block of the reference frame. For example, there is a strong time-domain correlation between the current frame A and the reference frame B.
- the reference frame B1 that matches the current block A1 most closely can be searched in the reference frame B and determined
- the relative displacement between the current block A1 and the reference block B1 serves as the motion vector of the current block A1.
- the present application provides a video encoding and decoding method, which can be performed by a video encoder or a video decoder, and includes: if the current block satisfies certain conditions for enabling the triangle prediction mode and it is determined that the triangle prediction mode is enabled, dividing the current block Are a first triangular sub-block and a second triangular sub-block; acquiring first target motion information of the first triangular sub-block and second target motion information of the second triangular sub-block, wherein the first target motion The information is different from the second target motion information; the current block is encoded or decoded according to the first target motion information and the second target motion information.
- the present application provides a video decoder including a processor and a machine-readable storage medium, wherein the machine-readable storage medium stores machine-executable instructions that can be executed by the processor; the processor is executing When the machine can execute instructions, the above method can be implemented.
- the present application provides a video encoder including a processor and a machine-readable storage medium, wherein the machine-readable storage medium stores machine-executable instructions that can be executed by the processor; the processor is executing When the machine can execute instructions, the above method can be implemented.
- the present application provides a machine-readable storage medium on which computer instructions are stored.
- the processor causes the processor to implement the above method.
- FIG. 1 is a schematic diagram of a video encoding framework in an embodiment of this application
- FIG. 2 is a flowchart of a video decoding method in an embodiment of this application.
- FIG. 3 is a flowchart of a video encoding method in an embodiment of the present application.
- FIGS. 4A-4B are schematic diagrams of current block division in an embodiment of the present application.
- 5A-5C are schematic diagrams of candidate blocks in an embodiment of the present application.
- 6A-6C are schematic diagrams of dividing sub-blocks in an embodiment of the present application.
- FIGS. 7A-7B are schematic diagrams of storage of exercise information in an embodiment of the present application.
- FIG. 8 is a schematic structural diagram of a video decoder in an embodiment of the present application.
- FIG. 9 is a schematic structural diagram of a video encoder in an embodiment of the present application.
- first, second, third, etc. may be used to describe various information in the embodiments of the present application, the information should not be limited by these terms. These terms are only used to distinguish the same type of information from each other.
- first information may also be referred to as second information, and similarly, the second information may also be referred to as first information.
- word “if” can be interpreted as "when” or "when” or "responsive”.
- Intra prediction use the reconstructed pixel values of the spatial neighboring blocks of the current block (in the same frame as the current block) to perform predictive coding.
- a variety of intra prediction modes have been proposed, and each of the intra prediction modes except DC mode corresponds to a texture direction.
- the predicted pixels of the current block can be generated from the boundary reconstruction pixel values of neighboring blocks in its prediction direction. For example, if the texture of the image is horizontal, then selecting the horizontal prediction mode can better predict the image information.
- Inter prediction Use the reconstructed pixel values of the current block's time-domain neighboring blocks (in a different frame from the current block) for predictive coding.
- the inter-frame prediction part of the main video coding standards adopts block-based motion compensation technology, which finds the best matching block in the reference frame for the current block. This process is called motion estimation (Motion Estimation, ME).
- Motion Vector In inter-frame predictive coding, the motion vector is used to represent the relative displacement between the current coding block and the best matching block in its reference frame. Each divided block has a corresponding motion vector to be transmitted to the decoding end. If the motion vectors of each block are independently encoded and transmitted, especially when divided into small-sized blocks, a considerable number of bits need to be consumed. In order to reduce the number of bits used to encode motion vectors, the spatial correlation between adjacent image blocks is used in video encoding to predict the motion vector of the current block to be encoded according to the motion vectors of adjacent encoded blocks, and then to predict Poor coding. In this way, the number of bits representing the motion vector can be effectively reduced.
- the motion vector of the adjacent coded block is first used to predict the motion vector of the current macroblock, and then the predicted value of the motion vector (MVP, Motion Vector Prediction) and the true motion vector
- MVP Motion Vector Prediction
- the difference between the estimates (MVD, Motion, Vector, Difference) is encoded to effectively reduce the number of MV encoding bits.
- Motion information Since the motion vector represents the displacement of the current image block relative to a block in a reference frame, in order to accurately obtain the information of the pointed image block, in addition to the motion vector, a reference frame index is also required to express Which reference frame is used by the current image block.
- a reference frame list can usually be established, and the reference frame index is used to indicate which reference frame listed in the reference frame list the current image block adopts.
- many coding techniques also support multiple reference frame lists, so an index is needed to indicate which reference frame list to use. This index can be referred to as the reference direction.
- motion-related coding information such as motion vectors, reference frame indexes, and reference directions may be collectively referred to as motion information.
- Rate-Distortion Optimized There are usually two major indicators for evaluating video coding efficiency: bit rate and peak signal-to-noise ratio (Peak Signal to Noise Ratio, PSNR). The smaller the bitstream, the greater the compression ratio; the larger the PSNR, the better the quality of the reconstructed image. Model selection is usually based on a comprehensive evaluation of the two.
- FIG. 1 schematically shows a video encoding framework, which can be used to implement the encoding end processing flow of the embodiment of the present application.
- the video encoding framework may include an intra prediction module, a motion estimation/motion compensation module, a reference frame buffer, an in-loop filtering module, a reconstruction module, a transform module, a quantization module, an inverse transform module, an inverse quantization module, an entropy encoder, and so on.
- the video decoding framework corresponding to the video encoding framework can be used to implement the decoding end processing flow of the embodiment of the present application.
- FIG. 2 is a flowchart of a video decoding method according to an embodiment of the present application. The method can be applied to the decoding end, and can include steps 201 to 203.
- step 201 if the current block meets the specific conditions for enabling the triangle prediction mode and it is determined that the triangle prediction mode is enabled, the video decoder divides the current block into a first triangle sub-block and a second triangle sub-block, that is, the current block The block is divided into two triangular sub-blocks.
- step 202 the video decoder acquires first target motion information of the first triangular sub-block and second target motion information of the second triangular sub-block.
- the first target motion information and the second target motion information may be different.
- step 203 the video decoder decodes the current block according to the first target motion information and the second target motion information.
- the video decoder may decode the encoded data corresponding to the current block in the received encoded bit stream according to the first target motion information and the second target motion information.
- the current block if the current block meets the specific conditions for enabling the triangle prediction mode and it is determined that the triangle prediction mode is enabled, the current block is divided into a first triangle sub-block and a second triangle sub-block, so that the first triangle sub-block is used
- the first target motion information and the second target motion information of the second triangular sub-block predict the current block, which can improve prediction accuracy, improve prediction performance, improve coding performance, and reduce coding residuals.
- FIG. 3 it is a flowchart of a video encoding method in an embodiment of the present application.
- the method may be applied to an encoding end, and may include steps 301 to 303.
- step 301 if the current block meets the specific conditions for enabling the triangle prediction mode and it is determined that the triangle prediction mode is enabled, the video encoder divides the current block into a first triangle sub-block and a second triangle sub-block, that is, the current block The block is divided into two triangular sub-blocks.
- the video encoder acquires first target motion information of the first triangular sub-block and second target motion information of the second triangular sub-block.
- the first target motion information and the second target motion information may be different.
- step 303 the video encoder encodes the current block according to the first target motion information and the second target motion information.
- the video encoder may encode the bitstream corresponding to the current block according to the first target motion information and the second target motion information to obtain an encoded bitstream.
- the current block if the current block meets the specific conditions for enabling the triangle prediction mode and it is determined that the triangle prediction mode is enabled, the current block is divided into a first triangle sub-block and a second triangle sub-block, so that the first triangle sub-block is used
- the first target motion information and the second target motion information of the second triangular sub-block predict the current block, which can improve prediction accuracy, improve prediction performance, improve coding performance, and reduce coding residuals.
- the video decoder/video encoder determines whether the current block satisfies the specific conditions for enabling the triangle prediction mode; if so, the current block is divided into a first triangle subblock and a second triangle subblock; if If not, the current block is not divided into the first triangular sub-block and the second triangular sub-block. Determining whether the current block meets the specific condition may include: determining whether the frame type of the current frame where the current block is located, the motion information mode of the current block, and/or the size information of the current block meet the specific condition.
- the frame type of the current frame where the current block is located is a B frame or a non-I frame, it can be determined that the frame type meets certain conditions. Or, if the frame type of the current frame where the current block is located allows intra-block copying, it can be determined that the frame type meets certain conditions.
- the motion information mode of the current block is the merge mode, it can be determined that the motion information mode meets certain conditions.
- the motion information mode of the current block is another type of mode (such as Advanced Motion Vector Prediction (AMVP) mode, etc.), it can also be determined that the motion information mode meets certain conditions.
- AMVP Advanced Motion Vector Prediction
- the width of the current block is greater than or equal to the first value, and the height of the current block is greater than or equal to the second value, it can be determined that the size information of the current block meets certain conditions. Or, if the width of the current block is greater than or equal to the third value, or the height of the current block is greater than or equal to the fourth value, it may be determined that the size information of the current block meets certain conditions. Or, if the width of the current block is greater than or equal to the fifth value and less than or equal to the sixth value, and the height of the current block is greater than or equal to the seventh value and less than or equal to the eighth value, it can be determined that the size information of the current block meets the specific condition.
- the size of the current block can be determined The information meets certain conditions. Or, if the width of the current block is greater than or equal to the thirteenth value and less than or equal to the fourteenth value, the height of the current block is greater than or equal to the fifteenth value and less than or equal to the sixteenth value, and the area of the current block is greater than or equal to If it is equal to the seventeenth value and less than or equal to the eighteenth value, it can be determined that the size information of the current block meets certain conditions.
- the above values can be set according to experience, such as 8, 16, 32, 64, 128, etc.
- the first value may be 8, the second value may be 8, the third value may be 8, the fourth value may be 8, the fifth value may be 8, the sixth value may be 128 ,
- the seventh value can be 8, the eighth value can be 128, the ninth value can be 8, the tenth value can be 32, the eleventh value can be 8, the twelfth value can be 32, and the thirteenth value can be Is 8, the fourteenth value can be 64, the fifteenth value can be 8, the sixteenth value can be 64, the seventeenth value can be 16, and the eighteenth value can be 1024.
- step 201 and step 301 several specific examples are described below.
- Example 1 If the current block satisfies all the following conditions, the current block is divided into the first triangle sub-block and the second triangle sub-block; otherwise, the current block is not divided into the first triangle sub-block and the second triangle sub-block:
- the current frame is a B frame, that is, two reference frame lists are allowed in the current frame;
- the motion information mode of the current block is the merge mode
- the area (width*height) of the current block is greater than or equal to N*N, where N is 8, for example.
- Example 2 If the current block satisfies all the following conditions, the current block is divided into the first triangular sub-block and the second triangular sub-block; otherwise, the current block is not divided into the first triangular sub-block and the second triangular sub-block:
- the current frame is a non-I frame, that is, at least one reference frame list is allowed in the current frame;
- the motion information mode of the current block is the merge mode
- the area (width*height) of the current block is greater than or equal to N*N, where N is 8, for example.
- Example 3 If the current block satisfies all the following conditions, the current block is divided into the first triangle sub-block and the second triangle sub-block; otherwise, the current block is not divided into the first triangle sub-block and the second triangle sub-block:
- the current frame is a B frame, that is, two reference frame lists are allowed in the current frame;
- the motion information mode of the current block is the merge mode
- the width or height of the current block is greater than or equal to N, and N is 8, for example.
- Example 4 If the current block satisfies all the following conditions, the current block is divided into the first triangular sub-block and the second triangular sub-block; otherwise, the current block is not divided into the first triangular sub-block and the second triangular sub-block:
- the current frame is a non-I frame, that is, at least one reference frame list is allowed in the current frame;
- the motion information mode of the current block is the merge mode
- the width or height of the current block is greater than or equal to N, and N is 8, for example.
- Example 5 If the current block satisfies all the following conditions, the current block is divided into the first triangle sub-block and the second triangle sub-block; otherwise, the current block is not divided into the first triangle sub-block and the second triangle sub-block:
- the current frame is a non-I frame, that is, at least one reference frame list is allowed in the current frame;
- the motion information mode of the current block is the merge mode
- the width or height of the current block is greater than or equal to N, where N is, for example, 8; and
- the width or height of the current block is less than or equal to M, and M is 128, for example.
- Example 6 If the current block satisfies all the following conditions, the current block is divided into the first triangle sub-block and the second triangle sub-block; otherwise, the current block is not divided into the first triangle sub-block and the second triangle sub-block:
- the current frame is a non-I frame, that is, at least one reference frame list is allowed in the current frame;
- the motion information mode of the current block is the merge mode
- the width or height of the current block is greater than or equal to N, where N is, for example, 8; and
- the area (ie width*height) of the current block is less than or equal to M*M, where M is 32, for example.
- Example 7 If the current block satisfies all the following conditions, the current block is divided into the first triangular sub-block and the second triangular sub-block; otherwise, the current block is not divided into the first triangular sub-block and the second triangular sub-block:
- the current frame is a non-I frame, that is, at least one reference frame list is allowed in the current frame;
- the motion information mode of the current block is the merge mode
- the width of the current block is in the range of [Wmin, Wmax], Wmin is for example 8, Wmax is for example 64;
- the height of the current block is in the range [Hmin, Hmax], for example, Hmin is 8, and Hmax is, for example, 64; and
- the area (ie width*height) of the current block is in the range of [Smin, Smax], where Smin is, for example, 16, and Smax is, for example, 1024.
- Example 8 For any one of Examples 1 to 7, the restrictions on the frame type can be modified to: the current frame allows the use of intra-frame block copy (ie, allows searching and decoding in the decoded reconstruction block of the current frame Blocks similar to blocks). For example, for example 1, the listed conditions can become:
- the current frame allows the use of intra-block copy
- the motion information mode of the current block is the merge mode
- the area (width*height) of the current block is greater than or equal to N*N, where N is 8, for example.
- Example 9 For any of Examples 1 to 8, the restriction on the motion information mode can be modified to: the motion information mode of the current block is the merge mode, and the sub-block division mode, multiple hypothesis mode, and encoded motion are not used Any of the merge modes with poor information. That is to say, when any one of the sub-block division mode, multi-hypothesis mode, and merge mode with poor encoding motion information is turned on for the current block, it is determined that the current block does not meet certain conditions, and thus the current block is not divided into The first triangle sub-block and the second triangle sub-block.
- the video decoder/video encoder divides the current block into a first triangle subblock and a second triangle subblock .
- the current block may be divided into a first triangular sub-block and a second triangular sub-block according to the main diagonal method (that is, a diagonal line at an acute angle (for example, an angle of 45 degrees) from the horizontal to the right), such as This is shown in Figure 4A.
- the current block can be divided into a first triangular sub-block and a second triangular sub-block in a sub-diagonal manner (ie, a diagonal line with an obtuse angle (for example, an angle of 135 degrees) from the horizontal to the right), as shown in the figure 4B.
- a sub-diagonal manner ie, a diagonal line with an obtuse angle (for example, an angle of 135 degrees) from the horizontal to the right
- the current block may be divided into a first triangular sub-block and a second triangular sub-block in the following manner:
- Method 1 By default, the video encoder divides the current block according to the main diagonal mode by agreement, and by default, the video decoder divides the current block according to the main diagonal mode by agreement. On this basis, the video encoder can divide the current block into the first triangle sub-block and the second triangle sub-block according to the main diagonal way, and the video decoder can divide the current block into the first triangle according to the main diagonal way Sub-blocks and second triangle sub-blocks.
- Method 2 By default, the video encoder divides the current block according to the sub-diagonal mode by agreement, and by default, the video decoder divides the current block according to the sub-diagonal mode by agreement. On this basis, the video encoder can divide the current block into the first triangular sub-block and the second triangular sub-block according to the sub-diagonal method, and the video decoder can divide the current block into the first triangular according to the sub-diagonal method. Sub-blocks and second triangle sub-blocks.
- the video encoder determines the rate-distortion cost 1 corresponding to the main diagonal division and the rate-distortion cost 2 corresponding to the sub-diagonal division. If the rate-distortion cost 1 is less than the rate-distortion cost 2, the video encoder divides the current block into a first triangular sub-block and a second triangular sub-block in a main diagonal manner.
- the encoded bit stream sent by the video encoder to the decoding end carries first indication information, and the first indication information is used to indicate that the current block is divided according to the main diagonal manner.
- the video decoder parses the encoded bit stream from the encoding end.
- the video encoder divides the current block into a first triangular sub-block and a second triangular sub-block in a main diagonal manner.
- the video encoder divides the current block into a first triangular sub-block and a second triangular sub-block in a sub-diagonal manner.
- the encoded bit stream sent by the video encoder to the decoding end carries second indication information, and the second indication information is used to indicate that the current block is divided according to the sub-diagonal manner.
- the video decoder parses the encoded bit stream from the encoding end. If the encoded bit stream carries the second indication information, the current block is divided into a first triangular sub-block and a second triangular sub-block in a sub-diagonal manner.
- the video decoder/video encoder may acquire the first target motion information of the first triangular sub-block and the second target motion information of the second triangular sub-block in the following manner:
- Method 1 Construct a first candidate motion information list, which may include a plurality of candidate motion information; select one candidate motion information from the first candidate motion information list as the first target of the first triangular sub-block Motion information; exclude first target motion information from the first candidate motion information list, and select one candidate motion information from the remaining candidate motion information of the first candidate motion information list as the second target motion of the second triangular sub-block Information, in this way, it can be ensured that the first target motion information is different from the second target motion information.
- each candidate block corresponding to the current block may be obtained, and the motion information of each candidate block may be added to the first candidate motion information list, where, if the candidate block is unidirectional Prediction block, the motion information of the candidate block includes the unidirectional motion information of the candidate block; if the candidate block is a bidirectional prediction block, the motion information of the candidate block includes the first motion information of the candidate block (that is, the L0 motion information of the candidate block) and And/or the second motion information of the candidate block (that is, the L1 motion information of the candidate block), but does not include the weighted motion information of the first motion information of the candidate block and the second motion information of the candidate block.
- the blocks at the 7 positions shown can be used as candidate blocks corresponding to the current block, where block 1, block 2, block 3, block 4, and block 5 are candidate blocks in the current frame (ie, the spatial domain Candidate blocks), and blocks 6 and 7 are candidate blocks in the reference frame (ie, time-domain candidate blocks).
- the motion information of the candidate blocks at these 7 positions can be collected to construct a first candidate motion information list.
- the non-adjacent sub-blocks in the spatial domain are also regarded as candidate blocks corresponding to the current block).
- the non-adjacent sub-blocks in the spatial domain refer to sub-blocks that have no boundary line or boundary point with the current block.
- the motion information of the candidate block after the motion information of the candidate block is collected, it can be in the order of unidirectional motion information, bidirectionally predicted L0 motion information, bidirectionally predicted L1 motion information, or bidirectionally predicted L0 motion information, bidirectionally predicted L1
- the collected motion information is sorted, and the collected motion information is added to the first candidate motion information list one by one according to the sorting result.
- each time motion information is added to the first candidate motion information list it may be determined whether the number of candidate motion information in the first candidate motion information list has reached the upper limit value M. If yes, refuse to add sports information and end the process of adding sports information. If not, you can continue to add sports information. After the current sports information is added, continue to add the next sports information to the first candidate sports information list.
- the value of the upper limit M can be configured according to experience, for example, 5.
- each time when adding sports information to the first candidate sports information list it can be determined whether the sports information and the existing sports information in the first candidate sports information list are duplicated. If they are repeated, the motion information is rejected It is added to the first candidate motion information list. If it is not repeated, the motion information is added to the first candidate motion information list. In this way, the same two pieces of motion information in the first candidate motion information list can be avoided. Alternatively, it is not necessary to judge whether the motion information to be added overlaps with the existing motion information in the first candidate motion information list, but to directly add the motion information to the first candidate motion information list.
- zero motion information can be used to fill The first candidate motion information list.
- the motion information of the candidate block of the current block is collected, there is no need to compare whether the motion information of the candidate block is consistent with the motion information already collected for the current block, Instead, the motion information of the candidate block is directly collected.
- Example 1 From the candidate blocks corresponding to the current block, after acquiring motion information (such as motion vectors) according to the position sequence shown in FIG. 5A, according to unidirectional motion vectors, bidirectionally predicted L0 motion vectors, bidirectionally predicted L1 motion vectors (The average of the L0 motion vector and L1 motion vector without bidirectional prediction sorts the acquired motion information, and adds the acquired motion information to the first candidate motion information list one by one according to the sorting result. During the filling process, if the number of candidate motion information in the first candidate motion information list reaches M (for example, 5), then the filling is stopped. Duplicate checking is required during the filling process to ensure that the first candidate motion information list does not have the same motion information. When the amount of candidate motion information is less than M after the filling process is completed, zero motion vector filling is used.
- M for example, 5
- Example 2 From the candidate blocks corresponding to the current block, after acquiring motion information (such as motion vectors) according to the position sequence shown in FIG. 5A, according to unidirectional motion vectors, bidirectionally predicted L0 motion vectors, and bidirectionally predicted L1 motion vectors (The average of the L0 motion vector and L1 motion vector without bidirectional prediction sorts the acquired motion information, and adds the acquired motion information to the first candidate motion information list one by one according to the sorting result. During the filling process, if the number of candidate motion information in the first candidate motion information list reaches M (for example, 5), the motion information filling process is stopped. During the filling process, there is no need to double-check the motion information in the first candidate motion information list. When the amount of candidate motion information is less than M after the filling process is completed, zero motion vector filling is used.
- M for example, 5
- Example 3 From the candidate blocks corresponding to the current block, after acquiring motion information (such as motion vectors) according to the position sequence shown in FIG. 5A, the bidirectionally predicted L0 motion vector, bidirectionally predicted L1 motion vector, and unidirectional motion vector (The average of the L0 motion vector and L1 motion vector without bidirectional prediction sorts the acquired motion information, and adds the acquired motion information to the first candidate motion information list one by one according to the sorting result. During the filling process, if the number of candidate motion information in the first candidate motion information list reaches M (for example, 5), then the filling is stopped. Duplicate checking is required during the filling process to ensure that the first candidate motion information list does not have the same motion information. When the amount of candidate motion information is less than M after the filling process is completed, zero motion vector filling is used.
- M for example, 5
- Example 4 From the candidate blocks corresponding to the current block, the motion information (such as motion vectors) is acquired in the position order shown in FIG. 5A. If the candidate block is a unidirectional prediction block, that is, the candidate block uses unidirectional motion information, the unidirectional motion information is directly added to the first candidate motion information list in order. If the candidate block is a bidirectional prediction block, that is, the candidate block uses bidirectional motion information, then L0 motion information or L1 motion information is selected and added to the first candidate motion information list in order. During the filling process, if the number of candidate motion information in the first candidate motion information list reaches M (for example, 5), then the filling is stopped. Duplicate checking is required during the filling process to ensure that the first candidate motion information list does not have the same motion information. When the amount of candidate motion information is less than M after the filling process is completed, zero motion vector filling is used.
- M for example, 5
- Example 5 If the length of the first candidate motion information list constructed after traversing all the candidate blocks shown in FIG. 5A does not reach the preset maximum length MaxL (for example, 7), the first candidate motion information list At the end, add several pieces of available motion information of non-adjacent sub-blocks in the spatial domain, where the non-adjacent sub-blocks in the spatial domain refer to sub-blocks that have no boundary line or boundary point with the current block.
- MaxL for example 7
- Example 6 From the candidate blocks corresponding to the current block, after acquiring motion information (such as motion vectors) according to the position sequence shown in FIG. 5A, according to unidirectional motion vectors, bidirectionally predicted L0 motion vectors, bidirectionally predicted L1 motion vectors (The average of the L0 motion vector and L1 motion vector without bidirectional prediction sorts the acquired motion information, and adds the acquired motion information to the first candidate motion information list one by one according to the sorting result. During the filling process, if the number of candidate motion information in the first candidate motion information list reaches M (for example, 5), then the motion information filling process is stopped.
- M for example, 5
- Example 7 When adding motion information to the first candidate motion information list, two processes are involved, one process is a motion information collection process, that is, collecting motion information of a candidate block, and the other process is a process of adding motion information, that is, motion information Added to the first candidate motion information list.
- a motion information collection process that is, collecting motion information of a candidate block
- the other process is a process of adding motion information, that is, motion information Added to the first candidate motion information list.
- the following describes an embodiment of the sports information collection process.
- the process of collecting the motion information of the candidate block it can be compared whether the motion information of the current candidate block is completely the same as the previously collected motion information. If it is the same, the process of collecting the motion information of the current candidate block is skipped. In this embodiment, only the motion information of the current candidate block may be compared with the motion information of the candidate block closer to the current candidate block.
- the motion information of candidate block 1 is collected. Since candidate block 1 is the first candidate block, there is no need to compare, and the motion information of candidate block 1 is directly collected.
- the candidate block 1 when collecting the motion information of the candidate block 2, it can be judged whether the candidate block 1 is available. If available, it can be compared whether the motion information of candidate block 2 and the motion information of candidate block 1 are exactly the same. If they are exactly the same, the motion information of candidate block 2 is not collected, and if they are not the same, the motion information of candidate block 2 is collected.
- the motion information of the candidate block 3 when collecting the motion information of the candidate block 3, it can be judged whether the candidate block 2 closer to the candidate block 3 is available. If available, it can be compared whether the motion information of candidate block 3 and the motion information of candidate block 2 are exactly the same. If they are completely the same, the motion information of the candidate block 3 is not collected, and if they are not the same, the motion information of the candidate block 3 is collected. It should be noted that the motion information of the candidate block 3 is no longer compared with the motion information of the candidate block 1 farther from the candidate block 3 here.
- the motion information of the candidate block 4 when collecting the motion information of the candidate block 4, it can be judged whether the candidate block 1 closer to the candidate block 4 is available. If available, it can be compared whether the motion information of candidate block 4 and the motion information of candidate block 1 are exactly the same. If they are exactly the same, the motion information of the candidate block 4 is not collected, and if they are not the same, the motion information of the candidate block 4 is collected. It should be noted that the motion information of the candidate block 4 is no longer compared with the motion information of the candidate blocks 2 and 3 farther from the candidate block 4 here.
- the candidate block 1 closer to the candidate block 5 it can be judged whether the candidate block 1 closer to the candidate block 5 is available. If available, it can be compared whether the motion information of candidate block 5 and the motion information of candidate block 1 are exactly the same. If they are exactly the same, the motion information of candidate block 5 is not collected. If they are not the same, it can be judged whether the candidate block 2 closer to the candidate block 5 is available. If available, it can be compared whether the motion information of candidate block 5 and the motion information of candidate block 2 are exactly the same. If they are completely the same, the motion information of the candidate block 5 is not collected, and if they are not the same, the motion information of the candidate block 5 is collected. It should be noted that the motion information of the candidate block 5 is no longer compared with the motion information of the candidate blocks 3 and 4 farther from the candidate block 5 here.
- Example 8 In the process of collecting the motion information of the candidate block, it is not necessary to compare whether the motion information of the current candidate block is exactly the same as the previously collected motion information, but directly collect the motion information of the current candidate block. Even if the motion information of the current candidate block is exactly the same as the motion information that has been previously collected, it may be possible to avoid the same motion information in the first candidate motion information list through a repeat operation afterwards.
- the video encoder may agree on the first target motion information by agreement, for example, the video encoder may default that the first candidate motion information in the first candidate motion information list is the first target motion information of the first triangular sub-block .
- the video decoder may default to the first target motion information through a protocol.
- the video decoder may default that the first candidate motion information in the first candidate motion information list is the first target motion information of the first triangular sub-block.
- the video encoder may determine the rate-distortion cost corresponding to each candidate motion information in the first candidate motion information list, and use the candidate motion information corresponding to the minimum rate-distortion cost as the first target motion information of the first triangular sub-block .
- the encoded bit stream sent by the video encoder to the decoding end may carry third indication information, where the third indication information is used to indicate the index value of the first target motion information in the first candidate motion information list.
- the video decoder can parse the encoded bit stream from the encoding end. If the encoded bit stream carries the third indication information, then use the index value indicated by the third indication information to retrieve the corresponding candidate motion information from the first candidate motion information list, and The candidate motion information is used as the first target motion information.
- the video encoder may agree on the default second target motion information through a protocol, for example, the video encoder defaults that the second candidate motion information in the first candidate motion information list is the second target motion information of the second triangular sub-block.
- the video decoder may default to the second target motion information through a protocol.
- the video decoder may default that the second candidate motion information in the first candidate motion information list is the second target motion information of the second triangular sub-block.
- the video encoder may exclude the first target motion information from the first candidate motion information list (that is, the first target motion information in the first candidate motion information list is not selected). On this basis, the video encoder may determine The rate distortion cost corresponding to each candidate motion information remaining in the first candidate motion information list (that is, the candidate motion information remaining after excluding the first target motion information), and using the candidate motion information corresponding to the minimum rate distortion cost as the second triangle The second target motion information of the sub-block.
- the encoded bit stream sent by the video encoder to the decoding end may carry fourth indication information, where the fourth indication information is used to indicate the index value of the second target motion information in the first candidate motion information list.
- the video decoder can parse the encoded bit stream from the encoding end. If the encoded bit stream carries the fourth indication information, then use the index value indicated by the fourth indication information to retrieve the corresponding candidate motion information from the first candidate motion information list, and The candidate motion information is used as second target motion information.
- the video decoder/video encoder may acquire the first target motion information of the first triangular sub-block and the second target motion information of the second triangular sub-block in the following manner:
- Method 2 Construct a second candidate motion information list corresponding to the first triangular sub-block, construct a third candidate motion information list corresponding to the second triangular sub-block, the second candidate motion information list includes a plurality of candidate motion information, the third The candidate motion information list includes a plurality of candidate motion information; one candidate motion information is selected from the second candidate motion information list as the first target motion information of the first triangular sub-block, and one candidate motion information is selected from the third candidate motion information list As the second target motion information of the second triangular sub-block, the first target motion information is different from the second target motion information.
- each first candidate block corresponding to the first triangular sub-block may be acquired, and the motion information of each first candidate block may be added to the second In the candidate motion information list, if the first candidate block is a unidirectional prediction block, the motion information of the first candidate block includes the unidirectional motion information of the first candidate block; if the first candidate block is a bidirectional prediction block, the first The motion information of a candidate block includes first motion information of the first candidate block (that is, L0 motion information of the first candidate block) and/or second motion information of the first candidate block (that is, L1 motion information of the first candidate block) , But does not include the weighted motion information of the first motion information of the first candidate block and the second motion information of the first candidate block.
- each second candidate block corresponding to the second triangular sub-block may be obtained, and the motion information of each second candidate block may be added to the third A list of candidate motion information, where, if the second candidate block is a unidirectional prediction block, the motion information of the second candidate block includes unidirectional motion information of the second candidate block; if the second candidate block is a bidirectional prediction block, the second The motion information of the candidate block includes first motion information of the second candidate block (that is, L0 motion information of the second candidate block) and/or second motion information of the second candidate block (that is, L1 motion information of the second candidate block), However, it does not include the weighted motion information of the first motion information of the second candidate block and the second motion information of the second candidate block.
- the first triangle sub-block is the triangle sub-block on the upper right side
- the second triangle sub-block is the triangle sub-block on the lower left side
- the first candidate block corresponding to the first triangular sub-block may include, but is not limited to: an adjacent block on the upper side of the current block, and a time-domain candidate block in a frame other than the current frame where the current block is located.
- the second candidate block corresponding to the second triangle sub-block may include, but is not limited to: a neighboring block to the left of the current block, and a time-domain candidate block in a frame other than the current frame where the current block is located.
- the blocks at the five positions shown in FIG. 5B can be used as the first candidate blocks corresponding to the first triangular sub-block, where block 2, block 3, and block 5 are candidate blocks in the current frame, and block 6 and block 7 is a candidate block in other frames (immediate domain candidate block).
- the blocks at the five positions shown in FIG. 5C can be used as the second candidate blocks corresponding to the second triangular sub-block, where block 1, block 4 and block 5 are candidate blocks in the current frame, while block 6 and block 7 are Candidate blocks in other frames (immediate domain candidate blocks).
- motion information of candidate blocks may be collected. If the candidate block is a unidirectional prediction block, the candidate block's motion information includes the candidate block's unidirectional motion information; if the candidate block is a bidirectional prediction block, the candidate block's motion information includes the candidate block's L0 motion information and/or candidate block L1 motion information, but does not include the weighted motion information of the candidate block's L0 motion information and the candidate block's L1 motion information.
- the collected motion information may be in the order of unidirectional motion information, bidirectionally predicted L0 motion information, and bidirectionally predicted L1 motion information.
- the collected motion information may be sorted in the order of bidirectionally predicted L0 motion information, bidirectionally predicted L1 motion information, and unidirectional motion information, and each motion information is sequentially added to the second candidate motion information according to the sorting result List or third candidate motion information list.
- each time when adding sports information to the second candidate sports information list or the third candidate sports information list it may be determined whether the number of sports information in the second candidate sports information list or the third candidate sports information list has reached Upper limit M. If yes, refuse to add sports information and end the process of adding sports information. If not, continue to add sports information. After the current sports information is added, continue to add the next sports information to the second candidate sports information list or the third candidate sports information list.
- the upper limit M is, for example, 4.
- each time when adding motion information to the second candidate motion information list or the third candidate motion information list it can be determined that the motion information and the second candidate motion information list or the third candidate motion information list already exist Whether the motion information is repeated. If it is repeated, it is refused to add the motion information to the second candidate motion information list or the third candidate motion information list, if it is not repeated, the motion information is added to the second candidate motion information list or the third candidate motion information list in. In this way, duplicate motion information in the second candidate motion information list or the third candidate motion information list can be avoided. Alternatively, it is possible to directly add the motion information to the second candidate motion information list or the third candidate motion information list without judging whether the motion information is repeated.
- the second candidate motion information list or the third candidate motion information list may be filled with zero motion information.
- each time the motion information of the candidate block of the current block is collected there is no need to compare the motion information of the candidate block with the already collected for the current block Whether the obtained motion information is consistent, but directly collect the motion information of the candidate block.
- Examples 1 to 8 in Embodiment 5 above can also be applied to Embodiment 6, except that the first candidate motion information list becomes the second candidate motion information list or the third candidate motion information list.
- the candidate block shown in FIG. 5A becomes the candidate block shown in FIG. 5B or FIG. 5C.
- Other processes are similar and will not be repeated here.
- the video encoder may agree on the default first target motion information through a protocol, for example, the video encoder defaults that the first candidate motion information in the second candidate motion information list is the first target motion information of the first triangular sub-block.
- the video decoder may default to the first target motion information through a protocol.
- the video decoder may default that the first candidate motion information in the second candidate motion information list is the first target motion information of the first triangular sub-block.
- the video encoder may determine the rate-distortion cost corresponding to each candidate motion information in the second candidate motion information list, and use the candidate motion information corresponding to the minimum rate-distortion cost as the first target motion information of the first triangular sub-block .
- the encoded bit stream sent by the video encoder to the decoding end may carry fifth indication information, where the fifth indication information is used to indicate the index value of the first target motion information in the second candidate motion information list.
- the video decoder can parse the encoded bit stream from the encoding end. If the encoded bit stream carries fifth indication information, then use the index value indicated by the fifth indication information to retrieve the corresponding candidate motion information from the second candidate motion information list, and The candidate motion information is used as the first target motion information.
- the video encoder may agree on the default second target motion information through a protocol, for example, the video encoder defaults that the first candidate motion information in the third candidate motion information list is the second target motion information of the second triangular sub-block.
- the video decoder may stipulate the default second target motion information through a protocol. For example, the decoding end may default that the first candidate motion information in the third candidate motion information list is the second target motion information of the second triangular sub-block.
- the video encoder may determine the rate distortion cost corresponding to each candidate motion information in the third candidate motion information list, and use the candidate motion information corresponding to the minimum rate distortion cost as the second target motion information of the second triangular sub-block .
- the encoded bit stream sent by the video encoder to the decoding end may carry sixth indication information, where the sixth indication information is used to indicate the index value of the second target motion information in the third candidate motion information list.
- the video decoder can parse the encoded bit stream from the encoding end. If the encoded bit stream carries sixth indication information, then use the index value indicated by the sixth indication information to retrieve the corresponding candidate motion information from the third candidate motion information list, and The candidate motion information is used as second target motion information.
- a first candidate motion information list can be constructed in step 202/step 302 and based on The first candidate motion information list determines the first target motion information and the second target motion information, that is, Embodiment 5 can be adopted.
- step 201/step 301 the current block is divided into a first triangular sub-block and a second triangular sub-block in a sub-diagonal manner
- step 202/step 302 the third block corresponding to the first triangular sub-block can be constructed
- Two candidate motion information lists construct a third candidate motion information list corresponding to the second triangular sub-block, and determine the first target motion information based on the second candidate motion information list, and determine the second target motion information based on the third candidate motion information list , That is, Embodiment 6 can be used.
- Embodiment 5 can be adopted whether the current block is divided according to the main diagonal mode or the current block is divided according to the sub-diagonal mode. In another example, if the current block is divided according to the main diagonal manner, that is, the current block is divided according to the direction of 45 degrees, Embodiment 5 may be used, and the upper limit M is 4, for example. If the current block is divided according to the subdiagonal manner, that is, the current block is divided according to the direction of 135 degrees, Embodiment 6 may be used.
- the first triangular sub-block is the upper-right triangular sub-block.
- the first candidate blocks of the first triangular sub-block are block 2, block 3, block 5, block 6, and block 7 in order, that is, blocks 1 and 4 that are farther away from the first triangular sub-block are excluded.
- the second candidate blocks of the second triangular sub-block are block 1, block 4, block 5, block 6, and block 7, in order to exclude blocks 2 and 3 that are farther away from the second triangular sub-block.
- the upper limit value M may be 4, for example.
- one flag bit can be encoded to indicate whether to divide at a 45 degree angle or at a 135 degree angle. If divided at a 45-degree angle, M*(M-1) combined indexes can be encoded according to truncated unary codes; if divided at a 135-degree angle, M*M combined indexes can be encoded according to truncated unary codes.
- the motion information index is an index of M*(M-1) combinations.
- Embodiment 6 If it is divided at an angle of 135 degrees, and Embodiment 6 is adopted (ie, the first target motion information is selected from the second candidate motion information list and the second target motion information is selected from the third candidate motion information list), then the second There are M candidate motion information in the candidate motion information list (M is 4), there are M possible choices for the first target motion information, and there are M candidate motion information in the third candidate motion information list (M is 4) There are M possible choices for the second target motion information. Therefore, the motion information index is an index of M*M combinations.
- the first triangular sub-block Motion compensation of the block and the second triangle sub-block After acquiring the first target motion information of the first triangular sub-block and the second target motion information of the second triangular sub-block, the first triangular sub-block Motion compensation of the block and the second triangle sub-block:
- Method 1 The current block is divided into multiple sub-blocks, the width of each sub-block is greater than or equal to 2, and the height of each sub-block is greater than or equal to 2.
- the sub-block is motion compensated according to the first target motion information of the first triangular sub-block to obtain a predicted value; if the sub-block is located Within the second triangular sub-block, the sub-block is motion compensated according to the second target motion information of the second triangular sub-block to obtain a predicted value; if the sub-block is neither completely within the first triangular sub-block nor Is completely within the second triangular sub-block (that is, the sub-block is located on the diagonal dividing the first triangular sub-block and the second triangular sub-block), according to the first target motion information and the first The second target motion information of the two-triangular sub-block performs weighted compensation on the sub-block to obtain a predicted value.
- the weighted compensation may include: determining the first prediction value of the sub-block according to the first target motion information; determining the second prediction value of the sub-block according to the second target motion information; according to the first prediction value, The first weight coefficient corresponding to the first predicted value, the second predicted value, and the second weight coefficient corresponding to the second predicted value perform weighted compensation on the sub-block.
- the current block may be divided into sub-block 1, sub-block 2, sub-block 3, and sub-block 4.
- the current block may be divided into more sub-blocks, as long as the width of each sub-block is greater than or equal to 2, and the height of each sub-block is greater than or equal to 2.
- the following uses the sub-block division shown in FIG. 6A as an example for description.
- sub-block 2 since sub-block 2 is located in the first triangular sub-block, motion compensation is performed on sub-block 2 using the first target motion information to obtain a predicted value.
- the second target motion information is used to perform motion compensation on the sub-block 3 to obtain a predicted value.
- the first prediction value P1 of sub-block 1 is determined according to the first target motion information
- the second prediction value P2 of the sub-block 1 is determined according to the second target motion information.
- subblock 1 is weighted and compensated according to P1, a, P2, and b.
- the predicted value of the sub-block 1 is, for example, P1*a+P2*b.
- the motion compensation for sub-block 4 is similar to the motion compensation for sub-block 1 described above, and will not be repeated here.
- Manner 2 Divide the current block into a first region sub-block, a second region sub-block and a third region sub-block, where the first region sub-block is located in the first triangle sub-block and the second region sub-block is located in the second triangle Within the sub-block, the distance between the center of each sub-block in the third area sub-block and the diagonal line dividing the first triangular sub-block and the second triangular sub-block is less than a preset threshold; according to the first target of the first triangular sub-block Motion information performs motion compensation on each sub-block within the first region sub-block; performs motion compensation on each sub-block within the second region sub-block according to the second target motion information of the second triangular sub-block; according to the first The target motion information and the second target motion information perform weighted compensation for each sub-block in the third region sub-block.
- the weighted compensation may include: for each sub-block in the third region sub-block, determine the first prediction value of the sub-block according to the first target motion information, and determine the second of the sub-block according to the second target motion information Prediction value; according to the first prediction value, the first weight coefficient corresponding to the first prediction value, the second prediction value, and the second weight coefficient corresponding to the second prediction value, perform Weighted compensation, wherein, if the sub-block is located in the first triangular sub-block, the first weight coefficient is greater than the second weight coefficient; if the sub-block is located in the second triangular sub-block, the first weight coefficient is less than the second Weight coefficient; if the sub-block is located on a diagonal line dividing the first triangle sub-block and the second triangle sub-block, the first weight coefficient is equal to the second weight coefficient.
- Each sub-block in the third-region sub-block may be a 1*1 sub-block, that is, a single pixel block, or an N*M sub-block.
- N may be greater than or equal to 1
- M may also be greater than or equal to 1.
- the current block may be divided into a first region sub-block, a second region sub-block, and a third region sub-block.
- the first region sub-block is located in the first triangle sub-block, so the first target motion information of the first triangle sub-block can be used to perform motion compensation on each sub-block in the first region sub-block to obtain a predicted value.
- the second region sub-block is located in the second triangle sub-block, so the second target motion information of the second triangle sub-block can be used to perform motion compensation on each sub-block in the second region sub-block to obtain a predicted value.
- the third region sub-block may include a sub-block labeled 1, a sub-block labeled 2, a sub-block labeled 4, a sub-block labeled 6, and a sub-block labeled 7.
- the first predicted value P1 of the sub-block 7 can be determined according to the first target motion information
- the second predicted value of the sub-block 7 can be determined according to the second target motion information P2.
- the predicted value of the weighted and compensated sub-block 7 may be: P1*a+P2*b.
- the first weight coefficient a is larger than the second weight coefficient b.
- the predicted value of weighted compensated sub-block 7 is P1*7/8+P2*1/8.
- the weighted compensation process is similar to the weighted compensation process for sub-block 7. Since the sub-block 6 is located in the first triangular sub-block, the first weight coefficient a is larger than the second weight coefficient b. In addition, since the sub-block 6 is closer to the second region sub-block than the sub-block 7, the first weight coefficient a of the sub-block 6 may be smaller than the first weight coefficient a of the sub-block 7. For example, the first weight coefficient a of the sub-block 6 is 6/8, the second weight coefficient b is 2/8, and the predicted value of the weighted compensated sub-block 6 is P1*6/8+P2*2/8.
- the weighted compensation process is similar to the weighted compensation process for sub-block 7. Since the sub-block 4 is located on the diagonal dividing the first triangular sub-block and the second triangular sub-block, the first weight coefficient a is equal to the second weight coefficient b. For example, a is 4/8, b is 4/8, and the predicted value of the weighted sub-block 4 is P1*4/8+P2*4/8.
- the weighted compensation process is similar to that for sub-block 7. Since the sub-block 2 is located in the second triangular sub-block, the first weight coefficient a is smaller than the second weight coefficient b. For example, a is 2/8, b is 6/8, and the predicted value of weighted compensated sub-block 2 is P1*2/8+P2*6/8.
- the weighted compensation process is similar to the weighted compensation process for sub-block 7. Since sub-block 1 is located in the second triangular sub-block, the first weight coefficient a is smaller than the second weight coefficient b. In addition, since sub-block 1 is closer to the second-region sub-block than sub-block 2, the first weight coefficient a of sub-block 1 may be smaller than the first weight coefficient a of sub-block 2. For example, the first weight coefficient a of sub-block 1 is 1/8, the second weight coefficient b is 7/8, and the predicted value of sub-block 1 after weight compensation is P1*1/8+P2*7/8.
- the sum of the first weight coefficient a and the second weight coefficient b of each sub-block is 1.
- the sub-blocks closer to the sub-blocks in the first region have larger first weight coefficients a and smaller second weight coefficients b.
- the sub-blocks closer to the sub-blocks in the second region have smaller first weight coefficients a and larger second weight coefficients b.
- a first set of weight coefficients may be configured for the luminance component.
- the first weight coefficient a of the luminance component of each sub-block is 7/8, 6/8, 4/8, 2/8, 1/ 8.
- the first weight coefficient a of the luminance component of the sub-block 7 is 7/8
- the first weight coefficient a of the luminance component of the sub-block 6 is 6/8
- the first weight of the luminance component of the sub-block 4 The coefficient a is 4/8
- the first weight coefficient a of the luminance component of sub-block 2 is 2/8
- the first weight coefficient a of the luminance component of sub-block 1 is 1/8.
- a second set of weight coefficients may be configured for the luminance component.
- the first weight coefficient a of the luminance component of each sub-block is 7/8, 6/8, 5/8, 4/8, 3/ 8, 2/8, 1/8.
- the first weight coefficient a of the luminance component of the sub-block 7 is 7/8
- the first weight coefficient a of the luminance component of the sub-block 6 is 6/8
- the sub-block 5 (the sub-block 5 may be located in the sub-block Between block 4 and sub-block 6, the first weight coefficient a of the luminance component of sub-block 5) is not shown in FIG. 6B is 5/8
- the first weight coefficient a of the luminance component of sub-block 4 is 4/8
- the first weight coefficient a of the luminance component of sub-block 3 (sub-block 3 may be located between sub-block 2 and sub-block 4, sub-block 3 is not shown in FIG.
- both the first predicted value P1 and the second predicted value P2 are luminance predicted values, and the weighted and compensated predicted values P1*a+P2*b are also predicted luminance values.
- a first set of weight coefficients may be configured for the chroma component.
- the first weight coefficient a of the chroma component of each sub-block is 7/8, 4/8, 1/8 in turn.
- the first weight coefficient a of the chroma component of sub-block 7 is 7/8
- the first weight coefficient a of the chroma component of sub-block 4 is 4/8
- the The first weight coefficient a is 1/8.
- a second set of weight coefficients may be configured for the chroma component.
- the first weight coefficient a of the chroma component of each sub-block is 6/8, 4/8, 2/8 in sequence.
- the first weight coefficient a of the chroma component of sub-block 7 is 6/8
- the first weight coefficient a of the chroma component of sub-block 4 is 4/8
- the The first weight coefficient a is 2/8.
- Example 1 For motion compensation, the current block may be divided into a first area sub-block, a second area sub-block, and a third area sub-block. Based on the first target motion information of the first triangular sub-block, motion compensation is performed for each sub-block within the first region sub-block. Perform motion compensation on each sub-block within the second region sub-block based on the second target motion information of the second triangular sub-block. Based on the first target motion information and the second target motion information, each sub-block within the third region sub-block is weighted and compensated.
- the current block may be divided into multiple M*M (M, for example, 4) sub-blocks.
- M for example, 4
- M*M sub-block if the sub-block is not on the diagonal line dividing the first triangular sub-block and the second triangular sub-block, unidirectional motion information is used for motion compensation for the small block.
- the sub-block is called a first regional sub-block, and motion compensation is performed using the first target motion information; if the sub-block is located in the second triangular sub-block, the sub-block This is called the second region sub-block, and uses the second target motion information for motion compensation.
- the sub-block is called a third regional sub-block and can be based on two unidirectional motion information (ie, the first target motion information And the second target motion information) to perform weighted compensation.
- the specific weighting method refer to the foregoing embodiment.
- Example 2 For motion compensation, the current block may be divided into a first area sub-block, a second area sub-block, and a third area sub-block. Perform motion compensation on each sub-block within the first region sub-block based on the first target motion information of the first triangular sub-block. Perform motion compensation on each sub-block within the second region sub-block based on the second target motion information of the second triangular sub-block.
- each sub-block in the third region is weighted and compensated, wherein only one set of weight coefficients is used: the weight coefficient for the luminance component: ⁇ 7/8,6/ 8, 4/8, 2/8, 1/8 ⁇ , weight coefficients for chroma components: ⁇ 7/8, 4/8, 1/8 ⁇ .
- the weight coefficient for the luminance component ⁇ 7/8,6/ 8, 4/8, 2/8, 1/8 ⁇
- weight coefficients for chroma components ⁇ 7/8, 4/8, 1/8 ⁇ .
- Example 3 For motion compensation, the current block may be divided into a first area sub-block, a second area sub-block, and a third area sub-block. Perform motion compensation on each sub-block within the first region sub-block based on the first target motion information of the first triangular sub-block. Perform motion compensation on each sub-block within the second region sub-block based on the second target motion information of the second triangular sub-block.
- each sub-block in the third area is weighted and compensated, wherein only one set of weight coefficients is used: the weight coefficient for the luminance component: ⁇ 7/8, 6/ 8, 5/8, 4/8, 3/8, 2/8, 1/8 ⁇ , weight coefficients for chroma components: ⁇ 6/8, 4/8, 2/8 ⁇ .
- the weight coefficient for the luminance component ⁇ 7/8, 6/ 8, 5/8, 4/8, 3/8, 2/8, 1/8 ⁇
- weight coefficients for chroma components ⁇ 6/8, 4/8, 2/8 ⁇ .
- Manner 3 Divide the current block into a first region sub-block, a second region sub-block and a third region sub-block, where the first region sub-block is located in the first triangle sub-block and the second region sub-block is located in the second triangle Within the sub-block, the distance between the center of each sub-block in the third-region sub-block and the diagonal line dividing the first triangular sub-block and the second triangular sub-block is less than a preset threshold. Perform motion compensation on each sub-block in the first region sub-block according to the first target motion information. Perform motion compensation on each sub-block within the second region sub-block according to the second target motion information. Perform motion compensation on each sub-block in the third region sub-block according to the first target motion information or the second target motion information.
- the size information of the current block satisfies the first condition (for example, the width of the current block is greater than or equal to the height of the current block), then motion compensation is performed for each sub-block within the sub-blocks of the third area according to the first target motion information; If the size information of the current block satisfies the second condition (eg, the width of the current block is smaller than the height of the current block), then motion compensation is performed for each sub-block within the sub-blocks of the third area according to the second target motion information.
- the above is only an example, and it may also be determined in other ways to perform motion compensation according to the first target motion information or the second target motion information.
- Each sub-block in the third-region sub-block may be a 1*1 sub-block, that is, a single pixel block, or an N*M sub-block.
- N may be greater than or equal to 1
- M may also be greater than or equal to 1.
- the first target motion information and the second target motion information are no longer used for weighted compensation, but the first target motion information is used for each sub-block in the third region sub-block Motion compensation, or, use the second target motion information to perform motion compensation on each sub-block in the third region sub-block. That is, there is no sub-block to perform motion compensation using bidirectional prediction, and thus weight compensation is not required.
- any of the following can be used. There are three ways to determine: (1) the first target motion information is used by default to perform motion compensation for each sub-block in the third region sub-block; (2) the second target motion information is used by default to each sub-block in the third region sub-block Motion compensation of the block; (3) The decision is based on the size of the current block, for example, if the width of the current block is greater than or equal to the height of the current block, the first target motion information is used for each sub-block in the sub-block of the third area Motion compensation; if the width of the current block is smaller than the height of the current block, the second target motion information is used to perform motion compensation on each sub-block within the sub-blocks of the third area.
- the video encoder first determines whether the current block meets the specific conditions for enabling the triangle prediction mode. If not, the decision does not use triangle prediction mode, but other modes. If yes, the video encoder can enable the triangle prediction mode by default, or the video encoder can determine whether to enable the triangle prediction mode. If the video encoder defaults or determines to enable the triangle prediction mode, the operations of dividing the current block into triangle sub-blocks and other operations in the above-mentioned related embodiments are performed; otherwise, these operations are not performed.
- the video encoder can determine the rate-distortion cost corresponding to the triangular prediction mode. If the rate-distortion cost corresponding to the triangle prediction mode is less than the rate-distortion cost corresponding to each other mode, it may be determined that the triangle prediction mode is enabled; otherwise, it may be determined that the triangle prediction mode is not enabled.
- the encoded bit stream sent by the video encoder to the decoding end may carry seventh indication information, where the seventh indication information is used to indicate that the triangle prediction mode is enabled.
- the video decoder first judges whether the current block meets the specific conditions for enabling the triangle prediction mode. If not, the decision does not use triangle prediction mode, but other modes. If it is, the video decoder can enable the triangle prediction mode by default, or the video decoder can parse the encoded bit stream from the encoding end. If the encoded bit stream carries the seventh indication information, it can be determined to enable the triangle prediction mode; otherwise, it can be determined Triangle prediction mode is not enabled. If the video decoder defaults or determines that the triangle prediction mode is enabled, the operations of dividing the current block into triangle sub-blocks and other operations in the above-mentioned related embodiments are performed; otherwise, these operations are not performed.
- the video encoder/video decoder may also store the first target motion information and the second target motion information in the following manner: If the candidate block corresponding to the first target motion information is a unidirectional prediction block, then store the first triangle sub-block The first target motion information; if the candidate block corresponding to the first target motion information is a bidirectional prediction block, the first target motion information and the third target motion information are stored for the first triangular sub-block, and the third target motion information is bidirectional Another motion information of the prediction block; if the candidate block corresponding to the second target motion information is a unidirectional prediction block, then store the second target motion information for the second triangular sub-block; if the candidate block corresponding to the second target motion information is For the bidirectional prediction block, the second target motion information and the fourth target motion information are stored for the second triangular sub-block, and the fourth target motion information is another motion information of the bidirectional prediction block.
- the first target motion information of the first region sub-block is MV1
- MV1 comes from the unidirectional prediction block R1
- the unidirectional prediction block R1 is a candidate block of the current block
- the motion information list includes the motion information MV1 of the unidirectional prediction block R1
- MV1 is selected as the first target motion information of the first region subblock, then the MV1 is stored for the first region subblock, as shown in FIG. 7A.
- the second target motion information of the second region sub-block is MV2
- MV2 comes from the unidirectional prediction block R2
- the unidirectional prediction block R2 is a candidate block of the current block
- the list includes motion information MV2 of the unidirectional prediction block R2
- MV2 is selected as the second target motion information of the second region sub-block, then MV2 is stored for the second region sub-block, as shown in FIG. 7A.
- the first target motion information of the first region sub-block is MV1
- MV1 comes from the bidirectional prediction block R3, that is, the bidirectional prediction block R3 is a candidate block of the current block
- the motion The information list includes the motion information MV1 and MV2 of the bidirectional prediction block R3, and MV1 is selected as the first target motion information of the first region sub-block
- the MV1 and MV2 can be stored for the first region sub-block instead of just the first An area sub-block stores MV1, as shown in FIG. 7B.
- the second target motion information of the second region sub-block is MV3, and MV3 comes from the bidirectional prediction block R4, that is, the bidirectional prediction block R4 is a candidate block of the current block, and the motion information list If the motion information MV3 and MV4 of the bidirectional prediction block R4 are included, and MV3 is selected as the second target motion information of the second region sub-block, then MV3 and MV4 can be stored for the second region sub-block instead of only the second region sub-block Block storage MV3, as shown in Figure 7B.
- the motion information may be stored in units of 4*4.
- FIG. 8 is a schematic structural diagram of the video decoder.
- the video decoder may include a processor 81 and a machine-readable storage medium 82.
- the machine-readable storage medium 82 stores machine-executable instructions that can be executed by the processor 81.
- the processor 81 executes the machine-executable instruction, the processor 81 may implement the video decoding method according to the above-mentioned related embodiments of the present application.
- FIG. 9 is a schematic structural diagram of the video encoder.
- the video encoder may include a processor 91 and a machine-readable storage medium 92.
- the machine-readable storage medium 92 stores machine-executable instructions that can be executed by the processor 91.
- the processor 91 executes the machine-executable instruction, it may implement the video encoding method according to the above-mentioned related embodiments of the present application.
- An embodiment of the present application further provides a machine-readable storage medium, and the machine-readable storage medium stores computer instructions.
- the processor may be implemented by the processor according to the foregoing embodiments of the present application. Video encoding/decoding method.
- the above machine-readable storage medium may be an electronic, magnetic, optical, or other physical storage device, and may contain or store information, such as executable instructions, data, and so on.
- the machine-readable storage medium may include volatile memory (for example, RAM (Random Access Memory)), non-volatile memory (for example, flash memory, storage drives (such as hard disk drives), solid-state drives, Optical memory (for example, CD-ROM (Compact Disc Read-Only Memory, CD-ROM), DVD (Digital Versatile Disc, Digital Versatile Disc, etc.)) or a combination thereof.
- a typical implementation device is an electronic device, including but not limited to: personal computer, laptop computer, tablet computer, cellular phone, camera, smart phone, personal digital assistant, media player, navigation device, email sending and receiving Device, game console, wearable device, or any combination thereof.
- the embodiments of the present application may be provided as methods, systems, or computer program products. Therefore, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Television Systems (AREA)
Abstract
Description
Claims (12)
- 一种视频编解码方法,所述方法由视频编码器或视频解码器执行,并且包括:若当前块满足启用三角预测模式的特定条件且确定启用三角预测模式,则将当前块划分为第一三角子块和第二三角子块,其中,若对于当前块开启子块划分模式、多假设模式、编码运动信息差的合并模式中的任意一种模式,则确定所述当前块不满足启用三角预测模式的特定条件,不将所述当前块划分为第一三角子块和第二三角子块;获取所述第一三角子块的第一目标运动信息和所述第二三角子块的第二目标运动信息,其中,所述第一目标运动信息与所述第二目标运动信息不同;根据所述第一目标运动信息和所述第二目标运动信息对所述当前块进行编码处理或者解码处理。
- 根据权利要求1所述的方法,其中,基于所述当前块所在当前帧的帧类型、所述当前块的运动信息模式和/或所述当前块的尺寸信息,确定所述当前块是否满足启用三角预测模式的特定条件。
- 根据权利要求2所述的方法,其中,若所述帧类型为B帧或者非I帧,或者所述帧类型允许帧内块拷贝,则确定所述帧类型满足特定条件。
- 根据权利要求2所述的方法,其中,若所述运动信息模式为合并模式,则确定所述运动信息模式满足特定条件。
- 根据权利要求2所述的方法,其中,若所述当前块的宽度大于或等于第一数值,且所述当前块的高度大于或等于第二数值,则确定所述当前块的尺寸信息满足特定条件;或者,若所述当前块的宽度大于或等于第三数值,或,所述当前块的高度大于或等于第四数值,则确定所述当前块的尺寸信息满足特定条件;或者,若所述当前块的宽度大于或等于第五数值且小于或等于第六数值,且所述当前块的高度大于或等于第七数值且小于或等于第八数值,则确定所述当前块的尺寸信息满足特定条件;或者,若所述当前块的宽度大于或等于第九数值且小于或等于第十数值,或者,所述当前块的高度大于或等于第十一数值且小于或等于第十二数值,则确定所述当前块的尺寸信息满足特定条件;或者,若所述当前块的宽度大于或等于第十三数值且小于或等于第十四数值,所述当前块的高度大于或等于第十五数值且小于或等于第十六数值,并且所述当前块的面积大于或等于第十七数值且小于或等于第十八数值,则确定所述当前块的尺寸信息满足特定条件。
- 根据权利要求1所述的方法,其中,所述将当前块划分为第一三角子块和第二三角子块包括:按照主对角线方式将当前块划分为第一三角子块和第二三角子块;或者按照副对角线方式将当前块划分为第一三角子块和第二三角子块;所述获取所述第一三角子块的第一目标运动信息和所述第二三角子块的第二目标运动信息包括:构建第一候选运动信息列表,所述第一候选运动信息列表包括多个候选运动信息;从所述第一候选运动信息列表中选择一个候选运动信息作为所述第一目标运动信息;从所述第一候选运动信息列表中排除所述第一目标运动信息,并从所述第一候选运动信息列表剩余的候选运动信息中选择一个候选运动信息作为 所述第二目标运动信息。
- 根据权利要求6所述的方法,其中,所述构建第一候选运动信息列表包括:获取所述当前块对应的候选块;将所述候选块的运动信息添加到所述第一候选运动信息列表,其中,若所述候选块为单向预测块,则所述候选块的运动信息包括所述候选块的单向运动信息;若所述候选块为双向预测块,则所述候选块的运动信息包括所述候选块的第一运动信息和/或所述候选块的第二运动信息,但不包括所述第一运动信息与所述第二运动信息的加权运动信息。
- 根据权利要求1所述的方法,所述方法还包括:在获取所述第一目标运动信息和所述第二目标运动信息之后,根据所述第一目标运动信息和所述第二目标运动信息对所述第一三角子块和所述第二三角子块进行运动补偿。
- 根据权利要求8所述的方法,其中,所述根据所述第一目标运动信息和所述第二目标运动信息对所述第一三角子块和所述第二三角子块进行运动补偿包括:确定所述当前块包括的第一区域子块、第二区域子块和第三区域子块,所述第一区域子块位于所述第一三角子块内,所述第二区域子块位于所述第二三角子块内,所述第三区域子块内的每个子块的中心与划分所述第一三角子块和所述第二三角子块的对角线的距离小于预设阈值;根据所述第一目标运动信息对所述第一区域子块内的每个子块进行运动补偿;根据所述第二目标运动信息对所述第二区域子块内的每个子块进行运动补偿;根据所述第一目标运动信息和所述第二目标运动信息对所述第三区域子块内的每个子块进行加权补偿。
- 根据权利要求9所述的方法,其中,根据所述第一目标运动信息和所述第二目标运动信息对所述第三区域子块内的每个子块进行加权补偿包括:针对所述第三区域子块内的每个子块,根据所述第一目标运动信息确定所述子块的第一预测值;根据所述第二目标运动信息确定所述子块的第二预测值;根据所述第一预测值、所述第一预测值对应的第一权重系数、所述第二预测值、所述第二预测值对应的第二权重系数,对所述子块进行加权补偿,其中,若所述子块位于第一三角子块内,则所述第一权重系数大于所述第二权重系数;若所述子块位于第二三角子块内,则所述第一权重系数小于所述第二权重系数;若所述子块位于所述对角线上,则所述第一权重系数等于所述第二权重系数。
- 一种视频解码器,包括处理器和机器可读存储介质,其中,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器在执行所述机器可执行指令时,实现根据权利要求1-10中任一项所述的方法。
- 一种视频编码器,包括处理器和机器可读存储介质,其中,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器在执行所述机器可执行指令时,实现根据权利要求1-10中任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811628695.2 | 2018-12-28 | ||
CN201811628695.2A CN111385581B (zh) | 2018-12-28 | 2018-12-28 | 一种编解码方法及其设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020135034A1 true WO2020135034A1 (zh) | 2020-07-02 |
Family
ID=66615056
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2019/124461 WO2020135036A1 (zh) | 2018-12-28 | 2019-12-11 | 视频编解码 |
PCT/CN2019/124453 WO2020135033A1 (zh) | 2018-12-28 | 2019-12-11 | 视频编解码 |
PCT/CN2019/124458 WO2020135035A1 (zh) | 2018-12-28 | 2019-12-11 | 视频编解码 |
PCT/CN2019/124455 WO2020135034A1 (zh) | 2018-12-28 | 2019-12-11 | 视频编解码 |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2019/124461 WO2020135036A1 (zh) | 2018-12-28 | 2019-12-11 | 视频编解码 |
PCT/CN2019/124453 WO2020135033A1 (zh) | 2018-12-28 | 2019-12-11 | 视频编解码 |
PCT/CN2019/124458 WO2020135035A1 (zh) | 2018-12-28 | 2019-12-11 | 视频编解码 |
Country Status (13)
Country | Link |
---|---|
US (1) | US11889072B2 (zh) |
EP (1) | EP3886437A4 (zh) |
JP (1) | JP7360464B2 (zh) |
KR (1) | KR20210093347A (zh) |
CN (38) | CN112532993B (zh) |
AU (1) | AU2019416266B2 (zh) |
BR (1) | BR112021012638A2 (zh) |
CA (2) | CA3214820A1 (zh) |
MX (1) | MX2021007710A (zh) |
PH (1) | PH12021551503A1 (zh) |
SG (1) | SG11202106972TA (zh) |
WO (4) | WO2020135036A1 (zh) |
ZA (1) | ZA202104449B (zh) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11997311B2 (en) * | 2018-09-17 | 2024-05-28 | Hfi Innovation Inc. | Methods and apparatuses of combining multiple predictors for block prediction in video coding systems |
CN112532993B (zh) * | 2018-12-28 | 2022-04-26 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法及其设备 |
CN112073734B (zh) * | 2019-06-10 | 2023-02-28 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置及其设备 |
CN113453013B (zh) * | 2019-06-21 | 2022-02-18 | 杭州海康威视数字技术股份有限公司 | 预测模式的解码、编码方法及装置 |
CN113411594B (zh) * | 2019-06-21 | 2022-05-31 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置及其设备 |
CN113875251B (zh) * | 2019-06-21 | 2023-11-28 | 华为技术有限公司 | 用于几何分割模式的自适应滤波器强度指示 |
CN113055685B (zh) * | 2019-06-24 | 2022-09-30 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置及其设备 |
CN110312130B (zh) * | 2019-06-25 | 2021-10-15 | 浙江大华技术股份有限公司 | 基于三角模式的帧间预测、视频编码方法及设备 |
CN110213588B (zh) * | 2019-06-25 | 2021-07-13 | 浙江大华技术股份有限公司 | 空域候选运动信息获取方法、装置、编解码器及存储装置 |
CN111699689B (zh) * | 2019-06-25 | 2023-03-31 | 北京大学 | 视频处理方法、装置和设备 |
CN112291558B (zh) * | 2019-07-23 | 2023-06-27 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置及其设备 |
FI4005204T3 (fi) * | 2019-08-26 | 2024-01-09 | Huawei Tech Co Ltd | Menetelmä ja laitteisto liikeinformaation tallentamiseen |
CN112449180B (zh) * | 2019-08-27 | 2023-02-28 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置及其设备 |
EP4008108A4 (en) * | 2019-09-01 | 2022-09-21 | Beijing Bytedance Network Technology Co., Ltd. | ALIGNMENT OF PREDICTION WEIGHTS IN VIDEO ENCODING |
WO2021068920A1 (en) | 2019-10-10 | 2021-04-15 | Beijing Bytedance Network Technology Co., Ltd. | Use of non-rectangular partitions in video coding |
US11496755B2 (en) * | 2019-12-28 | 2022-11-08 | Tencent America LLC | Method and apparatus for video coding |
CN113141507B (zh) * | 2020-01-17 | 2022-07-15 | 腾讯科技(深圳)有限公司 | 视频编解码中的运动信息列表构建方法、装置及设备 |
CN113452997B (zh) * | 2020-03-25 | 2022-07-29 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置及其设备 |
KR20220163398A (ko) * | 2020-04-03 | 2022-12-09 | 광동 오포 모바일 텔레커뮤니케이션즈 코포레이션 리미티드 | 프레임 간 예측 방법, 인코더, 디코더 및 저장 매체 |
WO2021196211A1 (zh) * | 2020-04-03 | 2021-10-07 | Oppo广东移动通信有限公司 | 一种帧间预测方法、编码器、解码器及存储介质 |
CN113873249B (zh) * | 2020-06-30 | 2023-02-28 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置及其设备 |
CN112004096A (zh) * | 2020-07-20 | 2020-11-27 | 浙江大华技术股份有限公司 | 角度模式帧间预测方法、编码器及存储介质 |
CN114071159B (zh) * | 2020-07-29 | 2023-06-30 | Oppo广东移动通信有限公司 | 帧间预测方法、编码器、解码器及计算机可读存储介质 |
CN112040242A (zh) * | 2020-07-30 | 2020-12-04 | 浙江大华技术股份有限公司 | 基于高级运动矢量表达的帧间预测方法、装置及设备 |
EP4183132A4 (en) * | 2020-12-02 | 2023-09-13 | Zhejiang Dahua Technology Co., Ltd. | SYSTEMS AND METHODS FOR INTERPREDICTION BASED ON A MERGE MODE |
WO2023154574A1 (en) * | 2022-02-14 | 2023-08-17 | Beijing Dajia Internet Information Technology Co., Ltd. | Methods and devices for geometric partitioning mode with adaptive blending |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020126116A1 (en) * | 2001-01-09 | 2002-09-12 | Radek Grzeszczuk | Compression of surface light fields |
US6879324B1 (en) * | 1998-07-14 | 2005-04-12 | Microsoft Corporation | Regional progressive meshes |
CN102611881A (zh) * | 2011-01-19 | 2012-07-25 | 华为技术有限公司 | 参考运动矢量获取方法、模块及编、解码装置 |
CN103686165A (zh) * | 2012-09-05 | 2014-03-26 | 乐金电子(中国)研究开发中心有限公司 | 深度图像帧内编解码方法及视频编解码器 |
CN104717513A (zh) * | 2015-03-31 | 2015-06-17 | 北京奇艺世纪科技有限公司 | 一种双向帧间预测方法及装置 |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3426092B2 (ja) * | 1996-09-12 | 2003-07-14 | シャープ株式会社 | 動画像符号化装置における動き補償フレーム間予測方法 |
KR100265721B1 (ko) * | 1997-03-31 | 2000-09-15 | 윤종용 | 2차원삼각형조각선격자모델을이용한동영상의움직임추정방법 |
JPH10294942A (ja) * | 1997-04-18 | 1998-11-04 | Ricoh Co Ltd | 画像データ符号化装置 |
KR100886191B1 (ko) * | 2004-12-06 | 2009-02-27 | 엘지전자 주식회사 | 영상 블록을 디코딩 하는 방법 |
BRPI0715507A2 (pt) * | 2006-08-02 | 2013-06-18 | Thomson Licensinc S A | mÉtodos e aparelhos para particionamento geomÉtrico adaptativo para decodificaÇço de vÍdeo |
CN101873500B (zh) * | 2009-04-24 | 2012-05-23 | 华为技术有限公司 | 帧间预测编码方法、帧间预测解码方法及设备 |
CN104702951B (zh) * | 2009-12-01 | 2018-10-19 | 数码士有限公司 | 用于编码/解码高分辨率图像的方法和设备 |
US8879632B2 (en) * | 2010-02-18 | 2014-11-04 | Qualcomm Incorporated | Fixed point implementation for geometric motion partitioning |
CN102215395B (zh) * | 2010-04-09 | 2013-10-09 | 华为技术有限公司 | 一种视频编解码方法和装置 |
CN102215396A (zh) * | 2010-04-09 | 2011-10-12 | 华为技术有限公司 | 一种视频编解码方法和系统 |
CN103281527B (zh) * | 2010-04-15 | 2015-12-23 | 华为技术有限公司 | 图像编解码方法及相关装置 |
CN102223528B (zh) * | 2010-04-15 | 2014-04-30 | 华为技术有限公司 | 一种参考运动矢量获得方法 |
KR101712156B1 (ko) * | 2010-12-06 | 2017-03-06 | 에스케이 텔레콤주식회사 | 임의의 형태의 블록을 이용한 인터예측에 의한 영상의 부호화/복호화 방법 및 장치 |
CN102075748B (zh) * | 2010-12-27 | 2013-12-25 | 北京自动测试技术研究所 | 用于视频编码运动估计的搜索方法 |
CN102611880B (zh) | 2011-01-19 | 2015-02-04 | 华为技术有限公司 | 标识图像块几何划分模式的编解码方法和设备 |
CN102611884B (zh) | 2011-01-19 | 2014-07-09 | 华为技术有限公司 | 图像编解码方法及编解码设备 |
US9532066B2 (en) * | 2011-01-21 | 2016-12-27 | Qualcomm Incorporated | Motion vector prediction |
KR20120090740A (ko) * | 2011-02-07 | 2012-08-17 | (주)휴맥스 | 정밀한 단위의 필터 선택을 적용한 영상 부호화/복호화 장치 및 방법 |
MX2014003728A (es) | 2011-10-05 | 2014-07-09 | Panasonic Ip Corp America | Metodo de codificacion de imagenes, aparato de codificacion de imagenes, metodo de decodificacion de imagenes, aparato de decodificacion de imagenes y aparato de codificacion/decodificacio n de imagenes. |
KR20130050149A (ko) * | 2011-11-07 | 2013-05-15 | 오수미 | 인터 모드에서의 예측 블록 생성 방법 |
EP2942961A1 (en) | 2011-11-23 | 2015-11-11 | HUMAX Holdings Co., Ltd. | Methods for encoding/decoding of video using common merging candidate set of asymmetric partitions |
CN106105199B (zh) * | 2014-03-05 | 2020-01-07 | Lg 电子株式会社 | 基于多边形单元的编/解码图像的方法及其装置 |
CN108293125B (zh) * | 2014-11-14 | 2020-08-07 | 华为技术有限公司 | 一种数字图像处理系统和方法 |
US10375391B2 (en) | 2015-06-04 | 2019-08-06 | Tsinghua University | Encoding method, decoding method and device thereof |
CN106294918A (zh) * | 2015-06-10 | 2017-01-04 | 中国科学院宁波材料技术与工程研究所 | 一种虚拟透明化办公系统的设计方法 |
CN104935938B (zh) * | 2015-07-15 | 2018-03-30 | 哈尔滨工业大学 | 一种混合视频编码标准中帧间预测方法 |
CN109155851A (zh) | 2016-05-02 | 2019-01-04 | 汉阳大学校产学协力团 | 利用画面内预测的影像编码、解码方法及装置 |
KR102270228B1 (ko) | 2016-07-12 | 2021-06-28 | 한국전자통신연구원 | 영상 부호화/복호화 방법 및 이를 위한 기록 매체 |
WO2018016823A1 (ko) | 2016-07-18 | 2018-01-25 | 한국전자통신연구원 | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 |
CN106375764B (zh) * | 2016-08-31 | 2018-04-10 | 中国科学技术大学 | 一种结合方向预测和块复制预测的视频帧内编码方法 |
US20210160507A1 (en) * | 2016-10-04 | 2021-05-27 | Sharp Kabushiki Kaisha | Systems and methods for adaptively clipping sample values |
US10313673B2 (en) * | 2016-10-19 | 2019-06-04 | Google Llc | Methods and apparatus to encode and/or decode normals of geometric representations of surfaces |
CN116668728A (zh) | 2016-11-08 | 2023-08-29 | 株式会社Kt | 对视频进行解码和编码的方法、发送压缩数据的方法 |
WO2018097693A2 (ko) | 2016-11-28 | 2018-05-31 | 한국전자통신연구원 | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 |
KR102125933B1 (ko) | 2017-01-05 | 2020-06-24 | 주식회사 엘지화학 | 작업성이 향상된 카본나노튜브 분산액 및 그 제조방법 |
WO2018128466A1 (ko) * | 2017-01-09 | 2018-07-12 | 에스케이텔레콤 주식회사 | 영상 부호화 또는 복호화하기 위한 장치 및 방법 |
US11677940B2 (en) * | 2017-09-20 | 2023-06-13 | Electronics And Telecommunications Research Institute | Method and device for encoding/decoding image, and recording medium having stored bitstream |
US11159793B2 (en) * | 2017-10-16 | 2021-10-26 | Digitalinsights Inc. | Method, device, and recording medium storing bit stream, for encoding/decoding image |
EP3704857A1 (en) * | 2017-11-01 | 2020-09-09 | VID SCALE, Inc. | Overlapped block motion compensation |
CN112532993B (zh) * | 2018-12-28 | 2022-04-26 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法及其设备 |
CN110312130B (zh) * | 2019-06-25 | 2021-10-15 | 浙江大华技术股份有限公司 | 基于三角模式的帧间预测、视频编码方法及设备 |
-
2018
- 2018-12-28 CN CN202011480792.9A patent/CN112532993B/zh active Active
- 2018-12-28 CN CN202011480801.4A patent/CN112511841B/zh active Active
- 2018-12-28 CN CN202011484110.1A patent/CN112584176B/zh active Active
- 2018-12-28 CN CN202011484039.7A patent/CN112584172B/zh active Active
- 2018-12-28 CN CN202011483974.1A patent/CN112584168B/zh active Active
- 2018-12-28 CN CN201910104281.8A patent/CN109862369B/zh active Active
- 2018-12-28 CN CN202011484057.5A patent/CN112584174B/zh active Active
- 2018-12-28 CN CN202011483940.2A patent/CN112532994B/zh active Active
- 2018-12-28 CN CN202011480776.XA patent/CN112565783B/zh active Active
- 2018-12-28 CN CN202011480768.5A patent/CN112565782B/zh active Active
- 2018-12-28 CN CN202011480803.3A patent/CN112584162B/zh active Active
- 2018-12-28 CN CN202011480851.2A patent/CN112468824B/zh active Active
- 2018-12-28 CN CN201910104323.8A patent/CN109862368B/zh active Active
- 2018-12-28 CN CN202011480779.3A patent/CN112584161B/zh active Active
- 2018-12-28 CN CN202011480849.5A patent/CN112565786B/zh active Active
- 2018-12-28 CN CN202011480862.0A patent/CN112584164B/zh active Active
- 2018-12-28 CN CN202011484095.0A patent/CN112584175B/zh active Active
- 2018-12-28 CN CN202011484020.2A patent/CN112584171B/zh active Active
- 2018-12-28 CN CN202011480770.2A patent/CN112584160B/zh active Active
- 2018-12-28 CN CN202011480919.7A patent/CN112565788B/zh active Active
- 2018-12-28 CN CN201811628695.2A patent/CN111385581B/zh active Active
- 2018-12-28 CN CN202011483957.8A patent/CN112584166B/zh active Active
- 2018-12-28 CN CN202011480874.3A patent/CN112584165B/zh active Active
- 2018-12-28 CN CN202011483975.6A patent/CN112584169B/zh active Active
- 2018-12-28 CN CN202011480759.6A patent/CN112565781B/zh active Active
- 2018-12-28 CN CN202011480859.9A patent/CN112565787B/zh active Active
- 2018-12-28 CN CN202011484003.9A patent/CN112584170B/zh active Active
- 2018-12-28 CN CN202011480817.5A patent/CN112565785B/zh active Active
- 2018-12-28 CN CN202011480872.4A patent/CN112511842B/zh active Active
- 2018-12-28 CN CN202011480854.6A patent/CN112584163B/zh active Active
- 2018-12-28 CN CN202011480749.2A patent/CN112584159B/zh active Active
- 2018-12-28 CN CN202011484132.8A patent/CN112584178B/zh active Active
- 2018-12-28 CN CN202011484041.4A patent/CN112584173B/zh active Active
- 2018-12-28 CN CN202011480780.6A patent/CN112565784B/zh active Active
- 2018-12-28 CN CN202011483959.7A patent/CN112584167B/zh active Active
- 2018-12-28 CN CN201910104299.8A patent/CN109819255B/zh active Active
- 2018-12-28 CN CN202011484037.8A patent/CN112468825B/zh active Active
- 2018-12-28 CN CN202011484121.XA patent/CN112584177B/zh active Active
-
2019
- 2019-12-11 KR KR1020217019915A patent/KR20210093347A/ko not_active Application Discontinuation
- 2019-12-11 MX MX2021007710A patent/MX2021007710A/es unknown
- 2019-12-11 WO PCT/CN2019/124461 patent/WO2020135036A1/zh active Application Filing
- 2019-12-11 CA CA3214820A patent/CA3214820A1/en active Pending
- 2019-12-11 WO PCT/CN2019/124453 patent/WO2020135033A1/zh unknown
- 2019-12-11 WO PCT/CN2019/124458 patent/WO2020135035A1/zh active Application Filing
- 2019-12-11 SG SG11202106972TA patent/SG11202106972TA/en unknown
- 2019-12-11 JP JP2021537882A patent/JP7360464B2/ja active Active
- 2019-12-11 WO PCT/CN2019/124455 patent/WO2020135034A1/zh active Application Filing
- 2019-12-11 CA CA3124889A patent/CA3124889C/en active Active
- 2019-12-11 AU AU2019416266A patent/AU2019416266B2/en active Active
- 2019-12-11 BR BR112021012638-4A patent/BR112021012638A2/pt unknown
- 2019-12-11 EP EP19902594.1A patent/EP3886437A4/en active Pending
-
2021
- 2021-06-23 PH PH12021551503A patent/PH12021551503A1/en unknown
- 2021-06-25 US US17/358,368 patent/US11889072B2/en active Active
- 2021-06-28 ZA ZA2021/04449A patent/ZA202104449B/en unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6879324B1 (en) * | 1998-07-14 | 2005-04-12 | Microsoft Corporation | Regional progressive meshes |
US20020126116A1 (en) * | 2001-01-09 | 2002-09-12 | Radek Grzeszczuk | Compression of surface light fields |
CN102611881A (zh) * | 2011-01-19 | 2012-07-25 | 华为技术有限公司 | 参考运动矢量获取方法、模块及编、解码装置 |
CN103686165A (zh) * | 2012-09-05 | 2014-03-26 | 乐金电子(中国)研究开发中心有限公司 | 深度图像帧内编解码方法及视频编解码器 |
CN104717513A (zh) * | 2015-03-31 | 2015-06-17 | 北京奇艺世纪科技有限公司 | 一种双向帧间预测方法及装置 |
Non-Patent Citations (1)
Title |
---|
R.-L. LIAO (PANASONIC), C. S. LIM (PANASONIC): "CE10.3.1.b: Triangular prediction unit mode", 12. JVET MEETING; 20181003 - 20181012; MACAO; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ), 8 October 2018 (2018-10-08), XP030251665 * |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020135034A1 (zh) | 视频编解码 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19902729 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: 19902729 Country of ref document: EP Kind code of ref document: A1 |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19902729 Country of ref document: EP Kind code of ref document: A1 |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 07-02-2022) |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 07-02-2022) |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19902729 Country of ref document: EP Kind code of ref document: A1 |