A method, system, and data structure for the scaling up of data is provided. A block of transformed data samples is received wherein the transformed data samples represent original data samples. One of at least two tables of constants is selected wherein each table of constants is capable of increasing the number of data samples by a different factor. The constants taken from the selected table are applied to the block of transformed data samples to produce at least two blocks of transformed data samples representing at least two blocks of original data samples. The data is processed one dimension at a time by multiplying the data in one dimension with selected constants taken from previously developed tables corresponding to the desired scale up factor. Scaling up by different factors in each dimension as well as scaling down in one dimension and scaling up in the other dimension may be achieved. In addition, the de-quantization of the quantized transform coefficients may be accomplished by pre-multiplication of the scaling constants when the quantization values are known. In a similar way the re-quantization may be accomplished by a pre-divsion of the scaling constants. Both de-quantization and re-quantization may be combined when the input quantized transform coefficients and output quantized transform coefficients are desired.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method for scaling up a number of data samples, the method comprising: receiving a block of transformed data samples, the block of transformed data samples representing a block of original data samples; selecting one of at least two tables of constants wherein each table of constants is capable of increasing the number of transformed data samples by a different factor; and applying the constants taken from the selected table to the block of transformed data samples to produce at least two blocks of transformed data samples representing at least two blocks of final data samples.
2. The method of claim 1 wherein the step of applying the constants further comprises: multiplying a sub-block of transformed data samples by the constants, the sub-block being taken from the block of transformed data samples.
3. The method of claim 2 , in which: the method is for scaling up the number of data samples by a factor of B; and the step of multiplying the sub-block of transformed data samples results in B adjacent sub-blocks of transformed data samples.
4. The method of claim 1 wherein: the method is for scaling up the number of data samples by a factor of B; and the step of applying the constants further comprises applying the constants to the block of transformed data samples to produce for each block a set of B adjacent blocks of transformed data samples representing B blocks of final data samples.
5. The method of claim 1 wherein the method is for scaling up the number of data samples by a factor of 2 and the values of the constants taken from the selected table are determined in accordance with: G ~ v = ⢠C v 2 ⢠∑ u = 0 7 ⢠C u ⢠{ K 1 ⡠( v ) ⢠cos ⡠( π ⢠⢠u 16 ) + K 2 ⡠( v ) ⢠cos ⡠( 3 ⢠π ⢠⢠u 16 ) + ⢠K 3 ⡠( v ) ⢠cos ⡠( 5 ⢠π ⢠⢠u 16 ) + K 4 ⡠( v ) ⢠cos ⡠( 7 ⢠π ⢠⢠u 16 ) + ⢠cos ⡠( 15 ⢠π ⢠⢠v 16 ) ⢠cos ⡠( 9 ⢠π ⢠⢠u 16 ) } ⢠F ~ u
6. The method of claim 1 wherein the method is for scaling up the number of data samples by a factor of 2 and the values of the constants taken from the selected table are determined in accordance with: G ~ u = ⢠C u ⢠∑ x = 0 7 ⢠G x ⢠cos ⡠( ( 2 ⢠x + 1 ) ⢠π ⢠⢠u 16 ) = ⢠∑ v = 0 7 ⢠C u ⢠C v ⢠∑ x = 0 7 ⢠F ~ v ⢠cos ⡠( ( 2 ⢠x + 1 ) ⢠π ⢠⢠v 32 ) = ⢠∑ v = 0 7 ⢠C u ⢠C v ⡠( ∑ x = 0 7 ⢠cos ⡠( ( 2 ⢠x + 1 ) ⢠π ⢠⢠u 16 ) ⢠cos ⡠( ( 2 ⢠x + 1 ) ⢠π ⢠⢠v 32 ) ) ⢠F ~ v for ⢠⢠x = 0 , ⢠… ⢠⢠7
7. The method of claim 1 wherein the data samples are image component samples.
8. The method of claim 1 wherein the number of data samples is in an array having a first and a second dimension, wherein the block of transformed data samples is in an array having a first and a second dimension, and wherein the constants are applied to the first dimension of the transformed data sample array to produce at least two blocks of transformed data samples representing at least two blocks of final data samples in the first dimension.
9. A method for scaling up a number of data samples in an array having a first and a second dimension, the method comprising: receiving a block of transformed data samples in an array having a first and a second dimension, the block of transformed data samples representing a block of original data samples; selecting a first table from a group of at least two tables of constants wherein the first table of constants is capable of increasing the number of transformed data samples by a first factor; applying the constants taken from the first table to the first dimension of the transformed data sample array to produce at least two blocks of transformed data samples representing at least two blocks of final data samples in the first dimension; selecting a second table from the group of at least two tables of constants, wherein the second table of constants is capable of increasing the number of transformed data samples by a second factor; and applying the constants taken from the second table to the second dimension of the transformed data sample array to produce at least two blacks of transformed data samples representing at least two blocks of final data samples in the second dimension.
10. A method for scaling up a number of data samples by a factor of A B , where A and B are integers>1 and where A>B, the method comprising: receiving a block of transformed data samples, the block of transformed data samples representing a block of original data samples; selecting a first table and a second table from a group of at least two tables of constants; applying the constants taken from the first table to the block of transformed data samples to produce A blocks of transformed data samples representing A blocks of intermediate data samples; and applying the constants taken from the second table to the A blocks of transformed data samples to produce A B blocks of transformed data samples representing A B blocks of final data samples.
11. A method for scaling up a number of data samples, the method comprising: receiving a plurality of input quantization values; receiving a block of quantized transformed data samples associated with the input quantization values, the block of quantized transformed data samples representing a block of original data samples; selecting a table of constants capable of increasing the number of transformed data samples; applying the plurality of input quantization values to the selected table of constants to produce a plurality of new constants; and applying the plurality of new constants to the block of quantized transformed data samples to produce at least two blocks of transformed data samples representing at least two blocks of final data samples.
12. A method for scaling up a number of data samples, the method comprising: receiving a plurality of output quantization values; receiving a block of transformed data samples representing a block of original data samples; selecting a table of constants capable of increasing the number of transformed data samples; applying the plurality of output quantization values to the selected table of constants to produce a plurality of new constants; and applying the plurality of new constants to the block of transformed data samples to produce at least two blocks of quantized transformed data samples associated with the output quantization values, the quantized transformed data samples representing at least two blocks of final data samples.
13. A method for scaling up a number of data samples, the method comprising: receiving a plurality of input and output quantization values; receiving a block of quantized transformed data samples associated with the input quantization values, the block of quantized transformed data samples representing a block of original data samples; selecting a table of constants capable of increasing the number of transformed data samples by a different factor; applying the plurality of input and output quantization values to the selected table of constants to produce a plurality of new constants; and applying the plurality of new constants to the block of quantized transformed data samples to produce at least two blocks of quantized transformed data samples associated with the output quantization values, the quantized transformed data samples representing at least two blocks of final data samples.
14. A system for scaling up a number of data samples, comprising: a processing unit capable of executing software routines; and program logic executed by the processing unit, comprising: means for receiving a block of transformed data samples, the block of transformed data samples representing a block of original data samples; means for selecting one of at least two tables of constants wherein each table of constants is capable of increasing the number of transformed data samples by a different factor; and means for applying the constants taken from the selected table to the block of transformed data samples to produce at least two blocks of transformed data samples representing at least two blocks of final data samples.
15. The system of claim 14 wherein the means for applying the constants further comprises: means for multiplying a sub-block of transformed data samples by the constants, the sub-block being taken from the block of transformed data samples.
16. The system of claim 15 , in which: the system is for scaling up the number of data samples by a factor of B; and the means for multiplying a sub-block of transformed data samples results in B adjacent sub-blocks of transformed data samples.
17. The system of claim 14 wherein: the system is for scaling up the number of data samples by a factor of B; and the means for applying the constants further comprises means for applying the constants to the block of transformed data samples to produce for each block a set of B adjacent blocks of transformed data samples representing B blocks of final data samples.
18. The system of claim 14 wherein the system is for scaling up the number of data samples by a factor of 2 and the values of the constants taken from the selected table are determined in accordance with: G ~ v = C v 2 ⢠∑ u = 0 7 ⢠C u ⢠{ K 1 ⡠( v ) ⢠cos ⡠( π ⢠⢠u 16 ) + K 2 ⡠( v ) ⢠cos ⡠( 3 ⢠π ⢠⢠u 16 ) + K 3 ⡠( v ) ⢠cos ⡠( 5 ⢠π ⢠⢠u 16 ) + K 4 ⡠( v ) ⢠cos ⡠( 7 ⢠π ⢠⢠u 16 ) + cos ⢠( 15 ⢠π ⢠⢠u 16 ) ⢠cos ⡠( 9 ⢠π ⢠⢠u 16 ) } ⢠F ~ u ⢠and H ~ v = C v 2 ⢠∑ u = 0 7 ⢠C u ⢠⢠{ cos ⡠( π ⢠⢠v 16 ) ⢠cos ⡠( 7 ⢠π ⢠⢠u 16 ) + K 5 ⡠( v ) ⢠cos ⡠( 9 ⢠π ⢠⢠u 16 ) + K 6 ⡠( v ) ⢠cos ⡠( 11 ⢠π ⢠⢠u 16 ) + K 7 ⡠( v ) ⢠cos ⡠( 13 ⢠π ⢠⢠u 16 ) + K 8 ⡠( v ) ⢠cos ⡠( 15 ⢠π ⢠⢠u 16 ) } ⢠F ~ u ⢠where ⢠⢠C u ⢠⢠and ⢠⢠C v = 1 2 ⢠2 ⢠⢠for ⢠⢠u , v = 0 ⢠⢠and ⢠⢠⢠where ⢠⢠C u ⢠⢠and ⢠⢠C v = 1 2 ⢠⢠for ⢠⢠u , v > 0 ⢠⢠and ⢠⢠⢠where ⢠⢠K 1 ⡠( v ) = 2 ⢠D 1 v + D 3 v , K 2 ⡠( v ) = D 3 v + 2 ⢠D 5 v + D 7 v , ⢠⢠K 3 ⡠( v ) = D 7 v + 2 ⢠D 9 v + D 11 v , K 4 ⡠( v ) = D 11 v + 2 ⢠D 13 v + D 15 v , ⢠⢠K 5 ⡠( v ) = D 1 v + 2 ⢠D 3 v + D 5 v , K 6 ⡠( v ) = D 5 v + 2 ⢠D 7 v + D 9 v , ⢠⢠K 7 ⡠( v ) = D 9 v + 2 ⢠D 11 v + D 13 v , ⢠⢠K 8 ⡠( v ) = D 13 v + 2 ⢠D 15 v ⢠⢠and ⢠⢠D x v ≡ cos ⡠( x ⢠⢠π ⢠⢠v 16 ) .
19. The system of claim 14 wherein the system is for scaling up the number of data samples by a factor of 2 and the values of the constants taken from the selected table are determined in accordance with: G ~ u = C u ⢠∑ x = 0 7 ⢠G x ⢠cos ⡠( ( 2 ⢠x + 1 ) ⢠π ⢠⢠u 16 ) = ∑ v = 0 7 ⢠C u ⢠C v ⢠∑ x = 0 7 ⢠F ~ v ⢠cos ⡠( ( 2 ⢠x + 1 ) ⢠π ⢠⢠v 32 ) = ∑ v = 0 7 ⢠C u ⢠C v ⡠( ∑ x = 0 7 ⢠cos ⡠( ( 2 ⢠x + 1 ) ⢠π ⢠⢠u 16 ) ⢠cos ⡠( ( 2 ⢠x + 1 ) ⢠π ⢠⢠v 32 ) ) ⢠F ~ v ⢠for ⢠⢠x = 0 , … ⢠⢠7 ⢠⢠and ⢠H ~ u = ∑ v = 0 7 ⢠C u ⢠C v ⡠( ∑ x = 0 7 ⢠cos ⡠( ( 2 ⢠x + 1 ) ⢠π ⢠⢠u 16 ) ⢠cos ⡠( ( 2 ⢠x + 17 ) ⢠π ⢠⢠v 32 ) ) ⢠F ~ v ⢠for ⢠⢠x = 0 , … ⢠⢠7 ⢠where ⢠⢠C u ⢠⢠and ⢠⢠C v = 1 2 ⢠2 ⢠⢠for ⢠⢠u , v = 0 ⢠⢠and ⢠where ⢠⢠C u ⢠⢠and ⢠⢠C v = 1 2 ⢠⢠for ⢠⢠u , v > 0.
20. A system for scaling up a number of data samples by a factor of A B , where A and B are integers>1 and where A>B, the system comprising: a processing unit capable of executing software routines; and program logic executed by the processing unit, comprising: means for receiving a block of transformed data samples, the block of transformed data samples representing a block of original data samples; means for selecting a first table and a second table from a group of at least two tables of constants; means for applying the constants taken from the first table to the block of transformed data samples to produce A blocks of transformed data samples representing A blocks of intermediate data samples; and means for applying the constants taken from the second table to the A blocks of transformed data samples representing the enlarged number of data samples to produce A B blocks of transformed data samples representing A B of final data samples.
21. A system for scaling up a number of data samples, comprising: a processing unit capable of executing software routines; and program logic executed by the processing unit, comprising: means for receiving a plurality of input quantization values; means for receiving a block of quantized transformed data samples associated with the input quantization values, the block of quantized transformed data samples representing a block of original data samples; means for selecting a table of constants capable of increasing the number of transformed data samples; means for applying the plurality of input quantization values to the selected table of constants to produce a plurality of new constants; and means for applying the plurality of new constants to the block of quantized transformed data samples to produce at least two blocks of transformed data samples representing at least two blocks of final data samples.
22. A system for scaling up a number of data samples, comprising: a processing unit capable of executing software routines; and program logic executed by the processing unit, comprising: means for receiving a plurality of output quantization values; means for receiving a block of transformed data samples representing a block of original data samples; means for selecting a table of constants capable of increasing the number of transformed data samples; means for applying the plurality of output quantization values to the selected table of constants to produce a plurality of new constants; and means for applying the plurality of new constants to the block of transformed data samples to produce at least two blocks of quantized transformed data samples associated with the output quantization values, the quantized transformed data samples representing at least two blocks of final data samples.
23. A system for scaling up a number of data samples, comprising: a processing unit capable of executing software routines; and program logic executed by the processing unit, comprising: means for receiving a plurality of input and output quantization values; means for receiving a block of quantized transformed data samples associated with the input quantization values, the block of quantized transformed data samples representing a block of original data samples; means for selecting a table of constants capable of increasing the number of transformed data samples by a different factor; means for applying the plurality of input and output quantization values to the selected table of constants to produce a plurality of new constants; and means for applying the plurality of new constants to the block of quantized transformed data samples to produce at least two blocks of quantized transformed data samples associated with the output quantization values, the quantized transformed data samples representing at least two blocks of final data samples.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
May 12, 2000
November 29, 2005
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.