GENERATING A CODE SYSTEM USING HAAR WAVELETS
FIELD OF INVENTION
 The present invention relates to a code and a decode system and more particularly to generation of a code system comprising of cells printed on a nonvolatile substrate using Haar wavelets and decoding of information represented through the cells of the generated code system.
BACKGROUND OF THE INVENTION
Bar Code Symbology
 A variety of black on white type code systems in which a black pattern is printed on a white or other suitably contrasting background are known in the art. Such code systems include, for example, circular codes and bar codes, such as widely known and used Universal Product Code (UPC). A bar code is typically a linear array of elements that are either printed directly on an object or on labels that are affixed to the object. As shown in Fig. 1 (Fig. 1(A) through Fig. 1(C)) and in Fig. 2 (Prior Arts), bar code elements typically comprise bars and spaces, with bars of varying widths representing strings of binary ones and spaces of varying widths representing strings of binary zeros. Many bar codes are optically detectable and are read by devices such as scanning laser beams / handheld wands / mobile phone cameras / web cameras. The remaining bar codes are implemented in magnetic media. Readers and scanning systems used for bar code reading electro-optically decode the code to multiple alphanumerical characters that are intended to be descriptive of the article or some characteristic thereof. Such characters are typically represented in a digital form as an input to a data processing system for applications in point-of-sale processing, inventory control, and the like.
 Existing code systems can be represented either through one dimensional topology using a linear array of cells having two neighbors (one in the front and other at the back) or can be represented through two dimensional topology with multiple rows, either stacked over one another or used as a single entity, with each row comprising of a variable number of cells. Such two dimensional code systems are typically used to increase the density of the code systems.
 Existing code systems however face a number disadvantages. Most code systems are limited in terms of the amount of information they can store. Such codes, in most cases, are used merely as indices for file look-up rather than as a complete data file in itself. For instance, US Patent 5304786 discloses a high density two dimensional bar code, which uses mutually exclusive discriminator function values for each mark/space pattern. The patent too discloses the bar code to have upto 1 kilobyte of memory within an area of one to four square inches. Codes such as QR codes, on the other hand, can store upto 3 kilobytes of data but require high quality scanners to be read.
 As noted above, contrasting parallel bars and spaces of typical optically-detectable bar codes, as shown in Fig. 2, have varying widths. Generally, the bars and spaces can be no smaller than a specified minimum width after which the bar code becomes undetectable by a suitable reader device by virtue of higher error percentage in accuracy of barcode recognition. While the theoretical minimum unit size is the wavelength of the light being used to read the bar code, other practical limitations exist. Among these limitations are the desired depth of field of the reading equipment, limitations of a given printing process, and the robustness of the printed image to be correctly read despite dust, dirt, and minor physical damage.
 An obstacle to increasing the density of two-dimensional bar codes is the need for a certain minimum height in the vertical direction as also highlighted
in US Patent 5304786. A minimum height is needed to ensure that a human operator can keep a "scan line" (i.e., the path of a given scanning motion, such as that achieved by passing a hand-held wand across a bar code) within the area of a single bar-code row. FIG. 1 illustrates this difficulty: scan lines 10, 11, and 12 represent identical exemplary paths of, e.g., hand-held wands over the bar codes 15, 16, and 17. It will be seen that with a tall bar code 15, the scan lines 10 all stay within the confines of one bar code row, whereas with shorter bar codes 16 or 17, the scan lines 11 and 12 cross from one row to another.
 Yet another problem in existing codes is the lack of flexibility in choosing a suitable security system. (The term "security" is commonly used to refer to confidence in accuracy or correctness; it is usually specified by a misdecode rate, e.g., in errors per million). Code 49, as described in US Patent 4794239, for example, provides a very high level of security while sacrificing about 30% of its code words on average for checking errors. In some applications, however, a lesser degree of security may be an acceptable trade-off in return for a greater codeword density and therefore the ability to vary the security criterions would be advantageous. Code 39, too as disclosed in US Patent 4794239, being wide, occupies large space given the density of information it stores.
 Further, existing optical detectors tend to have large amplitude variations both from code to code and within the same code. The reasons for such variations include improper or non-uniform printing of the code, dirt or other foreign substances adhered to the code, non-uniformity of the surface on which the code is printed, variations in distance between the code and the reader, and varying contrast between the code and the background on which it is printed. Such variations affect the accuracy of detection of the code.
 In view of the foregoing, it can be seen that there is a need for a new code system that enables higher efficiency in terms of amount of information storage, recognition capability, recognition accuracy, high security, and
