Abstract:
To encode video data, a video encoder partitions a 2N×2N block of video data into four N×N blocks, determines encoding modes for each of the four N×N blocks, calculates values representative of encoded versions of the four N×N blocks using the encoding modes for each of the four N×N blocks, determines whether to skip testing of at least one non-square partitioning mode for the 2N×2N block based on the calculated values, and encodes the 2N×2N block based at least in part on the determination of whether to skip testing of the at least one non-square partitioning mode.
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.
Abstract:
At least one processor is configured to encode samples of a largest coding unit (LCU) of a picture using a sample adaptive offset (SAO) mode. To encode the samples of the LCU using SAO, the at least one processor is configured to: calculate differences between corresponding reconstructed samples of the LCU and original samples of the LCU, clip a number of bits from each of the differences to form clipped differences, sum the clipped differences to form a sum of differences, clip the sum of differences to form a clipped sum of differences, calculate a number of the reconstructed samples, clip a number of bits from the number of reconstructed samples to form a dipped number of samples, and divide the clipped sum of differences by the clipped number of samples to produce an offset for the LCU.
Abstract:
This disclosure describes techniques for performing sample adaptive offset signaling and coding in a video coding process. Techniques of the disclosure include both a merge-based and prediction-based signaling process for sample adaptive offset information (i.e., offset values and offset type). The techniques includes determining offset information for a current partition, comparing the offset information of the current partition with offset information of one or more neighbor partitions, coding a merge instruction in the case that the offset information of one of the one or more neighbor partitions is the same as the offset information of the current partition, and coding one of a plurality of prediction instructions in the case that the offset information of the one or more neighbor partitions is not the same as the offset information of the current partition.
Abstract:
A filter unit of a video encoder or video decoder can determine a first metric for a group of pixels within a block of pixels, determine a second metric for the group of pixels, determine a filter based on the first metric and the second metric, and generate a filtered image by applying the filter to the group of pixels. The first metric and second metric can be an activity metric and a direction metric, respectively, or can be other metrics such as an edge metric, horizontal activity metric, vertical activity metric, or diagonal activity metric.
Abstract:
A video coder according to the techniques of the present disclosure may code a prefix value and code a suffix value, such that the combination of the suffix value and the prefix value identify an offset value determined for a sample adaptive offset filtering (SAO) operation.
Abstract:
This disclosure describes techniques associated with filtering reconstructed video data in a video encoding and/or video decoding processes and, more particularly, this disclosure describes techniques related to adaptive loop filtering. According to one technique of this disclosure, instead of implementing region adaptive (RA) classification using a fixed set of regions, a variable number of regions in a picture can be used. According to another technique of this disclosure, 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.
Abstract:
Techniques for coding video data include coding sample adaptive offset (SAO) offset values as part of performing a video coding process. In particular, the techniques include determining the SAO offset values according to a SAO process. The techniques further include storing a codebook defining a plurality of codes for coding different variations of SAO offset values. The techniques also include coding the SAO offset values in accordance with the codebook so as to specify the SAO offset values as one of the plurality of codes defined by the codebook.
Abstract:
A video coder can be configured to code a syntax element that indicates if a loop filtering operation, such as deblocking filtering, adaptive loop filtering, or sample adaptive offset filtering, is allowed across a tile boundary. A first value for the syntax element may indicate loop filtering is allowed across the tile boundary, and a second value for the syntax element may indicate loop filtering is not allowed across the tile boundary. If loop filtering is allowed across a tile boundary, additional syntax elements may indicate specifically for which boundaries loop filtering is allowed or disallowed.
Abstract:
In general, techniques are described for performing multiple passes of sample adaptive offset (SAO) filtering when coding video data. A video decoding device comprising one or more processors may perform the techniques. The processors may determine a first SAO pixel classification for a block of video data and determine a first offset value based on the first SAO pixel classification and one or more pixel values of the block. The one or more processors may also determine a second SAO pixel classification for the block and determine a second offset value based on the second SAO pixel classification and the one or more pixel values of block of video data. The processors may then apply the first offset value and the second offset value to the block of video data to generate a block of SAO filtered video data.