DE60030985T2 - Verfahren zur Lokalisierung der Übergänge zwischen Teilen eines Streifenkodes - Google Patents

Verfahren zur Lokalisierung der Übergänge zwischen Teilen eines Streifenkodes Download PDF

Info

Publication number
DE60030985T2
DE60030985T2 DE60030985T DE60030985T DE60030985T2 DE 60030985 T2 DE60030985 T2 DE 60030985T2 DE 60030985 T DE60030985 T DE 60030985T DE 60030985 T DE60030985 T DE 60030985T DE 60030985 T2 DE60030985 T2 DE 60030985T2
Authority
DE
Germany
Prior art keywords
signal
video signal
transitions
code
filtering
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 - Lifetime
Application number
DE60030985T
Other languages
English (en)
Other versions
DE60030985D1 (de
Inventor
Michele Benedetti
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.)
Datalogic SpA
Original Assignee
Datalogic SpA
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 Datalogic SpA filed Critical Datalogic SpA
Application granted granted Critical
Publication of DE60030985D1 publication Critical patent/DE60030985D1/de
Publication of DE60030985T2 publication Critical patent/DE60030985T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10821Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
    • G06K7/10851Circuits for pulse shaping, amplifying, eliminating noise signals, checking the function of the sensing device
    • 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

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Electromagnetism (AREA)
  • Artificial Intelligence (AREA)
  • Toxicology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Facsimile Scanning Arrangements (AREA)
  • Controlling Rewinding, Feeding, Winding, Or Abnormalities Of Webs (AREA)

