Abstract:
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.
Abstract:
Systems, methods, and media are provided for loop filtering across raster scan slices. One example includes obtaining the video data comprising one or more pictures and a first block of a picture having a pixel subject to filtering. A second block is determined to be located in the first slice in a particular relation to the second block. A third block that includes pixels for filtering the pixel is determined to be in a second slice at a diagonal corner of the first block, with filtering across slice boundaries disabled. First one or more pixels of the second block are identified as available for performing loop filtering of the pixel and second one or more pixels of the third block identified as unavailable for performing the loop filtering of the pixel of the first block. The first one or more pixels and the second one or more pixels are padded.
Abstract:
Systems, methods, and computer-readable media are provided for simplification of clipping value calculations for adaptive loop filtering. An example method can include obtaining video data including one or more pictures; obtaining a block of a picture from the one or more pictures; determining clipping values for a filter, the clipping values corresponding to a luma component in the picture and/or a chroma component in the picture, wherein each clipping value is determined by left shifting a first integer by a second integer, the second integer including a result of a bit depth value for a sample from the picture minus an offset value associated with a clipping index value; and applying the filter to the block.
Abstract:
Techniques are described for improving transform coding. For example, an encoded block of video data can be obtained, and a width and/or a height of the block can be determined. The width can be compared to a first threshold and/or the height can be compared to a second threshold. A horizontal transform and a vertical transform can be determined for the block based on comparing the width of the block to the first threshold and/or the height of the block to the second threshold. The horizontal transform and the vertical transform are determined without decoding a syntax element that indicates the horizontal transform and the vertical transform (e.g., the syntax element is not in an encoded video bitstream processed by a decoding device). In some cases, residual data is determined using the horizontal and vertical transforms, and a video block is determined using the residual data and a predictive block.
Abstract:
Techniques are described using Position Dependent Intra Prediction Combination (PDPC) and multiple reference lines. For example, a video coder (e.g., an encoder and/or decoder) can predict an initial prediction sample value for a sample of a current block using an intra-prediction mode. The initial prediction sample value can be predicted from a first neighboring block and/or a second neighboring block of the current block. One or more reference sample values can be determined from at least one line of multiple lines of reference samples from the first neighboring block and/or the second neighboring block. At least one of the lines from the multiple lines used for determining the reference sample value(s) is not adjacent to the current block. A final prediction sample value can be determined for the sample of the current block, such as by modifying the initial prediction sample value using the one or more reference sample values.
Abstract:
An example device includes a memory and processing circuitry in communication with the memory. The processing circuitry of a device is configured to form a most probable mode (MPM) candidate list for a chroma block of the video data stored to the memory, such that the MPM candidate list includes one or more derived modes (DMs) associated with a luma block of the video data associated with the chroma block, and a plurality of luma prediction modes that can be used for coding luminance components of the video data. The processing circuitry is further configured to select a mode from the MPM candidate list, and to code the chroma block according to the mode selected from the MPM candidate list.
Abstract:
A method of decoding video data including receiving a bitstream that includes a sequence of bits that forms a representation of a coded picture of the video data, partitioning the coded picture of the video data into a plurality of blocks using three or more different partition structures, and reconstructing the plurality of blocks of the coded picture of the video data. Partitioning the coded picture of the video data may include partitioning the coded picture of the video data into the plurality of blocks using a plurality partition structures. In some embodiments, partitioning is constrained to, for example, reduce memory bandwidth in implementations of video decoders.
Abstract:
This disclosure describes various interpolation techniques performed by an encoder and a decoder during the motion compensation process of video coding. In one example, an encoder interpolates pixel values of reference video data based on a plurality of different pre-defined interpolation filters. In this example, the decoder receives a syntax element that identifies an interpolation filter, and interpolates pixel values of reference video data based on the interpolation filter identified by the syntax element. In another example, a method of interpolating predictive video data includes generating half-pixel values based on integer pixel values, rounding the half-pixel values to generate half-pixel interpolated values, storing the half-pixel values as non-rounded versions of the half-pixel values, and generating quarter-pixel values based on the non-rounded versions of the half-pixel values and the integer pixel values.
Abstract:
Provided are systems and methods for processing 360-degree video data by obtaining at least one 360-degree rectangular formatted projected picture; detecting a projection boundary in the at least one 360-degree rectangular formatted projected picture; disabling at least one of an in-loop filtering, an intra-prediction, or an inter-prediction, based on detecting the at least one 360-degree rectangular formatted projected picture comprises the projection boundary; and generating an encoded video bitstream.
Abstract:
Systems and methods for low complexity forward transforms using zeroed-out coefficients are described herein. One aspect of the subject matter described in the disclosure provides a video encoder comprising a memory configured to store a video block. The video encoder further comprises a processor in communication with the memory. The processor is configured to determine a full power value of the video block. The processor is further configured to determine a reduced transform coefficient matrix, wherein the reduced transform coefficient matrix comprises an inner region of zero or non-zero values of the same inner region of a full transform coefficient matrix and an outer region of zero values, wherein the reduced transform coefficient matrix and the full transform coefficient matrix have the same size. The processor is further configured to determine a partial power value of the video block using the reduced transform coefficient matrix. The processor is further configured to transform the video block from a pixel domain to a coefficient domain using the reduced transform coefficient matrix based on the full power value and partial power value. The processor is further configured to encode the transformed video block.