US 7430330 B2 Abstract A method of JPEG compression of an image frame divided up into a plurality of non-overlapping, tiled 8×8 pixel blocks X
_{i}. A global quantization matrix Q is determined by either selecting a standard JPEG quantization table or selecting a quantization table such that the magnitude of each quantization matrix coefficient, Q[m,n] is inversely proportional to the aggregate visual importance in the image of the corresponding DCT basis vector. Next a linear scaling factor S_{i }is selected for each block, bounded by user selected values S_{min }and S_{max}. Transform coefficients, Y_{i}, obtained from a digital cosine transform of X_{i}, are quantized with global table S_{min }Q while emulated the effects of quantization with local table S_{i }Q and the quantized coefficients T_{i}[m,n] and global quantization table S_{min }Q are entropy encoded , where S_{min }is a user selected minimum scaling factor, to create a JPEG Part 1 image file. The algorithm is unique in that it allows for the effect of variable-quantization to be achieved while still producing a fully compliant JPEG Part 1 file.Claims(12) 1. A method of JPEG compression of an image frame divided up into a plurality of non-overlapping, tiled 8×8 pixel blocks X
_{i }comprising:
(a) forming a discrete cosine transform (DCT) of each block X
_{i }of the image frame to produce a matrix of blocks of transform coefficients Y_{i};(b) calculating a visual importance, I
_{i}, for each block of the image, based upon assigning zeros for flat features and values approaching unity for sharply varying features;(c) forming a global quantization matrix Q by one of
(i) selecting a standard JPEG quantization table and
(ii) selecting a quantization table such that the magnitude of each quantization matrix coefficient Q[m,n] is inversely proportional to the aggregate visual importance in the image of a corresponding DCT basis vector; and
(d) calculating linear scaling factors S
_{i }defining bounds over which the image is to be variably quantized;(e) approximating variable quantization of the transform coefficients, Y
_{i}[m,n], using the local quantization table S_{i }Q while actually producing coefficients T_{i}[m,n] that have been quantized using global quantization table S_{min }Q where S_{min }is a scaling value used in compressing the image that defines the quality bounds over which the image will be variably quantized; and(f) entropy encoding quantized coefficients T
_{i}[m,n] and global quantization table S_{min }Q to create a JPEG Part 1 image file.2. A method according to
_{i}[m,n]/(S_{min }Q[m,n]) to the nearest integer to form quantized DCT transformed coefficients T_{i}[m,n];
(f) setting T
_{i}[m,n]=0 if round (Y_{i}[m,n]/(S_{i }Q[m,n]))=0; and(g) setting T
_{i}[m,n]=sign(T_{i}[m,n]) P(T_{i}[m,n]) if Ernd_{i}[m,n] is less than or equal to Evq_{i}[m,n] wherein P(x)=2^{floor(lg(x))}−1 and T_{i}[m,n] and wherein Ernd_{i}(m,n) is the error introduced by rounding down the coefficient T_{i}(m,n) to the nearest smaller integer of the form 2^{k}−1 and wherein Evg(m,n) is the error that would be introduced to the coefficient Y[m,n] by uniform quantization with a local quantization matrix S_{i}Q.3. A method according to
_{i }equal to I_{i}*(S_{max}−S_{min})+S_{min }where S_{min }and S_{max }are user specified to define bounds over which the image will be variably quantized.4. The method according to
_{i }is determined by discrete edge detection and summation of transform coefficients.5. The method according to
_{i }is determined by creating a 24×24 matrix of image pixels of DCT coefficients centered on a block X_{i}, convolving said 24×24 matrix with an edge tracing kernel to produce a convolved matrix, summing center 10×10 matrix values of said convolved matrix to produce a summed value, and normalizing said summed value to produce a visual importance, I_{i}.6. The method according to
calculating elements Q
_{min }of said Q according to the formula
Q[m,n]=max(entries of A)/A[m,n] and scaling coefficients of Q by a constant factor a for all values of (m,n) except (0,0) in order to minimize an error between Q and a standard JPEG quantization matrix.
7. A method of JPEG compression of an image frame divided up into a plurality of non-overlapping, tiled 8×8 pixel blocks X
_{i}, comprising:
(a) forming a discrete cosine transform (DCT) of each block X
_{i }of the image frame to produce a matrix of blocks of transform coefficients Y_{i};(b) calculating a visual importance, I
_{i}, for each block of the image, based upon assigning zeros for flat features and values approaching unity for sharply varying features;(c) forming a global quantization matrix Q by one of
(i) selecting a standard JPEG quantization table and
(ii) selecting a quantization table such that the magnitude of each quantization matrix coefficient Q[m,n] is inversely proportional to the aggregate visual importance to the image of a corresponding DCT basis vector; and
(d) selecting a linear scaling factor S
_{i }defining bounds over which the image is to be variably quantized wherein S_{i}=I_{i}(S_{max}−S_{min})+S_{min }where S_{max }and S_{min }are user selected;(e) quantizing the transform coefficients, Y
_{i}[m,n], to produce quantized blocks T_{i}[m,n] as follows:
(i) T
_{i}[m,n]=round(Y_{i}[m,n]/(S_{min }Q[m,n])), where round denotes rounding to the nearest integer;(ii) setting T
_{i}[m,n]=0 if round (Y_{i}[m,n]/(S_{i}Q[m,n]))=0; and(iii) setting T[m,n]=sign(T
_{i}[m,n]) P(abs(T_{i}[m,n])) if Ernd_{i}[m,n] is less than or equal to Evq_{i}[m,n] wherein P(x)=2^{floor(lg(x))}−1 and T_{i}[m,n] and wherein Ernd_{i}(m,n) is the error introduced by rounding down the coefficient T_{i}(m,n) to the nearest smaller integer of the form 2^{k}−1 and wherein Evq(m,n) is the error that would be introduced to the coefficient Y[m,n] by uniform quantization with a local quantization matrix S_{i}Q;(f) entropy encoding quantized coefficients T
_{i}[m,n] and global quantization matrix S_{min }Q, to create a JPEG Part 1 image file.8. A method of JPEG compression of a colour image represented by channels Y for greyscale data, and U and V each for colour, comprising:
(a) subsampling the colour channels U and V by an integer fraction of their size;
(b) forming a discrete cosine transform (DCT) Y
_{i }for each block X_{i }of each of channels Y, U and V;(c) calculating a visual importance, I
_{i}, for each Y channel block of each image arid setting I_{i}=max{I_{i }values for corresponding Y channel blocks} for blocks in the U and V channels;(d) forming a global quantization matrix Q for the Y channel block and one for channels U and V combined such that a magnitude of each quantization matrix coefficient Q[m,n] is inversely proportional to the aggregate visual importance in the image of a corresponding DCT basis vector; and
(e) approximating variable quantization of the transform coefficients, Y
_{i}[m,n], using the local quantization table S_{i }Q while actually producing coefficients T_{i}[m,n] that have been quantized using global quantization table S_{min }Q, where Q is the global quantization table for the associated channel being quantized; and(f) entropy encoding quantized coefficients T
_{i}[m,n] and global quantization table S_{min }Q, where S_{min }is a user selected minimum scaling factor for each of channels Y, U, and V, to create a JPEG Part 1 image file for each of channels Y, U and V.9. The method of
10. Apparatus for JPEG compression of an image frame divided up into a plurality of non-overlapping, tiled 8×8 pixel blocks X
_{i }comprising:
(a) a discrete cosine transformer (DCT) operative to form the discrete cosine transform of each block X
_{i }of the image frame to produce blocks of transform coefficients Y_{i};(b) a visual importance calculator operative to calculate the visual importance, I
_{i}, for each block of the image, based upon assigning zeros for flat features and values approaching unity for sharply varying features;(c) a global quantization matrix calculator operative to calculate the global quantization matrix, Q, by one of
(i) selecting a standard JPEG quantization table and
(ii) selecting a quantization table such that the magnitude of each quantization matrix coefficient Q[m,n] is inversely proportional to the aggregate visual importance in the image of a corresponding DCT basis vector; and
(d) a linear scaling factor calculator operative to determine a linear scaling factor, S
_{i}, defining bounds over which the image is to be variably quantized based on user established values of S_{max }and S_{min};(e) a variable quantization calculator operative to approximate variable quantization of the transform coefficients, Y
_{i}[m,n], using the local quantization table S_{i }Q while actually producing coefficients T_{i}[m,n] that have been quantized using global quantization table S_{min }Q, where S_{min }is a user selected minimum scaling factor; and(f) an entropy encoder operative to encode the quantized coefficients T
_{i}[m,n] and global quantization table S_{min }Q to create a JPEG Part 1 image file.11. Apparatus according to
_{min}*Q) Y_{i}[m,n]/(S_{min }Q[m,n] to the nearest integer to form quantized DCT transformed coefficients T_{i}[m,n] and
(f) sets T
_{i}[m,n]=0 if round (Y_{i}[m,n]/(S_{i }Q[m,n]))=0; and(g) sets T
_{i}[m,n]=sign(T_{i}[m,n]) P(abs(T_{i}[m,n])) if Ernd_{i}[m,n] is less than or equal to Evq_{i}[m,n] wherein P(x)=2^{floor(lg(x))}−1 and T_{i}[m,n] and wherein Ernd_{i}(m,n) is the error introduced by rounding down the coefficient T_{i}(m,n) to the nearest smaller integer of the form 2^{k}−1 and wherein Evg(m,n) is the error that would be introduced to the coefficient Y[m,n] by uniform quantization with a local quantization matrix S_{i}Q.12. Apparatus according to
_{i }equal to I_{i }(S_{max}−S_{min }where S_{min }and S_{max }are user specified to define bounds over which the image will be variably quantized. Description This application is a continuation-in-part of application Ser. No. 09/759,150 filed Jan. 16, 2001, now abandoned. The present invention relates generally to JPEG image compression, and more specifically to a method and apparatus for optimizing a JPEG Part 1 image using regionally variable compression levels. Compression is a useful method for reducing bandwidth consumption and download times of images sent over data networks. A variety of algorithms and techniques exist for compressing images. JPEG, a popular compression standard that is particularly good at compressing photo-realistic images, is in common use on the Internet. This standard, described in “JPEG Still Image Data Compression Standard”, by W. B. Pennebaker and J. L. Mitchell, Chapman & Hall, 1992, is based on a frequency domain transform of blocks of image coefficients. As seen in The JPEG compressed image data is decompressed by the bottom circuit of More specifically, the discrete cosine transform block uses the forward discrete cosine function (DCT) to transform the image pixel intensity X[x,y] to DCT coefficients Y[m,n] as follows: The next step is to quantize the DCT coefficients using a quantization matrix, which is an 8×8 matrix of step sizes with one element for each DCT coefficient. A tradeoff exists between the level of image distortion and the amount of compression, which results from the quantization. A large quantization step produces large image distortion, but increases the amount of compression. A small quantization step produces lower image distortion, but results in a decrease in the amount of compression. JPEG typically uses a much higher step size for the coefficients corresponding to high spatial frequency in the image, with little noticeable deterioration in the image quality because of the human visual system's natural high frequency rolloff. The quantization is actually performed by dividing the DCT coefficient Y[m,n] by the corresponding quantization table entry Q[m,n] and the result rounded off to the nearest integer according to the following:
The quantization step is of particular interest since this is where information is discarded from the image. Ideally, one would like to discard as much information as possible, thereby reducing the stored image size, while at the same time maintaining or increasing the image fidelity. Within the standard there is no prescribed method of quantizing the image, but there is nonetheless a popular method used in the software of the Independent JPEG Group (ISO/IEC JTC1 SC29 Working Group 1), and employed extensively by the general community. This method involves scaling a predetermined quantization table (calculated from statistical importance of basis vectors over a large set of images) by a factor dependent on a user-set quality, which lies in the range 1-100. This method yields good results on average, but is based on statistical averages over many images, and doesn't address global image characteristics, let alone local characteristics. V. Ratnakar and M. Livny. “RD-OPT: An efficient algorithm for optimizing DCT quantization tables.” Proceedings DCC'95 (IEEE Data Compression Conference), pages 332-341, 1995 (and also U.S. Pat. No. 5,724,453) describe a rate-distortion dynamic programming optimization technique to reduce distortion for a given target bit-rate, or reduce bit-rate for a given target distortion. This reference uses “Mean Squared Error” as a measure of distortion and introduces some novel techniques for estimating bit-rate that improve the computational efficiency of the calculation. This algorithm is designed to calculate a single quantization table Q for each channel of the image, and it is based solely on global aggregate statistics. Also it does not take into account varying local image statistics. Moreover the method is computationally expensive. There exists another technique, which simultaneously optimizes the quantization and entropy encoding steps yielding a completely optimum JPEG file stream. This technique, however is extremely slow and unrealistic for real-time JPEG optimization. U.S. Pat. No. 5,426,512 entitled “Image data compression having minimum perceptual error” uses a rate-distortion dynamic programming optimization technique to reduce distortion for a target bit-rate, or reduce bit-rate for a target distortion. This technique is very similar in concept to V. Ratnaker et al., except that the latter uses a “perceptual error” measure which attempts to mimic the eye's sensitivity to error. This algorithm is designed to calculate a single quantization table Q for each plane of the image, and it is based solely on global aggregate statistics, and it does not take into account varying local image characteristics. U.S. Pat. No. 5,883,979 entitled “Method for selecting JPEG quantization tables for low bandwidth applications” is directed mainly at preserving text features in JPEG images at very low bit-rates. It uses image analysis based on global statistics to determine which DCT basis vectors are more visually important to the image, and weights them accordingly in the quantization table. Again, this algorithm is based on global statistics and also it is geared specifically for preserving textual data in JPEG images. Ideally, one would like to have an optimal quantization table for every significantly different region of the image (a technique adopted for example in MPEG), which would then allow one to increase image fidelity as a function of file size; this technique of using different quantization tables for different areas of an image is generally referred to as variable quantization. In variable quantization, the figures of merit in question are image quality (distortion) and output file size (rate). The problem is then to decrease image distortion for a target rate, or to decrease rate for a target distortion. Of particular interest is the latter, since it has direct application in minimizing bandwidth usage for images which are sent over computer networks. This also reduces the time to transmit the image, which is important when the network path includes slow speed links. JPEG Part 3 (ISO/IEC 10918-3), approved in 1995, defines extensions to the JPEG standard that allow for variable quantization. Unfortunately, these extensions are not supported by most applications (including most web browsers, and the IJG reference implementation). U.S. Pat. No. 6,314,208 entitled “System for variable quantization in JPEG for compound documents” describes a system for determining variable quantization local scaling factors using a block classifier that separates text and picture information. This algorithm effectively employs variable quantization but requires the use of extensions only introduced in JPEG Part 3. Similarly, US Patent Application No. 2001/0043754 describes a method for determining local scaling factors based on perceptual classification performed in the spatial domain. This algorithm also presupposes use of JPEG Part 3 extensions. It is preferred that any technique for quantizing an image also be computationally efficient, especially when the quantization is performed on images which are generated dynamically, or images which cannot be stored in a caching system. If the quantization is too slow, then any transmission time benefit realized from the reduction in rate is effectively annulled by the latency introduced in the quantization computation. Accordingly, it is an object of the invention to provide a method for quantizing a JPEG image, which offers many of the benefits of variable quantization and is computationally efficient, while conforming to the widely used JPEG Part 1 standard. According to the present invention there is provided a method, which is directed towards regionally variable levels of compression. The method is directed to JPEG compression of an image frame divided up into non-overlapping 8×8 pixel blocks X The visual importance, I The global quantization matrix, Q, may be formed by calculating an 8×8 matrix A by calculating matrix elements A[m,n] according to the formula: The linear scaling factors S Variable quantization may be approximated by first uniformly quantizing a DCT coefficient block Y -
- 1. If round(Y
_{i}[m,n]/(S_{i }Q))=0, then T_{i}[m,n]=0. - 2. Otherwise, if Ernd
_{i}[m,n] <=Evq_{i}[m,n] then T_{i}[m,n]=sign(T_{i}[m,n]) P(abs(T_{i}[m,n])). Step 1 serves to erase any coefficients that would have been erased had they truly been quantized by a local quantization matrix S_{i }Q. Step 2 decreases values in order to guarantee a smaller Huffman representation if the error introduced in doing so is less than or equal to the error that would have been introduced by variable quantization.
- 1. If round(Y
According to another aspect of the invention there is provided a method of JPEG compression of a colour image represented by channels Y for greyscale data, and U and V each for colour, which comprises shrinking the colour channels U and V by an integer fraction of their size, forming a discrete cosine transform (DCT) Y Preferably, the subsampling factor is 2. In another aspect of the invention there is provided an apparatus for JPEG compression of an image frame divided up into a plurality of non-overlapping, tiled 8×8 pixel blocks X (i) selecting a standard JPEG quantization table and (ii) selecting a quantization table such that the magnitude of each quantization matrix coefficient Q[m,n] is inversely proportional to the visual importance in the image of the corresponding DCT basis vector. A linear scaling factor calculator determines a linear scaling factor, S Further features and advantages will be apparent from the following detailed description, given by way of example, of a preferred embodiment taken in conjunction with the accompanying drawings, wherein: The following algorithm, described below, is used to optimize JPEG images for delivery over low bandwidth connections. In general it can be used anywhere where higher JPEG compression ratios are desired while not noticeably degrading image quality. A description of the algorithm in accordance with the flowchart in An image frame is selected at step For each 8×8 block X One method of selecting the visual importance I
This technique is essentially the discrete equivalent of taking the second derivative of the image in both dimensions. The output of the convolution H where C is equal to 14. This function is determined statistically, and remaps the K The above procedure is used to calculate I The quantization matrix Q is determined at step
In another approach, an image-specific quantization matrix is generated, where the magnitude of each quantization table coefficient is inversely proportional to the importance in the image of the corresponding basis vector. One approach to generating an image-specific quantization matrix Q defines an 8×8 array such that each value A[m,n] is equal to the sum of the corresponding coefficients (m,n) in each block Y
After this summation, the matrix A holds relative counts of importance for each basis vector in the DCT transform. This matrix is simply inverted and scaled entry-wise such that B[m,n]=max{entries of A}/A[m,n]. In the cases where A[m,n] is zero, B[m,n] is set to 255, which is the largest allowable value for an 8 bit number. The values in B[m,n] are then scaled by a factor s such that the squared error between sB and a standard quantization matrix is minimized. The quantization matrix Q is then set equal to this scaled matrix sB. Note that this process is only performed on the AC coefficients, in other words for all values of (m,n) except (0,0). For the (0,0) entry, Q Each block X For each block X Each block X The algorithm has three distinct quantization steps. In the first step, the coefficients in the block Y - for each block Y
_{i }do- for each coefficient Y
_{i}[m,n] in block Y_{i }do
*T*_{i}*[m,n*]=round(*Y*_{i}*[m,n*]/(*S*_{min }*Q[m,n*]) where round denotes rounding to the nearest integer. In the next step, if any coefficient T_{i}[m,n] is >0, then if round(*Y*_{i}*[m,n*]/(*S*_{i }*Q[m,n*]))=0 then*T*_{i}*[m,n*]=0 In the third and final step, if T_{i}[m,n] is still greater than zero, and if the coefficient can be rounded down by one logarithm base-2 and not exceed the rounding error introduced by the quantization with the local quantization table, then it is so rounded down: if Ernd_{i}[m,n]<=Evq_{i}[m,n] then
*T*_{i}*[m,n*]=sign(*T*_{i}*[m,n*])*P*(*abs*(*T*_{i}*[m,n*])) where Ernd_{i}, Evq_{i }and P are as defined earlier. The algorithm in its entirety is:
- for each coefficient Y
The above pseudo-code has the effect of zeroing any coefficients that would have been zeroed if Y Finally, the quantized blocks T It should be noted that the algorithm is particularly useful in optimizing JPEG images that have already been quantized using the standard JPEG quantization table at a level S For the sake of clarity, the algorithm has been presented assuming the image contains a single 8-bit channel per pixel, in other words it is a greyscale image. However, the algorithm is easily extended to full color (3 channel) images, and more generally, n channel images with few adjustments to the process. In general, the algorithm is simply applied to each channel independently, where the visual importance values are calculated on the luminance channel. A single quantization matrix Q can be employed for all channels, or alternatively, a separate quantization matrix can be used for each channel. Likewise, S It is common practice to sub-sample one or more channels when color images are coded. The algorithm can still be employed in this case. An example using a full color, 3-channel image will be described. A common color scheme to represent a color image is know as YUV. Here, Y stands for the luminance channel (or the greyscale data), and U and V are the blue and red chrominance (color) channels respectively. Since the human visual system perceives luminance information much better than color data, the U and V channels are typically sub-sampled by an integer factor, normally 2, to improve compression. In this case, in the original pixel domain the image is shrunk to half its original size, and then DCT transformed. When decoding, the inverse transform is applied and the plane is expanded by twice its size before merging the three channels to reconstruct the original image. Because of the subsampling, there may be up to four Y channel blocks that correspond to the same region of an image covered by one U and V block. In this case, the visual importance I -
- max {all corresponding I
_{i }values from the Y channel}.
- max {all corresponding I
Referring to More particularly, values of the quantization matrix Q are calculated by first forming the sum of the product of the visual importance I In block Patent Citations
Non-Patent Citations
Referenced by
Classifications
Legal Events
Rotate |