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:
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:
In general, techniques are described for performing motion vector prediction for video coding. A video coding device comprising a processor may perform the techniques. The processor may be configured to determine a plurality of candidate motion vectors for a current block of the video data so as to perform the motion vector prediction process and scale one or more of the plurality of candidate motion vectors determined for the current block of the video data to generate one or more scaled candidate motion vectors. The processor may then be configured to modify the scaled candidate motion vectors to be within a specified range.
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 embodiment, a video coder for processing video data includes a processor and a memory. The processor is configured to downsample at least prediction mode information of a reference layer block. In addition, the processor is configured to predict at least one of an enhancement layer block or prediction mode information of the enhancement layer block based at least on the prediction mode information of the reference layer block before the processor downsamples the prediction mode information of the reference layer block. The memory is configured to store the prediction mode information of the reference layer block. The prediction mode information of the reference layer block, for example, includes an inter-prediction mode, an intra-prediction mode, or a motion vector of the reference layer 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:
Prediction information for a current block in an enhancement layer may be determined based at least in part on base layer information obtained by coding a base block in a base layer beneath the enhancement layer. This base block may occur in a position in the base layer such that it is co-located with a non-causal block in the enhancement layer (e.g., a block that occurs after the current block in the coding order of the enhancement layer). The prediction information determined for the current block may be used to code the current block (e.g., encoding or decoding the current block).
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:
A video decoding device receives an array of transform coefficients for a chroma component of video data. The video decoding device receives entropy encoded data representing the value of a split flag associated with the chroma component. The value of the split flag indicates whether the array of transform coefficients is divided into smaller transform blocks. The video decoding device determines a context for the entropy encoded data representing the split flag. The context is based on the value of a split flag associated with another component of video data. The video decoding device entropy decodes the data representing the value of the split flag based on the determined context using context adaptive binary arithmetic coding (CABAC). The luma and chroma components have independent residual quadtree (RQT) structures.
Abstract:
In one example, an apparatus for processing video data comprises a video coder configured to, for each of the one or more chrominance components, calculate a chrominance quantization parameter for a common edge between two blocks of video data based on a first luminance quantization parameter for the first block of video data, a second luminance quantization parameter for the second block of video data, and a chrominance quantization parameter offset value for the chrominance component. The video coder is further configured to determine a strength for a deblocking filter for the common edge based on the chrominance quantization parameter for the chrominance component, and apply the deblocking filter according to the determined strength to deblock the common edge.