Methods, apparatus, and computer programs for video coding.

Decoder-side motion vector refinement and bidirectional optical flow techniques enhance video coding efficiency by refining motion vectors, addressing redundancy and distortion issues in inter-picture prediction, resulting in improved compression ratios and image quality.

JP7849548B2Active Publication Date: 2026-04-21TENCENT AMERICA LLC
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
TENCENT AMERICA LLC
Filing Date
2025-06-12
Publication Date
2026-04-21

AI Technical Summary

Technical Problem

Existing video coding technologies face challenges in efficiently reducing redundancy and maintaining image quality, particularly in inter-picture prediction, due to rounding errors and non-lossless motion vector prediction mechanisms, which can lead to suboptimal compression ratios and image distortion.

Method used

The implementation of decoder-side motion vector refinement (DMVR) and bidirectional optical flow (BDOF) techniques to enhance motion vector prediction accuracy, enabling more precise reconstruction of video frames by refining motion vectors based on multiple reference pictures, and disabling refinement techniques when equal-weighting conditions are not met.

Benefits of technology

Improves video compression efficiency and maintains image quality by reducing redundancy and distortion, allowing for higher compression ratios without significant quality loss.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007849548000009
    Figure 0007849548000009
  • Figure 0007849548000010
    Figure 0007849548000010
  • Figure 0007849548000011
    Figure 0007849548000011
Patent Text Reader

Abstract

To provide a method and apparatus for video encoding / decoding.SOLUTION: An apparatus for video decoding includes a receiving circuit and a processing circuit. A method of the processing circuit includes: decoding prediction information of a current block in a current picture from a coded video bitstream, the prediction information being indicative of an inter prediction mode having a probability that a refinement technique based on a first reference picture and a second reference picture is used; determining whether a first equal weighting condition of chroma components from the first reference picture and the second reference picture is satisfied; and disabling, in response to the fact that the first equal weighting condition of the chroma components from the first reference picture and the second reference picture is not satisfied, the refinement technique in a reconstruction of a sample in the current block.SELECTED DRAWING: Figure 12
Need to check novelty before this filing date? Find Prior Art

Description

[Background technology]

[0001] Reference This application claims priority to U.S. Patent Application No. 16 / 851,052, “Method and Apparatus for Video Coding,” filed on 16 April 2020, which in turn claims priority to U.S. Provisional Application No. 62 / 836,598, “Conditions for Applying DMVR / BDOF,” filed on 19 April 2019. The entire disclosure of the prior applications is incorporated into this application by reference.

[0002] Technical field This disclosure generally describes embodiments related to video coding.

[0003] background The background description provided in this application is for the general purpose of presenting the circumstances of this disclosure. Work made in the name of the present inventor is not, expressly or implicitly, recognized as prior art to this disclosure to the extent that such work is described in this background section or in any other manner that does not qualify as prior art at the time of filing.

[0004] Video coding and decoding can be performed using inter-picture prediction with motion compensation. Uncompressed digital video can contain a series of pictures, each picture having spatial dimensions of, for example, 1920x1080 luminance samples and associated chrominance samples. The series of pictures can have a fixed or variable picture rate (informally known as the frame rate), for example, 60 pictures / second, i.e., 60Hz. Uncompressed video has considerable bitrate requirements. For example, 1080p60 4:2:0 video with 8 bits per sample (1920x1080 luminance sample resolution at a frame rate of 60Hz) requires a bandwidth of nearly 1.5 Gbit / s. One hour of such video requires more than 600 GB of storage space.

[0005] One of the purposes of video coding and decoding is to reduce the redundancy of the input video signal through compression. Compression can, in some cases, help reduce the aforementioned bandwidth or storage space requirements by more than two orders of magnitude. Both lossless and non-lossless compression, as well as combinations thereof, can be used. Lossless compression is a technique in which an exact copy of the original signal can be reconstructed from the compressed original signal. When using non-lossless compression, the reconstructed signal may not be identical to the original signal, but the distortion between the original and reconstructed signals is small enough that the reconstructed signal is useful for its intended purpose. For video, non-lossless compression is widely used. The amount of distortion that can be tolerated depends on the application; for example, users of certain consumer streaming applications may be able to tolerate higher distortion than users of television distribution applications. The achievable compression ratio can reflect that higher tolerable distortion can result in a higher compression ratio.

[0006] Motion compensation may be a non-lossless compression technique that involves spatially shifting a block of sample data from a previously reconstructed picture or a portion thereof (reference picture) in the direction indicated by a motion vector (MV), and then using that block to predict the newly reconstructed picture or portion of the picture. In some cases, the reference picture may be the same as the picture currently being reconstructed. The MV may have two dimensions, X and Y, or three dimensions, where the third dimension indicates the reference picture in use (the latter can indirectly be considered the time dimension).

[0007] In some video compression techniques, the motion vector (MV) applicable to a particular area of ​​sample data can be predicted from other MVs, for example, those relating to other areas of sample data spatially adjacent to the area being reconstructed and preceding that MV in the decoding order. This significantly reduces the amount of data required to code the MV, thereby eliminating redundancy and improving compression. MV prediction can work effectively, for example, when coding an input video signal derived from a camera (known as natural video), because there is a statistical likelihood that an area larger than the area to which a single MV is applicable will move in a similar direction, and therefore, in some cases, it is possible to predict it using similar motion vectors derived from the MVs of adjacent areas. This results in an MV found to be similar to or identical to the MV predicted from the surrounding MVs for a given area, which can be represented with fewer bits than those used when directly coding the MV after entropy coding. In some cases, MV prediction can be an example of lossless compression of the signal (i.e., MV) derived from the original signal (i.e., sample stream). In other cases, MV prediction itself may be non-lossless due to rounding errors, for example, when calculating the predictor from several surrounding MVs.

[0008] Various MV prediction mechanisms are described in H.265 / HEVC (ITU-T Rec.H.265, “High Efficiency Video Coding”, December 2016). Of the many MV prediction mechanisms provided by H.265, the one described in this application is a technique hereafter referred to as “spatial merging”.

[0009] Referring to Figure 1, the current block (101) contains samples discovered by the encoder during the motion search process, predictable from previous blocks of the same size but spatially shifted. Instead of directly coding its MV, the MV can be derived from metadata associated with one or more reference pictures, using the MV associated with any of the five adjacent blocks (102 through 106, respectively) indicated as A0, A1, and B0, B1, B2, starting from the most recent reference picture (in the order of decoding). In H.265, the MV prediction can use predictors from the same reference pictures used by the adjacent blocks. [Overview of the Initiative]

[0010] The aspects of the disclosure provide methods and apparatus for video coding / decoding. In some examples, the apparatus for video decoding includes a receiving circuit and a processing circuit. For example, the processing circuit decodes prediction information for the current block in the current picture from a coded video bitstream. The prediction information indicates an interprediction mode that may utilize refinement techniques based on a first reference picture and a second reference picture. The processing circuit determines whether a first equal-weighting condition is satisfied for the chroma components from the first and second reference pictures. In response to the first equal-weighting condition not being satisfied for the chroma components from the first and second reference pictures, the processing circuit disables the refinement technique in the reconstruction of the sample in the current block.

[0011] In some embodiments, the processing circuit disables the refinement technique in the reconstruction of the luma sample in the current block in response to the failure to satisfy the first equal-weighting condition for the chroma components from the first and second reference pictures. In some examples, the processing circuit determines whether the second equal-weighting condition for the luma components from the first and second reference pictures is satisfied. The processing circuit then disables the refinement technique in the reconstruction of the luma sample in the current block in response to the failure to satisfy at least one of the first equal-weighting condition for the chroma components and the second equal-weighting condition for the luma components.

[0012] In some embodiments, the processing circuit disables the refinement technique in the reconstruction of the chromatic sample in the current block in response to the fact that the first equal-weighted condition of the chromatic components from the first and second reference pictures is not satisfied.

[0013] It should be noted that the refinement technique may include at least one of the following: bidirectional optical flow (BDOF) and decoder-side motion vector refinement (DMVR).

[0014] In some embodiments, one of the first and second reference pictures has a picture order count greater than the current picture, and the other of the first and second reference pictures has a picture order count smaller than the current picture.

[0015] In some embodiments, the processing circuit determines that the equal weighting condition for chroma components from the first and second reference pictures is not satisfied, based on the fact that at least one of the first flag of the chroma weight of the first reference picture and the second flag of the chroma weight of the second reference picture is not equal to zero.

[0016] Aspects of the present disclosure also provide a non - transient computer - readable medium storing instructions that cause a computer to execute a video decoding method when executed by the computer for video decoding.

Brief Description of the Drawings

[0017] Further features, properties, and various advantages of the disclosed subject matter will become more apparent from the following detailed description and the accompanying drawings.

[0018] [Figure 1] It is a schematic diagram of the current block and its surrounding spatial merge candidates in an example.

[0019] [Figure 2] It is a schematic diagram of a simplified block diagram of a communication system (200) according to an embodiment.

[0020] [Figure 3] It is a schematic diagram of a simplified block diagram of a communication system (300) according to an embodiment.

[0021] [Figure 4] It is a schematic diagram of a simplified block diagram of a decoder according to an embodiment.

[0022] [Figure 5] It is a schematic diagram of a simplified block diagram of an encoder according to an embodiment.

[0023] [Figure 6] Shows a block diagram of an encoder according to another embodiment.

[0024] [Figure 7] Shows a block diagram of a decoder according to other embodiments.

[0025] [Figure 8]This shows an example of an extended coding unit area in bi-directional optical flow (BDOF).

[0026] [Figure 9] An example of decoder-side motion vector refinement (DMVR) is shown.

[0027] [Figure 10A] Here is a list of conditions for applying the BDOF technique. [Figure 10B] Here is a list of conditions for applying the BDOF technique.

[0028] [Figure 11A] Here is a list of conditions for applying DMVR technology. [Figure 11B] Here is a list of conditions for applying DMVR technology.

[0029] [Figure 12] A flowchart outlining an example process according to several embodiments of this disclosure is provided.

