WO2020259388A1 - 一种编解码方法、装置及其设备 - Google Patents

一种编解码方法、装置及其设备 Download PDF

Info

Publication number
WO2020259388A1
WO2020259388A1 PCT/CN2020/096857 CN2020096857W WO2020259388A1 WO 2020259388 A1 WO2020259388 A1 WO 2020259388A1 CN 2020096857 W CN2020096857 W CN 2020096857W WO 2020259388 A1 WO2020259388 A1 WO 2020259388A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
motion information
sub
target motion
index value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/CN2020/096857
Other languages
English (en)
French (fr)
Inventor
陈方栋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Publication of WO2020259388A1 publication Critical patent/WO2020259388A1/zh
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding

Definitions

  • This application relates to the field of coding and decoding technologies, and in particular to a coding and decoding method, device and equipment.
  • a complete video encoding method can include processes such as prediction, transformation, quantization, entropy encoding, and filtering.
  • predictive coding may include intra-frame coding and inter-frame coding.
  • inter-frame coding uses the correlation of the video time domain to predict the current pixel by using the pixels adjacent to the coded image to effectively remove the video time domain redundancy.
  • Intra-frame coding refers to using the correlation of the video space domain to predict the current pixel using the pixels of the coded block of the current frame image to achieve the purpose of removing the video spatial domain redundancy.
  • a motion vector can be used to represent the relative displacement between the current block of the current frame image and the reference block of the reference frame image.
  • the current frame image A and the reference frame image B have a strong temporal correlation.
  • a motion search can be performed in the image B to find the reference block that best matches the current block A1 B1, and determine the relative displacement between the current block A1 and the reference block B1, which is the motion vector of the current block A1.
  • the current block is a rectangle, and the edge of the actual object is often not a rectangle.
  • the edge of the actual object is often not a rectangle.
  • there are often two different objects such as an object with a foreground and a background.
  • the current block whose single prediction mode is rectangular is used for prediction, which has problems such as poor prediction effect, large coding residuals, and poor coding performance.
  • the present application provides an encoding and decoding method and equipment, which can improve encoding performance.
  • the present application provides a coding and decoding method, the method includes: acquiring first target motion information and second target motion information; wherein the first target motion information is the target of the first sub-block divided by the current block according to the dividing line Motion information, the second target motion information is the target motion information of the second sub-block divided by the current block according to the dividing line; according to the dividing line, the first sub-block and the second sub-block, it is determined that the current block includes A first area, a second area and a third area, the first area is located in the first sub-block, the second area is located in the second sub-block, and the dividing line is located in the third area , And the third area has an overlapping area with the first sub-block and the second sub-block; storing the second target motion information as the target motion information of the third area; wherein, The second sub-block is the lower sub-block among the two sub-blocks divided according to the dividing line of the current block.
  • the present application provides an encoding and decoding device, the device includes: an acquisition module for acquiring first target motion information and second target motion information; wherein, the first target motion information is the first target motion information divided by the current block according to the dividing line.
  • the determining module is configured to, according to the dividing line, the first sub-block and the The second sub-block, determining the first area, the second area and the third area included in the current block, the first area is located in the first sub-block, and the second area is located in the second sub-block,
  • the dividing line is located in the third area, and there are overlapping areas between the third area and the first sub-block and the second sub-block;
  • the storage module is configured to move the second target The information is stored as target motion information of the third region; wherein, the second sub-block is the lower sub-block among the two sub-
  • This application provides an encoding end device, including: a processor and a machine-readable storage medium, the machine-readable storage medium stores machine-executable instructions that can be executed by the processor; the processor is used to execute the machine-readable The instruction is executed to achieve the following steps: obtain first target motion information and second target motion information; the first target motion information is the target motion information of the first sub-block divided by the current block according to the dividing line, and the second target The motion information is the target motion information of the second sub-block divided by the current block according to the division line; according to the division line, the first sub-block and the second sub-block, determine the first area, the second area and the second sub-block included in the current block The third area, the first area is located in the first sub-block, the second area is located in the second sub-block, the dividing line is located in the third area, and the third area There is an overlapping area with the first sub-block and the second sub-block; the second target motion information is stored as the target motion information of the third area; wherein, the second
  • the present application provides a decoding end device, including: a processor and a machine-readable storage medium, where the machine-readable storage medium stores machine-executable instructions that can be executed by the processor; the processor is used to execute the machine-readable The instruction is executed to achieve the following steps: acquiring first target motion information and second target motion information; the first target motion information is the target motion information of the first sub-block divided by the current block according to the dividing line, and the second target The motion information is the target motion information of the second sub-block divided by the current block according to the division line; according to the division line, the first sub-block and the second sub-block, determine the first area, the second area and the second sub-block included in the current block The third area, the first area is located in the first sub-block, the second area is located in the second sub-block, the dividing line is located in the third area, and the third area There is an overlapping area with the first sub-block and the second sub-block; the second target motion information is stored as the target motion information of the third area; wherein
  • the current block can be divided into the first triangle sub-block and the second triangle sub-block, and the first target motion of the first triangle sub-block can be obtained.
  • Information and the second target motion information of the second triangle sub-block motion compensation is performed on the first triangle sub-block according to the first target motion information to obtain the predicted value of the first triangle sub-block, and the second triangle sub-block is calculated according to the second target motion information.
  • the sub-block performs motion compensation to obtain the predicted value of the second triangular sub-block.
  • FIG. 1 is a schematic diagram of a video coding framework in an embodiment of the present application
  • FIG. 2 is a flowchart of an encoding and decoding method in an embodiment of the present application
  • Fig. 3 is a flowchart of an encoding method in an embodiment of the present application.
  • Fig. 4 is a flowchart of a decoding method in an embodiment of the present application.
  • 5A-5B are schematic diagrams of candidate blocks in an embodiment of the present application.
  • 6A-6B are schematic diagrams of dividing a current block in an embodiment of the present application.
  • FIG. 7A is a schematic diagram of correspondence between index values and unidirectional motion information in an embodiment of the present application.
  • FIGS. 7B-7C are schematic diagrams of triangular sub-block division in an embodiment of the present application.
  • FIG. 7D is a schematic diagram of motion compensation in an embodiment of the present application.
  • FIGS. 7E-7F are schematic diagrams of sports information storage in an embodiment of the present application.
  • FIG. 8 is a structural diagram of a coding and decoding device in an embodiment of the present application.
  • FIG. 9A is a hardware structure diagram of a decoding end device in an embodiment of the present application.
  • FIG. 9B is a hardware structure diagram of an encoding terminal device in an embodiment of the present application.
  • the first information may also be referred to as second information, and similarly, the second information may also be referred to as first information.
  • first information may also be referred to as second information
  • second information may also be referred to as first information.
  • word "if” used can be interpreted as "when", or "when”, or "in response to determination”.
  • An encoding and decoding method, device, and equipment proposed in the embodiments of the present application may involve the following concepts:
  • Intra prediction and inter prediction refers to the use of the correlation of the video space domain to predict the current pixel using the pixels of the coded block of the current image to achieve the removal of video spatial redundancy purpose.
  • Inter-frame prediction refers to the use of the temporal correlation of the video. Since the video sequence contains strong temporal correlation, the pixels of the current image are predicted by neighboring coded image pixels to achieve the purpose of effectively removing video temporal redundancy.
  • the inter-frame prediction part of the video coding standard basically uses block-based motion compensation technology. The principle is to find the best matching block in the previously encoded image for each pixel block of the current image. This process is called Motion Estimation. , ME).
  • Motion Vector In inter-frame coding, a motion vector can be used to represent the relative displacement between the current coding block and the best matching block in the reference image. Each divided block has a corresponding motion vector that needs to be transmitted to the decoding end. If the motion vector of each block is independently coded and transmitted, especially when divided into small-sized blocks, it will consume a lot of bits. In order to reduce the number of bits used to code the motion vector, the spatial correlation between adjacent image blocks can be used to predict the motion vector of the current block to be coded according to the motion vector of the adjacent coded block, and then the prediction difference Encode. In this way, the number of bits representing the motion vector can be effectively reduced.
  • the motion vector of the adjacent coded block is used to predict the motion vector of the current block, and then the motion vector prediction value (MVP, Motion Vector Prediction) and the real motion vector can be predicted.
  • MVP Motion Vector Prediction
  • the difference between the estimates (MVD, Motion Vector Difference) is encoded, thereby effectively reducing the number of MV encoding bits.
  • Motion Information Since the motion vector represents the position offset between the current image block and a reference image block, in order to accurately obtain the information pointing to the image block, in addition to the motion vector, the index information of the reference frame image is also needed to indicate the use Which reference frame image.
  • a reference frame image list can usually be established, and the reference frame image index information indicates which reference frame image in the reference frame image list is used by the current image block.
  • many coding technologies also support multiple reference image lists. Therefore, an index value can also be used to indicate which reference image list is used, and this index value can be called a reference direction.
  • motion-related information such as motion vector, reference frame index, and reference direction can be collectively referred to as motion information.
  • Rate-Distortion Optimized There are two major indicators for evaluating coding efficiency: code rate and PSNR (Peak Signal to Noise Ratio). The smaller the bit stream, the greater the compression rate and the greater the PSNR. , The better the quality of the reconstructed image is.
  • Video encoding framework As shown in Figure 1, the video encoding framework can be used to implement the encoding end processing flow of the embodiment of this application.
  • the schematic diagram of the video decoding framework is similar to that of Figure 1, and will not be repeated here, and the video decoding framework can be used Realize the decoding end processing flow of the embodiment of this application.
  • the video coding framework and the video decoding framework may include intra prediction, motion estimation/motion compensation, reference image buffer, in-loop filtering, reconstruction, transformation, quantization, inverse transformation, inverse quantization, entropy encoder, etc. Module.
  • the encoding end processing flow can be realized, and at the decoding end, through the cooperation between these modules, the decoding end processing flow can be realized.
  • Flag coding In video coding, there are many modes, such as Merge mode (fusion mode), triangle prediction mode, etc. For a certain block, a certain pattern may be adopted. In order to indicate which mode is adopted, each block needs to be marked by encoding the corresponding flag bit. In other words, at the encoding end, the value of the flag bit can be determined, and then the flag bit can be encoded and passed to the decoding end. At the decoding end, by parsing the flag bit, determine whether the corresponding mode is enabled.
  • Merge mode fusion mode
  • triangle prediction mode a certain pattern may be adopted.
  • each block needs to be marked by encoding the corresponding flag bit. In other words, at the encoding end, the value of the flag bit can be determined, and then the flag bit can be encoded and passed to the decoding end. At the decoding end, by parsing the flag bit, determine whether the corresponding mode is enabled.
  • the fusion mode can include, but is not limited to, the normal fusion mode (Normal Merge mode), the fusion mode for triangular prediction (triangular prediction mode, also known as TPM mode), and the fusion mode for coding motion difference ( merge mode with MVD, also known as MMVD mode), fusion mode with sub-block motion information (sub-block merge, also known as SB Merge mode), and fusion mode ( combine intra interprediction mode, also known as CIIP mode). If the current block adopts the fusion mode, one of the above five fusion modes can be used.
  • the skip mode is a special fusion mode. Unlike the fusion mode, the skip mode does not require coding residuals. If the current block is in the skip mode, the CIIP mode is turned off by default, but the normal fusion mode, the fusion mode for triangular prediction, the fusion mode for coding motion difference, and the fusion mode using sub-block motion information are still applicable.
  • how to generate the predicted value can be determined based on the Normal Merge mode, TPM mode, MMVD mode, SB Merge mode, CIIP mode, etc. After the predicted value is generated, for the Merge mode, the predicted value and residual value can be used to obtain the reconstructed value; for the skip mode, there is no residual value, and the predicted value is directly used to obtain the reconstructed value.
  • the current frame can be an I frame; if the current frame is allowed to reference the information of a certain other frame (but not more than 1 frame) for coding, the current frame The frame can be a P frame; if the current frame allows reference to the information of a certain 1 or 2 frames for encoding, the current frame can be a B frame.
  • Sequence parameter set In the sequence parameter set, there is a flag bit that determines whether certain tool switches are allowed in the entire sequence. If the flag bit is 1, the tool corresponding to the flag bit is allowed to be enabled in the video sequence; if the flag bit is 0, the tool corresponding to the flag bit is not allowed to be activated in the video sequence.
  • CABAC Context-Based Adaptive Binary Arithmetic Coding
  • CABAC mode that needs to save and update at least one context model is not required.
  • the bypass (bypass) CABAC mode for storing and updating the context model.
  • the current block is a rectangle, and the edge of the actual object may not be horizontal and vertical.
  • the edge of the actual object may not be horizontal and vertical.
  • there may be two different objects such as a foreground object and a background at the same time.
  • only a single prediction mode is used to predict the current block, and there are problems such as poor prediction effect, large coding residuals, and poor coding performance.
  • an embodiment of the present application proposes a triangular prediction mode, which can divide the current block into two triangular sub-blocks, which have different target motion information, thereby improving the friendliness of hardware implementation and bringing Encoding performance improvement.
  • the encoding and decoding methods in the embodiments of the present application will be described in detail below in conjunction with several specific embodiments.
  • Embodiment 1 As shown in FIG. 2, which is a schematic flow diagram of the encoding and decoding method in an embodiment of this application, the encoding and decoding method may be applied to the decoding end or the encoding end, and the encoding and decoding method may include the following steps:
  • Step 201 If the feature information of the current block meets a specific condition, divide the current block into a first triangle sub-block and a second triangle sub-block, that is, the decoder/encoder can divide the current block into two triangles Piece.
  • the feature information may include, but is not limited to, one or more of the following: motion information mode, size information, frame type, sequence-level switch control information.
  • motion information mode size information
  • frame type size information
  • sequence-level switch control information sequence-level switch control information
  • the motion information mode of the current block is the fusion mode or the skip mode; the motion information mode of the current block It is the fusion mode or skip mode, and the motion information mode of the current block is not other types of fusion sub-modes or skip sub-modes except the triangular prediction sub-mode; the motion information mode of the current block is the fusion mode, and the current block
  • the motion information mode of is not a normal fusion sub-mode (ie Normal Merge mode, also known as regular merge mode), MMVD sub-mode (a fusion mode for encoding motion differences), and SB fusion sub-mode (a fusion mode using sub-block motion information) , CIIP (used to jointly generate a new prediction value in the frame) sub-mode any one of the sub-modes; the motion information mode of the current block is skip mode, and the motion information mode of the current block is not the normal fusion sub-mode
  • the above examples can be used to determine whether the motion information mode of the current block is the triangular prediction mode.
  • the motion information mode of the current block is determined to be the triangular prediction mode
  • the motion information mode is determined Meet certain conditions.
  • the TPM mode and the triangular predictor sub-mode can be used interchangeably
  • the normal fusion mode and the normal fusion sub-mode can be used interchangeably
  • the fusion mode for coding motion difference and the MMVD sub-mode can be used interchangeably.
  • the fusion mode of the sub-block motion information and the SB fusion sub-mode can be used interchangeably
  • the CIIP mode and the CIIP sub-mode can be used interchangeably.
  • the frame type is the current frame where the current block is located is a B frame; the frame type is the current frame where the current block is located within the allowed frame Block copy.
  • the characteristic information includes sequence-level switch control information, and the sequence-level switch control information allows the current block to use the triangular prediction mode, it can be determined that the sequence-level switch control information meets a specific condition.
  • the size information includes at least one of a width value, a height value, and an area value
  • the size information meets certain conditions.
  • the width value of the current block is greater than or equal to the first threshold, and the width value of the current block is less than or equal to the second threshold 2.
  • the height value of the current block is greater than or equal to the third threshold, and the height value of the current block is less than or equal to the fourth threshold; 3.
  • the area value of the current block is greater than or equal to the fifth threshold, and the area value of the current block is less than or equal to the first Six thresholds; 4.
  • the area value of the current block is greater than or equal to the seventh threshold; 5.
  • the area value of the current block is less than or equal to the eighth threshold; 6.
  • the width of the current block is less than or equal to the ninth threshold, and the height of the current block Less than or equal to the tenth threshold.
  • each of the above threshold conditions can be configured based on experience, and there is no restriction on this.
  • the feature information includes one or more of motion information mode, size information, frame type, and sequence-level switch control information.
  • the feature information includes a motion information mode and the motion information mode satisfies a specific condition, it can indicate that the feature information meets a specific condition; when the feature information includes a frame type and the frame type meets a specific condition, it can indicate that the feature information meets a specific condition. analogy.
  • the feature information includes at least two of the motion information mode, size information, frame type, and sequence-level switch control information, taking the motion information mode and the frame type as examples, the motion information mode meets the specific condition and the frame type meets the specific condition It can indicate that the characteristic information meets certain conditions, and so on.
  • At least one specific condition of each type of feature information may be combined with at least one specific condition of another type of feature information Make any combination to form the specific condition of the current block.
  • this combination mode There is no restriction on this combination mode and can be set arbitrarily.
  • the decoding end divides the current block into the first triangular sub-block and the second triangular sub-block, which may include but is not limited to: obtaining the first indication information from the encoded bit stream, the first The indication information is used to indicate the division information of the triangle sub-block; if the division information of the triangle sub-block is the main diagonal division method, the current block is divided into the first triangle sub-block and the second triangle according to the main diagonal of the current block Sub-block; if the division information of the triangle sub-block is the sub-diagonal division mode, the current block is divided into the first triangle sub-block and the second triangle sub-block according to the sub-diagonal line of the current block.
  • the first indication information may be obtained through bypass-based binary arithmetic decoding; or, the first indication information may be obtained through context-based adaptive binary arithmetic decoding based on a context model.
  • CABAC CABAC mode
  • bypass CABAC mode that does not need to store and update the context model
  • bypass Binary arithmetic coding the bypass-based binary arithmetic is one type of CABAC mode
  • context-based adaptive binary arithmetic based on the context model is another type of CABAC mode.
  • Step 202 Construct a motion information list for the current block, where the motion information list includes multiple candidate motion information.
  • the motion information list construction method of the conventional fusion mode can be reused to construct the motion information list for the current block. For example, first determine the motion information list construction method of the conventional fusion mode, and then, based on the motion information list construction method of the conventional fusion mode, construct a motion information list for the current block, and the motion information list includes multiple candidate motion information.
  • Step 203 Obtain the first target motion information of the first triangle sub-block and the second target motion information of the second triangle sub-block from the motion information list; for example, the first target motion information and the second target motion information may be different .
  • the decoding end obtains the first target motion information of the first triangle sub-block and the second target motion information of the second triangle sub-block from the motion information list, which may include but is not limited to:
  • the encoded bitstream obtains second indication information, where the second indication information is used to indicate the first index value of the first target motion information in the motion information list, and the second index value of the second target motion information in the motion information list.
  • the decoder Based on the second indication information, the decoder obtains candidate motion information corresponding to the first index value from the motion information list, and determines the obtained candidate motion information corresponding to the first index value as the first target of the first triangle sub-block Motion information; based on the second indication information, the decoder obtains candidate motion information corresponding to the second index value from the motion information list, and determines the obtained candidate motion information corresponding to the second index value as the second triangle sub-block The second target movement information.
  • the first index value is obtained based on the bypassed binary arithmetic decoding, or the first index value is obtained based on the context model through context-based adaptive binary arithmetic decoding.
  • the second index value is obtained based on the bypassed binary arithmetic decoding, or the second index value is obtained based on the context model through context-based adaptive binary arithmetic decoding.
  • the first index value includes M1 binary bits, N1 binary bits of the M1 binary bits, and context-based adaptive binary arithmetic decoding based on the context model, and the remaining M1 binary bits (M1-N1 ) Binary bits, obtained by binary arithmetic decoding based on bypass; M1 is a positive integer greater than or equal to 1, N1 is a positive integer greater than or equal to 1, and M1 is greater than or equal to N1.
  • the first index value includes 4 binary bits, the first binary bit is obtained by context-based adaptive binary arithmetic decoding based on the context model, and the second, third, and fourth binary bits are obtained by bypass-based binary arithmetic decoding. .
  • the first index value includes 2 binary bits, and the first binary bit is obtained by performing context-based adaptive binary arithmetic decoding based on the context model.
  • the second index value includes M2 binary bits, N2 binary bits of the M2 binary bits, and context-based adaptive binary arithmetic decoding based on the context model, and the remaining M2 binary bits (M2-N2 ) Binary bits, obtained by binary arithmetic decoding based on bypass; M2 is a positive integer greater than or equal to 1, N2 is a positive integer greater than or equal to 1, and M2 is greater than or equal to N2.
  • the second index value includes 4 binary bits, the first binary bit is obtained by context-based adaptive binary arithmetic decoding based on the context model, and the second, third, and fourth binary bits are obtained by bypass-based binary arithmetic decoding. .
  • the second index value includes 1 binary bit, and the first binary bit is obtained by performing context-based adaptive binary arithmetic decoding based on the context model.
  • the context model corresponding to the first index value is the same as the context model corresponding to the second index value.
  • the context model corresponding to the first index value is different from the context model corresponding to the second index value.
  • the context model corresponding to the first index value and the first partition information, and the context model corresponding to the second index value and the first partition information are the same; the context model corresponding to the first index value and the second partition information, and the second index
  • the value and the context model corresponding to the second partition information are the same; the context model corresponding to the first index value and the first partition information, and the context model corresponding to the first index value and the second partition information are different.
  • the context model corresponding to the first index value and the first division information, the context model corresponding to the second index value and the first division information, the context model corresponding to the first index value and the second division information, and the second index value and The context models corresponding to the second division information are different.
  • the first division information indicates that the division information of the triangle sub-block is a main diagonal division mode;
  • the second division information indicates that the division information of the triangle sub-block is a sub-diagonal division mode.
  • obtaining candidate motion information corresponding to the first index value from the motion information list and determining the obtained candidate motion information corresponding to the first index value as the first target motion information of the first triangle sub-block, Including but not limited to: if the first index value is an even number, and the candidate motion information corresponding to the first index value includes the one-way motion information corresponding to list0, then the one-way motion information corresponding to list0 is determined as the first triangle sub-block.
  • acquiring candidate motion information corresponding to the second index value from the motion information list and determining the acquired candidate motion information corresponding to the second index value as the second target motion information of the second triangle sub-block, Including but not limited to: if the second index value is an even number, and the candidate motion information corresponding to the second index value includes the one-way motion information corresponding to list0, then the one-way motion information corresponding to list0 is determined as the first triangle sub-block.
  • Two target motion information if the second index value is an even number, the candidate motion information corresponding to the second index value does not include the one-way motion information corresponding to list0, then the one-way motion information corresponding to list1 is determined as the second triangle sub-block Second target motion information; if the second index value is an odd number, and the candidate motion information corresponding to the second index value includes the one-way motion information corresponding to list1, then the one-way motion information corresponding to list1 is determined as the second triangle sub-block Second target motion information; if the second index value is an odd number, and the candidate motion information corresponding to the second index value does not include the one-way motion information corresponding to list1, the one-way motion information corresponding to list0 is determined as the second triangle sub-block The second target movement information.
  • obtaining candidate motion information corresponding to the first index value from the motion information list and determining the obtained candidate motion information corresponding to the first index value as the first target motion information of the first triangle sub-block, Including but not limited to: if the first index value is an odd number, and the candidate motion information corresponding to the first index value includes the one-way motion information corresponding to list0, then the one-way motion information corresponding to list0 is determined as the first triangle sub-block.
  • acquiring candidate motion information corresponding to the second index value from the motion information list and determining the acquired candidate motion information corresponding to the second index value as the second target motion information of the second triangle sub-block, Including but not limited to: if the second index value is an odd number, and the candidate motion information corresponding to the second index value includes the one-way motion information corresponding to list0, then the one-way motion information corresponding to list0 is determined as the second triangle sub-block.
  • Two target motion information if the second index value is odd and the candidate motion information corresponding to the second index value does not include the one-way motion information corresponding to list0, then the one-way motion information corresponding to list1 is determined as the second triangle sub-block Second target motion information; if the second index value is an even number, and the candidate motion information corresponding to the second index value includes the one-way motion information corresponding to list1, then the one-way motion information corresponding to list1 is determined as the second triangle sub-block Second target motion information; if the second index value is an even number, and the candidate motion information corresponding to the second index value does not include the one-way motion information corresponding to list1, the one-way motion information corresponding to list0 is determined as the second triangle sub-block The second target movement information.
  • the reference frame configuration of the current frame where the current block is located may include two reference frame lists, and the two reference frame lists may be list0 and list1.
  • the candidate motion information may be one-way motion information, and the one-way motion information is the one-way motion information in list0 or the one-way motion information in list1; or, the candidate motion information may be two-way motion information, and the two-way motion The information includes one-way motion information in list0 and one-way motion information in list1.
  • the decoding end may also obtain a first candidate set and a second candidate set.
  • the first candidate set includes part of candidate motion information in the motion information list
  • the second candidate set includes part of candidate motion information in the motion information list.
  • the candidate motion information in one candidate set is not completely the same as the candidate motion information in the second candidate set.
  • the decoding end obtains candidate motion information corresponding to the first index value from the first candidate set, and determines the obtained candidate motion information corresponding to the first index value as the first target motion information of the first triangle sub-block.
  • the decoding end obtains candidate motion information corresponding to the second index value from the second candidate set, and determines the obtained candidate motion information corresponding to the second index value as the second target motion information of the second triangle sub-block.
  • Step 204 Perform motion compensation on the first triangle sub-block according to the first target motion information to obtain the predicted value of the first triangle sub-block; perform motion compensation on the second triangle sub-block according to the second target motion information to obtain the second triangle sub-block The predicted value of the block.
  • the sub-blocks in the first triangle sub-block that adopt non-weighted prediction compensation are stored for the sub-blocks
  • the first target motion information; for the sub-blocks in the second triangle sub-block that use non-weighted prediction and compensation, the second target motion information is stored for the sub-block; for the sub-blocks that use weighted prediction and compensation, the first target motion information is stored for the sub-block , Second target motion information or bidirectional motion information.
  • storing first target motion information, second target motion information, or bidirectional motion information for the sub-block may include, but is not limited to, any of the following: storing the first target motion information for the sub-block, The block stores the second target motion information, the first target motion information or the second target motion information is stored for the sub-block according to the position of the sub-block, the first target motion information or the second target motion information is stored for the sub-block according to the division direction of the current block Or, according to the position of the sub-block and the division direction of the current block, the first target motion information or the second target motion information is stored for the sub-block.
  • storing the first target motion information, the second target motion information, or the two-way motion information for the sub-block may include but is not limited to: if the first target motion information and the second target motion information come from different list, the first target motion information and the second target motion information are combined into two-way motion information, and the two-way motion information is stored for a sub-block. Alternatively, if the first target motion information and the second target motion information are from the same list, the first target motion information is stored for the sub-block, or the second target motion information is stored for the sub-block.
  • the first target motion information is stored for the sub-block, or the second target motion information is stored for the sub-block, which may include but is not limited to the following Either: store the first target motion information for the sub-block, store the second target motion information for the sub-block, store the first target motion information or the second target motion information for the sub-block according to the position of the sub-block, according to the division direction of the current block Store the first target motion information or the second target motion information for the sub-block, store the first target motion information or the second target motion information for the sub-block according to the position of the sub-block and the division direction of the current block, and store the first target motion information for the sub-block.
  • the average value of the target motion information and the second target motion information, or the first target motion information or the second target motion information is stored for the sub-block according to the size information of the current block.
  • the current block can be divided into the first triangle sub-block and the second triangle sub-block, and the first target motion of the first triangle sub-block can be obtained.
  • Information and the second target motion information of the second triangle sub-block motion compensation is performed on the first triangle sub-block according to the first target motion information to obtain the predicted value of the first triangle sub-block, and the second triangle sub-block is calculated according to the second target motion information.
  • the sub-block performs motion compensation to obtain the predicted value of the second triangular sub-block.
  • Embodiment 2 Based on the same application concept as the above method, an embodiment of this application also proposes an encoding method, which can be applied to the encoding end.
  • Figure 3 which is a schematic flow chart of the method. The method may include :
  • Step 301 The encoding terminal judges whether the characteristic information of the current block meets a specific condition. If it is, the triangular prediction mode is activated, and step 302 is executed. If not, the triangular prediction mode is not activated, and the technical solution of this embodiment is no longer adopted.
  • Step 302 The encoding end constructs a motion information list for the current block, and the motion information list includes multiple candidate motion information.
  • Step 303 The encoding end divides the current block into a first triangle sub-block and a second triangle sub-block. For example, divide the current block into a first triangular sub-block and a second triangular sub-block according to the main diagonal (angled 45 degrees to the right from the horizontal); or, according to the sub-diagonal (angle to the right from the horizontal) 135 degree included angle) divide the current block into the first triangle sub-block and the second triangle sub-block.
  • Step 304 The encoding end obtains the first target motion information of the first triangle sub-block and the second target motion information of the second triangle sub-block from the motion information list; the first target motion information and the second target motion information may be different.
  • Step 305 The encoding end performs motion compensation on the first triangle sub-block according to the first target motion information to obtain the predicted value of the first triangle sub-block; performs motion compensation on the second triangle sub-block according to the second target motion information to obtain the second triangle sub-block.
  • the predicted value of the first triangle sub-block and the predicted value of the second triangle sub-block are the predicted values of the current block.
  • Step 306 The encoding end saves the motion information of the current block for encoding reference for subsequent blocks.
  • Embodiment 3 Based on the same application concept as the above method, an embodiment of this application also proposes a decoding method, which can be applied to the decoding end.
  • Figure 4 which is a schematic flowchart of the method. The method may include :
  • Step 401 The decoding terminal judges whether the characteristic information of the current block meets a specific condition. If it is, the triangular prediction mode is activated, and step 402 is executed. If not, the triangular prediction mode is not activated, and the technical solution of this embodiment is no longer adopted.
  • Step 402 The decoder constructs a motion information list for the current block, and the motion information list includes multiple candidate motion information.
  • Step 403 The decoding end divides the current block into a first triangle sub-block and a second triangle sub-block. For example, divide the current block into a first triangular sub-block and a second triangular sub-block according to the main diagonal (angled 45 degrees to the right from the horizontal); or, according to the sub-diagonal (angle to the right from the horizontal) 135 degree included angle) divide the current block into the first triangle sub-block and the second triangle sub-block.
  • Step 404 The decoding end obtains the first target motion information of the first triangle sub-block and the second target motion information of the second triangle sub-block from the motion information list; the first target motion information and the second target motion information may be different.
  • Step 405 The decoding end performs motion compensation on the first triangle sub-block according to the first target motion information to obtain the predicted value of the first triangle sub-block; performs motion compensation on the second triangle sub-block according to the second target motion information to obtain the second triangle sub-block.
  • the predicted value of the first triangle sub-block and the predicted value of the second triangle sub-block are the predicted values of the current block.
  • Step 406 The decoding end saves the motion information of the current block for coding reference of subsequent blocks.
  • Embodiment 4 In step 301 and step 401, the encoder/decoder needs to determine whether the characteristic information of the current block meets certain conditions. If so, the triangular prediction mode can be enabled, that is, the current block is divided into the first triangular sub-block and The second triangle sub-block; if not, the triangle prediction mode may not be enabled.
  • the characteristic information may include, but is not limited to, one or more of the following: motion information mode, size information, frame type, sequence level switch control information.
  • Application scenario 1 When the feature information meets the following conditions, it is determined that the feature information of the current block meets a specific condition.
  • the motion information mode of the current block is the fusion mode or the skip mode, and the motion information mode of the current block is not other types of fusion sub-modes or skip sub-modes except for the triangular prediction sub-mode.
  • Application scenario 2 When the feature information meets at least the following conditions at the same time, it is determined that the feature information of the current block meets a specific condition.
  • the sequence-level switch control information is to allow the current block to use the triangular prediction mode, that is, the sequence-level control allows the triangular prediction mode to be enabled, that is, the sequence-level control switch is on, indicating that the current block is allowed to use the triangular prediction mode;
  • the current frame where the current block is located is a B frame, that is, the current frame allows two reference frame lists;
  • the area (width * height) of the current block is greater than or equal to N*N, and N can be 8;
  • the motion information mode of the current block is fusion mode (Merge mode) or skip mode (skip mode).
  • Application scenario 3 When the feature information meets at least the following conditions at the same time, it is determined that the feature information of the current block meets a specific condition.
  • the sequence-level switch control information is to allow the current block to use the triangular prediction mode, that is, the sequence-level control allows the triangular prediction mode to be enabled, that is, the sequence-level control switch is on, indicating that the current block is allowed to use the triangular prediction mode;
  • the current frame where the current block is located is a B frame, that is, the current frame allows two reference frame lists;
  • the area (width * height) of the current block is greater than or equal to N*N, and N can be 8;
  • the motion information mode of the current block is the fusion mode, and the motion information mode of the current block is not any one of the normal fusion sub-mode, MMVD sub-mode, SB fusion sub-mode, and CIIP sub-mode;
  • the motion information mode of the current block is the skip mode, and the motion information mode of the current block is not any one of the normal fusion sub-mode, the MMVD sub-mode, and the SB fusion sub-mode.
  • Application scenario 4 When the feature information meets at least the following conditions at the same time, it is determined that the feature information of the current block meets a specific condition.
  • the sequence-level switch control information is to allow the current block to use the triangular prediction mode, that is, the sequence-level control allows the triangular prediction mode to be enabled, that is, the sequence-level control switch is on, indicating that the current block is allowed to use the triangular prediction mode;
  • the current frame where the current block is located is a B frame, that is, the current frame allows two reference frame lists;
  • the motion information mode of the current block is fusion mode (Merge mode) or skip mode (skip mode);
  • the area (width * height) of the current block is greater than or equal to N*N, and N can be 8;
  • the width of the current block is less than or equal to M, and the height of the current block is less than or equal to M, and M can be 128.
  • Application scenario 5 When the feature information meets at least the following conditions at the same time, it is determined that the feature information of the current block meets a specific condition.
  • the sequence-level switch control information is to allow the current block to use the triangular prediction mode, that is, the sequence-level control allows the triangular prediction mode to be enabled, that is, the sequence-level control switch is on, indicating that the current block is allowed to use the triangular prediction mode;
  • the current frame where the current block is located is a B frame, that is, the current frame allows two reference frame lists;
  • the motion information mode of the current block is fusion mode (Merge mode) or skip mode (skip mode);
  • the area (width*height) of the current block is greater than or equal to N*N, and N can be 8.
  • the area (width*height) of the current block is less than or equal to M*M, and M can be 128.
  • Application scenario 6 When the feature information meets at least the following conditions at the same time, it is determined that the feature information of the current block meets a specific condition.
  • the sequence-level switch control information is to allow the current block to use the triangular prediction mode, that is, the sequence-level control allows the triangular prediction mode to be enabled, that is, the sequence-level control switch is on, indicating that the current block is allowed to use the triangular prediction mode;
  • the current frame where the current block is located is a B frame, that is, the current frame allows two reference frame lists;
  • the motion information mode of the current block is fusion mode (Merge mode) or skip mode (skip mode);
  • the width value of the current block is within the range of [Wmin, Wmax].
  • Wmin and Wmax may be a positive integer power of 2, for example, Wmin is 4 and Wmax is 128;
  • the height value of the current block is within the range of [Hmin, Hmax].
  • Hmin and Hmax may be a positive integer power of 2, for example, Hmin is 4 and Hmax is 128;
  • the area value of the current block is within the range of [Smin, Smax].
  • [a, b] means greater than or equal to a and less than or equal to b.
  • Application Scenario 7 For any application scenario in Application Scenario 2-Application Scenario 6, you can modify "The current frame where the current block is located is frame B" to: The current frame where the current block is located allows intra-frame copying, and other restrictions remain unchanged .
  • the current frame where the current block is located allows intra-frame block copying means that the current block can search for similar blocks in the decoded reconstructed block of the current frame (rather than decoded reconstructed blocks of other frames). Under this condition, the current block The current frame does not need to be a B frame.
  • Application scenario 8 If the height value and width value of the current block are both CTU_Size, the triangular prediction mode is not enabled, that is, the feature information does not meet a specific condition. If the height value of the current block is less than CTU_Size, or the width value of the current block is less than CTU_Size, any one of application scenario 1 to application scenario 7 is adopted to determine whether to enable the triangular prediction mode.
  • CTU_Size refers to the maximum size allowed by the current block, which can be 128 or other values.
  • Application scenario 9 If the height value or the width value of the current block is CTU_Size, the triangular prediction mode is not enabled, that is, the feature information does not meet a specific condition. If the height value of the current block is less than CTU_Size and the width value of the current block is less than CTU_Size, any one of application scenario 1 to application scenario 7 is adopted to determine whether to enable the triangular prediction mode.
  • CTU_Size refers to the maximum size allowed by the current block, which can be 128 or other values.
  • Embodiment 5 In step 302 and step 402, the encoder/decoder needs to construct a motion information list for the current block.
  • the motion information list may include multiple candidate motion information. The following describes the construction process of the motion information list:
  • the encoder/decoder may construct a motion information list, and the motion information list may include multiple candidate motion information, such as 5 candidate motion information, and the number is not limited. For example, the candidate block corresponding to the current block is obtained, and the motion information of the candidate block is added to the motion information list. Each motion information in the motion information list may be called candidate motion information.
  • the candidate blocks corresponding to the current block can be referred to as shown in FIG. 5A, and the blocks at these 7 positions can be regarded as the candidate blocks corresponding to the current block.
  • block 1, block 2, block 3, block 4, and block 5 are candidate blocks in the current frame
  • block 6 and block 7 are candidate blocks in other frames (immediate domain corresponding blocks).
  • First collect the available motion information of these 7 locations and sort them in the order of the average value of the unidirectional motion information, the bidirectionally predicted L0 motion information, the bidirectionally predicted L1 motion information, the bidirectionally predicted L0 motion information and the L1 motion information. Then, fill the top 5 sports information into the sports information list. When the number of motion information added to the motion information list is less than 5, zero motion vectors can be used for filling. In the above-mentioned filling process, duplicate checking can also be performed to avoid repeated movement information in the movement information list.
  • Method 2 The encoding end/decoding end reuses the motion information list construction method of the conventional fusion mode to construct the motion information list for the current block. For example, determine the motion information list construction method of the conventional fusion mode, and construct a motion information list for the current block based on the motion information list construction method of the conventional fusion mode, and the motion information list includes multiple candidate motion information. That is, the construction method of the motion information list in the triangular prediction mode is the same as the construction method of the motion information list in the conventional fusion mode.
  • the motion information list construction method of the conventional fusion mode is: as shown in Figure 5B, the candidate blocks corresponding to the current block include block A1, block A0, block B0, block B1, block B2, and collect available motion information at these 5 positions , According to the order of block A1, block A0, block B0, block B1, and block B2, sort the collected available motion information, and fill the sorted multiple motion information (such as 5 motion information) into the motion information list.
  • the motion information list construction method of the triangle prediction mode is to collect the available motion information of these 5 positions, and sort the collected available motion information in the order of block A1, block A0, block B0, block B1, and block B2.
  • the first multiple pieces of movement information (such as 5 pieces of movement information) are filled into the movement information list.
  • the above method is only an example of the construction of the motion information list in the conventional fusion mode, and there is no restriction on this.
  • Embodiment 6 In step 303 and step 403, the encoder/decoder needs to divide the current block into a first triangle sub-block and a second triangle sub-block.
  • the current block can be divided into a first triangle sub-block and a second triangle sub-block according to the main diagonal (an angle of 45 degrees to the right from the horizontal); or, see FIG. 6B , The current block can be divided into the first triangle sub-block and the second triangle sub-block according to the sub-diagonal line (with an angle of 135 degrees to the right from the horizontal).
  • Method 1 The encoding end uses the main diagonal method to divide the current block by default through the agreement, and the decoder uses the main diagonal method to divide the current block by default through the agreement.
  • the encoder can divide the current block into a first triangle sub-block and a second triangle sub-block in a main diagonal manner (with an angle of 45 degrees to the right from the horizontal), and decode The end can divide the current block into the first triangle sub-block and the second triangle sub-block in the main diagonal manner.
  • Method 2 The encoding end uses the sub-diagonal method to divide the current block by default through the agreement, and the decoding end uses the sub-diagonal method to divide the current block by default through the agreement.
  • the encoder can divide the current block into a first triangle sub-block and a second triangle sub-block in a sub-diagonal way (with an angle of 135 degrees to the right from the horizontal), and decode The end can divide the current block into a first triangle sub-block and a second triangle sub-block in a sub-diagonal manner.
  • the encoding end determines the rate-distortion cost 1 corresponding to the main diagonal division method and the rate-distortion cost 2 corresponding to the sub-diagonal division method.
  • the method for determining the rate-distortion cost 1 and the rate-distortion cost 2 is not limited. If the rate-distortion cost 1 is less than the rate-distortion cost 2, as shown in FIG. 6A, the encoding end may divide the current block into a first triangle sub-block and a second triangle sub-block in a main diagonal manner. Alternatively, if the rate-distortion cost 1 is greater than the rate-distortion cost 2, as shown in FIG.
  • the encoding end may divide the current block into the first triangle sub-block and the second triangle sub-block in a sub-diagonal manner.
  • the encoding end may also adopt other strategies or decisions to divide the triangle sub-blocks in the main diagonal way or the sub-diagonal way, and there is no restriction on this.
  • the encoded bit stream may include first indication information, and the first indication information is used to indicate the division information of the triangle sub-blocks, such as the main diagonal division mode or the sub-diagonal division. Division method.
  • the division information of the triangle sub-block may be the main diagonal division manner. If the encoding end divides the current block into the first triangle sub-block and the second triangle sub-block in the sub-diagonal manner, the division information of the triangle sub-block may be the sub-diagonal division manner.
  • the decoding end can obtain first indication information from the coded bitstream.
  • the first indication information is used to indicate the division information of the triangular sub-blocks, such as the main diagonal division mode or the sub-diagonal division the way. If the division information of the triangle sub-block is the main diagonal division mode, see FIG. 6A, the decoding end divides the current block into the first triangle sub-block and the second triangle sub-block according to the main diagonal of the current block; The division information of the sub-blocks is the sub-diagonal division mode. As shown in FIG. 6B, the decoding end divides the current block into the first triangular sub-block and the second triangular sub-block according to the sub-diagonal of the current block.
  • Embodiment 7 In the above embodiment 6, when the encoding end sends an encoded bitstream to the decoding end, the encoded bitstream may include first indication information, and the first indication information is used to indicate the division information of triangle sub-blocks, for example, One flag bit indicates the division information of the triangle sub-block. For example, when the flag bit is the first identifier 0, it indicates that the division information of the triangle sub-block is the main diagonal division mode. When the flag bit is the second flag 1, it indicates that the division information of the triangle sub-block is the subdiagonal division mode.
  • the encoding end may use the CABAC mode to encode the first indication information.
  • CABAC is only an example, and there is no restriction on this encoding method.
  • CABAC has two modes, the CABAC mode that needs to save and update at least one context model (referred to as context adaptive binary arithmetic coding), and the bypass CABAC mode that does not need to store and update the context model (referred to as bypass Binary arithmetic coding).
  • the first indication information (such as the flag bits of the division information of the triangle sub-block) can be coded based on the bypass binary arithmetic coding mode, or the first indication information can be coded based on the context-based adaptive binary arithmetic coding mode Encoding, that is, encoding the first indication information in a context-based adaptive binary arithmetic coding manner according to the context model.
  • the decoding end may use the CABAC mode to decode the first indication information. For example, when the encoding end encodes the first indication information based on the bypassed binary arithmetic coding mode, the decoding end decodes the first indication information based on the bypassed binary arithmetic decoding mode to obtain the division information of the triangle sub-blocks.
  • the decoder side decodes the first indication information based on the context-based adaptive binary arithmetic decoding mode to obtain the partition information of the triangle sub-block, that is, According to the context model, the first indication information is decoded in a context-based adaptive binary arithmetic decoding mode to obtain the partition information of the triangle sub-block.
  • the division information of the triangle sub-block can be obtained, such as a flag bit indicating the division information of the triangle sub-block.
  • the flag bit is the first identifier 0, it indicates that the division information of the triangle sub-block is the main diagonal division mode.
  • the flag bit is the second flag 1, it indicates that the division information of the triangle sub-block is the subdiagonal division mode.
  • the decoding end can decode the flag bits of the division information of the triangle sub-blocks.
  • the CABAC method is used for entropy decoding, and CABAC adopts the bypass mode, that is, there is no need to store and update the context model.
  • the CABAC method is adopted for entropy decoding, and the CABAC adopts the mode containing the context model.
  • Embodiment 8 In step 304 and step 404, the encoder/decoder obtains the first target motion information of the first triangle sub-block and the second target motion information of the second triangle sub-block from the motion information list, and the first target The motion information and the second target motion information may be different. The following describes the process of obtaining the first target motion information and the second target motion information:
  • the encoding end may default the first target motion information through a protocol agreement.
  • the encoding end may default to the first candidate motion information in the motion information list as the first target motion information of the first triangle sub-block.
  • the decoding end may default the first target motion information through a protocol agreement.
  • the decoding end may default to the first candidate motion information in the motion information list as the first target motion information of the first triangle sub-block.
  • the encoding end may default the second target motion information through a protocol agreement.
  • the encoding end may default the second candidate motion information in the motion information list as the second target motion information of the second triangle sub-block.
  • the decoding end may default the second target motion information through a protocol agreement.
  • the decoding end may default the second candidate motion information in the motion information list as the second target motion information of the second triangle sub-block.
  • Method 2 The encoding end determines the rate-distortion cost corresponding to each candidate motion information in the motion information list. There is no restriction on the determination method, and the candidate motion information corresponding to the minimum rate-distortion cost is used as the first target of the first triangle sub-block Sports information.
  • the encoding end excludes the first target motion information from the motion information list (that is, does not select the first target motion information in the motion information list), and on this basis, determines each candidate motion information remaining in the motion information list (that is, excludes the first target motion information).
  • Each candidate motion information remaining after a target motion information corresponds to the rate distortion cost, and the candidate motion information corresponding to the minimum rate distortion cost is used as the second target motion information of the second triangle sub-block.
  • the encoding end may also adopt other strategies to determine the first target motion information of the first triangle sub-block and the second target motion information of the second triangle sub-block, which is not limited.
  • the encoded bit stream may include second indication information, which is used to indicate the first index value of the first target motion information in the motion information list (used to indicate The first target motion information is the number of candidate motion information in the motion information list), the second index value of the second target motion information in the motion information list (used to indicate that the second target motion information is the second target motion information in the motion information list) Several candidate motion information).
  • the decoding end can obtain second indication information from the coded bitstream.
  • the second indication information is used to indicate the first index value of the first target motion information in the motion information list (used to indicate The first target motion information is the number of candidate motion information in the motion information list), the second index value of the second target motion information in the motion information list (used to indicate that the second target motion information is the second target motion information in the motion information list) Several candidate motion information).
  • the decoder can obtain candidate motion information corresponding to the first index value from the motion information list, and determine the obtained candidate motion information corresponding to the first index value Is the first target motion information of the first triangle sub-block; based on the second index value indicated by the second indication information, the decoder obtains the candidate motion information corresponding to the second index value from the motion information list, and will obtain The candidate motion information corresponding to the second index value is determined as the second target motion information of the second triangle sub-block.
  • Embodiment 9 In the above embodiment 8, the encoding end/decoding end may also determine which unidirectional motion information is used for the first target motion information of the first triangle sub-block based on the parity of the first index value. The decoding end may also determine which unidirectional motion information is used for the second target motion information of the second triangle sub-block based on the parity of the second index value.
  • the decoding end After the decoding end obtains the first index value (used to indicate the index value of the first target motion information in the motion information list) from the encoded bit stream, if the first index value is an even number, then it is determined that the first index value corresponds to Whether the candidate motion information includes unidirectional motion information in list0. If yes, determine the one-way motion information in list0 as the first target motion information of the first triangle sub-block. If not, determine the one-way motion information in list1 as the first target motion information of the first triangle sub-block.
  • the decoding end may obtain candidate motion information corresponding to the first index value from the motion information list. If the first index value is an even number, and the candidate motion information corresponding to the first index value is bidirectional motion information, and the bidirectional motion information includes unidirectional motion information in list0 and unidirectional motion information in list1, then list0 The unidirectional motion information in is determined as the first target motion information of the first triangle sub-block. If the first index value is an even number, and the candidate motion information corresponding to the first index value is one-way motion information, the one-way motion information is the one-way motion information in list0, then the one-way motion information in list0 Determined as the first target motion information of the first triangle sub-block.
  • the candidate motion information corresponding to the first index value is one-way motion information
  • the one-way motion information is the one-way motion information in list1
  • the one-way motion information in list1 Determined as the first target motion information of the first triangle sub-block.
  • the decoding end After the decoding end obtains the first index value (used to indicate the index value of the first target motion information in the motion information list) from the encoded bit stream, if the first index value is an odd number, it is determined that the first index value corresponds to Whether the candidate motion information includes the unidirectional motion information in list1. If so, determine the one-way motion information in list1 as the first target motion information of the first triangle sub-block. If not, determine the one-way motion information in list0 as the first target motion information of the first triangle sub-block.
  • the decoding end may obtain candidate motion information corresponding to the first index value from the motion information list. If the first index value is an odd number, and the candidate motion information corresponding to the first index value is bidirectional motion information, and the bidirectional motion information includes unidirectional motion information in list0 and unidirectional motion information in list1, then list1 The unidirectional motion information in is determined as the first target motion information of the first triangle sub-block. If the first index value is an odd number, and the candidate motion information corresponding to the first index value is one-way motion information, and the one-way motion information is the one-way motion information in list1, then the one-way motion information in list1 Determined as the first target motion information of the first triangle sub-block.
  • the one-way motion information is the one-way motion information in list0, then the one-way motion information in list0 Determined as the first target motion information of the first triangle sub-block.
  • the decoding end After the decoding end obtains the second index value (used to indicate the index value of the second target motion information in the motion information list) from the encoded bit stream, if the second index value is an even number, it is determined that the second index value corresponds to Whether the candidate motion information includes unidirectional motion information in list0. If so, determine the one-way motion information in list0 as the second target motion information of the second triangle sub-block. If not, determine the one-way motion information in list1 as the second target motion information of the second triangle sub-block.
  • the decoding end may obtain candidate motion information corresponding to the second index value from the motion information list. If the second index value is an even number, and the candidate motion information corresponding to the second index value is bidirectional motion information, the bidirectional motion information includes unidirectional motion information in list0 and unidirectional motion information in list1, then list0 The one-way motion information in is determined as the second target motion information of the second triangle sub-block. If the second index value is an even number, and the candidate motion information corresponding to the second index value is one-way motion information, the one-way motion information is the one-way motion information in list0, then the one-way motion information in list0 Determined as the second target motion information of the second triangle sub-block.
  • the one-way motion information is the one-way motion information in list1
  • the one-way motion information in list1 Determined as the second target motion information of the second triangle sub-block.
  • the decoding end After the decoding end obtains the second index value (used to indicate the index value of the second target motion information in the motion information list) from the encoded bit stream, if the second index value is an odd number, it is determined to correspond to the second index value Whether the candidate motion information includes the unidirectional motion information in list1. If so, determine the one-way motion information in list1 as the second target motion information of the second triangle sub-block. If not, determine the one-way motion information in list0 as the second target motion information of the second triangle sub-block.
  • the decoding end may obtain candidate motion information corresponding to the second index value from the motion information list. If the second index value is an odd number, and the candidate motion information corresponding to the second index value is bidirectional motion information, the bidirectional motion information includes unidirectional motion information corresponding to list0 and unidirectional motion information corresponding to list1, then list1 The one-way motion information in is determined as the second target motion information of the second triangle sub-block. If the second index value is an odd number, and the candidate motion information corresponding to the second index value is one-way motion information, the one-way motion information is the one-way motion information in list1, then the one-way motion information in list1 Determined as the second target motion information of the second triangle sub-block.
  • the one-way motion information is the one-way motion information in list0, then the one-way motion information in list0 Determined as the second target motion information of the second triangle sub-block.
  • the encoder selects the candidate motion information corresponding to the minimum rate-distortion cost from the motion information list (subsequently referred to as A1), and determines that the candidate motion information A1 is in the motion information list
  • the index value in is the first index value, and the first index value indicates the position of the candidate motion information A1 in the motion information list.
  • the encoding end determines whether the candidate motion information A1 includes unidirectional motion information in list0. If it is, the encoding end determines the unidirectional motion information in list0 as the first target motion information of the first triangle sub-block. If not, the encoding end determines the unidirectional motion information in list1 as the first target motion information of the first triangle sub-block.
  • the encoding end determines whether the candidate motion information A1 includes unidirectional motion information in list1. If it is, the encoding end determines the unidirectional motion information in list1 as the first target motion information of the first triangle sub-block. If not, the encoding end determines the unidirectional motion information in list0 as the first target motion information of the first triangle sub-block.
  • the encoding end selects the candidate motion information corresponding to the minimum rate-distortion cost from the motion information list (subsequently denoted as A2), and determines that the candidate motion information A2 is in the motion information list
  • the index value in is the second index value, and the second index value indicates the position of the candidate motion information A2 in the motion information list.
  • the encoding end determines whether the candidate motion information A2 includes the unidirectional motion information in list0. If it is, the encoding end determines the unidirectional motion information in list0 as the second target motion information of the second triangle sub-block. If not, the encoding end determines the unidirectional motion information in list1 as the second target motion information of the second triangle sub-block.
  • the encoding end determines whether the candidate motion information A2 includes the unidirectional motion information in list1. If it is, the encoding end determines the unidirectional motion information in list1 as the second target motion information of the second triangle sub-block. If not, the encoding end determines the unidirectional motion information in list0 as the second target motion information of the second triangle sub-block.
  • the candidate motion information corresponding to the first index value/second index value contains one-way motion information in list0
  • the one-way motion information in list0 is used as the target motion information; if the one-way motion information in list0 does not exist in the candidate motion information corresponding to the first index value/second index value, the one-way motion information in list1 The information serves as the target movement information.
  • the one-way motion information in list1 exists in the candidate motion information corresponding to the first index value/second index value, the one-way motion information in list1 is taken as Target motion information; if the one-way motion information in list1 does not exist in the candidate motion information corresponding to the first index value/second index value, the one-way motion information in list0 is used as the target motion information.
  • the first index value may be recorded as candIdx1
  • the second index value may be recorded as candIdx2.
  • frame B when the frame type of the current frame where the current block is located is frame B, frame B allows inter-blocks pointing to multiple Lists (reference frame lists) to exist at the same time, such as inter-frame prediction blocks pointing to list0 and frames pointing to list1 Inter prediction block, therefore, when the current frame where the current block is located is a B frame, the reference frame configuration of the current frame where the current block is located may include two reference frame lists, and the two reference frame lists may be list0 and list1.
  • the reference frame configuration of the current frame where the current block is located may include two reference frame lists, and the two reference frame lists may be list0 and list1.
  • the candidate motion information may be one-way motion information, and the one-way motion information is the one-way motion information in list0 or the one-way motion information in list1; or, the candidate motion information may be two-way motion information, And the two-way movement information includes one-way movement information in list0 and one-way movement information in list1.
  • Embodiment 10 In the above embodiment 8, the encoding end/decoding end may also determine which unidirectional motion information is used for the first target motion information of the first triangle sub-block based on the parity of the first index value. The decoding end may also determine which unidirectional motion information is used for the second target motion information of the second triangle sub-block based on the parity of the second index value.
  • the decoding end After the decoding end obtains the first index value (used to indicate the index value of the first target motion information in the motion information list) from the encoded bit stream, if the first index value is an odd number, it is determined that the first index value corresponds to Whether the candidate motion information includes unidirectional motion information in list0. If yes, determine the one-way motion information in list0 as the first target motion information of the first triangle sub-block. If not, determine the one-way motion information in list1 as the first target motion information of the first triangle sub-block.
  • the decoding end may obtain candidate motion information corresponding to the first index value from the motion information list. If the first index value is an odd number, and the candidate motion information corresponding to the first index value is bidirectional motion information, and the bidirectional motion information includes unidirectional motion information in list0 and unidirectional motion information in list1, then list0 The unidirectional motion information in is determined as the first target motion information of the first triangle sub-block. If the first index value is an odd number, and the candidate motion information corresponding to the first index value is one-way motion information, the one-way motion information is the one-way motion information in list0, then the one-way motion information in list0 Determined as the first target motion information of the first triangle sub-block.
  • the candidate motion information corresponding to the first index value is one-way motion information
  • the one-way motion information is the one-way motion information in list1
  • the one-way motion information in list1 Determined as the first target motion information of the first triangle sub-block.
  • the decoding end After the decoding end obtains the first index value (used to indicate the index value of the first target motion information in the motion information list) from the encoded bit stream, if the first index value is an even number, then it is determined that the first index value corresponds to Whether the candidate motion information includes the unidirectional motion information in list1. If so, determine the one-way motion information in list1 as the first target motion information of the first triangle sub-block. If not, determine the one-way motion information in list0 as the first target motion information of the first triangle sub-block.
  • the decoding end may obtain candidate motion information corresponding to the first index value from the motion information list. If the first index value is an even number, and the candidate motion information corresponding to the first index value is two-way motion information, and the two-way motion information includes one-way motion information in list0 and one-way motion information in list1, then list1 The unidirectional motion information in is determined as the first target motion information of the first triangle sub-block. If the first index value is an even number, and the candidate motion information corresponding to the first index value is one-way motion information, and the one-way motion information is the one-way motion information in list1, then the one-way motion information in list1 Determined as the first target motion information of the first triangle sub-block.
  • the one-way motion information is the one-way motion information in list0, then the one-way motion information in list0 Determined as the first target motion information of the first triangle sub-block.
  • the decoding end After the decoding end obtains the second index value (used to indicate the index value of the second target motion information in the motion information list) from the encoded bit stream, if the second index value is an odd number, it is determined to correspond to the second index value Whether the candidate motion information includes unidirectional motion information in list0. If so, determine the one-way motion information in list0 as the second target motion information of the second triangle sub-block. If not, determine the one-way motion information in list1 as the second target motion information of the second triangle sub-block.
  • the decoding end may obtain candidate motion information corresponding to the second index value from the motion information list. If the second index value is an odd number, and the candidate motion information corresponding to the second index value is bidirectional motion information, and the bidirectional motion information includes unidirectional motion information in list0 and unidirectional motion information in list1, then list0 The one-way motion information in is determined as the second target motion information of the second triangle sub-block. If the second index value is an odd number, and the candidate motion information corresponding to the second index value is one-way motion information, the one-way motion information is the one-way motion information in list0, then the one-way motion information in list0 Determined as the second target motion information of the second triangle sub-block.
  • the one-way motion information is the one-way motion information in list1
  • the one-way motion information in list1 Determined as the second target motion information of the second triangle sub-block.
  • the decoding end After the decoding end obtains the second index value (used to indicate the index value of the second target motion information in the motion information list) from the encoded bit stream, if the second index value is an even number, it is determined that the second index value corresponds to Whether the candidate motion information includes the unidirectional motion information in list1. If so, determine the one-way motion information in list1 as the second target motion information of the second triangle sub-block. If not, determine the one-way motion information in list0 as the second target motion information of the second triangle sub-block.
  • the decoding end may obtain candidate motion information corresponding to the second index value from the motion information list. If the second index value is an even number, and the candidate motion information corresponding to the second index value is bidirectional motion information, the bidirectional motion information includes unidirectional motion information in list0 and unidirectional motion information in list1, then list1 The one-way motion information in is determined as the second target motion information of the second triangle sub-block. If the second index value is an even number, and the candidate motion information corresponding to the second index value is one-way motion information, the one-way motion information is the one-way motion information in list1, then the one-way motion information in list1 Determined as the second target motion information of the second triangle sub-block.
  • the one-way motion information is the one-way motion information in list0, then the one-way motion information in list0 Determined as the second target motion information of the second triangle sub-block.
  • the encoder selects the candidate motion information corresponding to the minimum rate-distortion cost from the motion information list (subsequently referred to as A1), and determines that the candidate motion information A1 is in the motion information list
  • the index value in is the first index value, and the first index value indicates the position of the candidate motion information A1 in the motion information list.
  • the encoding end determines whether the candidate motion information A1 includes unidirectional motion information in list0. If it is, the encoding end determines the unidirectional motion information in list0 as the first target motion information of the first triangle sub-block. If not, the encoding end determines the unidirectional motion information in list1 as the first target motion information of the first triangle sub-block.
  • the encoding end determines whether the candidate motion information A1 includes unidirectional motion information in list1. If it is, the encoding end determines the unidirectional motion information in list1 as the first target motion information of the first triangle sub-block. If not, the encoding end determines the unidirectional motion information in list0 as the first target motion information of the first triangle sub-block.
  • the encoding end selects the candidate motion information corresponding to the minimum rate-distortion cost from the motion information list (subsequently denoted as A2), and determines that the candidate motion information A2 is in the motion information list
  • the index value in is the second index value, and the second index value indicates the position of the candidate motion information A2 in the motion information list.
  • the encoding end determines whether the candidate motion information A2 includes the unidirectional motion information in list0. If it is, the encoding end determines the unidirectional motion information in list0 as the second target motion information of the second triangle sub-block. If not, the encoding end determines the unidirectional motion information in list1 as the second target motion information of the second triangle sub-block.
  • the encoding end determines whether the candidate motion information A2 includes the unidirectional motion information in list1. If it is, the encoding end determines the unidirectional motion information in list1 as the second target motion information of the second triangle sub-block. If not, the encoding end determines the unidirectional motion information in list0 as the second target motion information of the second triangle sub-block.
  • the encoding end/decoding end may also obtain the first candidate set and the second candidate set according to the motion information list.
  • the first candidate set may include part of candidate motion information in the motion information list
  • the second candidate set may include part of candidate motion information in the motion information list
  • the candidate motion in the first candidate set The information is not completely the same as the candidate motion information in the second candidate set.
  • the encoding end determines the rate-distortion cost corresponding to each candidate motion information in the first candidate set, and uses the candidate motion information corresponding to the minimum rate-distortion cost as the first target motion information of the first triangle sub-block. Then, the encoding end excludes the first target motion information from the second candidate set, and determines each candidate motion information remaining in the second candidate set (that is, each candidate motion information remaining after excluding the first target motion information) corresponds to Rate distortion cost, and the candidate motion information corresponding to the minimum rate distortion cost is used as the second target motion information of the second triangle sub-block.
  • the encoded bit stream may include second indication information, and the second indication information is used to indicate the first index value of the first target motion information in the first candidate set (for Indicates that the first target motion information is the number of candidate motion information in the first candidate set), the second index value of the second target motion information in the second candidate set (used to indicate that the second target motion information is the second candidate Which candidate motion information in the set).
  • the decoding end can also obtain second indication information from the encoded bit stream.
  • the second indication information can be used to indicate that the first target motion information is in the first candidate.
  • the decoding end may obtain candidate motion information corresponding to the first index value from the first candidate set, and obtain the candidate motion information corresponding to the first index value.
  • the information is determined as the first target motion information of the first triangle sub-block.
  • the decoding end may obtain candidate motion information corresponding to the second index value from the second candidate set, and obtain the motion information corresponding to the second index value.
  • the candidate motion information is determined as the second target motion information of the second triangle sub-block.
  • splitDir is the marking bit of the division direction and indicates the division information of the triangle sub-blocks.
  • the motion information list includes the motion information of block A1, the motion information of block B1, the motion information of block B0, and the block A0.
  • the sequence of the motion information in the motion information list may be: motion information of block A1, motion information of block B1, motion information of block B0, motion information of block A0, motion information of block B2. If the motion information of block A1 is available, the motion information of block A1 is added to the motion information list in the above sequence; if the motion information of block A1 is not available, the motion information of block A1 is not added to the motion information list; if block B1 If the motion information of block B1 is available, the motion information of block B1 is added to the motion information list according to the above sequence; if the motion information of block B1 is not available, the motion information of block B1 is not added to the motion information list, and so on. In practical applications, some other types of motion information, such as temporal motion information, may be inserted between the motion information of the block B0 and the motion information of the block A0, which is not limited.
  • the index value of the motion information of block A1 is 0, and the value of the motion information of block B0 is 0.
  • the index value is 1, the index value of the motion information of block B1 is 2, the index value of the motion information of block A0 is 3, the index value of the motion information of block B2 is 4, and the first candidate set includes the motion information of block B0, block Motion information of B1, motion information of block B2.
  • the encoder uses the first index value "0" to encode the motion information of the block B0, which represents the first candidate motion information in the first candidate set, which is also the second candidate motion information in the motion information list, that is, the first index value "0" can correspond to the index value 1 of the motion information list.
  • the encoder uses the first index value "10" to encode the motion information of the block B1, which represents the second candidate motion information in the first candidate set, which is also the third candidate motion information in the motion information list, that is, the first index value "10" can correspond to the index value 2 of the motion information list.
  • the encoding end uses the first index value "11" to encode the motion information of the block B2, which represents the third candidate motion information in the first candidate set, which is also the fifth candidate motion information in the motion information list, that is, the first index value "11" can correspond to the index value 4 of the motion information list.
  • the decoding end After the decoding end obtains the first index value from the encoded bit stream, if the first index value is "0", the decoding end can add the first candidate motion information in the first candidate set (that is, the second motion information in the motion information list). One candidate motion information) is used as the first target motion information of the first triangle sub-block. If the first index value is "10", the decoder can use the second candidate motion information in the first candidate set (that is, the third candidate motion information in the motion information list) as the first target of the first triangle sub-block Sports information. If the first index value is "11", the decoder can use the third candidate motion information in the first candidate set (that is, the fifth candidate motion information in the motion information list) as the first target of the first triangle sub-block Sports information.
  • the second triangle sub-block below there is a high probability that the motion information of block B1 and the motion information of block B0 will not be selected.
  • the index value of the motion information of block A1 is 0, and the index value of the motion information of block B0 is 0.
  • the index value is 1, the index value of the motion information of the block B1 is 2, the index value of the motion information of the block A0 is 3, the index value of the motion information of the block B2 is 4, and the second candidate set may include the motion information of the block A0, Motion information of block A1 and motion information of block B2.
  • the encoding end uses the second index value "0" to encode the motion information of the block A1, which represents the first candidate motion information in the second candidate set, which is also the first candidate motion information in the motion information list, that is, the second index value "0" can correspond to the index value 0 of the motion information list.
  • the encoding end uses the second index value "10" to encode the motion information of the block A0, which represents the second candidate motion information in the second candidate set, which is also the fourth candidate motion information in the motion information list, that is, the second index value "10" can correspond to the index value 3 of the motion information list.
  • the encoding end encodes the motion information of the block B2 with the second index value "11", which represents the third candidate motion information in the second candidate set, which is also the fifth candidate motion information in the motion information list, that is, the second index value "11" can correspond to the index value 4 of the motion information list.
  • the decoding end After the decoding end obtains the second index value from the encoded bit stream, if the second index value is "0", the decoding end can add the first candidate motion information in the second candidate set (that is, the first candidate in the motion information list). One candidate motion information) is used as the second target motion information of the second triangle sub-block. If the second index value is "10", the decoder can use the second candidate motion information in the second candidate set (that is, the fourth candidate motion information in the motion information list) as the second target of the second triangle sub-block Sports information. If the second index value is "11", the decoder can use the third candidate motion information in the second candidate set (that is, the fifth candidate motion information in the motion information list) as the second target of the second triangle sub-block Sports information.
  • the second target motion information is different from the first target motion information, that is, the second index value and the first index value cannot correspond to the same candidate motion information in the motion information list. Therefore, when the first target motion information is The motion information of the block B2, that is, the first index value is "11", and the second candidate set includes the motion information of the block A0 and the motion information of the block A1.
  • the encoding end encodes the motion information of the block A1 with the second index value "0", which represents the first candidate motion information in the second candidate set, that is, the first candidate motion information in the motion information list.
  • the encoding end encodes the motion information of the block A0 with the second index value "1”, which represents the second candidate motion information in the second candidate set, that is, the fourth candidate motion information in the motion information list.
  • the decoding end obtains the second index value from the encoded bit stream, if the second index value is "0", then the first candidate motion information in the second candidate set (that is, the first candidate motion in the motion information list) Information) as the second target motion information of the second triangle sub-block. If the second index value is "1", the second candidate motion information in the second candidate set (that is, the fourth candidate motion information in the motion information list) is used as the second target motion information of the second triangle sub-block.
  • the second candidate set includes the motion information of the block A0, the motion information of the block A1, and the motion information of the block B2.
  • the second index value (candIdx2) has only two possibilities: index value 0 and index value 3. Therefore, the encoding end
  • the motion information corresponding to index value 0 (that is, the first candidate motion information in the motion information list) is encoded by the second index value "0", and the encoding end uses the second index value "1" to encode the motion information corresponding to index value 3 ( That is, the fourth candidate motion information in the motion information list).
  • the decoding process of the second index value can be referred to Table 1.
  • the second index value (candIdx2) exists Index value 0, index value 3, and index value 4 are three possibilities. Therefore, the encoder end uses the second index value "0" to encode the motion information corresponding to the index value 0, and the encoder end encodes the index value via the second index value "10". 3 corresponds to the motion information, the encoder end encodes the motion information corresponding to the index value 4 through the second index value "11"
  • the first index value (candIdx1) may be limited to corresponding index values 1 and 2, that is, the first index value corresponds to the motion information of the block B0 (index value 1) or block
  • the second index value (candIdx2) can correspond to index values 0, 3, and 4, that is, the second index value corresponds to the motion information of block A1 (index value is 0), the motion information of block A0 (index value is 3), and the block B2.
  • Motion information (the index value is 4).
  • the motion information corresponding to the second index value is different from the motion information corresponding to the first index value.
  • the three index values can be encoded by 0, 10, and 11, such as encoding the index value 0 by 0, encoding the index value 3 by 10, and encoding the index value 4 by 11. The foregoing method does not need to rely on the first index value to perform the decoding process, which reduces the analysis dependency.
  • the first index value (candIdx1) may be limited to corresponding index values 1, 2, 4, that is, the first index value corresponds to the motion information of the block B0 (the index value is 1) ,
  • the second index value (candIdx2) can be limited to corresponding index values 0 and 3, that is, the second index value corresponds to the motion information of block A1 (index value is 0) and the motion information of block A0 (index value is 3).
  • the first The motion information corresponding to the second index value is different from the motion information corresponding to the first index value.
  • the two index values can be encoded by 0 and 1, such as encoding index value 0 by 0, and index value 3 by encoding 1. The foregoing method does not need to rely on the first index value to perform the decoding process, which reduces the analysis dependency.
  • the current block is divided into the first triangle sub-block and the second triangle sub-block.
  • the motion information list includes the motion information of block A1, the motion information of block B1, the motion information of block B0, and the block A0.
  • the encoder/decoder can directly select the first target motion information from the motion information list. The selection process will not be repeated. .
  • the second candidate set may include motion information of block A1, motion information of block A0, Motion information of block B0 and motion information of block B1.
  • the encoder can pass the second index value
  • the motion information of the "0" coding block A1 represents the first candidate motion information in the second candidate set, which is also the first candidate motion information in the motion information list, that is, the second index value "0" can correspond to The index value of the motion information list is 0.
  • the encoder can encode the motion information of the block B0 with the second index value "10", which represents the second candidate motion information in the second candidate set, which is also the second candidate motion information in the motion information list, that is, the The second index value "10" may correspond to the index value 1 of the motion information list.
  • the encoder can encode the motion information of the block B1 with the second index value "110", which indicates the third candidate motion information in the second candidate set, which is also the third candidate motion information in the motion information list, that is, the The second index value "110" may correspond to the index value 2 of the motion information list.
  • the encoder can encode the motion information of the block A0 with the second index value "111", which represents the fourth candidate motion information in the second candidate set, and is also the fourth candidate motion information in the motion information list, that is, the The second index value "111" may correspond to the index value 3 of the motion information list.
  • the decoding end After the decoding end obtains the second index value from the encoded bit stream, if the second index value is "0", the decoding end can add the first candidate motion information in the second candidate set (that is, the first candidate motion information in the motion information list). One candidate motion information) is used as the second target motion information of the second triangle sub-block. If the second index value is "10", the decoding end can use the second candidate motion information in the second candidate set (that is, the second candidate motion information in the motion information list) as the second triangle sub-block. Target movement information. If the second index value is "110", the decoding end can use the third candidate motion information in the second candidate set (that is, the third candidate motion information in the motion information list) as the second triangle sub-block. Target movement information. If the second index value is "111", the decoder can use the fourth candidate motion information in the second candidate set (that is, the fourth candidate motion information in the motion information list) as the second triangle sub-block. Target movement information.
  • the first index value corresponds to the index value 3 as an example for description, indicating that the first target motion information is the fourth motion information in the motion information list (that is, the motion information of block A0 ), in this case: the encoder can encode the motion information of the block A1 with the second index value "0", which represents the first candidate motion information in the second candidate set, and is also the first candidate motion in the motion information list Information, that is, the second index value “0” may correspond to the index value 0 of the motion information list.
  • the encoder can encode the motion information of the block B0 with the second index value "10", which represents the second candidate motion information in the second candidate set, which is also the second candidate motion information in the motion information list, that is, the The second index value "10" may correspond to the index value 1 of the motion information list.
  • the encoding end can encode the motion information of the block B1 with the second index value "11", which indicates the third candidate motion information in the second candidate set, which is also the third candidate motion information in the motion information list, that is, the The second index value "11” may correspond to the index value 2 of the motion information list.
  • the decoding end After the decoding end obtains the second index value from the encoded bit stream, if the second index value is "0", the decoding end can add the first candidate motion information in the second candidate set (that is, the first candidate motion information in the motion information list). One candidate motion information) is used as the second target motion information of the second triangle sub-block. If the second index value is "10", the decoding end can use the second candidate motion information in the second candidate set (that is, the second candidate motion information in the motion information list) as the second triangle sub-block. Target movement information. If the second index value is "11", the decoding end can use the third candidate motion information in the second candidate set (that is, the third candidate motion information in the motion information list) as the second triangle sub-block. Target movement information.
  • the decoding process of the second index value (candIdx2) can be shown in Table 2. If the first index value (candIdx1) is not 11, that is, it does not correspond to the index value 4 of the motion information list, the decoding process of the second index value (candIdx2) can be shown in Table 3.
  • the first index value (candIdx1) is index value 0, index value 1, index value 2, index value 3.
  • the remaining 4 except the second index value (candIdx2) are removed. Therefore, 0, 10, 110, 111 can also be used for encoding, that is, up to 3 binary bits are used to encode the first index value (candIdx1) . Obviously, in this way, there is no need to rely on the size of the previous index value to determine how many binary bits currently need to be decoded, thereby reducing the analysis dependency.
  • the second index value (candIdx2) may be encoded first, and then the first index value (candIdx1) may be encoded.
  • the first index value (candIdx1) may be encoded first, and the second index value (candIdx2) may be encoded later; or the second index value (candIdx2) may be encoded first, and then the first index value (candIdx1) may be encoded.
  • embodiment 12 and embodiment 13 are only examples, and there is no limitation on this .
  • index value encoding only illustrates that the motion information list includes 5 candidate motion information.
  • the motion information list includes candidate motion information of other examples, the implementation is similar, and details are not repeated here.
  • Embodiment 14 when the encoding end sends an encoded bit stream to the decoding end, the encoded bit stream may include second indication information, and the second indication information is used to indicate the status of the first target motion information in the motion information list.
  • the encoding end may use the CABAC mode to encode the first index value, and the decoding end may use the CABAC mode to decode the first index value.
  • the encoding end may use the CABAC method to encode the second index value, and the decoding end may use the CABAC method to decode the second index value.
  • CABAC is just an example, and there is no restriction on it.
  • the motion information list includes 5 candidate motion information
  • the first index value (denoted as candIdx1) can be represented by four binary bits
  • the second index value (denoted as candIdx2) can be represented by four binary bits.
  • candIdx1 represents the first candidate motion information in the motion information list
  • the CABAC method is used to encode the first binary bit, and the first binary bit is 0.
  • candIdx1 represents the second candidate motion information in the motion information list
  • the first binary bit and the second binary bit are encoded in CABAC mode
  • the first binary bit is 1 and the second binary bit is 0.
  • candIdx1 represents the third candidate motion information in the motion information list
  • the first binary bit, the second binary bit, and the third binary bit are coded in CABAC mode, and the first binary bit is 1, the second binary bit The bit is 1, and the third binary bit is 0.
  • candIdx1 represents the fourth candidate motion information in the motion information list
  • the first binary bit, the second binary bit, the third binary bit, and the fourth binary bit are encoded in CABAC mode, and the first binary bit is 1.
  • the second binary bit is 1, the third binary bit is 1, and the fourth binary bit is 0.
  • candIdx1 represents the fifth candidate motion information in the motion information list
  • the first binary bit, the second binary bit, the third binary bit, and the fourth binary bit are coded in CABAC mode, and the first binary bit is 1.
  • the second binary bit is 1, the third binary bit is 1, and the fourth binary bit is 1.
  • the first binary bit of candIdx1 is decoded by CABAC. If the first binary bit is 0, it is determined that candIdx1 corresponds to 0, and candIdx1 represents the first candidate motion information in the motion information list. If the first binary bit is 1, the second binary bit of candIdx1 is decoded through CABAC. If the second binary bit is 0, it is determined that candIdx1 corresponds to 1 (represented by 10), and candIdx1 represents the second candidate motion information in the motion information list. If the second binary digit is 1, the third binary digit of candIdx1 is decoded through CABAC.
  • the third binary bit is 0, it is determined that candIdx1 corresponds to 2 (represented by 110), and candIdx1 represents the third candidate motion information in the motion information list. If the third binary digit is 1, the fourth binary digit of candIdx1 is decoded through CABAC. If the fourth binary bit is 0, it is determined that candIdx1 corresponds to 3 (represented by 1110), and candIdx1 represents the fourth candidate motion information in the motion information list. If the fourth binary digit is 1, since the maximum number of binary digits is reached, it is determined that candIdx1 corresponds to 4 (represented by 1111), and candIdx1 represents the fifth candidate motion information in the motion information list.
  • the end condition can be: the decoded binary digit is 0, or the decoded binary digit reaches the maximum number (numCandminus1), numCandminus1 can be obtained through syntax information, and there is no restriction on this , If numCandminus1 is 4, it means that the maximum number of binary digits of the first index value candIdx1 is 4.
  • the encoding process of candIdx1 by the encoding end and the decoding process of candIdx1 by the decoding end are introduced.
  • the encoding process and decoding process of candIdx2 are similar to the foregoing embodiment, and will not be repeated here.
  • Embodiment 15 when the encoding end sends an encoded bit stream to the decoding end, the encoded bit stream may include second indication information, and the second indication information is used to indicate the status of the first target motion information in the motion information list.
  • the encoding end may use the CABAC mode to encode the first index value, and the decoding end may use the CABAC mode to decode the first index value.
  • the encoding end may use the CABAC method to encode the second index value, and the decoding end may use the CABAC method to decode the second index value.
  • CABAC is just an example, and there is no restriction on it.
  • CABAC includes the CABAC mode that needs to save and update at least 1 context model (subsequently called adaptive binary arithmetic coding of context), and the bypass CABAC mode that does not need to store and update the context model (subsequently called bypassed binary arithmetic coding) .
  • the context-based adaptive binary arithmetic coding method Encode the second index value based on the bypass-based binary arithmetic coding method, or encode the second index value in the context-based adaptive binary arithmetic coding method, that is, according to the context model, the context-based adaptive binary arithmetic coding method Encode the second index value.
  • the decoding end uses the CABAC method to decode the first index value. For example, when the encoding end encodes the first index value based on the bypassed binary arithmetic coding mode, the decoding end decodes the first index value based on the bypassed binary arithmetic decoding mode to obtain the first index value.
  • the decoder side decodes the first index value based on the context-based adaptive binary arithmetic decoding method to obtain the first index value, that is, according to the context model .
  • the context-based adaptive binary arithmetic decoding method decodes the first index value to obtain the first index value.
  • the decoding end uses the CABAC method to decode the second index value. For example, when the encoding end encodes the second index value based on the bypassed binary arithmetic coding mode, the decoding end decodes the second index value based on the bypassed binary arithmetic decoding mode to obtain the second index value.
  • the decoder side decodes the second index value based on the context-based adaptive binary arithmetic decoding method to obtain the second index value, that is, according to the context model .
  • the context-based adaptive binary arithmetic decoding method decodes the second index value to obtain the second index value.
  • the first index value may include M1 binary bits, N1 binary bits of the M1 binary bits, and context-based adaptive binary arithmetic decoding based on the context model.
  • the remaining M1 binary bits (M1- N1) binary bits, obtained by binary arithmetic decoding based on bypass, M1 is greater than or equal to N1.
  • the first index value includes 4 binary bits, the first binary bit is obtained by context-based adaptive binary arithmetic decoding based on the context model, and the second, third, and fourth binary bits are obtained by bypass-based binary arithmetic decoding. .
  • the encoding end encodes the first binary bit according to the context model and the context-based adaptive binary arithmetic coding method.
  • the decoder decodes the first binary bit according to the context model and the context-based adaptive binary arithmetic decoding method to obtain the first binary bit.
  • the encoding end encodes the other binary bits based on the bypassed binary arithmetic coding method.
  • the decoding end decodes other binary bits based on the bypassed binary arithmetic decoding method to obtain other binary bits.
  • the encoder/decoder can use the CABAC method of updating a certain context model for encoding/decoding. For other binary bits, the encoder/decoder can use the one that does not update the context model.
  • the CABAC method performs encoding/decoding, that is, the CABAC method using Bypass mode.
  • the second index value may include M2 binary bits, N2 binary bits of M2 binary bits, and context-based adaptive binary arithmetic decoding based on the context model, and the remaining M2 binary bits (M2- N2) binary bits, obtained by binary arithmetic decoding based on bypass, M2 is greater than or equal to N2.
  • the second index value includes 4 binary bits, the first binary bit is obtained by context-based adaptive binary arithmetic decoding based on the context model, and the second, third, and fourth binary bits are obtained by bypass-based binary arithmetic decoding. .
  • the encoding end encodes the first binary bit according to the context model and the context-based adaptive binary arithmetic coding method.
  • the decoder decodes the first binary bit according to the context model and the context-based adaptive binary arithmetic decoding method to obtain the first binary bit.
  • the encoding end encodes the other binary bits based on the bypassed binary arithmetic coding method.
  • the decoding end decodes other binary bits based on the bypassed binary arithmetic decoding method to obtain other binary bits.
  • the encoder/decoder can use the CABAC method of updating a certain context model for encoding/decoding. For other binary bits, the encoder/decoder can use the one that does not update the context model.
  • the CABAC method performs encoding/decoding, that is, the CABAC method using Bypass mode.
  • Embodiment 16 The context model corresponding to the first index value is the same as the context model corresponding to the second index value. Or, the context model corresponding to the first index value is different from the context model corresponding to the second index value. Or, the context model corresponding to the first index value and the first partition information, and the context model corresponding to the second index value and the first partition information are the same; the context model corresponding to the first index value and the second partition information, and the second index The value and the context model corresponding to the second partition information are the same; the context model corresponding to the first index value and the first partition information, and the context model corresponding to the first index value and the second partition information are different.
  • the context model corresponding to the first index value and the first division information, the context model corresponding to the second index value and the first division information, the context model corresponding to the first index value and the second division information, and the second index value and The context models corresponding to the second division information are different.
  • the context model corresponding to the first index value and the first partition information, and the context model corresponding to the second index value and the first partition information are different; the context model corresponding to the first index value and the second partition information, and the second index The value is the same as the context model corresponding to the second division information.
  • the context model corresponding to the first index value and the first partition information, and the context model corresponding to the second index value and the first partition information are the same; the context model corresponding to the first index value and the second partition information, and the second index The value and the context model corresponding to the second division information are different.
  • the first division information indicates that the division information of the triangle sub-block is a main diagonal division manner; the second division information indicates that the division information of the triangle sub-block is a sub-diagonal division manner.
  • the encoding end/decoding end can maintain the context model A1 Model .
  • the first index value (in the triangle prediction mode, the index value used to indicate the first target motion information of the first triangle sub-block) corresponds to the context model A1 Model
  • the context model corresponding to the second index value (in the triangle prediction mode, used to indicate the index value of the second target motion information of the second triangle sub-block) is the context model A1 Model
  • the context model corresponding to the index value of the normal fusion mode is the context Model A1 Model .
  • the context model A1 Model is used to perform the first index value (such as the first binary bit of the first index value) Encoding or decoding. If the encoder/decoder needs to encode or decode the second index value according to the context model, the context model A1 Model is used to encode or decode the second index value (such as the first binary bit of the second index value). If the encoding end/decoding end needs to encode or decode the index value of the ordinary fusion mode according to the context model, use the context model A1 Model for the index value of the ordinary fusion mode (such as the first binary bit of the index value of the ordinary fusion mode) ) For encoding or decoding.
  • the encoder/decoder can maintain the context model B1 Model and the context model B2 Model .
  • the context model corresponding to the first index value is the context model B1 Model
  • the context model corresponding to the second index value is the context model B1 Model
  • the context model corresponding to the index value of the fusion mode (such as the regular merge mode) is the context model B2 Model .
  • the context model B1 Model is used to perform the first index value (such as the first binary bit of the first index value) Encoding or decoding. If the encoding end/decoding end needs to encode or decode the second index value according to the context model, the context model B1 Model is used to encode or decode the second index value (such as the first binary bit of the second index value).
  • the encoding end/decoding end needs to encode or decode the index value of the ordinary fusion mode according to the context model, use the context model B2 Model to perform the index value of the ordinary fusion mode (such as the first binary bit of the index value of the ordinary fusion mode) ) For encoding or decoding.
  • the encoder/decoder can maintain the context model C1, the context model C2, and the context model C3.
  • the context model corresponding to the first index value is the context model C1
  • the context model corresponding to the second index value is the context model C2.
  • the context model corresponding to the index value of the fusion mode (such as regular merge mode) is the context model C3.
  • the context model C1 is used to encode the first index value (such as the first binary bit of the first index value) Or decode.
  • the context model C2 is used to encode or decode the second index value (such as the first binary bit of the second index value).
  • the encoding end/decoding end needs to encode or decode the index value of the common fusion mode according to the context model, use the index value of the common fusion mode using the context model C3 (such as the first binary bit of the index value of the common fusion mode) Encode or decode.
  • the encoder/decoder can maintain the context model D1, the context model D2, and the context model D3.
  • the context model corresponding to the first index value and the first division information is the context model D1; the context model corresponding to the second index value and the first division information is the context model D1.
  • the context model corresponding to the first index value and the second partition information is the context model D2; the context model corresponding to the second index value and the second partition information is the context model D2.
  • the context model corresponding to the index value of the common fusion mode (such as regular merge mode) is the context model D3.
  • the context model D1 is used to compare the first index value (such as the first index value) If the division information of the triangular sub-block is the second division information (indicating that the current block is divided into the first according to the sub-diagonal line (with an angle of 135 degrees to the right) For the triangle sub-block and the second triangle sub-block), the context model D2 is used to encode or decode the first index value (such as the first binary bit of the first index value).
  • the encoder/decoder needs to encode or decode the second index value according to the context model, first determine the partition information of the triangle sub-block; if the partition information of the triangle sub-block is the first partition information, use the context model D1 The second index value (such as the first binary bit of the second index value) is encoded or decoded; if the partition information of the triangle sub-block is the second partition information, the context model D2 is used to perform the second index value (such as the second index The first binary bit of the value) is encoded or decoded; if the encoder/decoder needs to encode or decode the index value of the ordinary fusion mode according to the context model, the context model D3 is used to encode or decode the index value of the ordinary fusion mode (such as The first binary bit of the index value of the normal fusion mode) is encoded or decoded.
  • the second index value such as the first binary bit of the second index value
  • the context model D2 is used to perform the second index value (such as the second index The first binary bit
  • the encoder/decoder can maintain the context model E1, the context model E2, the context model E3, the context model E4, and the context model E5.
  • the context model corresponding to the first index value and the first division information is context model E1;
  • the context model corresponding to the first index value and the second division information is context model E2;
  • the second index value corresponds to the first division information
  • the context model of is the context model E3;
  • the context model corresponding to the second index value and the second division information is the context model E4.
  • the context model corresponding to the index value of the common fusion mode is the context model E5.
  • the division information of the triangle sub-block is determined; if the division information of the triangle sub-block is the first division information, the context model E1 is used Encode or decode the first index value (such as the first binary bit of the first index value); if the partition information of the triangle sub-block is the second partition information, use the context model E2 to compare the first index value (such as the first index) The first binary bit of the value) for encoding or decoding.
  • the partition information of the triangle sub-block is determined; if the partition information of the triangle sub-block is the first partition information, the context model E3 is used to index the second The value (such as the first binary bit of the second index value) is encoded or decoded; if the partition information of the triangle sub-block is the second partition information, the context model E4 is used to compare the second index value (such as the first binary bit of the second index value).
  • the context model E5 is used to encode or decode the index value of the ordinary fusion mode (such as the ordinary fusion mode The first binary bit of the index value) for encoding or decoding.
  • the encoder/decoder can maintain the context model F1, the context model F2, the context model F3, and the context model F4.
  • the context model corresponding to the first index value and the first division information may be the context model F1; the context model corresponding to the second index value and the first division information may be the context model F2.
  • the context model corresponding to the first index value and the second partition information may be context model F3; the context model corresponding to the second index value and the second partition information may be context model F3.
  • the context model corresponding to the index value of the common fusion mode is the context model F4.
  • the division information of the triangle sub-block is determined; if the division information of the triangle sub-block is the first division information, the context model F1 is used Encode or decode the first index value (such as the first binary bit of the first index value); if the partition information of the triangle sub-block is the second partition information, use the context model F3 to compare the first index value (such as the first index) The first binary bit of the value) for encoding or decoding.
  • the partition information of the triangle sub-block is determined; if the partition information of the triangle sub-block is the first partition information, the context model F2 is used to index the second The value (such as the first binary bit of the second index value) is encoded or decoded; if the partition information of the triangle sub-block is the second partition information, the context model F3 is used to compare the second index value (such as the first bit of the second index value).
  • the context model F4 is used to perform the index value of the ordinary fusion mode (such as the index value of the ordinary fusion mode).
  • the first binary bit of the index value for encoding or decoding.
  • the encoder/decoder can maintain the context model G1, the context model G2, the context model G3, and the context model G4.
  • the context model corresponding to the first index value and the first division information may be the context model G1; the context model corresponding to the second index value and the first division information may be the context model G1.
  • the context model corresponding to the first index value and the second partition information may be the context model G2; the context model corresponding to the second index value and the second partition information may be the context model G3.
  • the context model corresponding to the index value of the common fusion mode is the context model G4.
  • the partition information of the triangle sub-block is determined; if the partition information of the triangle sub-block is the first partition information, the context model G1 is used to index the first index The value (such as the first binary bit of the first index value) is encoded or decoded; if the partition information of the triangle sub-block is the second partition information, the context model G2 is used to compare the first index value (such as the first index value) Binary bits) for encoding or decoding.
  • the division information of the triangle sub-block is determined; if the division information of the triangle sub-block is the first division information, the context model G1 is used for the second index The value (such as the first binary bit of the second index value) is encoded or decoded; if the partition information of the triangle sub-block is the second partition information, the context model G3 is used to compare the second index value (such as the first Binary bits) for encoding or decoding; if the encoder/decoder needs to encode or decode the index value of the ordinary fusion mode according to the context model, the context model G4 is used to encode or decode the index value of the ordinary fusion mode (such as the index value of the ordinary fusion mode). The first binary bit of the index value) for encoding or decoding.
  • Embodiment 17 For the encoding end, the division information of the triangle sub-block may be encoded first, and then the first index value and the second index value may be encoded. For the decoding end, the division information of the triangle sub-block can be decoded first, and then the first index value and the second index value can be decoded. Or, for the encoding end, the first index value and the second index value may be encoded first, and then the partition information of the triangle sub-blocks may be encoded. For the decoding end, the first index value and the second index value can be decoded first, and then the division information of the triangle sub-blocks can be decoded.
  • Embodiment 18 In step 305 and step 405, the encoder/decoder needs to perform motion compensation on the first triangle sub-block according to the first target motion information to obtain the predicted value of the first triangle sub-block, according to the second target motion information Perform motion compensation on the second triangle sub-block to obtain the predicted value of the second triangle sub-block.
  • the above process is also the motion compensation process.
  • the current block may be divided into multiple sub-blocks, and for each sub-block, if the sub-block is located in the first triangular sub-block, motion compensation is performed on the sub-block according to the first target motion information; If the sub-block is located in the second triangle sub-block, the sub-block is motion compensated according to the second target motion information; if the sub-block is located in the first triangle sub-block and the second triangle sub-block at the same time, according to the first triangle sub-block A target motion information and a second target motion information perform weighted compensation for the sub-block (also called weighted prediction compensation).
  • weighted prediction compensation also called weighted prediction compensation
  • the current block can be divided into a first area sub-block, a second area sub-block, and a third area sub-block; the first area sub-block is located in the first triangle sub-block, and the second area sub-block is located in the second triangle.
  • the vertical distance between the center of each sub-block in the third region sub-block and the diagonal dividing the first triangular sub-block and the second triangular sub-block is less than a preset threshold; Perform motion compensation on the regional sub-block; perform motion compensation on the second regional sub-block according to the second target motion information; perform weighted compensation on the third regional sub-block according to the first target motion information and the second target motion information.
  • the first prediction value of the sub-block is determined according to the first target motion information; the second prediction value of the sub-block is determined according to the second target motion information; A prediction value, a first weight coefficient corresponding to the first prediction value, a second prediction value, and a second weight coefficient corresponding to the second prediction value perform weight compensation on the sub-block. For example, 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, the first weight coefficient is equal to the second weight coefficient. Wherein, that the sub-block is located on a diagonal line means that the center of the sub-block falls on a diagonal line.
  • the sub-blocks in the Z1 area are located in the first triangular sub-block, and the first target motion information of the first triangular sub-block is used to affect the Z1 area
  • the sub-block performs motion compensation to obtain the predicted value, and there is no restriction on the motion compensation process.
  • the sub-blocks of the Z2 area that is, the second area sub-block
  • the sub-blocks of the Z2 area are located in the second triangular sub-block
  • the second target motion information of the second triangular sub-block is used to perform motion compensation on the sub-blocks of the Z2 area.
  • sub-blocks in areas other than Z1 and Z2 that is, sub-blocks in the third area
  • sub-blocks marked as 1 denoted as sub-block 1
  • sub-blocks marked as 2 denoted as sub-block 2
  • sub-block marked as 3 denoted as sub-block 3
  • sub-block marked as 4 denoted as sub-block 4
  • sub-block marked as 5 denoted as sub-block 5
  • sub-block marked as 6 Denoted as sub-block 6
  • sub-block marked as 7 denoted as sub-block 7
  • Sub-block of a prediction value 7 P 2 P of the hypothesis prediction value for each sub-block mark 7 of 7, a prediction value may be determined sub-block 7 P 1, the second target is determined according to the motion information based on the first motion information of the target 1 A weighting coefficient is a, and the second weighting coefficient of the predicted value P 2 is b, then weight compensation is performed on the sub-block 7, and the predicted value after weighted compensation may be: P 1 *a+P 2 *b. Since the sub-block 7 is located in the first triangular sub-block, the first weight coefficient a is greater than the second weight coefficient b. Assuming that a is 7/8 and b is 1/8, the predicted value after weight compensation is P 1 * 7/8+P 2 *1/8.
  • the sub-block 6 marked as 6 refers to sub-block 7 for its processing process, which will not be repeated here. Since the sub-block 6 located within a first triangular sub-block, therefore, a first weighting factor larger than the second weighting coefficient B, and because the sub-block 7 as compared to 6 sub-block region closer to P 2, and therefore, the sub-block 6
  • the first weighting coefficient a may be smaller than the first weighting coefficient a of the sub-block 7.
  • the first weighting coefficient a of the sub-block 6 is 6/8 and b is 2/8, then the predicted value after weighting compensation is P 1 *6 /8+P 2 *2/8.
  • sub-block 5 marked 5 For each sub-block 5 marked 5, refer to sub-block 7 for its processing process, which will not be repeated here.
  • the first weighting coefficient a of sub-block 5 is 5/8
  • the second weighting coefficient b of sub-block 5 is 3/8
  • the predicted value after weighting compensation is P 1 *5/8+P 2 *3/8.
  • the first weight coefficient a may be equal to the second weight coefficient b.
  • the first weight coefficient a of sub-block 4 is 4/8
  • the second weight coefficient b of sub-block 4 is 4. /8
  • the predicted value after weighted compensation is P 1 *4/8+P 2 *4/8.
  • sub-block 3 marked as 3 For each sub-block 3 marked as 3, refer to sub-block 7 for its processing process, which will not be repeated here.
  • the first weighting coefficient a of sub-block 3 is 3/8
  • the second weighting coefficient b of sub-block 3 is 5/8
  • the predicted value after weight compensation is P 1 *3/8+P 2 *5/8.
  • the first weight coefficient a may be smaller than the second weight coefficient b.
  • the first weight coefficient a of sub-block 2 is 2/8
  • the second weight coefficient of sub-block 2 b is 6/8
  • the predicted value after weighted compensation is P 1 *2/8+P 2 *6/8.
  • the first weight coefficient a is smaller than the second weight coefficient b.
  • the first weight coefficient a of sub-block 1 may be smaller than the first weight coefficient a of sub-block 2, such as the first weight coefficient of sub-block 1.
  • a is 1/8 and b is 7/8, then the predicted value after weighted compensation is P 1 *1/8+P 2 *7/8.
  • this embodiment proposes a set of weighting coefficients for the brightness component.
  • the first weighting coefficient a 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 sub-block 7 is 7/8
  • the first weight coefficient a of sub-block 6 is 6/8
  • the first weight coefficient a of sub-block 5 is 5/8
  • the first weight coefficient a of sub-block 4 is 5/8.
  • the weight coefficient a is 4/8
  • the first weight coefficient a of sub-block 3 is 3/8
  • the first weight coefficient a of sub-block 2 is 2/8
  • the first weight coefficient a of sub-block 1 is 1/8.
  • the aforementioned brightness component means that the predicted value P 1 is a predicted brightness value, the predicted value P 2 is a predicted brightness value, and the predicted value P 1 *a+P 2 *b after weight compensation is also a predicted value of brightness.
  • this embodiment also proposes a set of weighting coefficients for chrominance components.
  • the first weighting coefficient a of each sub-block is ⁇ 6/8, 4/8, 2/8 ⁇ .
  • the first weighting coefficient a of sub-block 6 is 6/8
  • the first weighting coefficient a of sub-block 4 is 4/8
  • the first weighting coefficient a of sub-block 2 is 2/8.
  • the aforementioned chrominance component means that the predicted value P 1 is the chrominance predicted value, the predicted value P 2 is the chrominance predicted value, and the predicted value after weight compensation is also the chrominance predicted value.
  • Embodiment 19 In step 306 and step 406, the encoder/decoder needs to save the motion information of the current block. For the sub-block using non-weighted prediction compensation in the first triangle sub-block, store the first target motion information for the sub-block; for the sub-block using non-weighted prediction and compensation in the second triangle sub-block, store the second target motion information for the sub-block. Target motion information; for a sub-block that uses weighted prediction and compensation, the first target motion information, the second target motion information, or the bidirectional motion information is stored for the sub-block.
  • block 2, block 3, block 4, block 7, block 8, and block 12 are sub-blocks that use non-weighted prediction compensation in the first triangle sub-block, they can be block 2, block 3, block 4.
  • Block 7, block 8, and block 12 store the first target motion information (that is, the first target motion information of the first triangle sub-block).
  • block 5, block 9, block 10, block 13, block 14, and block 15 are sub-blocks using non-weighted prediction compensation in the second triangle sub-block, they can be block 5, block 9, block 10, block 13, block 14.
  • Block 15 stores the second target motion information (that is, the second target motion information of the second triangle sub-block).
  • block 1, block 6, block 11, and block 16 are sub-blocks that adopt weighted prediction compensation, then block 1, block 6, block 11, and block 16 can store first target motion information, second target motion information, or bidirectional motion
  • first target motion information second target motion information
  • bidirectional motion For the specific storage method, please refer to the subsequent embodiments.
  • Block 1, block 2, block 3, block 5, block 6, and block 9 are sub-blocks that use non-weighted prediction compensation in the first triangle sub-block, they can be block 1, block 2, block 3.
  • Block 5, Block 6, and Block 9 store the first target motion information (that is, the first target motion information of the first triangle sub-block).
  • block 8, block 11, block 12, block 14, block 15, and block 16 are sub-blocks using non-weighted prediction compensation in the second triangle sub-block, they can be block 8, block 11, block 12, block 14, block 15.
  • Block 16 stores the second target motion information (that is, the second target motion information of the second triangle sub-block).
  • the first target motion information, second target motion information, or bidirectional motion can be stored for block 4, block 7, block 10, and block 13.
  • the specific storage method please refer to the subsequent embodiments.
  • the motion information can be stored for each sub-block with a size of 4*4.
  • the size of the sub-block is not limited.
  • Embodiment 20 For a sub-block that uses non-weighted prediction and compensation in the first triangle sub-block, the first target motion information is stored for the sub-block; for the sub-block that uses non-weighted prediction and compensation in the second triangle sub-block, the sub-block is The block stores the second target motion information; for a sub-block using weighted prediction compensation, the first target motion information or the second target motion information is stored for the sub-block.
  • Application scenario 1 For sub-blocks that adopt weighted prediction compensation, the first target motion information is directly stored for the sub-block.
  • Application scenario 2 For sub-blocks that adopt weighted prediction compensation, the second target motion information is directly stored for the sub-block.
  • Application scenario 3 For sub-blocks using weighted prediction compensation, the first target motion information or the second target motion information is stored for the sub-block according to the division direction of the current block (such as the main diagonal direction or the sub-diagonal direction).
  • the first target motion information is stored for the sub-block. If the dividing direction of the current block is the main diagonal direction (an angle of 45 degrees with the horizontal and right direction), the second target motion information is stored for the sub-block. Or, if the dividing direction of the current block is the sub-diagonal direction (an angle of 135 degrees with the horizontal and right direction), the second target motion information is stored for the sub-block. If the dividing direction of the current block is the main diagonal direction (an angle of 45 degrees with the horizontal right direction), the first target motion information is stored for the sub-block.
  • Application scenario 4 For sub-blocks using weighted prediction and compensation, according to the position of the sub-block (such as the sub-block on the diagonal, above the diagonal, below the diagonal, etc.), store the first target motion information or the first target motion information for the sub-block. 2. Target movement information.
  • the first target motion information is stored for the sub-block; if the sub-block is below the diagonal, the second target motion information is stored for the sub-block. Or, if the sub-block is on the diagonal or below the diagonal, the second target motion information is stored for the sub-block; if the sub-block is above the diagonal, the first target motion information is stored for the sub-block. Or, if the sub-block is on the diagonal or above the diagonal, the second target motion information is stored for the sub-block; if the sub-block is below the diagonal, the first target motion information is stored for the sub-block. Or, if the sub-block is on the diagonal or below the diagonal, the first target motion information is stored for the sub-block; if the sub-block is above the diagonal, the second target motion information is stored for the sub-block.
  • Application scenario 5 For sub-blocks using weighted prediction compensation, the position of the sub-block (for example, the sub-block is on the diagonal, above the diagonal, below the diagonal, etc.) and the division direction of the current block (for example, The main diagonal direction or the sub-diagonal direction), the first target motion information or the second target motion information is stored for the sub-block.
  • the position of the sub-block for example, the sub-block is on the diagonal, above the diagonal, below the diagonal, etc.
  • the division direction of the current block for example, The main diagonal direction or the sub-diagonal direction
  • the first target motion information or the second target motion information may be stored for the sub-block based on the division direction of the current block. For example, if the dividing direction of the current block is the sub-diagonal direction, the first target motion information is stored for the sub-block. If the dividing direction of the current block is the main diagonal direction, the second target motion information is stored for the sub-block. Alternatively, if the dividing direction of the current block is the sub-diagonal direction, the second target motion information is stored for the sub-block. If the dividing direction of the current block is the main diagonal direction, the first target motion information is stored for the sub-block.
  • the first target motion information is stored for the sub-block.
  • the second target motion information is stored for the sub-block.
  • Embodiment 21 For the sub-block that adopts non-weighted prediction compensation in the first triangle sub-block, the first target motion information is stored for the sub-block; for the sub-block that adopts non-weighted prediction and compensation in the second triangle sub-block, the sub-block is The block stores the second target motion information; for the sub-block that adopts weighted prediction and compensation, the first target motion information, the second target motion information or the two-way motion information (that is, the first target motion information and the second target motion information) are stored for the sub-block Composed of two-way motion information).
  • Application scenario 1 For sub-blocks using weighted prediction compensation, if the first target motion information and the second target motion information come from different lists, the first target motion information and the second target motion information are directly merged into two-way motion information, Store bidirectional motion information (that is, bidirectional motion information composed of the first target motion information and the second target motion information) for the sub-block. If the first target motion information and the second target motion information are from the same list, the first target motion information is stored for the sub-block.
  • bidirectional motion information that is, bidirectional motion information composed of the first target motion information and the second target motion information
  • Application scenario 2 For sub-blocks using weighted prediction and compensation, if the first target motion information and the second target motion information are from different lists, the first target motion information and the second target motion information are directly merged into two-way motion information, Store bidirectional motion information (that is, bidirectional motion information composed of the first target motion information and the second target motion information) for the sub-block. If the first target motion information and the second target motion information are from the same list, the second target motion information is stored for the sub-block.
  • bidirectional motion information that is, bidirectional motion information composed of the first target motion information and the second target motion information
  • Application scenario 3 For sub-blocks using weighted prediction compensation, if the first target motion information and the second target motion information come from different lists, the first target motion information and the second target motion information are directly merged into two-way motion information, Store bidirectional motion information (that is, bidirectional motion information composed of the first target motion information and the second target motion information) for the sub-block. If the first target motion information and the second target motion information are from the same list, the first target motion information or the second target motion information is stored for the sub-block according to the division direction of the current block (such as the main diagonal direction or the sub-diagonal direction) Target movement information.
  • the division direction of the current block such as the main diagonal direction or the sub-diagonal direction
  • the first target motion information may be stored for the sub-block. If the division direction of the current block is the main diagonal direction, the second target motion information may be stored for the sub-block. Alternatively, if the dividing direction of the current block is the sub-diagonal direction, the second target motion information may be stored for the sub-block. If the dividing direction of the current block is the main diagonal direction, the first target motion information may be stored for the sub-block.
  • Application scenario 4 For sub-blocks using weighted prediction compensation, if the first target motion information and the second target motion information are from different lists, the first target motion information and the second target motion information are directly merged into two-way motion information, Store bidirectional motion information (that is, bidirectional motion information composed of the first target motion information and the second target motion information) for the sub-block. If the first target motion information and the second target motion information are from the same list, then the first is stored for the sub-block according to the position of the sub-block (such as the sub-block on the diagonal, above the diagonal, below the diagonal, etc.) Target motion information or second target motion information.
  • bidirectional motion information that is, bidirectional motion information composed of the first target motion information and the second target motion information
  • the first target motion information is stored for the sub-block; if the sub-block is below the diagonal, the second target motion information is stored for the sub-block. Or, if the sub-block is on the diagonal or below the diagonal, the second target motion information is stored for the sub-block; if the sub-block is above the diagonal, the first target motion information is stored for the sub-block. Or, if the sub-block is on the diagonal or above the diagonal, the second target motion information is stored for the sub-block; if the sub-block is below the diagonal, the first target motion information is stored for the sub-block. Or, if the sub-block is on the diagonal or below the diagonal, the first target motion information is stored for the sub-block; if the sub-block is above the diagonal, the second target motion information is stored for the sub-block.
  • Application scenario 5 For sub-blocks using weighted prediction compensation, if the first target motion information and the second target motion information come from different lists, the first target motion information and the second target motion information are directly merged into two-way motion information, Store bidirectional motion information (that is, bidirectional motion information composed of the first target motion information and the second target motion information) for the sub-block. If the first target motion information and the second target motion information come from the same list, the division of the current block is based on the position of the sub-block (for example, the sub-block is on the diagonal, above the diagonal, below the diagonal, etc.) The direction (for example, the main diagonal direction or the sub-diagonal direction), the first target motion information or the second target motion information is stored for the sub-block.
  • bidirectional motion information that is, bidirectional motion information composed of the first target motion information and the second target motion information
  • the first target motion information or the second target motion information may be stored for the sub-block based on the division direction of the current block. For example, if the dividing direction of the current block is the sub-diagonal direction, the first target motion information is stored for the sub-block. If the dividing direction of the current block is the main diagonal direction, the second target motion information is stored for the sub-block. Alternatively, if the dividing direction of the current block is the sub-diagonal direction, the second target motion information is stored for the sub-block. If the dividing direction of the current block is the main diagonal direction, the first target motion information is stored for the sub-block.
  • the first target motion information is stored for the sub-block.
  • the second target motion information is stored for the sub-block.
  • Application scenario 6 For sub-blocks using weighted prediction and compensation, if the first target motion information and the second target motion information are from different lists, the first target motion information and the second target motion information are directly merged into two-way motion information, Store bidirectional motion information (that is, bidirectional motion information composed of the first target motion information and the second target motion information) for the sub-block. If the first target motion information and the second target motion information are from the same list, the average value of the first target motion information and the second target motion information is stored for the sub-block. For example, if the reference frame of the list corresponding to the first target motion information is the same as the reference frame of the list corresponding to the second target motion information, the average value of the first target motion information and the second target motion information is stored for the sub-block.
  • bidirectional motion information that is, bidirectional motion information composed of the first target motion information and the second target motion information
  • the average value of the first target motion information and the second target motion information may include: the average value of the first target motion information and the second target motion information, for example, the motion vector in the first target motion information and the second target motion information
  • the average value of the motion vector in the target motion information that is, the weight of the two can be the same.
  • the weighted average of the first target motion information and the second target motion information for example, the weighted average of the motion vector in the first target motion information and the motion vector in the second target motion information, that is, both The weight can be different.
  • the average value of the first target motion information and the second target motion information is stored for the sub-block. If the reference frame of the list corresponding to the first target motion information is different from the reference frame of the list corresponding to the second target motion information, the sub-block is defined according to the division direction of the current block (such as the main diagonal direction or the sub-diagonal direction) Store the first target motion information or the second target motion information.
  • the first target motion information may be stored for the sub-block.
  • the second target motion information may be stored for the sub-block.
  • the second target motion information may be stored for the sub-block.
  • the first target motion information may be stored for the sub-block.
  • Application scenario 7 For sub-blocks using weighted prediction and compensation, if the first target motion information and the second target motion information come from different lists, the first target motion information and the second target motion information are directly merged into two-way motion information, Store bidirectional motion information for sub-blocks. If the first target motion information and the second target motion information are from the same list, the first target motion information or the second target motion information can be stored for the sub-block according to the size information of the current block.
  • the first target motion information or the second target motion information is stored for the sub-block according to the division direction of the current block.
  • the division direction is the sub-diagonal direction
  • the first target motion information may be stored for the sub-block.
  • the division direction is the main diagonal direction
  • the second target motion information may be stored for the sub-block.
  • the dividing direction is the sub-diagonal direction
  • the second target motion information may be stored for the sub-block.
  • the division direction is the main diagonal direction
  • the first target motion information may be stored for the sub-block.
  • the first target motion information or the second target motion information is stored for the sub-block based on the width-to-height relationship. For example, if the height value of the current block is greater than the width value of the current block, the first target motion information is stored for the sub-block; if the height value of the current block is less than the width value of the current block, the second target motion information is stored for the sub-block.
  • bidirectional motion information can be stored.
  • the second target motion information is scaled to this reference frame, using the first target motion information and the scaled second target motion The information is combined with two-way motion information.
  • the reference frame of the first target motion information is the same as a reference frame of List(1-X)
  • the first target motion information is scaled to this reference frame, and the second target motion information and the scaled first target motion are used
  • the information is combined with two-way motion information.
  • these sub-blocks using weighted prediction compensation only store the first target motion information.
  • an embodiment of the application also proposes an encoding and decoding device, which is applied to the encoding end or the decoding end.
  • an encoding and decoding device which is applied to the encoding end or the decoding end.
  • FIG. 8 it is a structural diagram of the device, and the device may include:
  • the dividing module 81 is configured to divide the current block into a first triangular sub-block and a second triangular sub-block if the characteristic information of the current block meets a specific condition; the building module 82 is configured to construct motion information for the current block
  • the motion information list includes a plurality of candidate motion information;
  • the obtaining module 83 is configured to obtain the first target motion information of the first triangle sub-block and the second triangle sub-block from the motion information list Second target motion information; the first target motion information is different from the second target motion information;
  • the coding and decoding module 84 is configured to perform motion compensation on the first triangle sub-block according to the first target motion information, Obtain the predicted value of the first triangle sub-block; perform motion compensation on the second triangle sub-block according to the second target motion information to obtain the predicted value of the second triangle sub-block.
  • the feature information includes one or more of the following: motion information mode, size information, frame type, sequence level switch control information.
  • the dividing module 81 is further configured to: if the characteristic information includes the motion information mode, and the motion information mode meets at least one of the following conditions, determine that the motion information mode meets a specific condition;
  • the motion information mode of the current block is a fusion mode or a skip mode
  • the motion information mode of the current block is a fusion mode or a skip mode, and the motion information mode of the current block is not a fusion sub-mode or a skip sub-mode of other types except the triangular prediction sub-mode;
  • the motion information mode of the current block is a fusion mode, and the motion information mode of the current block is not any one of the normal fusion sub-mode, the MMVD sub-mode, the SB fusion sub-mode, and the CIIP sub-mode;
  • the motion information mode of the current block is a skip mode, and the motion information mode of the current block is not any one of the normal fusion sub-mode, the MMVD sub-mode, and the SB fusion sub-mode.
  • the dividing module 81 is further configured to: if the characteristic information includes the frame type and the frame type meets at least one of the following conditions, determine that the frame type meets a specific condition;
  • the frame type is that the current frame where the current block is located is a B frame;
  • the frame type is that the current frame where the current block is located allows intra-frame block copying.
  • the dividing module 81 is further configured to: if the characteristic information includes the sequence-level switch control information, and the sequence-level switch control information is to allow the current block to adopt the triangular prediction mode, determine the sequence-level switch control information Meet certain conditions.
  • the dividing module 81 is further configured to: if the feature information includes the size information, and the size information meets at least one of the following conditions, determine that the size information meets a specific condition;
  • the width value of the current block is greater than or equal to a first threshold, and the width value of the current block is less than or equal to a second threshold;
  • the height value of the current block is greater than or equal to a third threshold, and the height value of the current block is less than or equal to a fourth threshold;
  • the area value of the current block is greater than or equal to the fifth threshold, and the area value of the current block is less than or equal to the sixth threshold;
  • the area value of the current block is greater than or equal to the seventh threshold
  • the area value of the current block is less than or equal to the eighth threshold
  • the width value of the current block is less than or equal to the ninth threshold, and the height value of the current block is less than or equal to the tenth threshold.
  • the dividing module 81 divides the current block into a first triangular sub-block and a second triangular sub-block, it is specifically used to: obtain the first indication information from the coded bit stream, The first indication information is used to indicate the division information of the triangle sub-block; if the division information of the triangle sub-block is the main diagonal division mode, the current block is divided into the main diagonal according to the current block The first triangle sub-block and the second triangle sub-block; if the division information of the triangle sub-block is the sub-diagonal division mode, the current block is divided into the first triangle according to the sub-diagonal line of the current block The sub-block and the second triangle sub-block.
  • the first indication information is obtained through bypass-based binary arithmetic decoding; or, the first indication information is obtained through context-based adaptive binary arithmetic decoding based on a context model.
  • the construction module 82 is specifically used for constructing a motion information list for the current block:
  • the motion information list construction method of the conventional fusion mode is reused to construct the motion information list for the current block.
  • the obtaining module 83 obtains the first target motion information of the first triangle sub-block and the second target motion of the second triangle sub-block from the motion information list
  • the information is specifically used for:
  • the second indication information is used to indicate the first index value of the first target motion information in the motion information list, and the second index value of the second target motion information in the motion information list ;
  • the first index value is obtained based on the bypassed binary arithmetic decoding, or the first index value is obtained based on the context model through context-based adaptive binary arithmetic decoding; the second index value is based on the bypassed binary arithmetic decoding Or, the second index value is obtained by performing context-based adaptive binary arithmetic decoding based on the context model.
  • the first index value includes M1 binary bits, N1 binary bits of the M1 binary bits are obtained by performing context-based adaptive binary arithmetic decoding based on the context model, and the remainder of the M1 binary bits (M1 -N1) binary bits, obtained by binary arithmetic decoding based on bypass; the M1 is a positive integer greater than or equal to 1, the N1 is a positive integer greater than or equal to 1, and the M1 is greater than or equal to the N1;
  • the second index value includes M2 binary bits, N2 binary bits of the M2 binary bits are obtained by performing context-based adaptive binary arithmetic decoding based on the context model, and the remainder of the M2 binary bits (M2 -N2) binary bits, obtained by binary arithmetic decoding based on bypass; the M2 is a positive integer greater than or equal to 1, the N2 is a positive integer greater than or equal to 1, and the M2 is greater than or equal to the N2.
  • the context model corresponding to the first index value is the same as the context model corresponding to the second index value; or, the context model corresponding to the first index value is different from the context model corresponding to the second index value.
  • the acquiring module 83 acquires candidate motion information corresponding to the first index value from the motion information list, and determines the acquired candidate motion information corresponding to the first index value as the first triangle
  • the first target motion information of the block is specifically used for:
  • the one-way motion information in list0 is determined as the first triangle sub-block First target movement information
  • the candidate motion information corresponding to the first index value does not include the one-way motion information in list0, then the one-way motion information in list1 is determined as the first triangle sub-block The first target movement information;
  • the one-way motion information in list1 is determined as the first triangle sub-block First target movement information
  • the one-way motion information in list0 is determined as the first triangle sub-block The first target movement information
  • the candidate motion information corresponding to the second index value is obtained from the motion information list, and the obtained candidate motion information corresponding to the second index value is determined as the second triangle sub-block 2.
  • Target movement information including:
  • the candidate motion information corresponding to the second index value includes the one-way motion information in list0, then the one-way motion information in list0 is determined as the second triangle sub-block Second target movement information;
  • the unidirectional motion information in list1 is determined as the second triangle sub-block The second target movement information
  • the candidate motion information corresponding to the second index value includes the one-way motion information in list1
  • the one-way motion information in list1 is determined as the second triangle sub-block Second target movement information
  • the one-way motion information in list0 is determined as the second triangle sub-block The second target movement information.
  • the acquiring module 83 is further configured to acquire a first candidate set and a second candidate set, the first candidate set includes part of candidate motion information in the motion information list, and the second candidate set includes the motion information Part of the candidate motion information in the list, the candidate motion information in the first candidate set is not completely the same as the candidate motion information in the second candidate set; and the first index is obtained from the first candidate set Value corresponding to the candidate motion information, and determining the obtained candidate motion information corresponding to the first index value as the first target motion information of the first triangle sub-block;
  • the device further includes: a storage module, configured to store first target motion information for the sub-block that uses non-weighted prediction compensation in the first triangle sub-block; and uses non-weighted prediction in the second triangle sub-block
  • the compensated sub-block stores the second target motion information for the sub-block; for the sub-block using weighted prediction compensation, the first target motion information, the second target motion information or the bidirectional motion information is stored for the sub-block.
  • the storage module is specifically used to store the first target motion information, the second target motion information, or the bidirectional motion information for the sub-block using weighted prediction compensation:
  • the first target motion information or the second target motion information is stored for the sub-block.
  • the storage module is specifically used to store the first target motion information, the second target motion information, or the bidirectional motion information for the sub-block using weighted prediction compensation:
  • the first target motion information and the second target motion information are from different lists, the first target motion information and the second target motion information are combined into two-way motion information, which is the sub-block Storing the two-way movement information;
  • the first target motion information and the second target motion information are from the same list, the first target motion information is stored for the sub-block, or the second target motion is stored for the sub-block information.
  • the storage module stores the first target motion information for the sub-block, or, when storing the second target motion information for the sub-block, is specifically used to: store the first target motion for the sub-block Information; or,
  • the first target motion information or the second target motion information is stored for the sub-block.
  • FIG. 9A the schematic diagram of its hardware architecture can be specifically referred to as shown in FIG. 9A. It includes: a processor 91 and a machine-readable storage medium 92, where: the machine-readable storage medium 92 stores machine executable instructions that can be executed by the processor 91; the processor 91 is used to execute the machine executable Instructions to implement the methods disclosed in the above examples of this application.
  • the processor 91 is configured to execute machine executable instructions to implement the following steps: if the characteristic information of the current block meets a specific condition, divide the current block into a first triangle sub-block and a second triangle sub-block; The current block constructs a motion information list, the motion information list includes multiple candidate motion information; the first target motion information of the first triangle sub-block and the second triangle sub-block are obtained from the motion information list The first target motion information is different from the second target motion information; the motion compensation is performed on the first triangle sub-block according to the first target motion information to obtain the first triangle The predicted value of the sub-block; performing motion compensation on the second triangular sub-block according to the second target motion information to obtain the predicted value of the second triangular sub-block.
  • the schematic diagram of the hardware architecture of the device may be specifically shown in FIG. 9B.
  • the schematic diagram of the hardware architecture of the device may be specifically shown in FIG. 9B.
  • the machine-readable storage medium 94 stores machine executable instructions that can be executed by the processor 93; the processor 93 is used to execute the machine executable Instructions to implement the methods disclosed in the above examples of this application.
  • the processor 93 is configured to execute machine executable instructions to implement the following steps: if the characteristic information of the current block meets a specific condition, divide the current block into a first triangle sub-block and a second triangle sub-block; The current block constructs a motion information list, the motion information list includes multiple candidate motion information; the first target motion information of the first triangle sub-block and the second triangle sub-block are obtained from the motion information list The first target motion information is different from the second target motion information; the motion compensation is performed on the first triangle sub-block according to the first target motion information to obtain the first triangle The predicted value of the sub-block; performing motion compensation on the second triangular sub-block according to the second target motion information to obtain the predicted value of the second triangular sub-block.
  • an embodiment of the application also proposes an encoding and decoding device, which is applied to the encoding end or the decoding end.
  • the device may include: an acquisition module for acquiring the motion information of the first target and the second target Motion information; wherein the first target motion information is the target motion information of the first sub-block divided by the current block according to the division line, and the second target motion information is the target motion information of the second sub-block divided by the current block according to the division line Motion information; a determining module for determining a first area, a second area, and a third area included in the current block according to the dividing line, the first sub-block and the second sub-block, the first area being located In the first sub-block, the second area is located in the second sub-block, the dividing line is located in the third area, and the third area is connected to the first sub-block and the first sub-block.
  • the second sub-block is the lower sub-block among the two sub-blocks divided according to the dividing line of the current block.
  • the storage module is specifically configured to: if the first target motion information and the second target motion information are from the same reference frame list, then store the second target motion information as the target motion of the third region information.
  • the first sub-block and the second sub-block are two triangular sub-blocks divided diagonally.
  • the vertical distance from the center of the sub-block to the dividing line is less than a preset threshold.
  • the device further includes: a motion compensation module, configured to perform motion compensation on each sub-block in the first area according to the first target motion information to obtain the predicted value of each sub-block in the first area;
  • the second target motion information performs motion compensation on each sub-block in the second area to obtain the predicted value of each sub-block in the second area; according to the first target motion information and the second target motion information,
  • Each sub-block in the three regions performs weight compensation to obtain the predicted value of each sub-block in the third region; according to the predicted value of each sub-block in the first region, each sub-block in the second region
  • the predicted value of the block and the predicted value of each sub-block in the third area determine the predicted value of the current block.
  • the motion compensation module performs weighted compensation on each sub-block in the third region according to the first target motion information and the second target motion information, to obtain the predicted value of each sub-block in the third region When specifically used for:
  • For each sub-block in the third region determine the first prediction value of the sub-block according to the first target motion information, and determine the second prediction value of the sub-block according to the second target motion information;
  • 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 weight compensation on the sub-block to obtain the The predicted value of the sub-block.
  • the first weight coefficient corresponding to the first prediction value of the sub-block is greater than the second weight coefficient corresponding to the second prediction value of the sub-block;
  • the first weight coefficient corresponding to the first prediction value of the sub-block is smaller than the second weight coefficient corresponding to the second prediction value of the sub-block;
  • the first weight coefficient corresponding to the first prediction value of the sub-block is equal to the second weight coefficient corresponding to the second prediction value of the sub-block.
  • the acquiring module acquires the first target motion information and the second target motion information, it is specifically used to: construct a motion information list for the current block, the motion information list including multiple candidate motion information; from the motion information list Acquiring first target motion information of the first sub-block and second target motion information of the second sub-block.
  • the storage module is further configured to store the first target motion information as target motion information of the first area
  • the second target motion information is stored as target motion information of the second area.
  • an embodiment of the application also proposes an encoding end device, including: a processor and a machine-readable storage medium, the machine-readable storage medium stores a machine that can be executed by the processor Executable instructions; the processor is used to execute machine executable instructions to implement the following steps:
  • the first target motion information is the target motion information of the first sub-block divided by the current block according to the dividing line
  • the second target motion information is the current block according to the Target motion information of the second sub-block divided by the dividing line
  • the dividing line, the first sub-block and the second sub-block, the first area, the second area and the third area included in the current block are determined, the The first area is located in the first sub-block, the second area is located in the second sub-block, the dividing line is located in the third area, and the third area is connected to the first sub-block.
  • the block and the second sub-block both have an overlapping area; the second target motion information is stored as the target motion information of the third area; wherein, the second sub-block is the current block according to the dividing line The lower sub-block among the two divided sub-blocks.
  • an embodiment of the application also proposes a decoding end device, including: a processor and a machine-readable storage medium, where the machine-readable storage medium stores a machine that can be executed by the processor Executable instructions; the processor is used to execute machine executable instructions to implement the following steps:
  • the first target motion information is the target motion information of the first sub-block divided by the current block according to the dividing line
  • the second target motion information is the current block according to the Target motion information of the second sub-block divided by the dividing line
  • the dividing line, the first sub-block and the second sub-block, the first area, the second area and the third area included in the current block are determined, the The first area is located in the first sub-block, the second area is located in the second sub-block, the dividing line is located in the third area, and the third area is connected to the first sub-block.
  • the block and the second sub-block both have an overlapping area; the second target motion information is stored as the target motion information of the third area; wherein, the second sub-block is the current block according to the dividing line The lower sub-block among the two divided sub-blocks.
  • an embodiment of the application also provides a machine-readable storage medium.
  • the machine-readable storage medium stores a number of computer instructions. When the computer instructions are executed by a processor, the present invention can be realized. Apply for the encoding and decoding method disclosed in the above example.
  • the above-mentioned machine-readable storage medium may be any 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 be: RAM (Radom Access Memory), volatile memory, non-volatile memory, flash memory, storage drives (such as hard drives), solid state drives, and any type of storage disk (Such as CD, DVD, etc.), or similar storage media, or a combination of them.
  • RAM Random Access Memory
  • volatile memory volatile memory
  • non-volatile memory flash memory
  • storage drives such as hard drives
  • solid state drives solid state drives
  • any type of storage disk (Such as CD, DVD, etc.), or similar storage media, or a combination of them.
  • a typical implementation device is a computer.
  • the specific form of the computer can be a personal computer, a laptop computer, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email receiving and sending device, and a tablet computer. , Wearable devices, or a combination of any of these devices.
  • the functions are divided into various units and described separately.
  • the functions of each unit can be implemented in the same one or more software and/or hardware.
  • the embodiments of the present application may be provided as methods, systems, or computer program products. Therefore, the present application may adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware.
  • the embodiments of the present application may adopt the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program codes.
  • These computer program instructions can also be stored in a computer-readable memory that can direct a computer or other programmable data processing equipment to work in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture including the instruction device.
  • the device implements the functions specified in one process or multiple processes in the flowchart and/or one block or multiple blocks in the block diagram.

