WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Coded record and methods of and apparatus for encoding and decoding records    
United States Patent4146046   
Link to this pagehttp://www.wikipatents.com/4146046.html
Inventor(s)Dobras; Bruce W. (Dayton, OH)
AbstractA novel record with alternate width modulated bars and spaces is decoded by comparing the width of each bar or space with a pair of reference values based on the product and quotient of a constant and the width of another bar or space to establish bit value. When the width value is greater or less than the reference value, the bit value is established. When the width values lie between the reference values, a state of equality is established which is resolved into a bit value by reference to the results of a prior or subsequent comparison. A system embodying the method includes storage means for storing width values, reference registers for establishing successive different sets of product and quotient reference values, and comparators controlled by the stored width and reference values for establishing the greater and less than and equality status conditions. In one embodiment, a shift register and logic circuits controlled by the status conditions provide dynamic interpretation of the status conditions into code bits as the character is read. In another embodiment, the status conditions are stored and then translated into code bits after a complete character has been read. In one code set, each character code of seven bits formed by four bars and three spaces uses five bits to define the character and the remaining two bits to provide separate bar and space parity bits. This and the fact that only one space "1" and one bar "1" are included in a proper code results in a code with an extremely low expected rate of undetected error. The system also includes separate parity check circuits for the decoded bar and space bits.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 4146046
Coded record and methods of and apparatus for encoding and decoding

     records - US Patent 4146046 Drawing
Coded record and methods of and apparatus for encoding and decoding records
Inventor     Dobras; Bruce W. (Dayton, OH)
Owner/Assignee     Monarch Marking Systems, Inc. (Dayton, OH)
Patent assignment
All assignments
Publication Date     March 27, 1979
Application Number     05/563,732
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     March 31, 1975
US Classification     235/494 235/462.18
Int'l Classification     G06K 019/06 G06K 007/14
Examiner     Cook; Daryl W.
Assistant Examiner    
Attorney/Law Firm     Mason, Kolehmainen, Rathburn & Wyss
Address
Parent Case     This is a continuation of application Ser. No. 416,503 filed Nov. 16, 1973, now abandoned, which application Ser. No. 416,503 is a division of application Ser. No. 239,168 filed Mar. 29, 1972 now U.S. Pat. No. 3,784,792.
Priority Data    
USPTO Field of Search     101/93.28 235/61.12 N 235/61.11 E 250/555 250/566 250/568 340/146.3 K 340/146.3 Z 340/146.3 F
Patent Tags     coded record methods encoding decoding records
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
3543007



[0 after 0 votes]
3739720



[0 after 0 votes]
3809863
Oberg
235/462.01
May,1974

[0 after 0 votes]
3766364
Krecioch
235/462.17
Oct,1973

[0 after 0 votes]
3761685
Alpert
235/462.19
Sep,1973

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed and desired to be secured by Letters Patent of the United States is:

1. A method of encoding an N bit character code on a record which comprises the steps of

recording said N bits on said record with X bits recorded in areas of a first characteristic and Y bits recorded in areas of a second characteristic and wherein X and Y are integers and X + Y = N,

recording a first parity bit for the X bits in an area of said first characteristic which follows said X bit areas,

and recording a second parity bit for the Y bit in an area of said second characteristic which follows said Y bit areas, whereby the encoded character code includes N + 2 bit recordings.

2. The method set forth in claim 1 wherein the steps of

recording said N bits includes printing X discrete and spaced areas on the record to define Y intervening areas and varying the sizes of the X and Y areas in accordance with binary "0" and "1" data.

3. A coded record for an N bit character which comprises

a record,

N areas of different first and second characteristics on said record alternated with each other along a given path, said areas of first and second characteristics having different widths as measured along said path representing different code values,

a first additional area following said N areas along said path and having a width as measured along said path representing the value of a code checking bit for the code values represented by the areas of said first characteristic,

and a second additional area following said first additional areas and having a width as measured along said path representing the value of a code checking bit for the code values represented by the areas of the said second characteristic.

4. The method of claim 2 wherein the relative widths of pairs of said printed areas and the relative widths of pairs of said intervening areas provide said binary "0" and "1" data, and including the step of correlating the width of said first parity bit with said recorded X bits so that said X bits and said first parity bit collectively include only a single wide printed area.