compatibility with devices used for reading/decoding of information stored through the code system.
OBJECTS OF THE INVENTION
 It is an object of the invention to provide a code system configured to generate a code format using Haar wavelets.
 It is another object of the invention to provide a code system configured to generate a code format having improved error detection and error correction.
 It is another object of the invention to provide a code system configured to generate a code format suitable for one-dimensional, two- dimensional, and three dimensional topologies.
 It is yet another object of the invention to provide a code system configured to generate a code format enabling high storage capacity.
 It is another object of the invention to provide a code system configured to generate a code format having high recognition accuracy and capability.
 It is another object of the invention to provide a code system configured to generate a code format having minimum false positive error correction, robustness to camera blur and to bad illumination.
SUMMARY OF THE INVENTION
 This summary is provided to introduce simplified concepts of generating a code system based on Haar wavelets, which are further described below in the Detailed Description. This summary is not intended to identify essential features of the claimed subject matter, nor is it intended for use in determining the scope of the claimed subject matter.
 Implementations and embodiments of generating a code system are described herein. The present invention provides an improved code system suitable
for one, two, or three dimensional topologies, as well as a flexible method for using the code system to encode and decode information along with error detection and error correction. In an embodiment, the code system can be used to create a high density, code format having a plurality of cells, wherein each cell is selected from a predefined feature set of Haar-like-features.
 The present invention further relates to generation of a code system comprising of a plurality of cells, wherein each cell is selected from a feature set comprising of Haar-like-features. Complete description of generation of a feature set with Haar-like features would be described subsequently in the specification. Printing of such Haar-like-features as cells of a code system, on a non-volatile substrate to encode information, allows high storage capacity by virtue of high recognition capability and accuracy of such Haar-like-features due to their shape and distinctiveness from other Haar-like-features thereby allowing accurate information recognition.
 In an embodiment, each code system has a specific code format that belongs to a specific family and conforms to a particular descriptive rule about one or more characteristics of the format, including the height and width of each cell of the format. The code system can follow any of a one-dimensional, two- dimensional, or three dimensional topology defined by the arrangement of cells within the system. This summary is provided to introduce a selection of concepts in a simplified form to be further described below in the Detailed Description. This summary is not intended to identity key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
BRIEF DESCRIPTION OF THE DRAWINGS
 The detailed description is set forth with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The use of the same reference numbers in different figures indicates similar or identical items.
 Fig. 1 illustrates prior art describing the existing bar coding mechanisms.
 Fig. 2 illustrates prior art describing the existing bar coding reading and printing mechanisms.
 Fig. 3 illustrates an exemplary set of Haar wavelets and generation of Haar-like-features .
 Fig. 4 illustrates an exemplary feature set of Haar-like-features and generation of a code system using the feature set.
 Fig. 5 illustrates a code system recognition mechanism.
 Fig. 6 illustrates another code system recognition mechanism..
 Fig. 7 illustrates a code system detailing the code format.
 Fig. 8 illustrates a code system showing the complete code format.
DETAILED DESCRIPTION OF THE INVENTION
 This disclosure is directed to techniques for generating a code system using Haar wavelets. More particularly, the disclosure relates to generation of a code system comprising of one or more cells, wherein each cell of the code system corresponds to a Haar-like-feature selected from a predefined feature set.
 The details disclosed below are provided to describe the following embodiments in a manner sufficient to enable a person skilled in the relevant art to make and use the disclosed embodiments. Several of the details described below, however, may not be necessary to practice certain embodiments of the invention.
Additionally, the invention can include other embodiments that are within the scope of the claims but are not described in detail with respect to the following description. In the following section, an exemplary environment that is suitable for practicing various implementations is described. After this discussion, representative implementations of systems, devices, and processes for generating a code system are described.
Introduction to Haar wavelets
 One dimensional Haar wavelets are discrete wavelets that are a sequence of basis functions which can be formed by the following mother function
 In an embodiment, a two-dimensional wavelet consists of all possible products of one-dimensional Haar basis functions. Each two-dimensional wavelet can be constructed through two types of basis functions. A standard basis function requires one-dimensional transforms on all rows and then on all columns. A nonstandard basis function, on the other hand, alternates between operations on rows and columns. A two-dimensional scaling function can be written as,
