Abstract:
In an example, aspects of this disclosure relate to a method of coding video data that generally includes determining prediction information for a block of video data, where the block is included in a coded unit of video data and positioned below a top row of above-neighboring blocks in the coded unit, and where the prediction information for the block is based on prediction information from one or more other blocks in the coded unit but not based on prediction information from any of the top row of blocks in the coded unit. The method also generally includes coding the block based on the determined prediction information.
Abstract:
A video encoder may encode video data by adaptively selecting between one-eighth-pixel and one-quarter-pixel precision motion vectors, and signal the selected precision. In one example, an apparatus includes a video encoder to encode a block of video data using a one-eighth-pixel precision motion vector when use of the one-eighth-pixel precision motion vector is determined to be preferable for the block over a one-quarter-pixel precision motion vector, and to generate a signal value indicative of the use of the one-eighth-pixel precision motion vector for the block, and an output interface to output the encoded block and the signal value. A video decoder may be configured to receive the signal value and the encoded block, analyze the signal value to determine whether the block was encoded using one-eighth-pixel precision or one-quarter-pixel precision, and decode the block based on the determination.
Abstract:
In general, techniques of this disclosure are related to determining a prediction characteristic associated with a coding unit of video data, wherein determining the prediction characteristic includes determining a prediction type that defines a number of prediction units associated with the coding unit. Techniques of this disclosure may also be related to generating a set of available intra-prediction modes for the coding unit based on the prediction characteristic, selecting an intra-prediction mode from the available intra-prediction modes, and applying one of the available intra-prediction modes to code the coding unit.
Abstract:
Filtering is applied at an encoder, and filter information describing a set of filters is encoded in the bitstream to enable a decoder to identify the filtering that was applied at the encoder. The decoder receives encoded video data that includes the filter information, decodes the video data, and applies filtering based on the filtering information. The decoder applies the same filtering that was applied at the encoder. To potentially reduce the number of bits needed to reconstruct the set of filters and other filter information as well as to potentially improve decoder performance, filter description syntax describing the set of filters can be included in the bitstream. The filter description syntax may identify a number of filters in a set of filters, a maximum number of filters in a set of filters, and/or identify a shape of filters in a set of filters.
Abstract:
This disclosure relates to techniques for reducing a cost of coding prediction information in video coding. Video blocks in a generalized P/B (GPB) frame are encoded using up to two motion vectors calculated from reference pictures in two separate reference picture lists that are identical. Video blocks of a GPB frame may, therefore, be encoded using a bidirectional prediction mode with a first motion vector from a reference picture in a first reference picture list and a second motion vector from the same or substantially similar reference picture in a second reference picture list. The techniques include jointly coding the first and second motion vectors for a video block of a GPB frame. The techniques include coding the first motion vector relative to a first motion predictor generated from a motion vector of a neighboring block, and coding the second motion vector relative to the first motion vector.
Abstract:
In one example, a video decoder is configured to receive a value for a coding unit of video data, wherein the coding unit is partitioned into a plurality of sub-coding units, determine whether the sub-coding units are partitioned into further sub-coding units based on the value, and decode the sub-coding units and the further sub-coding units. In another example, a video encoder is configured to partition a coding unit of video data into a plurality of sub-coding units, determine whether to partition the sub-coding units into further sub-coding units, and encode the coding unit to include a value that indicates whether the sub-coding units are partitioned into the further sub-coding units.
Abstract:
A video encoder may encode video data by adaptively selecting between one-eighth-pixel and one-quarter-pixel precision motion vectors, and signal the selected precision. In one example, an apparatus includes a video encoder to encode a block of video data using a one-eighth-pixel precision motion vector when use of the one-eighth-pixel precision motion vector is determined to be preferable for the block over a one-quarter-pixel precision motion vector, and to generate a signal value indicative of the use of the one-eighth-pixel precision motion vector for the block, and an output interface to output the encoded block and the signal value. A video decoder may be configured to receive the signal value and the encoded block, analyze the signal value to determine whether the block was encoded using one-eighth-pixel precision or one-quarter-pixel precision, and decode the block based on the determination.
Abstract:
In one aspect of this disclosure, template matching motion prediction is applied to B-frames. In another aspect of this disclosure, template matching motion prediction as applied to video block coding may include generating a template offset, generating a weighted sum of absolute differences, selecting a number of hypotheses used to encode video blocks based on the cost associated with the number of hypotheses and signaling, with a new syntax, to a decoder, the number of hypotheses used in encoding, rejecting hypotheses if the difference in value between a hypothesis and a reference hypothesis is greater than a threshold value, and/or generating the content of a sub-block that does not have reconstructed data available by combining motion-compensated prediction and luma residuals.
Abstract:
A video encoder may be configured to adaptively select a sub-pixel precision for motion vectors used to encode video data. The video encoder may further entropy encode an indication of the sub-pixel precision using context adaptive binary arithmetic coding, where the context may correspond to the size of a block of video data for the motion vector. For example, the size may correspond to the depth of a coding unit, the size of a prediction unit of the coding unit, and/or a type for the prediction unit. The video encoder may also interpolate values for one-sixteenth pixel positions of chrominance data using bilinear interpolation. The video encoder may further encode a motion vector difference value for the motion vector using an encoding scheme corresponding to the sub-pixel precision of the motion vector. A video decoder may use similar, reciprocal techniques for decoding the video data.
Abstract:
This disclosure describes techniques for intra-prediction mode signaling for video coding. In one example, a video coder is configured to determine, for a block of video data, a set of most probable intra-prediction modes such that the set of most probable intra-prediction modes has a size that is equal to a predetermined number that is greater than or equal to two. The video coder is also configured to code a value representative of an actual intra-prediction mode for the block based at least in part on the set of most probable intra-prediction modes and code the block using the actual intra-prediction mode. The video coder may further be configured to code the block using the actual intra-prediction mode, e.g., to encode or decode the block. Video encoders and video decoders may implement these techniques.