DE102005033274B4 - Mustervergleichsarchitektur - Google Patents

Mustervergleichsarchitektur Download PDF

Info

Publication number
DE102005033274B4
DE102005033274B4 DE102005033274A DE102005033274A DE102005033274B4 DE 102005033274 B4 DE102005033274 B4 DE 102005033274B4 DE 102005033274 A DE102005033274 A DE 102005033274A DE 102005033274 A DE102005033274 A DE 102005033274A DE 102005033274 B4 DE102005033274 B4 DE 102005033274B4
Authority
DE
Germany
Prior art keywords
distance values
distance
match
bit fields
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE102005033274A
Other languages
English (en)
Other versions
DE102005033274A1 (de
Inventor
Peramachanahalli Ramkumar
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of DE102005033274A1 publication Critical patent/DE102005033274A1/de
Application granted granted Critical
Publication of DE102005033274B4 publication Critical patent/DE102005033274B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/02Comparing digital values
    • 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
    • G06V10/751Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/02Indexing scheme relating to groups G06F7/02 - G06F7/026
    • G06F2207/025String search, i.e. pattern matching, e.g. find identical word or best match in a string
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/12Fingerprints or palmprints
    • G06V40/1365Matching; Classification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Multimedia (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Analysis (AREA)

Abstract

Vorrichtung (100) für einen Mustervergleich, umfassend:
eine Bitfeld-Wähleinheit (206), um ein Eingabedatum in Eingabebitfelder aufzuteilen und eine oder mehrere Bezugsvorlagen in entsprechende Bezugsbitfelder aufzuteilen, wobei die Zahl der Bits in den Eingabebitfeldern und den Bezugsbitfeldern programmierbar ist; und
eine Vergleichseinheit (208), um einen oder mehrere Abstandswerte zwischen den Eingabebitfeldern und den entsprechenden Bezugsbitfeldern zu bestimmen und den oder die Abstandswerte, die zu den Bezugsbitfeldern gehören, zu einem oder mehreren Nettoabstandswerten zu kombinieren, die der oder den Bezugsvorlagen entsprechen.

Description

  • STAND DER TECHNIK
  • Die Ausführungsformen der vorliegenden Erfindung betreffen allgemein die Mustererkennung, und insbesondere den schnellen Vergleich von Daten mit Bezugsvorlagen oder -mustern.
  • In einem allgemeinen Verfahren für einen Mustervergleich werden Bezugsmuster mit Eingabedaten verglichen, um zu bestimmen, welches Bezugsmuster am besten mit den Eingabedaten übereinstimmt.
  • Eine Mustervergleichsarchitektur ist eine auf Computer laufende Universal-Mustererkennungssoftware. Diese Architektur weist die folgenden Vorteile auf: a) sie kann aufgrund der Softwareimplementierung an verschiedene Mustererkennungsalgorithmen angepaßt werden; und b) es kann typischerweise eine große Zahl von Bezugsvorlagen benutzt werden, da die Zahl der Bezugsvorlagen gewöhnlich nur durch die Menge des Computersystem-Speichers begrenzt wird. Doch diese Architektur hat unter den folgenden Nachteilen zu leiden: Langsame Leistung, hoher elektrischer Stromverbrauch, zu groß für viele Anwendungen, teuer, und komplexe Software. Solche Architekturen eignen sich nicht gut für Anwendungen, die einen schnellen Mustervergleich erfordern oder die geringen Strombedarfs- und die Portabilitätsanforderungen von eingebetteten Anwendungen erfüllen müssen.
  • Eine andere Mustervergleichsarchitektur verwendet einen inhaltsadressierbaren Speicher, der einen eingebetteten Hardwarekomparator in jeder Speicherzelle umfaßt, um den Inhalt seines Speicherorts der Vergleichsfunktion des eingebetteten Komparators gemäß mit einem entsprechenden Bit der Eingabedaten zu vergleichen. Diese Architektur weist die Vorteile auf, daß sie schnell (aufgrund ihrer Hardwareimplementierung) und relativ klein ist. Doch sie hat unter mehreren Nachteilen zu leiden: 1) Einschränkungen hinsichtlich der Art und Komplexität der Algorithmen, die verwendet werden können, 2) relativ hoher Stromverbrauch, 3) hochkomplexes Design auf der Speicherzellenebene, und 4) nicht auf eine große Zahl von Bezugsvorlagen skalierbar. Das Implementieren einer Hardwarearchitektur für jede Speicherzelle ist teuer, schließt komplexere Vergleichskriterien aus und schränkt die Flexibilität bei der Implementierung mehrfacher Vergleichskriterien ein. Zum Beispiel kann solch eine Mustervergleichsarchitektur typischerweise nur einen genauen Bitvergleich umfassen, um zu bestimmen, welches gespeicherte Bezugsmuster, wenn überhaupt, mit sämtlichen Bits der Eingabedaten übereinstimmt. Komplexere Vergleichskriterien wären zu komplex und/oder teuer, um in dieser Architektur verwendet zu werden.
  • EP 1 369 793 A1 betrifft ein Mustervergleichs- und Mustererkennungssystem für einen Mustervergleich und eine Mustererkennung von Eingabedaten. Eine Vielzahl von Referenzwörtern, die auf einem zweiten Abstandsindex basieren, der die Kodierung eines ersten Abstandsindexes ermöglicht, werden in einem assoziativen Speicherkern vorab registriert. In einer ersten Pipeline-Stufe wird ein aufgefundenes Wort mit einer vorab festgelegten Anzahl von Bits aus Eingabedaten in einem vorab festgelegten Taktzyklus extrahiert und das aufgefundene Wort wird mit dem zweiten Distanzindex kodiert und an den Kern ausgegeben. In einer zweiten Pipeline-Stufe sucht der Kern nach einem Referenzwort, das größte Ähnlichkeit in Bezug auf das aufgefundene Wort (Gewinner) aufweist, das in dem vorangehenden Taktzyklus erhalten wurde. In einer dritten Pipeline-Stufe wird das von dem Kern ausgegebene Ergebnis in dem vorangehenden Taktzyklus analysiert, wird ein Gewinner auf der Grundlage einer speziellen Priorität ermittelt und werden eine Adresse, die den Ort des Gewinners und den Abstand zwischen den Eingabedaten und dem Gewinner angibt, kodiert und ausgegeben.
  • US-5,717,908 betrifft ein Mustererkennungssystem, das eine arithmetische logische Einheit mit vier Adressen verwendet. Zwei der Adressen können als Quellen für Operanden definiert sein. Zwei der vier Adressen können als ein Ziel für das Ergebnis der Recheneinheit und als ein Zeiger definiert sein, der durch eine Zeiger-Pipeline aktualisiert wird. Es gibt zwei arithmetische Pipelines und zwei Zeiger-Pipelines, die parallel operieren und Berechnungen durchführen, die durch speziell entwickeltes Anweisungsformat angegeben werden.
  • Die US-5,295,198 betrifft die Musteridentifizierung durch Analyse von digitalen Wörtern. Genauer gesagt offenbart sie ein Verfahren und eine Vorrichtung zum Analysieren von digitalen Multi-Bit-Wörtern und Identifizieren von deren Quelle oder Inhalt. Die digitalen Wörter werden in Multi-Bit-Felder umgewandelt, wobei jedes Feld ein Teil des digitalen Worts ist oder mit einem oder mehreren schreibenden Parametern der Quelle korrespondiert.
  • Auch wenn die obigen Architekturen für einige Mustererkennungsanwendungen geeignet sind, erfordern andere Anwendungen eine Mustervergleichsarchitektur, die schnell ist, eine Auswahl an mehrfachen Vergleichsalgorithmen (einschließlich komplexerer Algorithmen) ermöglicht, und relativ wenig Strom verbraucht. Deshalb besteht ein Bedarf nach verbesserten Mustervergleichsarchitekturen.
  • Der vorliegenden Erfindung liegt somit die Aufgabe zugrunde, eine Mustervergleichsarchitektur bereitzustellen, die schnell ist, eine Auswahl an mehrfachen Vergleichsalgorithmen ermöglicht und relativ wenig Strom verbraucht.
  • Erfindungsgemäß wird diese Aufgabe gelöst durch eine Vorrichtung gemäß Patentanspruch 1.
  • Außerdem wird diese Aufgabe gelöst durch ein Verfahren gemäß Patentanspruch 12.
  • Schließlich wird diese Aufgabe auch gelöst durch ein System gemäß Patentanspruch 20.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Verschiedene Ausführungsformen der vorliegenden Erfindung werden beispielhaft und auf nicht einschränkende Weise in den beiliegenden Zeichnungen veranschaulicht, wobei gleiche Bezugszeichen gleiche Elemente anzeigen.
  • 1 ist ein Blockdiagramm eine Vorrichtung für einen Mustervergleich nach einer Ausführungsform der vorliegenden Erfindung.
  • 2 ist ein Blockdiagramm der flexiblen Vergleichs- und Klassifikationseinheit von 1 nach einer Ausführungsform der vorliegenden Erfindung.
  • 3 ist ein Blockdiagramm der Steuereinheit von 1 nach einer Ausführungsform der vorliegenden Erfindung.
  • 4 ist ein Blockdiagramm einer kaskadierten Mustervergleichsarchitektur nach einer Ausführungsform der vorliegenden Erfindung.
  • 5 ist ein Blockdiagramm eines Computersystems, mit welchem Ausführungsformen der vorliegenden Erfindung verwendet werden können.
  • 6 ist ein Flußdiagramm, das ein Verfahren für einen Mustervergleich nach einer Ausführungsform der vorliegenden Erfindung darstellt.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Es wird ein Verfahren, eine Vorrichtung und ein System für einen Mustervergleich beschrieben. In der folgenden Beschreibung werden zur Erläuterung zahlreiche spezifische Details dargelegt, um ein gründliches Verständnis verschiedener Ausführungsformen der Erfindung zu ermöglichen. Doch für den Fachmann versteht es sich, daß Ausführungsformen der Erfindung ohne die spezifischen Details in die Praxis umgesetzt werden können. In anderen Fällen werden Strukturen und Geräte in Blockdiagrammform gezeigt, um zu vermeiden, daß Ausführungsformen der Erfindung schwer verständlich werden.
  • Die Bezugnahme in dieser Patentschrift auf „eine Ausführungsform" bedeutet, daß ein bestimmtes Merkmal, eine Struktur oder Eigenschaft, die in Verbindung mit der Aus führungsform beschrieben wird, in mindestens einer Ausführungsform der Erfindung eingeschlossen ist. Die Phrase „in einer Ausführungsform", die an verschiedenen Stellen in der Patentschrift auftritt, bezieht sich nicht unbedingt jedes Mal auf dieselbe Ausführungsform.
  • Einige Beispiele für Mustervergleichsanwendungen sind die Authentifizierung (wie z.B. Gesichts-, Stimmen-, Fingerabdruck-, Unterschriften- und Irisvergleich), die Lagerbestandsaufnahme (wie z.B. Strichcodes und Hochfrequenzerkennung), die Kommunikation (wie z.B. Sprach-, Ton- und Bilderkennung und -kompression, und Header-Parsing), und die industrielle Kontrolle (wie z.B. Teileprüfung und vorbeugende Wartung).
  • Eingabedaten aus solch einer Anwendung können einem oder mehreren Vergleichsalgorithmen entsprechend mit einem Satz Bezugsmustern oder -vorlagen verglichen werden, um verschiedene Abstandmessungen zwischen den Echtzeitdaten und den Bezugsvorlagen zu erzeugen. Eine Abstandmessung ist eine Bestimmung der Differenz zwischen zwei Daten einer Abstandsformel oder einem Algorithmus entsprechend. Einige Beispiele für solche Abstandsmessungen sind die bitgenaue Übereinstimmung, der Hamming-Abstand, der euklidische Abstand, der mittlere Größenabstand und der Korrelationsabstand. Bestimmte Anwendungen können mehrfache Arten von Abstandsmessungen verwenden. Dadurch kann eine Möglichkeit implementiert werden, eine Vielfalt aus einer oder mehreren Abstandsmessungen zu wählen.
  • In einigen Anwendungen können nach dem Erzeugen der Abstandsmessungen die Abstandsmessungen weiter verarbeitet oder klassifiziert werden, um einem oder mehreren Klassifikationskriterien entsprechend zu bestimmen, welche Bezugsvorlagen aus dem gewählten Satz am besten mit den Eingabedaten übereinstimmen. Zum Beispiel kann bestimmt werden, welche Bezugsvorlagen die beste Übereinstimmung, die schlechteste Übereinstimmung, die durchschnittliche Übereinstimmung und/oder die mittlere Übereinstimmung für ein gegebenes Eingabedatum sind. Die Art der Entscheidungen, die auf der Basis der „Übereinstimmungen" getroffen werden, kann je nach Anwendung verschieden sein, wodurch eine Mustervergleichsarchitektur implementiert werden kann, die wählbare Klassifikationen von Abstandsmessungen bereitstellt.
  • Nun Bezug nehmend auf 1, wird ein Blockdiagramm einer Vorrichtung für einen Mustervergleich 100 nach einer Ausführungsform der vorliegenden Erfindung gezeigt. Die Vorrichtung für einen Mustervergleich 100 kann eine Möglichkeit bieten, einen Satz von einer oder mehreren Abstandsmessungen zu wählen, die erzeugt werden sollen (z.B. bitgenaue Übereinstimmung, Hamming-Abstand, euklidischer Abstand, mittlerer Größenabstand und/oder Korrelationsabstand), kann eine Möglichkeit bieten, die Abstandsmessungen einem oder mehreren gewählten Klassifikationskriterien (z.B. beste Übereinstimmung, schlechteste Übereinstimmung, durchschnittliche Übereinstimmung und/oder mittlere Übereinstimmung) entsprechend zu klassifizieren, und kann einen Nachschlagetabellenmechanismus mit zugehörigen logischen und arithmetischen Vergleichsmechanismen umfassen, um ein Eingabedatum mit einem Satz Bezugsvorlagen zu vergleichen und auf der Basis der Benutzereinstellungen einen Index der übereinstimmenden Vorlage(n) bereitzustellen.
  • In einer Ausführungsform kann die Vorrichtung für einen Mustervergleich 100 in einem Speichergerät integriert sein, so daß der Chipspeicher benutzt werden kann, um große Sätze von Bezugsvorlagen zu speichern, auf die sehr schnell zugegriffen werden kann, ohne einen Host-Bus zu belegen. In einer Ausführungsform kann die Vorrichtung für einen Mustervergleich 100 als Mustervergleichsbeschleuniger im Prozessor eingebettet sein. In einer Ausführungsform kann eine eingebettete Vorrichtung für einen Mustervergleich 100 auf eine Vergleichsanweisung des Prozessors abgebildet sein, um einen schnellen, flexiblen, komplexen Datenvergleich samt Klassifikation zu gewährleisten, während dem Prozessor erlaubt wird, andere Aufgaben durchzuführen. Solch ein Prozessor kann eine eingebettete Vorrichtung für einen Mustervergleich 100 vorteilhafterweise für verschiedene Anwendungen nutzen, wie z.B. Mustererkennung, Abzweigungsprognose, intelligentes Caching, adaptiv angepaßte Filterung und Instruction Level Encryption.
  • Weiter Bezug nehmend auf 1, kann ein Eingangspuffer 106 Eingabedaten über Eingänge 102 empfangen und die Eingabedaten zur nachfolgenden Verarbeitung durch eine flexible Vergleichs- und Klassifikationseinheit 108 speichern. In einer Ausführungsformen ist der Eingangspuffer 106 mit Dual-Port oder doppelter Puffereng, um selbst dann, wenn vorherige Eingabedaten zur Verarbeitung durch die flexiblen Vergleichs- und Klassifikationseinheit 108 abgerufen werden, das asynchrone Laden neuer Eingabedaten zu erlauben.
  • Ein Vorlagenspeicher 104 kann verwendet werden, um Bezugsmuster oder -vorlagen von Eingängen 102 zu empfangen und die Bezugsvorlagen zur nachfolgenden Verarbeitung durch die flexible Vergleichs- und Klassifikationseinheit 108 zu speichern. In einer Ausführungsform kann der Vorlagenspeicher 104 mit Dual-Port oder doppelter Puffereng sein, um das gleichzeitige Laden und Zugreifen auf die Bezugsvorlagen zu erlauben. In verschiedenen Ausführungsformen kann der Vorlagenspeicher 104 auf verschiedenen Speichertechnologien basieren, um die Anforderungen der Zielanwendung an die Speichergröße, Leistung, Geschwindigkeit, Nichtflüchtigkeit usw. zu erfüllen. Zum Beispiel kann der Vorlagenspeicher 104 mit Halbleitergeräten wie Nur-Lese-Speichern (ROMs), Schreib-/Lesespeichern (RAMs), dynamischen Schreib-/Lesespeichern (DRAMs), lösch- und programmierbaren Lesespeichern (EPROMs) Flash-Speichern oder elektrisch löschbaren Lesespeichern (EEPROMs) implementiert sein.
  • Weiter Bezug nehmend auf 1, können Daten oder Vektoren aus dem Eingangspuffer 106 und dem Vorlagenspeicher 104 den Eingängen der flexible Vergleichs- und Klassifikationseinheit 108 zugeführt werden. Wie in Verbindung mit 2 ausführlicher beschrieben, kann die flexible Vergleichs- und Klassifikationseinheit 108 konfiguriert sein, um verschiedene Datenbreiten zu vergleichen und zu klassifizieren, die Eingabedaten und Bezugsvorlagen in Teilfelder oder Dimensionen für den Vergleich und die Klassifikation aufzuteilen oder zu schneiden, Vergleiche verschiedener Art durchzuführen, um verschiedene unterschiedliche Abstandsmessungen zwischen den Eingabedaten und Bezugsvorlagen (z.B. bitgenaue Übereinstimmung, Hamming-Abstand, euklidischer Abstand, mittlerer Größenabstand und/oder Korrelationsabstand) zu erzeugen, die Abstandsmessungen für die verschiedenen Dimensionen der Eingabedaten aggregieren oder kombinieren, um Nettoabstandsmessungen zu erhalten, und die Nettoabstandsmessungen einem oder mehreren gewählten Kriterien (z.B. beste Übereinstimmung, schlechteste Übereinstimmung, durchschnittliche Übereinstimmung und/oder die mittlere Übereinstimmung) entsprechend zu klassifizieren. Die flexible Vergleichs- und Klassifikationseinheit 108 kann auch einen Mechanismus umfassen, um eine oder mehrere Entscheidungen auf der Basis der ermittelten Übereinstimmungen und bestimmter Grenzbedingungen zu treffen, und diese Entscheidungen über ein oder mehrere Entscheidungskennzeichen 124 anzuzeigen. Die flexible Vergleichs- und Klassifikationseinheit 108 kann auch einen Kaskaden-PMU-Eingang 112 umfassen, um das Kaskadieren von mehrfachen Vorrichtungen für einen Mustervergleich 100 zu erlauben, um größere Zahlen von Bezugsvorlagen oder Vektordimensionen vergleichen zu können. Nähere Details einer Ausführungsform der flexiblen Vergleichs- und Klassifikationseinheit 108 werden weiter unten in Verbindung mit 2 beschrieben.
  • Weiter Bezug nehmend auf 1, kann ein Ausgangspuffer 116 die Ausgabe 126 von der flexiblen Vergleichs- und Klassifikationseinheit 108 speichern und die gepufferten Ergebnisse 118 einem Multiplexer 120 zuführen. Die Ausgabe 126 der flexiblen Vergleichs- und Klassifikationseinheit 108 kann den Indexwert der ermittelten Bezugsvorlagenübereinstimmungen, die übereinstimmenden Bezugsvorlagen, die zugehörigen Nettoabstandsmessungen und/oder andere relevante Vergleichsdaten umfassen. In einer Ausführungsform ist der Ausgangspuffer 116 ein First-in-First-out (FIFO)-Stapel. In einer Ausführungsform empfängt der Multiplexer 120 die gepufferten Ergebnisse 118 aus dem Ausgangspuffer 116 und empfängt auch die Ausgabe 126 direkt von der flexiblen Vergleichs- und Klassifikationseinheit 108. In einem Modus (z.B. selbstständiger PMU-Modus) kann der Multiplexer 120 die gepufferten Ergebnisse 118 der PMU-Endausgang 122 zuführen. In einem anderen Modus (z.B. ein Kaskaden-PMU-Modus) kann der Multiplexer 120 die Ausgabe der flexiblen Vergleichs- und Klassifikationseinheit 108 dem PMU-Endausgang 122 direkt zuführen. Die PMU-Endausgabe 122 kann dem Hostsystem oder sonstigen Gerät als die Vergleichs-/Klassifikationsendausgabe der flexiblen Vergleichs- und Klassifikationseinheit 108 zugeführt werden.
  • In einer Ausführungsform kann der Ausgangspuffer 116 mit einer Steuereinheit 110 zusammenarbeiten, um geeignete Anzeiger (z.B. Unterlauf, Überlauf, halb voll) zu erzeugen, um Statusinformation an das Hostsystem bereitzustellen. Solche Anzeiger können dem Hostsystem erlauben, die Anzeiger periodisch abzufragen und zu antworten, nachdem eine gewählte Zahl von Eingabevektoren verglichen und klassifiziert worden sind. Auf diese Weise kann das Hostsystem andere Aufgaben durchführen, während die Vorrichtung für einen Mustervergleich 100 einen Satz Eingabevektoren vergleicht und klassifiziert.
  • Weiter Bezug nehmend auf 1, kann die Steuereinheit 110 verschiedene Konfigurationsoptionen für die Vorrichtung für einen Mustervergleich 100 vorsehen. Zum Beispiel kann die Steuereinheit 110 die Datengrößen/-weiten steuern, die Zahl und/oder Weite der Vektordimensionen, in welche die Eingabedaten und Bezugsvorlagen aufgeteilt werden, die Wahl einer oder mehrerer Abstandsmessungen, die bei jedem Vergleich erzeugt werden sollen, die Wahl einer oder mehrerer Klassifikationskriterien, die verwendet werden sollen, und die Wahl der verschiedenen Modi der Vorrichtungen für einen Mustervergleich, wie z.B. Kaskadenmodi usw. Die Steuereinheit 110 kann auch die Ablaufsteuerung der Datenverarbeitung und der Übertragung durch die verschiedenen Vorrichtungen für einen Mustervergleich 100 steuern. Die Steuereinheit 110 kann auch eine externe Schnittstelle für ein Hostsystem oder anderes Gerät bereitstellen, das mit der Vorrichtung für einen Mustervergleich 100 zusammenarbeitet. In einer Ausführungsform ist die externe Schnittstelle eine speicherorientierte Schnittstelle. In einer Ausführungsform ist die externe Schnittstelle eine Eingabe/Ausgabe (E/A)-orientierte Schnittstelle. Nähere Details einer Ausführungsform der Steuereinheit 110 werden weiter unten in Verbindung mit 3 beschrieben.
  • Nun Bezug nehmend auf 2, wird ein detaillierteres Blockdiagramm der flexiblen Vergleichs- und Klassifikationseinheit 108 von 1 nach einer Ausführungsform der vorliegenden Erfindung gezeigt. Eine Bitfeld-Wähleinheit 206 kann konfiguriert sein, um verschiedene Größen oder Bitweiten der Eingabedaten 204 und Bezugsvorlagen 202 jeweils aus dem Eingangspuffer 106 und dem Vorlagenspeicher 104 zu handhaben. Die Eingabedaten 204 und Bezugsvorlagen 202 können Daten oder Sektoren darstellen, die verschiedene Dimensionen oder Teilfelder haben können. Die Bitfeld-Wähleinheit 206 kann konfiguriert sein, im die Eingabedaten 204 und Bezugsvorlagen 202 in ein oder mehrere Bitfelder konfigurierbarer Größe zu schneiden oder aufzuteilen, die verschiedene Dimensionen der Vektoren darstellen. Die Eingabedaten 204 und Bezugsvorlagen 202 können zum Beispiel 32 Bit-Vektoren sein, die vier Dimensionen Rot, Grün, Blau und Intensität für Farbanzeigepixeldaten umfassen. In diesem Fall kann die Bitfeld-Wähleinheit 206 konfiguriert sein, um 32 Bit-Datenweiten zu handhaben und die 32 Bit-Eingabedaten 204 und 32 Bit-Bezugsvorlagen 202 in vier 8 Bit-Stücke oder Bitfelder aufzuteilen oder zu schneiden, die die folgenden Vektordimensionen darstellen: 8 Bit für Rot (R); 8 Bit für Grün (G); 8 Bit für Blau (B); und 8 Bit für die Intensität (I).
  • Weiter Bezug nehmend auf 2, kann eine Vergleichseinheit 208 jedes Bitfeld oder jede Dimension der Eingabedaten 204 einem oder mehreren Vergleichsalgorithmen entsprechend mit dem entsprechenden Bitfeld oder der entsprechenden Dimension der Bezugsvorlage 202 vergleichen, um je nach Konfiguration eine oder mehrere Abstandsmessungen zu erzeugen. In einer Ausführungsform kann die Vergleichseinheit 208 die Abstandsmessung für jede Dimension mit einem entsprechenden Gewichtungsfaktor multiplizieren, der aus einem internen Register abgerufen werden kann. Zum Beispiel kann eine bestimmte Farbvektorvergleichsanwendung bestimmen, daß Rot und die Luminanz wichtigere Vergleichsdimensionen als Blau und Grün sind. In diesem Fall können für die Rot-, Grün-, Blau- und Luninanz-Dimensionen jeweils Gewichtungsfaktoren von 0,90, 0,30, 0,40 und 0,95 verwendet werden. In einer Ausführungsform kann die Vergleichseinheit 208 die Abstandsmessungen aus allen Bitfeldern oder Dimensionen aggregieren oder kombinieren (mit oder ohne Anwendung der Gewichtungsfaktoren, je nach Konfiguration), um eine Nettoabstandsmessung zwischen den Eingabedaten 204 und der Bezugsvorlage 202 zu erzeugen.
  • Je nach Zielanwendung kann eine Ausführungsform der vorliegenden Erfindung konfiguriert sein, um einen oder mehrere Vergleichsalgorithmen zu verwenden, um eine oder mehrere Abstandsmessungen zu erzeugen. Einige nützliche Abstandsmessungen sind die bitgenaue Übereinstimmung, der Hamming-Abstand, der euklidische Abstand, der mittlere Größenabstand und der Korrelationsabstand. Diese Abstandsmessungen werden nun kurz beschrieben. Ein bitgenauer Vergleich bestimmt, ob eine genaue Bit-zu-Bit-Übereinstimmung zwischen zwei verglichenen Daten vorliegt oder nicht, indem jedes der entsprechenden Bits der zwei Daten verglichen wird. Zum Beispiel ist der Eingabevektor „0101 1101" eine bitgenaue Übereinstimmung mit der Bezugsvorlage „0101 1101", aber keine bitgenaue Übereinstimmung mit der Bezugsvorlage „0101 1100". Eine Hamming-Abstandsmessung kann bestimmt werden, indem die Gesamtzahl der entsprechenden Bits, die übereinstimmen, durch die Gesamtbitweite dividiert wird (Gesamtzahl der übereinstimmenden Bits/Gesamtbitweite). Zum Beispiel ist der Hamming-Abstand zwischen dem Eingabevektor „1011 0110 1010" und der Bezugsvorlage „0101 1101 0111" gleich 3/12 oder 0,25 (weil die entsprechenden 2., 7. und 9. Bits, von rechts ausgehend, übereinstimmen und die Bitweite 12 Bit beträgt). Der euklidische Abstand kann für Vektoren mit einer einzigen Dimension durch die Formel (X – Y)2 berechnet werden, oder für Vektoren mit n Dimensionen oder Teilfeldern X1 ... Xn und Y1 ... nY durch
    Figure 00110001
    Der mittlere Größenabstand kann für Vektoren mit einer einzigen Dimension durch die Formel IX – VI berechnet werden, oder für Vektoren mit n Dimensionen oder Teilfeldern X1 ... Xn und Y1 ... Yn durch
    Figure 00110002
    Der Korrelationsabstand kann für Vektoren mit einer einzigen Dimension durch die Formel X·Y berechnet werden, oder für Vektoren mit n Dimensionen oder Teilfeldern X1 ... Xn und Y1 ... Yn durch
    Figure 00110003
  • Weiter Bezug nehmend auf 2, kann die Vergleichseinheit 208 jedes Eingabedatum 204 mit mehrfachen Bezugsvorlagen 202 vergleichen und die jedem Eingabedatum zugehörigen Nettoabstandsmessungen einer Klassifikationseinheit 210 zuführen. Die Klassifikationseinheit 210 kann konfiguriert sein, um die Bezugsvorlagen 202 zu ermitteln, die einem oder mehreren gewählten Klassifikationskriterien entsprechend mit dem Eingabedatum 204 übereinstimmen. Zum Beispiel kann die Klassifikationseinheit 210 konfiguriert sein, um zu bestimmen, welche der Bezugsvorlagen die beste Übereinstimmung, schlechteste Übereinstimmung, durchschnittliche Übereinstimmung und/oder mittlere Übereinstimmung für jedes Eingabedatum sind. Die beste Übereinstimmung ist die Bezugsvorlage aus einem Satz, die eine Nettoabstandsmessung aufweist, die einem bestimmten Klassifikationskriterium entsprechend am besten mit dem Eingabedatum 204 übereinstimmt. Die schlechteste Übereinstimmung ist die Bezugsvorlage mit einer Nettoabstandsmessung, die einem bestimmten Klassifikationskriterium entsprechend am schlechtesten mit dem Eingabedatum 204 übereinstimmt. Die durchschnittliche Übereinstimmung ist die Bezugsvorlage mit einer Nettoabstandsmessung, die dem Durchschnitt von einem Satz Nettoabstandsmessungen am nächsten liegt. Die mittlere Übereinstimmung ist die Bezugsvorlage mit einer Nettoabstandsmessung, die dem Mittel von einem Satz Nettoabstandsmessungen am nächsten liegt. In einer Ausführungsform kann die flexible Vergleichs- und Klassifikationseinheit 108 den Indexwert der Bezugsvorlage und die Nettoabstandsmessungen, die den ermittelten Übereinstimmungen entsprechen, protokollieren.
  • Weiter Bezug nehmend auf 2, kann in einer Ausführungsform eine flexible Vergleichs- und Klassifikationseinheit 108 eine Tiefenerweiterungseinheit 212 umfassen, um gewählte Übereinstimmungen von kaskadierten Vorrichtungen für einen Mustervergleich zu klassifizieren. Zum Beispiel können mehrfache Vorrichtungen für einen Mustervergleich 100 (von 1) kaskadiert werden, um die Geschwindigkeit zu erhöhen (z.B. mehrfache Einheiten, die ein gegebenes Eingabedatum parallel verarbeiten), oder um die Zahl der Bezugsvorlagen zu erhöhen, die zum Vergleich verfügbar sind. Wenn der Tiefenerweiterungsmodus gewählt ist, kann die Tiefenerweiterungseinheit 212 ihre klassifizierten Übereinstimmungen mit denen anderer Vorrichtungen für einen Mustervergleich vergleichen, die dem kaskadierten PMU-Eingang 214 zugeführt werden, um die besten Gesamtübereinstimmungen aus den gewählten Übereinstimmungen der mehrfachen Vorrichtungen für einen Mustervergleich 100 zu bestimmen. Wenn der Tiefenerweiterungsmodus nicht gewählt ist, kann die Tiefenerweiterungseinheit 212 ihre Eingabe einfach zu ihrem Ausgang 218 kopieren. Nähere Details zu einer Ausführungsform einer kaskadierten Mustervergleichsarchitektur werden weiter unten in Verbindung mit 4 beschrieben.
  • Weiter Bezug nehmend auf 2, kann in einer flexiblen Vergleichs- und Klassifikationseinheit 108 auch eine Entscheidungseinheit 220 eingeschlossen sein. Die Entscheidungseinheit 220 kann die Ausgabe 218 von der Tiefenerweiterungseinheit 212 (die die ermittelten Übereinstimmungen und die zugehörigen Abstandsmessungen enthalten kann) empfangen und kann auch ein oder mehrere Grenzkriterien 222 empfangen, die Entscheidungskriterien oder -schwellen angeben. Die Entscheidungseinheit 220 kann die Ausgabe 218 mit den Grenzkriterien 222 vergleichen und eine oder mehrere Entscheidungsanzeiger 224 erzeugen, um verschiedene Entscheidungen der Mustervergleichseinheit 100 auf der Basis des Vergleichs anzuzeigen. Zum Beispiel kann in einer Fingerabdruckvergleichenden Anwendung die Entscheidungseinheit 220 konfiguriert sein, um einen Anzeiger „Fingerabdruck-Übereinstimmung" zuzuweisen, wenn der Wert der nächsten euklidischen Nettoabstandsmessung kleiner als ein vorgegebener Wert ist. In einer Ausführungsform kann die Entscheidungseinheit 220 in einer Vorrichtung für einen Mustervergleich 100 verwendet werden, die zum selbstständigen Gebrauch in eingebetteten Anwendungen bestimmt ist. Auch verschiedene Steuereingänge 216 können vorgesehen sein, um die Zeitsteuerung, Ablaufsteuerung und Gesamtfunktionen der flexiblen Vergleichs- und Klassifikationseinheit 108 zu steuern.
  • Bezug nehmend nun auf 3, wird ein Blockdiagramm der Steuereinheit 110 von 1 nach einer Ausführungsform der vorliegenden Erfindung gezeigt. Eine externe Schnittstelle 308 erlaubt einem Hostsystem oder anderen Gerät, über die Adresse 302, die Daten 304 und Lese-/Schreibsignale 306 mit der Vorrichtung für einen Mustervergleich 100 zusammenzuarbeiten. Mit der externen Schnittstelle 308 ist ein Hostgerät oder -system in der Lage, Vorlagen in den Vorlagenspeicher 104 zu speichern, Daten in den Eingangspuffer 106 zu laden und Ergebnisse aus dem Ausgangspuffer 116 zu lesen. Die interne Übertragung der vom Host über die Adreßeingänge 302 und Dateneingänge 304 zugeführten Adreß- und Dateninformation in der Vorrichtung für einen Mustervergleich 100 kann über einen internen Adreßbus 310 und einen internen Datenbus 312 erfolgen.
  • In einer Ausführungsformen kann die Steuereinheit 110 eine speicherorientierte Schnittstelle für die Mustervergleichseinheit 100 bereitstellen, die vier Speicherorte in einem Speicherplatz des Hostsystems verwendet. Beispielabbilder werden in Tabelle A gezeigt. Tabelle 1
    Speicherort 1 Lese/Schreib-Vorlagenspeicher
    Speicherort 2 Schreib-Eingangspuffer/Lesen-Ausgangspuffer
    Speicherort 3 Schreib-Steuerregister/Lesen-Statusregister
    Speicherort 4 Lesen/Schreib-Debugregister
  • In einer Ausführungsform können die Steuerregister 314 folgendes umfassen: a) Startadressen für Vorlagen im Vorlagenspeicher 104; b) Zahl der zu vergleichenden Vorlagen; c) Bitfeldweite je Dimension; d) Zahl der Vektordimensionen je Vektor; e) Tiefenerweiterung ein/aus; und f) Wahl der Abstandsmessungen. In einer Ausführungsform kann die Steuereinheit 110 Statusregister 316 umfassen, die verschiedene Anzeiger umfassen können (z.B. erledigt/nicht erledigt, Kaskadenmodus, Speicherprüfung). In einer Ausführungsform kann die Steuereinheit 110 Debugregister 318 umfassen, um verschiedene Debug-Vorgänge bereitzustellen.
  • Weiter Bezug nehmend auf 3, stellt ein Konfigurations- und Zeitsteuerungsdecoder 320 der Vorrichtung für einen Mustervergleich 100 Konfigurationsinformation 327 bereit. Die Ablaufsteuerung 322 stellt Steuersignale 324 bereit, um die Zeitsteuerung und den Betrieb der verschiedenen Funktionsblöcke der Vorrichtung für einen Mustervergleich 100 zu steuern.
  • Bezug nehmend nun auf 4, wird ein Blockdiagramm einer kaskadierten Mustervergleichsarchitektur 400 nach einer Ausführungsform der vorliegenden Erfindung gezeigt. 4 zeigt, wie mehrfache Vorrichtungen für einen Mustervergleich 100 (von 1) kaskadiert werden können, um die Geschwindigkeit zu erhöhen (z.B. mehrfache Einheiten, die ein gegebenes Eingabedaten parallel verarbeiten), und/oder die Zahl der Bezugsvorlagen zu erhöhen, die zum Vergleich verfügbar sind. Eingabedaten werden den Vorrichtungen für einen Mustervergleich 100(a), 100(b) und 100(c) jeweils über Eingänge 102(a), 102(b) und 102(c) zugeführt. Die Vorrichtungen für einen Mustervergleich 100(a), 100(b) und 100(c) können in einem Kaskadenmodus verbunden werden, indem der PMU-Endausgang 122(a) der Vorrichtung für einen Mustervergleich 100(a) mit dem Kaskaden-PMU-Eingang 122(b) der Vorrichtung für einen Mustervergleich 100(b) verbunden wird und der PMU-Endausgang 122(b) der Vorrichtung für einen Mustervergleich 100(b) mit dem Kaskaden-PMU-Eingang 122(c) der Vorrichtung für einen Mustervergleich 100(c) verbunden wird. In dieser Ausführungsform arbeiten die Tiefenerweiterungseinheiten 212 jeder der Vorrichtungen für einen Mustervergleich 100(a), 100(b) und 100(c) zusammen, um die besten Gesamtübereinstimmungen zu bestimmen, die von den mehrfachen Vorrichtungen für einen Mustervergleich 100 verglichen und klassifiziert wurden, und dem PMU-Endausgang 122(c) die besten Gesamtübereinstimmungsdaten zuzuführen. In einer Ausführungsform kann eine Kaskadenarchitektur verwendet werden, um den Vergleich einer höheren Zahl von Bezugsvorlagen zu erlauben. Zum Beispiel können dieselben Eingabedaten parallel mit anderen Sätzen von Bezugsvorlagen verglichen werden, die in mehrfachen kaskadenverbundenen Vorrichtungen für einen Mustervergleich gespeichert sind. In einer Ausführungsform können dieselben Sätze von Bezugsvorlagen in mehrfachen kaskadenverbundenen Vorrichtungen für einen Mustervergleich gespeichert sein, um die Geschwindigkeit zu erhöhen, mit der ein Satz Eingabedaten verglichen und klassifiziert wird.
  • Ausführungsformen können in Logikschaltungen, Statusmaschinen, Mikrocode oder einer Kombination davon implementiert sein. Ausführungsformen können in Code implementiert und auf einem Speichermedium gespeichert sein, der darauf gespeicherte Anweisungen aufweist, die verwendet werden, um ein Computersystem zu programmieren, damit die Anweisungen ausgeführt werden. Das Speichermedium kann, ohne darauf beschränkt zu sein, jede Art von Platte umfassen, einschließlich Disketten, optischer Platten, Compact-Disk-Nur-Lese-Speichern (CD-ROMs), wiederbeschreibbaren Compact-Disks (CD-RWs) und magnetisch-optischen Speichern, Halbleitergeräte wie Nur-Lese-Speicher (ROMs), Schreib-/Lesespeicher (RAMs), dynamische Schreib-/Lesespeicher (DRAMs), lösch- und programmierbare Lesespeicher (EPROMs), Flash-Speicher, elektrisch löschbare Lesespeicher (EEPROMs), magnetische oder optische Karten, Netzwerkspeichergeräte oder jede Art von Medium, das zum Speichern von elektronischen Anweisungen geeignet sind.
  • Ausführungsbeispiele können zur Ausführung auf ein geeignetes Computersystem in Software implementiert sein, das mit einer geeigneten Kombination von Hardwaregeräten konfiguriert ist.
  • Bezug nehmend nun auf 5, wird ein Blockdiagramm des Computersystems 500 gezeigt, mit welchem Ausführungsformen der Erfindung verwendet werden können. In einer Ausführungsform umfaßt das Computersystem 500 einen Prozessor 510, der mit einem Universal- oder Spezialprozessor wie z.B. einen Mikroprozessor, Mikrocontroller, ein programmierbares Gate-Array (PGA) usw. einschließen kann. Der Begriff „Computersystem" kann sich hierin auf jede Art von prozessorbasiertem System beziehen, wie z.B. ein Desktop-Rechner, ein Server-Rechner, ein Laptop-Rechner oder dergleichen, oder auf eine andere Art von Hostsystem.
  • Der Prozessor 510 kann in einer Ausführungsform über einen Hostbus 515 mit einem Speicherhub 530 gekoppelt sein, der über einen Speicherbus 525 mit einem Systemspeicher 520 (zum Beispiel ein dynamischer RAM) gekoppelt sein kann. Der Speicherhub 530 kann auch über einen Advanced Graphic Port (AGP)-Bus 533 mit einem Videocontroller 535 gekoppelt sein, der mit einer Anzeige 537 gekoppelt ist. Der AGP-Bus 533 kann mit der Advanced Graphic Port-Schnittstellenspezifikation, Revision 2.0, konform sein, die am 4. Mai 1998 von Intel Corporation, Santa Clara, Kalifornien veröffentlicht wurde.
  • Eine Vorrichtung für einen Mustervergleich 100 (von 1) kann über den Speicherbus 525 mit dem Speicherhub 530 gekoppelt sein. In dieser Ausführungsform kann die Vorrichtung für einen Mustervergleich 100 ein speicherorientiertes Gerät sein. In einer anderen Ausführungsform kann die Vorrichtung für einen Mustervergleich 100 ein Eingabe/Ausgabe (E/A)-orientiertes Gerät sein. In einer Ausführungsform kann die Vorrichtung für einen Mustervergleich 100 als Mustervergleichsbeschleuniger im Prozessor 510 eingebettet sein. In einer Ausführungsform kann eine eingebettete Vorrichtung für einen Mustervergleich 100 auf eine Vergleichsanweisung des Prozessors 510 abgebildet sein, um einen schnellen, flexiblen, komplexen Datenvergleich und Klassifikation zu gewährleisten, während der Prozessor 510 in der Lage ist, andere Aufgaben auszuführen. Der Prozessor 510 kann die Vorrichtung für einen Mustervergleich 100 vorteilafterweise für verschiedene Anwendungen nutzen, wie z.B. Mustererkennung, Abzweigungsprognose, intelligentes Caching, adaptiv angepasste Filterung und Instruction Level Encryption.
  • Der Speicherhub 530 kann auch (über ein Hub-Link 538) mit einem Eingabe/Ausgabe (E/A)-Hub 540 gekoppelt sein, der mit einem Eingabe/Ausgabe (E/A)-Erweiterungsbus 542 und einem Peripheral-Component-Interconnect (PCI)-Bus 544 gekoppelt ist, wie durch die PCI Local Bus-Spezifikation, Production Version, Revision 2.1 vom Juni 1995 definiert. Der E/A-Erweiterungsbus 542 kann mit einem E/A-Controller 546 gekoppelt sein, der den Zugriff auf eine oder mehrere E/A-Geräte steuert. Wie in 5 gezeigt, können diese Geräte in einer Ausführungsform Speichergeräte umfassen, wie z.B. ein Diskettenlaufwerk 550, und Eingabegeräte, wie z.B. eine Tastatur 552 und Maus 554. Der E/A-Hub 540 kann auch zum Beispiel mit einem Festplattenlaufwerk 556 und einer Compact Disk (CD)-Laufwerk 558 gekoppelt sein, wie in 5 gezeigt. Es versteht sich, daß auch andere Speichermedien im System eingeschlossen sein können.
  • Der PCI-Bus 544 kann auch mit verschiedenen Komponenten gekoppelt sein, einschließlich, zum Beispiel, eines Netzwerkcontrollers 560, der mit einem Netzwerkanschluß (nicht gezeigt) gekoppelt ist. Zusätzliche Geräte können an den E/A-Erweiterungsbus 542 und PCI-Bus 544 gekoppelt werden, wie z.B. eine Eingabe/Ausgabe-Steuerschaltung, die mit einem Parallelschnittstellenanschluß, einem seriellen Schnittstellenanschluß, einem nicht flüchtigen Speicher und dergleichen gekoppelt ist.
  • Auch wenn die obige Beschreibung sich auf spezifische Komponenten des Systems 500 bezieht, wird in Betracht gezogen, daß zahlreiche Modifikationen und Varianten der beschriebenen und veranschaulichten Ausführungsformen möglich sein können. Obwohl 5 ein Blockdiagramm eines Systems wie z.B. eines Personal-Computers zeigt, versteht es sich ferner, daß Ausführungsformen der vorliegenden Erfindung in einer spezialisierten Mustererkennungsvorrichtung, einem Personal Digital Assistent (PDA) oder dergleichen implementiert werden können.
  • Nun Bezug nehmend auf 6, wird ein Flußdiagramm gezeigt, das eine Vorrichtung für einen Mustervergleich nach einer Ausführungsform der vorliegenden Erfindung veranschaulicht. Konfigurationsoptionen können die Wahl eines oder mehrerer Abstandsmessungen oder Vergleichsalgorithmen erlauben, die beim Vergleich der Eingabedaten mit Bezugsvorlagen oder -mustern verwendet werden, und können auch die Wahl einer oder mehrerer Klassifikationskriterien erlauben, die verwendet werden können, um ein oder mehrere Bezugsvorlagen zu ermitteln, die einem oder mehreren ausgewählten Kriterien entsprechend „am besten" mit einem gegebenen Eingabedatum übereinstimmen (Block 602). Konfigurationsoptionen können die Wahl der Bitweite oder Größe der Dimensionen der Eingabedaten und Bezugsvorlagen erlauben, und können auch die Wahl der Größe und/oder Zahl der Dimensionen für alle Eingabedaten und Bezugsvorlagen erlauben (Block 604). In einer Ausführungsform können Konfigurationsoptionen die Wahl der Gesamtbitweite der Eingabedaten und Bezugsvorlagen und der Zahl der Dimensionen für alle Eingabedaten und Bezugsvorlagen erlauben.
  • Nachdem die Konfigurationsoptionen eingestellt worden sind, geht der Mustervergleichsprozeß dazu über, ein Eingabedatum abzurufen, das verglichen und klassifiziert werden soll (Block 606). Um die Flexibilität beim Vergleich von Daten zu gewährleisten, die mehrfache Dimensionen aufweisen, können das Eingabedatum und die Bezugsvorlage jeweils den Konfigurationsoptionen entsprechend in mehrfache Dimensionen oder Bitfelder aufgeteilt werden (Block 610), um die Bestimmung von Abstandsmessungen für jede entsprechende Dimension des Eingabedatums und der Bezugsvorlage zu erlauben (Block 612). Sobald die Abstandsmessungen für jede Dimension bestimmt worden sind, können eine oder mehrere Gewichtungsfaktoren auf die Abstandsmessungen angewandt werden, die dieser einen oder mehreren Dimensionen zugeordnet sind (Block 614). Dann können die Abstandsmessungen zu einer Nettoabstandsmessung für dieses Eingabedatum und diese Bezugsvorlage aggregiert oder kombiniert werden (Block 616). Die Blöcke 608 bis 616 können wiederholt werden, bis ein gegebenes Eingabedatum mit jeder der gewählten Bezugsvorlagen verglichen wurde (Raute 618). Wenn das Eingabedatum mit allen Bezugsvorlagen verglichen worden ist, können die Nettoabstandsmessungen den gewählten Klassifikationskriterien entsprechend klassifiziert werden, um zu bestimmen, welche Abstandsmessungen (und entsprechenden Bezugsvorlagen) „am besten" mit dem Eingabedatum übereinstimmen (Block 620). In einer Ausführungsform können die Übereinstimmungen, die im Block 620 ermittelt wurden, mit einem oder mehreren Grenzkriterien verglichen werden, und auf der Basis der Vergleiche können eine oder mehrere Entscheidungen getroffen werden (Block 622).

