DE69602735T2 - Verfahren und gerät zur dekodierung van streifenkodes - Google Patents

Verfahren und gerät zur dekodierung van streifenkodes

Info

Publication number
DE69602735T2
DE69602735T2 DE69602735T DE69602735T DE69602735T2 DE 69602735 T2 DE69602735 T2 DE 69602735T2 DE 69602735 T DE69602735 T DE 69602735T DE 69602735 T DE69602735 T DE 69602735T DE 69602735 T2 DE69602735 T2 DE 69602735T2
Authority
DE
Germany
Prior art keywords
values
mark
bar code
information
membership
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69602735T
Other languages
English (en)
Other versions
DE69602735D1 (de
Inventor
Gerrit Boersma
Dennis Maat
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Scantech ID Holding BV
Original Assignee
Scantech BV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Scantech BV filed Critical Scantech BV
Application granted granted Critical
Publication of DE69602735D1 publication Critical patent/DE69602735D1/de
Publication of DE69602735T2 publication Critical patent/DE69602735T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/146Methods for optical code recognition the method including quality enhancement steps
    • G06K7/1486Setting the threshold-width for bar codes to be decoded
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Toxicology (AREA)
  • Electromagnetism (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Credit Cards Or The Like (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Length Measuring Devices With Unspecified Measuring Means (AREA)
  • Character Discrimination (AREA)
  • Error Detection And Correction (AREA)

Description

  • Strichcodes werden in immer größerem Umfang und auf vielen verschiedenen Anwendungsgebieten eingesetzt, z. B. in Supermärkten, aber auch für die Lagerkontrolle und dgl.. Durch die Verwendung von Strichcodes wird die Lagerkontrolle verbessert, die Durchlaufgeschwindigkeit vergrößert, und dem Käufer, z. B. dem Verbraucher, können genauere Spezifizierungen der gelieferten Waren an die Hand gegeben werden.
  • Es geschieht jedoch noch immer regelmäßig, daß ein Strichcode beim ersten Lesen durch eine Abtastvorrichtung (Scanner) nicht dekodiert wird. Dies kann z. B. auf die abweichende Breite eines Striches oder Zwischenraums und auf die Inhomogenität des Papiers zurückzuführen sein, auf das das Strichmuster gedruckt ist, ferner auf Rauschen, das z. B. durch Umwelteinflüsse oder durch analoge elektronische Elemente, thermisches Rauschen und/oder Änderungen bei der verwendeten Scannerausrüstung verursacht wird.
  • Bekannte Scanner, die beispielsweise von Laserstrahlen, CCD-Bildaufnahmevorrichtungen (ladungsgekoppelte Vorrichtungen) und/oder von Hochfrequenzinduktion und von Verfahren zum Dekodieren von Strichcodes Gebrauch machen, sind in der Patentliteratur in weitem Umfang beschrieben, z. B. in den nicht vorveröffentlichten europäischen Patentanmeldungen 95201509.7 und 95202193.9 der Anmelderin.
  • Aus EP 0439682 sind auch ein Verfahren und eine Vorrichtung nach dem Oberbegriff der Ansprüche 1 bzw. 8 bekannt.
  • Die vorliegende Erfindung sieht ein Verfahren vor zum Dekodieren eines oder mehrerer Strichkodes mit einer Mehrzahl von Marken, wie Informationsmarken, Trennmarken und dgl., wobei jede Marke einen oder mehrere Zwischenräume und einen oder mehrere Striche umfaßt und jeder Strich oder jeder Zwischenraum von wenigstens einem Modul gebildet wird,
  • mit den Verfahrensschritten:
  • - Digitalisieren von elektrischen Signalen, die mit Hilfe eines Aufnehmers, z. B. eines Aufnehmers zum Aufnehmen von reflektierten Laserstrahlen, gewonnen werden,
  • - Herleiten von Zeitpaarungen für jeden Strichkode aus den gewonnenen elektrischen Signalen, wobei jede dieser Zeitpaarungen von der kombinierten Breite eines Striches und eines benachbarten Zwischenraums gebildet wird,
  • - Herleiten von Markenwerten aus den Zeitpaarungen, die die Zahl der von jeder Zeitpaarung abgedeckten Module angeben,
  • gekennzeichnet durch die Verfahrensschritte:
  • - Anwenden von Mitgliedschaftsfunktionen auf die Markenwerte, um den Mitgliedschaftsgrad zu bestimmen, mit dem die Länge jedes Markenwerts einer ganzen Zahl von Modulen entspricht,
  • - Ermitteln der von dem Strichkode repräsentierten möglichen Informationswerte und ihrer Mitgliedschaftsgrade aus den Markenwerten und ihren Mitgliedschaftsgraden unter Verwendung einer vorbestimmten Beziehung zwischen Markenwerten und Informationswerten und
  • - Auswählen der wahrscheinlichsten Informationswerte für einen Strichkode oder einen Teil hiervon unter Verwendung der ermittelten Informationswerte und ihrer Mitgliedschaftsgrade.
  • Es zeigte sich in der Praxis, daß mit dem Verfahren gemäß der Erfindung auch schwierige Strichmuster schneller erkannt werden. Die vorliegende Erfindung sieht außerdem eine Vorrichtung zum Scannen und Dekodieren von Strichmustern vor.
  • Die Erfindung sieht weiter vor ein Gerät vor zum Dekodieren eines oder mehrerer Strichkodes mit einer Mehrzahl von Marken, wie Informationsmarken, Trennmarken und dgl., wobei jede Marke einen oder mehrere Zwischenräume und einen oder mehrere Striche umfaßt und jeder Strich oder jeder Zwischenraum von wenigstens einem Modul gebildet wird,
  • - mit Mitteln zum Digitalisieren von elektrischen Signalen, die mit Hilfe eines Aufnehmers, z. B. eines Aufnehmers zum Aufnehmen von reflektierten Laserstrahlen, gewonnen 5 werden,
  • - mit Mitteln zum Herleiten von Zeitpaarungen für jeden Strichkode aus den gewonnenen elektrischen Signalen, wobei jede dieser Zeitpaarungen von der kombinierten Breite eines Striches und eines benachbarten Zwischenraums gebildet wird, mit Mitteln zum Herleiten von Markenwerten aus den Zeitpaarungen, die die Zahl der von jeder Zeitpaarung abgedeckten Module angeben,
  • gekennzeichnet durch
  • - Mittel zum Anwenden von Mitgliedschaftsfunktionen auf die Markenwerte, um den Mitgliedschaftsgrad zu bestimmen, mit dem die Länge jedes Markenwerts einer ganzen Zahl von Modulen entspricht,
  • - Mittel zum Ermitteln der von dem Strichkode repräsentierten möglichen Informationswerte und ihrer Mitgliedschaftsgrade aus den Markenwerten und ihren Mitgliedschaftsgraden unter Verwendung einer vorbestimmten Beziehung zwischen Markenwerten und Informationswerten und
  • - Mittel zum Auswählen der wahrscheinlichsten Informationswerte für einen Strichkode oder einen Teil hiervon unter Verwendung der ermittelten Informationswerte und ihrer Mitgliedschaftsgrade.
  • Weitere Vorteile, Merkmale und Einzelheiten der Erfindung werden auf der Basis der folgenden Beschreibung deutlich, die auf die anliegenden Zeichnungen Bezug nimmt.
  • Fig. 1 zeigt ein EAN-13-Strichmuster,
  • Fig. 2 zeigt eine Tabelle der Informationsmarken, die in einem EAN-13-Symbol verwendet werden,
  • Fig. 3 zeigt einen Überblick über die in einem EAN-13-Symbol verwendeten Hilfsmarken,
  • Fig. 4 zeigt ein Blockdiagramm zum Dekodieren eines Strichmusters,
  • Fig. 5 zeigt ein Detail von Fig. 4,
  • Fig. 6 zeigt ein Beispiel für die Verwendung des Diagramms von Fig. 5,
  • Fig. 7 zeigt ein Beispiel für die Verarbeitung der Daten von Fig. 6,
  • Fig. 8-12 zeigen Beispiele von Mitgliedsschaftsfunktionen für verschiedene Komponenten eines Strichcodes,
  • Fig. 13 zeigt ein Diagramm, in welchem der Ort der Regionen P, Q, R0 und Rx bestimmt ist,
  • Fig. 14 zeigt eine Tabelle zur Bestimmung von Informationsmarken auf der Basis der Werte von P und Q,
  • Fig. 15 zeigt eine Tabelle zur Bestimmung von Informationsmarken auf der Basis der Werte von P, Q und R0,
  • Fig. 16 zeigt eine Tabelle, in der die möglichen Permutationen der Reihenfolge für die linke und rechte Hälfte eines EAN-13-Symbols angegeben sind,
  • Fig. 17 zeigt ein Beispiel für den Inhalt der relevanten Register der zweiten Daten-Pipeline von Fig. 4,
  • Fig. 18 zeigt ein Blockdiagramm eines Systems, das ein bevorzugtes Ausführungsbeispiel einer Codiervorrichtung gemäß der Erfindung verkörpert,
  • Fig. 19 zeigt ein Blockdiagramm der Dekodiervorrichtung von Fig. 18,
  • Fig. 20 zeigt ein Blockdiagramm des FPGA (Floating-Point-Gate-Arrays) von Fig. 19, und
  • Fig. 21 zeigt ein Blockdiagramm des Filters von Fig. 20.
  • Die vorliegende Erfindung ist auf EAN-13-Muster anwendbar (s. das Handbuch für einheitliche Artikelkodierung der UAC-Foundation), sie kann jedoch auch für EAN-8, UPCA, UPCE und zusätzlich auf industrielle Codes CODE-128, CODE-39, CODABAR, 20F5 usw. angewendet werden.
  • Beim Lesen von Strichcodes können aus verschiedenen Gründen Fehler auftreten. Während des Druckens eines Strichcodes auf einer Verpackung können Änderungen auftreten, z. B. aufgrund von Verschiebungen während der Herstellung der Filmmaske, der Herstellung der Druckplatten, des Drucks der Druckplatte auf dem Träger, die Absorption des Papiers usw.. Der Farbkontrast ist nicht immer optimal, weil die Hersteller versuchen, das Strichmuster so weit wie möglich in die Verpackung zu integrieren. Verformung der Verpackung kann auftreten.
  • Fehler können außerdem durch Verformung der Verpackung entstehen.
  • Darüber hinaus können Fehler beim Scannen auftreten. Dies kann auf die Optik, die analoge Elektronik und auf die Digitalisierung der analogen Signale zurückzuführen sein. Schließlich können Umwelteinflüsse, wie Schmutz, Feuchtigkeit oder Beschädigung der Verpackung Fehler hervorrufen.
  • Ein größerer Teil der Fehler beim Lesen der oben beschriebenen Strichcodes kann auf die Verschiebung der Grenzen zwischen Streifen und Zwischenräumen zurückgeführt werden.
  • Ein signifikanter Teil dieser Fehler sind systematische Fehler, die sich in einer Form manifestieren, die als durchschnittliche Druckverbreiterung beschrieben wird. Hierbei sind die abgeleiteten Breiten der Striche in dem Strichcode um einen Betrag Delta größer als in einem idealen Strichcode, während die Breiten der Zwischenräume in den Strichcodes um den gleichen Betrag Delta kleiner sind.
  • Ein EAN-13-Symbol oder -Strichmuster umfaßt eine Trennmarke mit 6 Informationsmarken auf jeder Seite, die auf den Außenseiten von einer Kantenmarke (Fig. 1) flankiert werden. Das Symbol besitzt darüber hinaus einen linken und einen rechten Rand. Die linke Hälfte umfaßt 6 Informationsmarken aus der Nummernserie A und B, während die rechte Hälfte 6 Informationsmarken aus der Nummernserie C besitzt (s. Fig. 2). Es ist darauf hinzuweisen, daß die Muster aus der Nummernserie C genaue Spiegelbilder der Muster aus der Nummernserie A sind.
  • Hilfsmarken und Informationsmarken bestehen aus Strichen und Zwischenräumen mit jeweils beide einer ganzen Zahl von Einheiten oder Modulen (s. Fig. 3). Ein Modul hat eine feste Breite innerhalb eines Symbols. Unter dem Symbol befindet sich die Darstellung der dreizehnstelligen Artikelnummer in Klarschrift.
  • Das vorliegende Codierverfahren ist sowohl für Vorwärts- als auch für Rückwärts-Dekodierung geeignet. Da die rechte Hälfte eines EAN-13-Codes in ihrer Struktur spiegelbildlich der linken Hälfte entspricht, kann der Code nach innen gelesen werden, d. h. von einer Kantenmarke zu der Trennmarke dekodiert werden, oder nach außen, d. h. von der Trennmarke zu einer Kantenmarke. Das Signal MARK zeigt mit dem Wert 1 an, daß die Dekodierung von außen nach innen stattfinden muß, und mit dem Wert 0, daß sie in umgekehrter Richtung stattfinden muß. Ob dies eine rechte oder eine rechte Hälfte betrifft, wird letztlich in Bezug auf die Nummernserie der Informationsmarken bestimmt. Das Signal MARK ändert jedesmal die Polarität, wenn die Breite eines Striches oder eines Zwischenraums bestimmt wird, so daß die Dekodierung abwechselnd von außen nach innen und umgekehrt stattfindet.
  • Der Dekodierprozeß für EAN-13-Symbole besteht aus drei Teilen (s. auch Fig. 4):
  • - Dekodieren von Informationsmarken -
  • - Einrichten von Strichcodehälften
  • - Einrichten und Auswählen des wahrscheinlichsten Strichcodes.
  • Beim Dekodieren von EAN-13-Codes gemäß der Erfindung werden sogenannte Zeitpaarungen als Startpunkt genommen (Fig. 5). Man erhält eine Zeitpaarung, indem man die Breiten eines Strichs und eines benachbarten Zwischenraums addiert. Für jeden Strich wird eine Zeitpaarung sowohl mit dem vorangehenden Zwischenraum als auch eine Zeitpaarung mit dem nachfolgenden Zwischenraum gebildet. Die bei der vorliegenden Erfindung benutzten Zeitpaarungen P und Q sind in Fig. 2 dargestellt. Der Vorteil dieser Vorgehensweise besteht darin, daß durch sie das Problem der durchschnittlichen Druckverbreiterung völlig gelöst wird. Die Zeitpaarungen werden in einer sogenannten Daten-Pipeline plaziert. Diese Daten- Pipeline besteht aus 15 Registern. Jedesmal wenn eine neue Zeitpaarung berechnet wird, wird der Inhalt der Daten-Pipeline um ein Register nach oben verschoben, um Platz für die neue Zeitpaarung zu schaffen. Der Inhalt des Registers 14 verschwindet hier, während die neue Zeitpaarung im Register 0 angeordnet wird.
  • BEISPIEL: Fig. 6 zeigt das Auffüllen der Daten-Pipeline mit einem gegebenen Strichmuster.
  • Jedesmal, wenn eine neue Zeitpaarung in der Daten-Pipeline plaziert wird, wird angenommen, daß eine Informationsmarke vorliegt und versucht wird, die Marke zu dekodieren. Die Breite und Position der Informationsmarke wird mit zwei Zeitpaarungen fixiert. Wenn MARK den Wert 1 hat, bestimmen die Zeitpaarungen in den Registern 8 und 10 die Breite, und wenn MARK den Wert 0 hat, bestimmen die Register 4 und 6 die Breite. Mit dieser Vorgehensweise wird eine einzelne Informationsmarke nicht übersprungen, und in jedem Fall enden alle Informationsmarken mit der korrekten Polarität von MARK an einem Punkt in den genannten Positionen der Daten-Pipeline.
  • Die in Rede stehende Informationsmarke liegt zwischen einer Kantenmarke und einer Informationsmarke oder zwischen zwei Informationsmarken oder zwischen einer Informationsmarke und der Trennmarke (s. Fig. 1). Um die Marke während der Einrichtung einer Strichcodehälfte plazieren zu können, wird für jede Informationsmarke daraufhin geprüft, ob sie auf der einen Seite an eine Trennmarke oder eine Informationsmarke angrenzt und ob sie auf der anderen Seite an eine Kantenmarke mit dem zugeordneten Rand angrenzt. Um diese Prüfungen zu ermöglichen, wird eine Daten-Pipeline mit einer Länge von 15 Registern gewählt. Eine andere Länge ist gegebenenfalls jedoch auch möglich.
  • Das vorliegende Dekodierverfahren besitzt einen großen Dynamikbereich, da die Breite der Informationsmarke als Referenz zur Bestimmung des Inhalts der Informationsmarke und zur Prüfung der Hilfsmarken verwendet wird. Ein großer Dynamikbereich ist besonders wichtig für einen Laserscanner. Ein Strichcode kann jedenfalls unterschiedliche Abmessungen haben und nahe bei dem Scanner oder in einem größeren Abstand von ihm liegen. Da eine Informationsmarke in einem EAN-13-Symbol nominell eine feste Länge von 7 Modulen hat, eignet sich diese Breite für die Verwendung als Referenz. Ein anschließender Schritt in dem Dekodierprozeß besteht darin, daß alle relevanten Zeitpaarungen auf diese Referenz genormt werden. Da das Dekodieren von außen nach innen gegenüber dem Dekodieren in der umgekehrten Richtung für die Interpretation der Daten-Pipeline faktisch auf ein Spiegelbild in dem Register 7 hinausläuft, wird während der Normierung in Abhängigkeit von MARK das Spiegelbild ausgeführt oder nicht.
  • Wenn MARK den Wert 1 hat:
  • - M3 = (T3 · 7)/(T8 + T10)
  • - M4 = (T4 · 7)/(T8 + T10)
  • - M5 = (T5 · 7)/(T8 + T10)
  • - M6 = (T6 · 7) / (T8 + T10)
  • - M7 = (T7 · 7) / (T8 + T10)
  • - M8 = (T8 · 7)/(T8 + T10)
  • - M9 = (T9 · 7)/(T8 + T10)
  • - M11 = (T11 · 7)/(T8 + T10)
  • - M12 = (T13 · 7)/(T8 + T10)
  • - M13 = (T13 · 7)/(T8 + T10)
  • - M14 = (T14 · 7)/(T8 + T10)
  • Wenn MARK den Wert 0 hat:
  • - M3 = (T11 · 7)/(T6 + T4)
  • - M4 = (T10 · 7)/(T6 + T4)
  • - M5 = (T9 · 7)/(T6 + T4)
  • - M6 = (T8 · 7)/(T6 + T4)
  • - M7 = (T7 · 7)/(T6 + T4)
  • - M8 = (T6 · 7)/(T6 + T4)
  • - M9 = (T5 · 7)/(T6 + T4)
  • - M11 = (T5 · 7)/(T6 + T4)
  • - M12 = (T2 · 7)/(T6 + T4)
  • - M13 = (T1 · 7)/(T6 + T4)
  • - M 14 = (T0 · 7)/(T6 + T4)
  • Hierin bedeutet Tx den Inhalt des Registers x der Daten-Pipeline. Die Variable Mx kann als die Anzahl von Modulen interpretiert werden, die von der Zeitpaarung x abgedeckt werden. Es sei erwähnt, daß sowohl Tx als auch Mx im Prinzip zur Menge der realen Zahlen gehören, obwohl für eine Implementierung im allgemeinen ganze oder Festkommazahlen gewählt werden.
  • BEISPIEL: Fig. 7 zeigt für beide Werte von MARK und eine Füllung der Daten-Pipeline die zugeordneten Werte von Mx.
  • Jeder Strich oder Zwischenraum einer Informations- und Hilfsmarke besteht aus einer ganzen Zahl von Modulen. Bei herkömmlichen Dekodierverfahren werden die Mx-Zahlen auf die nächste ganze Zahl gerundet. In dem vorliegenden Dekodierverfahren findet jedoch keine Diskretisierung sondern eine Fuzzifizierung statt, indem Mitgliedsschaftsfunktionen für den relevanten ganzzahligen Wert angewendet werden. Wie in der Fuzzy-Mengentheorie üblich, erzeugen die Mitgliedsschaftsfunktionen immer eine reale Zahl oder einen Grad, der größer oder gleich 0 und kleiner oder gleich 1 ist. Ein Grad 0 entspricht dem logischen Wert FALSCH und 1 entspricht dem Wert WAHR. Es ist natürlich auch ein anderer Bereich möglich, der auch negative Zahlen umfassen kann.
  • Fig. 8 zeigt Beispiele von Mitgliedsschaftsfunktionen, die auf M8 und M9 angewendet werden. Die Bereiche in Fig. 13, die mit M9 und MB korrespondieren, sind mit den Symbolen P bzw Q bezeichnet. Wie aus der Tabelle in Fig. 2 abgeleitet werden kann, können P und Q nur die Werte 2, 3, 4 und 5 haben. In dem vorliegenden Verfahren entsprechen diese Werte einer Menge von F2, F3, F4 und F5, die jeweils ihre eigene Mitgliedsschaftsfunktion haben. P enthält eine Untermenge davon, d. h. diejenigen Werte, für die die zugehörige Mitgliedsschaftsfunktion für ein gegebenes M9 einen Grad hat, der größer ist als 0. Entsprechend enthält Q eine Untermenge, die einem gegebenen M8 zugeordnet ist. Die Mengen P und Q können leer sein oder ein oder mehrere Elemente enthalten.
  • BEISPIEL: In Fig. 7 hat M8 den Wert 1,98 und M9 den Wert 2,41 für den Fall, daß MARK gleich 0 ist. Mit den Mitgliedsschaftsfunktionen von Fig. 8 erhält P die Elemente 2 (0,65) und (0,35) und Q das Element 2 (1,0), wobei der Grad in Klammern angegeben ist.
  • In Fig. 14 sind der Wert oder die Werte der Informationsmarke für jede Kombination der Elemente P und Q angegeben sowie die Serie, zu der er gehört. Aus der Tabelle ist ersichtlich, daß es für Kombinationen mit Elementen 3 und 4 von P und Q nicht möglich ist, eine eindeutige Feststellung über den Wert der Informationsmarke zu treffen. Die Auswahl wird in einem späteren Stadium während der Einrichtung der Strichcodehälften getroffen. Um die für diese Auswahl benötigte Information zur Verfügung zu haben, wird bei der Auswahl der Informationsmarke die Menge der Werte berücksichtigt, die der in Fig. 13 mit R0 bezeichneten Region zugeteilt sind. Zu diesem Zweck wird die Menge der möglichen Informationsmarke bei dem vorliegenden Dekodierverfahren von 20 Elementen {A0, A1, ..., A9, B0, B1, ..., B9} auf 80 Elemente {1A0, 2A0, 3A0, 4A0, 1A1, ..., 4A9, 1B0, ..., 4B9} vergrößert. Die Zahl auf der linken Seite der Serienangabe gibt an, aus wievielen Modulen der Strich bestehen muß, der direkt an die Informationsmarke angrenzt. Diese Zahl beträgt 1, 2, 3 oder 4 Module.
  • Die Menge R0 wird mit den Mitgliedsschaftsfunktionen von M11 bestimmt, z. B. die Funktionen F2 bis F8 in Fig. 9. Die Menge der möglichen Informationsmarken ist eine Untermenge der erweiterten Menge von 80 Informationsmarken. Die Untermenge wird ermittelt, indem man Elemente von P, Q und R0 kombiniert und die Kombinationen in der Tabelle von Fig. 15 nachschlägt. Jeder Informationsmarke ist ein Grad zugeordnet, der durch eine FUZZY-UND-Verknüpfung oder einer algebraischen Produktfunktion der Grade der zugeordneten Elemente von P, Q und R0 berechnet wird.
  • BEISPIEL: In Fig. 7 hat M11 den Wert 4,62, wenn MARK gleich 0 ist. Mit den Mitgliedsschaftsfunktionen von Fig. 9 erhält R0 die Elemente 4 (0,30) und 5 (0,70). Zusammen mit den Elementen von P und Q aus dem vorherigen Beispiel ergibt dies die folgenden Möglichkeiten für die Informationsmarken:
  • - 1B6 (0,46)
  • - 1A0 (0,11)
  • - 2A0 (0,25)
  • Der in Klammern angegebene Grad wird mit dem algebraischen Produkt der getrennten Grade berechnet.
  • Bei dem Dekodieren einer Informationsmarke wird immer das Vorhandensein von Hilfsmarken geprüft. Wie Fig. 3 zeigt, besteht die Trennmarke aus 2 Strichen und 3 Zwischenräumen, die jeweils ein Modul umfassen. Die Prüfung erfolgt durch Fuzzifizierung von M3, M4, M5 und M6 unter Verwendung einer Mitgliedsschaftsfunktion F2, für die in Fig. 10 ein Beispiel angegeben ist. Darüber hinaus wird auch M7 geprüft, das der Region entspricht, die in Fig. 13 mit dem Symbol Rx bezeichnet ist. Wie in dem Fall von P und Q ist dies eine Menge, die die Werte 2, 3, 4 und 5 enthalten kann. Die Mitgliedsschaftsfunktionen von Fig. 8 eignen sich z. B. für die Bestimmung der Menge Rx und der zugehörigen Grade. Der Bereich Rx liegt teilweise in der Informationsmarke und teilweise in der Trennmarke. Ein Modul liegt in der Trennmarke und der Rest liegt in der Informationsmarke. In einer gegebenen Informationsmarke ist die Anzahl der Module des äußeren Striches bekannt, wie in Fig. 2 dargestellt ist.
  • Dies bedeutet, daß für jede mögliche Informationsmarke geprüft wird, ob sie an eine Trennmarke angrenzt. Der Grad der Hilfsmarke wird durch eine FUZZY-UND-Verknüpfung der Grade, die M3 bis M6 zugeordnet sind, und des Grads des geeigneten Elements von Rx berechnet.
  • Eine Kantenmarke besteht aus zwei Strichen und einem Zwischenraum (s. auch Fig. 3). Die Prüfung findet wie im Fall der Trennmarke durch Fuzzifizierung statt, wobei eine Mitgliedsschaftsfunktion F2, in diesem Fall von M12 und M13 verwendet wird. Im Gegensatz zu der Trennmarke muß keine zusätzliche Prüfung für einen Bereich durchgeführt werden, der sich mit der Informationsmarke überlappt. Der Bereich R0 ist in jedem Fall bereits bei der Dekodierung dieser Marke einbezogen. Dies bedeutet, daß das Vorhandensein der Kantenmarke nicht von dem Inhalt der Informationsmarke abhängig ist. Der Grad der Kantenmarke wird durch eine FUZZY-UND-Verknüpfung der Grade bestimmt, die M12 und M13 zugeordnet sind.
  • In einem EAN-13-Symbol werden im allgemeinen unterschiedliche Anforderungen an den linken und den rechten Rand gestellt. Da es in diesem Stadium der Dekodierung noch nicht bekannt ist, ob eine Informationsmarke Teil einer linken oder einer rechten Hälfte des Symbols ist, wird das Vorhandensein eines linken Randes und eines rechten Randes geprüft. Eine Mitgliedsschaftsfunktion von M14, z. B. Fmarg in Fig. 11, bestimmt das Vorhandensein und den zugeordneten Grad. Hierbei können für den linken und den rechten Rand verschiedene Funktionen benutzt werden.
  • Schließlich wird bei der Dekodierung einer Informationsmarke eine weitere Prüfung durchgeführt, die sich auf die Dimensionen der einander benachbarten Informationsmarken bezieht. Im Idealfall sind die Marken innerhalb eines EAN-13-Symbols gleich breit, da sie jedenfalls jeweils sieben Module enthalten. In der Praxis treten Differenzen auf. Die normierte Breite einer möglicherweise benachbarten Informationsmarke wird durch Addieren von M4 und M6 ermittelt. Mit einer Mitgliedsschaftsfunktion, wie z. B. Finter in Fig. 12, wird festgestellt, ob das gegenseitige Breitenverhältnis korrekt ist und welcher Grad ihm zugeordnet ist.
  • Zusammenfassend kann festgestellt werden, daß bei dem Dekodieren einer Informationsmarke bei jedem Füllen der Daten-Pipeline die folgende Information bestimmt und anschließend dem Teil des Dekodierverfahrens zur Verfügung gestellt wird, in welchem die Hälften eingerichtet werden:
  • - Eine Menge von möglichen Informationsmarken aus der erweiterten Menge von 80 Marken, die jeweils mit einem Grad versehen sind.
  • Für jede Informationsmarke das Vorhandensein einer Trennmarke mit dem zugehörigen Grad.
  • - Das Vorhandensein einer Kantenmarke mit Grad.
  • - Das Vorhandensein eines linken Randes mit Grad.
  • - Das Vorhandensein eines rechten Randes mit Grad.
  • - Das Breitenverhältnis zu einer benachbarten Informationsmarke mit einem Grad.
  • Zur Bildung der Strichcodehälften werden die so gewonnenen Daten erneut in einer Daten- Pipeline plaziert (s. auch Fig. 4). Diese Daten-Pipeline besteht aus 21 Registern. Jedesmal, wenn neue Daten berechnet werden, wird der Inhalt der Daten-Pipeline um ein Register nach oben verschoben, um Platz für die neuen Daten zu schaffen. Der Inhalt des Registers 20 verschwindet hier, während die neue Information in den Registern 0 angeordnet wird. Die Daten-Pipeline besitzt Verzweigungen in den Registern 0, 4, 8, 12, 16 und 20, so daß die Daten von sechs benachbarten Informationsmarken zur Verfügung gestellt werden. Es wird hier angenommen, daß diese sechs Register zusammen eine oder mehrere Strichcodehälften umfassen.
  • Wie bei dem Dekodieren von Informationsmarken zeigt das Signal MARK auch hier an, ob die Dekodierung von innen nach außen oder in umgekehrter Richtung erfolgen muß. MARK zeigt mit dem Wert 1 an, daß das Register 0 und mit dem Wert 0, daß das Register 20 die Informationsmarke enthält, die an die Trennmarke angrenzt. Mit dieser Vorgehensweise wird eine einzelne Strichcodehälfte nicht übersprungen, und in jedem Fall enden alle Hälften mit der korrekten Polarität von MARK in einem Punkt in den genannten Positionen der Datenpipeline.
  • Das Einrichten von Strichcodehälften geht von der Trennmarke aus. Es ist jedoch auch möglich, von der Kantenmarke aus zu beginnen. Wie oben bereits festgestellt wurde, startet man mit dem Register 0, wenn MARK den Wert 1 hat, und mit dem Register 20, wenn MARK den Wert 0 hat. Dieses Register enthält eine Menge von möglichen Informationsmarken. Ein Start findet nur mit denjenigen Marken statt, die ein Flag besitzen, das das Vorhandensein einer Trennmarke anzeigt Wie oben festgestellt wurde, umfaßt jede mögliche Informationsmarke zusätzlich zu einem numerischen Wert und der Serienangabe einen Wert, der bestimmt, aus wievielen Modulen der angrenzende Strich in der benachbarten Marke bestehen muß. Alle Möglichkeiten für die benachbarte Informationsmarke, die diese Forderung erfüllen und bei denen überdies das gegenseitige Breitenverhältnis korrekt ist, werden ausprobiert. Dieser Prozeß, der typischerweise eine Form des sogenannten Rückverfolgens (Backtracking) darstellt, wird fortgesetzt, bis die Möglichkeiten für die in der Nachbarschaft der Kantenmarke liegende Informationsmarke ebenfalls gefunden sind. Für diese letztgenannten Informationsmarken gilt die Einschränkung, daß der benachbarte Strich nur ein Modul enthält, weil dieser jedenfalls ein Strich der Kantenmarke ist. Zusätzlich muß die Kantenmarke selbst vorhanden sein.
  • BEISPIEL: In Fig. 17 ist der Inhalt der Daten-Pipeline für sechs Zweige dargestellt. Die Pfade, die mit dem Backtracking-Algorithmus ermittelt wurde, sind mit Pfeilen versehen. Ein Pfad startet auf der rechten Seite der Zeichnungsfigur mit einer Informationsmarke, die einer (mit S bezeichneten) Trennmarke benachbart ist. Begonnen wird mit den Marken 1B6 und 1A0. In der Nachbarschaft dieser Marken muß eine Informationsmarke vorhanden sein mit einem außenseitigen Strich, der aus einem Modul besteht. Beide Marken 1B7 und 1A1 erfüllen diese Bedingung. Das Breitenverhältnis der benachbarten Informationsmarken muß überdies korrekt sein. Dies wird mit dem Flag ·inter· angezeigt, das einen Grad größer Null haben muß. Die Pfeile zeigen in jedem Fall an, welche Informationsmarken diese Bedingungen erfüllen und somit passen. Als nächstes muß die sechste Informationsmarke zu einer Kantenmarke passen, und zusätzlich muß diese Kantenmarke auch mit einem Rand vorhanden sein. Auf diese Weise werden acht mögliche Hälften erzeugt:
  • - B6-B0-B9-B8-B7-B6
  • - A0-B0-B9-B8-B7-B6
  • - B6-B0-B9-B8-A1-B6
  • - A0-B0-B9-B8-A1-B6
  • - B6-B0-B9-B8-B7-A0
  • - A0-B0-B9-B8-B7-A0
  • - B6-B0-B9-B8-A1-A0
  • - A0-B0-B9-B8-A1-A0
  • Da in diesem Stadium sechs angrenzende Informationsmarken gefunden wurden, kann auch die Permutation der Reihenfolge geprüft werden. Es sind nur die Permutationen gültig, die in Fig. 16 auftreten. Die Tabelle zeigt, ob es eine linke oder eine rechte Strichcodehälfte ist. In Abhängigkeit hiervon wird auch das Vorhandensein eines linken oder rechten Randes geprüft. Für eine linke Hälfte liefert die Tabelle überdies die Zahl, die in einem EAN-13-Symbol unter dem linken Rand in Klarschrift gedruckt ist.
  • Die Backtrack-Methode ergibt zusammen mit den zusätzlichen Prüfungen eine Menge von möglichen Strichcodehälften. Die Menge kann eine leere Menge sein. Jede Möglichkeit wird mit einem Grad versehen, der durch eine FUZZY-UND-Verknüpfung der Grade der getrennten Teile berechnet wird. Die Grade der Hilfsmarken werden hier mit einer unterschiedlichen Gewichtung versehen.
  • BEISPIEL: Von den acht möglichen Hälften des vorherigen Beispiels verbleiben nach der Prüfung der Reihenfolgen-Permutation mitHilfe von Fig. 16 nur zwei Möglichkeiten:
  • - B6-B0-B9-B8-B7-B6 = rechte Hälfte 678906
  • - A0-B0-B9-B5-A1-A0 = linke Hälfte 6_009810
  • Alle möglichen Strichcodehälften werden mit den zugehörigen Graden zu dem Teil des Dekodierverfahrens übertragen, in welchem die Hälften zu vollständigen Strichcodes zusammengesetzt werden.
  • Wenn Strichcodes gebildet werden, werden während einer bestimmten Zeit Codehälften gesammelt. Um die Datenmenge zu reduzieren, wird für identische Hälften registriert, wie oft diese Hälfte auftritt. Hierbei wird der Grad durch eine FUZZY-UND-Verknüpfung des Grads, der für die bis zu diesem Punkt gesammelten Hälften zutrifft, und des Grads der neuen Hälfte verbessert. Nach dem Sammeln werden die linken Hälften mit den rechten Hälften kombiniert. Für einen möglichen Strichcode muß die Prüfnummer, d. h. die Nummer in der rechten Hälfte, die der Kantenmarke am nächsten liegt, einer Modulo-Berechnung der anderen Nummern entsprechen. Der Grad des Strichcodes wird durch eine FUZZY-UND-Verknüpfung der Grade der linken und rechten Hälften berechnet, wobei berücksichtigt wird, wie oft die Hälften aufgetreten sind.
  • Wenn die Menge von möglichen Strichcodes mehr als ein Element umfaßt und ein Strichcode deutlich einen höheren Grad aufweist als die anderen, wird dieser Strichcode als der am meisten wahrscheinliche Code erzeugt. In anderen Fällen bestimmen die Anzahl, wie oft eine Hälfte ermittelt wurde, oder die Sequenz, in der die Hälften ermittelt wurden, die Auswahl.
  • BEISPIEL: Nach einer vorbestimmten Sammelzeit werden die folgenden Strichcodes ermittelt:
  • - rechte Hälfte 678906 mit dem Grad 0,80 und zehnmal ermittelt
  • - linke Hälfte 6_009810 mit dem Grad 0,15 und zweimal ermittelt
  • - linke Hälfte 8_712345 mit dem Grad 0,95 und 25 mal ermittelt
  • - rechte Hälfte 567815 mit dem Grad 0,05 und einmal ermittelt
  • - rechte Hälfte 876906 mit dem Grad 0,12 und dreimal ermittelt.
  • Damit sind acht Kombinationen möglich. Jedoch haben nur zwei von diesen Kombinationen eine korrekte Prüfnummer:
  • 8_712345 678906 mit dem Grad 0,76
  • 8_712345 876906 mit dem Grad 0,11
  • Auf der Basis des Grades wird der erste Code erzeugt.
  • Die Mitgliedsschaftsfunktionen bilden einen wesentlichen Teil der vorliegenden Erfindung. Die Funktionen können für Informationsmarken und Hilfsmarken differieren, und können sogar pro Komponente einer Marke differieren. In den Beispielen werden trapezförmige Mitgliedschaftsfunktionen verwendet. Eine Funktion dieser Form kann mit vier Scheiteln oder einem sogenannten Trapezquartett beschrieben werden. Eine solche Form kann Vorteile bei der Implementierung mit sich bringen. Im Hinblick auf den großen Einfluß, den die Auswahl auf die Leistungsfähigkeit des Dekodierverfahrens hat schließt dies jedoch keineswegs andere Formen für die Mitgliedschaftsfunktionen aus.
  • Es gibt verschiedene Alternativen zu der FUZZY-UND-Verknüpfung. Hierzu gehören das algebraische Produkt sowie Minimumfunktionen. Ähnliche Funktionen sind für die FUZZY-ODER- Verknüpfung möglich. Wenn nötig, kann eine Quadratwurzel oder eine Wurzel höherer Ordnung eines Grades herangezogen werden, um dem Grad ein kleineres Gewicht bei der Bewertung der Fuzzy-logischen Ausdrücke zu geben. Es gibt jedoch andere mögliche Methoden zum Anbringen einer Gewichtung, wie z. B. ein gewichteter Mittelwert.
  • Das oben beschriebene Dekodierverfahren ist auch auf UPCA-Codes anwendbar, da diese Codes mit EAN-13-Symbolen korrespondieren, in denen die linke Hälfte nur Informationsmarken aus der A-Serie enthalten (s. Fig. 2). Das Verfahren ist ferner auf UPCE-Codes anwendbar. Diese Codes korrespondieren mit einer linken Hälfte eines EAN-13-Codes. Einen Unterschied gibt es bei der Verwendung von Reihenfolgen-Permutationen, Kantenmarken und Rändern. Das Verfahren ist weiter auf EAN-8-Codes anwendbar, die faktisch eine kürzere Version von EAN-13-Codes sind.
  • Erste Ergebnisse mit dem oben beschriebenen Ausführungsbeispiel des Verfahrens gemäß der Erfindung wurden mit einem Computerprogramm und einer gedruckten Schaltungsplatte gewonnen, die zu diesem Zweck für einen Personalcomputer entwickelt wurden, der mit einem Laser-Scanner verbunden ist. Aus einer großen Zahl von Meßergebnissen kann der Schluß gezogen werden, daß das Dekodierverfahren gemäß der vorliegenden Erfindung für repräsentative Situationen bei Registrierkassen in Supermärkten einen höheren Grad dafür liefert, daß beim erstenmal korrekt gelesen wird. Es hat sich auch herausgestellt, daß das Dekodierverfahren gemäß der Erfindung unter gewissen Umständen eine korrekte Lösung findet, wo dies wegen schlechter Druckqualität mit den existierenden Dekodier-Algorithmen durchaus nicht möglich war.
  • Ein System 20 (Fig. 18) umfaßt einen Laser-Scanner 21, eine Dekodiervorrichtung 22 und eine Registrierkasse 23. Die Dekodiervorrichtung 22 und die Registrierkasse 23 sind über eine serielle Leitung nach dem R5232-Protokoll miteinander verbunden. Der Laser-Scanner 21, der in dem vorliegenden Beispiel benutzt wurde, liefert drei Signale an die Dekodiervorrichtung 22, nämlich BTW, WTB und JAM, die Übergänge von schwarz nach weiß, Übergänge von weiß nach schwarz bzw. ein starkes Anwachsen des Kontrasts in den von dem Laser-Scanner 21 gescannten Strichcodes bezeichnen. Die Dekodiervorrichtung 22 liefert ein Signal BEEP an den Scanner 21, das anzeigt, daß der Strichcode detektiert wird. Dieses Signal wird von dem Laser-Scanner 21 in ein Signal umgewandelt, das für den Benutzer hörbar und/oder z. B. auf einer LED sichtbar ist. Die Dekodiervorrichtung 22 umfaßt ein FPGA (Floating-Point-Gate-Array = Gleitkomma-Gate-Array) 24, einen FIFO-(First-in-First-out)-Speicher 25, einen Mikroprozessor 26, einen Speicher vom ROM-Typ 27, einen Speicher vom RAM-Typ 28 und einen seriellen Port 29 für die serielle RS232-Verbindung. Die Komponenten 25, 26, 27, 28 und 29 sind über eine Bus-Struktur 30 miteinander verbunden.
  • Mit Hilfe des FPGA, dessen Funktion weiter unten erläutert wird, werden die Zeitpaarungen der BTW-, der WTB- und der JAM-Signale in der oben beschriebenen Weise bestimmt. Der FIFO-Speicher dient dazu, Änderungen in der Zulieferung der Zeitpaarungen durch das FPGA zu absorbieren, so daß sie von dem Mikroprozessor in der gewünschten zeitlichen Frequenz verarbeitet werden können. In dem ROM 27 befindet sich die Software für den Mikroprozessor 26, wie sie oben beschrieben wurde, und insbesondere für die Funktionen zum Dekodieren von Informationsmarken, Bilden von Strichcodehälften, Bilden von Strichcodes aus Strichcodehälften und Auswählen von Strichcodes. In dem RAM 28 werden Zwischenergeb nisse gespeichert, wie die Daten-Pipeline für Zeitpaarungen, die Daten-Pipeline für Informationsmarken und die dekodierten Strichcodehälften. Der Mikroprozessor 26 muß eine hohe Verarbeitungsgeschwindigkeit haben. Im vorliegenden Ausführungsbeispiel wurde ein Intel- Pentiumprozessor verwendet.
  • Das FPGA 24 (Fig. 20) umfaßt einen Zähler 31, dem ein Taktsignal CL mit einer Frequenz von 32 MHz zugeführt wird, ein Filter 32, ein erstes Register 33, ein zweites Register 34, einen Volladdierer 35, eine Steuerlogik 36 für den Zähler 31 und eine Steuerlogik 37 für den FIFO-Speicher 25. Diese Komponenten sind in der in Fig. 20 dargestellten Weise miteinander verbunden. Mit Hilfe des Zählers 31 wird die Zahl der Perioden zwischen Übergängen von Weiß nach Schwarz und umgekehrt bestimmt. Auf diese Weise wird die Breite aller Zwischenräume und Striche des Strichcodes zeitlich gemessen. Bei jedem Übergang wird der Inhalt des Zählers in dem Filter plaziert, während der Zähler durch die Steuerlogik 36 auf den Wert 1 gesetzt wird.
  • Das Filter, dessen Funktion weiter unten näher erläutert wird, dient zur Reduzierung der Datenmenge. Zeitwerte, die nicht Teil eines Strichcodes sein können, werden ausgefiltert. Die Daten, die nicht ausgefiltert werden, werden in dem Register 31 angeordnet, während der Inhalt des Registers 31 jedesmal in das Register 34 verschoben wird. Mit Hilfe des Volladdierers 35 werden die Inhalte der Register 33 und 34 zusammenaddiert, so daß am Ausgang des Volladdierers die Breite einer Zeitpaarung vorliegt. Dieser Wert wird anschließend durch die zugehörige Steuerlogik in den FIFO-Speicher eingeschrieben und ist von einem Bit MARK begleitet, die angibt, ob die Zeitpaarung ein Zwischenraum ist, gefolgt von einem Strich, oder umgekehrt, ein Strich, gefolgt von einem Zwischenraum.
  • Ein starkes Anwachsen des Kontrasts, das durch das Signal JAM angezeigt wird, bedeutet üblicherweise, daß der Abtastlichtpunkt nach einem hellen Rand über einen Strichcode gewandert ist und daß ein Zwischenraum als Rand interpretiert werden muß. Das FPGA stellt sicher, daß dieser Zwischenraum die größtmögliche Breite bekommt, so daß er während des Dekodierens das Kriterium für einen Rand erfüllt.
  • Das Filter 23 umfaßt einen Komparator 41, eine Steuerlogik 42 für das Filter, Register 43, 44, ..., 76, entsprechend der Zahl der Elemente eines (der Hälfte eines) Strichcodes, im vorliegenden Fall sind dies 33 Zeitwerte. Der Mikroprozessor 26 führt dem Komparator 41 außerdem einen Grenzwert LV zu, dessen Größe justierbar oder programmierbar ist. In dem Komparator 41 wird der eingegebene Zählwert mit dem Grenzwert LV verglichen. Ein Strich oder ein Zwischenraum innerhalb eines Strichcodes muß zeitlich kleiner sein als ein bestimmter Grenzwert. Der Grenzwert wird durch den Quotienten der maximalen Abmessung eines Elements (Zwischenraum oder Strich) und der minimalen Geschwindigkeit des Lichtpunkts des Laser-Scanners bestimmt.
  • Die Register 43 bis 76 dienen zur temporären Speicherung des Zeitwerts. Die Steuerung 42 stellt auf der Basis des Ausgangssignals des Komparators 41 fest, ob der Wert in die Register eingeschrieben werden muß.
  • In dem vorliegenden Ausführungsbeispiel ist der Startpunkt die Dekodierung von EAN-13- Hälften. Eine Hälfte besteht aus drei Elementen in der Kantenmarke, 24 Elementen in den Informationsmarken und fünf Elementen in der Trennmarke, d. h. insgesamt aus 32 Elementen (s. auch Fig. 1, 2 und 3). Deshalb werden nur Serien aus wenigstens 32 Zeitwerten, die eher kleiner sein müssen als die Grenzwerte, als für die Dekodierung geeignet akzeptiert. · Wenn der der Serie vorangehende Zeitwert die Breite eines Zwischenraums umfaßt, muß dieser Wert mit der Serie weitergeleitet werden, weil hier faktisch ein linker oder rechter Rand betroffen sein könnte. Das gleiche gilt für den Zeitwert, der unmittelbar auf die Serie folgt. Das Filter läßt Serien aneinandergrenzender Zeitwerte mit einer Länge von wenigstens 33 Elementen passieren. Zu diesem Zweck umfaßt das Filter 33 Register.
  • Es sei noch darauf hingewiesen, daß es natürlich auch möglich ist, das Filter mit einer kleineren Zahl von Registern auszustatten, um kurze Serien auszufiltern. Dies vereinfacht die Struktur des Filters, verringert auf der anderen Seite jedoch die Datenreduktion.
  • Aus den Ausführungsbeispielen, die oben eingehend beschrieben wurden, dürfen keine Einschränkungen abgeleitet werden. Die angestrebten Rechte werden durch die folgenden Ansprüche definiert, in deren Schutzbereich sehr viele Veränderungen möglich sind, wie z. B. für das Verfahren der Fuzzifizierung, die Anwendung der Fuzzy-Logik und Fuzzy-Mengen, die Defuzzifizierung, zusätzlich zu anderen als den beschriebenen Dekodier-Algorithmen, die Zeitpaarungen benutzen.

Claims (10)

1. Verfahren zum Dekodieren eines oder mehrerer Strichkodes mit einer Mehrzahl von Marken, wie Informationsmarken, Trennmarken und dgl., wobei jede Marke einen oder mehrere Zwischenräume und einen oder mehrere Striche umfaßt und jeder Strich oder jeder Zwischenraum von wenigstens einem Modul gebildet wird,
mit den Verfahrensschritten:
- Digitalisieren von elektrischen Signalen, die mit Hilfe eines Aufnehmers, z. B. eines Aufnehmers zum Aufnehmen von reflektierten Laserstrahlen, gewonnen werden,
- Herleiten von Zeitpaarungen für jeden Strichkode aus den gewonnenen elektrischen Signalen, wobei jede dieser Zeitpaarungen von der kombinierten Breite eines Striches und eines benachbarten Zwischenraums gebildet wird,
- Herleiten von Markenwerten aus der. Zeitpaarungen, die die Zahl der von jeder Zeitpaarung abgedeckten Module angeben,
gekennzeichnet durch die Verfahrensschritte:
- Anwenden von Mitgliedschaftsfunktionen auf die Markenwerte, um den Mitgliedschaftsgrad zu bestimmen, mit dem die Länge jedes Markenwerts einer ganzen Zahl von Modulen entspricht,
- Ermitteln der von dem Strichkode repräsentierten möglichen Informationswerte und ihrer Mitgliedschaftsgrade aus den Markenwerten und ihren Mitgliedschaftsgraden unter Verwendung einer vorbestimmten Beziehung zwischen Markenwerten und Informationswerten und
- Auswählen der wahrscheinlichsten Informationswerte für einen Strichkode oder einen Teil hiervon unter Verwendung der ermittelten Informationswerte und ihrer Mitgliedschaftsgrade.
2. Verfahren nach Anspruch 1, bei dem die genannte vorbestimmte Beziehung von dem Strichkodetyp abhängt.
3. Verfahren nach Anspruch 1 oder 2, bei dem die Informationswerte kombiniert werden, um Strichkodehälften mit Mitgliedschaftsgraden zu bilden.
4. Verfahren nach Anspruch 3, bei dem die aufgezeichnete Zahl des Auftreten von identischen Strichkodehälften zur Verbesserung des Mitgliedschaftsgrades der Strichkodehälfte verwendet wird.
5. Verfahren nach Anspruch 2, 3 oder 4, bei dem Strichkodehälften zu möglichen ganzen Strichkodes mit einem bestimmten Mitgliedschaftsgrad kombiniert werden.
6. Verfahren nach Anspruch 1 bis 5, bei dem durch Auswählen von Informationswerten mit den höchsten Mitgliedschaftsgrad der wahrscheinlichste Strichkode ermittelt wird.
7. Verfahren nach Anspruch 1 bis 6, bei dem zusätzliche Prüfungen an möglichen Informationswerten durchgeführt werden, um die Zahl der möglichen Informationswerte zu verringern.
8. Verfahren nach Anspruch 1 bis 7, bei dem trapezförmige Mitgliedschaftsfunktionen verwendet werden.
9. Gerät zum Dekodieren eines oder mehrerer Strichkodes mit einer Mehrzahl von Marken, wie Informationsmarken, Trennmarken und dgl., wobei jede Marke einen oder mehrere Zwischenräume und einen oder mehrere Striche umfaßt und jeder Strich oder jeder Zwischenraum von wenigstens einem Modul gebildet wird,
- mit Mitteln zum Digitalisieren von elektrischen Signalen, die mit Hilfe eines Aufnehmers, z. B. eines Aufnehmers zum Aufnehmen von reflektierten Laserstrahlen, gewonnen werden,
- mit Mitteln zum Herleiten von Zeitpaarungen für jeden Strichkode aus den gewonnenen elektrischen Signalen, wobei jede dieser Zeitpaarungen von der kombinierten Breite eines Striches und eines benachbarten Zwischenraums gebildet wird,
- mit Mitteln zum Herleiten von Markenwerten aus den Zeitpaarungen, die die Zahl der von jeder Zeitpaarung abgedeckten Module angeben,
gekennzeichnet durch
- Mittel zum Anwenden von Mitgliedschaftsfunktionen auf die Markenwerte, um den Mitgliedschaftsgrad zu bestimmen, mit dem die Länge jedes Markenwerts einer ganzen Zahl von Modulen entspricht,
- Mittel zum Ermitteln der von dem Strichkode repräsentierten möglichen Informationswette und ihrer Mitgliedschaftsgrade aus den Markenwerten und ihren Mitgliedschaftsgraden unter Verwendung einer vorbestimmten Beziehung zwischen Markenwerten und Informationswerten und
- Mittel zum Auswählen der wahrscheinlichsten Informationswerte für einen Strichkode oder einen Teil hiervon unter Verwendung der ermittelten Informationswerte und ihrer Mitgliedschaftsgrade.
10. Gerät nach Anspruch 9 mit Filtermitteln zum Reduzieren der zu verarbeitenden Datenmenge.
DE69602735T 1995-03-28 1996-03-28 Verfahren und gerät zur dekodierung van streifenkodes Expired - Fee Related DE69602735T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
NL9500597A NL9500597A (nl) 1995-03-28 1995-03-28 Werkwijze en inrichting voor het decoderen van barcodes.
PCT/NL1996/000131 WO1996030859A1 (en) 1995-03-28 1996-03-28 Method and device for decoding bar codes

Publications (2)

Publication Number Publication Date
DE69602735D1 DE69602735D1 (de) 1999-07-08
DE69602735T2 true DE69602735T2 (de) 1999-10-07

Family

ID=19865765

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69602735T Expired - Fee Related DE69602735T2 (de) 1995-03-28 1996-03-28 Verfahren und gerät zur dekodierung van streifenkodes

Country Status (7)

Country Link
US (1) US5929423A (de)
EP (1) EP0818019B1 (de)
AT (1) ATE180910T1 (de)
AU (1) AU5016396A (de)
DE (1) DE69602735T2 (de)
NL (1) NL9500597A (de)
WO (1) WO1996030859A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10207057A1 (de) * 2002-02-20 2003-08-28 Janko Schildt Anordnung zur Überwachung, insbesondere von Patienten mit Diabetes mellitus

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3077616B2 (ja) * 1997-01-31 2000-08-14 富士通株式会社 バーコード読取方法
DE69703287T2 (de) 1997-08-01 2001-05-23 Datalogic S.P.A., Lippo Di Calderara Di Reno Verfahren zum Abtasten eines Strichkodes
US6549935B1 (en) 1999-05-25 2003-04-15 Silverbrook Research Pty Ltd Method of distributing documents having common components to a plurality of destinations
US7170499B1 (en) * 1999-05-25 2007-01-30 Silverbrook Research Pty Ltd Handwritten text capture via interface surface
WO2001031560A1 (fr) * 1999-10-25 2001-05-03 Fujitsu Limited Dispositif et procede de lecture de codes a barres
JP4257131B2 (ja) * 2003-02-21 2009-04-22 富士通株式会社 バーコード読取装置およびバーコード読取方法
AU2006252254B2 (en) * 2006-12-22 2009-03-05 Canon Kabushiki Kaisha Multiple barcode detection
US8196836B2 (en) * 2007-06-28 2012-06-12 Fuji Xerox Co., Ltd. Image processing apparatus, image processing method and computer-readable medium
US9292478B2 (en) * 2008-12-22 2016-03-22 International Business Machines Corporation Visual editor for editing complex expressions

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3723710A (en) * 1971-06-28 1973-03-27 Ibm Method and device for reading and decoding a high density self-clocking bar code
US4245152A (en) * 1979-10-23 1981-01-13 International Business Machines Corporation Decoding method and system for ETAB bar code
US4414468A (en) * 1981-05-18 1983-11-08 International Business Machines Corporation Systematic error correction in bar code scanner
US4717818A (en) * 1986-06-26 1988-01-05 International Business Machines Corporation Bar code label identification circuit
US4879456A (en) * 1987-06-18 1989-11-07 Spectra-Physics, Inc. Method of decoding a binary scan signal
US4855581A (en) * 1988-06-17 1989-08-08 Microscan Systems Incorporated Decoding of barcodes by preprocessing scan data
US5304786A (en) * 1990-01-05 1994-04-19 Symbol Technologies, Inc. High density two-dimensional bar code symbol
JP2886545B2 (ja) * 1989-03-03 1999-04-26 富士通株式会社 マージン認識方法及びバーコード読取り装置
US5276316A (en) * 1990-05-02 1994-01-04 Ncr Corporation Method for reconstructing complete bar code signals from partial bar code scans
US5329105A (en) * 1992-08-10 1994-07-12 United Parcel Service Of America, Inc. Method and apparatus for determining the width of elements of bar code symbols
US5412196A (en) * 1994-04-01 1995-05-02 United Parcel Service Of America, Inc. Method and apparatus for decoding bar code images using multi-order feature vectors
US5773807A (en) * 1995-07-28 1998-06-30 Symbol Technologies, Inc. Arrangement for and method of minimizing reading errors in bar code symbol readers

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10207057A1 (de) * 2002-02-20 2003-08-28 Janko Schildt Anordnung zur Überwachung, insbesondere von Patienten mit Diabetes mellitus
DE10207057B4 (de) * 2002-02-20 2008-07-31 Schildt, Janko, Dr.med. Anordnung zur Überwachung, für Patienten mit Diabetes mellitus

Also Published As

Publication number Publication date
EP0818019A1 (de) 1998-01-14
US5929423A (en) 1999-07-27
AU5016396A (en) 1996-10-16
DE69602735D1 (de) 1999-07-08
EP0818019B1 (de) 1999-06-02
NL9500597A (nl) 1996-11-01
ATE180910T1 (de) 1999-06-15
WO1996030859A1 (en) 1996-10-03

Similar Documents

Publication Publication Date Title
DE3854885T2 (de) Kombinieren von gelesenen Strichcode-Daten
DE2801536C2 (de) Zeichenformkodiervorrichtung
DE68914528T2 (de) Bildsignalverarbeitungsvorrichtung für Strichkodebildsignale.
DE69230633T2 (de) Verfahren zur Ermittlung von Wortformen zum folgenden Vergleich
DE68928154T2 (de) Fingerabdruckverarbeitungssystem, geeignet für das Ermitteln des Kernes eines Fingerabdruckbildes durch Krümmungsparameter
DE69433492T2 (de) Verfahren und Vorrichtung zum Dekodieren von Streifencodes durch unabhängige Analyse von Streifen und Zwischenräumen
DE19814075B4 (de) Verfahren zum Abtasten und Erkennen mehrerer Fotografien und zum Beseitigen von Randfehlern
DE69230631T2 (de) Verfahren zum Vergleichen von Wortgestalten
DE2909153C2 (de) Einrichtung zur digitalen Analyse von Bild- oder Zeichenmustern
DE69624056T2 (de) Hautmuster und Fingerabdruckklassifikationssystem
DE69330582T2 (de) Aufzeichnung mit kodierten Daten
DE69523273T2 (de) Vorrichtung zum Lesen eines zweidimensionalen Codes
DE69709165T2 (de) Vorrichtung und verfahren zur dekodierung von streifencode-symbolen durch quotenanalyse der modulformate
DE3610074C2 (de)
DE69028899T2 (de) Verfahren und Vorrichtung zum Dekodieren von Strichkodes mit Mehrfachabtastung
DE69506238T2 (de) Verfahren und vorrichtung zum dekodieren von balkenkodebildern mittels mehrordnungenvektoren
DE69515461T2 (de) Simplifiziertes strichkodedekodierverfahren
DE1549930C3 (de) Einrichtung zum Erkennen vorzugsweise handgeschriebener Schriftzeichen
DE3538219C2 (de) Leseanordnung für Strichmarkierungen
DE3923449A1 (de) Verfahren zum bestimmen von kanten in bildern
DE69602735T2 (de) Verfahren und gerät zur dekodierung van streifenkodes
DE3687859T2 (de) Verfahren und geraet zum lesen von strichcode.
DE2540101A1 (de) Automatisches zeichenerkennungs- system
DE69421487T2 (de) Verfahren zum Vergleichen von Mustern basierend auf der Verwendung von Bildelementmatritzen und Bildelementvektoren
DE2256007B2 (de) Vorrichtung zur Verarbeitung kodierter Daten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: SCANTECH-ID HOLDING B.V., SOESTERBERG, NL

8339 Ceased/non-payment of the annual fee