WO1998047101A9 - Robust machine-readable symbology and method and apparatus for printing and reading same - Google Patents
Robust machine-readable symbology and method and apparatus for printing and reading sameInfo
- Publication number
- WO1998047101A9 WO1998047101A9 PCT/US1998/007905 US9807905W WO9847101A9 WO 1998047101 A9 WO1998047101 A9 WO 1998047101A9 US 9807905 W US9807905 W US 9807905W WO 9847101 A9 WO9847101 A9 WO 9847101A9
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- symbol
- character
- characters
- values
- symbology
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/06009—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
- G06K19/06018—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking one-dimensional coding
- G06K19/06028—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking one-dimensional coding using bar codes
Definitions
- TECHNICAL FIELD This invention relates to a new machine-readable symbology, and devices and methods for reading or printing symbols under the symbology.
- Bar code symbologies were first disclosed in U.S. Patent No. 1,985,035 by Kermode and expanded shortly thereafter in the 1930's in U.S. Patent No. 2,020,925 by Young, assigned to Westinghouse. These early symbologies were printed by generating a multiplicity of single width elements of lower reflectance, or "bars," which were separated by elements of higher reflectance, or “spaces.” An “element” is a bar or space. These early symbologies, and many "bar code symbologies" used today can be referred to as "linear symbologies" because data in a given symbol is decoded along one axis or direction.
- Symbologies such as linear symbologies encode "data characters” (e.g., human readable characters) as “symbol characters,” which are generally parallel arrangements of alternating bars and spaces that form unique groups of patterns to encode specific data characters.
- Data characters include not only human readable characters, but also include special function characters such as start, stop or shift characters that provide certain functional data. Each unique group or pattern of bars and spaces within a predetermined width defines a particular symbol character, and thus a particular data character or characters.
- the known U.P.C. symbology can be described generically as a (7,2) "n,k code.”
- An “n,k code” is defined as a symbology where each symbol character has “k” number of bars and spaces and whose total length is “n” modules long. Therefore, the U.P.C. symbology encodes two bars and two spaces in each symbol character and each symbol character is seven modules long.
- a “module” is the narrowest nominal width unit of measure in a bar code symbology (a one- wide bar or space). "Nominal” refers to the intended value of a specific parameter, regardless of printing errors, etc.
- the number of possible symbol characters can be found by realizing that in seven modules, there are six locations where a transition can occur, and that for two bars and two spaces, there are three internal transitions. Therefore, the number of unique symbol characters for the U.P.C. symbology is simply 6 choose 3 which equals 20. Similarly, under the Code 128 symbology, which is an (11,3) symbology, 252 unique symbol characters are available (10 choose 5).
- the bar code symbologies known as U.P.C, EAN, Code 11 and Codabar are all bar code symbology standards which support only numeric data characters, and a few special characters such as "+" and "-".
- the U.P.C. symbology is both a bar code standard, as well as an industry standard, in that it has been adopted by industry in a standard application (consumer goods).
- the bar code standard Code 39 was the first alphanumeric bar code symbology standard developed. However, it was limited to 43 characters.
- Code 93 is an improvement over Code 39.
- Code 93 is a continuous bar code symbology employing four element widths. Each Code 93 symbol has nine modules that may be either black or white (either a bar or a space). Each symbol in the Code 93 standard contains three bars and three spaces (six elements), whose total length is nine modules long. Code 93, having nine modules and three bars per symbol is thus a (9,3) symbology which has 56 possible characters (8 choose 5).
- the Code 93 symbology standard defines only 48 unique symbols, and thus is able to define 47 characters in its character set plus a start/stop code. The 47 characters include the numeric characters 0-9, the alphabetic characters A-Z, some additional symbols and four shift codes.
- ASCII American Standard Code for Information Interchange
- ASCII defines a character set containing 128 characters and symbols. Each character in ASCII is represented by a unique 7-bit code. Since Code 39 and Code 93 are limited to fewer than 50 characters, these standards are inadequate to uniquely represent each ASCII character. The four shift codes in Code 93, however, allow this standard to unambiguously represent all 128 ASCII characters.
- One drawback is that a series of two Code 93 symbols are required to represent a single ASCII character. Thus, bar code labels representing characters in the ASCII character set are twice as long as labels representing characters in the Code 93 character set.
- New bar code symbology standards such as Code 128, were developed to encode the complete ASCII character set, however, these standards suffer from certain shortcomings, including requiring shift codes or other preceding symbols to represent certain characters. All of these symbologies require increased processing time and overhead to process the entire ASCII character set.
- the Unicode character encoding standard is a fixed-length, uniform text and character encoding standard.
- the Unicode standard may contain up to 65,536 characters, and currently contains over 28,000 characters mapping onto the world's scripts, including Greek, Hebrew, Latin, Japanese, Chinese, Korean, and Taiwanese.
- the Unicode standard is modeled on the ASCII character set.
- Unicode character codes are consistently 16 bits long, regardless of language, so no escape sequence or control code is required to specify any character in any language.
- Unicode character encoding treats symbols, alphabetic characters, and ideographic characters identically, so that they can be used in various computer applications simultaneously and with equal facility.
- Computer programs using Unicode character encoding to represent characters, but which do not display or print text, can remain unaltered when new scripts or characters are introduced.
- New computer operating systems are beginning to support these comprehensive 16-bit code standards, e.g., WINDOWS NT, manufactured by Microsoft Corporation of Redmond, Washington.
- the data collection industry has failed to keep pace with the computer industry. No system currently exists for readily encoding the 16-bit computer character codes into bar code symbols. Therefore, there is a need to support these 16-bit computer character standards in the data collection industry, particularly for bar code symbologies.
- alphanumeric bar code symbologies are inefficient when used to encode a long series of numbers or lower case alphabetic characters. For example, when encoding a series of decimal numbers using Code 93 for example, the 26 bar code symbols reflecting the 26 alphabetic characters are not used. Therefore, there is a need to allow these alphanumeric bar code symbologies to more efficiently represent a long series of numbers. Additionally, many symbologies lack error correction features.
- the IPC symbology indicates whether another symbol is adjacent to and in some way includes data related to the IPC symbol.
- a parity arrangement in the data set for the IPC symbology indicates the presence of such adjacent symbol.
- the IPC symbology is a fixed width, numeric symbology, which is used in Uniform Code Council (UCC) applications, such as with the U.P.C. symbology. Since the IPC symbology is fixed width, only a fixed number of characters can be encoded within a symbol. Furthermore, only numeric data characters can be encoded in such symbols. As a result, the IPC symbology is limited to only a few data collection applications.
- a group shift feature permits strings of lower case alphabetic characters, numeric characters and other lower ASCII characters to be decoded efficiently, for example within 10.8 modules per symbol character for a group often of such lower case alphabetic/numeric characters.
- an error correction or Special Features Flag can be employed to indicate error correction characters within a symbol.
- the Special Features Flag character is positioned within the middle of a symbol, followed by a message length indicator character.
- a symbol employing error correction includes five error correction characters, which permit two errors or three erasures to be corrected within the symbol. Furthermore, beginning or end portions of a symbol can be corrected, and the symbol can be encoded in halves.
- a symbology avoids complex methods of encoding 8-bit and 16-bit data by describing a simple byte encodation mode which works on any byte value uniformly.
- the present symbology is similar to the Code 93 symbology, and thus symbol characters are only nine modules long. Three symbol characters encode two 8-bit bytes. Thus, a byte requires approximately 13.5 modules, regardless of the byte value. Further reduction in the number of modules to encode data characters are permitted under the exemplary symbology, such as strings of digits or base Code 93 data characters.
- extended channel interpretation (ECI) numbers are officially encoded.
- ECI extended channel interpretation
- a host computer system to which a reader can be coupled can uniquely decode the coded messages anywhere in the world regardless of the underlying character sets or applications employed by the host computer.
- Sixteen-bit characters are represented by three characters under the exemplary symbology, while in another mode, two 8-bit bytes are represented by three symbol characters.
- extended ASCII data characters can be officially encoded, as well as other relatively small international character sets, such as the ISO series 8859-1-8859-9.
- the present invention embodies a machine-readable symbology having a plurality of symbol characters.
- the machine-readable symbology includes an error correction flag symbol character that indicates that at least one error correction symbol character is present within a group of symbol characters. Additionally, the present invention embodies an machine-readable symbology having a plurality of symbol characters, wherein a group of symbol characters form a printable symbol.
- the machine-readable symbology includes a Special Features Flag symbol character that indicates a first function at a first location within the printable symbol. The Special Features Flag symbol indicates a second function at a second location within the printable symbol.
- the symbology may employ a combination of Code 93 start and stop characters, and two unique start and stop characters to identify a symbol having character values beyond those in the standard Code 93 symbology, symbols having error correction, and symbols having related or companion symbols, typically located adjacent or near to the current symbol.
- Aspects of the present invention also embody methods and apparatus for printing and reading machine-readable symbols and other embodiments and aspects of the present invention.
- Figure 1 is an example of a label having bar code symbol characters, with human readable characters, printed or read under an exemplary embodiment of the present invention.
- Figure 2 is a table showing symbol values and associated symbol characters and data characters for an exemplary symbology under the present invention.
- Figure 3 shows an exemplary symbol character format.
- Figure 4 shows the bar code symbol of Figure 1, with each symbol character identified with its associated data character.
- Figure 5 is a table showing full ASCII data characters encodable under symbology of Figure 2.
- Figure 6 is a block diagram of a bar code symbol printing apparatus of the present invention.
- Figure 7 is an exemplary flow chart showing the basic steps performed by the printing apparatus of Figure 6 for printing bar code symbols under the exemplary embodiment.
- Figure 8 is a block diagram of a bar code symbol reading apparatus of the present invention.
- Figure 9 is a flow chart showing the basic steps performed by the reading apparatus of Figure 8 for reading bar code symbols under the exemplary embodiment.
- Figure 10 is a schematic diagram of a 93 i symbol employing error correction characters.
- Figure 11 is a schematic diagram of a 93i symbol having an adjacent companion symbol.
- Figure 12 is a block diagram of a 93 i symbol and a companion two-dimensional symbol.
- Figure 13 is a block diagram of a 93i symbol and a companion RF tag.
- Figure 14 shows a 93 i symbol with a companion PDF417 symbol positioned above the 93i symbol.
- Figure 15 shows a 93 i symbol with a companion Code 49 symbol positioned to the right of the 93 i symbol.
- data characters refers to human readable characters, including symbols, numeric characters, alphabetic characters, and ideographic characters, as well as non-readable data, such as function codes, shift codes, etc.
- numeric string refers to a sequence of numeric characters, typically decimal digits
- character codes refers to a code, typically numeric, which refers to a data character within a set of character codes and corresponding data characters, such as ASCII, where "8-bit code” refers to an extended ASCII code corresponding to a data character in the ASCII standard, and "16-bit code” or “16-bit character code” refers to a hexadecimal or decimal representation of a data character in a 16-bit character encoding standard, such as Unicode; "bar code symbology” refers to a set of machine-readable or symbol characters for uniquely representing a set of data characters; “symbol value” refers to a code such as an
- the data character “A” is represented by the 16-bit code "0041” in hexadecimal notation and "65” in decimal.
- the data character “A” has a symbol value of "10" in the bar code symbology Code 93.
- the symbol value 10 in Code 93 corresponds to a symbol character having a pattern of a two module width bar followed by: a single module width space, a single module width bar, a single module width space, a single module width bar, and a three module width space.
- the counts associated with the printing of this symbol are generally unique to each printer, and for a thermal printer, would represent the time intervals between transitions between bars and spaces to appropriately activate the printer's heating element as the thermal sensitive paper moved past it where the bars are positioned perpendicular to the direction of the label through the printer.
- the counts can indicate which dots or thermal-print elements to activate when the bars are parallel with the direction of the label through the printer.
- a new bar code or linear symbology under an embodiment of the present invention efficiently encodes bytes and words of data, to uniquely represent each 16-bit code in any 16-bit character code, encode ECI characters, as well as provide additional features described in detail herein.
- Figure 1 shows an example of a label 101 printed or read under the 93i symbology. As shown in Figure 1, the label 101 includes a series of bar code symbols which encode data characters, as well as corresponding human readable characters printed thereunder.
- the 93i symbology is similar to Code 93. As a result, the 93i symbology encodes numeric, alpha-numeric, and the full 128 ASCII characters. Additionally, the 93i symbology encodes the extended ASCII characters and all international character sets, such as those represented by 16-bit character codes.
- the 93i symbology is continuous and employs a symbol structure, as described below, having six elements per symbol, with three bars and three spaces. Characters under the 93i symbology are not self-checking and symbol length is variable.
- the 93i symbology employs two symbol check characters or optional error correction characters.
- the 93 i symbology employs the equivalent of 37 modules as non-data overhead.
- the 93 i symbology permits data character density as follows: 5.4 modules per numeric digit, 9 modules per symbol character for alpha-numeric data, 13.5 modules for full ASCII and extended ASCII (as defined under the ISO8859 8-bit single-byte coded graphic character set standard), up to 10.5 modules for strings of lower case alphabetic characters and other lower ASCII characters, and 27 modules per Asian or 16-bit character code characters.
- the present symbology supports the Extended Channel Interpretation (ECI) protocol (described below), and is fully compatible with the existing Code 93 symbology.
- Figure 2 shows the symbol character assignments for each data character in the 93i symbology.
- the "value" column in Figure 2 represents the symbol value for each symbol character.
- the symbol value is used to compute not only check or error correction characters, but is also employed in various data compression methods.
- the "character” column in Figure 2 lists the alternating bar and space pattern for each symbol character, where a "1" corresponds to one module, "2" corresponds to two modules, etc. Each character begins with a bar.
- the "data” column in Figure 2 represents a base data character corresponding to each symbol character, or the functionality of the symbol character. As shown in Figure 2, symbol values 00-46, and their corresponding symbol characters and data characters match the corresponding symbol values, symbol characters, and data characters in the Code 93 symbology, as well as the start and stop symbol characters.
- the 93 i symbology employs unique start and stop characters: a start character consisting of a bar and space pattern 2, 1, 3, 1, 1, 1, and a stop character consisting of the same bar and space pattern but including an additional two-wide bar at the end, i.e., 2, 1, 3, 1, 1, 1, 2.
- start and stop characters differentiate the symbology from the Code 93 symbology, and provide characters having wide elements at the beginning and end of the character, to facilitate out-of-focus decoding.
- the two available start and stop characters permit four distinct types of symbols to be valid.
- the first valid symbol type begins and ends with the Code 93 start and stop characters, respectively, includes all symbol characters having character values less than 47, and every shift character is followed by a character value within the data character set A,B, ..., Z.
- the second valid symbol type begins with the Code 93 start character, includes either at least one character value greater than 46 or at least one shift character followed by a character of value less than 47 other than A, B, ..., Z, e.g., a character string not defined for Code 93, and ends with the 93i stop character.
- the third valid symbol type begins with the 93 i start character, contains a Special Features Flag (described below) in the middle of the symbol characters that represent and any data character combination under the 93i symbology, and ends with the Code 93 stop character.
- the third valid symbol is a 93i error corrected symbol.
- the fourth type of valid symbol begins and ends with the 93 i start and stop characters and contains any data character combination, but this start/stop character combination indicates that a companion symbol is present.
- a 93i symbol having 93i start and stop characters indicates to a reader that a line scannable symbol is located adjacent to or near the 93 i symbol, and typically includes encoded data related to the data encoded within the 93i symbol. Use of companion symbols is described more thoroughly below.
- C93/93i 93i (has 93 i stop and at least one other 93 i specific feature)
- an adjacent tag indication feature (described below) can be used with any of the 93 i start/stop character combinations. All character combinations or mode values not explicitly defined herein are invalid and cause a decode operation to fail.
- the 93i symbology employs 53 symbol values, rather than the 47 employed in the Code 93 symbology. Specifically, the 93i symbology adds symbol values 47-52 and two start characters. A first start character beginning with a bar space bar pattern of 2, 1, 3, 1, 1, 1 indicates that the symbol is a 93i symbol, and therefore can include symbol values 47-52.
- a reader can determine whether the symbol is in focus by determining whether the single width space is resolved. If the reader identifies a 5 -width bar in the 93 i start character, then the reader determines that the symbol is likely out of focus since the 1-wide space is unresolved.
- Another start character is identical to the start symbol for the Code 93 symbology, and indicates that the symbol is encoded using only valid Code 93 symbol characters.
- the Code 93 symbology provides the most efficient character density, and is therefore preferred for such messages.
- the symbol character structure for each symbol character in the 93 i symbology employs 3 bars and 3 spaces in 9 modules. Each bar or space is 1, 2, 3, or 4 modules in width.
- the 93 i symbology employs a leading quiet zone (QZ) having a minimum width equal to ten times the X dimension, one of two start symbol characters, one or more symbol characters encoding data characters, two symbol check characters (referred to as "C" and "K”), a stop symbol character, and a trailing quiet zone.
- QZ leading quiet zone
- a symbol may include an error correction or special function flag and message length indicator within the middle of a symbol, and five error correction characters, as discussed below.
- Figure 4 shows the symbol characters in the label 101 (without error correction) parsed into individual symbol characters, represented by short vertical lines between each symbol character, together with the corresponding data character for each symbol character.
- each 93 i symbol contains two check characters that immediately precede the stop symbol character.
- a modulo 53 sum is employed under the check algorithm for all symbol values in the symbol.
- the check character "C” is computed based on the modulo sum of the products of the symbol values, as shown in Figure 2, multiplied by a weighting sequence.
- the weighting sequence, from right to left (from the stop symbol character to the start symbol character), starting with the immediately preceding character, are in the repeating sequence 1,2,3, . . . 20, 1,2,3, . . . 20, 1,2, . . . .
- the check character "K” is produced based on the modulo sum of the products of the symbol values and a different weighting sequence, where the weights from right to left, beginning with the check character "C" are in the repeating sequence 1,2,3, . . . 15, 1,2,3, . . . 15, 1,2, . . . .
- the start and stop symbol characters are not included in the check character calculations.
- the data characters are, from left to right, 9,3,i,[ECI 16], ⁇ 30908 ⁇ .
- [ECI 16]” refers to the ECI value 000016, while " ⁇ 30908 ⁇ ” is the Asian character having the 16-bit code 30908 in the Unicode standard (which is pronounced approximately as "MA”).
- symbol used alone refers to a collection of symbol characters, such as those shown in the label 101.
- the numeric data characters “9” and “3” are encoded directly, while the data character “i” must be encoded with a shift character (as described below).
- the term “character” used alone refers to either a data character or its corresponding symbol value.
- the [ECI 16] data character is formed with two symbol characters, while the Asian character ⁇ 30908 ⁇ employs a Word Mode discussed below. Briefly, the value 30908 is encoded under the formula (16*43 2 )+(30*43)+34. As a result, the symbol values for the resulting string of symbol characters for encoding the data is: [09][03][46][18][47][16][50][16][30][34].
- the calculation for the check character "C" from right to left is as follows.
- the 93i symbology employs several special characters.
- the 93 i symbology employs four shift characters [S1]-[S4], having symbol values 43-46, shown in Figure 2.
- a shift character preceding a symbol value 10-35 represents a single full ASCII data character, as shown in the table of Figure 5.
- the character combinations [S3] A through [S3]Z in the second column of Figure 5 are valid and may be used under the 93 i symbology to produce the ASCII characters associated with the single characters indicated.
- the data character "Q" can be represented by the single symbol value [81] or by the two symbol values [S3][81].
- the character pairs [S2] with either X, Y, or Z all encode the ASCII value DEL (delete).
- DEL delete
- a shift character [S1]-[S4] is followed by a symbol value of 0 to 9 or 36 to 46, a consecutive string or group of 3 to 23 shifted characters are indicated based on the particular initial shift character.
- the characters space (sp), $, %, +, -, ., /, and the numeric digits 0-9 are unshifted and not used to provide any shifted characters. Therefore, such characters, having character values 0-9 and 36-46, can be used to provide additional functionality, namely the group shift function.
- the number of shifted characters in a group are indicated based on the following table:
- a single shift character can be used within a group of shifted characters to either (1) shift the one subsequent character based on the preceding shift character, or (2) if the characters are currently shifted into the same set indicated by the initial shift character, then to shift the one subsequent character to the base 93i character set.
- Both the shift character within the string of shifted characters and the one subsequent character are included in the group length of Table 1.
- "Shifted string” and "shifted character” refer to either a string of data characters or an individual data character derived using one of the shift characters [S1]-[S4] based on the table of Figure 5.
- the 93i symbology employs an ECI character [47], having a symbol value 47, that encodes information regarding prescribed meanings of bytes or subsequent data in a given symbol.
- the AIMI ECI Assignments document assigns ECI numbers and the meaning of bytes or data based on the ECI numbers. ECI numbers range from 000000 to 811799. For example, one ECI number represents the encoding of international character sets.
- the 93 i symbology encodes ECI numbers by placing the ECI number anywhere within a symbol and following it by 1, 2, 3, or 4 symbol values selected from symbol values 0-51 of Figure 2.
- a backslash character " ⁇ " (reverse solidus), having ASCII value 92 (see Figure 5), is transmitted before the six digit ECI value.
- the backslash character behaves as an escape character to a host computer or system receiving the string of symbol values or data produced when a symbol is read. If a backslash character is to be placed within the encoded data, two backslash characters must be encoded within the symbol so that the host knows that a single backslash character is desired, rather than an ECI value. Likewise, if two backslash characters are desired, four backslash characters must be encoded for the host to know that two backslash characters are desired.
- the rules for encoding ECI numbers under the 93 i symbology are presented below in Table 2.
- ECI numbers 0-899 bytes or data following such numbers are encoded directly even if the data could be compressible otherwise.
- an ECI number 89 can represent the beginning of a particular type of encrypted data. The encrypted data which follows thereafter, while compressible, is encoded directly.
- the Numeric Mode or Byte Mode (described below) can be used to thereby employ the lower 128 ASCII values and corresponding symbol values as shown in Figure 5.
- ECI numbers are encoded within a string of data characters, which are encoded under the Word Mode (described below), then the full 128 ASCII values are employed with eight zeros prepended thereto.
- ECI numbers 900-811799 are encoded as bytes in their most efficient mode, and the Word Mode character ([50]) is prohibited. For instance, for ECI number 950, if strings of 93i symbol values 0-9 need to be encoded, the Numeric Mode is employed, even though the values of the data characters may not correspond to the numbers employed under the mode specified by ECI 950.
- Table 2 summarizes rules for encoding ECI values under the 93 i symbology.
- div refers to the integer division operator
- mod refers to the modulo division operator
- Cl refers to the most significant position
- C4" refers to the least significant position.
- Symbol value 48 represents a numeric compaction mode in the Code 93 symbology, referred to herein as "Numeric Mode.” Under the Numeric Mode, five numeric digits are compressed into three symbol characters. Thus, sequences of five or more digits should be compressed using the 5/3 Numeric Mode. The Numeric Mode character, symbol value 48, toggles into and out of the 5/3 numeric compression mode. Likewise, the Byte Mode and Word Mode characters, symbol values 49 and 50 respectively, can be used to exit from the Numeric Mode also. If a symbol ends while in Numeric Mode, Numeric Mode exiting character is unnecessary.
- a B and C are 931 symbol values.
- a string of digits is encoded which is greater than five, but not an exact multiple of five, the following four rules should apply.
- the ECI value is used as part of the Numeric Mode, where the symbol value [47] does not invoke the ECI protocol, but instead is itself used in the 5/3 numeric compression method. If the ECI value [47] follows a string of digits encoded under the Numeric Mode, the Numeric Mode must first be exited before the ECI value is used.
- Symbol value 49 represents a byte mode in the 93 i symbology, referred to herein as "Byte Mode.”
- Byte Mode the 93i symbology efficiently encodes strings of full or extended ASCII data or straight byte data.
- a "byte” typically refers to an 8-bit set of data.
- equation (3) a double-byte, or two 8-bit bytes, are encoded for each of three symbol characters:
- A, B, and C are 93i symbol values between 0 and 42.
- Byte Mode permits two extended ASCII data characters to be encoded as a single group of three symbol characters.
- groups of three symbol characters are employed under Byte Mode in the 93 i symbology.
- the even number of characters are represented by groups of three symbol characters, and the last (or only) data character is encoded in one of two ways.
- the last symbol character is an extended ASCII character, then it is encoded as a full ASCII character preceded by an appropriate shift character under Figure 5.
- the last character is encoded directly and followed by the Byte Mode character. In both cases, the last character has a symbol value of 128 plus the value of the base character or shift character (symbol value 00-46, as shown in Figure 2).
- Table 4 below presents optimal encoding of various strings of data characters under the Byte Mode. Recall, symbol value [49] refers to the Byte Mode character, while [S?] represents one of the four shift characters, having symbol values 43-46. In the third column of Table 4 below, characters "A" through “F” refer to any data character, having symbol values 00-42 in Figure 2.
- strings of numeric data characters are to be encoded between full or extended ASCII data characters
- additional encoding strategies are available under the 93i symbology to improve symbol character densities. If one or two numeric data characters are encoded between full or extended ASCII characters, then the one or two numeric characters are treated as single full ASCII characters, having ASCII values 48 to 57 as shown in Figure 5, depending upon the number of digits. If three to nine numeric data characters are encoded between full and extended ASCII characters, then groups of three and four digits are compressed under values 65536-75535 and 75536- 76535 of the Byte Mode.
- the Byte Mode provides satisfactory numeric compression for 3 to 9 digit numeric strings within strings of full or extended ASCII characters. However, with a string of 10 digits or more, the Byte Mode should be exited and the Numeric Mode entered by simply providing the Numeric Mode character [48] within the string of full or extended ASCII characters.
- Symbol value 50 represents a word mode in the 93i symbology, referred to herein as "Word Mode.” Under the Word Mode, three symbol characters are grouped so that their corresponding three symbol values encode a single 16-bit value. Thus, three symbol characters can encode Asian characters or 16-bit character codes. Character codes up to 65,536 are encoded under equation (3) above.
- Exiting from the Word Mode is performed with either the Word Mode character [50], the Byte Mode character [49], or the Numeric Mode character [48]. Additionally, as with the Byte Mode, a shift character [S1]-[S4], followed by a single base character, or a single symbol character and the Word Mode character exit from the Word Mode and add 128 to the values of single characters. If the symbol ends while in Word Mode, an exit character is unnecessary. Where immediately preceding symbol characters were encoded under the Word Mode, two symbol characters at the end of a symbol are decoded at their base value. If the host employs an 8-bit processing architecture, then the reader in Byte Mode transmits two consecutive bytes. If the host, however, employs 16-bit architecture (e.g., double-bytes processed in parallel), then the reader can employ Word Mode to transmit a single double-byte word of 16 bytes to the host.
- 8-bit processing architecture e.g., double-bytes processed in parallel
- numeric strings enclosed within characters encoded under the Word Mode are handled in a manner similar to the Byte Mode described above, except strings having value 76,536 to 76,635 encode two digits. If a single digit is enclosed within Word Mode characters, the single digit is represented by [43] N, where [43] is the first shift character SI, and N is the numeric digit. Two, three or four numeric digits enclosed within Word Mode characters are simply represented by the appropriate Word Mode value, in the same way as Byte Mode.
- Word Mode With five numeric digits enclosed within Word Mode characters, the Word Mode should be exited and the Numeric Mode entered by simply encoding the Numeric Mode character [48].
- the explicit Word Mode character values are employed to represent the base, extended or full ASCII characters. If two or more full or extended ASCII characters are encoded within Word Mode characters, the Word Mode should be exited and the Byte Mode entered by again simply inserting the Byte Mode character [49], Table 6 below presents several examples of encoding strings of digits or other data characters efficiently under the 93 i symbology under Word Mode.
- the value "25543" and "18776" refer to two different Unicode 16-bit codes. Character types in the second column are separated by hyphens.
- Any standard 16-bit data character encoding standard can be used by the present invention, for example, Unicode, JISC-6226-1983, Big Five (BF), or KSC 5609-1987.
- the JISC-6226-1983 standard is the Japan Industrial Standard Character set, mapping the kanji and katakana data characters into 16-bit codes.
- This data character standard is similar to Unicode, which, as noted above, includes the kanji and katakana data characters, among others.
- each data character in the JISC-6226-1983 standard is assigned a different 16-bit code for the equivalent data character in the Unicode standard.
- Symbol value 51 represents a function 1 (FNCl) character in the 93 i symbology.
- the FNCl character in the first, second or third positions in a symbol signifies compliance of that symbol with a particular application standard, as is known by those skilled in relevant art.
- Valid combinations of prefix characters preceding the FNCl character are 0-9, A-Z, 10-99, and a-z ([S4]A-[S4]Z).
- the FNCl character in the fourth or subsequent positions corresponds to a transmitted group separator ( ⁇ GS>) character.
- the FNCl character appears within a symbol, while the symbol is in Numeric, Byte or Word Mode, the FNCl character is interpreted as if the Numeric, Byte or Word Mode ended, a group separator ⁇ GS> character was transmitted and then the previous mode is reentered (i.e., Numeric, Byte or Word Mode).
- a reader stores the read symbol in a buffer, together with subsequent symbols having leading spaces, until a symbol without a leading space is encountered. At this time, the entire contents of the buffer, i.e., all read symbols in the buffer, are transmitted, as in the Code 93 symbology. As a result, a long symbol can be partitioned into several smaller symbols, each of the smaller symbols (except the last) having a leading space data character. If a leading space is desired as the first data character in a symbol, without invoking this "leading space append" feature, the Byte Mode should be used.
- a reader that reads and decodes 93 i symbol characters does not transmit the start or stop characters or error correction characters.
- all data characters are transmitted, while a character pair beginning with one of the shift characters [S1]-[S4] causes only the single ASCII character in Figure 5 to be transmitted. Since the 93i symbology can encode Asian and other 16-bit character codes, a reader will transmit 16-bit words when in Word Mode.
- the 93 i symbology preferably employs symbology identifiers.
- Symbology identifiers in the 93 i symbology are prefixes to transmitted data depending upon the nature of the data encoded in a symbol.
- the symbology identifier is a uniform methodology for reporting the particular symbology read and options to set in the reader, as well as any other features of the symbology that are encountered within a particular symbol.
- the AIM USA Symbology Identifier Guideline describes symbology identifiers in greater detail. Readers can be programmed to add the symbology identifier prefix to a given data message which is transmitted from the reader.
- the particular symbology identifier for the 93i symbology is the same as the symbology identifier for Code 93, i.e., "]G.”
- the 93i symbology can employ a unique symbology identifier, such as "]i".
- a modifier data character or characters are then added according to the following rules presented in Table 7 below.
- ECI character present bytes transmitted with " ⁇ NNNNNN” ECI value included in the transmission, and encoded " ⁇ " characters doubled.
- ECI values 0-900 double-bytes are transmitted within the ECI when a Word Mode character is present, and bytes otherwise.
- ECI values 901-811799 the Word Mode character is not encoded and all characters are transmitted as bytes.
- ECI character present all characters are transmitted as double bytes, including the ECI sequence.
- FNCl character in the first position ECI character present and single bytes transmitted.
- D-8 Structured append support The modifier character “m” corresponds to particular application standard followed and registered with AIM. The modifier character “m” occurs only when the FNCl character is in the second or third position.
- the symbology identifier is followed by bytes for a 0, ASCII value 48, then the encoded digit, having ASCII value 48-57, which are transmitted. If the FNCl character is encoded in the third position following two prefix digits, then the byte values of the two digits are transmitted follow the symbology identifier under Table 7. If the FNCl character is encoded in the second position following an upper case alphabetic character A-Z prefix, then the single byte value of the alphabetic character, ASCII value of 65-90, follows the symbology identifier.
- this pair of characters in the first and second positions represent a lower case alphabetic character, having ASCII value 97-122, with this single byte value being transmitted following the symbology identifier.
- Symbol value 52 represents a Special Features Flag character that represents either use of error correction characters within the symbol or structured append features depending upon the placement of the Special Features Flag character within the symbol. If the Special Features Flag character is placed in the middle of the symbol, then the Special Features Flag character indicates the use of error correction characters within the symbol. The symbol immediately following the Special Features Flag character indicates the message length of the symbol.
- the 93i symbology employs five error correction characters, having symbol values 0-52.
- the 93i symbology uses Reed-Solomon error correction methodology with a prime modulus 2 Galois field GF (53) with a error correction character generating polynomial determined by the following expansion:
- Symbols employing error correction can be up to a maximum length of 53 symbol characters, excluding start and stop characters. Only 46 data characters are permitted in a symbol employing error correction since the 93 i symbology employs modulo 53 math, and thus cannot permit a symbol having greater than 53 characters. Since 5 characters correspond to error correction characters, and 2 characters correspond to the message length indicator and special functions flag, only 46 data characters remain.
- a printer, computer or other apparatus To encode a symbol with error correction, a printer, computer or other apparatus must first determine the message length L of the optimized message (taking into account the various numeric, byte, word and other modes under 93i symbology).
- the message length L includes the length of the entire data message, excluding the start and stop characters, Special Features Flag character, message length character and the five error correction characters.
- the Special Features Flag character is placed in the position following the character at location (L + 2)/2. Inserted immediately thereafter is a Message Length character having symbol value L - 1, indicating the length of the message, where the message length can be between 1 and 46. Alternatively, the message length character can have a value of L. Thereafter, the printer, computer or apparatus calculates the five error correction characters and places a first two of five generated error correction characters ECI and EC2 after the start character, and the remaining three error correction characters EC3, EC4 and EC5 before the stop character, as shown in Figure 10.
- the resulting encoded symbol is therefore: 93i Start character, ECI, EC2, data (1 to 23 data characters), Special Features Flag character SFlag, Message Length character MsgLength, data characters (0 to 22 data characters), EC3, EC4, EC5, and the stop character.
- the polynomial employs modulo 53 arithmetic, where the results of multiplication, division, addition and subtraction are always within the GF (53) field, having a value of 0 to 52. To obtain a correct result, perform the appropriate mathematical operation and if the result is greater than 52, successively subtract 53 until the result is in the field of 0 to 52, and similarly if the result is less than 0, add 53 until the result is within the field. For example, the numbers (-123), (-17), (89), and (407) all equal (36) under modulo 53 arithmetic.
- the generator polynomial is found to be x 5 + 44x 4 + 21x 3 + 44x 2 + 50x + 39. Dividing the generator polynomial into the encode polynomial above (i.e., into 34x 14 + 30x 13 + 16x 12 + 7x ⁇ + 52x 10 + 50x 9 + 18x 8 + 46x 7 + 3x 6 + 9x 5 + Ox 4 + Ox 3 + Ox 2 + Ox +0) results in a remainder polynomial of 13x 4 + 17x 3 + 24x 2 + 12x + 28.
- the modulo 53 complement of the coefficients are the error correction code words E5-E1, which correspond respectively to "40, 36, 29, 41 and 25.” Therefore, the final encoded string is "25, 41 (ECI and EC2), 9, 3, 46, 18, 50, 52 (Special Features Flag), 7 (message length character), 16, 30, 34, 29, 36 and 40 (EC3, EC4 and EC5).”
- the Special Features Flag character 52 will always be in exactly the middle of an odd number of data characters or to the left of the middle for an even number of data characters.
- the error correction characters ECI -EC 5 are still divided within the symbol.
- the encoded symbol, without start/stop characters is: "ECI, EC2, D, [52], [message length], EC3, EC4, EC5.”
- Error correction under the 93 i symbology can recover up to two erroneous characters, an erroneous character and one or two missing characters (erasures), or up to three missing characters. Thus, a single vertical broad stroke obscuring 3 data characters can be thereby corrected.
- the Special Features Flag character is in the middle, the error correction method under the 93i symbology permits recovering the loss of the beginning or the end of the symbol, including a start or stop character.
- the Special Features Flag character within the middle of the symbol, the symbol can be decoded in halves, thereby effectively doubling its vertical redundancy (in a manner similar to the UPC symbology).
- the resulting symbol is even f rther immune to damage. For example, if all of the error correction characters were placed at one end of the symbol, and that end were obscured or damaged, then all of the error correction characters could be lost.
- the Special Features Flag character and the Message Length character provide important data to a symbol, in addition an indication that the symbol includes error correction characters in the length of the symbol.
- a reader can determine where the middle of a symbol is, if one end of the symbol is damaged or missing. Together with the Message Length character, and remaining error correction characters, the reader can compensate for such damage (if not greater than that correctable by the error correction characters).
- the Message Length character readily provides a length of the symbol to a reader which can be used, as noted above, to facilitate error correction, as well as for other purposes.
- the Special Features Flag character 52 may also be used as a single character flag for multirow ordered concatenation or structured append, or to indicate the existence of a companion data carrier (e.g., an adjacent symbol), when positioned in the first position following the start character.
- a companion data carrier e.g., an adjacent symbol
- One or more character values following the initial Special Features Flag character in the first position are either "modifier" characters that identify the symbol as a member of a group of up to fifteen separate symbols that together form one collective single symbol, or adjacent tag indication values that provide specific reader instructions to assist in the decode and data management of one or more companion data carriers.
- a "tag indication value” is a single character of value 8, 14-17, 22-26, and 30-35 following the Special Features Flag character that signifies information about an adjacent data carrier (described below).
- a "modifier character” is a single character having a character value not in the above set and between 9 and 45, which indicates a structured append group size of between one to five symbols. In other words, one to five additional symbols together with the current symbol form one larger symbol.
- a character value of between 0 and 7, followed by a character value of between 6 and 47 indicates a group size of between six and fifteen symbols, as described below.
- the Special Features Flag character followed by the tag indication value having a character value of 8 indicates that the symbol has a companion line scannable symbol (such as a linear or stacked symbol).
- the Special Features Flag character followed by the tag indication value having a character value of 8 also indicates that the 93i symbol employs error correction.
- a 93 i symbol and its companion symbol can encode multiple sets of data.
- the companion symbol can encode product identification numbers, batch numbers, purchase order numbers, lot numbers, and other customer defined data sets, as well as other predefined data sets.
- Such companion symbols typically encode supplementary data that is related to the 93i symbol to which it is a companion.
- a reader scans or images a 93i symbol having the 93i start and stop characters, or a symbol having the 93i start character, followed by the Special Feature Flag character and the modified character having value 8, the reader understands that a companion symbol should be located close to the 93i symbol and therefore attempts to collect data from the companion symbol.
- the laser scanner remains on as the scanner reads data from the companion symbol.
- the reader scans its image memory to identify a stored image of the companion symbol, or obtains a digital image of an area adjacent to the 93 i symbol to locate the companion symbol.
- the reader does not waste energy or performance.
- an exemplary 93 i symbol 200 includes an adjacent companion symbol 202.
- the companion symbol 202 is shown as a two-dimensional symbol, specifically PDF417 symbol.
- a "two-dimensional symbol” generally refers to a symbol selected from a multi-row or stacked symbology, such as Code 49 and PDF417, or from an area symbology, such as Code One, MaxiCode, and Data Matrix.
- the 93 i symbol 200 includes 93 i start and stop characters 204 and 206, respectively, as well as the Special Features Flag character 208 and a tag indication value 210.
- Figure 14 shows an exemplary 93 i symbol with a companion PDF417 symbol positioned adjacent to and above the 93i symbol.
- Figure 15 shows a 93i symbol with a companion Code 49 symbol. The Code 49 symbol is positioned to the right of the quiet zone for the 93i symbol.
- tag and “data carriers” are used interchangeably to refer to machine-readable symbols or devices that store or encode data.
- data carriers or tags include radio frequency (RF) readable tags, machine-readable symbols including linear and two-dimensional symbols, etc.
- RF radio frequency
- tags include radio frequency (RF) readable tags, machine-readable symbols including linear and two-dimensional symbols, etc.
- RF radio frequency
- a tag indication value having value 14 instructs the reader or host to replace data associated with the 93 i symbol with data in the companion symbol under a read/write routine.
- the 93 i symbol 200 in Figure 11 can provide a record locator name to indicate a particular record or file stored in a database in the reader or in the host computer. If the tag indication value 210 has a character value 14, then the 93i symbol 200 instructs the reader to replace the record indicated by the 93 i symbol with the data encoded in the companion symbol 202. As a result the 93i symbol 200 and companion symbol 202 can replace data stored externally.
- a tag indication value, having value 15, instructs the reader or host to place the data in the companion symbol at the beginning of the data record associated with the 93 i symbol, while a tag indication value having value 16 instructs the reader or host to place the associated data at the end of the associated data record.
- a tag indication value having value 17 instructs the reader or host to not transmit the associated data, but instead, possibly display the data on a display device of the reader.
- Tag indication values having values 22-26 indicate to the reader that not only is a companion two-dimensional symbol such as an area symbol located near the 93 i symbol, but also provides an indication of a predetermined alignment and placement of the area symbol.
- An area symbol typically employs an arrangement of regular polygons positioned with respect to a finder pattern (e.g., Code One, or Data Matrix MaxiCode). Since a reader knows the specific alignment of the area symbol with respect to the 93 i symbol, the area symbol may avoid using a finder pattern, and thereby provide additional data characters in the space previously occupied by the finder pattern.
- the tag indication value 210 may have a value
- a 93 i symbol 214 has a companion two-dimensional symbol 216.
- the companion two-dimensional symbol 216 can be specifically aligned with the 93i symbol 214 such that a right hand edge 218 of the 93i symbol is vertically aligned with a left hand edge 220 of the companion symbol.
- Tag indication values having values 30-35 inform the reader that a companion tag exists, and provides instructions or an indication as to how information can be obtained from the tag.
- the companion tag can be a radio frequency (RF) tag 226, and the value of the tag indication value in a 93i symbol 224 may indicate that a specific RF identification (RFID) code be employed to obtain the data stored in the tag.
- RFID RF identification
- data encoded in the 93 i symbol 224 can provide instructions to the reader for polling or obtaining data from the RF tag 226, such as providing a specific frequency.
- the tag indication values may indicate a particular companion tag.
- the tag indication values 22-26 may indicate a particular two-dimensional symbology, such as PDF417 or Code One.
- the specific instruction sets that a reader employs when encountering the tag indication values are preferably predetermined and standardized such that all readers perform the same operations when encountering such symbols.
- the 93i symbology provides a method of providing instructions to a reader, such as instructions for whether to continue scanning/imaging to locate a companion symbol.
- the 93 i symbology employs a method of using start and/or stop characters to encode data that controls a reader. Combinations of start and stop characters provide for four types of valid symbols. Such four types of valid symbols speed the reading or decoding process, such as by indicating whether the reader must employ error correction.
- the 93i symbology can encode data that helps a reader retrieve data from a companion symbol or tag, such as through the use of tag indication values.
- the modifier characters are algorithmically generated based on the following rules. If the first character has a character value between 9 and 45, then the character value is converted into 6 bits, and the first three bits are the ordinal symbol value and the second three bits are the group size. For example, 45 corresponds to the six bits 101101, or the fifth symbol out of a group of five symbols. If the first modifier character has a character value between 0 and 7, and the immediately following subsequent character has a character value of between 6 and 47, then the two characters of are converted to six bits each and join to form a single string of twelve consecutive bits.
- the first three bits and the eighth bit are always zero bits, while bits four through seven identify the ordinal symbol number and bits nine through twelve represent the group size for the collective symbol. For instance, 7, 47 corresponds to the twelve bit binary string 000111101111, with bits four through seven being l l l l and bits nine through twelve being l l l l, therefore representing the fifteenth symbol out of fifteen symbols.
- Table 8 below shows an example of modifier characters under the structured append of the 93 i symbology.
- the first check character is computed as the modulo 43 sum of the ASCII value of all of the data characters within the group of symbols (not including the Special Features Flag character, modifier characters, mode characters, check or error correction characters).
- the second check character is computed as the modulo 43 difference of the ASCII value of all of the data characters within the group of symbols, including the first check character, but excluding the Special Features Flag character, modifier characters, mode characters, error correction characters or other check characters.
- Each symbol in a group of structured append symbols may be scanned or imaged in any order, and symbols with error correction characters may be mixed with regular 93i symbols lacking error correction characters.
- the data from all of the symbols is buffered in the reader and transmitted in the correct order with any pre- and post-amble enabled characters within the reader, such as carriage return (CR), line feed (LF), etc.
- a reader can be configured to transmit individual symbols using the symbology identifier protocol explained herein. In such case, the appropriate symbology identifier is followed by a double digit pair, m of n, and prepended to the data transmission of each symbol.
- the symbol values encoded in the first symbol are "52, 10, 1, 2, 3”
- the symbol values encoded in the second symbol are "52, 18, 8, 4, 4, 5, 6”
- 8 (49 + 50 + 51 + 52 + 53 +54) mod 43
- 4 (49 - 50 - 51 - 52 - 53 - 54) mod 43.
- the data transmitted from the reader is transmitted as the data character string 1, 2, 3, 4, 5, 6, CR, LF.
- each symbol in a group of structured append symbols includes a file marker character, instead of the first and second check characters.
- Each symbol in a group of structured append symbols includes the same file marker character selected from any of the symbol values 0 through 42 (data characters 0 through %).
- the file marker character identifies each symbol as corresponding to their associated group. Symbols in a different group of structured append symbols therefore would have a different file marker character identifying each of such symbols with their corresponding group.
- File marker characters may be more easy for a printer to print since the printer need not enter into a special mode and can simply print one symbol in a field at a time.
- the file marker character has the benefit of allowing a user to match files in an unbuffered mode, assuming an appropriate symbology identifier is included in the symbol or a simple software program running on a host computer performs such grouping.
- the file marker character can be placed, for example, after the Special Features Flag character.
- the Special Features Flag can be used together with one or more subsequent symbol values, can be employed in several separate symbols to designate a complete two-dimensional symbol. For instance, the flag may be followed by a single character whose value is made up of the position and the size of the symbol.
- the Special Features Flag character 52 together with the one or more subsequent symbol values, indicate a precise location of each symbol within a two- dimensional area to effectively form a two-dimensional symbol. For example, four symbols can together form a single two-dimensional symbol having two rows.
- the Special Features Flag character 52 together with a first, subsequent symbol value, can indicate that one symbol forms the upper-left portion of the two-dimensional symbol, while the Special Features Flag symbol with a second symbol value indicates that another of the four symbols corresponds to the lower-right corner of the two- dimensional symbol.
- the check characters for the last symbol in the structured append two-dimensional symbol are check characters for the entire two-dimensional symbol.
- a given symbol can include both the Special Features Flag character within the middle of the symbol to indicate that the symbol includes error correction characters, and at a beginning of the symbol to indicate use of the structured appended feature.
- FIG. 6 shows an exemplary symbol character printing apparatus 100.
- the apparatus 100 consists of a printer 102, a central processing unit (CPU) 104, a memory 106, a keyboard 107 and a secondary storage 108.
- the printer 102 is of a type generally known which can print bar codes and human readable data characters. Those skilled in the art may select from any such printers which are suitable for use in the present invention.
- the CPU 104 is electrically coupled to a host computer, or other apparatus or applications, by a port or line 109.
- the CPU 104 executing a routine ( Figure 7) stored in the memory 106 and/or the secondary storage 108, converts a 16-bit data character code into counts which are sent to the printer 102.
- the printer 102 interprets these counts and converts them into printed symbol characters, typically in the form of a bar code label.
- a "label” generally refers to any paper, cloth, plastic, metal or other pliable or rigid material suitable for having one or more symbol characters and/or data characters printed or formed thereon. Those skilled in the relevant art, however, will recognize that the term “label” also refers to any symbol characters printed on an object, such as packaging for a consumer product, or relief formed on an object.
- the printed label can include both symbol characters and the corresponding human readable data characters.
- the label 101 of Figure 1 is an example of a label printed or read under embodiments of the present invention.
- Figure 7 shows exemplary steps performed by the printing apparatus 100 of Figure 6 under a routine 111 for printing a bar code label having multiple symbol characters and with corresponding data characters.
- a string of data characters are selected, input or determined, for example, such as input using the keyboard 107.
- the string of data characters may also be input to the CPU 104 over the line 109 from the host computer 105.
- the keystroke is converted into a "scan code" which is transmitted from the keyboard to the device to which the keyboard is connected (e.g., the printing apparatus 100 or the host computer 105).
- This scan code represents the particular key of the keyboard which has been depressed, and is unrelated to any particular character or value in a data character set, such as ASCII or Unicode.
- the CPU 104 divides or parses the selected characters into various sets of data characters, such as alphabetic characters, numeric characters, 8-bit bytes, 16-bit words or characters, etc. Data parsing techniques are well known in the relevant art.
- the CPU 104 defines any special characters, such as shift characters [S1]-[S4], mode characters, such as numeric, byte and word mode characters [48], [49] or [50], respectively, etc. Additionally, in step 114, the CPU 104 determines whether any ECI numbers are to be encoded in the symbol.
- step 116 the CPU 104 determines an optimized string of symbol characters based on the selected data characters. For example, if five consecutive data characters are numeric, then the CPU 104 determines that the Numeric Mode should be employed to reduce the number of symbol characters and thereby increase information density of the resulting symbol.
- CPU 104 in step 116 employs the rules and suggestions presented above for increasing information density in a symbol (e.g., as shown in Tables 4-6).
- the CPU 104 determines the symbol value for each data character.
- a table of data characters and their corresponding symbol values is preferably stored in the secondary storage 108, along with the counts for the corresponding symbol characters, such as the tables of Figures 2 and 5.
- the symbol values can be automatically calculated from knowledge of the data characters.
- the CPU 104 in step 118 encodes selected data characters into symbol characters selected from the table of Figure 2 based on the appropriate routine described herein. For example, if the CPU 104 encounters a string of three or five digits, the CPU employs equations (1) and (2), respectively, which are described above. If bytes are to be encoded, then the CPU 104 employs the equation (3).
- step 120 the CPU 104 determines whether the symbol is to employ error correction characters. If so, then the CPU generates error correction characters as explained above. Alternatively, the CPU 104 generates the check characters "C" and "K" by employing the above-described check character algorithm.
- step 122 the CPU 104 chooses a suitable X-dimension for the symbol based on, in part, the number of symbol characters to be printed.
- step 124 the CPU 104 chooses other format options, such as printing the symbol with the human readable data characters, or other format options known by those skilled in the relevant art.
- step 126 the CPU 104 outputs the appropriate codes and other signals to the printer 102, which in turn prints the symbol as a series of symbol characters (and possibly data characters) to form the bar code label.
- the 93i symbology can also be readily read using a bar code reading apparatus such as a bar code reading apparatus 140, shown in Figure 8.
- the reading apparatus 140 has a standard bar code reader 142.
- the bar code reader 142 includes an electro-optical device 143 such as a laser scanner, rasterizing laser, or wand-based optical transducer.
- the electro-optical device 143 in the reader 142 can include a one- or two-dimensional CCD, semiconductor array, vidicon, or other area imager capable of converting received light into electrical signals.
- the electro-optical device 143 in the reader 142 can also include a light source such as an LED, flash bulb, infrared light source, or other light-emitting element.
- the term "reader” refers to any device capable of converting modulated light received from a bar code into electrical signals. Readers are known by those skilled in the art, and any such reader suitable for use in the present invention can be selected.
- the data read from the bar code reader 142 is input to a CPU 144.
- a memory 146 and a secondary storage 148 are coupled to the CPU 144.
- the data input to the bar code reader 142 is processed by the CPU 144 and output to a host computer 147, or other apparatus or applications, by a port or line 149. Alternatively, the data can be output via a wireless link.
- Figure 9 shows the steps performed under a routine 150 by the reading apparatus 140 of Figure 8 for reading bar code symbols having symbol characters from the present symbology.
- the bar code reader 142 scans or images the symbol characters of a bar code label and determines the width of the elements, e.g., by determining a series of counts. As is known by those skilled in the art, the transitions between bars in the symbol characters, together with a timer within the reading apparatus 140, determine the counts of the symbol characters read. The counts in turn are used to determine the widths of elements in a given symbol.
- the CPU 144 analyzes the counts, to locate the quiet zones on both sides of the symbol.
- step 154 the CPU 144 selects the first 6 counts, which represent the first string of 6 element widths.
- step 156 the CPU 144 divides the first six counts by 9 and normalizes the result to estimate the widths of the individual elements.
- step 158 the CPU 144 compares the widths of the first 6 elements to the string of widths for the start character and with the reverse string of widths for the stop character. If the last 6 elements in the string correspond to the 6 elements from the start character, but in reverse, the CPU 144 recognizes that the symbol has been scanned in reverse, and therefore recognizes that the symbol is to be read from right to left (as opposed to the traditional left to right).
- step 160 the CPU 144 selects the next 6 elements, and in step 162, divides the sum of the elements (counts) by 9 and normalizes the result.
- step 164 the CPU 144 determines the symbol value for the selected 6 elements.
- step 166 the CPU 144 determines if the label contains any additional elements and if so, loops back to step 160 to perform the steps 160 through 164 again until all of the symbol characters have been converted into symbol values.
- step 168 the CPU 144 determines if any invalid/undecodable symbol characters have been generated. If some symbol characters are determined to be undecodable, then the routine loops back to step 160 and the CPU 144 performs other known decode methods, such as edge-to-edge (element pairs) decoding for individual elements in the symbol. Alternatively, in step 168, the CPU 144 performs bar-to-bar or space-to-space comparisons, or Factor R decoding methods, known to those skilled in the art.
- the CPU 144 can also verify or determine whether the symbol characters are in focus.
- the CPU 144 analyzes the signals produced by the bar code reader 142 for the symbol characters to determine whether the CPU can recognize the wide elements but fail to recognize the one- wide elements. If the CPU 144 cannot recognize the one-wide elements in one or more symbol characters, the CPU aborts the decode routine, provides unfocused data to the CPU, or performs other functions such as alerting the user that the symbol is not in focus. If the CPU 144 is sufficiently programmed, it can decode the unfocused data based on the present inventor's U.S. Patents 5,486,689, 5,514,858, 5,539,191 and/or U.S. Patent Application No. 08/493,669, filed October 12, 1996.
- step 170 the CPU performs the check calculation based on the last two symbol characters. Alternatively, if the symbol included error correction characters, then the CPU 144 employs error correction. If the check characters check or error correction is performed under the above algorithms, then in step 171, the CPU 144 converts the symbol values into data characters based on a look-up table, by retrieving the appropriate data characters from the memory 146 or the secondary storage 148 depending upon where the appropriate data is stored. The data characters can then be displayed, or used in other applications by the CPU 144, or output over the line 149 to the host computer 147.
- step 171 the CPU 144 also interprets any shift or Mode symbol values, such as symbol values 48-50 for the Numeric, Byte and Word Modes, respectively.
- Mode symbol values 48-50 for the Numeric, Byte and Word Modes
- the CPU 44 encounters one of the Mode characters, or other special characters (symbol values 43-52)
- the CPU enters the appropriate mode or decodes the symbol values as described above.
- the CPU 144 can simply output the symbol values over the line 149 to the host computer 147, which in turn performs the conversion into the corresponding data characters.
- the secondary storage 108 or 148 is unnecessary and thus eliminated.
- the data required by the CPU 104 or 144 may be contained in the secondary storage 108 or 148, thus eliminating the need for a large memory 106 or 146 or the need for this memory entirely.
- the symbol characters can be allocated to different data characters than as described above with respect to Figure 2.
- the FNCl character 51, or the Special Features Flag character 52 can be used to latch into a mode for encoding other sets of data characters.
- the Word Mode character 50 can be used to encode the Unicode characters, while the Special Features Flag character 52 can latch to encode the JISC-6226-1983 characters if positioned at the end of a symbol.
- the 93i symbology can omit the Special Features Flag character in the middle of a symbol.
- the symbol can always employ error correction characters. If a user, printer, or computer wishes to produce a shorter printed symbol, then the error correction characters can simply be suppressed. As a result, a symbol is printed without the five error correction characters.
- the 93 i symbology can employ an Error Correction Level Indicator character.
- the Error Correction Level Indicator character indicates a level or amount of error correction employed by a given symbol.
- the Error Correction Level Indicator character can have one of three values, corresponding to use of three, five, or seven error correction characters within the symbol, respectively.
- the Error Correction Level Indicator character is preferably positioned proximate to the Special Features Flag character, such as after the Message Length Indicator character.
- the Special Features Flag character can be positioned at another location within the symbol, rather than the middle of the symbol.
- the Special Features Flag character can be positioned at a position in the symbol corresponding to (L+2)/2.
- the Message Length Indicator character can then be positioned at an equally spaced location, such as at location (2L+2)/3.
- the Special Features Flag and Message Length Indicator characters can be positioned at other locations within the symbol.
- the present invention can incorporate the teachings of the U.S. Patents and/or applications described herein to provide additional benefits and functionality.
- the U.S. Patents and applications cited above are incorporated herein by reference as if set forth in their entirety.
- Features of the present invention can be applied to other symbologies.
- the use of the Special Features Flag can be employed in any of the bar code standards or machine-readable symbologies to employ two different functions based on the position of such character.
- aspects of the 93 i symbology has been generally described herein as being incorporated into a linear bar code symbology; alternatively, such aspects of the 93 i symbology can be employed in a stacked symbology such as PDF417 or in an area symbology such as Code One.
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Record Information Processing For Printing (AREA)
- Printers Characterized By Their Purpose (AREA)
Abstract
Description
Claims
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP98918459A EP0976100A2 (en) | 1997-04-16 | 1998-04-16 | Robust machine-readable symbology and method and apparatus for printing and reading same |
JP54436498A JP2002514329A (en) | 1997-04-16 | 1998-04-16 | Robust machine readable symbology, and method and apparatus for printing and reading based on the symbology |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/842,644 US6149059A (en) | 1993-11-05 | 1997-04-16 | Bar code symbology capable of encoding bytes, words, 16-bit characters, etc. and method and apparatus for printing and reading same |
US08/914,324 US6012638A (en) | 1993-11-05 | 1997-08-19 | Machine-readable symbology and method and apparatus for printing and reading same |
US08/914,324 | 1998-02-10 | ||
US09/021,608 US6321986B1 (en) | 1993-11-05 | 1998-02-10 | Robust machine-readable symbology and method and apparatus for printing and reading same |
US09/021,608 | 1998-02-10 | ||
US08/842,644 | 1998-02-10 |
Publications (3)
Publication Number | Publication Date |
---|---|
WO1998047101A2 WO1998047101A2 (en) | 1998-10-22 |
WO1998047101A3 WO1998047101A3 (en) | 1999-02-25 |
WO1998047101A9 true WO1998047101A9 (en) | 1999-03-25 |
Family
ID=27361673
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US1998/007905 WO1998047101A2 (en) | 1997-04-16 | 1998-04-16 | Robust machine-readable symbology and method and apparatus for printing and reading same |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP0976100A2 (en) |
JP (1) | JP2002514329A (en) |
KR (1) | KR20010006507A (en) |
CN (1) | CN1257596A (en) |
WO (1) | WO1998047101A2 (en) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6012638A (en) * | 1993-11-05 | 2000-01-11 | Intermec Ip Corporation | Machine-readable symbology and method and apparatus for printing and reading same |
US6422476B1 (en) | 1993-11-05 | 2002-07-23 | Intermec Ip Corp. | Method, apparatus and character set for encoding and decoding data characters in data carriers, such as RFID tags |
US6321986B1 (en) | 1993-11-05 | 2001-11-27 | Intermec Ip Corporation | Robust machine-readable symbology and method and apparatus for printing and reading same |
US6149059A (en) | 1993-11-05 | 2000-11-21 | Intermec Ip Corporation | Bar code symbology capable of encoding bytes, words, 16-bit characters, etc. and method and apparatus for printing and reading same |
US6024289A (en) * | 1998-01-22 | 2000-02-15 | Intermec Ip Corporation | Method and apparatus for encoding and decoding single byte characters in double byte character set of machine-readable symbologies, such as bar code symbologies |
US6371375B1 (en) | 1995-09-25 | 2002-04-16 | Intermec Ip Corp. | Method and apparatus for associating data with a wireless memory device |
JP2006281667A (en) * | 2005-04-01 | 2006-10-19 | Toshiba Corp | Bankbook printing device |
US7905409B2 (en) * | 2005-05-20 | 2011-03-15 | Senshin Capital, Llc | Print medium feature encoding and decoding |
EP1938483B1 (en) | 2005-09-21 | 2015-07-08 | Intermec IP Corp. | Stochastic communication protocol method and system for radio frequency identification (rfid) tags based on coalition formation, such as for tag-to-tag communication |
EP1818849A3 (en) | 2006-02-07 | 2008-01-02 | Murata Kikai Kabushiki Kaisha | Image forming device |
US8120461B2 (en) | 2006-04-03 | 2012-02-21 | Intermec Ip Corp. | Automatic data collection device, method and article |
CN101908156B (en) * | 2006-04-26 | 2014-12-31 | 松翰科技股份有限公司 | Image index structure |
CN110569946B (en) * | 2019-09-05 | 2022-06-10 | 福州三龙喷码科技有限公司 | QR code generation method suitable for inkjet printer |
US11244126B2 (en) | 2019-12-19 | 2022-02-08 | Datamax-O'neil Corporation | Systems and methods for encoding and decoding data |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1995012863A1 (en) * | 1993-11-05 | 1995-05-11 | Intermec Corporation | Apparatus and method for 16-bit and numeric data collection using bar code symbologies |
FR2715751A1 (en) * | 1994-01-28 | 1995-08-04 | Canon Research Centre France S | A method of encoding information in the form of bar codes, a method of reading the latter and devices implementing these methods. |
US5602382A (en) * | 1994-10-31 | 1997-02-11 | Canada Post Corporation | Mail piece bar code having a data content identifier |
US5619027A (en) * | 1995-05-04 | 1997-04-08 | Intermec Corporation | Single width bar code symbology with full character set utilizing robust start/stop characters and error detection scheme |
-
1998
- 1998-04-16 JP JP54436498A patent/JP2002514329A/en not_active Ceased
- 1998-04-16 WO PCT/US1998/007905 patent/WO1998047101A2/en not_active Application Discontinuation
- 1998-04-16 KR KR1019997009597A patent/KR20010006507A/en not_active Application Discontinuation
- 1998-04-16 EP EP98918459A patent/EP0976100A2/en not_active Withdrawn
- 1998-04-16 CN CN98805417A patent/CN1257596A/en active Pending
Also Published As
Publication number | Publication date |
---|---|
KR20010006507A (en) | 2001-01-26 |
WO1998047101A3 (en) | 1999-02-25 |
CN1257596A (en) | 2000-06-21 |
WO1998047101A2 (en) | 1998-10-22 |
EP0976100A2 (en) | 2000-02-02 |
JP2002514329A (en) | 2002-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6321986B1 (en) | Robust machine-readable symbology and method and apparatus for printing and reading same | |
US6012638A (en) | Machine-readable symbology and method and apparatus for printing and reading same | |
US6186406B1 (en) | Bar code symbology capable of encoding bytes, words, 16-bit characters, etc. and method and apparatus for printing and reading same | |
US5939700A (en) | Bar code symbology capable of encoding 16-bit characters, and method and apparatus for printing and reading same | |
US6024289A (en) | Method and apparatus for encoding and decoding single byte characters in double byte character set of machine-readable symbologies, such as bar code symbologies | |
US5557092A (en) | Apparatus and method for 16-bit and numeric data collection using bar code symbologies | |
US6070805A (en) | Distortion resistant double-data correcting color transition barcode and method of generating and using same | |
CA1311842C (en) | Multitrack bar code and associated decoding method | |
EP3038009B1 (en) | Method of barcode templating for enhanced decoding performance | |
US5619027A (en) | Single width bar code symbology with full character set utilizing robust start/stop characters and error detection scheme | |
US5329107A (en) | Dynamically variable machine readable binary code and method for reading and producing thereof | |
US5243655A (en) | System for encoding and decoding data in machine readable graphic form | |
US5053609A (en) | Dynamically variable machine readable binary code and method for reading and producing thereof | |
EP0733991B1 (en) | High density two dimensional symbol set | |
WO1998047101A9 (en) | Robust machine-readable symbology and method and apparatus for printing and reading same | |
US6279828B1 (en) | One dimensional bar coding for multibyte character | |
US5126542A (en) | Dynamically variable machine readable binary code and method for reading and producing thereof | |
KR20090018811A (en) | Multi-dimensional symbologies and related methods | |
WO1995012863A1 (en) | Apparatus and method for 16-bit and numeric data collection using bar code symbologies | |
JP5310502B2 (en) | Two-dimensional code, two-dimensional code reader, and two-dimensional code generator | |
US6761314B2 (en) | Bar code symbology for consumer scanning applications | |
Purcaru et al. | 2D Barcode for DNA Encoding | |
AU655800B2 (en) | Systems for encoding and decoding data in machine readable graphic form | |
JPH05290204A (en) | Method and device for encoding data to mechanically readable graphic shape and decoding this shape | |
KR20010078545A (en) | Name card having a bar code symbol and an encoder and a decoder for processing the bar code symbol |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 98805417.5 Country of ref document: CN |
|
AK | Designated states |
Kind code of ref document: A2 Designated state(s): CN JP KR |
|
AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE |
|
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
AK | Designated states |
Kind code of ref document: C2 Designated state(s): CN JP KR |
|
AL | Designated countries for regional patents |
Kind code of ref document: C2 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE |
|
COP | Corrected version of pamphlet |
Free format text: PAGES 1/8-8/8, DRAWINGS, REPLACED BY NEW PAGES 1/8-8/8; DUE TO LATE TRANSMITTAL BY THE RECEIVING OFFICE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1019997009597 Country of ref document: KR |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1998918459 Country of ref document: EP |
|
WWP | Wipo information: published in national office |
Ref document number: 1998918459 Country of ref document: EP |
|
WWP | Wipo information: published in national office |
Ref document number: 1019997009597 Country of ref document: KR |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 1998918459 Country of ref document: EP |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 1019997009597 Country of ref document: KR |