A block transform-based digital media codec efficiently compresses digital media data using block patterns representing whether a block's coefficients are zero-valued, such that their explicit encoding is skipped. Because the block patterns can have widely varying probability distributions, the codec adaptively chooses a prediction mode for modifying the block patterns (e.g., based on spatial prediction, or inverting) to enhance their compression using entropy coding techniques. Further, with high spatial correlation of block patterns, the codec encodes a meta block pattern for a region indicating whether all block patterns of the region represent zero-valued coefficient blocks. In such cases, the codec can then also omit explicitly encoding the block patterns in those regions.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method of encoding digital media data, the method comprising: using a computing device that implements an encoder, applying a transform to a current cluster of blocks of the digital media data to produce a set of transform coefficients for the respective blocks; determining a block pattern for the current cluster of blocks, wherein the block pattern comprises a pattern of symbols indicating whether encoding of coefficients in corresponding ones of the blocks in the current cluster of blocks is skipped; conditionally, based on a prediction mode determined from causal statistics of previously encoded block patterns, applying an operation to the pattern of symbols of the block pattern for the current cluster of blocks, thereby altering the pattern of symbols such that a probability of the symbols in the block pattern having a given value tends toward a probability suited to efficient variable length entropy coding, wherein the causal statistics are maintained in two state variables that are updated based on a number of set bits in the block pattern for the current cluster of blocks and that, once updated, are used to make a determination of a prediction mode for a block pattern for a next cluster of blocks, the determination being based in part on a comparison of a first of the state variables to a second of the state variables; and encoding the block pattern in a compressed bitstream using a variable length entropy coding, wherein the compression efficiency of the variable length entropy coding relates to the probability of occurrence of the given value.
2. The method of encoding digital media data of claim 1 , wherein applying the operation comprises: inverting the symbols of the block pattern for the current cluster.
3. The method of encoding digital media data of claim 1 , wherein applying the operation comprises: performing a spatial prediction operation on the block pattern for the current cluster.
4. The method of encoding digital media data of claim 3 , wherein altering the pattern of symbols based on the spatial prediction comprises: selecting part of a block pattern of a neighboring cluster of blocks as a predictor of the block pattern for the current cluster of blocks, the neighboring cluster of blocks preceding the current cluster of blocks in order of processing; and performing a reversible combination of part of the block pattern for the current cluster of blocks with the predictor.
5. The method of encoding digital media data of claim 1 , wherein said conditionally applying an operation comprises: choosing from plural modes for applying different operations to alter the probability distribution of the block pattern based on a backward adaptive model responsive to a statistical analysis of the probability distributions of block patterns of preceding clusters of blocks; and applying the operation of the currently chosen mode to the block pattern of the current cluster of blocks.
6. The method of encoding digital media data of claim 5 , wherein said operations of the plural modes comprise at least an operation by which the symbols of the block pattern for the current cluster are inverted, or an operation calculating a difference from a spatial prediction of the block pattern for the current cluster.
7. A digital media encoder comprising: a data storage buffer for storing digital media data to be encoded; a processor programmed to: adaptively choose a block pattern prediction mode for encoding block patterns causally based on observed statistics of at least one previously encoded block pattern, where the block patterns comprise patterns of values that indicate whether respective blocks in corresponding clusters of blocks comprise non-zero coefficients or all zero coefficients, wherein the observed statistics are maintained in two state variables that are updated based on a number of set bits in the block pattern for the current cluster of block and that, once updated, are used to make a determination of a prediction mode for a block pattern for a next cluster of blocks, the determination being based in part on a comparison of a first of the state variables to a second of the state variables; apply a block pattern modification operation to the block patterns according to the chosen block pattern prediction mode, wherein the block pattern modification operation alters a probability distribution of the block patterns to enhance compression efficiency of the block patterns using a variable length entropy coding scheme; and encode the block patterns using the variable length entropy coding scheme.
8. The digital media encoder of claim 7 , wherein the processor is further programmed, when applying the block pattern modification operation to a block pattern for a current cluster of blocks when in a first block pattern prediction mode, to invert the block pattern of the current cluster of blocks.
9. The digital media encoder of claim 8 , wherein the processor is further programmed, when applying the block pattern modification operation to a block pattern for a current cluster of blocks when in a second block pattern prediction mode, to alter the block pattern of the current cluster of blocks according to a spatial prediction based on a block pattern of a neighboring cluster of blocks in the digital media data.
10. The digital media encoder of claim 9 , wherein the processor is further programmed to adapt the choice of block pattern prediction mode based on a number of occurrences of previously encoded block patterns indicating that the respective blocks in the corresponding clusters of blocks comprise all zero coefficients.
11. The digital media encoder of claim 7 , wherein the processor is further programmed to: encode a meta block pattern representing whether block patterns of all clusters of blocks within an area of the digital media data are indicative of all zero coefficients; and when a meta block pattern indicates that not all block patterns for the area indicate all zero coefficients, encoding the block patterns for the area using a variable length entropy coding.
12. At least one computer-readable memory or magnetic disc storing a computer-executable digital media processing program for performing a method of processing digital media data, the method comprising: applying a transform to blocks of the digital media data to produce a set of transform coefficients for the respective blocks; producing block patterns for the blocks of the digital media data, each of the block patterns being indicative of whether encoding of coefficients in individual blocks in respective macroblocks is skipped; adaptively choosing a block pattern prediction mode causally based on observed statistics of at least one preceding block pattern, wherein the observed statistics are maintained in two state variables that are updated based on a number of set bits in the block pattern for the current cluster of block and that, once updated, are used to make a determination of a prediction mode for a block pattern for a next cluster of blocks, the determination being based in part on a comparison of a first of the state variables to a second of the state variables; applying a block pattern modification operation to the block patterns according to the chosen block pattern prediction mode, wherein the block pattern modification operation alters a probability distribution of the block patterns to enhance compression efficiency of the block patterns using variable length entropy coding; producing meta block patterns from the block patterns, each of the meta block patterns corresponding to a respective one of the macroblocks and being indicative of whether encoding of individual coefficients in groups formed from multiple blocks in the respective one of the macroblocks is skipped; encoding the meta block patterns using variable length entropy coding; and encoding the block patterns using variable length entropy coding except those ones of the block patterns corresponding to a group in which encoding of individual coefficients is skipped as indicated by the corresponding meta block pattern for the macroblock that includes the group.
13. The at least one computer-readable memory or magnetic disc of claim 12 wherein the block pattern modification operation in one mode inverts the block patterns, and in another mode modifies the block pattern as a spatial prediction function from a predictor block pattern of a neighboring block.
14. A method of decoding digital media data, the method comprising: using a computing device that implements a decoder, decoding a block pattern from a compressed bitstream; applying one of multiple available block pattern prediction modes to generate a block pattern from the block pattern, the values of the block pattern indicating whether one or more coefficients in corresponding blocks of a cluster of blocks are non-zero, the applied one of the multiple available block pattern prediction modes being determined in part from a comparison of a first state variable to a second state variable, the first and second state variables being causal variables that are updated as each cluster of blocks in a frame is decoded and that are based on a number of set bits in the block pattern; and updating the block pattern prediction mode to applied to a next cluster of blocks based in part on a comparison of the first state variable to a second state variable after the first and second state variables are updated.
15. The method of claim 14 , wherein one of the multiple available block pattern prediction modes comprises a mode in which the values of the block pattern are inverted.
16. The method of claim 14 , wherein one of the multiple available block pattern prediction modes comprises a mode in which at least some of the values of the block pattern are predicted from a value from a previously decoded block.
17. A digital media decoder comprising: a data storage buffer; a processor programmed to: adaptively choose a block pattern prediction mode causally based on observed statistics of at least one previously decoded block pattern, wherein the observed statistics are maintained in two state variables that are used to choose the block pattern prediction through a determination of a prediction mode for a block pattern for a next cluster of blocks, the determination being based in part on a comparison of a first of the state variables to a second of the state variables; apply a block pattern modification operation to the decoded block pattern according to the chosen block pattern prediction mode and to thereby generate an original block pattern, the original block pattern comprising a pattern of values that indicates wether respective blocks in a corresponding cluster of blocks comprises non-zero coefficients or all zero coefficients.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
August 12, 2005
July 7, 2015
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.