WO1993012610A1 - Method and apparatus for compression of images - Google Patents

Method and apparatus for compression of images Download PDF

Info

Publication number
WO1993012610A1
WO1993012610A1 PCT/US1992/010172 US9210172W WO9312610A1 WO 1993012610 A1 WO1993012610 A1 WO 1993012610A1 US 9210172 W US9210172 W US 9210172W WO 9312610 A1 WO9312610 A1 WO 9312610A1
Authority
WO
WIPO (PCT)
Prior art keywords
template
templates
representation
image
symbols
Prior art date
Application number
PCT/US1992/010172
Other languages
French (fr)
Inventor
Peter B. Mark
Stuart M. Shieber
Original Assignee
Cartesian Products, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cartesian Products, Inc. filed Critical Cartesian Products, Inc.
Priority to KR1019940702071A priority Critical patent/KR950700662A/en
Priority to EP93900650A priority patent/EP0617870A1/en
Priority to JP5510925A priority patent/JPH07505024A/en
Publication of WO1993012610A1 publication Critical patent/WO1993012610A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • H04N1/411Bandwidth or redundancy reduction for the transmission or storage or reproduction of two-tone pictures, e.g. black and white pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • H04N1/411Bandwidth or redundancy reduction for the transmission or storage or reproduction of two-tone pictures, e.g. black and white pictures
    • H04N1/4115Bandwidth or redundancy reduction for the transmission or storage or reproduction of two-tone pictures, e.g. black and white pictures involving the recognition of specific patterns, e.g. by symbol matching