5. The method of claim 4 which includes the step of correlating the width of said second parity bit with said recorded Y bits so that said Y bits and said second parity bit collectively include only a single wide intervening area.

6. A coded record for reading by relative movement between the record and a reader along a path comprising

a record member,

and a series of segments of different first and second characteristics alternated with each other along said series, the segments in said series having different widths measured in a direction along said path and the relative widths of sequentially-positioned pairs of segments of like characteristic in said series providing coded representations of data values, at least some of said segments forming a part of the coded representation of more than one data value,

said series of segments including only a single relatively wide segment of each of said first and second characteristics measured in a direction along said path, whereby said segments can be validly altered only by simultaneously changing the width of segments of both said first and second characteristics in opposite directions.

7. The method of encoding an N bit character code on a record which comprises the steps of, recording X bits of said code by printing X discrete and spaced areas on the record to define Y intervening areas and wherein X and Y are integers and X + Y = N, and varying the sizes of the X and Y areas between wide and narrow values in accordance with binary "1" and "0" data, the width of said narrow X printed areas under normal printing conditions being substantially less than the width of said narrow Y spaces.

8. The method of encoding set forth in claim 7 wherein the width of said wide X printed areas under normal printing conditions is substantially less than the width of said wide Y spaces.
 Description Submit all comments and votes
 


This invention relates to coded records and methods of and apparatus for encoding and decoding these records, and, more particularly, to improvements in such records, methods, and apparatus using width modulated code areas.

The need for acquiring data at, for example, a point of sale is well recognized, and many attempts have been made in the past to provide records, tags, or labels and reading and interpreting systems that are capable of being used in retail stores at the point of sale and for inventory. In this application, the records must be easily and economically made and must be such that, for example, handling by customers does not deface the coding or render the code incapable of accurate reading. The record should be such that it can be read either by a portable manually manipulated reader or a stationary machine reader of low cost, and the code used should be easily checked for errors with low error probability. Further, when the record or label is to be read by a manual reader, it should be such that the record interpretation is as independent of speed of reading as is possible.

Prior approaches to this problem have used sequential areas or bars of different light reflecting characteristics in which bit value is determined by color. These records are expensive to produce and require somewhat more elaborate reading systems than desirable. Other techniques provide codes in bar or stylized character form with magnetic or light reflecting recordings in which absolute values in a dimension such as width are assigned to the different binary weights or values. These codes can be read serially or in parallel. The parallel codes require plural transducers which cannot be easily accommodated in a portable reader, and the magnetic recordings are also not easily read with manual or portable readers. The sequential bars of varying widths are easily read using a single transducer in a portable unit but generally use level detection equipment or individual width timers in the interpreting system which are not easily compensated for variations in the manually controlled speed of relative movement between the reader and the record. These bar codes are easily printed on paper or card stock by inexpensive equipment, and a sytem shown in a copending application Ser. No. 199,231, filed Nov. 16, 1971 compares widths of pairs of bars or pairs of spaces to reduce errors arising from printing ink changes.

Accordingly, one object of the present invention is to provide a new and improved method of and apparatus for interpreting a coded record.

Another object is to provide a coded record and code capable of interpretation with a low rate of undetected error.

Another object is to provide a new and improved method of interpreting a coded record in which the size of each code area is assigned a binary value and in which each given area is decoded by comparing its size with two reference values based on multiplying and dividing another code area size by a constant.

Another object is to provide a method of and apparatus for interpreting or translating records binary coded in areas of different widths by comparing the widths of individual areas with two reference values established during translating by multiplying and dividing different area widths by a constant. Decoding is accomplished by establishing a greater than, less than, or equality relation between each set of reference values and different code area size values.

A further object is to provide an apparatus for reading records wherein each character is encoded by a combination of areas in two ranges of wide and narrow widths and which includes registers for storing scanned width values, a pair of registers in which are sequentially stored the product and quotient of a constant and the width of each area, and a means for decoding code values by determining the relation between each stored width and the two reference values based on another area.

Another object is to provide a method of and system for decoding area size coded records in which a determination that a code area is greater or less than a reference value results in immediate code value establishment while an equality determination defers code value establishment and makes it dependent on a subsequent or prior greater or less than determination.

A further object is to provide a width modulated bar and space coded record and parity check means for separately checking bar and space parity.

