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:
Disclosed are techniques for coding coefficients of a video block having a nonsquare shape defined by a width and a height, comprising coding one or more of x- and y-coordinates that indicate a position of a last non-zero coefficient within the block according to an associated scanning order, including coding each coordinate by determining one or more contexts used to code the coordinate based on one of the width and the height that corresponds to the coordinate, and coding the coordinate by performing a context adaptive entropy coding process based on the contexts. Also disclosed are techniques for coding information that identifies positions of non-zero coefficients within the block, including determining one or more contexts used to code the information based on one or more of the width and the height, and coding the information by performing a context adaptive entropy coding process based on the contexts.
Abstract:
This disclosure describes techniques for coding transform coefficients for a block of video data. According to some aspects of this disclosure, an encoder or decoder may map between a code number cn and last_pos and level_ID syntax elements associated with a block of video data based on a scaling factor S. The scaling factor S may be based on a size of the block of video data being coded.
Abstract:
In general, techniques are described for implementing an 8-point inverse discrete cosine transform (IDCT). An apparatus comprising an 8-point inverse discrete cosine transform (IDCT) hardware unit may implement these techniques to transform media data from a frequency domain to a spatial domain. The 8-point IDCT hardware unit includes an even portion comprising factors A, B that are related to a first scaled factor (µ) in accordance with a first relationship. The 8-point IDCT hardware unit also includes an odd portion comprising third, fourth, fifth and sixth internal factors (G, D, E, Z) that are related to a second scaled factor (?) in accordance with a second relationship. The first relationship relates the first scaled factor to the first and second internal factors. The second relationship relates the second scaled factor to the third, fourth, fifth and sixth internal factors.
Abstract:
A video coder may utilize large macroblocks having more than 16x16 pixels. Syntax for the large macroblocks may define whether a bitstream includes large macroblocks, such as superblocks having 64x64 pixels or bigblocks having 32x32 pixels. The syntax may be included in a slice header or a sequence parameter set. The large macroblocks may also be encoded according to a large macroblock syntax. The bitstream may further include syntax data that indicates a level value based on whether the bitstream includes any of the large macroblocks, for example, as a smallest-sized luminance prediction block. A decoder may use the level value to determine whether the decoder is capable of decoding the bitstream.
Abstract:
This disclosure describes techniques associated with filtering of video data in a video encoding and/or decoding process. In accordance with this disclosure, filtering is applied at an encoder, and filter information is encoded in the bitstream to identify the filtering that was applied at the encoder. Different types of filtering may be applied based on an activity metric determined for the video data. Moreover, in accordance with this disclosure, the manner in which the filter information is encoded into the bitstream may be dependent on the activity metric. In particular, for a first range of the activity metric, one or more filters are encoded directly, and for a second range of the activity metric, one or more filters are predictively encoded.
Abstract:
This disclosure describes techniques for coding video data. As one example, this disclosure describes a coded block pattern (CBP) for a coding unit (CU) of video data that indicates whether or not each of a luminance component (Y), a first chrominance component (U), and a second chrominance component (V) include at least one non-zero coefficient. According to another example, this disclosure describes a CBP that indicates whether respective blocks of a CU include at least on non-zero coefficient. The CBP described herein may be mapped to a single variable length code (VLC) code word. The VLC code word may be used by a coder to code the CU of video data.
Abstract:
Techniques are described for encoding and decoding digital video data using macroblocks that are larger than the macroblocks prescribed by conventional video encoding and decoding standards. For example, the techniques include encoding and decoding a video stream using macroblocks comprising greater than 16x16 pixels, for example, 64x64 pixels. Each macroblock may be partitioned into two or more partitions, and two or more of the partitions may be encoded using different modes. In one example, an apparatus includes a video encoder configured to receive a video block having a size of more than 16x16 pixels, partition the block into partitions, encode one of the partitions using a first encoding mode, encode another of the partitions using a second encoding mode different from the first encoding mode, and generate block-type syntax information that indicates the size of the block and identifies the partitions and the encoding modes used to encode the partitions.
Abstract:
This disclosure describes techniques for adaptively coding video block header information based on previously encoded video blocks. A video encoder may adaptively select a coding table for use in encoding a syntax element of a current video block based on corresponding syntax elements of one or more previously encoded blocks. In one aspect, the video encoder may adaptively select the coding table for use in encoding a block type of the current block based on block types of one or more video blocks adjacent to the current video block, i.e., neighboring video blocks. The video encoder may also predict one or more other header syntax elements of the current block based on at least one of the previously encoded video blocks. If prediction is successful, the video encoder may encode a flag to indicate the success of prediction.
Abstract:
This disclosure describes techniques for scanning coefficients of video blocks. In particular, the techniques of this disclosure adapt a scan order used to scan a two dimensional block of coefficients into a one dimensional coefficient vector based on statistics associated with one or more previously coded blocks. For example, statistics that indicate the likelihood that a given coefficient value in each position of a two dimensional block is zero or non zero may be collected for one or more previously coded blocks. At some point, an adjustment to the scan order can be made in order to better ensure that non-zero coefficients are grouped together near the front of the one dimensional coefficient vector, which can improve the effectiveness of entropy coding. The collection of statistics and adjustment of scan order may be made separately for each possible prediction mode.