DE2159884A1 - Verfahren zur maschinellen Erkennung von Zeichen - Google Patents

Verfahren zur maschinellen Erkennung von Zeichen

Info

Publication number
DE2159884A1
DE2159884A1 DE19712159884 DE2159884A DE2159884A1 DE 2159884 A1 DE2159884 A1 DE 2159884A1 DE 19712159884 DE19712159884 DE 19712159884 DE 2159884 A DE2159884 A DE 2159884A DE 2159884 A1 DE2159884 A1 DE 2159884A1
Authority
DE
Germany
Prior art keywords
block
word
branch
bit
pattern
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.)
Pending
Application number
DE19712159884
Other languages
English (en)
Inventor
Philip Herbert Rochester Minn. Howard (V.St.A.). P
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2159884A1 publication Critical patent/DE2159884A1/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Theoretical Computer Science (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Character Discrimination (AREA)
  • Collating Specific Patterns (AREA)

Description

Böblingen, 29. November 1971 j ο-oh
Anmelderin: International Business Machines
Corporation, Armonk, N.Y. 10504
Amtl. Aktenzeichen: Neuanmeldung
Aktenzeichen der Anmelderin: Docket RO 9-70-012
Verfahren zur maschinellen Erkennung von Zeichen
Die Erfindung betrifft ein Verfahren zur maschinellen Erkennung von Zeichen durch Bildung von die abgetasteten Zeichen repräsentierenden Zeichenwörtern aus den elektronischen Abtastwerten und Reduktion jedes der Kennzeichenwörter auf einen einer von mehreren Klassen von Zeichenmustern zugeordneten Code durch Korrelation mit wenigstens einer Bezugsgröße.
Nach dem Stande der Technik läßt sich die maschinelle Zeichenerkennung in drei Kategorien einteilen. In der ersten Katego-
rie finden sich Maschinen, die Muster darstellende Eingangs- ^ daten verarbeiten, indem sie die Werte von logischen Ausdrükken bestimmen, deren Variablen vorgegebene Teile der Eingangsdaten sind. In einem Zeichenerkennungssystem dieser Art ist die Erkennung eines Musters dann erfolgt, wenn ein und nur ein Ausdruck einen bestimmten Ausgangswert hat. Die logischen Ausdrücke sind gewöhnlich außerordentlich komplex und entwickeln bei der Verarbeitung große Mengen von Zwischen-Variablen. Obwohl nur wenige Arten von logischen Funktionen erforderlich sind,
209828/0566
um die genannten Ausdrücke darzustellen, bedingt ihre Komplexität einen grossen Aufwand bei der schaltungstechnischen Verwirklichung oder sie führt zu übermässigem Zeitverbrauch, wenn die Verarbeitung mittels eines Universalrechners erfolgt.
Der zweiten Kategorie angehörende Maschinen identifizieren Eingabemuster durch Vergleich von Teilen oder der Gesamtheit der aus der Abtastung hervorgegangenen Daten mit vorgegebenen Bezugsdaten, die Idealdarstellungen von Musterklassen entsprechen. Das Eingabemuster wird als Mitglied derjenigen Klasse identifiziert, deren Bezugsgrjösse am wenigsten von den Daten des Eingabemusters abweicht. Es ist möglich, die erforderlichen Korrelationsoperationen verhältnismässig rasch auszuführen, insbesondere durch optische Maskenvergleichstechniken. Die Korrelation an sich kann jedoch aus serordentlich empfindlich gegen unwesentliche Variationen innerhalb einer einzelnen Musterklasse sein und gleichzeitig unempfindlich gegen Unterschiede, die zwei Klassen voneinander scheiden, deren Bezugsgrossen einander ähnlich sind. Es ist ferner erforderlich, die Bezugsgrössen sämtlicher Klassen zu prüfen, bevor feststeht, dass die nä.chstUegendc gefunden worden ist.
RO 9-70-012 -Z-
7 0 9 8 > 0 / 0 ?; 6
Irr die dritte Kategorie von Zeichenerkennungs systemen fallen Kombinationen der beiden genannten Arten. Ueblicherweise verarbeitet eine solche Maschine die dem Eingabemuster zugeordneten Daten mittels (entweder digitaler oder analoger) logischer Ausdrücke, um daraus ein Kennzeichenwort oder Merkmalvektor abzuleiten, der eine weniger komplexe Version des Eingabemusters darstellt. Das Kennzeichenwort wird dann mit Bezugsgrössen korreliert, die die Transformation von Idealmustern jeder Musterklasse in einen identischen Satz von Ausdrücken darstellen. Bei diesem vielstufigen Verfahren wird ein Muster mit beispielsweise eintausend Datenbits auf ein Kennzeichenwort mit vielleicht einhundert Bits reduziert, welches dann weiter reduziert wird zu einem Klassencode mit etwa sechs Bits, der die Musterklasse eindeutig identifiziert. Ein derartiges Verfahren vereinfacht den Entwurf der logischen Schaltungen für die einzelnen Merkmale, da diese nur auf einfachere Unter- oder Teilmuster des Eingabemusters ansprechen müssen. Ausserdem kann die Empfindlichkeit der Korrelation bezüglich der Wichtigkeit der Unterschiede zwischen Musterklassen gesteigert werden. Dabei können die einzelnen Merkmale als erkennbare topologische Konfigurationen oder als abstrakte Datengruppierungen, wie Autokorrelationsfunktionen, vorliegen.
RO 9-70-012 - 3 -
♦' f' ') u <_ ■, , iJ \i b h
-AHe r auch mit der Kombination der beiden vorerwähnten Zeichenerkennungs-Kategorien bleiben verschiedene der Probleme, die jeder einzelnen der Kategorien eigen sind, ungelöst. Ein Problem liegt darin, dass die zwischen den Musterklassen bestehenden Aehnlichkeiten durch die Merkmal-Logik hindurchdringen, so dass ähnlichen Musterklassen auch ähnliche Kennzeichenwörter zugeordnet werden. Folglich ist es weiterhin erforderlich, jedes einem Muster zugeordnete Kennzeichenwort mit jedem Bezugswerc zu vergleichen, bevor der zutreffende Bezugswert als gefunden angenommen werden kann. Einige der bekanntgewordenen Maschinen verwenden das Konzept des "Abstandes" zwischen einem Kennzeichenwort und der Bezugsgrösse, jedoch variieren die Abstände zwischen den Bezugsgrössen untereinander in empfindlicher Weise, so dass eine Messung des Hamming-Abstandes nicht in eindeutiger Weise die Korrektheit eines Bezugswertes abzuschätzen gestattet. Aus diesem Grund wurde das Konzept der Abstandsbestimmung bisher nur dazu benutzt, einen Konflikt zwischen zwei Musterklassen zu signalisieren,für die die beste Uebereinstimmung bzw. die nächst-beste Uebereinstimmung gefunden wurde. Wegen der erwähnten Variation der Abstände muss die Einführung einer Konflikt schwelle unzuverlässig bleiben.
RO 9-70-012 - 4 -
?09828/-0b66
Die vorliegende Erfindung hat sich zur Aufgabe gestellt, die vorher diskutierten Nachteile bekannter Zeichenerkennungsverfahren zu vermeiden.
Für ein Verfahren zur maschinellen Erkennung von Zeichen durch Bildung von die abgetasteten Zeichen repräsentierenden Kennzeichenwörtern aus den elektronischen Abtastwerten und Reduktion jedes der Kennzeichenwörter auf einen einer von mehreren Klassen von Zeichenmustern zugeordneten Code durch Korrelation mit wenigstens einer Bezugsgröße besteht die Erfindung darin, daß eine Vielzahl der Abtastwerte geprüft wird, daß für die Gesamtheit dieser Abtastwerte, die zusammen ein Kennzeichenwort bilden, ein Wert abgeleitet wird, der die Beziehung des Zeichenmusters zu einer Untergruppe der Klassen angibt, daß die Werte einer Vielzahl von Kennzeichenwörtern kombiniert werden, um einen ersten Teilcode zu bilden, der eine Klasse teilweise identifiziert, daß wenigstens eine Bezugsgröße aus den das Kennzeichenwort bildenden Daten abgeleitet wird, um einen zweiten Teilcode zu erzeugen, der eine Klasse teilweise identifiziert und daß die genannten ersten und zweiten Teilcodes zu einer Identifikation der Klasse kombiniert werden.
Weitere Merkmale, vorteilhafte Ausgestaltungen und Weiterbildungen dieses Verfahrens sind den Unteransprüchen zu entnehmen.
Das Verfahren der vorliegenden Erfindung besitzt eine Reihe von Vorteilen hinsichtlich mehrerer Aspekte, die im folgenden darge-
RO 9-70-012 - 5 -
209828/Q&66
legt werden:
Das erfindungsgemäße Verfahren veranlaßt die verwendete Logik vorgegebene Gruppen oder Untergruppen des Zeichenklassensatzes von anderen Gruppen von Musterklassen zu trennen. Wie noch zu sehen sein wird, befreit dieses Verfahren das vorliegende System von der Fehlerempfindlichkeit der individuellen Logik. Darüber hinaus kann die Korrelation der Kennzeichen mit den Bezugsgrößen beendet werden, wenn der Abstand Kennzeichen zu Bezugsgröße einen vorgegebenen Grenzwert erreicht. Bei einer Ausführung ist es notwendig, das Kennzeichen mit nur einer Bezugsgröße zu vergleichen. Dann ist entweder diese Bezugsgröße oder ihr genauer Komplementärwert (oder gar keine Bezugsgröße) die korrekte Bezugsgröße für das Muster.
Ein anderer Aspekt der Erfindung betrifft ein neues Absuchverfahren für die logischen Entscheidungsbäume, in dem adressierbare Knotenwörter verwendet werden, die Adressen-, Zustands- und Ver- ^ zweigungsfeider besitzen. Insbesondere verursacht ein erstes Kommando, das vom Zustandsfeld abgeleitet wird, einen Zugriff zu einem Teil der Eingangsdaten, die von dem Adressenfeld spezifiziert werden, vergleicht die abgerufenen Daten mit einem Bedingungskennzeichen, das einen gewünschten Wert repräsentiert und ruft ein weiteres Knotenwort ab. Ein zweites Kommando bewirkt, daß ein Kennzeichenteil einen spezifischen Wert annimmt und ein weiteres Knotenwort abruft. Ein drittes; Kommando beendet dann die Baumsuche, wenn das Kennzeichen vollständig ist.
RO 9-70-012 - 5a -
2 09828/0B66
Ein anderer Aspekt der Erfindung bezieht sich auf die Logikschaltung für die Ableitung der Elemente oder Ziffern des Kennzeichens. Jede Logik prüft dabei eine Vielzahl von Bereichen des Musters, um mindestens ein Kennzeichenelement zu erzeugen. Wo das Muster ein Bitstrom ist, kann jeder Bereich oder jede Darstellung eines oder mehrere der Zeichenbits sein. Die Bereiche können auch konsolidierte Bits oder Zeichenbereiche sein oder sie können selbst auch ein Kennzeichen sein, das das Zeichen repräsentiert. Betrachtet man die gesamte Logikgruppe als Ganzes, dann kann sie so charakterisiert werden, als sei sie "gleichförmig gegenseitig redundant". Sieht man getrennt auf jede Logikgruppe, dann können diese Logikschaltungen als "paarweise statistisch unabhängig" bezeichnet werden. Diese Bezeichnungen, die noch ausführlich erläutert werden, reflektieren die im wesentlichen konstanten Zwischenpaar abstände der Bezugsgrößenwörter, die sie erkennen.
Ein weiterer Aspekt der Erfindung betrifft das Verfahren für die Erzeugung der Entscheidungsfunktion des vorliegenden Erkennungssystems. Um ein Kennzeichen auf einen identifizierenden Code zu reduzieren, der die Klasse spezifiziert, der ein Eingangszeichen angehört, werden zuerst Teile oder Felder des Kennzeichens gegeneinander verglichen anstelle eines Vergleichs mit einem externen Bezugsgrößenwort. Die Resultate dieser Vergleiche erzeugen Elemente des Identifizierungs- oder Klassencode. Bei einer Ausführung erzeugt ein Codeteil eine Bezugsgröße für einen Vergleich mit dem Kennzeichen, um den Code zu vervollständigen. Bei einer anderen Form werden Versuchscodeteile miteinander auf Zusammenhang ver-
RO 9-70-012 - 5b -
2 0 98 ZfJ/UbG 6 -.
ORIGINAL INSPECTED
glichen. Die Ergebnisse dieser zuletzt genannten Vergleiche identifizieren entweder die Musterklassen oder initiieren Vergleiche des Kennzeichens mit Mehrfachgruppen von Bezugsgrößen. Eine Suche, die bei dem letzteren Fall erforderlich ist, wird sofort beendet, wenn eine annehmbare Bezugsgröße gefunden wird, selbst dann, wenn das Kennzeichen nicht exakt mit der Bezugsgröße übereinstimmt.
Es ist daher ein weiterer Vorteil der Erfindung, den bekannten Stand der Zeichenerkennung dadurch voranzutreiben, daß ein Erkennungssystem angegeben wird, das die den konventionellen Systemen innewohnenden Nachteile vermeidet. Dieser Vorteil ergibt sich insbesondere daraus, daß im Gegensatz zu der konventionellen Zeichenerkennung ein Eingangszeichenmuster als ein Nachrichtensignal behandelt wird, das über einen gestörten Kanal übertragen wird.
Ausführungsbeispiele der Erfindung sind in den Zeichnungen dar- . gestellt und werden anschließend näher beschrieben. In den Zeich-P mangen zeigen:
RO 9-70-012 - 5c -
Fig. 1 eine Vorrichtung zur Zeichenerkennung;
Fig. 2 ein Blockschaltbild einer Erkennungsschaltung;
Fig. 3 ein Ablaufdiagramm für die Schritte des Verfahrens;
Fig. 4 einen Entscheidungsbaum als Ausführungsform einer
logischen Schaltung sowie den Aufbau eines Verzweigungswortes;
Fign. 5,
6 und 7 Ablaufdiagramme für die Ermittlung geeigneter logischer
Entscheidungsbäume;
Fign. 8
und 9 Ablaufdiagramme für Entscheidungsverfahren.
Fig. 1 zeigt eine vereinfachte und verallgemeinerte Zeichenerkennungsvorrichtung 100 zum Abtasten eines zeichentragenden Dokumentes 110 mit einem von einem Abtaster 120 erzeugten und durch ein optisches System 130 übertragenen Lichtstrahl. Eine konventionelle Abtaststeuerung 140 erzeugt Signale zur Steuerung des Abtasters 120. Zahlreiche Abtastertypen können mit der vorliegenden Erfindung benutzt werden und es wird nachfolgend angenommen, dass der Abtaster eine konventionelle Rasterabtastung mit einer Anzahl von Hüben über jedem zu lesenden Zeichen durchführt. Die Abtaststeuerung 140 kann durch
RO 9-70-012 - 6 -
209828/0566
ίο
Kommandos von einer zentralen Verarbeitungseinheit (CPU) 150 beispielsweise für die Abtast-Formatgebung gelenkt werden.
Ein Fotodetektor 160 sammelt das vom Dokument 110 reflektierte Licht und leitet es auf eine Detektor-Vorverarbeitungseinheit 170. Obwohl die Art dieser Einheit 170 für die vorliegende Erfindung keine Rolle spielt, wird angenommen, dass sie die Video-Signale zeitlich und nach der Amplitude quantitativ einteilen, nebeneinanderliegende Muster segmentieren, die Eingabemuster registrieren und auf eine Standasdlage und Grosse normalisieren und das Muster als einen Bitstrom, zur Uebertragung über eine Leitung 171 codieren kann. Einrichtungen zur Ausführung dieser Aufgaben sind allgemein bekannt. Erkennungsschaltungen 151 empfangen die Mustersignale auf der Leitung 171 und transformieren sie in einen Code, der die Klasse oder Kategorie bezeichnet, von der das Eingabemuster ein Teil ist. Die Schaltungen 151 sind innerhalb der Verarbeitungseinheit 150 dargestellt und können in Form von Bauteilen, Mikroprogrammen oder einem externen Programm 300 oder einer Kombination dieser Möglichkeiten verwirklicht werden. Andererseits können sie auch in digitalen oder analogen Bauteilen oder in einer Sonder-Verarbeitungseinheit ausserhalb der CPU 150 angelegt werden. Fachleute können jede der obigen Formen leicht in eine andere überführen.
RO 9-70-012 -T-
209828/0566
Fig. 2 ist ein Blockschaltbild eines Ausführungsbeispiels 200 der Schaltungen 151. Die Musterdatenbits gelangen von der Leitung 171 in einen Muster speicher 210, wo sie zu einem elektronischen Bild des Eingabemusters zusammengesetzt werden. Der Speicher 210 kann ein Schieberegister oder ein adressierbarer Speicher sein. Jede Stelle im Speicher 210 stellt die Koordinaten eines Teiles des Eingabemusters dar, und die in jeder Stelle gespeicherten Daten stellen die Intensität des Musterteiles an diesen Koordinaten dar. In der folgenden Beschreibung werden der Einfachheit halber die Intensitätswerte mit entweder "weiss" (θ) oder "schwarz" (l) angenommen.
Vorgegebene Sätze von Musterteilen darstellende Datensignale laufen dann über eine Leitung 211 zu einem Satz 220 von logischen Baueinheiten, nachfolgend Moduln genannt, zwecks Vergleichs des Musters mit einem Satz von Kennzeichenelementen. Das heisst, jeder Modul 221 bis 229 fragt die Werte bestimmter Gruppen der Teile ab, die das Muster bilden. Die Anzahl von Kennzeichen in jeder Gruppe kann relativ zur Gesamtzahl der Musterkennzeichen entweder gross oder klein sein. Die Gruppen überlappen sich normalerweise, so dass Kennzeichen in einer Gruppe auch in eine oder mehrere weitere Gruppen hineingehören. Es kann sogar der Kennzeichensatz einer
RO 9-70-012 - 8 -
Gruppe mit dem einer anderen Gruppe identisch sein.
In einem Ausführungsbeispiel sind die Moduln 220 binäre Entschei- ■ dungsbäume. Die Datenstrukturen und Suchverfahren für solche Bäume werden später im Zusammenhang mit den Fign. 4 bis 7 beschrieben. Die Moduln 220 können beispielsweise realisiert werden als Boole1 sehe logische Schaltungen oder analoge Korrelationsmatrizen. Das bedeutet für die nachfolgende Beschreibung, dass die Begriffe logische Schaltungen und Bäume im weitesten Sinne zu fassen sind. Jeder der Moduln 220 sendet ein Element eines Signaturwortes zum Speicher 230 zurück. Wenn die logischen Schaltungen binäre Bäume sind, ist jedes Element ein einzelnes Bit. Jeder Modul ist für die Erkennung eines bestimmten Merkmales oder Untermusters des Gesamtmusters ausgelegt, und das zugehörige Kennzeichenbit bezeichnet dann das Vorhandensein oder das Fehlen des entsprechenden Merkmales.
In der Informationstheorie ist der Abstand (sog. Hamming-Abstand) zwischen zwei Datenpunkten ein Mass der kleinsten Anzahl zulässiger Zustände, die beim Fortschreiten von einem Punkt zum anderen überschritten werden muss. Eine genauere Beschreibung dieses Konzepts findet sich z.B. in "Information Theory and its Engineering Applications", von D. A. Bell (2d Ed. , 1956). Wenn die Datenpunkte
RO 9-70-012 - 9 -
?09828/0b66
als aus binären Zahlen zusammengesetzte Wörter dargestellt sind, ist ihr Abstand gleich der kleinsten Zahl von Bits, die verändert werden muss, um ein Wort in das andere zu transformieren. Der Abstand ist ein nützliches Konzept, da er die Erkennung eines Musters oder eines Codes ermöglicht, auch wenn dieser nicht alle Merkmale seiner idealen Darstellung enthält. Das heisst, das Kennzeichen des Idealmusters hat notwendigerweise einen Abstand Null vom Bezugswert. Da sich der Abstand zwischen den Bezugswörtern selbst jedoch bei konventionellen Erkennungssystemen auf unvorhersehbare Weise ändert, kann dieser Abstand nur in einer relativen Art dazu verwendet werden, sicherzustellen, dass ein Kennzeichen näher an einem Bezugswert liegt als an einem anderen, und diese Tatsache kann nur durch Vergleich des Kennzeichens mit jedem der Maschine verfügbaren Bezugswert bestimmt werden. Ausseidem findet der Abstand begrenzte Anwendung bei der Bestätigung einer richtigen Entscheidung. Wenn z.B. angenommen wird, dass der Abstand zwischen den Bezugswerten für die Zeichen "O" und "Q" 10 ist und der Abstand zwischen den Bezugswerten für die Zeichen "O" und "C" 20, dann ist ein Schwellenwert von 6 zu hoch angesetzt, um ein "O" von einem "Q" zu unterscheiden, während manche Muster als unerkennbar zurückgewiesen werden, die eher ein "O" zusammensetzen als ein "C".
RO 9-70-012 - 10 -
20982 8/0566
Im System der Fig. 2 hat jedoch das Bezugswort für jede Musterklasse einen grossen, bekannten und im wesentlichen konstanten Abstand von dem einer jeden anderen Klasse. In völligem Gegensatz zu früheren Systemen werden hier die Kennzeichen für jede Klasse gewählt, bevor die logischen Schaltungen zu ihrer Erzeugung entworfen werden. Für eine genauere Darstellung wird z.B. angenommen, dass maximal 64 Zeichenklassen erkannt werden müssen. Sechs verschiedene Verknüpfungsmoduln 220 reichen aus, um. diese Klassen zu trennen, ein Fehler (d.h. ein falsches Kennzeichenbit) auch nur einer Schaltung verursacht jedoch einen Substitutionsfehler, da jeder Bezugswert notwendigerweise den Abstand 1 von sechs anderen Bezugswerten hat. Daher verwendet die hier beschriebene Vorrichtung eine grössere Anzahl von logischen Moduln 221, 222, 223 . . . 229 zum Trennen der Musterklassen auf eindeutige Art. Die Vorsehung von 32 Schaltmoduln gestattet z.B. einen Abstand von 16 zwischen 1984 der 2016 möglichen Bezugspaare und einen Abstand von 32 zwischen den übrigen 32 Bezugspaaren. Allgemeiner gesagt ist es möglich, für jede positive ganze Zahl I einen Satz von 2 Bezugswerten aufzustellen, so dass jeder Bezugswert 2 Bits enthält und einen Mindestabstand
1-2
von 2 " von einem anderen Bezugswert hat. Andere Codierschemata sind, ebenfalls möglich. Die Verwendung von z.B. 63 Verknüpfungen gestattet die Konstruktion von 64 Bezugswerten, von denen j edes Paar
RO 9-70-012 - 11 -
209828/0566
.einen Mindeslabstand von 3Z-hat. In einer früheren Version wurden sieben Verknüpfungen verwendet; sie lieferten einen Abstand von 8 innerhalb eines Paares zwischen den Bezugswerten für 16 verschiedene Klassen.
Obwohl verschiedene Verfahren zum Aufbau von Bezugswerten mit den geforderten Abständen existieren, hat das nachfolgende Verfahren besondere Vorteile vom Gesichtspunkt der Maschinenverwirklichung. Ein Positionscode mit sechs Bits reicht aus, um jede der 64 Klassen eindeutig darzustellen. Zur Erzeugung des irgendeinem Positionscode entsprechenden Bezugswertes wird das Komplement (d.h. wertniedrige oder "1") des letzten Codebit oder Elementes zum ersten Bit oder Element des Bezugswertes gemacht. Dann wird eine Kopie des Bezugswertes hergestellt und wenn das fünfte Codebit eine O ist, wird die Kopie komplementiert. Wenn das fünfte Bit eine 1 ist, wird die Kopie unverändert beibehalten. Die Kopie wird dann mit dem Bezugswert verkettet. Anschliessend wird eine Kopie dieses erweiterten Bezugswertes hergestellt und der obige Prozess für die übrigen vier Bits des Positionscodes wiederholt. Beispielsweise ist das dem Positionscode "011011" entsprechende Bezugswort "O/o/ll/OOll/OOllOOll/llOOllOOllOOllOO" oder in Hexadezimalnotierung "3333cccc". Umgekehrt können die ersten fünf Bits des
RO 9- 70-01 ίί -IZ-
? 0 1J h Ά :) I 0 b B H
P-ositionscodes gefunden werden, indem man wiederholt die ersten und zweiten Hälften des Bezugswertes vergleicht, in Abhängigkeit von der Identität dieser Hälften eine 1 oder eine 0 in das entsprechende Codebit setzt und die rechte Hälfte des Bezugswertes dann abschneidet. Das wertniedere Codebit entspricht dem Komplement des einen übrigbleibenden Bits des Bezugswertes. Dieser Algorithmus für die Konstruktion des Bezugswertes hat insofern einen weiteren Vorteil, als mit Ausnahme der beiden Bezugswerte, die lauter Einsen und lauter Nullen enthalten, jeder Bezugswert dieselbe Anzahl von Einsen und Nullen enthält.
Die Wahl bestimmter Positionscodes zur Darstellung bestimmter Musterklassen ist theoretisch frei. In der Praxis sollte man jedoch ähnlichen Klassen (wie z.B. O-Q und 2-Z) keine Positionscodes geben, die sich nur in der letzten Stelle unterscheiden. Da solche Bezugswerte gegenseitig komplementäre Stellen aufweisen, würde diese Zuordnung ihre Trennung in allen 32 Verknüpfungen und nicht in nur 16 Verknüpfungen erfordern. Ausscrdern sollten die beiden Bezugswerte, die lauter Nullen und lauter Einsen enthalten, nur benutzt werden, wenn alle 64 Positionscodes benötigt werden, da sie eine ganz andere interne Struktur haben als die anderen 62 Bezugswerte. Der Verzicht auf die
RO 9-70-012 ( - 13 -
209823/0666
ORlGJNAL /NSPECTED
beiden atypischen Bezugswerte gestattet ausserdem eine einfache Systemprüfung auf logische Fehler. Ein grober Fehler kann festgestellt werden durch die Existenz von 32 Einsen oder 32 Nullen im Kennzeichen. Eine grosse Ungleichheit zwischen der Anzahl von Einsen und Nullen, besonders über mehrere Eingabemuster, bezeichnet eine Fehlfunktion in einer oder mehreren Vcrknüpfungsschaltungen.
Obwohl der beschriebene Satz von Bezugszeichen besonders vorteilhaft ist, können auch andere Codes mit dem gewünschten paarweisen Abstand verwendet werden. Solche Codes wurden für die Datenübertragung entwickelt und Beispiele finden sich in "Algebraic Coding Theory", von E. R. Berlekamp, 1968.
Die Aufgabe eines jeden Verknüpfungsmoduls 220 ist somit bestimmt durch die vorgegebenen Bezugswörter. Das heisst, wenn das obige Beispiel des Positions codes das Zeichen "M" darstellt, dann sollte ein ate Eingabemuster erscheinendes ideales "M" eine "Eins"-Ansprache für die Verknüpfungszahlen 3, 4, 7, 8, 11, 12, 15, 16, 17, 18, 21, 22, 25, 26, 29 und 30 und eine "Null"-Ansprache für die übrigen Verknüpfungen ergeben. Wie bereits gesagt, ist die beschriebene Vorrichtung
RO 9-70-012 - 14 -
209828/0566
so ausgelegt, dass jede Verknüpfung eine Gruppe von Musterklassen als Ganzes von einer anderen Gruppe von Musterklassen trennt. Mit dem obigen Algorithmus zum Aufbau der Bezugswerte wird jede Schaltung so ausgelegt, dass sie eine erste Antwort für genau die Hälfte der 64 möglichen Klassen und eine zweite Antwort für die andere Hälfte abgibt. Die geforderte Antwort einer jeden Verknüpfungsschaltung für eine gegebene Klasse kann festgelegt werden durch Erweiterung ihres Positionscodes in das entsprechende Bezugswort hinein. Umgekehrt können die Klassen bestimmt v/erden, für die eine bestimmte Verknüpfungsschaltung eine bestimmte Antwort liefern
soll, indem man die entsprechenden Bezugswortbits für alle Positionscodes erzeugt und in eine Liste einträgt. Solche Verknüpfungsschaltungen werden nachfolgend als gleichmässig gegenseitig redundant bezeichnet, da ihre Antworten relativ zu den Bezugswörtern definiert sind, die ein im wesentlichen konstantes Abstandsmass innerhalb des Paares aufweisen. Damit wird ausgesagt, dass der Abstand zwischen den Bezugswörtern von im wesentlichen allen möglichen Paaren von Bezugswörtern denselben Wert hat.
Wenn diese gewünschten Ergebnisse gegeben sind, bringt die Konstruktion von Verknüpfungs Schaltungen zu ihrer Erzielung keine Abweichung von der konventionellen Konstruktionspraxis mit sich. Leicht
RO 9-70-012 - 15 -
209828/0B66
BAD ORIGINAL
^anwendbare Konstruktionsmethoden sind z.B. gegeben in "Pattern Recognition With Three Added Requirements", IEEE Transactions on Electronic Computers, Vol. EC-15, Seite 770 (Oktober 1966). An einem vereinfachten Beispiel soll die Art gezeigt werden, in der z.B. Bonner die geforderten Ergebnisse erzielt. Dazu dient die folgende Tabelle von bisher gebräuchlichen, willkürlichen Zuordnungen von Zeichenklassen zu bestimmten Positionscodes (und somit zu bestimmten Bezugswörtern):
KEASSE POSITIONSCODE BEZUGSWERT
"A" 000000 10010110
"B" 000001 01101001
"C" 000010 11000011
"D" 000011 00111100
-11E" 000100 1010010Ί
Wenn man die Liste der Bezugsbits von oben nach unten liest, so stellt das Muster der entsprechenden Bits in jeder Spalte die gewünschte Antwort einer der Verknüpfuiigsschaltungen für eine gegebene Zeichenklasse dar. Die Schaltung 221 kann z.B. dem ersten oder am weitesten links stehenden Bit der Bezugswörter zugeordnet werden. Somit wird von dieser Schaltung gesagt, sie "leitet" (d.h. sie liefert eine "Eins"-Antwort für Zeichen in den Klassen "A", "C" und "E"
RO 9-70-01?. - 16 -
? U η H / C / 0 B B 6
BAD ORIGINAL
Jo
und "sperrt" (liefert eine "Null"-Antwort) für Zeichen in den Klassen "B" und "D". Die Schaltung 222 kann in ähnlicher Weise dem zweiten Bezugsbit zugeordnet werden, dass sie für Zeichen in den Klassen "B" und "C" leitet und für Zeichen in den Klassen "A", "D" und "E" sperrt. Die Antwortkonfigurationen für die übrigen Schaltungen in der Gruppe 220 werden in ähnlicher Weise festgelegt. Die obige Zuordnung trennt die Zeichenklassen in mehere Gruppen aufgrund des paarweisen Abstands der Bezugswerte. In bezug auf jede Schaltung sind die Klassengruppen nicht miteinander verbunden; in bezug auf jeden Bezugswert überlappen sich die Gruppen gegenseitig. Das obige Verfahren lässt sich auch auf andere Formen binärer Logik sowie auf Verknüpfungs schaltungen mit einer grösseren Anzahl von möglichen Antworten auf jedes Kennzeichenelement oder auf Verknüpfungsschaltungen mit Antworten anwenden, die mehr als ein Kennzeichenelement betreffen, obwohl es hier in Verbindung mit binären Verknüpf ungsbäumen beschrieben wurde, die nur Null- und Eins-Antworten haben.
Die einzelnen Verknüpfungs schaltungen 221 bis 229 arbeiten grundsätzlich (aber nicht notwendigerweise) mit verschiedenen Untersätzen der Musterteile, um ihre Antworten zu bestimmen. Der vollständige Satz der logischen Antworten für ein gegebenes Muster bildet das Kennzeichen
RO 9-70-012 - 17 -
209828/0566
für dieses Muster. Das Kennzeichen muss dann direkt oder indirekt mit einem Satz von Bezugswerten verglichen werden, um den Positionscode zu bestimmen, der die Klasse des Musters angibt. Im Idealfall sollten alle zu einer gegebenen Klasse gehörenden Muster dasselbe Kennzeichen liefern und dieses sollte mit einem der Bezugswerte genau übereinstimmen. Dieses Ideal wird sehr oft für einen begrenzten Satz von Mustern erfüllt. Mit zunehmender Anzahl der Musterklassen wächst jedoch auch die Anzahl der Nicht-Uebereinstimmungen oder Unähnlichkeiten. Aus diesem Grund sind ein grosser Satz von Bezugswerten oder grosse Abstände zwischen den Bezugs werten erwünscht, um eine akzeptable Leistung über einen grossen Musterbereich zu liefern. Von den beiden Wahlmöglichkeiten erwies sich ein grosser Abstand zwischen einzelnen Bezugswerten als wesentlich vorteilhafter insofern, als er für das Finden einer Entscheidung keine Erhöhung der Anzahl der Vergleiche erfordert. Ein anderer Vorteil liegt in der durch den weiteren Abstand gelieferten Redundanz, die eine grössere Toleranz bei der Fehlerrate für die einzelnen Schaltungen gestattet, wie bereits oben ausgeführt wurde.
Der Wert von Bezugswerten mit einem grossen Abstand wird aus einer Analyse der erwarteten Fehlerraten ersichtlich. Durch Störungen im Originalmuster oder in der Detektor-Vorverarbeitungseinheit 170,
RO 9-70-012 - 18 -
209828/0566
oder aufgrund unvollständiger Konstruktion der einzelnen Schaltungen kann das Kennzeichen sich von dem richtigen Bezugswert durch einen von 0 verschiedenen Abstand unterscheiden. Für durch 32 Verknüpfungen getrennte 64 Klassen ist der nächste Bezugswert der richtige Bezugswert, wenn der Abstand von null bis sieben reicht, da der nachfolgend nächste Bezugswert in einem Abstand von mehr als acht liegen muss. Für Abstände grosser als sieben ist der nächste Bezugswert möglicherweise nicht eindeutig; es können zwei oder mehr Bezugswerte vorhanden sein, die genauso nah sind und keiner, der näher.liegt. Das bedeutet, dass Vergleiche zwischen dem Kennzeichen und den Bezugswerten beendet werden können, sobald ein Bezugswert mit einem Abstand von weniger als acht gefunden worden ist. Wie später noch erklärt wird, ist es theoretisch unnötig, ein Kennzeichen mit mehr als einem Bezugswert au vergleichen, der aus bestimmten Charakteristiken des Kennzeichens gebildet werden kann. Wenn es annähernd zutrifft, dass die einzelnen Verknüpfungsschaltungen paarweise unabhängig sind, lässt sich die Wahrscheinlichkeit P dafür, dass ein Kennzeichen in einem Abstand d von seinem d
richtigen Bezugswert steht, aus der folgenden Formel errechnen
RO 9-70-012 - 19 -
209828/0566
32
worin C die Anzahl der Kombinationen von 32 Dingen und f die durchschnittliche Fehlerrate der einzelnen Verknüpfungsschaltungen ist. Das heisst, die zusammengesetzte Wahrscheinlichkeit von d fehlerhaften und 32-d nicht fehlerhaften Verknüpfungen erhält man durch Bildung des Produktes der einzelnen Verknüpfungsfehlerwahrscheinlichkeiten und der Anzahl der verschiedenen Möglichkeiten, in denen die Bedingung auftreten kann. Die Tabelle zeigt den Wert
P für verschiedene Werte von d und f.
d
F 0 tfa P d=0 P d=4 P d=8
3. 0 % 0, 377 1. 2xlO"2 3 .0x10"
1. 1 °fo 0, 725 2. 7xlO"4 7, .8XlO-10
O. 0, 968 3. 6xlO"8 9 .8xlO~18
Daraus geht hervor, dass auch bei Einzelfehlerraten von 3 % die erwartete Anzahl von Kennzeichen mit dem Abstand acht nur drei pro eine Million verarbeiteter Muster beträgt. Diese Zahl fällt unter eins pro eine Million Muster, wenn die durchschnittliche Fehlerrate auf 1 % reduziert wird. Die Tabelle zeigt, dass die Anzahl der erwarteten Muster mit höheren Abständen sehr schnell abnimmt. Die Entscheidungseinheit 240 übernimmt die Aufgabe, das vollständige Kennzeichen im Speicher 230 auf einen Identifizierungscode
RO 9-70-012 - 20 -
209828/0566
und einen Abstand von dem zu diesem Code gehörenden Bezugswort zu reduzieren. Da die vorliegenden Musterkennzeichen nicht unbedingt einem der Bezugswörter entsprechen, kann zur Erzeugung eines Positionscodes keine Eins-zu-eins-Transformation verwendet werden. Trotzdem können durch einen Generator 241 einer oder mehrere provisorische Positionscodes aus einem Kennzeichen erzeugt und durch den Generator 242 eine oder mehrere Abstandsmessungen errechnet werden. Der (oder die) Teilcode (s) wird dann zur Erzeugung eines oder mehrerer Bezugswörter durch den Generator 243 verwendet. Der Vergleicher 244 bringt mindestens eines dieser Bezugswörter mit dem Kennzeichen in Uebereinstimmung und verändert den Positionscode entsprechend. Verschiedene Verfahren zum Ausführen dieser Funktion werden im Zusammenhang mit den Fign. 8 und 9 beschrieben.
Die Positionscodeskönnen als Bezeichnungen des Eingabemusters übertragen werden. Da jedoch eine gewisse Konstruktionsfreiheit bei der Zuordnung von Positionscodes erwünscht ist, entsprechen diese Codes normalerweise nicht genau einem gewünschten Ausgabecode. Dementsprechend liefert der Umsetzer 250 eine einfache Einszu-eins-Transformation der Positionscodes in einen gewünschten Ausgabe- oder Klassencode, wie z.B. EBCDIC oder ASCII. Solche
RO 9-70-012 - 21 -
209828/0566
-Umsetzer sind allgemein bekannt. Der Klassencode, vom Umsetzer 250 und eine Abstandsmessung vom Generator 242 werden schliesslich in einem Ausgaberegister 260 gespeichert. Obwohl hier nicht dargestellt, kann eine Benutzereinrichtung, wie z.B. die CPU 150, die Abstandsausgabe als Mass der Erkennungszuverlässigkeit verwenden. So kann beim Lesen von Texten, wo ein Ersatz der Rückweisung von Zeichen bevorzugt wird, die CPU 150 so programmiert werden, dass sie jede Erkennung annimmt, die ausserhalb des Abstandes sieben liegt. Beim Lesen von Zahlungsbilanzen oder anderen Informationen, wo ein Ersatz jedoch nicht zulässig ist, kann die CPU 150 so programmiert werden, dass sie jedes Zeichen zurückweist, dessen Abstand die Werte zwei oder drei übersteigt.
Fig. 3 zeigt ein Ablaufdiagramm für ein Programm 300, welches die Funktionen der in Fig. 2 gezeigten Erkcnnungsschaltung steuert. Das Programm "RECO" wird im Block 301 aktiviert und die Video-Eingabemuster durch den Block 302 in den Speicher gelesen. Die Muster können entweder in Stapeln oder einzeln eingelesen werden. Der Block 303 initialisiert verschiedene Register zur Anzeige der Anzahl von zu verarbeitenden Mustern und der Lage des Video-Arbeitsbereiches. Für eine der Baum-Suchmethoden (TBB, Fig. 5) muss der Block 303 auch ein Register initialisieren, um auf eine
RO 9-70-012 - 22 -
209828/0566
Speichertabelle hinzuweisen. Dazu gehört lediglich das Laden der Tabellenadresse in das Register. Als nächstes wird das Video-Muster, welches im vorliegenden Beispiel kleiner als 256 Bytes ist, an eine 256-Byte-Grenze im Speicher verschoben (Block 304). Das bedeutet, dass die acht wertniederen Bits der Musteradresse ganz 0 sind, so dass jedes Musterbyte direkt adressiert werden kann, indem man seinen verschobenen Wert in das wertniedere Byte
der Musteradresse setzt, ohne dass eine Indexzahl zu einer Basis-W
adresse addiert wird. Ein anderes Register wird dann mit der Adresse der ersten Verknüpfungsschaltung 221 im Speicher
geladen (Block 30 5). SpezialUnterprogramme 310 und 320 prüfen die Verknüpfungsschaltungen 220 aus und übernehmen die Erzeugung von Positionscode und Abstand. Eine Umsetzung stab eile 330 wandelt den Positionscode in einen Ausgabe- oder Klassencode um, wie es in Verbindung mit dem Umsetzer 250 der Fig. 2 beschrieben wurde. Der Klassencode und der Abstand werden durch den Block 340 gespeichert. Wenn ein anderes Muster zu verarbeiten ist, setzt der Block 3Oo die Steuerung zurück auf den Block 304 und schiebt ein anderes Muster in den 256 Byte grossen Arbeitsbereich. Wenn keine weiteren Muster vorliegen, wird die Steuerung an den Endblock 307 übertragen.
RO 9-70-012 - 23 -
209828/0566
Fig. 4 zeigt schematisch, einen binären Entscheidungsbaum 400 und eine Datenstruktur zum Suchen einer Vielzahl solcher Bäume, von denen jeder verschiedene Arten von Verzweigungen hat. Die Suche des Baumes 400 beginnt mit der Adressierung eines Satzes von Verzweigungen 420 (auch Entscheidungsknoten genannt) über den Eingang 410. Eine erste Verzweigung 421 wird dargestellt durch ein Wort, welches bei 470 gezeigt ist. Das Wort 470 hat eine bestimmte Adresse in einer Tabelle und enthält ein acht Bit umfassendes Adressfeld 471, das eines der 256 Bytes des Musters oder eines anderen Datenblocks spezifiziert. Da das Muster an eine 256-Byte-Grenze im Speicher verschoben wurde, kann die Adresse des gewählten Bytes erzeugt werden durch einfaches
Einsetzen des Feldes 471 in das wertniedere Byte eines Registers, welches die Anfangs adr es se des Musters enthält, ohne dass eine Addition vorgenommen wird. Das Maskenfeld 472 gibt eines der acht einzelnen Bits innerhalb des gewählten Byte an. Für eine bitorientierte Verarbeitungseinheit können die Felder 471 und 472 kombiniert werden, um ein einzelnes Musterbit direkt abzurufen. Die Adresse des gewählten Bit bezeichnet einen bestimmten Koordinatensatz innerhalb des Eingabemusters. Sein Wert (0 oder 1) bezeichnet die Intensität (weiss oder schwarz) des Musters an diesen bestimmten Koordinaten. Die Verzweigung 421 vergleicht dann dieses
RO 9-70-012 - 24 -
209828/0566
is
-Musterbit mit einem Einzelbit-Bedingungskennzeichen C 473 im Zustandsfeld 474. Wenn V /- C ist, wird der Pfad 422 zur Verzweigung 423 begangen. Wenn V = C ist, wird der Pfad 424 zur Verzweigung 425 begangen. Da die AVörter 470 in einer eindimensionalen Folge in einem. Programm stehen, kann der Pfad 422 ausgelassen werden, wobei die andere Verzweigung durch ein Verzweigungsfeld 475 angegeben ist.
Wenn die Steuerung an eine der Verzweigungen 423 und 425 übergeben wurde, wird ein weiteres Wort 470 abgerufen und der obige Vorgang wiederholt, bis eine Verzweigung erreicht ist, die einen der Aeste des Satzes 430 aufweist. Diese einzelnen Aeste, wie z.B. 431, 432, 433 usw., führen zu Astspitzen 440, die eine 1-Astspitze 441 und eine 0-Astspitze 442 umfassen. Die Astspitzen 440 geben ein vorgewähltes Kennzeichenbit an. Nach dem Setzen des entsprechenden Bits führen die Astspitzen 440 zum logischen Ausgang 450.
Der Baum 400 stellt eine Form dar, in welcher die Verknüpfüngsmoduln 220 ausgeführt werden können, d.h. , wo jeder Modul ein separater binärer Baum ist. Fig. 5 zeigt ein Verfahren zum Untersuchen einer Vielzahl von Bäumen entsprechend dem Block 310 des Hauptprogrammes. Wenn das Merkwort "TBB" (Test Bit und
RO 9-70-012 - 25 -
209828/0566
-Branch) gegeben ist, weist das Verfahren zwei explizite Argumente Rl und R2 und ein implizites Argument R3 auf, die vorzugsweise in Mehrzweck-Registern stehen. Beginnend am Eingang 501 ruft der Instruktionsblock 502 ein Wort 470 entsprechend der Verzweigung 421 ab. Die Adresse des Wortes 470 ist im Register R2 enthalten. Der Block 502 ruft ausserdem das Video-Bit (V-Bit) ab, welches durch die Felder 471 und 472 des Wortes 470 angegeben ist. Das Reihenkennzeichen S 476 des Zustandsfeldes 474 wird zuerst im Block 503 geprüft. Ist es nicht S=I (Ausgang 504), wird das angegebene V-Bit im Entscheidungsblock 505 auf Gleichheit mit dem Bedingungskennzeichen C 473 geprüft. Bei Gleichheit (Ausgang 507) wird der Inhalt des Registers R2 im Block 508 um den Wert des Verzweigungsfeldes B 475 erhöht. Das entspricht dem Pfad 424, so dass die Rückgabe der Steuerung an den Block 502 über die Leitung 509 zum Abruf der Verzweigung 425 führt. Wenn V / C ist (Ausgang 506 vom Block 505) und das Doppelkennzeichen 477 des Zustandsfeldes 474 null ist, dann erregt der Ausgang 514 den Block 526 zur Erhöhung des Argumentes R2 auf die nächstfolgende Instruktion (NSI) und gibt die Steuerung über die Leitung 509 an den Block 502 zurück. Das entspricht dem Pfad 422, da jedes Wort 470 drei Bytes (24 Bits) des Speichers belegt.
RO 9-70-012 - 26 -
209828/0566
■bo
.Um den Rest des Verfahrens darzustellen, ist die folgende Aufstellung der Teile des Wortes 470 zu betrachten, die den Verzweigungen 420 und den Astspitzen 440 entspricht.
Verzweigungs-
adresse Nl N2 N3 N4 N5 N6 N7 N8 N9 NlO Nil Ll LO
Reihenkennz. (476) 0000000 000 0 1-
Doppelkennz. (477) 0001100 110 1 _ _
Verzweige nach (475) N6 N5 Ll Ll Ll N9 NlO Ll Ll Ll Ll -
Eine Verzweigung, wie z.B. 426 (an der Adresse N3), hat einen Pfad zu einer anderen Verzweigung und einen Ast 431 zur Astspitze 441. Diese Verzweigungsart wird durch den bereits beschriebenen Teil des Verfahrens behandelt, d.h. das Wort 470 bei der Adresse N3 hat S = O und T=O. Da der Ast 431 die Bedingung V = C darstellt, wird dann die Astspitze 441 adressiert, indem man einen Wert in das Verzweigungsfeld 475 setzt, der das Register R2 auf die Adresse Ll der Astspitze 441 erhöht. Die Astspitze 442 kann auf ähnliche Weise adressiert werden. Für eine Verzweigung wie z.B. 428 muss jedoch eine andere Reihenfolge eingehalten werden, da Speicherplatz vergeudet wird, wenn eine Kopie einer der Astspitzen 440 neben eine solche Verzweigung gesetzt wird. Daher weist die Verzweigung 428 (an der Adresse N5), die über die beiden zu den Astspitzen 440 führenden Aeste 432 und 433 verfügt,
RO 9-70-012 - 27 -
209828/0566
.den Wert T - 1 in seinem Doppelkennzeichen T 477 auf. Der Ast 432 (V = C) kann wie oben behandelt werden, indem über den Ausgang 507, den Block 508 und die Leitung 509 zur Adresse Ll verzweigt wird. Wenn der Ast 433 angesteuert wird (d.h. V / C), dann erkennt der Ausgang 515 des Blockes 513, dass T = I ist und veranlasst den Block 516 zur Addition von drei Bytes zum Verzweigungsfeld 475 bevor die Leitung 509 passiert wird. Die Lage einer einzelnen 0-Astspitze 442 unmittelbar hinter der 1-Astspitze 441 erreicht dann den gewünschten Effekt.
Die Wörter 470 sind für das beschriebene TBB-Verfahren so in Reihe gelegt, dass die durch die Blöcke 508, 516 und 526 angegebenen Adressen den Block 502 dazu veranlassen, die 1-Astspitze 441 zu umgehen und direkt zum Verknüpfung saus gang 450 weiterzulaufen, wenn der Wert des gewünschten Kennzeichenbits einem bereits darin voreilige stellten Anfang s wert entspricht, d.h. die 0-Astspitze 442 wird im beschriebenen Verfahren immer ausgelassen. Wenn das Kennzeichen jedoch auf einen entgegengesetzten Wert gesetzt ist, weist das durch die Blocks 508, 516 oder 526 adressierte Wort 470 ein Reihenkennzeichen 476 von S = I auf. Der positive Ausgang 517 des Entscheidungsblockes 503 und der Block 512 veranlassen dann das Register R2 auf NSI (um drei Bytes) zu erhöhen, was dem Verknüpfungs-
RO 9-70-012 - 28 -
209828/0566
ausgang 450 entspricht. Dann veranlasst der Block 525 die Einschiebung eines in das Adressfeld 471 gesetzten Sonderwertes in das betroffene Register R3. Das ist möglich, da kein Video-Bit geprüft wird, wenn S = I ist. Das Adressfeld veranlasst R3, eine Instruktionstabelle 511 zu bezeichnen, um bestimmte Kennzeichenbits zu setzen. Die ineisten Instruktionen in der Tabelle 511 veranlassen das Setzen eines Kennzeichenbits auf einen vorgegebenen Wert. ^ Das zu setzende Bit wird durch Wählen der Adresse der gewünschten
Instruktion in der Tabelle gewählt. Der Block 511 gibt die Steuerung dann über die Leitung 518 an den Block 502 zurück.
Jeder Baum 400 kann zusammenhängend im Speicher so gesetzt werden, dass der Ausgang 450 eines Baumes identisch ist mit dem Eingang des nächsten. Dazu ist es erforderlich, dass die Adresse Nl1 der ersten Verzweigung 421 eines jeden Baumes unmittelbar hinter die 1-Astspitze 441 des vorhergehenden Baumes gesetzt wird. Eine der
beiden Leitungen 509 oder 518 fängt automatisch an, den nächsten Baum 400 abzusuchen. Die Bäume brauchen jedoch nicht in einer vorgegebenen Reihenfolge zu stehen, weil die Instruktionen im Block willkürlich adressierbar sind. Wenn alle 32 Bäume berücksichtigt worden sind, enthält das Adressfeld 471 des letzten Wortes 470 die Adresse einer 33. Instruktion in der Tabelle 511. Im Gegensatz zu
RO 9-70-012 - 29 -
209828/0566
den anderen 32 Instruktionen handelt es sich bei dieser Instruktion um eine unbedingte Verzweigung, die dazu führt, dass die Leitung 542 die Steuerung an den Endblock 523 weitergibt. (Die Instruktionen in der Tabelle 511 sind in bezug auf den Rest des Verfahrens willkürlich gewählt, und sie können auch andere Funktionen übernehmen, sie können auch vollständige Unterprogramme sein. ) Der Block veranlasst dann eine Rückkehr zum Hauptprogramm, auf der Leitung 311 in Fig. 3.
Fig. 6 zeigt ein anderes Verfahren zum Absuchen eines Satzes von Bäumen 400 entsprechend dem Block 310 des Hauptprogrammes. Das beim Block 601 begonnene Unterprogramm hat den Namen "TBSB" (Test Bit oder Setzen Bit). Die expliziten Argumente Rl und R2 werden initialisiert durch das Hauptprogramm 300 und enthalten die Basisadressen für das Video-Muster und für den Eingang 410 des ersten Entscheidungsbaumes 400. Der Block 602 ruft ein erstes Wort 470 und sein Video-Bit auf, wie es in Verbindung mit dem Block 502 (Fig. 5) beschrieben wurde. Für das Reihenkennzeichen 476 mit einem Wert von S = O übernehmen die Blocks und Leitungen 602 bis 609, 613 bis 616 und 622 entsprechend dieselben Funktionen wie die Blöcke und Leitungen 502 bis 509, 513 bis 516 und 526 im Verfahren gemäss Fig. Wenn jedoch S = I ist im Block 603, fordert der positive Ausgang
RO 9-70-012 - 30 -
209828/0568
jetzt im Block 012 den Wert des Doppelkennzeichens 477. Für alle Bäume 400, mit Ausnahme des letzten in der Reihe, enthalten die Wörter 470 den Wert T=O, und der negative Ausgang 619 wird gewählt. Block 621 wird dann erregt und setzt das durch die Felder und 472 im laufenden Wort 470 vom Block 602 angegebene V-Bit. Das bedeutet, das Kennzeichen wird in einem vorgegebenen Teil der Speicherstelle des Eingabemusters gespeichert anstatt in einem separaten Register oder Speiche rs teile. Ausserdem kann jedes Kenn-
zeichenbit auf binär 1 oder 0 gesetzt werden in Abhängigkeit von der Bedingung des C-Kennzeichens 473. Dieses Merkmal vermeidet die
Notwendigkeit, das Kennzeichenbit auf einen vorgegebenen Wert zu initialisieren.
Im Gegensatz zum Verfahren gemäss Fig. 5, in welchem eine der Astspitzen 440 lediglich umgangen wurde, wenn das gewünschte Kennzeichenbit der initialisierte Wert war, gestattet das Verfahren gemäss Fig. 6 jeder Astspitze eines jeden Baumes, einen Wert S = 1 zu enthalten, d.h. die Null-Astspitze 442 kann in diesem Verfahren explizit anstatt implizit angegeben werden. Mit dem jetzt freien Bedingungskennzeichen C 473 kann angegeben werden, welche der Astspitzen und 442 die auszuführende Instruktion hat, da das C-Kennzeichen nicht in seiner üblichen Funktion verwendet wird, sobald S = I ist. Vorzugs-
RO 9-70-012 - 31 -
209828/0566
W-cise wird der Kennzcichenbef eich jedoch auf einen bekannten Wert initialisiert und der Ausgang 604 verwendet, wenn der gewünschte Bitwert derselbe ist wie sein initialisierter Wert im Verfahren geraäss Fig. 5. Die Astspitzen des letzten Baumes 400 enthalten S = I und T=I, wodurch der positive Ausgang 618 des Entscheidungsblockes 612 vorgeschrieben wird. Der Endblock 611 beendet dann das Verfahren und überträgt die Steuerung zurück an das Hauptprogramm im Punkt 311. Die durch das Doppelkennzeichen T 477 und das Bedingungskennzeichen C 473 übernommene Doppelfunktion sowie die Verwendung des Musters selbst als Speicherraum für das Kennzeichen spart sowohl Speicherplatz als auch Ausführungszeit.
Das mit dem Namen "TREE" versehene Verfahren gemäss Fig. 7 stellt eine weitere Möglichkeit zum Absuchen einer Vielzahl von Bäumen dar. Obwohl es auf einem allgemeinen Suchprogramm basiert, werden hier nur die Merkmale beschrieben, die sich,auf die vorliegende Erfindung beziehen. TREE erfordert ein vier Byte grosses, einzeln adressierbares Wort 750 für jede Verzweigung 420 oder 440 eines Baumes 400. Die ersten drei Bits des Wortes 750 stellen ein Zustandsfeld 751 entsprechend den Bits C, S und T des Wortes 450 dar. Da diese drei Kennzeichen nicht einzelnen Bits entsprechen, wird die Gruppe oder der Bereich der Zustandsfeldwerte, die einem bestimmten
RO 9-70-012 - 32 -
209828/0566
Wert von einem oder mehreren Kennzeichen entsprechen, als "Konfiguration" des Zustandsfeldes 751 bezeichnet. Das Feld 752 ist ein Verzweigungsfeld entsprechend dem Feld 475 des Wortes 470. Ina vorliegenden Fall kann das Feld 752 jedoch mit einem Vorzeichen versehen sein, um positive und negative Verzweigungsinkremente zu gestatten. Das zwölf Bit plus Vorzeichen grosse Feld 752 gestattet einen Verzweigungsbereich von 1023 Verzweigungen. Da jedoch alle Wörter 750 jeweils vier Bytes belegen, kann dieser Bereich bei Bedarf auf 4095 Bytes erweitert werden, indem man das Feld 752 um zwei Stellen nach links verschiebt, bevor es als Verzweigungsinkrement gebraucht wird. Das Indexfeld 753 schreibt die Adresse eines der 256 Bytes der Musterdaten vor. Es entspricht dem Feld 471 des Wortes 470. Das dem Feld 472 des Wortes 470 entsprechende Maskenfeld 754 stellt eine Bitspezifikation innerhalb des durch das Feld 753 adressierten Musterbytes dar. Da im Feld 754 acht Maskenbits vorgesehen sind, können in einer Operation mehrere Muster- oder Video-Bits adressiert werden.
Das im Block 701 begonnene Verfahren TREE hat zwei Operanden. Das Register Rl enthält die Adresse Nl der ersten Verzweigung 421 im ersten auszuführenden Baum 400. Der Operand D2 (X2, B2) ist die Adresse der Eingabemuster grenze. Der Block 702 erzeugt zuerst die
RO 9-70-012 - 33 -
209828/0566
Adresse des Schlüssels (d.h. der Mustergrenze) durch Addition von Basis, Verschiebung und Indexwert des zweiten Operanden B2 + D2 + X2. Der mit mehreren Ausgängen versehene Entscheidungsblock 703 decodiert dann die Verzweigungsart aus der Konfiguation des Zustandsfeldes 751 des laufenden Wortes 750. Interne oder Textverzweigungen, deren beide Aeste zu einer anderen Verzweigung führen, sind vom "Typ 3" (d.h., die TCA-Bits des Zustandsfeldes sind "011"), wenn der gewünschte Wert des adressierten Musterbits eine Null ist. Interne Verzweigungen sind vom "Typ 5" (TCA = 101), wenn der gewünschte Wert des Musterbits von Null verschieden ist. Wenn der Block 703 eine Verzweigung vom Typ 3 feststellt, veranlasst der Ausgang 704 den Entscheidungsblock 705 zur Bildung der UND-Verknüpfung (&) des Musterbytes (V-Byte), das durch das Indexfeld 753 adressiert wurde, mit dem Maskenfeld 754 des laufenden Wortes 750. Wenn das Ergebnis der UND-Verknüpfung aus lauter Nullen besteht, veranlasst der Ausgang 706 den Block 707 zur Erhöhung des Inhalts des Registers Rl um den Wert, der im Verzweigungsfeld 752 des laufenden Wortes 750 steht. Besteht das Ergebnis nicht aus lauter Nullen, veranlasst der Ausgang 708 den Block 709, das Register Rl um vier Bytes weiterzuschalten, d.h. zum nächstfolgenden Wort 750 zu schalten. Wenn der Block 703 die Konfiguration für eine Verzweigung vom Typ 5 feststellt, veranlasst der Ausgang 710 den Block 711 zur
RO 9-70-012 - 34 -
209828/0568
UND-Verknüpfung des V-Bytes mit dem Maskenfeld. Für ein lauter Nullen enthaltendes Ergebnis führt der Ausgang 712 zum Block 709. Für ein von Null verschiedenes Ergebnis leitet der Ausgang 713 die Steuerung auf dem Block 707 weiter, der dann Rl um den Wert 752 vorschaltet. Gewöhnlich steht nur ein Bit des Maskenfeldes 754 auf 1, so dass nur ein Musterbit oder "V-Bit geprüft wird. Für diesen Fall stellen die Ausgänge 708 und 712 eine Uebereinstimmung zwischen dem V-Bit und seinem gewünschten Wert dar, während die Ausgänge 706 und 713 eine Verschiedenheit oder keine Uebereinstimmung darstellen.
Endverzweigungen mit einem oder mehreren Aesten, die zu einer Astspitze 440 führen, haben eine Zustandsfeldkonfiguration von "001" (Typ 1) oder "111" (Typ. 7). Die Leitung 714 überträgt die Steuerung auf den Etnscheidungsblock 715 für eine Verzweigung vom Typ 7. Der Ausgang 716 leitet dann die Steuerung zum Block 707 für eine UND-Verknüpfung des V-Bytes mit dem Maskenfeld 754 mit einem Null-Ergebnis. Wenn das Ergebnis der UND-Verknüpfung im Block 715 von Null verschieden ist, veranlasst der Ausgang 717 den Block 718, das Register Rl um einen Wert B+4 zu erhöhen. Der über die Leitung 720 für eine Verzweigung vom Typ 1 adressierte Block 719 führt eine komplementäre Aktion aus: Der Ausgang 721 führt zum Block 718 für ein Null-Ergebnis und der Ausgang 722 zum Block 707 für ein von Null
RO 9-70-012 - 35 -
209828/0566
verschiedenes Ergebnis der UND-Verknüpfung. Verzweigungen vom Typ 1 stellen den Fall dar, in weichern das gewünschte V-Bit einen von Null verschiedenen Wert hat, während Verzweigungen vom Typ den entgegengesetzten Fall darstellen. Für Verzweigungen beider Typen können die durch die Verzweigungsfeldwerte B und B+4 angegebenen Wörter der 1--Astspitze 441 bzw. der O-Astspitze 44Z entsprechen. Wie im TBSB-Verfahren gemäss Fig. 6 wird jedoch vorzugsweise eine der Astspitzen 440 weggelassen, so dass das durch ^ den Verzweigungswert B+4 angegebene Wort das erste Wort 750 des folgenden Baumes adressiert.
Die Wörter vom Typ 6 (TCA = 110), adressiert über die Leitung 723, stellen die Astspitzen 440 des Baumes 400 dar. Der Block 724 errechnet eine Antivalenzfunktion des V-Bytes an der im Indexfeld 753 des laufenden Wortes 750 angegebenen Adresse mit dem Maskenfeld 754 des laufenden Wortes. Das acht Bit umfassende Ergebnis der Antivalenzfunktion wird in dasselbe V-Byte zurückgespeichert. Die Verfahren TREE und TBSB verwenden somit einen designierten Teil des Musters selbst als Kennzeichen-Speicherbereich. Im Gegensatz zu TBSB fordert TREE jedoch nicht, dass die Kennzeichenbits auf denselben Anfangswert eingestellt werden. So können die Kennzeichenbits z.B. auf ihre einzelnen höchstv/ahrscheinlichen Werte voreingestellt werden und wenn dann
RO 9-70-012 - 36 -
?09828/056S
ein bestimmtes Bit mit einem entgegengesetzten Wert gefunden wird, kehrt die Antivalenzoperation seinen voreingestellten Wert um, indem eine I in die entsprechende Stelle des Maskenbytes 754 und an die anderen Stellen Nullen gesetzt werden. Das heisst, dass eine Astspitze entweder einer 1-Astspitze 441 oder der 0-Astspitze 442 entsprechen kann, auch wenn ein Wort für nur eine Astspitze 440 in einem Baum 400 vorhanden ist. Die Operation des Blockes 724 mit einem ganzen Byte gestattet auch dem Ergebnis eines Verknüpfungs moduls 220, mehr als ein Kennzeichenbit im Speicher 230 zu beeinflussen und gestattet jedem einzelnen Kennzeichenbit,durch mehrere Moduln verändert zu werden. Dieses Merkmal gestattet die gegenseitige Beeinflussung der Bäume 400 dadurch, dass effektiv in einen Baum eine Phantomastspitze von einem anderen Baum gesetzt wird.
Nach der Umkehrung des Kennzeichenbits im Block 724 veranlasst der Block 707 das Register Rl auf die Adresse des nächsten zu verarbeitenden Baumes 400 vorzuschalten. Wenn der nächste Baum anschliessend im Speicher steht, enthält das Verzweigungsfeld 752 des laufenden Wortes den Wert B = 4. Die Blöcke 707, 709 und 718 geben alle die Steuerung an den Block 703 über die Leitung 725 zurück, wenn jede Verzweigung fertig verarbeitet ist. Um das Baumsuchverfahren zu beenden, wird das letzte Wort 750 des letzten Baumes mit einem Zustands-
RO 9-70-012 - 37 -
209828/0566
feld .751 ausgestattet, das eine der folgenden Bitkombinationen aufweist "000", "010" oder "100". Die Leitung 726 veranlasst dann den Block 727, den Bedingungscode (CC) der Verarbeitungseinheit CPU 150 auf den Wert der T-Bits und C-Bits des Feldes 751 zu setzen, d.h. , CC = 0 für eine Verzweigung vom Typ 0, CC = 1 für eine Verzweigung vom Typ 2 und CC = 2 für eine solche vom Typ 4. Im Moment können diese drei Verzweigungstypen als einander gleichwertig angesehen werden. Der Block 727 führt weiter zum Endblock 728, der die Steuerung an das Hauptprogramm 300 der Fig. 3 im Punkt 311 zurückgibt.
Die Verfahren gemäss Fig. 5 bis 7 geben ein vollständiges, 32 Bit umfassendes Kennzeichen an eine zugeordnete Speicherstelle zurück. Wenn das Eingabemuster dem Ideal irgendeiner Klasse sehr nahe kommt und keine Verknüpfung ausgefallen ist, entspricht das Kennzeichen genau dem Bezugswert für diese Klasse. In diesem Fall braucht der richtige Bezugswert nicht durch Absuche einer Bezugstabelle gefunden zu werden, sondern der dem richtigen Bezugswert entsprechende Positionscode kann direkt aus dem Kennzeichen durch einen Algorithmus, wie er im Zusammenhang mit Fig. 2 beschrieben wurde, gewonnen werden. Inder Praxis sind viele Muster natürlich weit davon entfernt, perfekt zu sein, und manche Verknüpfungen liefern
RO 9-70-012 - 38 -
209828/0566
auch nicht die richtige Atitwort. Einer der Hauptvorteile der vorliegenden Erfindung liegt somit darin, dass sie keine bindenden Fordeiungen für die Perfektion der Verknüpfungskonstruktion aufstellt.
Um Störungen (d.h. falsche Bits) im Kennzeichen zu berücksichtigen, modifiziert das in Fig. 8 gezeigte Verfahren den oben beschriebenen Algorithmus. Grundsätzlich vergleicht das mit "DEC" bezeichnete Verfahren entsprechende Bits in mehreren geradzahligen und ungeradzahligen Feldern des Kennzeichens, zählt die Anzahl der Diskrepanzen zur Bildung eines Aehnlichkeitsmasses, setzt dementsprechend eine Vielzahl von Positionscodebits (P oder POSCO), bildet einen Bezugswert aus den POSCO-Bits, prüft den vollständigen Bezugswert gegen das Kennzeichen und erzeugt den vollständigen POSCO und den Abstand (D oder DIST) aus der Anzahl der nicht übereinstimmenden oder verschiedenen Bits der zuletztgenannten Prüfung. Das tieisst, anstelle der Erkennung nur einer vollständigen Identität oder komplementärer Werte zwischen Kennzeichenfeldern oder ihren Teilen,stellt das Verfahren gemäss Fig. 8 fest, ob die Kennzeichenfelder einander mehr gleichen oder mehr voneinander verschieden sind. In jedem Vergleich dieses Verfahrens muss das ganze Kennzeichen verwendet werden, es kann nicht, wie bei dem oben beschriebenen
RO 9-70-012 - 39 -
209828/0566
Idealschema, nach jedem Vergleich abgeschnitten werden. Für den speziellen Bezugs-Konstruktionsalgorithmus können die Felder wie folgt definiert werden:
POSCO-Bit "32" höchste Stelle
gerades Feld : 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ungerades Feld: 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
POSCO-Bit "16"
gerades Feld : 0 1 2 3 4 5 6 7 16 17 18 19 20 21 22 23 ungerades Feld: 8 9 10 11 12 13 14 15 24 25 26 27 28 29 30 31
POSCO-Bit "8"
gerades Feld : 0 1 2 3 8 9 10 11 16 17 18 19 24 25 26 27 ungerades Feld: 4 5 6 7 12 13 14 15 20 21 22 23 28 29 30 31
POSCO-Bit "4"
gerades Feld : 0 1 4 5 8 9 12 13 16 17 20 21 24 25 28 29 ungerades Feld: 2 3 6 7 10 11 14 15 18 19 22 23 26 27 30 31
POSCO-Bit "2"
gerades Feld : 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 ungerades Feld: I 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31
RO 9-70-012 - 40 -
209828/0566
Das POSCO-Bit "1" (das wertniedere Bit) wird durch ein anderes, noch zu erklärendes Verfahren bestimmt. Es ist zu beachten, dass die Kennzeichenbits mit O bis 31 und nicht mit 1 bis 32 numeriert sind.
Nach Beginn des Blockes 801 vom Punkt 311 im KECO-Programm v/erden der Bezugswert auf REF = 1, der Positionscode auf P = O und ein Index auf I = I initialisiert'(Block 802). Die Feldbits werden für jeden Vergleich nicht neu geordnet, sondern der Block 803 erreicht gleichwertige Ergebnisse durch eine doppelte Summierung der Antivalenzopcrationen der Kennzeichenbits S und SI-I für verschiedene
K Γ\-τΔ
Werte der laufenden Indizes K und X. Für jeden Wert des Index I errechnet der Block 803 die Anzahl U von Verschiedenheiten zwischen entsprechenden Bits der geraden und ungeraden Felder des Kennzeichenwortes. Der Ent scheidung s block 804 stellt dann fest, ob eine Mehrheit der 16 Bitpaare miteinander übereinstimmt oder nicht. Wenn acht oder weniger Verschiedenheiten vorliegen, wird über den Ausgang 80 5 der Block 806 angewiesen, die Menge 2 zum Positionscode zu addieren. Das ist das Acquivalent zum Setzen von einem der POSCO-Bits auf binär "1". Der Block 807 erweitert dann den Bezugswert durch Verkettung des Wertes REF mit sich selbst, d.h. durch seine Wiederholung. Wenn mehr als acht Verschiedenheiten vorliegen, veranlassen der Au-S--
RO 9-70-012 - 41 -
209828/0566
BAD ORIGINAL
gang 808 und der Block 809 die Komplementierung einer Kopie des Bezugswertes und eine Verkettung der komplementierten Kopie mit dem Bezugswert, Der Block 810 erhöht dann den Index I und der Ausgang 811 des Blockes 81Z kehrt zum Steuerblock 803 für fünf Wiederholungen zurück, jede für ein anderes POSCO-Bit.
Wenn die fünf höchsten POSCO-Bits durch die Blöcke 803 bis 812 bestimmt wurden, hat das Bezugswort eine Länge von 32 Bits, obwohl das wertniedere POSCO-Bit nicht geprüft wurde. Das wurde erreicht mit der Annahme, dass das erste Bit des Bezugswortes REF eine 1 im Block 802 wäre. Wenn 1=6 ist, veranlasst der Ausgang 813 den Block 814 zur Untersuchung der Richtigkeit dieser Annahme, während man gleichzeitig eine Abstandsmessung erhält. Der Block 814 führt insbesondere eine Antivalenzoperation zwischen entsprechenden Bits des Signaturwortes S und denn erzeugten Bezugswort REF durch. Der Abstand D zwischen der Signatur und dem Bezugswort ist dann die Summe der Anzahl von Einsen aus der Antivalenzoperation. Wenn der Abstand nicht grosser als die Hälfte des Abstandes zwischen dem Bezugswert und seinem Komplement ist, ist der erzeugte Bezugswert der richtige. Dementsprechend wird der Au»jfia.(f 815 vom Entscheidungsblock 816 aktiviert, wenn. D £ 16 ist. DvP/JUaff/fitifflliK5 führt direkt
RO 9-70-012 - 42 -
BAD ORIGINAL
209828/0586
sum Endblock HlV, da der angenommene Wert des wertniederen POSCO-Bits tafsächlich richtig war. Wenn jedoch D> 16 ist, veranlasst der Ausgang 818 den Block 819 zur Modifizierung dieses Versuchs-POSCO-Bits durch Erhöhung des wertniederen Bits um eine Einheit. Der Block 820 errechnet dann den Abstand zwischen dem Kennzeichen und dem neuen komplementierten Bezugswert durch Subtraktion des Wertes D von 32. Der Block 820 kann auch den gespeicherten Bezugswert komplementieren, obwohl er als solcher nicht" mehr im Erkennungsprozess gebraucht-wird. Der Block 820 übergibt die Steuerung dann an den Endblock 817, der sie am Punkt 321 dem Ilauptprogramm 300 zurückgibt.
Das Verfahren gemäss Fig· 8 stellt nicht unbedingt sicher, dass das Eingabemuster zu einer Klasse gehört, die durch das im Block 806 oder im Block b20 erzeugte POSCO-IMt angegeben wurde. Das heisst, der Abstand D kann immer noch grosser als acht sein, welches die Hälfte des Minde stab Standes innerhalb eines Paares der" Bezugswerte ist. Dadurch ist jedoch keine Bestimmung des Bezugs werte κ garantiert, der den kleinsten Abstand zum Keim.-.oichen hat, wenn <.\cr Abstand kleiner als acht ist. Wenn bei Beendigung des Verfahren» 1) > B ist, dann liegt kein Bezugswert dicht genug, um eine positivv; Erkennung zu rechtfertigen, und das Eingabemuster mm« als Rückweisung ei»«.,, gestuft werden.
RO 9-70-012 - 43 -
20 982 8/058 6 ßAD
Das Verfahren gemäss Fig. 8 stellt eine wirksame Entscheidungsmethode dar, wenn einzelne Bits gespeicherter Wörter direkt adressiert werden sollen, wie es z.B. bei der Mikroprogrammcodierung oder in einem bitorientierten Verarbeitungsgerät, der Fall ist. Bei Einbau in die Assemblerprogrammierung oder einen byteorientierten Rechner verschwendet dieses direkte Verfahren jedoch Speicherplatz und Verarbeitungszeit. Fig. 9 stellt ein Verfahren mit der Bezeichnung "SIDEC" dai·, das die Funktionen des Blocks 320 in Fig. 3 ebenfalls übernehmen kann. SIDEC erreicht eine grösscre Ausnutzung der Verarbeitungszeit und des Speichers für byteorientierte Rechner. Da etwa 95 % der Eingabemuster-Kennzeichen einen Abstand von D = O oder D = I von einem Bezugswert im Satz der Bezugswerte aufweisen, versucht SIDEC zuerst, durch implizite Verwendung der Bezugswertteile einen Positionscode für einen solchen Bezugswert direkt zu konstruieren. Wenn durch verschiedene interne Prüfungen festgestellt wird, dass kein solcher Bezugswert vorliegt, dann wird eine Tabelle mit Gruppen von 32 Bit uinfassenden Bezagswerten abgesucht. Die Suche wird direkt beendet, wenn ein annehmbarer -Bezugswert gefunden wird.
Nach Eingang in den Block 901 bewirkt "SIDEC" einen Vergleich eines
RO 9-70-012 - 44 -
209828/0566
BAD ORIGINAL
jeden Byte des Kennzeichenwortes mit einem Satz von acht Bit grosseii Teilbezugswerten, die die ersten Teile des Satzes der 32 Bit langen Bezugswerte sind. Das heisst, jedes Kennzeichenbyte wird wie ein erstes Byte des Kennzeichenwortes behandelt. Gemäss der oben erklärten Reduktion des Kerinzeichenwortes und dem Aufbau des Bezugsalgorithmus reicht jeder Teilbezugswert aus, um vier Positionscodebits anzugeben. Da jeder der 16 möglichen Teilbezugswerte acht Bits enthält und ein Abstand von vier zwischen den einzelnen Teilen eines jeden Paares von Teilbezugswerten liegt, beträgt also der grösste Abstand eines Kennzeichenbytes von einem, der Teilbezugswerte zwei. Anstatt jeden vier Bit langen Versuchs code oder Bytepositionscode (POSCOB) und seinen zugehörigen Byteabstand (DISTB) für jedes Kennzeichen neu zu berechnen, indem man die zugehörigen Bezugswerte erstellt und sie dann reduziert, erreicht man eine direkte Umwandlung durch ein Tabellcnsuchverfahrcn, wie im Block 902, viel schneller. Da jedes Keiinzeichenbyte acht Bits enthält, reicht eine Tabelle mit 2 56 Eintragungen aus, um die zugehörigenjpOSCOB- und DISTB-Werte für jedes mögliche Kennzeichenbyte zu speichern.
Die POSCOB- und DISTB-Werte für die vier Kennzeichenbytes werden in ein vier Byte umfassendes Wort 950 eingetragen. Zur Verwendung in
RO 9-70-012 - 45 -
BAD
späteren Schritten stellt man die Abstände null, eins und zwei aiii besten durch die entsprechenden Binärzahlen "0000", "0001" und "0011" dar. Da ausserdem ein Kennzcicheiibyte mit dem Abstand zwei von einem Bezugswert genauso weit entfernt ist wie von einem anderen, können alle derartigen Rückweisungs-Bytepositionscodes einen gemeinsamen Wert, wie z.B. "0000", erhalten.
Der Block 903 erzeugt als nächstes die wertniederen vier Bits für einen Versuehs-Positionscode aus den vier Bits des Positionscodes für das erste Byte POSCOBl. Der Block 904 vergleicht die ersten drei Bits aller nebeneinanderliegenden Bytepositionscodes, d.h. er vergleicht POSCOB2, POSOOB3 und POSCOB4 mit POSCOBi, POSCOB2 und POSCOB3. Wenn die Bitsätze voneinander abweichen, sind die Bytepositionscodes gegenseitig nicht konsistent und der negative Ausgang 905 führt zu einem erweiterten Suchprogramm über die Leitung 90fi. Eine Uebereinstimmtmg zwischen drei Bitsätzen besagt, dass die Bytebezugswerte für die benachbarten Bytepositionscodes entweder identisch oder komplementär zueinander sind, wie es bei einem gültigen Bezugswort sein muss. Im letzteren Fall gibt der Ausgang 907 die Steuerung an den Block 908 weiter, der das letzte oder wertniedere Bit von POSCOB2 mit dem letzten IUt von POSCOBl vergleicht. Wenn die zwei letzten Bits sich voneinander unterscheiden,
RO ')- 70-0 L'. - 46-
? 0 Ti 8 l 8 / Ü 5 6 6 bad ORIGINAL
•sind die entsprechenden Bezugswerte komplementär. Der Ausgang 909 veranlasst somit den Block 910 zum Setzen des 16er Bits des Versuchs-Positionscodes auf 0. Wenn die Bytebezugswerte für die dritten und vierten Bytes mit den Werten für die ersten und zweiten Bytes dann konsistent sein müssen, muss sich das letzte Bit von POSCOB4 ebenfalls vom letzten Bit von PQSCOB3 unterscheiden. Wenn diese Bedingung im Block 911 nicht erfüllt wird, führt der Ausgang 912/zur Leitung 906. Wenn die Bedingung erfüllt ist, veranlasst der Ausgang 913 den Block 914 dazu, das letzte Bit von POSCOB3 mit dem von POSCOB2 zu vergleichen. Das Ergebnis dieses Vergleichs zeigt an, ob der Bezugsteil für die beiden er stein Bytes identisch oder komplementär zum Bezugsteil für die beiden letzten Bytes ist. Wenn die beiden letzten Bits gleich sind, veranlasst der Ausgang den Block 916 zum Setzen des 32er Bits im Versuch-POSCO auf Null. Wenn die Bits voneinander abweichen, veranlasst der Ausgang 917 den Block 9I8 zum Setzen des 32er Bits auf 1.
Durch eine Identität zwischen den letzten Bits von POSCOB2 und POSCOIU wird das 16er Bit des Versuchs-Positionscodes im Block über den Ausgang 920 auf 1 gesetzt. Da der Bezugswert für das zweite Byte derselbe ist wie der für das erste Byte, erfordert die interne. Konsistenz, dass dann der Bezugswert für das vierte Byte mit dem
RO 9-70-D12
- 47 -
für das dritte identisch ist, d.h. , dass das letzte Bit von POSCOB4 daSKi1UjO ist 'wie das letzte: von POSCOBi. Wenn diese Bedingung nicht erfüllt ist, überträgt der Ausgang 921 des Entscheidungsblocks 922 die Steuerung auf die Leitung 906. Ist die Bedingung erfüllt, veranlasst der Ausgang 923 den Block 924 zu einem Vergleich ähnlich dem im Block 914. Dieses Mal führt jedoch eine Differenz zwischen de;η letzten Bits (Ausgang 925) zum Block 917, wahrend eine Ueber-
einstimmung (Ausgang 926) zum Block 919 führt. Die Vergleiche für g
die Blöcke 904, 908, 93 1, 914, 922 und 924 können einfach durch Antivalenzverknüpfung benachbarter Bytes der Wörter 950 erfolgen und dann durch eine Prüfung entspechender Bits des Ergebnisses.
Die Blöcke 916 und 918 führen beide zum Block 927, der den Kennzeichen-zu-Bezugswert-Abstand (DIST) auf 0 setzt. Der Block 92 8 zählt dann die Byteabstandswerte im Wort 950. Block 928 ist die letzte. Prüfung für den Versuchspositionscode. Wenn der Ausgang 930 aktiviert wird, ist DISTB 2 für alle Bytes und der Versuchscode der tatsächliche Positionscode für das Eingabemuster. Die Steuerung wird dann auf die Leitung 932 übertragen. Wenn jedoch eines der Felder DISTBl, DISTB2, DISTB3 oder DISTB4 eine Abstandsanzeige von zwei hat, überträgt der Ausgang 933 die Steuerung auf die Leitung 906. Diese letzte Prüfung ist erforderlich, weil mit Ausnähme einer kleinen Anzahl von Musterklassen ein Zurfii kweisungs-POSCOB-Wert (wie z.B. "0000") auch eine
RO 9-70-012 - 48 -
2 0 j b / ;? / U 5 6 6 .
BAD ORIGINAL
-mögliche Konfiguration für die ersten vier Bits eines gültigen POSCO ist.
Das bisher beschriebene Verfahren gemäss Fig. 9 erzeugt einen sechs Bit langen Positionscode und einen Abstandscode, sobald das Kennzeichen für das Eingabemuster kleiner als ein vorgegebener
Abstand vom Bezugswert für eine der Musterklassen ist. Diese Situation liegt im allgemeinen, für die überwiegende Mehrheit der Eingabemuster vor. Wenn der Abstand jedoch grosser ist, überträgt einer der Ausgänge 905, 912, 921 und 933 die Steuerung auf die Leitung 906 und leitet eine Suche in Erweiterung tier vollen 32 Bit grossen Bezugswerte ein. Der Block 934 vergleicht euerst das Kennzeichen mit einer Gruppe von Bezüge werten tür Entwicklung eines vollständigen sechs Bit umfassenden Positionscodee POSCO und eines Abstandes von jedem Bestugswert. Das kann durch konventionelle Tabellensuche oder Umsetztechnik oder durch. Summierung
* ι
erfolgen. Block 935 vergleicht dann jeden Abstand mit dem. konstanten Stellenwert "8", der die Hälfte des Abstardes zwischen den Bezugswerten darstellt. Wenn einer der geprüften Bezugswerte einen akzeptablen Abstandswert aufweist, beendet der Ausgang 936 die Suche sofort und läuft weiter zur Leitung 932, d.h. das Abstandskriterium ist absolut und eindeutig und der ganze Satz von Bezugswerten braucht
RO 9-70-012 - 49 -
209828/0566
niqht abgefragt zu werden. Wenn keiner der Bezugswerte in der laufenden Gruppe einen annehmbaren Abstandswert aufweist, verbindet der Ausgang 937 zum Entseheidungsblock 938, Wenn die laufende Gruppe die letzte ist, führt der Ausgang 939 zur Leitung 932. Wenn weitere Gruppen vorhanden Sind, veranlasst der Ausgang 940 den Block 941 zum Abrufen der nächsten Gruppe in der Reihenfolge. Die Steuerung kehrt dann zum Block 934 zurück» Die Leitung 932 führt zum Block 942, der Positionscode und Abstand für weitere Verwendung speichert. Der Endblock 943 gibt dann die Steuerung am Punkt 312 in Fig. 3 an das Hauptprogramm 300 zurück» Auch wenn die 32 Bit langen Bezugswerte abgesucht werden müssen, läuft die Suche durchschnittlich nur über ein Viertel der Bezugswerte, was gegenüber konventionellen Bezugssystemen einen vierfachen Vorteil darstellt.
RO 9-70-012 - 50 -
209828/056 6 ORIGINAL INSPECTED

Claims (5)

  1. PATENTANSPRÜCHE
    Verfahren zur maschinellen Erkennung von Zeichen durch Bildung von die abgetasteten Zeichen repräsentierenden Kennzeichenwörtern aus den elektronischen Abtastwerten und Reduktion Jedes der Kennzeichenwörter auf einen einer von mehreren Klassen von Zeichenmustern zugeordneten Code durch Korrelation mit wenigstens einer Bezugsgröße, dadurch gekennzeichnet, daß eine Vielzahl der Abtastwerte geprüft wird, daß für die Gesamtheit dieser Abtastwerte, die zusammen ein Kennzeichenwort bilden, ein Wert abgeleitet wird, der die Beziehung des Zeichenmusters zu einer Untergruppe der Klassen angibt, daß die Werte einer Vielzahl von Kennzeichenwörtern kombiniert werden, um einen ersten Teilcode zu bilden, der eine Klasse teilweise identifiziert, daß wenigstens eine Bezugsgröße aus den das Kennzeichenwort bildenden Daten abgeleitet wird, um einen zweiten Teilcode zu erzeugen, der eine Klasse teilweise identifiziert, und daß die genannten ersten und zweiten Teilcodes zu einer Identifikation der Klasse kombiniert werden.
  2. 2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß eine Vielzahl von logischen Schaltungen je eine Vielzahl von Teilmustern des Eingabezeichenmusters prüft, daß die logischen Schaltungen als Ergebnis der Prüfung binäre Ausgangssignale abgeben, welche Elemente der Kennzeichenwörter
    RO 9-70-012 - .51 -
    209828/0566
    darstellen, daß wenigstens Teile der Kennzeichenwörter miteinander verglichen werden? und daß die nachfolgende Korrelation mit der Bezugsgröße abgebrochen wird, wenn der Hamming-Abstand zwischen dem Kennzeichenwort und der Bezugsgröße eine vorgegebene Größe erreicht, wobei jede der Bezugsgrößen eine Vielzahl von Binärwerten umfaßt und einer Klasse von möglichen Eingabezeichenmustern zugeordnet ist.
  3. 3. Verfahren nach Anspruch 1 und/oder 2, dadurch gekennzeichnet, daß die Ausgangssignale der logischen Schaltungen bezüglich der Bezugsgrößen im wesentlichen konstante paarweise Hamming-Abstände aufweisen.
  4. 4. Verfahren nach einem oder mehreren der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß das Kennzeichenwort mit einer einzigen Bezugsgröße verglichen wird und daß diese Bezugsgröße, oder ihr Komplement, oder keine Bezugsgröße, die korrekte für das dem Kennzeichenwort entsprechende Muster ist.
  5. 5. Verfahren nach einem oder mehreren der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß die logischen Schaltungen in Form von logischen Entscheidungsbäumen realisiert werden, die adressierbare, Adressen-, Zustands- und Verzweigungsfelder aufweisende Verzweigungswörter benutzen, daß mit einem ersten aus dem Zustandsfeld decodierten Befehl ein Teil der von dem Adressenfeld spezifizierten Eingabedaten
    RO 9-70-012 - 52 -
    209823/0566
    aufgerufen wird, diese Daten mit einem Zustandskenriseichen verglichen werden, und daß danach ein neues Verzweigungswort aufgerufen wird, daß mit einem zweiten Befehl ein Teil eines Kennzeichenwortes auf einen bestimmten Wert gesetzt wird und danach ein drittes Verzweigungswort aufgerufen wird, und daß mit einem dritten Befehl das Aufrufen der Verzweigungswörter beendet wird, wenn das Kennzeichenwort vollständig ist.
    RO 9-70-012 - 53 -
    2 0 y b ι is / υ ο 8 6
    Leerseite
DE19712159884 1970-12-07 1971-12-02 Verfahren zur maschinellen Erkennung von Zeichen Pending DE2159884A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US9567670A 1970-12-07 1970-12-07

Publications (1)

Publication Number Publication Date
DE2159884A1 true DE2159884A1 (de) 1972-07-06

Family

ID=22253099

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19712159884 Pending DE2159884A1 (de) 1970-12-07 1971-12-02 Verfahren zur maschinellen Erkennung von Zeichen

Country Status (7)

Country Link
US (1) UST966011I4 (de)
AT (1) AT326738B (de)
CH (1) CH534927A (de)
DE (1) DE2159884A1 (de)
FR (1) FR2117165A5 (de)
GB (1) GB1338287A (de)
IT (1) IT941904B (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3112093A1 (de) * 1981-03-27 1982-10-07 Eike Prof. Dr.-Ing. 3392 Clausthal-Zellerfeld Mühlenfeld Verfahren zur mustererkennung mit gesteuerter messdatenauswahl

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5819109B2 (ja) * 1978-11-10 1983-04-16 肇産業株式会社 パタ−ン判別方法
US4499596A (en) * 1982-06-28 1985-02-12 International Business Machines Corporation Adaptive facsimile compression using a dynamic extendable decision network
JP2004126841A (ja) * 2002-10-01 2004-04-22 Renesas Technology Corp プログラム実装方法
CN111709464B (zh) * 2020-06-02 2023-06-20 中科九度(北京)空间信息技术有限责任公司 基于数据字典配置和印章图像识别技术的系统及筛选方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3112093A1 (de) * 1981-03-27 1982-10-07 Eike Prof. Dr.-Ing. 3392 Clausthal-Zellerfeld Mühlenfeld Verfahren zur mustererkennung mit gesteuerter messdatenauswahl

Also Published As

Publication number Publication date
AT326738B (de) 1975-12-29
CH534927A (de) 1973-03-15
UST966011I4 (en) 1978-01-03
IT941904B (it) 1973-03-10
AU3585971A (en) 1973-05-24
ATA1038871A (de) 1975-03-15
GB1338287A (en) 1973-11-21
FR2117165A5 (de) 1972-07-21

Similar Documents

Publication Publication Date Title
DE602004010922T2 (de) Speicher und stromeffizienter mechanismus für schnelles tabellennachschlagen
EP0010195B1 (de) Vorrichtung zur Adressumwandlung in einer Datenverarbeitungsanlage
DE60318722T2 (de) Eine programmierbare regelverarbeitungsvorrichtung für hochgeschwindigkeits-kontextsuchen und -erkennung von mustern in daten
DE3991231C2 (de) Vektorprozessor und Verfahren zum Suchen einer Stichwortzeichenfolge in einer Textzeichenfolge
DE2541204C3 (de) Einrichtung zur Fehlerkorrektur
DE2640537A1 (de) Verfahren und vorrichtung zum unterscheiden zwischen n groesser als 2 alphabeten angehoerenden zeichen
DE2712575C2 (de) Assoziatives Speichersystem in hochintegrierter Halbleitertechnik
DE1931966C3 (de) Datenverarbeitungsanlage mit Assoziativspeichern
DE2740105A1 (de) Optische zeichenerkennungseinrichtung
DE2646162B2 (de) Schaltungsanordnung zum Ersetzen fehlerhafter Informationen in Speicherplätzen eines nicht veränderbaren Speichers
DE2755875C2 (de)
DE2456709C2 (de) Schaltungsanordnung zur Fehlererkennung und -korrektur
DE2421130C2 (de)
DE2540101A1 (de) Automatisches zeichenerkennungs- system
DE2321701A1 (de) Kartenleser mit mehreren lesekanaelen
DE102018115158A1 (de) NC-Programm-Umwandlungseinrichtung
DE2159884A1 (de) Verfahren zur maschinellen Erkennung von Zeichen
EP0043571B1 (de) Schaltungsanordnung zur maschinellen Zeichenerkennung
DE102014105218A1 (de) Suchvorrichtung mit Verwendung von endlichen Automaten für Teilworte
DE2336676B2 (de) Einrichtung zur Modifizierung von Mikroprogrammbefehlen
DE2222350B2 (de) Fehlerdiagnoseeinrichtung fuer eine zeichenerkennungsmaschine und verfahren zu deren betrieb
DE1524416A1 (de) Anordnung zur Auswahl von Datenreferenzen zum Quervergleich mit einem unbekannten Datensatz
DE2226669A1 (de) Verfahren und vorrichtungen fuer programmverzweigung und registeradressierung
DE2348486A1 (de) Anordnung und verfahren zur schnellen auswertung von segmentierten daten
DD294115A5 (de) Vorrichtung und verfahren zur signalverarbeitung

Legal Events

Date Code Title Description
OHW Rejection