and three wavelet functions in two dimensions can be written as (Equation 1)
 Similarly, seven wavelet functions in three dimensions can be written (Equation 2) as
 Wavelets in two dimensions can then be computed from the above mentioned wavelet functions (Equation 1) through the below mentioned functions (Equation 2) with j as a superscript indicating the level of scaling, and subscripts k & 1 indicating horizontal and vertical translations respectively.
 Fig. 3 illustrates the wavelets generated by the above mentioned Equation 2. Representation 302 illustrates wavelets generated through standard
basis functions. In other words, representation 302 discloses the standard construction of two-dimensional Haar wavelets having 302(A) and 302(B) as exemplary wavelets. Similarly, representation 304 discloses nonstandard construction of the two-dimensional Haar wavelets.
 Fig. 3 further discloses mathematical computations one or more wavelets generated in the standard construction and/or the nonstandard construction. Such mathematical computations can be implemented through a linear combination of Haar wavelets with scaling and shifting to generate Haar- like-features. In an embodiment, the operations are such that white region on gray region becomes white, black region on gray region become black, negation changes white region to black region and black region to white region, white region on white region remains white, black region on black region remains black, scaling increases/decreases black region and white region in X and Y direction (bounded by 2D wavelet size), shifting translates white region and black region within 2D wavelets leaving gray region behind. The linear combinations of Haar wavelets are such that Haar-like features created cannot have gray region For instance, wavelet 302(A) can be mathematically combined with wavelet 302(B) to give a Haar-like-feature 306. In an embodiment, Haar-like-features can include features generated through all mathematical combinations between wavelets generated in the standard construction and/or the nonstandard construction. In another embodiment, the Haar-like-features can be a restricted set of linear combinations of the wavelets. In yet another embodiment, Haar-like-features also include all Haar wavelets 302 and 304, wherein the Haar wavelets 302 and 304 are interchangeably also referred to as Haar features hereinafter.
 Fig. 4 illustrates an exemplary feature set 402 of 8 Haar-like-features (HLF) 402(A) to 402 (H), collectively also referred to as Haar-like-features 402 hereinafter. It is to be noted that the feature set 402 of Haar-like-features can be extended to a much larger feature set by changing the bound of the intra-feature
response and configuring the number of mathematical operations between Haar wavelets generated through standard and nonstandard constructions. The first six Haar-like-features 402 (A) till 402 (F) represent 1st degree derivatives in horizontal, vertical and diagonal direction. Haar-like-features 402 (G) and 402 (H) are 2nd degree derivative in horizontal direction. In another embodiment, there can be another pair of Haar-like-features that represents 2nd degree derivative in vertical direction.
 In an implementation, the current Haar-like-features 402 are being described with grey color instead of white for presentation. It is to be noted that while printing ideally the color combination would be that of black and white. Furthermore, even though the current set of Haar-like-features 402 is being disclosed using one-dimensional topology, the same can always be extrapolated for two-dimensional and three-dimensional topology. Furthermore, in an embodiment, for all Haar-like-features, the weighted sum of gray region should be the same as the weighted sum of black region. For Haar-like-features 402 (A) to 402 (F), the weight of gray and black regions is same. For Haar-like-feature 402 (G) the weight of black region will be 2 times of white region, and for Haar-like-features 402 (H) the weight of grey region will be 2 times that of black region.
 In an embodiment, the code system of the present invention comprises of a plurality of cells representing a code format, with each cell of the code system corresponding to a Haar-like-feature being selected from the feature set. For instance, in the exemplary feature set 402 having 8 Haar-like-features, each cell can store 3 bits of information by virtue of 2A3 being 8 (From "000" bit string to "111" bit string). Furthermore, each cell of the code system can be placed along a straight line of N cells to form a code format having one-dimensional topology. For instance, a code system 404 as shown in Fig. 4 has multiple cells, with each cell being represented by a specific Haar-like-feature selected from the feature set 402. It is to be noted that in the code systems 404 and 406 as illustrated in Fig. 4,