Description

  • Die Erfindung betrifft ein Verfahren zum Lokalisieren der Übergänge zwischen den Elementen eines Strichcodes.
  • In dieser Beschreibung und den folgenden Ansprüchen umfaßt der Ausdruck „Strichcode" auch die „gestapelten" Codes, d.h. solche mit mehreren übereinander angeordneten Strichfolgen.
  • Bekanntlich ist ein Strichcode ein optischer Code, der auf ein Trägermaterial, wie z.B. ein Etikett, eine Verpackung etc., aufgedruckt oder auf andere Weise aufgetragen wird und aus einer Folge dunkler, normalerweise schwarzer, rechteckiger Elemente besteht, die Striche genannt werden, die durch helle, normalerweise weiße, rechteckige Elemente voneinander getrennt sind, die Zwischenräume genannt werden. Diese Reihenfolge von Elementen wird auf beiden Seiten durch viel größere Zonen begrenzt, die man als „Ruhezonen" bezeichnet.
  • Die gewünschte Information wird in der Anzahl der vorhandenen Elemente und/oder in der Breite jedes einzelnen von ihnen codiert. Genauer gesagt, ein System zur Codierung von Informationen durch Strichcodes sieht ein Alphabet vor, dessen Symbole die Striche und Zwischenräume sind, die eine unterschiedliche Breite haben, wobei mehrere mit einer fundamentalen Breite gewöhnlich als „Codemodule" bezeichnet werden.
  • Zu den Arbeitsvorgängen, die zum Lesen eines „Wortes" erforderlich sind, d.h. der Gruppe von Symbolen aus dem besagten Alphabet, die von einem spezifischem Strichcode dargestellt wird, gehören die Beleuchtung des Codes, der Empfang des durch ihn gestreuten Lichtes mit Hilfe eines geeigneten lichtelektrischen Empfängers (Fotodetektors) und seine Umwandlung in ein elektrisches Signal sowie die Verarbeitung des elektrischen Signals und seine Interpretation oder Decodierung.
  • Die Lichtquelle kann aus LED-Dioden oder aus Lasern bestehen, während das lichtempfindliche Bauelement aus einer einzelnen Fotodiode, einem linearen CCD oder Matrix-CCD (Charge Coupled Device = ladungsgekoppelten Bauelement) oder einem C-MOS (Complementary Metal Oxide Semiconductor = komplementären Metalloxidhalbleiter) bestehen kann. Außerdem kann der Strichcode sowohl durch stationäre als auch durch tragbare Lesegeräte gelesen werden. Hinzu kommt, daß ein Teil der Arbeitsvorgänge zur Verarbeitung des elektrischen Signals sowie zu seiner Interpretation und Decodierung in einer entfernt aufgestellten Datenstation ausgeführt werden kann.
  • Bei all den oben erwähnten Arten von Lesegeräten erhält man am Ausgang des Fotodetektors ein analoges elektrisches Signal, das in der folgenden Beschreibung als „analoges Videosignal", welches die Reflexionsmodulationen der den Code entlang einer Scanlinie bildenden Elemente reproduziert, oder als „Abtastung" desselben Codes bezeichnet wird. Tatsächlich wird das Licht, mit dem der Code beleuchtet wird, durch die Striche absorbiert und durch die Zwischenräume reflektiert. Folglich hat das analoge Videosignal ein wechselndes Muster mit Spitzen an den Zwischenräumen, Tälern an den Strichen sowie mit ansteigenden und abfallenden Flanken an den Übergängen zwischen den Strichen und Zwischenräumen und umgekehrt.
  • Nach dem bisher bekannten Stand der Technik kann die nachfolgende Verarbeitung zur Decodierung des Strichcodes direkt auf dem analogen Videosignal erfolgen oder das analoge Videosignal kann vor der nachfolgenden Verarbeitung abgetastet werden, wodurch man ein „abgetastetes Videosignal" erhält, das selbstverständlich die genannten Charakteristika beibehält. Gewöhnlich wird die Verarbeitung auf dem analogen Videosignal mit Hardware-Komponenten durchgeführt, während die Verarbeitung auf dem abgetasteten Videosignal mit Hilfe von Software ausgeführt wird.
  • In der folgenden Beschreibung und in den beigefügten Ansprüchen umfaßt der Ausdruck „abgetastetes Signal" auch seine Software-Darstellung.
  • Außerdem wird der nicht näher bestimmte Ausdruck „Videosignal" dafür verwendet, um auf ein analoges oder abgetastetes Videosignal hinzuweisen, bei dem es gleichgültig ist, ob es das eine oder andere ist, wohingegen ein Videosignal – da, wo es wichtig ist – schon näher definiert werden sollte.
  • Das ideale Wechselmuster des Videosignals ist aber von mehreren nicht idealen Faktoren abhängig.
  • Ein erster nicht idealer Faktor ist auf die Tatsache zurückzuführen, daß je kleiner die Elemente sind, d.h. je höher die Auflösung des Codes ist, um so weniger sind die jeweiligen Spitzen oder Täler des Signals ausgeprägt.
  • Ein nicht idealer analoger Faktor liegt bei einem kontrastarmen Code vor, d.h. bei dem die Differenz der Helligkeit zwischen den Strichen und Zwischenräumen gering ist, was z.B. durch die Beschaffenheit des Trägermaterials bedingt ist, auf dem der Code reproduziert wird. Das Maß eines Codekontrastes wird durch sein „PCS" ausgedrückt (PCS = Printed Contrast Signal = gedrucktes Kontrastsignal), das als (Vw – Vb)/Vw definiert wird, wobei Vw die weiße Spitzenspannung und Vb die schwarze Spitzenspannung ist.
  • Ein weiterer nicht idealer Faktor wird durch das auf die Komponenten des Lesegerätes zurückzuführende Elektronenrauschen sowie durch die auf die Schwankungen bei der Codebeleuchtung zurückzuführenden Umgebungsgeräusche repräsentiert.
  • Während der Codeerkennung können die nicht idealen Faktoren des Videosignals dazu führen, daß entlang der Scanlinie ein oder mehrere schmale Elemente, die an breitere Elemente angrenzen, „übersprungen" werden oder umgekehrt dazu führen, daß sie für Elemente bzw. für Spitzen oder Täler gehalten werden, die aber in Wirklichkeit durch Rauschen bedingt sind.
  • Außerdem kann das Erfassungssignal Flecken, Abriebspuren, Speichelreste oder andere Schadstellen reflektieren, die auf dem Trägermaterial des Codes an einigen Stellen vorhanden sind. Um den dadurch verursachten Fehlern vorzubeugen, wird während der Ablesung eines Strichcodes gewöhnlich eine Mehrzahl von Abtastungen entlang unterschiedlicher Codelinien durchgeführt.
  • Ein weiterer nicht idealer Faktor kann durch die – gewöhnlich glockenförmige – unregelmäßige Hüllkurve des Videosignals entlang der Scanlinie repräsentiert werden, so daß an den Flanken des Codes die Spitzen bzw. Täler eine geringere Intensität aufweisen als im zentralen Abschnitt des Codes. Eine unregelmäßige Hüllkurve kann z.B. durch die unterschiedliche Beleuchtung der verschiedenen Codeabschnitte verursacht werden, besonders in Lesegeräten, in denen die gesamte Codebreite gleichzeitig beleuchtet wird, gewöhnlich durch eine Reihe von LED-Dioden, und/oder durch die Verluste an den Flanken des Fotodetektors, insbesondere in den obengenannten linearen Sensoren.
  • Bei der Verarbeitung und Decodierung des Videosignals kommt es darauf an, mit großer Präzision die Breite der Strichcodeelemente feststellen zu können.
  • Unter den bekannten Verfahren zur Bestimmung der Breite der Strichcodeelemente beruhen einige auf der Lokalisierung der Übergänge zwischen den Elementen des Codes, woraus dann die Breite selbiger Elemente abgeleitet wird.
  • Jedoch die bekannten Verfahren zur Lokalisierung der Übergänge zwischen den Strichcodeelementen, die sowohl durch die Hardware als auch durch die Software ausgeführt werden, sind recht kompliziert und machen als solche die Verwendung vieler Komponenten oder die Anwendung von Großraumspeichern, von Multiplikatoren und Mikroprozessoren erforderlich, die eine hohe rechentechnische Leistungsfähigkeit besitzen, wie z.B. die DPS (Digital Signal Processors = digitale Signalprozessoren).
  • Die Patentschrift US-A-6 073 849, auf die sich der Oberbegriff des Anspruchs 1 stützt, offenbart ein Verfahren zur Lokalisierung der Übergänge zwischen den Elementen eines Strichcodes. Laut diesem Dokument wird ein Eingangssignal gefiltert, das repräsentativ für die Intensität des Lichtes ist, das durch den Code gestreut wird, um die zeitliche Ableitung des Eingangssignals und die zweite zeitliche Ableitung des Eingangssignals zu erhalten. Ein erstes Vergleichstorsignal wird angesteuert, wenn das erste Ableitungssignal ein Schwellensignal positiv überschreitet, und ein zweites Vergleichstorsignal wird angesteuert, wenn das erste Ableitungssignal ein invertiertes Schwellenwertsignal negativ überschreitet. Die Nulldurchgänge des zweiten Ableitungssignals werden, wenn sie vorkommen, als gültige Übergänge angesehen, während das entsprechende erste oder zweite Vergleichstorsignal angesteuert wird.
  • Das technische Problem, das der vorliegenden Erfindung zugrunde liegt, ist das Problem der Ermöglichung der Lokalisierung der Übergänge zwischen den Elementen eines Strichcodes in einer schnellen und verläßlichen Art und Weise, und zwar auch in Lesegeräten, die für die Verarbeitung des Videosignals nur über begrenzte Möglichkeiten verfügen.
  • Bei einem ersten diesbezüglichen Aspekt betrifft die Erfindung ein Verfahren zur Lokalisierung der Übergänge zwischen den Elementen eines Strichcodes, das folgende Verfahrensschritte umfaßt:
    • a) Vorsehen eines Videosignals, das die Intensität des Lichtes repräsentiert, welches von dem Code als eine Funktion der Position entlang einer Scanlinie des Codes gestreut wird, und
    • b) Ausführung mindestens einer Filterung des Videosignals, dadurch gekennzeichnet, daß der Schritt b) das Ausführen von mindestens einer Tiefpaß-Filterung des Videosignals umfaßt, um mindestens eine tiefpaßgefilterte Version des Videosignals zu erhalten, sowie durch den weiteren Verfahrensschritt der
    • c) Durchführung mindestens eines Vergleichs zwischen einem ersten Vergleichssignal und einem zweiten Vergleichssignal, wobei das zweite Vergleichssignal eine dieser tiefpaßgefilterten Versionen des Videosignals ist, und das erste Vergleichssignal aus dem Videosignal ausgewählt wird sowie mindestens eine weitere dieser tiefpaßgefilterten Versionen des Videosignals ist, das mit einer höheren Grenzfrequenz gefiltert wurde als das zweite Vergleichssignal, wobei die Schnittpunkte zwischen den verglichenen Signalen als Übergänge zwischen den Elementen des Codes bei den jeweiligen Positionen erkannt werden.
  • Bei dieser Beschreibung wird der Kürze halber der Ausdruck „gefiltertes Signal" anstelle des Ausdrucks „tiefpaßgefilterte Version des Videosignals" verwendet.
  • In dieser Beschreibung wird der Ausdruck „stärker gefiltert" gebraucht, um anzuzeigen, daß das Signal mit einer niedrigeren Grenzfrequenz gefiltert wird. Und in dieser Bedeutung wird das Videosignal als ein Signal angesehen, das mit einer unendlich großen Grenzfrequenz gefiltert wird.
  • Tatsächlich hat der Anmelder des Patents erkannt, daß die Tiefpaßfilterung die Wirkung besitzt, die Spitze-Tal-Dynamik des Videosignals in einer Weise zu reduzieren, die sich reziprok zur Filtergrenzfrequenz verhält, aber dennoch ihren Mittelwert beibehält.
  • Gleichzeitig hat die Tiefpaßfilterung in vorteilhafter Weise die Wirkung, daß sie das Hochfrequenzrauschen unterdrückt.
  • Aus diesem Grunde kreuzen sich das Videosignal und eine ihrer gefilterten Versionen sowie zwei Versionen davon, die mit unterschiedlichen Grenzfrequenzen gefiltert wurden, genau in Bereichen mit hoher Flankensteilheit rund um den Mittelwert, d.h. an den ansteigenden und abfallenden Flanken, die beim Videosignal zu verzeichnen sind, was – wie gesagt – genau die Wellenform der Lichtstärke an den Übergängen zwischen den Strichen und Zwischenräumen darstellt.
  • Die Lokalisierung der Übergänge wird somit durch einen einfachen Vergleichsvorgang zwischen den im gleichen Verhältnis zueinander stehenden Werten der beiden Signale gewährleistet, d.h. zwischen den Werten, die die beiden Signale (analoge Signale, abgetastete/numerische Signale oder ihre Softwaredarstellungen) auf der gleichen Position in der Scanlinie aufweisen.
  • Außerdem ist zu beachten, daß die Kenntnis der Übergänge zwischen Strichen und Zwischenräumen ausreichend ist, um das Wort zu erkennen, das durch den Strichcode dargestellt wird, da die Breiten der Elemente sich aus der Entfernung zwischen den Übergängen ergeben, die z.B. durch die Subtraktion der jeweiligen Positionskoordinaten ermittelt werden, und der Typ des Elementes wird in Anbetracht der Tatsache ermittelt, daß ein Strichcode immer mit einem Strich beginnt (und endet), und daß die Elementtypen wechseln.
  • Die Erkennung des durch den Code dargestellten Wortes kann zum gleichen Zeitpunkt wie die Ausführung des Vergleichs oder später durchgeführt werden.
  • Das obengenannte Verfahren weist die Vorteile einer präzisen, stabilen, verläßlichen, schnellen und wiederholbaren Verarbeitung auf.
  • Das obengenannte Verfahren weist auch den Vorteil auf, daß es sowohl mit analogen Hardwarekomponenten als auch mit digitalen Hardwarekomponenten sowie mit Hilfe von Software ausgeführt werden kann.
  • Bei einer ersten Ausführungsform ist das Videosignal ein analoges Videosignal und die Filterung ist eine analoge Filterung.
  • In diesem Falle kann der Vergleichsschritt c) auf den analogen Signalen ausgeführt werden.
  • Als Alternative kann vorgesehen werden, die Vergleichssignale abzutasten und den Vergleichsschritt c) mit den abgetasteten Vergleichssignalen durchzuführen.
  • Um die Phasenverschiebung zwischen den Vergleichssignalen zu begrenzen, wird die analoge Filterung vorzugsweise mit einer fast konstanten Gruppenverzögerung durchgeführt.
  • Bei einer zweiten Ausführungsform ist das Videosignal ein abgetastetes Videosignal und die Filterung eine digitale Filterung.
  • Vorzugsweise gehört die digitale Filterung zum Typ der Filterung ohne Signalrückführung (FIR = finite impulse response = endliche Impulsantwort; nichtrekursiv) mit linearer Phase.
  • Eine Filterung dieses Typs ist gleichbedeutend mit der Ermittlung eines gewichteten Mittelwertes der Intensitätswerte einer bestimmten Anzahl – die als „Ordnung" der Filterung bezeichnet wird – von Abtastwerten unter den in Betracht gezogenen Abtastwerten und denjenigen, die ihnen benachbart sind. Wenn sich die Anzahl der Abtastwerte erhöht, erhöht sich auch die Intensität der Filterung. Die Abtastwerte können alle anschließend bzw. alle vorher ermittelt worden sein oder eine Kombination von beiden sein.
  • Das Verfahren, das auf lokalen Mittelwerten beruht, ist u.a. für abgetastete Videosignale mit variabler Hüllkurve geeignet, wie für diejenigen, die durch lineare Sensoren erzeugt werden.
  • Es ist zu beachten, daß das Fehlen einer Filterung, d.h. die Verwendung des beim Verfahrensschritt a) vorgesehenen abgetasteten Videosignals in dem Verfahrensschritt c), auch als eine Filterung erster Ordnung angesehen werden kann. Das kann bei einer parametrischen Implementierung besonders vorteilhaft sein.
  • Noch vorteilhafter ist die Filterung, die zum Typ der FIR-Filterung mit gleichem Koeffizienten gehört.
  • Mit anderen Worten, die Abtastwerte werden durch eine Rechenoperation zur Bestimmung des nicht gewichteten Mittelwertes gemittelt. Das ermöglicht die Reduzierung der Multiplikationsoperationen, folglich also die Vereinfachung des digitalen Schaltkreises oder der Software und die Beschleunigung der Berechnung.
  • Sogar noch mehr ist es vorzuziehen, wenn die Filterung zum FIR-Typ mit Einheitskoeffizienten gehört.
  • Das ermöglicht es, insgesamt die beschwerlichen Multiplikationsoperationen zu vermeiden und somit einen gerätetechnischen Multiplikator überflüssig zu machen und die Software noch weiter zu vereinfachen. So wird der Filterungsvorgang schnell, um z.B. zu ermöglichen, daß das Verfahren durch einen Mikrokontroller realisiert wird, der eine moderate Verarbeitungsleistung aufweist.
  • Sogar noch vorteilhafter ist es, wenn die FIR-Filterung in einer Ordnung erfolgt, die gleich einer Potenz der Basis ist, in welcher das abgetastete Videosignal ausgedrückt wird, insbesondere gleich einer Zweierpotenz.
  • Diese Vorkehrung ermöglicht eine noch stärkere Beschleunigung der Filterung, da die Teilung durch die Anzahl der Abtastwerte in einem Stellenverschiebungsvorgang bestehen kann, insbesondere in einem Bitverschiebungsvorgang, wie z.B. durch ein Schieberegister oder eine äquivalente Software-Verarbeitung.
  • Auf eine besonders bevorzugte Weise wird die Filterung während der Durchführung des Vergleichsverfahrenschrittes Abtastwert für Abtastwert durchgeführt.
  • Das ermöglicht es, die erforderliche Speicherkapazität drastisch zu reduzieren.
  • Bei beiden Ausführungsformen kann das Verfahren für jeden Vergleich des Schrittes c) weiterhin folgende Verfahrensschritte umfassen:
    • d) Einordnen eines Übergangs, der im Schritt c) als gültig erkannt wird, wenn in wenigstens einer Position, die dem nachfolgenden Übergang vorangeht, der in der entgegengesetzten Richtung erfolgt und im Schritt c) erkannt wird, der absolute Wert der Differenz zwischen den Vergleichssignalen größer ist als eine voreingestellte Schwellwertgröße.
  • Der Ausdruck „Richtung" eines Übergangs wird verwendet, um anzuzeigen, ob der Übergang abfallend ist, d.h. ob das erste Vergleichssignal sich von einem Signal, das höher als das zweite Vergleichssignal ist, zu einem Signal wandelt, das niedriger als jenes ist, oder ob der Übergang ansteigend ist, d.h., ob das erste Vergleichssignal sich von einem Signal, das niedriger als das zweite Vergleichssignal ist, zu einem Signal wandelt, das höher als jenes ist.
  • Auf diese Weise wird eine Hysterese in die Erkennung der Übergänge eingeführt, die die Erkennung dem Überschreiten einer zu prüfenden Schwelle unterordnet (höher bzw. niedriger als das zweite Vergleichssignal), um so zu verhindern, daß die durch das Rauschen bedingten, kleinen Welligkeiten als Übergänge angesehen werden.
  • Bei Schritt d) kann die Gegenprobe, ob der absolute Differenzwert größer als der Schwellwert ist, dadurch ausgeführt werden, daß für die in Betracht kommenden Positionen ein Referenzsignal vorgesehen wird, das eine Intensität hat, die der Intensität des zweiten Vergleichssignals entspricht, das durch den Schwellwert jeweils entweder vergrößert oder verringert wird, und das Vergleichssignal mit dem Bezugssignal vergleicht.
  • Außerdem ist es von Vorteil, wenn die Schwellwertgröße variabel ist.
  • Insbesondere die Schwellwertgröße für Positionen, die Punkten in den Ruhezonen des Codes entsprechen, ist größer als die Schwellwertgröße für Positionen innerhalb des Codes.
  • Der Ausdruck „Ruhezonen" wird dafür verwendet, um die erweiterten weißen Zonen anzuzeigen, die an den Rändern eines Strichcodes vorhanden sind.
  • Auf diese Weise wird die Tatsache in Betracht gezogen, daß das Signal-Rausch-Verhältnis in den Ruhezonen gewöhnlich geringer als innerhalb des Codes ist.
  • Die Grenzen der Ruhezonen können mit bekannten Codelokalisierungsverfahren ermittelt werden.
  • Jedoch der Schwellwertschnittpunkt, der im Schritt d) vorgesehen ist, führt schon an sich zu einer Identifizierung der Grenzen der Ruhezone.
  • Wenn nur der Code zu lokalisieren ist, reicht es aus, für jeden Vergleich des Schrittes c) die folgenden Schritte zu gewährleisten:
    • e1) Ablehnen aller Übergänge, die in dem Schritt c) als Positionen erkannt werden, die der ersten Position vorangehen, wobei die Differenz zwischen dem ersten Vergleichssignal und dem zweiten Vergleichssignal größer ist als eine voreingestellte Schwellwertgröße, außer für den Übergang, der der unmittelbar vorhergehenden Position entspricht, und
    • e2) Ablehnen aller Übergänge, die in dem Schritt c) als Positionen erkannt werden, die der letzten Position nachfolgen, wobei die Differenz zwischen dem ersten Vergleichssignal und dem zweiten Vergleichssignal größer ist als die voreingestellte Schwellwertgröße, außer für den Übergang, der der unmittelbar nachfolgenden Position entspricht.
  • Wenn in Schritt b) mindestens zwei Filterungsvorgänge durchgeführt werden und in Schritt c) mindestens zwei Vergleiche ausgeführt werden, kann das Verfahren außerdem weiterhin die folgenden Schritte umfassen:
    • f1) Vergleichen der Gruppen der Übergänge, die während der Vergleiche des Schrittes c) erhalten werden; und
    • f2) Auswählen der am meisten geeigneten Gruppe von Übergängen für die Decodierung.
  • Als Alternative werden alle Gruppen von Übergängen, die in den Vergleichen des Schrittes c) erhalten werden, für die Decodierung vorgesehen.
  • Bei einer besonders bevorzugten Ausführungsform werden in zunehmendem Maße stark gefilterte Signale, einschließlich des Fehlens einer Filterung, paarweise verglichen, wobei jedes mit intermediärer Stärke gefilterte Signal zwei Vergleichen unterzogen werden kann.
  • Die verschiedenen Vergleiche werden vorzugsweise parallel durchgeführt, und zwar Abtastwert für Abtastwert.
  • Als Alternative oder Ergänzung kann das Verfahren weiterhin folgende Schritte umfassen:
    • g) mindestens einmaliges Wiederholen der vorhergehenden Schritte für ein entsprechendes Videosignal eines nachfolgenden Codescans,
    • g11) Vergleichen der Gruppen der Übergänge, die während der Vergleiche des Schrittes c) erhalten wurden; und
    • g12) Auswählen der am meisten geeigneten Gruppe der Übergänge zum Decodieren.
  • Indem somit eine analoge Verarbeitung der Signale gewährleistet wird, die unterschiedlichen Scanlinien entsprechen, ermöglicht das Verfahren die Ablehnung von Scheinübergängen, die z.B. auf Codestörstellen in einigen Bereichen oder auf zeitweilige Ablesefehler zurückzuführen sind, die z.B. durch eine Unvollkommenheit bei der Codefokussierung oder eine Ungleichmäßigkeit des Umgebungslichtes und so weiter verursacht werden.
  • Ersatzweise für die Schritte g11 und g12 können alle Gruppen von Übergängen, die bei den Vergleichen des Schrittes c) erhalten werden, zum Decodieren vorgesehen werden.
  • Als Alternative oder Ergänzung können die weiteren folgenden Schritte durchgeführt werden:
    • g) mindestens einmaliges Wiederholen der vorhergehenden Schritte für ein entsprechendes Videosignal eines nachfolgenden Codescans,
    • g21) Bewerten statistischer Parameter, die sich auf das Videosignal und/oder auf die Gruppen der erkannten Übergänge beziehen; und
    • g22) Einstellen von Betriebsparametern für eine nachfolgende Iteration basierend auf den statistischen Parametern, die in der vorhergehenden Iteration ausgewertet wurden.
  • Dadurch, daß das Verfahren eine Rückkopplung während der Verarbeitung der Signale gewährleistet, die unterschiedlichen Linien entlang des Codes entsprechen, ist es äußerst zuverlässig, da es sich selbst regeln kann.
  • Insbesondere die statistischen Parameter können das absolute Minimum, das absolute Maximum und den Spitzen-zu-Spitzen-Pegel des digitalen Videosignals, das Modul und das PCS des optischen Codes und das minimale Signal-Rausch-Verhältnis des digitalen Videosignals umfassen.
  • Diese statistischen Angaben können dafür verwendet werden, um die zu verwendenden Grenzfrequenzpaare (insbesondere die FIR-Filterordnungen) und die Anzahl der durchzuführenden Vergleiche und die Werte der Schwellengröße vorzugeben.
  • Bei einem weiteren Aspekt betrifft die Erfindung ein Verfahren zum Lokalisieren eines Strichcodes, das die oben angeführten Schritte a), b) und c) umfaßt, wobei der Schritt c) folgende Verfahrensschritte umfaßt:
    • e1) Ablehnen aller im Schritt c) erkannten Übergänge, die Positionen entsprechen, welche der ersten Position vorangehen, wobei die Differenz zwischen dem ersten Vergleichssignal und dem zweiten Vergleichssignal größer ist als eine voreingestellte Schwellwertgröße, außer für den Übergang, welcher der unmittelbar vorhergehenden Position entspricht, und
    • e2) Ablehnen aller Übergänge, die im Schritt c) erkannt wurden und Positionen entsprechen, die der letzten Position nachfolgen, wobei die Differenz zwischen dem ersten Vergleichssignal und dem zweiten Vergleichssignal größer ist als die voreingestellte Schwellwertgröße, außer für den Übergang, welcher der unmittelbar nachfolgenden Position entspricht.
  • Wie zu sehen war, ist das obengenannte Verfahren besonders zur Umsetzung durch ein Verarbeitungsprogramm geeignet, da es in bezug auf eine Parametrisierung, Gestaltung, Erweiterung und Prüfung sehr flexibel ist.
  • In der vorliegenden Beschreibung und in den beigefügten Ansprüchen bezeichnet der Ausdruck „Verarbeitungsprogramm" eine Software, die dafür geeignet ist, sowohl in einem Computer als auch in einem Mikrokontroller zur Anwendung zu kommen.
  • Folglich betrifft die Erfindung in einem weiteren Aspekt ein Verarbeitungsprogramm, das Programmcodemittel aufweist, die dafür geeignet sind, die Verfahrensschritte des oben beschriebenen Verfahrens auszuführen, wenn das Programm in einem Computer abgearbeitet wird.
  • Auf eine besonders bevorzugte Weise wird das Programm in einem Mikrokontroller gespeichert.
  • Da das oben veranschaulichte Verfahren einfache Operationen erforderlich macht, reicht ein Mikrokontroller mit geringer Leistungsfähigkeit aus, wodurch weitere Vorteile hinsichtlich der Kosten erzielt werden.
  • Als eine Alternative, und zwar besonders dann, wenn der Verfahrensschritt zur Erkennung des durch den Code dargestellten Wortes in einer vom Strichcodelesegerät entfernt aufgestellten Station erfolgt, wird das Programm in einem Computerspeicher oder in einem Nur-Lese-Speicher gespeichert oder auf einem elektrischen Trägersignal übertragen, und zwar dann, wenn es in einem Computernetz ausgestrahlt wird, unter anderem also auch im Internet.
  • Bei einem weiteren Aspekt davon betrifft die Erfindung weiterhin einen elektronischen Schaltkreis, der Schaltkreismittel zur Ausführung von Schritten des obengenannten Verfahrens umfaßt.
  • Der elektronische Schaltkreis kann nur analoge Komponenten, nur digitale Komponenten oder sowohl analoge als auch digitale Komponenten umfassen.
  • Bei einem weiteren Aspekt davon betrifft die Erfindung weiterhin ein Strichcodelesegerät, das einen elektronischen Schaltkreis oder einen Mikrokontroller umfaßt, der das Verarbeitungsprogramm speichert.
  • Die Charakteristika und Vorteile der Erfindung werden jetzt in bezug auf Ausführungsformen veranschaulicht, die anhand eines einschränkungslosen Beispiels auf den beigefügten Zeichnungen gezeigt werden. Auf diesen Zeichnungen zeigt:
  • 1 als Blockschaltbild die Grundsätze des erfindungsgemäßen Verfahrens,
  • 2 ein Blockschaltbild, das ein digitales FIR-Filter (nichtrekursives Filter) mit linearer Phase darstellt,
  • 3 ein Beispiel für ein Videosignal und für dessen Versionen, die mit digitalen FIR-Filtern mit Einheitskoeffizienten gefiltert werden, die unterschiedlichen Ordnungen angehören,
  • 4 ein Beispiel für einen Strichcode und zwei Signale, von denen mindestens ein Signal gefiltert und gemäß dem Verfahren der Erfindung verglichen wird,
  • 5 ein Flußdiagramm, das der Beschreibung einer Ausführungsform des erfindungsgemäßen Verfahrens dient,
  • 6 ein weiteres Beispiel für zwei Signale, von denen mindestens ein Signal gefiltert und gemäß dem Verfahren der Erfindung verglichen wird,
  • 7 ein Flußdiagramm, das der Beschreibung einer weiteren Ausführungsform des erfindungsgemäßen Verfahrens dient,
  • 8 ein weiteres Beispiel für zwei Signale, von denen mindestens ein Signal gefiltert und gemäß einer Ausführungsform des erfindungsgemäßen Verfahrens verglichen wird, das geeignet ist, die Grenzen der Ruhezonen eines Strichcodes zu erkennen, und
  • 9 das Prinzipschema einer Ausführungsform des Verfahrens, in der mehrere Vergleiche zwischen Signalen durchgeführt werden, von denen mindestens ein Signal gefiltert wird.
  • Bezüglich der 1 wird in dem Verfahren zur Lokalisierung der Übergänge zwischen den Elementen eines Strichcodes zuerst ein analoges oder abgetastetes Videosignal S vorgesehen.
  • Das Videosignal S ist gewöhnlich die durch den Fotodetektor eines Strichcodelesegerätes erfolgende analoge Signalausgabe oder das auf eine an sich bekannte Art und Weise zustande gekommene, abgetastete Videosignal. Selbstverständlich werden die Abtastfrequenz und die Auflösung der Quantisierung richtig ausgewählt, so daß die Abtastwerte des abgetasteten Videosignals S genau die Intensität des Lichtes darstellen, das durch den Code entlang der Abtastung zerstreut wird.
  • Das Videosignal S wird einem ersten Tiefpaßfilter 1 zugeführt, der eine erste Grenzfrequenz ωa aufweist.
  • Außerdem wird das Videosignal S einem zweiten Tiefpaßfilter 2 zugeführt, das eine zweite Grenzfrequenz ωb aufweist, wobei ωb < ωa.
  • Das am Ausgang gefilterte Signal Fa des ersten Filters 1 wird einem ersten Eingang oder positiven Eingang der Vergleichseinrichtung 3 zugeführt.
  • Als Alternative wird das Videosignal S, wie durch die gestrichelte Linie dargestellt, direkt dem ersten Eingang der Vergleichseinrichtung 3 zugeführt.
  • In der folgenden Beschreibung wird das erste zur Vergleichseinrichtung 3 gelangende Eingangssignal als erstes Vergleichssignal A bezeichnet und das zweite zur Vergleichseinrichtung 3 gelangende Eingangsignal wird als zweites Vergleichssignal B bezeichnet. Die Schnittpunkte zwischen den Vergleichssignalen A und B werden durch die Tatsache ermittelt, daß die Differenz zwischen Signalen das Zeichen ändert.
  • Wie durch die gestrichelte Linie angezeigt wird, kann ein Abtastabschnitt 3' oberhalb der Vergleichseinrichtung eingefügt werden.
  • Im Falle eines analogen Videosignals S sind die Tiefpaßfilter 1 und 2 vorzugsweise verzerrungsarme analoge Filter, d.h. Filter mit einer fast konstanten Gruppenverzögerung im Betriebsfrequenzband, wie z.B. die Tschebyscheff-Filter fünfter Ordnung oder Schaltkondensatorfilter.
  • Die analogen Vergleichssignale A und B können der Vergleichseinrichtung 3 direkt zugeführt werden, die in dem Falle eine analoge Vergleichseinrichtung sein muß.
  • Der Ausgang der Vergleichseinrichtung 3 ist eine Rechteckwelle mit ansteigenden und abfallenden Flanken an den Schnittpunkten zwischen den Signalen, die an ihren Eingängen anliegen. Für das weitere Verständnis ist davon auszugehen, daß die Schnittpunkte den Übergängen zwischen den Codeelementen entsprechen, die dadurch lokalisiert werden.
  • Als Alternative können die analogen Vergleichssignale A und B dem Abtastabschnitt 3' und dann der Vergleichseinrichtung 3 zugeführt werden, die in dem Falle eine digitale Vergleichseinrichtung sein muß, und zwar entweder als Gerät oder durch einen geeigneten Teil eines Softwareprogramms mit Hilfsmitteln versehen.
  • Der Ausgang der Vergleichseinrichtung 3 ist noch repräsentativ für die Schnittpunkte zwischen den Signalen, die an ihrem Eingang anliegen, nämlich für die Übergänge zwischen den Codeelementen.
  • Andererseits sind die Tiefpaßfilter 1 und 2 im Falle eines abgetasteten Videosignals S digitale Filter oder deren Implementierung durch den geeigneten Teil eines Softwareprogramms. In diesem Falle fehlt selbstverständlich der Abtastabschnitt 3'.
  • Die digitalen Tiefpaßfilter 1 und 2 sind vorzugsweise FIR-Filter mit linearer Phase. Ein FIR-Filter der Ordnung N mit linearer Phase führt einen Vorgang der Mittelwertbildung zwischen dem in Betracht kommenden Abtastwert und N – 1 Abtastwerten durch, die an ihn angrenzen. Wenn sich die Ordnung N der Filterung erhöht, verringert sich die Grenzfrequenz ω der Filterung. Folglich muß das Filter 1 eine geringere Filterungsordnung Na haben als die Filterungsordnung Nb des Filters 2.
  • Beispielsweise zeigt die 2 die Implementierung eines FIR-Filters der Ordnung N durch digitale Hardware-Komponenten. Das Eingangssignal I wird den N – 1 Verzögerungsblöcken 4, 5, ..., 6 zugeführt, deren Ausgangsleistungen in entsprechenden Verstärkern 7, 8, ..., 9 durch entsprechende Koeffizienten a1, a2, ..., a(N – 1) verstärkt werden. Das Eingangssignal I und die Ausgangsleistungen der Verstärker 7, 8, ..., 9 werden dann in einem Addierknotenpunkt 10 addiert und dann durch die Ordnung N des Filters in einem Block 11 dividiert.
  • Selbstverständlich können die Abtastwerte, mit denen jeder Abtastwert gemittelt wird, auf andere Weise aus den nachfolgenden N – 1 Abtastwerten ausgewählt werden, die in 2 gezeigt werden. So z.B. können sie die vorhergehenden N – 1 Abtastwerte oder die N/2 vorangehenden Abtastwerte und die N/2 – 1 nachfolgenden Abtastwerte sein.
  • Sollte es nicht erforderlich sein, eine gewichtete Mittelwertbestimmung durchzuführen, haben die FIR-Filter 1 und 2 gleiche Koeffizienten, und zwar vorzugsweise einheitliche.
  • Was das Schaltbild der 2 anbetrifft, so entspricht das der Ersetzung der Verstärker 7, 8, ..., 9 durch einen einzigen dem Addierknotenpunkt 10 unmittelbar vorgeschalteten Verstärker (nicht abgebildet) oder einfach ihrer Beseitigung.
  • Bei der bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens wird außerdem die Größenordnung der Filter 1 und 2 so ausgewählt, daß sie gleich einer Potenz der Basis ist, in welcher die digitalen Werte ausgedrückt werden, und zwar gewöhnlich gleich einer Zweierpotenz.
  • Was das Schaltbild der 2 anbetrifft, so entspricht das der Ersetzung des Divisionsblocks 11 durch eine Stellenverschiebung, insbesondere durch eine Bitverschiebung.
  • Wie zuvor erwähnt, können die Tiefpaßfilter 1 und 2 mit Hilfe von Software-Anweisungen implementiert werden.
  • Bei dieser Implementierung kann z.B. der FIR-Filterungsvorgang der Ordnung N durch die folgende Gleichung (1) ausgedrückt werden: F(i) = Σ[I(j)a(j)]/Nin der F (i) den Abtastwert ith des gefilterten Signals anzeigt sowie I(j) den Abtastwert ith des Eingangssignals anzeigt, während a(j) die Koeffizienten oder Gewichte anzeigen, die den einzelnen gemittelten Abtastwerten zugewiesen sind, wobei a(j) = 1 bei der bevorzugten Ausführungsform des Verfahrens der vorliegenden Erfindung zu verzeichnen ist, und die Summierung ist als erweitert gegenüber den N Abtastwerten zu betrachten, die den Abtastwert ith und die ihm benachbarten N – 1 Abtastwerte umfassen.
  • An einem Beispiel zeigt die 3 bei a) das Muster des abgetasteten Videosignals S sowie bei b), c) und d) dessen gefilterte Versionen, und zwar durch ein FIR-Filter mit Einheitskoeffizienten mit ansteigender Ordnung von b) bis d). Um es noch genauer zu sagen, bei b) liegt ein gefiltertes Signal der 4. Ordnung vor, bei c) ein gefiltertes Signal der 8. Ordnung und bei d) ein gefiltertes Signal der 16. Ordnung.
  • Die 3 zeigt mehr im allgemeinen die Muster eines digitalen oder analogen Videosignals S sowie der Signale, die mit digitalen bzw. analogen Tiefpaßfiltern erlangt wurden.
  • Es kann festgestellt werden, daß, wenn die Filterungsordnung zunimmt, oder allgemeiner ausgedrückt, wenn die Grenzfrequenz der Filterung abnimmt, die Filterung immer stärker wird, das heißt, daß die gefilterten Signale eine zunehmend geringere Dynamik des Spitze-zu-Tal-Verhältnisses in bezug auf die Dynamik des ursprünglichen Signals aufweisen, das immer noch – auch örtlich – den gleichen Mittelwert beibehält.
  • Außerdem kann die zunehmende Rauschunterdrückung bei ansteigender Filterungsordnung oder – um es allgemeiner auszudrücken – bei abnehmender Grenzfrequenz abgeschätzt werden.
  • Folglich werden am Ausgang der Vergleichseinrichtung 3 die Signalpaare unter denjenigen, die in der 3 gezeigt werden, dazu tendieren, einander in den Zonen mit großer Steilheit rund um den Mittelwert zu überschneiden, nämlich an den ansteigenden und abfallenden Flanken, die den Übergängen zwischen den Strichen und Zwischenräumen entsprechen.
  • An einem Beispiel zeigt die 4 einen Strichcode 12 und zwei relevante Signale A und B. Wie oben erläutert wurde, kann das mit A bezeichnete Signal ein gefiltertes Signal oder das nicht gefilterte Videosignal S sein.
  • Wie festgestellt werden kann, überschneiden sich die Signale A und B an den Punkten P0, P1, P2, ..., P3, die den Übergängen zwischen den Strichen 13 und Zwischenräumen 14 des Codes 12 entsprechen. Das Bezugszeichen 15 zeigt als Rechteckwelle den Ausgang der Vergleichseinrichtung 3 an.
  • Es kann davon ausgegangen werden, daß für Zwecke der Lokalisierung der Übergänge zwischen den Elementen eines Codes durch die Lokalisierung der Schnittpunkte zwischen den Vergleichssignalen A und B die Grenzfrequenzen oder besonders die Filterungsordnungen, zu denen auch das Fehlen einer Filterung (Ordnung eins) zählt, richtig ausgewählt werden sollten.
  • Je höher besonders die Codeauflösung und je breiter das Band des Videosignals S ist, um so mehr sollte folglich, um eine Verzerrung zu verhindern, das erste Vergleichssignal A nicht gefiltert oder gemäß einer niedrigen Ordnung Na gefiltert werden (allgemeiner ausgedrückt, mit einer hohen Grenzfrequenz). Und auch das zweite Vergleichssignal B sollte entsprechend einer niedrigen Ordnung Nb (hohe Grenzfrequenz) gefiltert werden. Dagegen sollte, wenn die Codeauflösung niedrig ist, eine hohe Filterungsordnung Nb (niedrige Grenzfrequenz) zumindest für das zweite Vergleichssignal B verwendet werden.
  • Eine Filterung gemäß einer hohen Ordnung (niedrige Grenzfrequenz) ist außerdem dann richtig, wenn ein Videosignal S starke Störstellen aufweist, wohingegen eine Filterung gemäß einer niedrigen Ordnung (hohe Grenzfrequenz) dann richtig ist, wenn ein kontrastarmes Videosignal S vorliegt.
  • Die 5 zeigt ein Flußdiagramm, das Bezug auf eine bevorzugte Software-Implementierung nimmt, wenn ein abgetastetes Videosignal verwendet wird.
  • Das abgetastete Videosignal S kann z.B. durch einen eindimensionalen Bereich dargestellt werden, wenn die Entfernung zwischen den Abtastwerten, das Abtastintervall, entlang der Abtastzeile konstant ist, sowie durch einen zweidimensionalen Bereich, wenn die Entfernung zwischen den Abtastwerten nicht konstant ist, oder durch andere geeignete Strukturen.
  • Auf dem Flußdiagramm der 5 ist die Variable i der Index, der die Position entlang der Abtastzeile bestimmt, und X (i) zeigt den Wert eines Signals X auf der Position an, die durch den Wert des Indexes i dargestellt wird.
  • Am Start, der durch den Block 16 dargestellt wird, wird der Index i bei einem Initialisierungsblock 17 auf Null eingestellt.
  • Außerdem wird im Block 17 eine Variable TARGET (Ziel), die den Übergangstyp bestimmt, auf einen Wert eingestellt, der den Ausdruck „abfallende Flanke" repräsentiert. Da ein Strichcode immer mit einem Strich beginnt, ist in Wirklichkeit der erste Übergang, nach dem zu suchen ist, ein abfallender Übergang, d.h. ein Punkt, auf dem das erste Vergleichssignal A sich von einem Signal, das höher als das zweite Vergleichssignal B ist, zu einem Signal wandelt, das niedriger als jenes ist.
  • Dann läuft ein Zyklus ab, in dem der Index i in einem Block 18 inkrementiert und die Beendigung der Verarbeitung in einem Block 19 geprüft wird, d.h. ob der Index i höher als sein Höchstwert imax ist, und wenn das so ist, am Ende von Block 20 der Ausgang erreicht wird.
  • Wenn die Verarbeitung nicht geendet hat, werden die Werte bei dem Abtastwert ith der beiden auf die oben erläuterte Weise ausgewählten Signale A(i) und B(i) in einem Block 21 ausgewertet. Insbesondere die FIR-Filterungsvorgänge werden im Block 21 mit Hilfe des oben angegebenen Ausdrucks (1) gemäß den jeweiligen Ordnungen Na > = 0 durchgeführt, wobei der Fall Na = 0 das Fehlen einer Filterung darstellt, nämlich A(i) = S(i), und mit Nb > Na.
  • Es sollte beachtet werden, daß die Abtastung für Abtastung erfolgende Filterung im Block 21 innerhalb des Zyklus von Vorteil ist, da sie nicht die Speicherung aller Werte der Signale A und B der gesamten Abtastung erforderlich macht, sondern nur des Wertes der zur Erlangung der Filterung benötigten Abtastungen des Videosignals S, die eine viel kleinere Anzahl (Na, Nb im Falle einer FIR-Filterung) als die Werte der gesamten Abtastung ausmachen. Das gewährleistet, daß eine extrem verringerte Speicherung und reduzierte Berechnungsmittel ausreichend sind, und ermöglicht eine Echtzeitverarbeitung des Videosignals S.
  • Danach wird in dem Entscheidungsblock 22 die Variable TARGET (Ziel) auf einen Wert der „abfallenden Flanke" hin überprüft.
  • Sollte er vorliegen, wie bei der Iteration des ersten Zyklus, wird in einem Block 23 geprüft, ob das erste Vergleichssignal unter das zweite Vergleichssignal fällt, d.h. ob A(i) weniger als B(i) ist.
  • Sollte das nicht der Fall sein, erfolgt die Rückkehr zum Inkrementblock 18 von Index i.
  • Sollte es aber der Fall sein, überschneiden sich die Signale A und B, d.h. es liegt ein abfallender Übergang vor (Punkt P0 in der 4). Aus diesem Grunde wird in Block 24 der Wert des Index i in einer Gruppe von Übergängen gespeichert, die durch eine geeignete Variable repräsentiert wird, vorzugsweise eine LIFO Struktur.
  • Da bei einem Strichcode nach einem Strich immer ein Zwischenraum folgt, ist der nächste Übergang, nach dem zu suchen ist, ein aufsteigender Übergang. Vor der Rückkehr zum Block 18 des Inkrements des Index i wird der Wert der Variablen TARGET somit in einem Block 25 zu einem Wert gewandelt, der den Ausdruck „ansteigende Flanke" repräsentiert.
  • Bei der nächsten Iteration des Entscheidungsblocks 22 wird das Ergebnis somit negativ ausfallen und es erfolgt der Eintritt in den rechten Zweig in 5, und zwar analog zum schon beschriebenen linken Zweig.
  • In Wirklichkeit wird im Block 26 geprüft, ob das erste Vergleichssignal über das zweite Vergleichssignal ansteigt, d.h. ob A(i) größer als B(i) ist.
  • Sollte das nicht der Fall sein, erfolgt die Rückkehr zum Inkrementblock 18 von Index i.
  • Sollte es aber der Fall sein, überschneiden sich die Signale A und B, d.h. es liegt ein ansteigender Übergang vor (Punkt P1 in der 4). Aus diesem Grunde wird im Block 27 der Wert des Index i in der Gruppe von Übergängen gespeichert, und im Block 28 wird die Variable TARGET (Ziel) zum Wert der „abfallenden Flanke" wiederhergestellt.
  • Es sollte offenkundig sein, daß die Gruppe von Bedingungen, die in den Entscheidungsblocks 22, 23 und 26 zum Ausdruck kommt, in einer anderen Verfahrensordnung als der abgebildeten Ordnung erfüllt werden kann.
  • Außerdem wird die Verwendung der Variablen TARGET – wie schon gesagt – bevorzugt, ist aber nicht obligatorisch. Da die Codes immer mit einem Strich beginnen, kann der Übergangstyp tatsächlich durch die Anzahl der Übergänge erkannt werden, die schon in der relevanten Gruppe als gerade oder ungerade gespeichert sind.
  • Beim ersten Vergleichssignal A (nicht gefiltert oder mit einer niedrigen Ordnung gefiltert) kann es immer noch Schwingungen um das zweite Vergleichssignal B geben, die keine Übergänge im Strichcode darstellen.
  • Um eine Fehlerkennung der Schnittpunkte zwischen den Signalen A und B zu verhindern, die auf diese Störschwingungen zurückzuführen sind, ist die unten beschriebene Ausführungsform des erfindungsgemäßen Verfahrens von besonderem Vorteil.
  • Unter Bezugnahme auf die 6 entsprechen die Schnittpunkte P0, P1, P2, P5, P8 und P9 zwischen den Vergleichssignalen A und B tatsächlich den Übergängen zwischen den Elementen des Codes.
  • Andererseits sind die Schnittpunkte P3, P4 sowie P6, P7 auf unerwünschte Spitzen und Täler zurückzuführen.
  • Um die Erkennung solcher Schnittpunkte als Übergänge zu vermeiden, ist es gemäß der Erfindung vorgesehen, einen als Übergang erkannten Schnittpunkt dann als gültig anzusehen, wenn bei mindestens einer Position, die dem nachfolgenden Übergang in der entgegengesetzten Richtung vorangeht, der absolute Wert der Differenz zwischen den Vergleichssignalen größer ist als eine voreingestellte Schwellwertgröße.
  • Mit anderen Worten ein abfallendes Bezugssignal B1 und ein ansteigendes Bezugssignal B2 werden als Signale angesehen, die eine Intensität aufweisen, die der Intensität des zweiten Vergleichssignal B entspricht, das durch eine Schwellwertgröße Δ jeweils verringert und vergrößert wird.
  • Das erste Vergleichssignal A wird mit dem abfallenden Bezugssignal B1 für abfallende Übergänge sowie mit dem ansteigenden Bezugssignal B2 für ansteigende Übergänge verglichen.
  • Ein abfallender bzw. ansteigender Übergang wird abgelehnt, wenn es in einer Position, die dem nachfolgenden ansteigenden bzw. abfallenden Übergang vorangeht, nicht mindestens einen Schnittpunkt zwischen dem ersten Vergleichssignal A und dem abfallenden Bezugssignal B1 bzw. dem ansteigenden Bezugssignal B2 gibt.
  • Deshalb wird der ansteigende Übergang in P1 akzeptiert, da vor dem abfallenden Übergang in P2 das Signal A das Signal B2 in den Punkten P11 und P12 kreuzt. Der abfallende Übergang in P2 wird akzeptiert, da vor dem ansteigenden Übergang in P3 das Signal A das Signal B1 in den Punkten P21 und P22 kreuzt. Dagegen wird der ansteigende Übergang in P3 abgelehnt, da vor dem abfallenden Übergang in P4 das Signal A nicht das Signal B2 kreuzt.
  • Der abfallende Übergang in P4 wird ignoriert, da nach dem abfallenden Übergang in P2 nach einem ansteigenden Übergang gesucht wird.
  • Der ansteigende Übergang in P5 wird akzeptiert, da vor dem abfallenden Übergang in P6 das Signal A das Signal B2 in den Punkten P51 und P52 kreuzt. Der abfallende Übergang in P6 wird ignoriert, da vor dem Übergang in P7 das Signal A nicht das Signal B1 kreuzt. Der ansteigende Übergang in P7 wird ignoriert, da nach einem abfallenden Übergang gesucht wird. Und schließlich wird der Übergang in P8 akzeptiert, da vor dem ansteigenden Übergang in P9 das Signal A das Signal B1 in den Punkten P81 und P82 kreuzt.
  • Im wesentlichen wird in die Erkennung der Übergänge eine Hysterese eingeführt, die die Erkennung einer jeweils höheren oder niedrigeren Schwelle als das zweite Vergleichssignal unterordnet, die gekreuzt wird, um so zu verhindern, daß die kleinen Restwelligkeiten des Videosignals als Übergänge angesehen werden, die in den Vergleichssignalen A und B enthalten und auf Geräusche zurückzuführen sind.
  • Diese Ausführungsform des Verfahrens der Erfindung wird unter Bezugnahme auf dessen Software-Implementierung beschrieben, Fachleute aber werden verstehen, daß es ebenso durch analoge und digitale Hardwarekomponenten implementiert werden kann. So z.B. könnten im analogen Falle zwei Vergleichseinrichtungen vorgesehen werden, denen die beiden Vergleichssignale A und B zugeführt werden, wobei eine von ihnen eine Vergleichseinrichtung mit Hysterese ist und die Ausgänge der beiden Vergleichseinrichtungen gemäß einer logischen UND-Operation miteinander verbunden sind.
  • Das Blockschaltbild der 7 zeigt eine dem Blockschaltbild der 5 analoge Struktur eines Zyklus, in der identische Blöcke mit den gleichen Bezugszeichen numeriert sind, und deshalb wird es nicht im Detail beschrieben.
  • Neben der Initialisierung des Index i und der Variablen TARGET wird im Initialisierungsblock 17a ein PTA-Merker (PTA = Potential Transition Available = Potentieller Übergang vorhanden) auf den logischen Wert FALSCH gestellt, wodurch darauf hingewiesen wird, daß keine potentiellen Übergänge vorhanden sind, wie im weiteren noch besser verstanden werden wird.
  • Wenn die Überprüfung, ob der Wert TARGET sich beim Wert der „abfallenden Flanke" befindet, im Entscheidungsblock 22 durchgeführt wird, ein positives Resultat ergibt, wie es bei der ersten Iteration des Zyklus passiert, erfolgt der Eintritt in einen komplexeren Zweig als jenen, der aus den Blöcken von 23 bis 25 in der 5 besteht.
  • Der PTA-Merker wird zuerst im Block 31 getestet.
  • Im Falle einer negativen Antwort wie zu Beginn der Verarbeitung wird im Block 32 analog zum Block 23 der 5 geprüft, ob das erste Vergleichssignal unter das zweite Vergleichssignal fällt, d.h. ob A(i) weniger als B(i) ist.
  • Im Falle einer negativen Antwort erfolgt die Rückkehr zum Inkrementblock 18 von Index i.
  • Im Falle einer positiven Antwort überschneiden sich die Signale A und B, d.h. es gibt einen abfallenden Übergang (und zwar solch einen z.B. wie in den Punkten P2, P6 und P8 in 6). Deshalb wird der Wert des Index i im Block 33 als zeitweiliger Übergang gespeichert, und zwar dadurch, daß z.B. sein Wert einer Variablen k zugewiesen wird. Dann wird der PTA-Merker auf RICHTIG gestellt und es erfolgt die Rückkehr zum Inkrementblock 18 von Index i.
  • Da der Wert der Variablen TARGET auf „abfallende Flanke" gestellt ist, ist das Ergebnis des nachfolgenden Tests des Entscheidungsblocks 22 immer noch positiv. Ist jedoch das Ergebnis des nachfolgenden Tests des Blocks 31 jetzt positiv, erfolgt der Eintritt in den Block 34, wo geprüft wird, ob A(i) > B(i).
  • Im Falle einer negativen Antwort wird im Block 35 geprüft, ob die Differenz zwischen den Signalen A und B größer ist als die Schwellwertgröße Δ, d.h. ob das Signal A niedriger als das abfallende Bezugssignal B1 = B – Δ ist. Das kommt durch die Auswertung der Ungleichung A(i) < B(i) – Δ zum Ausdruck.
  • Im Falle eines negativen Ergebnisses des Blockes 35 erfolgt die Rückkehr zum Inkrementblock 38 von Index i. Da die Variablen TARGET und PTA nicht aktualisiert worden sind, wird bei den folgenden Iterationen wieder der Entscheidungsblock 34 des Vergleichs zwischen Signal A und Signal B erreicht.
  • Falls das Ergebnis der Überprüfung des Blocks 35 positiv ausfällt, wie wenn in der 6 vom Punkt P2 der Punkt P21 erreicht wird, ist der vorhergehende abfallende Übergang bei P2, der zeitweilig im Schritt 33 gespeichert worden war, als gültig anzusehen.
  • Im Block 36 wird deshalb der Wert der Variablen k in der Gruppe von Übergängen gespeichert. Da der nachfolgende Übergang ein ansteigender Übergang sein muß, wird das durch das Umschalten des Wertes der Variablen TARGET auf den Wert angezeigt, der für den Ausdruck „ansteigende Flanke" repräsentativ ist. Da außerdem ein potentieller Übergang nicht mehr vorhanden ist, wird der Wert der Variablen, der das anzeigt, durch das Einstellen von PTA auf FALSCH aktualisiert.
  • Laßt uns andererseits in Betracht ziehen, daß der zeitweilig im Schritt 33 gespeicherte Übergang dem Punkt P6 der 6 entspricht. In diesem Falle, wenn der Index i den Punkt P7 erreicht, ergibt die Prüfung des Blocks 34 ein positives Resultat, d.h. es ist ein ansteigender Übergang gefunden worden, wobei aber das Signal A niemals unter das abfallende Bezugssignal B1 gefallen ist, d.h. der Block 36 ist nicht durchlaufen worden.
  • Somit erfolgt der Übergang zum Block 37, in dem der zeitweilig gespeicherte abfallende Übergang (in 6 bei P6) abgelehnt wird, und die Merkervariable, die die Existenz eines potentiellen Übergangs anzeigt, wird auf den negativen logischen Wert (PTA = FALSCH) gestellt. Danach erfolgt die Rückkehr zum Inkrementblock 18 von Index i. Beachten Sie, daß die Variable TARGET nicht aktualisiert wird, da immer noch nach einem abfallenden Übergang gesucht wird.
  • Um die nächsten Werte des Index i zu ermitteln, wird wieder der Block 32 für die Suche nach einem potentiellen abfallenden Übergang erreicht. Der Übergang in P7 ist zu ignorieren, da es ein ansteigender Übergang ist (d.h. die Prüfung des Blocks 32 wird beim Übergang P7 ein negatives Resultat ergeben), wohingegen der Übergang bei P8 akzeptiert wird, da vor dem ansteigenden Übergang bei P9 das Signal A das abfallende Bezugssignal beim Punkt P81 kreuzt.
  • Ein spiegelverkehrt dargestellter Zweig wird abgearbeitet, wenn der nachfolgende, erwartete Übergang ein ansteigender Übergang ist, dann nämlich, wenn das Ergebnis der Prüfung im Block 22 negativ ausfällt.
  • Deshalb umfaßt dieser Zweig zuerst einen Block 38 zur Prüfung eines PTA-Merkers. Im Falle eines negativen Ergebnisses (wie z.B. vor Punkt P3), wird nach diesem potentiellen ansteigenden Übergang durch die Ausführung der Überprüfung A(i) > B(i) im Block 39 gesucht, dessen dem negativen Ergebnis entsprechender Ausgang zum Inkrementblock 18 vom Index i zurückführt. Im Falle eines positiven Ergebnisses (Punkt P3) im Block 40 wird der potentielle ansteigende Übergang in der Variablen k gespeichert und seine Existenz wird durch die Einstellung des PTA auf RICHTIG angezeigt. Um die nächsten Werte des Index i zu ermitteln, ergibt die Prüfung des Entscheidungsblocks 38 somit ein positives Resultat und im Block 41 wird nach einem abfallenden Übergang durch die Überprüfung gesucht, ob A(i) < B(i) ist. Solange wie das Signal weiterhin ansteigt, ist das Ergebnis der Prüfung von Block 41 negativ und es erfolgt der Übergang zu Block 42, um den Schnittpunkt des ansteigenden Bezugsschwellwertes zu überprüfen, der durch den Zustand A(i) > B(i) + Δ ausgedrückt wird. Sollte diese Überprüfung ein negatives Resultat ergeben, wird der Wert des Index i durch die Rückkehr zum Block 18 inkrementiert. Sollte aber diese Überprüfung ein positives Resultat ergeben, wie bei Punkt P11, wenn der zeitweilig gespeicherte Übergang der Punkt P1 ist, wird der zeitweilig gespeicherte Übergang im Block 43 auf Richtigkeit geprüft (der Wert von k wird in der Gruppe der Übergänge gespeichert), der Wert des Merkers, der die Existenz eines potentiellen ansteigenden Übergangs anzeigt, wird auf den falschen logischen Wert (PTA = falsch) eingestellt und der Wert der Variablen TARGET wird auf den Wert umgeschaltet, der für den Ausdruck „abfallende Flanke" repräsentativ ist. Wenn dagegen (wie bei Punkt P4, wenn der zeitweilig gespeicherte Übergang der Punkt P3 ist) das Ergebnis der Überprüfung des Blocks 41 positiv ausfällt, wird der potentielle ansteigende Übergang (bei P3) im Block 44 für ungültig erklärt, indem der Wert des die Existenz des potentiellen ansteigenden Übergangs anzeigenden Merkers auf den falschen logischen Wert (PTA = falsch) eingestellt wird.
  • Wie aus dem, was oben gesagt wurde, zu entnehmen ist, kann das soeben beschriebene Verfahren besonders dafür von Vorteil sein, die Lokalisierung eines Strichcodes unter Verwendung des abfallenden Bezugssignals B1 zu erreichen.
  • Mit besonderem Hinweis auf die 8, da Ruhezonen weiße Zonen sind, d.h. Zonen mit hoher Reflexionsfähigkeit, ist es für die bloße Codelokalisierung ausreichend, das abfallende Bezugssignal B1 zur Verfügung zu stellen, das erste Vergleichssignal A mit diesem abfallenden Bezugssignal B1 zu vergleichen und alle Übergänge (Schnittpunkte zwischen den Signalen A und B) abzulehnen, die den Positionen entsprechen, die dem ersten Schnittpunkt X zwischen den Signalen A und B1 vorangehen, mit Ausnahme des Übergangs P0, der der unmittelbar vorangehenden Position entspricht, und alle Übergänge (Schnittpunkte zwischen den Signalen A und B) abzulehnen, die den Positionen entsprechen, die dem letzten Schnittpunkt Y zwischen den Signalen A und B1 nachfolgen, mit Ausnahme des Übergangs, der der unmittelbar nachfolgenden Position P100 entspricht.
  • Das erfindungsgemäße Verfahren, in dem nur das abfallende Bezugssignal B1 verwendet wird, ist hier nicht im Detail abgebildet, da die an dem analogen oder digitalen Hardware-Schaltkreis oder an der Software vorzunehmenden Vereinfachungen als etwas angesehen werden, was zu den Fertigkeiten eines durchschnittlichen Fachmanns gehört.
  • Um bei der Anwendung des obengenannten Verfahrens gute Leistungen zu erzielen, sollte die Rauschfestigkeitsschwelle durch den Ausdruck Δ = Vpp/(S/N)min angegeben werden, wobei Vpp die Spitze-zu-Spitze-Spannung des Videosignals S und (S/N)min das minimale Signal-Rausch-Verhältnis des Videosignals S ist. Da das Signal-Rausch-Verhältnis in Ruhezonen gewöhnlich geringer als innerhalb des Codes ist, kann die Schwellwertgröße Δ für Vergleiche in den Positionen, die den Punkten der Ruhezonen entsprechen, größer sein als die Schwellwertgröße Δ für Vergleiche in den Positionen innerhalb des Codes.
  • Um die Verfahrensleistungen noch weiter zu vervollkommnen, kann die Schwellwertgröße Δ auch innerhalb des Codes Δ(i) variabel sein. So z.B. könnte sie als prozentualer Anteil des Wertes des ersten Vergleichssignals A(i) beim homonymen Abtastwert berechnet werden.
  • Es ist beachtenswert, daß die Kenntnis der Übergangspunkte Pi ausreichend ist, um das Wort zu erkennen, das durch den Strichcode dargestellt wird. Die Erkennung des durch den Code dargestellten Wortes kann zur gleichen Zeit wie der Vergleich ausgeführt werden oder danach.
  • Wie schon erwähnt wurde, stellen die Grenzfrequenzen ωa und ωb oder die Filterungsordnungen Na und Nb sowie die Schwellwertgröße Δ die Betriebsparameter des beschriebenen Verfahrens dar. Die Auswahl der jeweiligen Werte kann in unterschiedlicher Weise erfolgen.
  • Die 9 zeigt das Prinzipschema der Implementierung einer parallelen Architektur, in der das Videosignal S einer Reihe von Tiefpaßfiltern 1a, 1b, 1c, ..., zugeführt wird, die abnehmende Grenzfrequenzen ωa > ωb > ωc, ... oder ansteigende Ordnungen Na < Nb < Nc, ... haben.
  • Das Videosignal S und die Ausgangssignale Fa, Fb, Fc der Filter 1a, 1b, 1c, ... werden paarweise den Vergleichseinrichtungen 3a, 3b, 3c, ... bei Bedarf nach der Passage des Abtastabschnittes 3' zugeführt, falls das Videosignal S und die Filter 1a, 1b, 1c analog sind, die Vergleichseinrichtungen 3a, 3b, 3c, ... aber digital sind. Oder sie werden mit Hilfe der Software implementiert. Genauer gesagt, die erste Vergleichseinrichtung 3a empfängt als Eingangsgrößen das Videosignal S und das Ausgangssignal Fa des ersten Filters 3a, die zweite Vergleichseinrichtung 3b empfängt als Eingangsgrößen das Ausgangssignal Fa des ersten Filters 3a und das Ausgangssignal Fb des zweiten Filters 3b, die dritte Vergleichseinrichtung 3c empfängt als Eingangsgrößen das Ausgangssignal Fb des zweiten Filters 3b und das Ausgangssignal Fc des dritten Filters 3c etc..
  • Selbstverständlich könnte jedes gefilterte Signal Fa, Fb, Fc, ... einer einzigen Vergleichseinrichtung zugeführt werden, d.h. daß in dem Blockschaltbild der 9 die zentrale Vergleichseinrichtung 3b fehlen könnte.
  • Die Signale könnten ebenfalls den Vergleichseinrichtungen 3a, 3b, 3c in unterschiedlichen Kombinationen zugeführt werden, z.B. durch das Vorsehen eines Koppel- oder Auswahlabschnittes (nicht abgebildet) zwischen dem Eingang des Videosignals S und den Eingängen zu den Filtern 1a, 1b, 1c und/oder an den Eingängen der Vergleichseinrichtungen 3a, 3b, 3c'.
  • Die Ausgänge der Vergleichseinrichtungen 3a, 3b, 3c, ... stellen unterschiedliche Gruppen von Übergängen des zu prüfenden Strichcodes dar. Während der Strichcode abgelesen wird, kann die Decodierung nach unterschiedlichen Kriterien erfolgen. Ein erstes Kriterium könnte das Kriterium der Decodierung der ersten Gruppe der erhaltenen Übergänge und, falls diese Decodierung einen gültigen Code ergibt, der Ignorierung der anderen sein. Wenn dagegen die Decodierung der ersten Gruppe keinen gültigen Code ergibt, ist mit der Decodierung der nächsten Gruppe fort zu fahren und so weiter, bis man einen gültigen Code erhält. Ein zweites Kriterium könnte das Kriterium der Decodierung aller Gruppen von Übergängen sein, um so unterschiedliche Decodierungen des gleichen Codes zu erhalten, der einen Qualitätsindex mit den unterschiedlichen Decodierungen in Verbindung bringt und diejenige akzeptiert, die den besten Qualitätsindex als gültige Decodierung vorweist. Noch ein anderes Kriterium könnte das Kriterium der Mittelung (nach anderen Kriterien) der Breiten der homologen Elemente sein, die man aus den unterschiedlichen Gruppen von Übergängen erhalten hat. So erzielt man eine einzige Reihe von Breiten der „kompensierten" Codeelemente und decodiert dann nur noch diese Reihe von Breiten.
  • Selbstverständlich kann eine parallele Architektur dieser Art auch auf den Fall des Vergleichs mit der oben beschriebenen Hysterese ausgeweitet werden. In diesem Fall müssen anstelle der einfachen Vergleichseinrichtungen 3a, 3b, 3c die oben beschriebenen analogen oder digitalen Hardware-Bausteine vorhanden sein, die bei Bedarf auch für eine Veränderung der Schwellwertgröße Δ sorgen.
  • Es ist auch offenkundig, daß bei einer Software-Implementierung diese Ausführungsform ohne weiteres durch eine Wiederholung des Flußdiagramms aus der 5 oder 7 oder ihres entsprechenden Abschnitts implementiert werden kann, der sich zwischen dem Ausgang des Blocks 20 und der Rückkehr zum Block 18 befindet, und zwar so oft es gewünscht wird, wobei jedes Mal der Programmlauf des Blocks 21 zur Auswertung der Vergleichssignale und die Variable verändert werden, innerhalb der die in den Blöcken 24, 27, 36, 43 und 45 erkannten Übergänge gespeichert werden.
  • Als Alternative oder Ergänzung kann das obengenannte Verfahren für eine Reihe von unterschiedlichen Videosignalen S wiederholt werden, wobei jedes einzelne im Zusammenhang mit einem unterschiedlichen Codescan steht.
  • Außerdem kann in diesem Falle die Gruppe der für das Ablesen des Codes benutzten Übergänge unter denjenigen ausgewählt werden, die man während der verschiedenen Programmdurchläufe erhalten hat, die auf den obengenannten Kriterien beruhen.
  • Bei einer bevorzugten Ausführungsform sieht aber das Verfahren der vorliegenden Erfindung die Verwendung des Programmdurchlaufs vor, der auf einem Videosignal Sj durchgeführt wird, das im Zusammenhang mit einem Codescan steht, um die Parameter des folgenden Programmdurchlaufs einzustellen, der auf einem mit der nachfolgenden Abtastung zusammenhängenden Videosignal Sj+1 durchgeführt wird.
  • Dadurch, daß auf diese Weise eine analoge Verarbeitung der Signale gewährleistet wird, die unterschiedlichen Abtastungen entsprechen, ist es möglich, Scheinübergänge abzulehnen, die z.B. auf Störstellen des Codes in bestimmten Bereichen oder auf zeitweilige Ablesefehler zurückzuführen sind, die z.B. durch eine Unvollkommenheit bei der Codefokussierung, durch eine Ungleichmäßigkeit des Umgebungslichtes etc. verursacht werden.
  • Besonders während jeder Iteration kann ein Parameter oder mehrere der folgenden statistischen Parameter ausgewertet werden:
    • – absolutes Maximum des Videosignals: M = maxi{S(i)}
    • – absolutes Minimum des Videosignals: M = mini{S(i)}
    • – Spitze-zu-Spitze-Pegel des Videosignals: Vpp = M – m
    • – minimales Signal-Rausch-Verhältnis des Videosignals (S/N)min
    • – PCS eines Strichcodes, der den erkannten Übergängen entspricht,
    • – Modul eines Strichcodes, der den erkannten Übergängen entspricht.
  • Wie am Anfang schon erwähnt, wird das Modul eines Strichcodes durch die Breite des Codeelementes bestimmt, das eine Mindestbreite aufweist. Eine Schätzung des Moduls kann als der Mittelwert einer bestimmten Anzahl von Werten erreicht werden, die die erkannten Mindestbreiten zum Ausdruck bringen, wie z.B. der Mittelwert der 10 kleinsten erkannten Breiten.
  • Bei einer Hardware-Implementierung kann das Einstellen der Filterungsordnung – wie schon zuvor gesagt wurde – z.B. durch Stromwender oder Selektoren zwischen dem Eingang des Videosignals S und den Eingängen der Filter 1a, 1b, 1c, ... oder zwischen den Ausgängen der Filter 1a, 1b, 1c, ... und den Ausgängen der Vergleichseinrichtungen 3a, 3b, 3c, ... ausgeführt werden.
  • Andererseits reicht es bei einer Software-Implementierung aus, den Ausdruck der Vergleichssignalbewertung des Blocks 19 parametrisch zu machen, und besonders den Ausdruck der durch die Gleichung (1) ausgedrückten Filterung parametrisch zu machen.
  • Das obengenannte Verfahren weist die Vorteile einer einfachen, präzisen, stabilen, zuverlässigen, schnellen und wiederholbaren Verarbeitung auf.
  • Außerdem weist seine Implementierung durch Software die Vorteile einer großen Implementierungs- und Erweiterungsflexibilität auf.
  • Wie aus der Beschreibung der oben zur Verfügung gestellten Flußdiagramme deutlich geworden sein sollte, sind die erforderlichen Arbeitsgänge äußerst einfach, vor allem bei der FIR-Filterung mit Einheitskoeffizienten und einer Ordnung, die gleich einer Zweierpotenz ist.
  • Der erforderliche Speicherraum und die Rechenleistung sind äußerst begrenzt, besonders dann, wenn die Filterung Abtastwert für Abtastwert durchgeführt wird, wie es auf den Flußdiagrammen zu sehen ist.
  • In diesem Falle kann der erforderliche Speicherraum für das Videosignal S weiterhin dadurch reduziert werden, daß eine FIFO-Struktur vorgesehen wird, in der nur die Nb-Abtastwerte gespeichert werden, die gleich der verwendeten maximalen Filterungsordnung sind.
  • Der Filterungsvorgang beim Abtastwert ith kann auch durchgeführt werden, indem man mit dem Wert des gefilterten Signals an dem bisherigen Abtastwert beginnt und in Betracht zieht, daß die gefilterten Signale A(j) und A(j + 1), die den beiden benachbarten Abtastwerten entsprechen, der Mittelwert der Gruppen von Abtastwerten des Videosignals S sind, die sich nur beim ersten und letzten Element unterscheiden. Besonders für hohe Filterordnungen kann der Filterungsvorgang noch weiter beschleunigt werden.
  • Der elektronische Schaltkreis, der der analogen oder digitalen Hardware-Implementierung des oben beschriebenen Verfahrens entspricht, kann direkt in einem Strichcodelesegerät untergebracht werden.
  • Das Verarbeitungsprogramm, das der Software-Implementierung des oben beschriebenen Verfahrens entspricht, kann in einem Mikrokontroller gespeichert werden, der direkt in dem Strichcodelesegerät untergebracht ist.
  • Als Alternative kann ein solches Verarbeitungsprogramm besonders dann, wenn die Decodierung des Codes in einer entfernt vom Strichcodelesegerät aufgestellten Station erfolgt, auf jedem beliebigen Informationsträger eines Speichers, zu denen Magnetdisketten, CD-ROMs, CDs für Aufzeichnungen und ähnliche Träger zählen, sowie auf Nur-Lese-Speichern (ROM) gespeichert werden.
  • Außerdem kann das Verarbeitungsprogramm in einem Computernetz ausgestrahlt werden, darunter auch im Internet, und somit auf einem elektrischen Trägersignal übertragen werden.