Claims (24)

  1. Vorrichtung (100) für einen Mustervergleich, umfassend: eine Bitfeld-Wähleinheit (206), um ein Eingabedatum in Eingabebitfelder aufzuteilen und eine oder mehrere Bezugsvorlagen in entsprechende Bezugsbitfelder aufzuteilen, wobei die Zahl der Bits in den Eingabebitfeldern und den Bezugsbitfeldern programmierbar ist; und eine Vergleichseinheit (208), um einen oder mehrere Abstandswerte zwischen den Eingabebitfeldern und den entsprechenden Bezugsbitfeldern zu bestimmen und den oder die Abstandswerte, die zu den Bezugsbitfeldern gehören, zu einem oder mehreren Nettoabstandswerten zu kombinieren, die der oder den Bezugsvorlagen entsprechen.
  2. Vorrichtung (100) nach Anspruch 1, wobei die Zahl der Bits im Eingabedatum und in den Bezugsvorlagen programmierbar ist.
  3. Vorrichtung (100) nach Anspruch 1, wobei die Vergleichseinheit (208) geeignet ist, einen oder mehrere Gewichtungsfaktoren auf die Abstandswerte anzuwenden, die der jeweiligen Bezugsvorlage zugehörig sind, bevor sie zu einem oder mehreren Nettoabstandswerten kombiniert werden.
  4. Vorrichtung (100) nach Anspruch 1, wobei die Vergleichseinheit (208) so ausgelegt ist, daß sie konfigurierbar ist, um einen oder mehrere Arten von Abstandswerten und Nettoabstandswerten zu bestimmen, die mindestens eines von der bitgenauen Übereinstimmung, dem Hamming-Abstand, dem euklidischen Abstand, dem mittleren Größenabstand und dem Korrelationsabstand einschließen.
  5. Vorrichtung (100) nach Anspruch 1, die ferner einen Speicher, zum Speichern des Eingabedatums und der Bezugsvorlagen umfaßt, und wobei die Vorrichtung auf einer einzelnen integrierten Schaltung implementiert ist.
  6. Vorrichtung (100) nach Anspruch 1, die ferner eine Hostschnittstelle zum Austauschen des Eingabedatums, der Bezugsvorlagen, Steuerdaten und Statusdaten mit der Vorrichtung umfaßt.
  7. Vorrichtung (100) nach Anspruch 6, wobei die Hostschnittstelle speicherorientiert oder Eingabe/Ausgabe (E/A)-orientiert ist.
  8. Vorrichtung (100) nach Anspruch 1, die ferner eine Klassifikationseinheit (110) zur Klassifikation des oder der Nettoabstandswerte, die einem oder mehreren wählbaren Klassifikationskriterien entsprechen, umfaßt.
  9. Vorrichtung (100) nach Anspruch 8, wobei die wählbaren Klassifikationskriterien eines oder mehreres von der besten Übereinstimmung, der schlechtesten Übereinstimmung, der durchschnittlichen Übereinstimmung und der mittleren Übereinstimmung einschließen.
  10. Vorrichtung (100) nach Anspruch 8, die ferner eine Tiefenerweiterungseinheit (212) zum Empfangen anderer Nettoabstandswerte und zum Vergleichen der anderen Nettoabstandswerte mit dem oder den mehreren klassifizierten Nettoabstandswerten gemäß dem oder den wählbaren Klassifikationskriterien umfaßt.
  11. Vorrichtung (100) nach Anspruch 8, die ferner eine Entscheidungseinheit (220) zum Erzeugen eines oder mehrerer Entscheidungsanzeiger auf der Basis des Vergleichs des oder der klassifizierten Nettoabstandswerte mit einem oder mehreren Grenzkriterien umfaßt.
  12. Verfahren für einen Mustervergleich, das umfaßt: Aufteilen eines Eingabedatums in Eingabebitfelder gemäß einer programmierbaren Bitfeldweite; Aufteilen einer oder mehrerer Bezugsvorlagen in Bezugsbitfelder gemäß der Bitfeldweite, wobei die Bezugsbitfelder den Eingabebitfeldern entsprechen; Bestimmen von Abstandswerten zwischen den Eingabebitfeldern und den entsprechenden Bezugsbitfeldern; und Kombinieren der Abstandswerte, die den Bezugsbitfeldern zugehörig sind, zu einem oder mehreren Nettoabstandswerten, die der oder den Bezugsvorlagen entsprechen.
  13. Verfahren nach Anspruch 12, das ferner das Konfigurieren der Zahl der Bits im Eingabedatum und in den Bezugsvorlagen umfaßt
  14. Verfahren nach Anspruch 12, das ferner das Anwenden eines oder mehrerer Gewichtungsfaktoren auf die Abstandswerte, die jeder Bezugsvorlage zugehörig sind, bevor sie zu einem oder mehreren Nettoabstandswerten kombiniert werden, umfaßt.
  15. Verfahren nach Anspruch 12, wobei eine oder mehrere Arten von Abstandswerten und Nettoabstandswerten bestimmt werden, die eines oder mehreres von der bitgenauen Übereinstimmung, dem Hamming-Abstand, dem euklidischen Abstand, dem mittleren Größenabstand und dem Korrelationsabstand einschließen.
  16. Verfahren nach Anspruch 12, das ferner die Klassifikation des oder der Nettoabstandswerte gemäß einem oder mehreren wählbaren Klassifikationskriterien, umfaßt.
  17. Verfahren nach Anspruch 16, wobei die wählbaren Klassifikationskriterien eines oder mehreres von der besten Übereinstimmung, der schlechtesten Übereinstimmung, der durchschnittlichen Übereinstimmung und der mittleren Übereinstimmung einschließen.
  18. Verfahren nach Anspruch 16, das ferner ein Vergleichen von anderen Nettoabstandswerten mit den klassifizierten Nettoabstandswerten umfaßt, um die klassifizierten Nettoabstandswerte mit den anderen Nettoabstandswerten weiter zu klassifizieren.
  19. Verfahren nach Anspruch 16, das ferner das Erzeugen eines oder mehrerer Entscheidungsanzeiger auf der Basis des Vergleichs des oder der klassifizierten Nettoabstandswerte mit einem oder mehreren Grenzkriterien umfaßt.
  20. System (500) für einen Mustervergleich, das umfaßt: einen dynamischen Schreib-/Lesespeicher (520), der gekoppelt ist, um Anweisungen zur Ausführung durch einen Prozessor (510) zu speichern; und eine Vorrichtung (100) nach einem der Ansprüche 1 bis 11, um in Reaktion auf eine Prozessoranforderung einen Satz Abstandsmessungen zwischen einem Eingabedatum und einem Satz Bezugsvorlagen zu bestimmen und die Bezugsvorlagen zu ermitteln, die einem oder mehreren Klassifikationskriterien entsprechend am besten mit dem Eingabedatum übereinstimmen.
  21. Artikel, der ein maschinenzugreifbares Medium umfaßt, das Anweisungen enthält, die einem System bei ihrer Ausführung folgendes ermöglichen: Aufteilen eines Eingabedatums in Eingabebitfelder gemäß einer programmierbaren Bitfeldweite; Aufteilen einer oder mehrerer Bezugsvorlagen in Bezugsbitfelder gemäß der Bitfeldweite, wobei die Bezugsbitfelder den Eingabebitfeldern entsprechen; Bestimmen von Abstandswerten zwischen den Eingabebitfeldern und den entsprechenden Bezugsbitfeldern; und Kombinieren der Abstandswerte, die den Bezugsbitfeldern zugehörig sind, zu einem oder mehreren Nettoabstandswerten, die der oder den Bezugsvorlagen entsprechen.
  22. Artikel nach Anspruch 21, der ferner Anweisungen umfaßt, die dem System bei ihrer Ausführung erlauben, die Zahl der Bits im Eingabedatum und in den Bezugsvorlagen zu konfigurieren.
  23. Artikel nach Anspruch 21, der ferner Anweisungen umfaßt, die dem System bei ihrer Ausführung erlauben, einen oder mehrere Arten von Abstandswerten und Nettoabstandswerten zu bestimmen, die eines oder mehreres von der bitgenauen Übereinstimmung, dem Hamming-Abstand, euklidischen Abstand, mittleren Größenabstand und Korrelationsabstand einschließen.
  24. Artikel nach Anspruch 21, der ferner Anweisungen umfaßt, die dem System bei ihrer Ausführung erlauben, den oder die Nettoabstandswerte einem oder mehreren wählbaren Klassifikationskriterien entsprechend zu klassifizieren, die eines oder mehreres von der besten Übereinstimmung, schlechtesten Übereinstimmung, durchschnittlichen Übereinstimmung und mittleren Übereinstimmung einschließen.