white pixels are shown by white regions only and not by grey regions as was the case with representation of Haar-like-features of feature set 402. It is further to be noted that a feature set of the code system can include any number of Haar-like- features, which would then decide the number of bits of information each cell can represent. For instance, in case the feature set comprises of 16 Haar-like-features, each cell of a code system can represent 4 bits of information.
 In an embodiment, as more clearly visible, the code system 406 shown in Fig. 4 has 9 cells and can store 27 bits of information. To visualize each cell, the code system 406 illustrates boundary of each cell marked by a thin square in the image. Each cell of the code system having the same Haar-like-feature depicts the same information. For instance, both 406(A) and 406(B) correspond to Haar-like- feature 402(E) and would therefore correspond to the same information ("110" for instance).
 Haar-like-features have high discriminative capabilities and ability to model features likes edges, blobs etc and therefore printing them on paper or nonvolatile substrate as a symbology helps achieve significant improvement in the coding domain by virtue of being able to store more information, improving the correct information recognition accuracy, readability/decoding using a variety of devices that are not able to recognize existing code systems and/or code formats such as barcodes printed on the non-volatile substrate.
 In an embodiment, all Haar-like-features of a feature set can be modeled as printing black rectangles for black and white codes. Printing as black rectangles allows high quality printing with inkjet, laser and dot printers that print in line scan format. Since the code system needs only a difference in contrast for feature representation, other techniques like etching, engraving and embossing can also be used for code printing on materials other than paper such as plastic, metals and glass.
 In another embodiment instead of black and white, any two different colors such as blue and red can be used for printing. The code system of the present invention, generated using Haar-like-features, can be recognized if printed in any other color than black. Identification of the code system depends upon the shape of each cell of the code system and not on the color. The code system of the present invention therefore is color independent and depends only on the shape of each cell of the system. In another embodiment, more than two colors can also be applied in cell sequence of a particular code system.
 Fig. 5 illustrates the probability of matching one printed Haar-like- feature with a wrongly identified second Haar-like-feature. For illustration, we assume that dimension of each square Haar feature is L units * L units. The area of intersection between two Haar-like-features can be computed as the sum of common white pixels and black pixels after superimposing one Haar feature on top of another. The maximum intersecting area for any mutually exclusive pair from the set of chosen Haar features is (L 12). The maximum probability of matching one printed Haar feature with a wrongly identified second Haar feature is therefore (L2/2) / (L2) = ½ = 0.5
 In an embodiment, as the probability of mismatch between two Haar- like-features selected from an exemplary feature set of 8 features is only 0.5 in the worst case, the Haar-like-features are very discriminative from each other in representation. From the above derived probability, we can always keep the minimum feature recognition threshold greater than 0.5 for correct Haar-like- feature identification in a given code system.
 In an embodiment, Fig. 5 shows matching of a Haar-like-feature 502 with a Haar-like-feature 504. For exemplary illustration, light grey color is used for representing white colored portion of a Haar-like-feature and dark grey color for representing black colored portion of the Haar-like-feature. While matching, we find that there is a common region between Haar-like-feature 502 and Haar-