Claims (27)

  1. Verfahren zum Lokalisieren der Übergänge zwischen den Elementen (13, 14) eines Strichcodes (12), mit folgenden Verfahrensschritten: a) Vorsehen eines Videosignals (S), das die Intensität von Licht repräsentiert, welches von dem Code als eine Funktion der Position entlang einer Scanlinie des Codes gestreut wird; b) Ausführen wenigstens einer Filterung des Videosignals (S); dadurch gekennzeichnet, daß der Schritt b) das Ausführen von wenigstens einer Tiefpaß-Filterung des Videosignals (S) zum Erhalten wenigstens einer tiefpaßgefilterten Version (Fa, Fb, Fc) des Videosignals umfaßt, sowie durch den weiteren Schritt: c) Ausführen wenigstens eines Vergleichs zwischen einem ersten Vergleichssignal (A) und einem zweiten Vergleichssignals (B), wobei das zweite Vergleichssignal (B) einer der wenigstens einen tiefpaßgefilterten Version (Fb, Fc) des Videosignals entspricht und das erste Vergleichsignal (A) ausgewählt wird aus dem Videosignal (S) oder einer anderen der wenigsten einen tiefpaßgefilterten Version (Fa, Fb) des Videosignals ist, welches mit einer höheren Grenzfrequenz gefiltert wurde als das zweite Vergleichssignal (B), wobei Schnittpunkte (P0, P1, P2) zwischen den verglichenen Signalen als Übergänge zwischen Elementen des Codes bei den jeweiligen Position erkannt werden.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß im Schritt a) das Videosignal (S) ein analoges Signal und im Schritt b) die Filterung eine analoge Filterung ist.
  3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß im Schritt b) die Filterung mit einer beinahe konstanten Gruppenverzögern durchgeführt wird.
  4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß im Schritt a) das Videosignal (S) ein abgetastetes Videosignal und im Schritt b) die Filterung eine digitale Filterung ist.
  5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, daß im Schritt b) die Filterung mit einem FIR-Filter mit linearer Phase erfolgt.
  6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, daß im Schritt b) die Filterung mit einem FIR-Filter mit gleichen Koeffizienten erfolgt.
  7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß im Schritt b) die Filterung mit einem FIR-Filter mit Einheitskoeffizienten erfolgt.
  8. Verfahren nach einem der Ansprüche 5 bis 7, dadurch gekennzeichnet, daß im Schritt b) eine FIR-Filterung in einer Größenordnung erfolgt, die gleich einer Potenz der Basis ist, in welcher das abgetastete Videosignal ausgedrückt wird.
  9. Verfahren nach einem der Ansprüche 5 bis 8, dadurch gekennzeichnet, daß die Filterung im Schritt b) währen der Ausführung des Schrittes c) Abtastwert für Abtastwert ausgeführt wird.
  10. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß für jeden Vergleich des Schrittes c) das Verfahren folgende Schritte umfaßt: d) Einordnen eines Übergangs (P2), der im Schritt c) als gültig erkannt wird, wenn in wenigstens einer Position (P21), die dem nachfolgenden Übergang (P3) vorangeht, der in der entgegengesetzten Richtung erfolgt und im Schritt c) erkannt wird, der absolute Wert der Differenz zwischen den Vergleichssignalen größer ist als eine voreingestellte Schwellwertgröße (Δ).
  11. Verfahren nach Anspruch 10, dadurch gekennzeichnet, daß die Schwellwertgröße variabel ist.
  12. Verfahren nach Anspruch 11, dadurch gekennzeichnet, daß die Schwellwertgröße (B1) für die Positionen, welche den Punkten der Ruhezonen des Codes ent sprechen, größer ist als die Schwellwertgöße für die Positionen innerhalb des Codes.
  13. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß für jeden Vergleich des Schrittes c) das Verfahren folgende Schritte umfaßt: e1) Ablehnen aller Übergänge, die in dem Schritt c) als Positionen erkannt werden, die der ersten Position (X) vorangehen, wobei die Differenz zwischen dem ersten Vergleichssignal und dem zweiten Vergleichsignal größer ist als eine voreingestellte Schwellwertgröße, außer für den Übergang, der der unmittelbar vorhergehenden Position (P0) entspricht; und e2) Ablehnen aller Übergänge, die in dem Schritt c) als Positionen erkannt werden, die der letzten Position (Y) nachfolgen, wobei die Differenz zwischen dem ersten Vergleichssignal und dem zweiten Vergleichssignal größer ist als die voreingestellte Schwellwertgröße, außer für den Übergang (P100), der der unmittelbar nachfolgenden Position entspricht.
  14. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß es ferner die folgenden Schritte umfaßt: f1) Vergleichen der Gruppen der Übergänge, die während der Vergleiche des Schrittes c) erhalten werden; und f2) Auswählen der am meisten geeigneten Gruppe von Übergängen für die Decodierung.
  15. Verfahren nach einem der Ansprüche 1 bis 14, dadurch gekennzeichnet, daß alle Gruppen von Übergängen, die während der Vergleiche des Schrittes c) erhalten werden, für das Dekodieren vorgesehen werden.
  16. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß es ferner die folgenden Schritte umfaßt: g) mindestens einmaliges Wiederholen der vorhergehenden Schritte für ein entsprechendes Videosignal eines nachfolgenden Codescans. g11) Vergleichen der Gruppen der Übergänge, die während der Vergleiche des Schrittes c) erhalten wurden; und g12) Auswählen der am meisten geeigneten Gruppe der Übergänge zum Decodieren.
  17. Verfahren nach einem der Ansprüche 1 bis 15, dadurch gekennzeichnet, daß es die folgenden weiteren Schritte umfaßt: g) Wiederholen wenigstens eines der vorhergehenden Schritte für jeweils ein Videosignal eines nachfolgenden Codescans, wobei alle Gruppen der Übergänge, während der Vergleiche des Schrittes c) erhalten werden, zur Decodierung vorgesehen werden.
  18. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß es die folgenden weiteren Verfahrensschritte umfaßt: g) mindestens einmaliges Wiederholen der vorhergehenden Schritte für jeweils ein Videosignal eines nachfolgenden Codescans; g21) Bewerten statistischer Parameter, die sich auf das Videosignal und/oder auf die Gruppen der erkannten Übergänge beziehen; und g22) Einstellen von Betriebsparametern für eine nachfolgende Iteration basierend auf den statistischen Parametern, die in der vorhergehenden Iteration ausgewertet wurden.
  19. Verfahren nach Anspruch 18, dadurch gekennzeichnet, daß die statistischen Parameter eine oder mehrere der folgenden Parameter umfassen; das absolute Minimum, das absolute Maximum und der Spitzen-zu-Spitzen-Pegel des digitalen Signals, das Modul und der PCS des optischen Codes und das minimale Signal-Rausch-Verhältnis des digitalen Videosignals.
  20. Verfahren zum Lokalisieren eines Strichcodes mit den Schritten nach einem der Ansprüche 1 bis 12 und 14 bis 19, wobei der Schritt c) die folgenden Verfahrensschritte umfaßt: e1) Ablehnen aller im Schritt c) erkannten Übergänge, die Positionen entsprechen, welche der ersten Position (X) vorangehen, wobei die Differenz zwischen dem ersten Vergleichssignal und dem zweiten Vergleichssignal größer ist als eine voreingestellte Schwellwertgröße, außer für den Übergang, welcher der unmittelbar vorhergehenden Position (P0) entspricht, und e2) Ablehnen aller Übergänge, die im Schritt c) erkannt wurden und Positionen entsprechen, die der letzten Position (Y) nachfolgen, wobei die Differenz zwischen dem ersten Vergleichssignal und dem zweiten Vergleichssignal größer ist als die voreingestellte Schwellwertgröße, außer für den Übergang (P100), welcher der unmittelbar nachfolgenden Position entspricht.
  21. Verarbeitungsprogramm mit Programmcodemitteln, die geeignet sind, die Schritte des Verfahrens nach einem der vorangehenden Ansprüche auszuführen, wenn das Programm auf einem Computer ausgeführt wird.
  22. Verarbeitungsprogramm nach Anspruch 21, das in einem Mikrokontroller gespeichert ist.
  23. Verarbeitungsprogramm nach Anspruch 21, das in einem Computerspeicher gespeichert ist.
  24. Verarbeitungsprogramm nach Anspruch 21, das in einem ROM gespeichert ist.
  25. Verarbeitungsprogramm nach Anspruch 21, das auf einem elektrischen Trägersignal getragen wird.
  26. Elektronischer Schaltkreis mit Schaltkreismitteln zum Ausführen der Verfahrensschritte nach einem der Ansprüche 1 bis 20.
  27. Strichcode-Leser mit einem elektronischen Schaltkreis nach Anspruch 26 oder einem Mikrokontroller, welcher das Verarbeitungsprogramm nach Anspruch 21 speichert.