DE102005033274A 2004-07-30 2005-07-15 Mustervergleichsarchitektur Expired - Fee Related DE102005033274B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/903,501 2004-07-30
US10/903,501 US7437398B2 (en) 2004-07-30 2004-07-30 Pattern matching architecture

Publications (2)

Publication Number Publication Date
DE102005033274A1 DE102005033274A1 (de) 2006-03-23
DE102005033274B4 true DE102005033274B4 (de) 2008-04-10

Family

ID=35733754

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102005033274A Expired - Fee Related DE102005033274B4 (de) 2004-07-30 2005-07-15 Mustervergleichsarchitektur

Country Status (4)

Country Link
US (1) US7437398B2 (de)
JP (1) JP4351196B2 (de)
CN (1) CN100407220C (de)
DE (1) DE102005033274B4 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4627243B2 (ja) * 2005-10-21 2011-02-09 三菱電機株式会社 ネットワーク中継装置
US7565516B2 (en) * 2006-02-28 2009-07-21 Arm Limited Word reordering upon bus size resizing to reduce Hamming distance
US7734853B2 (en) * 2006-02-28 2010-06-08 Arm Limited Latency dependent data bus transmission
CN100552664C (zh) * 2006-10-20 2009-10-21 东芝泰格有限公司 模式匹配装置以及方法
US8131759B2 (en) * 2007-10-18 2012-03-06 Asurion Corporation Method and apparatus for identifying and resolving conflicting data records
WO2010022303A1 (en) * 2008-08-22 2010-02-25 Dolby Laboratories Licensing Corporation Content identification and quality monitoring
US8805998B2 (en) * 2010-06-11 2014-08-12 Eaton Corporation Automatic matching of sources to loads
JP6244728B2 (ja) 2013-08-07 2017-12-13 富士通株式会社 情報処理方法及びプログラム
CN104598541A (zh) * 2014-12-29 2015-05-06 乐视网信息技术(北京)股份有限公司 多媒体文件的识别方法、装置
US9430363B1 (en) * 2015-12-28 2016-08-30 International Business Machines Corporation Creating expected test results using previous test results
US20170322810A1 (en) * 2016-05-06 2017-11-09 Qualcomm Incorporated Hypervector-based branch prediction
US20200073891A1 (en) * 2018-08-28 2020-03-05 New Relic, Inc. Systems and methods for classifying data in high volume data streams

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5295198A (en) * 1988-10-14 1994-03-15 Harris Corporation Pattern identification by analysis of digital words
US5717908A (en) * 1993-02-25 1998-02-10 Intel Corporation Pattern recognition system using a four address arithmetic logic unit
EP1369793A1 (de) * 2002-06-06 2003-12-10 President of Hiroshima University Paralleler Assoziativspeicher

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61138335A (ja) * 1984-12-10 1986-06-25 Matsushita Electric Ind Co Ltd 記憶素子の演算回路
US4918731A (en) 1987-07-17 1990-04-17 Ricoh Company, Ltd. Speech recognition method and apparatus
JPH04294421A (ja) * 1991-03-22 1992-10-19 Mitsubishi Electric Corp ディジタル関数計算装置
JPH0528273A (ja) * 1991-05-13 1993-02-05 Nikon Corp 画像処理方法および装置
US5825921A (en) * 1993-03-19 1998-10-20 Intel Corporation Memory transfer apparatus and method useful within a pattern recognition system
JPH06309434A (ja) * 1993-04-27 1994-11-04 Nikon Corp 画像処理方法及び装置
JP2988209B2 (ja) * 1993-08-16 1999-12-13 松下電器産業株式会社 カラー濃淡パターン認識装置
EP0788648B1 (de) * 1995-08-28 2000-08-16 Koninklijke Philips Electronics N.V. Verfahren und system zur mustererkennung mittels dynamischer erzeugung einer untermenge von referenzvektoren
KR100247969B1 (ko) * 1997-07-15 2000-03-15 윤종용 대용량패턴정합장치및방법
AU744678B2 (en) * 1997-10-15 2002-02-28 British Telecommunications Public Limited Company Pattern recognition using multiple reference models
JP2002007413A (ja) * 2000-06-20 2002-01-11 Fujitsu Ltd 画像検索装置
JP2002216131A (ja) * 2001-01-15 2002-08-02 Sony Corp 画像照合装置及び画像照合方法、並びに記憶媒体
JP2003233851A (ja) * 2002-02-13 2003-08-22 Glory Ltd 画像による硬貨の真偽/正損判定方法及び装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5295198A (en) * 1988-10-14 1994-03-15 Harris Corporation Pattern identification by analysis of digital words
US5717908A (en) * 1993-02-25 1998-02-10 Intel Corporation Pattern recognition system using a four address arithmetic logic unit
EP1369793A1 (de) * 2002-06-06 2003-12-10 President of Hiroshima University Paralleler Assoziativspeicher