In accordance with these and many other objects, an embodiment of the present invention comprises a record, tag, or label made, for example, of a member having a light reflective surface on which are recorded a plurality of nonreflecting bars. The widths of the nonreflecting bars and the reflecting spaces disposed between and defined by the nonreflecting bars are modulated in width so that a binary "1" is represented by one width, i.e., a value in a range of wide widths, and a binary "0" is represented by another different width, i.e., a value in a range of narrow widths. In one embodiment, each character is represented by a seven bit binary code formed by four black or nonreflective bars and the three white bars or spaces separating the four black bars. Five bits define the character, and the remaining two bits are separate parity bits for space and bar encoded data. A low error code of this type uses only one space encoded "1" and one bar encoded "1".

These records can be easily produced using nothing more than conventional paper or card stock and simple coding elements either individual or in sequence for applying ink or other nonreflective material to the record. The record making apparatus can be such as to sequentially or concurrently record a plural character message, each character comprising a plurality of bits. The message can be preceded and followed by start or control codes coded in the same manner as the characters of the message.

This record is interpreted by a manually held light pen or reader including, for example, a light source for directing light onto the record and a light responsive element providing a varying output in dependence on the quantity of reflected light received from the record, although this reading assembly could as well be incorporated into a stationary record reading mechanism. The record is read by producing relative movement between the reader and the record requiring only that the reader pass across the entire coded message along a line intersecting all of the bars and spaces. The analog signal developed by the photoresponsive unit in the reader is digitized and used to sequentially gate clock signals into a series of counting registers to sequentially store the values of the sizes of different bars and spaces. Through the use of clock signal dividers gated by the digitized signal, the products and quotients of a constant and each of the bar and space widths are stored in sequence in a pair of reference value registers. The reference values stored for any given bar (space) are compared with the value of the size of a preceding bar (space) to determine whether the preceding bar (space) is greater than, less than, or approximately equal to the given bar (space).

The results of the comparison control logic circuits to store binary "0"s and "1"s in a storage unit when a greater than or less than relation or status is found. A determination of a condition of equality for an area defers the establishment of a binary value and makes it dependent on a prior or a subsequent greater than or less than relation. In one embodiment, the storage means is a plural stage shift register having an input stage and intermediate stages in which immediately and delayed determined bits are entered. In another embodiment, a pair of shift registers store the comparison results, which shift registers control a read-only-memory (ROM) that decodes the comparison results into a character.

To increase the probability that only correctly decoded characters are provided, the system includes a parity checking circuit that independently checks for parity the decoded space and bar binary bits. In the seven bit character codes used in the present system and with the permissable character codes selected to include only those containing two binary "1" bits (a 2-7 character code), the probability of error can be reduced to 0.00001%. Comparable results can be obtained using a seven bit code with three binary "1"s (a 3-7 character code).

By using as reference values for comparison with the stored bit widths values based on arithmetic operations on a code area measured during the reading of the stored widths, variations in reading speed, for instance, cause like and proportionate changes in the reference values and the code area widths, and velocity errors are reduced or eliminated.

Many other objects and advantages of the present invention will become apparent from considering the following detailed description in conjunction with the drawings in which:

FIG. 1 illustrates a record in conjunction with a reader and interpreting circuit which embodies the present invention and which is shown in simplified block diagram form;

FIG. 2 is a schematic illustration of one three bar character code in a set of codes capable of interpretation according to the present invention shown in conjunction with certain signal waveforms used in decoding the character code;

FIG. 3 illustrates one 2-7 character code of a set using four bars which can be translated using the system shown in FIG. 1, the code being illustrated in conjunction with a digitized scanning signal, decoding control signals, and a shift register used in decoding;

FIG. 4 is a circuit diagram in logic form illustrating certain control components of the system of FIG. 1;

FIG. 5 is another logic circuit diagram illustrating code area size registers, reference value registers, and comparators forming a part of the system shown in FIG. 1;

FIG. 6 is a logic circuit diagram illustrating certain control and decoding logic components of the system of FIG. 1;

FIG. 7 illustrates in block diagram form another form of decoding circuit useful with the system of FIG. 1; and

FIGS. 8 and 9 illustrate certain timing and control signals used in the record reading circuit of the present invention.