like-feature 504 as shown in Fig. 5. The light grey colored rectangle 506 (A) of common Haar-like-feature 506 in Fig. 5 comes from Haar-like-feature 502. The dark grey colored rectangle 506 (D) in Fig. 5 comes from Haar-like-feature 504. The uncommon regions depicted by 506(B) and 506 (C) of Haar-like-features 502 and 504 are shown by the shaded white colored rectangle in Fig. 5. As depicted in 506 of Figure 5, the probability of exactly matching the Haar-like-feature 502 with Haar-like-feature 504 is only 50%.
 In another embodiment, Haar-like-features are robust to camera blur and defocus. For any Haar-like-feature Fl of a feature set to match with another Haar-like-feature F2 of the feature set, a transformation is required on Fl that converts some black pixels to white and some white pixels to black in Fl. It is not possible to have such a transformation on a single Haar-like-feature by blur and/or defocus. This attribute makes printed Haar-like-features robust and compatible with any camera or code reader device.
 With each Haar-like-feature, as described above, being distinctive from other Haar-like-features in the feature set, and also being robust to blur and defocus, an accurate image decoding algorithm is possible for printing at small resolutions and camera capturing at small resolutions. For instance, Haar-like- features printed as small as 0.5x0.5mm (600 dpi printer) are machine readable and features captured as small as 6x6 pixels (2MP web camera) can be recognized. Fig. 6 illustrates accurate recognition of the Haar-like-features even if printed at 5 mm height and width. It is to be noted the cell size of .25 mm2 disclosed above is only for exemplary purpose and by no means discloses the final limit on the minimum size of substrate on which Haar-like-features can be accurately printed.
 Fig. 6 shows a Haar-like-feature 602 printed using a laser printer at 600 dpi. Height and width of the Haar-like-feature 602 is taken as 0.5 mm (millimeter). As can be seen from Fig. 6, noise is generated by the laser printer. There should have been a single spot of intersection between the two rectangles of
Haar Feature 602, but the ink spread resulted in image distortion. But even after the image degradation, the Haar-like-feature 602 is still recognizable easily.
 Fig. 6 also shows Haar-like-feature 604 printed using an inkjet printer at 600 dpi. Height and width of the Haar feature is taken as 0.5 mm (millimeter). For Haar-like-feature 604, the paper absorbed too much ink, which caused feathering. Due to feathering, the ink spreads out in an irregular fashion to cover a slightly larger area than the printer expects it to. The result is a page that looks fuzzy, particularly at the edges of objects. However, the Haar-like-feature 604 is easily recognizable proving the robustness of Haar-like-feature 604, which does not depend on the quality of the printer and ink.
 Haar-like-features also respond to local oriented intensity differences over an area of pixels in an image. Their reliance on contrast difference makes them easy to recognize in images with fine grain noise. Cells of a code system, printed using Haar-like-features, therefore are robust to noises such as "fixed pattern" noises, banding noises, and random noises produced due to camera capturing.
 In another embodiment, cells of code systems using Haar-like- features can be recognized using very fast algorithms such as algorithms based on Summer Area Tables, also referred to as an integral Image in context of images. In an integral image, the value at any point (x, y) is sum of all pixels above and left of (x, y) represented as below:
 The image can be evaluated very fast in a single pass by the following equation to get an integral image.
 Once we get the Integral image, the sum of pixels can be computed on any rectangle in the image using only 4 arithmetic operations.
 A Haar-like-feature in the exemplary feature set 402 disclosed above has two to four rectangles to be evaluated and therefore the evaluation, based on the above mentioned equation, can be done in 8 to 16 arithmetic operations for feature of any size. The same also applies to Haar-like-features used in code systems having a two-dimensional topology. All above advantages of higher information storage capacity, correct recognition with high accuracy rate, and robustness to blur and defocus are also applicable to a Haar wavelet based code system having a two-dimensional topology.
 In an embodiment, a one dimensional topology includes alignment of the cells in a straight line wherein the cells can be at a variable or a uniform distance from each other. Cells in a one dimensional topology can also be arranged as a predefined curve such that the curve is not self intersecting or configurable as a closed loop. In a one dimensional topology, cells can also be arranged such that they change with time.
 In another embodiment, a two dimensional topology includes cells aligned in a 2 dimensional grid such that the two axis (X, Y) are perpendicular to each other. Cells can further be arranged in a one dimensional topology such that the cells change with time. In another embodiment, cells can be arranged as a block pattern with each block pattern comprising of contrasting blocks or polygons having different characteristics. In another example, the cells can be aligned in a 2 dimensional grid enclosed in a convex polygon having 3 or more sides. In yet another example, cells in a two dimensional topology can also be arranged as a