Also Published As

Publication number Publication date
US20060026413A1 (en) 2006-02-02
US7437398B2 (en) 2008-10-14
CN1728157A (zh) 2006-02-01
DE102005033274A1 (de) 2006-03-23
CN100407220C (zh) 2008-07-30
JP4351196B2 (ja) 2009-10-28
JP2006059339A (ja) 2006-03-02

Similar Documents

Publication Publication Date Title
DE102005033274B4 (de) Mustervergleichsarchitektur
DE102018129692A1 (de) Tiefgehendes Lernen anhand von Ausführungsverlaufsdaten zur Erkennung von Exploits
DE69834739T2 (de) Ausgleichen von daten die zwischen verschiedenen leitern fliessen die auf unterschiedlichen frequenzen operieren
DE102018115440A1 (de) Techniken zum Trainieren tiefer neuronaler Netzwerke
DE69114333T2 (de) Rechner mit der Fähigkeit mehrere Befehle gleichzeitig auszuführen.
DE102017120452A1 (de) Auswerten von Eingangsdatenseltenheit in Berechnungseinheiten eines neuronalen Netzes
DE112017008151T5 (de) Schaltungen geringer tiefe als quantenklassifikatoren
DE112019003326T5 (de) Speichererweiterte neuronale netzwerkarchitekturen eines codierers-decodierers
DE112021000392T5 (de) Leistungsfähiges kommentieren der grundwahrheit
Öztürk Image inpainting based compact hash code learning using modified U-Net
DE102020129549A1 (de) Leistungsüberwachung in heterogenen systemen
DE102020133266A1 (de) Technologien zur Verfeinerung von stochastischen Ähnlichkeitssuchekandidaten
DE112020002693T5 (de) Verringerung der berechnung in neuralen netzwerken mit selbstmodifizierendem code
DE102019103319A1 (de) Stochastisches runden von zahlenwerten
DE112020005789T5 (de) Hierarchische partitionierung von operatoren
DE102022121767A1 (de) In-memory-assoziativverarbeitung für vektoren
DE102022121773A1 (de) In-memory-assoziativverarbeitungssystem
DE102022105808A1 (de) Effiziente quantisierung für eine bereitstellung und ausführung von neuronalen netzen
DE112021002291T5 (de) Verringern von ressourcenkosten bei visueller erkennung
DE102019103279A1 (de) Techniken zur informationsgraphenkomprimierung
CH712988B1 (de) Verfahren zum Durchsuchen von Daten zur Verhinderung von Datenverlust.
DE112017005197T5 (de) Hybrid-Komprimierungsschema zur effizienten Speicherung synaptischer Gewichte in neuromorphen Hardware-Kernen
DE102013021045A1 (de) Ausführung von Objekterkennungsoperationen mittels einer grafischen Verarbeitungseinheit
DE3688737T2 (de) Kontextadressierbarer umlaufspeicher.
DE102022105810A1 (de) Effiziente Speichernutzungsoptimierung für Einsatz und Ausführung neuronaler Netze

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20110201