Features for retrieval and similarity matching of documents from the compressed domain
23 claims: 6 independent, 17 dependent
- 1A method comprising:extracting (102) in the compressed domain at least one multi-resolution bit distribution from a header in a multi-resolution codestream of compressed data of a first document image;generating at least one resolution-level segmentation map from one of the at least one multi-resolution bit distribution;computing (501) high-resolution information by masking the multi-resolution bit distribution at a high resolution with the at least one resolution-level segmentation map at a high resolution level to obtain masked image information;classifying the high resolution information into text data and non-text data classes by applying (502) a Gaussian Mixture Model with the resolution-level segmentation map and the multi-resolution bit distribution to the masked image information;applying a (504) projection method to the masked image information classified as text data to determine a number of columns;generating one or more attributes of the first document image using the number of columns determined in the applying step;and performing similarity matching (105) between the first document image and one or more other document images using the one or more attributes.
- 2The method defined in Claim 1 wherein each of the at least one multi-resolution bit distribution corresponds to one image component.
- 3The method defined in Claim 2 wherein the one image component comprises one selected from the group consisting of a luminance plane, a chrominance plane, and a color plane.
- 4The method defined in Claim 1 wherein the at least one multi-resolution bit distribution provides information of the first document image at codeblock resolution.
- 5The method defined in Claim 4 wherein the at least one multi-resolution bit distribution is indicative of information on a visual document layout of the first document image.
- 6The method defined in Claim 1 wherein computing (501) the high-resolution information from the at least one resolution-level segmentation map comprises masking the at least one multi-resolution bit distribution at a first resolution level with the resolution-level segmentation map at a second resolution level.
- 7The method as claimed in any one preceding claim wherein the similarity matching (105) includes applying a correlation between contour maps of first and second document images at various resolutions to produce a similarity measure ( Sim ) determined in accordance with:Sim im 1 , im 2 = ∑ m correlation CM im 1 m , CM im 2 m , where CM im1 (m) and CM im2 (m) are the contour map of the first and second document images respectively at resolution level m.
- 8An apparatus comprising:means for extracting (102) in the compressed domain at least one multi-resolution bit distribution from a header in a multi-resolution codestream of compressed data of a first document image;means for generating at least one resolution-level segmentation map from one of the at least one multi-resolution bit distribution;means for computing (501) high-resolution information by masking the multi-resolution bit distribution at high resolution with the at least one resolution-level segmentation map at a high resolution level to obtain masked image information;means for classifying the high resolution information into text data and non-text data classes by applying (502) a Gaussian Mixture Model with the resolution-level segmentation map and the multi-resolution bit distribution to the masked image information;and means for applying (504) a projection method to the masked image information classified as text data to determine a number of columns;and means for generating one or more attributes of the first document image using the number of columns determined by the means for applying(105) a projection method;and means for performing similarity matching between the first document image and one or more other document images using the one or more attributes.
- 9The apparatus defined in Claim 8 wherein the means for computing (501) the high-resolution information is arranged to mask the at least one multi-resolution bit distribution at a first resolution level with the resolution-level segmentation map at a second resolution level.
- 10An apparatus as claimed in claims 8 or 9 comprising:an input port (802) to receive a first document image;a retrieved attributes calculation unit (809) coupled to the input port (802) to generate one or more attributes of the first document image using at least one multi-resolution bit distribution extracted from a header in a multi-resolution codestream of compressed data of the first document image;and a document management system (810) to perform similarity matching between the first document image and one or more other document images of one or more retrieved documents using the one or more attributes and to determine if at least one retrieved document meets a similarity threshold.
- 11The apparatus defined in Claim 10 further comprising an output port (807) coupled to output the at least one retrieved document, if any.
- 12The apparatus defined in Claim 11 further comprising a printer (808) coupled to the output port (807) to print the at least one retrieved document.
- 13The apparatus defined in Claim 9 further comprising a scanner (801) coupled to the input port (802) to create the first document image.
- 15The apparatus defined in Claim 14 wherein the one image component comprises one selected from the group consisting of a luminance plane, a chrominance plane, and a color plane.
- 17The apparatus defined in Claim 16 wherein the at least one multi-resolution bit distribution is indicative of information on a visual document layout of the first document image.
- 18The apparatus defined in Claim 10 wherein the retrieval attributes calculation unit (809) is arranged to generate the one or more attributes by generating at least one resolution-level segmentation map from one of the at least one multi-resolution bit distribution.
- 19The apparatus defined in Claim 18 wherein the retrieval attributes calculation unit (809) is arranged to generate at least one resolution-level segmentation map by generating one resolution-level segmentation map for planes of one selected from a group consisting of color planes and a group of luminance and chrominance planes.
- 20The apparatus defined in Claim 19 wherein the one or more attributes comprise one or more selected from a group consisting of one or more content percentages relating to an amount of one or more of text, image, color and background in the first document image, one or more statistics of connected components in the at least one segmentation map, spatial relationships between components in one or both of the at least one segmentation map and one or more bit distribution images, one or more histograms for code block partition, one or more resolution-level histograms, column layout, and one or more of projection histograms of text blocks, background blocks, color blocks, and resolution values in the at least one resolution-level segmentation map.
- 21The apparatus defined in Claim 18 wherein the retrieval attributes calculation unit (809) is arranged to compute the high-resolution information from the at least one resolution-level segmentation map by masking the at least one multi-resolution bit distribution at a first resolution level with the resolution-level segmentation map at a second resolution level.
- 22The apparatus as claimed in any of claims 8 to 21, wherein the means for performing similarity (105) produces a similarity measure (Sim) by applying a correlation between contour maps of first and second document images at various resolutions in accordance with:Sim im 1 , im 2 = ∑ m correlation CM im 1 m , CM im 2 m , where CM im1 (m) and CM im2 (m) are the contour map of the first and second document images respectively at resolution level m.
Independent claims23
113 paragraphs in 1 section, as filed
<u style="single">FIELD OF THE INVENTION</u>
0001The present invention relates generally to the field of image processing. More particularly, this invention relates to generating features for retrieval and similarity matching using data from one or more multi-resolution codestreams of compressed data.
<u style="single">BACKGROUND OF THE INVENTION</u>
0002Today, due to the increase in the creation and transmission of electronic document images and scanning of paper documents, many document images are maintained in database systems that include retrieval utilities. Consequently, it has become increasingly important to be able to efficiently and reliably determine whether a duplicate of a document submitted for insertion is already present in a database because duplicate documents stored in the database will needlessly consume precious storage space. Determining whether a database contains a duplicate of a document is referred to as document matching.
0003The area of image and document retrieval is a well-established field. One goal of image and document retrieval is to convert image information into a form that allows easy browsing, searching, and retrieval. Over the last twenty years, many methods have been developed from text indexing to document matching using complex object descriptions, e.g. faces, animals, etc. Traditionally, the image analysis that is necessary to extract desired information from an image is performed in the pixel domain. As a consequence, speed and computational complexity become an issue for large images such as scanned documents.
0004Image and/or document retrieval has a rich and long history. Typically, characteristic image features derived from the original image are combined into a one- or multi-dimensional feature vector. Those feature vectors are then used for measuring similarities between images. The features (or attributes) can be divided into two categories, semantic and visual attributes. Semantic attributes are usually based on optical character recognition (OCR) and language understanding. The visual attributes use pure image information and include features like color histograms. Some methods combine the two and link images to nearby text. A good overview of the area of image retrieval is given in "<nplcit id="ncit0001" npl-type="s"><text>Image Retrieval: Current Techniques, Promising Directions, and Open Issues," by Y. Rui and T.S. Huang, Journal of Visual Communication and Image Representation, vol. 10, pp. 39-62, 1999</text></nplcit>.
0005In currently available image-content based retrieval systems, color, texture and shape features are frequently used for document matching. Matching document images that are mostly bitonal and similar in shape and texture poses different problems. One common document matching technique is to analyze the layout of the document and look for structurally similar documents in the database. Unfortunately, this approach requires computationally intensive page analysis. Thus, most retrieval methods are located in the pixel domain.
0006Because the majority of document images in databases are stored in compressed formats, it is advantageous to perform document matching on compressed files. This eliminates the need for decompression and recompression and makes commercialization more feasible by reducing the amount of memory required. Of course, matching compressed files presents additional challenges. Some work has been focused in the compressed domain for G4 images. More specifically, the prior art in the compressed domain for G4 images is concentrated on matching G-4 compressed fax documents. For CCITT Group 4 compressed files, pass codes have been shown to contain information useful for identifying similar documents. In one prior-art technique, pass codes are extracted from a small text region and used with the Hausdorff distance metric to correctly identify a high percentage of duplicate documents. However, calculation of the Hausdorff distance is computationally intensive. In another G4-based retrieval method, up- and down-endpoints are extracted from the compressed file (groups of text rows) and used to generate a bit profile. The matching process is divided into coarse matching and detailed matching. Feature vectors derived from the bit profile are used for coarse matching. A small segment of the bit profile is used in the detailed matching. For more information, see <patcit id="pcit0001" dnum="US6363381B"><text>U.S. Patent No. 6,363,381</text></patcit>, entitled "Compressed Document Matching," issued to D.S. Lee and J. Hull on March 26, 2002.
0007In another prior art technique involving compressed documents, segmentation of documents occurs in the compressed JPEG domain. More specifically, in this technique, a single-resolution bit distribution is extracted from a JPEG encoded image by decoding some of the data to extract the number of bits spent to encode an 8x8 block. Based on this distribution, a segmentation operation is performed to segment the image into text, halftone, contone, and background region. For more information, see <nplcit id="ncit0002" npl-type="s"><text>R.L. deQueiroz and R. Eschbach, "Fast Segmentation of the JPEG Compressed Documents," Journal of Electronic Imaging, vol. 7, no. 2, pp. 367-377, 1998</text></nplcit>.
0008In another prior art technique involving feature extraction from the compressed data domain, side information is encoded containing first and seconds moments of the coefficients in each block. The moments are the only information used for retrieval. For more information, see <nplcit id="ncit0003" npl-type="s"><text>Z. Xiong and T.S. Huang, "Wavelet-based Texture Features can be Extracted Efficiently from Compressed-Domain for JPEG2000 Coded Images," Proc. of Intl' Conf. on Image Processing (ICIP) 2002, Sept. 22-25, 2002, Rochester, New York</text></nplcit>.
0009In still another prior art technique, features are extracted during decoding of a JPEG 2000 codestream. More specifically, a map resembling an edge map is derived during decoding by localizing significant wavelet coefficients. Note that this technique requires that some decoding of data is performed. For more information, see <nplcit id="ncit0004" npl-type="b"><text>Jian, J., Guo, B., Li, P., "Extracting Shape Features in JPEG-2000 Compressed Images," Lecture Notes in Computer Science, vol. 2457, Springer Verlag, Berlin, 2002</text></nplcit>.
0010Visual similarity of binary documents is typically being described by a one-dimensional feature vector that captures global and local characteristics of the document. The feature vector is then used to measure similarity with other feature vectors by evaluating the inner product of the two vectors. Typically used features include global features, projection features, and local features. Global features include a percentage of content (text, image, graphics, non-text), dominant point size for text, statistics of connected components (count, sum, mean, median, std., height, width, area, perimeter, centroid, density, circularity, aspect ratio, cavities, etc.), a color histogram, the presence of large text, and the presence of tables. Projection features include a percentage of content in row/columns, column layout, and statistics of connected components (width, height). Local features include dominant content type, statistics of connected components (width, height, etc.), column structure, region-based color histograms, relative positions of components. These features have only been used in the pixel domain.
0011For more information on visual similarity of binary documents, see <nplcit id="ncit0005" npl-type="s"><text>M. Aiello et al., "Document Understanding for a Broad Class of Documents," 2002</text></nplcit>; <patcit id="pcit0002" dnum="US5933823A"><text>U.S. Patent No. 5,933,823</text></patcit>, entitled "Image Database Browsing and Query using Texture Analysis," issued to J. Cullen et al., August 3, 1999; and <nplcit id="ncit0006" npl-type="s"><text>C.K. Shin and D.S. Doermann, "Classification of Document Page Images Based on Visual Similarity of layout structures," Proc. SPIE, Vol. 3967, Document Recognition and Retrieval VII, pp. 182-190, San Jose, CA, 2000</text></nplcit>.
0012There are a number of other methods and systems for content-based image retrieval for photographic pictures. The survey paper of Y. Rui and T.S. Huang discussed above gives an overview of the type of features derived from images. Another paper entitled, "<nplcit id="ncit0007" npl-type="s"><text>Content-Based Image Retrieval Systems: A Survey," by R.D. Veltcamp, R.C. and M. Tanase, Technical Report UU-CS-200-34, Department of Computing Science, Utrecht University, October 2000</text></nplcit>, gives an overview of complete systems and their features. One that is widely known is probably QBIC by IBM, but there are many more. The methods discussed in these references are based on processing image values and are not performed in the compressed domain. Typically features derived from images are color histogram, geometric histogram, texture, shape, faces, background, spatial relations between objects, indoor/outdoor, and connected components (size, center, vertical and horizontal projections, etc.). Again, these features are only derived from images that are represented in the pixel domain.
SUMMARY OF THE INVENTION
0013A method and apparatus for image processing is described. In one embodiment, the method comprises accessing header data from a multi-resolution codestream of compressed data of a first document image, deriving one or more retrieval attributes from the header information, and performing image analysis between the first document image and a second document image based on the one or more retrieval attributes.
0014The invention provides a method as claimed in claim 1 and an apparatus as claimed in claim 8 below.
<u style="single">BRIEF DESCRIPTION OF THE DRAWINGS</u>
0015The present invention is illustrated by way of example and not limitation in the figures of the accompanying drawings in which like references indicate similar elements. <ul id="ul0001" list-style="none" compact="compact"><li><figref idref="f0001">Figure 1</figref> is a flow diagram of one embodiment of a process for image and/or document retrieval;</li><li><figref idref="f0002">Figure 2</figref> is an example of a color compound document;</li><li><figref idref="f0003">Figure 3</figref> is an example of a multiresolution bit distribution for five levels;</li><li><figref idref="f0004">Figure 4</figref> is a resolution-level segmentation map for the example image from <figref idref="f0002">Figure 2</figref>;</li><li><figref idref="f0005">Figure 5</figref> is a flow diagram of one embodiment of a process for calculating a column layout.</li><li><figref idref="f0006">Figure 6A</figref> is an example of high-resolution bit distribution (top), masked with high-resolution level segmentation map (bottom) used for computation of column layout;</li><li><figref idref="f0007">Figure 6B</figref> is a contour map for the masked high-resolution bit distribution in <figref idref="f0006">Figure 6A</figref>;</li><li><figref idref="f0008">Figure 7</figref> is a diagram illustrating one embodiment of a layering scheme of a JPEG 2000 code stream for color documents in retrieval applications;</li><li><figref idref="f0009">Figure 8</figref> is a diagram illustrating an MFP with J2K compression/decompression in connection with a document management system;</li><li><figref idref="f0010">Figure 9</figref> is a block diagram of an exemplary computer system;</li><li><figref idref="f0011">Figure 10</figref> illustrates a multi-scale entropy distribution for an image;</li><li><figref idref="f0012">Figure 11</figref> is a flow diagram illustrating one embodiment of a process for segmenting an image; and</li><li><figref idref="f0013">Figure 12</figref> illustrates a segmentation map superimposed on an exemplary image of a woman.</li></ul>
<u style="single">DETAILED DESCRIPTION</u>
0016A method and apparatus for image processing is described. In one embodiment, the method comprises accessing header data from a multi-resolution codestream of compressed data (e.g., a JPEG 2000 standard compliant codestream) of an image and deriving one or more retrieval attributes from the header information. In one embodiment, the header information comprises the number of bits per codeblock. The image may comprise a scanned compound document (i.e., a document having text and image data), a document image, or a photograph.
0017In one embodiment, accessing the header data from the multi-resolution codestream extracts one or more multi-resolution bit distributions from the header. In one embodiment, the multi-resolution bit distribution provides information of a document image at codeblock resolution and is indicative of information on a visual document layout of the first document image. Each of the multi-resolution bit distributions corresponds to one image component. The one image component may be luminance, chrominance, a color plane, a segmentation plane, JPEG 2000 components, colorfulness, noise, or multi-spectral information.
0018In one embodiment, the attributes of the document image are generated by processing a multi-resolution bit distribution to create a resolution-level segmentation map from one of the multi-resolution bit distributions. A number of resolution-level segmentation maps may be generated. Each of these segmentation maps may correspond to a color plane, a luminance, and a chrominance plane. In one embodiment, multiple multi-resolution bit distributions are combined into one. This may be done by adding the bits corresponding to the same locations in each of the multi-resolution bit distributions together. One or more of these maps may be weighted differently than the others, so that the resulting composite map is impacted by those segmentation maps differently. The combination of multi-resolution bit distributions may include the use of a mask (e.g., a segmentation plane) to mask a portion of a segmentation map prior to creating a composite multi-resolution bit distribution.
0019The retrieval attributes may comprise resolution-sensitive features. In one embodiment, the attributes comprise one or more of: content percentages relating to an amount of text, image, color and/or background in a document image, statistics of connected components in a resolution-level segmentation map, spatial relationships between components in a resolution-level segmentation map and/or bit distribution images, histograms for code block partition, resolution-level histograms, column layout, and projection histograms of text blocks, background blocks, color blocks, and resolution values in a resolution-level segmentation map.
0020In one embodiment, the vector of the retrieval attributes is created from the derived retrieval attributes. The vector may be a one-dimensional (1-D) vector and, thus, a 1-D vector is generated from a 2-D document image.
0021Using the derived retrieval attribute(s), image analysis (e.g., document similarity matching, clustering for document categorization, feature matching) may be performed between two document images based on the retrieval attributes. In one embodiment, image analysis is performed by comparing the first vector with a second vector of one or more retrieval attributes associated with a second document image. Based on the results of the image analysis, and particularly in the case that the image analysis is document similarity matching, a document image may be retrieved, categorized, and/or clustered.
0022In the following description, numerous details are set forth to provide a more thorough explanation of the present invention. It will be apparent, however, to one skilled in the art, that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the present invention.
0023Some portions of the detailed descriptions that follow are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
0024It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as "processing" or "computing" or "calculating" or "determining" or "displaying" or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
0025The present invention also relates to apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), erasable programmable ROMs (EPROMs), electrically erasable programmable ROMs (EEPROMs), magnetic or optical cards, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
0026The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will appear from the description below. In addition, the present invention is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the invention as described herein.
0027A machine-readable medium includes any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer). For example, a machine-readable medium includes read only memory ("ROM"); random access memory ("RAM"); magnetic disk storage media; optical storage media; flash memory devices; electrical, optical, acoustical or other form of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.); etc.
Overview of Similarity Matching and Retrieval in the Compressed Domain
0028<ul id="ul0002" list-style="none" compact="compact"><li><figref idref="f0001">Figure 1</figref> is a flow diagram of one embodiment of a process for image processing in the compressed domain. The process is performed by processing logic that may comprise hardware (e.g., circuitry, dedicated logic, etc.), software (such as is run on a general purpose computer system or a dedicated machine), or a combination of both.</li></ul>
0029Referring to <figref idref="f0001">Figure 1</figref>, the process begins by processing logic accesses header information from a multi-resolution codestream of compressed data of a document image (processing block 101). The document image can be binary, gray-scale or color. In one embodiment, the document image comprises a compound document (e.g., a document having both text and image data). The document image may be the result of a scanning operation being performed on a hardcopy document. Then processing logic extracts a multi-resolution bit distribution from the header information (processing block 102) and derives one or more retrieval attributes from the multi-resolution bit distribution (processing block 103). Thus, the retrieval attributes are derived from the header information.
0030For retrieval purposes, in one embodiment, the processing logic extracts a multiresolution bit distribution from header data of a JPEG 2000 compliant codetream as described in <nplcit id="ncit0008" npl-type="s"><text>R. Neelamani and K. Berkner, "Adaptive Representation of JPEG 2000 Images Using Header-based Processing," Proceedings of Int. Conf. Image Processing - ICIP, 2002, vol. 1, pp. 381-384</text></nplcit>. This distribution provides a description of the information of the image at codeblock resolution (e.g., 32x32 or 64x64 wavelet coefficients) and reflects information on the visual document layout.
0031Using the retrieval attributes, processing logic performs image analysis on the document image (processing block 104). Using the results of the image analysis, processing logic performs an operation such as, for example, retrieval or similarity matching of documents, categorization, or clusterings (processing block 105).
0032Thus, the process operates in the compressed data domain to derive visual attributes for documents. In one embodiment, the process operates in the JPEG 2000 compressed data domain in which the header information of a JPEG 2000 compliant codestream is used to derive retrieval attributes. This is in contrast to working in the pixel domain.
Attributes and their Generation
0033From the multiresolution bit distribution, processing logic computes several features. Even though the algorithmic tools for the feature calculation are borrowed from the prior art, the features themselves are novel since they were computed based on a resolution-level segmentation and multiresolution bit distribution map, a novel type of data set in the retrieval field. The generation of a resolution-level segmentation map from compressed data is described in <patcit id="pcit0003" dnum="US04442002A" dnum-type="L"><text>U.S. patent application serial no. 10/044,420</text></patcit>, entitled "Header-Based Processing Of Images Compressed Using Multi-Scale Transforms" filed on January 10, 2002, including its generator from the multi-resolution bit distribution, e.g., color layout statistics of connected components. Examples of how features are generated from the compressed data is discussed below.
0034In one embodiment, in order to determine an attribute, the multi-resolution bit distribution is binarized (i.e., setting one level to 1 and the remaining levels to zero) in a manner well known in the art. This results in a binary map. Using the binary map, well-known prior art methods and algorithms, as described below in more detail, are applied in order to identify an attribute of interest.
0035There are a number of attributes that may be identified using the header data. For example, margins may be identified. More specifically, margins of constant color (e.g., white) typically have zero bits, whereas dense text areas have a large number of bits at high resolutions. Therefore, by examining the multi-resolution and distribution for zero and non-zero bits, a margin area may be identified.
0036Similarly, image areas may be identified. In one embodiment, image areas in text documents can be distinguished by the human observer from text areas due to the different numbers of bits at a high resolution. As a consequence, many well-known algorithmic methods can be applied to the multiresolution bit distribution and features can be derived. For example, see the discussion with respect to <figref idref="f0005">Figure 5</figref> given below. Since the size of the header data is very small compared to the original image size simple algorithms are fast and more complicated algorithms affordable.
0037In one embodiment, features similar to those used, for example, <patcit id="pcit0004" dnum="US5933823A"><text>U.S. Patent No. 5,933,823</text></patcit>, entitled "Image Database Browsing and Query using Texture Analysis," issued to J. Cullen, J. et al., August 3, 1999, can be derived. Note, however, that the bit distribution has different properties than the pixel values; that is, the bit distribution does not contain any real color values (i.e., black vs. white, blue vs. red, etc.), but only knowledge about existence or non-existence of visual information. For example, when determining the column layout of a document, there is no explicit text information, nor black and white regions since color is not present.
0038<figref idref="f0002">Figure 2</figref> is an example of a color compound document. <figref idref="f0003">Figure 3</figref> shows an example of a multi-resolution bit distribution for the luminance component of a five-level decomposition of the example document from <figref idref="f0002">Figure 2</figref>. Referring to <figref idref="f0003">Figure 3</figref>, the top shows bits at the highest resolution, the bottom at the lowest resolution.
0039Groups of image areas with similar resolution properties can form a class with a specific resolution label. In other words, image areas of a document image are created using the bit distribution and then they are compared and processed based on one or more criteria. <figref idref="f0004">Figure 4</figref> shows show the resolution level map for the image example from <figref idref="f0002">Figure 2</figref>. Referring to <figref idref="f0004">Figure 4</figref>, different gray values correspond to different resolution levels (black = 1,... white = 5).
0040There may be multiple segmentation maps, each associated with a different component, or plane (e.g., a color plane, a luminance plane, a chrominance plane). There may be a number of ways to obtain segmentation maps. The segmentation map may be a JPEG 2000 map, or one based on data segmented for certain file formats, such as, for example, JPM or PDF. In certain file formats where different objects are compressed separately (e.g., text and size segmented in JPM), the multi-bit distributions of objects may be combined. In any case, segmentation objects or components may be binarized to obtain a bit distribution.
0041From the resolution-level segmentation maps for the three different color planes Y, Cb, Cr, common features typically used to decribe topological and metric properties of shape as well as convexity, skeleton, etc. can be derived using well-known procedures. For example, exemplary procedures are described in <nplcit id="ncit0009" npl-type="b"><text>R.O. Duda and P.E. Hart, "Pattern Classification and Scene Analysis," John Wiley & Sons, New York, 1973</text></nplcit>. Connected components with statistics, spatial relations between components, histograms, etc., can be computed and organized in a feature vector. The features can be divided into global, local, and projection features, and can be derived for luminance and chroma channels.
0042Global features are those that correspond to the image as a whole. Exemplary global features include the percentage of content (e.g., text, image, color, background); statistics of connected components in segmentation map (e.g., count, sum, mean, median, std., height, width, area, perimeter, centroid, density, circularity, aspect ratio, cavities, etc.); and resolution-level histograms. Resolution-based histograms are created by dividing a segmentation map into blocks and counting the number of blocks that have the same resolution value and meet a predetermined criteria for the image.
0043Local features are those corresponding to individual groups of codestream blocks. Local features may include: relative positions of components in resolution-level maps or bit distribution images (e.g., top-right, etc.); statistics of connected components in resolution-level map or bit distribution images (e.g., width, height, centered, etc.); and histograms for code block partition at a low resolution. A bit distribution image is an image generated by the multi-resolution bit distribution. The relative positions of components may comprise the spatial locations of text regions with respect to image regions. This may include whether space exists between such regions. Once such features are identified, documents having similar features may be identified. Histograms may be generated by dividing the bit distribution into blocks and determining the number of bits in each block because different colors or other features have different bit distributions.
0044<figref idref="f0005">Figure 5</figref> is a flow diagram of one embodiment of a process for calculating column layout. Referring to <figref idref="f0005">Figure 5</figref>, processing logic computes high-resolution information. The highest resolution level depends on the dpi resolution of the original image. In general, the support of a code-block in the spatial domain should cover average character in the document. That means the highest resolution suitable resolution is given by the smallest decomposition level m, such that <maths id="math0001"><math display="block"><msup><mn>2</mn><mo>∧</mo></msup><mo></mo><mfenced><mi>m</mi><mo>+</mo><mn>1</mn></mfenced><mo>⋅</mo><mi>code_block_size</mi><mo>></mo><mi>height_of average_character_in_pixels</mi><mn>.</mn></math><img file="EP1548616B1_D0001.tif" /></maths> For 300 dpi documents, an average character size is 30 pixels. Given a code blocks of size 32x32 coefficients, the resolution level m should be m=1. For 600dpi documents (average character size = 60 pixels), m = 2.
0045In one embodiment, the high-resolution information is computed by masking the bit distribution at a high resolution with the resolution segmentation map at a high resolution level (processing block 501). An exemplary result is shown in <figref idref="f0006">Figure 6A</figref>.
0046Next, processing logic applies a Gaussian Mixture Model with two distributions to the masked image in order to classify the information into two classes - text and non-text (processing block 502). Afterwards, processing logic assigns the label text to one of the classes and the label non-text to the other class (processing block 503). This additional step is used because no information of the actual color is available. Lastly, processing logic applies well-known projection methods to the text-class data in order to determine the number of columns (processing block 504). See <nplcit id="ncit0010" npl-type="s"><text>Baird, H.S., "Global-to-Local Layout Analysis." Proc. of IAPR Workshop on Syntactic and Structural Pattern Recognition, pp. 136-147, Pont-a-Mousson, France, September 1988</text></nplcit> and <nplcit id="ncit0011" npl-type="s"><text>Srihari, S.N., Govindaraju, V., "Analysis of Textual Images Using the Hough Transform," Machine Vision and applications, vol. 2, no. 3, pp. 141-153, 1989</text></nplcit>.
0047Due to the fact that the bit distribution shows areas of codeblock information, but not detailed color information, some of the algorithms for feature detection in the prior art are modified and adapted to the data. For example, with respect to column layout, traditionally, column layout is derived from analyzing white space on a page. Since the codeblock resolution at lower resolutions corresponds to pixel resolution that may be too coarse to capture white space between columns, only the high-resolution information is used to compute column layout.
0048In one embodiment, column layout is determined by projection profile methods. An overview over two different techniques is presented in <nplcit id="ncit0012" npl-type="s"><text>Cattoni, R, Coianiz, T., Messelodi, S., Modena, C.M., "Geometric Layout Analysis Techniques for Document Image Understanding: A review," Technical Report, IRST, Trento, Italy, 1998</text></nplcit>. One method is based on the observation that projection profiles of text regions contain peaks and valleys that correspond to text lines and between lines spaces, respectively (<nplcit id="ncit0013" npl-type="s"><text>Srihari, S.N., Govindaraju, V., "Analysis of Textual Images Using the Hough Transform," Machine Vision and applications, vol. 2, no. 3, pp. 141-153, 1989</text></nplcit>). Positions of base and top lines in correspondence of the peaks are estimated. The other method, "global-to-local" defines a parametric model of a generic text column (<nplcit id="ncit0014" npl-type="s"><text>Baird, H.S., "Global-to-Local Layout Analysis." Proc. of IAPR Workshop on Syntactic and Structural Pattern Recognition, pp. 136-147, Pont-a-Mousson, France, September 1988</text></nplcit>).
0049Projection features may include: projection histograms (horizontal and vertical) of: text blocks, image blocks, background (e.g., margins) blocks, color blocks, resolution level values in segmentation map; and column layout. Projection histograms may be used to determine the number of columns and the number of rows.
0050In general, it is possible to use the multiresolution bit distribution to segment a multi-resolution bit distribution into color and non-colored regions and/or text and background and image regions.
Signature (Spatial Layout Mask) for Similarity Matching
0051In one embodiment, processing logic derives a spatial layout contour map from the masked high-resolution bit distribution. This may be performed in a similar conceptual way to the approach of calculating a spatial layout signature by extracting up- and down-endpoints from the compressed G4 file. See <patcit id="pcit0005" dnum="US6363381B"><text>U.S. Patent No. 6,363,381</text></patcit>, entitled "Compressed Document Matching," issued to D.S. Lee and J. Hull on March 26, 2002. For this purpose an edge detection algorithm is applied to provide the contours. More specifically, a mask is applied to obtain the text regions and then an edge filter is applied to compute edges (i.e., the outline of text regions). This results in a binary image. The resulting contour map is shown in <figref idref="f0007">Figure 6B</figref>.
0052Given the contour maps for a collection of documents, in one embodiment, document similarity matching is performed by computing correlations or the Hausdorff distance between two contour maps. Correlations or the Hausdorff distance may be computed in the same manner as described in <patcit id="pcit0006" dnum="US6363381B"><text>U.S. Patent No. 6,363,381</text></patcit>, entitled "Compressed Document Matching," issued to D.S. Lee and J. Hull on March 26,2002.
0053It is possible to repeat that correlation-computing step for other resolutions and compute matches based on several scales of contour maps. The contour map described above is derived from the high resolution masked image. In a similar way, contour maps can be derived from lower resolution masked images by masking bit distribution at a given resolution m with the resolution segmentation map at resolution level m. The correlation between sets of contour maps at various resolutions can be used as a similarity measure <i>Sim</i>. An example is as follows: <maths id="math0002"><math display="block"><mi mathvariant="italic">Sim</mi><mfenced><mi>im</mi><mo></mo><mn>1</mn><mo>,</mo><mi>im</mi><mo></mo><mn>2</mn></mfenced><mo>=</mo><mstyle displaystyle="false"><munder><mo>∑</mo><mi mathvariant="normal">m</mi></munder><mspace width="1em" /><mi>correlation</mi><mfenced><msub><mi>CM</mi><mrow><mi>im</mi><mo></mo><mn mathvariant="normal">1</mn></mrow></msub><mfenced><mi mathvariant="normal">m</mi></mfenced><mo mathvariant="normal">,</mo><msub><mi>CM</mi><mrow><mi>im</mi><mo></mo><mn mathvariant="normal">2</mn></mrow></msub><mfenced><mi mathvariant="normal">m</mi></mfenced></mfenced></mstyle><mo>,</mo></math><img file="EP1548616B1_D0002.tif" /></maths> where CM<sub>im1</sub>(m) is the contour map of image 1 at resolution level m.
0054Due to the coarse code block resolution, this matching process is relatively insensitive with respect to skew. Since the multiresolution bit distribution provides information of bits per code-block and since a code block covers a spatial area of at least twice the code-block dimensions (e.g. 64x64 pixels for 32x32 code block) encoding documents with small skew angle will result in a similar multi-resolution bit distribution to that for skew angle 0. For skew angles > 30 degree the bit distributions will likely differ. Typically, page segmentation algorithms are applied after skew correction has been performed. A review on skew correction is given in <nplcit id="ncit0015" npl-type="s"><text>Cattoni, R, Coianiz, T., Messelodi, S., Modena, C.M., "Geometric Layout Analysis Techniques for Document Image Understanding: A review," Technical Report, IRST, Trento, Italy, 1998</text></nplcit>.
Layering of the JPEG 2000 Codestream
0055JPEG 2000 supports layering of the coded data. The JPEG 2000 standard does not describe how to assign those layers. For retrieval and similarity matching purposes, in one embodiment, the layering scheme of at least three layers may be used, such as shown in <figref idref="f0008">Figure 7</figref>. Referring to <figref idref="f0008">Figure 7</figref>, the first layer is lumanance at a low bit rate (e.g., 0.2 bpp), the second layer is chroma at a high bit rate or lossless, and the third layer is the remaining bits. The third layer may be split into various layers depending on the application. The data from these layers may be accessed and utilized in the same manner as described above, including combining bit distributions where desired.
An Exemplary Retrieval/Matching System
0056The teachings described herein for header-based retrieval and similarity matching may be applied to a document management system that accesses a multi-function peripheral (MFP). <figref idref="f0009">Figure 8</figref> is a block diagram of one such integration. Referring to <figref idref="f0009">Figure 8</figref>, an input port 802 receives a document image. A scanner 801 may be coupled to input port 802 to create the document image. The document image is received by a first image processing device 803 that is coupled to input port 802 and performs image processing functions such as, for example, gamma correction and noise removal. Next compressor 804 compresses the document image and stores it in storage 805.
0057After storage, retrieval attributes calculation unit 809 generates attributes of the document image using at least one multi-resolution bit distribution extracted from a header in a multi-resolution codestream of compressed data of the first document image in the same manner as described above. The results produced by retrieval attributes calculation unit 809 are sent to document management system 810, which performs similarity matching between the document image and one or more other document images of one or more other documents. The documents may be retrieved using a document management system 810. A document is considered to match the original document if it meets a similarity threshold. Such a process of matching documents based on a predetermined threshold as to their similarity is well-known in the art.
0058Image processing unit 806 is coupled to storage 805 to perform functions, such as, for example, halftoning, etc. An output port 807 is coupled to storage 805 to output one or more retrieved documents, if any. Also a printer 808 may be coupled to the output port 807 to print the at least one retrieved document.
0059JPEG 2000-based retrieval features could also be useful for a low-level retrieval step that is followed by a high-level retrieval step performed on selected image areas in the pixel domain. The low-level retrieval step is one that uses the features described above to identify similar documents in the compressed data domain, while the high-level retrieval step are operations (e.g., OCR, color histogram, etc.) that are performed on a document image that is in the pixel domain.
0060Thus, the present invention is applicable to image retrieval and similarity matching derived from the compressed multi-resolution domain (e.g., JPEG 200 domain), using at least one multiresolution bit distribution, which provides information indicative of the number of bits that are necessary to describe the content of image blocks at various resolutions.
Generation of a Segmentation Map
0061In one embodiment, information in the header is used to generate an entropy distribution map that indicates which portions of the compressed image data contain desirable data for subsequent processing. An example of such a map is given in <figref idref="f0001">Figure 1</figref>. Other maps are possible and may indicate the number of layers, which are described below with the description of JPEG 2000, to obtain a desired bit rate (particularly for cases when layer assignment is related to distortion) or the entropy distribution for each of a number of bit rates. In the latter case, each rectangular area on the map has a vector associated with it. The vector might indicate values for multiple layers.
0062Image representation formats that utilize multi-scale transforms to compress the image description bits typically incorporate many organizational details in the header, so that pixel-wise description about the digital image can be decoded correctly and conveniently. JPEG 2000 is an example of an image compression standard that provides multi-scale bit distributions in the file header. Often the image description bits are divided among smaller units, and the number of bits allocated by the encoder to these units is stored in the image header to facilitate features such as partial image access, adaptation to networked environments, etc. Using information theoretic conventions, the allocated number of bits is referred to as the entropy of each small unit. Entropy distributions used by image coders provide an excellent quantitative measure for visual importance in the compressed images. For lossless compression, an image coder uses more bits to describe the high activity (lot of detail) regions, and less bits to convey the regions with little detail information. For lossy compression, the image coder typically strives to convey the best possible description of the image within the allocated bits. Hence, the coder is designed to judiciously spends the available few bits describing visually important features in the image.
0063<figref idref="f0011">Figure 10</figref> illustrates one multi-scale entropy distribution for an image. The image undergoes JPEG 2000 encoding initially. The underlying patterns are the wavelet coefficients of the image. The thin lines denote the JPEG 2000 division of the wavelet domain coefficients into code blocks, and the thick lines separate the different wavelet sub-bands. In JPEG 2000, the coder performing the encoding process allocates and divides the wavelet domain coefficients into small units called code blocks. The numbers shown in each square are the bits or entropies allocated to the respective code blocks by the JPEG 2000 coder operating at 0.5 bits per pixel using three levels of decomposition. These numbers represent the multiscale entropy distribution.
0064The entropy allocations, which are accessed using only the JPEG 2000 file header, provide a good measure for the visual importance of the different features at various scales and help distinguish between the different types of important image features characterized by different multiscale properties. For example, to describe the feather region in the image, a multi-scale image coder spends many bits coding the fine scale coefficients and less on coarse scale coefficients than, e.g., fine scale coefficients corresponding to the feather region. On the other hand, to code the face region, a multi-scale image coder spends more bits coding the intermediate scale coefficients corresponding to the face region. The smooth background receives few bits. Thus, the multi-scale entropy distribution provides significant information about the underlying image features. Assuming knowledge of the multi-scale entropy distribution is obtained from headers, one or more operations may be performed. These operations may be, for example, image segmentation, automatic active region identification and scaling, and/or adaptive image scaling.
0065JPEG 2000 is a standard to represent digital images in a coherent code-stream and file format (See, e.g., ITU-T Rec. T.800 | ISO/IEC 15444-1:2000, "JPEG 2000 image coding standard," in www.iso.ch). JPEG 2000 efficiently represents digital image by efficiently coding the wavelet coefficients of the image using the following steps. A typical image consists of one or more components (e.g., red, green, blue). Components are rectangular arrays of samples. These arrays are optionally divided further into rectangular tiles. On a tile-by-tile basis, the components are optionally decorrelated with a color space transformation. Each tile-component is compressed independently. Wavelet coefficients of each color component in the tile are obtained. The wavelet coefficients are separated into local groups in the wavelet domain. These are called code blocks. The code blocks are optionally ordered using precincts. Arithmetic coding is used to code these different wavelet-coefficient groups independently. The coded coefficients are optionally organized into layers to facilitate progression. Coded data from one layer of one resolution of one precinct of one component of one tile is stored in a unit called a packet. In addition to coded data, each packet has a packet header. After coding, a tile-component is optionally divided into tile-parts, otherwise the tile-component consists of a single tile-part. A tile-part is the minimum unit in the code-stream that corresponds to the syntax. A JPEG 2000 codestream consists of syntax (main and tile-part headers, plus EOC) and one or more bitstreams. A bitstream consists of packets (coded data for codeblocks, plus any instream markers including instream packet headers). The organizational information to parse the coded data, the packet headers, may be stored in the main header, tile headers, or in-stream. JPEG 2000 has main headers and tile headers, which contain marker segments. JPEG 2000 also has packet headers, which may be contained in marker segments, or be in-strearn in the bit stream. Headers are read and used as inputs to processing which obtains a multiscale entropy distribution. Table I summarizes the information contained in various JPEG 2000 headers that is relevant to header-based processing. <tables id="tabl0001" num="0001"><table frame="all"><title>Table 1: Uses of JPEG 2000 file header information</title><tgroup cols="6"><colspec colnum="1" colname="col1" colwidth="42mm" /><colspec colnum="2" colname="col2" colwidth="42mm" /><colspec colnum="3" colname="col3" colwidth="42mm" /><colspec colnum="4" colname="col4" colwidth="12mm" /><colspec colnum="5" colname="col5" colwidth="11mm" /><colspec colnum="6" colname="col6" colwidth="19mm" /><thead><row><entry valign="top">Header Entries</entry><entry valign="top">Type of Information</entry><entry valign="top">Role to Entropy Estimation</entry><entry valign="top">Main</entry><entry valign="top">Tile</entry><entry valign="top">In-stream</entry></row></thead><tbody><row><entry>Packet header (PPM, PPT, in-stream)</entry><entry>Length of coded data; number of zero bit planes and coding passes</entry><entry>Provides entropy of each code block of each sub-band of each component of tile. Facilitates estimation of entropy allocation at lower bit rates. Provides rough estimate of coefficient energies and magnitudes.</entry><entry align="center">✔</entry><entry align="center">✔</entry><entry align="center">✔</entry></row><row><entry>Packet length (PLM, PLT)</entry><entry>Lengths of packets</entry><entry>Facilitates faster estimation of code block entropies for some JPEG 2000 files</entry><entry align="center">✔</entry><entry align="center">✔</entry><entry align="center" /></row><row><entry>Tile-length part (TLM, SOT)</entry><entry>Lengths of tiles</entry><entry>Provides entropy of each tile. Facilitates local and global entropy comparison</entry><entry align="center">✔</entry><entry align="center">✔</entry><entry align="center" /></row><row><entry>SIZ</entry><entry>Size of image</entry><entry>Helps determine location of code blocks</entry><entry align="center">✔</entry><entry align="center" /><entry align="center" /></row><row><entry>COD, COC, QCC, QCD</entry><entry>Coding style</entry><entry>Number of transform levels, code block size, maximum size of coefficients, precinct information</entry><entry align="center">✔</entry><entry align="center">✔</entry><entry align="center" /></row><row><entry>RGN</entry><entry>Region information</entry><entry>Estimate size and importance of region of interest. Alters meaning of most of the above information</entry><entry align="center">✔</entry><entry align="center">✔</entry><entry align="center" /></row></tbody></tgroup></table></tables> In the case of the packet header (PPM, PPT, in-stream), it may be in either the main header, tile header or in-stream, but not a combination of any two or more of these at the same time. On the other hand, the packet length and tile-length part may be in the main header or the tile headers, or in both at the same time.
Estimation of Low Bit Rate Image From High Bit Rate Image
0066The multi-scale entropy distribution at lower bit rates provides a robust measure for visual importance. At higher bit rates the existence of image noise, which is present in digital images from any sensor or capture device, corrupts the overall entropy distribution. Depending on the application, images are encoded losslessly or lossy. The layering scheme in the JPEG 2000 standard could be used to order the codestream of a lossless or high bit rate encoded image into layers of visual or Mean-Squared-Error (MSE)-based importance. In this case, a low bit rate version of the image could be obtained by extraction of information from only the packets in some layers and ignoring the packets in the other layers. If such layering is not employed by the encoder, the packet length information from the header can yield the multi-scale entropy distribution only at the bit rate chosen by the encoder, e.g. lossless, high bit rate or low bit rate.
0067If the encoder choice was lossless or high bit rate, an estimation of a low bit rate version of the image is obtained before applying any of the image processing algorithms explained later. One embodiment for performing such an estimation is described below. To determine the order in which bits are allocated, information of the maximum of absolute values of coefficients and the number of coding passes in a codeblock from headers as well as heuristic and statistical information on visual or (MSE)-based importance of subbands at various resolution levels is used.
0068The estimation successively subtracts bits from the total number of bits per codeblock until a given bit rate for the image is reached. The order of subtraction is the reverse of a bit allocation algorithm. The allocation algorithm may be the same as the one used by the encoder, but it is not required to be.
0069From the packet header of a JPEG 2000 file the length of a codeblock, i.e. the number of bits "B", number of zero bitplanes "NZ" and the number of coding passes "CP" used during encoding are available. From the number of zero bitplanes, an estimation of the maximum value of absolute values of coefficients in the codeblock, 2<sup>maxB</sup>, can be obtained by computing the maximum non-zero bitplane <maths id="math0003" num="(1)"><math display="block"><mi>MaxB</mi><mo>=</mo><mi>MSB</mi><mfenced><mi>codeblock subband</mi></mfenced><mo>-</mo><mi>NZ</mi><mo>,</mo></math><img file="EP1548616B1_D0003.tif" /></maths> where MSB is the maximum number of bitplanes of the specific subband of which the codebock belongs. MSB is defined by information in the appropriate QCC or QCD header entry for JPEG 2000. Based on visual or MSE-based weighting or statistical properties of images, an order of subbands and bitplanes can be derived that reflects the importance of a bit plane in a given subband. Based on, e.g., MSE importance, the ordering of importance of bit planes in a subband of a 5-level decomposition is given by the one displayed in Table 2. <tables id="tabl0002" num="0002"><table frame="all"><title>Table 2 - Order of importance of bitplanes and subbands based on MSE weighting.</title><tgroup cols="4" colsep="0"><colspec colnum="1" colname="col1" colwidth="77mm" /><colspec colnum="2" colname="col2" colwidth="30mm" /><colspec colnum="3" colname="col3" colwidth="31mm" /><colspec colnum="4" colname="col4" colwidth="24mm" colsep="1" /><thead><row><entry valign="top"><b>order in i (least important, l=1; to most important)</b></entry><entry align="center" valign="top"><b>bitplane b(i)</b></entry><entry align="center" valign="top"><b>subband s(i)</b></entry><entry align="center" valign="top"><b>level l(i)</b></entry></row></thead><tbody><row rowsep="0"><entry align="center"><b>1</b></entry><entry align="center">1st bitplane</entry><entry align="center">HH</entry><entry align="center">level 1</entry></row><row rowsep="0"><entry align="center"><b>2</b></entry><entry align="center">1st bitplane</entry><entry align="center">LH/HL</entry><entry align="center">level 1</entry></row><row rowsep="0"><entry align="center"><b>3</b></entry><entry align="center">1st bitplane</entry><entry align="center">HH</entry><entry align="center">level 2</entry></row><row rowsep="0"><entry align="center"><b>4</b></entry><entry align="center">2nd bitplane</entry><entry align="center">HH</entry><entry align="center">level 1</entry></row><row rowsep="0"><entry align="center"><b>5</b></entry><entry align="center">1st bitplane</entry><entry align="center">LH/HL</entry><entry align="center">level 2</entry></row><row rowsep="0"><entry align="center"><b>6</b></entry><entry align="center">1st bitplane</entry><entry align="center">HH</entry><entry align="center">level 3</entry></row><row rowsep="0"><entry align="center"><b>7</b></entry><entry align="center">2nd bitplane</entry><entry align="center">LH/HL</entry><entry align="center">level 1</entry></row><row rowsep="0"><entry align="center"><b>8</b></entry><entry align="center">2nd bitplane</entry><entry align="center">HH</entry><entry align="center">level 2</entry></row><row rowsep="0"><entry align="center"><b>9</b></entry><entry align="center">1st bitplane</entry><entry align="center">LH/HL</entry><entry align="center">level 3</entry></row><row rowsep="0"><entry align="center"><b>10</b></entry><entry align="center">1st bitplane</entry><entry align="center">HH</entry><entry align="center">level 4</entry></row><row rowsep="0"><entry align="center"><b>11</b></entry><entry align="center">3rd bitplane</entry><entry align="center">HH</entry><entry align="center">level 1</entry></row><row rowsep="0"><entry align="center"><b>12</b></entry><entry align="center">2nd bitplane</entry><entry align="center">LH/HL</entry><entry align="center">level 2</entry></row><row rowsep="0"><entry align="center"><b>13</b></entry><entry align="center">2nd bitplane</entry><entry align="center">HH</entry><entry align="center">level 3</entry></row><row rowsep="0"><entry align="center"><b>14</b></entry><entry align="center">1st bitplane</entry><entry align="center">LH/HL</entry><entry align="center">level 4</entry></row><row rowsep="0"><entry align="center"><b>15</b></entry><entry align="center">1st bitplane</entry><entry align="center">HH</entry><entry align="center">level 5</entry></row><row rowsep="0"><entry align="center"><b>16</b></entry><entry align="center">3rd bitplane</entry><entry align="center">LH/HL</entry><entry align="center">level 1</entry></row><row rowsep="0"><entry align="center"><b>17</b></entry><entry align="center">3rd bitplane</entry><entry align="center">HH</entry><entry align="center">level 2</entry></row><row rowsep="0"><entry align="center"><b>18</b></entry><entry align="center">2nd bitplane</entry><entry align="center">LH/HL</entry><entry align="center">level 3</entry></row><row rowsep="0"><entry align="center"><b>19</b></entry><entry align="center">2nd bitplane</entry><entry align="center">HH</entry><entry align="center">level 4</entry></row><row rowsep="0"><entry align="center"><b>20</b></entry><entry align="center">4th bitplane</entry><entry align="center">HH</entry><entry align="center">level 1</entry></row><row rowsep="0"><entry align="center"><b>21</b></entry><entry align="center">3rd bitplane</entry><entry align="center">LH/HL</entry><entry align="center">level 2</entry></row><row rowsep="0"><entry align="center"><b>22</b></entry><entry align="center">3rd bitplane</entry><entry align="center">HH</entry><entry align="center">level 3</entry></row><row rowsep="0"><entry align="center"><b>23</b></entry><entry align="center">2nd bitplane</entry><entry align="center">LH/HL</entry><entry align="center">level 4</entry></row><row rowsep="0"><entry align="center"><b>24</b></entry><entry align="center">2nd bitplane</entry><entry align="center">HH</entry><entry align="center">level 2</entry></row><row rowsep="0"><entry align="center"><b>25</b></entry><entry align="center">4th bitplane</entry><entry align="center">LH/HL</entry><entry align="center">level 1</entry></row><row rowsep="0"><entry align="center"><b>26</b></entry><entry align="center">4th bitplane</entry><entry align="center">HH</entry><entry align="center">level 2</entry></row><row rowsep="0"><entry align="center"><b>27</b></entry><entry align="center">3rd biplane</entry><entry align="center">LH/HL</entry><entry align="center">level 3</entry></row><row rowsep="0"><entry align="center"><b>28</b></entry><entry align="center">3rd bitplane</entry><entry align="center">HH</entry><entry align="center">level 4</entry></row><row rowsep="0"><entry align="center"><b>29</b></entry><entry align="center">2nd bitplane</entry><entry align="center">LH/HL</entry><entry align="center">level 5</entry></row><row><entry align="center"><b>...</b></entry><entry align="center">...</entry><entry align="center">...</entry><entry align="center">...</entry></row></tbody></tgroup></table></tables>
0070The estimation algorithm uses that order and computes for each codeblock for order number i, the number of coding passes CP(b(i)) that contain the specific bitplane, b(i), in the subband, s(i), and the corresponding level, l(i), namely <maths id="math0004" num="(2)"><math display="block"><mi>CP</mi><mfenced><mi mathvariant="normal">b</mi><mfenced><mi mathvariant="normal">i</mi></mfenced></mfenced><mo mathvariant="normal">=</mo><mi>CP</mi><mo mathvariant="normal">-</mo><mfenced><mfenced><mi>MaxB</mi><mfenced><mi mathvariant="normal">s</mi><mfenced><mi mathvariant="normal">I</mi></mfenced><mo mathvariant="normal">,</mo><mi mathvariant="normal">l</mi><mfenced><mi mathvariant="normal">i</mi></mfenced></mfenced><mo mathvariant="normal">-</mo><mi mathvariant="normal">b</mi><mfenced><mi mathvariant="normal">i</mi></mfenced></mfenced><mo mathvariant="normal">*</mo><mn mathvariant="normal">3</mn><mo mathvariant="normal">+</mo><mn mathvariant="normal">1</mn></mfenced></math><img file="EP1548616B1_D0004.tif" /></maths>
0071If that number is positive, a specific number of bits is subtracted from the codeblock bits. In one embodiment, the specific number of bits is computed as the average number of bits per coding pass in the specific subband, or the specific resolution. In the next step, order number (i+1), the derived number of bits is subtracted in a similar way from the codeblocks for bitplane b(i+1) of subband s(i+1) at level l(i+1). In pseudo code, an exemplary estimation algorithm for the example target rate of 0.5bits/pixel is expressed as follows. <pre listing-type="program-listing"> Max_I=largest_order_number target_rate = 0.5 new_B = B; new_CP = CP; i=1 while ((i≤max_i) && (new_rate>target_rate)){ for each codeblock m in subband s(i) elim_CP[m](b(i)) = new_CP[m]-((MaxB(s(i),l(i))-b(i))*3+1); if (elim_CP[m](b(i)) > 0) av_bits = new_B[m](s(i))/new_CP[m](s(i)); new_B[m] -= av_bits*elim_CP[m](b(i)); if (new_B[m)<0) new_B[m] = 0; new_CP[m] -= elim_cp[m] (b(i)); end end new_rate = sum(new_B*8)/ImageSize; i++; end</pre> New_B and new_CP are arrays of size of the number of codeblocks.
0072Once the target rate is reached, the new estimated bit values "new_B" are used in the entropy processing algorithms.
0073There are many alternatives to estimating a low bit rate image from a high bit rate image. In an alternative embodiment, another approach for estimation of low bit rate images may be used. This approach uses a model on the distribution of wavelet coefficients of an image.
0074It is assumed that the distribution of the wavelet coefficients can be described by a Gaussian or Laplacian distribution. The latter one is often used for modeling in the literature since distributions of many natural images are tested to follow the exponential distribution approximately. The Laplacian distribution has density <maths id="math0005" num="(3)"><math display="block"><mi>f</mi><mfenced><mi>x</mi></mfenced><mo>=</mo><mi mathvariant="normal">λ</mi><mo></mo><msup><mi>e</mi><mrow><mo>-</mo><mi mathvariant="normal">λ</mi><mfenced open="|" close="|"><mi>x</mi></mfenced></mrow></msup><mspace width="1em" /><mi mathvariant="normal">for λ</mi><mo>></mo><mn>0</mn></math><img file="EP1548616B1_D0005.tif" /></maths>
0075The theoretical definition of the entropy is <maths id="math0006" num="(4)"><math display="block"><mi mathvariant="normal">H</mi><mo mathvariant="normal">=</mo><mo mathvariant="normal">-</mo><mstyle displaystyle="false"><munder><mo mathvariant="normal">∑</mo><mspace width="1em" /></munder><mo></mo><msub><mi mathvariant="normal">p</mi><mi mathvariant="normal">i</mi></msub><mspace width="1em" /><mi>log</mi><mfenced><msub><mi mathvariant="normal">p</mi><mi mathvariant="normal">i</mi></msub></mfenced></mstyle></math><img file="EP1548616B1_D0006.tif" /></maths> where p<sub>i</sub> is the probability of an event A<sub>i</sub>, i.e. p<sub>i</sub> = P(A<sub>i</sub>). For a lossy compressed image, the events are the situations that coefficients fall into specific quantization bins. In the case of scalar quantization with quantizer Q the event A<sub>i</sub> is described as the event that a coefficient is in the interval [i*2<sup>Q</sup>, (i+1)*2<sup>Q</sup>), i.e. <maths id="math0007" num="(5)"><math display="block"><msub><mi mathvariant="normal">p</mi><mi mathvariant="normal">i</mi></msub><mo mathvariant="normal">=</mo><mi mathvariant="normal">P</mi><mfenced><msub><mi mathvariant="normal">A</mi><mi mathvariant="normal">i</mi></msub></mfenced><mo mathvariant="normal">=</mo><mi mathvariant="normal">P</mi><mo></mo><mfenced><mi>wavelet coefficient d</mi><mo mathvariant="normal">∈</mo><mrow><mo mathvariant="normal">[</mo><mi mathvariant="normal">i</mi><mo mathvariant="normal">*</mo><msup><mn mathvariant="normal">2</mn><mi mathvariant="normal">Q</mi></msup><mo mathvariant="normal">,</mo><mfenced><mi mathvariant="normal">i</mi><mo mathvariant="normal">+</mo><mn mathvariant="normal">1</mn></mfenced><mo mathvariant="normal">*</mo><msup><mn mathvariant="normal">2</mn><mi mathvariant="normal">Q</mi></msup><mrow><mo>)</mo></mrow></mrow></mfenced></math><img file="EP1548616B1_D0007.tif" /></maths> For the Laplacian distribution, this results in <maths id="math0008" num="(6)"><math display="block"><msub><mi mathvariant="normal">p</mi><mi mathvariant="normal">i</mi></msub><mo mathvariant="normal">=</mo><msup><mi mathvariant="normal">e</mi><mrow><mo mathvariant="normal">-</mo><mi mathvariant="normal">λi</mi><mo></mo><msup><mn mathvariant="normal">2</mn><mo mathvariant="normal">∧</mo></msup><mo></mo><mi mathvariant="normal">Q</mi></mrow></msup><mo mathvariant="normal">-</mo><msup><mi mathvariant="normal">e</mi><mrow><mo mathvariant="normal">-</mo><mi mathvariant="normal">λ</mi><mo></mo><mfenced><mi mathvariant="normal">i</mi><mo mathvariant="normal">+</mo><mn mathvariant="normal">1</mn></mfenced><mo></mo><msup><mn mathvariant="normal">2</mn><mo mathvariant="normal">∧</mo></msup><mo></mo><mi mathvariant="normal">Q</mi></mrow></msup></math><img file="EP1548616B1_D0008.tif" /></maths>
0076If the parameter λ could be estimated from the header data of a coding unit, then the pdf of the coefficients in that coding unit could be estimated and the entropy for any given quantizer Q be determined.
0077The packet headers of a JPEG 2000 file include information on the number of zero bitplanes in a codeblock. From this information an estimation on the maximum absolute values of coefficients in that codeblock can be obtained by the variable MaxB from Equation 1. Using this variable, the parameter λ can be estimated as <maths id="math0009" num="(7)"><math display="block"><mi mathvariant="normal">λ</mi><mo mathvariant="normal">*</mo><mo mathvariant="normal">=</mo><msub><mi>log</mi><mn mathvariant="normal">2</mn></msub><mfenced><mi>#coefficients per codeblock</mi></mfenced><mo mathvariant="normal">/</mo><mfenced><msup><mn mathvariant="normal">2</mn><mo mathvariant="normal">∧</mo></msup><mo></mo><mi>MaxB</mi></mfenced></math><img file="EP1548616B1_D0009.tif" /></maths>
0078By inserting this estimate into the formulas in Equations (6) and (4), an estimate for the entropy given a specific quantization is obtained. The value H yields bits per pixel. Since the codeblock length is measured in bytes, the estimated value H has to be multiplied by 8*(#coefficients per codeblock). A final algorithm may use the same order as the previously described method to reduce the number of bits in different subbands at different resolution levels successively. The reduction of bits is given by setting the quantizer to the bitplane parameter b(i) from Table 2.
0079By exploiting the multi-scale entropy distribution that is accessible from the header, techniques may be used to perform image analysis or computer vision and similar operations such as, for example, but not limited to, segmentation. In one embodiment, instead of the exact sample-wise multi-scale entropy distribution, the entropy distribution over local blocks of multi-scale coefficients (such as code blocks in JPEG 2000), a granular entropy distribution, is available. In one embodiment, the granular entropy distribution is used to process the underlying image.
0080As described herein, the use of multi-scale information from an image available in JPEG 2000 headers is demonstrated in the framework of several image analysis algorithms (or computer vision). In one embodiment, the header parameters that are used are PPM, PPT, SIZ, COD, COC, QCC and QCD. From these parameters, the location of codeblocks in the wavelet domain and the number of bits used by the encoder to encode the corresponding coefficients can be extracted. These numbers can be used to derive a bit distribution of the multi-scale representation of the image. The scale and spatial localization of codeblocks, and the multi-scale bit distribution inferred from headers lead to different image processing applications such a multiscale segmentation.
0081A classification technique assigns a class label to each small area in an image. Such an area can be an individual pixel or a group of pixels, e.g. pixels contained in a square block. Various image analysis techniques use the class assignments in different ways, for example, the segmentation techniques separate an image into regions with homogeneous properties, e.g. same class labels.
0082Using the multi-scale entropy distribution, a scale is assigned as the class label to each image region, so that even if the coefficients from the finer scales is ignored, the visual relevant information about the underlying region is retained at the assigned scale. Such labeling identifies the frequency bandwidth of the underlying image features. Segmentation is posed as an optimization problem, and a statistical approach is invoked to solve the problem.
0083The location of codeblocks in the wavelet domain is given by the two-dimensional (2D) spatial location (i,k) and scale j. For example, if processing an image of size 512x512 and having codeblocks of size 32x32, there are 8x8 of size 32x32 codeblocks in each band of level 1, 4x4 codeblocks per band at level 2, and 2x2 codeblocks per band at level 3. The number of bits B<sub>j</sub>(i,k) per codeblock location (i,k) at level j for the three different bands LH, HL and HH at level j are added to yield the number of bits necessary to code the total coefficients at wavelet domain location (i,k). In practice, a linear or non-linear combination of the different entropies can also be used to help distinguish between vertical and horizontal features.
0084A scale <i>j</i> ∈ {1...<i>J</i>} is assigned to each block, so that a cost function Λ is maximized, <maths id="math0010" num="(8)"><math display="block"><msub><mi>S</mi><mi mathvariant="italic">opt</mi></msub><mo>=</mo><mi>arg</mi><mspace width="1em" /><munder><mi>max</mi><mrow><mi>S</mi><mo>∈</mo><mrow><mo>{</mo><mn>1</mn><mo>…</mo><mi>J</mi><mo></mo><msup><mrow><mo>}</mo></mrow><mrow><mi>M</mi><mo>=</mo><mi>N</mi></mrow></msup></mrow></mrow></munder><mo></mo><mi mathvariant="normal">Λ</mi><mfenced><mi>S</mi><mi>B</mi></mfenced></math><img file="EP1548616B1_D0010.tif" /></maths> where <i>S<sub>opt</sub></i> is the optimal segmentation map for the entire image, <i>S</i> is one of the <i>J<sup>MN</sup></i> possible labeling of blocks of size <i>M</i> × <i>N</i> with each block assigned one of the scales in {1...<i>J</i>}, and Λ(<i>S</i>,<i>B</i>) yields the cost given any segmentation <i>S</i> and any entropy distribution <i>B</i>.
0085In one embodiment, the prior art Maximum A Posteriori ("MAP") approach is adopted from statistics to solve the segmentation problem, because such an approach can be tuned to suit the final application. The basic ingredients used by MAP to set the cost function Λ are the likelihood <i>P</i>(<i>B</i>|<i>S</i>), which is the probability of the image's entropy distribution <i>B</i>, given segmentation map <i>S</i>, and prior <i>P</i>(<i>S</i>), which is the probability of the segmentation map <i>S</i>. The MAP cost function A is given by <maths id="math0011" num="(9)"><math display="block"><mi mathvariant="normal">Λ</mi><mfenced><mi mathvariant="normal">B</mi><mi mathvariant="normal">S</mi></mfenced><mo mathvariant="normal">=</mo><mi mathvariant="normal">P</mi><mfenced><mi mathvariant="normal">B</mi><mi mathvariant="normal">S</mi></mfenced><mo mathvariant="normal">=</mo><mi mathvariant="normal">P</mi><mfenced><mi mathvariant="normal">B</mi><mo mathvariant="normal">|</mo><mi mathvariant="normal">S</mi></mfenced><mo></mo><mi mathvariant="normal">P</mi><mfenced><mi mathvariant="normal">S</mi></mfenced><mspace width="3em" /><mfenced><mi mathvariant="normal">Bayesʹrule</mi></mfenced><mn mathvariant="normal">.</mn></math><img file="EP1548616B1_D0011.tif" /></maths> The MAP segmentation solution corresponds to optimizing equation (8), using equation (9).
0086The coefficients contained in a codeblock at level 1 contain information about a block of approximately twice the size in the pixel domain. If the pixel domain is divided into blocks of a specific size there are four times as many blocks in the pixel domain than codeblocks at level 1 of the wavelet decomposition, 16 times as many blocks in the pixel domain than codeblocks at level 2 of the wavelet decomposition, etc. Therefore, bits of a codeblock <i>B<sub>j</sub>(i,k)</i> of size n x n contribute information to a block in the pixel domain of size <i>2<sup>j</sup>n x 2<sup>j</sup>n</i> at location (<i>i2<sup>j</sup>n,k2<sup>j</sup>n</i>). Reversely, a pixel block of size n x n at location (x,y) receives a fraction of the bits, estimated as 1/4<sup>j</sup>, from codeblocks <i>B<sub>j</sub>(i,k)</i> with <maths id="math0012"><math display="inline"><mi>i</mi><mo>=</mo><mo>⌊</mo><mfrac><mi mathvariant="normal">x</mi><msup><mn mathvariant="normal">2</mn><mi mathvariant="normal">j</mi></msup></mfrac><mo>⌋</mo></math><img file="EP1548616B1_D0012.tif" /></maths> and <maths id="math0013"><math display="inline"><mi mathvariant="normal">k</mi><mo>=</mo><mo>⌊</mo><mfrac><mi mathvariant="normal">y</mi><msup><mn mathvariant="normal">2</mn><mi mathvariant="normal">j</mi></msup></mfrac><mo>⌋</mo><mn>.</mn></math><img file="EP1548616B1_D0013.tif" /></maths> In one embodiment, the number of level-j bits associated with the pixel domain is defined as <maths id="math0014" num="(10)"><math display="block"><msub><mover><mi mathvariant="normal">B</mi><mo mathvariant="normal">^</mo></mover><mi mathvariant="normal">j</mi></msub><mfenced><mi mathvariant="normal">x</mi><mi mathvariant="normal">y</mi></mfenced><mo>=</mo><mfrac><mrow><msub><mi mathvariant="normal">B</mi><mi mathvariant="normal">j</mi></msub><mfenced><mi mathvariant="normal">i</mi><mi mathvariant="normal">k</mi></mfenced></mrow><msup><mn>4</mn><mi>j</mi></msup></mfrac></math><img file="EP1548616B1_D0014.tif" /></maths> The above calculation is equivalent to piece wise interpolation of the entropy values. Other interpolation algorithms, such as, for example, polynomial interpolation or other nonlinear interpolation, can be used as well to calculate the level j bits.
0087The cumulative weighted resolution-j entropy of a pixel block of size 2n x 2n at location (x,y) is given by <maths id="math0015" num="(11)"><math display="block"><msubsup><mover><mi mathvariant="normal">B</mi><mo mathvariant="normal">^</mo></mover><mi mathvariant="normal">j</mi><mi>pixel</mi></msubsup><mfenced><mi mathvariant="normal">x</mi><mi mathvariant="normal">y</mi></mfenced><mo mathvariant="normal">=</mo><mstyle displaystyle="true"><munderover><mo mathvariant="normal">∑</mo><mrow><mo mathvariant="normal">ℓ</mo><mo mathvariant="normal">=</mo><mn mathvariant="normal">1</mn></mrow><mi mathvariant="normal">J</mi></munderover></mstyle><msub><mi mathvariant="normal">γ</mi><mrow><mi mathvariant="normal">j</mi><mo mathvariant="normal">,</mo><mi mathvariant="normal">l</mi></mrow></msub><mo></mo><msub><mover><mi mathvariant="normal">B</mi><mo mathvariant="normal">^</mo></mover><mi mathvariant="normal">l</mi></msub><mfenced><mi mathvariant="normal">i</mi><mi mathvariant="normal">k</mi></mfenced></math><img file="EP1548616B1_D0015.tif" /></maths> with <maths id="math0016"><math display="inline"><mi mathvariant="normal">i</mi><mo>=</mo><mo>⌊</mo><mfrac><mi mathvariant="normal">x</mi><msup><mn mathvariant="normal">2</mn><mi>l</mi></msup></mfrac><mo>⌋</mo></math><img file="EP1548616B1_D0016.tif" /></maths> and <maths id="math0017"><math display="inline"><mi mathvariant="normal">k</mi><mo>=</mo><mo>⌊</mo><mfrac><mi mathvariant="normal">y</mi><msup><mn mathvariant="normal">2</mn><mi>l</mi></msup></mfrac><mo>⌋</mo></math><img file="EP1548616B1_D0017.tif" /></maths> for the locations i and k in B̂<sub>j</sub>(i,k) in equation (10) and weights γ<i><sub>j,l</sub></i>. An example for a collection of weights is <maths id="math0018" num="(12)"><math display="block"><msub><mi mathvariant="italic">γ</mi><mrow><mi mathvariant="normal">j</mi><mo>,</mo><mi>l</mi></mrow></msub><mo>=</mo><mn>0</mn><mspace width="1em" /><mi>for l</mi><mo><</mo><mi>j and</mi><mspace width="1em" /><msub><mi mathvariant="italic">γ</mi><mrow><mi mathvariant="normal">j</mi><mo>,</mo><mi>l</mi></mrow></msub><mo>=</mo><msub><mi mathvariant="normal">w</mi><mi mathvariant="normal">j</mi></msub><mspace width="1em" /><mi>for l</mi><mo>≥</mo><mi mathvariant="normal">j</mi></math><img file="EP1548616B1_D0018.tif" /></maths> with w<sub>0</sub> = 1, w<sub>1</sub> = 3.5, w<sub>2</sub>=5.5, w<sub>3</sub>=13, w<sub>4</sub>=20. The parameters w<sub>i</sub> and the weights γ<i><sub>j,l</sub></i> may be changed depending on the application. The set of values <maths id="math0019"><math display="inline"><msubsup><mover><mi mathvariant="normal">B</mi><mo mathvariant="normal">^</mo></mover><mi mathvariant="normal">j</mi><mi>pixel</mi></msubsup></math><img file="EP1548616B1_D0019.tif" /></maths> is called the cumulative weighted entropy of the image at resolution j.
0088The likelihood for the entropy <maths id="math0020"><math display="inline"><msubsup><mover><mi mathvariant="normal">B</mi><mo mathvariant="normal">^</mo></mover><mi mathvariant="normal">j</mi><mi>pixel</mi></msubsup></math><img file="EP1548616B1_D0020.tif" /></maths> (x,y) of a pixel domain block at location (x,y) is set to be the value of <maths id="math0021"><math display="inline"><msubsup><mover><mi mathvariant="normal">B</mi><mo mathvariant="normal">^</mo></mover><mi mathvariant="normal">j</mi><mi>pixel</mi></msubsup></math><img file="EP1548616B1_D0021.tif" /></maths> (x,y) relative to the total weighted bits for all levels associated with the pixel domain location (x,y), namely <maths id="math0022" num="(13)"><math display="block"><mi mathvariant="normal">P</mi><mfenced><msup><mover><mi mathvariant="normal">B</mi><mo mathvariant="normal">^</mo></mover><mi>pixel</mi></msup><mfenced><mi mathvariant="normal">x</mi><mi mathvariant="normal">y</mi></mfenced><mo mathvariant="normal">|</mo><mi mathvariant="normal">S</mi><mfenced><mi mathvariant="normal">x</mi><mi mathvariant="normal">y</mi></mfenced><mo mathvariant="normal">=</mo><mi mathvariant="normal">j</mi></mfenced><mo mathvariant="normal">=</mo><mfrac><mrow><msubsup><mover><mi mathvariant="normal">B</mi><mo mathvariant="normal">^</mo></mover><mi mathvariant="normal">j</mi><mi>pixel</mi></msubsup><mfenced><mi mathvariant="normal">x</mi><mi mathvariant="normal">y</mi></mfenced></mrow><mrow><mstyle displaystyle="true"><munderover><mo mathvariant="normal">∑</mo><mrow><mo mathvariant="normal">ℓ</mo><mo>=</mo><mn>1</mn></mrow><mi mathvariant="normal">J</mi></munderover></mstyle><msubsup><mover><mi mathvariant="normal">B</mi><mo mathvariant="normal">^</mo></mover><mi mathvariant="normal">l</mi><mi>pixel</mi></msubsup><mfenced><mi mathvariant="normal">x</mi><mi mathvariant="normal">y</mi></mfenced></mrow></mfrac></math><img file="EP1548616B1_D0022.tif" /></maths> Under the assumption of the pixel domain blocks being independent, the total likelihood is given by <maths id="math0023" num="(14)"><math display="block"><mi mathvariant="normal">P</mi><mfenced><mi mathvariant="normal">B</mi><mo mathvariant="normal">|</mo><mfenced><mi mathvariant="normal">S</mi><mo mathvariant="normal">=</mo><mi mathvariant="normal">j</mi></mfenced></mfenced><mo mathvariant="normal">=</mo><mstyle displaystyle="true"><munder><mo mathvariant="normal">∏</mo><mfenced><mi mathvariant="normal">x</mi><mi mathvariant="normal">y</mi></mfenced></munder></mstyle><mi mathvariant="normal">P</mi><mfenced><msup><mover><mi mathvariant="normal">B</mi><mo mathvariant="normal">^</mo></mover><mi>pixel</mi></msup><mfenced><mi mathvariant="normal">x</mi><mi mathvariant="normal">y</mi></mfenced><mo mathvariant="normal">|</mo><mfenced><mi mathvariant="normal">S</mi><mfenced><mi mathvariant="normal">x</mi><mi mathvariant="normal">y</mi></mfenced><mo mathvariant="normal">=</mo><mi mathvariant="normal">j</mi></mfenced></mfenced><mn mathvariant="normal">.</mn></math><img file="EP1548616B1_D0023.tif" /></maths> B̂<sup>pixel</sup> provides a multiscale entropy distribution for the original image.
0089Now the prior P(s) has to be determined. The following discussion reflects existing knowledge about typical segmentation maps. There are many possible ways to choose the prior. For example, other ways to choose the prior are described in <nplcit id="ncit0016" npl-type="s"><text>R. Neelamani, J. K. Romberg, H. Choi, R. Riedi, and R. G. Baraniuk, "Multiscale image segmentation using joint texture and shape analysis," in Proceedings of Wavelet Applications in Signal and Image Processing VIII, part of SPIE's International Symposium on Optical Science and Technology, San Diego, CA, July 2000</text></nplcit>; <nplcit id="ncit0017" npl-type="s"><text>H. Cheng and C. A. Bouman, "Trainable context model for multiscale segmentation," in Proc. IEEE Int. Conf. on Image Proc.--ICIP '98, Chicago, IL, Oct. 4-7, 1998</text></nplcit>; and <nplcit id="ncit0018" npl-type="s"><text>H. Choi and R. Baraniuk, "Multiscale texture segmentation using wavelet-domain hidden Markov models," in Proc. 32nd Asilomar Conf. on Signals, Systems and Computers, Pacific Grove, CA, Nov. 1-4, 1998</text></nplcit>.
0090Because the segmentation map is expected to have contiguous regions, a prior is set on each location (x, y) based on its immediate neighborhood N(x, y), which consists of nine blocks (using reflection at the boundaries). The individual prior is <maths id="math0024" num="(15)"><math display="block"><mi mathvariant="normal">P</mi><mfenced><mi mathvariant="normal">S</mi><mfenced><mi mathvariant="normal">x</mi><mi mathvariant="normal">y</mi></mfenced><mo mathvariant="normal">|</mo><mi mathvariant="normal">N</mi><mfenced><mi mathvariant="normal">x</mi><mi mathvariant="normal">y</mi></mfenced></mfenced><mo mathvariant="normal">=</mo><mfrac><mrow><mo mathvariant="normal">(</mo><mi mathvariant="normal">#</mi><mo></mo><msup><mfenced><mi mathvariant="normal">N</mi><mfenced><mi mathvariant="normal">x</mi><mi mathvariant="normal">y</mi></mfenced><mo mathvariant="normal">=</mo><mi mathvariant="normal">s</mi><mfenced><mi mathvariant="normal">x</mi><mi mathvariant="normal">y</mi></mfenced></mfenced><mi mathvariant="normal">α</mi></msup></mrow><mrow><mstyle displaystyle="true"><munderover><mo mathvariant="normal">∑</mo><mrow><mi mathvariant="normal">j</mi><mo mathvariant="normal">=</mo><mn mathvariant="normal">1</mn></mrow><mi mathvariant="normal">J</mi></munderover></mstyle><msup><mfenced><mi mathvariant="normal">#</mi><mfenced><mi mathvariant="normal">N</mi><mfenced><mi mathvariant="normal">x</mi><mi mathvariant="normal">y</mi></mfenced><mo mathvariant="normal">=</mo><mi mathvariant="normal">j</mi></mfenced></mfenced><mi mathvariant="normal">α</mi></msup></mrow></mfrac><mo mathvariant="normal">,</mo></math><img file="EP1548616B1_D0024.tif" /></maths> where # (N(x, y) = S(x, y)) is the number of neighbors which are the same as S(x,y), and α is a parameter that can be increased to favor contiguous regions; α = 0 implies that the segmentation map blocks are independent of each other. In one embodiment, the overall prior is chosen as <maths id="math0025" num="(16)"><math display="block"><mi mathvariant="normal">P</mi><mfenced><mi mathvariant="normal">S</mi></mfenced><mo mathvariant="normal">=</mo><mstyle displaystyle="false"><munder><mo mathvariant="normal">∏</mo><mrow><mi mathvariant="normal">x</mi><mo mathvariant="normal">,</mo><mi mathvariant="normal">y</mi></mrow></munder></mstyle><mi mathvariant="normal">P</mi><mfenced><mi mathvariant="normal">S</mi><mfenced><mi mathvariant="normal">x</mi><mi mathvariant="normal">y</mi></mfenced><mo mathvariant="normal">|</mo><mi mathvariant="normal">N</mi><mfenced><mi mathvariant="normal">x</mi><mi mathvariant="normal">y</mi></mfenced></mfenced></math><img file="EP1548616B1_D0025.tif" /></maths><maths id="math0026" num="(17)"><math display="block"><mo>=</mo><mstyle displaystyle="false"><munder><mo mathvariant="normal">∏</mo><mrow><mi mathvariant="normal">x</mi><mo mathvariant="normal">,</mo><mi mathvariant="normal">y</mi></mrow></munder></mstyle><mrow><mo mathvariant="normal">(</mo><mi mathvariant="normal">#</mi><mo></mo><msup><mfenced><mi mathvariant="normal">N</mi><mfenced><mi mathvariant="normal">x</mi><mi mathvariant="normal">y</mi></mfenced><mo mathvariant="normal">=</mo><mi mathvariant="normal">S</mi><mfenced><mi mathvariant="normal">x</mi><mi mathvariant="normal">y</mi></mfenced></mfenced><mi mathvariant="normal">α</mi></msup></mrow><mn>.</mn></math><img file="EP1548616B1_D0026.tif" /></maths>
0091In one embodiment, a equals 0.02 to 0.08. The desired segmentation map can now be obtained by optimizing the cost function Λ(S,B). A number of prior art iterative techniques may be used to search for the local maxima. One iterative technique involves first calculating the initial segmentation map that optimizes the cost function using α = 0 in equation (12). The segmentation map maximizing the resulting cost function is obtained because the vector optimization decouples into a scalar optimization problem. The segmentation map is given by <maths id="math0027" num="(18)"><math display="block"><msup><mi mathvariant="normal">S</mi><mn mathvariant="normal">0</mn></msup><mfenced><mi mathvariant="normal">a</mi><mi mathvariant="normal">b</mi></mfenced><mo mathvariant="normal">=</mo><mi>arg</mi><mo></mo><munder><mi>max</mi><mrow><mi mathvariant="normal">j</mi><mo mathvariant="normal">∈</mo><mfenced open="{" close="}"><mi mathvariant="normal">l</mi><mo mathvariant="normal">…</mo><mi mathvariant="normal">J</mi></mfenced></mrow></munder><mo></mo><mi mathvariant="normal">P</mi><mfenced><msup><mover><mi mathvariant="normal">B</mi><mo mathvariant="normal">^</mo></mover><mi>pixel</mi></msup><mfenced><mi mathvariant="normal">x</mi><mi mathvariant="normal">y</mi></mfenced><mo mathvariant="normal">|</mo><mi mathvariant="normal">S</mi><mfenced><mi mathvariant="normal">x</mi><mi mathvariant="normal">y</mi></mfenced><mo mathvariant="normal">=</mo><mi mathvariant="normal">j</mi></mfenced><mo mathvariant="normal">,</mo><mi>for all</mi><mfenced><mi mathvariant="normal">x</mi><mi mathvariant="normal">y</mi></mfenced></math><img file="EP1548616B1_D0027.tif" /></maths> For all (x, y), the segmentation map at (x, y) is updated using <maths id="math0028" num="(19)"><math display="block"><msup><mi mathvariant="normal">S</mi><mi mathvariant="normal">m</mi></msup><mfenced><mi mathvariant="normal">x</mi><mi mathvariant="normal">y</mi></mfenced><mo mathvariant="normal">=</mo><mi>arg</mi><mo></mo><munder><mi>max</mi><mrow><mi mathvariant="normal">j</mi><mo mathvariant="normal">∈</mo><mfenced open="{" close="}"><mi mathvariant="normal">l</mi><mo mathvariant="normal">…</mo><mi mathvariant="normal">J</mi></mfenced></mrow></munder><mo></mo><mi mathvariant="normal">P</mi><mfenced><msup><mover><mi mathvariant="normal">B</mi><mo mathvariant="normal">^</mo></mover><mi>pixel</mi></msup><mfenced><mi mathvariant="normal">x</mi><mi mathvariant="normal">y</mi></mfenced><mo mathvariant="normal">|</mo><mi mathvariant="normal">S</mi><mfenced><mi mathvariant="normal">x</mi><mi mathvariant="normal">y</mi></mfenced><mo mathvariant="normal">=</mo><mi mathvariant="normal">j</mi></mfenced><mo></mo><mi mathvariant="normal">P</mi><mfenced><mi mathvariant="normal">S</mi><mfenced><mi mathvariant="normal">x</mi><mi mathvariant="normal">y</mi></mfenced><mo mathvariant="normal">=</mo><mi mathvariant="normal">j</mi><mo mathvariant="normal">|</mo><mi mathvariant="normal">N</mi><mfenced><mi mathvariant="normal">x</mi><mi mathvariant="normal">y</mi></mfenced></mfenced><mo>,</mo></math><img file="EP1548616B1_D0028.tif" /></maths> where N(x, y) is obtained from <i>S</i><sup><i>m</i>-1</sup>. Each iteration, m is incremented to <i>m</i> = <i>m</i> + 1. The iterative loop is repeated until <i>S<sup>m</sup></i> = <i>S</i><sup><i>m</i>-1</sup>. The iterative algorithm always converges, because the cost function Λ(<i>B</i>,<i>S<sup>m</sup></i>) is a non-decreasing function with iterations <i>m</i>, and the cost function is bounded. The <i>S<sup>m</sup></i> obtained after convergence is the segmentation estimate.
0092The actual segmentation output in terms of labeling of regions is then given by the maximization of the MAP cost function <maths id="math0029" num="(20)"><math display="block"><mi mathvariant="normal">Λ</mi><mfenced><mi mathvariant="normal">B</mi><msub><mi mathvariant="normal">S</mi><mi mathvariant="normal">m</mi></msub></mfenced><mo mathvariant="normal">=</mo><mi mathvariant="normal">P</mi><mfenced><mi mathvariant="normal">B</mi><mo mathvariant="normal">|</mo><msub><mi mathvariant="normal">S</mi><mi mathvariant="normal">m</mi></msub></mfenced><mo mathvariant="normal">⋅</mo><mi mathvariant="normal">P</mi><mfenced><msub><mi mathvariant="normal">S</mi><mi mathvariant="normal">m</mi></msub></mfenced><mo mathvariant="normal">,</mo></math><img file="EP1548616B1_D0029.tif" /></maths> as stated in equation (3) above.
0093<figref idref="f0012">Figure 11</figref> is a flow diagram of one embodiment of a process for segmenting an image. Referring to <figref idref="f0012">Figure 11</figref>, in processing block 201, a file that contains a header that contains multi-scale entropy distribution information on blocks of an image is received. In one embodiment, the file represents an image in JPEG 2000 format. In processing block 202, for each block, a scale from a set of scales is assigned to the block that maximizes a cost function. The cost function is a product of a total likelihood and a prior. The total likelihood is a product of likelihoods of the blocks. In one embodiment, each likelihood of a block is proportional to a summation, for each scale in the set of scales, of a product of a weight of the scale and a number of bits spent to code the block at the scale. In one embodiment, the number of bits spent to code the block at the scale is a numerator divided by a denominator. The numerator is an entropy distribution of a multi-scale coefficient of the block at the scale. The denominator is four raised to the power of the scale. In processing block 203, the image is segmented by grouping together blocks that have been assigned equivalent scales.
0094<figref idref="f0013">Figure 12</figref> illustrates a segmentation map superimposed on an exemplary image of a woman. In one embodiment, the segmentation process (set forth above) labels the face regions of the image 301 with finer scales, and labels the background regions with coarser scales to reflect the underlying features in the image. The different shades show that the regions with different types of features are identified differently. In one embodiment, the segmentation process assigns a scale to the different regions on the basis of the underlying features. The color-bar 302 on the right shows the scales assigned to the different regions. Regions such as the face that contain many edges are labeled with a fine scale 303. In contrast, the background regions are assigned coarser scales 304.
An Exemplary Computer System
0095<figref idref="f0010">Figure 9</figref> is a block diagram of an exemplary computer system that may perform one or more of the operations described herein. Referring to <figref idref="f0010">Figure 9</figref>, computer system 900 may comprise an exemplary client 950 or server 900 computer system. Computer system 900 comprises a communication mechanism or bus 911 for communicating information, and a processor 912 coupled with bus 911 for processing information. Processor 912 includes a microprocessor, but is not limited to a microprocessor, such as, for example, Pentium™, PowerPC™, etc.
0096System 900 further comprises a random access memory (RAM), or other dynamic storage device 904 (referred to as main memory) coupled to bus 911 for storing information and instructions to be executed by processor 912. Main memory 904 also may be used for storing temporary variables or other intermediate information during execution of instructions by processor 912.
0097Computer system 900 also comprises a read only memory (ROM) and/or other static storage device 906 coupled to bus 111 for storing static information and instructions for processor 912, and a data storage device 907, such as a magnetic disk or optical disk and its corresponding disk drive. Data storage device 907 is coupled to bus 911 for storing information and instructions.
0098Computer system 900 may further be coupled to a display device 921, such as a cathode ray tube (CRT) or liquid crystal display (LCD), coupled to bus 911 for displaying information to a computer user. An alphanumeric input device 922, including alphanumeric and other keys, may also be coupled to bus 911 for communicating information and command selections to processor 912. An additional user input device is cursor control 923, such as a mouse, trackball, trackpad, stylus, or cursor direction keys, coupled to bus 911 for communicating direction information and command selections to processor 912, and for controlling cursor movement on display 921.
0099Another device that may be coupled to bus 911 is hard copy device 924, which may be used for printing instructions, data, or other information on a medium such as paper, film, or similar types of media. Furthermore, a sound recording and playback device, such as a speaker and/or microphone may optionally be coupled to bus 911 for audio interfacing with computer system 900. Another device that may be coupled to bus 911 is a wired/wireless communication capability 925 to communication to a phone or handheld palm device.
0100Note that any or all of the components of system 900 and associated hardware may be used in the present invention. However, it can be appreciated that other configurations of the computer system may include some or all of the devices.
0101Whereas many alterations and modifications of the present invention will no doubt become apparent to a person of ordinary skill in the art after having read the foregoing description, it is to be understood that any particular embodiment shown and described by way of illustration is in no way intended to be considered limiting. Therefore, references to details of various embodiments are not intended to limit the scope of the claims which in themselves recite only those features regarded as essential to the invention.
48 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21 Sheet 22 Sheet 23 Sheet 24 Sheet 25 Sheet 26 Sheet 27 Sheet 28 Sheet 29 Sheet 30 Sheet 31 Sheet 32 Sheet 33 Sheet 34 Sheet 35 Sheet 36 Sheet 37 Sheet 38 Sheet 39 Sheet 40 Sheet 41 Sheet 42 Sheet 43 Sheet 44 Sheet 45 Sheet 46 Sheet 47 Sheet 48
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US9591310B2 | Cited by | United States of America | Applicant |
| US9571842B2 | Cited by | United States of America | Applicant |
| US10257517B2 | Cited by | United States of America | Applicant |
| US9596473B2 | Cited by | United States of America | Applicant |
| US9596472B2 | Cited by | United States of America | Applicant |
| US9596474B2 | Cited by | United States of America | Applicant |
| EP1329847A | Cites | European Patent Office (EPO) | – |
| QUEIROZ DE R L ET AL: "FAST SEGMENTATION OF THE JPEG COMPRESSED DOCUMENTS" JOURNAL OF ELECTRONIC IMAGING, SPIE + IS&T, US, vol. 7, no. 2, 1 April 1998 (1998-04-01), pages 367-377, XP000750393 ISSN: 1017-9909 | Non-patent | – | – |
| NEELAMANI R ET AL: "Adaptive representation of JPEG 2000 images using header-based processing" PROCEEDINGS 2002 INTERNATIONAL CONFERENCE ON IMAGE PROCESSING. ICIP 2002. ROCHESTER, NY, SEPT. 22 - 25, 2002, INTERNATIONAL CONFERENCE ON IMAGE PROCESSING, NEW YORK, NY : IEEE, US, vol. VOL. 2 OF 3, 22 September 2002 (2002-09-22), pages 381-384, XP010607340 ISBN: 0-7803-7622-6 | Non-patent | – | – |
| RUI Y ET AL: "Image retrieval: current techniques, promising directions, and open issues" JOURNAL OF VISUAL COMMUNICATION AND IMAGE REPRESENTATION, ACADEMIC PRESS, INC, US, vol. 10, no. 1, March 1999 (1999-03), pages 39-62, XP002252610 ISSN: 1047-3203 | Non-patent | – | – |
| ZIYOU XIONG ET AL: "Wavelet-based texture features can be extracted efficiently from compressed-domain for JPEG2000 coded images" PROCEEDINGS 2002 INTERNATIONAL CONFERENCE ON IMAGE PROCESSING. ICIP 2002. ROCHESTER, NY, SEPT. 22 - 25, 2002, INTERNATIONAL CONFERENCE ON IMAGE PROCESSING, NEW YORK, NY : IEEE, US, vol. VOL. 2 OF 3, 22 September 2002 (2002-09-22), pages 481-484, XP010607365 ISBN: 0-7803-7622-6 | Non-patent | – | – |
9 members in 5 offices; this record represents the family
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 705544 | United States of America | – | |
| 70554403 | United States of America | A |
Members9
| Document | Office | Kind | |
|---|---|---|---|
| US2005100219A1 | United States of America | A1 | |
| CN1617143A | China | A | |
| JP2005141758A | Japan | A | |
| EP1548616A2 | European Patent Office (EPO) | A2 | |
| EP1548616A3 | European Patent Office (EPO) | A3 | |
| CN100378730C | China | C | |
| EP1548616B1This record | European Patent Office (EPO) | B1 | |
| DE602004022381D1 | Germany | D1 | |
| US7912291B2 | United States of America | B2 |
33 legal events, as 4 offices reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | Office | |
|---|---|---|---|
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Notification of lapseLapsedST | ST | FR | |
| Gb: european patent ceased through non-payment of renewal feeCeasedGBPC | GBPC | EP | |
| Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal feeWithdrawnR119 | R119 | DE | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| No opposition filedOpposition26N | 26N | EP | |
| No opposition filed within time limitOppositionORIGINAL CODE: 0009261PLBE | PLBE | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: NO OPPOSITION FILED WITHIN TIME LIMITSTAA | STAA | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Nl: lapsed or annulled due to failure to fulfill the requirements of art. 29p and 29m of the patents actLapsedNLV1 | NLV1 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Corresponds to:REF | REF | EP | |
| Designated contracting statesAK | AK | EP | |
| European patent grantedGrantedFG4D | FG4D | GB | |
| (expected) grantORIGINAL CODE: 0009210GRAA | GRAA | EP | |
| Grant fee paidORIGINAL CODE: EPIDOSNIGR3GRAS | GRAS | EP | |
| Title (correction)FEATURES FOR RETRIEVAL AND SIMILARITY MATCHING OF DOCUMENTS FROM THE COMPRESSED DOMAINRTI1 | RTI1 | EP | |
| Despatch of communication of intention to grant a patentORIGINAL CODE: EPIDOSNIGR1GRAP | GRAP | EP | |
| First examination report despatched17Q | 17Q | EP | |
| Designation fees paidAKX | AKX | EP | |
| First examination report despatched17Q | 17Q | EP | |
| Designated contracting statesAK | AK | EP | |
| Request for extension of the european patentAX | AX | EP | |
| Search report despatchedORIGINAL CODE: 0009013PUAL | PUAL | EP | |
| Request for examination filed17P | 17P | EP | |
| Designated contracting statesAK | AK | EP | |
| Request for extension of the european patentAX | AX | EP | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI | EP |
Numbers
- Publication
- 1548616
- Application
- 42569756
Titles3
- German
- Merkmale zum Abrufen und zur Ähnlichkeitsanpassung von komprimierten Dokumenten
- English
- Features for retrieval and similarity matching of documents from the compressed domain
- French
- Caractéristiques pour recouvrement et mise en correspondance des similarités des documents du domaine comprimé
Classification
- CPC, 2
- G06F16/5838
- G06F16/5854
- IPC, 3
- G06F17 30
- G06T7 00
- H04N1 41
Designated states6
- Contracting states, 6
- Germany
- Spain
- France
- United Kingdom
- Italy
- Netherlands (Kingdom of the)
