Abstract:
An input of an encoder receives moving image data comprising a sequence of frames to be encoded, each frame comprising a plurality of blocks in two dimensions with each block comprising a plurality of pixels in those two dimensions. A motion prediction module performs encoding by, for at least part of each of a plurality of said frames, coding each block relative to a respective reference portion of another frame of the sequence, with the respective reference portion being offset from the block by a respective motion vector. According to the present disclosure, the moving image data of this plurality of frames comprises a screen capture stream, and the motion prediction module is configured to restrict each of the motion vectors of the screen capture stream to an integer number of pixels in at least one of said dimensions.
Abstract:
Techniques and tools for encoding enhancement layer video with quantization that varies spatially and/or between color channels are presented, along with corresponding decoding techniques and tools. For example, an encoding tool determines whether quantization varies spatially over a picture, and the tool also determines whether quantization varies between color channels in the picture. The tool signals quantization parameters for macroblocks in the picture in an encoded bit stream. In some implementations, to signal the quantization parameters, the tool predicts the quantization parameters, and the quantization parameters are signaled with reference to the predicted quantization parameters. A decoding tool receives the encoded bit stream, predicts the quantization parameters, and uses the signaled information to determine the quantization parameters for the macroblocks of the enhancement layer video. The decoding tool performs inverse quantization that can vary spatially and/or between color channels.
Abstract:
Multi-layered rate control for scalable video coding is provided. A parameter value may be calculated based on a current layer target bit rate and a current layer buffer state for a frame in a video stream. The frame may include a lower layer and one or more higher layers. A determination may then be made as to whether the current layer is the lower layer. If the current layer is the lower layer, a determination may then be made as to whether a coupling request has been received from a higher layer in the frame. If the coupling request has been received from the higher layer in the frame, the parameter value for the current layer may be increased based on a buffer state threshold value of the higher layer in the frame.
Abstract:
Techniques and tools for video coding/decoding with sub-block transform coding/decoding and re-oriented transforms are described. For example, a video encoder adaptively switches between 8×8, 8×4, and 4×8 DCTs when encoding 8×8 prediction residual blocks; a corresponding video decoder switches between 8×8, 8×4, and 4×8 inverse DCTs during decoding. The video encoder may determine the transform sizes as well as switching levels (e.g., frame, macroblock, or block) in a closed loop evaluation of the different transform sizes and switching levels. When a video encoder or decoder uses spatial extrapolation from pixel values in a causal neighborhood to predict pixel values of a block of pixels, the encoder/decoder can use a re-oriented transform to address non-stationarity of prediction residual values.
Abstract:
The coded block parameters used to code blocks of image samples into structures called macroblocks are compressed more efficiently by exploiting the correlation between chrominance and luminance blocks in each macroblock. In particular, the coded block pattern for chrominance and luminance are combined into a single parameter for the macroblock and jointly coded with a single variable length code. To further enhance coding efficiency, the spatial coherence of coded block patterns can be exploited by using spatial prediction to compute predicted values for coded block pattern parameters.
Abstract:
Techniques and tools for video coding/decoding with motion resolution switching and sub-block transform coding/decoding are described. For example, a video encoder adaptively switches the resolution of motion estimation and compensation between quarter-pixel and half-pixel resolutions; a corresponding video decoder adaptively switches the resolution of motion compensation between quarter-pixel and half-pixel resolutions. For sub-block transform sizes, for example, a video encoder adaptively switches between 8×8, 8×4, and 4×8 DCTs when encoding 8×8 prediction residual blocks; a corresponding video decoder switches between 8×8, 8×4, and 4×8 inverse DCTs during decoding.
Abstract:
Techniques and tools are described for scalable video encoding and decoding. In some embodiments, an encoding tool encodes base layer video and outputs encoded base layer video in a base layer bit stream. The encoding tool encodes inter-layer residual video (representing differences between input video and reconstructed base layer video) using motion compensation relative to previously reconstructed inter-layer residual video. For the inter-layer residual video, the encoding tool outputs motion information and motion-compensated prediction residuals in an enhancement layer bit stream. A decoding tool receives the base layer bit stream and enhancement layer bit stream, reconstructs base layer video, reconstructs inter-layer residual video, and combines the reconstructed base layer video and reconstructed inter-layer residual video. Using motion compensation for the inter-layer residual video facilitates the use of separate motion vectors and separate codecs for the base layer video and inter-layer residual video.
Abstract:
Techniques and tools are described for scalable video encoding and decoding. In some embodiments, an encoding tool encodes base layer video and outputs encoded base layer video in a base layer bit stream. The encoding tool encodes inter-layer residual video (representing differences between input video and reconstructed base layer video) using motion compensation relative to previously reconstructed inter-layer residual video. For the inter-layer residual video, the encoding tool outputs motion information and motion-compensated prediction residuals in an enhancement layer bit stream. A decoding tool receives the base layer bit stream and enhancement layer bit stream, reconstructs base layer video, reconstructs inter-layer residual video, and combines the reconstructed base layer video and reconstructed inter-layer residual video. Using motion compensation for the inter-layer residual video facilitates the use of separate motion vectors and separate codecs for the base layer video and inter-layer residual video.
Abstract:
The coded block parameters used to code blocks of image samples into structures called macroblocks are compressed more efficiently by exploiting the correlation between chrominance and luminance blocks in each macroblock. In particular, the coded block pattern for chrominance and luminance are combined into a single parameter for the macroblock and jointly coded with a single variable length code. To further enhance coding efficiency, the spatial coherence of coded block patterns can be exploited by using spatial prediction to compute predicted values for coded block pattern parameters.
Abstract:
Approaches to selection of motion vector (“MV”) precision during video encoding are presented. These approaches can facilitate compression that is effective in terms of rate-distortion performance and/or computational efficiency. For example, a video encoder determines an MV precision for a unit of video from among multiple MV precisions, which include one or more fractional-sample MV precisions and integer-sample MV precision. The video encoder can identify a set of MV values having a fractional-sample MV precision, then select the MV precision for the unit based at least in part on prevalence of MV values (within the set) having a fractional part of zero. Or, the video encoder can perform rate-distortion analysis, where the rate-distortion analysis is biased towards the integer-sample MV precision. Or, the video encoder can collect information about the video and select the MV precision for the unit based at least in part on the collected information.