Definitions

  • This invention relates to compression of images, in particular, to compression methods employing symbol matching.
  • CCITT-3 One current standard method for binary image compression, in widespread use as the standard for facsimile transmission, is the CCITT-3 standard.
  • This is a lossless binary image compression algorithm based on Huffman encoding of a run-length encoding of the image.
  • the CCITT-3 standard typically compresses an image by an order of magnitude by taking into account first-order statistical regularities in the lengths of runs.
  • a 300 DPI image may be compressed from a megabyte to 100 kilobytes.
  • Symbol matching can be used to increase compression ratios for binary images which consist primarily of machine-printed text. Such text is characterized by many small regions of connected black pixels, representing characters, surrounded by white pixels. A typical document might use only a few hundred different characters representing the letters of the alphabet in upper- and lowercase in a few different type faces (e.g., Times and Helvetica ) and type styles (e.g., plain, bold, italics).
  • type faces e.g., Times and Helvetica
  • type styles e.g., plain, bold, italics.
  • similar characters are grouped, and their description as an array of black pixels is represented only once as a template.
  • the entire binary image is represented as a sequence of templates along with references to their positions within the image. In this way, the representation contains far fewer bits than the original image.
  • the amount of compression that can be achieved using symbol matching depends on how many characters are matched, how the templates are represented, and how the character positions are represented.
  • the use of symbol matching in binary image compression dates back to at least 1974 (see “A means for achieving a high degree of compaction on scan-digitized-printed text," by R.N. Ascher and G. Nagy, in IEEE Transactions on Computers, 23(11):1174-1179, Nov. 1974). Since then, a variety of compression systems employing symbol matching have been proposed. (See “Combined symbol matching facsimile data compression system,” by W.K- Pratt et al., in Proceedings of the IEEE, 68(7):786-796, July 1980, and U.S. Patent Nos. 4,091,424, 4,288,782, 4,410,916, 4,463,386, 4,499,499, and 4,606,069.)
  • the present invention is a compression method employing a substantially improved matching process, as well as other improved features which increase the compression ratio.
  • the invention includes a variety of improved features for methods for com ⁇ pressing Images which include the basic steps of identifying symbols in the image, asso ⁇ ciating with each identified symbol an indication of its location in the image, comparing each identified symbol to templates from a library of templates to match each identified symbol to a template, and generating a compressed representation of the image including a representation of each template, and a reference to a location and to a template for each symbol in the image.
  • the images will typically start as binary pixel-array images, but the methods of the invention are also suitable for compressing images originating in other formats.
  • the invention features, as a first step, precompressing the image.
  • precompressing the image For example, for images that start as binary pixel-array images, run-length encoding may be used.
  • run-length encoding is used in the precompression step, the symbols may be identified by associating runs of black pixels in adjacent rows which have at least one black pixel in the same column or in the same or adjacent columns.
  • the invention features generating the library from scratch during image compression by storing in the library each symbol for which no matching template is found as a new template, and defining each template by a representation determined by a plurality of the symbols which match it.
  • each template may be defined by a unique spatial distribution of black pixels determined by the distributions of black pixels of a plurality of the symbols which match the template. The distribution may be determined, for example, by averaging the distributions of black pixels of the symbols or from starting with one symbol which matches the template and changing a pixel in this symbol only if a predetermined fraction of the pixels in the same location in the other symbols matching the template disagree with it.
  • the comparing step features identifying error locations, performing a plurality of tests on the error locations and on other global features of the symbol and the template, and declaring a match between a symbol and a template only if all of at least one of a set of predetermined groups of tests are passed.
  • the error locations may be error pixel locations which have a black pixel in only the symbol or the template, but not both.
  • the error pixel locations may be run- length encoded.
  • One appropriate test is if the distance between each error pixel location and the nearest black pixel in the template or symbol having a white pixel at the error pixel location is less than a predetermined value.
  • Another test is if all contiguous groups of error pixel locations are smaller than predetermined sizes and shapes. Yet another test is if the difference in heights between a template and a symbol is less than a predetermined value, and similarly for the difference in widths. Yet another test is if the ratio of the number of black pixels in the symbol to the number of black pixels in the template is within a predetermined range. Yet another test is if the ratio of the number of error pixel locations to the minimum of the number of black pixels in the template and the number of black pixels in the symbol is less than a predetermined value. Yet another test is if the ratio of the number of error pixel locations to the number of black pixels adjacent to a white pixel in the template is less than a predetermined value.
  • the invention features representing each template by the boundary of the spatial distibution of black pixels for the template.
  • the repre ⁇ sentation of each template includes a reference to a frame template for defining an outer boundary of the template and a list of hole templates with associated positions within the frame template for defining any inner boundaries of the template.
  • the frame templates and hole templates may be represented by representations of the boundary of the frame templates and hole templates.
  • the invention features indexing the templates in the library accord ⁇ ing to template features.
  • the step of comparing proceeds according to the index. In this way, those templates more likely, based on features, to match a symbol are compared to the symbol before templates less likely to match and templates whose features preclude a match are not considered.
  • the invention features reducing the resolution of the template rep ⁇ resentations to achieve further compression.
  • the compressed representation of the image includes a template stream, a template reference stream, and row and column position streams. Other divisions of the information into data streams are possible. Preferably at least one of these streams is further compressed.
  • any template including a region smaller than a predeter ⁇ mined size between two regions larger than another predetermined size is split into more than one template. Further, each template formed by a split is preferably compared to other templates and merged with any other template it matches. In preferred embodi ⁇ ments, symbols smaller than a predetermined size are eliminated.
  • the reference to a location for each symbol in the binary image is represented by the difference between the actual offset between the given symbol and a preceding symbol and a standard offset for the symbol pair defined by the given symbol and the preceding symbol.
  • the standard offset may be the offset last seen for the symbol pair or the most frequently seen offset for the symbol pair.
  • the difference between the standard offset and the actual offset may be determined at a lower resolution than the resolution of the binary image.
  • an approximation of the reading order of the symbols is determined and the compressed representation of the binary image is generated according to the reading order.
  • the reading order may be determined by locating symbols on a single line and sorting the symbols.
  • the symbols occupying a line may be determined by using a beam to search along the line, the size of the beam varying according to the sizes of one or more of the adjacent symbols. Vertical bounds on the size of the beam may be imposed.
  • the invention is an image transmission system (such as a facsimile system), an image enhancement system, or an image storage system operating according to the image compression methods described above.
  • Compression according to the invention can achieve, for example, compression ratios greater than 25 times that of CCITT-3 for an 8-page 300 DPI document. Each page is thus compressed from a megabyte of raw image to 4 kilobytes by the method of the invention. It is important to note that the compression ratio will increase with the length of the document since a single template library is used throughout. Thus, the invention has particular advantages for image transmission or storage systems dealing with large binary images.
  • Fig. 1 is a diagram illustrating how two similar characters may not be pixel-identical.
  • Fig. 2 is a diagram illustrating how two distinct characters may have only small pixel differences.
  • Fig. 3 is a block diagram of an image storage system employing image compression according to the method of the invention.
  • Fig. 4 is a block diagram of an image transmission system employing image compres ⁇ sion according to the method of the invention.
  • Fig. 5 is a flow chart summarizing the steps performed by an image compression system according to the invention.
  • Fig. 6 is a diagram demonstrating a method of segmenting a run-length encoded binary image into symbols.
  • Fig. 7 is a diagram illustrating configurations of error pixels used to infer shifts for the shift test.
  • Fig. 8 is a diagram illustrating the improvement in symbol quality that can be achieved by composition of symbols into templates.
  • Fig. 9 is a diagram demonstrating a method of representing a symbol by tracing the edges of a pixel array image.
  • Fig. 10 is a diagram demonstrating a method of representing a symbol as a frame and at least one hole.
  • Fig. 11 is a diagram illustrating how a skew in the scanning process can make symbols appear on the same line even when they are not.
  • Fig. 12 is a diagram demonstrating a method for using a beam to scan for symbols in the same line to the left or right of a current symbol. Description of the Preferred Embodiment
  • a system for image storage using the compression method of the invention is illustrated in Fig. 3.
  • a processor 12 with storage memory 14 forms the heart of the syste 10.
  • the processor 12 includes at least one interface 16 for accepting representations of images.
  • This input interface 16 may be, for example, a connection to a computer which generates images, or a connection to a scanning device used to capture a representation of an image from a hardcopy of the image.
  • the processor 12 performs the steps of the image compression method of the invention, discussed further below.
  • the compressed images are stored in the storage memory 14.
  • the processor 12 also decompresses the stored images and provides reconstructed representations to at least one interface 18.
  • the output interface 18 may be, for example, a connection to a computer used to process and/or display the image, or a connection to a printer for providing a hardcopy of the image.
  • the output interface 18 can display both images received directly from the input interface 16 and reconstructed images called up from storage memory 14.
  • the storage system illustrated in Fig. 3 can also be considered an image enhancement system when the image compression system of the invention is embodied in processor 12.
  • FIG. 4 A system for image transmission using the compression method of the invention is illustrated in Fig. 4.
  • a typical example of an image transmission system is a conventional facsimile transmission system.
  • the system 20 includes a processor 22 with memory which accepts representations of images via at least one interface 24.
  • the input interface 24 is typically a connection to a scanning device used to capture a representation of an image from a hardcopy of the image.
  • the processor 22 compresses the input image according to the method of the invention, discussed further below.
  • the processor 22 further includes an interface 26 for transmitting the compressed image.
  • the output interface 26 is typically a connection to a tele ⁇ phone line via a modem.
  • another processor 28 with memory includes an interface 30 for accepting the transmitted compressed representation of the image.
  • the input interface 30 is again typically a connection to a telephone line.
  • the processor 28 decompresses the input compressed image according to the method of the invention, and provides a reconstructed representation of the image to at least one interface 32.
  • the output interface 32 is typically a connection to a printer.
  • An image compression system accepts a representation of an image and segments the image into symbols. These symbols may represent characters (e.g., letters, numbers, etc.) or graphics (e.g., logos, charts, etc.)
  • symbols may represent characters (e.g., letters, numbers, etc.) or graphics (e.g., logos, charts, etc.)
  • Each identified symbol is matched against a library of templates.
  • the template library is generated from scratch as new symbols are identified.
  • Each identified symbol is matched against templates created so far, and it is added to a matching template group if one exists. If it matches none of them, it forms a new template group and serves as the template for that group so that later symbols can be matched to it.
  • a representation of each template is composed, preferably based on features of many, if not all, of the members of the template group.
  • a representation of the location (typically by row and column) of each symbol in the image and the symbol ' s template group is built.
  • typically four streams of information — a template stream, a template code stream, a row position stream, and a column position stream — constitute the compressed representation of the image.
  • Other divisions of the information into streams is also possible.
  • the streams of information are each preferably further compressed.
  • Decompression of an image compressed according to the methods of the invention is straightforward. First, the streams of data are decompressed if they were further com ⁇ pressed as a final step of the compression process. Then the template library is read from the template stream. Next, as the template code stream is read, the symbol position for each symbol in the template code stream is determined from the row and column positions streams, and a representation of the template is overlayed at the determined position.
  • FIG. 5 A flowchart of the steps for image compression according to the preferred embodiment of the invention is provided in Fig. 5. The steps of the method will now be taken up in turn.
  • images are provided as bi ⁇ nary pixel arrays, with connected regions of black pixels representing characters, graphics, etc.
  • the pixel array may be provided, for example, by a computer storing the image in such a form, or by a scanning device which converts a hardcopy of a binary image into a pixel array.
  • Prior binary image compression systems operate di ⁇ rectly on the pixel array.
  • a megabyte of memory is required to store the pixel array, and millions of operations may be required to scan this memory.
  • the pixel array is precompressed before the symbol matching process is commenced. This saves significant amounts of storage space as well as valuable processing time.
  • the step of precompres ⁇ sion makes the entire compression process more efficient in space and time, an important advantage for commercial products.
  • a standard technique for compressing a pixel array representation of a binary image is to run-length encode it. This turns out to be a very suitable way to precompress a pixel array for the purposes of the invention.
  • a technique for segmenting a run-length encoded representation of a binary image into symbols is presented in the next section.
  • Nariants of run-length encoding may be used to precompress the binary image.
  • a pixel array representation may be compressed to a y-axis representation.
  • each non-empty row in the image (of constant y, hence the name) is encoded as a list containing, in order, the row index, and the indices of the first x coordinate at which a black pixel region is encountered, the x coordinate at which the region is exited, the second x coordinate at which a black pixel region is entered, the x coordinate at which the region is exited, and so forth.
  • This representation can be efficiently generated by a raster scanning process, and is quite convenient for further compression by symbol matching.
  • a quadtree encodes binary images hierarchically. A square image is divided into four subregions corresponding to the northwest, northeast, southwest, and southeast quadrants. If all of the pixels in a quadrant are black, the cor ⁇ responding tree node is recorded as black; if all pixels are white, the node is recorded as white. Only if the quadrant contains both black and white pixels is further subdivision necessary. In this case, the quadrant is recorded as gray, and is further subdivided recur ⁇ sively. This representation is space-efficient for images with large continuous areas of black or white, such as text images. (For further information on quadtrees, see “The quadtree and related hierarchical data structures," by H. Samet, in Computer Surveys, 16:187-260. 1984.)
  • a binary image can be represented as a set of chain codes for each black pixel region in the image.
  • the chain code for a region consists of a starting point and a specification of a series of unit moves along the 4 or 8 compass directions that trace out the border.
  • First derivative of direction can be used to further compress the representation for sufficiently smooth regions. Since the chain code representation picks out connected regions, it is especially appropriate as an image representation on which to perform symbol matching.
  • the chain code representation can be used to calculate the area of a region, a procedure which is important in symbol matching. Furthermore, chain code representations of regions are particularly efficient for merging.
  • a mixed grid file see below
  • chain code initial representation can be efficiently converted to a pure chain code representation.
  • Grid files can be used to exploit the advantages of more than one compression system.
  • a grid file is made by breaking the binary image into a regular or non-regular rectangular grid in _ and y. Each rectangular section is then encoded by some other mechanism such as quadtrees or chain codes.
  • the grid can be chosen so as to maximize the efficiency ⁇ f the coding for different regions of the binary image.
  • the grid file An adaptible, symmetric, multikey file structure," by J. Nievergelt et al., in .A CM Transactions on Database Systems, 9:38-71 , 1984.
  • the step of precompressing the binary image from a pixel array represen ⁇ tation to a precompressed representation is not required in cases where the provider of the binary image has already performed such a compression, or where the provider of the binary image yields a compressed representation automatically (with no pixel array as an intermediate step). Furthermore, there may be cases where the binary image is provided in a representation compressed relative to a pixel array representation, but where conver ⁇ sion to another compressed representation would be preferable for the purposes of symbol matching. All such variants are within the scope of the invention.
  • each black run in the binary image is operated on in top-to-bottom, left-to-right order.
  • the region of the previous row directly above the current run is examined, and all of the runs that overlap that region are collected.
  • Each of these runs will have already been assigned to a symbol since they appear before the current run in the top-to-bottom order.
  • the current run is added to the symbol associated with the leftmost such overlapping run. and all of the runs associated with the other overlapping runs are reassociated with that symbol.
  • the reassociat ⁇ on can be done by a single pointer operation if the associations are appropriately represented.
  • the method of the invention is a voting scheme, where a plurality of tests are used for each symbol/template pair. Each test which is passed (indicating similarity between the symbol and template) contributes one vote to a sum of votes. In order for a match to be declared, a predetermined number of votes must be received. More generally, the tests can be grouped into one or more predetermined groups, and all tests within, at least one of the groups must be passed for a match to be declared. In one embodiment, the vote must be unanimous for a match to be declared.
  • Edge test 1 All error pixels must be within a fixed distance _- d - e of an edge.
  • Edge test 2 No block of error pixels may be larger than _ n by _ n square.
  • Edge test 3 The difference in heights of the symbol and the template must be less than or equal to a fixed bound d ⁇ i ze , and similarly for the widths.
  • Density test The ratio of the number of black pixels in the symbol to the number of black pixels in the template must be within the range 1 ⁇ i ent i ty
  • Error test 1 The ratio of error pixels to the minimum (or, equivalently, maximum) of the number of black pixels in the template and the number of black pixels in the symbol must be less than a bound -_i,.or-.o ⁇ -
  • Error test 2 The ratio of error pixels to black pixels occurring on an edge (i.e. adjacent to a white pixel) in the template or in the symbol must be less than a bound d-dg ⁇ .diitortion •
  • Shift test All inferred shifts of the symbol relative to the template must be consis ⁇ tent. Other tests are also possible.
  • Edge test 1 may be implemented, for example, by checking whether the distance between each error pixel location and the nearest black pixel in the template or symbol having a white pixel at the error pixel location is less than a predetermined value.
  • the inverse test could also be used, that is, the distance between each error pixel location and the nearest white pixel in the template or symbol having a black pixel at the error pixel location could be checked.
  • the shift test requires a method for inferring the presumed shift of the symbol relative to the template.
  • One method for inferring shift is to examine groups of error pixels of the same source, that is, which are all black pixels in the template or all black pixels in the symbol.
  • the overall map of error pixel locations can be divided into two separate maps of (1) error pixels that are black in the template (the template error map), and (2) error pixels that are black in the symbol (the symbol error map).
  • Contiguous groups of pixels in these various error maps can be presumed to have arisen from a shift of the symbol relative to the template. For instance, a vertical column of two error pixels in the template error map that are adjacent and to the right of black pixels in the template may be due to the symbol having shifted away from the error pixels toward the adjacent pixels.
  • Fig. 7a An example of this configuration is illustrated in Fig. 7a.
  • Another pattern of error pixels that can be used to infer shifts is a triangle of three contiguous error pixels of the same source. For example, if the three contiguous error pixels of such a configuration are found in the template error map, and the pixel location that falls within the two-by-two square that bounds the three error pixels is black in the template, a shift can be inferred away from the error pixels toward the adjacent pixel. If, on the other hand, the adjacent pixel is white in the template, a shift away from the adjacent pixel can be inferred. Converse inferred shifts can be inferred from such triangles of error pixels in the symbol error map. Examples of these configurations are illustrated in Fig. 7b-e. .
  • Edge tests 1 and 2 and Shift test look specifically at local configurations of pixels in the error maps (the overall, the template, and the symbol maps).
  • the use of categorical tests based on size, shape, orientation, and relation to adjacent pixels of local sets of error pixels is novel to this method.
  • the particular tests described here are used in the preferred embodiment, but all such tests are included within the scope of the invention.
  • the symbol and template In order to apply these tests to a symbol/ template pair, the symbol and template must be registered to each other, for example, by aligning two corners. Registrations that differ by one or more than one pixel are preferably also tested, requiring a plurality of potential registrations to be considered.
  • the various bounds specified in each test need not be fixed. Preferably they are varied as a function of the size of the symbols. This is because humans perceive symbol differences as being salient differentially with symbol size. In a small font, for instance, the difference of only a few percent in the number of pixels is significant, whereas at larger font sizes, that same percentage may not be perceived as significant.
  • the ability to use different bounds at different sizes can allow more aggressive matching at larger sizes without sacrificing distinctions at the smaller sizes.
  • the first symbol encountered in each template group serves as the examplar for that group.
  • several or all of the symbols are used to compose the template representation.
  • a template can be composed that appears "better” than any of the symbols from which it was formed.
  • the reconstructed binary image can actually be an improved image because similarity among the matched characters in the binary image is providing further information about the shapes of the symbols.
  • this method reduces high frequency error without sacrificing high frequency information in general. Because of this property, the method can be used as an image enhancement technique, as well as an image compression method.
  • FIG. 8 An example of the enhancement that can be expected is illustrated in Fig. 8, where a magnified image of the word "here” in its original form in a digitized image, and a magnified image of the same word in the reconstructed image, are presented. Note the improved quality of the characters, especially the character "r” , which was achieved by composition of a plurality of symbols into templates.
  • Template composition may be performed at many stages during the compression pro ⁇ cess.
  • the "averaging" is performed as an ongoing process as symbols are matched to templates in the library of templates. In this mode, the rep ⁇ resentations of the templates in the library continually change as symbols are matched to the template groups. This can ultimately decrease the number of templates stored in the library since templates will gradually come to resemble the average features of the symbols, resulting in more frequent matches.
  • the "averaging" is performed only after all symbols have been placed in template groups. In this mode, the first encountered symbol (typically) of any template group is used in the matching process. The averaging that occurs at the end of the process serves to provide an improved representation of the characteristics ⁇ f the symbols in the template group.
  • templates may be merged if the representation of the two templates match under the above criterion. Because of the averaging effect of the template composition, two templates may match even though the symbols that were matched with the two templates did not. Template merging can further decrease the number of templates that must be represented. According to one embodiment, templates can be generated for each page individually by matching, and then the templates from the several pages merged. Different matching criteria may be used for the first matching process within the page, and the second merging process across pages.
  • a library of templates is developed by augmenting an initial library with new templates as they are found.
  • the initial library may include prestored symbols (say those of especially frequent usage in a particular ap ⁇ plication) or may be empty. If prestored symbols are employed, it may not be necessary to augment the library. Furthermore, it may not be necessary to incorporate the repre ⁇ sentations of the templates corresponding to the prestored symbols into the compressed representation of the image, since these template representations may also be prestored in the apparatus performing the decompression (which may or may not be the same as the apparatus performing the compression).
  • the templates are preferably stored in the library in such a way that those templates likely to match a given symbol are accessed first.
  • templates are stored according to frequency of occurrence, so as to speed up the time taken to find a matching template.
  • an alternative storing scheme is used which has been shown to result in increased speed and efficiency.
  • the templates are stored in a hashed structure indexed by features of pertinence to the matching process, such as height, width, number of black pixels, etc.
  • At least two modes of operation are possible with this indexing scheme.
  • a given symbol is compared to templates until either a match is found or the templates are exhausted.
  • the templates are compared in an order determined by the indexing scheme so that those most likely to match are compared first.
  • the indexing scheme is used to rule out groups of templates, and the given symbol is not compared to templates whose indexed features would preclude a match.
  • the indexing scheme can also be used to adjust the ordering of the tests employed in the matching process to improve the speed with which matches are made.
  • the stored representations of the tem ⁇ plates are compressed.
  • Compressed representation of the templates may be used through ⁇ out the matching and template composition process, or, alternatively, the templates can be compressed after these processes are complete. This is particularly advantageous in image transmission systems where the template representations are to be transmitted.
  • Various compression techniques are appropriate.
  • the template may be CCITT-3 en ⁇ coded.
  • a run-length encoded representation may be further compressed by an adaptive method such as an adaptive Huffman code or a variant of Lempel-Ziv compression.
  • a change in representation can be used that takes advantage of the connectedness and vertical stability of typical characters. Rather than run-length encoding the pixels, the boundary of the character can be traced.
  • Fig. 9 shows one way this tracing of edges can be performed. In this figure, the leftmost edge of a pixel array representation of the letter "b" is traced from the first black pixel in the image. Note the regular structure of the trace. Most moves are "left 0 " . This regularity can allow for significant further compression.
  • the binary image representation can be decomposed into connected re ⁇ gions of the same color pixels.
  • the symbol can be decomposed into a "frame” and some "holes” in the frame by eliminating all black runs that occur between the leftmost and rightmost black runs in a single row.
  • Fig. 10 shows a pixel array representation of the letter "b" broken up into a frame and an inverted image of the holes (in this example there are two).
  • the latter image can itself be compressed recursively by treating it as a separate symbol and placing it in a template group.
  • the original image of the templates can then be repre ⁇ sented by a reference to a frame template and a list of hole templates with their associated positions in the frame.
  • the advantage of the frame and hole representation is that the structure of the char ⁇ acters is better represented, especially as concerns the shapes of their boundaries. Conse ⁇ quently, representing the templates by a trace of their boundaries (as described above) is even more effective. Error in scanning or printing text can cause neighboring characters to run together. By splitting such characters into their two parts, more redundancy can be exploited in compression, because the two parts may match with other characters, whereas the run- together pair is unlikely to. The splitting of run-together characters could be performed during the symbol identification step of the process whenever a single vertical run of a few (two. say) pixels connects the two halves of a symbol.
  • the splitting is performed on the templates after all symbols have been matched into template groups. After a template has been split into one or more components, each component is preferably compared to the other templates and merged with a matching template if one is found. Since templates preferably represent the "average" features of the symbols in the group, the run-together error will usually be averaged out. Thus, the reconstructed image will actually be improved by the reduction of run-together characters.
  • the two halves are preferably required to be of a sufficient size.
  • each half can be required to be of at least a certain height.
  • the bridge is preferably not deleted (although it may be averaged out in the template representation). Thus, even if symbols which actually have such a bridge are split, the bridge will appear when the image is reconstructed.
  • a reference to the template corresponding to each symbol and the position of each symbol in two dimensions must be encoded.
  • the representation of the template references and the symbol positions is preferably compressed.
  • the amount of compression will depend on the initial encoding of the template ref ⁇ erences and the symbol positions.
  • the ideal encoding situation for the case where most of the symbols are characters from a text is one where the symbol information is ordered in reading order, that is, the order in which a person would read the characters. This is because the characters and their positions, when viewed from this perspective, have the least entropy. For instance, the characters display redundancy due to the rules of spelling of the language, due to their positions, due to the standards for aligning characters on a line, due to kerning, and so forth.
  • an approximation of the reading order of the characters is reconstructed.
  • this task must be handled fully automatically, and in a way that makes a minimum number of assumptions about the image. For instance, it should not be assumed that the binary image represents text in English, or even that the Roman alphabet is used. On the other hand, perfect operation is not required, since small errors only affect the compression ratio, not the faithfulness of the reconstruction.
  • Reconstructing reading order is not a simple task for cases in which the original binary image representation was obtained by scanning an original which may be skewed (the typical situation in facsimile systems).
  • One solution to reconstructing reading order involves tracking the lines in the text. The method described here involves a two-step process. First, all characters in a line are located. Second, the characters are sorted by column position to place them in correct reading order.
  • the first step works as follows.
  • a first character on the page is found by "scanning " the stored representation of the binary image from top-to-bottom, left-to- right. This character may or may not be the first character in a line.
  • the image is then scanned backward character by character to find characters ostensibly on the same line as the first character, ultimately ending at the leftmost character of a line.
  • the image is then scanned forward again, and all characters on the line are collected.
  • the scanning steps must be carefully designed, so as not to be fooled by characters on other lines that appear horizontally aligned because of skew in the text lines of the image.
  • Fig. 11 provides an example of how skew in the text lines of an image can make characters appear as if they are on the same line when they are not.
  • characters composed of two symbols, such as "i” , "j” , ":” , and "%" should be grouped together on one line.
  • the preferred method of scanning starting from a current character works by looking to the left or right for a character having at least one run within a horizontal "beam" .
  • the beam used to scan for characters is illustrated in the example shown in Fig. 12. Note that in this example, the beam found the dot over the "i" .
  • the height of the beam is preferably initially the height of the first character located in the scanning process. It is widened whenever a taller character is scanned, so as to include the entire height of the taller character. When a shorter character is scanned, however, the beam is not shrunk to the new character's height, but preferably to a height computed by taking a weighted running average of the heights of the last several characters.
  • n is a parameter specifying the aggressiveness of the decay. If several characters fall within the beam, all are added to the current line. (They will be sorted into the correct order in a later step in which the characters are sorted by horizontal position.)
  • the beam is preferably limited in horizontal and vertical extent. It is never allowed to grow to a height greater than a certain number of pixels. Furthermore, characters horizontally farther than a certain number of pixels are preferably not included in the scan.
  • the regularity of positioning of text on a page is a potential source of further com ⁇ pression, in that the position of a character is quite predictable from the position of the previous character. In most cases, it will be vertically aligned at the bottom and sepa ⁇ rated from the previous character by a standard inter-character spacing. In some cases, because of kerning, for instance, or because the character is the dot over the "preceding " "i", or because the character is the first in a line, the inter-character spacing will vary.
  • the generally regular character spacing can be exploited by encoding not the absolute x and y positions of the characters but their offsets from the previous charac ⁇ ter, for example, the displacement from the lower right corner of the previous character to the lower left corner of the current character.
  • the first two sources of variance kerning and multi-symbol characters — can be handled by using as the default inter-character space the space between the last consecutive occurrences of the current characters (if they have occurred previously), or by encoding the most frequent value of the inter-character space for the pair (the mode value) and using the difference from the mode as the representation of the inter-character space.
  • the number of times that this default inter-character space can be used can be maximized by allowing near misses to be treated as hits.
  • One way to achieve this is to perform the check at a reduced resolution.
  • the error may propogate. If this is unacceptable, the near miss must cause the encoded position of the character to differ from the true position by only a small amount: a single pixel is appropriate.
  • the sequence of template codes can be further compressed due to variation in the frequency of occurrence of the various templates by Huffman coding, or, to exploit regu ⁇ larities in spelling, by Lempel-Ziv compression or similar methods.
  • the symbol position information can also be further compressed by such methods.
  • the template code or symbol position information can even be indicated in the compressed representation implicitly, rather than by explicit indexing into the template library and into coordinate positions, respectively.
  • the positions of characters matching each template can be given immediately following the template representation itself, thereby obviating the need for an explicit representation of template codes for those symbols as the associated template is indicated implicitly.
  • each of these streams can be further com ⁇ pressed by the disclosed techniques.
  • the method has been shown to achieve, for example, a compression ratio greater than 25 times that produced by CCITT-3 for an 8-page 300 DPI document.
  • Each page is thus compressed from a megabyte of raw image to 4 kilobytes by the method of the invention. It is important to note that since pages of a document are not treated separately, the compression ratio will increase with the length of the document.
  • grey-scale or color images might be compressed by classifying the pixels into a first type representing text and graphics and a second type representing background, applying the compression method to the patterns of pixels of the first type, and compressing the background using a different method.
  • text documents may be compressed even if printed on a non-white background, while retaining the background information.
  • decision as to whether a pixel is of the first or second type might not be based on its grey- scale value alone, but also on context or other information.
  • grey-scale information might be used to distinguish text from graphics and background so that the text can be compressed by the methods of this invention while the grey-scale graphics are separately compressed with possible half-toning, dithering, or other preliminary processing. (Certain of these possibilities hold for binary black-and-white images as well.)
  • Another method of use with non-binary images involves classifying pixels into symbols of like color, matching them based on shape alone, and storing for each symbol an indication of its associated template and its color.
  • Another method of use with non-binary images involves separating the image into bit planes and compressing some or all of these bit planes using the methods of the invention. Insofar as there is a corrolation between certain of the bit planes and dominant symbol- based patterns, this method can compress the images better than non-symbol-matching methods.
  • the methods of the invention can be used to generate non-binary images as well, even from binary originals, for example, by maintaining the templates as grey-scale images obtained by averaging, rather than voting, on the value of each pixel. This allows an anti-aliased representation of each symbol to be automatically developed, which would be especially useful in the invention's application as an image enhancement method.
  • the image need not be restricted to structuring in terms of evenly-spaced rows and columns.
  • the scanning process might have differing resolution in the x and y directions (as in standard facsimile images, which are scanned at 200 by 100 pixels, thereby leading to rectangular, rather than square pixels).
  • Other arrangements of pixels, based on arbitrary fixed or random plane tessellations are possible.

Abstract

An image compression method based on symbol matching is disclosed. Precompression of the image is performed prior to symbol matching to improve efficiency. A voting scheme is used in conjuction with a plurality of novel similarity tests to improve symbol matching accuracy. A template composition scheme achieves image enhancement. Other disclosed features provide further advantages. Apparatus for implementing the image compression method for image transmission, storage, and enhancement are included.

Description

Method and Apparatus for Compression of Images
Background of the Invention
This invention relates to compression of images, in particular, to compression methods employing symbol matching.
A standard 8.5 by 11 inch page, when scanned as a binary image at 300 dots per inch (DPI), comprises over 8,000,000 bits of information — about a megabyte. The same page, when scanned at 200 DPI, the scan rate of fax fine mode, comprises almost half a megabyte of information. Because of the large capacity needed to store such images, some sort of image compression is typically implemented in image storage and transmission devices.
One current standard method for binary image compression, in widespread use as the standard for facsimile transmission, is the CCITT-3 standard. This is a lossless binary image compression algorithm based on Huffman encoding of a run-length encoding of the image. The CCITT-3 standard typically compresses an image by an order of magnitude by taking into account first-order statistical regularities in the lengths of runs. Thus, a 300 DPI image may be compressed from a megabyte to 100 kilobytes.
Symbol matching can be used to increase compression ratios for binary images which consist primarily of machine-printed text. Such text is characterized by many small regions of connected black pixels, representing characters, surrounded by white pixels. A typical document might use only a few hundred different characters representing the letters of the alphabet in upper- and lowercase in a few different type faces (e.g., Times and Helvetica ) and type styles (e.g., plain, bold, italics). In compression techniques employing symbol matching, similar characters are grouped, and their description as an array of black pixels is represented only once as a template. The entire binary image is represented as a sequence of templates along with references to their positions within the image. In this way, the representation contains far fewer bits than the original image. The amount of compression that can be achieved using symbol matching depends on how many characters are matched, how the templates are represented, and how the character positions are represented.
Unfortunately, characters that appear similar to the human eye are not usually pixel- identical. The printing method, subsequent photocopying, and, most importantly, the scanning process itself introduce error into the original image. An example is illustrated in Fig. 1, which depicts two instances of the letter "b" in 12 point Courier scanned at 200 DPI. The error pixels are also shown. In order for a symbol matching scheme to significantly contribute to binary image compression, error between two characters must be allowed, but bounded. Some notion of the matching of two characters based on perceptual similarity is needed for this purpose. Furthermore, since the matching characters are not all identical, a way of defining a template from the matching characters is required. Since such a template is necessarily not identical to the all of the characters used to define it, the representation by templates does not encode the image perfectly. But since the characters vary only slightly in appearance from the template, the difference is not perceptible.
The success of symbol matching in binary image compression hinges crucially on how similarity of two characters is judged (how characters are matched). A matching metric allowing large pixel differences between characters is prone to substitution errors. For example, as illustrated in Fig. 2, an instance of a "b" and an instance of an "h" in the same font and size can have a relatively small pixel error. If they are matched, the reconstructed image will be riddled with errors. On the other hand, if the matching metric is too stringent, then multiple instances of the same character will not be matched and little compression will be achieved.
The use of symbol matching in binary image compression dates back to at least 1974 (see "A means for achieving a high degree of compaction on scan-digitized-printed text," by R.N. Ascher and G. Nagy, in IEEE Transactions on Computers, 23(11):1174-1179, Nov. 1974). Since then, a variety of compression systems employing symbol matching have been proposed. (See "Combined symbol matching facsimile data compression system," by W.K- Pratt et al., in Proceedings of the IEEE, 68(7):786-796, July 1980, and U.S. Patent Nos. 4,091,424, 4,288,782, 4,410,916, 4,463,386, 4,499,499, and 4,606,069.) The present invention is a compression method employing a substantially improved matching process, as well as other improved features which increase the compression ratio.
Summary of the Invention
In general, the invention includes a variety of improved features for methods for com¬ pressing Images which include the basic steps of identifying symbols in the image, asso¬ ciating with each identified symbol an indication of its location in the image, comparing each identified symbol to templates from a library of templates to match each identified symbol to a template, and generating a compressed representation of the image including a representation of each template, and a reference to a location and to a template for each symbol in the image. The images will typically start as binary pixel-array images, but the methods of the invention are also suitable for compressing images originating in other formats.
In one aspect, the invention features, as a first step, precompressing the image. For example, for images that start as binary pixel-array images, run-length encoding may be used. When run-length encoding is used in the precompression step, the symbols may be identified by associating runs of black pixels in adjacent rows which have at least one black pixel in the same column or in the same or adjacent columns.
In another aspect, the invention features generating the library from scratch during image compression by storing in the library each symbol for which no matching template is found as a new template, and defining each template by a representation determined by a plurality of the symbols which match it. For images that start as binary pixel-array images, each template may be defined by a unique spatial distribution of black pixels determined by the distributions of black pixels of a plurality of the symbols which match the template. The distribution may be determined, for example, by averaging the distributions of black pixels of the symbols or from starting with one symbol which matches the template and changing a pixel in this symbol only if a predetermined fraction of the pixels in the same location in the other symbols matching the template disagree with it.
In another aspect, the comparing step features identifying error locations, performing a plurality of tests on the error locations and on other global features of the symbol and the template, and declaring a match between a symbol and a template only if all of at least one of a set of predetermined groups of tests are passed. For images that start as binary pixel-array images, the error locations may be error pixel locations which have a black pixel in only the symbol or the template, but not both. The error pixel locations may be run- length encoded. One appropriate test is if the distance between each error pixel location and the nearest black pixel in the template or symbol having a white pixel at the error pixel location is less than a predetermined value. Another test is if all contiguous groups of error pixel locations are smaller than predetermined sizes and shapes. Yet another test is if the difference in heights between a template and a symbol is less than a predetermined value, and similarly for the difference in widths. Yet another test is if the ratio of the number of black pixels in the symbol to the number of black pixels in the template is within a predetermined range. Yet another test is if the ratio of the number of error pixel locations to the minimum of the number of black pixels in the template and the number of black pixels in the symbol is less than a predetermined value. Yet another test is if the ratio of the number of error pixel locations to the number of black pixels adjacent to a white pixel in the template is less than a predetermined value. Yet another test is if all pieces of evidence for a shift of the symbol relative to the template are consistent, where evidence is given by local configurations of error pixels and their adjacent pixels. A novel feature of this invention is the use of tests (such as the above) based on the sizes, shapes, and orientations of local configurations of error pixels. In another aspect, the invention features representing each template by the boundary of the spatial distibution of black pixels for the template. In a related aspect, the repre¬ sentation of each template includes a reference to a frame template for defining an outer boundary of the template and a list of hole templates with associated positions within the frame template for defining any inner boundaries of the template. The frame templates and hole templates may be represented by representations of the boundary of the frame templates and hole templates.
In another aspect, the invention features indexing the templates in the library accord¬ ing to template features. The step of comparing proceeds according to the index. In this way, those templates more likely, based on features, to match a symbol are compared to the symbol before templates less likely to match and templates whose features preclude a match are not considered.
In another aspect, the invention features reducing the resolution of the template rep¬ resentations to achieve further compression.
In preferred embodiments, the compressed representation of the image includes a template stream, a template reference stream, and row and column position streams. Other divisions of the information into data streams are possible. Preferably at least one of these streams is further compressed.
In preferred embodiments, any template including a region smaller than a predeter¬ mined size between two regions larger than another predetermined size is split into more than one template. Further, each template formed by a split is preferably compared to other templates and merged with any other template it matches. In preferred embodi¬ ments, symbols smaller than a predetermined size are eliminated.
In preferred embodiments, the reference to a location for each symbol in the binary image is represented by the difference between the actual offset between the given symbol and a preceding symbol and a standard offset for the symbol pair defined by the given symbol and the preceding symbol. The standard offset may be the offset last seen for the symbol pair or the most frequently seen offset for the symbol pair. The difference between the standard offset and the actual offset may be determined at a lower resolution than the resolution of the binary image.
In preferred embodiments, an approximation of the reading order of the symbols is determined and the compressed representation of the binary image is generated according to the reading order. The reading order may be determined by locating symbols on a single line and sorting the symbols. The symbols occupying a line may be determined by using a beam to search along the line, the size of the beam varying according to the sizes of one or more of the adjacent symbols. Vertical bounds on the size of the beam may be imposed. In another aspect, the invention is an image transmission system (such as a facsimile system), an image enhancement system, or an image storage system operating according to the image compression methods described above.
Compression according to the invention can achieve, for example, compression ratios greater than 25 times that of CCITT-3 for an 8-page 300 DPI document. Each page is thus compressed from a megabyte of raw image to 4 kilobytes by the method of the invention. It is important to note that the compression ratio will increase with the length of the document since a single template library is used throughout. Thus, the invention has particular advantages for image transmission or storage systems dealing with large binary images.
Brief Description of the Drawing
Fig. 1 is a diagram illustrating how two similar characters may not be pixel-identical.
Fig. 2 is a diagram illustrating how two distinct characters may have only small pixel differences.
Fig. 3 is a block diagram of an image storage system employing image compression according to the method of the invention.
Fig. 4 is a block diagram of an image transmission system employing image compres¬ sion according to the method of the invention.
Fig. 5 is a flow chart summarizing the steps performed by an image compression system according to the invention.
Fig. 6 is a diagram demonstrating a method of segmenting a run-length encoded binary image into symbols.
Fig. 7 is a diagram illustrating configurations of error pixels used to infer shifts for the shift test.
Fig. 8 is a diagram illustrating the improvement in symbol quality that can be achieved by composition of symbols into templates.
Fig. 9 is a diagram demonstrating a method of representing a symbol by tracing the edges of a pixel array image.
Fig. 10 is a diagram demonstrating a method of representing a symbol as a frame and at least one hole.
Fig. 11 is a diagram illustrating how a skew in the scanning process can make symbols appear on the same line even when they are not.
Fig. 12 is a diagram demonstrating a method for using a beam to scan for symbols in the same line to the left or right of a current symbol. Description of the Preferred Embodiment
A system for image storage using the compression method of the invention is illustrated in Fig. 3. A processor 12 with storage memory 14 forms the heart of the syste 10. As shown, the processor 12 includes at least one interface 16 for accepting representations of images. This input interface 16 may be, for example, a connection to a computer which generates images, or a connection to a scanning device used to capture a representation of an image from a hardcopy of the image. The processor 12 performs the steps of the image compression method of the invention, discussed further below. The compressed images are stored in the storage memory 14. The processor 12 also decompresses the stored images and provides reconstructed representations to at least one interface 18. The output interface 18 may be, for example, a connection to a computer used to process and/or display the image, or a connection to a printer for providing a hardcopy of the image. Preferably, the output interface 18 can display both images received directly from the input interface 16 and reconstructed images called up from storage memory 14. For reasons discussed below, the storage system illustrated in Fig. 3 can also be considered an image enhancement system when the image compression system of the invention is embodied in processor 12.
A system for image transmission using the compression method of the invention is illustrated in Fig. 4. A typical example of an image transmission system is a conventional facsimile transmission system. At the transmitting end, the system 20 includes a processor 22 with memory which accepts representations of images via at least one interface 24. In a facsimile system, the input interface 24 is typically a connection to a scanning device used to capture a representation of an image from a hardcopy of the image. The processor 22 compresses the input image according to the method of the invention, discussed further below. The processor 22 further includes an interface 26 for transmitting the compressed image. In a facsimile system, the output interface 26 is typically a connection to a tele¬ phone line via a modem. At the receiving end, another processor 28 with memory includes an interface 30 for accepting the transmitted compressed representation of the image. In a facsimile system, the input interface 30 is again typically a connection to a telephone line. The processor 28 decompresses the input compressed image according to the method of the invention, and provides a reconstructed representation of the image to at least one interface 32. In a facsimile system, the output interface 32 is typically a connection to a printer.
An image compression system according to the invention accepts a representation of an image and segments the image into symbols. These symbols may represent characters (e.g., letters, numbers, etc.) or graphics (e.g., logos, charts, etc.) Each identified symbol is matched against a library of templates. In the preferred embodiment, the template library is generated from scratch as new symbols are identified. Each identified symbol is matched against templates created so far, and it is added to a matching template group if one exists. If it matches none of them, it forms a new template group and serves as the template for that group so that later symbols can be matched to it. Once all of the symbols are grouped into template groups, a representation of each template is composed, preferably based on features of many, if not all, of the members of the template group. Also, a representation of the location (typically by row and column) of each symbol in the image and the symbol's template group is built. Thus, typically four streams of information — a template stream, a template code stream, a row position stream, and a column position stream — constitute the compressed representation of the image. Other divisions of the information into streams is also possible. The streams of information are each preferably further compressed.
Decompression of an image compressed according to the methods of the invention is straightforward. First, the streams of data are decompressed if they were further com¬ pressed as a final step of the compression process. Then the template library is read from the template stream. Next, as the template code stream is read, the symbol position for each symbol in the template code stream is determined from the row and column positions streams, and a representation of the template is overlayed at the determined position.
A flowchart of the steps for image compression according to the preferred embodiment of the invention is provided in Fig. 5. The steps of the method will now be taken up in turn.
Precompression of the Image
In typical implementations of image compression systems, images are provided as bi¬ nary pixel arrays, with connected regions of black pixels representing characters, graphics, etc. The pixel array may be provided, for example, by a computer storing the image in such a form, or by a scanning device which converts a hardcopy of a binary image into a pixel array.
Prior binary image compression systems, such as those referenced above, operate di¬ rectly on the pixel array. For a 300 DPI, 8.5 by 11 inch binary image, a megabyte of memory is required to store the pixel array, and millions of operations may be required to scan this memory. To reduce this burden, according to the invention, the pixel array is precompressed before the symbol matching process is commenced. This saves significant amounts of storage space as well as valuable processing time. The step of precompres¬ sion makes the entire compression process more efficient in space and time, an important advantage for commercial products. A standard technique for compressing a pixel array representation of a binary image is to run-length encode it. This turns out to be a very suitable way to precompress a pixel array for the purposes of the invention. A technique for segmenting a run-length encoded representation of a binary image into symbols is presented in the next section.
Nariants of run-length encoding may be used to precompress the binary image. For example, a pixel array representation may be compressed to a y-axis representation. Ac¬ cording to this technique, each non-empty row in the image (of constant y, hence the name) is encoded as a list containing, in order, the row index, and the indices of the first x coordinate at which a black pixel region is encountered, the x coordinate at which the region is exited, the second x coordinate at which a black pixel region is entered, the x coordinate at which the region is exited, and so forth. This representation can be efficiently generated by a raster scanning process, and is quite convenient for further compression by symbol matching. It has the advantage of being a very compact representation for images with a lot of white space occurring in horizontal bands, e.g., non-skewed images of double- spaced text. (For further information on y-axis representations, see "Representations of contours and regions for efficient computer search," by R.D. Merrill, in Communications of the ACM, 16(2):69-82, February 1973.) Hereinbelow, the term "run-length encoding" will refer to any variant of run-length encoding.
Other precompression techniques are also appropriate. One such technique involves representing a pixel array as a quadtree. A quadtree encodes binary images hierarchically. A square image is divided into four subregions corresponding to the northwest, northeast, southwest, and southeast quadrants. If all of the pixels in a quadrant are black, the cor¬ responding tree node is recorded as black; if all pixels are white, the node is recorded as white. Only if the quadrant contains both black and white pixels is further subdivision necessary. In this case, the quadrant is recorded as gray, and is further subdivided recur¬ sively. This representation is space-efficient for images with large continuous areas of black or white, such as text images. (For further information on quadtrees, see "The quadtree and related hierarchical data structures," by H. Samet, in Computer Surveys, 16:187-260. 1984.)
Yet another compression technique involves the use of chain codes to efficiently rep¬ resent boundaries. A binary image can be represented as a set of chain codes for each black pixel region in the image. The chain code for a region consists of a starting point and a specification of a series of unit moves along the 4 or 8 compass directions that trace out the border. First derivative of direction can be used to further compress the representation for sufficiently smooth regions. Since the chain code representation picks out connected regions, it is especially appropriate as an image representation on which to perform symbol matching. The chain code representation can be used to calculate the area of a region, a procedure which is important in symbol matching. Furthermore, chain code representations of regions are particularly efficient for merging. Thus, a mixed grid file ( see below) and chain code initial representation can be efficiently converted to a pure chain code representation. (For further information on chain codes, see "Computer processing of line drawing images," by H. Freeman, in Computer Surveys, 6(l ):57-98, March 1974. ) . Grid files can be used to exploit the advantages of more than one compression system. A grid file is made by breaking the binary image into a regular or non-regular rectangular grid in _ and y. Each rectangular section is then encoded by some other mechanism such as quadtrees or chain codes. The grid can be chosen so as to maximize the efficiency υf the coding for different regions of the binary image. (For further information on grid files, see "The grid file: An adaptible, symmetric, multikey file structure," by J. Nievergelt et al., in .A CM Transactions on Database Systems, 9:38-71 , 1984.)
Note that the step of precompressing the binary image from a pixel array represen¬ tation to a precompressed representation is not required in cases where the provider of the binary image has already performed such a compression, or where the provider of the binary image yields a compressed representation automatically (with no pixel array as an intermediate step). Furthermore, there may be cases where the binary image is provided in a representation compressed relative to a pixel array representation, but where conver¬ sion to another compressed representation would be preferable for the purposes of symbol matching. All such variants are within the scope of the invention.
Segmentation of the Image into Symbols
After the binary image is precompressed from a pixel array representation to a precom¬ pressed representation, the image is segmented into symbols. According to the invention, every connected region of black pixels is identified as a symbol. Therefore, in addition to letters and numbers, graphics such as logos and charts will also be considered symbols. This is in contrast to all prior approaches. For example, U.S. Patent No. 4,410,916 dis¬ closes a segmenting method wherein the binary image is segmented into symbols (e.g., characters) and non-symbols (e.g., graphics).
By way of example, an efficient way of segmenting a run-length encoded representation of a binary image will be presented. The method works by associating with each black run an identifier for the character it is a part of.
In the preferred embodiment of the segmenting method, each black run in the binary image is operated on in top-to-bottom, left-to-right order. For each run, the region of the previous row directly above the current run is examined, and all of the runs that overlap that region are collected. Each of these runs will have already been assigned to a symbol since they appear before the current run in the top-to-bottom order. The current run is added to the symbol associated with the leftmost such overlapping run. and all of the runs associated with the other overlapping runs are reassociated with that symbol. The reassociatϊon can be done by a single pointer operation if the associations are appropriately represented.
Two snapshots of the segmenting process are illustrated in Fig. 6. After segmenting two rows of an image, runs have been assigned to three different symbols (identified with the labels "a", "b", and "c"). As the runs of the third row are processed, each is given the label of a run above it. In the case of the last run, which has two runs directly above it. the label of the first such run is used. Later runs (those associated with the label "b" in this example) are reassociated with the label of the current run ("c" ).
Often, small groups of just a few pixels will be introduced in a binary image as a result of scanning or printing error. These characters can disrupt the compression process, par¬ ticularly the final compression of the representation of template codes and corresponding symbol locations, discussed further below. According to a preferred embodiment of the invention, all symbols that are smaller than a certain threshold (four, say) are eliminated during the symbol identification process. Symbol Matching
In prior methods of symbol matching for binary image compression, numerical results derived from one or more tests are combined in a weighted manner and the result is thresholded to determine whether or not a symbol matches a template. According to the invention, an alternate technique is employed, which has been shown to improve matching accuracy, and therefore, to reduce errors. The method of the invention is a voting scheme, where a plurality of tests are used for each symbol/template pair. Each test which is passed (indicating similarity between the symbol and template) contributes one vote to a sum of votes. In order for a match to be declared, a predetermined number of votes must be received. More generally, the tests can be grouped into one or more predetermined groups, and all tests within, at least one of the groups must be passed for a match to be declared. In one embodiment, the vote must be unanimous for a match to be declared.
For most applications, a good symbol matching process for the purposes of binary image compression must take into account the error introduced by scanning. This error can be presumed to be primarily a quantization error due to a shift in registration of the characters relative to the scanning grid. Following from this, error is expected to occur only at the edges of the symbols (the juncture of black and white pixels). However, since quantization error is associated with different placements of the same symbol relative to the scanning grid, the overall number of black pixels is expected to be roughly constant for two similar symbols. Furthermore, the number of error pixels is expected to be small for two similar symbols. Finally, any evidence for the presumed shift of a character relative to the scanning grid should be consistent across the entire symbol. These observations suggest the following similarity tests for determining a match between a symbol and a template.
Edge test 1: All error pixels must be within a fixed distance _-d-e of an edge.
Edge test 2: No block of error pixels may be larger than _n by _n square.
Edge test 3: The difference in heights of the symbol and the template must be less than or equal to a fixed bound dβize , and similarly for the widths.
Density test: The ratio of the number of black pixels in the symbol to the number of black pixels in the template must be within the range 1 ± i entity
Error test 1: The ratio of error pixels to the minimum (or, equivalently, maximum) of the number of black pixels in the template and the number of black pixels in the symbol must be less than a bound -_i,.or-.oπ-
Error test 2: The ratio of error pixels to black pixels occurring on an edge (i.e. adjacent to a white pixel) in the template or in the symbol must be less than a bound d-dgε.diitortion •
Shift test: All inferred shifts of the symbol relative to the template must be consis¬ tent. Other tests are also possible.
Edge test 1 may be implemented, for example, by checking whether the distance between each error pixel location and the nearest black pixel in the template or symbol having a white pixel at the error pixel location is less than a predetermined value. The inverse test could also be used, that is, the distance between each error pixel location and the nearest white pixel in the template or symbol having a black pixel at the error pixel location could be checked.
The shift test requires a method for inferring the presumed shift of the symbol relative to the template. One method for inferring shift is to examine groups of error pixels of the same source, that is, which are all black pixels in the template or all black pixels in the symbol. The overall map of error pixel locations can be divided into two separate maps of (1) error pixels that are black in the template (the template error map), and (2) error pixels that are black in the symbol (the symbol error map). Contiguous groups of pixels in these various error maps can be presumed to have arisen from a shift of the symbol relative to the template. For instance, a vertical column of two error pixels in the template error map that are adjacent and to the right of black pixels in the template may be due to the symbol having shifted away from the error pixels toward the adjacent pixels. An example of this configuration is illustrated in Fig. 7a.
Another pattern of error pixels that can be used to infer shifts is a triangle of three contiguous error pixels of the same source. For example, if the three contiguous error pixels of such a configuration are found in the template error map, and the pixel location that falls within the two-by-two square that bounds the three error pixels is black in the template, a shift can be inferred away from the error pixels toward the adjacent pixel. If, on the other hand, the adjacent pixel is white in the template, a shift away from the adjacent pixel can be inferred. Converse inferred shifts can be inferred from such triangles of error pixels in the symbol error map. Examples of these configurations are illustrated in Fig. 7b-e. .
Other sizes, shapes, and orientations of local sets of error pixels from the various error maps can be used to infer shifts for the purpose of comparing consistency of shift. The triangle-based test for inferring shifts is used in the preferred embodiment of this method. The determination of whether all shifts are deemed consistent can be done by requiring that all of the inferred shifts are identical, or by weaker restrictions, such as requiring that a certain, percentage be identical, or that no pair be in opposite directions, or that all be within a certain angular range of each other, or combinations of these tests. In the preferred embodiment, identity of all inferred shifts is required.
Note that Edge tests 1 and 2 and Shift test look specifically at local configurations of pixels in the error maps (the overall, the template, and the symbol maps). The use of categorical tests based on size, shape, orientation, and relation to adjacent pixels of local sets of error pixels is novel to this method. The particular tests described here are used in the preferred embodiment, but all such tests are included within the scope of the invention. In order to apply these tests to a symbol/ template pair, the symbol and template must be registered to each other, for example, by aligning two corners. Registrations that differ by one or more than one pixel are preferably also tested, requiring a plurality of potential registrations to be considered.
The various bounds specified in each test need not be fixed. Preferably they are varied as a function of the size of the symbols. This is because humans perceive symbol differences as being salient differentially with symbol size. In a small font, for instance, the difference of only a few percent in the number of pixels is significant, whereas at larger font sizes, that same percentage may not be perceived as significant. The ability to use different bounds at different sizes can allow more aggressive matching at larger sizes without sacrificing distinctions at the smaller sizes.
By way of example, appropriate values of the bounds for the above tests are _-dffe = 1, _n = 2, dSize = 2, ddnntity = .50, distortion = -20 (if fewer than 150 pixels) = .40 (if greater than 200 pixels) and interpolated otherwise, and dedge .distortion = -51 •
Representation of the Templates
In many prior methods of binary image compression using symbol matching, the first symbol encountered in each template group serves as the examplar for that group. According to the invention, rather than throw away the information about the appearance of all of the other symbols that matched the first one, several or all of the symbols are used to compose the template representation. In this way, a template can be composed that appears "better" than any of the symbols from which it was formed. The reconstructed binary image can actually be an improved image because similarity among the matched characters in the binary image is providing further information about the shapes of the symbols. Unlike smoothing techniques, this method reduces high frequency error without sacrificing high frequency information in general. Because of this property, the method can be used as an image enhancement technique, as well as an image compression method. An example of the enhancement that can be expected is illustrated in Fig. 8, where a magnified image of the word "here" in its original form in a digitized image, and a magnified image of the same word in the reconstructed image, are presented. Note the improved quality of the characters, especially the character "r" , which was achieved by composition of a plurality of symbols into templates.
One way this "averaging" process can be carried out is simply to keep a pixel black in the template only if the majority of symbols forming the template have that pixel black. To prevent artifacts of the averaging process, which can occur when a small number of symbols are averaged, an alternative composition method is to use the appearance of one of the symbols, the first symbol encountered, say, but to allow the other symbols to vote on changing any given pixel. The vote will succeed if more than a specified fraction, two-thirds, say, of the other symbols disagree with the original symbol. For templates composed of large numbers of symbols, the effect is much the same as averaging, but for templates with small numbers of symbols, a greater weight is given to one symbol, eliminating averaging artifacts. Other procedures for template composition are possible which achieve the advantages discussed above.
Template composition may be performed at many stages during the compression pro¬ cess. According to one embodiment, the "averaging" is performed as an ongoing process as symbols are matched to templates in the library of templates. In this mode, the rep¬ resentations of the templates in the library continually change as symbols are matched to the template groups. This can ultimately decrease the number of templates stored in the library since templates will gradually come to resemble the average features of the symbols, resulting in more frequent matches. According to another embodiment, the "averaging" is performed only after all symbols have been placed in template groups. In this mode, the first encountered symbol (typically) of any template group is used in the matching process. The averaging that occurs at the end of the process serves to provide an improved representation of the characteristics υf the symbols in the template group.
Note that in either of the above modes of operation, after the symbols have been grouped into templates, two templates may be merged if the representation of the two templates match under the above criterion. Because of the averaging effect of the template composition, two templates may match even though the symbols that were matched with the two templates did not. Template merging can further decrease the number of templates that must be represented. According to one embodiment, templates can be generated for each page individually by matching, and then the templates from the several pages merged. Different matching criteria may be used for the first matching process within the page, and the second merging process across pages.
As symbols in a binary image are processed, a library of templates is developed by augmenting an initial library with new templates as they are found. The initial library may include prestored symbols (say those of especially frequent usage in a particular ap¬ plication) or may be empty. If prestored symbols are employed, it may not be necessary to augment the library. Furthermore, it may not be necessary to incorporate the repre¬ sentations of the templates corresponding to the prestored symbols into the compressed representation of the image, since these template representations may also be prestored in the apparatus performing the decompression (which may or may not be the same as the apparatus performing the compression).
The templates are preferably stored in the library in such a way that those templates likely to match a given symbol are accessed first. In prior methods (see, for example, U.S. Patent No. 4,606,069) templates are stored according to frequency of occurrence, so as to speed up the time taken to find a matching template. According to the invention, an alternative storing scheme is used which has been shown to result in increased speed and efficiency. In preferred embodiments, the templates are stored in a hashed structure indexed by features of pertinence to the matching process, such as height, width, number of black pixels, etc.
At least two modes of operation are possible with this indexing scheme. In one mode, a given symbol is compared to templates until either a match is found or the templates are exhausted. The templates are compared in an order determined by the indexing scheme so that those most likely to match are compared first. However, in the preferred mode of operation, the indexing scheme is used to rule out groups of templates, and the given symbol is not compared to templates whose indexed features would preclude a match.
The indexing scheme can also be used to adjust the ordering of the tests employed in the matching process to improve the speed with which matches are made.
According to another aspect of the invention, the stored representations of the tem¬ plates are compressed. Compressed representation of the templates may be used through¬ out the matching and template composition process, or, alternatively, the templates can be compressed after these processes are complete. This is particularly advantageous in image transmission systems where the template representations are to be transmitted. Various compression techniques are appropriate. For example, the template may be CCITT-3 en¬ coded. Or, a run-length encoded representation may be further compressed by an adaptive method such as an adaptive Huffman code or a variant of Lempel-Ziv compression.
Alternatively, a change in representation can be used that takes advantage of the connectedness and vertical stability of typical characters. Rather than run-length encoding the pixels, the boundary of the character can be traced. Fig. 9 shows one way this tracing of edges can be performed. In this figure, the leftmost edge of a pixel array representation of the letter "b" is traced from the first black pixel in the image. Note the regular structure of the trace. Most moves are "left 0" . This regularity can allow for significant further compression.
Furthermore, the binary image representation can be decomposed into connected re¬ gions of the same color pixels. The symbol can be decomposed into a "frame" and some "holes" in the frame by eliminating all black runs that occur between the leftmost and rightmost black runs in a single row. The removed runs, when parity inverted, constitute the holes in the frame. Fig. 10 shows a pixel array representation of the letter "b" broken up into a frame and an inverted image of the holes (in this example there are two). The latter image can itself be compressed recursively by treating it as a separate symbol and placing it in a template group. The original image of the templates can then be repre¬ sented by a reference to a frame template and a list of hole templates with their associated positions in the frame. The ability to use the same hole image in several frame templates allows for further compression. Because of the recursive nature of the compression process, these holes may themselves have further holes in them, and so on. At each level, the parity of the frame and its holes inverts, white holes on a black frame, black holes on a white frame, etc.
The advantage of the frame and hole representation is that the structure of the char¬ acters is better represented, especially as concerns the shapes of their boundaries. Conse¬ quently, representing the templates by a trace of their boundaries (as described above) is even more effective. Error in scanning or printing text can cause neighboring characters to run together. By splitting such characters into their two parts, more redundancy can be exploited in compression, because the two parts may match with other characters, whereas the run- together pair is unlikely to. The splitting of run-together characters could be performed during the symbol identification step of the process whenever a single vertical run of a few (two. say) pixels connects the two halves of a symbol. However, according to a preferred embodiment of the invention, the splitting is performed on the templates after all symbols have been matched into template groups. After a template has been split into one or more components, each component is preferably compared to the other templates and merged with a matching template if one is found. Since templates preferably represent the "average" features of the symbols in the group, the run-together error will usually be averaged out. Thus, the reconstructed image will actually be improved by the reduction of run-together characters.
To avoid splitting templates that happen to have such a "bridge" in them, the two halves are preferably required to be of a sufficient size. In particular, each half can be required to be of at least a certain height. Also, one might require that one or both of the halves match an existing template. Note that the bridge is preferably not deleted (although it may be averaged out in the template representation). Thus, even if symbols which actually have such a bridge are split, the bridge will appear when the image is reconstructed.
Representation of the Template Codes and Symbol Locations
In order to allow reconstruction of a binary image compressed according to the inven¬ tion, a reference to the template corresponding to each symbol and the position of each symbol in two dimensions must be encoded. The representation of the template references and the symbol positions is preferably compressed.
The amount of compression will depend on the initial encoding of the template ref¬ erences and the symbol positions. The ideal encoding situation for the case where most of the symbols are characters from a text is one where the symbol information is ordered in reading order, that is, the order in which a person would read the characters. This is because the characters and their positions, when viewed from this perspective, have the least entropy. For instance, the characters display redundancy due to the rules of spelling of the language, due to their positions, due to the standards for aligning characters on a line, due to kerning, and so forth.
In preferred embodiments, therefore, an approximation of the reading order of the characters is reconstructed. Unlike in optical character recognition systems, this task must be handled fully automatically, and in a way that makes a minimum number of assumptions about the image. For instance, it should not be assumed that the binary image represents text in English, or even that the Roman alphabet is used. On the other hand, perfect operation is not required, since small errors only affect the compression ratio, not the faithfulness of the reconstruction.
Reconstructing reading order is not a simple task for cases in which the original binary image representation was obtained by scanning an original which may be skewed (the typical situation in facsimile systems). One solution to reconstructing reading order involves tracking the lines in the text. The method described here involves a two-step process. First, all characters in a line are located. Second, the characters are sorted by column position to place them in correct reading order.
The first step works as follows. A first character on the page is found by "scanning" the stored representation of the binary image from top-to-bottom, left-to- right. This character may or may not be the first character in a line. The image is then scanned backward character by character to find characters ostensibly on the same line as the first character, ultimately ending at the leftmost character of a line. The image is then scanned forward again, and all characters on the line are collected. The scanning steps must be carefully designed, so as not to be fooled by characters on other lines that appear horizontally aligned because of skew in the text lines of the image. Fig. 11 provides an example of how skew in the text lines of an image can make characters appear as if they are on the same line when they are not. In addition, characters composed of two symbols, such as "i" , "j" , ":" , and "%" should be grouped together on one line.
The preferred method of scanning starting from a current character works by looking to the left or right for a character having at least one run within a horizontal "beam" . The beam used to scan for characters is illustrated in the example shown in Fig. 12. Note that in this example, the beam found the dot over the "i" . The height of the beam is preferably initially the height of the first character located in the scanning process. It is widened whenever a taller character is scanned, so as to include the entire height of the taller character. When a shorter character is scanned, however, the beam is not shrunk to the new character's height, but preferably to a height computed by taking a weighted running average of the heights of the last several characters. This may be approximated, for example, by computing the new beam height as a sum of (n — l)/π times the old beam height and 1/π. times the height of the next character, where n is a parameter specifying the aggressiveness of the decay. If several characters fall within the beam, all are added to the current line. (They will be sorted into the correct order in a later step in which the characters are sorted by horizontal position.)
In order to prevent material from other lines from being inadvertently associated with — - _' _. the material from the current line, the beam is preferably limited in horizontal and vertical extent. It is never allowed to grow to a height greater than a certain number of pixels. Furthermore, characters horizontally farther than a certain number of pixels are preferably not included in the scan.
When all of the characters in a given line are found, they are sorted by horizontal position to approximate reading order, and their template code and positions are encoded in that order.
The regularity of positioning of text on a page is a potential source of further com¬ pression, in that the position of a character is quite predictable from the position of the previous character. In most cases, it will be vertically aligned at the bottom and sepa¬ rated from the previous character by a standard inter-character spacing. In some cases, because of kerning, for instance, or because the character is the dot over the "preceding" "i", or because the character is the first in a line, the inter-character spacing will vary. Nevertheless, the generally regular character spacing can be exploited by encoding not the absolute x and y positions of the characters but their offsets from the previous charac¬ ter, for example, the displacement from the lower right corner of the previous character to the lower left corner of the current character. Furthermore, the first two sources of variance — kerning and multi-symbol characters — can be handled by using as the default inter-character space the space between the last consecutive occurrences of the current characters (if they have occurred previously), or by encoding the most frequent value of the inter-character space for the pair (the mode value) and using the difference from the mode as the representation of the inter-character space. Finally, the number of times that this default inter-character space can be used can be maximized by allowing near misses to be treated as hits. One way to achieve this is to perform the check at a reduced resolution. Of course, the error may propogate. If this is unacceptable, the near miss must cause the encoded position of the character to differ from the true position by only a small amount: a single pixel is appropriate.
The sequence of template codes can be further compressed due to variation in the frequency of occurrence of the various templates by Huffman coding, or, to exploit regu¬ larities in spelling, by Lempel-Ziv compression or similar methods. The symbol position information can also be further compressed by such methods.
In fact, the template code or symbol position information can even be indicated in the compressed representation implicitly, rather than by explicit indexing into the template library and into coordinate positions, respectively. For example, the positions of characters matching each template can be given immediately following the template representation itself, thereby obviating the need for an explicit representation of template codes for those symbols as the associated template is indicated implicitly.
In summary, through the above methods, typically four streams of information are generated: a sequence of templates representations, a sequence of template references cor¬ responding to the symbols (approximately in reading order if the binary image is primarily text), a sequence of the row positions of the symbols, and a sequence of the column po¬ sitions of the symbols. These streams in themselves constitute a significantly compressed representation of the binary image. However, each of these streams can be further com¬ pressed by the disclosed techniques.
The method has been shown to achieve, for example, a compression ratio greater than 25 times that produced by CCITT-3 for an 8-page 300 DPI document. Each page is thus compressed from a megabyte of raw image to 4 kilobytes by the method of the invention. It is important to note that since pages of a document are not treated separately, the compression ratio will increase with the length of the document.
In some embodiments, it may be desirable to store or transmit the compressed image at a lower resolution than the starting image. For example, one may want to store or transmit a 300 DPI document at 100 DPI. This can be accomplished by further compressing the template representations by skipping pixels or in any way reducing the number of pixels by a real or integer divisor. At decompression, interpolation can be used to recreate the templates. Of course, some quality will be lost, but in many applications, the increase in compression achieved is an overriding factor. It is preferable that such reduction in resolution is not performed at an earlier stage in the compression process. This is because high resolution aids the symbol matching process. Therefore, images should be scanned, and symbols should be identified and matched, at high resolution, and any reducing of the resolution should be performed only after the template library is established.
Compression of Non-binarv Images
Although the preferred embodiment is described in terms of compression of binary images having pixels spatially distributed into rows and columns, the invention is applicable to non-binary images with different spatial distributions as well. For example, grey-scale or color images might be compressed by classifying the pixels into a first type representing text and graphics and a second type representing background, applying the compression method to the patterns of pixels of the first type, and compressing the background using a different method. In this way, text documents may be compressed even if printed on a non-white background, while retaining the background information. Furthermore, the decision as to whether a pixel is of the first or second type might not be based on its grey- scale value alone, but also on context or other information. Finally, grey-scale information might be used to distinguish text from graphics and background so that the text can be compressed by the methods of this invention while the grey-scale graphics are separately compressed with possible half-toning, dithering, or other preliminary processing. (Certain of these possibilities hold for binary black-and-white images as well.)
Another method of use with non-binary images involves classifying pixels into symbols of like color, matching them based on shape alone, and storing for each symbol an indication of its associated template and its color.
Another method of use with non-binary images involves separating the image into bit planes and compressing some or all of these bit planes using the methods of the invention. Insofar as there is a corrolation between certain of the bit planes and dominant symbol- based patterns, this method can compress the images better than non-symbol-matching methods.
The methods of the invention can be used to generate non-binary images as well, even from binary originals, for example, by maintaining the templates as grey-scale images obtained by averaging, rather than voting, on the value of each pixel. This allows an anti-aliased representation of each symbol to be automatically developed, which would be especially useful in the invention's application as an image enhancement method.
The image need not be restricted to structuring in terms of evenly-spaced rows and columns. For instance, the scanning process might have differing resolution in the x and y directions (as in standard facsimile images, which are scanned at 200 by 100 pixels, thereby leading to rectangular, rather than square pixels). Other arrangements of pixels, based on arbitrary fixed or random plane tessellations are possible.
It is recognized that variations and modifications of the invention will occur to those skilled in the art, and it is intended that all such variations and modifications be included within the scope of the appended claims. For example, applications of the method to compressing portions of images, either contiguous or non-contiguous, rather than entire images, or to subsets of identified symbols, the subsets distinguished by function (as, for example, only textual identified symbols rather than graphical identified symbols), size, shape, position, or other features, are included within the scope of the invention.
What is claimed is:

Claims

Claims
1. A method for compressing images comprising: precompressing a first representation of an image, said first representation based on pixels of a first type and a second type, to generate a precompressed representation of said image, identifying symbols in said precompressed representation of said image, comparing a plurality of identified symbols to each of at least one template from a library of templates to match identified symbols to templates, and generating a compressed representation of said image including a representation υf templates, and an indication of a location and a template for symbols in said image.
2. The method of claim 1 wherein said first representation of an image is precom¬ pressed by run-length encoding.
3. The method of claim 2 wherein said first representation is based on rows and columns of pixels, and symbols are identified by associating runs of said first type of pixel in adjacent rows of said precompressed representation which have at least one pixel of said first type in the same column or in the same or adjacent columns.
4. A method for compressing images comprising: identifying symbols in a first representation of an image, comparing a plurality of identified symbols to each of at least one template from a library of templates to match identified symbols to templates, wherein said library is augmented during image compression by storing in said library symbols for which no matching template is found as new templates, and wherein templates are defined by a representation determined by a plurality of the symbols which match, and generating a compressed representation of said image including a representation of templates, and an indication of a location and a template for symbols in said image.
5. The method of claim 4 wherein each template is defined by a unique spatial distri¬ bution of pixels, said distribution determined by the distributions of pixels of a plurality of the symbols which match said template.
6. The method of claim 5 wherein the distribution of pixels defining a template is determined by averaging the distributions of pixels of a plurality of the symbols which match said template.
7. The method of claim 5 wherein the distribution of pixels defining a template is determined by taking one symbol matching the template and changing a pixel in that symbol only if more than a predetermined fraction of the other symbols matching the template disagree with that pixel.
8. A method for compressing images comprising: identifying symbols in a first representation of an image. comparing a plurality of identified symbols to each-of at least one template in a library of templates to match identified symbols to templates, said comparing step including iden¬ tifying error locations, performing at least one test on said error locations and on other global features of the symbol and the template, and declaring a match between a symbol and a template only if all of the tests in at least one of a set of predetermined groups of tests are passed, and generating a compressed representation of said image including a representation of templates, and an indication of a location and a template for symbols in said image.
9. The method of claim 8 wherein a match is declared only if every test in said at least one test is passed.
10. The method of claim 8 wherein said first representation is based on rows and columns of pixels of a first type and a second type, said comparing step including identifying error pixel locations which have a pixel of said first type in only said symbol or said template, but not both, and performing at least one test on said error pixel locations and other global features of the symbol and the template, a match between a symbol and a template being declared only if all of the tests in at least one of a set of predetermined groups of tests are passed.
11. The method of claim 10 wherein said error locations are run-length encoded.
12. The method of claim 10 wherein one of said at least one test is passed if the distance between each error pixel location and the nearest pixel of the first type in the template or symbol having a pixel of the second type at the error pixel location is less than a predetermined value.
13. The method of claim 10 wherein one of said at least one test is passed if the distance between each error pixel location and the nearest pixel of the second type in the template or symbol having a pixel of the first type at the error pixel location is less than a predetermined value.
14. The method of claim 10 wherein one of said at least one test depends on the sizes, shapes, and orientations of contiguous groups of error pixels in some error map.
15. The method of claim 14 wherein one of said at least one test is passed if all contiguous groups of error pixel locations are smaller than predetermined sizes and shapes.
16. The method of claim 14 wherein one of said at least one test is passed if inferred shifts of the symbol relative to the template are consistent.
17. The method of claim 16 wherein shifts are inferred from the sizes, shapes, and orientations of contiguous groups of error pixel locations and their relation to adjacent pixels.
18. The method of claim 17 wherein shifts are inferred from triangles of pixeis in the template and symbol error maps such that the inferred shift is towards or away from the fourth pixel in the square bounding the triangle depending on whether said fourth pixel has the same or different parity, respectively, as the triangle pixels in the template.
19. The method of claim 10 wherein one of said at least one test is passed if the difference in heights between a template and a symbol is less than a predetermined value.
20. The method of claim 10 wherein one of said at least one test is passed if the difference in widths between a template and a symbol is less than a predetermined value.
21. The method of claim 10 wherein one of said at least one test is passed if the ratio of the number of pixels of the first type in the symbol and the number of pixels of the first type in the template is within a predetermined range.
22. The method of claim 10 wherein one of said at least one test is passed if the ratio of the number of error pixel locations to the number of pixels of the first type in said template or said symbol, or the minimum or maximum of the two, is less than a predetermined value.
23. The method of claim 10 wherein one of said at least one test is passed if the ratio of the number of error pixel locations to the number of pixels of the first type adjacent to a pixel of said second type in said template or said symbol, or the minimum or maximum of the two, is less than a predetermined value.
24. The method of claim 8, 9, or 10 wherein at least one of said at least one test depends on symbol size.
25. A method for compressing images comprising: identifying symbols in a first representation of an image, comparing a plurality of identified symbols to each of at least one template in a library of templates to match identified symbols to templates, wherein each said template is defined by a representation based on a spatial distribution of pixels of a first type, and generating a compressed representation of said image including a representation of templates, and an indication of a location and a template for symbols in said image, wherein the representation of a plurality of said templates is a representation of the boundary of the spatial distribution of pixels of the first type for the templates.
26. A method for compressing images comprising: identifying symbols in a first represeir.ation of an image, comparing a plurality of identified symbols to each of at least one template in a library of templates to match identified symbols to templates, and generating a compressed representation of said image including a representation of templates, and an indication of a location and a template for symbols in said image, wherein the representation of a plurality of said templates comprises a reference to a frame template for defining an outer boundary of said template and a list of hole templates with associated positions within said irame template for defining any inner boundaries of said template.
27. The method of claim 26 wherein said frame templates and hole templates are represented by representations of the boundary of said frame templates and hole templates.
28. A method for compressing images comprising: identifying symbols in a first representation of an image, comparing a plurality of identified symbols to each of at least one template in a library of templates to match identified symbols to templates, wherein the templates are indexed in said library according to template features, and wherein said step of comparing proceeds according to the index, whereby those templates more likely, based on features, to match a symbol are compared to the symbol before templates less likely to match, and those templates whose indexed features indicate that the likelihood of a match falls below a predetermined threshold are not compared, and generating a compressed representation of said image including a representation of templates, and an indication of a location and a template for symbols in said image.
29. A method for compressing images comprising: identifying symbols in a first representation of an image, comparing a plurality of identified symbols to each of at least one template in a library of templates to match identified symbols to templates, generating a compressed representation of said image including a representation of templates, and an indication of a location and a template for symbols in said image, and reducing the resolution of the representation of a plurality of templates.
30. The method of claim 1, 2, or 3 wherein each template is defined by a unique spatial distribution of pixels, said distribution determined by the distributions of pixels of a plurality of the symbols which match said template.
31. The method of clai 4 and 5 wherein said comparing step includes identifying error locations, performing at least one test on said error locations and on other global features of the symbol and the template, and declaring a match between a symbol and a template only if all of the tests in at least one of a set of predetermined groups of tests are passed.
32. The method of claim 1, 2, or 3 wherein said comparing step includes identifying error pixel locations which have a pixel of said first type in only said symbol or said template, but not both, and performing at least one test on said error pixel locations and on other global features of the symbol and the template, a match between a symbol and a template being declared only if all of the tests in at least one of a set of predetermined groups of tests are passed.
33. The method of claim 1. 2. 3, 4, 5, 8, 9. or 10 wherein said first representation is based on pixels of a first type and a second type, and the representation of a plurality of said templates is a representation of the boundary of the spatial distribution of pixels of the first type for the template.
34. The method of claim 1, 2, 3, 4, 5, 8, 9. or 10 wherein the representation of each said template comprises a reference to a frame template for defining an outer boundary of said template and a list of hole templates with associated positions within said frame template for defining any inner boundaries of said template.
35. The method of claim 1 , 2, 3, 4, 5, 8, 9, 10, 25, or 26 wherein the templates are indexed in said library according to template features, and wherein said step of comparing proceeds according to the index, whereby those templates more likely, based on features, to match a symbol are compared to the symbol before templates less likely to match, and those templates whose indexed features indicate that the likelihood of a match falls below a predetermined threshold are not compared.
36. The method of claim 1, 2, 3, 4, 5, 8, 9, 10. 25. 26, or 28 further comprising reducing the resolution of the representation of a plur: ;f templates.
37. The method of any of claims 1 , 2, 3, 4, 5, 8, y, ±0, 25, 26, 28, or 29 wherein said compressed representation of said image includes a plurality of data streams, and wherein at least one of said streams is further compressed.
38. The method of any of claims 1, 2, 3, 4, 5, 8, 9, 10, 25, 26, 28, or 29 wherein said compressed representation of said image includes a template stream, a template reference stream, and row and column position streams, and wherein at least one of said streams is further compressed.
39. The method of any of claims 1 , 2, 3, 4, 5, 8, 9, 10, 25, 26, 28, or 29 further comprising splitting templates comprising a region smaller than a predetermined size and shape into more than one template.
40. The method of claim 39 further comprising comparing templates formed by splits to other templates and merging templates formed by splits which match another template with that template.
41. The method of any of claims 1, 2, 3. 4. 5, 8, 9, 10. 25, 26, 28, or 29 further comprising eliminating symbols smaller than predetermined sizes and shapes.
42. The method of any of claims 1 , 2, 3. 4, 5, 8, 9, 10, 25, 26, 28, or 29 wherein the indications of locations for symbols in said image are represented by the difference between the actual offset between a given symbol and a preceding symbol and a standard offset for the symbol pair defined by said given symbol and preceding symbol.
43. The method of claim 42 wherein said standard offset is the offset last seen for the symbol pair.
44. The method of claim 42 wherein said standard offset is the most frequently seen offset for the symbol pair.
45. The method of claim 42 wherein the difference between the standard offset and the actual offset is determined at a lower resolution than the resolution of the first repre¬ sentation of said image.
46. The method of any of claims 1, 2, 3, 4, 5, 8, 9, 10, 25, 26, 28, or 29 further comprising determining approximate reading order of said symbols and generating said compressed representation of said image according to said reading order.
47. The method of claim 46 wherein said reading order is determined by locating symbols on a single line and sorting the symbols.
48. The method of claim 47 wherein the symbols on a line are determined by using a beam to search along the line, the size of said beam varying according to the size of one or more adjacent symbols.
49. The method of claim 48 wherein bounds on the size of the beam are imposed.
50. The method of any of claims 1, 2, 3, 4, 5, 8, 9, 10, 25, 26, 28, or 29 applied to an image transmission system.
51. The method of any of claims 1, 2, 3, 4, 5, 8, 9, 10, 25, 26, 28, or 29 applied to a facsimile transmission system.
52. The method of any of claims 1. 2, 3, 4, 5, 8, 9, 10, 25, 26, 28, or 29 applied to an image enhancement system.
53. The method of any of claims 1, 2, 3, 4, 5, 8, 9, 10, 25, 26, 28, or 29 applied to an image storage system.
54. Apparatus for compressing images comprising: input means for accepting a first representation of an image, and processing means for a) precompressing said first representation of said image to generate a precompressed representation of said image, b) identifying symbols in said precompressed representation of said image, c) comparing a plurality of identified symbols to each of at least one template from a library of templates to match identified symbols to templates, and d) generating a compressed representation of said image including a representation of templates, and an indication of a location and a template corresponding to symbols in said image.
55. Apparatus for compressing images comprising: input means for accepting a first representation of an image, and processing means for a) identifying symbols in said first representation of said image, b) comparing a plurality of identified symbols to each of at least one template from a library of templates to match identified symbols to templates, wherein said library is aug¬ mented during image compression by storing in said library symbols for which no matching template is found as new templates, and wherein templates are defined by representations determined by a plurality of the symbols which match, and c) generating a compressed representation of said image including a representation of templates, and an indication of a location and a template corresponding to symbols in said image.
56. Apparatus for compressing images comprising: input means for accepting a first representation of an image, and processing means for a) identifying symbols in said first presentation of said image, b) comparing a plurality of identified symbols to each of at least one template from a library of templates to match identified symbols to templates, said comparing step in¬ cluding identifying error locations, performing at least one test on said error locations and on other global features of the symbol and the template, and declaring a match between a symbol and a template only if all of the tests in at least one of a set of predetermined groups of tests are passed, and c) generating a compressed representation of said image including a representation of templates, and an indication of a location and a template corresponding to symbols in said image.
57. Apparatus for compressing images comprising: input means for accepting a first representation of an image, and processing means for a) identifying symbols in said first representation of said image, b) comparing a plurality of identified symbols to each of at least one template from a library of templates to match identified symbols to templates, wherein each said template is defined by a representation based on a spatial distribution of pixels of a first type, and c) generating a compressed representation of said image including a representation of templates, and an indication of a location and a template corresponding to symbols in said image, wherein the representation of a plurality of said. templates is a representation of the boundary of the spatial distribution of pixels of the first type for the templates.
58. Apparatus for compressing images comprising: input means for accepting a first representation of an image, and processing means for a) identifying symbols in said first representation of said image, b) comparing a plurality of identified symbols to each of at least one template from a library of templates to match identified symbols to templates, and c) generating a compressed representation of said image including a representation of templates, and an indication of a location and a template corresponding to symbols in said image, wherein the representations of a plurality of said templates comprise a reference to a frame template for defining an outer boundary of the template and a list of hole templates with associated positions within said frame template for defining any inner boundaries of said template.
59. Apparatus for compressing images comprising: input means for accepting a first representation of an image, and processing means for a) identifying symbols in said first representation of said image, b) comparing a plurality of identified symbols to each of at least one template from a library of templates to match identified symbols to templates, wherein the templates are indexed in said library according to template features, and wherein said step of comparing proceeds according to the index, whereby those templates more likely, based on features, to match a symbol are compared to the symbol before templates less likely to match, and those templates whose indexed features would preclude a match are not compared, and c) generating a compressed representation of said image including a representation of templates, and an indication of a location and a template corresponding to symbols in said image.
60. Apparatus for compressing images comprising: input means for accepting a first representation of an image, and processing means for a) identifying symbols in said first representation of said image, b) comparing a plurality of identified symbols to each of at least one template from a library of templates to match identified symbols to a template, c) generating a compressed representation of said image including a representation of templates, and an indication of a location and a template corresponding to symbols in said image, and d) reducing the resolution of the representations of a plurality of the templates.
61. The apparatus of any of claims 54-60 further comprising output means for pro¬ viding said compressed representation of said image.
62. The apparatus of any of claims 54-60 wherein said input means is a scanner.
63. The apparatus of claim 62 wherein said output means is a modem.
64. A method for compressing images comprising: precompressing a first representation of an image, said first representation based on pixels of a first type and a second type, to generate a precompressed representation of said image, identifying symbols in said precompressed representation of said image, comparing a plurality of identified symbols to each of at least one template from a library of templates to match identified symbols to templates, and generating a compressed representation of said image including an indication of a location and a template for symbols in said image.
65. The method of claim 64 wherein said first representation of an image is precom¬ pressed by run-length encoding.
66. The method of claim 65 wherein said first representation is based on rows and columns of pixels, and symbols are identified by associating runs of said first type of pixel in adjacent rows of said precompressed representation which have at least one pixel of said first type in the same column or in the same or adjacent columns.
67. A method for compressing images comprising: identifying symbols in a first representation of an image, comparing a plurality of identified symbols to each of at least one template in a library of templates to match identified symbols to templates, said comparing step including iden¬ tifying error locations, performing at least one test on said error locations and on other global features of the symbol and the template, and declaring a match between a symbol and a template only if all of the tests in at least one of a set of predetermined groups of tests are passed, and generating a compressed representation of said image including an indication of a location and a template for symbols in said image.
68. The method of claim 67 wherein a match is declared only if every test in said at least one test is passed.
69. The method of claim 67 wherein said first representation is based on rows and columns of pixels of a first type and a second type, said comparing step including identifying error pixel locations which have a pixel of said first type in only said symbol or said template, but not both, and performing at least one test on said error pixel locations and other global features of the symbol and the template, a match between a symbol and a template being declared only if all of the tests in at least one of a set of predetermined groups of tests are passed.
70. The method of claim 69 wherein said error locations are run-length encoded.
71. The method of claim 69 wherein one of said at least one test is passed if the distance between each error pixel location and the nearest pixel of the first type in the template or symbol having a pixel of the second type at the error pixel location is less than a predetermined value.
72. The method of claim 69 wherein one of said at least one test is passed if the distance between each error pixel location and the nearest pixel of the second type in the template or symbol having a pixel of the first type at the error pixel location is less than a predetermined value.
73. The method of claim 69 wherein one of said at least one test depends on the sizes, shapes, and orientations of contiguous groups of error pixels in some error map.
74. The method of claim 73 wherein one of said at least one test is passed if all contiguous groups of error pixel locations are smaller than predetermined sizes and shapes.
75. The method of claim 73 wherein one of said at least one test is passed if inferred shifts of the symbol relative to the template are consistent.
76. The method of claim 75 wherein shifts are inferred from the sizes, shapes, and orientations of contiguous groups of error pixel locations and their relation to adjacent pixels.
77. The method of claim 76 wherein shifts are inferred from triangles of pixels in the template and symbol error maps such that the inferred shift is towards or away from the fourth pixel in the square bounding the triangle depending on whether said fourth pixel has the same or different parity, respectively, as the triangle pixels in the template.
78. The method of claim 69 wherein one of said at least one test is passed if the difference in heights between a template and a symbol is less than a predetermined value.
79. The method of claim 69 wherein one of said at least one test is passed if the difference in widths between a template and a symbol is less than a predetermined value.
80. The method of claim 69 wherein one of said at least one test is passed if the ratio of the number of pixels of the first type in the symbol and the number of pixels of the first type in the template is within a predetermined range.
81. The method of claim- 69 wherein one of said at least one test is passed if the ratio of the number of error pixel locations to the number of pixels of the first type in said template or said symbol, or the minimum or maximum of the two, is less than a predetermined value.
82. The method of claim 69 wherein one of said at least one test is passed if the ratio of the number of error pixel locations to the number of pixels of the first type adjacent to a pixel of said second type in said template or said symbol, or the minimum or maximum of the two, is less than a predetermined value.
83. The method of claim 67, 68, or 69 wherein at least one of said at least one test depends on symbol size.
84. A method for compressing images comprising: identifying symbols in a first representation of an image, comparing a plurality of identified symbols to each of at least one template in a library of templates to match identified symbols to templates, wherein the templates are indexed in said library according to template features, and wherein said step of comparing proceeds according to the index, whereby those templates more likely, based on features, to match a symbol are compared to the symbol before templates less likely to match, and those templates whose indexed features indicate that the likelihood of a match falls below a predetermined threshold are not compared, and generating a compressed representation of said image including an indication of a location and a template for symbols in said image.
PCT/US1992/010172 1991-12-16 1992-11-23 Method and apparatus for compression of images WO1993012610A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1019940702071A KR950700662A (en) 1991-12-16 1992-11-23 METHOD AND APPARATUS FOR COMPRESSION OF IMAGES
EP93900650A EP0617870A1 (en) 1991-12-16 1992-11-23 Method and apparatus for compression of images
JP5510925A JPH07505024A (en) 1991-12-16 1992-11-23 Image compression method and device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/808,539 1991-12-16
US07/808,539 US5303313A (en) 1991-12-16 1991-12-16 Method and apparatus for compression of images