Landscapes

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

Abstract

本申请提供一种编解码方法、装置及其设备,该方法包括:获取第一目标运动信息和第二目标运动信息;其中,所述第一目标运动信息是当前块按照划分线划分的第一子块的目标运动信息,所述第二目标运动信息是当前块按照划分线划分的第二子块的目标运动信息;根据划分线、所述第一子块和所述第二子块,确定当前块包括的第一区域,第二区域和第三区域,所述第一区域位于所述第一子块内,所述第二区域位于所述第二子块内,所述划分线位于所述第三区域内,且所述第三区域与所述第一子块和所述第二子块均存在交叠区域;将所述第二目标运动信息存储为所述第三区域的目标运动信息;其中,所述第二子块为所述当前块按照划分线划分的两个子块中位置靠下的子块。

Description

一种编解码方法、装置及其设备 技术领域
本申请涉及编解码技术领域,尤其是涉及一种编解码方法、装置及其设备。
背景技术
为了达到节约空间的目的,视频图像都是经过编码后才传输的,完整的视频编码方法可以包括预测、变换、量化、熵编码、滤波等过程。其中,预测编码可以包括帧内编码和帧间编码。进一步的,帧间编码是利用视频时间域的相关性,使用邻近已编码图像的像素预测当前像素,以达到有效去除视频时域冗余的目的。帧内编码是指利用视频空间域的相关性,使用当前帧图像的已经编码块的像素预测当前像素,以达到去除视频空域冗余的目的。
在帧间编码中,可以使用运动矢量表示当前帧图像的当前块与参考帧图像的参考块之间的相对位移。例如,当前帧图像A与参考帧图像B存在很强的时域相关性,在需要传输图像A的当前块A1时,可以在图像B中进行运动搜索,找到与当前块A1最匹配的参考块B1,并确定当前块A1与参考块B1之间的相对位移,该相对位移也就是当前块A1的运动矢量。
在一些实施例中,当前块为矩形,而实际物体的边缘往往不是矩形,对于物体边缘的某个当前块来说,往往存在两个不同对象(如存在前景的物体和背景)。这种情况下,仅采用单一的预测模式为矩形的当前块进行预测,存在预测效果不佳,编码残差大,编码性能差等问题。
发明内容
本申请提供了一种编解码方法及其设备,可以提高编码性能。
本申请提供一种编解码方法,所述方法包括:获取第一目标运动信息和第二目标运动信息;其中,所述第一目标运动信息是当前块按照划分线划分的第一子块的目标运动信息,所述第二目标运动信息是当前块按照划分线划分的第二子块的目标运动信息;根据划分线,所述第一子块和所述第二子块,确定当前块包括的第一区域,第二区域和第三区域,所述第一区域位于所述第一子块内,所述第二区域位于所述第二子块内,所述划分线位于所述第三区域内,且所述第三区域与所述第一子块和所述第二子块均存在交叠区域;将所述第二目标运动信息存储为所述第三区域的目标运动信息;其中,所述第二子块为所述当前块按照划分线划分的两个子块中位置靠下的子块。
本申请提供一种编解码装置,所述装置包括:获取模块,用于获取第一目标运动信息和第二目标运动信息;其中,所述第一目标运动信息是当前块按照划分线划分的第一子块的目标运动信息,所述第二目标运动信息是当前块按照划分线划分的第二子块的目标运动信息;确定模块,用于根据划分线,所述第一子块和所述第二子块,确定当前块包括的第一区域,第二区域和第三区域,所述第一区域位于所述第一子块内,所述第二区域位于所述第二子块内,所述划分线位于所述第三区域内,且所述第三区域与所述第一子块和所述第二子块均存在交叠区域;存储模块,用于将所述第二目标运动信息存储为所述第三区域的目标运动信息;其中,所述第二子块为所述当前块按照划分线划分的两个子块中位置靠下的子块。
本申请提供一种编码端设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现如下步骤:获取第一目标运动信息和第二目标运动信息;所述第一目标运动信息是当前块按照划分线划分的第一子块的目标运动信息,所述第二目标运动信息是当前块按照划分线划分的第二子块的目标运动信息;根据划分线,所述第一子块和所述第二子块,确定当前块包括的第一区域,第二区域和第三区域,所述第一区域位于所述第一子块内,所述第二区域位于所述第二子块内,所述划分线位于所述第三区域内,且所述第三区域与所述第一子块和所述第二子块均存在交叠区域;将所述第二目标运动信息存储为所述第三区域的目标运动信息;其中,所述第二子块为当前块按照划分线划分的两个子块中位置靠下的子块。
本申请提供一种解码端设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现如下步骤:获取第一目标运动信息和第二目标运动信息;所述第一目标运动信息是当前块按照划分线划分的第一子块的目标运动信息,所述第二目标运动信息是当前块按照划分线划分的第二子块的目标运动信息;根据划分线,所述第一子块和所述第二子块,确定当前块包括的第一区域,第二区域和第三区域,所述第一区域位于所述第一子块内,所述第二区域位于所述第二子块内,所述划分线位于所述第三区域内,且所述第三区域与所述第一子块和所述第二子块均存在交叠区域;将所述第二目标运动信息存储为所述第三区域的目标运动信息;其中,所述第二子块为当前块按照划分线划分的两个子块中位置靠下的子块。
由以上方案可见,本申请实施例中,若当前块的特征信息满足特定条件,可以将当前块划分为第一三角子块和第二三角子块,获取第一三角子块的第一目标运动信息和第二三角子块的第二目标运动信息,根据第一目标运动信息对第一三角子块进行运动补偿,得到第一三角子块的预测值,根据第二目标运动信息对第二三角子块进行运动补偿,得到第二三角子块的预测值。上述方式可以提高预测准确性,提高预测性能,提高编码性能,降低编码残差。
附图说明
为了更加清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
图1是本申请一种实施方式中的视频编码框架的示意图;
图2是本申请一种实施方式中的编解码方法的流程图;
图3是本申请一种实施方式中的编码方法的流程图;
图4是本申请一种实施方式中的解码方法的流程图;
图5A-图5B是本申请一种实施方式中的候选块的示意图;
图6A-图6B是本申请一种实施方式中的当前块的划分示意图;
图7A是本申请一种实施方式中的索引值与单向运动信息的对应示意图;
图7B-图7C是本申请一种实施方式中的三角子块划分示意图;
图7D是本申请一种实施方式中的运动补偿的示意图;
图7E-图7F是本申请一种实施方式中的运动信息存储的示意图;
图8是本申请一种实施方式中的编解码装置的结构图;
图9A是本申请一种实施方式中的解码端设备的硬件结构图;
图9B是本申请一种实施方式中的编码端设备的硬件结构图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请的各个实施例。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”、或者“当……时”、或者“响应于确定”。
本申请实施例中提出一种编解码方法、装置及其设备,可以涉及如下概念:
帧内预测与帧间预测(intra prediction and inter prediction)技术:帧内预测是指,利用视频空间域的相关性,使用当前图像已经编码块的像素预测当前像素,以达到去除视频空域冗余的目的。帧间预测是指,利用视频时域的相关性,由于视频序列包含有较强的时域相关性,使用邻近已编码图像像素预测当前图像的像素,达到有效去除视频时域冗余的目的。视频编码标准帧间预测部分基本都采用了基于块的运动补偿技术,原理是为当前图像的每一像素块在之前的已编码图像中寻找最佳匹配块,该过程称为运动估计(Motion Estimation,ME)。
运动矢量(Motion Vector,MV):在帧间编码中,可以使用运动矢量表示当前编码块与其参考图像中的最佳匹配块之间的相对位移。每个划分的块都有相应的运动矢量需要传输到解码端,如果对每个块的运动矢量进行独立编码和传输,特别是划分成小尺寸的块时,则需要消耗相当多的比特。为了降低用于编码运动矢量的比特数,则可以利用相邻图像块之间的空间相关性,根据相邻已编码块的运动矢量对当前待编码块的运动矢量进行预测,然后,对预测差进行编码。这样,可以有效地降低表示运动矢量的比特数。在对当前块的运动矢量编码过程中,首先,使用相邻已编码块的运动矢量预测当前块的运动矢量,然后,可以对运动矢量的预测值(MVP,Motion Vector Prediction)与运动矢量的真正估值之间的差值(MVD,MotionVector Difference)进行编码,从而有效降低MV的编码比特数。
运动信息(Motion Information):由于运动矢量表示当前图像块与某个参考图像块的位置偏移,为了准确的获取指向图像块的信息,除了运动矢量,还需要参考帧图像的索引信息来表示使用哪个参考帧图像。在视频编码技术中,对于当前帧图像,通常可以建立一个参考帧图像列表,参考帧图像索引信息则表示当前图像块采用了参考帧图像列表中的第几个参考帧图像。此外,很多编码技术还支持多个参考图像列表,因此,还可以使用一个索引值来表示使用了哪一个参考图像列表,这个索引值可以称为参考方向。在视频编码技术中,可以将运动矢量、参考帧索引、参考方向等与运动相关的信息统称为运动信息。
率失真原则(Rate-Distortion Optimized):评价编码效率的有两大指标:码率和PSNR(Peak Signal to Noise Ratio,峰值信噪比),比特流越小,则压缩率越大,PSNR越大,则重建图像质量越好,在模式选择时,判别公式实质上也就是对二者的综合评价。例如,模式对应的代价:J(mode)=D+λ*R,其中,D表示Distortion(失真),通常可以使用SSE指标来进行衡量,SSE是指重建图像块与源图像的差值的均方和;λ是拉格朗日乘子,R就是该模式下图像块编码所需的实际比特数,包括编码模式信息、运动信息、残差等所需的比特数总和。
视频编码框架:参见图1所示,可以使用视频编码框架实现本申请实施例的编码端处理流程,此外,视频解码框架的示意图与图1类似,在此不再重复赘述,可以使用视频解码框架实现本申请实施例的解码端处理流程。具体的,在视频编码框架和视频解码框架中,可以包括帧内预测、运动估计/运动补偿、参考图像缓冲器、环内滤波、重建、变换、量化、反变换、反量化、熵编码器等模块。在编码端,通过这些模块之间的配合,可以实现编码端处理流程,在解码端,通过这些模块之间的配合,可以实现解码端处理流程。
标记位编码(flag coding):在视频编码中,存在很多模式,如Merge模式(融合模式)、三角预测模式等。对于某个块来说,可能采用某种模式。为了表示采用何种模式,每个块需要编码对应标记位来进行标记。也就是说,在编码端,可以确定标记位的值,然后对标记位进行编码传递到解码端。在解码端,通过解析标记位,确定对应模式是否启用。
融合模式(Merge mode):融合模式可以包括但不限于普通融合模式(Normal Merge模式)、用于三角预测的融合模式(triangular prediction mode,也被称为TPM模式)、编码运动差的融合模式(merge mode with MVD,也被称为MMVD模式)、采用子块运动信息的融合模式(sub-block merge,也被称为SB Merge模式)、用于与帧内联合生成新预测值的融合模式(combine intra inter prediction mode,也被称为CIIP模式)。若当前块采用融合模式,则可以采用上述5种融合模式中的一种。
跳过模式(skip mode):跳过模式是特殊的融合模式,与融合模式不同的是,跳过模式不需要编码残差。若当前块为跳过模式时,CIIP模式默认关闭,而普通融合模式、用于三角预测的融合模式、编码运动差的融合模式、采用子块运动信息的融合模式仍然可以适用。
需要说明的是,可以基于Normal Merge模式、TPM模式、MMVD模式、SB Merge模式、CIIP模式等,确定如何生成预测值。在生成预测值后,对于Merge模式,可以利用预测值和残差值来获取重建值;对于skip模式,不 存在残差值,直接利用预测值来获取重建值。
帧类型(frame type):若当前帧不可参考其它帧的信息进行编码,则当前帧可以为I帧;若当前帧允许参考其它某1帧(但不能超过1帧)的信息进行编码,则当前帧可以为P帧;若当前帧允许参考其它某1帧或某2帧的信息进行编码,则当前帧可以为B帧。
序列参数集(SPS,sequence parameter set):在序列参数集中,存在确定整个序列中是否允许某些工具开关的标记位。若该标记位为1,则该视频序列中,允许启用该标记位对应的工具;若该标记位为0,则该视频序列中,不允许启用该标记位对应的工具。
基于上下文的自适应二进制算术编码(CABAC,Context-Based Adaptive Binary Arithmetic Coding):CABAC是常用的熵编码/解码方法,存在两个模式,需要保存和更新至少1个上下文模型的CABAC模式、不需要存储和更新上下文模型的bypass(旁路)CABAC模式。
目前,当前块为矩形,而实际物体的边缘可能不是横平竖直,对于物体边缘的某个当前块来说,可能存在两个不同对象(如同时存在前景的物体和背景)。这种情况下,仅采用单一的预测模式为当前块进行预测,存在预测效果不佳,编码残差大,编码性能差等问题。
针对上述发现,本申请实施例中提出一种三角预测模式,可以将当前块划分成两个三角子块,这两个三角子块具有不同的目标运动信息,从而提高硬件实现友好性,带来编码性能的提高。以下结合几个具体实施例,对本申请实施例中的编解码方法进行详细说明。
实施例1:参见图2所示,为本申请实施例中的编解码方法的流程示意图,该编解码方法可以应用于解码端或者编码端,该编解码方法可以包括以下步骤:
步骤201,若当前块的特征信息满足特定条件,则将当前块划分为第一三角子块和第二三角子块,也就是说,解码端/编码端可以将当前块划分为两个三角子块。
示例性的,特征信息可以包括但不限于以下一种或者多种:运动信息模式、尺寸信息、帧类型、序列级开关控制信息。当然,上述只是几个示例,对此不做限制。
若特征信息包括运动信息模式,且运动信息模式满足如下情况的至少一种时,则确定运动信息模式满足特定条件;当前块的运动信息模式为融合模式或者跳过模式;当前块的运动信息模式为融合模式或者跳过模式,且当前块的运动信息模式不为除三角预测子模式之外的其它类型的融合子模式或跳过子模式;当前块的运动信息模式为融合模式,且当前块的运动信息模式不为普通融合子模式(即Normal Merge模式,也称为regular merge模式)、MMVD子模式(编码运动差的融合模式)、SB融合子模式(采用子块运动信息的融合模式)、CIIP(用于与帧内联合生成新预测值的融合模式)子模式中的任意一种子模式;当前块的运动信息模式为跳过模式,且当前块的运动信息模式不为普通融合子模式、MMVD子模式、SB融合子模式中的任意一种子模式。当然,上述只是几个示例,对此不做限制,可以使用上述示例判断当前块的运动信息模式是否为三角预测模式,当确定当前块的运动信息模式为三角预测模式时,则确定运动信息模式满足特定条件。为便于描述,在本申请中,TPM模式与三角预测子模式可互换使用,普通融合模式与普通融合子模式可互换使用,编码运动差的融合模式与MMVD子模式可互换使用,采用子块运动信息的融合模式与SB融合子模式可互换使用,CIIP模式与CIIP子模式可互换使用。
若特征信息包括帧类型,且帧类型满足如下情况的至少一种时,则确定帧类型满足特定条件;帧类型为当前块所在当前帧为B帧;帧类型为当前块所在当前帧允许帧内块拷贝。
若特征信息包括序列级开关控制信息,且该序列级开关控制信息为允许当前块采用三角预测模式,则可以确定所述序列级开关控制信息满足特定条件。
若特征信息包括尺寸信息,且该尺寸信息包括宽度值、高度值和面积值中的至少一个,当尺寸信息中的宽度值、高度值和面积值中的至少一个满足相应的阈值条件时,尺寸信息满足特定条件。示例性的,当该尺寸信息满足如下情况的至少一种时,则确定尺寸信息满足特定条件;1、当前块的宽度值大于或等于第一阈值,当前块的宽度值小于或等于第二阈值;2、当前块的高度值大于或等于第三阈值,当前块的高度值小于或等于第四阈值;3、当前块的面积值大于或等于第五阈值,当前块的面积值小于或等于第六阈值;4、当前块的面积值大于或者等于第七阈值;5、当前块的面积值小于或者等于第八阈值;6、当前块的宽度值小于或等于第九阈值,当前块的高度值小于或等于第十阈值。当然,上述只是几个示例,对此不做限制。示例性的,上述各阈值条件均可以根据经验配置,对此不做限制。
示例性的,特征信息包括运动信息模式、尺寸信息、帧类型、序列级开关控制信息中的一种或者几种。当特征信息包括运动信息模式、且运动信息模式满足特定条件时,可以表明特征信息满足特定条件;当特征信息包括帧类型、且帧类型满足特定条件时,可以表明特征信息满足特定条件,以此类推。当特征信息包括运动信息模式、尺寸信息、帧类型、序列级开关控制信息中的至少两种时,以运动信息模式和帧类型为例,则运动信息模式满足特定条件、且帧类型满足特定条件时,可以表明特征信息满足特定条件,以此类推。
示例性的,每一种类型的特征信息(如运动信息模式、尺寸信息、帧类型、序列级开关控制信息等)的至少一个特定条件,可以与另一种类型的特征信息的至少一个特定条件进行任意组合,从而构成当前块的特定条件,对此组合方式不做限制,可以任意设定。
示例性的,若编解码方法应用于解码端,解码端将当前块划分为第一三角子块和第二三角子块,可以包括但不限于:从编码比特流获取第一指示信息,第一指示信息用于指示三角子块的划分信息;若三角子块的划分信息为主对角线划分方式,则按照当前块的主对角线将当前块划分为第一三角子块和第二三角子块;若三角子块的划分信息为副对角线划分方式,则按照当前块的副对角线将当前块划分为第一三角子块和第二三角子块。
示例性的,第一指示信息,可以是基于旁路的二进制算术解码得到;或者,第一指示信息,可以是基于上下文模型进行基于上下文的自适应二进制算术解码得到。
示例性的,CABAC存在两个模式,需要保存和更新至少1个上下文模型的CABAC模式(即上下文的自适应二进制算术编码)和不需要存储和更新上下文模型的旁路CABAC模式(即旁路的二进制算术编码)。因此,基于旁路的二进制算术是一种类型的CABAC模式,而基于上下文模型进行基于上下文的自适应二进制算术是另一种类型的CABAC模式。
步骤202,为当前块构建运动信息列表,所述运动信息列表包括多个候选运动信息。
示例性的,可以复用常规融合模式的运动信息列表构建方式,为当前块构建运动信息列表。例如,先确定常规融合模式的运动信息列表构建方式,然后,基于常规融合模式的运动信息列表构建方式,为当前块构建运动信息列表,运动信息列表包括多个候选运动信息。
步骤203,从运动信息列表中获取第一三角子块的第一目标运动信息以及第二三角子块的第二目标运动信息;示例性的,第一目标运动信息与第二目标运动信息可以不同。
若编解码方法应用于解码端,解码端从运动信息列表中获取第一三角子块的第一目标运动信息以及第二三角子块的第二目标运动信息,可以包括但不限于:解码端从编码比特流获取第二指示信息,第二指示信息用于指示第一目标运动信息在运动信息列表中的第一索引值、第二目标运动信息在运动信息列表中的第二索引值。基于第二指示信息,解码端从运动信息列表中获取与第一索引值对应的候选运动信息,并将获取的与第一索引值对应的候选运动信息确定为第一三角子块的第一目标运动信息;基于第二指示信息,解码端从运动信息列表中获取与第二索引值对应的候选运动信息,并将获取的与第二索引值对应的候选运动信息确定为第二三角子块的第二目标运动信息。
示例性的,第一索引值基于旁路的二进制算术解码得到,或者,第一索引值基于上下文模型进行基于上下文的自适应二进制算术解码得到。第二索引值基于旁路的二进制算术解码得到,或者,第二索引值基于上下文模型进行基于上下文的自适应二进制算术解码得到。
示例性的,第一索引值包括M1个二进制位,M1个二进制位中的N1个二进制位,基于上下文模型进行基于上下文的自适应二进制算术解码得到,M1个二进制位中的剩余(M1-N1)个二进制位,基于旁路的二进制算术解码得到;M1为大于或者等于1的正整数,N1为大于或者等于1的正整数,M1大于或者等于N1。例如,第一索引值包括4个二进制位,第1个二进制位,基于上下文模型进行基于上下文的自适应二进制算术解码得到,第2、3、4个二进制位,基于旁路的二进制算术解码得到。又例如,第一索引值包括2个二进制位,第1个二进制位,基于上下文模型进行基于上下文的自适应二进制算术解码得到。
示例性的,第二索引值包括M2个二进制位,M2个二进制位中的N2个二进制位,基于上下文模型进行基于上下文的自适应二进制算术解码得到,M2个二进制位中的剩余(M2-N2)个二进制位,基于旁路的二进制算术解码得到;M2为大于或者等于1的正整数,N2为大于或者等于1的正整数,M2大于或者等于N2。例如,第二索引值包括4个二进制位,第1个二进制位,基于上下文模型进行基于上下文的自适应二进制算术解码得到,第2、3、4个二进制位,基于旁路的二进制算术解码得到。又例如,第二索引值包括1个二进制位,第1个二进制位,基于上下文模型进行基于上下文的自适应二进制算术解码得到。
示例性的,第一索引值对应的上下文模型与第二索引值对应的上下文模型相同。或者,第一索引值对应的上下文模型与第二索引值对应的上下文模型不同。或者,第一索引值和第一划分信息对应的上下文模型、以及第二索引值和第一划分信息对应的上下文模型相同;第一索引值和第二划分信息对应的上下文模型、以及第二索引值和第二划分信息对应的上下文模型相同;第一索引值和第一划分信息对应的上下文模型、以及第一索引值和第二划分信息对应的上下文模型不同。或者,第一索引值和第一划分信息对应的上下文模型、第二索引值和第一划分信息对应的上下文模型、第一索引值和第二划分信息对应的上下文模型、以及第二索引值和第二划分信息对应的上下文模型各不相同。第一划分信息表示三角子块的划分信息为主对角线划分方式;第二划分信息表示三角子块的划分信息为副对角线划分方式。
示例性的,从运动信息列表中获取与第一索引值对应的候选运动信息,并将获取的与第一索引值对应的候选运动信息确定为第一三角子块的第一目标运动信息,可以包括但不限于:若第一索引值为偶数,与第一索引值对应的候选运动信息包括list0对应的单向运动信息,则将list0对应的单向运动信息确定为第一三角子块的第一目标运动信息;若第一索引值为偶数,与第一索引值对应的候选运动信息不包括list0对应的单向运动信息,则将list1对应的单向运动信息确定为第一三角子块的第一目标运动信息;若第一索引值为奇数,与第一索引值对应的候选运动信息包括list1对应的单向运动信息,则将list1对应的单向运动信息确定为第一三角子块的第一目标运动信息;若第一索引值为奇数,与第一索引值对应的候选运动信息不包括list1对应的单向运动信息,则将list0对应的单向运动信息确定为第一三角子块的第一目标运动信息。
示例性的,从运动信息列表中获取与第二索引值对应的候选运动信息,并将获取的与第二索引值对应的候选运动信息确定为第二三角子块的第二目标运动信息,可以包括但不限于:若第二索引值为偶数,与第二索引值对应的候选运动信息包括list0对应的单向运动信息,则将list0对应的单向运动信息确定为第二三角子块的第二目标运动信息;若第二索引值为偶数,与第二索引值对应的候选运动信息不包括list0对应的单向运动信息,则将list1对应的单向运动信息确定为第二三角子块的第二目标运动信息;若第二索引值为奇数,与第二索引值对应的候选运动信息包括list1对应的单向运动信息,则将list1对应的单向运动信息确定为第二三角子块的第二目标运动信息;若第二索引值为奇数,与第二索引值对应的候选运动信息不包括list1对应的单向运动信息,则将list0对应的单向运动信息确定为第二三角子块的第二目标运动信息。
示例性的,从运动信息列表中获取与第一索引值对应的候选运动信息,并将获取的与第一索引值对应的候选运动信息确定为第一三角子块的第一目标运动信息,可以包括但不限于:若第一索引值为奇数,与第一索引值对应的候选运动信息包括list0对应的单向运动信息,则将list0对应的单向运动信息确定为第一三角子块的第一目标运动信息;若第一索引值为奇数,与第一索引值对应的候选运动信息不包括list0对应的单向运动信息,则将list1对应的单向运动信息确定为第一三角子块的第一目标运动信息;若第一索引值为偶数,与第一索引值对应的候选运动信息包括list1对应的单向运动信息,则将list1对应的单向运动信息确定为第一三角子块的第一目标运动信息;若第一索引值为偶数,与第一索引值对应的候选运动信息不包括list1对应的单向运动信息,则将list0对应的单向运动信息确定为第一三角子块的第一目标运动信息。
示例性的,从运动信息列表中获取与第二索引值对应的候选运动信息,并将获取的与第二索引值对应的候选运动信息确定为第二三角子块的第二目标运动信息,可以包括但不限于:若第二索引值为奇数,与第二索引值对应的候选运动信息包括list0对应的单向运动信息,则将list0对应的单向运动信息确定为第二三角子块的第二目标运动信 息;若第二索引值为奇数,与第二索引值对应的候选运动信息不包括list0对应的单向运动信息,则将list1对应的单向运动信息确定为第二三角子块的第二目标运动信息;若第二索引值为偶数,与第二索引值对应的候选运动信息包括list1对应的单向运动信息,则将list1对应的单向运动信息确定为第二三角子块的第二目标运动信息;若第二索引值为偶数,与第二索引值对应的候选运动信息不包括list1对应的单向运动信息,则将list0对应的单向运动信息确定为第二三角子块的第二目标运动信息。
在上述实施例中,当前块所处当前帧的帧类型为B帧时,B帧允许同时存在指向多个List(参考帧列表)的帧间块,如指向list0的帧间预测块和指向list1的帧间预测块,因此,在当前块所处当前帧为B帧时,当前块所在当前帧的参考帧配置可以包括两个参考帧列表,这两个参考帧列表可以为list0和list1。候选运动信息可以为单向运动信息,且所述单向运动信息为list0中的单向运动信息或者list1中的单向运动信息;或者,候选运动信息可以为双向运动信息,且所述双向运动信息包括list0中的单向运动信息和list1中的单向运动信息。
示例性的,解码端还可以获取第一候选集合和第二候选集合,第一候选集合包括运动信息列表中的部分候选运动信息,第二候选集合包括运动信息列表中的部分候选运动信息,第一候选集合中的候选运动信息与第二候选集合中的候选运动信息不完全相同。然后,解码端从第一候选集合中获取与第一索引值对应的候选运动信息,并将获取的与第一索引值对应的候选运动信息确定为第一三角子块的第一目标运动信息。解码端从第二候选集合中获取与第二索引值对应的候选运动信息,并将获取的与第二索引值对应的候选运动信息确定为第二三角子块的第二目标运动信息。
步骤204,根据第一目标运动信息对第一三角子块进行运动补偿,得到第一三角子块的预测值;根据第二目标运动信息对第二三角子块进行运动补偿,得到第二三角子块的预测值。
示例性的,得到第一三角子块的第一目标运动信息、第二三角子块的第二目标运动信息后,针对第一三角子块中采用非加权预测补偿的子块,为子块存储第一目标运动信息;针对第二三角子块中采用非加权预测补偿的子块,为子块存储第二目标运动信息;针对采用加权预测补偿的子块,为子块存储第一目标运动信息、第二目标运动信息或者双向运动信息。
针对采用加权预测补偿的子块,为子块存储第一目标运动信息、第二目标运动信息或者双向运动信息,可以包括但不限于以下任一:为子块存储第一目标运动信息,为子块存储第二目标运动信息,根据子块的位置为子块存储第一目标运动信息或第二目标运动信息,根据当前块的划分方向为子块存储第一目标运动信息或第二目标运动信息,或者,根据子块的位置和当前块的划分方向,为子块存储第一目标运动信息或第二目标运动信息。
针对采用加权预测补偿的子块,为子块存储第一目标运动信息、第二目标运动信息或者双向运动信息,可以包括但不限于:若第一目标运动信息和第二目标运动信息来自不同的list,则将所述第一目标运动信息和所述第二目标运动信息合并为双向运动信息,并为子块存储所述双向运动信息。或者,若第一目标运动信息和第二目标运动信息来自相同的list,则为子块存储第一目标运动信息,或者,为子块存储第二目标运动信息。
示例性的,若第一目标运动信息和第二目标运动信息来自相同的list,则为子块存储第一目标运动信息,或者,为子块存储第二目标运动信息,可以包括但不限于以下任一:为子块存储第一目标运动信息,为子块存储第二目标运动信息,根据子块的位置为子块存储第一目标运动信息或第二目标运动信息,根据当前块的划分方向为子块存储第一目标运动信息或第二目标运动信息,根据子块的位置和当前块的划分方向,为子块存储第一目标运动信息或第二目标运动信息,为子块存储第一目标运动信息与第二目标运动信息均值,或者,根据当前块的尺寸信息,为子块存储第一目标运动信息或第二目标运动信息。
由以上方案可见,本申请实施例中,若当前块的特征信息满足特定条件,可以将当前块划分为第一三角子块和第二三角子块,获取第一三角子块的第一目标运动信息和第二三角子块的第二目标运动信息,根据第一目标运动信息对第一三角子块进行运动补偿,得到第一三角子块的预测值,根据第二目标运动信息对第二三角子块进行运动补偿,得到第二三角子块的预测值。上述方式可以提高预测准确性,提高预测性能,提高编码性能,降低编码残差。
实施例2:基于与上述方法同样的申请构思,本申请实施例中还提出一种编码方法,该方法可以应用于编码端,参见图3所示,为该方法的流程示意图,该方法可以包括:
步骤301,编码端判断当前块的特征信息是否满足特定条件。如果是,则启用三角预测模式,执行步骤302,如果否,则不启用三角预测模式,不再采用本实施例的技术方案。
步骤302,编码端为当前块构建运动信息列表,运动信息列表包括多个候选运动信息。
步骤303,编码端将当前块划分为第一三角子块和第二三角子块。例如,按照主对角线(与水平向右方向呈45度夹角)将当前块划分为第一三角子块和第二三角子块;或者,按照副对角线(与水平向右方向呈135度夹角)将当前块划分为第一三角子块和第二三角子块。
步骤304,编码端从运动信息列表中获取第一三角子块的第一目标运动信息以及第二三角子块的第二目标运动信息;第一目标运动信息与第二目标运动信息可以不同。
步骤305,编码端根据第一目标运动信息对第一三角子块进行运动补偿,得到第一三角子块的预测值;根据第二目标运动信息对第二三角子块进行运动补偿,得到第二三角子块的预测值。第一三角子块的预测值和第二三角子块的预测值,就是当前块的预测值。
步骤306,编码端保存当前块的运动信息,用于后续块的编码参考。
实施例3:基于与上述方法同样的申请构思,本申请实施例中还提出一种解码方法,该方法可以应用于解码端,参见图4所示,为该方法的流程示意图,该方法可以包括:
步骤401,解码端判断当前块的特征信息是否满足特定条件。如果是,则启用三角预测模式,执行步骤402,如果否,则不启用三角预测模式,不再采用本实施例的技术方案。
步骤402,解码端为当前块构建运动信息列表,运动信息列表包括多个候选运动信息。
步骤403,解码端将当前块划分为第一三角子块和第二三角子块。例如,按照主对角线(与水平向右方向呈45度夹角)将当前块划分为第一三角子块和第二三角子块;或者,按照副对角线(与水平向右方向呈135度夹角)将当前块划分为第一三角子块和第二三角子块。
步骤404,解码端从运动信息列表中获取第一三角子块的第一目标运动信息以及第二三角子块的第二目标运动信息;第一目标运动信息与第二目标运动信息可以不同。
步骤405,解码端根据第一目标运动信息对第一三角子块进行运动补偿,得到第一三角子块的预测值;根据第二目标运动信息对第二三角子块进行运动补偿,得到第二三角子块的预测值。第一三角子块的预测值和第二三角子块的预测值,就是当前块的预测值。
步骤406,解码端保存当前块的运动信息,用于后续块的编码参考。
实施例4:在步骤301和步骤401中,编码端/解码端需要判断当前块的特征信息是否满足特定条件,如果是,则可以启用三角预测模式,即将当前块划分为第一三角子块和第二三角子块;如果否,则可以不启用三角预测模式。示例性的,该特征信息可以包括但不限于以下一种或者多种:运动信息模式、尺寸信息、帧类型、序列级开关控制信息。
以下结合几个具体应用场景,对当前块的特征信息满足特定条件进行说明。
应用场景1:特征信息满足下面条件时,确定当前块的特征信息满足特定条件。
当前块的运动信息模式为融合模式或者跳过模式,且当前块的运动信息模式不为除三角预测子模式之外的其它类型的融合子模式或跳过子模式。
应用场景2:特征信息至少同时满足下面条件时,确定当前块的特征信息满足特定条件。
序列级开关控制信息为允许当前块采用三角预测模式,也就是说,序列级控制允许三角预测模式启用,即序列级控制开关为开,表示允许当前块采用三角预测模式;
当前块所在当前帧为B帧,即当前帧允许存在两个参考帧列表;
当前块的面积(宽度*高度)大于或者等于N*N,N可以为8;
当前块的运动信息模式为融合模式(Merge模式)或者跳过模式(skip模式)。
应用场景3:特征信息至少同时满足下面条件时,确定当前块的特征信息满足特定条件。
序列级开关控制信息为允许当前块采用三角预测模式,也就是说,序列级控制允许三角预测模式启用,即序列级控制开关为开,表示允许当前块采用三角预测模式;
当前块所在当前帧为B帧,即当前帧允许存在两个参考帧列表;
当前块的面积(宽度*高度)大于或者等于N*N,N可以为8;
当前块的运动信息模式为融合模式,且当前块的运动信息模式不为普通融合子模式、MMVD子模式、SB融合子模式、CIIP子模式中的任意一种子模式;
当前块的运动信息模式为跳过模式,且当前块的运动信息模式不为普通融合子模式、MMVD子模式、SB融合子模式中的任意一种子模式。
应用场景4:特征信息至少同时满足下面条件时,确定当前块的特征信息满足特定条件。
序列级开关控制信息为允许当前块采用三角预测模式,也就是说,序列级控制允许三角预测模式启用,即序列级控制开关为开,表示允许当前块采用三角预测模式;
当前块所在当前帧为B帧,即当前帧允许存在两个参考帧列表;
当前块的运动信息模式为融合模式(Merge模式)或者跳过模式(skip模式);
当前块的面积(宽度*高度)大于或者等于N*N,N可以为8;
当前块的宽度小于或者等于M,当前块的高度小于或者等于M,M可以为128。
应用场景5:特征信息至少同时满足下面条件时,确定当前块的特征信息满足特定条件。
序列级开关控制信息为允许当前块采用三角预测模式,也就是说,序列级控制允许三角预测模式启用,即序列级控制开关为开,表示允许当前块采用三角预测模式;
当前块所在当前帧为B帧,即当前帧允许存在两个参考帧列表;
当前块的运动信息模式为融合模式(Merge模式)或者跳过模式(skip模式);
当前块的面积(宽度*高度)大于或者等于N*N,N可以为8。
当前块的面积(宽度*高度)小于或者等于M*M,M可以为128。
应用场景6:特征信息至少同时满足下面条件时,确定当前块的特征信息满足特定条件。
序列级开关控制信息为允许当前块采用三角预测模式,也就是说,序列级控制允许三角预测模式启用,即序列级控制开关为开,表示允许当前块采用三角预测模式;
当前块所在当前帧为B帧,即当前帧允许存在两个参考帧列表;
当前块的运动信息模式为融合模式(Merge模式)或者跳过模式(skip模式);
当前块的宽度值在[Wmin,Wmax]的范围内,示例性的,Wmin和Wmax均可以为2的正整数次幂,例如,Wmin为4,Wmax为128;
当前块的高度值在[Hmin,Hmax]的范围内,示例性的,Hmin、Hmax均可以为2的正整数次幂,例如,Hmin为4,Hmax为128;
当前块的面积值在[Smin,Smax]的范围内,示例性的,Smin、Smax均为2的正整数次幂;例如,Smin为64,Smax为128*128=16384。
在上述实施例中,[a,b]表示大于等于a,且小于等于b。
应用场景7:针对应用场景2-应用场景6中的任意一个应用场景,可以将“当前块所在当前帧为B帧”修改成:当前块所在当前帧允许帧内块拷贝,其它限制条件不变。当前块所在当前帧允许帧内块拷贝是指:当前块可通过在当前帧的已解码重建块(而不是其它帧的已解码重建块)中搜索相似块的技术,在该条件下,当前块所在当前帧不需要为B帧。
应用场景8:若当前块的高度值和宽度值均为CTU_Size,则不启用三角预测模式,即特征信息不满足特定条件。若当前块的高度值小于CTU_Size,或者,当前块的宽度值小于CTU_Size,则采用应用场景1-应用场景7的任意一种,确定是否启用三角预测模式。
示例性的,CTU_Size指当前块允许的最大尺寸,可以为128,也可是其它数值。
应用场景9:若当前块的高度值或者宽度值为CTU_Size,则不启用三角预测模式,即特征信息不满足特定条件。若当前块的高度值小于CTU_Size,且当前块的宽度值小于CTU_Size,则采用应用场景1-应用场景7的任意一种,确定是否启用三角预测模式。
示例性的,CTU_Size指当前块允许的最大尺寸,可以为128,也可是其它数值。
实施例5:在步骤302和步骤402中,编码端/解码端需要为当前块构建运动信息列表,该运动信息列表可以包括多个候选运动信息,以下对运动信息列表的构建过程进行说明:
方式一、编码端/解码端可以构建运动信息列表,该运动信息列表可以包括多个候选运动信息,如5个候选运动信息,对此数量不做限制。例如,获取当前块对应的候选块,将候选块的运动信息添加到运动信息列表,运动信息列表中的每个运动信息可以称为候选运动信息。
当前块对应的候选块,可以参见图5A所示,可以将这7个位置的块作为当前块对应的候选块。在图5A中,块1、块2、块3、块4和块5为当前帧中的候选块,而块6和块7为其它帧中的候选块(即时域对应块)。首先,收集这7个位置的可用运动信息,按照单向运动信息、双向预测的L0运动信息、双向预测的L1运动信息、双向预测的L0运动信息与L1运动信息的均值的顺序进行排序。然后,将排序靠前的5个运动信息填充到运动信息列表中。当添加到运动信息列表中的运动信息数量小于5时,可以使用零运动矢量进行填充。在上述填充过程中,还可以进行查重处理,以避免运动信息列表中存在重复的运动信息。
方式二、编码端/解码端复用常规融合模式的运动信息列表构建方式,为当前块构建运动信息列表。例如,确定常规融合模式的运动信息列表构建方式,基于常规融合模式的运动信息列表构建方式,为当前块构建运动信息列表,该运动信息列表包括多个候选运动信息。即,三角预测模式的运动信息列表构建方式,与常规融合模式的运动信息列表构建方式相同。
例如,常规融合模式的运动信息列表构建方式为:参见图5B所示,当前块对应的候选块包括块A1、块A0、块B0、块B1、块B2,收集这5个位置的可用运动信息,按照块A1、块A0、块B0、块B1、块B2的顺序,对收集的可用运动信息进行排序,将排序靠前的多个运动信息(如5个运动信息)填充到运动信息列表。三角预测模式的运动信息列表构建方式为:收集这5个位置的可用运动信息,按照块A1、块A0、块B0、块B1、块B2的顺序,对收集的可用运动信息进行排序,将排序靠前的多个运动信息(如5个运动信息)填充到运动信息列表。当然,上述方式只是常规融合模式的运动信息列表构建的示例,对此不做限制。
实施例6:在步骤303和步骤403中,编码端/解码端需要将当前块划分为第一三角子块和第二三角子块。例如,参见图6A所示,可以按照主对角线(与水平向右方向呈45度夹角)将当前块划分为第一三角子块和第二三角子块;或者,参见图6B所示,可以按照副对角线(与水平向右方向呈135度夹角)将当前块划分为第一三角子块和第二三角子块。
为了将当前块划分为第一三角子块和第二三角子块,可以采用如下方式:
方式一、编码端通过协议约定默认使用主对角线方式进行当前块划分,解码端通过协议约定默认使用主对角线方式进行当前块划分。在此基础上,参见图6A所示,编码端可以按照主对角线方式(与水平向右方向呈45度夹角)将当前块划分为第一三角子块和第二三角子块,解码端可以按照主对角线方式将当前块划分为第一三角子块和第二三角子块。
方式二、编码端通过协议约定默认使用副对角线方式进行当前块划分,解码端通过协议约定默认使用副对角线方式进行当前块划分。在此基础上,参见图6B所示,编码端可以按照副对角线方式(与水平向右方向呈135度夹角)将当前块划分为第一三角子块和第二三角子块,解码端可以按照副对角线方式将当前块划分为第一三角子块和第二三角子块。
方式三、编码端确定主对角线划分方式对应的率失真代价1、副对角线划分方式对应的率失真代价2,对率失真代价1和率失真代价2的确定方式不做限制。若率失真代价1小于率失真代价2,参见图6A所示,编码端可以按照主对角线方式将当前块划分为第一三角子块和第二三角子块。或者,若率失真代价1大于率失真代价2,参见图6B所示,编码端可以按照副对角线方式将当前块划分为第一三角子块和第二三角子块。当然,编码端还可以采用其它策略或决策按照主对角线方式或者副对角线方式进行三角子块的划分,对此不做限制。
编码端在向解码端发送编码比特流时,该编码比特流可以包括第一指示信息,该第一指示信息用于指示三角子块的划分信息,如主对角线划分方式或者副对角线划分方式。
例如,若编码端按照主对角线方式将当前块划分为第一三角子块和第二三角子块,则三角子块的划分信息可以为主对角线划分方式。若编码端按照副对角线方式将当前块划分为第一三角子块和第二三角子块,则三角子块的划分信息可以为副对角线划分方式。
解码端在接收到编码比特流后,可以从编码比特流中获取第一指示信息,该第一指示信息用于指示三角子块的划分信息,如主对角线划分方式或者副对角线划分方式。若三角子块的划分信息为主对角线划分方式,参见图6A所示,解码端按照当前块的主对角线将当前块划分为第一三角子块和第二三角子块;若三角子块的划分信息为副对角线划分方式,参见图6B所示,解码端按照当前块的副对角线将当前块划分为第一三角子块和第二三角子块。
当然,上述三种实现方式只是示例,对此三角子块的划分方式不做限制。
实施例7:在上述实施例6中,编码端向解码端发送编码比特流时,该编码比特流可以包括第一指示信息,该第一指示信息用于指示三角子块的划分信息,例如,通过一个标记位表示三角子块的划分信息,例如,当标记位为第一标识0时,表示三角子块的划分信息为主对角线划分方式。当标记位为第二标识1时,表示三角子块的划分信息为副对角线划分方式。
示例性的,针对三角子块的划分信息,编码端可以采用CABAC方式对第一指示信息进行编码。当然,CABAC只是示例,对此编码方式不做限制。CABAC存在两个模式,需要保存和更新至少1个上下文模型的CABAC模式(后续称为上下文的自适应二进制算术编码)、不需要存储和更新上下文模型的旁路CABAC模式(后续称为旁路的二进制算术编码)。基于此,可以基于旁路的二进制算术编码方式对第一指示信息(如三角子块的划分信息的标记位) 进行编码,或,可以基于上下文的自适应二进制算术编码方式对第一指示信息进行编码,即,根据上下文模型,基于上下文的自适应二进制算术编码方式对第一指示信息进行编码。
当编码端采用CABAC方式对第一指示信息进行编码时,解码端可以采用CABAC方式对第一指示信息进行解码。例如,编码端基于旁路的二进制算术编码方式对第一指示信息进行编码时,解码端基于旁路的二进制算术解码方式对第一指示信息进行解码,得到三角子块的划分信息。或者,编码端基于上下文的自适应二进制算术编码方式对第一指示信息进行编码时,解码端基于上下文的自适应二进制算术解码方式对第一指示信息进行解码,得到三角子块的划分信息,即,根据上下文模型,基于上下文的自适应二进制算术解码方式对第一指示信息进行解码,得到三角子块的划分信息。
综上所述,对第一指示信息进行解码后,可以得到三角子块的划分信息,如表示三角子块的划分信息的标记位。当标记位为第一标识0时,表示三角子块的划分信息为主对角线划分方式。当标记位为第二标识1时,表示三角子块的划分信息为副对角线划分方式。
综上所述,解码端可以解码三角子块的划分信息的标记位,如采用CABAC方法进行熵解码,CABAC采用旁路模式,即不需要存储和更新上下文模型。或者,解码三角子块的划分信息的标记位,如采用CABAC方法进行熵解码,CABAC采用含有上下文模型的模式。
实施例8:在步骤304和步骤404中,编码端/解码端从运动信息列表中获取第一三角子块的第一目标运动信息和第二三角子块的第二目标运动信息,第一目标运动信息与第二目标运动信息可以不同,以下对第一目标运动信息和第二目标运动信息的获取过程进行说明:
方式一、编码端可以通过协议约定默认第一目标运动信息,例如,编码端可以默认运动信息列表中的第一个候选运动信息为第一三角子块的第一目标运动信息。解码端可以通过协议约定默认第一目标运动信息,例如,解码端可以默认运动信息列表中的第一个候选运动信息为第一三角子块的第一目标运动信息。以及,编码端可以通过协议约定默认第二目标运动信息,例如,编码端可以默认运动信息列表中的第二个候选运动信息为第二三角子块的第二目标运动信息。解码端可以通过协议约定默认第二目标运动信息,例如,解码端可以默认运动信息列表中的第二个候选运动信息为第二三角子块的第二目标运动信息。
方式二、编码端确定运动信息列表中的每个候选运动信息对应的率失真代价,对此确定方式不做限制,将最小率失真代价对应的候选运动信息作为第一三角子块的第一目标运动信息。编码端从运动信息列表中排除第一目标运动信息(即不选择运动信息列表中的第一目标运动信息),在此基础上,确定运动信息列表中剩余的每个候选运动信息(即排除第一目标运动信息后剩余的每个候选运动信息)对应的率失真代价,将最小率失真代价对应的候选运动信息作为第二三角子块的第二目标运动信息。当然,编码端还可以采用其它策略,确定第一三角子块的第一目标运动信息和第二三角子块的第二目标运动信息,对此不做限制。
编码端在向解码端发送编码比特流时,该编码比特流可以包括第二指示信息,该第二指示信息用于指示第一目标运动信息在运动信息列表中的第一索引值(用于表示第一目标运动信息是运动信息列表中的第几个候选运动信息)、第二目标运动信息在运动信息列表中的第二索引值(用于表示第二目标运动信息是运动信息列表中的第几个候选运动信息)。
解码端在接收到编码比特流后,可以从该编码比特流中获取第二指示信息,该第二指示信息用于指示第一目标运动信息在运动信息列表中的第一索引值(用于表示第一目标运动信息是运动信息列表中的第几个候选运动信息)、第二目标运动信息在运动信息列表中的第二索引值(用于表示第二目标运动信息是运动信息列表中的第几个候选运动信息)。基于该第二指示信息指示的第一索引值,解码端可以从运动信息列表中获取与该第一索引值对应的候选运动信息,并将获取的与该第一索引值对应的候选运动信息确定为第一三角子块的第一目标运动信息;基于该第二指示信息指示的第二索引值,解码端从运动信息列表中获取与该第二索引值对应的候选运动信息,并将获取的与第二索引值对应的候选运动信息确定为第二三角子块的第二目标运动信息。
实施例9:在上述实施例8中,编码端/解码端还可以基于第一索引值的奇偶性来确定第一三角子块的第一目标运动信息是采用哪个单向运动信息,编码端/解码端还可以基于第二索引值的奇偶性来确定第二三角子块的第二目标运动信息是采用哪个单向运动信息。
解码端从编码比特流中获取到第一索引值(用于指示第一目标运动信息在运动信息列表中的索引值)后,若第一索引值为偶数,则判断与第一索引值对应的候选运动信息是否包括list0中的单向运动信息。如果是,将list0中的单向运动信息确定为第一三角子块的第一目标运动信息。如果否,将list1中的单向运动信息确定为第一三角子块的第一目标运动信息。
示例性的,解码端可以从运动信息列表中获取与第一索引值对应的候选运动信息。若第一索引值为偶数,且与第一索引值对应的候选运动信息为双向运动信息,所述双向运动信息包括list0中的单向运动信息和list1中的单向运动信息,则可以将list0中的单向运动信息确定为第一三角子块的第一目标运动信息。若第一索引值为偶数,且与第一索引值对应的候选运动信息为单向运动信息,所述单向运动信息为list0中的单向运动信息,则可以将list0中的单向运动信息确定为第一三角子块的第一目标运动信息。若第一索引值为偶数,且与第一索引值对应的候选运动信息为单向运动信息,所述单向运动信息为list1中的单向运动信息,则可以将list1中的单向运动信息确定为第一三角子块的第一目标运动信息。
解码端从编码比特流中获取到第一索引值(用于指示第一目标运动信息在运动信息列表中的索引值)后,若第一索引值为奇数,则判断与第一索引值对应的候选运动信息是否包括list1中的单向运动信息。如果是,将list1中的单向运动信息确定为第一三角子块的第一目标运动信息。如果否,将list0中的单向运动信息确定为第一三角子块的第一目标运动信息。
示例性的,解码端可以从运动信息列表中获取与第一索引值对应的候选运动信息。若第一索引值为奇数,且与第一索引值对应的候选运动信息为双向运动信息,所述双向运动信息包括list0中的单向运动信息和list1中的单向运动信息,则可以将list1中的单向运动信息确定为第一三角子块的第一目标运动信息。若第一索引值为奇数,且与第一索引值对应的候选运动信息为单向运动信息,所述单向运动信息为list1中的单向运动信息,则可以将list1中的单 向运动信息确定为第一三角子块的第一目标运动信息。若第一索引值为奇数,且与第一索引值对应的候选运动信息为单向运动信息,所述单向运动信息为list0中的单向运动信息,则可以将list0中的单向运动信息确定为第一三角子块的第一目标运动信息。
解码端从编码比特流中获取到第二索引值(用于指示第二目标运动信息在运动信息列表中的索引值)后,若第二索引值为偶数,则判断与第二索引值对应的候选运动信息是否包括list0中的单向运动信息。如果是,将list0中的单向运动信息确定为第二三角子块的第二目标运动信息。如果否,将list1中的单向运动信息确定为第二三角子块的第二目标运动信息。
示例性的,解码端可以从运动信息列表中获取与第二索引值对应的候选运动信息。若第二索引值为偶数,且与第二索引值对应的候选运动信息为双向运动信息,所述双向运动信息包括list0中的单向运动信息和list1中的单向运动信息,则可以将list0中的单向运动信息确定为第二三角子块的第二目标运动信息。若第二索引值为偶数,且与第二索引值对应的候选运动信息为单向运动信息,所述单向运动信息为list0中的单向运动信息,则可以将list0中的单向运动信息确定为第二三角子块的第二目标运动信息。若第二索引值为偶数,且与第二索引值对应的候选运动信息为单向运动信息,所述单向运动信息为list1中的单向运动信息,则可以将list1中的单向运动信息确定为第二三角子块的第二目标运动信息。
解码端从编码比特流中获取到第二索引值(用于指示第二目标运动信息在运动信息列表中的索引值)后,若第二索引值为奇数,则判断与第二索引值对应的候选运动信息是否包括list1中的单向运动信息。如果是,将list1中的单向运动信息确定为第二三角子块的第二目标运动信息。如果否,将list0中的单向运动信息确定为第二三角子块的第二目标运动信息。
示例性的,解码端可以从运动信息列表中获取与第二索引值对应的候选运动信息。若第二索引值为奇数,且与第二索引值对应的候选运动信息为双向运动信息,所述双向运动信息包括list0对应的单向运动信息和list1对应的单向运动信息,则可以将list1中的单向运动信息确定为第二三角子块的第二目标运动信息。若第二索引值为奇数,且与第二索引值对应的候选运动信息为单向运动信息,所述单向运动信息为list1中的单向运动信息,则可以将list1中的单向运动信息确定为第二三角子块的第二目标运动信息。若第二索引值为奇数,且与第二索引值对应的候选运动信息为单向运动信息,所述单向运动信息为list0中的单向运动信息,则可以将list0中的单向运动信息确定为第二三角子块的第二目标运动信息。
编码端在确定第一三角子块的第一目标运动信息时,在从运动信息列表中选取最小率失真代价对应的候选运动信息(后续记为A1)后,确定候选运动信息A1在运动信息列表中的索引值,即第一索引值,第一索引值表示候选运动信息A1在运动信息列表中的位置。
若第一索引值为偶数,则编码端判断候选运动信息A1是否包括list0中的单向运动信息。如果是,则编码端将list0中的单向运动信息确定为第一三角子块的第一目标运动信息。如果否,则编码端将list1中的单向运动信息确定为第一三角子块的第一目标运动信息。
若第一索引值为奇数,则编码端判断候选运动信息A1是否包括list1中的单向运动信息。如果是,则编码端将list1中的单向运动信息确定为第一三角子块的第一目标运动信息。如果否,则编码端将list0中的单向运动信息确定为第一三角子块的第一目标运动信息。
编码端在确定第二三角子块的第二目标运动信息时,在从运动信息列表中选取最小率失真代价对应的候选运动信息(后续记为A2)后,确定候选运动信息A2在运动信息列表中的索引值,即第二索引值,第二索引值表示候选运动信息A2在运动信息列表中的位置。
若第二索引值为偶数,则编码端判断候选运动信息A2是否包括list0中的单向运动信息。如果是,则编码端将list0中的单向运动信息确定为第二三角子块的第二目标运动信息。如果否,则编码端将list1中的单向运动信息确定为第二三角子块的第二目标运动信息。
若第二索引值为奇数,则编码端判断候选运动信息A2是否包括list1中的单向运动信息。如果是,则编码端将list1中的单向运动信息确定为第二三角子块的第二目标运动信息。如果否,则编码端将list0中的单向运动信息确定为第二三角子块的第二目标运动信息。
综上所述,参见图7A所示,当第一索引值/第二索引值为偶数时,若与第一索引值/第二索引值对应的候选运动信息中存在list0中的单向运动信息,则将list0中的单向运动信息作为目标运动信息;若与第一索引值/第二索引值对应的候选运动信息中不存在list0中的单向运动信息,则将list1中的单向运动信息作为目标运动信息。当第一索引值/第二索引值为奇数时,若与第一索引值/第二索引值对应的候选运动信息中存在list1中的单向运动信息,则将list1中的单向运动信息作为目标运动信息;若与第一索引值/第二索引值对应的候选运动信息中不存在list1中的单向运动信息,则将list0中的单向运动信息作为目标运动信息。
在上述实施例中,第一索引值可以记为candIdx1,第二索引值可以记为candIdx2。
示例性的,当前块所处当前帧的帧类型为B帧时,B帧允许同时存在指向多个List(参考帧列表)的帧间块,如指向list0的帧间预测块和指向list1的帧间预测块,因此,在当前块所处当前帧为B帧时,当前块所在当前帧的参考帧配置可以包括两个参考帧列表,这两个参考帧列表可以为list0和list1。综上所述,候选运动信息可以为单向运动信息,且所述单向运动信息为list0中的单向运动信息或者list1中的单向运动信息;或者,候选运动信息可以为双向运动信息,且所述双向运动信息包括list0中的单向运动信息和list1中的单向运动信息。
实施例10:在上述实施例8中,编码端/解码端还可以基于第一索引值的奇偶性来确定第一三角子块的第一目标运动信息是采用哪个单向运动信息,编码端/解码端还可以基于第二索引值的奇偶性来确定第二三角子块的第二目标运动信息是采用哪个单向运动信息。
解码端从编码比特流中获取到第一索引值(用于指示第一目标运动信息在运动信息列表中的索引值)后,若第一索引值为奇数,则判断与第一索引值对应的候选运动信息是否包括list0中的单向运动信息。如果是,将list0中的单向运动信息确定为第一三角子块的第一目标运动信息。如果否,将list1中的单向运动信息确定为第一三角子块的第一目标运动信息。
示例性的,解码端可以从运动信息列表中获取与第一索引值对应的候选运动信息。若第一索引值为奇数,且与第一索引值对应的候选运动信息为双向运动信息,所述双向运动信息包括list0中的单向运动信息和list1中的单向运动信息,则可以将list0中的单向运动信息确定为第一三角子块的第一目标运动信息。若第一索引值为奇数,且与第一索引值对应的候选运动信息为单向运动信息,所述单向运动信息为list0中的单向运动信息,则可以将list0中的单向运动信息确定为第一三角子块的第一目标运动信息。若第一索引值为奇数,且与第一索引值对应的候选运动信息为单向运动信息,所述单向运动信息为list1中的单向运动信息,则可以将list1中的单向运动信息确定为第一三角子块的第一目标运动信息。
解码端从编码比特流中获取到第一索引值(用于指示第一目标运动信息在运动信息列表中的索引值)后,若第一索引值为偶数,则判断与第一索引值对应的候选运动信息是否包括list1中的单向运动信息。如果是,将list1中的单向运动信息确定为第一三角子块的第一目标运动信息。如果否,将list0中的单向运动信息确定为第一三角子块的第一目标运动信息。
示例性的,解码端可以从运动信息列表中获取与第一索引值对应的候选运动信息。若第一索引值为偶数,且与第一索引值对应的候选运动信息为双向运动信息,所述双向运动信息包括list0中的单向运动信息和list1中的单向运动信息,则可以将list1中的单向运动信息确定为第一三角子块的第一目标运动信息。若第一索引值为偶数,且与第一索引值对应的候选运动信息为单向运动信息,所述单向运动信息为list1中的单向运动信息,则可以将list1中的单向运动信息确定为第一三角子块的第一目标运动信息。若第一索引值为偶数,且与第一索引值对应的候选运动信息为单向运动信息,所述单向运动信息为list0中的单向运动信息,则可以将list0中的单向运动信息确定为第一三角子块的第一目标运动信息。
解码端从编码比特流中获取到第二索引值(用于指示第二目标运动信息在运动信息列表中的索引值)后,若第二索引值为奇数,则判断与第二索引值对应的候选运动信息是否包括list0中的单向运动信息。如果是,将list0中的单向运动信息确定为第二三角子块的第二目标运动信息。如果否,将list1中的单向运动信息确定为第二三角子块的第二目标运动信息。
示例性的,解码端可以从运动信息列表中获取与第二索引值对应的候选运动信息。若第二索引值为奇数,且与第二索引值对应的候选运动信息为双向运动信息,所述双向运动信息包括list0中的单向运动信息和list1中的单向运动信息,则可以将list0中的单向运动信息确定为第二三角子块的第二目标运动信息。若第二索引值为奇数,且与第二索引值对应的候选运动信息为单向运动信息,所述单向运动信息为list0中的单向运动信息,则可以将list0中的单向运动信息确定为第二三角子块的第二目标运动信息。若第二索引值为奇数,且与第二索引值对应的候选运动信息为单向运动信息,所述单向运动信息为list1中的单向运动信息,则可以将list1中的单向运动信息确定为第二三角子块的第二目标运动信息。
解码端从编码比特流中获取到第二索引值(用于指示第二目标运动信息在运动信息列表中的索引值)后,若第二索引值为偶数,则判断与第二索引值对应的候选运动信息是否包括list1中的单向运动信息。如果是,将list1中的单向运动信息确定为第二三角子块的第二目标运动信息。如果否,将list0中的单向运动信息确定为第二三角子块的第二目标运动信息。
示例性的,解码端可以从运动信息列表中获取与第二索引值对应的候选运动信息。若第二索引值为偶数,且与第二索引值对应的候选运动信息为双向运动信息,所述双向运动信息包括list0中的单向运动信息和list1中的单向运动信息,则可以将list1中的单向运动信息确定为第二三角子块的第二目标运动信息。若第二索引值为偶数,且与第二索引值对应的候选运动信息为单向运动信息,所述单向运动信息为list1中的单向运动信息,则可以将list1中的单向运动信息确定为第二三角子块的第二目标运动信息。若第二索引值为偶数,且与第二索引值对应的候选运动信息为单向运动信息,所述单向运动信息为list0中的单向运动信息,则可以将list0中的单向运动信息确定为第二三角子块的第二目标运动信息。
编码端在确定第一三角子块的第一目标运动信息时,在从运动信息列表中选取最小率失真代价对应的候选运动信息(后续记为A1)后,确定候选运动信息A1在运动信息列表中的索引值,即第一索引值,第一索引值表示候选运动信息A1在运动信息列表中的位置。
若第一索引值为奇数,则编码端判断候选运动信息A1是否包括list0中的单向运动信息。如果是,则编码端将list0中的单向运动信息确定为第一三角子块的第一目标运动信息。如果否,则编码端将list1中的单向运动信息确定为第一三角子块的第一目标运动信息。
若第一索引值为偶数,则编码端判断候选运动信息A1是否包括list1中的单向运动信息。如果是,则编码端将list1中的单向运动信息确定为第一三角子块的第一目标运动信息。如果否,则编码端将list0中的单向运动信息确定为第一三角子块的第一目标运动信息。
编码端在确定第二三角子块的第二目标运动信息时,在从运动信息列表中选取最小率失真代价对应的候选运动信息(后续记为A2)后,确定候选运动信息A2在运动信息列表中的索引值,即第二索引值,第二索引值表示候选运动信息A2在运动信息列表中的位置。
若第二索引值为奇数,则编码端判断候选运动信息A2是否包括list0中的单向运动信息。如果是,则编码端将list0中的单向运动信息确定为第二三角子块的第二目标运动信息。如果否,则编码端将list1中的单向运动信息确定为第二三角子块的第二目标运动信息。
若第二索引值为偶数,则编码端判断候选运动信息A2是否包括list1中的单向运动信息。如果是,则编码端将list1中的单向运动信息确定为第二三角子块的第二目标运动信息。如果否,则编码端将list0中的单向运动信息确定为第二三角子块的第二目标运动信息。
实施例11:在上述实施例8中,编码端/解码端还可以根据运动信息列表获取第一候选集合和第二候选集合。示例性的,该第一候选集合可以包括该运动信息列表中的部分候选运动信息,该第二候选集合可以包括该运动信息列表中的部分候选运动信息,且该第一候选集合中的候选运动信息与该第二候选集合中的候选运动信息不完全相同。
针对编码端来说,编码端确定第一候选集合中的每个候选运动信息对应的率失真代价,并将最小率失真代价对 应的候选运动信息作为第一三角子块的第一目标运动信息。然后,编码端从第二候选集合中排除第一目标运动信息,并确定第二候选集合中剩余的每个候选运动信息(即排除第一目标运动信息后剩余的每个候选运动信息)对应的率失真代价,并将最小率失真代价对应的候选运动信息作为第二三角子块的第二目标运动信息。
编码端在向解码端发送编码比特流时,该编码比特流可以包括第二指示信息,该第二指示信息用于指示第一目标运动信息在第一候选集合中的第一索引值(用于表示第一目标运动信息是第一候选集合中的第几个候选运动信息)、第二目标运动信息在第二候选集合中的第二索引值(用于表示第二目标运动信息是第二候选集合中的第几个候选运动信息)。
针对解码端来说,解码端在接收到编码比特流之后,解码端还可以从该编码比特流中获取第二指示信息,该第二指示信息可以用于指示第一目标运动信息在第一候选集合中的第一索引值、第二目标运动信息在第二候选集合中的第二索引值。基于该第二指示信息指示的该第一索引值,解码端可以从第一候选集合中获取与该第一索引值对应的候选运动信息,并将获取的与该第一索引值对应的候选运动信息确定为第一三角子块的第一目标运动信息。以及,基于该第二指示信息指示的该第二索引值,解码端可以从第二候选集合中获取与该第二索引值对应的候选运动信息,并将获取的与该第二索引值对应的候选运动信息确定为第二三角子块的第二目标运动信息。
实施例12:参见图7B所示,为splitDir=0时的三角子块划分示意图,splitDir为划分方向的标记位,表示三角子块的划分信息,splitDir=0表示按照主对角线(与水平向右方向呈45度夹角)将当前块划分为第一三角子块和第二三角子块,运动信息列表包括块A1的运动信息、块B1的运动信息、块B0的运动信息、块A0的运动信息、块B2的运动信息。
示例性的,运动信息列表中的运动信息的排列顺序可以为:块A1的运动信息、块B1的运动信息、块B0的运动信息、块A0的运动信息、块B2的运动信息。若块A1的运动信息可用,则按照上述顺序将块A1的运动信息添加到运动信息列表;若块A1的运动信息不可用,则不将块A1的运动信息添加到运动信息列表;若块B1的运动信息可用,则按照上述顺序将块B1的运动信息添加到运动信息列表;若块B1的运动信息不可用,则不将块B1的运动信息添加到运动信息列表,以此类推。在实际应用中,在块B0的运动信息与块A0的运动信息之间,还可能插入一些其它类型的运动信息,如时域运动信息等,对此不做限制。
针对上面的第一三角子块,大概率不会选择块A1的运动信息和块A0的运动信息,假设在运动信息列表中,块A1的运动信息的索引值为0,块B0的运动信息的索引值为1,块B1的运动信息的索引值为2,块A0的运动信息的索引值为3,块B2的运动信息的索引值为4,第一候选集合包括块B0的运动信息、块B1的运动信息、块B2的运动信息。
编码端通过第一索引值“0”编码块B0的运动信息,表示第一候选集合中第一个候选运动信息,也是运动信息列表中第二个候选运动信息,也就是说,第一索引值“0”可以对应运动信息列表的索引值1。编码端通过第一索引值“10”编码块B1的运动信息,表示第一候选集合中第二个候选运动信息,也是运动信息列表中第三个候选运动信息,也就是说,第一索引值“10”可以对应运动信息列表的索引值2。编码端通过第一索引值“11”编码块B2的运动信息,表示第一候选集合中第三个候选运动信息,也是运动信息列表中第五个候选运动信息,也就是说,第一索引值“11”可以对应运动信息列表的索引值4。
解码端从编码比特流中获取到第一索引值后,若第一索引值为“0”,则解码端可以将第一候选集合中的第一个候选运动信息(即运动信息列表中第二个候选运动信息)作为第一三角子块的第一目标运动信息。若第一索引值为“10”,则解码端可以将第一候选集合中的第二个候选运动信息(即运动信息列表中第三个候选运动信息)作为第一三角子块的第一目标运动信息。若第一索引值为“11”,则解码端可以将第一候选集合中的第三个候选运动信息(即运动信息列表中第五个候选运动信息)作为第一三角子块的第一目标运动信息。
针对下面的第二三角子块,大概率不会选择块B1的运动信息和块B0的运动信息,假设在运动信息列表中,块A1的运动信息的索引值为0,块B0的运动信息的索引值为1,块B1的运动信息的索引值为2,块A0的运动信息的索引值为3,块B2的运动信息的索引值为4,第二候选集合可以包括块A0的运动信息、块A1的运动信息、块B2的运动信息。
编码端通过第二索引值“0”编码块A1的运动信息,表示第二候选集合中第一个候选运动信息,也是运动信息列表中第一个候选运动信息,也就是说,第二索引值“0”可以对应运动信息列表的索引值0。编码端通过第二索引值“10”编码块A0的运动信息,表示第二候选集合中第二个候选运动信息,也是运动信息列表中第四个候选运动信息,也就是说,第二索引值“10”可以对应运动信息列表的索引值3。编码端通过第二索引值“11”编码块B2的运动信息,表示第二候选集合中第三个候选运动信息,也是运动信息列表中第五个候选运动信息,也就是说,第二索引值“11”可以对应运动信息列表的索引值4。
解码端从编码比特流中获取到第二索引值后,若第二索引值为“0”,则解码端可以将第二候选集合中的第一个候选运动信息(即运动信息列表中第一个候选运动信息)作为第二三角子块的第二目标运动信息。若第二索引值为“10”,则解码端可以将第二候选集合中的第二个候选运动信息(即运动信息列表中第四个候选运动信息)作为第二三角子块的第二目标运动信息。若第二索引值为“11”,则解码端可以将第二候选集合中的第三个候选运动信息(即运动信息列表中第五个候选运动信息)作为第二三角子块的第二目标运动信息。
示例性的,由于第二目标运动信息与第一目标运动信息不同,即第二索引值与第一索引值不能对应运动信息列表中的同一个候选运动信息,因此,当第一目标运动信息为块B2的运动信息,即第一索引值为“11”,第二候选集合包括块A0的运动信息和块A1的运动信息。
编码端通过第二索引值“0”编码块A1的运动信息,表示第二候选集合中第一个候选运动信息,也就是,运动信息列表中第一个候选运动信息。编码端通过第二索引值“1”编码块A0的运动信息,表示第二候选集合中第二个候选运动信息,也就是,运动信息列表中第四个候选运动信息。解码端从编码比特流中获取到第二索引值后,若第二索引值为“0”,则将第二候选集合中的第一个候选运动信息(即运动信息列表中第一个候选运动信息)作为第二三角子块的第二目标运动信息。若第二索引值为“1”,则将第二候选集合中的第二个候选运动信息(即运动信息列表中第四个候选运动信息)作为第二三角子块的第二目标运动信息。
示例性的,若第一目标运动信息不为块B2的运动信息,则第二候选集合包括块A0的运动信息、块A1的运动信息和块B2的运动信息,编解码方法参见上述实施例,在此不再赘述。
综上所述,若第一索引值(candIdx1)为11,即对应运动信息列表的索引值4,则第二索引值(candIdx2)只有索引值0和索引值3两种可能,因此,编码端通过第二索引值“0”编码索引值0对应的运动信息(即运动信息列表中的第一个候选运动信息),编码端通过第二索引值“1”编码索引值3对应的运动信息(即运动信息列表中的第四个候选运动信息)。若第一索引值(candIdx1)不为11,即不对应运动信息列表的索引值4,则第二索引值的解码过程可以参见表1,在这种情况下,第二索引值(candIdx2)存在索引值0、索引值3和索引值4等三种可能,因此,编码端通过第二索引值“0”编码索引值0对应的运动信息,编码端通过第二索引值“10”编码索引值3对应的运动信息,编码端通过第二索引值“11”编码索引值4对应的运动信息
表1
Figure PCTCN2020096857-appb-000001
示例性的,在另一个可能的实施方式中,可以将第一索引值(candIdx1)限制为对应索引值1和2,即第一索引值对应块B0的运动信息(索引值为1)或者块B1的运动信息(索引值为2),也就是说,第一索引值(candIdx1)仅需要1个二进制位进行编码,如通过0编码索引值1,通过1编码索引值2。第二索引值(candIdx2)可以对应索引值0、3、4,即第二索引值对应块A1的运动信息(索引值为0)、块A0的运动信息(索引值为3)、块B2的运动信息(索引值为4),显然,第二索引值对应的运动信息与第一索引值对应的运动信息不同。在此基础上,可以通过0、10、11编码这三个索引值,如通过0编码索引值0,通过10编码索引值3,通过11编码索引值4。上述方式不需要依赖于第一索引值进行解码过程,减少了解析依赖。
示例性的,在另一个可能的实施方式中,可以将第一索引值(candIdx1)限制为对应索引值1、2、4,即第一索引值对应块B0的运动信息(索引值为1)、块B1的运动信息(索引值为2)、块B2的运动信息(索引值为4),也就是说,第一索引值(candIdx1)可以通过0、10、11编码进行编码,如通过0编码索引值1,通过10编码索引值2,通过11编码索引值4。第二索引值(candIdx2)可以限制为对应索引值0、3,即第二索引值对应块A1的运动信息(索引值为0)、块A0的运动信息(索引值为3),显然,第二索引值对应的运动信息与第一索引值对应的运动信息不同。在此基础上,可以通过0和1编码这两个索引值,如通过0编码索引值0,通过1编码索引值3。上述方式不需要依赖于第一索引值进行解码过程,减少了解析依赖。
实施例13:参见图7C所示,为splitDir=1时的三角子块划分示意图,splitDir为划分方向的标记位,表示三角子块的划分信息,splitDir=1表示按照副对角线(与水平向右方向呈135度夹角)将当前块划分为第一三角子块和第二三角子块,运动信息列表包括块A1的运动信息、块B1的运动信息、块B0的运动信息、块A0的运动信息、块B2的运动信息。
针对上面的第一三角子块,不需要为第一三角子块构建第一候选集合,编码端/解码端可以直接从运动信息列表中选择第一目标运动信息,对此选择过程不再重复赘述。
针对下面的第二三角子块,大概率不会选择块B2的运动信息,假设在运动信息列表中,块A1的运动信息的索引值为0,块B0的运动信息的索引值为1,块B1的运动信息的索引值为2,块A0的运动信息的索引值为3,块B2的运动信息的索引值为4,第二候选集合可以包括块A1的运动信息、块A0的运动信息、块B0的运动信息、块B1的运动信息。
若第一目标运动信息是运动信息列表中的第五个运动信息(块B2的运动信息),第一目标运动信息对应的索引值为4,在此情况下:编码端可以通过第二索引值“0”编码块A1的运动信息,表示第二候选集合中的第一个候选运动信息,也是运动信息列表中的第一个候选运动信息,也就是说,第二索引值“0”可以对应运动信息列表的索引值0。编码端可以通过第二索引值“10”编码块B0的运动信息,表示第二候选集合中的第二个候选运动信息,也是运动信息列表中的第二个候选运动信息,也就是说,第二索引值“10”可以对应运动信息列表的索引值1。编码端可以通过第二索引值“110”编码块B1的运动信息,表示第二候选集合中的第三个候选运动信息,也是运动信息列表中的第三个候选运动信息,也就是说,第二索引值“110”可以对应运动信息列表的索引值2。编码端可以通过第二索引值“111”编码块A0的运动信息,表示第二候选集合中的第四个候选运动信息,也是运动信息列表中的第四个候选运动信息,也就是说,第二索引值“111”可以对应运动信息列表的索引值3。
解码端从编码比特流中获取到第二索引值后,若第二索引值为“0”,则解码端可以将第二候选集合中的第一个候选运动信息(即运动信息列表中的第一个候选运动信息)作为第二三角子块的第二目标运动信息。若第二索引值为“10”,则解码端可以将第二候选集合中的第二个候选运动信息(即运动信息列表中的第二个候选运动信息)作为第二三角子块的第二目标运动信息。若第二索引值为“110”,则解码端可以将第二候选集合中的第三个候选运动信息(即运动信息列表中的第三个候选运动信息)作为第二三角子块的第二目标运动信息。若第二索引值为“111”,则解码端可以将第二候选集合中的第四个候选运动信息(即运动信息列表中的第四个候选运动信息)作为第二三角子块的第二目标运动信息。
若第一索引值不对应索引值4,后续以第一索引值对应索引值3为例进行说明,表示第一目标运动信息是运动信息列表中的第四个运动信息(即块A0的运动信息),在此情况下:编码端可以通过第二索引值“0”编码块A1的运动信息,表示第二候选集合中的第一个候选运动信息,也是运动信息列表中的第一个候选运动信息,也就是说,第二索引值“0”可以对应运动信息列表的索引值0。编码端可以通过第二索引值“10”编码块B0的运动信息,表示第二候选集合中的第二个候选运动信息,也是运动信息列表中的第二个候选运动信息,也就是说,第二索引值“10”可以对应运动信息列表的索引值1。编码端可以通过第二索引值“11”编码块B1的运动信息,表示第二候选集合中的第三个候选运动信息,也是运动信息列表中的第三个候选运动信息,也就是说,第二索引值“11”可以对应运动信息列表的索引值2。
解码端从编码比特流中获取到第二索引值后,若第二索引值为“0”,则解码端可以将第二候选集合中的第一个候选运动信息(即运动信息列表中的第一个候选运动信息)作为第二三角子块的第二目标运动信息。若第二索引值为“10”,则解码端可以将第二候选集合中的第二个候选运动信息(即运动信息列表中的第二个候选运动信息)作为第二三角子块的第二目标运动信息。若第二索引值为“11”,则解码端可以将第二候选集合中的第三个候选运动信息(即运动信息列表中的第三个候选运动信息)作为第二三角子块的第二目标运动信息。
综上所述,若第一索引值(candIdx1)为11,即对应运动信息列表的索引值4,则第二索引值(candIdx2)的解码过程可以参见表2所示。若第一索引值(candIdx1)不为11,即不对应运动信息列表的索引值4,则第二索引值(candIdx2)的解码过程可以参见表3所示。
表2
Figure PCTCN2020096857-appb-000002
表3
Figure PCTCN2020096857-appb-000003
示例性的,在另一个可能的实施方式中,可以先编码第二索引值(candIdx2),由于第二索引值(candIdx2)仅可能对应索引值0、索引值1、索引值2、索引值3,因此,可以使用0、10、110、111进行编码,即最多使用3个二进制位编码第二索引值(candIdx2)。例如,通过0编码索引值0,通过10编码索引值1,通过110编码索引值2,通过111编码索引值3。然后,可以编码第一索引值(candIdx1),即candIdx1-=candIdx1<candIdx2?0:1,也就是说,第一索引值(candIdx1)为索引值0、索引值1、索引值2、索引值3、索引值4中去除第二索引值(candIdx2)外剩余的4个,因此,也可以使用0、10、110、111进行编码,即最多使用3个二进制位编码第一索引值(candIdx1)。显然,在该方式中,不需要依赖于前一个索引值的大小,来确定当前需要解码多少个二进制位,从而减少了解析依赖。
示例性的,当splitDir=1时,可以先编码第二索引值(candIdx2),后编码第一索引值(candIdx1)。当splitDir=0时,可以先编码第一索引值(candIdx1),后编码第二索引值(candIdx2);或者,可以先编码第二索引值(candIdx2),后编码第一索引值(candIdx1)。
示例性的,当splitDir=0时,可以采用实施例12进行处理,当splitDir=1时,可以采用实施例13进行处理,当然,上述实施例12和实施例13只是示例,对此不做限制。
示例性的,上述关于索引值编码的例子,只说明了运动信息列表包括5个候选运动信息,当运动信息列表包括其它示例的候选运动信息时,实现方式类似,在此不再重复赘述。
实施例14:在上述实施例中,编码端向解码端发送编码比特流时,该编码比特流可以包括第二指示信息,第二指示信息用于指示第一目标运动信息在运动信息列表中的第一索引值、第二目标运动信息在运动信息列表中的第二索引值。示例性的,针对第一索引值,编码端可以采用CABAC方式对第一索引值进行编码,解码端采用CABAC方式对第一索引值进行解码。针对第二索引值,编码端可以采用CABAC方式对第二索引值进行编码,解码端采用CABAC方式对第二索引值进行解码。当然,CABAC只是一个示例,对此不做限制。
示例性的,假设运动信息列表包括5个候选运动信息,可以通过四个二进制位表示第一索引值(记为candIdx1),并通过四个二进制位表示第二索引值(记为candIdx2)。
在编码端,若candIdx1表示运动信息列表中的第一个候选运动信息,则采用CABAC方式编码第1个二进制位,第1个二进制位为0。若candIdx1表示运动信息列表中的第二个候选运动信息,则采用CABAC方式编码第1个二进制位和第2个二进制位,第1个二进制位为1、第2个二进制位为0。若candIdx1表示运动信息列表中的第三个候选运动信息,则采用CABAC方式编码第1个二进制位、第2个二进制位和第3个二进制位,第1个二进制位为1、第2个二进制位为1、第3个二进制位为0。若candIdx1表示运动信息列表中的第四个候选运动信息,则采用CABAC方式编码第1个二进制位、第2个二进制位、第3个二进制位和第4个二进制位,第1个二进制位为1、第2个二进制位为1、第3个二进制位为1、第4个二进制位为0。若candIdx1表示运动信息列表中的第五个候选运动信息,则采用CABAC方式编码第1个二进制位、第2个二进制位、第3个二进制位和第4个二进制位,第1个二进制位为1、第2个二进制位为1、第3个二进制位为1、第4个二进制位为1。
在解码端,先通过CABAC方式解码candIdx1的第1个二进制位。若第1个二进制位为0,确定candIdx1对应0,candIdx1表示运动信息列表中的第一个候选运动信息。若第1个二进制位为1,通过CABAC方式解码candIdx1的第2个二进制位。若第2个二进制位为0,确定candIdx1对应1(通过10表示),candIdx1表示运动信息列表中的第二个候选运动信息。若第2个二进制位为1,通过CABAC方式解码candIdx1的第3个二进制位。若第3个二进制位为0,确定candIdx1对应2(通过110表示),candIdx1表示运动信息列表中的第三个候选运动信息。若第3个二进制位为1,通过CABAC方式解码candIdx1的第4个二进制位。若第4个二进制位为0,确定candIdx1对应3(通过1110表示),candIdx1表示运动信息列表中的第四个候选运动信息。若第4个二进制位为1,由于二进制位数达到最大数量,因此,确定candIdx1对应4(通过1111表示),candIdx1表示运动信息列表中的第五个候选运动信息。
示例性的,在解码过程中,结束条件可以为:所解出的二进制位为0,或所解出的二进制位数达到最大数量(numCandminus1),numCandminus1可以通过语法信息获得,对此不做限制,如numCandminus1为4时,则表示第一索引值candIdx1的二进制位数的最大数量为4。
在上述实施例中,介绍了编码端对candIdx1的编码过程,解码端对candIdx1的解码过程,针对candIdx2的编码过程和解码过程,与上述实施例类似,在此不再重复赘述。
示例性的,针对上述实施例,candIdx1/candIdx2对应的二进制位如表4所示:
表4
Figure PCTCN2020096857-appb-000004
实施例15:在上述实施例中,编码端向解码端发送编码比特流时,该编码比特流可以包括第二指示信息,第二指示信息用于指示第一目标运动信息在运动信息列表中的第一索引值、第二目标运动信息在运动信息列表中的第二索引值。示例性的,针对第一索引值,编码端可以采用CABAC方式对第一索引值进行编码,解码端采用CABAC方式对第一索引值进行解码。针对第二索引值,编码端可以采用CABAC方式对第二索引值进行编码,解码端采用CABAC方式对第二索引值进行解码。当然,CABAC只是一个示例,对此不做限制。
CABAC包括需要保存和更新至少1个上下文模型的CABAC模式(后续称为上下文的自适应二进制算术编码)、不需要存储和更新上下文模型的旁路CABAC模式(后续称为旁路的二进制算术编码)。基于旁路的二进制算术编码方式对第一索引值进行编码,或,基于上下文的自适应二进制算术编码方式对第一索引值进行编码,即,根据上下文模型,基于上下文的自适应二进制算术编码方式对第一索引值进行编码。基于旁路的二进制算术编码方式对第二索引值进行编码,或,基于上下文的自适应二进制算术编码方式对第二索引值进行编码,即,根据上下文模型,基于上下文的自适应二进制算术编码方式对第二索引值进行编码。
编码端采用CABAC方式对第一索引值进行编码时,解码端采用CABAC方式对第一索引值进行解码。例如,编码端基于旁路的二进制算术编码方式对第一索引值进行编码时,解码端基于旁路的二进制算术解码方式对第一索引值进行解码,得到第一索引值。编码端基于上下文的自适应二进制算术编码方式对第一索引值进行编码时,解码端基于上下文的自适应二进制算术解码方式对第一索引值进行解码,得到第一索引值,即,根据上下文模型,基于上下文的自适应二进制算术解码方式对第一索引值进行解码,得到第一索引值。
编码端采用CABAC方式对第二索引值进行编码时,解码端采用CABAC方式对第二索引值进行解码。例如,编码端基于旁路的二进制算术编码方式对第二索引值进行编码时,解码端基于旁路的二进制算术解码方式对第二索引值进行解码,得到第二索引值。编码端基于上下文的自适应二进制算术编码方式对第二索引值进行编码时,解码端基于上下文的自适应二进制算术解码方式对第二索引值进行解码,得到第二索引值,即,根据上下文模型,基于上下文的自适应二进制算术解码方式对第二索引值进行解码,得到第二索引值。
示例性的,第一索引值可以包括M1个二进制位,M1个二进制位中的N1个二进制位,基于上下文模型进行基于上下文的自适应二进制算术解码得到,M1个二进制位中的剩余(M1-N1)个二进制位,基于旁路的二进制算术解码得到,M1大于或者等于N1。例如,第一索引值包括4个二进制位,第1个二进制位,基于上下文模型进行基于上下文的自适应二进制算术解码得到,第2、3、4个二进制位,基于旁路的二进制算术解码得到。
例如,针对第一索引值中的第1个二进制位,编码端根据上下文模型,基于上下文的自适应二进制算术编码方式对第1个二进制位进行编码。解码端根据上下文模型,基于上下文的自适应二进制算术解码方式对第1个二进制位进行解码,得到第1个二进制位。
若第一索引值中存在其它二进制位(如第2个二进制位、第3个二进制位、第4个二进制位等),编码端基于旁路的二进制算术编码方式对其它二进制位进行编码。解码端基于旁路的二进制算术解码方式对其它二进制位进行解码,得到其它二进制位。
综上所述,针对第1个二进制位,编码端/解码端可以采用更新某1个上下文模型的CABAC方法进行编码/解码,针对其它二进制位,编码端/解码端可以采用不更新上下文模型的CABAC方法进行编码/解码,即采用Bypass模式的CABAC方法。
示例性的,第二索引值可以包括M2个二进制位,M2个二进制位中的N2个二进制位,基于上下文模型进行基于上下文的自适应二进制算术解码得到,M2个二进制位中的剩余(M2-N2)个二进制位,基于旁路的二进制算术解码得到,M2大于或者等于N2。例如,第二索引值包括4个二进制位,第1个二进制位,基于上下文模型进行基于上下文的自适应二进制算术解码得到,第2、3、4个二进制位,基于旁路的二进制算术解码得到。
例如,针对第二索引值中的第1个二进制位,编码端根据上下文模型,基于上下文的自适应二进制算术编码方式对第1个二进制位进行编码。解码端根据上下文模型,基于上下文的自适应二进制算术解码方式对第1个二进制位进行解码,得到第1个二进制位。
若第二索引值中存在其它二进制位(如第2个二进制位、第3个二进制位、第4个二进制位等),编码端基于旁路的二进制算术编码方式对其它二进制位进行编码。解码端基于旁路的二进制算术解码方式对其它二进制位进行解码,得到其它二进制位。
综上所述,针对第1个二进制位,编码端/解码端可以采用更新某1个上下文模型的CABAC方法进行编码/解码,针对其它二进制位,编码端/解码端可以采用不更新上下文模型的CABAC方法进行编码/解码,即采用Bypass模式的CABAC方法。
实施例16:第一索引值对应的上下文模型与第二索引值对应的上下文模型相同。或者,第一索引值对应的上下文模型与第二索引值对应的上下文模型不同。或者,第一索引值和第一划分信息对应的上下文模型、以及第二索引值和第一划分信息对应的上下文模型相同;第一索引值和第二划分信息对应的上下文模型、以及第二索引值和第二 划分信息对应的上下文模型相同;第一索引值和第一划分信息对应的上下文模型、以及第一索引值和第二划分信息对应的上下文模型不同。或者,第一索引值和第一划分信息对应的上下文模型、第二索引值和第一划分信息对应的上下文模型、第一索引值和第二划分信息对应的上下文模型、以及第二索引值和第二划分信息对应的上下文模型各不相同。或者,第一索引值和第一划分信息对应的上下文模型、以及第二索引值和第一划分信息对应的上下文模型不同;第一索引值和第二划分信息对应的上下文模型、以及第二索引值和第二划分信息对应的上下文模型相同。或者,第一索引值和第一划分信息对应的上下文模型、以及第二索引值和第一划分信息对应的上下文模型相同;第一索引值和第二划分信息对应的上下文模型、以及第二索引值和第二划分信息对应的上下文模型不同。示例性的,第一划分信息表示三角子块的划分信息为主对角线划分方式;第二划分信息表示三角子块的划分信息为副对角线划分方式。
以下结合几个具体应用场景,对上述的上下文模型进行详细说明。
编码端/解码端可以维护上下文模型A1 Model,第一索引值(三角预测模式中,用于指示第一三角子块的第一目标运动信息的索引值)对应的上下文模型为上下文模型A1 Model,第二索引值(三角预测模式中,用于指示第二三角子块的第二目标运动信息的索引值)对应的上下文模型为上下文模型A1 Model,普通融合模式的索引值对应的上下文模型为上下文模型A1 Model
示例性的,若编码端/解码端需要根据上下文模型,对第一索引值进行编码或者解码,则采用上下文模型A1 Model对第一索引值(如第一索引值的第1个二进制位)进行编码或者解码。若编码端/解码端需要根据上下文模型,对第二索引值进行编码或者解码,则采用上下文模型A1 Model对第二索引值(如第二索引值的第1个二进制位)进行编码或者解码。若编码端/解码端需要根据上下文模型,对普通融合模式的索引值进行编码或者解码,则采用上下文模型A1 Model对普通融合模式的索引值(如普通融合模式的索引值的第1个二进制位)进行编码或者解码。
应用场景2:编码端/解码端可以维护上下文模型B1 Model和上下文模型B2 Model,第一索引值对应的上下文模型为上下文模型B1 Model,第二索引值对应的上下文模型为上下文模型B1 Model,普通融合模式(如regular merge模式)的索引值对应的上下文模型为上下文模型B2 Model
示例性的,若编码端/解码端需要根据上下文模型,对第一索引值进行编码或者解码,则采用上下文模型B1 Model对第一索引值(如第一索引值的第1个二进制位)进行编码或者解码。若编码端/解码端需要根据上下文模型,对第二索引值进行编码或者解码,则采用上下文模型B1 Model对第二索引值(如第二索引值的第1个二进制位)进行编码或者解码。若编码端/解码端需要根据上下文模型,对普通融合模式的索引值进行编码或者解码,则采用上下文模型B2 Model对普通融合模式的索引值(如普通融合模式的索引值的第1个二进制位)进行编码或者解码。
应用场景3:编码端/解码端可以维护上下文模型C1、上下文模型C2和上下文模型C3,第一索引值对应的上下文模型为上下文模型C1,第二索引值对应的上下文模型为上下文模型C2,普通融合模式(如regular merge模式)的索引值对应的上下文模型为上下文模型C3。
示例性的,若编码端/解码端需要根据上下文模型,对第一索引值进行编码或者解码,则采用上下文模型C1对第一索引值(如第一索引值的第1个二进制位)进行编码或者解码。若编码端/解码端需要根据上下文模型,对第二索引值进行编码或者解码,则采用上下文模型C2对第二索引值(如第二索引值的第1个二进制位)进行编码或者解码。若编码端/解码端需要根据上下文模型,对普通融合模式的索引值进行编码或者解码,则采用上下文模型C3对普通融合模式的索引值(如普通融合模式的索引值的第1个二进制位)进行编码或者解码。
应用场景4:编码端/解码端可以维护上下文模型D1、上下文模型D2和上下文模型D3。示例性的,第一索引值和第一划分信息对应的上下文模型为上下文模型D1;第二索引值和第一划分信息对应的上下文模型为上下文模型D1。第一索引值和第二划分信息对应的上下文模型为上下文模型D2;第二索引值和第二划分信息对应的上下文模型为上下文模型D2。普通融合模式(如regular merge模式)的索引值对应的上下文模型为上下文模型D3。
示例性的,若编码端/解码端需要根据上下文模型,对第一索引值进行编码或者解码,则先确定三角子块的划分信息;若三角子块的划分信息为第一划分信息(表示按照主对角线(与水平向右方向呈45度夹角)将当前块划分为第一三角子块和第二三角子块),则采用上下文模型D1对第一索引值(如第一索引值的第1个二进制位)进行编码或者解码;若三角子块的划分信息为第二划分信息(表示按照副对角线(与水平向右方向呈135度夹角)将当前块划分为第一三角子块和第二三角子块),则采用上下文模型D2对第一索引值(如第一索引值的第1个二进制位)进行编码或者解码。若编码端/解码端需要根据上下文模型,对第二索引值进行编码或者解码,则先确定三角子块的划分信息;若三角子块的划分信息为第一划分信息,则采用上下文模型D1对第二索引值(如第二索引值的第1个二进制位)进行编码或者解码;若三角子块的划分信息为第二划分信息,则采用上下文模型D2对第二索引值(如第二索引值的第1个二进制位)进行编码或者解码;若编码端/解码端需要根据上下文模型,对普通融合模式的索引值进行编码或者解码,则采用上下文模型D3对普通融合模式的索引值(如普通融合模式的索引值的第1个二进制位)进行编码或者解码。
应用场景5:编码端/解码端可以维护上下文模型E1、上下文模型E2、上下文模型E3、上下文模型E4和上下文模型E5。示例性的,第一索引值和第一划分信息对应的上下文模型为上下文模型E1;第一索引值和第二划分信息对应的上下文模型为上下文模型E2;第二索引值和第一划分信息对应的上下文模型为上下文模型E3;第二索引值和第二划分信息对应的上下文模型为上下文模型E4。普通融合模式的索引值对应的上下文模型为上下文模型E5。
示例性的,若编码端/解码端根据上下文模型,对第一索引值进行编码或解码,则确定三角子块的划分信息;若三角子块的划分信息为第一划分信息,采用上下文模型E1对第一索引值(如第一索引值的第1个二进制位)进行编码或解码;若三角子块的划分信息为第二划分信息,采用上下文模型E2对第一索引值(如第一索引值的第1个二进制位)进行编码或解码。若编码端/解码端根据上下文模型,对第二索引值进行编码或解码,则确定三角子块的划分信息;若三角子块的划分信息为第一划分信息,采用上下文模型E3对第二索引值(如第二索引值的第1个二进制位)进行编码或解码;若三角子块的划分信息为第二划分信息,采用上下文模型E4对第二索引值(如第二索引值的第1个二进制位)进行编码或解码;若编码端/解码端需要根据上下文模型,对普通融合模式的索引值进行编码或解码,则采用上下文模型E5对普通融合模式的索引值(如普通融合模式的索引值的第1个二进制位)进行编码或解码。
应用场景6:编码端/解码端可以维护上下文模型F1、上下文模型F2、上下文模型F3和上下文模型F4。示例性的,第一索引值和第一划分信息对应的上下文模型可以为上下文模型F1;第二索引值和第一划分信息对应的上下文模型可以为上下文模型F2。第一索引值和第二划分信息对应的上下文模型可以为上下文模型F3;第二索引值和第二划分信息对应的上下文模型可以为上下文模型F3。普通融合模式的索引值对应的上下文模型为上下文模型F4。
示例性的,若编码端/解码端根据上下文模型,对第一索引值进行编码或解码,则确定三角子块的划分信息;若三角子块的划分信息为第一划分信息,采用上下文模型F1对第一索引值(如第一索引值的第1个二进制位)进行编码或解码;若三角子块的划分信息为第二划分信息,采用上下文模型F3对第一索引值(如第一索引值的第1个二进制位)进行编码或解码。若编码端/解码端根据上下文模型,对第二索引值进行编码或解码,则确定三角子块的划分信息;若三角子块的划分信息为第一划分信息,采用上下文模型F2对第二索引值(如第二索引值的第1个二进制位)进行编码或解码;若三角子块的划分信息为第二划分信息,采用上下文模型F3对第二索引值(如第二索引值的第1个二进制位)进行编码或解码;若编码端/解码端需要根据上下文模型,对普通融合模式的索引值进行编码或解码,则采用上下文模型F4对普通融合模式的索引值(如普通融合模式的索引值的第1个二进制位)进行编码或解码。
应用场景7:编码端/解码端可以维护上下文模型G1、上下文模型G2、上下文模型G3和上下文模型G4。示例性的,第一索引值和第一划分信息对应的上下文模型可以为上下文模型G1;第二索引值和第一划分信息对应的上下文模型可以为上下文模型G1。第一索引值和第二划分信息对应的上下文模型可以为上下文模型G2;第二索引值和第二划分信息对应的上下文模型可以为上下文模型G3。普通融合模式的索引值对应的上下文模型为上下文模型G4。
若编码端/解码端根据上下文模型,对第一索引值进行编码或解码,则确定三角子块的划分信息;若三角子块的划分信息为第一划分信息,采用上下文模型G1对第一索引值(如第一索引值的第1个二进制位)进行编码或解码;若三角子块的划分信息为第二划分信息,采用上下文模型G2对第一索引值(如第一索引值的第1个二进制位)进行编码或解码。若编码端/解码端根据上下文模型,对第二索引值进行编码或解码,则确定三角子块的划分信息;若三角子块的划分信息为第一划分信息,采用上下文模型G1对第二索引值(如第二索引值的第1个二进制位)进行编码或解码;若三角子块的划分信息为第二划分信息,采用上下文模型G3对第二索引值(如第二索引值的第1个二进制位)进行编码或解码;若编码端/解码端需要根据上下文模型,对普通融合模式的索引值进行编码或解码,则采用上下文模型G4对普通融合模式的索引值(如普通融合模式的索引值的第1个二进制位)进行编码或解码。
实施例17:针对编码端来说,可以先对三角子块的划分信息进行编码,然后,对第一索引值和第二索引值进行编码。针对解码端来说,可以先对三角子块的划分信息进行解码,然后,对第一索引值和第二索引值进行解码。或者,针对编码端来说,可以先对第一索引值和第二索引值进行编码,然后,对三角子块的划分信息进行编码。针对解码端来说,可以先对第一索引值和第二索引值进行解码,然后,对三角子块的划分信息进行解码。
实施例18:在步骤305和步骤405中,编码端/解码端需要根据第一目标运动信息对第一三角子块进行运动补偿,得到第一三角子块的预测值,根据第二目标运动信息对第二三角子块进行运动补偿,得到第二三角子块的预测值,上述过程也就是运动补偿过程。
示例性的,可以将当前块划分为多个子块,针对每个子块,若所述子块位于第一三角子块内,则根据第一目标运动信息对所述子块进行运动补偿;若所述子块位于第二三角子块内,则根据第二目标运动信息对所述子块进行运动补偿;若所述子块同时位于第一三角子块和第二三角子块内,则根据第一目标运动信息和第二目标运动信息对所述子块进行加权补偿(也可被称为加权预测补偿)。
示例性的,可以将当前块划分为第一区域子块、第二区域子块和第三区域子块;第一区域子块位于第一三角子块内,第二区域子块位于第二三角子块内,第三区域子块内的每个子块的中心与划分第一三角子块和第二三角子块的对角线的垂直距离小于预设阈值;根据第一目标运动信息对第一区域子块进行运动补偿;根据第二目标运动信息对第二区域子块进行运动补偿;根据第一目标运动信息和第二目标运动信息对第三区域子块进行加权补偿。例如,针对第三区域子块内的每个子块,根据第一目标运动信息确定所述子块的第一预测值;根据第二目标运动信息确定所述子块的第二预测值;根据第一预测值、第一预测值对应的第一权重系数、第二预测值、第二预测值对应的第二权重系数对所述子块进行加权补偿。例如,若所述子块位于第一三角子块内,则第一权重系数大于第二权重系数;若所述子块位于第二三角子块内,则第一权重系数小于第二权重系数;若所述子块位于对角线,则第一权重系数等于第二权重系数。其中,所述子块位于对角线是指所述子块的中心落在对角线上。
参见图7D所示,针对Z1区域的子块(即第一区域子块),Z1区域的子块位于第一三角子块内,利用第一三角子块的第一目标运动信息对Z1区域的子块进行运动补偿,得到预测值,对此运动补偿过程不做限制。针对Z2区域的子块(即第二区域子块),Z2区域的子块位于第二三角子块内,利用第二三角子块的第二目标运动信息对Z2区域的子块进行运动补偿,得到预测值,对此运动补偿过程不做限制。针对Z1区域和Z2区域之外的其它区域的子块(即第三区域子块),包括标记为1的子块(记为子块1),标记为2的子块(记为子块2),标记为3的子块(记为子块3),标记为4的子块(记为子块4),标记为5的子块(记为子块5),标记为6的子块(记为子块6),标记为7的子块(记为子块7)。
针对标记为7的每个子块7,可以根据第一目标运动信息确定子块7的预测值P 1,根据第二目标运动信息确定子块7的预测值P 2,假设预测值P 1的第一权重系数为a,预测值P 2的第二权重系数为b,则对子块7进行加权补偿,加权补偿后的预测值可以为:P 1*a+P 2*b。由于子块7位于第一三角子块内,因此,第一权重系数a大于第二权重系数b,假设a为7/8,b为1/8,则加权补偿后的预测值为P 1*7/8+P 2*1/8。
针对标记为6的每个子块6,其处理过程参见子块7,在此不再赘述。由于子块6位于第一三角子块内,因此,第一权重系数a大于第二权重系数b,又由于与子块7相比,子块6更靠近P 2区域,因此,子块6的第一权重系数a可以小于子块7的第一权重系数a,如子块6的第一权重系数a为6/8,b为2/8,则加权补偿后的预测值为P 1*6/8+P 2*2/8。
针对标记为5的每个子块5,其处理过程参见子块7,在此不再赘述。子块5的第一权重系数a为5/8,子块5的第二权重系数b为3/8,则加权补偿后的预测值为P 1*5/8+P 2*3/8。
针对标记为4的每个子块4,其处理过程参见子块7,在此不再赘述。由于子块4位于对角线,因此,第一权重系数a可以等于第二权重系数b,如子块4的第一权重系数a为4/8,子块4的第二权重系数b为4/8,则加权补偿后 的预测值为P 1*4/8+P 2*4/8。
针对标记为3的每个子块3,其处理过程参见子块7,在此不再赘述。子块3的第一权重系数a为3/8,子块3的第二权重系数b为5/8,则加权补偿后的预测值为P 1*3/8+P 2*5/8。
针对标记为2的每个子块2,其处理过程参见子块7,在此不再赘述。由于子块2位于第二三角子块内,因此,第一权重系数a可以小于第二权重系数b,如子块2的第一权重系数a为2/8,子块2的第二权重系数b为6/8,则加权补偿后的预测值为P 1*2/8+P 2*6/8。
针对标记为1的每个子块1,其处理过程参见子块7,在此不再赘述。由于子块1位于第二三角子块内,因此,第一权重系数a小于第二权重系数b。又由于与子块2相比,子块2更靠近P 2区域,因此,子块1的第一权重系数a可以小于子块2的第一权重系数a,如子块1的第一权重系数a为1/8,b为7/8,则加权补偿后的预测值为P 1*1/8+P 2*7/8。
综上所述,本实施例提出一套用于亮度分量的加权系数,从Z1区域到Z2区域的方向,每个子块的第一权重系数a依次为{7/8,6/8,5/8,4/8,3/8,2/8,1/8}。例如,子块7的第一权重系数a为7/8,子块6的第一权重系数a为6/8,子块5的第一权重系数a为5/8,子块4的第一权重系数a为4/8,子块3的第一权重系数a为3/8,子块2的第一权重系数a为2/8,子块1的第一权重系数a为1/8。上述亮度分量是指预测值P 1为亮度预测值,预测值P 2为亮度预测值,且加权补偿后的预测值P 1*a+P 2*b,也为亮度预测值。
参见图7D所示,本实施例还提出一套用于色度分量的加权系数,从Z1区域到Z2区域的方向,每个子块的第一权重系数a依次为{6/8,4/8,2/8}。例如,子块6的第一权重系数a为6/8,子块4的第一权重系数a为4/8,子块2的第一权重系数a为2/8。上述色度分量是指预测值P 1为色度预测值,预测值P 2为色度预测值,且加权补偿后的预测值也为色度预测值。
实施例19:在步骤306和步骤406中,编码端/解码端需要保存当前块的运动信息。针对第一三角子块中采用非加权预测补偿的子块,为该子块存储第一目标运动信息;针对第二三角子块中采用非加权预测补偿的子块,为该子块存储第二目标运动信息;针对采用加权预测补偿的子块,为该子块存储第一目标运动信息、第二目标运动信息或者双向运动信息。
参见图7E所示,假设块2、块3、块4、块7、块8、块12是第一三角子块中采用非加权预测补偿的子块,则可以为块2、块3、块4、块7、块8、块12存储第一目标运动信息(即第一三角子块的第一目标运动信息)。假设块5、块9、块10、块13、块14、块15是第二三角子块中采用非加权预测补偿的子块,则可以为块5、块9、块10、块13、块14、块15存储第二目标运动信息(即第二三角子块的第二目标运动信息)。假设块1、块6、块11、块16是采用加权预测补偿的子块,则可以为块1、块6、块11、块16存储第一目标运动信息、第二目标运动信息或者双向运动信息,具体存储方式可以参见后续实施例。
参见图7F所示,假设块1、块2、块3、块5、块6、块9是第一三角子块中采用非加权预测补偿的子块,则可以为块1、块2、块3、块5、块6、块9存储第一目标运动信息(即第一三角子块的第一目标运动信息)。假设块8、块11、块12、块14、块15、块16是第二三角子块中采用非加权预测补偿的子块,则可以为块8、块11、块12、块14、块15、块16存储第二目标运动信息(即第二三角子块的第二目标运动信息)。假设块4、块7、块10、块13是采用加权预测补偿的子块,则可以为块4、块7、块10、块13存储第一目标运动信息、第二目标运动信息或者双向运动信息,具体存储方式可以参见后续实施例。
示例性的,可以为每个4*4大小的子块存储运动信息,当然,对子块的大小不做限制。
实施例20:针对第一三角子块中采用非加权预测补偿的子块,为该子块存储第一目标运动信息;针对第二三角子块中采用非加权预测补偿的子块,为该子块存储第二目标运动信息;针对采用加权预测补偿的子块,为该子块存储第一目标运动信息或者第二目标运动信息。
应用场景1:针对采用加权预测补偿的子块,为子块直接存储第一目标运动信息。
应用场景2:针对采用加权预测补偿的子块,为子块直接存储第二目标运动信息。
应用场景3:针对采用加权预测补偿的子块,根据当前块的划分方向(如主对角线方向或者副对角线方向)为子块存储第一目标运动信息或者第二目标运动信息。
示例性的,若当前块的划分方向为副对角线方向(与水平向右方向呈135度夹角),则为子块存储第一目标运动信息。若当前块的划分方向为主对角线方向(与水平向右方向呈45度夹角),则为子块存储第二目标运动信息。或者,若当前块的划分方向为副对角线方向(与水平向右方向呈135度夹角),则为子块存储第二目标运动信息。若当前块的划分方向为主对角线方向(与水平向右方向呈45度夹角),则为子块存储第一目标运动信息。
应用场景4:针对采用加权预测补偿的子块,根据子块的位置(如子块在对角线上、对角线上方、对角线下方等)为子块存储第一目标运动信息或者第二目标运动信息。
示例性的,若子块在对角线上或者在对角线上方,则为子块存储第一目标运动信息;若子块在对角线下方,则为子块存储第二目标运动信息。或,若子块在对角线上或者在对角线下方,则为子块存储第二目标运动信息;若子块在对角线上方,则为子块存储第一目标运动信息。或,若子块在对角线上或者在对角线上方,则为子块存储第二目标运动信息;若子块在对角线下方,则为子块存储第一目标运动信息。或,若子块在对角线上或者在对角线下方,则为子块存储第一目标运动信息;若子块在对角线上方,则为子块存储第二目标运动信息。
应用场景5:针对采用加权预测补偿的子块,可以根据子块的位置(例如,子块在对角线上、对角线上方、对角线下方等)和当前块的划分方向(例如,主对角线方向或者副对角线方向),为所述子块存储第一目标运动信息或者第二目标运动信息。
示例性的,若子块在对角线上,则可以基于当前块的划分方向,为所述子块存储第一目标运动信息或者第二目标运动信息。例如,若当前块的划分方向为副对角线方向,则为所述子块存储第一目标运动信息。若当前块的划分方向为主对角线方向,则为所述子块存储第二目标运动信息。或者,若当前块的划分方向为副对角线方向,则为所述子块存储第二目标运动信息。若当前块的划分方向为主对角线方向,则为所述子块存储第一目标运动信息。
示例性的,若子块在对角线上方,则为所述子块存储第一目标运动信息。
示例性的,若子块在对角线下方,则为所述子块存储第二目标运动信息。
实施例21:针对第一三角子块中采用非加权预测补偿的子块,为该子块存储第一目标运动信息;针对第二三角子块中采用非加权预测补偿的子块,为该子块存储第二目标运动信息;针对采用加权预测补偿的子块,为该子块存储第一目标运动信息、第二目标运动信息或者双向运动信息(即第一目标运动信息和第二目标运动信息组成的双向运动信息)。
应用场景1:针对采用加权预测补偿的子块,若第一目标运动信息和第二目标运动信息来自不同的list,则直接将第一目标运动信息和第二目标运动信息合并为双向运动信息,为子块存储双向运动信息(即第一目标运动信息和第二目标运动信息组成的双向运动信息)。若第一目标运动信息和第二目标运动信息来自相同的list,则为子块存储第一目标运动信息。
应用场景2:针对采用加权预测补偿的子块,若第一目标运动信息和第二目标运动信息来自不同的list,则直接将第一目标运动信息和第二目标运动信息合并为双向运动信息,为子块存储双向运动信息(即第一目标运动信息和第二目标运动信息组成的双向运动信息)。若第一目标运动信息和第二目标运动信息来自相同的list,则为子块存储第二目标运动信息。
应用场景3:针对采用加权预测补偿的子块,若第一目标运动信息和第二目标运动信息来自不同的list,则直接将第一目标运动信息和第二目标运动信息合并为双向运动信息,为子块存储双向运动信息(即第一目标运动信息和第二目标运动信息组成的双向运动信息)。若第一目标运动信息和第二目标运动信息来自相同的list,则根据当前块的划分方向(如主对角线方向或者副对角线方向)为子块存储第一目标运动信息或者第二目标运动信息。
示例性的,若当前块的划分方向为副对角线方向,则可以为所述子块存储第一目标运动信息。若当前块的划分方向为主对角线方向,则可以为所述子块存储第二目标运动信息。或者,若当前块的划分方向为副对角线方向,则可以为所述子块存储第二目标运动信息。若当前块的划分方向为主对角线方向,则可以为所述子块存储第一目标运动信息。
应用场景4:针对采用加权预测补偿的子块,若第一目标运动信息和第二目标运动信息来自不同的list,则直接将第一目标运动信息和第二目标运动信息合并为双向运动信息,为子块存储双向运动信息(即第一目标运动信息和第二目标运动信息组成的双向运动信息)。若第一目标运动信息和第二目标运动信息来自相同的list,则根据子块的位置(如子块在对角线上、对角线上方、对角线下方等)为子块存储第一目标运动信息或者第二目标运动信息。
示例性的,若子块在对角线上或者在对角线上方,则为子块存储第一目标运动信息;若子块在对角线下方,则为子块存储第二目标运动信息。或,若子块在对角线上或者在对角线下方,则为子块存储第二目标运动信息;若子块在对角线上方,则为子块存储第一目标运动信息。或,若子块在对角线上或者在对角线上方,则为子块存储第二目标运动信息;若子块在对角线下方,则为子块存储第一目标运动信息。或,若子块在对角线上或者在对角线下方,则为子块存储第一目标运动信息;若子块在对角线上方,则为子块存储第二目标运动信息。
应用场景5:针对采用加权预测补偿的子块,若第一目标运动信息和第二目标运动信息来自不同的list,则直接将第一目标运动信息和第二目标运动信息合并为双向运动信息,为子块存储双向运动信息(即第一目标运动信息和第二目标运动信息组成的双向运动信息)。若第一目标运动信息和第二目标运动信息来自相同的list,则根据子块的位置(例如,子块在对角线上、对角线上方、对角线下方等)和当前块的划分方向(例如,主对角线方向或者副对角线方向),为所述子块存储第一目标运动信息或者第二目标运动信息。
示例性的,若子块在对角线上,则可以基于当前块的划分方向,为所述子块存储第一目标运动信息或者第二目标运动信息。例如,若当前块的划分方向为副对角线方向,则为所述子块存储第一目标运动信息。若当前块的划分方向为主对角线方向,则为所述子块存储第二目标运动信息。或者,若当前块的划分方向为副对角线方向,则为所述子块存储第二目标运动信息。若当前块的划分方向为主对角线方向,则为所述子块存储第一目标运动信息。
示例性的,若子块在对角线上方,则为所述子块存储第一目标运动信息。
示例性的,若子块在对角线下方,则为所述子块存储第二目标运动信息。
应用场景6:针对采用加权预测补偿的子块,若第一目标运动信息和第二目标运动信息来自不同的list,则直接将第一目标运动信息和第二目标运动信息合并为双向运动信息,为子块存储双向运动信息(即第一目标运动信息和第二目标运动信息组成的双向运动信息)。若第一目标运动信息和第二目标运动信息来自相同的list,则为子块存储第一目标运动信息与第二目标运动信息的均值。例如,若第一目标运动信息对应的list的参考帧与第二目标运动信息对应的list的参考帧相同,则为子块存储第一目标运动信息与第二目标运动信息的均值。
示例性的,第一目标运动信息与第二目标运动信息的均值,可以包括:第一目标运动信息与第二目标运动信息的平均值,例如,第一目标运动信息中的运动矢量与第二目标运动信息中的运动矢量的平均值,也就是说,二者的权重可以相同。或者,第一目标运动信息与第二目标运动信息的加权平均值,例如,第一目标运动信息中的运动矢量与第二目标运动信息中的运动矢量的加权平均值,也就是说,二者的权重可以不同。
示例性的,若第一目标运动信息对应的list的参考帧与第二目标运动信息对应的list的参考帧相同,则为子块存储第一目标运动信息与第二目标运动信息的均值。若第一目标运动信息对应的list的参考帧与第二目标运动信息对应的list的参考帧不同,则根据当前块的划分方向(如主对角线方向或者副对角线方向)为子块存储第一目标运动信息或者第二目标运动信息。
例如,若当前块的划分方向为副对角线方向,则可以为所述子块存储第一目标运动信息。若当前块的划分方向为主对角线方向,则可以为所述子块存储第二目标运动信息。或者,若当前块的划分方向为副对角线方向,则可以为所述子块存储第二目标运动信息。若当前块的划分方向为主对角线方向,则可以为所述子块存储第一目标运动信息。
应用场景7:针对采用加权预测补偿的子块,若第一目标运动信息和第二目标运动信息来自不同的list,则直接将第一目标运动信息和第二目标运动信息合并为双向运动信息,为子块存储双向运动信息。若第一目标运动信息和第二目标运动信息来自相同的list,则可以根据当前块的尺寸信息,为子块存储第一目标运动信息或第二目标运动信息。
示例性的,若当前块的宽度值与当前块的高度值相等,根据当前块的划分方向为子块存储第一目标运动信息或 者第二目标运动信息。例如,若划分方向为副对角线方向,则可以为所述子块存储第一目标运动信息。若划分方向为主对角线方向,则可以为所述子块存储第二目标运动信息。或者,若划分方向为副对角线方向,则可以为所述子块存储第二目标运动信息。若划分方向为主对角线方向,则可以为所述子块存储第一目标运动信息。
示例性的,若当前块的宽度值与高度值不等,则基于宽高关系为子块存储第一目标运动信息或第二目标运动信息。例如,若当前块的高度值大于当前块的宽度值,则为子块存储第一目标运动信息;若当前块的高度值小于当前块的宽度值,则为子块存储第二目标运动信息。
应用场景8:针对采用加权预测补偿的子块,可以存储双向运动信息,该双向运动信息通过如下规则推导:若第一目标运动信息和第二目标运动信息来自不同的list,则直接将第一目标运动信息和第二目标运动信息合并为双向运动信息,为子块存储双向运动信息。否则,若第一目标运动信息和第二目标运动信息均来自一个list,记为ListX(X=0/1),则:
若第二目标运动信息的参考帧与List(1-X)的某个参考帧一样,则将第二目标运动信息缩放到该参考帧,利用第一目标运动信息和缩放后的第二目标运动信息合成双向运动信息。
若第一目标运动信息的参考帧与List(1-X)的某个参考帧一样,则将第一目标运动信息缩放到该参考帧,利用第二目标运动信息和缩放后的第一目标运动信息合成双向运动信息。
否则,这些采用加权预测补偿的子块只存储第一目标运动信息。
实施例22:
基于与上述方法同样的申请构思,本申请实施例还提出一种编解码装置,应用于编码端或者解码端,如图8所示,为所述装置的结构图,所述装置可以包括:
划分模块81,用于若当前块的特征信息满足特定条件,则将所述当前块划分为第一三角子块和第二三角子块;构建模块82,用于为所述当前块构建运动信息列表,所述运动信息列表包括多个候选运动信息;获取模块83,用于从所述运动信息列表中获取所述第一三角子块的第一目标运动信息以及所述第二三角子块的第二目标运动信息;所述第一目标运动信息与所述第二目标运动信息不同;编解码模块84,用于根据所述第一目标运动信息对所述第一三角子块进行运动补偿,得到所述第一三角子块的预测值;根据所述第二目标运动信息对所述第二三角子块进行运动补偿,得到所述第二三角子块的预测值。
示例性的,所述特征信息包括以下一种或多种:运动信息模式、尺寸信息、帧类型、序列级开关控制信息。
所述划分模块81还用于:若所述特征信息包括所述运动信息模式,所述运动信息模式满足如下情况的至少一种时,则确定所述运动信息模式满足特定条件;
所述当前块的运动信息模式为融合模式或者跳过模式;
所述当前块的运动信息模式为融合模式或者跳过模式,且所述当前块的运动信息模式不为除三角预测子模式之外的其它类型的融合子模式或跳过子模式;
所述当前块的运动信息模式为融合模式,且所述当前块的运动信息模式不为普通融合子模式、MMVD子模式、SB融合子模式、CIIP子模式中的任意一种子模式;
所述当前块的运动信息模式为跳过模式,且所述当前块的运动信息模式不为普通融合子模式、MMVD子模式、SB融合子模式中的任意一种子模式。
所述划分模块81还用于:若所述特征信息包括所述帧类型,所述帧类型满足如下情况的至少一种时,则确定所述帧类型满足特定条件;
所述帧类型为所述当前块所在当前帧为B帧;
所述帧类型为所述当前块所在当前帧允许帧内块拷贝。
所述划分模块81还用于:若所述特征信息包括所述序列级开关控制信息,所述序列级开关控制信息为允许所述当前块采用三角预测模式,则确定所述序列级开关控制信息满足特定条件。
所述划分模块81还用于:若所述特征信息包括所述尺寸信息,所述尺寸信息满足如下情况的至少一种时,则确定所述尺寸信息满足特定条件;
所述当前块的宽度值大于或等于第一阈值,所述当前块的宽度值小于或等于第二阈值;
所述当前块的高度值大于或等于第三阈值,所述当前块的高度值小于或等于第四阈值;
所述当前块的面积值大于或等于第五阈值,所述当前块的面积值小于或等于第六阈值;
所述当前块的面积值大于或者等于第七阈值;
所述当前块的面积值小于或者等于第八阈值;
所述当前块的宽度值小于或等于第九阈值,所述当前块的高度值小于或等于第十阈值。
若所述编解码装置应用于解码端,所述划分模块81将所述当前块划分为第一三角子块和第二三角子块时具体用于:从编码比特流获取第一指示信息,所述第一指示信息用于指示三角子块的划分信息;若所述三角子块的划分信息为主对角线划分方式,则按照所述当前块的主对角线将所述当前块划分为第一三角子块和第二三角子块;若所述三角子块的划分信息为副对角线划分方式,则按照所述当前块的副对角线将所述当前块划分为第一三角子块和第二三角子块。
示例性的,所述第一指示信息,基于旁路的二进制算术解码得到;或者,所述第一指示信息,基于上下文模型进行基于上下文的自适应二进制算术解码得到。
所述构建模块82为所述当前块构建运动信息列表时具体用于:
复用常规融合模式的运动信息列表构建方式,为所述当前块构建运动信息列表。
若所述编解码装置应用于解码端,所述获取模块83从所述运动信息列表中获取所述第一三角子块的第一目标运动信息以及所述第二三角子块的第二目标运动信息时具体用于:
从编码比特流获取第二指示信息,所述第二指示信息用于指示第一目标运动信息在运动信息列表中的第一索引值、第二目标运动信息在运动信息列表中的第二索引值;
基于所述第二指示信息,从所述运动信息列表中获取与所述第一索引值对应的候选运动信息,并将获取的与所 述第一索引值对应的候选运动信息确定为所述第一三角子块的第一目标运动信息;
基于所述第二指示信息,从所述运动信息列表中获取与所述第二索引值对应的候选运动信息,并将获取的与所述第二索引值对应的候选运动信息确定为所述第二三角子块的第二目标运动信息。
所述第一索引值基于旁路的二进制算术解码得到,或者,所述第一索引值基于上下文模型进行基于上下文的自适应二进制算术解码得到;所述第二索引值基于旁路的二进制算术解码得到,或者,所述第二索引值基于上下文模型进行基于上下文的自适应二进制算术解码得到。
所述第一索引值包括M1个二进制位,所述M1个二进制位中的N1个二进制位,基于上下文模型进行基于上下文的自适应二进制算术解码得到,所述M1个二进制位中的剩余(M1-N1)个二进制位,基于旁路的二进制算术解码得到;所述M1为大于或者等于1的正整数,所述N1为大于或者等于1的正整数,所述M1大于或者等于所述N1;
所述第二索引值包括M2个二进制位,所述M2个二进制位中的N2个二进制位,基于上下文模型进行基于上下文的自适应二进制算术解码得到,所述M2个二进制位中的剩余(M2-N2)个二进制位,基于旁路的二进制算术解码得到;所述M2为大于或者等于1的正整数,所述N2为大于或者等于1的正整数,所述M2大于或者等于所述N2。
所述第一索引值对应的上下文模型与所述第二索引值对应的上下文模型相同;或者,所述第一索引值对应的上下文模型与所述第二索引值对应的上下文模型不同。
所述获取模块83从所述运动信息列表中获取与所述第一索引值对应的候选运动信息,并将获取的与所述第一索引值对应的候选运动信息确定为所述第一三角子块的第一目标运动信息时具体用于:
若所述第一索引值为偶数,与所述第一索引值对应的候选运动信息包括list0中的单向运动信息,则将list0中的单向运动信息确定为所述第一三角子块的第一目标运动信息;
若所述第一索引值为偶数,与所述第一索引值对应的候选运动信息不包括list0中的单向运动信息,则将list1中的单向运动信息确定为所述第一三角子块的第一目标运动信息;
若所述第一索引值为奇数,与所述第一索引值对应的候选运动信息包括list1中的单向运动信息,则将list1中的单向运动信息确定为所述第一三角子块的第一目标运动信息;
若所述第一索引值为奇数,与所述第一索引值对应的候选运动信息不包括list1中的单向运动信息,则将list0中的单向运动信息确定为所述第一三角子块的第一目标运动信息;
所述从所述运动信息列表中获取与所述第二索引值对应的候选运动信息,并将获取的与所述第二索引值对应的候选运动信息确定为所述第二三角子块的第二目标运动信息,包括:
若所述第二索引值为偶数,与所述第二索引值对应的候选运动信息包括list0中的单向运动信息,则将list0中的单向运动信息确定为所述第二三角子块的第二目标运动信息;
若所述第二索引值为偶数,与所述第二索引值对应的候选运动信息不包括list0中的单向运动信息,则将list1中的单向运动信息确定为所述第二三角子块的第二目标运动信息;
若所述第二索引值为奇数,与所述第二索引值对应的候选运动信息包括list1中的单向运动信息,则将list1中的单向运动信息确定为所述第二三角子块的第二目标运动信息;
若所述第二索引值为奇数,与所述第二索引值对应的候选运动信息不包括list1中的单向运动信息,则将list0中的单向运动信息确定为所述第二三角子块的第二目标运动信息。
所述获取模块83还用于:获取第一候选集合和第二候选集合,所述第一候选集合包括所述运动信息列表中的部分候选运动信息,所述第二候选集合包括所述运动信息列表中的部分候选运动信息,所述第一候选集合中的候选运动信息与所述第二候选集合中的候选运动信息不完全相同;从所述第一候选集合中获取与所述第一索引值对应的候选运动信息,并将获取的与所述第一索引值对应的候选运动信息确定为所述第一三角子块的第一目标运动信息;
从所述第二候选集合中获取与所述第二索引值对应的候选运动信息,并将获取的与所述第二索引值对应的候选运动信息确定为所述第二三角子块的第二目标运动信息。
所述装置还包括:存储模块,用于针对第一三角子块中采用非加权预测补偿的子块,为所述子块存储第一目标运动信息;针对第二三角子块中采用非加权预测补偿的子块,为所述子块存储第二目标运动信息;针对采用加权预测补偿的子块,为所述子块存储第一目标运动信息、第二目标运动信息或者双向运动信息。
所述存储模块针对采用加权预测补偿的子块,为所述子块存储第一目标运动信息、第二目标运动信息或者双向运动信息时具体用于:
为所述子块存储第一目标运动信息;或者,
为所述子块存储第二目标运动信息;或者,
根据所述子块的位置为所述子块存储第一目标运动信息或第二目标运动信息;或者,
根据当前块的划分方向为所述子块存储第一目标运动信息或第二目标运动信息;或者,
根据所述子块的位置和所述当前块的划分方向,为所述子块存储第一目标运动信息或第二目标运动信息。
所述存储模块针对采用加权预测补偿的子块,为所述子块存储第一目标运动信息、第二目标运动信息或者双向运动信息时具体用于:
若所述第一目标运动信息和所述第二目标运动信息来自不同的list,则将所述第一目标运动信息和所述第二目标运动信息合并为双向运动信息,并为所述子块存储所述双向运动信息;
若所述第一目标运动信息和所述第二目标运动信息来自相同的list,则为所述子块存储所述第一目标运动信息,或者,为所述子块存储所述第二目标运动信息。
所述存储模块为所述子块存储所述第一目标运动信息,或者,为所述子块存储所述第二目标运动信息时具体用于:为所述子块存储所述第一目标运动信息;或者,
为所述子块存储所述第二目标运动信息;或者,
根据所述子块的位置为所述子块存储第一目标运动信息或第二目标运动信息;或者,
根据当前块的划分方向为所述子块存储第一目标运动信息或第二目标运动信息;或者,
根据所述子块的位置和所述当前块的划分方向,为所述子块存储第一目标运动信息或第二目标运动信息;或者,
为所述子块存储第一目标运动信息与第二目标运动信息均值;或者,
根据所述当前块的尺寸信息,为所述子块存储第一目标运动信息或第二目标运动信息。
本申请实施例提供的解码端设备,从硬件层面而言,其硬件架构示意图具体可以参见图9A所示。包括:处理器91和机器可读存储介质92,其中:所述机器可读存储介质92存储有能够被所述处理器91执行的机器可执行指令;所述处理器91用于执行机器可执行指令,以实现本申请上述示例公开的方法。例如,所述处理器91用于执行机器可执行指令,以实现如下步骤:若当前块的特征信息满足特定条件,将所述当前块划分为第一三角子块和第二三角子块;为所述当前块构建运动信息列表,所述运动信息列表包括多个候选运动信息;从所述运动信息列表中获取所述第一三角子块的第一目标运动信息以及所述第二三角子块的第二目标运动信息;所述第一目标运动信息与所述第二目标运动信息不同;根据所述第一目标运动信息对所述第一三角子块进行运动补偿,得到所述第一三角子块的预测值;根据所述第二目标运动信息对所述第二三角子块进行运动补偿,得到所述第二三角子块的预测值。
本申请实施例提供的编码端设备,从硬件层面而言,其硬件架构示意图具体可以参见图9B所示。包括:处理器93和机器可读存储介质94,其中:所述机器可读存储介质94存储有能够被所述处理器93执行的机器可执行指令;所述处理器93用于执行机器可执行指令,以实现本申请上述示例公开的方法。例如,所述处理器93用于执行机器可执行指令,以实现如下步骤:若当前块的特征信息满足特定条件,将所述当前块划分为第一三角子块和第二三角子块;为所述当前块构建运动信息列表,所述运动信息列表包括多个候选运动信息;从所述运动信息列表中获取所述第一三角子块的第一目标运动信息以及所述第二三角子块的第二目标运动信息;所述第一目标运动信息与所述第二目标运动信息不同;根据所述第一目标运动信息对所述第一三角子块进行运动补偿,得到所述第一三角子块的预测值;根据所述第二目标运动信息对所述第二三角子块进行运动补偿,得到所述第二三角子块的预测值。
基于与上述方法同样的申请构思,本申请实施例还提出一种编解码装置,应用于编码端或者解码端,所述装置可以包括:获取模块,用于获取第一目标运动信息和第二目标运动信息;其中,所述第一目标运动信息是当前块按照划分线划分的第一子块的目标运动信息,所述第二目标运动信息是当前块按照划分线划分的第二子块的目标运动信息;确定模块,用于根据划分线,所述第一子块和所述第二子块,确定当前块包括的第一区域,第二区域和第三区域,所述第一区域位于所述第一子块内,所述第二区域位于所述第二子块内,所述划分线位于所述第三区域内,且所述第三区域与所述第一子块和所述第二子块均存在交叠区域;存储模块,用于将所述第二目标运动信息存储为所述第三区域的目标运动信息;
其中,所述第二子块为所述当前块按照划分线划分的两个子块中位置靠下的子块。
所述存储模块具体用于:若所述第一目标运动信息和所述第二目标运动信息来自相同的参考帧列表,则将所述第二目标运动信息存储为所述第三区域的目标运动信息。
所述第一子块和所述第二子块是按照对角线划分的两个三角子块。
针对第三区域内的每个子块,所述子块的中心到所述划分线的垂直距离小于预设阈值。
所述装置还包括:运动补偿模块,用于根据第一目标运动信息对所述第一区域内的每个子块进行运动补偿,得到所述第一区域内的每个子块的预测值;根据第二目标运动信息对所述第二区域内的每个子块进行运动补偿,得到所述第二区域内的每个子块的预测值;根据第一目标运动信息和第二目标运动信息对所述第三区域内的每个子块进行加权补偿,得到所述第三区域内的每个子块的预测值;根据所述第一区域内的每个子块的预测值,所述第二区域内的每个子块的预测值和所述第三区域内的每个子块的预测值,确定所述当前块的预测值。
所述运动补偿模块根据所述第一目标运动信息和所述第二目标运动信息对所述第三区域内的每个子块进行加权补偿,得到所述第三区域内的每个子块的预测值时具体用于:
针对所述第三区域内的每个子块,根据所述第一目标运动信息确定该子块的第一预测值,并根据所述第二目标运动信息确定该子块的第二预测值;
根据所述第一预测值,所述第一预测值对应的第一权重系数,所述第二预测值,所述第二预测值对应的第二权重系数对该子块进行加权补偿,得到该子块的预测值。
若所述第三区域内的子块位于所述第一子块内,则该子块的第一预测值对应的第一权重系数大于该子块的第二预测值对应的第二权重系数;
若所述第三区域内的子块位于所述第二子块内,则该子块的第一预测值对应的第一权重系数小于该子块的第二预测值对应的第二权重系数;
若所述第三区域内的子块位于划分线,则该子块的第一预测值对应的第一权重系数等于该子块的第二预测值对应的第二权重系数。
所述获取模块获取第一目标运动信息和第二目标运动信息时具体用于:为所述当前块构建运动信息列表,所述运动信息列表包括多个候选运动信息;从所述运动信息列表中获取所述第一子块的第一目标运动信息以及所述第二子块的第二目标运动信息。
所述存储模块还用于:将所述第一目标运动信息存储为所述第一区域的目标运动信息;
将所述第二目标运动信息存储为所述第二区域的目标运动信息。
基于与上述方法同样的申请构思,本申请实施例还提出一种编码端设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现如下步骤:
获取第一目标运动信息和第二目标运动信息;其中,所述第一目标运动信息是当前块按照划分线划分的第一子块的目标运动信息,所述第二目标运动信息是当前块按照划分线划分的第二子块的目标运动信息;根据划分线,所述第一子块和所述第二子块,确定当前块包括的第一区域,第二区域和第三区域,所述第一区域位于所述第一子块内,所述第二区域位于所述第二子块内,所述划分线位于所述第三区域内,且所述第三区域与所述第一子块和所述第二子块均存在交叠区域;将所述第二目标运动信息存储为所述第三区域的目标运动信息;其中,所述第二子块为所述当前块按照划分线划分的两个子块中位置靠下的子块。
基于与上述方法同样的申请构思,本申请实施例还提出一种解码端设备,包括:处理器和机器可读存储介质, 所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现如下步骤:
获取第一目标运动信息和第二目标运动信息;其中,所述第一目标运动信息是当前块按照划分线划分的第一子块的目标运动信息,所述第二目标运动信息是当前块按照划分线划分的第二子块的目标运动信息;根据划分线,所述第一子块和所述第二子块,确定当前块包括的第一区域,第二区域和第三区域,所述第一区域位于所述第一子块内,所述第二区域位于所述第二子块内,所述划分线位于所述第三区域内,且所述第三区域与所述第一子块和所述第二子块均存在交叠区域;将所述第二目标运动信息存储为所述第三区域的目标运动信息;其中,所述第二子块为所述当前块按照划分线划分的两个子块中位置靠下的子块。
基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本申请上述示例公开的编解码方法。其中,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的系统、装置、模块或单元,可以由计算机芯片或实体实现,或由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (20)

  1. 一种编解码方法,包括:
    获取第一目标运动信息和第二目标运动信息;其中,所述第一目标运动信息是当前块按照划分线划分的第一子块的目标运动信息,所述第二目标运动信息是当前块按照划分线划分的第二子块的目标运动信息;
    根据划分线,所述第一子块和所述第二子块,确定当前块包括的第一区域,第二区域和第三区域,所述第一区域位于所述第一子块内,所述第二区域位于所述第二子块内,所述划分线位于所述第三区域内,且所述第三区域与所述第一子块和所述第二子块均存在交叠区域;
    将所述第二目标运动信息存储为所述第三区域的目标运动信息;
    其中,所述第二子块为所述当前块按照划分线划分的两个子块中位置靠下的子块。
  2. 根据权利要求1所述的方法,其特征在于,所述将所述第二目标运动信息存储为所述第三区域的目标运动信息,包括:
    若所述第一目标运动信息和所述第二目标运动信息来自相同的参考帧列表,则将所述第二目标运动信息存储为所述第三区域的目标运动信息。
  3. 根据权利要求1或2所述的方法,其特征在于,
    所述第一子块和所述第二子块是按照对角线划分的两个三角子块。
  4. 根据权利要求1或2所述的方法,其特征在于,针对所述第三区域内的每个子块,所述子块的中心到所述划分线的垂直距离小于预设阈值。
  5. 根据权利要求1-4任一项所述的方法,其特征在于,所述根据划分线,所述第一子块和所述第二子块,确定当前块包括的第一区域,第二区域和第三区域之后,还包括:
    根据所述第一目标运动信息对所述第一区域内的每个子块进行运动补偿,得到所述第一区域内的每个子块的预测值;
    根据所述第二目标运动信息对所述第二区域内的每个子块进行运动补偿,得到所述第二区域内的每个子块的预测值;
    根据所述第一目标运动信息和所述第二目标运动信息对所述第三区域内的每个子块进行加权补偿,得到所述第三区域内的每个子块的预测值;
    根据所述第一区域内的每个子块的预测值,所述第二区域内的每个子块的预测值和所述第三区域内的每个子块的预测值,确定所述当前块的预测值。
  6. 根据权利要求5所述的方法,其特征在于,所述根据所述第一目标运动信息和所述第二目标运动信息对所述第三区域内的每个子块进行加权补偿,得到所述第三区域内的每个子块的预测值,包括:
    针对所述第三区域内的每个子块,根据所述第一目标运动信息确定该子块的第一预测值,并根据所述第二目标运动信息确定该子块的第二预测值;
    根据所述第一预测值,所述第一预测值对应的第一权重系数,所述第二预测值,所述第二预测值对应的第二权重系数对该子块进行加权补偿,得到该子块的预测值。
  7. 根据权利要求6所述的方法,其特征在于,
    若所述第三区域内的子块位于所述第一子块内,则该子块的第一预测值对应的第一权重系数大于该子块的第二预测值对应的第二权重系数;
    若所述第三区域内的子块位于所述第二子块内,则该子块的第一预测值对应的第一权重系数小于该子块的第二预测值对应的第二权重系数;
    若所述第三区域内的子块位于划分线,则该子块的第一预测值对应的第一权重系数等于该子块的第二预测值对应的第二权重系数。
  8. 根据权利要求1所述的方法,其特征在于,所述获取第一目标运动信息和第二目标运动信息,包括:
    为所述当前块构建运动信息列表,所述运动信息列表包括多个候选运动信息;
    从所述运动信息列表中获取所述第一子块的第一目标运动信息以及所述第二子块的第二目标运动信息。
  9. 根据权利要求1所述的方法,其特征在于,所述根据划分线,所述第一子块和所述第二子块,确定当前块包括的第一区域,第二区域和第三区域之后,所述方法还包括:
    将所述第一目标运动信息存储为所述第一区域的目标运动信息;
    将所述第二目标运动信息存储为所述第二区域的目标运动信息。
  10. 一种编解码装置,包括:
    获取模块,用于获取第一目标运动信息和第二目标运动信息;其中,所述第一目标运动信息是当前块按照划分线划分的第一子块的目标运动信息,所述第二目标运动信息是当前块按照划分线划分的第二子块的目标运动信息;
    确定模块,用于根据划分线,所述第一子块和所述第二子块,确定当前块包括的第一区域,第二区域和第三区域,所述第一区域位于所述第一子块内,所述第二区域位于所述第二子块内,所述划分线位于所述第三区域内,且所述第三区域与所述第一子块和所述第二子块均存在交叠区域;
    存储模块,用于将所述第二目标运动信息存储为所述第三区域的目标运动信息;
    其中,所述第二子块为所述当前块按照划分线划分的两个子块中位置靠下的子块。
  11. 根据权利要求10所述的装置,其特征在于,所述存储模块用于:
    若所述第一目标运动信息和所述第二目标运动信息来自相同的参考帧列表,则将所述第二目标运动信息存储为所述第三区域的目标运动信息。
  12. 根据权利要求10或11所述的装置,其特征在于,
    所述第一子块和所述第二子块是按照对角线划分的两个三角子块。
  13. 根据权利要求10或11所述的装置,其特征在于,针对所述第三区域内的每个子块,所述子块的中心到所述划分线的垂直距离小于预设阈值。
  14. 根据权利要求10-13任一项所述的装置,其特征在于,所述装置还包括运动补偿模块,所述运动补偿模块用于:
    根据所述第一目标运动信息对所述第一区域内的每个子块进行运动补偿,得到所述第一区域内的每个子块的预测值;
    根据所述第二目标运动信息对所述第二区域内的每个子块进行运动补偿,得到所述第二区域内的每个子块的预测值;
    根据所述第一目标运动信息和所述第二目标运动信息对所述第三区域内的每个子块进行加权补偿,得到所述第三区域内的每个子块的预测值;
    根据所述第一区域内的每个子块的预测值,所述第二区域内的每个子块的预测值和所述第三区域内的每个子块的预测值,确定所述当前块的预测值。
  15. 根据权利要求14所述的装置,其特征在于,所述运动补偿模块根据所述第一目标运动信息和所述第二目标运动信息对所述第三区域内的每个子块进行加权补偿,得到所述第三区域内的每个子块的预测值时用于:
    针对所述第三区域内的每个子块,根据所述第一目标运动信息确定该子块的第一预测值,并根据所述第二目标运动信息确定该子块的第二预测值;
    根据所述第一预测值,所述第一预测值对应的第一权重系数,所述第二预测值,所述第二预测值对应的第二权重系数对该子块进行加权补偿,得到该子块的预测值。
  16. 根据权利要求15所述的装置,其特征在于,
    若所述第三区域内的子块位于所述第一子块内,则该子块的第一预测值对应的第一权重系数大于该子块的第二预测值对应的第二权重系数;
    若所述第三区域内的子块位于所述第二子块内,则该子块的第一预测值对应的第一权重系数小于该子块的第二预测值对应的第二权重系数;
    若所述第三区域内的子块位于划分线,则该子块的第一预测值对应的第一权重系数等于该子块的第二预测值对应的第二权重系数。
  17. 根据权利要求10所述的装置,其特征在于,所述获取模块获取第一目标运动信息和第二目标运动信息时用于:
    为所述当前块构建运动信息列表,所述运动信息列表包括多个候选运动信息;
    从所述运动信息列表中获取所述第一子块的第一目标运动信息以及所述第二子块的第二目标运动信息。
  18. 根据权利要求10所述的装置,其特征在于,所述存储模块还用于:
    将所述第一目标运动信息存储为所述第一区域的目标运动信息;
    将所述第二目标运动信息存储为所述第二区域的目标运动信息。
  19. 一种编码端设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
    所述处理器用于执行机器可执行指令,以实现权利要求1-9任一所述的编解码方法。
  20. 一种解码端设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
    所述处理器用于执行机器可执行指令,以实现权利要求1-9任一所述的编解码方法。