DE60030985T 2000-11-14 2000-11-14 Verfahren zur Lokalisierung der Übergänge zwischen Teilen eines Streifenkodes Expired - Lifetime DE60030985T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP00830751A EP1205873B1 (de) 2000-11-14 2000-11-14 Verfahren zur Lokalisierung der Übergänge zwischen Teilen eines Streifenkodes

Publications (2)

Publication Number Publication Date
DE60030985D1 DE60030985D1 (de) 2006-11-09
DE60030985T2 true DE60030985T2 (de) 2007-06-14

Family

ID=8175549

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60030985T Expired - Lifetime DE60030985T2 (de) 2000-11-14 2000-11-14 Verfahren zur Lokalisierung der Übergänge zwischen Teilen eines Streifenkodes

Country Status (4)

Country Link
US (1) US6834806B2 (de)
EP (1) EP1205873B1 (de)
AT (1) ATE341033T1 (de)
DE (1) DE60030985T2 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7203361B1 (en) 2001-03-16 2007-04-10 Hand Held Products, Inc. Adaptive digitizer for optical reader
US7050631B2 (en) * 2002-10-30 2006-05-23 Sick Auto Ident, Inc. Barcode detection system
JP4213490B2 (ja) * 2003-02-21 2009-01-21 富士通株式会社 バーコード読取装置
US7710598B2 (en) * 2004-08-23 2010-05-04 Harrison Jr Shelton E Polychromatic encoding system, method and device
US7619639B1 (en) * 2005-09-12 2009-11-17 Nvidia Corporation Adaptive scaling using a programmable video engine
US7852519B2 (en) 2007-02-05 2010-12-14 Hand Held Products, Inc. Dual-tasking decoder for improved symbol reading
US8628015B2 (en) 2008-10-31 2014-01-14 Hand Held Products, Inc. Indicia reading terminal including frame quality evaluation processing
US8587595B2 (en) 2009-10-01 2013-11-19 Hand Held Products, Inc. Low power multi-core decoder system and method
US8950678B2 (en) 2010-11-17 2015-02-10 Hand Held Products, Inc. Barcode reader with edge detection enhancement
JP2016076283A (ja) * 2014-10-06 2016-05-12 富士通株式会社 データ判定装置,ライブラリ装置,及びデータ判定方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3684868A (en) * 1970-10-29 1972-08-15 Ncr Co Color bar code tag reader with light-emitting diodes
US5124538B1 (en) * 1988-08-26 1995-01-31 Accu Sort Systems Inc Scanner
JPH07101429B2 (ja) * 1989-05-30 1995-11-01 富士通株式会社 バーコードリーダーのアナログ信号処理方式
US5408081A (en) * 1989-06-16 1995-04-18 Symbol Technologies, Inc. Digital circuit for a laser scanner using a first derivative signal and a comparison signal
JPH0358180A (ja) * 1989-07-26 1991-03-13 Keyence Corp バーコードリーダ
JP2729088B2 (ja) * 1989-09-22 1998-03-18 富士通株式会社 バーコードリーダ処理装置
US5140146A (en) * 1989-11-20 1992-08-18 Symbol Technologies, Inc. Bar code symbol reader with modulation enhancement
US5210397A (en) * 1990-05-03 1993-05-11 Psc, Inc. Differentiating and integrating circuit for translating bar code signals into corresponding pulses
US5298728A (en) * 1991-11-01 1994-03-29 Spectra-Physics Scanning System, Inc. Signal processing apparatus and method
US6385352B1 (en) * 1994-10-26 2002-05-07 Symbol Technologies, Inc. System and method for reading and comparing two-dimensional images
US5786582A (en) * 1992-02-27 1998-07-28 Symbol Technologies, Inc. Optical scanner for reading and decoding one- and two-dimensional symbologies at variable depths of field
US6164540A (en) * 1996-05-22 2000-12-26 Symbol Technologies, Inc. Optical scanners
US5734152A (en) * 1995-05-31 1998-03-31 Symbol Technologies, Inc. Optical scanners and signal processors therefor
US5814803A (en) * 1994-12-23 1998-09-29 Spectra-Physics Scanning Systems, Inc. Image reader with multi-focus lens
US6572018B1 (en) * 1995-12-18 2003-06-03 Metrologic Instruments, Inc. Method of and apparatus for processing analog scan data signals derived by scanning bar code symbols using a laser beam, wherein a real-time bar code element detector is used to control the detection of zero-crossings occurring in the second derivative of said analog scan data signals
US6422467B2 (en) * 1995-12-18 2002-07-23 Metrologic Instruments, Inc. Reading system a variable pass-band
US5969325A (en) * 1996-06-03 1999-10-19 Accu-Sort Systems, Inc. High speed image acquisition system and method of processing and decoding barcode symbol
US6073849A (en) * 1996-11-01 2000-06-13 Psc Scanning, Inc. Electronic edge detection system using a second derivative signal processor
NL1008260C2 (nl) * 1998-02-10 1999-08-11 Scantech Bv Optische inrichting voor het uitlezen en decoderen van een barcode.
US6176429B1 (en) * 1998-07-17 2001-01-23 Psc Scanning, Inc. Optical reader with selectable processing characteristics for reading data in multiple formats
KR100416695B1 (ko) * 2000-06-30 2004-02-05 주식회사 하이닉스반도체 노이즈 제어가 가능한 지연고정루프
JP2003308476A (ja) * 2002-04-12 2003-10-31 Toshiba Corp バーコード読み取り装置

