H04N19/513

COMPLEXITY REDUCTION AND BIT-WIDTH CONTROL FOR BI-DIRECTIONAL OPTICAL FLOW
20230053233 · 2023-02-16 ·

Systems and methods are described for reducing the complexity of using bi-directional optical flow (BIO) in video coding. In some embodiments, bit-width reduction steps are introduced in the BIO motion refinement process to reduce the maximum bit-width used for BIO calculations. In some embodiments, simplified interpolation filters are used to generate predicted samples in an extended region around a current coding unit. In some embodiments, different interpolation filters are used for vertical versus horizontal interpolation. In some embodiments, BIO is disabled for coding units with small heights and/or for coding units that are predicted using a sub-block level inter prediction technique, such as advanced temporal motion vector prediction (ATMVP) or affine prediction.

COMPLEXITY REDUCTION AND BIT-WIDTH CONTROL FOR BI-DIRECTIONAL OPTICAL FLOW
20230053233 · 2023-02-16 ·

Systems and methods are described for reducing the complexity of using bi-directional optical flow (BIO) in video coding. In some embodiments, bit-width reduction steps are introduced in the BIO motion refinement process to reduce the maximum bit-width used for BIO calculations. In some embodiments, simplified interpolation filters are used to generate predicted samples in an extended region around a current coding unit. In some embodiments, different interpolation filters are used for vertical versus horizontal interpolation. In some embodiments, BIO is disabled for coding units with small heights and/or for coding units that are predicted using a sub-block level inter prediction technique, such as advanced temporal motion vector prediction (ATMVP) or affine prediction.

MERGE MODE, ADAPTIVE MOTION VECTOR PRECISION, AND TRANSFORM SKIP SYNTAX

An apparatus (for example, a decoder) may determine that affine mode is enabled for a video sequence. The apparatus may determine whether an affine mode adaptive motion vector difference resolution (AMVR) enablement indicator is present in a parameter set associated with the video sequence based on a value of an AMVR enablement indicator. If the value of the AMVR enablement indicator indicates AMVR mode is enabled for the video sequence, the apparatus may determine that the affine mode AMVR enablement indicator is present in the parameter set associated with the video sequence. If the value of the AMVR enablement indicator indicates AMVR mode is disabled for the video sequence, the apparatus may determine that the affine mode AMVR enablement indicator is not present in the parameter set associated with the video sequence. The apparatus may decode the video sequence accordingly.

MERGE MODE, ADAPTIVE MOTION VECTOR PRECISION, AND TRANSFORM SKIP SYNTAX

An apparatus (for example, a decoder) may determine that affine mode is enabled for a video sequence. The apparatus may determine whether an affine mode adaptive motion vector difference resolution (AMVR) enablement indicator is present in a parameter set associated with the video sequence based on a value of an AMVR enablement indicator. If the value of the AMVR enablement indicator indicates AMVR mode is enabled for the video sequence, the apparatus may determine that the affine mode AMVR enablement indicator is present in the parameter set associated with the video sequence. If the value of the AMVR enablement indicator indicates AMVR mode is disabled for the video sequence, the apparatus may determine that the affine mode AMVR enablement indicator is not present in the parameter set associated with the video sequence. The apparatus may decode the video sequence accordingly.

Video decoding method and apparatus and video encoding method and apparatus

Provided is a video decoding method including determining a displacement vector per unit time of pixels of a current block in a horizontal direction or a vertical direction, the pixels including a pixel adjacent to an inside of a boundary of the current block, by using values about reference pixels included in a first reference block and a second reference block, without using a stored value about a pixel located outside boundaries of the first reference block and the second reference block; and obtaining a prediction block of the current block by performing block-unit motion compensation and pixel group unit motion compensation on the current block by using a gradient value in the horizontal direction or the vertical direction of a first corresponding reference pixel in the first reference block which corresponds to a current pixel included in a current pixel group in the current block, a gradient value in the horizontal direction or the vertical direction of a second corresponding reference pixel in the second reference block which corresponds to the current pixel, a pixel value of the first corresponding reference pixel, a pixel value of the second corresponding reference pixel, and a displacement vector per unit time of the current pixel in the horizontal direction or the vertical direction. In this regard, the current pixel group may include at least one pixel.

Video decoding method and apparatus and video encoding method and apparatus

Provided is a video decoding method including determining a displacement vector per unit time of pixels of a current block in a horizontal direction or a vertical direction, the pixels including a pixel adjacent to an inside of a boundary of the current block, by using values about reference pixels included in a first reference block and a second reference block, without using a stored value about a pixel located outside boundaries of the first reference block and the second reference block; and obtaining a prediction block of the current block by performing block-unit motion compensation and pixel group unit motion compensation on the current block by using a gradient value in the horizontal direction or the vertical direction of a first corresponding reference pixel in the first reference block which corresponds to a current pixel included in a current pixel group in the current block, a gradient value in the horizontal direction or the vertical direction of a second corresponding reference pixel in the second reference block which corresponds to the current pixel, a pixel value of the first corresponding reference pixel, a pixel value of the second corresponding reference pixel, and a displacement vector per unit time of the current pixel in the horizontal direction or the vertical direction. In this regard, the current pixel group may include at least one pixel.

Limited memory access window for motion vector refinement

The present disclosure relates to motion vector refinement. As a first step, an initial motion vector and a template for the block are obtained. Then, the refinement of the initial motion vector is determined by template matching with said template in a search space. The search space is located on a position given by the initial motion vector and includes one or more fractional sample positions, wherein each of fractional sample positions belonging to the search space is obtained by interpolation filtering with a filter of a predefined tap-size assessing integer samples only within a window, said window being formed by integer samples accessible for the template matching in said search space.

Limited memory access window for motion vector refinement

The present disclosure relates to motion vector refinement. As a first step, an initial motion vector and a template for the block are obtained. Then, the refinement of the initial motion vector is determined by template matching with said template in a search space. The search space is located on a position given by the initial motion vector and includes one or more fractional sample positions, wherein each of fractional sample positions belonging to the search space is obtained by interpolation filtering with a filter of a predefined tap-size assessing integer samples only within a window, said window being formed by integer samples accessible for the template matching in said search space.

History-based motion vector prediction

Systems, methods, and computer-readable media are provided for updating history-based motion vector tables. In some examples, a method can include obtaining one or more blocks of video data; determining a first motion vector derived from a first control point of a block of the one or more blocks, the block being coded using an affine motion mode; determining a second motion vector derived from a second control point of the block; based on the first motion vector and the second motion vector, estimating a third motion vector for a predetermined location within the block; and populating a history-based motion vector predictor (HMVP) table with the third motion vector.

History-based motion vector prediction

Systems, methods, and computer-readable media are provided for updating history-based motion vector tables. In some examples, a method can include obtaining one or more blocks of video data; determining a first motion vector derived from a first control point of a block of the one or more blocks, the block being coded using an affine motion mode; determining a second motion vector derived from a second control point of the block; based on the first motion vector and the second motion vector, estimating a third motion vector for a predetermined location within the block; and populating a history-based motion vector predictor (HMVP) table with the third motion vector.