Compression factor adjustment to facilitate image display

Abstract: Most output display devices such as printers and displays require certain minimum timings for delivery of data to be displayed. The use of compressed image stores as input to these displays requires that the image be decompressed within the minimum time limits as required by the display. The present invention discloses an effective method for ensuring that these minimum timings are met through the division of the image into bands (B1,B2,..Bn) and the recompression of those bands that fail to meet the minimum timing requirements of the output display device (7).

Description: The present invention relates to the display of compressed images on a synchronous output device such as a colour computer display and/or colour printers, and, in particular, to the display of colour images on a raster colour display apparatus. Background Art Some attributes of the prior art will now be discussed with reference to Fig. 1 and Fig. 2 in which: Fig. 1 illustrates a first example decompression method for displaying a compressed image., and Fig. 2 illustrates a second example decompression method for displaying a compressed image. Fig. 1 illustrates a compressed image memory 1 that holds a compressed image which is decompressed by a decompression apparatus 2 in a pipeline fashion with the output being forwarded for display on a display device 3. Often the display device has certain display requirements, such as, for example, each pixel of a given line having to be forwarded to the display device 3 within a minimum time period for the display to function properly. For example, such is the case in rasterised displays. If the decompression of a particular portion of the compressed image takes longer than the maximum time period for the forwarding to the display device 3, then the compressed image will not be able to be displayed according to the method used in Fig. 1 as it will not be decompressed in time. In a display device 3 which requires synchronous input of uncompressed data it is necessary to maintain a consistent output data rate from the decompression process. It has been found that if the volume of compressed data is too large, then it is not possible to successfully decompress all the data at the data rate required for real time operation. Thus, the synchronous nature of the system cannot be maintained and the image cannot be successfully displayed. Referring now to Fig. 2 there is shown a second example decompression method for displaying a compressed image. This method uses a batch arrangement designed to overcome the problems of the first method by decompressing, using a decompression apparatus 5, a compressed image stored in a compressed image memory 4, and storing the decompressed image in a decompressed image store 6, which can then be forwarded to a display device 7 within the time requirements. However, this method fails to use the advantages of a compressed frame store as the entire image must be decompressed first and a large storage means is required to store the decompressed image before it is forwarded to the display device 7. The need for such a large storage means often results in an undesirable and significant increase in expense of a corresponding computer graphics system using such an arrangement. There are known arrangements for decompressing and then recompressing images at a higher compression ratio, so that a desired size of the compressed image data can be attained. Such an arrangement is described e.g. in EP-A-0 487 282. However, in these techniques recompression is performed in dependance of the size of the whole image (or of a sum of input image sizes) as compared to said desired over all image size. Thus the problem therein considered is memory size rather than real time requirements, as in the present invention. Summary of the Invention It is an object of the present invention to provide a means for decompressing a compressed image wherein the compressed image will always be decompressed within the real time requirements for the display on a display device. In accordance with a first aspect of the present invention, there is provided a method for compressing image data as set out in claim 1. In accordance with a second aspect of the present invention, there is provided apparatus for compressing image data as set out in claim 7. Preferably, said first predetermined number is chosen to be a proportion of the total number of bands in the image. Brief Description of the Drawings A preferred embodiment of the present invention will now be described with reference to the remaining drawings in which: Fig. 3 illustrates an image made up of a number of bands. Fig. 4 illustrates the same image as FIG. 3 made up of compressed bands. Fig. 5 illustrates a 3x3 convolution matix used in the preferred embodiment. Fig. 6 illustrates an example decompressed band., and Figs. 7 to 10 are flowcharts which illustrate the method used in the preferred embodiment. Detailed Description of the Preferred Embodiment The preferred method of compression of the image is the compression method as devised by the CCITT/ISO Joint Photographic Expert's Group (JPEG) based on the Discrete Cosine Transform and Huffman encoding processes and published in ISO/IEC JTC1/SC2/WG8 JPEG Technical Specification Rev 5 January 16, 1990. One implementation of a JPEG processor system has been implemented in silicon by C-Cube Microsystems as the CL550B device. The JPEG method allows the size of the compressed data relative to the uncompressed data to be selected (the compression ratio) and implementations of the JPEG algorithm such as the CL550B require a finite time to decompress a compressed image that has been compressed using the JPEG method. Referring now to Fig. 3 and Fig. 4 there is shown an input image 8 (Fig. 3) and its corresponding compressed image 9 (Fig. 4). For the purposes of the preferred embodiment the JPEG compressed image 9 is organized in bands CB1, CB2, CB3... CBn, corresponding to fixed size image bands B1, B2, B3,... Bn in the input image 8. The bands can, for example, contain eight scanlines 13 of image data as in the standard JPEG algorithm and a compressed image is comprised of a large number of compressed bands. The situation arises that some of these bands may not successfully decompress at the synchronous rate required. Firstly a determination of those bands of a current image which are bad must be made. A band is considered "bad" if the time taken for it to be decompressed is greater than some predetermined time, that time being the maximum time required to get a band ready to send to a display device, such as a colour printer or video display. Preferably, if a band has been previously decompressed, the time required to decompress the band is stored with the band itself or in a separate table of all the band decompression times for a current image. If however, there is no timing information available for some or all bands, a test-print operation can be performed in order to determine the band decompression timings. If the number of bad bands requiring fixing is relatively low, for example less then say 5%, each bad band can be altered so that its decompression time is less than the predetermined time. One method of reducing the decompression time without substantially altering the original bad band is to reduce the amount of high frequency content in the bad band data. This can be achieved by blurring the luminance information, thereby improving the compressiblity of the current image. This can be done using a pixel averaging technique such as convolution over a group of pixels. As the JPEG compressed bad band data cannot be manipulated directly, it is necessary to decompress the JPEG bad band data, perform the convolution operation, and then recompress the data. The overall effect of this is blurring of the image in the bad bands. In the preferred embodiment, image data has the high frequency content of its luminance component reduced by pixel averaging over a certain area. Referring now to Fig. 5 there is shown a 3x3 convolution matrix 10 used in the preferred embodiment. The convolution matrix 10 consists of a current pixel position containing the value eight (8) and neighbouring pixel elements containing the value one (1). Referring now to Fig. 6 there is shown an example of a decompressed band 11. When the convolution matrix 10 of Fig. 5 is applied to the decompressed band 11, each pixel 12 is averaged by multiplying itself by 8 and adding all its neighbours to the result before dividing the new result by 16 and storing it back in the current decompressed band. This particular convolution process has been designed to operate highly efficiently on a binary based digital processor. If a substantial number of the bands of a current image are bad bands (say greater than 5%), then the entire image can be decompressed and recompressed at a higher compression ratio, which results in a lowering of the quality of the overall image, but an advantageous decrease in decompression time. The decision to recompress the entire image can be made to coincide with situations where the full recompression process will take less time than the blurring of a small number of bad bands in the input image. A higher compression ratio results in a decrease in the decompression time for each given band of the image, thereby reducing the likelihood of the occurrence of bad bands. Once the image has been recompressed, the process of location of bad bands or further recompression can be applied repeatedly to the current image until a final compressed image is obtained which meets those real-time printing requirements that may be required. It should be noted that the above process of blurring and recompression are destructive operations in that the image is left permanently altered after a printing or display operation that has had to alter the image. Hence, the saving of the current image (or rendering onto it) after such a print will be saving (or rendering onto) an altered image. Appendix A shows a pseudo code implementation of the recompression technique of the preferred embodiment for implementation on a computer system. The method disclosed can be implemented on any computer system configured with a display device having certain minimum synchronous display rate requirements as elucidated above. Referring now to Figs. 7 to 10, there is shown flowcharts of the pseudo-code of Appendix A. Fig. 7 shows the overall main program "Ensure Current Image Printable". After initialization of variables 20, a procedure Get Maximum Decompress Time 21 is called to determine the number of "Bad Bands" which cannot be decompressed in time. If the number of bad bands exceeds a predetermined number 22 the entire image is recompressed 23 at a higher compression ratio. Otherwise individual bad bands are blurred 24 to reduce their compression time. The program then enters a return loop 25 to again determine if there are any remaining bad bands. Referring now to Fig. 8, there is shown the procedure Get Maximum Decompress Time 21 of Fig. 7 in more detail. This procedure first performs a test print 26 for all bands for which decompression timings are not available and then, for all bands in the image 27, if the decompression time of the band exceeds a threshold, the number of bad bands (initially set to zero) is incremented. Referring now to Fig. 9, there is shown the procedure Blur Bad Bands 24 of Fig. 7. After initialization, of the variables 29, each band in the image 30 is checked 31 to determine if it's decompression time exceeds a predetermined threshold. If this is the case then the band is blurred. If the blurring is unsuccessful, the blur band procedure sets unsuccessful blurring to true (thereby causing the image to be recompressed), and exits. Referring now to Fig.10, there is shown the procedure Blur Band 32 of Fig. 9 in more detail. The blurring of a band involves the decompression of the band 34, it's convolution of the decompressed band with a convolution matrix previously described 35, and it's recompression 36. The foregoing describes only one embodiment of the present invention, and modifications, obvious to those skilled in the art, can be made thereto without departing from the scope of the present invention as set out in the appended claims. APPENDIX A The following paragraphs set out a pseudo code representation of the preferred embodiment. The main program is set out under the heading 'Ensure Current Image Printable'. This program calls three sub-programs being 'Blur Bad Bands', 'Get Maximum Decompress Time' and 'Blur Band'. These are set out under separate headings. Ensure Current Image Printable Given a band-decompress-time threshold, ensure that all those bands in the current image are printable. This means to look at the decompress times (if they exist) and ensure they are less than or equal to the band-decompress-time given. The current image is backed up automatically to make error-recovery easier, but after successful completion the backup is thrown away. Thus any change is permanent. (1) Note that if the current image does not currently have a defined quality value (eg, we've loaded it from an external file) then it is required to guess one based on, say, the Q factor. If the quality is already zero it is required to return an error "cannot print even at zero quality" (2) The 5% value is a config file parameter. Blur Bad Bands Given a band decompress timing threshold, blur the content of any band that has a decompress timing greater than the nominated threshold. If any band after blurring *still* has bad decompress timing, report this to our caller as a setting of "need to recompress" along with a new quality Get Maximum Decompress Time Given a band decompress time threshold, return the number of bands within the current image that exceed the threshold and what the maximum decompress timing is. All bands should be fixed already (i.e., decompress to the correct current image height). If any band does not have decompress timing info, it will be decompressed to get it. It is assumed that a blank band will never exceed any decompress timing threshold. Blur Band Given a band number and a band comprising an uncompressed band buffer, decompress the band, blur it, and then compress it back into the current image. This is performed before a print operation on bad bands. The compress is synchronised so that the decompress time for the band is reported to our caller.

Claims: A method for compressing image data, the method comprising the steps of: a) dividing the image data into a plurality of bands (B1-Bn), characterised by : b) compressing each of said bands (CB1-CBn) using a first compression factor; c) determining (21) those compressed ones of said bands that cannot be decompressed within a first predetermined time and designating them as invalid bands; and d) compressing (23,24) each of the plurality of bands of said image data such that each compressed band can be decompressed in a time interval less than said first predetermined time. A method according to claim 1, characterised by : e) the compressing in step d) being performed by compressing (23) each of the plurality of bands of said image data with a second compression factor. A method according to claim 1, characterised by : f) if the number of invalid bands determined in step c) is less than a first predetermined number, the compressing in step d) being preceded by filtering (35) the image data of each said invalid band and then step d) being performed by compressing (36) each said filtered band with said first compression factor, otherwise g) the compressing in step d) being performed by compressing (23) each of the plurality of bands of said image data with the second compression factor. A method according to claim 3, characterised in that after step g) the method comprises the further step of: h) applying step c) to the compressed image bands. A method according to claim 3 or 4, characterised in that said first predetermined number is chosen to be a proportion of the total number of bands in the image data. A method according to any one of claims 3 to 5, characterised in that said filtering (35) includes convolution of an invalid band with a predetermined convolution matrix (10). Apparatus for compressing image data, said apparatus comprising: first means for dividing the image data into a plurality of bands (B1-Bn), characterised by : second means for compressing each of said bands (CB1-CBn) using a first compression factor; third means for determining (21) those compressed ones of said bands that cannot be decompressed within a first predetermined time and for designating them as invalid bands; and fourth means for compressing (23,24) each of the plurality of bands of said image data such that each compressed band can be decompressed in a time interval less than said first predetermined time. Apparatus according to claim 7, characterised in that : said fourth means compresses (23) each of the plurality of bands of said image data with a second compression factor. Apparatus according to claim 7, characterised in that : said fourth means, if the number of invalid bands determined by said third means is less than a first predetermined number, is configured to filter (35) the image data of each said invalid band prior to compressing (36) each said filtered band with said first compression factor, or otherwise being configured to compress (23) each of the plurality of bands of said image data with the second compression factor. Apparatus according to claim 9, characterised in that said fourth means is configured, after compressing each of the plurality of bands of said image data with said second compression factor; to apply each of the compressed bands to the third means. Apparatus according to any one of claims 9 or 10, characterised in that said first predetermined number is chosen to be a proportion of the total number of bands in the image data. Apparatus according to any one of claims 9 to 11, characterised in that said filtering means (35) includes means for convolution of an invalid band with a predetermined convolution matrix (10).

Inventors: LONG TIMOTHY, LONG,TIMOTHY
Applicants: CANON KK, CANON KABUSHIKI KAISHA
Application year: 1994
Main classification: G06T9
IPC codes: G06T5, H04N7, G06T9, H04N1