Referring now more specifically to FIG. 1 of the drawings, therein is illustrated a system indicated generally as 10 for interpreting a bar coded record 12. In the coding used on the record 12, the widths of the bars and spaces vary in accordance with the bit value to be encoded so that when relative movement is produced between the record 12 and an optical reader 14, the apparent width varies in dependence on the speed of relative movement. In accordance with the present invention, the system 10 includes means for establishing reference values during the actual scanning of the record 12 by the reader 14 against which the widths of the bars and spaces can be compared so that the true binary significance of the encoded data can be accurately determined substantially independent of reading speed and without requiring additional indicia over and above the usual bar code on the record 12. Codes used in the present invention are such that undetectable errors are almost impossible.

The code used in preparing the record 12 can be one of a general type known in the art, and FIG. 2 of the drawings illustrates one character code "00111" that can be used in carrying out the present invention. The illustrated code is a five bit code whose bits are defined by three bars or areas 16A, 16B, and 16C of one characteristic and two intervening bars or spaces 18A and 18B of a different characteristic. In a preferred embodiment, the bars 16A-16C are formed by printing a substantially nonreflective material, such as black ink, on the reflective surface of the record 12 so that the areas, bars, or spaces 18A and 18B comprise the light reflective surface of the record. The different characteristics of the bars 16A-16C and 18A and 18B could also be defined by the use of different materials, such as the presence or absence of magnetic material or materials of sufficiently different light reflecting characteristics.

The encoding technique used in the code illustrated in FIG. 2 is to assign a wide width to the bars or areas 16, 18 to represent a binary "1" and to assign a narrow width to the bar or area 16, 18 to represent a binary "0". The relative sizes of the wide and narrow width should be optimized to insure adequate differentiation on interpretation, and in general this is accomplished by maximizing the difference between the wide and narrow widths within the constraints that the narrow bar must be large enough to insure a proper width value entry on interpretation, and the wide width must not be so large as to provide an overflow condition on entering a width value. The wide and narrow widths can extend over a range of values limited by the factor noted above, printing tolerances, and factors noted below. Another factor to be considered is that an increase in the differentiation between widths generally results in an accompanying loss of bit density or packing on the record, while a reduction in width difference can be used to increase bit density. In one embodiment of the present invention, the narrow width representing a binary "0" was selected to be in the range of six to fifteen mils, nominal, while the wide width was set to fall within the range of seventeen to thirty-four mils, nominal.

A further factor to be considered with regard to the selection of widths for the bars is the printing tolerances which must be maintained to insure accurate record interpretation. Using the values set forth above, accurate differentiation with single bit parity error detection can be obtained with width tolerances of minus two to plus five mils. A change in bar size of from minus fourteen to plus fourteen mils can result in an undetected error using a single bit parity check.

To illustrate one possible width coding technique using true binary, one code in a code set assigned, for example, to the numerical character three with an odd parity check on binary "1"s (FIG. 2) is "00111". Considered from left to right, these binary bits represent the binary weights "8", "4", "2", "1", and parity, respectively. The binary values "1" in the third and fourth bit positions are denoted by the wide widths assigned to the bar 16B and the space 18B. The binary values "0" in the first and second bit positions are represented by the narrow widths assigned to the black bar 16A and the white bar 18A. The bar 16C is assigned a wide width to provide a parity bit for the odd parity check. Other codes in this set including the remaining character codes and possible control codes are shown in the following table together with the bar and space width assignments expressed in mils.

______________________________________ Character 16A 18A 16B 18B 16C ______________________________________ 00001 11.4 14.0 11.4 14.0 29.2 00010 12.2 15.3 12.2 34.5 6 00100 11.4 14.0 29.2 14.0 11.4 00111 6 11.2 24.5 22.1 16.8 01000 6 34.5 12.2 15.3 12.2 01011 6 25.5 6 25.5 17.9 01101 6 22.8 20.6 9 20.6 01110 6 25.5 17.9 25.5 6 10000 29.2 14.0 11.4 14.0 11.4 10011 23.9 10.9 6 22.7 16.5 10101 20.6 9 20.6 9 20.6 10110 20.6 9 20.6 22.8 6 11001 16.5 22.7 6 10.9 23.9 11010 17.9 25.5 6 25.5 6 11100 16.8 22.1 24.5 11.2 6 ______________________________________

