Block transform and quantization for image and video coding
First Claim
1. A computing device, comprising:
- at least one battery; and
a processor coupled so as to be powered by the at least one battery and configured to implement a decoding method comprising;
receiving a set of quantized transform coefficients;
de-quantizing the quantized transform coefficients into de-quantized transform coefficients, wherein the quantized transform coefficients are logically arranged in a block, and wherein for each of the quantized transform coefficients the de-quantizing includes;
based on position of the quantized transform coefficient in the block, selecting a group from among plural groups of scaling factors, wherein a group index identifies the selected group;
depending on a quantization parameter index, selecting a scaling factor within the selected group, wherein the quantization parameter index and the group index together indicate the selected scaling factor in a lookup operation; and
scaling the quantized transform coefficient by the selected scaling factor; and
applying a two-dimensional inverse transform process to the de-quantized transform coefficients, wherein the inverse transform process is based on values represented in a two-dimensional orthogonal inverse transform matrix with plural columns having different norms with row and column inverse transforms, the inverse transform process applying inverse transformation calculations based on auxiliary variables corresponding to, for a selected row or column of transform coefficients, a sum and a difference of a first pair of de-quantized transform coefficients of the selected row or column, and, for a second pair of de-quantized transform coefficients of the selected row or column, a sum of a first coefficient of the second pair with a value corresponding to a bit shift of the second coefficient of the second pair, and a difference of the second coefficient of the second pair and a value corresponding to a bit shift of the first coefficient of the second pair, and wherein the de-quantizing uses the selection from among the plural groups of scaling factors to at least in part adjust for the different norms of the two-dimensional inverse transform.
1 Assignment
0 Petitions
Accused Products
Abstract
An improved method and block transform for image or video encoding and decoding, wherein transformation and inverse transformation matrixes are defined such that computational complexity is significantly reduced when encoding and decoding. For example, in the two-dimensional inverse transformation of de-quantized transform coefficients into output pixel information during decoding, only four additions plus one shift operation are needed, per co-efficient transformation, all in sixteen-bit arithmetic. Transformations provide correct results because quantization during encoding and de-quantization (sixteen bit) during decoding, via the use of one of three tables selected based on each coefficient'"'"'s position, have parameter values that already compensate for factors of other transformation multiplications, except for those of a power of two, (e.g., two or one-half), which are performed by a shift operation during the transformation and inverse transformation processes. Computational complexity is significantly reduced with respect to other known transforms without adversely impacting compression or quality.
93 Citations
25 Claims
-
1. A computing device, comprising:
-
at least one battery; and a processor coupled so as to be powered by the at least one battery and configured to implement a decoding method comprising; receiving a set of quantized transform coefficients; de-quantizing the quantized transform coefficients into de-quantized transform coefficients, wherein the quantized transform coefficients are logically arranged in a block, and wherein for each of the quantized transform coefficients the de-quantizing includes; based on position of the quantized transform coefficient in the block, selecting a group from among plural groups of scaling factors, wherein a group index identifies the selected group; depending on a quantization parameter index, selecting a scaling factor within the selected group, wherein the quantization parameter index and the group index together indicate the selected scaling factor in a lookup operation; and scaling the quantized transform coefficient by the selected scaling factor; and applying a two-dimensional inverse transform process to the de-quantized transform coefficients, wherein the inverse transform process is based on values represented in a two-dimensional orthogonal inverse transform matrix with plural columns having different norms with row and column inverse transforms, the inverse transform process applying inverse transformation calculations based on auxiliary variables corresponding to, for a selected row or column of transform coefficients, a sum and a difference of a first pair of de-quantized transform coefficients of the selected row or column, and, for a second pair of de-quantized transform coefficients of the selected row or column, a sum of a first coefficient of the second pair with a value corresponding to a bit shift of the second coefficient of the second pair, and a difference of the second coefficient of the second pair and a value corresponding to a bit shift of the first coefficient of the second pair, and wherein the de-quantizing uses the selection from among the plural groups of scaling factors to at least in part adjust for the different norms of the two-dimensional inverse transform. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method, comprising:
-
receiving a set of quantized transform coefficients at a portable computing device; de-quantizing the quantized transform coefficients into de-quantized transform coefficients, wherein the quantized transform coefficients are logically arranged in a block, and wherein for each of the quantized transform coefficients the de-quantizing includes; based on position of the quantized transform coefficient in the block, selecting a group from among plural groups of scaling factors, wherein a group index identifies the selected group; depending on a quantization parameter index, selecting a scaling factor within the selected group, wherein the quantization parameter index and the group index together indicate the selected scaling factor in a lookup operation; and scaling the quantized transform coefficient by the selected scaling factor; and applying a two-dimensional inverse transform process to the de-quantized transform coefficients, wherein the inverse transform process is based on values represented in a two-dimensional orthogonal inverse transform matrix with plural columns having different norms with row and column inverse transforms, the inverse transform process applying inverse transformation calculations based on auxiliary variables corresponding to, for a selected row or column of transform coefficients, a sum and a difference of a first pair of de-quantized transform coefficients of the selected row or column, and, for a second pair of de-quantized transform coefficients of the selected row or column, a sum of a first coefficient of the second pair with a value corresponding to a bit shift of the second coefficient of the second pair, and a difference of the second coefficient of the second pair and a value corresponding to a bit shift of the first coefficient of the second pair, and wherein the de-quantizing uses the selection from among the plural groups of scaling factors to at least in part adjust for the different norms of the two-dimensional inverse transform. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. At least one computer readable storage device or memory configured to store computer-executable instructions for causing a computing device to perform a method, the method comprising:
-
receiving a set of quantized transform coefficients at a portable computing device; de-quantizing the quantized transform coefficients into de-quantized transform coefficients, wherein the quantized transform coefficients are logically arranged in a block, and wherein for each of the quantized transform coefficients the de-quantizing includes; based on position of the quantized transform coefficient in the block, selecting a group from among plural groups of scaling factors, wherein a group index identifies the selected group; depending on a quantization parameter index, selecting a scaling factor within the selected group, wherein the quantization parameter index and the group index together indicate the selected scaling factor in a lookup operation; and scaling the quantized transform coefficient by the selected scaling factor; and applying a two-dimensional inverse transform process to the de-quantized transform coefficients, wherein the inverse transform process is based on values represented in a two-dimensional orthogonal inverse transform matrix with plural columns having different norms with row and column inverse transforms, the inverse transform process applying inverse transformation calculations based on auxiliary variables corresponding to, for a selected row or column of transform coefficients, a sum and a difference of a first pair of de-quantized transform coefficients of the selected row or column, and, for a second pair of de-quantized transform coefficients of the selected row or column, a sum of a first coefficient of the second pair with a value corresponding to a bit shift of the second coefficient of the second pair, and a difference of the second coefficient of the second pair and a value corresponding to a bit shift of the first coefficient of the second pair, and wherein the de-quantizing uses the selection from among the plural groups of scaling factors to at least in part adjust for the different norms of the two-dimensional inverse transform. - View Dependent Claims (21, 22, 23, 24, 25)
-
Specification