predefined curve such that the curve has a self-intersection or closed loops. In a further example, cells can be arranged as vertices of a predefined graph in two dimensions or can be arranged as nodes of a tree in two dimensions where each node can have one or more children.
 In another embodiment, a three dimensional topology includes cells in a 3 dimensional grid where the three dimensions can be in space along X, Y, and Z axis or can have two dimensions X and Y with the third dimension being time. In another example, the cells can be arranged in any 2D topology with the third dimension being time. In a further example, the cells can be arranged in a grid on a plane in 3D such that the grid is enclosed by a convex polygon of 3 or more sides. In yet another embodiment, in a three dimensional topology, the cells can be arranged as vertices of a predefined graph in 3 dimensions or as nodes of a tree in 3 dimensions where each node can have one or more children.
 In an embodiment, each cell of code system, generated using Haar- like-features, depicts information represented through bits, wherein each cell corresponds to a specific Haar-like-feature selected from a predefined feature set and comprises information of p bits. For instance, an input signal S having p bits of information can be encoded using a code system generated based on Haar-like- features. We can assume for each signal S, the length of p bits to be <= 37 bits. In case the signal comprises of less than 37 bits, we can add additional zero bits to the signal S to make its length exactly equal to 37 bits. The new signal with added zero bits having length equal to 37 bits can be referred as S'. Length (S') having ' bits = 37 bits
 In another embodiment, in order to overcome limitations emerging from correctness of decoded data, an error detection capability can be provided through use of a cyclic redundancy check (CRC) or polynomial code checksum codeword. In an implementation, in the base case of a code system having one- dimensional topology, we can add additional 8 bit CRC computed on the p' bits.