[0030] [Figure 13] This is a schematic diagram of a computer system according to an embodiment. [Modes for carrying out the invention]

[0031] Figure 2 shows a simplified block diagram of a communication system (200) according to one embodiment of the present disclosure. The communication system (200) includes a plurality of terminal devices that can communicate with each other, for example, over a network (250). For example, the communication system (200) includes a first pair of terminal devices (210) and (220) interconnected over the network (250). In the example of Figure 2, the first pair of terminal devices (210) and (220) perform one-way transmission of data. For example, terminal device (210) can encode video data (e.g., a stream of video pictures captured by terminal device (210)) for transmission to other terminal devices (220) over the network (250). The encoded video data can be transmitted in the form of one or more encoded video bitstreams. The terminal device (220) can receive coded video data from the network (250), decode the coded video data to restore the video picture, and display the video picture according to the restored video data. One-way data transmission may be common in media serving applications, etc.

[0032] In another example, the communication system (200) includes a second pair of terminal devices (230) and (240) for bidirectional transmission of coded video data that may occur, for example, during a video conference. With regard to bidirectional transmission of data, for example, each terminal device of terminal devices (230) and (240) can code video data (e.g., a stream of video pictures captured by the terminal device) for transmission to the other terminal device of terminal devices (230) and (240) via the network (250). Each terminal device of terminal devices (230) and (240) is also capable of receiving coded video data transmitted by the other terminal device of terminal devices (230) and (240), decoding the coded video data to restore video pictures, and displaying video pictures on an accessible display device according to the restored video data.

[0033] In the example in Figure 2, terminal devices (210), (220), (230), and (240) are shown as a server, a personal computer, and a smartphone, respectively, but the principles of this disclosure are not limited thereto. Embodiments of this disclosure find applications in laptop computers, tablet computers, media players, and / or dedicated video conferencing equipment. Network (250) may represent any number of networks that carry coded video data between terminal devices (210), (220), (230), and (240), including, for example, wired and / or wireless communication networks. Communication network (250) can exchange data over circuit-switched and / or packet-switched channels. Typical networks include telecommunications networks, local area networks, wide area networks, and / or the Internet. For the purposes of this disclosure, the architecture and topology of network (250) may not be important to the operation of this disclosure unless described below.

[0034] Figure 3 shows an example of the application of the disclosed subject matter, illustrating the arrangement of a video encoder and video decoder in a streaming environment. The disclosed subject matter is equally applicable to other video-enabled applications, including, for example, video conferencing, digital television, and the storage of compressed video on digital media (including CDs, DVDs, memory sticks, etc.).

[0035] The streaming system may include a video source (301), such as a digital camera, and may also include a capture subsystem (313) capable of generating a stream of, for example, uncompressed video pictures (302). In one example, the video picture stream (302) includes a sample captured by the digital camera. The video picture stream (302), which is drawn as a thick line to emphasize a larger amount of data compared to encoded video data (304) (or encoded video bitstream), can be processed by an electronic device (320) including a video encoder (303) coupled to the video source (301). The video encoder (303) may include hardware, software, or a combination thereof, and can operate or realize aspects of the disclosed subject matter as described in detail below. The encoded video data (304) (or encoded video bitstream (304)), which is drawn as a thin line to emphasize the smaller amount of data compared to the video picture (302) stream, can be stored in the streaming server (305) for future use. One or more streaming client subsystems, such as client subsystems (306) and (308) in Figure 3, can access the streaming server (305) to retrieve copies (307) and (309) of the encoded video data (304). The client subsystem (306) may include a video decoder (310) within, for example, an electronic device (330). The video decoder (310) decodes the incoming copy (307) of the encoded video data and generates an output stream (311) of a video picture that can be rendered on a display (312) (e.g., a display screen) or other rendering device (not shown). In some streaming systems, encoded video data (304), (307), and (309) (e.g., video bitstream) can be encoded according to specific video coding / compression standards.Examples of these standards include ITU-T Recommendation H.265. In one example, a video coding standard under development is informally known as Multipurpose Video Coding (VVC). The disclosed subject matter may be used in the context of VVC.

[0036] It should be noted that electronic devices (320) and (330) may include other components (not shown). For example, electronic device (320) may include a video decoder (not shown), and electronic device (330) may also include a video encoder (not shown).

[0037] Figure 4 shows a block diagram of a video decoder (410) according to one embodiment of the present disclosure. The video decoder (410) may be included in an electronic device (430). The electronic device (430) may include a receiver (431) (e.g., a receiving circuit). The video decoder (410) can be used in place of the video decoder (310) in the example of Figure 3.

[0038] The receiver (431) is capable of receiving one or more coded video sequences to be decoded by the video decoder (410); in the same or different embodiments, it is possible to receive one coded video sequence at a time, provided that the decoding of each coded video sequence is independent of other coded video sequences. The coded video sequences can be received from a channel (401), which may be a hardware / software link to a storage device that stores coded video data. The receiver (431) is capable of receiving coded video data together with other data, such as coded audio data and / or auxiliary data streams, which can be transmitted using their respective entities (not shown). The receiver (431) can isolate coded video sequences from other data. To address network jitter, a buffer memory (415) may be coupled between the receiver (431) and the entropy decoder / parser (420) (hereinafter referred to as "Parser (420)"). In certain applications, the buffer memory (415) is part of the video decoder (410). In other cases, it may be outside the video decoder (410) (not shown). In yet another example, a buffer memory (not shown) may exist outside the video decoder (410), for example, to deal with network jitter, and furthermore, another buffer memory (415) may exist inside the video decoder (410), for example, to handle playback timing. If the receiver (431) is receiving data from a store / forward device with sufficient bandwidth and controllability, or from a synchronous network, the buffer memory (415) may be unnecessary or can be made smaller.For use in best-effort packet networks such as the Internet, buffer memory (415) may be required, which may be relatively large and, advantageously, can be of an adaptive size, and may be at least partially implemented in an operating system or similar element (not shown) outside of the video decoder (410).

[0039] The video decoder (410) may include a parser (420) to reconstruct symbols (421) from the coded video sequence. These categories of symbols include information used to manage the operation of the video decoder (410), and potentially information for controlling rendering devices, such as rendering devices (412) (e.g., display screens) that are not integral parts of the electronic device (430) but can be coupled to the electronic device (430), as shown in Figure 4. The rendering device control information may be in the form of supplemental enhancement information (SEI messages) or video usability information (VUI) parameter set fragments (not shown). The parser (420) can parse / entropy decode the received coded video sequence. The coding of the video sequence to be coded may follow video coding techniques or standards and may follow various principles, including variable-length coding, Huffman coding, and arithmetic coding with or without context influence. The parser (420) can extract from a coded video sequence a set of subgroup parameters for at least one subgroup of pixels in a video decoder, based on at least one parameter corresponding to a group. Subgroups can include groups of pictures (GOP), pictures, tiles, slices, macroblocks, coding units (CU), blocks, transform units (TU), predictive units (PU), etc. The parser (420) can also extract from coded video sequence information such as transform coefficients, quantization parameter values, and motion vectors.

[0040] The parser (420) can perform entropy decoding / analysis on the video sequence received from buffer memory (415) in order to generate symbols (421).

[0041] The reconstruction of symbol (421) may include multiple different units depending on the type of coded video picture or part thereof (inter and intra picture, inter and intra block) and other factors. How each unit is included can be controlled by subgroup control information analyzed by parser (420) from the coded video sequence. The flow of such subgroup control information between parser (420) and the following multiple units is not depicted for clarity.

[0042] The video decoder (410) can be conceptually subdivided beyond the functional blocks already described into several functional units, as described below. In practical implementations operating under commercial constraints, many of these units can interact closely with each other and be at least partially integrated. However, for the purpose of illustrating the subject matter being disclosed, the following conceptual subdivision into functional units is appropriate.

[0043] The first unit is the scaler / inverse unit (451). The scaler / inverse unit (451) receives not only the quantized transformation coefficients but also control information (including the transformation to be used, block size, quantization factor, quantization scaling matrix, etc.) from the parser (420) as symbols (421). The scaler / inverse unit (451) can output a block containing sample values ​​that can be input to the aggregator (455).

[0044] In some cases, the output samples of the scaler / inverse transform (451) may relate to intra-coded blocks: i.e., blocks that do not use predictive information from previously reconstructed pictures but can use predictive information from previously reconstructed portions of the current picture. Such predictive information can be provided by the intra-picture predictive unit (452). In some cases, the intra-picture predictive unit (452) generates blocks of the same size and shape as the block being reconstructed, using already reconstructed surrounding information taken from the current picture buffer (458). The current picture buffer (458) buffers, for example, partially reconstructed current pictures and / or fully reconstructed current pictures. The aggregator (455) may, in some cases, add the predictive information generated by the intra-predictive unit (452) to the output sample information, such as that provided by the scaler / inverse transform unit (451), sample by sample.

[0045] Otherwise, the output samples of the scaler / inverse unit (451) may be associated with intercoded motion-compensated blocks. In such cases, the motion-compensated prediction unit (453) can access the reference picture memory (457) to retrieve the samples to be used for prediction. After motion-compensating the retrieved samples according to the symbols (421) associated with the blocks, these samples are added by the aggregator (455) to the output of the scaler / inverse unit (451) (in this case, called residual samples or residual signals) to generate output sample information. The addresses in the reference picture memory (457) from which the motion-compensated prediction unit (453) fetches the prediction samples can be controlled by motion vectors available to the motion-compensated prediction unit (453), in the form of symbols (421) which can have, for example, X, Y, and reference picture components. Furthermore, motion compensation may include interpolation of sample values, motion vector prediction mechanisms, etc., such as those retrieved from reference picture memory (457), when accurate motion vectors of sub-samples are used.

[0046] The output samples of the aggregator (455) may be subject to various loop filtering techniques within the loop filter unit (456). The video compression technique is controlled by parameters contained in the coded video sequence (also called the coded video bitstream) and made available to the loop filter unit (456) as symbols (421) from the parser (420), but may include in-loop filtering techniques that can respond to metadata obtained during the decoding of earlier parts (in the order of decoding) of the coded picture or coded video sequence, as well as to previously reconstructed loop-filtered sample values.

