Methods, devices and systems for determining prediction weight for merge mode
By optimizing prediction weights for affine merge candidates through explicit signaling and implicit derivation, the method addresses inconsistencies in existing video encoding technologies, enhancing coding performance and reducing complexity.
Patent Information
- Application Number
- JP2025039251
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2019-03-11
- Filing Date
- 2025-03-12
- Publication Date
- 2025-07-03
- Estimated Expiration
- 2040-02-28
AI Technical Summary
Existing video encoding technologies face challenges in correctly combining and selecting prediction modes for encoding units, particularly in affine merge candidates, leading to increased processing complexity and reduced coding performance due to inconsistencies in bi-prediction weighting inheritance and redundancy in candidate signaling.
Implementing explicit and implicit methods for determining prediction weights, such as signaling a weighting index in the bitstream or deriving weights from neighboring blocks, to optimize the weighting of affine merge candidates and zero motion vectors, ensuring flexible and efficient bi-directional prediction.
Enhances coding performance by reducing processing complexity and eliminating redundancy in candidate signaling, thereby improving the efficiency and accuracy of video encoding.
Smart Images

Figure 2025100547000001_ABST
Abstract
Description
Technical Field
[0001] Cross - Reference to Related Applications
[0001] This application claims the benefit of priority and the right of priority of U.S. Provisional Patent Application No. 62 / 816,879, filed on March 11, 2019, the disclosure of which is incorporated herein by reference for all purposes.
[0002] Technical Field
[0002] The present disclosure generally relates to video data processing, and more particularly to methods, apparatuses, and systems for determining prediction weights for a merge mode.
Background Art
[0003] Background
[0003] Video encoding is often used to convert and compress digital video signals, for example, to reduce the storage space consumed or to reduce the transmission bandwidth consumption associated with such signals.
[0004]
[0004] Video encoding systems may implement various tools or techniques to solve various problems involved in the encoding process. For example, in a video encoding process, input video data may be divided into blocks of various sizes and processed block by block. In a prediction process, a block may be predicted using various prediction modes such as an intra prediction mode and an inter prediction mode. Based on the size of the block, various prediction modes may be applied. Various techniques have been proposed to improve the efficiency and accuracy of video encoding and to reduce the computational complexity involved.
[0005]
[0005] However, the application of various technologies can be affected by various conditions. For example, some technologies may require that the encoding unit satisfies various conditions or that the encoding unit is encoded in a specific mode. As another example, in weighted prediction processing, some technologies can be applied only to the processing of some motion vector candidates, but not to others. Combinations of various technologies for processing all blocks or all sub-blocks may not be feasible. Therefore, it is desirable to correctly combine or select various technologies by considering their respective applicability conditions.
Summary of the Invention
Means for Solving the Problems
[0006] Summary of the Disclosure
[0006] Embodiments of the present disclosure provide a method, apparatus, and system for determining prediction weights in video data processing. According to some exemplary embodiments, the method performed by a decoder of video data includes: determining a weight for at least one of an inherited affine merge candidate, a constructed affine merge candidate, or a zero motion vector of an encoding unit; and bidirectionally predicting the encoding unit based on the determined weight. In some embodiments, the weight can be determined based on a weight indicator signaled in a bitstream.
[0007]
[0007] In some embodiments, a method performed by a decoder is provided for obtaining the weight of a constructed affine merge candidate having a plurality of control points. One exemplary method includes determining the weight of the constructed affine merge candidate based on the weight associated with the upper left control point or the upper right control point in response to the plurality of control points associated with the constructed affine merge candidate having one or more weights.
[0008]
[0008] In some embodiments, a method is provided that is performed by a decoder to obtain a weighting of a constructed affine merge candidate having a plurality of control points. One exemplary method includes: determining a weighting of the plurality of control points as the weighting of the constructed affine merge candidate in response to the plurality of control points associated with the constructed affine merge candidate having the same weighting; and determining a default value as the weighting of the constructed affine merge candidate in response to the plurality of control points having different weightings.
[0009]
[0009] In some embodiments, a method is provided for determining a prediction weighting in video data processing. One exemplary method includes: determining a weighting of a first sub-block within an encoding unit based on a weighting of a control point of the encoding unit from among weightings of a plurality of control points; generating a motion predictor for the first sub-block based on the determined weighting; and processing the encoding unit based on the motion predictor.
[0010]
[0010] In some embodiments, an apparatus is provided for determining a prediction weighting in video data processing. One exemplary video processing apparatus includes a memory storing instructions and a processor configured to execute the instructions to cause the apparatus to: determine a weighting for at least one of an inherited affine merge candidate, a constructed affine merge candidate, or a zero motion vector of an encoding unit; and perform bidirectional prediction of the encoding unit based on the determined weighting.
[0011]
[0011] In some embodiments, an apparatus is provided for determining a prediction weighting in video data processing. One exemplary video processing apparatus includes: determining a weighting of a first sub-block within an encoding unit based on a weighting of a control point of the encoding unit; generating a motion predictor for the first sub-block based on the determined weighting; and processing the encoding unit based on the motion predictor.
[0012]
[0012] In some embodiments, a non-transitory computer-readable medium is provided. One exemplary non-transitory computer-readable medium stores a set of instructions executable by one or more processors of a video processing device to cause the video processing device to perform a method that includes determining a weighting for at least one of an inherited affinity merge candidate, a constructed affinity merge candidate, or a zero motion vector of an encoding unit; and bi-directionally predicting the encoding unit based on the determined weighting.
[0013]
[0013] In some embodiments, a non-transitory computer-readable medium is provided. One exemplary non-transitory computer-readable medium stores a set of instructions executable by one or more processors of a video processing device to cause the video processing device to perform a method that includes determining a weighting of a first sub-block within an encoding unit based on a weighting of a control point of the encoding unit; generating a motion predictor for the first sub-block based on the determined weighting; and processing the encoding unit based on the motion predictor.
[0014] Brief Description of the Drawings
[0001] Some embodiments and various aspects of the present disclosure are shown in the following detailed description and the accompanying drawings. The various features shown in the accompanying drawings are not drawn to scale.
Brief Description of the Drawings
[0015]
Figure 1
[0002] FIG. 1 is a schematic diagram showing an exemplary video encoding and decoding system consistent with some embodiments of the present disclosure.
Figure 2
[0003] FIG. 2 is a schematic diagram showing an exemplary video encoder that may be part of the exemplary system of FIG. 1 consistent with some embodiments of the present disclosure.
Figure 3
[0004] FIG. 3 is a schematic diagram showing an exemplary video decoder that may be part of the exemplary system of FIG. 1 consistent with some embodiments of the present disclosure.
Figure 4A
[0005] Schematic diagram of an exemplary two-control-point affine motion model according to some embodiments of the present disclosure.
Figure 4B
[0006] Schematic diagram of an exemplary three-control-point affine motion model according to some embodiments of the present disclosure.
Figure 5
[0007] Schematic diagram showing an exemplary affine motion vector field (MVF) per sub-block according to some embodiments of the present disclosure.
Figure 6
[0008] Schematic diagram showing an exemplary position of an inherited affine motion predictor according to some embodiments of the present disclosure.
Figure 7
[0009] Schematic diagram showing an example of control point motion vector inheritance according to some embodiments of the present disclosure.
Figure 8
[0010] Schematic diagram showing an exemplary candidate position of a constructed affine merge mode according to some embodiments of the present disclosure.
Figure 9A
[0011] Schematic diagram showing horizontal sub-block division of an encoding unit having two control points according to some embodiments of the present disclosure.
Figure 9B
[0012] Schematic diagram showing vertical sub-block division of an encoding unit having two control points according to some embodiments of the present disclosure.
Figure 9C
[0013] Schematic diagram showing sub-block division of an encoding unit having two control points into four sub-blocks according to some embodiments of the present disclosure.
Figure 9D
[0014] Schematic diagram showing sub-block division of an encoding unit having two control points into four sub-blocks according to some embodiments of the present disclosure.
Figure 10A
[0015] Schematic diagram showing vertical sub-block division of an encoding unit having three control points according to some embodiments of the present disclosure.
Figure 10B
[0016] Schematic diagram showing horizontal sub-block division of an encoding unit having three control points according to some embodiments of the present disclosure.
Figure 10C
[0017] Schematic diagram showing horizontal sub-block division of an encoding unit having three control points according to some embodiments of the present disclosure.
Figure 10D
[0018] Schematic diagram showing vertical sub-block division of an encoding unit having three control points according to some embodiments of the present disclosure.
Figure 10E
[0019] Schematic diagram showing sub-block division of an encoding unit having three control points into four sub-blocks according to some embodiments of the present disclosure.
Figure 10F
[0020] Schematic diagram showing sub-block division of an encoding unit having three control points into four sub-blocks according to some embodiments of the present disclosure.
Figure 10G
[0021] Schematic diagram showing sub-block division of an encoding unit having three control points into four sub-blocks according to some embodiments of the present disclosure.
Figure 10H
[0022] Schematic diagram showing sub-block division of an encoding unit having three control points into four sub-blocks according to some embodiments of the present disclosure.
Figure 11
[0023] Schematic diagram showing sub-block division of an encoding unit having four control points into four sub-blocks according to some embodiments of the present disclosure.
Best Mode for Carrying Out the Invention
[0016] Detailed Description
[0024] Next, reference will be made in detail to exemplary embodiments illustrated in the accompanying drawings. The following description refers to the accompanying drawings in which, unless otherwise specified, the same numerals in the various drawings represent the same or similar elements. The embodiments described in the following description of the exemplary embodiments do not represent all embodiments consistent with the present invention. Rather, these are merely examples of devices and methods consistent with aspects of the present invention described in the appended claims.
[0017]
[0025] FIG. 1 is a block diagram showing an exemplary video encoding and decoding system 100 that can utilize techniques compliant with various video coding standards such as HEVC / H.265 and VVC / H.266. As shown in FIG. 1, system 100 includes a source device 120 that provides encoded video data to be decoded by a destination device 140 after a while. Consistent with some embodiments of the present disclosure, each of the source device 120 and the destination device 140 can include any of a wide range of devices such as a desktop computer, a notebook (e.g., laptop) computer, a tablet computer, a set-top box, a mobile phone, a television, a camera, a wearable device (e.g., a smartwatch or a wearable camera), a display device, a digital media player, a video game console, a video streaming device, etc. The source device 120 and the destination device 140 can be equipped to be suitable for wireless or wired communication.
[0018]
[0026] Referring to FIG. 1, the source device 120 can include a video source 122, a video encoder 124, and an output interface 126. The destination device 140 can include an input interface 142, a video decoder 144, and a display device 146. In some embodiments, the source device and the destination device can further include other components or arrangements. For example, the source device 120 can receive video data from an external video source (not shown) such as an external camera. Similarly, the destination device 140 can interface with an external display device rather than including an integrated display device.
[0019]
[0027] In the following description, several techniques are described as being performed by a video encoding device, but these techniques can also be performed by a video coder / decoder (commonly referred to as a "CODEC"). Further, the techniques of the present disclosure can also be performed by a video preprocessor. The source device 120 and the destination device 140 are merely examples of such an encoding device that generates encoded video data for transmission from the source device 120 to the destination device 140. In some embodiments, the source device 120 and the destination device 140 can operate in a substantially symmetric manner such that each of the source device 120 and the destination device 140 includes a video encoding component and a decoding component. Accordingly, the system 100 can support one-way or two-way video transmission between the source device 120 and the destination device 140, for example, for video streaming, video playback, video broadcasting, or video telephony.
[0020]
[0028] The video source 122 of the source device 120 can include a video capture device such as a video camera, a video archive containing previously captured video data, or a video distribution interface that receives video from a video content provider. As another alternative, the video source 122 can generate computer graphics-based data as source video or as a combination of live video, archived video, and computer-generated video. The captured, pre-captured, or computer-generated video can be encoded by the video encoder 124. Next, the encoded video information can be output onto the communication medium 160 by the output interface 126.
[0021]
[0029] The output interface 126 can include any type of medium or device capable of transmitting the encoded video data from the source device 120 to the destination device 140. For example, the output interface 126 can include a transmitter or transceiver configured to transmit the encoded video data directly from the source device 120 to the destination device 140 in real time. The encoded video data can be modulated according to a communication standard such as a wireless communication protocol and transmitted to the destination device 140.
[0022]
[0030] The communication medium 160 may include a transient medium such as wireless paging communication or wired network transmission. For example, the communication medium 160 may include a radio frequency (RF) spectrum or one or more physical transmission paths (e.g., cables). The communication medium 160 may form part of a packet-based network such as a local area network, a wide area network, or a global network such as the Internet. In some embodiments, the communication medium 160 may include a router, a switch, a base station, or any other device that may be useful for facilitating communication from the source device 120 to the destination device 140. For example, a network server (not shown) may receive the encoded video data from the source device 120 and provide such encoded video data to the destination device 140 (e.g., via network transmission).
[0023]
[0031] The communication medium 160 may also be in the form of a storage medium (e.g., a non-transitory storage medium) such as a hard disk, a flash drive, a compact disk, a digital video disk, a Blu-ray disk, a volatile or non-volatile memory, or any other suitable digital storage medium for storing the encoded video data. In some embodiments, a computer device of a media production facility such as a disk stamping facility may receive the encoded video data from the source device 120 and generate a disk containing such encoded video data.
[0024]
[0032] The input interface 142 of the destination device 140 receives information from the communication medium 160. The received information may include syntax information that includes syntax elements that describe the characteristics and processing of blocks and other coding units. The syntax information is defined by the video encoder 124 and used by the video decoder 144. The display device 146 displays the decoded video data to the user and may include any one of a variety of display devices such as a cathode ray tube (CRT), a liquid crystal display (LCD), a plasma display, an organic light emitting diode (OLED) display, or another type of display device.
[0025]
[0033] As another example, the encoded video generated by the source device 120 can be stored on a file server or a storage device. The input interface 142 can access the stored video data from the file server or the storage device via streaming or downloading. The file server or the storage device can be any type of computer device that stores the encoded video data and can transmit such encoded video data to the destination device 140. Examples of file servers include web servers that support websites, file transfer protocol (FTP) servers, network attached storage (NAS) devices, or local disk drives. The transmission of the encoded video data from the storage device can be streaming transmission, download transmission, or a combination thereof.
[0026]
[0034] The video encoder 124 and the video decoder 144 can each be implemented as any of a variety of suitable encoder circuitry, such as one or more microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), discrete logic, software, hardware, firmware, or any combination thereof. When these techniques are implemented partially in the form of software, one device can store instructions for the software in a suitable non-transitory computer-readable medium and execute these instructions in hardware using one or more processors to perform the techniques of the present disclosure. Each of the video encoder 124 and the video decoder 144 can be included in one or more encoders or decoders, any of which can be integrated as part of a combined encoder / decoder (CODEC) within each device.
[0027]
[0035] The video coder 124 and the video decoder 144 may operate according to any video coding standard such as the Versatile Video Coding (VVC / H.266) standard, the High Efficiency Video Coding (HEVC / H.265) standard, the ITU-T H.264 (also known as MPEG-4) standard, etc. Although not shown in FIG. 1, in some embodiments, the video coder 124 and the video decoder 144 may each be integrated with an audio coder and decoder and may include an appropriate MUX-DEMUX unit, or other hardware and software, to handle the coding of both audio and video within a common data stream or separate data streams.
[0028]
[0036] FIG. 2 is a schematic diagram showing an exemplary video coder 200 consistent with the disclosed embodiments. For example, the video coder 200 may be used as the video coder 124 within the system 100 (FIG. 1). The video coder 200 may perform intra coding or inter coding of blocks within a video frame, including video blocks or partitions or sub-partitions of video blocks. Intra coding may rely on spatial prediction to reduce or remove spatial redundancy within the video in a given video frame. Inter coding may rely on temporal prediction to reduce or remove temporal redundancy of the video in adjacent frames of a video sequence. The intra mode may refer to many spatial-based compression modes. The inter mode (such as uni-directional prediction or bi-directional prediction, etc.) may refer to many temporal-based compression modes.
[0029]
[0037] Referring to FIG. 2, the input video signal 202 can be processed block by block. For example, the video block unit can be a 16×16 pixel block (e.g., a macroblock (MB)). The size of the video block unit can vary depending on the coding technology used and the required accuracy and efficiency. In HEVC, an extended block size (e.g., a coding tree unit (CTU)) can be used to compress video signals with a resolution of 1080p or higher. In HEVC, a CTU can include up to 64×64 chrominance samples corresponding to luminance samples and associated syntax elements. In VVC, the size of the CTU can be further increased to include 128×128 luminance samples, corresponding chrominance samples, and associated syntax elements. The CTU can be further divided into coding units (CUs) using, for example, a quadtree, a binary tree, or a ternary tree. The CU can be further divided into prediction units (PUs) to which different prediction methods can be applied. Each input video block can be processed by using a spatial prediction unit 260 or a temporal prediction unit 262.
[0030]
[0038] The spatial prediction unit 260 performs spatial prediction (e.g., intra prediction) on the current block / CU by using information regarding the same picture / slice including the current block. Spatial prediction can use pixels from already encoded adjacent blocks within the same video picture frame / slice to predict the current video block. Spatial prediction can reduce the spatial redundancy inherent in the video signal.
[0031]
[0039] The temporal prediction unit 262 performs temporal prediction (e.g., inter prediction) on the current block using information from a picture / slice different from the picture / slice including the current block. The temporal prediction of a video block can be signaled by one or more motion vectors. In uni-directional temporal prediction, only one motion vector indicating one reference picture is used to generate the prediction signal for the current block. On the other hand, in bi-directional temporal prediction, two motion vectors each indicating its own reference picture can be used to generate the prediction signal for the current block. The motion vector can indicate the amount and direction of motion between the current block and one or more associated blocks within the reference coordinate system. If multiple reference pictures are supported, one or more reference picture indicators for the video block can be transmitted. One or more reference indicators can be used to identify from which reference picture within the reference picture storage or decoded picture buffer (DPB) 264 a temporal prediction signal can be generated.
[0032]
[0040] The mode decision and coder control unit 280 within the coder can select a prediction mode (e.g., based on rate-distortion optimization). Based on the determined prediction mode, a prediction block can be obtained. The prediction block can be subtracted from the current video block in the adder 216. The prediction residual can be transformed by the transform unit 204 and quantized by the quantization unit 206. The quantized residual coefficients can be inverse quantized in the inverse quantization unit 210 and inverse transformed in the inverse transform unit 212 to form the reconstructed residual. The reconstructed residual can be added to the prediction block in the adder 226 to form the reconstructed video block. The reconstructed video block before loop filtering can be used to provide reference samples for intra prediction.
[0033]
[0041] The reconstructed video block may pass through loop filtering in loop filter 266. For example, loop filtering such as deblocking filter, sample adaptive offset (SAO), and adaptive loop filter (ALF) may be applied. The reconstructed block after loop filtering may be stored in reference picture storage 264 and may be used to provide inter-prediction reference samples for encoding other video blocks. To form output video bitstream 220, the encoding mode (e.g., inter or intra), prediction mode information, motion information, and quantized residual coefficients may be sent to entropy encoding unit 208 to further reduce the bitrate before the data is compressed and packed to form bitstream 220.
[0034]
[0042] FIG. 3 is a schematic diagram showing a video decoder 300 consistent with the disclosed embodiment. For example, video decoder 300 may be used as video decoder 144 in system 100 (FIG. 1). Referring to FIG. 3, video bitstream 302 may be unpacked or entropy decoded in entropy decoding unit 308. The encoding mode information may be used to determine which of spatial prediction unit 360 or temporal prediction unit 362 is selected. The prediction mode information may be sent to the corresponding prediction unit to generate a prediction block. For example, motion-compensated prediction may be applied by temporal prediction unit 362 to form a temporal prediction block.
[0035]
[0043] The residual coefficient can be sent to the inverse quantization unit 310 and the inverse transform unit 312 to obtain the reconstructed residual. The prediction block and the reconstructed residual can be added at 326 to form a reconstructed block before loop filtering. Next, the reconstructed block can pass through loop filtering in the loop filter 366. For example, loop filtering such as deblocking filter, SAO, and ALF can be applied. Next, the reconstructed block after loop filtering can be stored in the reference picture storage 364. The reconstructed data in the reference picture storage 364 may be used to obtain the decoded video 320 or to predict future video blocks. The decoded video 320 can be displayed on a display device such as the display device 146 as described in the system 100 (FIG. 1).
[0036]
[0044] In some embodiments, affine motion prediction may be applied. In HEVC, for example, a translational motion model for motion compensation prediction (MCP) is applied. In the real world, there are many types of motions such as zoom in / out, rotation, field of view motion, and other irregular motions. In VVC, block-based affine transform motion compensation prediction is applied. As shown in FIGS. 4A and 4B, the affine motion field of a block can be described by the motion information of a 2-control point motion vector (4-parameter affine motion model: see FIG. 4A) or a 3-control point motion vector (6-parameter affine motion model: see FIG. 4B).
[0037]
[0045] As shown in FIG. 4A, v0 represents the control point motion vector of the upper left corner control point (CP) 402, and v1 represents the control point motion vector of the upper right corner CP 404. For the 4-parameter affine motion model, the motion vector at the sample position (x, y) in the block can be derived as follows:
Equation
[0038]
[0046] As shown in FIG. 4B, in the 6-parameter affine motion model, v0 represents the control point motion vector of the upper left corner control point (CP) 406, v1 represents the control point motion vector of the upper right corner CP408, and v2 represents the control point motion vector of the lower left corner CP410. Regarding the 6-parameter affine motion model, the motion vector at the sample position (x, y) within the block can be derived as follows:
Equation
[0039]
[0047] In some embodiments, to simplify the motion compensation prediction process, block-based affine transform prediction may be applied. To derive the motion vector of each 4×4 luminance sub-block, as shown in FIG. 5, the motion vector of the central sample of each sub-block is calculated according to the above equations (1) and (2), and can be rounded to 1 / 16 fractional precision. The arrows in FIG. 5 indicate the motion vectors corresponding to each sub-block. Next, a motion compensation interpolation filter may be applied to generate a prediction for each sub-block based on the derived motion vector. The sub-block size of the chrominance component may also be set to 4×4. The motion vector of the 4×4 chrominance sub-block can be calculated as the average of the motion vectors of the four corresponding 4×4 luminance sub-blocks.
[0040]
[0048] Similar to the translational motion inter-prediction, there are also two affine motion inter-prediction modes: the affine merge mode and the affine advanced motion vector prediction (AMVP) mode. The affine merge mode can be applied to CUs having both a width and a height of 8 or more. In the AMVP mode, the control point motion vector (CPMV) of the current CU can be generated based on the motion information of spatially adjacent CUs. There can be up to five CPMV candidates. An index can be signaled to indicate one candidate to be used for the current CU. The following three types of CPMV candidates are used to form the affine merge candidate list: (1) Inherited affine merge candidates extrapolated from the CPMVs of neighboring CUs; (2) Constructed affine merge candidate CPMVs derived using the translational motion vectors (MVs) of neighboring CUs; (3) Zero MV. The three types of candidates are further described below.
[0041]
[0049] In VVC, there can be up to two inherited affine merge candidates. The two inherited affine merge candidates are derived from the affine motion models of neighboring blocks (one from the left neighboring CU and one from the upper neighboring CU). Candidate blocks A0, A1, B0, B1, and B2 are shown in FIG. 6. For the left motion vector predictor, the neighboring blocks can be checked in the following order: A0 → A1. For the upper motion vector predictor, the neighboring blocks can be checked in the following order: B0 → B1 → B2. The first inherited candidate from each side (left and upper) can be selected. That is, on each side, the first neighboring block encoded in the affine mode in the check order is selected. Further, a pruning check may not be performed between the two inherited candidates.
[0042]
[0050] Once a neighboring affine CU is identified, its control point motion vector can be used to derive CPMV candidates within the affine merge list of the current CU. As shown in FIG. 7, when the neighboring bottom-left block A is encoded in affine mode, the motion vectors v2, v3, and v4 at the upper-left, upper-right, and lower-left corners of CU704 including block A can be obtained. When block A is encoded by a 4-parameter affine model, two CPMVs of the current CU702 can be calculated according to v2 and v3. Alternatively, when block A is encoded by a 6-parameter affine model, three CPMVs of the current CU702 can be calculated according to v2, v3, and v4.
[0043]
[0051] The constructed affine candidates mean that the candidates are constructed by combining the neighboring motion information of each control point. As shown in FIG. 8, the motion information of the four control points 802, 804, 806, and 808 can be derived from the defined spatial neighborhood and temporal neighborhood. The CPMV k (k = 1, 2, 3, 4) can be used to represent the motion vector of the K-th control point CP k . Regarding CPMV1 corresponding to CP801, the neighboring blocks B2, B3, and A2 can be checked in the following order: B2 → B3 → A2. The MV of the first available block can be used. Regarding CPMV2 corresponding to CP804, the neighboring blocks B1, B0 can be checked in the following order: B1 → B0. Regarding CPMV3 corresponding to CP806, the neighboring blocks A1 and A0 can be checked in the following order: A1 → A0. Regarding CPMV4 corresponding to CP808, if the temporal motion vector predictor (TMVP) is available, it can be used as CPMV4.
[0044]
[0052] After the MVs of the four control points 802 to 808 are obtained, an affine merge candidate can be constructed based on the motion information. Combinations of the control point MVs can be used to construct candidates in the following order: {CPMV1, CPMV2, CPMV3}, {CPMV1, CPMV2, CPMV4}, {CPMV1, CPMV3, CPMV4}, {CPMV2, CPMV3, CPMV4}, {CPMV1, CPMV2}, {CPMV1, CPMV3}
[0045]
[0053] Combinations of three CPMVs can construct 6-parameter affine merge candidates, and combinations of two CPMVs can construct 4-parameter affine merge candidates. In some embodiments, to avoid motion scaling processing, if the reference metrics of the control points are different, the corresponding combinations of the control point MVs can be discarded.
[0046]
[0054] After the inherited affine merge candidates and the constructed affine merge candidates are checked, if the affine merge candidate list is not yet full, zero MVs can be inserted at the end of the list.
[0047]
[0055] The affine AMVP mode can be applied to CUs having both a width and a height of 16 or more. The affine flag at the CU level can be signaled in the bitstream to indicate whether the affine AMVP mode is used. If the affine AMVP mode is used, another flag can be signaled to indicate whether 4-parameter affine or 6-parameter affine is used. The differences between the CPMVs of the current CU and their predictors (CPMVPs) can be signaled in the bitstream. The affine AMVP candidate list size is 2. The candidate list can be generated by using the following four types of CPMVP candidates in the following order: (1) Inherited affine AMVP candidates extrapolated from the CPMVs of neighboring CUs; (2) Constructed affine AMVP candidate CPMVPs derived using the translational motion MVs of neighboring CUs; (3) Translational motion MVs from neighboring CUs; and (4) Zero MVs.
[0048]
[0056] The checking order of the inherited affine AMVP candidates can be the same as that of the inherited affine merge candidates as described above. The only difference is that for AMVP candidates, only affine CUs having the same reference picture as the current block are considered. No pruning process is applied when inserting the inherited affine motion predictors into the candidate list.
[0049]
[0057] The constructed AMVP candidates can be derived from the defined spatial neighborhood as shown in FIG. 8. The same checking order as that used in the construction of the affine merge candidates can be used. In addition, the reference picture indices of the neighboring blocks are also checked. The first block in the checking order having the same reference picture as the inter-coded current CU is used. If the current CU is coded in 4-parameter affine mode and both mv0 and mv1 are available, mv0 and mv1 can be added as one candidate in the affine AMVP list. If the current CU is coded in 6-parameter affine mode and all three CPMVs are available, all three CPMVs are added as one candidate in the affine AMVP list. Otherwise, the constructed AMVP candidates can be set as unavailable.
[0050]
[0058] After the inherited affine AMVP candidates and the constructed AMVP candidates are checked, the number of candidates in the affine AMVP list can still be less than 2. In this case, mv0, mv1, and mv2 can be sequentially added as translational motion MVs to predict all control point MVs of the current CU if available. Finally, if the affine AMVP candidate list is still not full, zero MV can be used to fill the list.
[0051]
[0059] In some embodiments, bi-prediction with weighted averaging (BWA) may be applied. Traditionally, a bi-predicted signal is generated only by averaging two predicted signals obtained from two different reference pictures and / or using two different motion vectors. In VVC, the bi-prediction mode is extended beyond simple averaging to allow weighted averaging of two predicted signals as shown in the following equation: P bi-pred =((8 - w)*P0 + w*P1 + 4) >> 3 (3)
[0052]
[0060] Five weightings are allowed in weighted-averaging bi-prediction, where w ∈ {-2, 3, 4, 5, 10}. For each bi-predicted CU, the weighting w can be determined in one of the following two ways: 1) For non-merge CUs, the weighting index can be signaled after the motion vector difference; 2) For merge CUs, the weighting index can be estimated from neighboring blocks based on the merge candidate index. Weighted-averaging bi-prediction with 256 or more luminance samples can be applied to a CU, which means that the CU height × CU width is 256 or more. For low-delay pictures, all five weightings can be used. For non-low-delay pictures, only three weightings (w ∈ {3, 4, 5}) are used.
[0053]
[0061] On the encoder side, fast search algorithms can be applied to discover the weighting metrics without significantly increasing the encoder complexity. The application of these algorithms can be summarized based on the following. When combined with adaptive motion vector resolution (AMVR), if the current picture is a low-delay picture, only unequal weighting is conditionally checked for 1-pixel and 4-pixel motion vector accuracies. When combined with affine motion compensation, affine motion estimation (ME) can be performed for unequal weighting if and only if the affine mode is selected as the current best mode. When the two reference pictures in bidirectional prediction are the same, only unequal weighting is conditionally checked.
[0054]
[0062] In some embodiments, unequal weighting is not searched if several conditions are met. Various factors such as the picture order count (POC) distance between the current picture and its reference picture, the encoded quantization parameter (QP), and the temporal level can be considered.
[0055]
[0063] As pointed out above, when BWA is combined with merge prediction, the weighting metric can be estimated from neighboring blocks based on the merge candidate metric. However, this may not always be the case for affine merge prediction. As pointed out above, for affine merge prediction, there can be three types of CPMV candidates within the affine merge candidate list: 1) Inherited affine merge candidates extrapolated from the CPMV of neighboring CUs; 2) Constructed affine merge candidate CPMVs derived using the translational motion MV of neighboring CUs; and 3) Zero MV. When the first type of candidate (inherited affine merge candidate) is selected, the BWA weighting metric of the neighboring CU is also inherited. Therefore, the weighting metric of the current CU used in bidirectional prediction is the same as the weighting metric of the neighboring CU from which the CPMV is inherited. However, when the second type of candidate (constructed affine merge candidate) or the third type of candidate (zero motion vector) is selected, the BWA weighting metric of the neighboring CU is not inherited. Instead, in some techniques, equal weighting can be used for the current CU by setting the current CU weighting metric to a default value.
[0056]
[0064] The above design has at least the following drawbacks. Based on the above design, there can be a mismatch in BWA weighting metric inheritance between the inherited affine merge candidate and the constructed affine merge candidate, which are two types of CPMV candidates within the same candidate list. Therefore, the encoder and decoder need to distinguish these two types of candidates and use different logics to generate the BWA weighting for the current CU. While the constructed affine merge candidate is fixed, the inherited affine merge candidate is inherited from the neighboring CU. Therefore, the processing complexity is increased.
[0057]
[0065] Furthermore, the current CU weighting can be fixed if the constructed affine merge candidate is selected, thus losing the flexibility of weighting selection. Since BWA presents more options for averaging the weighting in inter prediction, increasing the coding performance, it is adapted to the VC standard. However, using fixed equal weightings can reduce the benefits of BWA and thus degrade the coding performance.
[0058]
[0066] Furthermore, zero MVs are inserted into the affine merge candidate list if the candidate list is not full after inserting the inherited and constructed affine merge candidates. However, fixing the BWA weightings of all zero MVs inserted into the candidate list means that the same MV candidates are duplicated within the list, which introduces redundancy in candidate signaling. Additionally, as described above, for constructed affine merge candidates, neighboring CU weightings are not used. This deviates from the design concept that when BWA is combined with the merge mode, the weighting indicators are estimated from neighboring blocks based on the merge candidate indicators.
[0059]
[0067] To solve the above problems, the following techniques are provided in the present disclosure.
[0060]
[0068] One technique for addressing the above problem is by explicit weighting signaling. With explicit signaling, the weighting of the current CU can be selected by the coder, and the indicator of the selected weighting can be explicitly signaled in the bitstream. This changes the concept that the weighting indicator is estimated from neighboring blocks based on the merge candidate indicator. For affine merge prediction, the weighting of the current CU is no longer estimated from neighboring CUs. The coder can select any value from the allowed candidate weightings and signal the selected value in the bitstream.
[0061]
[0069] In some embodiments of the present disclosure, the weighting of all kinds of affine merge candidates, including inherited affine merge candidates, constructed affine merge candidates, and zero motion vectors, can all be selected by the coder and signaled in the bitstream. In some embodiments, the weighting of some but not all of the affine merge candidates is selected by the coder and signaled in the bitstream. For example, with respect to only the constructed affine merge candidates, the weighting can be selected and signaled; and with respect to other candidates (e.g., inherited affine merge candidates), the weighting is estimated from neighboring CUs or fixed to a default value.
[0062]
[0070] In some embodiments of the present disclosure, the weighting can be signaled by transmitting a weighting indicator in the bitstream.
[0063]
[0071] Another technique for addressing existing problems is by implicit weighting derivation. With this technique, the weighting is not fixed for the CU for which the constructed affine merge candidate is used. Instead, the weighting can be estimated from neighboring CUs. For each constructed affine merge candidate, the weighting or weighting indicator can be derived according to the CP of this constructed affine merge candidate. If this constructed affine merge candidate is used for a CU, the derived weighting or weighting indicator can also be used for the CU.
[0064]
[0072] For example, CP k(k = 1, 2, 3, 4) can be used to represent the K-th CP. For each CP, neighboring CUs can be used to derive the corresponding CPMV. Neighboring CUs are also used to derive the weighting or weighting index of the CP. Generally speaking, there are four control points. Therefore, the constructed affine merge candidates can have at most four different weightings or weighting indices. Therefore, rules can be defined to derive one weighting or weighting index of the constructed affine merge candidates from at most four weightings or weighting indices. For example, a plurality of CPs including the upper left CP and / or the upper right CP of the constructed affine merge candidate have one or more weightings. The weighting of the constructed affine merge candidate can be determined based on the weighting associated with the upper left CP and / or the weighting associated with the upper right CP. Similarly, in some embodiments, the lower left CP and / or the lower right CP of the constructed affine merge candidate have one or more weightings. The weighting of the constructed affine merge candidate can be determined based on the weighting associated with the lower left CP and / or the weighting associated with the lower right CP. Examples of the derivation process are further described below. In some embodiments of the present disclosure, if all CPs have the same weighting or weighting index, this weighting or weighting index can be used for the constructed affine merge candidate. If not all CPs have the same weighting or weighting index, a default value corresponding to an equal weighting can be used.
[0065]
[0073] For example, for a constructed affine merge candidate having two CPs (CP a , CP b ), if (CP a weighting == CP b weighting) affine merge candidate weighting = CP a weighting Otherwise affine merge candidate weighting = default value
[0066]
[0074] Further, for three CPs (CP a , CPb , CP c For a constructed affinity merge candidate having if (CP a weighting == CP b weighting && CP b weighting == CP c weighting) Affinity merge candidate weighting = CP a weighting Otherwise Affinity merge candidate weighting = default value
[0067]
[0075] Similarly, the above rules can also be applied to constructed affinity merge candidates having four or more CPs, and the above operations can also be applied to the weighting index.
[0068]
[0076] In some embodiments of the present disclosure, the weighting or weighting index of the constructed affinity merge candidate can be the maximum likelihood weighting or weighting index. The maximum likelihood weighting or weighting index can correspond to the weighting or weighting index used by most of the CPs of the constructed affinity merge candidate. For example, for a constructed affinity merge candidate having two CPs (CP a , CP b ), the weighting can be determined based on the following: if (CP a weighting == CP b weighting) Affinity merge candidate weighting = CP a weighting Otherwise Affinity merge candidate weighting = default value
[0069]
[0077] For a constructed affinity merge candidate having three CPs (CP a , CP b , CP c ), the weighting can be determined based on the following: if (CP a weighting == CP b weighting) Affine merge candidate weighting = CP a Weighting Otherwise, if (CP b Weighting == CP c Weighting) Affine merge candidate weighting = CP b Weighting Otherwise, if (CP a Weighting == CP c Weighting) Affine merge candidate weighting = CP c Weighting
[0070]
[0078] The above rules can also be applied to constructed affine merge candidates having four or more CPs and to the determination of weighting indicators.
[0071]
[0079] In some embodiments of the present disclosure, among all the weightings of the CPs of the constructed affine merge candidates, the weighting having the minimum difference from the equal weightings can be used as the weighting or weighting indicator of the constructed affine merge candidate. For example, for a constructed affine merge candidate having two CPs (CP a , CP b ), the weighting can be determined based on the following: Diff a = |CP a Weighting - equal weighting| Diff b = |CP b Weighting - equal weighting| if (Diff a ≦ Diff b ) Affine merge candidate weighting = CP a Weighting Otherwise Affine merge candidate weighting = CP b Weighting
[0072]
[0080] Three CPs (CP a , CP b , CP cFor a constructed affine merge candidate having Diff a =|CP a Weighting - Equal weighting| Diff b =|CP b Weighting - Equal weighting| Diff c =|CP c Weighting - Equal weighting| if (Diff a ≦Diff b &&Diff a ≦Diff c ) Affine merge candidate weighting = CP a Weighting Otherwise, if (Diff b ≦Diff a &&Diff b ≦Diff c ) Affine merge candidate weighting = CP b Weighting Otherwise Affine merge candidate weighting = CP c Weighting
[0073]
[0081] Alternatively, for a constructed affine merge candidate having two CPs (CP a , CP b ), the weighting can be determined based on the following: if (CP a Weighting ≧ Equal weighting && CP b Weighting ≧ Equal weighting) Affine merge candidate weighting = min(CP a Weighting, CP b Weighting) Otherwise, if (CP a Weighting ≦ Equal weighting && CP b Weighting ≦ Equal weighting) Affine merge candidate weighting = max(CP a Weighting, CP b Weighting)
[0074]
[0082] And for the constructed affinity merge candidates having three CPs (CP a , CP b , CP c ), the weighting can be determined based on the following: if (CP a weighting ≥ equal weighting && CP b weighting ≥ equal weighting && CP c weighting ≥ equal weighting) Affinity merge candidate weighting = min(CP a weighting, CP b weighting, CP c weighting) Otherwise, if (CP a weighting ≤ equal weighting && CP b weighting ≤ equal weighting && CP c weighting ≤ equal weighting) Affinity merge candidate weighting = max(CP a weighting, CP b weighting, CP c weighting) Otherwise Affinity merge candidate weighting = equal weighting, or the closer weighting of the two weightings on the same side of equal weighting
[0075]
[0083] Similarly, the above rules can also be applied to constructed affinity merge candidates having four or more CPs and to the determination of the weighting indicators.
[0076]
[0084] In some embodiments, the average of the CP weightings or the weighting indicators can be used as the weighting of the constructed affinity merge candidate. For example, for a constructed affinity merge candidate having two CPs (CP a , CP b ), the weighting can be determined based on the following: weighting = integer part of (CP a weighting + CP b weighting) / 2 res = (CPa Weighting + CP b Weighting) % 2 if (res == 0) Affine merge candidate weighting = Weighting Otherwise Affine merge candidate weighting = (CP a Weighting + CP b Weighting) / 2, rounded to the same weighting direction
[0077]
[0085] Further, for a constructed affine merge candidate having three CPs (CP a , CP b , CP c ), the weighting can be determined based on the following: Weighting = (CP a Weighting + CP b Weighting + CP c Weighting) / 3, integer part res = (CP a Weighting + CP b Weighting + CP c Weighting) % 3 if (res == 0) Affine merge candidate weighting = Weighting Otherwise Affine merge candidate weighting = (CP a Weighting + CP b Weighting + CP c Weighting) / 3, rounded to the same weighting direction
[0078]
[0086] Similarly, the above rules can also be applied to a constructed affine merge candidate having four or more CPs and to the determination of the weighting index.
[0079]
[0087] According to some embodiments of the present disclosure, a method of using BWA weighting for zero MV candidates is also provided. As pointed out above, after the inherited affinity merge candidates and the constructed affinity merge candidates are inserted into the affinity merge candidate list (if the candidate list is not full), the candidate list will be filled with zero MVs until it is full. Consistent with some embodiments of the present disclosure, the candidate list can be filled with zero MVs having different BWA weightings such that the filled zero MV candidates can provide different predictors.
[0080]
[0088] For example, the order of the weights of the zero MVs filled in the candidate list can be {4,4} / 8, {5,3} / 8, {3,5} / 8, {-2,10} / 8, {10,-2} / 8. After the inherited affinity merge candidates and the constructed affinity merge candidates are derived, if the candidate list is not full, a zero MV with an equal weight of {4,4} / 8 can be inserted first. If the list is still not full, a zero MV with a weight of {5,3} / 8 can be inserted. Then, if the list is still not full, zero MVs with weights of {3,5} / 8, {-2,10} / 8, and {10,-2} / 8 can be inserted until the list is full. After all zero MVs with weights are inserted, if the candidate list is still not full, zero MVs with different reference metrics can be inserted.
[0081]
[0089] In VVC, there may be several constructed affine merge candidates. The order of candidate control point sets / combinations is as follows: {CP1, CP2, CP3}, {CP1, CP2, CP4}, {CP1, CP3, CP4}, {CP2, CP3, CP4}, {CP1, CP2}, {CP1, CP3}. The encoder and decoder can check from the first combination to the last combination. If available, the combination can be put into the candidate list. If the combination is not available, the next combination can be checked. The index of the candidate selected within the candidate list can be indicated by a bitstream having a variable-length code. A smaller index can be encoded by a code of shorter length. Therefore, the order of candidates in the list can affect the encoding efficiency. The fixed order of the constructed affine merge candidates may not be optimized for each video sequence.
[0082]
[0090] To address the above problems, adaptation of the order of merge candidates can be implemented. For example, the weighting of CPs within a combination is checked. According to the check result, the order of each combination can be determined.
[0083]
[0091] In some embodiments of the present disclosure, combinations in which all CPs have the same weighting or weighting index are assigned the highest priority and placed first in the list. Combinations in which the CPs have the most diverse weighting or weighting indices have a low priority and are placed later in the list. In some embodiments of the present disclosure, the CPs can be classified into various classes according to the CP weighting. Combinations in which all CPs fall into the same class can be assigned the highest priority and can be placed first in the list. Combinations in which the CPs are within the most diverse classes can be assigned a low priority and can be placed later in the list.
[0084]
[0092] Based on the above, the more consistent the weighting of the CPs within a combination, the higher the priority of the combination. For example, for the combinations {CPMV1, CPMV2, CPMV3} and {CPMV1, CPMV2, CPMV4}, if CP1, CP2, and CP3 have the same weighting or weighting indicator or belong to the same class, and CP4 has a different weighting or weighting indicator or belongs to a different class, {CPMV1, CPMV2, CPMV3} may be assigned a higher priority. That is, within the list, {CPMV1, CPMV2, CPMV3} comes before {CPMV1, CPMV2, CPMV4}. Alternatively, although the weightings or weighting indicators or corresponding classes of CP1, CP2, and CP3 are all different, if the weighting or weighting indicator or corresponding class of CP4 is the same as that of CP1, {CPMV1, CPMV2, CPMV4} is less diverse and may be assigned a higher priority. That is, within the list, {CPMV1, CPMV2, CPMV4} comes before {CPMV1, CPMV2, CPMV3}. If two combinations have the same level of diversity in terms of weighting or weighting indicator or class, a default order may be assigned to these two combinations.
[0085]
[0093] In VVC, the constructed affine candidates refer to the candidates constructed by combining the neighboring motion information of each control point. The following combinations of control points are used to sequentially construct affine merge candidates: {CP1, CP2, CP3}, {CP1, CP2, CP4}, {CP1, CP3, CP4}, {CP2, CP3, CP4}, {CP1, CP2}, {CP1, CP3}. The encoder and decoder may check the availability of each combination. If available, the constructed affine merge candidate may be put into the candidate list. If the combination is not available, the availability of the next combination may be checked. In the prior art, the availability condition focuses on whether the neighboring CUs are inter-coded. The BWA weighting is not considered.
[0086]
[0094] In accordance with some embodiments of the present disclosure, new availability conditions may be applied. The weighting or weighting metrics of each CP within the combination may be checked. The availability of the combination may be determined according to the check results.
[0087]
[0095] In some embodiments, if the weightings of two CPs within the combination have different signs, the combination may be set as an unavailable combination. For example, in the combination {CP1, CP2, CP3}, if the weighting of CP1 is (-2, 10) and the weighting of CP2 is (10, -2), this combination may be set as unavailable. As another example, in the combination {CP1, CP2, CP3}, if the weighting of CP1 is (-2, 10) and the weighting of CP2 is (4, 4), this combination may be set as unavailable.
[0088]
[0096] In VVC, the BWA weighting is applied at the CU or PU level. This means that each pixel within one CU or PU has the same weighting in the prediction process. However, in affine motion prediction, sub-block-based motion compensation may be applied. The motion vector of each sub-block within the current CU may be derived from the motion vector of the control point of the current CU. Next, a motion compensation interpolation filter is applied to generate predictors for each sub-block having the derived motion vector. To align the motion vector and the BWA weighting, sub-block level weighting may be derived according to some embodiments of the present disclosure.
[0089]
[0097] In some embodiments, the weighting of each sub-block within the current CU or PU may be derived from the weighting of the control point of the current CU or PU. Thus, each sub-block may have a different weighting.
[0090]
[0098] In some embodiments, the weighting w of each pixel x,ycan be interpolated from the weights wcp0, wcp1, and wcp2 of the CPs, where (x, y) indicates the coordinates of each pixel. Various interpolation filters that are not limited in this specification can be used. To simplify the interpolation process, the weights can be derived at the sub-block level. For example, (x, y) can be the center coordinates of each sub-block. Further, the sub-block size can be the same as that used in affine motion prediction.
[0091]
[0099] In some embodiments of the present disclosure, a CU or a PU can be divided into, for example, two or four sub-blocks. For each sub-block, the weights of the control points included in the sub-block can be used for the sub-block. For a sub-block that does not have a control point within the currently constructed control point combination of the affine merge candidate, a pre-specified rule can be used to derive the weight value. For example, as shown in FIG. 9A, for the 2CP combination {CP1, CP3}, the CU or PU 910 can be horizontally divided into two sub-blocks 911 and 912. The weight of CP1, W1, can be used for the upper sub-block 911. The weight of CP3, W3, can be used for the lower sub-block 912. As another example, as shown in FIG. 9B, for the 2CP combination {CP1, CP2}, the CU or PU 920 can be vertically divided into two sub-blocks 921 and 922. The weight of CP1 can be used for the left sub-block 921. The weight of CP2 can be used for the right sub-block 922.
[0092]
[0100] Alternatively, for the 2CP combination {CP1, CP3}, as shown in FIG. 9C, the CU or PU 930 can be divided into four sub-blocks 931, 932, 933, 934. The weighting of CP1 can be used for the upper left sub-block 931. The weighting of CP3 can be used for the lower left sub-block 932. The weighting of the upper right sub-block 933 may be derived from the weighting of CP1 or set as a default value. The weighting of the lower right sub-block 934 may be derived from the weighting of CP3 or set as a default value. Similarly, for the two CP combinations {CP1, CP2}, as shown in FIG. 9D, the CU or PU 940 can be divided into four sub-blocks 941, 942, 943, 944. The weighting of CP1 can be used for the upper left sub-block 941. The weighting of CP2 can be used for the upper right sub-block 942. The weighting of the lower left sub-block 943 may be derived from the weighting of CP1 or set as a default value. The weighting of the lower right sub-block 944 may be derived from the weighting of CP2 or set as a default value.
[0093]
[0101] Exemplary partitions for three CPs are further provided below. As shown in FIG. 10A, for the 3CP combination {CP1, CP2, CP4}, the CU or PU 1010 can be vertically partitioned into two sub-blocks 1011, 1012. The weighting of CP1 can be used for the left sub-block 1011. The weighting of CP2 can be used for the right sub-block 1012. For the 3CP combination {CP1, CP3, CP4}, as shown in FIG. 10B, the CU or PU 1020 can be horizontally partitioned into two sub-blocks 1021, 1022. The weighting of CP1 can be used for the upper sub-block 1021. The weighting of CP3 can be used for the lower sub-block 1022. For the 3CP combination {CP2, CP3(CP4)}, as shown in FIG. 10C, the CU or PU 1030 can be horizontally partitioned into sub-blocks 1031, 1032. The weighting of CP2 can be used for the upper sub-block 1031. The weighting of CP3 can be used for the lower sub-block 1032. Alternatively, as shown in FIG. 10D, the CU or PU 1040 can be vertically divided into sub-blocks 1041, 1042. The weighting of CP2 can be used for the right sub-block 1042. The weighting of CP3 can be used for the left sub-block 1041.
[0094]
[0102] CU or PU can be further divided into four sub - blocks. As shown in FIG. 10E, for the 3CP combination {CP1, CP2, CP3}, CU or PU 1050 can be divided into four sub - blocks 1051, 1052, 1053, 1054. The weighting of CP1 can be used for the upper - left sub - block 1051. The weighting of CP2 can be used for the upper - right sub - block 1052. The weighting of CP3 can be used for the lower - left sub - block 1053. The weighting of the lower - right sub - block 1054 can be set as one of the following: the average value of the three weightings of CP1, CP2, and CP3; the average value of the weightings of CP2 and CP3; the median value of the three weightings of CP1, CP2, and CP3; one of the three weightings of CP1, CP2, and CP3 having the minimum difference from equal weightings; one of the weightings of CP2 and CP3 having a smaller difference from equal weightings; equal weightings; or another default value.
[0095]
[0103] As shown in FIG. 10F, for the 3CP combination {CP1, CP2, CP4}, CU or PU 1060 can be divided into four sub - blocks 1061, 1062, 1063, 1064. The weighting of CP1 can be used for the upper - left sub - block 1061. The weighting of CP2 can be used for the upper - right sub - block 1062. The weighting of CP4 can be used for the lower - right sub - block 1064. The weighting of the lower - left sub - block 1063 can be set as one of the following: the average value of all three weightings; the average value of the weightings of CP1 and CP4; the median value of the three weightings; one of the three weightings of CP1, CP2, CP4 having the minimum difference from equal weightings; one of the weightings of CP1 and CP4 having a smaller difference from equal weightings; equal weightings; or another default value.
[0096]
[0104] As shown in FIG. 10G, for the 3CP combination {CP1, CP3, CP4}, the CU or PU 1080 can be divided into four sub-blocks 1071, 1072, 1073, and 1074. The weighting of CP1 can be used for the upper left sub-block 1071, the weighting of CP3 can be used for the lower left sub-block 1073, and the weighting of CP4 can be used for the lower right sub-block 1074. The weighting of the upper right sub-block 1072 can be set as one of the following: the average value of all three weightings; the average value of the weightings of CP1 and CP4; the median value of the three weightings; one of the three weightings of CP1, CP3, and CP4 having the minimum difference from equal weightings; one of the weightings of CP1 and CP4 having a smaller difference from equal weightings; equal weightings; or another default value.
[0097]
[0105] As shown in FIG. 10H, for the 3CP combination {CP2, CP3, CP4}, the CU or PU 1080 can be divided into four sub-blocks 1081, 1082, 1083, and 1084. The weighting of CP2 can be used for the upper right sub-block 1082. The weighting of CP3 can be used for the lower left sub-block 1083. The weighting of CP4 can be used for the lower right sub-block 1084. The weighting of the upper left sub-block 1081 can be set as one of the following: the average value of all three weightings; the average value of the weightings of CP2 and CP3; the median value of the three weightings of the control points; one of the three weightings of CP2, CP3, and CP4 having the minimum difference from equal weightings; one of the weightings of CP2 and CP3 having a smaller difference from equal weightings; equal weightings; or another default value.
[0098]
[0106] An exemplary partitioning for four CPs is further provided below. As shown in FIG. 11, for the combination {CP1, CP2, CP3, CP4}, the CU or PU 1100 can be partitioned into four sub-blocks 1101, 1102, 1103, 1104. The weighting of CP1 can be used for the upper left sub-block 1101. The weighting of CP2 can be used for the upper right sub-block 1102. The weighting of CP3 can be used for the lower left sub-block 1103. The weighting of CP4 can be used for the lower right sub-block 1104.
[0099]
[0107] In some embodiments, a non-transitory computer-readable storage medium including instructions executable by an apparatus (such as the disclosed encoder and decoder) for performing the above-described method is also provided. General forms of non-transitory media include, for example, floppy disks, flexible disks, hard disks, solid state drives, magnetic tapes, or any other magnetic data storage media, CD-ROMs, any other optical data storage media, any physical media having a pattern of holes, RAM, PROM, EPROM, FLASH®-EPROM or any other flash memory, NVRAM, caches, registers, any other memory chips or cartridges, and network versions thereof. The apparatus may include one or more processors (CPUs), an input / output interface, a network interface, and / or a memory.
[0100]
[0108] It should be noted that relational terms such as "first", "second", etc. in this specification are used only to distinguish one entity or operation from another entity or operation, and do not require or imply any actual relationship or sequence between these entities or operations. Further, the terms "comprising", "having" and other similar forms are intended to be equivalent in meaning and are open in the sense that they do not mean that the items or groups of items following any one of these terms are an exhaustive list of such items or groups of items or are limited to the listed items or groups of items.
[0101]
[0109] As used herein, unless otherwise specified, the term "or" includes all possible combinations except where the combination is infeasible. For example, if it is stated that a database may contain A or B, then, unless otherwise specified or infeasible, the database may contain A, or B, or A and B. As a second example, if it is stated that a database may contain A, B, or C, then, unless otherwise specified or infeasible, the database may contain A, or B, or C, or A and B, or A and C, or B and C, or A and B and C.
[0102]
[0110] It is understood that the above embodiments may be implemented by hardware, software (program code), or a combination of hardware and software. If implemented by software, it may be stored in the above computer-readable medium. The software may perform the disclosed method when executed by a processor. The computer units and other functional units described in the present disclosure may be implemented by hardware, or software, or a combination of hardware and software. Those skilled in the art will also understand that a plurality of the above modules / units may be combined as one module / unit, and each of the above modules / units may be further divided into a plurality of sub-modules / sub-units.
[0103]
[0111] Some embodiments of the present disclosure may be further described using the following items: 1. A method for processing video data, comprising: determining a weighting for at least one of an inherited affinity merge candidate, a constructed affinity merge candidate, or a zero motion vector of an encoding unit; and bidirectionally predicting an encoding unit based on the determined weighting. 2. The method according to item 1, wherein the weighting is determined based on a weighting indicator signaled in a bitstream. 3. The determined weighting is the method according to item 1 including the weighting of the constructed affine merge candidates, further comprising determining the weighting of the constructed affine merge candidate based on the weighting associated with the upper left control point or the upper right control point, according to the fact that a plurality of control points associated with the constructed affine merge candidate have one or more weightings. 4. The determined weighting is the method according to item 1 or 3 including the weighting of the constructed affine merge candidates, wherein, according to the fact that a plurality of control points associated with the constructed affine merge candidate have the same weighting, determining the weighting of the plurality of control points as the weighting of the constructed affine merge candidate; or further comprising determining a default value as the weighting of the constructed affine merge candidate, according to the fact that a plurality of control points have different weightings. 5. The determined weighting is the method according to item 1 or 3 including the weighting of the constructed affine merge candidates, determining the weighting used by most of the plurality of control points from among the weightings of the plurality of control points corresponding to the constructed affine merge candidate; and further comprising setting the determined weighting as the weighting of the constructed affine merge candidate. 6. The determined weighting is the method according to item 1 or 3 including the weighting of the constructed affine merge candidates, respectively determining the differences between the equal weightings and the weightings of the plurality of control points; determining a first control point having a weighting with the minimum difference from the equal weightings from among the plurality of control points; and further comprising setting the weighting of the first control point as the weighting of the constructed affine merge candidate. 7. The determined weighting is the method according to item 1 or 3 including the weighting of the constructed affine merge candidates, determining the average weighting of the plurality of control points corresponding to the constructed affine merge candidate; and A method further comprising setting an average weight as the weight of the constructed affine merge candidate. 8. Bidirectionally predicting an encoding unit based on the determined weight is the method according to any one of items 1 to 7 including processing video data using an affine merge mode, A method further comprising inserting a zero motion vector with an equal weight into the affine merge candidate list before inserting a zero motion vector with an unequal weight when constructing the affine merge candidate list. 9. Bidirectionally predicting an encoding unit based on the determined weight is the method according to any one of items 1 to 7 including processing video data using an affine merge mode, and this method further When constructing the affine merge candidate list, determining the order of a plurality of constructed affine merge candidates based on the weights of the control points corresponding to each of the plurality of constructed affine merge candidates, A method in which a constructed affine merge candidate having a control point with a less diverse weight is assigned a higher priority than a constructed affine merge candidate having a control point with a more diverse weight. 10. Determining the order of a plurality of constructed affine merge candidates includes using the default order of two constructed merge candidates in response to the weights of the control points corresponding to each of the two constructed merge candidates having the same level of diversity. The method according to item 9. 11. The method according to item 9 or 10, Determining the availability of a first constructed affine merge candidate based on the weight of the control point corresponding to the first constructed affine merge candidate; and A method further comprising adding the first constructed affine merge candidate to the affine merge candidate list in response to a determination that the first constructed affine merge candidate is available. 12. Determining the availability of a first constructed affine merge candidate is Determining whether the weights of two control points corresponding to the first constructed affine merge candidate have different signs; and The method according to item 11, including determining that the first constructed affine merge candidate is not available in response to the determination that the weights of two control points corresponding to the first constructed affine merge candidate have different signs. 13. A method for processing video data, the method comprising: Determining the weight of a first sub-block within an encoding unit based on the weights of the control points of the encoding unit; and Bi-directionally predicting the first sub-block based on the determined weight. 14. Determining the weight of the first sub-block within the encoding unit includes: Using the weight of one of the control points as the weight of the first sub-block in response to the first sub-block including one of the control points, or Determining the weight of the first sub-block according to a pre-specified rule in response to the first sub-block not including a control point. The method according to item 13. 15. The encoding unit is divided into four sub-blocks and has two control points. The method according to item 13, wherein determining the weight of the first sub-block within the encoding unit includes: Using the weight of one of the two control points as the weight of the first sub-block in response to the first sub-block including one of the two control points, or In response to the first sub-block not including the two control points, setting the weight of the first sub-block to The weight of one of the two control points having a shorter distance to the first sub-block, or One of the default values. The method according to item 13. 16. The encoding unit is divided into two sub-blocks and has three control points. The method according to item 13, wherein determining the weight of the first sub-block within the encoding unit includes: In response to the first sub-block including only one of the three control points, using the weight of one of the control points as the weight of the first sub-block, or In response to the first sub-block including at least two of the three control points, a method including using a default value or the weight of one of the two control points as the weight of the first sub-block. 17. The coding unit is divided into four sub-blocks and has three control points each having a first, a second, and a third weight; determining the weight of the first sub-block within the coding unit is: In response to the first sub-block including at least one of the three control points, using the weight of one of the control points as the weight of the first sub-block, or In response to the sub-block not including the three control points, setting the weight of the first sub-block to: The average value of the first, second, and third weights, The median value of the first, second, and third weights, An equal weight of the coding unit, One of the first, second, and third weights having the minimum difference from the equal weights, One of the first and second weights having a smaller difference from the equal weights, or Setting it to one of the default values, the method according to item 13. 18. A video processing apparatus, the apparatus comprising: A memory for storing instructions; and In the apparatus: Determining a weight for at least one of an inherited affine merge candidate, a constructed affine merge candidate, or a zero motion vector of a coding unit; and A video processing apparatus including a processor configured to execute instructions to bidirectionally predict a coding unit based on the determined weight. 19. The apparatus according to item 18, wherein the weight is determined based on a weight indicator signaled in a bitstream. 20. The determined weight is the apparatus according to item 18 including the weight of the constructed affine merge candidate, wherein the processor further causes the apparatus to: When a plurality of control points associated with the constructed affine merge candidate have one or more weights, to execute an instruction to determine the weight of the constructed affine merge candidate based on the weight associated with the upper left control point or the weight associated with the upper right control point. The apparatus is configured as such. 21. The determined weight is the apparatus according to item 18 or 20 including the weight of the constructed affine merge candidate, wherein the processor further causes the apparatus to: When a plurality of control points associated with the constructed affine merge candidate have the same weight, to determine the weights of the plurality of control points as the weight of the constructed affine merge candidate; or When the plurality of control points have different weights, to execute an instruction to determine a default value as the weight of the constructed affine merge candidate. The apparatus is configured as such. 22. The determined weight is the apparatus according to item 18 or 20 including the weight of the constructed affine merge candidate, wherein the processor further causes the apparatus to: To determine the weight most used by most of the plurality of control points from among the weights of the plurality of control points corresponding to the constructed affine merge candidate; and To execute an instruction to set the determined weight as the weight of the constructed affine merge candidate. The apparatus is configured as such. 23. The determined weight is the apparatus according to item 18 or 20 including the weight of the constructed affine merge candidate, wherein the processor further causes the apparatus to: To respectively determine the differences between the equal weights and the weights of the plurality of control points; To determine a first control point having the weight with the minimum difference from the equal weights from among the plurality of control points; and To execute an instruction to set the weight of the first control point as the weight of the constructed affine merge candidate. The apparatus is configured as such. 24. The determined weighting is the apparatus according to item 18 or 20 including the weighting of the constructed affine merge candidates, wherein the processor further causes the apparatus to: determine an average weighting of a plurality of control points corresponding to the constructed affine merge candidates; and execute an instruction to set the average weighting as the weighting of the constructed affine merge candidates, the apparatus. 25. Bidirectionally predicting a coding unit based on the determined weighting includes processing video data using an affine merge mode, and is the apparatus according to any one of items 18 to 24, wherein the processor further causes the apparatus to: execute an instruction to insert a zero motion vector having an equal weighting into the affine merge candidate list before inserting a zero motion vector having a non-equal weighting when constructing the affine merge candidate list, the apparatus. 26. Bidirectionally predicting a coding unit based on the determined weighting includes processing video data using an affine merge mode, and is the apparatus according to any one of items 18 to 24, wherein the processor further causes the apparatus to: execute an instruction to determine an order of a plurality of constructed affine merge candidates based on the weightings of the control points corresponding to each of the plurality of constructed affine merge candidates when constructing the affine merge candidate list, and a constructed affine merge candidate having control points with a less diverse weighting is assigned a higher priority than a constructed affine merge candidate having control points with a more diverse weighting, the apparatus. 27. The apparatus according to item 26, wherein when determining the order of a plurality of constructed affine merge candidates, the processor further causes the apparatus to: execute an instruction to use the default order of two constructed merge candidates in response to the weightings of the control points corresponding to each of the two constructed merge candidates having the same level of diversity, the apparatus. 28. The apparatus according to item 26 or 27, wherein the processor further causes the apparatus to: determine the availability of a first constructed affine merge candidate based on the weighting of control points corresponding to the first constructed affine merge candidate; and execute an instruction to add the first constructed affine merge candidate to an affine merge candidate list if the first constructed affine merge candidate is available. 29. The apparatus according to item 28, wherein when determining the availability of the first constructed affine merge candidate, the processor further causes the apparatus to: determine whether the weightings of two control points corresponding to the first constructed affine merge candidate have different signs; and execute an instruction to determine that the first constructed affine merge candidate is not available if the weightings of two control points corresponding to the first constructed affine merge candidate have different signs. 30. A video processing apparatus, comprising: a memory for storing instructions; and a processor configured to cause the apparatus to: determine the weighting of a first sub-block within an encoding unit based on the weighting of control points of the encoding unit; execute an instruction to bidirectionally predict the first sub-block based on the determined weighting. 31. The apparatus according to item 30, wherein when determining the weighting of the first sub-block within the encoding unit, the processor further causes the apparatus to: use the weighting of one of the control points as the weighting of the first sub-block if the first sub-block includes one of the control points, or execute an instruction to determine the weighting of the first sub-block according to a predefined rule if the first sub-block does not include a control point. 32. The symbolization unit is the apparatus according to item 30, which is divided into four sub - blocks and has two control points; When determining the weighting of the first sub - block within the symbolization unit, the processor further causes the apparatus to: In response to the first sub - block including one of the two control points, use the weighting of one of the two control points as the weighting of the first sub - block, or In response to the first sub - block not including the two control points, execute an instruction to set the weighting of the first sub - block to one of the weightings of the two control points having a shorter distance to the first sub - block or a default value. The apparatus is configured as such. 33. The symbolization unit is the apparatus according to item 30, which is divided into two sub - blocks and has three control points; When determining the weighting of the first sub - block within the symbolization unit, the processor further causes the apparatus to: In response to the first sub - block including only one of the three control points, use the weighting of one of the two control points as the weighting of the first sub - block, or In response to the first sub - block including at least two of the three control points, execute an instruction to use a default value or the weighting of one of the two control points as the weighting of the first sub - block. The apparatus is configured as such. 34. The symbolization unit is the apparatus according to item 30, which is divided into four sub - blocks and has three control points each having first, second, and third weightings; When determining the weighting of the first sub - block within the symbolization unit, the processor further causes the apparatus to: In response to the first sub - block including at least one of the three control points, use the weighting of one of the three control points as the weighting of the first sub - block, or In response to a sub - block not including the three control points, the weighting of the first sub - block is: The average value of the first, second, and third weightings, The median of the first, second, and third weightings, Equal weighting of coding units, One of the first, second, and third weightings having a minimum difference from the equal weighting, One of the first and second weightings having a smaller difference from the equal weighting, or An apparatus configured to execute an instruction to set to one of default values. A non-transitory computer-readable medium storing a set of instructions executable by one or more processors of a video processing apparatus to cause the video processing apparatus to perform a method, the method comprising Determining a weighting for at least one of an inherited affine merge candidate, a constructed affine merge candidate, or a zero motion vector of a coding unit; and Bidirectionally predicting a coding unit based on the determined weighting. 36. The non-transitory computer-readable medium according to item 35, wherein the weighting is determined based on a weighting indicator signaled in a bitstream. 37. The non-transitory computer-readable medium according to item 35, wherein the determined weighting includes a weighting of a constructed affine merge candidate, and The set of instructions further causes the apparatus to: When a plurality of control points associated with a constructed affine merge candidate have one or more weightings, determine the weighting of the constructed affine merge candidate based on the weighting associated with the top-left control point or the weighting associated with the top-right control point, which is executable by one or more processors of the apparatus. 38. The non-transitory computer-readable medium according to item 35 or 37, wherein the set of instructions further causes the apparatus to: When a plurality of control points associated with a constructed affine merge candidate have the same weighting, determine the weighting of the constructed affine merge candidate as the weighting of the plurality of control points; and A non - transitory computer - readable medium executable by one or more processors of a device to cause a default value to be determined as the weight of a constructed affine merge candidate when a plurality of control points have different weightings. 39. The non - transitory computer - readable medium according to item 35 or 37, wherein a set of instructions further causes the device to: Determine the weight used by most of the plurality of control points from among the weightings of the plurality of control points corresponding to the constructed affine merge candidate; and A non - transitory computer - readable medium executable by one or more processors of a device to cause the determined weight to be set as the weight of the constructed affine merge candidate. 40. The non - transitory computer - readable medium according to item 35 or 37, wherein a set of instructions further causes the device to: Determine the difference between the equal weightings and the weightings of the plurality of control points respectively; Determine a first control point having a weighting with the smallest difference from the equal weightings from among the plurality of control points; and A non - transitory computer - readable medium executable by one or more processors of a device to cause the weighting of the first control point to be set as the weighting of the constructed affine merge candidate. 41. The non - transitory computer - readable medium according to item 35 or 37, wherein a set of instructions further causes the device to: Determine the average weighting of the plurality of control points corresponding to the constructed affine merge candidate; and A non - transitory computer - readable medium executable by one or more processors of a device to cause the average weighting to be set as the weighting of the constructed affine merge candidate. 42. The non - transitory computer - readable medium according to any one of items 35 to 41, wherein a set of instructions further causes the device to: A non - transitory computer - readable medium executable by one or more processors of a device to cause the zero - motion vectors with equal weights to be inserted into an affine merge candidate list before inserting zero - motion vectors with unequal weights when constructing the affine merge candidate list. 43. The non - transitory computer - readable medium according to any one of items 35 to 41, wherein a set of instructions further causes the device to: When constructing an affine merge candidate list, be executable by one or more processors of a device to determine an order of a plurality of constructed affine merge candidates based on weights of control points corresponding to each of the plurality of constructed affine merge candidates; A non - transitory computer - readable medium in which a constructed affine merge candidate having a control point with less diverse weights is assigned a higher priority than a constructed affine merge candidate having a control point with more diverse weights. 44. The non - transitory computer - readable medium according to item 43, wherein a set of instructions further causes the device to: When weights of control points corresponding to two constructed merge candidates each have the same level of diversity, be executable by one or more processors of a device to use the default order of the two constructed merge candidates. 45. The non - transitory computer - readable medium according to item 43 or 44, wherein a set of instructions further causes the device to: Determine the availability of a first constructed affine merge candidate based on the weight of the control point corresponding to the first constructed affine merge candidate; and When the first constructed affine merge candidate is available, be executable by one or more processors of a device to add the first constructed affine merge candidate to the affine merge candidate list. 46. The non - transitory computer - readable medium according to item 45, wherein a set of instructions further causes the device to: Determining whether the weights of two control points corresponding to a first constructed affine merge candidate have different signs; and A non - transitory computer - readable medium executable by one or more processors of a device to cause the device to determine that a first constructed affine merge candidate is not available if the weights of two control points corresponding to the first constructed affine merge candidate have different signs. A non - transitory computer - readable medium storing a set of instructions executable by one or more processors of a video processing device to cause the video processing device to perform a method, the method comprising: Determining the weight of a first sub - block within an encoding unit based on the weights of control points of the encoding unit; and Bi - directionally predicting the first sub - block based on the determined weight. The non - transitory computer - readable medium according to item 47, wherein determining the weight of the first sub - block within the encoding unit: When the first sub - block includes one of the control points, using the weight of one of the control points as the weight of the first sub - block, or When the first sub - block does not include a control point, determining the weight of the first sub - block according to a pre - defined rule. The non - transitory computer - readable medium according to item 47, wherein the set of instructions is further executable by one or more processors of the device to cause the device to: split an encoding unit having two control points into four sub - blocks; Determining the weight of the first sub - block within the encoding unit: When the sub - block includes one of the two control points, using the weight of one of the two control points as the weight of the first sub - block, or A non-transitory computer-readable medium including setting the weight of the first sub-block to one of the weights of two control points having a shorter distance to the first sub-block or a default value when the first sub-block does not include two control points. 50. The non-transitory computer-readable medium according to item 47, wherein a set of instructions is executable by one or more processors of the device to further cause the device to divide an encoding unit into two sub-blocks having three control points; Determining the weight of the first sub-block within the encoding unit includes: When the first sub-block includes only one of the three control points, using the weight of one of the control points as the weight of the first sub-block, or When the first sub-block includes two of the three control points, using a default value or the weight of one of the two control points as the weight of the first sub-block A non-transitory computer-readable medium. 51. The non-transitory computer-readable medium according to item 47, wherein a set of instructions is executable by one or more processors of the device to further cause the device to divide an encoding unit into four sub-blocks, The encoding unit has three control points having first, second, and third weights; Determining the weight of the first sub-block within the encoding unit includes: When the first sub-block includes at least one of the three control points, using the weight of one of the control points as the weight of the first sub-block, or When the first sub-block does not include three control points, setting the weight of the first sub-block to: The average value of the first, second, and third weights, The median value of the first, second, and third weights, An equal weight of the encoding unit, One of the first, second, and third weights having the smallest difference from the equal weight, One of a first and a second weighting having a smaller difference from an equal weighting, or A non-transitory computer-readable medium including setting to one of default values.
[0104]
[0112] In the foregoing specification, embodiments have been described with reference to numerous specific details that may vary from embodiment to embodiment. Some adaptations and modifications of the described embodiments may be made. Other embodiments may become apparent to those skilled in the art from consideration of the specification and practice of the invention disclosed herein. It is intended that the specification and examples be considered as exemplary only, with the true scope and spirit of the invention being indicated by the following claims. It is also intended that the sequence of steps shown in the accompanying drawings is for illustrative purposes only and is not intended to be limited to any particular sequence of steps. Accordingly, those skilled in the art will appreciate that these steps may be performed in a different order while implementing the same method.
[0105]
[0113] In the accompanying drawings and the specification, exemplary embodiments have been disclosed. However, many variations and modifications can be made to these embodiments. Accordingly, specific terms are employed, but these are used only in a general and descriptive sense and not for purposes of limitation. The disclosed embodiments are not limited to the above examples, but instead are defined by the appended claims in light of the full scope of equivalents thereof.
Claims
Claim 1 A method for processing video data, comprising: determining a weighting for at least one of an inherited affine merge candidate, a constructed affine merge candidate, or a zero motion vector of an encoding unit; and bidirectionally predicting the encoding unit based on the determined weighting. Claim 2 The method according to claim 1, wherein the weighting is determined based on a weighting index signaled in a bitstream. Claim 3 The determined weighting includes a weighting of the constructed affine merge candidate, and the method further comprises: determining the weighting of the constructed affine merge candidate based on a weighting associated with a top left control point or a weighting associated with a top right control point in response to a plurality of control points associated with the constructed affine merge candidate having one or more weightings, according to the method of claim 1. Claim 4 The determined weighting includes a weighting of the constructed affine merge candidate, and the method further comprises: determining the weighting of the plurality of control points as the weighting of the constructed affine merge candidate in response to the plurality of control points associated with the constructed affine merge candidate having the same weighting; or determining a default value as the weighting of the constructed affine merge candidate in response to the plurality of control points having different weightings, according to the method of claim 3. Claim 5 The determined weighting includes a weighting of the constructed affine merge candidate, and the method further comprises: determining a weighting used by most of the plurality of control points from among weightings of the plurality of control points corresponding to the constructed affine merge candidate; and setting the determined weighting as the weighting of the constructed affine merge candidate, according to the method of claim 3. Claim 6 The determined weighting includes a weighting of the constructed affine merge candidate, and the method further comprises: determining a difference between an equal weighting and the weightings of the plurality of control points, respectively; determining a first control point having a weighting with a minimum difference from the equal weighting from among the plurality of control points; and setting the weighting of the first control point as the weighting of the constructed affine merge candidate, according to the method of claim 3. Claim 7 The determined weighting includes the weighting of the constructed affine merge candidates, and the method further determines an average weighting of a plurality of control points corresponding to the constructed affine merge candidates; and sets the average weighting as the weighting of the constructed affine merge candidates, the method according to claim 3.
8. Bidirectionally predicting the coding unit based on the determined weighting includes processing the video data using an affine merge mode, and the method further includes inserting zero motion vectors having equal weightings into the affine merge candidate list before inserting zero motion vectors having unequal weightings when constructing the affine merge candidate list, the method according to claim 1.
9. Bidirectionally predicting the coding unit based on the determined weighting includes processing the video data using an affine merge mode, and the method further includes determining an order of the plurality of constructed affine merge candidates based on the weightings of the control points corresponding to each of the plurality of constructed affine merge candidates when constructing the affine merge candidate list, wherein a constructed affine merge candidate having control points with less diverse weightings is assigned a higher priority than a constructed affine merge candidate having control points with more diverse weightings, the method according to claim 1.
10. Said determining the order of the plurality of constructed affine merge candidates is: using the default order of the two constructed merge candidates in response to the weightings of the control points corresponding to each of the two constructed merge candidates having the same level of diversity the method according to claim 9.
11. determining the availability of a first constructed affine merge candidate based on the weighting of the control points corresponding to the first constructed affine merge candidate; and further including adding the first constructed affine merge candidate to the affine merge candidate list in response to a determination that the first constructed affine merge candidate is available, the method according to claim 9.
12. Said determining the availability of the first constructed affine merge candidate is Determining whether the weightings of two control points corresponding to the first constructed affine merge candidate have different signs; and Determining that the first constructed affine merge candidate is not available in response to determining that the weightings of the two control points corresponding to the first constructed affine merge candidate have different signs, the method of claim 11. **Claim 13** A method for processing video data, comprising: Determining the weighting of a first sub-block within the coding unit based on the weighting of the control points of the coding unit; and Bi-directionally predicting the first sub-block based on the determined weighting. **Claim 14** Determining the weighting of the first sub-block within the coding unit comprises: Using the weighting of one of the control points as the weighting of the first sub-block in response to the first sub-block including one of the control points, or Determining the weighting of the first sub-block according to a predefined rule in response to the first sub-block not including the control points, the method of claim 13. **Claim 15** The coding unit is divided into four sub-blocks and has two control points; Determining the weighting of the first sub-block within the coding unit comprises: Using the weighting of one of the two control points as the weighting of the first sub-block in response to the first sub-block including one of the two control points, or Setting the weighting of the first sub-block to be the weighting of one of the two control points that has a shorter distance to the first sub-block or to be a default value in response to the first sub-block not including the two control points, the method of claim 13. **Claim 16** The coding unit is divided into two sub-blocks and has three control points; Determining the weighting of the first sub-block within the coding unit comprises: Using the weighting of one of the control points as the weighting of the first sub-block in response to the first sub-block including only one of the three control points, or The method according to claim 13, comprising using, as the weighting of the first sub-block, a default value or the weighting of one of the two control points in response to the first sub-block including at least two of the three control points.
17. The coding unit is divided into four sub-blocks and has three control points each having first, second, and third weightings; Determining the weighting of the first sub-block within the coding unit comprises: using, as the weighting of the first sub-block, the weighting of one of the three control points in response to the first sub-block including at least one of the three control points, or when the sub-block does not include the three control points, setting the weighting of the first sub-block to be one of: the average value of the first, second, and third weightings, the median value of the first, second, and third weightings, equal weighting of the coding unit, one of the first, second, and third weightings having the smallest difference from the equal weighting, one of the first and second weightings having a smaller difference from the equal weighting, or a default value, The method according to claim 13, comprising setting the weighting to be one of the above.
18. A video processing apparatus comprising: a memory for storing instructions; and a processor, the processor being configured to: determine a weighting for at least one of an inherited affine merge candidate, a constructed affine merge candidate, or a zero motion vector of a coding unit; and bidirectionally predict the coding unit based on the determined weighting. The apparatus is configured to execute the instructions to cause the apparatus to perform the above.
19. A video processing apparatus comprising: a memory for storing instructions; and a processor, the processor being configured to: determine the weighting of a first sub-block within the coding unit based on the weighting of a control point of the coding unit; bidirectionally predict the first sub-block based on the determined weighting. The apparatus is configured to execute the instructions to cause the apparatus to perform the above.
20. A non-transitory computer-readable medium storing a set of instructions, the instructions being executable by one or more processors of the video processing apparatus to cause the video processing apparatus to perform a method, the method comprising: Determining a weighting for at least one of an inherited affinity merge candidate, a constructed affinity merge candidate, or a zero motion vector of an encoding unit; and Bi-directionally predicting the encoding unit based on the determined weighting. A non-transitory computer-readable medium including the foregoing.
Citation Information
Patent Citations
On block level bi-prediction with weighted averaging
US20200204807A1