Abstract:
In one example, a device for accessing image data includes a memory configured to store image data and one or more processors configured to code a plurality of bit length values for a plurality of block fixed length code length (bflc_len) values for a plurality of blocks of a tile or sub-tile of an image, the bit length values representing numbers of bits used to code the blfc_len values, code the bflc_len values for each of the plurality of blocks such that the bflc_len values have numbers of bits indicated by the respective bit length values, code the codewords for each of the plurality of blocks such that the codewords have the numbers of bits indicated by the bflc_len values for corresponding blocks of the plurality of blocks, and access the bit length values, the bflc_len values, and the codewords in the memory.
Abstract:
A device for encoding video data may be configured to encode video data according to a set of sample adaptive offset (SAO) types; perform a plurality of coding passes to test a subset of the SAO types for a first block of video data, wherein the subset is smaller than the set; select from the subset of SAO types an SAO type for the first block of video data; and generate for inclusion in an encoded bitstream, information for identifying the selected SAO type for the first block.
Abstract:
An example method includes determining a respective variance value for pixels of each respective sub-block of at least four sub-blocks of a current block of video data of a particular block size; determining an average of the determined variance values for the at least four sub-blocks; determining a maximum difference value for the current block based on the average and the variance values for the at least four sub-blocks; determining whether pixels of the current block are homogeneous based on whether the maximum difference value for the current block satisfies a threshold difference value; and in response to determining that the pixels of the current block are homogeneous, selectively including block sizes that are greater than or equal to a threshold block size in a sub-set of block sizes to evaluate for use when intra encoding the pixels of the current block.
Abstract:
In one example, a device for accessing image data includes a memory configured to store image data, the memory comprising a first region and a second region; and one or more processing units configured to code most significant bits (MSBs) of a plurality of residuals of samples of a block of an image, each of the residuals representing a respective difference value between a respective raw sample value and a respective predicted value for the respective raw sample value, access the coded MSBs in the first region of the memory, and access least significant bits (LSBs) of the plurality of residuals of the samples in the second region of the memory.
Abstract:
In general, techniques are described for performing adaptive overlapped block motion compensation when coding video data. A video coding device configured to code video data may implement the techniques. The video coding device may comprise one or more processors configured to determine an adaptation metric from a region of support for one of a first partition and a second partition of one or more blocks of the video data separated by a partition boundary. The region of support may not be the entire one or more blocks of video data. The one or more processors may further be configured to adapt, based on the adaptation metric, application of an overlapped block motion compensation process to determine predicted pixel values near the partition boundary for a first predicted block representative of the first partition of the video block.
Abstract:
This disclosure proposes techniques to allow more flexibility in filtering chroma components in the adaptive loop filter. In one example, a method for adaptive loop filtering includes performing luma adaptive loop filtering based for luma components of a block of pixels, and performing chroma adaptive loop filtering for chroma components of the block of pixels, wherein filter coefficients for both the luma adaptive loop filtering and chroma adaptive loop filtering are derived from a block-based mode or a region-based mode. The method may further include determining to perform luma adaptive loop filtering on the block of pixels, and determining to perform chroma adaptive loop filtering on the block of pixels, wherein the determining to perform chroma adaptive loop filtering is performed independently of determining to perform luma adaptive loop filtering.
Abstract:
An example method includes determining a respective variance value for pixels of each respective sub-block of at least four sub-blocks of a current block of video data of a particular block size; determining an average of the determined variance values for the at least four sub-blocks; determining a maximum difference value for the current block based on the average and the variance values for the at least four sub-blocks; determining whether pixels of the current block are homogeneous based on whether the maximum difference value for the current block satisfies a threshold difference value; and in response to determining that the pixels of the current block are homogeneous, selectively including block sizes that are greater than or equal to a threshold block size in a sub-set of block sizes to evaluate for use when intra encoding the pixels of the current block.
Abstract:
Systems and methods for low complexity forward transforms using mesh-based calculations are described herein. One aspect of the subject matter described in the disclosure provides a video encoder comprising a memory configured to store video information. The video encoder further comprises a processor in communication with the memory. The processor is configured to decompose a transform into multiple transform stages. The processor is further configured to transform the video information using the multiple stages to determine a transform stage output at each transform stage. The processor is further configured to constrain the transform stage output at each transform stage to a predetermined bit depth. The processor is further configured to perform operations on the constrained transform output of a last stage of the multiple stages, wherein the operations are only available for use with data having the predetermined bit depth.
Abstract:
Systems and methods for low complexity encoding and background detection 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 whether the video block is background by comparing the video block to a corresponding block located in a previous temporal frame. The processor is further configured to determine, when the video block is not background, whether one or more sub-blocks of the video block are background by comparing the sub-blocks to corresponding sub-blocks located in the previous temporal frame.
Abstract:
Video encoders and video decoders filter reconstructed video data in a video encoding and/or video decoding processes and, more particularly, may perform adaptive loop filtering. Instead of implementing region adaptive (RA) classification using a fixed set of regions, a variable number of regions in a picture can be used. Additionally or alternatively, a global set of filters can be signaled in a parameter set from an encoder to a decoder, but instead of selecting filters from the global set based on an RA classification or a block adaptive (BA) classification, a filter from the global set can be explicitly signaled, for a given block, using a filter ID associated with the filter.