[0047] The output of the loop filter unit (456) can be a sample stream that can be output to the rendering device (412) as well as stored in reference picture memory (457) for use in future inter-picture prediction.

[0048] A given coded picture, once fully reconfigured, can be used as a reference picture for future predictions. For example, once the coded picture corresponding to the current picture is fully reconfigured and the coded picture is identified as a reference picture (e.g., by the parser (420)), the current picture buffer (458) can become part of the reference picture memory (457), and the new current picture buffer can be reallocated before the reconfiguration of subsequent coded pictures begins.

[0049] A video decoder (410) can perform decoding operations according to a specified video compression technique in a standard such as ITU-T Rec.H.265. A coded video sequence can conform to the syntax specified by the video compression technique or standard being used, in the sense that the coded video sequence adheres to both the syntax of the video compression technique or standard and a profile documented in the video compression technique or standard. Specifically, a profile allows for the selection of a particular tool from all tools available in the video compression technique or standard, with the latter being the only tool usable under that profile. Furthermore, compliance requires that the complexity of the coded video sequence be within the range defined by the level of the video compression technique or standard. In some cases, this level limits the maximum picture size, maximum frame rate, maximum reconstruction sample rate (e.g., measured in megasamples per second), maximum reference picture size, etc. The limits set by the level may, in some cases, be further restricted by the virtual reference decoder (HRD) specification and metadata for HRD buffer management signaled in the coded video sequence.

[0050] In one embodiment, the receiver (431) may receive additional (redundant) data along with the encoded video. The additional data may be included as part of the coded video sequence. The additional data may be used by the video decoder (410) to properly decode the data and / or to more accurately reconstruct the original video data. The additional data may be in the form of, for example, a time, space, or signal-to-noise ratio (SNR) enhancement layer, redundant slices, redundant pictures, forward error correction code, etc.

[0051] Figure 5 shows a block diagram of a video encoder (503) according to one embodiment of the present disclosure. The video encoder (503) is included in an electronic device (520). The electronic device (520) includes a transmitter (540) (e.g., a transmitting circuit). The video encoder (503) can be used in place of the video encoder (303) in the example of Figure 3.

[0052] The video encoder (503) can receive video samples from a video source (501) (not part of the electronic device (520) in the example in Figure 5) which is capable of capturing video images to be coded by the video encoder (503). In another example, the video source (501) is part of the electronic device (520).

[0053] The video source (501) can provide a source video sequence coded by a video encoder (503) in the form of a digital video sample stream that can be any suitable bit depth (e.g., 8-bit, 10-bit, 12-bit, ...), any color space (e.g., BT.601 YCrCB, RGB, ...), and any suitable sampling structure (e.g., YCrCb 4:2:0, YCrCb 4:4:4). In a media serving system, the video source (501) may be a storage device that stores pre-prepared video. In a video conferencing system, the video source (501) may be a camera that captures local image information as a video sequence. The video data may be provided as a series of individual pictures that convey motion when viewed in sequence. The picture itself can be organized as a spatial array of pixels, and each pixel may contain one or more samples depending on the sampling structure, color space, etc., in use. Those skilled in the art can easily understand the relationship between pixels and samples. The following explanation focuses on the sample.

[0054] According to one embodiment, the video encoder (503) can encode and compress pictures of a source video sequence into a coded video sequence (543) in real time or under any other time constraints required by the application. Enforcing an appropriate coding speed is one function of the controller (550). In some embodiments, the controller (550) controls and is functionally coupled to other functional units, as described below. The coupling is not depicted for clarity. Parameters set by the controller (550) may include rate control-related parameters (picture skip, quantizer, lambda value of rate distortion optimization technique, ...), picture size, group of pictures (GOP) layout, maximum motion vector search range, etc. The controller (550) may be configured to have other appropriate functions related to the video encoder (503) optimized for a particular system design.

[0055] In some embodiments, the video encoder (503) is configured to operate in a coding loop. In an extremely simplified explanation, in one example, the coding loop may include a source coder (530) (responsible for generating symbols, such as a symbol stream, based on, for example, an input picture and a reference picture to be coded) and a (local) decoder (533) incorporated into the video encoder (503). The decoder (533) reconstructs the symbols to generate sample data in a manner similar to that produced by a (remote) decoder (since any compression between the symbols and the coded video bitstream is lossless in the video compression techniques considered in the disclosed subject matter). The reconstructed sample stream (sample data) is input to a reference picture memory (534). Since the decoding of the symbol stream yields a bit-exact result that is independent of the decoder's location (local or remote), the contents of the reference picture memory (534) are also bit-exact between the local encoder and the remote encoder. In other words, the predictive part of the encoder "sees" the exact same sample values ​​as the reference picture samples that the decoder "sees" when using predictions during decoding. This fundamental principle of reference picture synchronization (and the resulting drift when synchronization cannot be maintained due to, for example, channel errors) is also used in several related techniques.

[0056] It is possible to assume that the operation of the “local” decoder (533) is the same as that of a “remote” decoder, such as the video decoder (410) which has already been described in detail above in relation to Figure 4. However, as can be briefly seen in Figure 4, since symbols are available and the encoding / decoding of symbols to a coded video sequence by the entropy coder (545) and parser (420) is lossless, the entropy decoding unit of the video decoder (410), which includes the buffer memory (415) and parser (420), may not be fully realized in the local decoder (533).

[0057] An observation that can be made at this point is that any decoder techniques other than analysis / entropy decoding present in the decoder must necessarily also be present in the corresponding encoder in substantially the same functional form. For this reason, the disclosed subject matter focuses on the operation of the decoder. The description of encoder techniques can be omitted as it is the inverse of the comprehensively described decoder techniques. More detailed explanations are necessary only in specific areas, which are given below.

[0058] During operation, the source coder (530) may, in some examples, perform motion-compensated predictive coding, predictively coding the input picture by referencing one or more previously coded pictures from a video sequence designated as “reference pictures”. In this way, the coding engine (532) codes the difference between the pixel blocks of the input picture and the pixel blocks of the reference picture that may be selected as predictive references for the input picture.

[0059] The local video decoder (533) can decode coded video data of a picture that can be designated as a reference picture based on symbols generated by the source coder (530). The operation of the coding engine (532) may, advantageously, be a non-lossless process. When coded video data is decoded by a video decoder (not shown in Figure 5), the reconstructed video sequence may typically be a replica of the source video sequence with some errors. The local video decoder (533) can repeat the decoding process that can be performed by the video decoder on the reference picture, causing the reconstructed reference picture to be stored in the reference picture cache (534). In this way, the video encoder (503) can locally store a copy of the reconstructed reference picture having common content as the reconstructed reference picture obtained by the video decoder at the far end (assuming no transmission errors).

[0060] The predictor (535) can perform predictive searches for the coding engine (532). That is, for a new picture to be coded, the predictor (535) can search the reference picture memory (534) for sample data (as candidate reference pixel blocks) or given metadata (reference picture motion vectors, block shapes, etc.), which may serve as appropriate predictive references for the new picture. The predictor (535) can operate on a sample block-pixel block basis to find appropriate predictive references. In some cases, the input picture may have predictive references drawn from multiple reference pictures stored in the reference picture memory (534), as determined by the search results obtained by the predictor (535).

[0061] The controller (550) can manage the coding operations of the source coder (530), including, for example, setting parameters and subgroup parameters used to encode video data.

[0062] All outputs of the aforementioned functional units are subject to entropy coding in the entropy coder (545). The entropy coder (545) converts the symbols generated by the various functional units into coded video sequences by lossless compression of the symbols according to techniques such as Huffman coding, variable-length coding, and arithmetic coding.

[0063] The transmitter (540) can buffer coded video sequences, such as those created by the entropy coder (545), in preparation for transmission over the communication channel (560), which may be a hardware / software link to a storage device that stores coded video data. The transmitter (540) can merge coded video data from the video coder (503) with other data to be transmitted, such as coded audio data and / or auxiliary data streams (source not shown).

[0064] The controller (550) can manage the operation of the video encoder (503). During coding, the controller (550) can assign a specific coded picture type to each coded picture, which may affect the coding techniques that can be applied to each picture. For example, a picture may often be assigned as one of the following picture types:

[0065] An intra-picture (I-picture) is one that can be encoded and decoded without using any other picture in the sequence as a source of prediction. Some video codecs allow different types of intra-pictures, including, for example, independent decoder refresh ("IDR") pictures. Those skilled in the art are aware of these variations of I-pictures, as well as their respective uses and characteristics.

[0066] A predictive picture (P-picture) can be encoded and decoded using intra-prediction or inter-prediction, which uses at most one motion vector and a reference index to predict the sample value of each block.

[0067] A bidirectional predictive picture (B-picture) can be encoded and decoded using intra-prediction or inter-prediction, which uses at most two motion vectors and reference indices to predict the sample values ​​of each block. Similarly, multiple predictive pictures can use more than two reference pictures and associated metadata to reconstruct a single block.

[0068] A source picture can typically be spatially subdivided into multiple sample blocks (e.g., 4x4, 8x8, 4x8, or 16x16 sample blocks) and coded block by block. Blocks can be predictively coded by referencing other (already coded) blocks, as determined by the coding assignment applied to each picture in the block. For example, blocks of picture I may be coded non-predictively, or they may be coded predictively by referencing already coded blocks of the same picture (spatial prediction or intra-prediction). Pixel blocks of picture P may be coded predictively by spatial prediction or temporal prediction by referencing one previously coded reference picture. Blocks of picture B may be coded predictively by spatial prediction or temporal prediction by referencing one or two previously coded reference pictures.

[0069] The video encoder (503) can perform coding operations in accordance with a given video coding technique or standard, such as ITU-T Rec.H.265. In this operation, the video encoder (503) can perform various compression operations, including predictive coding operations that take advantage of temporal and spatial redundancy in the input video sequence. The coded video data can therefore conform to the syntax specified by the video coding technique or standard being used.