p'+8 bit (CRC) = p"
Where, length (p") = 37+8 =45 bits
 In yet another embodiment, in the exemplary code system described above, each cell of the code system can store three bits of information and a special 3 -bit symbol based Reed-Solomon error correction (hereby referred to as F3 Reed Solomon) can be computed on p" bits as a whole for additional security. F3 Reed Solomon encoder can be used for the purpose. This results in q' bits with additional 18 redundancy bits.
p"+18 bits from Reed Solomon redundancy bits = q'
Where, length (q') = 45+18 =63 bits
 In another embodiment, checksums can be used to reflect information content of each cell of the code system. Errors in decoding a particular cell by readers can be corrected by subtracting the known correct cell information from the computed checksum thereby yielding the correct value for the erroneously decoded cell. In yet another embodiment, an additional Haar-like-feature can be added to the beginning of the signal having q' bits. For instance, in case the additional Haar-like-feature represents 5, "010" bits can be added to the beginning of q' bits to give signal Q'.
010 + q' = Q'
where, length (Q') = 3 + 63 = 66 bits.
 As illustrated in the above example that each cell of the code system (CS) represents 3 bits of information, the final 66 bit signal Q' can be represented as a linear array of 22 cells. These 22 cells can be represented in a linear array to form a unique and fixed shape code system having a defined code format. In an embodiment, a border can be created between each cell at all four sides to avoid the mixing of cells with one another while printing. Such a border can be created by inserting a gap of one or more pixels. In case of ink jet printers, printing of cells can result in ink spreading in the neighborhood area thereby affecting the shape
pattern of the adjacent cells. Such a situation can be avoided by putting border at the periphery of each cell of the code system. This new code system with the border can be referred to as CS*. Such a CS* 702 is shown in Fig. 7.
 In yet another embodiment, in order to detect the presence of all cells of a code system in an image captured from camera or scanner, a special symbol can be put at the starting and ending of each code format of the code system. The purpose of using this special symbol is to identify the exact boundary of code format. For instance, a black color filled rectangle 704, as shown in Fig. 7, can be used as the special symbol. Such a special symbol 704 can have a specific width of, for instance, 1.5 times the width of a cell of CS* 702 and a specific height of, for instance, 1.0 times the height of a cell of CS* 702. In another embodiment, find out markers can be placed in the code system for detecting location of the code system in an item or an image that includes the code system. In yet another embodiment, based on the find out markers and/or inherently known cell pattern structures it becomes easier to identify and separate noise in an image from the correct pattern of Haar-like-features, wherein the noise can in some embodiments also be Haar-like-features that are not intended to be a part of code system. The complete code system after the addition of the special symbol 704 can therefore look as 706 as illustrated in Fig. 7.
 Fig. 8 illustrates a detailed structure and/or composition of a code system clearly indicating the code format 800 of the code system having one or more cells with each cell corresponding to a Haar-like-feature, wherein the Haar- like-feature is selected from a predefined feature set generated from Haar wavelets. As illustrated in the code format 800, each pair of identifying rectangles aligned along their widths in a captured image with a specific distance between their centers will serve as potential location of a code system. The correct pair of rectangles which satisfy the alignment and dimensional constraints will be the potential location of the code system.
 In an embodiment, an error detection capability can be provided through use of a cyclic redundancy check (CRC) and/or through a polynomial code checksum in case of a code system having one-dimensional topology. Such checks can be provided and performed to test the accuracy of the scan during the decoding process. In an implementation, the checks can be performed after the low-level decoding is performed and before the high-level decoding is executed to allow error recovery for each cell error correction since the check-sums reflect the information content of each cell in the code system. Errors in decoding particular cells of the code system can therefore be corrected by subtracting the known correct cells from the checksum to yield the correct value for the erroneously decoded cell. Other well-known error detection and correction mechanisms can also be applied on the code system to further improve the recognition accuracy.
 In yet another embodiment, the code system of the present invention can be seamlessly integrated with the existing systems for generating, printing, and reading code systems. There is no requirement of special hardware, printer, or paper media to use the code system generated based on Haar wavelets. Existing mechanisms of printing, etching, engraving, and embossing can be used for the Haar-like-feature based code system disclosed above. Furthermore all existing hand-held devices including hand-held scanners, hand-held cameras, mobile phone cameras, industrial cameras, and barcode readers used for decoding and reading cell information are also compatible with the code system of the present invention.
 Code system of the present invention can be used in existing coding applications relating to labeling of objects for tracking and inventory control for use in retail shopping yards for containers and transportation for trucks or vehicles, healthcare, security, libraries etc. Code system can further find application in storing documents such as music file, image, html page small video in code.
 Other possible applications of the code system include use in Robot navigation in tubes and tunnels by tracking the codes in the tunnels, electric wires
on street, pipes and wires in buildings to keep an identifier for them, industrial automation by robots and machines taking decisions based on the position of codes and the data stored in them, making a high security key and encrypted data using codes having three-dimensional topology as discussed since it is hard to copy a 3D structure. Further use of the code system as high capacity 2D codes configured to store grid structure of 3D objects that can be projected on screen when decoded can be made. Such 2D codes can also be used in smart cards to store biometric data such as data of fingerprints in encrypted format.
 In another embodiment, the code system can be used for advertisement in media such as newspapers and billboards. It can include website, webpage, company information, product information and design. Use of Haar-like- features can also be made in shape analysis of objects after some deformation. Use of Haar-like-features also allows the code system of the present invention to be used for printing of the code on objects such as pipe, wherein after some deformation such as a bend in the pipe, the code is decoded. The shape of the decoded code can be used to analyze the shape of the object like pipe.
 In yet another embodiment, the code system can find application in the domain of document authentication such as on stamp papers, confidential documents, and currency notes. Entire document can also be stored in encrypted format so that the document cannot be duplicated. License plates of vehicles can also use the code system for automatic and fast license plate recognition. In traffic signs, vehicles mounted with camera can update the driver on speed limits, traffic signs etc by decoding codes on traffic sign boards.
 In yet another embodiment, different color combinations too can be used for cells having same Haar-like-feature for storing more data/information. For instance, a cell 402(E) having red and blue color can store different information from the same cell 402(E) having a different color combination of say red and
green. In such an embodiment, however, color, apart from shape alone, of the cell too would be important while decoding of correct information.
 In yet another embodiment, one or more defined Haar-like-features can also be placed in between the cells of the code system to indicate markers and an intermediate point in the code system. In another embodiment, time can also be taken as a dimension for the Haar-like-feature based code system of the present invention, wherein the code system, at a given time, stores specific information, which changes with time.
ADVANTAGES OF THE INVENTION
 The present invention provides a code system configured to generate a code format using Haar wavelets.
 The present invention provides a code system configured to generate a code format having improved error detection and error correction.
 The present invention provides a code system configured to generate a code format suitable for one-dimensional, two-dimensional, and three dimensional topologies.
 The present invention provides a code system configured to generate a code format enabling high storage capacity.
 The present invention provides a code system configured to generate a code format having high recognition accuracy and capability.
 The present invention provides a code system configured to generate a code format having minimum false positive error correction, robustness to camera blur and to bad illumination.