When these codes are read in forward or reverse direction, the binary significance of the bars and spaces is unchanged, but the order of presentation of the character code is reversed. Certain additional codes used for start or stop codes can be provided which are distinct when read in forward or reverse direction. This permits reverse read codes to be changed in order to correct codes. Such an arrangement of start and stop codes is shown and described in a copending application Ser. No. 157,870, filed June 29, 1971, and assigned to the same assignee as the present application.

FIG. 2 of the drawings also illustrates, in addition to the fragmentary showing of one three bar character code, a digitized representative waveform resulting from the reading of this code by the reader 14 in which a high level signal represents a black bar 16 and a low level signal represents a white bar or space 18. In this digitized signal, the widths of the bars 16, 18 are represented by the time intervals t.sub.1 - t.sub.5. In accordance with the present invention, the binary significance or value to be attributed to the various widths signified by the times t.sub.1 - t.sub.5 is established in dependence on the relationship between the width of a given area or bar and the quotient and product of a constant K and another area or bar, either adjacent or spaced therefrom where the constant K is a number greater than one.

To illustrate the novel method of decoding the record 12 wherein the relationship of adjacent bars or areas is used, the algorithm for decoding can be stated as follows:

(1) Relation A implies t.sub.n-1 <t.sub.n (1/K)

(2) relation B implies t.sub.n-1 >t.sub.n (K)

(3) relation C implies t.sub.n (K)>t.sub.n-1 >t.sub.n (1/K)

in statement (1) the establishment of relation A indicates that the binary significance of the width t.sub.n-1 is a binary "0" because the width of the area t.sub.n-1 is less than the quotient of the width of the following area and the constant K. In statement (2) the establishment of relation B implies that the binary significance to be attributed to the width t.sub.n-1 is a binary "1" because the width t.sub.n-1 is greater than the product of the constant and the width of the adjacent area t.sub.n. The establishment of relation C in statement (3) implies that binary significance cannot be attributed. This is true because the width of the area or bar under examination t.sub.n-1 is less than the product of the constant and the width t.sub.n of the adjacent area and greater than the quotient of the constant K and the width t.sub.n of the adjacent area.

