Abstract:
A method for image compression of a set of image data includes performing a quantization operation on the image data. The quantization operation may include controlling a compression factor by applying a scaled quantization level obtained by multiplying a first quantization level by a gain factor. The gain factor may be updated as a function of a bit per pixel value of a compressed image. The update operation may include an iterative procedure including at least one iteration step that provides for updating a current gain factor as a function of a previous gain used for performing a previous compression step and as a function of a ratio of the bit per pixel value of the compressed image at the previous compression step to a target bit per pixel value. The method may be used in Joint Photographic Experts Group (JPEG) image processing and digital still cameras.

Description:
FIELD OF THE INVENTION  
       [0001]     The present invention relates to techniques for image compression as may be applied in Joint Photographic Experts Group (JPEG) rate control procedures.  
       BACKGROUND OF THE INVENTION  
       [0002]     Digital images are commonly used in several applications such as, for example, in digital still cameras (DSC). A digital image includes a matrix of elements, commonly referred to as a bit map. Each element of the matrix, which represents an elemental area of the image (a pixel or pel), is formed by several digital values indicating corresponding components of the pixel. Digital images are typically subjected to a compression process to increase the number of digital images which can be stored simultaneously, such as onto a memory of the camera. Moreover, this allows transmission of digital images to be easier and less time consuming. A compression method commonly used in standard applications is the JPEG (Joint Photographic Experts Group) algorithm, described in CCITT T.81, 1992.  
         [0003]     In the JPEG algorithm, 8×8 pixel blocks are extracted from the digital image. Discrete Cosine Transform (DCT) coefficients are then calculated for the components of each block. The DCT coefficients are rounded off using corresponding quantization tables. The quantized DCT coefficients are encoded to obtain a compressed digital image (from which the corresponding original digital image can be extracted later on by a decompression process). In some applications, it may be desired to provide a substantially constant memory requirement for each compressed digital image. This problem may be particularly applicable in digital still cameras. In this case it may be ensured that a minimum number of compressed digital images can be stored onto the memory of the camera, to guarantee that a minimum number of photos can be taken by the camera.  
         [0004]     The compression factor control, or rate control is quite difficult in algorithms, such as the JPEG, wherein the size of the compressed digital image depends on the content of the corresponding original digital image. Procedures for compression of JPEG images include adjusting a gain factor that multiplies the quantizers contained in quantization tables.  
         [0005]     The object of the rate control procedures in particular is to find the value of the gain factor that allows creating a compressed image with a predefined output file size by controlling the bit per pixel (bpp) value.  
         [0006]     The procedures for JPEG rate control can be divided in two categories: iterative and statistical. The iterative procedures adjust, by way of iterative steps, the value of the gain factor to achieve the desired bit per pixel value. At each step the resulting bit per pixel produced by the compression operation is compared with the desired bit per pixel value and the gain factor is modified accordingly. Statistical procedures evaluate the required gain factor G considering statistical relations between the target bit per pixel value and the gain factor.  
         [0007]     Furthermore, JPEG rate control procedures can be classified by a constant precision or by a constant number of cycles. In the case of the constant precision procedures, the cycle is repeated until the bit rate is out of the predefined precision range. The advantage of constant precision procedures is that precision is always guaranteed, but neither time nor power consumption involved by the compression operation are predictable. On the contrary, in the case of a constant number of cycles, the precision that will be achieved is unpredictable, while time and power consumption are fixed and limited.  
         [0008]      FIG. 1  shows a block diagram of a JPEG compression chain. In  FIG. 1 , the input image data, indicated with reference I, is fed to a Discrete Cosine Transform (DCT) block  10 , and then to a Quantization block  20 . The Quantization block  20  receives and uses a scaled quantization level {tilde over (Q)} that is calculated as the product between a gain factor G and a Quantization level Q, according the relation shown in Eq. 1. 
   {tilde over (Q)}=G·Q   Eq. 1  
         [0009]     The Quantization level Q is selected in a Quantization Table  60 . The quantized output from Quantization block  20  is then fed to a Zig-Zag Order block  30  and then to a Huffman Coding block  40 . The Huffman Coding block  40  uses the output signal from Zig-Zag Order block  30  and a Huffman Table  50  to generate the JPEG Compressed Image O.  
         [0010]     From EP-A-1 179 024; EP-A-1 173 036; EU-A-1, 179,026 and A. Bruna, M. Mancuso, “JPEG compression factor control: a new algorithm”, ICCE International Conference on Consumer Electronics, 19-21 Jun. 2001, Page(s): 206-207, a procedure for JPEG rate control based on statistical properties of JPEG compression procedure is known. Such a procedure is based on a statistical relationship between the bit per pixel value (bpp) and gain factor. In particular, the considered relation is established between the gain factor and the bit per pixel value when the image is compressed with fixed quantization tables.  
         [0011]     Such a procedure is a constant cycles procedure that includes just one cycle, but includes two phases: a first “retrieving” phase and a second “rate control” phase. The first “retrieving” phase is used to evaluate the parameters to solve the statistical model. The function that binds the gain factor to the bit per pixel value obtained by operating a compression of the images with a pre-set factor is approximated with a parabola or a quadratic relationship.  
         [0012]     The main steps of such a procedure can be then summarized as follows:  
         [0013]     calculating for all the images of the database a gain factor Gain* producing the target bit per pixel value (for example by way of a bisection algorithm);  
         [0014]     choosing an intermediate value of gain factor Int_G for operating a first compression, considering the gain factor value producing the minimum spreading of the couples &lt;bpp, Gain*&gt; on the set of images of the database; and  
         [0015]     using a parabolic function to interpolate the gain factor Gain* versus the bit per pixel value bpp of the compressed image data obtained applying the value of gain factor Int_G, according to the following equation: 
 
 G=a·bp   2   +b·bp+c   Eq. 2 
 
 where a, b, c indicate the coefficients of the parabolic function. 
 
         [0016]     The retrieving phase outputs the value of gain factor Int_G for the first compression and the coefficients of the parabola (a, b, c). These values are put in relation with the database image, to the target bit per pixel and to Luminance-Bandwidth-Chrominance (YUV) sub-sampling parameters. When some of these parameters are changed the values for the changed settings must be retrieved. For the applications, i.e. in digital still cameras, all managed cases are considered previously and the related settings are retrieved.  
         [0017]      FIG. 2  schematically illustrates the main steps performed in the rate control phase with the statistical procedure, that include:  
         [0018]     compressing the image data I, using prescaled quantization tables according to the intermediate value of gain factor Int_G in a JPEG compressor block  70 ;  
         [0019]     using the bit per pixel value bpp of the image outputted from JPEG compressor block  70  to estimate a gain factor defined as statistical gain Gs by way of the parabolic function shown in Eq. 2. In  FIG. 2  such an estimation step is symbolized by a graph  80  that shows the relation between the gain factor Gain* calculated on the image database and bit per pixel value bpp; and  
         [0020]     using the estimated gain factor Gs for a final JPEG compression step similar to the compression step of block  70 , but not shown in  FIG. 2 .  
         [0021]     The topics considered in the foregoing form the subject of extensive technical literature, such as:  
         [0022]     CCITT-Recommendation T.81: “information technology—Digital compression and coding of continuous tone still images”—Requirements and guidelines (1992);  
         [0023]     “Sensors, cameras and applications for digital photography”—Proceedings of SPIE (Vol. 3650, January 1999);  
         [0024]     Blaskaran, Konstantinides, “Image and video compression standards”—(pag. 86-93);  
         [0025]     Nakagawa et al, “DCT-based still image compression ICS with Bit-Rate Control”—.—IEEE Trans. on Consumer Electronics, Vol. 38, No. 3, August 1992; and  
         [0026]     Wook Joong Lim et al., “A bit allocation method based on picture activity for still image coding”—IEEE Trans. on Image Proc., Vol. 8, No. 7, July 1999.  
       SUMMARY OF THE INVENTION  
       [0027]     In view of the foregoing background, it is therefore an object of the present invention to provide an arrangement overcoming the drawbacks of the prior art, and proposing a method for image compression that allows for obtaining a better precision compared to the other methods with the same number of iterations.  
         [0028]     According to the invention, these and other objects are achieved by a method for image compression of a set of image data. The method may include performing a quantization operation on the image data including controlling a compression factor by applying a scaled quantization level obtained by multiplying a first quantization level by a gain factor, with the gain factor being updated as a function of a bit per pixel value of a compressed image. The update operation may comprise at least one iteration step for obtaining the gain factor by updating a current gain factor as a function of a previous gain factor used for performing a previous compression step and as a function of a ratio of the bit per pixel value of the compressed image at the previous compression step to a target bit per pixel value.  
         [0029]     The invention also relates to a corresponding system as well as to a related computer program product, loadable in the memory of at least one computer and including software code portions for performing the steps of the method of the invention when the product is run on a computer. As used herein, reference to such a computer program product is intended to be equivalent to reference to a computer-readable medium containing instructions for controlling a computer system to coordinate the performance of the method of the invention. Reference to “at least one computer” is evidently intended to highlight the possibility for the present invention to be implemented in a distributed/modular fashion.  
         [0030]     In brief, the proposed method provides for putting together a statistical procedure, based on statistical properties of compressed JPEG images, with an iterative procedure. This ensemble of procedures allows having very accurate performance using, as a starting point for iterations, the value calculated with the statistical method. Accordingly, this allows for setting the parameters of JPEG compression so that the dimension of the output file will be as near as possible to a set of target dimensions. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0031]     The invention will now be described, by way of example only, with reference to the enclosed figures of drawing, wherein:  
         [0032]      FIG. 1  and  FIG. 2  are schematic block diagrams of a compression chain according to the prior art;  
         [0033]      FIG. 3  shows a block diagram of the hybrid method compression chain according to the invention;  
         [0034]      FIG. 4  shows a block diagram of the JPEG compression chain including an iterative factor estimation procedure according to the invention;  
         [0035]      FIG. 5  shows a block diagram of a general purpose JPEG rate control procedure according to the invention;  
         [0036]      FIG. 6  shows a block diagram of the JPEG compression chain using the hybrid method of  FIG. 3 ;  
         [0037]      FIG. 7  shows a histogram of the performance of a statistical procedure of the invention;  
         [0038]      FIG. 8  shows a histogram of the performance of a general-purpose procedure with three iterations of the invention; and  
         [0039]      FIG. 9  shows a histogram of the performance of the method of the invention. 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0040]     The method for image compression described herein includes two different procedures, a first statistical procedure and a second iterative procedure, to improve the performance of the rate control procedures.  
         [0041]     A block diagram, schematically illustrating the proposed method, or hybrid method, indicated as a whole with reference number  1000 , is shown in  FIG. 3 . In  FIG. 3 , the JPEG image I is fed together with settings  60 ′, such as bit rate and image size, to a first statistical factor estimation block  100 , that performs a statistical procedure and produces as output a statistical gain Gs. The statistical factor estimation block  100  uses the settings  60 ′ for prescaling the coefficients of the quantization tables. The statistical gain Gs is then fed to a subsequent iterative factor estimation block  110  that performs an iterative procedure producing an iterative gain Gi. A final JPEG compression operation is then executed in a block  120  using such an iterative gain Gi for scaling to obtain a compressed image O.  
         [0042]     As will be apparent in the following from the detailed description of the procedures, in total three JPEG compression steps are use by the hybrid device  1000 . Moreover, the iterative part can be iterated to obtain better precision.  
         [0043]     The statistical procedure, performed in the statistical factor estimation block  100 , corresponds substantially to that already described with reference to  FIG. 2  and includes:  
         [0044]     operating one time a JPEG compression on the image data I using a fixed intermediate gain value Int_G; and  
         [0045]     using the bit per pixel value produced by such a JPEG compression operation to estimate a new gain factor value, the statistical gain Gs, using the statistical relation according to Eq. 2.  
         [0046]     The statistical procedure performed in block  100  uses one JPEG compression. The values of the intermediate gain value Int_G and the coefficients for Eq. 2 are retrieved for the previously defined image resolutions and the target bit per pixel.  
         [0047]     The iterative procedure performed in the iterative factor estimation block  110  uses then the new bit per pixel value count produced by the last JPEG compression operation in block  100  to estimate the final gain value, the iterative Gain Gi, through an iteration formula, that will be better detailed in the following with reference to Eq. 6.  
         [0048]     In general, iterative procedures search for the solution by adjusting parameters in relation to the results of the previous attempts. The value to be retrieved is a gain factor for scaling the quantization table so that the compressed JPEG image has the target bit per pixel value. The bit per pixel value is determined by the compression operation and so is correlated to the gain factor imposed for the compression operation. The bit per pixel of the compressed image and the target bit per pixel are used to evaluate a gain factor update operation.  
         [0049]     In the proposed iterative procedure, specifically, the following parameters are defined to find the relation that links the target bit per pixel and the gain factor at a previous iteration:  
         [0050]     a target file size T, in Kbytes;  
         [0051]     a current file size F, in Kbytes;  
         [0052]     a gain factor G and new gain factor G′;  
         [0053]     a quality Q calculated as 1/G. Accordingly a new quality Q′ is 1/G′;  
         [0054]     a bit per pixel ratio R calculated as the ratio of the current file size F to target file size T (F/T), i.e. the ratio between the output bit per pixel and the target bit per pixel; and  
         [0055]     an easiness E, i.e. the abstract compressibility of an image.  
         [0056]     From a statistical point of view is thus:  
             Q   =       E   ·     F     1   ,   5         ⁢   and             Eq   .           ⁢   3                 Q     E   ·     F     1   ,   5           =           Q   ′       E   ·     T     1   ,   5           ⇒     Q   ′       =     Q   ⁢       T     1   ,   5         F     1   ,   5         ⁢   and   ⁢           ⁢   finally               Eq   .           ⁢   4                 G   ′     =       1   Q     =         F     1   ,   5         Q   ·     T     1   ,   5           =     G   ·     R     1   ,   5                     Eq   .           ⁢   5             
 
         [0057]     By defining the new gain factor G′ as a gain G n+1  at a (n+1)-th iteration step, with n an integer, and the gain factor G as a gain G n  at a n-th iteration step, the function proposed to link bit per pixel, target bit per pixel and previous gain factor is: 
 
 Gn   +1   =G   n   *R   n   1,5   Eq. 6 
 
 where R n  indicates the bit per pixel ratio at the n-th iteration step, obtained as ratio between the output bit per pixel at the n-th iteration step, i.e. the bit per pixel value of the image compressed with the previous gain factor G n , and the target bit per pixel value T. 
 
         [0058]      FIG. 4  shows a block diagram of compression chain including the Iterative Factor Estimation procedure just described. The input data image I is fed to a Discrete Cosine Transform block  140 , and then to a Quantization block  150 . The Quantization block  150  receives and uses the scaled quantization level {tilde over (Q)} that is calculated as the product between the value of the new gain factor G n+1  and the Quantization level Q. The Quantization level Q is selected in a Quantization Table  200 . The quantized output from block  150  is fed to a Zig-Zag Order block  160  and then to a Huffman Coding block  170 . The Huffman Coding block  170  uses the output signal from Zig-Zag Order block  160  to generate the JPEG Compressed Image O. From this JPEG Compressed Image O it is possible to extract the associated output bit per pixel value bpp. Such an output bit per pixel value bpp is fed back to a Gain Update block  190  for evaluating the ratio R n  at the n-th step and applying the iterative relation according to Eq. 6 on the gain factor G n  at the n-th step and the target bit per pixel T, in order to calculate the new value of gain factor G n+1  for the next step n+1. Due to the computational cost, the Eq. 6 in the Gain Update block  190  is preferentially approximated with the following linearization: 
   G=G*R *( R+ 1)/2  Eq. 7  
         [0059]     The iterative procedure here described is not related to a specific resolution or specific target bit per pixel value or Luminance-Bandwidth-Chrominance (YUV) sub-sampling, so it can be applied to a generic image without the need of operating on pre-fixed cases, e.g. images coming from a predetermined sensor where a-priori information is known.  
         [0060]     A starting value G1 of the gain factor for the iteration can be chosen as: 
 
 G 1=3*(Initialbpp/ T )/32  Eq. 8 
 
 where Initialbpp is the number of bit per pixel of the image I. 
 
         [0061]     While the statistic procedure begins with a value of G that depends on the settings (TargetBpp, image size), eq. 8 is used when the iterative procedure is used without the statistic procedure.  
         [0062]     Making use of the iterative procedure just described it is possible then to define a general method for JPEG rate control, merging the iterative procedure and the statistical procedure according to the scheme already illustrated in general with reference to  FIG. 3 , that is particularly suitable for increasing precision in some predefined cases, i.e. the images coming from a sensor, with predefined image size/bit per pixel requirements.  
         [0063]     The statistical procedure in the proposed method needs to know the values of the intermediate gain Int_G and of the parabola parameters (a, b, c) for setting its one compression. For this reason a previous phase is needed to create the adequate model. So the method described herein knows the image resolutions and the target bit per pixel that will be used in the compression phase.  
         [0064]     On the other side the iterative procedure, considered as standing alone, has general purpose and can be performed without any previous setting. On the basis of these considerations a general-purpose JPEG rate control procedure for all resolutions and for all target bit per pixel is also proposed having performances that are related to the procedure used.  
         [0065]     Thus, if the target bit per pixel, resolution of image to be compressed, and Luminance-Chrominance (YUV) sub-sampling are in the set of parameters considered in the retrieval phase of the statistical factor estimation procedure then the hybrid method  1000  of  FIG. 3  is used. In this case precision is very high and advantages of both types of procedures are exploited.  
         [0066]     Otherwise, if the values of target bit per pixel, the resolution of image to be compressed and the Luminance-Chrominance (YUV) sub-sampling are outside of the considered set, only a simple iterative factor estimation procedure is used applying the general purpose Eq. 6 or its approximation given by the Eq. 7 and starting from the gain factor value G given by Eq. 8. Precision for this method using only iteration is good although it is worse than the precision given by the hybrid statistical-iterative solution with the same number of iterations.  
         [0067]      FIG. 5  schematically illustrates such a general-purpose JPEG rate control procedure. The input image data I is fed to a Procedure Selection block  310  with image resolution RES and target bit per pixel value T. Two different ways to obtain the output Compressed JPEG Image O are possible on the basis of the selection performed by block  310 . The hybrid method  1000  comprising the statistical procedure  100  and the iterative procedure  110 , that is presented in general with reference to  FIG. 3  or the sole iterative procedure  110  based on Eq. 6 or Eq. 7. The number of iterations used to estimate the iterative gain factor Gi can be increased to have a better precision in the output bit per pixel.  
         [0068]      FIG. 6  shows a block diagram of a possible embodiment of the JPEG compression chain using the hybrid method  1000  involving both the statistical procedure and the iterative procedure. In particular, the image data I is fed to a Discrete Cosine Transform block  220 , and then to a Quantization block  230 . The Quantization block  230  receives and uses the scaled quantization level {tilde over (Q)} that is calculated as the product between the value of the updated gain factor Gn +1  and the Quantization level Q. The Quantization level Q is selected in a Quantization Table  260 . The quantized output from the Quantization block  230  is fed to a Zig-Zag Order block  240  and then to a Huffman Coding block  250 . The Huffman Coding block  250  uses the output signal from Zig-Zag Order block  240  to generate the JPEG Compressed Image O. From this JPEG Compressed Image O it is possible to extract the output bit per pixel value bpp. This value bpp is fed back to a Gain Update block  300 .  
         [0069]     Block  300  comprises an Initial G1 block  270  for introducing the starting value G1 of the gain factor according to the value obtained statistically from the target bpp and the file size if the hybrid algorithm is used, or according to the Eq. 8 if the sole iterative algorithm is used, a second Statistical block  280  performing the statistical procedure  100  of  FIG. 2 , and a third Iterative block  290 , performing the proposed iterative procedure  110 . Block  300  selects one sub-block at each time using a switch  265 . The first time the block  300  selects block  270 , operating a compression with the starting value G1, the second time selects the statistical procedure  280  obtaining the statistical gain Gs and after that block  290  is selected to obtain the iterative gain Gi that yields the desired target bit per pixel value.  
         [0070]     Block  300  works on an image size S and the target bit per pixel T information, and previous gain factor G n , to calculate the updated value of gain factor G n+1  for the next step. The advantage of the hybrid method presented here, is to achieve the best precision compared to the other methods with the same number of iterations.  
         [0071]     If the parameters of input file are not included in the set of the statistical procedure, the hybrid method is not applied and the iterative procedure is performed. Precision is lower but the application field is formed by all the settings that are not contemplated in the Statistical Factor Evaluation set.  
         [0072]     The number of the operations of the JPEG sub-blocks is shown in the following table 1. It refers to 8×8 pixels for both the luminance and the chrominance data in 4:2:2 sub sampled format (see Nakagawa et al. “DCT-based still image compression ICS with bit-rate control, IEEE 1992).  
                                                                 TABLE 1                                       Quanti-   ZigZag                   DCT   zation   Order   Huffman   Total                                    LUT       128   128   258   514       Comparison               128   128       Shift               130   130       Sum   1228               1228       Multiplication   1228   128           1356       Logical op               130   130                  
 
         [0073]     The cost of each iteration with the iterative procedure is shown in the following table 2.  
                                     TABLE 2                                   Gain Gi iteration           calculation                                        LUT               Comparison           Shift   1           Sum   1           Multiplication   2           Logical op                      
 
         [0074]     On the other hand, the cost of the statistical gain Gs calculation in the “statistical” procedure is shown in the following table 3:  
                                     TABLE 3                                   Gs iteration           calculation                                        LUT               Comparison           Shift           Sum   2           Multiplication   3           Logical op                      
 
         [0075]     The main contribution to computational complexity is given by the JPEG compression and so the principal factor to consider in the operation count is the number of iterations.  
         [0076]     In  FIGS. 7, 8 , and  9  are shown the histograms of error distribution for some experiments done. The target bit per pixel is 3.2 and the resolution is QQVGA (Quarter Quarter VGA). A database of 110 images, captured with a CMOS-VGA sensor on the “STV6500-E01” Evaluation Kit equipped with a “502 VGA sensor” (see “Colour Sensor Evaluation Kit VV6501” STMicroelectronics, Edinburgh 2003) has been used for testing.  
         [0077]     A percentage error Error_percent is expressed as:  
             Error_percent   =           bpp   _     -   bpp       bpp   _       ·   100             Eq   .           ⁢   9             
 
         [0078]     The horizontal axis shows the value of such percentage error Error_percent as defined in Eq. 9, while the vertical axis shows the percentage of images associated to each percentage error Error_percent value.  
         [0079]     The statistical procedure shows good performance with two compression steps, one for compression with the intermediate value of gain Int_G and one with the final value of statistical gain factor Gs.  
         [0080]      FIG. 8  shows the precision of the general-purpose iterative procedure when three iterations are accomplished. Globally, four compressions are needed because the final image compression is also taken in account. The precision of the hybrid method is presented also in the case where the number of iterations is equal.  
         [0081]     With reference to  FIG. 9 , in this case one compression is needed for the statistical factor evaluation, one iteration is done with the iterative formula of iterative factor evaluation and a last compression is finally performed to have the compressed image with the final gain factor Gi.  
         [0082]     Performance of the hybrid method is better than the performance of the known approaches also in the case that the number of iterations is the same.  
         [0083]     Without prejudice to the underlying principles of the invention, the details and the embodiments may vary, also appreciably, with reference to what has been described by way of example only, without departing from the scope of the invention as defined by the annexed claims.