Abstract:
This invention enables progressively higher resolution images of a JPEG compressed image to be produced in a cost effective manner during the JPEG decompression process. The operation count is very low when images of {fraction (1/64)}th, {fraction (1/16)}th, and ¼th of full resolution are to be produced without doing a full JPEG decompression. The low resolution images are useful for high speed search, and the ability to produce them without doing full decompression is an important factor in making such search practical.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     The following patent application is based on and claims the benefit of U.S. Provisional Patent Application Ser. No. 60/061,190, filed Oct. 6, 1997. 
    
    
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention is related generally to the field of image encoding and more particularly to JPEG compression/decompression schemes and methods. It is specifically directed to a methodology of production of low resolution thumbnails directly, at low cost, without doing a full JPEG decompression. 
     2. Discussion of the Prior Art 
     The Joint Photographic Experts Group (JPEG) has promulgated a standard for still image compression, known as the JPEG standard, which employs a Discrete Cosine Transform-based algorithm. The JPEG standard is described in a number of publications, including the following references the contents and disclosures of which are incorporated by reference herein: Wallace, “The JPEG Still Picture Compression Standard,” IEEE Transactions on Consumer Electronics, Vol. 34, No. 4, pp. 30-44 (April, 1991); Feig, E., and Winograd, S., “Fast algorithms for the discrete cosine transform,” IEEE Trans. on Signal Processing., Vol. 40, no. 9, pp. 2174-2193, (September, 1992). Stone, H. S., “Progressive wavelet correlation using Fourier methods,” Submitted for publication to IEEE Trans. on Signal Processing, 1996. 
     As shown in FIG.  1 ( a ), in the JPEG compression method implementing sequential encoding, the original image is divided into blocks of pixels, each block typically containing 8×8 or 16×16 original image samples. Each 8×8 block of pixels is input to a DCT-encoder element  10  having a forward discrete cosine transform processor  12  that performs a Discrete Cosine Transform (DCT) on each pixel block, producing a representation of the input block as DCT coefficients corresponding to frequencies and amplitudes, rather than corresponding directly to color information. These coefficients are then quantized, or rounded off, by a quantizer element  14  in accordance with a quantization table  16 , and DC coding is performed that employs a difference algorithm over all quantized blocks in the image, in a selected scan order. This difference algorithm subtracts a “DC” or zero frequency term corresponding to the mean pixel value of a block, from the DC term of the preceding block. The difference coefficients are then scanned in a different order, such as a zigzag order, and the non-zero coefficients (i.e., blocks in which a difference from the preceding block occurred) are coded to indicate the number of preceding zero coefficients (i.e., the number of pixel blocks in which no change occurred) and also the value of the non-zero difference. An additional compression step known as entropy encoding is performed by encoder element  18  to achieve a more compact coding of the quantized DCT elements. Entropy encoding schemes specified by the JPEG standard include Huffman coding and arithmetic coding, with the optional implementation of entropy encoding tables  19 . The output  20  of the DCT encoder  10  is a data stream of compressed image data. 
     It should be understood that the key feature of JPEG compression is that an image is first segmented into disjoint 8×8 pixel blocks, each of which is replaced by its 2-D DCT. In such a representation, the high frequencies tend to have very small coefficients enabling JPEG quantization to drive most of these coefficients to zero. This enables fewer bits to be stored after encoding. 
     Decompression is performed by reversing the compression process, producing the displayable image. As shown in FIG.  1 ( b ), this typically involves inputting the compressed image data into a DCT decoder including an entropy decoder block  27  for decoding the compressed image data stream, e.g., in accordance with a Huffman decoding technique. At the output of the entropy decoder the same data structure that the encoder  10  had at the end of the DCT transform is created. Then, a dequantization block  28  for dequantizing the image samples, and an inverse discrete cosine transform processor  29  for performing an inverse discrete cosine transform taking the decoded 64 DCT coefficients and reconstructing the original image. 
     Besides the sequential encoding method described, the JPEG standard sets forth other largely incompatible encoding techniques. For instance, in a progressive encoding technique, the image is encoded in multiple scans for applications in which the transmission time is long and viewers prefer to watch the image build up in multiple coarse-to-clear passes. In hierarchical encoding, the image is encoded at multiple resolutions, so that lower-resolution versions may be accessed without first having to decompress the image at its full resolution. Particularly, the hierarchical mode implements “pyramidal” encoding of an image at multiple resolutions, each differing in resolution from its adjacent encoding, e.g., by a factor of two, in either horizontal or vertical dimensions or both. While enabling multiple decompression levels, the hierarchical scheme set forth in the standard requires that each additional level be stored in the compressed image. 
     As is known, the usefulness of decompression algorithms is determined by the number and the speed of mathematical computations performed to obtain the identifiable decompressed image. Typically, in image searching applications, it is required that each image is fully decompressed before the target image is located, which is a costly proposition as many computations are required to achieve full decompression. 
     It would thus be highly desirable to provide a means for achieving intermediate levels of decompression of a compressed JPEG image without having to encode the image at multiple resolutions. 
     Furthermore, it would be desirable to achieve multiple levels of decompression of an image that has been encoded according to the sequential (lossy) encoding standard. In such a technique, one or more decompressed “thumbnail” images may be produced, each thumbnail being observable and useful for searching applications, without the necessity of achieving full JPEG decompression of the original image. 
     SUMMARY OF THE INVENTION 
     This invention is a method and apparatus for producing low resolution decompressed images directly, at low cost, without doing a full JPEG decompression. The new algorithm is expected to be used in a context such as image searching where the thumbnails are required but the full decompressed image is not. The larger details of the original image are still visible on the lower resolution decompressed images consequently, it is not necessary to perform a complete JPEG decompression to determine if the image contains those details. 
     In one dimension, the method of the invention implements a factorization of the inverse DCT of order eight (8) into three phases. At the end of the first phase, two disjoint transforms of order four (4) are produced, and similarly, at the end of the second phase four transforms of order two (2) are produced. The third and final phase produces the original image data in the time or pixel domain. 
     In two dimensions, the inverse DCT is a two-dimensional transform of 8×8 subimages where the first component is the average of the 8×8 subimage, the second phase produces four (4) terms each of which are averages of four disjoint 4×4 subimages, the third produces 16 terms each of which is the average of 16 disjoint subimages, and the last produces all 64 terms or pixels in the 8×8 regional image, i.e., 64 subimages of size 1×1. 
    
    
     DESCRIPTION OF DRAWINGS 
     FIG.  1 ( a ) illustrates a DCT-based encoder for achieving JPEG image compression. 
     FIG.  1 ( b ) illustrates a DCT-based decoder for decompressing a JPEG-encoded image. 
     FIG. 2 is a satellite image of the coast of South Africa taken by a NOAA satellite. The image size is 1024 by 512. 
     FIG. 3 is the same image after JPEG compression and decompression. 
     FIG. 4 shows the JPEG image thumbnails at various stages of the decompression process. 
     FIG.  4 ( a ) illustrates a thumbnail directly available from the DC components of the individual blocks, and has a resolution equal to {fraction (1/64)}th of the original. 
     FIG.  4 ( b ) show a thumbnail at {fraction (1/16)}th of the original resolution. 
     FIG.  4 ( c ) show a thumbnail at ¼th of the original resolution. 
    
    
     DETAILED DESCRIPTION 
     The method of the present invention is a scheme to progressively achieve full JPEG decompression by factoring the inverse direct cosine transform (“DCT”) of order eight (8) into three phases. At the end of the first phase two disjoint transforms of order four (4) are produced, and similarly, at the end of the second phase four transforms of order two (2) are produced. The third and final phase produces the original image data in the time or pixel domain, such as shown in FIG.  4 . For exemplary purposes, an original image is defined to be a sampled still image, such as an original image shown in FIG.  2 . As will be described, the data produced at the end of each phase contains progressively higher resolution information about the original image. In a preferred embodiment, the thumbnail images are computed directly by the inverse DCT processor  29  as shown in FIG.  1 ( a ) without necessarily producing the full resolution DCT inversion, as will be described. 
     As known, the DCT matrix is widely used in image compression algorithms, and encompasses many forms. In the preferred embodiment of the invention, a form is used having the property that the transpose of the DCT matrix is the inverse of the DCT matrix. In the one-dimensional case, a DCT matrix operator having this property has been derived in the Feig and Winograd reference. Generally, the DCT matrix of order N is defined in terms of cosines of multiples of an angle ω o =2π/4N, i.e., cos(mω o ) which is represented by y(m) with m being an integer. With matrix elements 
     c i,j ={square root over (2)}/N y(i(2j+1)) for i&gt;0, 
     c i,j =1{square root over (N)} for i=0 
     the normalized 8-point DCT matrix is set forth in equation (1) as follows:                C   8     =     [           γ        (   4   )             γ        (   4   )             γ        (   4   )             γ        (   4   )             γ        (   4   )             γ        (   4   )             γ        (   4   )             γ        (   4   )                 γ        (   1   )             γ        (   3   )             γ        (   5   )             γ        (   7   )             -     γ        (   7   )               -     γ        (   5   )               -     γ        (   3   )               -     γ        (   1   )                   γ        (   2   )             γ        (   6   )             -     γ        (   6   )               -     γ        (   2   )               -     γ        (   2   )               -     γ        (   6   )               γ        (   6   )             γ        (   2   )                 γ        (   3   )             -     γ        (   7   )               -     γ        (   1   )               -     γ        (   5   )               γ        (   5   )             γ        (   1   )             γ        (   7   )             -     γ        (   3   )                   γ        (   4   )             -     γ        (   4   )               -     γ        (   4   )               γ        (   4   )             γ        (   4   )             -     γ        (   4   )               -     γ        (   4   )               γ        (   4   )                 γ        (   5   )             -     γ        (   1   )               γ        (   7   )             γ        (   3   )             -     γ        (   3   )               -     γ        (   7   )               γ        (   1   )             -     γ        (   5   )                   γ        (   6   )             -     γ        (   2   )               γ        (   2   )             -     γ        (   6   )               -     γ        (   6   )               γ        (   2   )             -     γ        (   2   )               γ        (   6   )                 γ        (   7   )             -     γ        (   5   )               γ        (   3   )             -     γ        (   1   )               γ        (   1   )             -     γ        (   3   )               γ        (   5   )             -     γ        (   7   )               ]             (   1   )                                
     As known, this normalization produces an inverse matrix D 8  with the property that D 8 =C t   8 . The elements of the inverse matrix D has coefficients d i,j  given by 
     d i,j  ={square root over (2)}/N y(j (2i+1)) for j&gt;0, 
     d i,j =1/{square root over (N)} for j=0. 
     According to the principles of the invention, to achieve progressive decompression, a multi resolution factorization of Da is required. Thus, from the inverse matrix D 8 , a factorization is performed to generate two blocks of size four (4), then four (4) blocks of size two (2), and finally eight (8) blocks of size one, which form the original time samples or pixels. In a first level of inversion, a single discrete cosine component is first extracted from each 8×8 block and the resulting components are combined into a thumbnail sketch {fraction (1/64)}th the size of the original image to result in the partially decompressed image of FIG.  4 ( a ). After one level of inversion, the image will be composed of 4×4 blocks, and a thumbnail produced from these blocks will contain {fraction (1/16)}th the original number of points as shown in the partially decompressed image of FIG.  4 ( b ). The next level of inversion produces a thumbnail with ¼th the number of points as shown in the partially decompressed image of FIG.  4 ( c ), and the last level of inversion produces the full decompressed JPEG image shown in FIG.  3 . It can be seen in the thumbnail images of FIGS.  4 ( a )-( c ) that the larger details corresponding to the original image are still visible even at the lower resolution. 
     In the multi resolution analysis just described, use is made of Hadamard transforms HN, which lend themselves directly to multi resolution analysis as they exhibit the property that a matrix of order N can be built recursively from lower order Hadamard matrixes, e.g., Hadamard matrix of order 2. That is, a Hadamard matrix H N  can be recursively factored as H N =H 2 ×H N/2 . From this it follows that a matrix of order H 8 =H 2 ×H 4  and thus, H can be factored in accordance with equation (2) as follows: 
     
       
           H   8 =( H   2     33  I   4 ) ( I   2 ×( H   2     33  I   2 )) ( I   4   ×H   2 )  (2) 
       
     
     where I r  is an identity matrix of rank r. Note that H 2  is symmetric and unitary (self inverse). It can be shown that all Hadamard matrices of rank 2 m  are symmetric and unitary. Note that each of three factors of H 8  are symmetric, unitary, and commute with each other. 
     Therefore, as set forth in equation (3), D 8  is factored in accordance with equation (1) as follows: 
     
       
           D   8   =H   8   V= ( H   2     33  I   4 ) ( I   2 ×( H   2   ×I   2 ))( I   4   ×H   2 ) V   (3) 
       
     
     allowing for the solution of V as set forth in equation (4) as follows. 
     
       
           V=H   8   D   8 =( H   4   ×I   2 ) ( I   2 ×( H   2   ×I   2 )) ( H   2   ×I   4 ) D   8    (4) 
       
     
     Using equation (4) and making liberal use of the cosine relation 
     cos(a)+cos(b)=2cos((a+b)/2)cos((a−b)/2), V has the structure:        v   =     [         1       0       0       0       0       0       0       0           0           γ        (   2   )            γ        (   7   )             0           γ        (   5   )            γ        (   6   )             0           γ        (   3   )            γ        (   6   )             0           γ        (   2   )            γ        (   1   )                 0           γ        (   6   )            γ        (   1   )             1           γ        (   3   )            γ        (   2   )             0           -     γ        (   5   )              γ        (   2   )             0           -     γ        (   6   )              γ        (   7   )                 0       0       0       0       1       0       0       0           0           γ        (   2   )            γ        (   1   )             0           -     γ        (   3   )              γ        (   6   )             0           γ        (   5   )            γ        (   6   )             0           -     γ        (   2   )              γ        (   7   )                 0       0         γ        (   6   )           0       0       0         γ        (   2   )           0           0       0         γ        (   2   )           0       0       0         -     γ        (   6   )             0           0           -     γ        (   6   )              γ        (   7   )             0           γ        (   5   )            γ        (   2   )             0           γ        (   3   )            γ        (   2   )             0           -     γ        (   6   )              γ        (   1   )               ]                            
     which structure can be applied to directly invert an 8-point DCT in 20 multiply and 14 additions when implementing Huffman decoding. As 24 addition operations are required to multiply by Hs, the inversion of D 8  requires a total of 20 multiplication and 38 addition operations. 
     The operation count can be lowered in many ways. By considering a 2×2 submatrix G 2  given by equation (5) as follows:                G   2     =     [           γ        (   6   )             γ        (   2   )                 γ        (   2   )             -     γ        (   6   )               ]             (   5   )                                
     Feig and Winograd show that multiplying matrix G 2  with a 2-vector and employing a standard “rotator” product will require three (3) multiplication and three (3) addition operations thus, enabling the sum and difference components of y(6) and y(2) to be precomputed and not counted as part of the algorithm. 
     It should be understood that the costly part of multiplication by V when calculating the inverse DCT in equation (3) above, is the multiplication of a 4×4 submatrix Q 4  defined in equation (6) as follows:                Q   4     =     [             γ        (   2   )            γ        (   7   )                 γ        (   5   )            γ        (   6   )                 γ        (   3   )            γ        (   6   )                 γ        (   1   )            γ        (   2   )                     γ        (   1   )            γ        (   6   )                 γ        (   2   )            γ        (   3   )                 -     γ        (   2   )              γ        (   5   )                 -     γ        (   6   )              γ        (   7   )                     γ        (   1   )            γ        (   2   )                 -     γ        (   3   )              γ        (   6   )                 γ        (   5   )            γ        (   6   )                 -     γ        (   2   )              γ        (   7   )                     -     γ        (   6   )              γ        (   7   )                 γ        (   2   )            γ        (   5   )                 γ        (   2   )            γ        (   3   )                 -     γ        (   1   )              γ        (   6   )               ]             (   6   )                                
     This sub-matrix can be factorized in either of two ways. In the first factorization approach, the rows and columns of Q 4  are permuted by matrices P 1,4  and P 2,4  to create the matrix R 4  in accordance with equation (7).                      R   4     =         P     1   ,   4            Q   4          P     2   ,   4         =                [         0       1       0       0                   1       0       0       0           0       0       0       1                   0       0       1       0                                                             Q   4                                                             0       0       1       0                   0       0       0       1           1       0       0       0                   0       1       0       0         ]                   =                [         1       0           γ        (   2   )       /     γ        (   6   )             0           0       1       0           γ        (   2   )       /     γ        (   6   )                     γ        (   2   )       /     γ        (   6   )             0         -   1         0           0           -     γ        (   2   )         /     γ        (   6   )             0       1         ]                 =                [             γ        (   6   )            [           γ        (   1   )             -     γ        (   7   )                   γ        (   7   )             -     γ        (   1   )               ]           0           0           γ        (   6   )            [           γ        (   3   )             -     γ        (   5   )                   γ        (   5   )             -     γ        (   3   )               ]             ]                   (   7   )                                
     The two blocks in the right-hand factor of equation (7) can each be rotated with 3 multiplication and 3 addition operations by the scheme such as described in Feig and Winograd. The left-hand factor of equation (7) produces 4 more multiplication and 4 more addition operations, bringing the total count to 10 multiplication and 10 addition operations. When combined with the 3 multiplication and 3 addition operations for G 2 , and the 24 addition operations for multiplication by H 8 , the entire computation requires 13 multiplication and 37 addition operations, and up to two normalization multiplications. Six of the eight normalizations can be subsumed in the constants in V. The normalizations may also be subsumed within the image search operations or in color maps, depending on how the data are used. 
     The operation count is reduced during the progressive factorization when calculating the thumbnails in the one-dimensional case. For instance, when calculating the thumbnail corresponding to the Level 0 decompression level, the rows of R 4  (equation (7)) do not participate. At decompression levels 1 through 3, the third row participates, then the first row, then rows two and four of equation (7). Particularly, the progressive calculation starts the rotation, and holds the intermediate values for later iterations. Thus, at decompression Level 1, the factorization starts two rotations. At decompression Level 2, it does the operations implied by two rows of the left-hand factor of equation (7). At decompression Level 3 it completes the two partial rotations and does the operations implied by the two remaining rows of equation (7). The operation count for the progressive calculation of R 4  is thus 10 multiplication and 10 addition operations, which break down into 5 multiplication and 5 addition operations at Level 1 decompression, 3 multiplication and 3 addition operations at Level 2 decompression, and 2 multiplication and 2 addition operations at Level 3 decompression. As demonstrated, early termination results in less work using the first sub-matrix factorization approach. 
     In the second factorization approach, a sub-matrix G 4  is derived, such as demonstrated by Feig and Winograd and shown in equation (8) as:                G   4     =     [           γ        (   5   )             γ        (   7   )             γ        (   3   )             γ        (   1   )                 -     γ        (   1   )               γ        (   5   )             -     γ        (   7   )               γ        (   3   )                 -     γ        (   3   )               -     γ        (   1   )               γ        (   5   )             -     γ        (   7   )                   γ        (   7   )             -     γ        (   3   )               -     γ        (   1   )               γ        (   5   )             ]             (   8   )                                
     In accordance with the factorization scheme demonstrated in Feig and Winograd, the sub-matrix Q 4  can be set forth in accordance with equation (9).                Q   4     =       [         1       0       0         -   1             1       0       0         -   1             0         -   1           -   1         0           0       1         -   1         0         ]            G   4          [         1       0       0       0           0       0       1       0           0       0       0       1           0       1       0       0         ]                 (   9   )                                
     It follows that Q 4  can be factored in the same operations as G 4  with four more additions due to the left-hand factor of equation (9). Thus, the final count for factorization of Q 4  is 8 multiplication and 16 addition operations. When combined with the 3 multiplication and 3 addition operations for G 2 , and the 24 addition operations for multiplication by H 8 , the entire computation requires 11 multiplication and 43 addition operations with no other normalizations required for the full inverse. However, normalizations are necessary to produce the intermediate thumbnails. The thumbnail corresponding to Level 1 decompression requires two shift operations and the thumbnail corresponding to Level 2 decompression requires two multiplication operations. 
     From equation (9), it follows that the second factorization approach also has a progressive realization. For instance, as shown in equation (9), the first two rows of the left-hand factor of Q 4  depend only on the first and fourth rows of G 4 , and the last two rows of the left-hand factor Q 4  depend only on the second and third rows of G 4 . This requires only a partial computation of the effect of the G 4  operation for the Level 1 thumbnail, followed by computation of the remainder as required for the refined thumbnails. The operation count for the progressive calculation of equation (9) is 4 multiplication and 8 addition operations at Level 1 decompression, 2 multiplication and 4 addition operations at Level 2 decompression, and 2 multiplication and 4 addition operations at Level 3 decompression, reducing the Q 4  cost by a factor of 2 when the thumbnail search terminates at Level 1. 
     It should be understood that the relative speed of the two factorization approaches described herein with respect to the one-dimensional case depends on the relative speed of multiplication and addition operations, with each approach being relatively equivalent in the instance of full decompression. However, the first factorization is likely to be the fastest when thumbnail images at decompression Level 1 are calculated. 
     The calculation of the inverse DCT of equation (3) is now described for the two-dimensional case, which, as is understood, directly applicable to image processing applications. From equation (3) above, the 2-D inverse DCT is derived and set forth according to equation (10) as follows: 
     
       
           D   8   ×D   8 =( H   8   ×H   8 ) ( V×V )  (10) 
       
     
     The matrix V is computationally equivalent to the direct sum of I 2 , G 2 , and R 4  with G 2  defined above in equation (5) and R 4  defined above in equation (7). The computation of V×V breaks down into computations of all cross products for the direct sum components of V. Table 1 is a summary of the operation counts per cross product. 
     Compositional costs of cross product components 
     
       
         
               
               
               
               
               
               
               
               
               
             
           
               
                 TABLE 1 
               
               
                   
               
               
                   
                   
                   
                   
                   
                   
                   
                   
                 Total 
               
               
                 Component 
                 I 2 xI 2   
                 I 2 xG 2   
                 I 2 xR 4   
                 G 2 xG 2   
                 G 2 xR 4   
                 R 4 xR 4   
                 H 8 xH 8   
                 Count 
               
               
                   
               
             
             
               
                 Repetitions 
                 1 
                 2 
                  2 
                 1 
                  2 
                  1 
                  1 
                   
               
               
                 Multiplications 
                 0 
                 6 
                 20 
                 2 
                 16 
                 32 
                  0 
               
               
                 Additions 
                 0 
                 6 
                 20 
                 10  
                 32 
                 92 
                 384 
               
               
                 Shifts 
                 0 
                 0 
                  0 
                 2 
                  4 
                  8 
                 384 
               
               
                 Total 
                 0 
                 12  
                 40 
                 2 
                 32 
                 32 
                  0 
                 118 
               
               
                 Multiplications 
               
               
                 Total 
                 0 
                 12  
                 40 
                 10  
                 64 
                 92 
                 384 
                 602 
               
               
                 Additions 
               
               
                 Total Shifts 
                 0 
                 0 
                  0 
                 2 
                  8 
                  8 
                 384 
                 402 
               
               
                   
               
             
          
         
       
     
     The resulting count for G 2×R   4  is due to the factorization described in equation (11) as follows:                        G   2     ×     R   4       =                  [           -     γ        (   6   )               γ        (   2   )                 -     γ        (   2   )               -     γ        (   6   )               ]     ×     [             γ        (   6   )            [           γ        (   1   )             -     γ        (   7   )                   -     γ        (   7   )               -     γ        (   1   )               ]               γ        (   2   )            [           γ        (   3   )             -     γ        (   5   )                   γ        (   5   )             γ        (   3   )             ]                 -       γ        (   2   )            [           -     γ        (   1   )               γ        (   7   )                 -     γ        (   7   )               -     γ        (   1   )               ]                 γ        (   6   )            [           -     γ        (   3   )               γ        (   5   )                 γ        (   5   )             γ        (   3   )             ]             ]                   =                [         1       0       0       0       0       0       0       0           0       1       0       0       0       0       0       0           0       0         -   1         0       0       0       0       0           0       0       0       1       0       0       0       0           0       0       0       0       1       0       0       0           0       0       0       0       0       1       0       0           0       0       0       0       0       0         -   1         0           0       0       0       0       0       0       0       1         ]                                (       (       G   2     ×     G   2       )     ×     I   2       )          I   2     ×     (     [                 γ        (   1   )             -     γ        (   7   )                   -     γ        (   7   )               -     γ        (   1   )                                                       γ        (   3   )             -     γ        (   5   )                   γ        (   5   )             γ        (   3   )                   ]     )                     (   11   )                                
     The cost of the matrix multiply by G 2 ×G 2  is 2 multiplication operations, 10 addition operations, and 2 shift operations as derived from the Feig and Winograd reference. This doubles when taking the cross product with I 2 . The cost of each of the 2×2 blocks in equation (11) is 3 multiplication and 3 addition operations from the rotator operation described above. In this case, there are four rotations because of the cross product with I 2  resulting in a total cost of 16 multiplication operations, 32 addition operations, and 4 shift operations, as shown in Table 1. 
     The matrix R 4 ×R 4  can be written according to equation (12) as follows: 
     
       
           R   4   ×R   4   =S*P   16 ( I   2   ×G   2   ×G   2   ×I   2 ) P   16 (( B   1   ⊕B   2 )×( B   1   ⊕B   2 ))  (12) 
       
     
     where the matrix S is the diagonal matrix whose diagonal is (1,1,1−1,1,1,1,−1,1,1−1,−1,−1,−1,1), the block matrices B 1  and B 2  are the sub-blocks found in the right-hand factor of R 4  from equation (7), and P 16  is the permutation matrix shown in equation (13) as:                P   16     =     [           I   4         0       0       0           0       0         I   4         0           0         I   4         0       0           0       0       0       0         ]             (   13   )                                
     The factor of equation (12) containing G 2  requires four multiplications by G 2 ×G 2 , which requires 2 multiplication operations, 10 addition operations, and 2 shift operations each, for a total of 8 multiplication operations, 40 addition operations, and 4 shift operations. The tensor products (B 1 ⊕B 2 )×(B 1 ⊕B 2 )) of equation (12) breaks up into four cross products B 1 ×B 1 , B 2 ×B 2 , B 1 ×B 2  and B 2 ×B 1 . The first two of these factor in the same way that G 2 ×G 2  factors to yield the identities shown in equations (14) and (15) as follows:                  B   1     ×     B   1       =         [         1       0       1       0           0       1       0       1           0       1       0         -   1               -   1         0       1       0         ]          [             γ        (   3   )            γ        (   5   )                 -     γ        (   1   )              γ        (   7   )                     -     γ        (   1   )              γ        (   7   )                 -     γ        (   3   )              γ        (   5   )                 0       0           0       0         ]            [         0       0       1       0       0         -   1             0       0       0       1       1       0             1   /   2         0       1       0       0       1           0         1   /   2         0       1         -   1         0         ]               (   14   )                   B   2     ×     B   2       =         [         1       0       1       0           0       1       0       1           0       1       0         -   1               -   1         0       1       0         ]          [             γ        (   1   )            γ        (   7   )                 -     γ        (   3   )              γ        (   5   )                     γ        (   3   )            γ        (   5   )                 γ        (   1   )            γ        (   7   )                 0       0           0       0         ]            [         0       0       1       0       0         -   1             0       0       0       1       1       0             1   /   2         0       1       0       0       1           0           -   1     /   2         0       1         -   1         0         ]               (   15   )                                
     Each of these identities requires 3 multiplication operations, 11 addition operations, and 2 shift operations. 
     The other two cross products can be computed by nesting the rotator relationship as described above. The final count for the full calculation of R 4 ×R 4  breaks into 8 multiplication operations, 40 addition operations, and 4 shift operations for G 2 ×G 2 , 6 multiplication, 22 addition and 4 shift operations for the first two cross products B i ×B i , and 18 multiplication and 30 addition operations in the remaining two cross products. The total cost to multiply by V×V is thus 120 multiplication operations, 216 addition operations, and 22 shift operations. To produce the Level 1 thumbnail, a further 128 addition and 128 shift operations are required after doing the V×V calculation. The Level 2 and Level 3 thumbnails each require 128 more addition and shift operations. The entire inversion requires 118 multiplication operations, 602 addition operations, and 402 shifts, as shown in Table 1. It should be understood that a computational trade-off exists and that skilled artisans may devise ways to lower the addition operation count by selecting approaches that increase the multiplication count. The factorization has various progressive forms that are more efficient when early termination is likely. 
     The progressive form, as described herein, allows computational savings when early termination is possible. Further computational savings is realized by computing the Level 1 and 2 thumbnails directly, and terminating the computation at that point without producing the full resolution DCT inversion. 
     The Level 0 thumbnail is already known as being directly available in the DCT by extracting the zero frequency terms from each of the 8×8 blocks. The Level 1 thumbnail is obtained in one dimension with only 4 multiplication and 5 addition operations as now described: 
     Letting T 1  be the matrix of equation (16):                    T   1     =     [         1       0       0       0       0       0       0       0           0           γ        (   1   )            γ        (   2   )             0           -     γ        (   3   )              γ        (   6   )             0           γ        (   5   )            γ        (   6   )             0           -     γ        (   2   )              γ        (   7   )               ]                     then                        (   16   )                     T   1          C   8       =       (     1        8       )          [         1       1       1       1       1       1       1       1           1       1       1       1         -   1           -   1           -   1           -   1           ]                       and           (   17   )                         (     1   /   2     )          H   2          T   1          C   8       =         (     1        8       )          [         1       1           1         -   1           ]            T   1          C   8                   =       (     1   /   4     )          [         1       1       1       1       0       0       0       0           0       0       0       0         -   1           -   1           -   1           -   1           ]                     (   18   )                                
     The normalization factor 1/{square root over (3)} can be incorporated in the second row of T1. However, the normalization of the first row will require one more multiplication operations if it cannot be absorbed elsewhere. 
     To compute the Level 2 thumbnail in the one-dimensional case, use is made of the Level 1 thumbnail computation which is incorporated into the matrix W set forth in equation (19) as follows:              W   =     [         1       0       0       0       0       0       0       0           0           γ        (   1   )            γ        (   2   )             0           -     γ        (   3   )              γ        (   6   )             0           γ        (   5   )            γ        (   6   )             0           -     γ        (   2   )              γ        (   7   )                 0       0       1       0       0       0       0       0           0       0       0       0       1       0       0       0           0       0       0       0       0       0       1       0           0       1       0       0       0       0       0       0           0       0       0       1       0       0       0       0           0       0       0       0       0       1       0       0         ]             (   19   )                                
     The first two rows of W are the rows of T 1  and the remaining six rows permute components of a vector that it multiplies. Two additional intermediate components of the Level 2 thumbnail are obtained by using the matrix T 2  defined in equation (20) as follows:          T   2     =     [           1   /     8           0       0       0       0       0       0       0           0           γ        (   6   )            γ        (   6   )             0       0       0       0           γ        (   3   )            γ        (   6   )                 -     γ        (   5   )              γ        (   6   )                 0         1   /     8           0       0       0       0       0       0           0       0           γ        (   2   )              γ        (   4   )       /   2           0           -     γ        (   4   )                γ        (   6   )       /   2           0       0       0         ]                            
     This matrix has the following property:                        T   2          WC   8       =                (     1   /   8     )                   =                [                    1       1       1       1       1       1       1       1           1       1         -   1           -   1         1       1         -   1           -   1             1       1       1       1         -   1           -   1           -   1           -   1             1       1         -   1           -   1           -   1           -   1         1       1         ]                                             (     1   /              4     )                     (       H   2     ×     H   2       )     ×     [                    1       1         ]                     (   20   )                                
     where H 2  is the Hadamard matrix of order two (2) as described above. The Level 2 thumbnail is computed from equation (20) and some operations can be saved because the Level 1 thumbnail is already computed. 
     To generalize the foregoing, given an eight (8) vector x whose DCT is y, the matrix product is calculated as:                      2        (       H   2     ×     H   2       )          T   2        Wy     =                2        (       H   2     ×     H   2       )          T   2          WC   8        x                 =                2        (       H   2     ×     H   2       )          (     1   /   4     )          (       (       H   2     ×     H   2       )     ×     [         1       1         ]       )        x                 =                    (     1   /   2     )          [         1       1       0       0       0       0       0       0           0       0       1       1       0       0       0       0           0       0       0       0       1       1       0       0           0       0       0       0       0       0       1       1         ]            x   .                     (   21   )                                
     The reduced product follows directly from the fact that the H 2  is self inverse. Equation (21) suggests that the operations required to compute the Level 2 thumbnail are those in H 2 ×H 2  and T 2 , however better results can be achieved because the Level I thumbnail contains some operations within the matrix H 2 ×H 2 . H 2 ×H 2  factors into                        H   2     ×     H   2       =                  (       H   2     ×     I   2       )          (       I   2     ×     H   2       )                   =                    (       H   2     ×     I   2       )          [         1       0       0       0           0       1       0       0           0       0       1       1           0       0       1         -   1           ]            [         1       1       0       0           1         -   1         0       0           0       0       1       0           0       0       0       1         ]                   =                  (       H   2     ×     I   2       )          (       I   2     ⊕     H   2       )          (       H   2     ⊕     I   2       )                     (   22   )                                
     Equation (22) shows how the Kronecker products break out into products of direct sums of H 2  and I 2 . The factor H 2 ×I 2  in equation (22) also factors into similar products of row permutations of direct sums of H 2  and I 2 . When broken into four factors, the various pairs of the four factors of equation (22) commute, and allow for performance of the matrix multiplication with any specific factor performed first. One of the four factors is equivalent to the multiplication done in equation (18). The computation can be arranged to do this factor first, and because it is performed for the Level 1 thumbnail its result can be reused for the Level 2 thumbnail without repeating its operations. Thus, only 6 addition operations are required to do the Level 2 thumbnail. 
     The additional cost of computing the Level 2 thumbnail is 5 multiplication operations, 3 addition operations, and two normalization multiplications for the multiplication by T 2  and 6 addition operations for equation (22). The total for both thumbnails is 9 multiplication and 14 addition operations, and up to 3 additional normalization multiplications if they are required. 
     For two dimensions, the Level 1 thumbnail uses the matrix T 1 ×T 1 , to create the four sums of the 4×4 disjoint subblocks of the 8×8 blocks of pixels. The four sums are the components of the column vector produced by multiplying the DCT of a block of pixels by                  (     1   /   4     )          (       H   2     ×     H   2       )          (       T   1     ×     T   1       )       =         (     1   /   8     )          [         1       1       1       1           1       1         -   1           -   1             1         -   1         1         -   1             1         -   1           -   1         1         ]            (       T   1     ×     T   1       )               (   23   )                                
     Expansion of T 1 ×T 1  shows that it has 24 non unit multipliers so that only 24 multiplication operations are required. One row has 1 nonzero term, two rows have 4 nonzero, and one row has 16 nonzero, thereby requiring 21 addition operations. The left factor of equation (23) requires 8 more addition and 4 shift A operations to produce a total of 24 multiplication operations, 29 addition operations, and 4 shift operations for the Level 1 thumbnail in two dimensions. 
     The Level 2 thumbnail computes (H 2 ×H 2 ×H 2 ×H 2 ) (T 2 ×T 2 ) (W×W) x, but the Level 1 thumbnail has already produced most of the components of (W×W) x and some of the operations in (H 2 ×H 2 ×H 2 ×H 2 ). There are 39 multiplication and 27 addition operations required to complete (W×W) x. The remaining cost for the Level 2 thumbnail are the operations in (H 2 ×H 2 ×H 2 ×H 2 ) and T 2 ×T 2 . The factor T 2 ×T 2  requires 25 multiplication and 21 addition operations because its four rows have 9, 6, 6, and 4 nonzero, respectively. The factor (H 2 ×H 2 ×H 2 ×H 2 ) requires 64 addition operations, but by using a factorization similar to the one in equation (22), one can reuse the operations already performed to compute the Level 1 thumbnail. This reduces the number of addition operations to 56. Thus, the Level 2 thumbnail requires 64 multiplication and 104 addition operations after computing the Level 1 thumbnail, and the two thumbnails require a total of 88 multiplication operation operations, 133 addition operations, and 4 shift operations, which is much less costly than the full inversion of the 2-D DCT. 
     The foregoing merely illustrates the principles of the present invention. Those skilled in the art will be able to devise various modifications, which although not explicitly described or shown herein, embody the principles of the invention and are thus within its spirit and scope.