[0070] In one embodiment, the transmitter (540) may transmit additional data along with the encoded video. The source coder (530) may include such data as part of the encoded video sequence. The additional data may include temporal / spatial / SNR enhancement layers, other forms of redundant data (such as redundant pictures and slices, SEI messages, VUI parameter set fragments, etc.).

[0071] Video can be captured as multiple source pictures (video pictures) in a time sequence. Intra-picture prediction (often abbreviated as intra-prediction) utilizes spatial correlations within a given picture, while inter-picture prediction utilizes (temporal or other) correlations between pictures. In one example, a particular picture under encoding / decoding, called the current picture, is divided into blocks. If a block in the current picture resembles a reference block in a reference picture that has been previously coded and is still buffering in the video, then the block in the current picture can be coded by a vector called a motion vector. The motion vector points to a reference block in the reference picture and, if multiple reference pictures are used, can have a third dimension to identify the reference pictures.

[0072] In some embodiments, a dual-prediction technique can be used for inter-picture prediction. According to the dual-prediction technique, two reference pictures are used, such as a first reference picture and a second reference picture, both of which precede the current picture in the video in decoding order (although they may be past and future in display order, respectively). Blocks in the current picture can be coded by a first motion vector pointing to a first reference block in the first reference picture and a second motion vector pointing to a second reference block in the second reference picture. Blocks can be predicted by a combination of the first and second reference blocks.

[0073] Furthermore, merge mode technology can be used for inter-picture prediction to improve coding efficiency.

[0074] According to some embodiments of this disclosure, predictions such as inter-picture prediction and intra-picture prediction are performed in units of blocks. For example, according to the HEVC standard, pictures in a sequence of video pictures are partitioned into coding tree units for compression, and the CTUs within a picture have the same size, such as 64x64 pixels, 32x32 pixels, or 16x16 pixels. Generally, a CTU contains three coding tree blocks (CTBs), which are one lumen CTB and two chroma CTBs. Each CTU can be recursively quadtree-partitioned into one or more coding units (CUs). For example, a 64x64 pixel CTU can be divided into one 64x64 pixel CU, four 32x32 pixel CUs, or sixteen 16x16 pixel CUs. In one example, each CU is analyzed to determine the prediction type of the CU, such as inter-prediction type or intra-prediction type. A CU is divided into one or more prediction units (PUs) depending on its temporal and / or spatial predictability. Generally, each PU contains a Luma prediction block (PB) and two Chroma PBs. In one embodiment, the prediction operation in coding (encoding / decoding) is performed in units of prediction blocks. Using a Luma prediction block as an example of a prediction block, the prediction block contains a matrix of values ​​(e.g., Luma values) for pixels, such as 8x8 pixels, 16x16 pixels, 8x16 pixels, 16x8 pixels, etc.

[0075] Figure 6 shows a diagram of a video encoder (603) according to another embodiment of the present disclosure. The video encoder (603) is configured to receive a processing block (e.g., a prediction block) of sample values ​​in the current video picture within a sequence of video pictures, and to encode the processing block into a coded picture which is part of a coded video sequence. In one example, the video encoder (603) is used instead of the video encoder (303) in the example of Figure 3.

[0076] In the HEVC example, the video encoder (603) receives a matrix of sample values ​​for a processing block, such as an 8x8 sample prediction block. The video encoder (603) determines whether the processing block is best coded, for example using rate-distortion optimization, using intra-mode, inter-mode, or bi-predictive mode. If the processing block should be coded in intra-mode, the video encoder (603) can use intra-predictive technique to encode the processing block into a coded picture; if the processing block should be coded in inter-mode or bi-predictive mode, the video encoder (603) can use inter-predictive technique or bi-predictive technique, respectively, to encode the processing block into a coded picture. In certain video coding techniques, the merge mode may be an inter-predictive picture submode, in which case the motion vector is derived from one or more motion vector predictors without the benefit of coded motion vector components outside the predictor. In certain other video coding techniques, there may be motion vector components applicable to the target block. For example, a video encoder (603) may include other components such as a mode determination module (not shown) to determine the mode of the processing block.

[0077] In the example shown in Figure 6, the video encoder (603) includes an interencoder (630), an intraencoder (622), a residual calculator (623), a switch (626), a residual encoder (624), a general-purpose controller (621), and an entropy encoder (625), all coupled together as shown in Figure 6.

[0078] The inter-encoder (630) is configured to receive a sample of the current block (e.g., a processing block), compare that block with one or more reference blocks in the reference picture (e.g., blocks in a previous picture and blocks in a subsequent picture), generate inter-prediction information (e.g., a description of redundant information by encoding techniques, motion vectors, merge mode information), and compute an inter-prediction result (e.g., a predicted block) based on the inter-prediction information using any appropriate technique. In some examples, the reference picture is a decoded reference picture that has been decoded based on encoded video information.

[0079] The intra encoder (622) is configured to receive a sample of the current block (e.g., a processing block), possibly compare the block to a block already coded within the same picture, generate quantized coefficients after the transformation, and possibly also generate intra prediction information (e.g., intra prediction direction information according to one or more intra coding techniques). In one example, the intra encoder (622) also calculates an intra prediction result (e.g., a prediction block) based on the intra prediction information and reference block within the same picture.

[0080] The general controller (621) is configured to determine general control data and control other components of the video encoder (603) based on that general control data. For example, the general controller (621) determines the mode of a block and provides control signals to the switch (626) based on that mode. For example, if the mode is intra-mode, the general controller (621) controls the switch (626) to select intra-mode results for use by the residual calculator (623) and the entropy encoder (625) to select intra-prediction information and include the intra-prediction information in the bitstream; if the mode is inter-mode, the general controller (621) controls the switch (626) to select inter-prediction results for use by the residual calculator (623) and the entropy encoder (625) to select inter-prediction information and include the inter-prediction information in the bitstream.

[0081] The residual calculator (623) is configured to calculate the difference (residual data) between the receiving block and the prediction result selected from the intra-encoder (622) or inter-encoder (630). The residual encoder (624) is configured to operate on the residual data to encode the residual data and generate conversion coefficients. In one example, the residual encoder (624) is configured to convert the residual data from the spatial domain to the frequency domain and generate conversion coefficients. The conversion coefficients are then subjected to a quantization process to obtain quantized conversion coefficients. In various embodiments, the video encoder (603) also includes a residual decoder (628). The residual decoder (628) is configured to perform an inverse transform and generate decoded residual data. The decoded residual data can be appropriately used by the intra-encoder (622) and inter-encoder (630). For example, an inter-encoder (630) can generate a decoded block based on the decoded residual data and inter-prediction information, and an intra-encoder (622) can generate a decoded block based on the decoded residual data and intra-prediction information. The decoded block is appropriately processed to generate a decoded picture, which is buffered in a memory circuit (not shown) and can be used as a reference picture in some examples.

[0082] The entropy encoder (625) is configured to format the bitstream to include encoded blocks. The entropy encoder (625) is configured to include various information according to an appropriate standard such as the HEVC standard. For example, the entropy encoder (625) is configured to include general control data, selected prediction information (e.g., intra-prediction information or inter-prediction information), residual information, and other appropriate information in the bitstream. Note that residual information is not present when coding blocks in either inter-mode or bi-prediction mode merge submodes according to the disclosed subject matter.

[0083] Figure 7 shows a diagram of a video decoder (710) according to another embodiment of the present disclosure. The video decoder (710) is configured to receive a coded picture which is part of a coded video sequence, decode the coded picture, and produce a reconstructed picture. In one embodiment, the video decoder (710) is used instead of the video decoder (310) in the example of Figure 3.

[0084] In the example shown in Figure 7, the video decoder (710) includes an entropy decoder (771), an inter-decoder (780), a residual decoder (773), a reconstruction module (774), and an intra-decoder (772), coupled together as shown in Figure 7.

[0085] The entropy decoder (771) can be configured to reconstruct from the coded picture specific symbols representing the syntactic elements that make up the coded picture. Such symbols may include, for example, the mode in which the block is coded (e.g., intra-mode, inter-mode, bi-predictive mode, merge sub-mode, or two of the latter in another sub-mode), prediction information (e.g., intra-predictive information or inter-predictive information) that can identify specific samples or metadata used for prediction by the intra-decoder (772) or inter-decoder (780), respectively, and residual information (e.g., in the form of quantized transformation coefficients). In one example, if the prediction mode is inter or bi-predictive mode, inter-predictive information is provided to the inter-decoder (780); if the prediction type is intra-predictive type, intra-predictive information is provided to the intra-decoder (772). The residual information can be inversely quantized and provided to the residual decoder (773).

[0086] The inter-decoder (780) is configured to receive inter-prediction information and generate inter-prediction results based on the inter-prediction information.

[0087] The intra decoder (772) is configured to receive intra prediction information and generate prediction results based on the intra prediction information.

[0088] The residual decoder (773) is configured to perform inverse quantization to extract de-quantization conversion coefficients and process these de-quantization conversion coefficients to convert the residual from the frequency domain to the spatial domain. The residual decoder (773) may also require certain control information (including quantization parameters (QP)), which may be provided by the entropy decoder (771) (this may only be a small amount of control information, so no data path is drawn).

[0089] The reconstruction module (774) is configured to combine the residuals as output from the residual decoder (773) and the prediction results (which may be output by the inter or intra prediction module) in the spatial domain to form a reconstructed block, which may be part of a reconstructed picture, and which may be part of a reconstructed video. Note that other appropriate processes, such as deblocking, may be performed to improve visual quality.

[0090] The video encoders (303), (503), and (603), as well as the video decoders (310), (410), and (710), can be implemented using any suitable technology. In one embodiment, the video encoders (303), (503), and (603), as well as the video decoders (310), (410), and (710), can be implemented using one or more integrated circuits. In another embodiment, the video encoders (303), (503), and (503), as well as the video decoders (310), (410), and (710), can be implemented using one or more processors that execute software instructions.

[0091] Aspects of this disclosure provide conditions for applying decoder-side motion vector refinement (DMVR) and / or bidirectional optical flow (BDOF).

