DE60213657T2 - Erzeugung von graphischen kodes durch halbtonrasterung mit eingefügter graphischer kodierung - Google Patents

Erzeugung von graphischen kodes durch halbtonrasterung mit eingefügter graphischer kodierung Download PDF

Info

Publication number
DE60213657T2
DE60213657T2 DE60213657T DE60213657T DE60213657T2 DE 60213657 T2 DE60213657 T2 DE 60213657T2 DE 60213657 T DE60213657 T DE 60213657T DE 60213657 T DE60213657 T DE 60213657T DE 60213657 T2 DE60213657 T2 DE 60213657T2
Authority
DE
Germany
Prior art keywords
graphic
regions
codewords
image
bar code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60213657T
Other languages
English (en)
Other versions
DE60213657D1 (de
Inventor
Niranjan Mountain View DAMERA-VENKATA
Jonathan San Jose YEN
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE60213657D1 publication Critical patent/DE60213657D1/de
Application granted granted Critical
Publication of DE60213657T2 publication Critical patent/DE60213657T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/06009Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
    • G06K19/06018Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking one-dimensional coding
    • G06K19/06028Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking one-dimensional coding using bar codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/06009Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
    • G06K19/06037Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking multi-dimensional coding

Description

  • Querverweise auf verwandte Anwendungen
    • • U.S.-Patentanmeldung Nr. 09/579,010, eingereicht am 25. Mai 2000 von Doron Shaked u.a., und mit dem Titel „A Method and Apparatus for Generating and Decoding a Visually Significant Bar Code",
    • • U.S.-Patentanmeldung Nr. 09/429,515, eingereicht am 28. Oktober 1999 von Renato Kresch u. a., und mit dem Titel „System and Method for Counterfeit Protection",
    • • U.S.-Serien-Nr. 09/728,292, eingereicht am 1. Dezember 2000 von Jonathan Yen u. a., und mit dem Titel „Authenticable Graphical Bar Codes",
    • • U.S.-Patentanmeldung Nr. 09/578,843, eingereicht am 25. Mai 2000 von Doron Shaked u. a., und mit dem Titel „Geometric Deformation Correction Method and System for Dot Pattern Images",
    • • U.S.-Serien-Nr. 09/877,516, eingereicht am 7. Juni 2001 von Doron Shaked u. a., und mit dem Titel „Generating and Decoding Graphical Bar Codes",
    • • U.S.-Patentanmeldung Nr. 09/877,581, eingereicht am 7. Juni 2001 von Jonathan Yen u. a., und mit dem Titel „Automatically Extracting Graphical Bar Codes",
    • • U.S.-Patentanmeldung Nr. 09/877,517, eingereicht am 7. Juni 2001 von Doron Shaked u. a., und mit dem Titel „Fiducial Mark Patterns for Graphical Bar Codes",
    • • U.S.-Patentanmeldung Nr. 09/975,278, eingereicht am 10. Oktober 2001 von Doron Shaked u. a., und mit dem Titel „Graphically Demodulating Graphical Bar Codes Without Foreknowledge of the Original Unmodulated Base Image", und
    • • U.S.-Patentanmeldung Nr. 09/935,457, eingereicht am 23. August 2001 von Niranjan Damera-Venkata und mit dem Titel „System and Method for Embedding Information within a Printed Image Using Block Error Diffusion Halftoning".
  • Technisches Gebiet
  • Diese Erfindung bezieht sich auf Systeme und Verfahren zum Erzeugen von graphischen Strichcodes durch Halbtongebung mit eingebetteter, graphischer Codierung.
  • Hintergrund
  • Eine digitale Halbtongebung (oder räumliches Zittern), ist das Verfahren zum Aufbereiten der Illusion von Bildern mit durchgehendem Farbton in einer Anordnung von binären Bildelementen. In dem Fall des Aufbereitens eines Bildes mit kontinuierlichem Ton mit einer digitalen Ausgabevorrichtung, wie z.B. einem Tintenstrahldrucker oder einem Laserdrucker, umfasst das digitale Halbtongeben das Simulieren des Bildes mit kontinuierlichem Ton mit Gruppen oder Zellen aus Punkten.
  • Im Allgemeinen umfasst die Halbtongebung das Erzeugen eines binären oder Zweiton-Bildes aus einem Kontinuierlich-Ton-, oder Konton- bzw. Halbton- oder Grauskala-Bildes. Grauskala-Bilder sind Kontinuierlich-Ton-Schwarz- (oder eine andere einzelne Farbe) und -Weiß-Bilder, wohingegen Konton-Bilder entweder Vollfarben-Bilder oder monochrome Bilder sein können. In jedem Fall wird ein Halbtonbild aus einem Konton-(Vollfarben- oder Grauskala-)Bild unter Verwendung von jeglicher einer Vielzahl von Halbtongebungstechniken erzeugt, die Schwellenarrays oder Zittern (z.B. gruppierte Punkte, dispergierte Punkte und stochastische Gitter), adaptive Prozesse (z.B. Fehlerdiffusion), und interaktive Prozesse (z.B. kleinste Quadrate und direkte binäre Sucher) umfassen.
  • Viele unterschiedliche Verfahren zum Einbetten von Informationen in ein Bild wurden vorgeschlagen.
  • Zum Beispiel ist eine Strichcodierung eine bekannte Kategorie von Dokument- oder Bild-Markierungstechniken zum dichten Codieren digitaler Informationen in einen kleinen Bildraum ohne Rücksicht darauf, wie sichtbar die codierten Informationen für einen menschlichen Betrachter sind. Ein Strichcodesymbol ist ein Muster aus parallelen Strichen und Räumen verschiedener Breiten, die Datenelemente oder Zeichen darstellen. Die Striche stellen Folgen binärer Einsen dar und die Räume stellen Folgen binärer Nullen dar. Ein herkömmliches, „eindimensionales" Strichcodesymbol enthält eine Reihe aus Strichen und Zwischenräumen, die nur in einer einzelnen Dimension variieren. Eindimensionale Strichcodesymbole haben relativ geringe Informationsspeicherkapazitäten. „Zweidimensionale" Strichcodes wurden entwickelt, um den ansteigenden Bedarf nach maschinenlesbaren Symbolen zu decken, die mehr Informationen enthalten als eindimensionale Strichcodesymbole. Die Informationsspeicherkapazität von zweidimensionalen Strichcodesymbolen wird relativ zu eindimensionalen Strichcodes erhöht, durch Variieren der Strichcodemuster in zwei Dimensionen. Übliche, zweidimensionale Strichcodestandards umfassen PDF417, Code 1 und Maxicode. Eindimensionale und zweidimensionale Strichcodesymbole werden üblicherweise durch Optikabtasttechniken gelesen (z.B. durch mechanisch bewegte Laserstrahlen oder durch selbst-bewegende, ladungsgekoppelte Vorrichtungen (CCDs; CCD = charge-coupled device), die ein gedrucktes Strichcodesymbol in elektrische Signale umwandeln. Die elektrischen Signale werden digitalisiert und decodiert, um die Daten wiederzugewinnen, die in dem gedruckten Strichcodesymbol codiert sind.
  • Eine Daten-Glyph-Technik ist eine andere Kategorie von Informationseinbettungstechniken, die besonders vorteilhaft zur Verwendung bei Bildanwendungen ist, die eine hohe Dichterate von eingebetteten Daten erfordern und erfordern, dass die eingebetteten Daten robust im Hinblick auf Decodieren sind. Eine Daten-Glyph-Technik codiert digitale Informationen in der Form von binären Einsen und Nullen, die dann in der Form von unterscheidbar geformten Markierungen aufbereitet werden, wie z.B. sehr kleinen linearen Markierungen. Im Allgemeinen stellt jede kleine Markierung eine Stelle binärer Daten dar, und die lineare Orientierung der bestimmten Markierung bestimmt, ob die bestimmte Stelle eine digitale Eins oder Null ist.
  • Andere Dokument- oder Bild-Markierungstechniken wurden zum Einbetten von Informationen in ein Bild vorgeschlagen, so dass die Informationen im Wesentlichen für einen menschlichen Betrachter nicht wahrnehmbar sind (d.h. auf eine Weise, die gleichzeitig eine Bildverzerrung minimiert, die durch Einbetten der Informationen verursacht wird), während eine zuverlässige Decodierung der Informationen erlaubt wird. Zum Beispiel wurden viele unterschiedliche digitale Wasserzeichen-Herstellungstechniken vorgeschlagen. Im Allgemeinen ist ein digitales Wasserzeichen entworfen, um ein eingebettetes Signal zu erzeugen, das für einen menschlichen Betrachter nicht wahrnehmbar ist, um die Handelsqualität und den Wert des Bildes nicht zu verringern, das mit einem Wasserzeichen versehen wird, während ein eingebettetes Signal erzeugt wird, das widerstandsfähig gegenüber Verfälschung ist.
  • Bei einem anderen Ansatz offenbart das U.S.-Patent Nr. 6,141,441 eine Technik zum Decodieren von Meldungsdaten, die in ein gedrucktes Farbbild als eine Reihe von kleinen Bildregionen codiert wurden (bezeichnet als „Signalzel len"), die die codierte Meldung tragen. Jede Signalzelle besteht aus einem räumlichen Muster aus farbigen Unterregionen, die kollektiv eine durchschnittliche Gesamtfarbe aufweisen. Die Farben der Unterregionen sind als Änderungen (Modulationen) an der Durchschnittsfarbe in einer oder mehreren Richtungen in einem mehrdimensionalen Farbraum definiert. Die Decodiertechnik verwendet einen Satz aus gültigen Signalblöcken, wobei jeder derselben ein eindeutiges Muster aus farbigen modulierten Unterregionen ist. Es besteht ein gültiger Signalblock für jeden gültigen Meldungswert, der in dem Codierungsschema definiert ist. Die Decodieroperation lokalisiert zuerst die Positionen der Signalzellen in dem erworbenen Bild und subtrahiert dann die lokale Durchschnittsfarbe von jeder Signalzelle von der Zelle, um einen empfangenen Signalblock zu erzeugen. Die Decodieroperation bestimmt den entsprechenden gültigen Signalblock, der jedem der empfangenen Signalblöcke entspricht, durch Vergleichen von jedem gültigen Signalblock mit jedem empfangenen Signalblock. Eine Implementierung der Decodiertechnik decodiert Signalzellen, die in dem erworbenen Bild in einem 2D-Array angeordnet wurden, durch Synchronisieren einer imaginären, gitterartigen Struktur mit der wahrscheinlichsten Position aller Signalzellen. Bei einem Ausführungsbeispiel ist eine Farbraumrichtung für die Farbmodulationen ausgewählt, die dazu führt, dass die unterschiedlich farbigen Unterregionen einer Signalzelle im Wesentlichen für einen menschlichen Betrachter nicht wahrnehmbar sind, wodurch das Muster, das die Meldung trägt, in einem codierten Bild im Wesentlichen unwahrnehmbar gemacht wird.
  • Die EP-A-1,158,456 offenbart ein Strichcodesystem, das einen Strichcode mit visueller Bedeutung erzeugt und decodiert. Das Strichcodesystem umfasst ein Codierungsmodul zum Empfangen einer Meldung und ein Logo oder jegliches andere Bild und das Erzeugen eines visuell bedeutenden Strichcodes basierend auf diesen Eingaben durch Umwandeln der Pixel des Bildes in Strichcodematrizen unter Verwendung von Halbton gebungsalgorithmen, wie z.B. Fehlerdiffusionsverfahren. Ein Decodiermodul ist ebenfalls vorgesehen zum Empfangen einer erworbenen Version eines visuell bedeutenden Strichcodes, der in einem typischen Dokumenthandhabungskanal möglicherweise verschlechtert wurde (z.B. durch den Druck-, Abtast- oder Kopier-Prozess), und zum Wiedergewinnen der Meldung, die durch den visuell bedeutenden Strichcode spezifiziert wird.
  • Zusammenfassung
  • Gemäß einem Aspekt der vorliegenden Erfindung wird ein Verfahren zum Erzeugen eines graphischen Strichcodes geschaffen, wie in Anspruch 1 angegeben ist.
  • Gemäß einem anderen Aspekt der vorliegenden Erfindung wird ein Verfahren zum Prüfen eines graphischen Strichcodes geschaffen, wie in Anspruch 8 angegeben ist.
  • Die Erfindung zeichnet sich aus durch Systeme und Verfahren zum Erzeugen graphischer Strichcodes durch Halbtongebung mit eingebetteter, graphischer Codierung. Wie hierin verwendet, bezieht sich der Ausdruck „graphischer Strichcode" weitgehend auf ein Bild, das unauffällige graphische Modulationen enthält, die eingebettete Informationen codieren. Durch Ausführen einer graphischen Codierung innerhalb des Halbtongebungsprozesses ermöglicht die Erfindung, dass die visuelle Erscheinung der resultierenden, graphischen Strichcodes verbessert wird, ohne die Informationseinbettungskapazität der graphischen Strichcodes zu opfern.
  • Bei einem Aspekt schafft die Erfindung ein Verfahren zum Erzeugen eines graphischen Strichcodes. Gemäß diesem Verfahren werden Regionen eines Originalbildes einer Halbtongebung unterzogen. Die Originalbildregionen lagern Fehler ein, die zwischen Regionen des Originalbilds diffundiert sind und basierend zumindest teilweise auf Modulationen in dem graphischen Strichcode berechnet werden, der einer graphischen Codierung einer Meldung entspricht. Gemäß der Erfindung werden fiktive oder Nicht-Informationscodierungs-Codewörter für bestimmte Regionen des Originalbildes verwendet, um ein Kompromittieren der Bildqualität des resultierenden, graphischen Strichcodes zu vermeiden.
  • Ausführungsbeispiele gemäß diesem Aspekt der Erfindung können ein oder mehrere der nachfolgenden Merkmale umfassen.
  • Eine Halbtongebung kann das Berechnen von Quantisierungsfehlern für entsprechende Regionen des graphischen Strichcodes aufweisen. Bei einigen Ausführungsbeispielen sind die berechneten Quantisierungsfehler invariant für die graphisch codierte Meldung. Durchschnittliche Blockfehler können zwischen Regionen des Originalbildes verteilt bzw. diffundiert sein.
  • Bei einigen Ausführungsbeispielen weist die Halbtongebung das Modifizieren von Originalbildregionen mit verteilten Fehlern auf, um entsprechende Regionen eines modifizierten Originalbildes zu erzeugen. Ein matrix-bewertetes Fehlerfilter kann angewendet werden, um Quantisierungsfehler zu berechnen, die diffundiert werden sollen. Quantisierungsfehler können basierend zumindest teilweise auf einem Vergleich von Regionen des modifizierten Originalbildes mit entsprechenden Regionen des graphischen Strichcodes berechnet werden. Regionen des modifizierten Originalbildes können quantisiert werden, um entsprechende Regionen eines Basisbildes zu erzeugen. Ein Quantisieren kann ein Schwellenwertbilden an Regionen des modifizierten Originalbildes aufweisen. Regionen des modifizierten Originalbildes können einer Schwellwertbildung an einem Zwischengrau-Pegel bzw. einer -Stufe unterzogen werden. Bei einigen Ausführungsbeispielen weist das Quantisieren das Zuweisen entsprechender repräsentativer quantisierter Regionen, die aus einem Teilsatz von möglichen repräsentativen Halbtonregionen ausgewählt sind, zu Regionen des Basisbildes auf. Der Teilsatz von möglichen repräsentativen, quantisierten Regionen kann aus einer vollständig dunklen, repräsentativen quantisierten Region und einer vollständig hellen, repräsentativen quantisierten Region bestehen. Regionen des Basisbildes können mit einer graphischen Codierung der Meldung moduliert werden, um entsprechende Regionen des graphischen Strichcodes zu erzeugen.
  • Bei einigen Ausführungsbeispielen kann eine Sequenz aus graphischen Codewörtern, die einer graphischen Codierung der Meldung entspricht, erzeugt werden. Eine Halbtongebung kann das Erzeugen von Regionen eines Basisbildes basierend auf der Ausbreitung von Fehlern zu entsprechenden Regionen des Originalbildes aufweisen. Regionen des Basisbildes können basierend auf der Sequenz von graphischen Codewörtern moduliert werden, um entsprechende Regionen des graphischen Strichcodes zu erzeugen. Bei einigen Ausführungsbeispielen weist das Modulieren von Basisbildregionen das Anwenden einer invertierbaren graphischen Operation zwischen Regionen des Basisbildes und graphischen Codewörtern auf.
  • Ein oder mehrere der graphischen Codewörter können nicht-informationscodierend sein und die verbleibenden graphischen Codewörter können informationscodierend sein. Graphische Informationscodierungscodewörter und graphische Nicht-Informationscodierungscodewörter können auf der Basis eines durchschnittlichen Grauwerts unterscheidbar sein. Zum Beispiel können graphische Informationscodierungscodewörter Grauwerte innerhalb eines ausgewählten Grauwertbereichs aufweisen. Bei einigen Ausführungsbeispielen codieren ein oder mehrere graphische Nicht-Informationscodierungscodewörter Modulationen nicht in den graphischen Strichcode während einer Codierung. Ein oder mehrere graphische Nicht-Informationscodierungscodewörter können Regionen des graphischen Strichcodes visuell verbessern, wenn sie codiert werden.
  • Die Erfindung weist ferner ein Computerprogramm zum Erzeugen eines graphischen Strichcodes gemäß dem oben beschriebenen Codierverfahren auf.
  • Bei einem anderen Aspekt weist die Erfindung ein Verfahren zum Decodieren eines graphischen Strichcodes auf. Gemäß diesem erfinderischen Verfahren wird ein Basisbild mit Halbtonregionen erzeugt, die ein Originalbild darstellen. Regionen des Basisbildes werden probabilistisch mit einem Satz aus graphischen Codewörtern verglichen, um eine Sequenz aus graphischen Codewörtern zu erhalten, die einer graphischen Codierung einer Meldung entspricht. Die Sequenz aus graphischen Codewörtern wird decodiert, um eine decodierte Meldung zu erzeugen.
  • Ausführungsbeispiele gemäß diesem Aspekt der Erfindung können ein oder mehrere der nachfolgenden Merkmale umfassen.
  • Bei einigen Ausführungsbeispielen wird das Basisbild durch eine Halbtongebung von Regionen des Originalbildes erzeugt, die Fehler einlagern, die zwischen Regionen des Originalbildes diffundiert sind und basierend zumindest teilweise auf Modulationen in dem graphischen Strichcode berechnet werden, die einer graphischen Codierung einer vorausgewählten Meldung entsprechen. Die diffundierten Fehler sind vorzugsweise invariant für die graphisch codierte Meldung.
  • Bei einigen Ausführungsbeispielen wird das Basisbild ohne Vorkenntnisse des Originalbildes erzeugt. Das Basisbild kann erzeugt werden durch Messen von einem oder mehreren intrinsischen Merkmalen des graphischen Strichcodes und, basierend auf den Messungen des intrinsischen Merkmals, durch Auswählen einer Sequenz von Halbtonregionen aus einem vorausgewählten Satz von Halbtonregionen, die Regionen des Originalbildes darstellen dürfen. Bei einigen Ausführungsbeispielen weist das Auswählen der Sequenz von repräsenta tiven Halbtonregionen das Auswählen einer repräsentativen Halbtonregion für jede Region des graphischen Strichcodes auf, die wahrscheinlich einer entsprechenden Region des Basisbildes entspricht.
  • Die Erfindung weist ferner ein Computerprogramm zum Codieren eines graphischen Strichcodes gemäß dem oben beschriebenen Decodierverfahren auf.
  • Andere Merkmale und Vorteile der Erfindung werden aus der nachfolgenden Beschreibung offensichtlich, die die Zeichnungen und die Ansprüche umfasst.
  • Beschreibung der Zeichnungen
  • 1 ist ein Blockdiagramm eines Codiermoduls, eines Decodiermoduls und eines Dokumenthandhabungskanals, durch den ein oder mehrere graphische Strichcodes übertragen werden können.
  • 2A und 2B sind Blockdiagramme eines Codiermoduls, das konfiguriert ist, um aus einem Originalbild einen graphischen Strichcode zu erzeugen, der Modulationen enthält, die einer graphischen Codierung einer Meldung entsprechen.
  • 3 ist ein Blockdiagramm eines Graphikmodulationsmoduls des Codiermoduls aus 2A und 2B.
  • 4 ist eine Tabelle, die Informationen in einem Zwei-Bit-Graphikcode abbildet.
  • 5A und 5B sind Blockdiagramme eines Decodiermoduls, das konfiguriert ist, um eine Sequenz aus eingebetteten, graphischen Codewörtern aus einem graphischen Strichcode zu extrahieren.
  • 6A ist ein Blockdiagramm eines Codiermoduls, das konfiguriert ist, um ein Basisbild aus einem Originalbild zu erzeugen.
  • 6B ist ein Flussdiagramm eines Verfahrens zum Erzeugen eines Basisbildes aus einem Originalbild.
  • 7A ist ein Blockdiagramm eines Block-Schätz- und Mess-Moduls, das konfiguriert ist, um ein Basisbild aus einem graphischen Strichcodebild zu erzeugen.
  • 7B ist ein Flussdiagramm eines Verfahrens zum Erzeugen eines Basisbildes aus einem graphischen Strichcodebild.
  • Detaillierte Beschreibung
  • Bei der nachfolgenden Beschreibung werden gleiche Bezugszeichen verwendet, um gleiche Elemente zu identifizieren. Ferner sind die Zeichnungen vorgesehen, um Hauptmerkmale exemplarischer Ausführungsbeispiele auf diagrammartige Weise darzustellen. Die Zeichnungen sollen nicht jedes Merkmal tatsächlicher Ausführungsbeispiele und auch nicht relative Dimensionen der gezeigten Elemente darstellen und sind nicht maßstabsgetreu gezeichnet.
  • ÜBERBLICK
  • Bezug nehmend auf 1 kann bei einem Ausführungsbeispiel ein graphischer Strichcode 10 durch ein Codiermodul 12 erzeugt werden, durch einen Dokumenthandhabungskanal 14 verarbeitet werden und durch ein Decodiermodul 16 decodiert werden.
  • Das Codiermodul 12 umfasst eine Codewortcodierstufe 18 und eine Graphikmodulationsstufe 20. Das Codiermodul 12 kann als ein oder mehrere Programmmodule implementiert sein, die auf einem Computer oder einem anderen programmierbaren Prozessor ausführbar sind. In Betrieb codiert das Codiermodul 12 eine Meldung 22 in eine codierte Meldung 24. Zum Beispiel können Informationen 22 gemäß einem herkömmlichen Komprimierungsalgorithmus komprimiert und mit einem Fehlerkorrekturcode codiert werden. Ein Fehlerkorrekturcodieren liefert eine Robustheit gegen Fehler aufgrund von Verschlechterungen, die durch einen Dokumenthandhabungskanal 14 eingebracht werden. Die Fehlerkorrekturcodes können ferner verschachtelt sein, um gegen Burst-Fehler zu schützen. Bei einigen Ausführungsbeispielen kann das Codiermodul 12 programmiert sein, um aus Informationen 22 eine bestätigend signierte Meldung gemäß dem Codierprozess zu erzeugen, wie in dem U.S.-Patent Serien-Nr. 09/728,292 beschrieben ist, eingereicht am 1. Dezember 2000 von Jonathan Yen u.a., und mit dem Titel „Authenticable Graphical Bar Codes". Während der Codewortcodierstufe 18 wird die komprimierte und fehlerkorrekturcodierte Meldung in eine geordnete Sequenz aus graphischen Codewörtern (oder Schablonen) übersetzt. Während der Graphikmodulationsstufe 20 wird ein Originalbild 26 gemäß der geordneten Sequenz aus graphischen Codewörtern moduliert, um einen graphischen Strichcode 10 zu erzeugen. Das Originalbild 26 kann jegliches graphische Muster sein, das ein Logo (z.B. ein Firmenlogo), Graphiken, Bilder, Text, Abbildungen oder jegliches Muster umfasst, das eine visuelle Bedeutung hat. Die Meldung 22 kann in dem graphischen Entwurf aus Text, Bildern, Abbildungen, Rändern oder dem Hintergrund des Basisbildes 26 eingebettet sein, um einen graphischen Strichcode 10 zu erzeugen. Die Meldung 22 kann in den graphischen Strichcode 10 in der Form eines binären Bildes (z.B. ein dunkles und helles Punktmuster), eines Mehrpegelbildes (z.B. eines Graupegelbildes), oder eines Mehrpegel-Farbbildes eingebettet sein.
  • In dem Dokumenthandhabungskanal 14 kann der graphische Strichcode 10 in eine oder mehrere Druckkopien 30 durch eine Druckstufe 28 umgewandelt werden. Druckkopien 30 können durch eine Handhabungsstufe 32 verarbeitet werden, bevor sie in ein elektronisch abgetastetes Bild 36 durch eine Abtaststufe 34 umgewandelt werden. Der graphische Strichcode 10 kann durch einen herkömmlichen Drucker (z.B. einen LaserJet®-Drucker, erhältlich von der Hewlett-Packard Company in Palo Alto, Kalifornien, U.S.A.) oder eine Spezialzwecketikettendruckvorrichtung gedruckt werden. Druckkopien 30 können in der Form von jeglichem einer großen Vielzahl von gedruckten Materialien sein, die einen Bankauszug (oder Scheck), der einen graphischen Strichcode einer Abhebeautorisierungssignatur trägt, ein Aktienzertifikat oder eine Aktie, die einen graphischen Strichcode einer Authentizitätszertifizierung trägt, und einen Umschlag, der einen graphischen Strichcode von Portofreimachungen trägt, umfassen. Druckkopien 30 können durch einen herkömmlichen optischen Tischscanner (z.B. einen ScanJet®-Scanner, erhältlich von der Hewlett-Packard Company in Palo Alto, Kalifornien, U.S.A.), einen tragbaren Scanner (z.B. einen tragbaren CapShare® Scanner, der von der Hewlett-Packard Company in Palo Alto, Kalifornien, U.S.A. erhältlich ist) oder eine digitale Kamera abgetastet werden. Das abgetastete, graphische Strichcodebild 36, das durch den Scanner erworben wird und in das Decodiermodul 16 eingefügt wird, ist eine verschlechterte Version des ursprünglichen graphischen Strichcodes 10. Diese Verschlechterungen können auf einer oder mehreren der Dokumenthandhabungskanalstufen, einschließlich der Druckstufe 28, der Handhabungsstufe 32 (z.B. Kopierverschlechterungen, Flecken, Faltungen, Hefter und Markierungen), und der Abtaststufe 34 erzeugt werden.
  • Im Allgemeinen umfasst das Decodiermodul 16 eine Vorverarbeitungsstufe 40, eine Ausrichtungsstufe 42, eine Geometrie-Korrekturstufe 44, eine optionale Probabilistische-Analyse-Stufe 46, eine Graphische-Demodulations-Stufe 48 und eine Codewortdecodier-Stufe 50. Das Decodiermodul 16 kann als ein oder mehrere Programmmodule implementiert sein, die auf einem Computer oder einem anderen programmierbaren Prozessor ausführbar sind. Während der Vorverarbeitungsstufe 40 kann ein abgetastetes, graphisches Strichcodebild 52 in dem abgetasteten Bild 36 angeordnet sein, und Nicht-Strichcoderegionen können aus dem abgetasteten (oder Eingangs-) Bild 36 geschnitten oder getrimmt werden. Siehe U.S.-Patentanmeldung Nr. 09/877,581, eingereicht am 7. Juni 2001 von Jonathan Yen u. a., und mit dem Titel „Automatically Extracting Graphical Bar Codes". Während der Ausrichtungsstufe 42 werden Justiermarken in dem abgetasteten Strichcodebild 52 erfasst. Die Konfiguration der erfassten Justiermarken zeigt den Typ von globalen Deformationen an, die möglicherweise in den graphischen Strichcode während einer Übertragung eines graphischen Strichcodes 10 durch den Dokumenthandhabungskanal 14 eingebracht wurden. Diese globalen Deformationen (z.B. Übersetzungs-, Dreh-, Linear- und Versatz-Verzerrungen), können während der Geometrie-Korrektur-Stufe 44 korrigiert werden, wie in der U.S.-Patentanmeldung Nr. 09/578,843 beschrieben ist, eingereicht am 25. Mai 2000 von Doron Shaked u. a., und mit dem Titel „Geometric Deformation Correction Method and System for Dot Pattern Images". Während der Probabilistische-Analyse-Stufe 46 werden bei einem Ausführungsbeispiel Wahrscheinlichkeitsmodelle an Pixelwertmessungen angewendet, die aus dem ausgerichteten und geometrisch korrigierten, abgetasteten Strichcodebild 54 erhalten werden, um einen Satz aus Wahrscheinlichkeitsparametern 56 zu erzeugen. Die Wahrscheinlichkeitsparameter 56 können während der Graphische-Demodulation-Stufe 48 verwendet werden, um die wahrscheinlichste Sequenz an graphischen Codewörtern auszuwählen, die der graphischen Codewortsequenz entspricht, die ursprünglich in das Originalbild 26 codiert war. Siehe U.S.-Serien-Nr. 09/877,516, eingereicht am 7. Juni 2001 von Doron Shaked u. a., und mit dem Titel „Generating and Decoding Graphical Bar Codes". Die ausgewählte, graphische Codewortsequenz wird in eine codierte Meldung 58 übersetzt, die in eine decodierte Meldung 60 durch die Codewortdeco dierstufe 50 decodiert wird. Wie nachfolgend detailliert erklärt wird, kann bei einigen Ausführungsbeispielen das Decodiermodul 16 konfiguriert sein, um einen abgetasteten graphischen Strichcode 36 automatisch ohne Vorkenntnis des nicht modulierten Originalbildes 26 und besser basierend auf einem hergeleiteten Basisbild 62 zu decodieren.
  • Die Systeme und Verfahren, die hierin beschrieben sind, sind nicht auf eine spezifische Hardware- oder Software-Konfiguration beschränkt, sondern können in jeglicher Rechen- oder Verarbeitungs-Umgebung implementiert sein, einschließlich in einer digitalen, elektronischen Schaltungsanordnung oder in Computer-Hardware, -Firmware oder -Software. Die Codier- und Decodier-Module können teilweise in einem Computerprogrammprodukt implementiert sein, das greifbar in einer maschinenlesbaren Speichervorrichtung zur Ausführung durch einen Computerprozessor verkörpert ist. Bei einigen Ausführungsbeispielen sind diese Module vorzugsweise in einer prozess- oder Objekt-orientierten Programmiersprache hoher Ebene implementiert; die Algorithmen können jedoch in nach Wunsch Anordnungs- oder Maschinen-Sprache implementiert sein. In jedem Fall kann die Programmiersprache eine kompilierte oder interpretierte Sprache sein. Die Codier- und Decodier-Verfahren, die hierin beschrieben sind, können durch einen Computerprozessor verrichtet werden, der Anweisungen ausführt, die z.B. in Programmmodulen organisiert sind, um diese Verfahren durch Arbeiten an Eingangsdaten und Erzeugen einer Ausgabe durchzuführen. Geeignete Prozessoren umfassen z.B. sowohl allgemeine als auch Spezialzweckmikroprozessoren. Im Allgemeinen empfängt ein Prozessor Anweisungen und Daten aus einem Nur-Lese-Speicher und/oder einem Direktzugriffspeicher. Speichervorrichtungen, die zum greifbaren Verkörpern von Computerprogrammanweisungen geeignet sind, umfassen alle Formen von nicht-flüchtigem Speicher, einschließlich z.B. Halbleiterspeichervorrichtungen, wie z.B. EPROM, EEPROM, und Flash-Speicher-Vorrichtungen; Magnetplatten, wie z.B. interne Festplatten und entfernbare Platten; magneto-optische Platten; und CD-ROM. Jegliche der vorangehenden Techniken können ergänzt werden durch oder eingelagert werden in speziell entworfene ASICs (applicationspecific integrated circuits; anwendungsspezifische, integrierte Schaltungen).
  • GRAPHISCHE CODIERUNG
  • Bezug nehmend auf 2A und 2B kann bei einem Ausführungsbeispiel ein graphischer Strichcode 10 durch graphisches Modulieren eines Originalbildes 26 gemäß dem nachfolgenden graphischen Codierprozess erzeugt werden. Die Meldung 22, die codiert werden soll, wird durch ein Meldungs-Vorverarbeitungs-Modul 64 vorverarbeitet. Das Meldungs-Vorverarbeitungs-Modul kann konfiguriert sein, um die Meldung 22 zu komprimieren und dieselbe mit einem Fehlerkorrekturcode zu codieren. Bei einigen Ausführungsbeispielen kann das Meldungs-Vorverarbeitungs-Modul 64 programmiert sein, um eine bestätigend signierte Meldung aus der Meldung 22 zu erzeugen. Ein Codewortsequenzgenerator 66 erzeugt die Sequenz 24 aus graphischen Codewörtern, die eine graphische Codierung der vorverarbeiteten Meldung 68 darstellt, basierend auf einem vordefinierten Satz aus graphischen Codewörtern 70. Die Sequenz 24 aus graphischen Codewörtern wird zu dem Graphikmodulationsmodul 20 geleitet, wo sie in das Originalbild 26 in der Form von unauffälligen graphischen Modulationen eingebettet wird.
  • Das Graphikmodulationsmodul 18 umfasst einen Bildblocksequenzgenerator 72, ein Halbtongebungsmodul 74 und einen Zusammengesetztes-Bild-Generator 76. Der Bildblocksequenzgenerator 72 ist wirksam, um das Originalbild 26 in eine Mehrzahl von Teilmatrizen (oder Teilbildern) zu partitionieren. Wenn z.B. das Originalbild 26 ein M × N-Pixelbild ist, kann es in ein regelmäßiges Array aus 0K × K-Pixelteilmatrizen partitioniert werden, wobei 0 = M × N/(K × K). Optional können ein oder mehrere Originalbildteilmat rizen für Justiermarken reserviert sein. Nicht-reservierte Teilmatrizen 78 werden zu dem Halbtongebungsmodul 74 für eine Umwandlung in binäre Strichcodematrizen 80 geleitet. Die Teilmatrizen werden gesammelt und in graphischen Strichcode 10 durch den Zusammengesetztes-Bild-Generator 76 angeordnet.
  • Das Halbtongebungsmodul 74 ist konfiguriert, um eine Halbtongebungsoperation 82, eine graphische Operation 84 und eine Blockfehlerdiffusionsoperation 86 auszuführen. Die Halbtongebungsoperation 82 umfasst das Erzeugen entsprechender binärer Blöcke eines Basisbildes 88 aus den unreservierten Teilmatrizen 78. Im Allgemeinen kann jegliche, herkömmliche Halbtongebungsoperation verwendet werden, um das Basisbild 88 aus den unreservierten Teilmatrizen 78 zu erzeugen, was jegliche herkömmliche Fehlerdiffusion, Cluster- bzw. Gruppen-Zittern oder Schwellenwertbildungs-Halbtongebungsprozess, sowie jeglichen herkömmlichen Hybridhalbtongebungsprozess, der mehrere Schwellenwertbildungsprozesse kombiniert (siehe z.B. Zhigang Fan, „Dot-todot error diffusion", Journal of Electronic Imaging, Band 2(1) (Januar 1993)), umfasst. Bei einem Ausführungsbeispiel umfasst die Halbtongebungsoperation eine Schwellenwertbildung der unreservierten Teilmatrizen 78 auf einem Zwischengraupegel. Die graphische Operation 84 umfasst das Einbetten (oder Codieren) der graphischen Codierung der Meldung 22 in das Basisbild 88. Bei einem Ausführungsbeispiel einer graphischen Codierung kann die Meldung 22 in das Zwei-Ebenen-Basisbild 88 durch einen Zwei-Bit-Codierprozess basierend auf Zwei-Mal-Zwei-Halbtonmustern (oder -Matrizen) codiert werden. Siehe U.S.-Patentanmeldung Nr. 09/579,010, eingereicht am 25. Mai 2000 von Doron Shaked u. a., und mit dem Titel „A Method and Apparatus for Generating and Decoding a Visually Significant Bar Code". Bei einem anderen Ausführungsbeispiel einer graphischen Codierung wird eine umkehrbare graphische Operation (z.B. eine graphische XOR-Operation) zwischen der Sequenz 24 aus graphischen Codewörtern und Blöcken des Basisbildes 88 angewendet. Siehe U.S.- Patentanmeldung Nr. 09/877,516, eingereicht am 7. Juni 2001 von Doron Shaked u. a., und mit dem Titel „Generating and Decoding Graphical Bar Codes". Ein Justiermarkenmuster kann ebenfalls erzeugt werden, um eine oder mehrere Referenzpositionen und eine lokale Deformation über den resultierenden, graphischen Strichcode zu verfolgen. Siehe U.S.-Patentanmeldung Nr. 09/877,517, eingereicht am 7. Juni 2001 von Doron Shaked u. a., und mit dem Titel „Fiducial Mark Patterns for Graphical Bar Codes". Fehler, die in die resultierenden graphischen Strichcodeblöcke 90 durch die graphische Codieroperation 84 eingefügt werden, werden zurück zu der Halbtongebungsoperation 82 für eine Diffusion zwischen den nicht-verarbeiteten Blöcken 78 des Originalbildes 26 geleitet. Durch Ausführen einer graphischen Codierung innerhalb des Halbtongebungsprozesses kann die visuelle Erscheinung des resultierenden, graphischen Strichcodes 10 verbessert werden, ohne die Informationseinbettungskapazität des graphischen Strichcodes 10 zu opfern.
  • Bezug nehmend auf 3 kann bei einem Ausführungsbeispiel das Halbtongebungsmodul 74 wie folgt implementiert sein. Die unverarbeiteten Blöcke 78 (x(m)) des Originalbildes 26 werden durch eine Summierstufe 10 geleitet, die diffundierte Fehler t(m) in die Originalbildblöcke x(m) einlagert, um modifizierte Bildblöcke u(m) zu erzeugen. Die modifizierten Bildblöcke u(m) werden einer Halbtongebung auf einer Schwellenwertbildungsstufe 102 unterzogen, um die Blöcke b(m) des Basisbildes 88 zu erzeugen. Genauer gesagt wird auf der Halbtongebungsstufe 102 jedem modifizierten Bildblock u(m) ein entsprechender, repräsentativer, quantisierter Block zugewiesen, der aus einem Teilsatz von möglichen repräsentativen Halbton-Blöcken (oder -Regionen) ausgewählt ist. Zum Beispiel kann bei einem Ausführungsbeispiel jeder modifizierte Bildblock u(m) entweder durch einen vollständig hallen Pixelblock 110 (d.h. einen Block mit allen Pixeln gleich 255) oder einen vollständig dunklen Pixelblock 112 (d.h. einen Block mit allen Pixeln gleich 0) dargestellt sein.
  • Auf einer Graphische-Modulation-Stufe 104 wird eine umkehrbare graphische Operation (z.B. eine graphische XOR-Operation) zwischen den graphischen Codewörtern und den Blöcken b(m) des Basisbildes 88 angewendet, um die entsprechenden Blöcke 90 des graphischen Strichcodes 10 zu erzeugen. Im Allgemeinen sollte die umkehrbare, graphische Operation eine Abbildung (f) von den Basisbild-Teilmatrizen (BIi; BI = base image = Basisbild) und den graphischen Schablonen (Tj; T = template = Schablone) auf die graphischen Strichcoderegionen (GBCi; GBC = graphical bar code = graphischer Strichcode) ausführen, die invertiert werden kann (f'), um graphische Schablonen (Tj) aus den Basisbild-Teilmatrizen (BIi) und den graphischen Strichcoderegionen (GBCi) zu erzeugen. Das heißt, f(BIi, Tj) -> GBCi (1) f'(BIi, GBCi) -> Tj (2)
  • Bei einem Ausführungsbeispiel entspricht die umkehrbare, graphische Operation einer graphischen XOR-Operation, die an einem Paar von Eingangspixelwerten arbeitet, um einen Ausgangspixelwert gemäß der nachfolgenden XOR-Funktion zu erzeugen:
  • Figure 00190001
    Tabelle 1. Graphische XOR-Operation.
  • Auf einer Fehlerberechnungsstufe 106 werden Quantisierungsfehler e(m) basierend auf Differenzen zwischen den Blöcken u(m) des modifizierten Bildes und den entsprechenden Blöcken 90 eines graphischen Strichcodes 10 berechnet. Die Quantisierungsfehler e(m) werden durch ein lineares Fehlerfilter 108 gefiltert, um die diffundierten Fehler t(m) zu erzeugen. Das lineare Fehlerfilter 108 weist matrixbewertete Koeffizienten auf und arbeitet an der Quantisierungsfehlersequenz e(m), um die Rückkopplungssignalsequenz t(m) zu erzeugen, gemäß:
    Figure 00200001
    wobei h ι(·) eine N2 × N2-matrix-wertige Sequenz ist und S der Filterhalter ist. Das lineare Fehlerfilter 108 ist vorzugsweise so entworfen, dass der diffundierte Fehler invariant für das spezifische Meldungscodewort-Bitmuster an einem gegebenen Block ist. Bei dem dargestellten Ausführungsbeispiel ist das lineare Fehlerfilter 108 konfiguriert, um den Durchschnittsfehler zu diffundieren. Zusätzliche Details im Hinblick auf den Blockfehlerdiffusionsprozess können erhalten werden aus der U.S.-Patentanmeldung Nr. 09/935,457, eingereicht am 23. August 2001 von Niranjan Damera-Venkata u. a., und mit dem Titel „System and Method for Embedding Information within a Printed Image Using Block Error Diffusion Halftoning", und aus N. Damera-Venkata und B. L. Evans, „FM Halftoning Via Block Error Diffusion", Proc. IEEE International Conference on Image Processing, 7.–10. Oktober 2001, Band II, Seiten 1.081–1.084, Thessaloniki, Griechenland.
  • Wie in 4 gezeigt ist, kann bei einem Ausführungsbeispiel einer graphischen Codierung die Meldung 22 in ein graphisches Strichcodebild basierend auf einem Satz von graphischen Schablonen 120 (oder Halbtonmustern) codiert sein. Bei diesem Ausführungsbeispiel sind die graphischen Schablonen 120 2 × 2-Pixelmuster, die einem Teilsatz der möglichen Anordnungen von dunklen Punkten in einem 2 × 2-Muster entsprechen. Bei anderen Ausführungsbeispielen können alle möglichen graphischen Schablonenmuster für das Codieren von Meldung 22 verwendet werden. Die oberen zwei Zeilen der Codewörter 120 entsprechen allen möglichen Anordnungen eines einzelnen dunklen Punkts oder eines einzelnen weißen Punkts in einem 2 × 2-Muster. Bei der Erfindung werden fiktive (oder nicht-informations-codierende) Codewörter, die ohne weiteres von informations-codierenden Codewörtern unterscheidbar sind, für bestimmte Regionen des Originalbildes 26 verwendet, um ein Kompromittieren der Bildqualität des resultierenden graphischen Strichcodes zu vermeiden. Zum Beispiel entspricht die letzte Zeile aus Codewörtern in 4 Codewörtern, die während einer Codierung verwendet werden können, um visuell Regionen eines graphischen Strichcodes 10 zu verbessern, die feinen Randregionen des Originalbildes 26 entsprechen. Zusätzlich dazu können einige Regionen des Originalbildes mit einem Codewort codiert werden, wie z.B. einem Alles-Dunkel-Pixel-Codewort, das keine Modulationen in dem graphischen Strichcode während einer Codierung codiert. Bei diesen Beispielen weisen die informations-codierenden Codewörter einen durchschnittlichen Grauwert von 25% (obere Zeile) oder 75 (mittlere Zeile) auf, wohingegen die Randcodiercodewörter (untere Zeile) einen durchschnittlichen Grauwert von 50 und das Nichtmodulierungs-Codewort einen durchschnittlichen Grauwert von 100% aufweist. Dies ermöglicht, dass die fiktiven Codewörter bei diesen Beispielen von den informations codierenden Codewörtern auf der Basis eines durchschnittlichen Grauwerts unterschieden werden.
  • Die Verwendung von fiktiven Codewörtern ermöglicht, dass die Informationseinbettungskapazität des graphischen Strichcodes 10 für Bildqualität getauscht wird. Zum Beispiel kann bei einigen Ausführungsbeispielen ein fiktives Codewort immer verwendete werden, wenn der durchschnittliche Grauwert eines modifizierten Bildblocks aus einem vorausgewählten Grauwertbereich herausfällt. Bei einem Ausführungsbeispiel, bei dem die Codewörter aus 4 auf einem Grauskala-Originalbild verwendet werden, wird das Nichtmodulierungs-Codewort (d.h. Alles-Dunkel-Codewortblock) immer verwendet, wenn
    Figure 00220001
    wobei xi der Grauwert eines Pixels in einem N × N-Pixelblock ist.
  • Im Allgemeinen kann der graphische Codierprozess aus 4 auf n-Bit-Codierabbildungen ausgedehnt werden, wobei n einen ganzzahligen Wert von 1 oder größer aufweist. Zum Beispiel werden bei einem Ausführungsbeispiel Informationen durch einen Fünf-Bit-Codierprozess basierend auf Drei-Mal-Drei-Halbtonmustern codiert. Zusätzlich dazu müssen die Schablonenpixel nicht in einem regelmäßigen, rechteckigen Array angeordnet sein. Siehe U.S.-Patentanmeldung Nr. 09/877,516, eingereicht am 7. Juni 2001 von Doron Shaked u. a., und mit dem Titel „Generating and Decoding Graphical Bar Codes".
  • GRAPHISCHE DECODIERUNG
  • Bezug nehmend auf 5A und 5B kann bei einem Ausführungsbeispiel eine abgetastete Version 36 des graphischen Strichcodes 10 wie folgt decodiert werden. Anfänglich wird ein Basisbild 62 auf einer Basisbilderzeugungsstufe 130 erzeugt. Das Basisbild 62 kann von dem Originalbild 26 hergeleitet werden, wenn es verfügbar ist (siehe Unterabschnitt mit dem Titel „Geführte Decodierung"), oder das Basisbild 62 kann aus dem abgetasteten, graphischen Strichcode 36 hergeleitet werden (siehe Unterabschnitt mit dem Titel „Blinde Decodierung"). Als Nächstes wird eine Liste 132 aus fiktiven Codewortblöcken erzeugt. Wie nachfolgend detailliert erklärt wird, können fiktive Codewortblöcke aus dem Originalbild 26 identifiziert werden (wenn es verfügbar ist), oder sie können basierend auf den durchschnittlichen Grauskalawerten der abgetasteten Strichcodebildblöcke identifiziert werden. Das hergeleitete Basisbild 62 und die Liste 132 aus fiktiven Codewortblöcken werden zu der Graphische-Demodulation-Stufe 48 geleitet. Auf der Graphische-Demodulation-Stufe 48 werden Regionen des hergeleiteten Basisbildes 62 probabilistisch mit jedem graphischen Codewort in dem Satz aus möglichen graphischen Codewörtern verglichen, um eine Sequenz aus graphischen Codewörtern zu erhalten, die einem graphischen Codieren der Meldung entspricht, die in dem Originalbild codiert ist; während dieses Prozesses werden Regionen, die fiktiven Codewörtern entsprechen, ignoriert und nicht verarbeitet. Zusätzliche Details im Hinblick auf die probabilistische Methode zum Decodieren von Codewortblöcken können aus der U.S.-Patentanmeldung Nr. 09/877,516 erhalten werden, eingereicht am 7. Juni 2001 von Doron Shaked u. a., und mit dem Titel „Generating and Decoding Graphical Bar Codes". Die resultierende Sequenz 58 aus graphischen Codewörtern kann durch das Codewort-Decodierungsmodul 50 decodiert werden, um die decodierte Meldung 60 zu erzeugen (siehe 1).
  • GEFÜHRTE DECODIERUNG
  • Bezug nehmend auf 6A und 6B kann bei einem Ausführungsbeispiel, wenn das Originalbild 26 bekannt ist und verfügbar ist, dasselbe verwendet werden, um das Basisbild 62 wie folgt herzuleiten. Fiktive Codewörter werden direkt aus dem Originalbild 26 identifiziert (Schritt 140). Wenn z.B. fiktive Codewörter gemäß Gleichung (4) verwendet werden, entsprechen die fiktiven Codewortblöcke bei dem abgetasteten, graphischen Strichcode 36 den Blöcken in dem Originalbild 26, die durchschnittliche Grauwerte aufweisen, die aus dem zulässigen Codewort-Grauwertbereich herausfallen. Das Basisbild 63 wird hergeleitet durch Schicken des Originalbildes durch das Codierungsmodul 12 mit einer vorausgewählten, beliebigen Meldung 142 (Schritt 144). Wie oben erwähnt wurde, ist der diffundierte Fehler invariant für das spezifische Codewort-Bitmuster an einem gegebenen Block. Wenn z.B. alle nicht-fiktiven Codewörter nur ein weißes Pixel aufweisen, dann ist durch Diffundieren des durchschnittlichen Fehlers die Rückkopplung invariant für das Meldungscodewort. Dies ermöglicht, dass das Basisbild 62 unter Verwendung jeglicher beliebigen Meldung 142 hergeleitet wird. Die graphische Codewortsequenz 58 kann aus dem hergeleiteten Basisbild 62 unter Verwendung des oben beschriebenen, probabilistischen graphischen Decodierungsprozesses erzeugt werden (Schritt 146).
  • BLINDE DECODIERUNG
  • Bezug nehmend auf 7A und 7B kann bei einem Ausführungsbeispiel, wenn das Originalbild 26 nicht bekannt oder nicht verfügbar ist, das Basisbild 62 aus dem abgetasteten, graphischen Strichcode 36 wie folgt hergeleitet werden. Fiktive Codewörter in dem abgetasteten, graphischen Strichcode 36 werden basierend auf dem durchschnittlichen Grauwert der graphischen Strichcodeblöcke identifiziert (Schritt 150). Unter der Annahme z.B., dass fiktive Codewörter verwendet werden, immer wenn der durchschnittliche Grauwert eines modifizierten Bildblocks aus einem vorbestimmten Grauwertbereich herausfällt, können die fiktiven Codewortblöcke an den Blockpositionen identifiziert werden, wo der durchschnittliche Grauwert aus diesem Bereich herausfällt. Das Basisbild 62 wird erzeugt durch Schätzen der repräsentativen, quantisierten Blöcke 152 in dem abgetasteten, graphischen Strichcodebild 36 (Schritt 154). Da die Anzahl von Klassen von zulässigen, repräsentativen, quantisierten Blöcken durch den Entwurf eingeschränkt ist (z.B. entweder ein Alle-Hell-Block oder ein Alle-Dunkel-Pixelblock), können die repräsentativen, quantisierten Blöcke ohne weiteres unter Verwendung einer probabilistischen Analyse geschätzt werden. Zum Beispiel kann ein digitales Gitter mit dem Druckabtastgitter so synchroni siert werden, dass eine Gruppe von abgetasteten Pixeln dem codierten Halbtonpixelblock entspricht, aus dem der entsprechende Pixelblock des Basisbilds 62 geschätzt werden soll. Diesbezüglich wird eine lineare Diskriminanz (z.B. eine optimale Fischer-Diskriminanz) an die gruppierten Daten angewendet, um die Dimensionalität zu reduzieren. Ein probabilistisches Modell (z.B. Gausssches Mischmodell), wird an die Daten angepasst, unter Verwendung eines herkömmlichen Erwartungsmaximierungsalgorithmus. Optimale Entscheidungsgrenzen werden ausgewählt, z.B. unter Verwendung der maximalen Wahrscheinlichkeit oder von Bayes-Kriterien. Diese Grenzen trennen die möglichen Blöcke des Basisbildes 62 in Klassen. Wenn ein Codewort in eine fiktive Codewortklasse fällt, dann wird dieser Pixelblock markiert, um ignoriert zu werden. Die graphische Codewortsequenz 58 kann aus dem hergeleiteten Basisbild 62 unter Verwendung des probabilistischen, graphischen Decodierungsprozesses erzeugt werden, der oben beschrieben ist (Schritt 156).
  • ANDERE AUSFÜHRUNGSBEISPIELE
  • Andere Ausführungsbeispiele liegen innerhalb des Schutzbereichs der Ansprüche.
  • Zum Beispiel kann die oben beschriebene Einbettungsstrategie ausgedehnt werden, um Farbbild-Strichcodes zu codieren, durch Verwendung einer Vektorerweiterung des Blockfehlerdiffusionsalgorithmus. Somit wären z.B. bei jedem Schritt drei Bildblöcke (in dem RGB-Fall) vorhanden, um in einen Block aus acht zulässigen Farben vor einer XOR-Modulation quantisiert zu werden. Dann können die Farbquantisierungsfehler gemeinsam oder separat diffundiert werden, wobei die Druckercharakteristika berücksichtigt werden. Weitere Informationen können in Farbbilder eingebettet werden, da ein Satz aus drei Codewortblöcken (für den Drei-Farben-Fall), einer für jede Farbe, ausgewählt werden kann. Dies bedeutet, dass, wenn 2 × 2-Blöcke verwendet werden, höchstens 12 Bits pro 2 × 2-Farbbildblock eingebettet werden könnten (obwohl im Interesse der Bildqualität und Robustheit dies z.B. auf 6 Bits eingeschränkt werden kann). Dies sind drei Mal mehr Informationen als in ein Grauskalabild eingebettet werden können. Um die Bildqualität für die selbe Einbettungsbitrate zu verbessern, könnten mehr Codewortabänderungen zugelassen werden, z.B. in der Gelbebene. Eine Farbabtastung des Bildes könnte decodiert werden durch Trennen der Farbebenen und durch Verwenden des oben beschriebenen Decodierprozesses (wobei Parameter modifiziert werden, um zu den Statistiken der entsprechenden Farbbeobachtungen zu passen) an jeder der Bildebenen.
  • Wiederum weitere Ausführungsbeispiele liegen innerhalb des Schutzbereichs der Ansprüche.

Claims (10)

  1. Ein Verfahren zum Erzeugen eines graphischen Strichcodes (10), das folgende Schritte aufweist: Unterziehen von Regionen (78) eines Originalbildes (26) einer Halbtongebung, die Fehler umfassen, die zwischen Regionen (78) des Originalbildes (26) diffundiert sind, wobei die diffundierten Fehler Informationscodierungscodewörter, die basierend zumindest teilweise auf Modulationen in dem graphischen Strichcode (10) berechnet werden, der einer graphischen Codierung einer Meldung (22) entspricht, und Nichtinformationscodierungscodewörter, umfassen.
  2. Ein Verfahren gemäß Anspruch 1, bei dem eine Halbtongebung das Berechnen von Quantisierungsfehlern für entsprechende Regionen des graphischen Strichcodes (10) aufweist.
  3. Ein Verfahren gemäß Anspruch 2, bei dem die berechneten Quantisierungsfehler invariant für die graphisch codierte Meldung sind.
  4. Ein Verfahren gemäß Anspruch 3, bei dem durchschnittliche Blockfehler zwischen Regionen (78) des Originalbildes (26) diffundiert sind.
  5. Ein Verfahren gemäß einem der vorangehenden Ansprüche, bei dem die graphischen Informationscodierungscodewörter und die graphischen Nicht-Informationscodierungscodewörter auf der Basis eines durchschnittlichen Grauwerts unterscheidbar sind.
  6. Ein Verfahren gemäß Anspruch 5, bei dem die graphischen Nicht-Informationscodierungscodewörter einen durchschnittlichen Grauwert aufweisen, der sich von dem durchschnittlichen Grauwert von Informationscodierungscodewörtern unterscheidet.
  7. Ein Verfahren gemäß einem der vorangehenden Ansprüche, bei dem Nicht-Informationscodierungscodewörter verwendet werden, immer wenn die durchschnittliche Graufarbe des Schwarz des Originalbildes, modifiziert durch Codierung, aus einem vorausgewählten Grauwertbereich herausfällt.
  8. Ein Verfahren zum Decodieren eines graphischen Strichcodes (10), das folgende Schritte aufweist: Erzeugen eines Basisbildes (62) mit Halbtonregionen, die ein Originalbild (26) darstellen; Bestimmen von Regionen des Basisbildes, die Informationscodierungscodewörter darstellen, und Regionen des Basisbildes, die Nicht-Informationscodierungscodewörter darstellen; Ignorieren jener Regionen, von denen ausgegangen wird, dass sie Nicht-Informationscodierungscodewörter darstellen; probabilistisches Vergleichen jener Regionen des Basisbildes (62), die erachtet werden, Informationscodierungscodewörter darzustellen, mit einem Satz aus graphischen Codewörtern (70), um eine Sequenz (58) aus graphischen Codewörtern zu erhalten, die einer graphischen Codierung einer Meldung (22) entsprechen; und Decodieren der Sequenz (58) aus graphischen Codewörtern, um eine decodierte Meldung (60) zu erzeugen.
  9. Ein Verfahren gemäß Anspruch 8, bei dem das Basisbild (62) dadurch erzeugt wird, dass Regionen des Originalbildes (26) einer Halbtongebung unterzogen werden, die Fehler umfassen, die zwischen Regionen (78) des Originalbildes (26) diffundiert sind, und basierend zumindest teilweise auf Modulationen in dem graphischen Strichcode (10) berechnet werden, der einer graphischen Codierung einer vorausgewählten Meldung (142) entspricht.
  10. Ein Verfahren gemäß Anspruch 8, bei dem das Erzeugen des Basisbildes (62) folgende Schritte aufweist: Messen von einem oder mehreren intrinsischen Merkmalen des graphischen Strichcodes (10); und basierend auf den Messungen des intrinsischen Merkmals, Auswählen einer Sequenz aus Halbtonregionen aus einem vorausgewählten Satz (152) aus Halbtonregionen, die Regionen des Originalbildes (26) darstellen dürfen.
DE60213657T 2001-12-19 2002-12-06 Erzeugung von graphischen kodes durch halbtonrasterung mit eingefügter graphischer kodierung Expired - Lifetime DE60213657T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/027,523 US6915020B2 (en) 2001-12-19 2001-12-19 Generating graphical bar codes by halftoning with embedded graphical encoding
US27523 2001-12-19
PCT/US2002/039088 WO2003054786A1 (en) 2001-12-19 2002-12-06 Generating graphical codes by halftoning with embedded graphical encoding

Publications (2)

Publication Number Publication Date
DE60213657D1 DE60213657D1 (de) 2006-09-14
DE60213657T2 true DE60213657T2 (de) 2006-12-28

Family

ID=21838220

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60213657T Expired - Lifetime DE60213657T2 (de) 2001-12-19 2002-12-06 Erzeugung von graphischen kodes durch halbtonrasterung mit eingefügter graphischer kodierung

Country Status (6)

Country Link
US (1) US6915020B2 (de)
EP (1) EP1456812B1 (de)
JP (1) JP4000316B2 (de)
AU (1) AU2002363975A1 (de)
DE (1) DE60213657T2 (de)
WO (1) WO2003054786A1 (de)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7162052B2 (en) 1998-04-16 2007-01-09 Digimarc Corporation Steganographically encoding specular surfaces
US7468809B2 (en) * 1999-05-25 2008-12-23 Silverbrook Research Pty Ltd Method of printing an interface onto a surface using a complementary ink set
US6982798B1 (en) * 1999-05-25 2006-01-03 Silverbrook Research Pty Ltd Interface surface printer
US7099019B2 (en) * 1999-05-25 2006-08-29 Silverbrook Research Pty Ltd Interface surface printer using invisible ink
US7091344B2 (en) * 1999-05-25 2006-08-15 Silverbrook Research Pty Ltd Infrared chromophores
US7122685B2 (en) * 1999-05-25 2006-10-17 Silverbrook Research Pty Ltd Dibenzoanthraquinone based chromophores
US7093991B2 (en) * 1999-05-25 2006-08-22 Silverbrook Research Pty Ltd Combined printer and binder
US6987573B1 (en) * 1999-05-25 2006-01-17 Silverbrook Research Pty Ltd Interface surface printer
US7162035B1 (en) 2000-05-24 2007-01-09 Tracer Detection Technology Corp. Authentication method and system
US7188778B2 (en) * 2001-09-17 2007-03-13 Codemagic Machine-readable symbol and related method
US8171567B1 (en) 2002-09-04 2012-05-01 Tracer Detection Technology Corp. Authentication method and system
US7328847B1 (en) * 2003-07-30 2008-02-12 Hewlett-Packard Development Company, L.P. Barcode data communication methods, barcode embedding methods, and barcode systems
US20050053289A1 (en) * 2003-09-05 2005-03-10 Sharp Laboratories Of America, Inc. Staged full-image decompressing, re-sizing and half-toning by less than full-image data-file stages
US7017816B2 (en) * 2003-09-30 2006-03-28 Hewlett-Packard Development Company, L.P. Extracting graphical bar codes from template-based documents
US8363282B2 (en) * 2003-10-31 2013-01-29 Hewlett-Packard Development Company, L.P. Halftone screening and bitmap based encoding of information in images
GB2421136A (en) * 2004-12-09 2006-06-14 Sony Uk Ltd Detection of code word coefficients in a watermarked image
TWI288892B (en) * 2005-12-28 2007-10-21 Inst Information Industry Content protection method for vector graph format
JP4664821B2 (ja) * 2006-01-16 2011-04-06 日本電信電話株式会社 具体的対象保証型バーコードシステムおよび具体的対象保証型バーコード処理方法
JP3953501B1 (ja) 2006-03-03 2007-08-08 株式会社バンダイナムコゲームス プログラム、情報記憶媒体、2次元コード生成システム、画像生成システム及び2次元コード
GB0613360D0 (en) * 2006-07-05 2006-08-16 Iti Scotland Ltd Bar code authentication
US7747087B2 (en) * 2006-07-25 2010-06-29 Michael Laude Apparatus, method, and article of manufacture used to encode information into an image and to decode information from a captured image
US20080144124A1 (en) * 2006-10-13 2008-06-19 Ramin Samadani Auxiliary information for reconstructing digital images processed through print-scan channels
US10319181B2 (en) * 2006-11-10 2019-06-11 Aristocrat Technologies Australia Pty, Ltd. Systems and methods for verification using encoded glyphs
CN100511271C (zh) * 2006-11-16 2009-07-08 深圳市天朗时代科技有限公司 二维码解码方法
US8224019B2 (en) * 2007-05-22 2012-07-17 Xerox Corporation Embedding information in document blank space
GB2451437B (en) * 2007-07-27 2012-11-14 Hewlett Packard Development Co Content encoder and decoder and methods of encoding and decoding content
US8276049B2 (en) * 2007-09-04 2012-09-25 Ricoh Company Limited Information processing device and method
US7959080B2 (en) 2008-03-11 2011-06-14 Xpress Systems, Llc System for printing hospital labels and wristbands
US8675417B2 (en) * 2008-09-28 2014-03-18 Ramot At Tel Aviv University Ltd. Method and system for adaptive coding in flash memories
US8671327B2 (en) 2008-09-28 2014-03-11 Sandisk Technologies Inc. Method and system for adaptive coding in flash memories
JP5173873B2 (ja) * 2008-11-20 2013-04-03 キヤノン株式会社 画像符号化装置及びその制御方法
JP5116650B2 (ja) * 2008-12-10 2013-01-09 キヤノン株式会社 画像符号化装置及びその制御方法
US8705736B2 (en) * 2008-12-31 2014-04-22 Pitney Bowes Inc. Image encryption for print-and-scan channels using pixel position permutation
US8593697B2 (en) * 2010-01-11 2013-11-26 Hewlett-Packard Development Company, L.P. Document processing
US8313030B2 (en) 2010-11-11 2012-11-20 Psion Inc. System and method for barcode scanning with color image sensors
US8584953B2 (en) 2011-02-24 2013-11-19 Psion, Inc. System and method for decoding barcodes not easily perceptible by human vision
US8500023B2 (en) 2011-02-24 2013-08-06 Psion Inc. System and method for providing sufficient illumination quality for barcodes captured with a color image sensor
TWI492162B (zh) * 2011-05-25 2015-07-11 Generalplus Technology Inc 等灰度二維光學辨識碼裝置
US8555065B2 (en) 2011-08-24 2013-10-08 Jeffrey Thomas CESNIK Method and apparatus for transmitting, receiving and decoding data using encoded patterns of changing colors
US9087260B1 (en) * 2012-01-03 2015-07-21 Google Inc. Hierarchical randomized quantization of multi-dimensional features
US9787404B2 (en) * 2013-09-16 2017-10-10 Clutch Authentication Systems, Llc System and method for communication over color encoded light patterns
US9548814B2 (en) * 2013-09-16 2017-01-17 Clutch Authentication Systems, Llc System and method for communication over color encoded light patterns
US20150155937A1 (en) * 2013-09-16 2015-06-04 Clutch Authentication Systems, Llc System and method for communication over color encoded light patterns
US20150155938A1 (en) * 2013-09-16 2015-06-04 Clutch Authentication Systems, Llc System and method for communication over color encoded light patterns
US20150104184A1 (en) * 2013-09-16 2015-04-16 Clutch Authentication Systems, Llc System and method for communication over color encoded light patterns
WO2015116148A2 (en) 2014-01-31 2015-08-06 Hewlett-Packard Development Company, L.P. Groups of phase invariant codewords
US9454605B1 (en) * 2014-09-12 2016-09-27 Emc Corporation Transferring data between devices using bar codes
FR3091940B1 (fr) * 2019-01-21 2022-04-01 Surys Procédé de traitement d’image pour document d’identité
EP4078451A1 (de) * 2019-12-17 2022-10-26 Sicpa Holding SA Verfahren und vorrichtung zum lesen eines zweidimensionalen codierten musters, das auf einen nichtuniformen hintergrund angewendet wird
EP4097962A4 (de) * 2020-01-30 2023-10-25 Hewlett-Packard Development Company, L.P. Signaturcodierende halbtonraster
CN115310572B (zh) * 2022-08-05 2024-04-16 蚂蚁区块链科技(上海)有限公司 一种图形码的生成方法和图形码校验方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5315098A (en) * 1990-12-27 1994-05-24 Xerox Corporation Methods and means for embedding machine readable digital data in halftone images
JPH05334470A (ja) * 1991-12-27 1993-12-17 Xerox Corp 自己クロッキング図形記号コード
US5818032A (en) * 1997-01-03 1998-10-06 Sun; Tsu-Hung Tom Encoded color halftone micro-dots for high density digital information storage
US5946414A (en) * 1998-08-28 1999-08-31 Xerox Corporation Encoding data in color images using patterned color modulated image regions
US6141441A (en) * 1998-09-28 2000-10-31 Xerox Corporation Decoding data from patterned color modulated image regions in a color image
US6751352B1 (en) * 2000-05-25 2004-06-15 Hewlett-Packard Development Company, L.P. Method and apparatus for generating and decoding a visually significant barcode
US6700992B1 (en) * 2000-07-13 2004-03-02 Eastman Kodak Company Adaptive message embedding error diffusion method
US6655592B2 (en) * 2001-10-10 2003-12-02 Hewlett-Packard Development Company, L.P. Graphically demodulating graphical bar codes without foreknowledge of the original unmodulated base image

Also Published As

Publication number Publication date
AU2002363975A1 (en) 2003-07-09
US6915020B2 (en) 2005-07-05
DE60213657D1 (de) 2006-09-14
EP1456812A1 (de) 2004-09-15
WO2003054786A1 (en) 2003-07-03
US20030112471A1 (en) 2003-06-19
EP1456812B1 (de) 2006-08-02
JP2005514810A (ja) 2005-05-19
JP4000316B2 (ja) 2007-10-31

Similar Documents

Publication Publication Date Title
DE60213657T2 (de) Erzeugung von graphischen kodes durch halbtonrasterung mit eingefügter graphischer kodierung
DE60125862T2 (de) Strichkode Vorrichtung
DE60211307T2 (de) Mit informationskodierenden grafischen symbolen gedrucktes dokument
DE60127165T2 (de) Unterschrift-Kodierungsverfahren
DE69834063T2 (de) Verfahren zum Einbetten eines Wasserzeichens in Digitaldaten
US7532361B2 (en) Image forming system, apparatus, and method
JP4173994B2 (ja) 画像に埋め込まれたハーフトーン変調の検出
US8194918B2 (en) Embedded message extraction for visible watermarking
EP1102474B1 (de) Bildverarbeitungsgerät, Verfahren und Speichermedium dafür
US6853736B2 (en) Image processing apparatus, image processing method and storage medium
US7006254B2 (en) Method and system for data hiding and authentication via halftoning and coordinate projection
US8243985B2 (en) Bit pattern design for visible watermarking
CN100534033C (zh) 一种抗模拟域攻击的文本数字水印方法
EP1528507A1 (de) Einbettung von Wasserzeichen in Halbtonebildern
US8300882B2 (en) Data adaptive message embedding for visible watermarking
JP4310031B2 (ja) 画像処理装置、画像処理方法及び記憶媒体
DE60311384T2 (de) Transformation eines Eingangsbildes zur Herstellung eines Ausgangsbildes
DE19847121A1 (de) Kodierapparat
DE602004008198T2 (de) Verfahren und System zur Abschätzung der Robustheit der Algorithmen zum Erzeugen kennzeichnender Informationen, die einen vorgewählten Text-Block beschreiben
DE19502997B4 (de) Einrichtung und Verfahren zum Verarbeiten von Zweiton-Bilddaten
JP2003101760A (ja) 画像処理装置及び画像処理方法
CA1309501C (en) Image processing system and method employing combined black and white and gray scale image data
JP3535791B2 (ja) 画像処理装置、画像処理方法及び記憶媒体
JP2003110838A (ja) 画像処理装置及び画像処理方法
Nemoto et al. Digital Watermark for Printing Images-Application to Thermal Transfer Printing Method

Legal Events

Date Code Title Description
8327 Change in the person/name/address of the patent owner

Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., HOUSTON

8364 No opposition during term of opposition