Entropy encoding and decoding using direct level and run-length/level context-adaptive arithmetic coding/decoding modes
First Claim
1. A computer-readable memory or storage device storing computer-executable instructions for causing a computing device that implements an encoder to perform a method of encoding audio or video data, the method comprising:
- performing a frequency transform on a block of plural samples to produce plural transform coefficients;
quantizing the plural transform coefficients; and
entropy coding the plural quantized transform coefficients, wherein the entropy coding includes;
encoding one or more of the plural quantized transform coefficients using a direct level encoding mode, including performing first context-adaptive arithmetic coding of a level value of a given coefficient of the plural quantized transform coefficients, wherein the first context-adaptive arithmetic coding uses a first set of plural contexts, and wherein the first context-adaptive arithmetic coding includes selecting one of the first set of plural contexts based at least in part on level values of two previously encoded quantized transform coefficients;
switching to a run-level encoding mode for remaining coefficients of the plural quantized transform coefficients;
encoding the remaining quantized transform coefficients using the run-level encoding mode, including;
performing second context-adaptive arithmetic coding of a non-zero level value of one of the remaining quantized transform coefficients, wherein the second context-adaptive arithmetic coding uses a second set of plural contexts different than the first set of plural contexts, and wherein the second context-adaptive arithmetic coding includes selecting one of the second set of plural contexts based at least in part on a level value of a previously encoded quantized transform coefficient; and
performing third context-adaptive arithmetic coding of a run value, the run value indicating a count of consecutive zero-value remaining quantized transform coefficients adjacent the remaining quantized transform coefficient with the non-zero level value, wherein the third context-adaptive arithmetic coding uses a third set of plural contexts different than the first set of plural contexts and different than the second set of plural contexts.
1 Assignment
0 Petitions
Accused Products
Abstract
An encoder performs context-adaptive arithmetic encoding of transform coefficient data. For example, an encoder switches between coding of direct levels of quantized transform coefficient data and run-level coding of run lengths and levels of quantized transform coefficient data. The encoder can determine when to switch between coding modes based on a pre-determined switch point or by counting consecutive coefficients having a predominant value (e.g., zero). A decoder performs corresponding context-adaptive arithmetic decoding.
-
Citations
18 Claims
-
1. A computer-readable memory or storage device storing computer-executable instructions for causing a computing device that implements an encoder to perform a method of encoding audio or video data, the method comprising:
-
performing a frequency transform on a block of plural samples to produce plural transform coefficients; quantizing the plural transform coefficients; and entropy coding the plural quantized transform coefficients, wherein the entropy coding includes; encoding one or more of the plural quantized transform coefficients using a direct level encoding mode, including performing first context-adaptive arithmetic coding of a level value of a given coefficient of the plural quantized transform coefficients, wherein the first context-adaptive arithmetic coding uses a first set of plural contexts, and wherein the first context-adaptive arithmetic coding includes selecting one of the first set of plural contexts based at least in part on level values of two previously encoded quantized transform coefficients; switching to a run-level encoding mode for remaining coefficients of the plural quantized transform coefficients; encoding the remaining quantized transform coefficients using the run-level encoding mode, including; performing second context-adaptive arithmetic coding of a non-zero level value of one of the remaining quantized transform coefficients, wherein the second context-adaptive arithmetic coding uses a second set of plural contexts different than the first set of plural contexts, and wherein the second context-adaptive arithmetic coding includes selecting one of the second set of plural contexts based at least in part on a level value of a previously encoded quantized transform coefficient; and performing third context-adaptive arithmetic coding of a run value, the run value indicating a count of consecutive zero-value remaining quantized transform coefficients adjacent the remaining quantized transform coefficient with the non-zero level value, wherein the third context-adaptive arithmetic coding uses a third set of plural contexts different than the first set of plural contexts and different than the second set of plural contexts. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer-readable memory or storage device storing computer-executable instructions for causing a computing device that implements a decoder to perform a method of decoding audio or video data, the method comprising:
-
entropy decoding plural quantized transform coefficients in a block, wherein the entropy decoding the encoded information includes; decoding one or more of the plural quantized transform coefficients using a direct level decoding mode, including performing first context-adaptive arithmetic decoding of a level value of a given coefficient of the plural quantized transform coefficients, wherein the first context-adaptive arithmetic decoding uses a first set of plural contexts, and wherein the first context-adaptive arithmetic decoding includes selecting one of the first set of plural contexts based at least in part on level values of two previously decoded quantized transform coefficients; switching to a run-level decoding mode for remaining coefficients of the plural quantized transform coefficients in the block; decoding the remaining quantized transform coefficients using the run-level decoding mode, including; performing second context-adaptive arithmetic decoding of a non-zero level value of one of the remaining quantized transform coefficients, wherein the second context-adaptive arithmetic decoding uses a second set of plural contexts different than the first set of plural contexts, and wherein the second context-adaptive arithmetic decoding includes selecting one of the second set of plural contexts based at least in part on a level value of a previously decoded quantized transform coefficient; and performing third context-adaptive arithmetic decoding of a run value, the run value indicating a count of consecutive zero-value remaining quantized transform coefficients adjacent the remaining quantized transform coefficient with the non-zero level value, wherein the third context-adaptive arithmetic decoding uses a third set of plural contexts different than the first set of plural contexts and different than the second set of plural contexts; and inverse quantizing the plural transform coefficients in the block; and performing an inverse frequency transform on the plural transform coefficients to produce a block of the plural samples. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A computing device that implements a decoder, the computing device comprising:
-
one or more processors; memory; and one or more storage media storing instructions for causing the computing device to perform a method of decoding audio or video data, the method comprising; entropy decoding plural quantized transform coefficients in a block, wherein the entropy decoding includes; decoding one or more of the plural quantized transform coefficients using a first decoding mode, including performing first context-adaptive arithmetic decoding of a level value of a given coefficient of the plural quantized transform coefficients, wherein the first context-adaptive arithmetic decoding uses a first set of plural contexts, and wherein the first context-adaptive arithmetic decoding includes selecting one of the first set of plural contexts based at least in part on level values of two previously decoded quantized transform coefficients; switching to a second decoding mode for remaining coefficients of the plural quantized transform coefficients in the block; and decoding the remaining quantized transform coefficients using the second decoding mode, including; performing second context-adaptive arithmetic decoding of a first level value and a second level value of a first remaining coefficient and second remaining coefficient, respectively, of the remaining quantized transform coefficients, wherein the second context-adaptive arithmetic decoding uses a second set of plural contexts different than the first set of plural contexts, and wherein; for the first level value in the second decoding mode, the selection of one of the second set of plural contexts considers the level value of the given quantized transform coefficient from the first decoding mode; and for the second level value in the second decoding mode, the selection of one of the second set of plural contexts considers the first level value; and inverse quantizing the plural transform coefficients in the block; and performing an inverse frequency transform on the plural transform coefficients to produce on a block of the plural samples. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification