-
Die
vorliegende Erfindung bezieht sich auf ein Verfahren zur Dekodierung
von Informationen, die auf ein gedrucktes Medium gedruckt sind.
-
Hintergrund
der Erfindung
-
Im
Unterschied zu den häufigen
Vorhersagen, wonach wir eines Tages in einer „papierlosen Gesellschaft" leben werden, spielen
Papier und andere bedruckte Medien eine zunehmend wichtige Rolle
als günstige,
wirksame und bequeme Mittel zur Kommunikation. Eine fundamentale
Einschränkung bei
Papier besteht jedoch darin, dass es vom Gesichtspunkt eines Computers
gegenwärtig
ein reines Ausgabeformat darstellt. Während Papier das bevorzugte
Medium zur Darstellung für
Informationen zur Verwendung durch Menschen ist, ist es schwierig
für einen
Computer, wenn nicht gar unmöglich,
Daten, die einmal gedruckt worden sind, zuverlässig wieder herzustellen. Die
optische Zeichenerkennung (OCR-optical character recognition) versucht
dieses Problem in einem vergleichsweise einfachen Bereich zu lösen, wie
zum Beispiel bei Text, der mit Standardfonts wiedergegeben ist,
aber sie hat bisher einen beschränkten
Erfolg gehabt. Während
Genauigkeitsraten von neunundneunzig (99%) Prozent vielleicht erreichbar
sind und beeindruckend erscheinen mögen, wird eine Seite mit 3000
Buchstaben dennoch durchschnittlich dreißig (30) OCT-Fehler aufweisen
und macht deswegen eine teure und zeitaufwändige manuelle Nachverarbeitung
erforderlich.
-
Eine
weitere Herangehensweise verwendet computerlesbare Barcodes, die
direkt auf Papier vorgesehen sein können (oder andere gedruckte
Medien wie zum Beispiel Mikrofilm). Einmal codiert können solche
Barcodes vom Computer verwendet werden, um Informationen wieder
herzustellen, die für den
menschlichen Leser offensichtlich sind, aber für einen Computer schwer zu
erkennen sind (zum Beispiel gedruckten Text), Informationen, die
in der Erstellung von Seiten beinhaltet sind, die aber im Wesentlichen
für den
menschlichen Leser unsichtbar sind (zum Beispiel Tabellenformeln)
oder jede beliebige andere Information, die erwünscht ist, ob sie nun von dem
tatsächlichen
Buchstabentext auf dem Papier abhängt oder nicht.
-
Computerlesbare
Barcodes, bei denen digitale Daten direkt auf Papier gespeichert
werden, sind bekannt und sind verwendet worden, um eine Dokumenten-
oder Produktidentifikation bereitzustellen, wenn ein fester Satz
von Werten unter Verwendung einfacher nummerischer Codierungs- und
Scantechnologien gegeben ist. Systeme zur Dokumenten- oder Produkterkennung,
die in der Vergangenheit verwendet wurden, beinhalten Barcode-Marker
und Scanner, die in einem weiten Bereich von Anwendungen Verwendung
gefunden haben. Unter Bezugnahme auf Papierdokumente sind spezielle
Kennzeichnungen oder Muster im Papier verwendet worden, um Informationen
für ein
hierauf bezogenes Bauteil bereit zu stellen, zum Beispiel das Jobsteuerungsblatt
für die
Bildverarbeitung, wie es von Hikawa im US-Patent mit der Nummer
5,051,779 beschrieben ist. In ähnlicher
Weise sind identifizierende Kennzeichnungen, die codierte Informationen
umfassen, auf das Deckblatt vorgedruckter Formulare gedruckt worden,
wie im US-Patent mit der Nummer 5,060,980 von Johnson, et al. beschrieben.
Das System von Johnson et al. ist darauf ausgerichtet, dass ein
Nutzer per Hand erstellte Informationen in den Feldern einer Papierkopie
des Formulars eingibt und dann das Formular gescannt wird, um Einfügungen in
den Feldern in dem duplizierten Formular bereitzustellen, das elektronisch
im Computer gespeichert wird. Noch ein anderes System wird im US-Patent
mit der Nummer 5,091,966 von Bloomberg et al. beschrieben, das die
Dekodierung von Codes in Bildzeichenform lehrt, bei welchen Codes
es sich um digital codierte Daten auf Papier handelt. Die kennzeichnenden
Codes können
durch einen Computer ausgelesen werden und erleichtern dadurch die
Handhabung des Dokuments seitens eines Computers, beispielsweise
die Identifizierung, die Wiedergewinnung und Übertragung eines solchen Dokuments.
-
Abgesehen
von den verschieden ausgeformten Barcodes, die oben beschrieben
sind, sind auch zweidimensionale Barcodes, die „data strips" genannt werden und
eine Mehrzahl von Reihen von „data
lines" aufweisen,
die Informationen repräsentieren,
die digital aufgedruckten Medien codiert sind, in der Technik bekannt.
Jede Reihe von Datenlinien besteht aus einer Folge schwarzer und
weißer
Pixel, die jeweils binäre
Nullen und Einsen repräsentieren. Die
Anordnung der Bits in jeder Reihe bestimmt die darin gespeicherten
digitalen Daten. Die Daten, die innerhalb der Gesamtheit der Reihen
abgespeichert sind, definieren die Daten, die in dem zweidimensionalen
Barcode enthalten sind. Typischerweise führt der Nutzer, um den Barcode
zu lesen, einen Handscanner, der gleichzeitig die Informationen
in jeder einzelnen Datenlinienreihe liest, vertikal entlang der Länge des
Barcodes, um alle Reihen von Datenlinien zu lesen.
-
Ein
Beispiel für
ein System im Stand der Technik, das einen zweidimensionalen Barcode
als Data strip verwendet, der Reihen von Datenlinien mit Papiermedien
aufweist, ist im US-Patent mit den Nummern 4,692,603, 4,754,127
und 4,782,221 von Brass et al. zu finden. In diesem System bestehen zweidimensionale
Barcodes aus Datenlinienreihen, die dazu verwendet werden, Computerprogramme und
Daten auf Papier zu codieren, und werden unter Verwendung eines
Handscanners eingelesen. In Ergänzung
zur Codierung von Computerprogrammen und Daten, enthalten diese
Datenlinien auch Tracking- und Synchronisationsbits, die im Folgenden als „Takt Bits" bezeichnet werden.
Das Erfordernis zur Verwendung zahlreicher Takt Bits direkt innerhalb jeder
einzelnen Reihe von Datenlinien beeinträchtigt deutlich die Menge digitaler
Daten, die in jeder einzelnen Reihe gespeichert werden können. Des
Weiteren würden,
falls Datenlinienreihen, die Takt Bits aufweisen, beschädigt werden,
was häufig
ist, falls solche Barcodes fotokopiert oder durch Faxsysteme übertragen
werden, solche Takt Bits verloren gehen, wodurch es schwierig wird,
falls nicht sogar unmöglich,
die Information, die in den Barcode verschlüsselt ist, zu decodieren.
-
In
der
US 5,337,362 ist
ein Verfahren zur Verschlüsselung
und Formatierung einer Datenquelle beschrieben, das geeignet zum
Ausdruck als zweidimensionale Bitmap ist, des Weiteren wird die
folgende Decodierung unter der Verwendung eines Border- und Taktbits
beschrieben.
-
Die
EP 0 672 994 beschreibt
das Auslesen eines zweidimensionalen Codes.
-
Das
US-Patent mit der Nummer 5,083,214 von Knowles beschreibt ein zweidimensionales
Barcodesystem, das auch die Einbettung von Taktbits in die codierten
Daten selbst erfordert. Das Patent von Knowles mit der Nummer 5,083,214
verwendet jedoch, anstatt der Verschlüsselung jeder Reihe und Spalte
von Daten mit Synchronisations- und Clockbits, die alleroberste
Reihe in einem Datenbarcode, um eine Synchronisation während des
Scannens zu ermöglichen.
Des Weiteren umfassen die ersten acht Spalten von Bits ganz links
Taktbits, die verwendet werden, um die Takte zu bilden, um die Datenbits,
die in jeder Reihe enthalten sind, zu lesen. Da die oberste Reihe
und alle acht Spalten ganz links des zweidimensionalen Barcodes,
die in dem Knowles Patent mit der Nummer 5,083,214 beschrieben ist,
alleine für
die Synchronisation und Taktung verwendet werden, wird die gesamte
Datenkapazität
des Barcodes proportional herabgesetzt. Des Weiteren wird, falls die
oberste Reihe oder Spalten ganz links des Barcodes beschädigt werden,
die Taktinformation verloren gehen, wodurch es schwierig, wenn nicht
gar unmöglich
wird, die Daten auszulesen, die in jeder einzelnen Datenreihe codiert
sind, sowie bei anderen Systemen gemäß dem Stand der Technik.
-
Es
ist das Ziel dieser Erfindung, ein Verfahren zur Decodierung von
Informationen anzugeben, die digital in Form eines taktfreien zweidimensionalen
Barcodes codiert sind, der auf einem gedruckten Medium aufgedruckt
ist.
-
Weitere
Vorteile und Einzelheiten der vorliegenden Erfindung werden anhand
der folgenden detaillierten Beschreibung erläutert und die neuen Merkmale
werden insbesondere in den beigefügten Ansprüchen aufgeführt.
-
Zusammenfassung
der Erfindung
-
Gemäß der Erfindung
wird ein Verfahren zur Decodierung von Informationen gemäß dem unten stehenden
Anspruch 1 bereitgestellt, wobei bevorzugte Merkmale davon in den
Ansprüchen
2 bis 4, die ebenfalls unten angegeben sind, wiedergegeben werden.
-
Kurze Beschreibung
der Zeichnungen
-
Die
folgende detaillierte Beschreibung, die als Beispiel gegeben wird
und nicht dazu dient, die vorliegende Erfindung alleine hierauf
zu beschränken,
versteht man am besten im Zusammenhang mit den beigefügten Zeichnungen,
die Folgendes zeigen:
-
1 ist
ein Diagramm, das schematisch Beispiele von Barcodes darstellt,
die auf einem gedruckten Medium aufgedruckt sind,
-
2 zeigt
ein Beispiel eines zweidimensionalen Barcodes,
-
3 zeigt
einen zweidimensionalen Barcode, der Reihen von Blockkennungen beinhaltet,
-
4 ist
ein Flussdiagramm, das die Schritte zur Codierung von Informationen
auf ein gedrucktes Medium zeigt,
-
5 stellt
einige der Schritte dar, die in Übereinstimmung
mit dem Verfahren, das in dem Flussdiagramm der 4 wiedergegeben
ist, ausgeführt
werden,
-
6 ist
ein Flussdiagramm, das die Schritte zur Decodierung von Informationen,
die auf ein gedrucktes Medium gedruckt sind, gemäß der vorliegenden Erfindung
zeigt,
-
7A und 7A zeigen
jeweils, wie eine horizontale Kante und eine vertikale Kante in
den gescannten Barcode gemäß der vorliegenden
Erfindung bestimmt werden,
-
8 zeigt,
wie jeweils horizontale und vertikale Kanten in jeder einzelnen
Reihe und Spalte gemäß der vorliegenden
Erfindung gezählt
werden,
-
9A und 9B zeigten
graphisch wie Spalten- und Reihen-Taktzentren gemäß der vorliegenden
Erfindung bestimmt werden,
-
10A und 10B stellen
einen Barcode dar, der eine fehlende Reihe bzw. eine zusätzliche Reihe
aufweist,
-
11 zeigt
eine Suchordnung zur Bestimmung des Ortes der Blockkennzeichnungen,
und
-
12 zeigt
die Hinzufügung
einer Reihe von Informationen, wenn eine fehlende Reihe gemäß der Erfindung
bestimmt wurde.
-
Detaillierte
Beschreibung der bevorzugten Ausführungsbeispiele
-
Wie
vollständig
in der US-Patentanmeldung mit dem Titel „Certifiable Optical Character
Recognition" (Seriennummer
07/958,938, angemeldet am 09. Oktober 1992, die fallen gelassen
wurde, und der Continuation Application mit der laufenden Seriennummer
08/223,830, angemeldet am 06. April 1994) und „Method and Apparatus For
Providing Reproduktion for Printed Documents Enhanced Optical Character
Recognition" (Seriennummer
08/138,467, mit dem Anmeldedatum 15. Oktober 1993) beschrieben, können Informationen über den
Inhalt, das Layout, die Erzeugung und das Wiederauffinden eines
Dokuments durch einen Computer codiert werden, wenn der Computer
ursprünglich
das Dokument erzeugt oder bei einer folgenden computerbasierten
Verarbeitung davon. Die codierte Dokumenteninformation kann dann über einen
Barcode bereitgestellt werden, der hierin auch als „PanaMark"® bezeichnet
wird, der auf einer Fläche
einer gedruckten Version des Dokuments erzeugt wird. Fortgeschrittene
Codierungs- und Druckauflösungsfähigkeiten,
die gegenwärtig verfügbar sind,
können
bis zu 30.000 Bits an Information auf einem einzigen Quadratzoll
von Raum unterbringen. Deshalb kann man, wie von den oben angegebenen
Anmeldungen gelehrt wird, theoretisch den gesamten Dokumenteninhalt
codieren, begrenzt lediglich durch die Menge an Raum auf der Dokumentenfläche, die
man bereit ist, für
PanaMark zu opfern. Ein Barcodescanner, in Verbindung mit oder vollständig getrennt
von einem optischen Seitenscanner, kann das PanaMark scannen und
die Informationen einem angeschlossenen System bereitstellen, das mit
einer geeigneten Erkennungs- und Decodierungssoftware ausgestattet
ist. Die entschlüsselten Informationen
können
dann vom Scanningsystem verwendet werden, um eine neue Version des
Dokuments zu erstellen oder die Erkennung, Reproduktion und Fehlerkorrektur
für das
gescannte Dokument zu verbessern. Um PanaMark zu entschlüsseln, ist
es nicht erforderlich, dass solche Barcodescanner und Scansysteme
die Druckauflösung
der PanaMark kennen, vorausgesetzt, dass die Scanauflösung des Scanners
wenigstens so fein ist wie die Druckerauflösung der PanaMark, sodass jedes
einzelne 1 × 1 oder
Pixel der PanaMark, das ein logisches Bit repräsentiert, gescannt werden kann.
-
Die
in Form einer PanaMark verschlüsselte Information
kann verwendet werden, um die Softwaretools zu verbessern, die bereits
verwendet werden, um Papierdokumente zu erstellen. Beispiele beinhalten
Textverarveitung, Tabellen, objektorientierte Grafiken und Multimediaanwendungen,
wie zum Beispiel Stimmaufzeichnung und fotografische Bildgebung.
Diese Beispiele werden unter Bezugnahme auf 1 erläutert.
-
1 stellt
verschiedene Darstellungen einiger der Anwendungen für eine PanaMark
dar, die auf einer gedruckten Seite aufgedruckt ist. Die gedruckte Seite 10 zeigt
Buchstabentext, der von einem Standardtextverarbeitungsprogramm
erzeugt wurde, wie zum Beispiel Microsoft® Word
5.1a®.
Die gedruckte Seite 11 zeigt eine Tabelle, die von einem
standardmäßigen Tabellenprogramm
erstellt wurde, zum Beispiel von Microsoft® Excel®.
Die gedruckte Seite 12 zeigt eine computergenerierte Grafik,
die von einem standardmäßigen Grafikprogramm
erstellt wurde, wie zum Beispiel MacDraw Pro 1.5v1®. Jede
einzelne dieser gedruckten Seiten 10 bis 12 umfasst
einen analogen Teil 13, wie zum Beispiel den Buchstabentext
der Seite 10, der für
einen menschlichen Leser leicht verständlich ist, und einen digitalen
Teil 14, bei dem es sich um ein Beispiel für einen
Datenbarcode oder eine PanaMark handelt, die für eine maschinelle Verwendung
formatiert sind. Die PanaMark 14 der gedruckten Seite 10 kann
den gesamten Text der Seite codieren und/oder andere Informationen
wie zum Beispiel verschiedene Formatierungsinformationen, sodass
ein Text, der von einer Textverarbeitungssoftware erzeugt wurde,
wie zum Beispiel Microsoft® Word® erneut
formatiert werden kann, um mit einer anderen Textverarbeitungssoftware
wie zum Beispiel WordPerfect zu arbeiten. PanaMark 14 der gedruckten
Seite 11 kann die tatsächliche
Texttabelle codieren und/oder Formeln und Formatierungsinformationen
beinhalten, sodass eine Tabelle, die mit Microsoft® Excel® formatiert
wurde, in andere Tabellensoftwareprogramme konvertiert werden kann,
wie zum Beispiel Lotus®-Tabellenkalkulation.
In ähnlicher Weise
kann die PanaMark 14 der gedruckten Seite 12 Informationen
codieren, bei denen es sich um andere Informationen als die computergenerierten
Grafiken handelt. Des Weiteren sollte bemerkt werden, dass jede
beliebige dieser PanaMarks 14 Informationen beinhalten
kann, die vollständig
unabhängig
von den analogen Teilen 13 sind. Außerdem können die PanaMarks 14 jede
beliebige zweidimensionale Größe oder
Form haben, die nötig
ist, um die ästhetische Erscheinungsform
zu gewährleisten
oder die Informationsmenge, die auf der gedruckten Seite enthalten
ist, codiert zu enthalten.
-
Die 2 zeigt
ein Beispiel der grundlegenden PanaMark-Symbologie. Die PanaMark 15 umfasst
einen codierten Satz von Datenbits in einem zweidimensionalen Gitter.
Typischerweise wird jedes einzelne Datenbit, das codiert wird, als
eine Matrix schwarzer oder weißer
Pixel 17 gedruckt. Bevorzugterweise ist eine Pixelmatrix,
die ein Datenbit darstellt, quadratisch und kann so klein sein wie
eine 1 × 1-Matrix,
aber auch so groß wie
eine 6 × 6-Matrix oder
größer. Nichtquadratische
Matrizen können auch
verwendet werden. Bevorzugterweise beinhaltet die PanaMark eine
Entzerrungsgrenze 16, die zwei horizontale und zwei vertikale
Entzerrungsstreifen 16 umfasst, die den einzigen Nichtdatenteil
der PanaMark darstellen. Jeder einzelne Entzerrungsstreifen wird
verwendet, um sicherzustellen, dass jede einzelne Reihe und Spalte
der PanaMark geeignet miteinander angeordnet ist, wie im Einzelnen
unter Bezugnahme auf 5 noch ausgeführt wird. Eine
hinreichende Anordnung kann jedoch mit der Verwendung lediglich
eines einzigen Entzerrungsstreifens erreicht werden, und es ist
möglich,
akzeptable Ergebnisse ohne Verwendung irgendwelcher Entzerrungsstreifen
zu erhalten.
-
Die
Datenbits, die durch schwarze und weiße Pixel 7 dargestellt
werden, sind bevorzugterweise randomisiert, um sicherzustellen,
dass sich eine gleiche Verteilung von 0- und 1-Bits ergibt. Des
Weiteren kann die gesamte PanaMark unter Verwendung entweder regulärer (schwarzer)
Tinte oder „unsichtbarer" Tinte gedruckt werden,
die nur mit einem geeigneten Scanner lesbar ist, wie zum Beispiel
einem Ultraviolettscanner.
-
In
der 3 ist ein bevorzugtes Beispiel eines PanaMark 20 dargestellt,
der eine Entzerrungsgrenze 25 aufweist und Reihen 21, 22, 23 und 24 so genannter
Blockkennungen beinhaltet. Diese Blockkennungen können eine
ganze Reihe von Datenbits umfassen, wie in der 3 dargestellt,
oder sie können
nur einen Teil einer Reihe an spezifischen vorbestimmten Orten umfassen.
Des Weiteren können Blockkennungen
in Spalten von Datenbits anstelle von oder in Verbindung mit Reihen
von Datenbits enthalten sein.
-
Wie
detaillierter unter Bezugnahme auf die 4 beschrieben
wird, werden Blockkennungen wahlweise an vorbestimmten Orten in
einer PanaMark hinzugefügt,
um es zu ermöglichen,
die Anzahl von Datenbits zwischen jeder einzelnen Blockkennung zu
identifizieren. Auf diese Art und Weise wird es möglich, zu
bestimmen, ob Datenbits in der PanaMark hinzugefügt sind oder fehlen und solche
Fehler auszugleichen.
-
Die 4 ist
ein Flussdiagramm, das die Schritte zur Verschlüsselung zu Informationen in Form
einer PanaMark auf einem gedruckten Medium wie zum Beispiel Papier
darstellt. Die Eingabedaten, die für den Einschluss in die PanaMark
bestimmt wurden, werden im Schritt 30 komprimiert. Es könnten verschiedene
Kompressionsalgorithmen verwendet werden, in Abhängigkeit von der Natur der
Eingabedaten (zum Beispiel LZW® für Text, JPEG® für Grafiken).
Der Kompressionsalgorithmus konvertiert die eingegebenen Rohdaten
(jedes beliebigen Typs) und erzeugt einen schriftzeichenbasierten
oder binären komprimierten
Datenstrom. Falls der komprimierte Datenstrom schriftzeichenbasiert
ist, wird der Datenstrom auf entsprechende binäre Bits oder Bytes digitaler
Daten abgebildet, die Nullen und Einsen umfassen. Falls der komprimierte
Datenstrom binär
ist, ist dieser Schritt unnötig.
-
Im
Schritt 31 wird der binäre
Datenstrom eine vorherbestimmte Anzahl von Malen repliziert und
bevorzugterweise zu einem einzigen linearen Datenstrom kombiniert.
Der Grad an Redundanz wird von der beabsichtigten Anwendung abhängen, zum
Beispiel davon, wie viel Realweltschaden zu erwarten ist, und von
der Menge an Platz, der für
die PanaMark zur Verfügung
steht. Es sollte auch berücksichtigt
werden, dass das Replizieren des Datenstroms nicht nötig ist
und dazu verwendet wird, die Entschlüsselungsgenauigkeit durch Redundanz
zu verbessern.
-
Im
Schritt 32 kann an verschiedenen Stellen im Datenstrom
ein Fehlerkorrekturcode (Error Correcting Code-ECC) hinzugefügt werden.
Zum Beispiel können
Standard ECC-Techniken zur Erzeugung von ECC-Bits für die Daten
verwendet werden. Ein Beispiel für
einen ECC-Algorithmus, der gute Ergebnisse erzielt hat, ist der
binäre
BCH-Code. Weiterhin können
die Daten in dem Datenstrom mit einem zyklischen Redundanzcheck
(Cyclic Redundancy Check – CRC)
codiert werden, um Fehler zu entdecken und die Korrektur von Fehlern
zu unterstützen.
Der CRC-Algorithmus, der verwendet wird, kann ein Standardalgorithmus
wie zum Beispiel der in „CCITT
Polynomial" sein.
Hier ist es wiederum so, dass der ECC nicht benötigt wird, aber bevorzugterweise
verwendet wird, um eine größere Entschlüsselungsgenauigkeit
zu erreichen.
-
Im
Schritt 33 werden die Daten in dem Datenstrom bevorzugterweise
randomisiert, um sicher zu stellen, dass insgesamt im Wesentlichen
die gleiche Anzahl von 0- und 1-Bits vorliegt. Die Randomisierung
muss selbstverständlich
umkehrbar sein, sodass die randomisierten Bits während der Entschlüsselung entrandomisiert
werden können.
Es gibt viele Techniken zur Durchführung einer Randomisierung. Zum
Beispiel kann der Datenstrom Bit für Bit randomisiert werden.
Das heißt,
dass jedes einzelne Datenbit im Datenstrom die gleiche Wahrscheinlichkeit aufweist,
ein binäres
0- oder 1-Bit zu sein. Eine andere Randomisierungstechnik wäre, eine
weitere Kompressionsschicht anzuwenden. Des Weiteren kann jede beliebige
einer Anzahl wohlbekannter kryptografischer Techniken auch verwendet
werden. Kryptografische Techniken haben die potentiell erwünschte Nebenwirkung
der Sicherstellung der Daten, da, um die Daten zu entschlüsseln, der
richtige Verarbeitungskey benötigt
wird. Demgemäß würde eine
nicht autorisierte Entschlüsselung
der PanaMark verhindert werden. Der Zweck der Randomisierung der
Datenbits ist es, eine näherungsweise
50-50% Verteilung von Nullen und Einsen sicherzustellen, was dabei
hilft, die Daten in der PanaMark ohne die Verwendung von Taktungen
zu entschlüsseln.
Dies wird im Folgenden detailliert beschrieben.
-
Im
Schritt 34 wird der randomisierte Datenstrom abgebildet
oder auf ein zweidimensionales Feld geblockt. Dieser Schritt kann
unter Verwendung einer einfachen Reihen-Haupt-Ordnungs-Abbildungstechnik
oder einer komplizierteren „zufälligen" Abbildungstechnik
durchgeführt
werden, wie sie im Stand der Technik bekannt ist. Des Weiteren kann das
zweidimensionale Feld mit zufälligen
Bits aufgefüllt
oder „bit-stuffed" werden, um alle
unbenötigten Plätze aufzufüllen. Des
Weiteren liefert das Blockierverfahren, falls es erwünscht ist,
Blockkennungen in die PanaMark einzufügen, wie oben diskutiert, bestimmte
vorbestimmte Orte in dem zweidimensionalen Feld leer.
-
Im
Schritt 35 werden Blockkennungen in die leeren Stellen
eingeführt,
die verwendet werden, wie vorstehend beschrieben, um die Anzahl
verschlüsselter
Datenbits dazwischen zu zählen,
um fehlende oder hinzugefügte
Datenreihen und/oder -spalten zu entdecken, wenn die PanaMark gelesen
wird. Die freien Stellen können
in Reihen oder Spalten des zweidimensionalen Feldes auftreten oder
können eine
ganze Reihe oder Spalte umfassen bzw. nicht umfassen.
-
Danach
wird das zweidimensionale digitale Feld in ein Portable-Bitmap-Format
(PBM-Format) konvertiert, indem Headerinformationen und alle notwendigen
Steuerungsdaten (zum Beispiel Entzerrungsbalken) im Schritt 36 zur
PanaMarke zugefügt werden.
Diese PBM wird dann unter Verwendung eines herkömmlichen Translatorprogramms
in ein gekapseltes PostScript (Encapsulated PostScript-EPS) konvertiert.
-
Im
Schritt 37 wird die EPS-Repräsentation der PanaMark mit
einer PostScript-Darstellung
der gedruckten Seite unter Verwendung eines Standard-Übersetzungsprogramms zusammengefasst. Schließlich werden
im Schritt 38 die analoge Information und die PanaMark
auf einem gedruckten Medium mittels eines Standarddruckers eines
beliebigen Typs ausgedruckt.
-
Dies
ist so zu verstehen, dass viele dieser Schritte miteinander ausgetauscht
werden können oder
vollständig
weggelassen werden können.
Zum Beispiel kann der Schritt 33 der Randomisierung vor der
Replizierung des Datenstroms durchgeführt werden, oder der Schritt
der Randomisierung kann vollständig
weggelassen werden.
-
Ein
spezifisches Beispiel, um die Schritte, die in 4 erklärt wurden,
weiter zu beschreiben, ist in der 5 dargestellt.
Im Schritt 15 stellt der Satz „Call me Ishmael" die eingegebenen
Rohdaten dar, die in einer PanaMark verschlüsselt und auf eine gedruckte
Seite gedruckt werden sollen.
-
Im
Schritt 51 kann die Schriftzeichenwendung zu der gezeigten
Darstellung komprimiert werden. Jedes Schrittzeichen wird dann im
Schritt 52 auf seinebinäre
Darstellung abgebildet.
-
Schritt 53 zeigt
die Replizierung des Datenstroms des Schritts 52. Dies
ist so zu verstehen, dass, obwohl drei Datenströme gezeigt sind, diese bevorzugterweise
ein einziger gleichzeitiger Datenstrom sind. Im Schritt 54 ist
gezeigt, dass ein drei Bit-ECC zu allen vier Bits von Daten hinzugefügt wird.
Im Schritt 55 werden die Bits des replizierten ECC-verschlüsselten
Datenstroms randomisiert. Im Schritt 56 wird der randomisierte
lineare Datenstrom auf ein zweidimensionales Feld durch die „zufällige" Abbildungstechnik
abgebildet. Die zufällige
Abbildung kann gegenüber
der Reihe-Haupt-Ordnung-Abbildung zu bevorzugen sein, wenn es sich
um Anwendungen handelt, bei denen ein höchst lokalisierter Schaden
an Teilen der PanaMark möglich
ist. Die leeren Bitstellen werden im Schritt 57 mit Blockkennungen
(001) gefüllt.
Schließlich
wird im Schritt 58 eine Darstellung eines Teils der PanaMark
gezeigt.
-
Wenn
erst einmal Informationen in der Form einer PanaMark verschlüsselt und
auf eine gedruckte Seite gedruckt sind, kann diese mittels der Schritte, die
in 6 gezeigt sind, von der Seite gelesen werden.
Für den
Zweck der Entschlüsselung
der PanaMark besteht die Erkennung der Markierung aus mehr als dem
bloßen
Auffinden ihres Ortes auf der gedruckten Seite. Die Erkennung besteht
aus den Schritten 60 bis 63, die die Lokalisierung
der PanaMark und die Durchführung
von Bildtransformationen zum Vorbereiten der PanaMark für die Entschlüsselung
umfassen.
-
Im
Schritt 60 wird die gesamte Dokumentenseite gelesen, beispielsweise
mittels eines Scanners, wobei sowohl der analoge Teil als auch die
PanaMark in einer Online-Bitmap-Darstellung transferiert werden.
Dies kann insbesondere dadurch erfolgen, dass ein optischer Flachbettscanner
in einem Standard-8-Bit-Graustufen-Format (TIFF-Format) zur Erzeugung von
Bilddateien verwendet wird. Falls jedoch die PanaMark unter Verwendung
der so genannten „unsichtbaren" Tinte wie vorstehend
diskutiert, ausgedruckt worden ist, würde ein Ultraviolettlichtscanner
verwendet werden, um die PanaMark zu scannen.
-
Im
Schritt 61 wird das Graustufenbild unter Verwendung von
Schwellwerten in eine binäre Schwarz-Weiß-Bitmap
umgewandelt. Während
der Anwendung des Grenzwertverfahrens wird ein Intensitätslevel
dynamisch gewählt,
worin Pixel mit einem Intensitätslevel
oberhalb des Grenzwertlevels als ein schwarzes (oder ein weißes) Pixel
betrachtet werden, während
Pixel mit einem Intensitätslevel
unterhalb des Schwellwertlevels umgekehrt als ein weißes (oder
schwarzes) Pixel betrachtet werden.
-
Danach
wird im Schritt 62 die PanaMark basierend auf verschiedenen
Techniken von der Bitmap lokalisiert. Zum Beispiel werden die Größe oder
näherungsweise
Lokalisierung der PanaMark gespeichert, sodass sie auf dem gedruckten
Dokument lokalisiert werden kann. Das PanaMark-Bild wird dann abgeschnitten
und die zweidimensionale Pixelgröße wird
bestimmt. Die Bestimmung der Pixellänge oder -breite ist erwünscht, da
zum Beispiel, falls sich ergibt, dass die PanaMark 2,615 Pixel lang
ist und es bekannt ist, dass dieses logisch 655 Bits entspricht, daraus
geschlossen werden kann, dass jedes einzelne Bit näherungsweise
4 Pixel lang ist.
-
Im
Schritt 63 wird eine Korrektur an der PanaMark vorgenommen,
um auszugleichen, dass die PanaMark mit einem leichten Winkel gescannt
wurde. Grundsätzlich
beinhaltet der Schritt der Entzerrung der PanaMark ein Rückgängigmachen
der Rotation der Markierung durch ein Verschieben („sliding") dieser Datenbits
und der Entzerrungsstreifen in eine Position derart, dass die vertikalen
und horizontalen Entzerrungsstreifen jeweils tatsächlich vertikal
und horizontal verlaufen. Wie oben beschrieben ist zur Durchführung dieses
Entzerrungsschrittes nur ein einziger Streifen notwendig. Diese
Technik kann den so genannten „Sheer"-Algorithmus verwenden, wobei
es angenommen wird, dass der Streifen links außen mit der Kante der PanaMark
bündig
ist, um die Reihen von Pixeln nach links zu verschieben, wie benötigt. Eine
andere Entzerrungstechnik kann verwendet werden, die als der „Rotate"-Algorithmus bekannt ist,
gemäß der die
inverse geometrische Rotation auf das Bild angewandt wird. Danach
wird die PanaMark entzerrt, die Entzerrungsstreifen (das heißt, die Nichtdatengrenzen)
werden vom Bild entfernt.
-
Nun,
da die PanaMark lokalisiert und verbessert worden ist, ist die PanaMark
bereit, um die Entschlüsselung
in den Schritten 64 und 65 vorzunehmen. Die Entschlüsselung
der PanaMark beinhaltet die tatsächliche Übersetzung
der Pixel vom gescannten Bild in binäre Daten in der Form eines
zweidimensionalen Bit Arrays. Als solcher ist dies verständlicherweise
der wichtigste Schritt in dem Leseverfahren für die PanaMark. Obwohl in der
Vergangenheit zweidimensionale Barcodes unter Verwendung so genannter „Clocks" oder „Clocking
Bits" wie oben diskutiert
entschlüsselt
wurden, verwendet die PanaMark keinerlei solcher Taktbits, sondern
entschlüsselt
die Informationen einzig und allein basierend auf den Datenpixeln
selbst. Die Entschlüsselung
macht sich die Zufälligkeit
jedes einzelnen Datenpixels zu Nutze, woraus sich ergibt, dass in
jeder beliebigen Reihe oder Spalte näherungsweise eine gleiche Anzahl
von Nullen und Einsen enthalten ist. Folglich gibt es viele weiß-nach-schwarz-
und schwarz-nach-weiß-Übergänge, die
im Folgenden als „Kanten" bezeichnet werden,
und zwar überall
in der Markierung. Diese Kanten werden dazu verwendet, um Reihen-
und Spalten-„Center" im Schritt 64 zu
bestimmen. Die Reihen- und Spalten-Center werden dann verwendet,
um zu bestimmen, wo jedes einzelne Datenbit im Schritt 65 ausgelesen
werden soll. Diese taktfreie Entschlüsselungstechnik könnte auch
arbeiten, falls die Daten nicht randomisiert worden sind; es ist
jedoch wahrscheinlich, dass sie in diesem Fall weniger wirksam ist.
Die Details der Schritte 64 und 65 werden unter
Bezugnahme auf die 8 bis 12 im
Folgenden detaillierter beschrieben.
-
Im
Schritt 66 sind die binären
Daten aus der PanaMark ausgelesen worden, und die Blockkennungen,
falls welche vorliegen, sind lokalisiert. Dann wird verifiziert,
basierend auf der Anzahl von verschlüsselten Datenbits oder der
Anzahl von Reihen und/oder Spalten zwischen jeder einzelnen lokalisierten
Blockkennung, ob Reihen/Spalten von Daten gelöscht worden oder hinzugefügt worden
sind. Falls dies der Fall ist, werden hinzugefügte oder fehlende Reihen/Spalten
wie im Folgenden unter Bezugnahme auf die 10 bis 12 beschrieben
kompensiert.
-
Nachdem
die Integrität
des zweidimensionalen Bitfeldes bestätigt worden ist, werden die
binären Datenbits,
wie im Schritt 67 dargestellt, entsperrt, wodurch sich
ein linearer Datenstrom ergibt. Dann wird im Schritt 68 der
inverse Randomisierungsprozess durchgeführt. Im Schritt 69 durchlaufen
die binären Datenbits
eine Standard ECC-Prozedur, um Fehler zu eliminieren, wie im Stand
der Technik bekannt ist. Nach dem ECC-Verfahren werden die redundanten Datenströme, falls
solche vorliegen, verwendet, um im Schritt 70 einen „Konsens"-Datenstrom zu bilden. Zum Beispiel kann,
falls es drei redundante Datenströme gibt, eine Mehrheitswahl
verwendet werden, sodass in dem Fall, dass zwei Datenströme zeigen, dass
der Wert eines bestimmten Datenschriftzeichens „C" ist, während der dritte Datenstrom
zeigt, dass der Wert „Q" beträgt, die
Mehrheit gewinnt und die Ausgabe „C" sein wird.
-
Schließlich wird
im Schritt 71 der Strom dekomprimiert, wodurch sich die
originalen Roheingabedaten ergeben.
-
Diese
Technik der Entschlüsselung
der PanaMark wird nun unter Bezugnahme auf die 7 bis 9 erklärt.
Um die PanaMark ohne die Verwendung von Taktbits zu entschlüsseln werden
alle horizontalen „Edges" für jede einzelne
Spalte und alle vertikalen „Edges" jeweils für einzelne
Reihe gezählt.
Eine Kante wird definiert als zwei benachbarte Pixel der gleichen
Farbe, die an ein Pixel einer anderen Farbe angrenzen. Die vier
unterschiedlichen Typen horizontaler Kanten sind mit den Bezugszeichen 73 und 74 der 7A bezeichnet.
In ähnlicher
Weise sind die vier unterschiedlichen Typen vertikaler Kanten durch
die Bezugszeichen 75 und 76 der 7B dargestellt.
Ob eine horizontale Kante als eine rechte Kante 73 oder
eine linke Kante 74 betrachtet wird, hat keine Konsequenzen,
wenn sie verwendet wird, um die PanaMark zu entschlüsseln. Falls
jedoch die Anzahl horizontaler rechter Kanten und horizontaler linker
Kanten vorher bekannt ist und falls eine andere Anzahl gezählt wird,
dann wird ein Fehler erkannt. Das gleiche kann über die vertikale obere Kante 75 und
die vertikale untere Kante 76 gesagt werden.
-
Die 8 stellt
dar, wie horizontale und vertikale Kanten jeweils in jeder einzelnen
Spalte und Reihe gezählt
werden, um Spaltenmittellinien und Reihenmittellinien zu bestimmen.
Im Allgemeinen haben Spalten und Reihen, die Spalten- und Reihenmittellinien
entsprechen, bei Weitem weniger Kanten als jene, die Nichtcentern
entsprechen. Spalten- und Reihenmittellinien werden verwendet, um
das Centerpixel einer Pixelmatrix zu bestimmen, das ein binäres Datenbit
zum Auslesen darstellt. Das Centerpixel wird ausgelesen, um die
genauesten Daten zu erhalten, im Gegensatz zu den umgebenden Seitenpixeln der
Matrix. In anderen Worten ist es in dem Fall, in dem ein einziges
Datenbit durch einen 3 × 3
Block von Pixeln dargestellt wird, wünschenswert, das Mittelpixel
der Datenbits auszulesen. Umgekehrt haben die Pixel, die das Mittelpixel
umgeben, eine bei Weitem größere Chance
darauf, fehlerhaft zu sein, aufgrund von Rauschen, das durch zufällige Pixelfehler und
dergleichen verursacht wird. Demgemäß kann durch eine Bestimmung
der Orte in jeder einzelnen Spalte und Reihe, die die geringste
Anzahl von Kanten haben, jedes einzelne Mittelpixel genau lokalisiert werden,
wodurch die zuverlässigsten
binären
Daten erhalten werden, wenn dieses Pixel ausgelesen wird.
-
Die 8 stellt
dar, wie vertikale und horizontale Kanten in einem Teil einer PanaMark
ausgewiesen werden. Zum Beispiel wird die Scanlinie 80 verwendet,
um die Anzahl vertikaler Kanten, die in Reihe 3 enthalten
sind, zu zählen.
Wie gezeigt hat Reihe 3 vier vertikale Kanten. In ähnlicher
Weise weist Reihe 5 dreizehn vertikale Kanten auf, die
entlang der Scanlinie 81 gezählt wurden. Unter Bezugnahme
auf die horizontale Kantenzählung
beinhaltet Spalte 8 acht horizontale Kanten entlang der
Scannlinie 78, während
Spalte 15 zwei horizontale Kanten entlang der Scanlinie 79 aufweist.
Selbstverständlich wird
jede einzelne Reihe und Spalte gescannt, sodass die Anzahl von Kanten
für jede
Reihe und Spalte bestimmt wird.
-
Die 9A stellt
horizontale Kantenzählungen
pro Spalte für
die gesamte Breite einer PanaMark mit 134 Pixelspalten dar. Wie
gezeigt wird immer wenn ein lokales Minimum vorliegt, bestimmt, dass
die Spalte eine Spaltenmittellinie aufweist. In ähnlicher Weise stellt die 9B die
vertikale Kantenzählung
per Reihe für
die Teillänge
(die ersten 134 Reihen) einer PanaMark dar, die sich über den
größten Teil
einer gedruckten Seite, wie in den PanaMarks 14 der 1 zu
sehen, erstreckt. Hier sind auch die lokalen Minima, die Reihenmittellinien
darstellen, gut definiert.
-
Im
Betrieb muss das Computersystem nicht tatsächlich grafisch die Spalten-
und Reihencenter, wie jeweils in den 9A und 9B dargestellt, herstellen.
Stattdessen wird jeweils ein eindimensionale lineare Darstellung
für jede
einzelne Reihe und Spalte berechnet, um die lokalen Minima zu bestimmen.
Dies kann sehr genau durchgeführt
werden, da der Computer schätzt,
wie weit jede einzelne Reihenmitte und Spaltenmitte voneinander
beabstandet sein sollten. Zum Beispiel ist es in einem binären Datenbit,
das durch eine 3 × 3
Pixelmatrix dargestellt wird, bekannt, dass näherungsweise alle drei Pixelreihen
und alle drei Pixelspalten eine neue Reihen- und Spaltenmittellinie
sein sollte. Die Mittellinien sind so gut definiert, dass es nicht
erforderlich ist, dass der Computer den näherungsweisen Abstand der Mittellinien
kennt.
-
Wenn
die horizontalen und vertikalen Kanten erst einmal gezählt und
jede Spalte- und
Reihenmittellinie bestimmt ist, werden die binären Daten, die an der Schnittlinie
der Spalten- und Reihenmittellinien lokalisiert sind, sequentiell
ausgelesen, um ein zweidimensionales Zelt von Datenbits zu bilden.
Zum Beispiel weist die Spalte 31, wie in der 9A gezeigt, ein
Spaltenmittellinie auf. So werden für jede Reihenmittellinie, wie
in der 9B gezeigt (Reihe 9, 13, 16 ...)
die binären
Daten ausgelesen, an dem Ort, an dem jede einzelne Reihenmittellinie
(9, 13, 16 ...) die Spaltenmittellinie 31 schneidet.
-
Wenn
das zweidimensionale Feld von Datenbits hergestellt ist, werden
Blockkennungen, falls solche vorliegen, wie im Schritt 66 der 6 beschrieben
identifiziert. Der Vorteil des Einfügens von Blockkennungen in
die PanaMark während
des Verschlüsselungsverfahrens
sollte offensichtlich sein. Es ist leicht, sich Umstände vorzustellen,
unter denen die binären
Daten in einer PanaMark nicht zuverlässig entschlüsselt werden
können.
Zum Beispiel sei angenommen, dass die Mehrzahl der PanaMark bedeckt
ist oder fehlt oder dass bloß ein
kleiner Bereich der PanaMark bedeckt ist. In diesem Fall kann es, obwohl
es möglich
ist, welche Daten auch immer vorliegen, diese direkt zu entschlüsseln, nicht
möglich sein,
die entschlüsselten
Daten zu verwenden, da nicht bekannt ist, wo sie bezüglich der
fehlenden Daten hingehören.
Ein subtilerer Effekt tritt auf, wenn eine PanaMark gefaxt wird.
Es wurde beobachtet, dass ein Scanner von Faxmaschinen verschiedene Verzerrungen
entlang von Datenbarcodes verursacht. Demgemäß ist es denkbar, dass eine
PanaMark, die mittels eines Faxgeräts übertragen worden ist, eine
Verzerrung entlang einer Reihe von Pixeln aufweist, die dafür sorgt,
dass fehlende oder zusätzliche
Reihen von Pixeln auftreten. Die 10A zeigt ein
PanaMark 82, bei der eine Reihe von Pixeln 83 derart
komprimiert worden ist, dass, wenn die PanaMark entschlüsselt wird,
die komprimierte Reihe von Pixeln wechselt. Die 10B zeigt eine PanaMark 84, bei der eine
Reihe von Pixeln 86 auf näherungsweise das Zweifache
ihrer Größe expandiert
worden ist. Demgemäß wird die
expandierte Reihe, wenn die PanaMark 84 entschlüsselt wird,
mehr als einmal in der Ausgabe dargestellt. Dies kann dazu führen, dass
eine gesamte Reihe oder Reihen von Datenbits verloren gehen oder
dupliziert werden. Selbstverständlich
kann der gleiche Effekt in den Spalten der PanaMark auftreten.
-
Deswegen
ist es wünschenswert,
Blockkennungen einzufügen,
die jeweils eine bekannte vorbestimmte Bitsequenz oder einen Wert
haben, wobei die Einfügung
an vorbestimmten leeren Orten des digitalen zweidimensionalen Feldes
erfolgt, wie in den Schritten 56 und 57 der 5 dargestellt.
Die Blockkennungen können
eine gesamte Reihe oder Spalte belegen und mittels einer bekannten
Anzahl von Reihen oder Spalten von Datenbits separiert werden. Alternativ
können
die Blockkennungen eine vorbestimmte Anzahl von Bits darstellen,
die durch eine vorbestimmte Anzahl von Datenbits separiert werden.
Während
der Entschlüsselung,
nachdem die binären
Datenbits in ein zweidimensionales Bitfeld ausgelesen worden sind,
werden die Blockkennungen zunächst
lokalisiert und dann bevorzugterweise die Anzahl von Reihen und/oder
Spalten zwischen jeder einzelnen Blockkennung gezählt, um
zu bestimmen, ob es hinzugefügte
oder fehlende Reihen gibt. Alternativ werden die Anzahlen von Datenbits
zwischen Blockkennungen gezählt,
um zu bestimmen, ob Datenbits hinzuzufügen oder zu löschen sind. Wenn
Reihen und/oder Spalten oder Datenbits fehlen, muss dann bestimmt
werden, wo Daten hinzuzufügen
sind, um die Fehler auszugleichen.
-
Die 11 zeigt
die bevorzugte Suchreihenfolge zur Bestimmung der Stelle einer Blockkennung. Da
die Fehler genauso wahrscheinlich innerhalb der Bits auftreten,
die die Blockkennungen darstellen, wie überall sonst, sucht der Blockerkennungsalgorithmus
nicht nach einer exakten Übereinstimmung mit
einem vorbestimmten Wert. Stattdessen wird die Linie mit dem minimalen
Hamming-Abstand zu jeder einzelnen vorbestimmten Bitsequenz identifiziert,
als die Linie, die die Blockkennung enthält. Selbstverständlich können andere
Techniken neben dem Vergleich von Hamming-Abständen verwendet werden.
-
Die 11 zeigt
einen Teil der PanaMark 90, die eine Folge von Reihen 91, 92, 93, 94, 95 von
Datenbits aufweist, deren eine Reihe eine Blockkennung mit einer
vorbestimmten Bitsequenz aufweist. Um die Blockkennung zu lokalisieren,
wenn zum Beispiel bekannt ist, dass jede einzelne Blockkennung nach
jeweils acht Reihen verschlüsselter
Datenbits eingefügt
worden ist, wird angenommen, dass die Reihe, die die Blockkennungsbits
aufweist, jede neunte Reihe sein wird, es sei denn, es hat irgendeine
Verzerrung gegeben. Demgemäß wird die
Reihe, die die erwartete Blockkennung aufweist (Reihen 91 der 11)
als erste mit der vorbestimmten Bitsequenz verglichen. Falls es
keine exakte Übereinstimmung
gibt, wird die Reihe 92 mit der Bitfolge verglichen. Die
verbliebene Suchordnung wird weiter in der 11 dargestellt,
das heißt,
Reihe 93, 94 und 95. Falls es in keiner
dieser Reihen eine exakte Übereinstimmung
gibt, wird die Reihe mit dem minimalen Hamming-Abstand von der vorbestimmten
Bitfolge als die Reihe mit der Blockkennung bestimmt. Selbstverständlich kann
die Blockkennung, obwohl die Blockkennung so dargestellt wird, dass
sie in einer Reihe von Datenbits vorliegt, auch in Spalten des Bitfeldes
lokalisiert sein. Des Weiteren können
die exakten Orte jeder einzelnen Blockkennung innerhalb einer Reihe
oder Spalte bekannt sein, sodass die bekannte Reihe oder Spalte
zuerst mit der vorbestimmten Bitfolge verglichen wird, wie oben
beschrieben.
-
Wenn
alle der Blockkennungen lokalisiert sind, kann bestimmt werden,
ob eine Anordnung durchgeführt
werden muss. Falls die Anzahl von Reihen zwischen jeder einzelnen
Blockkennung die korrekte vorbestimmte Anzahl beinhaltet, ist keine
Ausrichtung erforderlich. Falls diese jedoch zu wenige Reihen beinhaltet,
ist eine Ausrichtung erforderlich, um zusätzliche Reihen hinzuzufügen. Falls
zu viele Linien vorhanden sind, ist eine Anordnung notwendig, um überflüssige Reihen
zu löschen.
-
Falls
festgestellt worden ist, dass eine Reihe codierter Datenbits gelöscht werden
sollte, das heißt, die
Anzahl tatsächlicher
Reihen codierter Datenbits die vorbestimmte Anzahl überschreitet,
dann wird angenommen, dass, falls es zwei benachbarte Reihen mit
identischen binären
Daten gibt, eine Reihe gelöscht
werden sollte. Falls es keine zwei benachbarten identischen Reihen
gibt, dann wird eine der zwei benachbarten Reihen mit dem minimalen
Hamming-Abstand voneinander gelöscht.
-
Falls
jedoch bestimmt worden ist, dass die Anzahl von Reihen codierter
binärer
Daten geringer ist als die vorbestimmte Anzahl, zum Beispiel wenn eine
Reihe fehlt, dann ist es nötig,
ein Reihe binärer Daten
hinzuzufügen.
Dies lässt
die Frage offen, welche Daten eingefügt werden sollten und wo diese
Daten eingefügt
werden sollten. Was die Frage betrifft, welche Daten eingefügt werden
sollten, können
zufällige
Daten als „Platzhalter" bei Fehlen einer
besseren Wahl verwendet werden. Da die originalen codierten Daten
randomisiert sind, wird jede beliebige Wahl der Anzahlen der Nullen
und/oder Einsen für die
eingefügte
Reihe eine erwartete Genauigkeitsrate von 50% erreichen. Während die
eingefügte
Reihe im Mittel eine vergleichsweise große Fehlerzahl enthalten wird,
wird die korrekte Anzahl von Reihen zwischen jeder einzelnen Blockkennung
erreicht und eine ECC- und/oder Datenredundanz kann gegebenenfalls
auftretende Fehler korrigieren.
-
Die 12 zeigt
das Verfahren zur Festlegung, wo eine Reihe von zufälligen binären Daten
in der PanaMark 100 einzufügen ist, wenn festgestellt wurde,
dass eine Reihe fehlt. Das bevorzugte Verfahren betrachtet jede
einzelne Reihenmittellinie, zum Beispiel die Reihenmittellinie 101 zwischen
zwei aufeinander folgenden Blockkennungen, wie durch den Pfeil 105 in 12 dargestellt.
In der Reihenmittellinie 101 werden alle Pixel mit einem „X" markiert. Als nächstes wird
jedes einzelne Pixel in Reihe 102 über und Reihe 103 unter
der Reihenmittellinie 101 mit seinem benachbarten Reihenmittellinienpixel
verglichen. In diesen Reihen 102 und 103 wird
ein Pixel mit einem „X" markiert, um anzuzeigen,
dass das Pixel die gleiche Farbe aufweist (das heißt „verbunden
ist") mit der Reihenmittellinie 101.
Schließlich
wird die Reihe mit der geringsten Anzahl von „X"en, das heißt den am meisten „unverbundenen" Pixeln als unangemessen
benachbart zur Reihenmittellinie bestimmt und die hinzugefügte Reihe
von zufälligen
Daten wird dazwischen eingefügt.
Unter Verwendung dieser Technik beinhaltet die Reihe 102 drei
unverbundene Pixel (im Gegensatz zu lediglich zwei unverbundenen
Pixeln der Reihe 103) und wird deshalb als die fehlerhaft
benachbarte Reihe ausgewählt.
Demgemäß wird eine
Reihe von zufälligen
Daten zwischen Reihe 102 und der Reihenmittellinie 101 eingefügt.
-
Obwohl
die vorliegende Erfindung insbesondere unter Bezugnahme auf die
bevorzugten Ausführungsbeispiele
und verschiedene Gesichtspunkte davon gezeigt und beschrieben worden
ist, ist es für Fachleute
selbstverständlich,
dass verschiedene Veränderungen
und Modifikationen vorgenommen werden können, ohne den Bereich der
Erfindung zu verlassen. Es ist beabsichtigt, dass die beigefügten Ansprüche so verstanden
werden, dass sie die hierin beschriebenen Ausführungsbeispiele, die oben erwähnten Alternativen
und alle Äquivalente
davon enthalten.