[0092] Various coding standards, such as HEVC and VVC, are being developed to incorporate new technologies.

[0093] In some examples of VVCs, for each interpredicted CU, the motion parameters include the motion vector, reference picture index, and reference picture list usage index, as well as additional information required for the new coding function of the VVC used for interpredicted sample generation. Motion parameters can be signaled explicitly or implicitly. In one example, when a CU is coded in skip mode, the CU is associated with one PU, and the CU does not have significant residual coefficients, coded motion vector deltas, or reference picture indexes. In another example, merge mode is specified, thereby obtaining motion parameters for the current CU from adjacent CUs, including spatial and temporal candidates and additional schedules introduced into the VVC. Merge mode can be applied not only to skip mode but also to any interpredicted CU. An alternative to merge mode is the explicit transmission of motion parameters, in which case the motion vector, the corresponding reference picture index for each reference picture list, the reference picture list usage flag, and other necessary information are explicitly signaled for each CU.

[0094] Beyond the intercoding capabilities in HEVC, the VVC Test Model 3 (VTM3) includes many new and refined inter-predictive coding tools, such as enhanced merge prediction, merge mode with motion vector difference (MMVD), affine motion compensation prediction, subblock-based temporal motion vector prediction (SbTMVP), triangular partition prediction, and composite inter and intra prediction (CIIP). Some features of the aforementioned inter-predictive coding tools are described in this disclosure.

[0095] According to several aspects of this disclosure, a motion refinement technique called bi-directional optical flow (BDOF) mode is used in interprediction. BDOF is referred to as BIO in some examples. BDOF is used to refine the bi-prediction signal of a CU at the 4x4 subblock level. BDOF is applied to a CU if the CU satisfies the following conditions: 1) the height of the CU is not 4 and the CU is not in a 4x8 size; 2) the CU is not coded using affine mode or ATMVP merge mode; and 3) the CU is coded using a "true" bi-prediction mode, i.e., one of the two reference pictures is in display order before the current picture and the other is in display order after the current image. BDOF is applied only to the luma component in some examples.