Publications (1)

Publication Number Publication Date
WO1993012610A1 true WO1993012610A1 (en) 1993-06-24

Family

ID=25199069

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1992/010172 WO1993012610A1 (en) 1991-12-16 1992-11-23 Method and apparatus for compression of images

Country Status (7)

Country Link
US (1) US5303313A (en)
EP (1) EP0617870A1 (en)
JP (1) JPH07505024A (en)
KR (1) KR950700662A (en)
AU (1) AU3224693A (en)
CA (1) CA2125868A1 (en)
WO (1) WO1993012610A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5410611A (en) * 1993-12-17 1995-04-25 Xerox Corporation Method for identifying word bounding boxes in text
US5539841A (en) * 1993-12-17 1996-07-23 Xerox Corporation Method for comparing image sections to determine similarity therebetween
US8326037B1 (en) 2005-11-23 2012-12-04 Matrox Electronic Systems, Ltd. Methods and apparatus for locating an object in an image
US10681388B2 (en) 2018-01-30 2020-06-09 Google Llc Compression of occupancy or indicator grids

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10361802B1 (en) 1999-02-01 2019-07-23 Blanding Hovenweep, Llc Adaptive pattern recognition based control system and method
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
US6400996B1 (en) 1999-02-01 2002-06-04 Steven M. Hoffberg Adaptive pattern recognition based control system and method
US5903454A (en) 1991-12-23 1999-05-11 Hoffberg; Linda Irene Human-factored interface corporating adaptive pattern recognition based controller apparatus
US5901246A (en) * 1995-06-06 1999-05-04 Hoffberg; Steven M. Ergonomic man-machine interface incorporating adaptive pattern recognition based control system
US6850252B1 (en) 1999-10-05 2005-02-01 Steven M. Hoffberg Intelligent electronic appliance system and method
US6418424B1 (en) 1991-12-23 2002-07-09 Steven M. Hoffberg Ergonomic man-machine interface incorporating adaptive pattern recognition based control system
US5321520A (en) * 1992-07-20 1994-06-14 Automated Medical Access Corporation Automated high definition/resolution image storage, retrieval and transmission system
JPH06149990A (en) * 1992-11-02 1994-05-31 Fujitsu Ltd Image compressing method and image processing device
DE69431101T2 (en) * 1994-03-18 2002-11-28 Hewlett Packard Co Printer system with compressed typesetting, which saves space
DE69519323T2 (en) * 1994-04-15 2001-04-12 Canon Kk System for page segmentation and character recognition
JP3415270B2 (en) * 1994-06-03 2003-06-09 ソニー株式会社 Image signal encoding method and decoding method
JP3150856B2 (en) * 1994-10-12 2001-03-26 株式会社リコー Image processing method
US6343152B1 (en) * 1994-10-18 2002-01-29 Peerless Systems Corporation Bi-level image compression by gray scale encoding
US5594809A (en) * 1995-04-28 1997-01-14 Xerox Corporation Automatic training of character templates using a text line image, a text line transcription and a line image source model
US5706364A (en) * 1995-04-28 1998-01-06 Xerox Corporation Method of producing character templates using unsegmented samples
US5956419A (en) * 1995-04-28 1999-09-21 Xerox Corporation Unsupervised training of character templates using unsegmented samples
US5689620A (en) * 1995-04-28 1997-11-18 Xerox Corporation Automatic training of character templates using a transcription and a two-dimensional image source model
US5883986A (en) * 1995-06-02 1999-03-16 Xerox Corporation Method and system for automatic transcription correction
JPH0981763A (en) * 1995-07-07 1997-03-28 Oki Data:Kk Method and device for compressing character and image mixed data
US6041137A (en) 1995-08-25 2000-03-21 Microsoft Corporation Radical definition and dictionary creation for a handwriting recognition system
US5764808A (en) * 1995-10-26 1998-06-09 Motorola, Inc. Method and device for compact representation of a discrete region contour
US5778095A (en) * 1995-12-20 1998-07-07 Xerox Corporation Classification of scanned symbols into equivalence classes
US5818965A (en) * 1995-12-20 1998-10-06 Xerox Corporation Consolidation of equivalence classes of scanned symbols
US5784284A (en) * 1995-12-29 1998-07-21 Snap-On Tools Company Technique for plotting a variable-width signal in a fixed-width plot area
JP3636809B2 (en) * 1996-03-12 2005-04-06 株式会社リコー Image processing method
US5884014A (en) * 1996-05-23 1999-03-16 Xerox Corporation Fontless structured document image representations for efficient rendering
JP3061765B2 (en) 1996-05-23 2000-07-10 ゼロックス コーポレイション Computer-based document processing method
US5835638A (en) * 1996-05-30 1998-11-10 Xerox Corporation Method and apparatus for comparing symbols extracted from binary images of text using topology preserved dilated representations of the symbols
US6094453A (en) * 1996-10-11 2000-07-25 Digital Accelerator Corporation Digital data compression with quad-tree coding of header file
US6275610B1 (en) 1996-10-16 2001-08-14 Convey Corporation File structure for scanned documents
JP2940496B2 (en) * 1996-11-05 1999-08-25 日本電気株式会社 Pattern matching encoding apparatus and method
JP2974061B2 (en) 1996-11-13 1999-11-08 日本電気株式会社 Pattern extraction device
JP2836681B2 (en) * 1997-01-14 1998-12-14 日本電気株式会社 Pattern matching encoding method and encoding device
JP3082837B2 (en) 1997-03-19 2000-08-28 日本電気株式会社 Pattern matching encoding device, decoding device, and recording medium
JP3284932B2 (en) * 1997-08-05 2002-05-27 松下電器産業株式会社 Image processing device
US6020972A (en) * 1997-11-14 2000-02-01 Xerox Corporation System for performing collective symbol-based compression of a corpus of document images
JPH11167623A (en) * 1997-12-03 1999-06-22 Canon Inc Image processor and image processing method
JP3095071B2 (en) * 1998-04-21 2000-10-03 日本電気株式会社 Pattern matching encoding apparatus and encoding method therefor
US6748115B1 (en) 1998-06-19 2004-06-08 Cvision Technologies Llc Perceptually lossless image compression
US6373981B1 (en) 1998-12-21 2002-04-16 Xerox Corporation Method and apparatus for segmenting data to create mixed raster content planes
US6400844B1 (en) 1998-12-02 2002-06-04 Xerox Corporation Method and apparatus for segmenting data to create mixed raster content planes
US6324305B1 (en) 1998-12-22 2001-11-27 Xerox Corporation Method and apparatus for segmenting a composite image into mixed raster content planes
US7966078B2 (en) 1999-02-01 2011-06-21 Steven Hoffberg Network media appliance system and method
JP4416890B2 (en) * 1999-12-20 2010-02-17 富士通株式会社 Form identification device
JP2001203897A (en) 2000-01-18 2001-07-27 Nec Corp Pattern-matching encoding device and its method
US6658148B1 (en) * 2000-06-06 2003-12-02 Matsushita Electric Works, Ltd. Image processing method and apparatus
US6778291B1 (en) 2000-06-12 2004-08-17 Hewlett-Packard Development Company, L.P. Fast page analyzer for proper selection of compression engine for rendered data
US6832007B1 (en) * 2000-11-21 2004-12-14 Xerox Corporation Method and system for compensating for scaling artifacts in mixed raster content (MRC) representations
KR100382649B1 (en) * 2000-12-29 2003-05-09 삼성전자주식회사 Methods and apparatuses for compressing and recovering data for hard copy apparatus
EP1362340A4 (en) * 2001-01-09 2007-01-10 Goldklang Meshilim Zisha Improved apparatus and methods for replacing decorative images with text and/or graphical patterns
US7164369B2 (en) * 2001-06-19 2007-01-16 Sharp Laboratories Of America, Inc. System for improving storage efficiency of digital files
US7068271B2 (en) * 2001-09-05 2006-06-27 Autodesk, Inc. Assembly patterns by feature association
US7068844B1 (en) * 2001-11-15 2006-06-27 The University Of Connecticut Method and system for image processing for automatic road sign recognition
US7024049B2 (en) * 2002-01-16 2006-04-04 Xerox Corporation Method and apparatus for improving image appearance
US7076109B2 (en) * 2002-03-28 2006-07-11 International Business Machines Corporation System and method of automatically determining the dominant periodicity in sequential binary data
US7017816B2 (en) * 2003-09-30 2006-03-28 Hewlett-Packard Development Company, L.P. Extracting graphical bar codes from template-based documents
CN100541537C (en) * 2003-11-24 2009-09-16 廖宏 A kind of method of utilizing computing machine to the compression of digitizing files
KR100597004B1 (en) * 2004-11-22 2006-07-06 삼성전자주식회사 The apparatus for processing of the binary image using the reassignment of the symbol dictionary and the method thereof
US7492957B1 (en) * 2005-08-29 2009-02-17 Symantec Corporation Using run length encoding to detect target images
US8155312B2 (en) * 2005-10-18 2012-04-10 The University Of Connecticut Optical data storage device and method
US8019164B2 (en) * 2007-01-29 2011-09-13 Hitachi High-Technologies Corporation Apparatus, method and program product for matching with a template
US8229232B2 (en) * 2007-08-24 2012-07-24 CVISION Technologies, Inc. Computer vision-based methods for enhanced JBIG2 and generic bitonal compression
US9053359B2 (en) 2012-06-07 2015-06-09 Konica Minolta Laboratory U.S.A., Inc. Method and system for document authentication using Krawtchouk decomposition of image patches for image comparison
US9230383B2 (en) 2012-12-28 2016-01-05 Konica Minolta Laboratory U.S.A., Inc. Document image compression method and its application in document authentication
CN104778491B (en) * 2014-10-13 2017-11-07 刘整 For the image code of information processing and generation with parsing its apparatus and method
CN113127637A (en) * 2019-12-31 2021-07-16 中兴通讯股份有限公司 Character restoration method and device, storage medium and electronic device
US11562522B2 (en) * 2020-07-24 2023-01-24 Unity Technologies Sf Method and system for identifying incompatibility between versions of compiled software code

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0098958A2 (en) * 1982-07-13 1984-01-25 International Business Machines Corporation Method of encoding and transmitting documents for text processing systems
GB2160062A (en) * 1984-05-31 1985-12-11 Kokusai Denshin Denwa Co Ltd Facsimile image encoding method
US4606069A (en) * 1983-06-10 1986-08-12 At&T Bell Laboratories Apparatus and method for compression of facsimile information by pattern matching

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4091424A (en) * 1977-02-18 1978-05-23 Compression Labs, Inc. Facsimile compression system
US4410916A (en) * 1979-08-24 1983-10-18 Compression Labs, Inc. Dual mode facsimile coding system and method
US4288782A (en) * 1979-08-24 1981-09-08 Compression Labs, Inc. High speed character matcher and method
US4773098A (en) * 1980-05-27 1988-09-20 Texas Instruments Incorporated Method of optical character recognition
SE448922B (en) * 1980-10-21 1987-03-23 Ibm Svenska Ab METHOD FOR PROCESSING VIDEO DATA BY AN OPTICAL SIGN IDENTIFICATION SYSTEM WITH A CHARACTER IDENTIFICATION DEVICE IN AN OPTICAL DOCUMENT READER
US4463386A (en) * 1982-05-03 1984-07-31 International Business Machines Corporation Facsimile data reduction
US4499499A (en) * 1982-12-29 1985-02-12 International Business Machines Corporation Method for identification and compression of facsimile symbols in text processing systems
US4628534A (en) * 1984-07-06 1986-12-09 Honeywell Information Systems Inc. Method for changing the resolution of compressed image data
US4887304A (en) * 1987-09-30 1989-12-12 Raytheon Company Library image optimization
US5109432A (en) * 1989-12-27 1992-04-28 Fujitsu Limited Character recognition method
JPH03238567A (en) * 1990-02-15 1991-10-24 Eastman Kodatsuku Japan Kk Pattern recognition device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0098958A2 (en) * 1982-07-13 1984-01-25 International Business Machines Corporation Method of encoding and transmitting documents for text processing systems
US4606069A (en) * 1983-06-10 1986-08-12 At&T Bell Laboratories Apparatus and method for compression of facsimile information by pattern matching
GB2160062A (en) * 1984-05-31 1985-12-11 Kokusai Denshin Denwa Co Ltd Facsimile image encoding method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PROCEEDINGS CONFERENCE ON PATTERN RECOGNITION AND IMAGE PROCESSING 1982, NEW JERSEY, US pages 191 - 196 J. SEGEN AND O. JOHNSEN 'Facsimile compression by pattern matching' *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5410611A (en) * 1993-12-17 1995-04-25 Xerox Corporation Method for identifying word bounding boxes in text
US5539841A (en) * 1993-12-17 1996-07-23 Xerox Corporation Method for comparing image sections to determine similarity therebetween
US8326037B1 (en) 2005-11-23 2012-12-04 Matrox Electronic Systems, Ltd. Methods and apparatus for locating an object in an image
US10681388B2 (en) 2018-01-30 2020-06-09 Google Llc Compression of occupancy or indicator grids

