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:
In one example, an apparatus for encoding video data includes a video encoder configured to select an intra-prediction mode to use to encode a block of video data, determine whether the block includes a sub-block of a size for which multiple transforms are possible based on the size of the sub-block and the selected intra-prediction mode, when the block includes the sub-block of the size for which multiple transforms are possible based on the size of the sub-block and the selected intra-prediction mode, select one of the multiple possible transforms, transform the sub-block using the selected one of the multiple possible transforms, and provide an indication of the selected one of the multiple possible transforms for the size of the block.
Abstract:
A video encoding device is configured to generate a first group of syntax elements. Each syntax element in the first group indicates whether a prediction mode of a respective prediction unit (PU) is based on an index into a list of most probable modes. A second group of syntax elements is generated that correspond to respective syntax elements in the first group. The syntax elements in the second group identify either an index into the list of most probable modes or an intra-prediction mode. The first group of syntax elements are context adaptive binary arithmetic coding (CABAC) encoded, and the second group of syntax elements are bypass encoded. A video decoder is configured to receive the entropy encoded first and second groups of syntax elements. The video decoder CABAC decodes the first group of flags and bypass decodes the second group of flags.
Abstract:
In an example, a method of processing data includes transmitting data over a network at a first bit rate, identifying a reduction in a network link rate of the network from a first network link rate to a second network link rate, and in response to identifying the reduction in the network link rate, determining a recovery bit rate at which to transmit the data over the network, where the recovery bit rate is less than the second network link rate. The method also includes determining a buffering duration based on a difference between a time of the identification of the reduction in the network link rate and an estimated actual time of the reduction in the network link rate, and determining a recovery rate duration during which to transmit the data at the recovery bit rate based on the recovery bit rate and the buffering duration.
Abstract:
A computing device, such as a video encoder, uses respective positions of respective coefficients in a coefficient block to look up, in a lookup table, respective quantization offsets for the respective coefficients. Furthermore, the computing device determines, based at least in part on the quantization offsets for the one or more coefficients, respective quantized levels for the respective coefficients.
Abstract:
A computing device, such as a video encoder, determines an initial quantized level for a coefficient of a coefficient block and determines whether the coefficient is less than the product of the initial quantized level and a quantization step size value. In response to determining that the coefficient is less than the product of the initial quantized level and the quantization step size value, the computing device determines rate-distortion costs of quantizing the coefficient to be the initial quantized level for the coefficient, the initial quantized level minus one, and in some circumstances, 0. The computing device determines an actual quantized level for the coefficient based at least in part on the calculated rate-distortion costs and includes the actual quantized level in a quantized version of the coefficient block.
Abstract:
A video encoder signals whether WPP is used to encode a picture of a sequence of video picture. If WPP is used to encode the picture, the video encoder generates a coded slice NAL unit that includes a plurality of sub-streams, each of which includes a consecutive series of bits that represents one encoded row of coding tree blocks (CTBs) in a slice of the picture. A video decoder receives a bitstream that includes the coded slice NAL unit. Furthermore, the video decoder may determine, based on a syntax element in the bitstream, that the slice is encoded using WPP and may decode the slice using WPP.
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.