Abstract:
Techniques and tools for encoding and decoding data values that are hierarchically organized are presented. For example, an encoder encodes data as a set that has a hierarchy of subsets with set symbols. In the encoding, the encoder evaluates the data values of the set and selectively encodes a symbol combination code that indicates the set symbols of multiple subsets of the set. Then, for each of the multiple subsets considered as a new set, the encoder selectively repeats the evaluating, selective encoding and selective repetition for the new set. In corresponding decoding, a decoder decodes data encoded as a set that has a hierarchy of subsets with set symbols. In some implementations, the encoding and decoding are adaptive and use a symbol alphabet with nested elements.
Abstract:
Techniques and tools are described for signaling hypothetical reference decoder parameters for video bitstreams, including signaling of buffer fullness. For example, a buffer size syntax element indicates a decoder buffer size, and a buffer fullness syntax element indicates a buffer fullness as a fraction of the decoder buffer size. As another example, buffer fullness is signaled in one or more entry point headers and other hypothetical reference decoder parameters are signaled in a sequence header.
Abstract:
Described tools and techniques relate to signaling for DC coefficients at small quantization step sizes. The techniques and tools can be used in combination or independently. For example, a tool such as a video encoder or decoder processes a VLC that indicates a DC differential for a DC coefficient, a FLC that indicates a value refinement for the DC differential, and a third code that indicates the sign for the DC differential. Even with the small quantization step sizes, the tool uses a VLC table with DC differentials for DC coefficients above the small quantization step sizes. The FLCs for DC differentials have lengths that vary depending on quantization step size.
Abstract:
Entropy coding and decoding techniques are described, which may be implemented separately or in combination. For example, a video encoder uses two-layer run level coding to reduce bitrate for frequency transform coefficients in a quick and efficient manner, and a video decoder uses corresponding two-layer run level decoding. This two-layer coding/decoding can be generalized to more than two layers of run level coding/decoding. The video encoder and decoder exploit common patterns in run level information to reduce code table size and create opportunities for early termination of decoding. Using zoned Huffman code tables helps limit overall table size while still providing a level of adaptivity in encoding and decoding. Using embedded Huffman code tables allows the encoder and decoder to reuse codes for 8×8, 8×4, 4×8, and 4×4 blocks.
Abstract:
A method is described for efficiently determining total end-to-end distortion of a pre-compressed data stream, such as video streams or other media streams, at the time of delivery over a lossy-network, and for providing adaptive error-resilient delivery schemes based on distortion estimates. The methods can be utilized with single or multilayer packet streams and are particularly well suited for video streams. By way of example, distortion estimates are performed by generating side-information at the time of data stream compression, wherein the side-information is used in conjunction with information about the network status to determine an estimated distortion for the group of packets when the data stream is transported over the network to a destination end. This estimation may be utilized within described resiliency techniques in which the error correction mechanism is selected in response to the estimated distortion, which may be additionally refined in reference to cost factors.
Abstract:
Techniques and tools for encoding and decoding data values that are hierarchically organized are presented. For example, an encoder encodes data as a set that has a hierarchy of subsets with set symbols. In the encoding, the encoder evaluates the data values of the set and selectively encodes a symbol combination code that indicates the set symbols of multiple subsets of the set. Then, for each of the multiple subsets considered as a new set, the encoder selectively repeats the evaluating, selective encoding and selective repetition for the new set. In corresponding decoding, a decoder decodes data encoded as a set that has a hierarchy of subsets with set symbols. In some implementations, the encoding and decoding are adaptive and use a symbol alphabet with nested elements.
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:
A video decoder receives an entry point key frame comprising first and second interlaced video fields and decodes a first syntax element comprising information (e.g., frame coding mode) for the entry point key frame at a first syntax level (e.g., frame level) in a bitstream. The first interlaced video field is a predicted field, and the second interlaced video field is an intra-coded field. The information for the entry point key frame can be a frame coding mode (e.g., field interlace) for the entry point key frame. The decoder can decode a second syntax element at the first syntax level comprising second information (e.g., field type for each of the first and second interlaced video fields) for the entry point key frame.
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 input frame is downsampled in terms of sample depth and chroma sampling rate, encoded, and output from the encoder as a base layer bitstream. The base layer bitstream is also reconstructed and upsampled to produce a reconstructed bitstream which is subtracted from the original input frame to produce a residual layer. The residual layer is split and encoded as a sample depth residual layer bitstream and a chroma high-pass residual layer bitstream. To recover the encoded input frame, a decoder receives one or more of these bitstreams, decodes them, and combines them to form a reconstructed image. The use of separate codecs is allowed for the base layer and the enhancement layers, without inter-layer dependencies.