Also Published As

Publication number Publication date
JPH07505024A (en) 1995-06-01
KR950700662A (en) 1995-01-16
CA2125868A1 (en) 1993-06-24
US5303313A (en) 1994-04-12
EP0617870A1 (en) 1994-10-05
AU3224693A (en) 1993-07-19

Similar Documents

Publication Publication Date Title
US5303313A (en) Method and apparatus for compression of images
US4546385A (en) Data compression method for graphics images
Pratt et al. Combined symbol matching facsimile data compression system
JP3925971B2 (en) How to create unified equivalence classes
Howard Text image compression using soft pattern matching
US7184589B2 (en) Image compression apparatus
EP0411232B1 (en) Method for high-quality compression by binary text images
Howard Lossless and lossy compression of text images by soft pattern matching
US7376266B2 (en) Segmented layered image system
US6275620B2 (en) Method and apparatus for pre-processing mixed raster content planes to improve the quality of a decompressed image and increase document compression ratios
KR100938099B1 (en) Clustering
EP0680016B1 (en) System and method for compressing images
US5751859A (en) Compression of text images by soft pattern matching
JPS6118381B2 (en)
US6996280B1 (en) Image encoder, image decoder, character checker, and data storage medium
JPS6343036B2 (en)
JPH0870386A (en) Selecting method for compression procedure
JP3977468B2 (en) Symbol classification device
US7113638B2 (en) Image compression usable with animated images
US20030202708A1 (en) Compression of bi-level images with explicit representation of ink clusters
Ye et al. Dictionary design for text image compression with JBIG2
EP0902398B1 (en) Method and system for compressing and decompressing binary representations of dithered images
US7259891B2 (en) Image compression method, decompression method thereof and program therefor
Langley et al. Google Books: Making the public domain universally accessible
US6088039A (en) Compression of grey scale images of text

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AU BR CA JP KP KR RU

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWE Wipo information: entry into national phase

Ref document number: 2125868

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: 1993900650

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1993900650

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: 1993900650

Country of ref document: EP