[0096] Motion refinement in BDOF mode is based on the concept of optical flow, which assumes that the motion of the object is smooth. For each 4x4 subblock, motion refinement (v x ,v y The BDOF is calculated by minimizing the difference between the L0 and L1 predicted samples. Motion refinement is then used to adjust the bi-predicted sample values ​​in the 4x4 sub-block. The following steps are applied in the BDOF process.

[0097] First, the horizontal and vertical gradients of the two prediction signals.

number

number

[0098] Next, the auto- and cross-correlations S1, S2, S3, S4, S5, S6 of the gradients are calculated:

number

[0099] Next, motion refinement (v x ,v y ) is derived using the self and cross-correlation terms as follows:

number

[0100] Based on motion refinement and gradient, the following adjustments are calculated for each sample within the 4x4 sub-block.

number

[0101] Finally, the BDOF sample of CU is calculated by adjusting the bi-predicted sample as follows:

number

[0102] In the above case, n a ,n b ,n S2The values are respectively equal to 3, 6, and 12. These values are selected so that the multiplier in the BDOF process does not exceed 15 bits, and the maximum bit width of the intermediate parameters in the BDOF process is maintained within 32 bits.

[0103] To derive the gradient values, several predicted samples I in list k (k = 0, 1) outside the current CU boundary (k) (i, j) can be generated.

[0104] Figure 8 shows an example of an extended CU region in BDOF. In the example of Figure 8, the 4×4 CU (810) is shown as the shaded area. BDOF uses one row / column extended around the boundary of the CU, and the extended area is shown as a dashed 6×6 block (820). To suppress the computational amount of generating prediction samples outside the boundary, a bilinear filter is used to generate prediction samples in the extended area (white places), and a normal 8-tap motion compensation interpolation filter is used to generate prediction samples inside the CU (gray places). These extended sample values are only used in gradient calculation. In the remaining steps of the BDOF process, when any sample values and gradient values outside the CU boundary are required, they are padded (i.e., repeated) from their nearest neighbors.

[0105] According to one aspect of the present disclosure, decoder-side motion vector refinement (DMVR) is one of the decoder-side motion vector derivation (DMVD) techniques and is used to improve / refine the MV based on a starting point.

[0106] In some examples, decoder-side motion vector refinement based on bilateral matching can be applied to improve the accuracy of the motion vectors in the merge mode. In the bi-prediction operation, refined MVs are searched around the initial MV within the reference picture list L0 and the reference picture list L1. The bilateral matching method calculates the distortion between two candidate blocks within the reference picture list L0 and list L1.

[0107] In one example, for a bi-predictive motion, two prediction blocks can be formed for the prediction of one block region, using MV0 from the first reference picture candidate list L0 and MV1 from the second reference picture candidate list L1, respectively. In the DMVR method, the two motion vectors MV0 and MV1 of the bi-predictive motion are further refined by a bilateral template matching process. Bilateral template matching is applied in the decoder to perform a strain-based search between the bilateral template and the reconstructed sample in the reference picture, obtaining the refined MV without transmitting additional motion information.

[0108] Figure 9 shows an example of DMVR based on bilateral template matching. In DMVR, as shown in Figure 9, A bilateral template (940) is generated as a weighted join (i.e., average) of two prediction blocks (920) and (930) from the initial MV0 from the first reference picture candidate list L0 and the MV1 from the second reference picture candidate list L1, respectively. The template matching process involves calculating a cost measure between the sample region (around the initial prediction block) in the reference pictures Ref0 and Ref1 and the generated template (940). For each of the two reference pictures Ref0 and Ref1, the MV that yields the minimum template cost is considered the updated MV in that list to replace the original MV. For example, MV0' is replaced by MV0, and MV1' is replaced by MV1. In some examples, nine MV candidates are searched for for each list. The nine MV candidates include the original MV and eight surrounding MVs, the latter having one luma sample offset from the original MV horizontally, vertically, or both. Finally, as shown in Figure 9, two new MVs, namely MV0' and MV1', are used to generate the final bi-prediction results for the current block. The sum of absolute differences (SAD) can be used as a cost measure.

[0109] In some examples, DMVR is applied to CUs coded under specific mode conditions. For example, DMVR is applied to a CU in CU-level merge mode with bi-predictive MV. Furthermore, one reference picture is from the past, and the other reference picture is from the future with respect to the current picture. The distance from both reference pictures to the current picture (i.e., the difference in picture order counts (POCs)) is the same. The CU has more than 64 luma samples, and the height of the CU is more than 8 luma samples.

[0110] The refined MV derived by the DMVR process is used to generate interprediction samples and is also used for temporal motion vector prediction for future picture coding. Meanwhile, the original MV is used in the deblocking process and is also used for spatial motion vector prediction for future CU coding.

[0111] In some embodiments, a pair of merge candidates is determined based on the signals in the received bitstream and used as input to the DMVR process. For example, the pair of merge candidates is represented as the initial motion vector (MV0, MV1). In some examples, the search points explored by the DMVR follow the motion vector difference mirroring condition. In other words, the points checked by the DMVR, i.e., the points represented by the pair of candidate motion vectors (MV0', MV1'), follow (Eq. 7) and (Eq. 8):

number

[0112] In some embodiments, a technique called bi-prediction by weighted average (BWA) is used. The BWA technique is also called generalized bi-prediction (GBi). In one example, such as HEVC, a bi-prediction signal is generated by averaging two prediction signals obtained from two different reference pictures and / or using two different motion vectors. In another example of using BWA, such as in the VVC working draft and VMT, the bi-prediction mode is extended beyond simple averaging to allow a weighted average of the two prediction signals. In an example such as the VVC draft, GBi (generalized bi-prediction) is also called bi-prediction with CU-level weights (BCW). In BWA / GBi / BCW mode, CU-level weighted prediction is performed on the CU. For example, if the BWA / GBi / BCW mode is enabled for a CU, its weighting can be signaled to that CU by the BCW index. For example, bi-prediction P bi-pred This is generated using (Eq. 9):

number

[0113] In GBi implementation examples, five weights are allowed for weighted-average bi-prediction, where w ∈ {-2, 3, 4, 5, 10}. For each CU to be bi-predicted, the weight w is determined by one of two methods: the first method, and the second method. In the first method, for non-merged CUs, the weight index is signaled after the motion vector difference. In the second method, for merged CUs, the weight index is estimated from adjacent blocks based on the merge candidate index. In some examples, weighted-average bi-prediction is applied only to CUs with 256 or more luma samples (i.e., CU width × CU height is 256 or greater). For low-latency pictures, it is possible to use all five weights. For non-low-latency pictures, in one example only three weights are used (w ∈ {3, 4, 5}).

[0114] In some cases, such as AVC, HEVC, and VVC, weighted prediction (WP) is provided as a supported coding tool. For example, WP can be used to improve inter-prediction performance when using fading or cross-fading, for instance, when the source material is subject to lighting variations.

[0115] In some examples, according to WP, the interpretation signal P is replaced by a linearly weighted prediction signal P' (using weights w and offset o) according to, for example, for single predictions (Eq. 10): Single-prediction: P'= w×P + o (Eq.10)

[0116] In bi-prediction, if the interprediction signal P0 is relative to the reference L0, with weights w0 and offset o0 relative to the reference L0, and the interprediction signal P1 is relative to the reference L1, with weights w1 and offset o1 relative to the reference L1, then the linearly weighted prediction signal P' can be calculated according to (Eq. 11): Bi-prediction: P'= (w0 × P0 + o0 + w1 × P1 + o1) / 2 (Eq.11)

[0117] The applicable weights and offsets are selected by the encoder and carried from the encoder to the decoder in a bitstream. The L0 and L1 suffixes define List0 and List1 of the reference picture lists, respectively. The bit depth is maintained at 14 bits of precision (HEVC version 1) before averaging the predicted signals, as is the case with interpolation filters.

[0118] In some embodiments, the WP allows weighting parameters (weights and offsets) to be signaled for each reference picture in each of the reference picture lists L0 and L1. Then, during motion compensation, the weights and offsets of the corresponding reference pictures are applied. WP and BWA are designed for different types of video content. Since mutual influence between WP and BWA complicates the VVC decoder design, to avoid this, if the CU uses WP, the BWA weight index is not signaled, and w is assumed to be 4 (i.e., equal weights are applied).

[0119] According to some aspects of this disclosure, certain bidirectional prediction tools, such as BDOF and DMVR, rely on equal weighting for predictions from two directions.

[0120] In one example, whether or not to apply the BDOF method depends on conditions. These conditions include conditions on both the GBi and the weighting flag (also called the flag for using weighted predictions for luma components) of the explicit weighted prediction for luma components.

[0121] Figure 10A shows Table 1A, which summarizes a list of conditions for applying the BDOF method according to one embodiment. In the example in Figure 10A, condition (1010A) requires that the Gbi index is zero. The Gbi index can be signaled or inferred. In one example, the Gbi index is used to specify the weights used to weight the predicted signals from two reference pictures. If the Gbi index is zero, equal weights are used to weight the predicted signals from the two reference pictures.

[0122] Furthermore, in the example in Figure 10A, condition (1020A) requires that the flag for using weighted predictions for the Luma components in reference picture lists L0 and L1 is zero. When the flag for using weighted predictions for the Luma components in reference picture lists L0 and L1 is zero, it is possible to use the default weights, which are equal in both directions.

[0123] In the implementation example, BDOF is enabled if the Gbi index satisfies condition (1010A) and the weighting flag satisfies condition (1020A). Whether or not to apply BDOF can then be further determined according to other conditions, such as those shown in Figure 10A.

[0124] In some cases, DMVR may search for non-matching blocks if the SAD of the reference block is weighted with uneven weights. Similar to applying BDOF, it is possible to decide whether to apply DMVR based on conditions. These conditions include conditions on both the GBi and weighting flags (also called the flags for using weighted predictions for luma components) of the explicit weighted prediction for luma components.

[0125] Figure 11A shows Table 2A, which summarizes the list of conditions for applying the DMVR method. In the example in Figure 11A, condition (1110A) requires that the Gbi index is zero. The Gbi index can be signaled or inferred. In one example, the Gbi index is used to specify the weights used to weight the predicted signals from two reference pictures. If the Gbi index is zero, equal weights are used to weight the predicted signals from the two reference pictures.

[0126] Furthermore, in the example in Figure 11A, condition (1120A) requires that the flag for using weighted predictions for the Luma components in reference picture lists L0 and L1 is zero. When the flag for using weighted predictions for the Luma components in reference picture lists L0 and L1 is zero, it is possible to use the default weights, which are equal in both directions.

[0127] In the implementation example, DMVR is enabled if the Gbi index satisfies condition (1110A) and the weighting flag satisfies condition (1120A). Whether or not to apply DMVR can then be further determined according to other conditions, such as those shown in Figure 11A.

[0128] According to some aspects of the disclosure, the conditions for applying BDOF and / or DMVR include checking the use flag for weighted prediction for the luma component, and also checking the use flag for weighted prediction for the chroma component.

[0129] According to one aspect of this disclosure, the BDOF can be applied only to the chroma component. In some embodiments, the chroma weight of the current block of the weighted prediction can also be checked.

[0130] Figure 10B shows Table 1B, which summarizes a list of conditions for applying the BDOF method according to several embodiments. In the example in Figure 10B, the use flag for weighted prediction for chroma components, represented by chroma_weight_l0_flag[refIdxL0] and chroma_weight_l1_flag[refIdxL1], is checked, as shown by (1030B). If the use flag for weighted prediction for chroma components is zero, equal weighting is used for the chroma components, and BDOF can be enabled. Furthermore, if the other conditions in Figure 10B are met, BDOF can be applied to luma components. However, if at least one of chroma_weight_l0_flag[refIdxL0] and chroma_weight_l1_flag[refIdxL1] is not equal to zero, BDOF can be disabled and cannot be applied to luma components.

[0131] According to another aspect of this disclosure, the BDOF can be applied separately to the luma and chroma components, the conditions for using the luma component BDOF can include the luma weight of the current block of the weighted prediction, and the conditions for using the chroma component BDOF can include the chroma weight of the current block of the weighted prediction.

[0132] In one embodiment, to determine whether to apply BDOF to the luma component, the use flags for weight predictions for the luma component, represented by luma_weight_l0_flag[refIdxL0] and luma_weight_l1_flag[refIdxL1], are checked. If both use flags for weight predictions for the luma component are zero, equal weightings are used and BDOF can be enabled. Furthermore, if the other conditions in Figure 10B are met, BDOF can be applied to the luma component. However, if at least one of luma_weight_l0_flag[refIdxL0] and luma_weight_l1_flag[refIdxL1] is not equal to zero, BDOF can be disabled and cannot be applied to the luma component.

[0133] In another embodiment, to determine whether to apply BDOF to the chroma component, the use flags for weighted predictions for the chroma component, as represented by chroma_weight_l0_flag[refIdxL0] and chroma_weight_l1_flag[refIdxL1], are checked. If both use flags for weighted predictions for the chroma component are zero, equal weightings are used and BDOF can be enabled. Furthermore, if the other conditions in Figure 10B (except for (1020B)) are met, BDOF can be applied to the chroma component. However, if at least one of chroma_weight_l0_flag[refIdxL0] and chroma_weight_l1_flag[refIdxL1] is not equal to zero, BDOF can be disabled and cannot be applied to the chroma component.

[0134] According to one aspect of this disclosure, DMVR can be applied only to the chroma component. In some embodiments, in addition to the conditions, the chroma weight of the current block of the weighted prediction can also be checked.

[0135] Figure 11B shows Table 2B, which summarizes a list of conditions for applying the DMVR method according to several embodiments. In the example in Figure 11B, the use flag for weighted prediction for chroma components, represented by chroma_weight_l0_flag[refIdxL0] and chroma_weight_l1_flag[refIdxL1], is checked, as shown by (1130B). If the use flag for weighted prediction for chroma components is zero, equal weighting is used for the chroma components, and DMVR can be enabled. Furthermore, if the other conditions in Figure 11B are met, DMVR can be applied to luma components. However, if at least one of chroma_weight_l0_flag[refIdxL0] and chroma_weight_l1_flag[refIdxL1] is not equal to zero, DMVR can be disabled and cannot be applied to luma components.

[0136] According to another aspect of this disclosure, the DMVR can be applied separately to the luma and chroma components, the conditions for using the luma component DMVR can include the luma weight of the current block of the weighted prediction, and the conditions for using the chroma component DMVR can include the chroma weight of the current block of the weighted prediction.

[0137] In one embodiment, to determine whether to apply DMVR to the luma component, the use flags for weighted predictions for the luma component, represented by luma_weight_l0_flag[refIdxL0] and luma_weight_l1_flag[refIdxL1], are checked. If both use flags for weighted predictions for the luma component are zero, equal weightings are used, and DMVR can be enabled. Furthermore, if the other conditions in Figure 11B are met, DMVR can be applied to the luma component. However, if at least one of luma_weight_l0_flag[refIdxL0] and luma_weight_l1_flag[refIdxL1] is not equal to zero, DMVR can be disabled and cannot be applied to the luma component.

[0138] In another embodiment, to determine whether to apply DMVR to the chroma component, the use flags for weighted predictions for the chroma component, as represented by chroma_weight_l0_flag[refIdxL0] and chroma_weight_l1_flag[refIdxL1], are checked. If both use flags for weighted predictions for the chroma component are zero, equal weightings are used, and DMVR can be enabled. Furthermore, if the other conditions in Figure 11B (except for (1120B)) are met, DMVR can be applied to the chroma component. However, if at least one of chroma_weight_l0_flag[refIdxL0] and chroma_weight_l1_flag[refIdxL1] is not equal to zero, DMVR can be disabled and cannot be applied to the chroma component.

[0139] Figure 12 shows a schematic flowchart illustrating process (1200) according to embodiments of the present disclosure. Process (1200) can be used to reconfigure a block and thus generate a predicted block for the block being reconfigured. In various embodiments, process (1200) is performed by a processing circuit, for example, a processing circuit in terminal devices (210), (220), (230), (240), a processing circuit that performs the function of a video encoder (303), a processing circuit that performs the function of a video decoder (310), a processing circuit that performs the function of a video decoder (410), and a processing circuit that performs the function of a video encoder (503). In some embodiments, process (1200) is implemented by a software instruction and thus, when a processing circuit executes a software instruction, the processing circuit executes process (1200). The process begins at (S1201) and proceeds to (S1210).

[0140] In (S1210), prediction information for the current block in the current picture is decoded from the coded video bitstream. The prediction information indicates an inter-mutual prediction mode which may use refinement techniques based on the first and second reference pictures. In some embodiments, the refinement techniques include at least one of BDOF and DMVR. In some examples, the current picture has a picture order count (POC) that is larger than one of the first and second reference pictures and smaller than the other of the first and second reference pictures.

[0141] In (S1220), it is possible to determine whether the first equal-weighting condition for the chroma components from the first and second reference pictures is met. In some cases, a first flag for the chroma weight of the first reference picture (e.g., chroma_weight_l0_flag[refIdxL0]) and a second flag for the chroma weight of the second reference picture (e.g., chroma_weight_l1_flag[refIdsL1]) are checked. If both the first and second flags are zero, the first equal-weighting condition for the chroma components is met. If at least one of the first and second flags is not zero, it can be determined that the first equal-weighting condition is not met.

[0142] In (S1230), in response to the failure to satisfy the first weighting condition, the refinement technique is disabled in the reconstruction of the sample in the current block. In some embodiments, the refinement technique can be applied only to the luma component. Accordingly, in response to the failure to satisfy the first weighting condition, the refinement technique is disabled in the reconstruction of the luma sample in the current block. In some embodiments, the refinement technique can be applied separately to the luma and chroma components. Accordingly, in response to the failure to satisfy the first weighting condition, the refinement technique is disabled in the reconstruction of the chroma sample in the current block. The process then proceeds to (S1299) and terminates.

[0143] Note that once the first weighting condition is met, other appropriate conditions, such as those in Figure 10B or Figure 11B, are also checked to determine whether the refinement technique can be applied to the reconstruction of the sample in the current block.

[0144] The technologies described above can be implemented as computer software using computer-readable instructions and can be physically stored on one or more computer-readable media. For example, Figure 13 shows a computer system (1300) suitable for realizing a particular embodiment of the disclosed subject matter.

[0145] Computer software can be coded using any suitable machine code or computer language that may be subject to assembly, compilation, linking, or similar mechanisms to create code that includes instructions that can be executed directly by one or more computer central processing units (CPUs), graphics processing units (GPUs), etc., or instructions that are executed via interpretation, microcode execution, etc.

[0146] The instructions can be executed on various types of computers or their components, including, for example, personal computers, tablet computers, servers, smartphones, game devices, and Internet of Things devices.

[0147] The components shown in Figure 13 for the computer system (1300) are essentially illustrative and are not intended to imply any limitations on the scope or functionality of the computer software that enables embodiments of this disclosure. Furthermore, the configuration of the components should not be construed as having any dependency or requirement on any one or combination of the components shown in the exemplary embodiments of the computer system (1300).

[0148] The computer system (1300) may include certain human interface input devices. Such human interface input devices may respond to input from one or more human users, for example, through tactile input (e.g., keystrokes, swipes, data glove movements), auditory input (e.g., voice, applause), visual input (e.g., gestures), or olfactory input (not shown). The human interface devices may also be used to capture certain media that are not necessarily directly related to conscious human input, such as audio (e.g., conversations, music, ambient sounds), images (e.g., scanned images, photographic images obtained from still image cameras), or video (e.g., 2D video, 3D video including stereoscopic pictures).

[0149] Input human interface devices may include one or more of the following (though only one of each is depicted): keyboard (1301), mouse (1302), trackpad (1303), touchscreen (1310), data glove (not shown), joystick (1305), microphone (1306), scanner (1307), and camera (1308).

[0150] The computer system (1300) may also include certain human interface output devices. Such human interface output devices can stimulate the senses of one or more human users, for example, through tactile output, sound, light, and smell / taste. Such human interface output devices may include haptic output devices (e.g., haptic feedback via touch screens (1310), data gloves (not shown), joysticks (1305), although there may be haptic feedback devices that do not serve as input), auditory output devices (e.g., speakers (1309), headphones (not shown)), visual output devices (e.g., screens (1310) including CRT screens, LCD screens, plasma screens, OLED screens, each having or not having touch screen input functionality, each having or not having haptic feedback functionality, some of which may be capable of outputting two-dimensional visual output, three-dimensional or more output by means such as stereoscopic output; virtual reality glasses (not shown), holographic displays, and smoke tanks (not shown)), and printers (not shown).

[0151] The computer system (1300) may also include human-accessible storage devices and associated media such as optical media (1321), including CD / DVD ROM / RW (1320) using media such as CD / DVD (1321), thumb drives (1322), removable hard drives or solid-state drives (1323), legacy magnetic media (not shown), such as tapes and floppy disks (not shown), and specialized ROM / ASIC / PLD-based devices such as security dongles (not shown).

[0152] Those skilled in the art will also understand that the term “computer-readable medium” as used in relation to the subject matter disclosed herein does not include a transmission medium, carrier wave, or other transient signal.

[0153] The computer system (1300) may also include interfaces to one or more communication networks. These networks may be, for example, wireless, wired, or optical. Furthermore, these networks may be local, wide-area, metropolitan, vehicle and industrial, real-time, or latency-tolerant. Examples of networks include Ethernet, wireless LAN, cellular networks (including GSM, 3G, 4G, 5G, LTE, etc.), wired or wireless wide-area digital networks for television (including cable TV, satellite TV, and terrestrial television), and vehicle and industrial networks including CANBus. Certain networks generally require external network interface adapters attached to specific general-purpose data ports or peripheral buses (1349) (e.g., USB ports on the computer system (1300)); others are generally integrated into the core of the computer system (1300) by being attached to system buses as described below (e.g., Ethernet interfaces are integrated within PC computer systems, and cellular network interfaces within smartphone computer systems). Using any of these networks, the computer system (1300) can communicate with other entities. Such communication can be one-way receive-only (e.g., broadcast television), one-way transmit-only (e.g., CANbus to a specific CANbus device), or two-way, for example, to other computer systems using local or wide-area digital networks. Specific protocols and protocol stacks can be used for each of these networks and network interfaces, as described above.

[0154] The aforementioned human interface device, human-accessible storage device, and network interface can be mounted on the core (1340) of the computer system (1300).

[0155] The core (1340) may include one or more central processing units (CPUs) (1341), graphics processing devices (GPUs) (1342), special programmable processing devices in the form of field-programmable gate areas (FPGAs) (1343), hardware accelerators for specific tasks (1344), etc. These devices may be connected via a system bus (1348) along with read-only memory (ROM) (1345), random-access memory (1346), and internal mass storage devices (e.g., internal non-user-accessible hard drives, SSDs, etc.) (1347). In some computer systems, the system bus (1348) may be accessible in the form of one or more physical plugs to allow expansion with additional CPUs, GPUs, etc. Peripheral devices may be connected directly to the core's system bus (1348) or via a peripheral bus (1349). The peripheral bus architecture includes PCI, USB, etc.

[0156] The CPU (1341), GPU (1342), FPGA (1343), and accelerator (1344) can be combined to execute specific instructions that constitute the aforementioned computer code. The computer code can be stored in ROM (1345) or RAM (1346). Temporary data can be stored in RAM (1346), while persistent data can be stored, for example, in internal mass storage (1347). High-speed storage and retrieval of any memory device may be possible by utilizing cache memory, which can be closely associated with one or more CPUs (1341), GPUs (1342), mass storage (1347), ROMs (1345), RAM (1346), etc.

[0157] Computer-readable media can have computer code on them for performing various computer-implemented operations. The media and computer code may be specifically designed and constructed for the purposes of this disclosure, or they may be of a type that is well known and available to those skilled in the art in the field of computer software.

[0158] As an example, and not limited to, a computer system having an architecture (1300), specifically a core (1340), can provide the ability to run software embodied in one or more tangible computer-readable media as a result of a processor (including CPU, GPU, FPGA, accelerator, etc.). Such computer-readable media can be media related to user-accessible mass storage as described above, as well as specific storage of the core (1340) of a non-transient nature, such as mass storage (1347) or ROM (1345) within the core. Software that implements various embodiments of the present disclosure can be stored in such devices and run by the core (1340). The computer-readable media can include one or more memory devices or chips, depending on the specific needs. The software can cause the core (1340) and in particular the processor (including CPU, GPU, FPGA, etc.) within it to run specific processes or specific parts of specific processes as described herein, including defining data structures stored in RAM (1346) and modifying such data structures according to processes defined by the software. Furthermore, or alternatively, a computer system may provide functionality as a result of logic wired or otherwise embodied within a circuit (e.g., an accelerator (1344)), such circuit may perform, in lieu of or in conjunction with, a particular process or a particular part of a particular process described herein. References to software may include logic, and vice versa, as appropriate. References to computer-readable media may include circuits (such as integrated circuits (ICs)) that store software for execution, circuits that embody logic for execution, or both, where appropriate. This disclosure encompasses any suitable combination of hardware and software.

[0159] While this disclosure has described several exemplary embodiments, there are many modifications, substitutions, and alternative equivalents that fall within the scope of this disclosure. Those skilled in the art will therefore understand that it is possible to devise many systems and methods, not expressly illustrated or described in this application, that embody the principles of this disclosure and thus fall within its spirit and scope.

[0160] <Note> (Note 1) A method for video decoding in a decoder, A processor decodes prediction information for the current block in the current picture from a coded video bitstream, wherein the prediction information indicates an interprediction mode that may utilize refinement techniques based on a first reference picture and a second reference picture. The processor performs the step of determining whether the first equal-weighted condition for the chroma components from the first reference picture and the second reference picture is satisfied, In response to the fact that the chroma components from the first and second reference pictures do not satisfy the first equal-weighting condition, the processor disables the refinement technique in the reconstruction of the sample in the current block. A method that includes this. (Note 2) Steps in which the processor disables the refinement technique in the reconstruction of the chroma sample in the current block in response to the fact that the chroma components from the first and second reference pictures do not satisfy the first equal-weighting condition: The method described in Appendix 1, further including the above. (Note 3) The processor performs the step of determining whether the second weighted condition for the luma components from the first reference picture and the second reference picture is satisfied, In response to the fact that at least one of the first equal-weighting condition for the chroma component and the second equal-weighting condition for the luma component is not satisfied, the processor disables the refinement technique in the reconstruction of the luma sample in the current block. The method described in Appendix 2, which further includes the following. (Note 4) Steps in which the processor disables the refinement technique in reconstructing the chroma sample in the current block in response to the fact that the chroma components from the first and second reference pictures do not satisfy the first equal-weighting condition: The method described in any one of the appendices 1 to 3, which further includes the method described in the appendices 1 to 3. (Note 5) The method according to any one of Appendix 1 to 4, wherein the refinement technique includes at least one of bidirectional optical flow (BDOF) and decoder-side motion vector refinement (DMVR). (Note 6) If one of the first reference picture and the second reference picture has a larger picture order count than the current picture, The method according to any one of the appendices 1 to 5, wherein the other of the first reference picture and the second reference picture has a smaller picture order count than the current picture. (Note 7) The processor determines, based on the fact that at least one of the first flag of the chroma weight of the first reference picture and the second flag of the chroma weight of the second reference picture is not equal to zero, that the chroma components from the first reference picture and the second reference picture do not satisfy the equal weighting condition. The method described in any one of the appendices 1 through 6, which further includes the method described in the appendices 1 through 6. (Note 8) A device for video decoding including a processing circuit, wherein the processing circuit is A step of decoding current block prediction information in the current picture from a coded video bitstream, wherein the prediction information indicates an interprediction mode that may utilize refinement techniques based on a first reference picture and a second reference picture. A step of determining whether the first equal weighting condition of the chroma components from the first reference picture and the second reference picture is satisfied, In response to the fact that the chroma components from the first and second reference pictures do not satisfy the first equal-weighting condition, the refinement technique is disabled in the reconstruction of the sample in the current block. A device configured to perform the following actions. (Note 9) The aforementioned processing circuit is A step of disabling the refinement technique in the reconstruction of the luma sample in the current block in response to the fact that the chroma components from the first and second reference pictures do not satisfy the first equal-weighting condition. The apparatus described in Appendix 8, which is configured to perform the following further. (Note 10) The aforementioned processing circuit is A step of determining whether the second weighting condition for the luma components from the first reference picture and the second reference picture is satisfied, A step of disabling the refinement technique in the reconstruction of the luma sample in the current block in response to the fact that at least one of the first equal-weighting condition for the chromatic component and the second equal-weighting condition for the luma component is not satisfied. The apparatus described in Appendix 9, configured to perform the following actions. (Note 11) The aforementioned processing circuit is A step of disabling the refinement technique in the reconstruction of the chromatic sample in the current block in response to the fact that the chromatic components from the first and second reference pictures do not satisfy the first equal-weighting condition. An apparatus configured to perform the following, as described in any one of the appendices 8 to 10. (Note 12) The apparatus according to any one of Annexes 8 to 11, wherein the refinement technique includes at least one of bidirectional optical flow (BDOF) and decoder-side motion vector refinement (DMVR). (Note 13) If one of the first reference picture and the second reference picture has a larger picture order count than the current picture, The apparatus according to any one of the appendices 8 to 12, wherein the other of the first reference picture and the second reference picture has a smaller picture order count than the current picture. (Note 14) The aforementioned processing circuit is The step of determining that the chroma components from the first and second reference pictures do not satisfy the equal weighting condition, based on the fact that at least one of the first flag of the chroma weight of the first reference picture and the second flag of the chroma weight of the second reference picture is not equal to zero. An apparatus configured to perform the following, as described in any one of the appendices 8 to 13. (Note 15) On the computer, A step of decoding prediction information for the current block in the current picture from a coded video bitstream, wherein the prediction information indicates an interprediction mode that may utilize refinement techniques based on a first reference picture and a second reference picture. A step of determining whether the first equal weighting condition of the chroma components from the first reference picture and the second reference picture is satisfied, In response to the fact that the chroma components from the first and second reference pictures do not satisfy the first equal-weighting condition, the refinement technique is disabled in the reconstruction of the sample in the current block. A computer program that executes something. (Note 16) To the aforementioned computer, A step of disabling the refinement technique in the reconstruction of the luma sample in the current block in response to the fact that the chroma components from the first and second reference pictures do not satisfy the first equal-weighting condition. The computer program described in Appendix 15, which further executes the above. (Note 17) To the aforementioned computer, A step of determining whether the second weighting condition for the luma components from the first reference picture and the second reference picture is satisfied, A step of disabling the refinement technique in the reconstruction of the luma sample in the current block in response to the fact that at least one of the first equal-weighting condition for the chromatic component and the second equal-weighting condition for the luma component is not satisfied. The computer program described in Appendix 16, which further executes the above. (Note 18) To the aforementioned computer, A step of disabling the refinement technique in the reconstruction of the chromatic sample in the current block in response to the fact that the chromatic components from the first and second reference pictures do not satisfy the first equal-weighting condition. A computer program described in any one of the appendices 15 to 17, which further executes the above. (Note 19) A computer program according to any one of the appendices 15 to 18, wherein the refinement technique includes at least one of bidirectional optical flow (BDOF) and decoder-side motion vector refinement (DMVR). (Note 20) To the aforementioned computer, The step of determining that the chroma components from the first and second reference pictures do not satisfy the equal weighting condition if at least one of the first flag of the chroma weight of the first reference picture and the second flag of the chroma weight of the second reference picture is not equal to zero. A computer program described in any one of the appendices 15 to 19, which further executes the above. (Note 21) A method for video encoding in an encoder, The processor determines predictive information for the current block in the current picture and sends a coded video bitstream containing the predictive information to the encoder. The prediction information includes an interpretation mode that may utilize refinement techniques based on the first and second reference pictures, If the first equal-weighting condition of the chroma components from the first and second reference pictures is not met, the refinement technique is disabled in the reconstruction of the sample in the current block, in a method.

[0161] Appendix A: Acronyms JEM: Structural Exploration Model VVC: Flexible Video Coding BMS: benchmark set MV: Motion Vector HEVC: High Efficiency Video Coding SEI: Supplementary Enhancement Information VUI: Video Usability Information GOPs: Groups of Pictures TUs: Transform Units PUs: Prediction Units CTUs: Coding Tree Units CTBs: Coding Tree Blocks PBs: Prediction Blocks HRD: Hypothetical Reference Decoder SNR: Signal Noise Ratio CPUs: Central Processing Units GPUs: Graphics Processing Units CRT: Cathode Ray Tube LCD: Liquid-Crystal Display OLED: Organic Light-Emitting Diode CD: Compact Disc DVD: Digital Video Disc ROM: Read-Only Memory RAM: Random Access Memory ASIC: Application-Specific Integrated Circuit PLD: Programmable Logic Device LAN: Local Area Network GSM: Global System for Mobile communications LTE: Long-Term Evolution CANBus: Controller Area Network Bus USB: Universal Serial Bus PCI: Peripheral Component Interconnect FPGA: Field Programmable Gate Areas SSD: solid-state drive IC: Integrated Circuit CU: Coding Unit

Claims

1. A method for video decoding performed by a decoder, A step of extracting prediction information for the current block in the current picture from the signal received by the decoder, wherein the prediction information indicates an interprediction mode in which decoder-side motion vector refinement (DMVR), a refinement technique based on a first reference picture and a second reference picture, is available. The decoder's processor checks a first flag for the chroma weight of the first reference picture and a second flag for the chroma weight of the second reference picture based on the prediction information. In response to at least one of the first flag and the second flag being non-zero, the processor disables the refinement technique in reconstructing the sample in the current block. A method that includes this.

2. In the method according to claim 1, The aforementioned first flag is represented by chroma_weight_l0_flag[refIdxL0], The second flag is represented by chroma_weight_l1_flag[refIdxL1], A method wherein, when the refinement technique is enabled, both the first flag and the second flag are zero.

3. A computer program that causes the processor to execute the method according to claim 1 or 2.

4. A storage medium for storing the computer program described in claim 3.

5. A method for video encoding performed by an encoder, The encoder's processor performs the step of encoding predictive information for the current block in the current picture. The prediction information includes an interprediction mode in which decoder-side motion vector refinement (DMVR), a refinement technique based on a first and second reference picture, is available. A method wherein the prediction information includes a first flag for the chroma weight of the first reference picture and a second flag for the chroma weight of the second reference picture, and if at least one of the first flag and the second flag is not zero, the refinement technique is disabled in the reconstruction of the sample in the current block.

6. In the method according to claim 5, The aforementioned first flag is represented by chroma_weight_l0_flag[refIdxL0], The second flag is represented by chroma_weight_l1_flag[refIdxL1], A method wherein, when the refinement technique is enabled, both the first flag and the second flag are zero.

7. A computer program that causes the processor to execute the method according to claim 5 or 6.

8. A storage medium for storing the computer program described in claim 7.

9. A method for video encoding performed by an encoder, The encoder's processor encodes the prediction information for the current block in the current picture into an encoded video bitstream, and stores the encoded video bitstream in a storage medium. The prediction information includes an interprediction mode in which decoder-side motion vector refinement (DMVR), a refinement technique based on a first and second reference picture, is available. A method wherein the prediction information includes a first flag for the chroma weight of the first reference picture and a second flag for the chroma weight of the second reference picture, and if at least one of the first flag and the second flag is not zero, the refinement technique is disabled in the reconstruction of the sample in the current block.

10. In the method of claim 9, The aforementioned first flag is represented by chroma_weight_l0_flag[refIdxL0], The second flag is represented by chroma_weight_l1_flag[refIdxL1], A method wherein, when the refinement technique is enabled, both the first flag and the second flag are zero.

11. A computer program that causes the processor to perform the method according to claim 9 or 10.

12. A storage medium for storing the computer program described in claim 11.

13. A method for video decoding performed by a decoder, A step of extracting prediction information for the current block in the current picture from the signal received by the decoder, wherein the prediction information indicates an interprediction mode in which decoder-side motion vector refinement (DMVR), a refinement technique based on a first reference picture and a second reference picture, is available. The decoder's processor checks a first flag for the chroma weight of the first reference picture and a second flag for the chroma weight of the second reference picture based on the prediction information. In response to both the first and second flags being zero, the processor enables the refinement technique in reconstructing the sample in the current block. A method that includes this.

14. A method for video encoding performed by an encoder, The encoder's processor performs the step of encoding predictive information for the current block in the current picture. The prediction information includes an interprediction mode in which decoder-side motion vector refinement (DMVR), a refinement technique based on a first and second reference picture, is available. A method wherein the prediction information includes a first flag for the chroma weight of the first reference picture and a second flag for the chroma weight of the second reference picture, and if both the first and second flags are zero, the refinement technique is enabled in the reconstruction of the sample in the current block.

15. A method for video encoding performed by an encoder, The encoder's processor encodes the prediction information for the current block in the current picture into an encoded video bitstream, and stores the encoded video bitstream in a storage medium. The prediction information includes an interprediction mode in which decoder-side motion vector refinement (DMVR), a refinement technique based on a first and second reference picture, is available. A method wherein the prediction information includes a first flag for the chroma weight of the first reference picture and a second flag for the chroma weight of the second reference picture, and if both the first and second flags are zero, the refinement technique is enabled in the reconstruction of the sample in the current block.

Citation Information

Patent Citations

  • Method and apparatus for video coding

    US20190132606A1

  • Method and apparatus for video coding

    US20200228815A1