Abstract:
Offered by the present invention is an image decompression and half-toning system and methodology which operate in stages to select portions, but not the entirety, of the relevant image data file that is to be processed. With respect to each handled portion, practice of the invention involves performing first an appropriate decompression function, next, a half-toning function, and then, a buffer-storing function.

Description:
CROSS REFERENCE TO RELATED APPLICATION  
       [0001]     This application claims priority to U.S. Provisional Patent Application Ser. No. 60/500,402 covering an invention entitled “Staged Full-Image Decompressing and Half-Toning By Less than Full-Image Data-File Stages”, filed Sep. 5, 2003. The inventorship is the same in that provisional application as it is in this application, and the entirety of that provisional patent application is hereby incorporated herein by reference. 
     
    
     BACKGROUND AND SUMMARY OF THE INVENTION  
       [0002]     The present invention relates to a unique system and methodology for decompressing and half-toning an image data file utilizing an approach in which decompressing and half-toning activities take place in stages, each of which involves image processing in “units” defined generally by being less than the whole of the relevant, full-image data file.  
         [0003]     According to practice of this invention, an image data file, such as a compressed image data file, is treated in stages which involve less than the full content of the file, such as on a line-by-line basis, or a several-line by several-line basis. In each of these stages, the invention (a) first performs, with respect to yet un-decompressed image data, a decompression function, (b) next performs any image-line (or row) resizing which may be necessary, (c) next performs a half-toning function regarding what has just been decompressed, and (d) then performs a buffer-storage function relative to the completed, just decompressed and half-toned partial result, until all of the subject data in an image file has been handled.  
         [0004]     The various features and advantages of the invention will become more fully apparent as the description which now follows is read in conjunction with the accompanying drawings. 
     
    
     DESCRIPTION OF THE DRAWINGS  
       [0005]      FIG. 1  is a simplified block/schematic diagram illustrating the structure and methodology of the present invention.  
         [0006]      FIG. 2  is a more detailed block/schematic diagram further illustrating the structure and methodology of what is shown in  FIG. 1 . 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0007]     Turning now to the drawings, and referring first of all to  FIG. 1 , indicated generally at  10  herein are the structure and methodology, in their preferred and best-mode forms, of the present invention effectively engaged in an illustrative practice of the invention. At  12  in  FIG. 1  is a document which is to be “handled”, including an image, shown in dash-dot lines at  14 , which can be described as being made up of plural lines of pixels, such as the four lines shown at  14   a ,  14   b ,  14   c ,  14   d . Line  14   a  is illustrated isolated from other lines in image  14 . Lines  14   b ,  14   c ,  14   d  are illustrated as vertically next-adjacent lines in image  14 .  
         [0008]     By any suitable technique, and utilizing any appropriate compression algorithm, image  14  has been compressed into a compressed image file which is represented by block  16  in  FIG. 1 . Shown at  18  is a “Decompress and Halftone” block, a block  20  which is labeled “Increment Output Row and Store”, and an “Output”, or “Exit”, block  22 . It is essentially within blocks  18 ,  20  that the structure, and the implementation, of, the present invention exist and take place, respectively. Block  20  is also referred to herein as storing structure.  
         [0009]     As will be more fully elaborated, block  18  processes the compressed image file represented by block  16  by dealing with less that the entirety of the image file in different successive stages of processing. A preferred manner of practicing the invention involves addressing, within file  16 , “staged” portions of that file that preferably take the form either of single lines (rows), or of several vertically contiguous lines (rows) of pixels.  
         [0010]     With regard to a single line, or row, such as row  14 , block  18  processes this, in accordance with the invention, as a row singularity. With regard to vertically contiguous rows, or lines, such as those indicated at  14   b ,  14   c ,  14   d , block  18  effectively deals with these as a unit. Such a “unit” might typically take the form of vertically contiguous rows wherein vertically next-adjacent pixels are alike. Under no circumstance, however, does block  18  deal with the entirety of the image file, such as that represented by block  16 .  
         [0011]     Within block  18  decompression and half-toning, and if desired any resizing, etc., are performed, and in each stage of processing, or rather at the conclusion of each such stage, the decompressed, resized (if applicable), and half-toned partial result is stored in a buffer which can be viewed as being within block  20  in  FIG. 1 . When the entirety of image file  16  has been processed by staged decompression of portions of this image file, followed by staged half-toning of those decompressed portions, a final decompressed and half-toned output image is made available via block  22 .  
         [0012]      FIG. 2  in the drawings elaborates the process of the invention which has just been generally described with respect to  FIG. 1 . Thus, what can be seen in  FIG. 2  is that included within block  18  in  FIG. 1  are a “Compute Input Row Index” block  24 , and a Yes/No “New Row?” inquiry block  26 . Blocks  24 ,  26  are referred to herein collectively as selecting structure. The respective Yes and No output answers from block  26  are presented, respectively, either to a block  28  labeled “Decompress Next Row”, or to a block  30  labeled “Copy Previous Row”. Block  28  is also referred to herein as decompressing structure. An output from block  28  is fed to a block  32  which is labeled “Resize Row”, and which is also referred to herein as resizing structure, wherein any row (or line) resizing which may be required is appropriately performed. Associated with each of blocks  28 ,  32  is a conventional data-row buffer (not specifically shown) wherein a row of data processed by the particular block may be temporarily stored. Output from block  32  is supplied to a block  34  which is labeled “Halftone Row”. Block  34  is also referred to herein as half-toning structure. Output from block  34  is fed to previously mentioned block  20 . With respect to information dealt with by block  20 , there is provided another Yes/No inquiry block  36  which is labeled “More Rows?”.  
         [0013]     In the practice of this invention, block  24  performs a computation indexing with respect to an input row, or plural input rows, that are to be processed. If, as determined by block  26 , there is a new, single row (or plural rows) to process, decompression of that row, or rows, takes place in block  28  utilizing any appropriate decompression algorithm. The output from block  28  is then subjected to any called-for resizing, etc., in block  32 , and the output from block  32  is then half-toned in block  34 , with the resulting partial result then stored within the buffer mentioned earlier within block  20 . If there are more rows to process, as determined by block  36 , the process just described essentially repeats itself. Had the answer to the question posed by block  26  been No, then control would have been handed to block  30  whose functionality is clearly described by its labeling in  FIG. 2 . More specifically, block  30  looks to the data row which is then temporarily stored in the data-row buffer associated with block  32 , and sends this row to block  34  for half-toning.  
         [0014]     The architecture of an algorithm which may successfully be employed in this just-described process is as follows:  
                                                                                                                                   while (Number of Scan lines &gt;= 0)                 if (Source Line == Previous Source Line)                Re-halftone previous line;                 else                read jpeg scan lines;           Resize Line;           Convert to Printer K;           Halftone Line;           Previous Source Line = Source Line;                 end if            Target Index += Target Stride;           Source Line += └Source Height / Target Height┘            E += modulo[Source Height / Target Height];            if (E &gt;= Target Height)                E −= Target Height;           Source Line += Source Stride;                end if                end while                      
 
         [0015]     In this manner, an entire image, such as image  14 , is processed on the basis of less than whole-file units selected from the related compressed image file. Processing takes place in stages, with such selected data units being first decompressed, resized if necessary, and then half-toned and stored in a buffer, until the entire image has been dealt with. The process thus followed by practice of the invention is both speedy and efficient.  
         [0016]     Accordingly, while a preferred embodiment and certain manners of practicing the invention have been described herein, it is appreciated that other variations and modifications may be made without departing from the spirit of the invention.