PCT/CN2020/096857 2019-06-24 2020-06-18 一种编解码方法、装置及其设备 Ceased WO2020259388A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910551169.9 2019-06-24
CN201910551169.9A CN112135144B (zh) 2019-06-24 2019-06-24 一种编解码方法、装置及其设备

Publications (1)

Publication Number Publication Date
WO2020259388A1 true WO2020259388A1 (zh) 2020-12-30

Family

ID=70324672

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/CN2020/096649 Ceased WO2020259372A1 (zh) 2019-06-24 2020-06-17 一种编解码方法、装置及其设备
PCT/CN2020/096857 Ceased WO2020259388A1 (zh) 2019-06-24 2020-06-18 一种编解码方法、装置及其设备

Family Applications Before (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/096649 Ceased WO2020259372A1 (zh) 2019-06-24 2020-06-17 一种编解码方法、装置及其设备

Country Status (11)

Country Link
US (1) US12041266B2 (zh)
EP (1) EP3989573B1 (zh)
JP (2) JP7311635B2 (zh)
KR (1) KR102802051B1 (zh)
CN (17) CN113163208B (zh)
ES (1) ES3049652T3 (zh)
FI (1) FI3989573T3 (zh)
MX (1) MX2021015939A (zh)
PH (1) PH12021552965A1 (zh)
PL (1) PL3989573T3 (zh)
WO (2) WO2020259372A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113163208B (zh) 2019-06-24 2022-11-01 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN110312130B (zh) * 2019-06-25 2021-10-15 浙江大华技术股份有限公司 基于三角模式的帧间预测、视频编码方法及设备
CN114710664B (zh) 2019-09-20 2024-10-25 杭州海康威视数字技术股份有限公司 一种解码、编码方法、装置及其设备
CN112104867B (zh) * 2020-11-09 2021-03-02 腾讯科技(深圳)有限公司 一种视频处理方法、视频处理装置、智能设备及存储介质
US20260067467A1 (en) * 2022-08-22 2026-03-05 Hyundai Motor Company Method and apparatus for encoding/decoding image and recording medium for storing bitstream

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104717513A (zh) * 2015-03-31 2015-06-17 北京奇艺世纪科技有限公司 一种双向帧间预测方法及装置
CN107409228A (zh) * 2015-02-06 2017-11-28 必卡姆公司 用于编码数字图像的方法及相关联的解码方法、设备和计算机程序
US20180376137A1 (en) * 2015-11-19 2018-12-27 Electronics And Telecommunications Research Institute Method and apparatus for image encoding/decoding
CN109819255A (zh) * 2018-12-28 2019-05-28 杭州海康威视数字技术股份有限公司 一种编解码方法及其设备

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2738325B2 (ja) * 1995-01-24 1998-04-08 日本電気株式会社 動き補償フレーム間予測装置
KR0181063B1 (ko) * 1995-04-29 1999-05-01 배순훈 특징점을 이용한 움직임 보상에서의 그리드 형성방법 및 장치
JP4232496B2 (ja) 2003-03-19 2009-03-04 セイコーエプソン株式会社 画像処理方法および画像処理装置ならびに画像処理プログラム
JP2004297416A (ja) 2003-03-26 2004-10-21 Monolith Co Ltd 対応点情報圧縮方法および装置
JP2006260527A (ja) * 2005-02-16 2006-09-28 Toshiba Corp 画像マッチング方法およびこれを用いた画像補間方法
KR20110047814A (ko) * 2009-10-30 2011-05-09 한국전자통신연구원 동영상 시스템에서 동영상 데이터 분할 장치 및 방법
EP2509319A4 (en) * 2009-12-01 2013-07-10 Humax Co Ltd METHOD AND DEVICE FOR CODING / DECODING HIGH-RESOLUTION PICTURES
US8879632B2 (en) * 2010-02-18 2014-11-04 Qualcomm Incorporated Fixed point implementation for geometric motion partitioning
CN102215396A (zh) 2010-04-09 2011-10-12 华为技术有限公司 一种视频编解码方法和系统
EP2464116A1 (en) * 2010-12-13 2012-06-13 Thomson Licensing Method and device for video encoding using geometry adaptive block partitioning
WO2012120582A1 (ja) 2011-03-07 2012-09-13 パナソニック株式会社 動き補償装置、動画像符号化装置、動画像復号装置、動き補償方法、プログラム、及び集積回路
WO2012120870A1 (ja) 2011-03-08 2012-09-13 株式会社Jvcケンウッド 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム、並びに動画像復号装置、動画像復号方法及び動画像復号プログラム
US9253481B2 (en) 2012-01-13 2016-02-02 Qualcomm Incorporated Determining contexts for coding transform coefficient data in video coding
CN103561263B (zh) * 2013-11-06 2016-08-24 北京牡丹电子集团有限责任公司数字电视技术中心 基于运动矢量约束和加权运动矢量的运动补偿预测方法
KR20250024127A (ko) * 2017-08-22 2025-02-18 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 이미지 인코더, 이미지 디코더, 이미지 인코딩 방법 및 이미지 디코딩 방법
CN115118992B (zh) * 2017-08-22 2024-02-06 松下电器(美国)知识产权公司 图像编码器、图像解码器、和比特流生成设备
CN109510991B (zh) 2017-09-15 2021-02-19 浙江大学 一种运动矢量导出方法及装置
WO2019079611A1 (en) * 2017-10-18 2019-04-25 Huawei Technologies Co., Ltd. GENERATION OF MOVEMENT VECTOR CANDIDATES LIST DEPENDING ON THE AVAILABILITY OF A NEIGHBORING BLOCK
CN118214857A (zh) 2017-10-26 2024-06-18 英迪股份有限公司 用于基于非对称子块的图像编码/解码的方法及装置
WO2020007362A1 (en) * 2018-07-06 2020-01-09 Mediatek Inc. Inherited motion information for decoding a current coding unit in a video coding system
MY207947A (en) * 2018-10-08 2025-03-31 Huawei Tech Co Ltd Apparatuses and methods for inter prediction of a triangle partition of a coding block
US11758164B2 (en) * 2018-10-23 2023-09-12 Tencent America LLC Method and apparatus for video coding
KR102711166B1 (ko) 2018-11-06 2024-09-30 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 모션 정보의 위치 의존적 저장
US10778977B2 (en) 2018-12-05 2020-09-15 Qualcomm Incorporated Triangle motion information for video coding
CN114245115B (zh) 2018-12-30 2023-03-21 北京达佳互联信息技术有限公司 用于对视频进行编码的方法和装置
US11140406B2 (en) * 2019-02-20 2021-10-05 Qualcomm Incorporated Signalling for merge mode with motion vector differences in video coding
US11350083B2 (en) * 2019-04-19 2022-05-31 Qualcomm Incorporated Intra block copy merging data syntax for video coding
CN113163208B (zh) 2019-06-24 2022-11-01 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN121664991A (zh) * 2019-08-15 2026-03-13 阿里巴巴集团控股有限公司 用于视频编解码的块划分方法
CN117499625A (zh) * 2019-09-01 2024-02-02 北京字节跳动网络技术有限公司 视频编解码中预测权重的对准
CN114424537B (zh) * 2019-09-05 2026-01-02 夏普株式会社 在视频编码中用于执行帧间预测编码的系统和方法
US11310497B2 (en) * 2019-11-15 2022-04-19 Qualcomm Incorporated Geometric partition mode with increased efficiency
US11477437B2 (en) * 2021-01-28 2022-10-18 Lemon Inc. Coding of motion information

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107409228A (zh) * 2015-02-06 2017-11-28 必卡姆公司 用于编码数字图像的方法及相关联的解码方法、设备和计算机程序
CN104717513A (zh) * 2015-03-31 2015-06-17 北京奇艺世纪科技有限公司 一种双向帧间预测方法及装置
US20180376137A1 (en) * 2015-11-19 2018-12-27 Electronics And Telecommunications Research Institute Method and apparatus for image encoding/decoding
CN109819255A (zh) * 2018-12-28 2019-05-28 杭州海康威视数字技术股份有限公司 一种编解码方法及其设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
AHN, YONGJO ET AL.: "CE10: AMVP mode for triangle prediction (test 10.3.1)", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 13TH MEETING: MARRAKECH, MA, 9–18 JAN. 2019, 18 January 2019 (2019-01-18), DOI: 20200907101025A *

Also Published As

Publication number Publication date
CN113055689B (zh) 2022-11-01
CN113055685A (zh) 2021-06-29
US12041266B2 (en) 2024-07-16
WO2020259372A1 (zh) 2020-12-30
JP2023118926A (ja) 2023-08-25
CN113055686A (zh) 2021-06-29
CN113163204B (zh) 2022-11-01
CN111064964B (zh) 2021-02-26
CN113055686B (zh) 2022-11-01
CN113055689A (zh) 2021-06-29
CN113055682B (zh) 2022-09-30
CN113055687B (zh) 2022-07-29
CN113163210A (zh) 2021-07-23
CN113055683A (zh) 2021-06-29
EP3989573A4 (en) 2022-07-06
CN113163208B (zh) 2022-11-01
CN113163207B (zh) 2022-11-01
CN113163210B (zh) 2022-11-01
CN113163208A (zh) 2021-07-23
KR20220003020A (ko) 2022-01-07
PH12021552965A1 (en) 2022-07-25
CN113163206A (zh) 2021-07-23
CN113055684B (zh) 2022-09-30
ES3049652T3 (en) 2025-12-17
CN113163205B (zh) 2022-11-01
CN113055683B (zh) 2022-11-01
CN113163205A (zh) 2021-07-23
CN113055687A (zh) 2021-06-29
KR102802051B1 (ko) 2025-04-28
CN112135144A (zh) 2020-12-25
CN113163206B (zh) 2022-11-01
CN113055682A (zh) 2021-06-29
CN113055688B (zh) 2022-11-01
CN113055688A (zh) 2021-06-29
CN113055685B (zh) 2022-09-30
CN113163207A (zh) 2021-07-23
JP2022534718A (ja) 2022-08-03
MX2021015939A (es) 2022-02-03
CN113163209A (zh) 2021-07-23
CN113163209B (zh) 2022-11-25
EP3989573B1 (en) 2025-08-13
CN113163204A (zh) 2021-07-23
JP7541599B2 (ja) 2024-08-28
PL3989573T3 (pl) 2026-01-26
CN111064964A (zh) 2020-04-24
FI3989573T3 (fi) 2025-09-25
CN113055684A (zh) 2021-06-29
US20220232248A1 (en) 2022-07-21
CN112135144B (zh) 2022-11-01
EP3989573A1 (en) 2022-04-27
CA3139453A1 (en) 2020-12-30
JP7311635B2 (ja) 2023-07-19

Similar Documents

Publication Publication Date Title
CN113055684B (zh) 一种编解码方法、装置及其设备
CN115348443A (zh) 一种运动信息确定方法、装置及其设备
CN112543322B (zh) 一种解码、编码方法、装置及其设备
CA3139453C (en) Encoding and decoding method, apparatus, and device
RU2797353C1 (ru) Способ, аппарат и устройство кодирования и декодирования
HK40054475B (zh) 一种编解码方法、装置及其设备
HK40054475A (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: 20832416

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

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 20832416

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 16/09/2022)

122 Ep: pct application non-entry in european phase

Ref document number: 20832416

Country of ref document: EP

Kind code of ref document: A1