In a system for carrying out the method of decoding using the algorithm embodied in statements (1)-(3) above, the system includes a register for storing a value proportional to the time t.sub.1 representing the width of the bar 16A as the record 12 is read. As the reader 14 then enters the first white bar or space 18A, a value corresponding to the width of this area t.sub.2 is stored, and a pair of reference registers are provided with values representing the product and quotient of the constant K and the width t.sub.2 of the bar 18A. When all of these values are in storage, the system develops a first sampling strobe signal (#1) which enables logic circuits such as comparators to compare the value t.sub.1 with a product and quotient reference values based on the width t.sub.2. By reference to the statements (1)-(3), it will be seen that only statement (3) is satisfied because the value t.sub.1 is less than the value of the product of t.sub.2 and K and greater than the value of the quotient of t.sub.2 and K. This establishment of condition C implies that binary significance cannot be attributed to the width t.sub.1 at this time. A representation of the established condition or relation C is stored.

The system then discards the width t.sub.1 and stores both the width t.sub.3 and the product and quotient of the constant K and the width t.sub.3. When the next sampling strobe (#2) is developed by the system, the value t.sub.2 is compared with the values based on the product and quotient of the constant K and the width t.sub.3. By reference to statements (1)-(3), condition A is established because the width t.sub.2 is less than the quotient of the constant K and the width t.sub.3. At this time, two options exist with regard to the translation or interpretation of the coded record. The logic circuit can be such as to assign binary significance to all three of the areas 16A, 18A, and 16B at this time, or the condition A can be stored until the completion of the scanning of the characters shown in FIG. 2, at which time binary significance can be assigned to each of the width modulated areas. Assuming that binary significance is to be established upon establishing the condition A, the establishment of this condition states that the width t.sub.2 is less than the width t.sub.3 so that the width t.sub.2 is probably a binary "0" and the width t.sub.3 is probably a binary "1". In view of the previously established condition C arising from the first comparison and since the width t.sub.2 is a binary "0," the width t.sub.1 is also probably a binary "0."

The system then establishes the product and quotient reference values for the width t.sub.4 which are compared with the stored width t.sub.3 on the third sampling pulse (#3) resulting in the establishment of condition C. Using sequential decoding, the establishment of condition C does not establish binary significance and requires reference back to the next adjacent determinative condition, i.e., a relation A or B. Since the closest adjacent established condition is relation A, the relation C established on the third sampling strobe signal indicates that a binary "1" is to be assigned to width t.sub.4. On the next or fourth sampling strobe signal (#4), the product and quotient reference values based on the width t.sub.5 are compared with the stored width t.sub.4 to again result in the establishment of relation or condition C. In the sequential decoding arrangement, the establishment of this equality condition or relation C again requires reference back to the most recently established determinative condition, i.e., the relation A established on the second sampling strobe, with the result that a binary "1" significance is attributed to the width t.sub.5. In this connection, it is noted that the width t.sub.5 is never actually measured by the system and that the binary significance to be attributed to the bar 16C is established on the basis of the relation between the product and quotient reference values based on the width t.sub.5 and the measured width of the preceding area t.sub.4.

In the alternative method of interpreting a character code such as the illustrative code shown in FIG. 2, storage means are provided for storing representations of the sequentially established relation, i.e., CACC, and a translating means such as a read-only-memory (ROM) translates the pattern of sequentially established relation into binary code corresponding to the width modulated bars.

To facilitate an understanding of and the application of the interpreting method of the present invention based on prior statements (1)-(3), there is set forth below a set of correlative statements defining the binary implications of various sequences of the three relations defined in statements (1)-(3):

(4) A followed by C implies 011.

(5) C followed by A implies 001.

(6) B followed by C implies 100.

(7) C followed by B implies 110.

(8) A followed by B implies 010.

(9) B followed by A implies 101.

(10) C followed by C followed by A implies 0001.

(11) C followed by C followed by B implies 1110.

(12) A followed by C followed by C implies 0111.

(13) B followed by C followed by C implies 1000.

By reference to the statements above and FIG. 2 of the drawings, statement (5) defines the first three bits "001" formed by the bars 16A, 18A, and 16B of the representative code. Considered alternatively, the bits defined by the bars 18A, 16B, and 18B are established by statement (4). Considered from another viewpoint, the last four bits represented by bars 18A, 16B, 18B, and 16C, respectively, are defined by statement (12). By reference to statements (4)-(13), the relations established during the reading of a character can be examined in sequence or concurrently to determine the binary significance to be attributed to the various areas or bars of a character code set.

Under certain conditions involving printing tolerances and selection of extreme limiting values for widths, either broad or narrow, in the establishment of the character code set, it is possible that two other sequences of the relations A and B may be established which are set forth below in statements (14) and (15):

(14) A followed by A implies 001.

(15) B followed by B implies 100.

As an example, using the character code set in which, for example, a first "0" representing bar has a nominal printing width of six mils, a following first space has a nominal width of eleven mils also representing a binary "0", and the second bar representing a binary "1" has a nominal width of twenty-four mils, all in the ranges set forth above, it is possible that the comparator logic would interpret the successive widths of six mils, eleven mils, and twenty-four mils as a pair of successive A relations, rather than a C relation followed by an A relation. This condition is covered by statement (14) which implies that the binary significance is "001", the same as if the code had been interpreted as in statement (5) above. An opposite condition with respect to the relative widths of the successive areas would result in the sequential establishment of condition B's which would be interpreted as "100" by statement (15) and would reach the same result as if interpreted in accordance with statement (6) above.

The decoding technique set forth above can be used with codes using a greater or lesser number of bars with the consequent change in the number of intervening white bars or spaces, and can also be used in interpreting codes in which the spaces are without significance and intelligence is width modulated in only the printed bars, and vice versa. By width modulating only printed bars and having bars either narrow or wide printed on uniform centers, the code is adaptable for use with high speed serial printers of the type used as computer output units. As an example, a BCD character with a parity bit can be encoded in five bars, and an error that cannot be detected by usual parity checking circuitry requires the inversion of both a narrow bar and a wide bar with a consequent reversal in binary significance of the encoded bit. As an example, using nine mil centers between bars and assigning narrow bars a nominal width of six mils and large bars a nominal width of twelve mils, each of the fifteen character odd parity character set can be recorded in an eighty mil character width or ten characters per inch. This type of code font can be recorded with a Model 104 printing unit manufactured by Monarch Marking Systems, Inc. of Dayton, Ohio.

Based on experience with three bar systems and conventional parity checking techniques, past operating experience has demonstrated that a one percent error rate can be anticipated.

As noted above, the primary source of undetected errors results from an inversion in the binary significance to be attributed to a width modulated area. In a record in which black or nonreflective bars are printed on reflective record material with either or both of the black and white bars being modulated in width, the inversion in binary significance of a bar or area arises from printing smears which extend a black bar or width with a corresponding reduction in the adjacent white bar width or from printing voids in which the apparent width of the black bar is reduced with a corresponding increase in the width of the adjacent white bar. Printing smears normally result from heavy or intense application of ink to the record, whereas voids result from a light application of ink. In accordance with the present invention, there is provided an encoded record, a method of encoding the record, and a method of error checking the record decoding by which the experienced error rate of around one percent is reduced to an error rate approaching 0.00001 percent.

More specifically, one character code from a character set embodying the invention is illustrated in FIG. 3 of the drawings and is defined by four black bars B1-B4 and three intervening white spaces S1-S3. The character is defined by width modulating the first five bits formed by the bars B1-B3 and the spaces S1 and S2. The space S3 provides a parity check bit for the bits defined by the spaces S1 and S2, and the bar B4 provides a parity check bit for the black bars B1-B3. The bars B1-B3 and the spaces S1-S2 can be checked for either odd or even parity, but in the illustrated code are checked for odd parity. In addition, the entire seven bit code is checked for the presence of only a single space S1-S3 providing a binary "1" and a single bar B1-B4 defining a binary "1". With such a code the only possible character inversion resulting in an undetected error requires two print faults, and these print faults must be a large void in a bar and a large smear on a bar. Since these faults normally arise from contradictory printing error conditions, i.e., light printing and dark printing, the error probabilities reach the low level referred to above. This character set is referred to as a 2-7 code set. It has also been determined that the expected improvement in error rate can be achieved using two 3-7 code sets in which bars and spaces are separately checked for parity, and a correct code includes three binary "1"s, either two "1"s defined by bars in one set or two "1"s defined by spaces in the other set, with the remaining binary "1" being defined by a space or a bar, respectively.

There is listed below a table setting forth a 2-7 code set adapted for use in accordance with the present invention and illustrating typical width assignments for the various bars B1-B4 and spaces S1-S3. This 2-7 character set includes twelve discrete character codes, and in the following table the widths are expressed in mils:

______________________________________ Characters B1 S1 B2 S2 B3 S3 B4 ______________________________________ 0000011 7 9 7 9 7 23 17.9 0000110 7 9 7 9 17.9 23 7 0001001 7 9 7 23 7 9 17.9 0001100 7 9 7 23 17.9 9 7 0010010 7 9 17.9 9 7 23 7 0011000 7 9 17.9 23 7 9 7 0100001 7 23 7 9 7 9 17.9 0100100 7 23 7 9 17.9 9 7 0110000 7 23 17.9 9 7 9 7 1001000 17.9 9 7 23 7 9 7 1100000 17.9 23 7 9 7 9 7 1000010 17.9 9 7 9 7 23 7 ______________________________________

This character set is designed for recording, for example, by using the Model 104 printer provided by Monarch Marking Systems, Inc. of Dayton, Ohio. With the nominal widths shown in the table above, ten character codes per inch can be recorded on the record 12.

Another possible source of error in interpreting printed codes wherein both the bars and spaces are modulated arises from more or less uniform increases or decreases in the apparent widths of the bars and an opposite effect on the intervening spaces due to light and heavy printing. Errors in interpretation of a coded record arising from this effect can be obviated by separating comparing bars with bars and spaces with spaces because of the correlated changes in areas of like characteristics. Such a system is shown and described in a copending application Ser. No. 199,231, filed Nov. 16, 1971, and assigned to the same assignee as the present invention.

FIG. 3 of the drawings illustrates in addition to a representative character code from the character set shown in the table above certain waveforms and circuits for interpreting the character code using the technique or algorithm and statements set forth above in conjunction with the description of the code shown in FIG. 2 of the drawings. The method illustrated in FIG. 3 is designed to compare pairs of bars B1-B4 and to compare pairs of spaces S1-S3. Accordingly, statements (1)-(3) must be restated as statements (16)-(18) below:

(16) Relation A implies t.sub.n-2 <t.sub.n (1/K).

(17) relation B implies t.sub.n-2 >t.sub.n (K).

(18) relation C implies t.sub.n (K)>t.sub.n-2 >t.sub.n (1/K).

A comparison of statements (1)-(3) with statements (16)-(18) indicates their identity except that conditions A, B, and C arise in dependence on the relationship between a given area and not the adjacent area, but an area spaced by two in the sequence. Thus, bars are compared with bars and spaces are compared with spaces.

In FIG. 3 of the drawings, there is illustrated a shift register indicated generally as 20 formed of seven stages Q1-Q7 for serially interpreting a 2-7 character set of the present invention. The shift pulse inputs are connected in common to an advance or shift pulse line 22 which receives an advance or shift signal on each bar-space or space-bar transition, as illustrated in FIG. 3. The inputs to the stages Q1-Q7 are connected in series with the input to the input stage Q1 being strapped to ground or a reference potential to enter a binary "0" into the stage Q1 on each advance signal. Priming or preset inputs are provided for the stages Q1, Q3, and Q5 as shown in FIG. 3. The application of a more positive signal to one of these preset inputs enters a binary "1" into the stage.

The logic equationsfor decoding a character code in the 2-7 character set using the relations A, B, and C determined in accordance with statements (16)-(18) are set forth below in statements (19)-(21). Since a binary "0" is continuously entered into the input stage Q1 of the shift register 20 on each advance signal, the logic equations (19)-(21) set forth the condition for presetting "1"s into the stages Q1, Q3, and Q5 in dependence on the relation A, B, or C established in accordance with statements (16)-(18) and the data standing in the shift register 20 at any given time. In the following equations, SS represents any sampling strobe, and #3, #4, and #5 represent the third, fourth, and fifth sampling strobes:

(19) Preset Q1 = (SS) .multidot. A + (SS) .multidot. C .multidot. Q3.

(20) preset Q3 = (SS) .multidot. B.

(21) preset Q5 = (#3 + #4 + #5) .multidot. B .multidot. Q3 .multidot. Q4.

The necessary logic implementation required for dynamic decoding in the shift register 20 as expressed in statements (19)-(21) is relatively simple and arises from the fact that the 2-7 code set includes no more than two binary "1"s in the seven bits and that these binary "1"s can only occupy a small finite number of different positions within the seven bit code.

In general, the first term of statement (19) supplies a binary "1" to the input stage Q1 whenever relation A is established. Relation A states that the bit whose width is being compared is smaller than the last bit scanned, and by implication states that the last bit scanned is larger and thus represents a binary "1". Since the shift register 20 is always three steps in advance of the first comparison or sampling strobe due to the three advance signals preceding the first sample strobe (see FIG. 3), the stage Q1 is the proper stage in which to preset the binary "1". With respect to the second term in statement (19), if stage Q3 is set indicating a binary "1" and a condition C arises implying equality, Q1 must also be "1", and Q1 is preset to a binary "1" setting.

With regard to the presetting of Q3 under the conditions expressed in statement (20), the establishment of relationship B indicates that the stored width being compared, i.e., t.sub.n-2, is greater in width than the like area just scanned, i.e., t.sub.n. Since, again, the setting of the shift register 20 is three steps ahead of the current comparison, the established binary "1" for the area t.sub.n-2 should be primed into stage Q3, the shift register stage in the sequence in which this code bit belongs.

Statement (21) takes care of a special condition in one of the character codes in the set shown above in which the binary "1"s appear in the first two spaces. This will initially result in the establishment of a condition of equality on the first sample. Accordingly, the decision on the value to be entered must be delayed. As set forth in statement (21), when the greater than relationship B is established and binary "1"s are not stored in stages Q3 and Q4, Q5 can be preset to a "1" condition during the third, fourth, and fifth sampling strobes.

The sequence of decoding the character shown in FIG. 3 is illustrated in the following table with "X" denoting bits of unknown or arbitrary value:

______________________________________ Q1 Q2 Q3 Q4 Q5 Q6 Q7 ______________________________________ Advance #1 0 X X X X X X No Strobe Advance #2 0 0 X X X X X No Strobe Advance #3 0 0 0 X X X X Sample #1 - C 0 0 0 X X X X Advance #4 0 0 0 0 X X X Sample #2 - A 1 0 0 0 X X X Advance #5 0 1 0