Also Published As

Publication number Publication date
US6834806B2 (en) 2004-12-28
EP1205873B1 (de) 2006-09-27
US20020056753A1 (en) 2002-05-16
DE60030985D1 (de) 2006-11-09
ATE341033T1 (de) 2006-10-15
EP1205873A1 (de) 2002-05-15

Similar Documents

Publication Publication Date Title
DE3851173T2 (de) Verfahren und Gerät zur Erkennung von Halbtonbildmustern.
DE69716087T2 (de) System und verfahren zur bilderfassung mit hoher geschwindigkeit
DE2935261C2 (de) Anordnung zur Mustererkennung
EP2377072B1 (de) Verfahren und tragbares gerät zum erkennen von barcodes
DE68928553T2 (de) X-Abtaster
DE3789718T2 (de) Verfahren zur Konstruktion von baumstrukturierten Klassifikatoren.
DE69629930T2 (de) Verfahren zum Festlegen eines auf einem Objekt angebrachten optischen Codes
DE2616753A1 (de) Verfahren und vorrichtung zum einlesen von strichkodierten informationen
DE60030985T2 (de) Verfahren zur Lokalisierung der Übergänge zwischen Teilen eines Streifenkodes
DE69921024T2 (de) Kaskadierter Analog-Digital-Wandler
DE3211281C2 (de) Verfahren zum Feststellen der Scharfeinstellung eines Abbildungsobjektives
DE69806197T2 (de) Gerät zur zweidimensionalen Informationsverarbeitung
DE2330759A1 (de) Vorrichtung zum optischen lesen eines strichcodes
WO2008034599A2 (de) Verfahren und vorrichtung zur bildverarbeitung
EP0728340B1 (de) Optoelektronische vorrichtung zum erkennen von kontrastmarken
DE3305676A1 (de) Vorrichtung zur schaerfeermittlung
DE4323293C2 (de) Verfahren und Abtastanordnung zur Identifizierung eines aus aufeinanderfolgenden hellen und dunklen Feldern bestehenden Codes
DE4105516C2 (de) Verfahren und Vorrichtung zur verbesserten Wiedergabe von Konturen
DE68914727T2 (de) Verfahren und Vorrichtung zur Verarbeitung elektrischer Signale, die mittels der Abtastung einer Bildzeile erhalten sind.
DE4342425A1 (de) Verfahren und Anordnung zum Übertragen von Sprachsignalen
DE4118978C2 (de)
DE69510469T2 (de) Vebessertes datenverarbeitungsverfahren und -vorrichtung
DE69120444T2 (de) Vorrichtung zur Erkennung von Sequenzen in einem mehrdimensionalen Signal
EP0686290B1 (de) Optoelektronische vorrichtung zum erkennen von barcode-symbolen
DE3784021T2 (de) Binaere kodierschaltung.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition