DE112015005883T5 - M-äre zyklische codierung - Google Patents

M-äre zyklische codierung Download PDF

Info

Publication number
DE112015005883T5
DE112015005883T5 DE112015005883.4T DE112015005883T DE112015005883T5 DE 112015005883 T5 DE112015005883 T5 DE 112015005883T5 DE 112015005883 T DE112015005883 T DE 112015005883T DE 112015005883 T5 DE112015005883 T5 DE 112015005883T5
Authority
DE
Germany
Prior art keywords
symbols
cyclic
ary
pattern
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112015005883.4T
Other languages
English (en)
Inventor
Steven J. Simske
Robert Ulichney
Matthew Gaubatz
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 DE112015005883T5 publication Critical patent/DE112015005883T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0021Image watermarking
    • G06T1/005Robust watermarking, e.g. average attack or collusion attack resistant
    • G06T1/0071Robust watermarking, e.g. average attack or collusion attack resistant using multiple or alternating watermarks
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0051Embedding of the watermark in the spatial domain

Abstract

Es ist ein beispielhaftes Verfahren beschrieben, in welchem ein Prozessor eine erste Vielzahl von Symbolen empfängt, die aus einem ersten Satz von Symbolen ausgewählt ist, die erste Vielzahl von Symbolen in eine zweite Vielzahl von Symbolen übersetzt, die aus einem Satz von M-ären zyklischen Symbolen ausgewählt ist, und die zweite Vielzahl von Symbolen auf eine Oberfläche schreibt. Ein zusätzliches beispielhaftes Verfahren ist beschrieben, in welchem ein Prozessor ein Bild von mindestens einem Teil einer Oberfläche aufnimmt, eine erste Vielzahl von Symbolen aus dem Bild detektiert, wobei die erste Vielzahl von Symbolen Symbole umfasst, die aus einem Satz von M-ären zyklischen Symbolen ausgewählt ist, die erste Vielzahl von Symbolen in eine zweite Vielzahl von Symbolen übersetzt, die aus einem zweiten Satz von Symbolen ausgewählt ist, und mindestens eine Aufgabe als Reaktion auf die zweiter Vielzahl von Symbolen durchführt.

Description

  • ALLGEMEINER STAND DER TECHNIK
  • Das Einbetten von Daten in eine Hardcopy ist für Inhaltsverknüpfung, Sicherheit und andere Anwendungen von steigender Bedeutung. Eine Daten tragende Hardcopy wird häufig durch verschiedene Arten von multidimensionalen Barcodes zusammen mit ästhetisch ansprechenderen Alternativen des Codierens von Symbolen in Halbtönen erreicht.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 veranschaulicht eine beispielhafte Oberfläche, die mit einem Muster von M-ären zyklischen Symbolen codiert ist;
  • 2 veranschaulicht einen beispielhaften Satz von M-ären zyklischen Symbolen innerhalb eines zyklischen Symbolraums;
  • 3 veranschaulicht eine beispielhafte Tabelle, die Beispiele für Sätze von M-ären zyklischen Symbolen umfasst;
  • 4 veranschaulicht einen beispielhaften Satz von M-ären zyklischen Symbolen, der von einem anderen beispielhaften Satz von M-ären zyklischen Symbolen abgeleitet wurde;
  • 5 veranschaulicht einen beispielhaften Teil einer Matrix, die auf eine Oberfläche geschrieben wurde;
  • 6 veranschaulicht einen beispielhaften Teil einer zusätzlichen Matrix, die auf eine Oberfläche geschrieben wurde;
  • 7 veranschaulicht ein Ablaufdiagramm eines beispielhaften Verfahrens zum Schreiben einer Vielzahl von M-ären zyklischen Symbolen auf eine Oberfläche;
  • 8 veranschaulicht ein Ablaufdiagramm eines beispielhaften Verfahrens zum Aufnehmen einer Vielzahl von M-ären zyklischen Symbolen von einer Oberfläche; und
  • 9 ist ein beispielhaftes Blockdiagramm auf hoher Ebene einer Rechenvorrichtung zur Verwendung bei der Durchführung der hier beschriebenen Funktionen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Beispiele der vorliegenden Offenbarung codieren Informationen in einem Muster, das auf eine Oberfläche geschrieben wird, wobei das Muster Symbole umfasst, die aus einem Satz von M-ären zyklischen Symbolen ausgewählt sind. M-äre zyklische Symbole umfassen Sätze von M Werten, die aus einem zyklischen Symbolraum ausgewählt sind. Ein zyklischer Symbolraum ist ein Raum, in welchem Werte in dem Raum monoton ansteigen, bis eine Grenze erreicht ist, bei diesem Punkt kehren die Werte in dem Raum zu dem kleinsten Wert in dem Raum zurück. In einem Satz von M-ären zyklischen Symbolen sind die M Symbole geordnet und die Anordnung jedes der M Symbole innerhalb der Ordnung wird durch einen Index im Bereich [0, (M – 1)] bezeichnet, wobei dem Symbol mit dem maximalen Index (M – 1) das Symbol mit dem Index null folgt. Der Wert des Symbols, das mit jedem Index assoziiert ist, kann eine repräsentative Quantität sein (ein Winkel, eine Farbe, eine Größe usw.), die in einigen Fällen sogar selbst der Index sein kann. Die Indexdarstellung der Symbole ist besonders nützlich, wenn eine Folge, die durch Symbole in einem möglicherweise unterschiedlichen Zahlensystem dargestellt ist, einer Folge von Basis-M Symbolen zugeordnet wird. Eine Symbolfolge, die aus einem Satz von M Symbolen ausgewählt ist, kann dann in einem sich wiederholenden Muster in zwei Dimensionen auf eine Oberfläche geschrieben werden. In einem Beispiel werden die M Symbole durch Farben dargestellt. In einem weiteren Beispiel werden die M Symbole durch die Größen eines Icons, die Positionen eines Icons, die Anstiege oder Winkel einer Linie oder alphanumerische Glyphen dargestellt. Wenn das Muster auf der Oberfläche wiederholt wird, kann eine Bildaufnahmevorrichtung die Folge durch Aufnehmen eines beliebigen ausreichend großen Teils der Oberfläche bestimmen, ohne zuvor die Grenzen des Musters kennen zu müssen.
  • In einem Beispiel kann das Muster erfolgreich über jede wiederholte Version des Musters auf der Oberfläche verschoben oder „gestört” werden, um die Informationen weiter zu codieren oder einen visuellen Effekt bereitzustellen. Zum Beispiel kann ein Ausgangsexemplar des Musters eine Reihe von modifizierten oder nicht modifizierten Versionen einer Folge umfassen, die einen zu codierenden Satz von Informationen darstellt. Außerdem kann jedes Exemplar des Musters eine modifizierte Version des Ausgangsmusters umfassen, wobei jedes Symbol in dem Muster durch eine Reihe von zyklischen Wertverschiebungen modifiziert ist. Eine zyklische Wertverschiebung kann durch eine Indexdifferenz in dem Satz von M-ären zyklischen Symbolen im Vergleich zu einem vorherigen Exemplar des Musters dargestellt sein. Somit kann eine zyklische Wertverschiebung eine Änderung des Werts eines Symbols umfassen (wobei Werte im Bereich von 0 bis M – 1 liegen). In einem Beispiel kann der Satz von M-ären zyklischen Symbolen mathematisch durch Indizes oder Winkel um einen Einheitskreis dargestellt werden. In einem derartigen Fall können zyklische Verschiebungen durch eine Wertdifferenz (z. B. Winkelwertdifferenz) zwischen den Winkeln/Indizes zweier Symbole dargestellt werden. Der Wert der zyklischen Verschiebung kann eine gewisse Form von Informationen darstellen oder die zyklische Verschiebung kann verwendet werden, um visuelle Artefakte auf der Seite zu vermeiden oder um visuelle Artefakte zu korrigieren. In einigen Fällen kann M-äre zyklische Codierung Zwischensymbolwerte innerhalb eines zyklischen Raums verwenden. Zum Beispiel kann ein kontinuierlicher zyklischer Raum über 360 Grad oder 2π Radiant definiert sein. Ein Satz von M-ären zyklischen Symbolen kann dann als Winkelverschiebungen innerhalb des kontinuierlichen zyklischen Raums definiert sein. Der Satz von M-ären zyklischen Symbolen kann dann auf einer gedruckten Seite mit gedruckten Symbolen dargestellt werden, die keine direkte Beziehung zu den Winkelquantitäten aufweisen, die den Satz von M-ären zyklischen Symbolen definieren.
  • Die M-äre zyklische Codierung der vorliegenden Offenbarung kann ebenfalls im Zusammenhang mit zirkulärer Codierung einer Folge und zirkulärer Verschiebungscodierung der sich wiederholenden Versionen des Musters in den zwei Dimensionen der Oberfläche verwendet werden. Bei der zirkulären Codierung kann eine Folge in eine „Standardform” übersetzt werden, indem Symbole in der Folge bitweise, oder ziffernweise, in einer zirkulären Rotation verschoben werden (wobei Symbole vom Ende der Folge durch einen Verschiebungsvorgang zu dem Anfang zurückkehren). Die verschobene Version der Ausgangsfolge mit dem niedrigsten Wert in dem relevanten numerischen System, oder „Zahlensystem”, wird als die „Standardform” bezeichnet. Die Anzahl der Ziffernverschiebungen, die zum Transformieren der Ausgangsfolge in die Standardform erforderlich ist, wird als die „Phase” bezeichnet. Wenn die Folge die Länge N aufweist, kann eine Lesevorrichtung jede Sequenz mit N Ziffern aufnehmen und es ist wird garantiert, dass die Standardform wiederhergestellt werden kann. Wenn die Phase im Voraus bekannt ist oder auf eine Weise auf der Oberfläche codiert werden kann, dann kann die Ausgangsfolge ebenfalls wiederhergestellt werden. Daher kann die zirkuläre Codierung in dem zweidimensionalen gedruckten Raum im Zusammenhang mit einem Codierungsschema verwendet werden, welches einen Satz von M-ären zyklischen Symbolen zum Darstellen von Informationen verwendet. Diese Anordnung stellt mehrere Vorteile bereit, wie zum Beispiel Bereitstellen zusätzlicher redundanter Informationen zum Überprüfen von Fehlern, Ermöglichen, dass mehr Informationen innerhalb desselben zweidimensionalen Raums übermittelt werden und so weiter. Das Konzept der „Standardform” weist in dem zyklischen Symbolraum ebenfalls ein Korollar auf, wie nachstehend ausführlicher in Verbindung mit dem Beispiel aus 5 beschrieben.
  • Wie vorstehend erwähnt, stellt die vorliegende Offenbarung in einem Beispiel eine Nachricht dar, die einen diskreten Satz von Informationen als eine Folge, oder Sequenz, umfasst, wobei ein Muster, welches von der Folge abgeleitet ist, auf einer Oberfläche wiederholt wird, z. B. einer ebenen 2D-Oberfläche, wie zum Beispiel einem Blatt Papier in der Größe eines Posters, und wobei die Ausgangsnachricht durch eine Lesevorrichtung aus nur einem Teilabschnitt des sich wiederholenden Musters bestimmt werden kann. Um dies zu veranschaulichen, zeigt 1 eine Oberfläche 100, die mit einem sich wiederholenden Muster codiert ist, welches Symbole umfasst, die aus einem Satz von M-ären zyklischen Symbolen ausgewählt sind. In einem Beispiel umfasst die Oberfläche 100 eine mit Tinte bedruckbare Oberfläche, eine lithographisch beschreibbare Oberfläche, eine optisch beschreibbare Oberfläche oder einen Anzeigebildschirm. Ein Aufnahmefenster 110 kann eine Länge (L) 112 und eine Breite (B) 114 aufweisen. Wenn die Größe des Aufnahmefensters 110 zu klein ist, kann die gesamte Ausgangsnachricht nicht rekonstruiert werden. Die kleinste erreichbare Größe, bei welcher die Nachricht rekonstruiert werden kann, ist im Allgemeinen eine Funktion der Spezifika des Codierungsschemas. Einer der Vorteile dieses Ansatzes besteht darin, dass, unter der Voraussetzung, dass die Größe des Aufnahmefensters 110 ausreichend groß ist, die Ausgangsnachricht unabhängig davon rekonstruiert werden kann, welcher Teil der codierten Oberfläche abgetastet wird. In einem Beispiel entspricht das Aufnahmefenster 110 zum Beispiel der Fläche der Oberfläche 100, die im Nahbereich mit einer Digitalkamera z. B. einer unabhängigen Vorrichtung, einer Kamera in einem Mobiltelefon und so weiter, aufgenommen werden kann.
  • Die zirkuläre Codierung bezieht sich auf ein Codierungsschema, bei welchem jede Sequenz, oder Folge, von B Symbolen durch eine zirkulär verschobene Version der Sequenz dargestellt werden kann. Eine zirkuläre Verschiebung wird im Bereich der Computerprogrammierung ebenfalls als eine bitweise Rotation bezeichnet. Zum Beispiel ist eine zirkuläre Verschiebung ein Operator, der jedes Bit einer Operandenfolge um eine bestimmte Anzahl von Symbolen, oder Positionen, in der Sequenz von B Symbolen verschiebt. Beliebige Symbole in der Folge, die bei einem ersten Ende der Folge während des Verschiebungsvorgangs freigemacht werden, werden mit den Symbolen gefüllt, die aus dem zweiten Ende der Sequenz verschoben wurden. Somit werden die Symbole des zweiten Endes der Folge zurück zum Anfang, oder dem ersten Ende der Folge, „umgeschlagen”. Wenn eine Folge eine Länge von B Symbolen aufweist, dann existieren bis zu B – 1 unterschiedliche zirkulär verschobene Versionen der Ausgangsfolge. Eine Standardform einer Folge ist eine zirkulär verschobene Version der Folge, die den geringsten Wert aufweist. Die Phase ist die Anzahl von zirkulären Positionsverschiebungen, die zum Transformieren der Ausgangsfolge in die Standardform erforderlich ist.
  • Um die zu veranschaulichen, kann ein senärer (6-ärer) Satz von Symbolen die Farben Rot (R), Gelb (Y), Grün (G), Cyan (C), Blau (B) und Magenta (M) umfassen, wobei die Farben in dem Satz {R, Y, G, C, B, M} den Indizes {0, 1, 2, 3, 4, 5} zugeordnet sind. Wenn eine Ausgangsnachricht in einem binären Format (1011011101)2 umfasst, dann ist die von der binären Form in die senäre Form übersetzte Nachricht (3221)6. Unter Verwendung der vorstehenden Farbendarstellungen kann diese Folge als CGGY (Cyan, Grün, Grün, Gelb) auf eine Oberfläche geschrieben werden. Die senäre Form der Folge kann jedoch ebenfalls in die Standardform übersetzt werden, wobei es sich um die zirkulär verschobene Version der Folge mit dem geringsten Wert handelt. In diesem Fall ist die Standardform das Minimum von {(3221)6, (1322)6, (2132)6, (2213)6}. Somit ist (1322)6 die Standardform. Die Phasenverschiebung entspricht „1”, da die Rechtsverschiebung einer Ziffer, oder einer Symbolposition, erforderlich ist, um die senäre Ausgangsfolge in die Standardform zu transformieren.
  • Die zirkuläre Codierung kann ebenfalls zum Erzeugen zweidimensionaler Matrizen mit sich wiederholenden zirkulär verschobenen Versionen einer Folge verwendet werden. In einem Beispiel werden für jede Zeile einer Matrix Ziffern der Folge bis zum Ende der Zeile wiederholt. Für jede nachfolgende Zeile werden die Symbolwerte innerhalb der Folge zirkulär um D Ziffern relativ zu der Zeile darüber verschoben. In einem Beispiel wird der Wert von D zum Übermitteln der Phase verwendet. Daher kann die Bildaufnahmevorrichtung einen Teil der Matrix aufnehmen, der eine gewisse Anzahl an Wiederholungen der Folge in aufeinanderfolgenden zirkulär verschobenen Formen aufweisen wird. Es wurde demonstriert, dass die Phasenverschiebung zwischen den Zeilen und die Standardform unter Verwendung statistischer Verfahren bestimmt werden können, wie zum Beispiel eine Blindschätzungstechnik, wenn ein ausreichender Teil der Matrix durch die Bildaufnahmevorrichtung aufgenommen wird. Somit kann eine Transformation von der Standardform in die Ausgangsfolge nur auf Informationen beruhen, die aus der zweidimensionalen Matrix gesammelt wurden. Die zirkuläre Codierung in Verbindung mit den Sätzen von M-ären zyklischen Symbolen wird nachstehend in Bezug auf die Beispiele aus 6 ausführlicher beschrieben. Blindschätzungstechniken werden nachstehend in Bezug auf die Besprechung des Blocks 820 aus 8 ausführlicher beschrieben.
  • 2 veranschaulicht einen beispielhaften Satz von M-ären Werten innerhalb eines zyklischen Symbolraums 200 gemäß der vorliegenden Offenbarung. Der Symbolraum 200 kann mit einem Satz von 5-ären (oder quinären) zyklischen Symbolen assoziiert sein, d. h. die fünf Symbole 210215 umfassend. Wie vorstehend erwähnt, ist ein Satz von zyklischen Symbolen jede diskrete Sequenz von Symbolen, die sich von dem höchsten Symbol zu dem niedrigsten Symbol „umschlägt”. Diese Eigenschaft kann anders so ausgedrückt werden, dass die Symbole mit einer Ordnung assoziiert sind, die eine Iteration durch eine Sequenz von Symbolen, und zwar beginnend bei einem bestimmten Symbol, in zwei unterschiedlichen Richtungen gestattet. Formal umfasst der Satz von M-ären zyklischen Symbolen einen zyklisch geordneten Satz von M Symbolen, wobei die M Symbole Proben aus einem zyklischen Raum darstellen, in welchem Indizes, die mit den M Symbolen in dem zyklisch geordneten Satz assoziiert sind, monoton ansteigen und zu einem Ausgangswert zurückkehren, nachdem ein M-ter Wert erreicht wurde. Ein Merkmal dieser zyklischen Eigenschaft ist, dass ein Abstand (oder eine „Nähe”) zwischen zwei Symbolen in Form von Vorwärts- und Rückwärtsprogressionen (z. B. im Uhrzeigersinn und gegen den Uhrzeigersinn) um den Symbolraum gemessen werden können.
  • Ein Beispiel für zyklische Symbole ist ein diskreter Satz von Winkeln. Winkel werden typischerweise in Grad oder Radiant gemessen. Wenn 0 Radiant der 12-Uhr-Position auf dem Einheitskreis entsprechen soll, kann ein Satz von 5-ären zyklischen Symbolen durch den Satz der folgenden fünf Winkel gegeben werden: {0 Radiant, 2π/5 Radiant, 4π/5 Radiant, 6π/5 Radiant, 8π/5 Radiant}. Wie in 2 veranschaulicht, werden diese Winkel durch die Symbole 210, 211, 212, 213 bzw. 214 dargestellt, welche den sequenziellen Indizes 0, 1, 2, 3 bzw. 4 zugeordnet sind. In diesem Symbolraum beträgt der Abstand zwischen 2π/5 Radiant und 8π/5 Radiant nur 4π/5 Radiant, was durch den Winkel 220 angezeigt wird, aufgrund dessen, wie sich die Messung der Winkeldifferenzen um den Raum umschlägt; in einem nicht zyklischen Raum, würde dieser Abstand 6π/5 Radiant betragen. In einem Beispiel kann ein Satz von zyklischen Symbolen direkt durch diese Winkel um einen Einheitskreis dargestellt werden. In einem anderen Beispiel können zyklische Symbole verschiedener Formen, d. h. andere Sätze von Winkeln, jedoch ganzzahligen Indizes zugewiesen werden, die Punkten entsprechen, die gleichmäßig um einen Einheitskreis beabstandet sind. Mathematisch gesehen können Abstände zwischen diesen Symbolen dann durch die Winkelabstände zwischen den Positionen der Symbole um den Einheitskreis dargestellt werden, sowie durch Indexdifferenzen zwischen sequenziellen Symbolen. Diese Abstände können hier ebenfalls als „Wertdifferenzen” bezeichnet werden.
  • Zyklische Symbole können auf eine Vielzahl von Arten und Weisen dargestellt werden, wenn diese auf eine Seite gedruckt oder anderweitig auf eine Oberfläche gedruckt werden, von welcher aus die zyklischen Symbole gelesen werden können. 3 veranschaulicht eine beispielhafte Tabelle 300, die Beispiele für zyklische Symbole unter Verwendung von Farbe (Zeile 310), Größe (Zeile 320), physischer Position (Zeile 330), Winkel (Zeile 340) und Glyphen (Zeile 350) beinhaltet. Zyklische Symbole können ebenfalls durch Materialien dargestellt werden, die das menschliche Auge nicht wahrnehmen kann, wie zum Beispiel unsichtbare Wellenlängen, Quantenpunkte und reflektierte Polarisationswinkel.
  • In Bezug auf die Farben sind in Zeile 310 fünf Farben den entsprechenden sequenziellen Indizes innerhalb eines Satzes von 5-ären zyklischen Symbolen zugewiesen, z. B. den sequenziellen Indizes 0–4 in 2 folgend. In einem Beispiel kann ein zyklischer Raum, aus welchem ein Satz von M-ären zyklischen Symbolen ausgewählt ist, einen zylindrischen HSL(Farbwert-Sättigung-Helligkeit)- oder HSV(Farbwert-Sättigung-Hellwert)-Koordinatenraum umfassen, der in einen Kreis projiziert wird (um z. B. nur den Farbwert zu verwenden). In einem Beispiel können die Farben, die so ausgewählt sind, dass sie die sequenziellen M-Werte des Satzes von M-ären zyklischen Symbolen umfassen, gleichmäßig um den HSL- oder HSV-Kreis beanstandet sein. In einem anderen Beispiel können die ausgewählten Farben jedoch uneinheitlich beabstandet sein.
  • In noch einem anderen Beispiel können die Zahlen, die unterschiedlichen sequenziellen Positionen in einem Satz von M-ären zyklischen Symbolen zugewiesen sind, keine Beziehung zu HSL- oder HSV-Koordinaten und keine Beziehung zu Wellenlängen des Lichts aufweisen, welche den jeweiligen Farben entsprechen. Anders ausgedrückt, kann die Beziehung zwischen den ausgewählten Farben und ihren zugewiesenen Positionen innerhalb der Ordnung des Satzes von M-ären zyklischen Symbolen willkürlich ausgewählt werden. In dem Beispiel aus 3 umfassen zum Beispiel die Farben in Zeile 310 Weiß (W), Cyan (C), Magenta (M), Gelb (G) und Schwarz (B), entsprechend den jeweiligen Indizes 0–4. Es ist offensichtlich, dass diese Farben keinem gleichmäßig partitionierten zylindrischen/zirkulären HSL- oder HSV-Raum entsprechen. Diese Farbauswahl ist jedoch praktisch für einen Satz von 5-ären zyklischen Symbolen, da die Werte mit jeder der typischen separat verwendeten Verarbeitungstinten (Cyan, Magenta, Gelb und Schwarz) gemeinsam mit Papier-(oder Hintergrund-)Weiß dargestellt werden können.
  • Farben weisen viele nützliche Eigenschaften und Vorteile in Verbindung mit den Beispielen der vorliegenden Offenbarung auf. Sie sind jedoch nicht das einzige Merkmal, das zum Darstellen von M-ären zyklischen Symbolen verwendet werden kann. Zum Beispiel zeigt Zeile 320, dass die Größe eines Icons (in diesem Fall ein Quadrat) zum Darstellen zyklischer Werte in einem Satz von 5-ären zyklischen Symbolen verwendet werden kann. Zeile 330 zeigt, dass die Position eines Icons ebenfalls zum Darstellen der zyklischen Werte verwendet werden kann. Innerhalb einer gegebenen Fläche für ein Symbol kann zum Beispiel die Position des Icons innerhalb der Symbolfläche verschoben werden, um die unterschiedlichen Symbole des Satzes von M-ären zyklischen Symbolen darzustellen. Zeile 340 zeigt, dass Winkel ebenfalls zum Darstellen der zyklischen Werte verwendet werden können. Es ist anzumerken, dass die fünf Winkel der in Reihe 340 gezeigten entsprechenden Symbole keine gleichmäßig beabstandeten Winkel um 360 Grad darstellen. Dieses Beispiel soll veranschaulichen, dass es keine Vorschrift gibt, dass die Symbole eine beliebige natürliche Progression aufweisen müssen oder dass die Symbole selbst eine beliebige natürliche Beziehung untereinander aufweisen müssen. Somit kann in einem Beispiel der Winkel oder Anstieg der Linie für ein bestimmtes Symbol direkt der Position des Symbols in einem zyklischen Raum entsprechen, aus welchem das Symbol genommen wird. In einem anderen Beispiel kann der „Winkel” oder die Position des Symbols in dem zylindrischen Raum keine direkte Beziehung mit dem Winkel oder Anstieg der Linie aufweisen, wenn das Symbol auf eine Seite gedruckt wird. Es existieren jedoch einige Vorteile, die sich aus der Auswahl einer natürlichen Progression ergeben, die nachfolgend besprochen werden.
  • Zeile 350 zeigt, dass Glyphen, wie zum Beispiel alphanumerische Schriftzeichen ebenfalls zum Darstellen der M-ären zyklischen Werte verwendet werden können. Obwohl die Symbole in Zeile 350 die ersten fünf Buchstaben des deutschen Alphabets sind, existiert keine Vorschrift, dass Buchstaben, die Indizes in einer Sequenz von M Symbolen in einem Satz von M-ären zyklischen Symbolen zugewiesen sind, einer beliebigen bestimmten Ordnung folgen müssen. Ein Beispiel, in welchem die alphanumerischen Glyphen in einem Satz von 5-ären zyklischen Symbolen verwendet werden, ist in Verbindung mit 4 bereitgestellt.
  • Statt einen Satz von M-ären zyklischen Symbolen als M spezifische Werte in einem zyklischen Raum zu definieren, kann ein Satz von M-ären zyklischen Symbolen ebenfalls als ein Satz von M Wertdifferenzen, z. B. Winkelverschiebungen oder sequenzielle Indexdifferenzen, in dem Raum definiert werden. Anders ausgedrückt, kann der Satz von Differenzen zwischen Werten in einem zyklischen Raum einen anderen zyklischen Raum definieren. Zum Beispiel kann ein zyklischer Raum einen Satz von fünf möglichen Symbolwerten umfassen. Außerdem können die fünf Symbolwerte mit Indizes assoziiert sein, die gleichmäßig beabstandeten Punkten um einen Einheitskreis entsprechen. Der zyklische Raum 200 aus 2 stellt einen derartigen Symbolraum dar. In diesem Fall kann dann ein Satz von 5-ären zyklischen Symbolen als Winkelverschiebungen der Winkelwertdifferenzen definiert werden von: –4π/5 Radiant, –2π/5 Radiant, 0 Radiant, +2π/5 Radiant bzw. +4π/5 Radiant. Es ist anzumerken, dass, wenn Differenzen in einem zyklischen Raum als ein anderer definiert werden sollen, es praktisch ist, einen Satz von Symbolen zu wählen, der auf einer natürlichen Ordnung von Differenzen der Werte im Ausgangsraum beruht. Andernfalls ist das Berechnen der Differenz zwischen willkürlich ausgewählten Werten in jedem Raum nicht so einfach. Wenn ein zyklischer Raum verwendet wird, der einen Satz von diskreten Symbolwerten umfasst, ist es möglich, die Verwendung von ganzzahligen Indexverschiebungen, oder Wertdifferenzen, in Bezug auf zirkulären Code als einen Satz von Informationen zu beschrieben, anstatt sich auf Winkelverschiebungen zu beziehen. Anstatt sich zum Beispiel auf Verschiebungen von –4π/5 Radiant, –2π/5 Radiant, 0 Radiant, +2π/5 Radiant und +4π/5 Radiant zu beziehen, kann ein Satz von 5-ären zyklischen Symbolen zyklische Indexdifferenzen von –2, –1, 0, +1 und +2 innerhalb des zyklischen Satzes umfassen, der durch die fünf Symbolwerte definiert ist. Anders ausgedrückt, kann der Satz von M-ären zyklischen Symbolen Wertdifferenzen umfassen, die ganzzahlige Vielfache einer Differenz zwischen zwei benachbarten Symbolwerten innerhalb des zyklischen Ausgangsraums sind, von welchem der Satz von M-ären zyklischen Symbolen abgeleitet wird.
  • Unabhängig davon, ob die Wertdifferenzen durch Winkelverschiebungen oder zyklische Indexdifferenzen dargestellt werden, kann ein ähnliches Verfahren befolgt werden, wenn eine Nachricht auf einer Oberfläche unter Verwendung eines Satzes von M-ären zyklischen Symbolen codiert wird, welches auf Wertdifferenzen in einem zyklischen Raum beruht. Zum Beispiel kann ein erstes Symbol ausgewählt werden und auf die Oberfläche geschrieben werden. In einem Beispiel kann das erste Symbol willkürlich ausgewählt werden. Danach umfasst jedes nachfolgende Symbol in der Folge einen Wert, der durch eine Winkelverschiebung oder eine Indexdifferenz im Vergleich zu dem Winkel oder der Differenz dargestellt wird, der/die dem vorhergehenden Symbol entspricht.
  • Mit diesen Beispielen fortsetzend, veranschaulicht 4 einen Satz 400 von 8-ären zyklischen Symbolen, der acht Symbole umfasst, die durch einen Winkel oder Anstieg einer Grenze zwischen einem schwarzen und weißen Bereich jedes Symbols dargestellt werden. In diesem Beispiel entspricht der Anstieg der Grenze jedes Symbols der Winkelposition um den Einheitskreis 410. Diese acht Symbole können als ein Satz von 8-ären zyklischen Symbolen verwendet werden, um einen Basis-8-Satz von Informationen direkt zu codieren. Es kann jedoch ein anderer Satz von M-ären zyklischen Symbolen auf Indexdifferenzen innerhalb des Satzes 400 von 8-ären zyklischen Symbolen basieren. Wie zum Beispiel in 4 angezeigt, stehen bis zu sieben unterschiedliche Indexverschiebungen und eine Indexverschiebung von null zur Verfügung, wenn die acht Symbole des Satzes 400 von 8-ären zyklischen Symbolen verwendet werden. Es kann jedoch ebenfalls ein Satz von M-ären zyklischen Symbolen, bei welchem M weniger als 8 ist, entwickelt werden, der auf Indexdifferenzen innerhalb des Satzes 400 von 8-ären zyklischen Symbolen basiert. Zum Beispiel kann ein Satz 450 von 6-ären zyklischen Symbolen sechs Symbole aufweisen, wobei die sechs Symbole den Indexverschiebungen von {–2, –1, +1, +2, +3, +4) innerhalb des Satzes 400 der 8-ären zyklischen Symbolen entsprechen.
  • Gemäß der vorliegenden Offenbarung können einige Beispiele ebenfalls nicht ganzzahlige Partitionen eines zyklischen Raums verwenden. Wenn nicht ganzzahlige Partitionen eines zyklischen Raums verwendet werden, ist es jedoch notwendig, einige Definitionen für die Zwischensymbole zu formalisieren. Zum Beispiel kann ein zyklischer Symbolraum definiert werden, in welchem eine „kontinuierliche” Definition von Werten vorhanden ist, die in dem gesamten Raum existieren (wie zum Beispiel ein Satz von Winkeln oder ein Satz von Farben innerhalb zum Beispiel eines HSL- oder HSV-Raums). Dann kann ein Satz von zyklischen Symbolen als ein Satz von vorzeichenbehafteten Abständen innerhalb des zyklischen Raums definiert werden, wobei keine festen Symbolwerte vorhanden sind. Zum Beispiel kann ein Satz von 5-ären zyklischen Symbolen Verschiebungen innerhalb eines kontinuierlichen zyklischen Symbolraums von 360 Grad (oder 2π Radiant) umfassen, wobei die fünf Symbole(Winkel-)Verschiebungen in dem kontinuierlichen zyklischen Raum umfassen von: 4 Radiant, –2 Radiant, 0 Radiant, +2 Radiant bzw. +4 Radiant. Anders ausgedrückt, kann der Satz von M-ären zyklischen Symbolen Wertdifferenzen umfassen, die nicht ganzzahlige Vielfache einer Wertdifferenz zwischen zwei benachbarten Symbolwerten aus einem gleichmäßig beabstandeten Satz von Werten aus innerhalb des zyklischen Ausgangsraums sind, von welchem der Satz von M-ären zyklischen Symbolen abgeleitet wird.
  • 5 veranschaulicht einen Teil einer beispielhaften Matrix 500, die auf eine Oberfläche geschrieben wurde. Ein Satz 550 von 5-ären zyklischen Symbolen ist ebenfalls veranschaulicht, der die alphanumerischen Glyphen A, B, C, D und E umfasst, die jeweiligen Positionen 0–4 zugewiesen sind. Der Satz 550 von 5-ären zyklischen Symbolen soll als ein Schlüssel in Verbindung mit den Mustern, die auf die Matrix 500 geschrieben wurden, verwendet werden.
  • Es ist anzumerken, dass die Matrix 500 sich in zwei Dimensionen erstreckt, wobei das Muster, das in dem in 5 veranschaulichten Teil gezeigt ist, schlicht ein Teilsatz der vollständigen Matrix 500 ist. Der Teil der Matrix 500 umfasst die Zeilen 510, 520, 530 bzw. 540. Eine Folge 595, welche die Symbole {B, B, D, A, E} umfasst, ist in die erste Zeile (Zeile 510) geschrieben. In einem Beispiel kann die Folge 595 eine binäre Nachricht umfassen, die in eine numerische Basis-5 Folge übersetzt wurde und ferner unter Verwendung der aus dem Satz 550 von 5-ären zyklischen Symbolen ausgewählten Symbole in eine Folge übersetzt wurde. In einem anderen Beispiel kann die Folge 595 eine Version einer Ausgangsfolge umfassen, die auf eine gewisse Weise manipuliert wurde, wie zum Beispiel eine zyklische Wertverschiebung der Symbole in der Folge oder eine zirkuläre Phasenverschiebung der Symbole in der Folge. Die Folge 595 wird bis zum Ende der Zeile über die Zeile 510 wiederholt. Es ist nur möglich, zwei vollständige Versionen der Folge 595 in jede Zeile zu schreiben. Somit erscheint nur ein Teil der Folge 595 an dem Ende der Zeile 510, d. h. den ersten beiden Symbolen {B, B}.
  • In einem Beispiel können zyklische Verschiebungen für nachfolgende wiederholte Versionen des Musters auf eine Oberfläche geschrieben werden. Zum Beispiel kann jede Zeile eine zyklisch verschobene Version des Musters im Vergleich zu einer Reihe darüber umfassen, wobei die zyklische Verschiebung eine Verschiebung von einem oder mehreren Indizes in dem Satz 550 von 5-ären zyklischen Symbolen umfasst. In dem Beispiel aus 5 wird eine zyklische Verschiebung der Folge 595 implementiert, umfassend eine Verschiebung von zwei Symbolindizes in dem Satz 550 von 5-ären zyklischen Symbolen. Somit umfasst die Folge 585 den Satz von Symbolen {D, D, A, C, B}, wobei jedes Symbol eine Vorwärts-/Uhrzeigersinnverschiebung von einem entsprechenden Symbol in der Ausgangsfolge 595 ist. Die Folge 585 wird über die Zeile 520 wiederholt. Zeile 530 umfasst dasselbe Muster von Zeile 520 mit einer anderen zyklischen Verschiebung, die eine Vorwärtsverschiebung von zwei Symbolindizes in dem Satz 550 von 5-ären zyklischen Symbolen umfasst. Gleichermaßen umfasst Zeile 550 dasselbe Muster von Zeile 530 mit einer anderen Vorwärtsverschiebung von zwei Symbolindizes.
  • In einem Beispiel kann der Wert von zyklischen Wertverschiebungen zwischen den Zeilen verwendet werden, um den Symbolindex (in dem Satz 550 von 5-ären zyklischen Symbolen) eines der Symbole in einer Ausgangsfolge anzugeben. Zum Beispiel kann die Folge 595 eine zyklisch verschobene Kopie einer Ausgangsfolge umfassen. In einem anderen Beispiel können die zyklischen Wertverschiebungen zwischen den Zeilen verwendet werden, um eine Phase der Ausgangsfolge in Bezug auf die zyklische Standardform der Folge zu bezeichnen, d. h. die niedrigsten Werte der Folge, die durch wiederholte zyklische Wertverschiebungen erhalten werden. Gleichermaßen ist die Folge 585 eine zyklisch verschobene Version der Folge 595. Somit kann unbekannt sein, welche einer Menge von zyklisch verschobenen Versionen einer Folge die Ausgangsfolge umfasst. Um die Ausgangsfolge wiederherzustellen, kann somit das Konzept der Standardform ebenfalls auf zyklische Symbolmuster angewandt werden, die in einer Matrix, wie zum Beispiel der Matrix 500, wiederholt werden.
  • Um eines dieser Wiederherstellungsbeispiele zu veranschaulichen, kann die 5-äre Ausgangsfolge {C, C, E, B, A} umfassen. Ein ausreichendes Aufnahmefenster vorausgesetzt und unter Verwendung statistischer Verfahren, z. B. einer Blindschätzungstechnik, kann bestimmt werden, das nachfolge zyklisch verschobene Versionen einer 5-ären Folgen Zeile für Zeile wiederholt werden. Somit kann bestimmt werden, dass die 5-äre Ausgangsfolge eine der folgenden umfasst: {B, B, D, A, E}, {D, D, A, C, B}, {A, A, C, E, D}, {C, C, E, B, A} oder {E, E, B, D, C}. Außerdem kann eine Blindschätzungstechnik oder ein ähnliches Verfahren ebenfalls bestimmen, dass die zyklische Verschiebung zwischen den Zeilen eine Vorwärtsverschiebung (Uhrzeigersinn) von zwei Symbolindizes umfasst. In einem Beispiel kann die zyklische Verschiebung zwischen den Zeilen verwendet werden, um den Symbolindex (in dem Satz 550 von 5-ären zyklischen Symbolen) des ersten Symbols der Ausgangsfolge zu codieren. Da die zyklische Verschiebung zwischen den Zeilen zwei (2) beträgt, entspricht dies somit dem Index 2 innerhalb des 5-ären zyklischen Raums (mit den Indizes 0–4). Da das Symbol „C” dem Index 2 zugewiesen ist, ist das erste Symbol in der 5-ären Ausgangsfolge C. Somit lautet die 5-äre Ausgangsfolge {C, C, E, B, A}.
  • In dem vorstehenden Beispiel können zyklische Verschiebungen zwischen den Zeilen verwendet werden, um zusätzliche Informationen zu übermitteln, um die Wiederherstellung der Ausgangsversion der 5-ären Folge zu gestatten. Diese Informationen können jedoch ebenfalls auf eine andere Weise übertragen werden, z. B. Drucken der Ausgangsform der Folge in einer unterschiedlichen Farbe im Vergleich zu anderen wiederholten Versionen der Folge oder auf eine andere Weise. In diesem Fall können zyklische Wertverschiebungen zwischen den Zeilen verwendet werden, um andere Arten von Informationen zu übermitteln, wie zum Beispiel die Versionsnummer eines Dokuments. Zum Beispiel kann eine zyklische Wertverschiebung zwischen den Zeilen von zwei (2) anzeigen, dass die Oberfläche die zweite Überarbeitung des Dokuments darstellt, eine zyklische Wertverschiebung zwischen den Zeilen von drei (3) kann anzeigen, dass sie die dritte Überarbeitung des Dokuments darstellt und so weiter. Zyklische Wertverschiebungen zwischen den Zeilen oder von Zeile zu Zeile können ebenfalls variiert werden, um einen größeren Satz von Informationen zu codieren. Zum Beispiel kann die Matrix 500 modifiziert sein, um eine zyklische Wertverschiebung eines Symbolindex zwischen dem Muster in der Zeile 510 und dem Muster in der Zeile 520 aufzuweisen, eine zyklische Verschiebung von drei Symbolindizes zwischen der Zeile 520 und 530 und so weiter. Beim Bewegen von Zeile zu Zeile kann jede der aufeinanderfolgenden zyklischen Verschiebungen einen Satz von Informationen codieren, der sich von der 5-ären Ausgangsfolge unterscheidet.
  • Es ist anzumerken, dass eine zyklische Wertverschiebung von Zeile zu Zeile nur ein Beispiel der Arten von Störungen oder Modifikationen in einem Muster ist, die verwendet werden kann, wenn eine Folge von M-ären Symbolen auf eine Oberfläche geschrieben wird. Zum Beispiel können die Zuweisung von Störungen zu Zeilen versus Spalten (oder beiden) und die Ausrichtung des Musters variiert werden.
  • Codierung unter Verwendung von M-ären Symbolen kann ebenfalls das Wiederholen von Mustern in zwei Dimensionen auf einer Oberfläche umfassen. Zum Beispiel können M-äre zyklische Symbole ebenfalls in Verbindung mit zirkulären Codierungsschemata verwendet werden, um zusätzliche Informationen über Störungen in zwei Dimensionen zu codieren, wobei die Störungen zyklische Verschiebungen in einem Satz von M-ären zyklischen Symbolen und zirkuläre Verschiebungen eines Musters umfassen können, welches von einer M-ären Folge abgeleitet wurde, die eine Ausgangsnachricht darstellt. Anders ausgedrückt, können systematisch modifizierte Versionen einer Folge oder eines Musters auf eine Oberfläche geschrieben werden, wobei die systematischen Modifikationen zyklische Wertverschiebungen eines oder mehrerer Indizes innerhalb eines Satzes von M-ären zyklischen Symbolen oder zirkuläre Verschiebungen um eine oder mehrere Symbolpositionen innerhalb einer Folge und/oder innerhalb eines Musters umfassen, das von der Folge abgeleitet wurde. In einer anderen Implementierung können die Modifikationen zyklische Wertverschiebungen mit willkürlich ausgewählten Werten oder zirkuläre 2D-Neuanordnungen der Symbole umfassen, einschließlich fraktionierter zirkulärer Verschiebungen in zwei Dimensionen, wobei nur ein Teil einer Ziffer zirkulär um das gegenüberliegende Ende der Nachricht umgeschlagen ist. In noch einer anderen Implementierung kann der Satz von Modifikationen erweitert werden, um willkürliche geometrische periodische Störungen des Musters zu beinhalten, die als willkürliche geometrische Störungen des Fensters modelliert sein können, welches eine zweidimensionale periodisch erweiterte Version des Musters umreißt.
  • Um dies zu veranschaulichen, bildet 6 einen beispielhaften Teil einer Oberfläche 600 ab, auf welcher vier 6 × 3-Felder vorhanden sind, 681, 682, 683 und 684. Es ist möglich, die Grenzen jedes Felds unter Verwendung von Blindschätzungstechniken oder anderen Algorithmen zu skizzieren. Zur Erleichterung der Veranschaulichung werden jedoch bandexterne Marker, z. B. zwei schwarze Quadrate, bereitgestellt, um das Ende jedes Felds anzuzeigen. Einer der bandexternen Marker wird in der Figur durch das Bezugszeichen 671 angezeigt. Ein Schlüssel für das M-äre zyklische Codierungsschema des Beispiels wird durch den Satz 601 von 5-ären zyklischen Symbolen angezeigt. Insbesondere umfasst ein Satz von 5-ären zyklischen Symbolen die Symbole {A, B, C, D, E} und ist in Verbindung mit 6 zu verwenden.
  • In dem vorliegenden Beispiel werden zyklische Wertverschiebungen zwischen den Zeilen von zwei zyklischen Indizes innerhalb jedes Felds verwendet. Zum Beispiel wird die Folge 691 innerhalb der Zeile 610 bis zum Ende des Felds 681 wiederholt. Innerhalb des Felds 681 umfasst die Zeile 620 ein Muster, welches um zwei zyklische Symbolindizes in Bezug auf die Zeile 610 zyklisch verschoben ist. Gleichermaßen umfasst die Zeile 620 ein Muster, welches um zwei zyklische Symbolindizes in Bezug auf die Zeile 620 zyklisch verschoben ist. In die Zeile 630 des Felds 681 kann jedoch aufgrund der Anwesenheit der bandexternen Marker, die das Ende des Felds anzeigen, kein vollständiges Muster geschrieben werden. Geht man von Feld 681 oben links zu Feld 682 oben rechts über, beginnt das Muster mit einer zirkulär verschobenen Version der Folge 691. Zum Beispiel umfasst die Folge 692 eine zirkulär verschobene Version der Folge 691, in welcher die Symbole um eine Symbolposition oder Ziffer in der Folge zirkulär verschoben sind. Die Folge 692 wird bis zum Ende der Zeile 610 wiederholt (bis zur möglichen Anzahl von Symbolen). In diesem Fall ist es nur möglich, eine komplette Folge 692 einmal in Zeile 610 zu schreiben. Ein einzelnes Symbol ist in den letzten Raum in Zeile 610 geschrieben. Geht man zu Zeile 620 über, ist ein Muster geschrieben, das eine zyklisch verschobene Version der Zeile 610 umfasst (unter Verwendung einer zyklischen Verschiebung von zwei zyklischen Symbolindizes in dem Satz 601 von 5-ären zyklischen Symbolen). Eine ähnliche zyklische Verschiebung ist implementiert, wenn man von Zeile 620 zu Zeile 630 innerhalb des Felds 682 übergeht.
  • In Feld 683 unten links ist eine Folge 693 in die erste Zeile, Zeile 640, geschrieben, welche die Folge 695 umfasst, die um zwei Ziffern zirkulär verschoben ist. Die Folge 693 wird über die Zeile 640 bis zum Ende des Felds 683 wiederholt, d. h. 6 Räume. Zeile 650 in Feld 683 umfasst das Muster von Zeile 640, welches um zwei Symbolindizes zyklisch verschoben ist. Zeile 660 in Feld 683 umfasst das Muster von Zeile 650, welches um zwei Symbolindizes zyklisch verschoben ist. Die letzten beiden Räume werden jedoch von den bandexternen Markern belegt, die das Ende des Felds anzeigen. Obwohl die bandexternen Marker zwei schwarze Quadrate umfassen, können die Marker in einem anderen Beispiel Farben oder andere Marker umfassen, die verborgen sind, wie zum Beispiel unter Verwendung von Farben, die durch Infrarotlichteinstrahlung und Anti-Stokes-Aufwärtsumwandlung verdeutlicht werden.
  • Das letzte Feld 684 unten rechts beginnt mit Folge 694, welche die Symbole von Folge 693 umfasst, die um eine einzelne Ziffer zirkulär verschoben sind. Folge 694 umfasst ebenfalls Folge 692 aus Feld 682, die um zwei Ziffern zirkulär verschoben ist. Die Folge 694 wird über die Zeile 640 bis zum Ende des Felds 684 wiederholt. Zyklische Wertverschiebungen zwischen den Zeilen zwischen den Zeilen 640 und 650 und zwischen den Zeilen 650 und 660 umfassen zyklische Verschiebungen von zwei Symbolindizes in dem Satz 601 von 5-ären zyklischen Symbolen.
  • 6 veranschaulicht nur ein Beispiel dafür, wie ein Satz von Informationen oder eine Nachricht auf einer Oberfläche unter Verwendung von M-ären zyklischen Symbolen in Verbindung mit zirkulärer Codierung codiert werden kann, wobei Störungen in einem Muster in zwei Dimensionen verwendet werden können, um verschiedene Arten von zusätzlichen Informationen zu übermitteln. Störungen eines Musters können „verschachtelt” sein, wobei zum Beispiel ein Muster bestimmte Modifikationen einer Folge innerhalb eines Felds umfasst und wobei unterschiedliche Modifikationen des Musters zwischen den Feldern angewandt werden. In diesem Beispiel werden zyklische Verschiebungen von Zeile zu Zeile innerhalb jedes Felds verwendet. Bewegt man sich horizontal von einem Feld zu dem nächsten, wird eine zirkuläre Verschiebung von einer Ziffer implementiert. Bewegt man sich vertikal von einem Feld zu dem nächsten, wird eine andere zirkuläre Verschiebung implementiert, d. h. zwei Symbolpositionen oder Ziffern. Während eine Ausgangsnachricht durch eine Folge von M-ären zyklischen Symbolen dargestellt werden kann, die in einem Muster auf einer Oberfläche wiederholt wird, können der Wert der zyklischen Verschiebung und die Werte der zirkulären Verschiebungen in der horizontalen und vertikalen Richtung somit verwendet werden, um eine beliebige Art von zusätzlichen gewünschten Informationen zu übermitteln. Die zusätzlichen Informationen können einen Schlüssel zum Wiederherstellen der Ausgangsfolge vom M-ären zyklischen Symbolen von einer Standardform der Folge bereitstellen oder sie können eine beliebige andere Art von Informationen umfassen, wie zum Beispiel einen Authentifizierungs- und Sicherheitscode, einen Fehlerberichtigungscode, eine Versionsnummer eines Dokuments und so weiter.
  • Wie vorstehend erwähnt, kann ein Satz von M-ären zyklischen Symbolen Wertunterschiede in einem anderen zyklischen Raum umfassen. In einem Beispiel umfassen die Wertdifferenzen ganzzahlige Vielfache einer Differenz zwischen zwei benachbarten Symbolwerten innerhalb des zyklischen Ausgangsraums, von welchem der Satz von M-ären zyklischen Symbolen abgeleitet wird. In einem anderen Beispiel umfassen die Wertdifferenzen nicht ganzzahlige Vielfache einer Differenz zwischen zwei benachbarten Symbolwerten innerhalb des zyklischen Ausgangsraums, von welchem der Satz von M-ären zyklischen Symbolen abgeleitet wird. Dementsprechend, wenn eine zyklische Verschiebung zum Modifizieren eines Musters verwendet wird, wenn man von einem Feld zu dem nächsten übergeht, kann die zyklische Verschiebung eine zyklische Verschiebung umfassen, die ein ganzzahliges oder nicht ganzzahliges Vielfaches zwischen zwei benachbarten Symbolwerten aus einem gleichmäßig beabstandeten Satz innerhalb des zyklischen Ausgangsraums ist, von welchem der Satz von M-ären zyklischen Symbolen abgeleitet ist, und zwar in Abhängigkeit von den Anforderungen der Anwendung.
  • Zusätzliche Codierungsschemata, die als eine Alternative zu oder in Verbindung mit den vorstehend beschriebenen Techniken verwendet werden können, können eines oder mehrere der folgenden Beispiele beinhalten. In einem Beispiel, in welchem der Satz von M-ären zyklischen Symbolen keine Farbsymbole umfasst, können unterschiedliche Farben verwendet werden, um jede Zeile oder jedes Feld oder eine andere Einheit innerhalb einer Matrix darzustellen, kann partitioniert werden, derart, dass Gruppen von Zeilen (oder Feldern) einer bestimmten Farbe mit einer bestimmten semantischen Bedeutung assoziiert sind, wie zum Beispiel Phasenversatzinformationen versus Informationen die nicht mit der Phase verbunden sind. Auf diese Weise kann die Kombination von räumlicher und farbspektraler Trennung die Leistungsfähigkeit eines referenzfreien Decodierungsschemas, z. B. ohne bandexterne Phasenversatzanzeigen oder dergleichen, erhöhen. In einem anderen Beispiel können quasizufällige zyklische Verschiebungen auf aufeinanderfolgende Zeilen angewandt werden, um visuelle Artefakte, die mit einem gegebenen codierten Muster assoziiert sind, zu steuern oder absichtlich einzuführen. Anders ausgedrückt, codieren die zyklischen Verschiebungen nicht notwendigerweise Informationen, sondern können einen gewissen ästhetischen Zweck erfüllen. In noch einem anderen Beispiel können Störungen, die feldintern oder zwischen Feldern angewandt werden, in Gruppen partitioniert werden, derart, dass die Anordnung bestimmter Sätze von Störungen in Bezug auf andere Sätze von Störungen Informationen übermitteln.
  • In einem Beispiel kann die vorliegende Offenbarung ein System umfassen, das keine feste Anzahl von zyklischen Symbolen verwendet. Anders ausgedrückt, kann die Anzahl M der Symbole in dem Satz von M-ären zyklischen Symbolen variiert werden. Zum Beispiel können zu codierende Nachrichten Folgen variabler Länge im nativen Format umfassen. Diese Folgen können in eine Basis-M- und ferner in eine Folge von M-ären zyklischen Symbolen übersetzt werden. Diese Folgen weisen ebenfalls variierende Längen auf. Die Folgen bestimmter Längen können jedoch nicht besonders gut in ein Feld oder andere reguläre Einheit passen, in welchem/r die Folge in einem Muster auf der Oberfläche wiederholt werden kann. Zum Beispiel kann eine Folge mit sechs Ziffern nicht gut in eine Zeile mit acht Ziffern passen, da sie nur einmal vollständig wiederholt werden kann und nur zwei Ziffern wiederholt werden. Somit wählt die vorliegende Offenbarung in einem Beispiel eine Anzahl M aus und erzeugt eine Folge von Symbolen aus dem Satz von M-ären zyklischen Symbolen, wobei die Anzahl an Ziffern in der resultierenden Folge derart ist, dass die Länge einer Zeile oder die Anzahl von Ziffern in einer anderen regulären Einheit ein ganzzahliges Vielfaches der Länge der Folge ist. Dieser Ansatz weist den zusätzlichen Vorteil auf, dass die Anzahl von Berechnungen reduziert wird, die erforderlich ist, wenn eine Blindschätzungstechnik verwendet wird, um eine Ausgangsnachricht aus einer codierten Oberfläche wiederherzustellen. Wenn zum Beispiel ein M-ärer Satz von datentragenden Symbolen und ein N-ärer Satz von nicht datentragenden Symbolen vorhanden sind, kann der erste hinreichend bekannt sein und dekodiert werden, um Informationen zu finden, und der letztere kann verwendet werden, um allgemeine ästhetische Eigenschaften bereitzustellen, wenn korrekt in den M-ären Elementen gemischt.
  • Daher gestatten Beispiele der vorliegenden Offenbarung, dass eine Reihe von unterschiedlichen Codierungsschemata implementiert werden, wobei ein Satz von Informationen oder eine Nachricht, der/die in einen Satz von M-ären zyklischen Symbolen übersetzt wird, in einem sich wiederholenden Muster auf eine Oberfläche geschrieben und durch eine Bildaufnahmevorrichtung gelesen werden kann. Wenn ein ausreichend großer Teil der Oberfläche durch die Bildaufnahmevorrichtung aufgenommen wird, kann die Ausgangsnachricht wiederhergestellt werden. All diese Schemata weisen die Gemeinsamkeit auf, dass Störungen, z. B. Verschiebungen oder Modifikationen des Musters in eine oder mehrere Dimensionen, implementiert werden können, um die Wiederherstellung der Ausgangsnachricht zu unterstützen oder um zusätzliche oder ergänzende Informationen für eine Vielzahl von Zwecken zu übermitteln. Außerdem können die Störungen zyklische Verschiebungen in einem Satz von M-ären zyklischen Symbolen und/oder zirkuläre Verschiebungen von einer Reihe von Ziffern innerhalb einer Folge verwenden.
  • 7 veranschaulicht ein Ablaufdiagramm eines beispielhaften Verfahrens 700 zum Schreiben einer Vielzahl von M-ären zyklischen Symbolen auf eine Oberfläche. In einem Beispiel können die Schritte, Vorgänge oder Funktionen (z. B. die „Blöcke”) des Verfahrens 700 durch eine Rechenvorrichtung mit einem Prozessor, einem Speicher und Eingabe-/Ausgabevorrichtungen, wie in 9 und nachfolgend besprochen, implementiert werden, die spezifisch programmiert ist, um die Schritte, Funktionen und/oder Vorgänge des Verfahrens durchzuführen. Zur Veranschaulichung wird das Verfahren 700 nun in Bezug auf ein Beispiel beschrieben, wobei die Blöcke des Verfahrens durch einen Prozessor, wie zum Beispiel P 902 in 9, durchgeführt werden. Es ist anzumerken, dass, wenn Blöcke des Verfahrens 700 durch einen Prozessor durchgeführt werden, der Prozessor die Vorgänge direkt durchführen kann oder Anweisungen senden kann, um eine oder mehrere andere Vorrichtungen zu veranlassen, die Funktionen durchzuführen, wie zum Beispiel durch Senden von Anweisungen an einen Drucker oder eine andere Vorrichtung zum Schreiben von Symbolen auf eine Oberfläche und so weiter.
  • Bei Block 705 beginnt das Verfahren 700. Bei Block 710 empfängt der Prozessor eine erste Vielzahl von Symbolen, die aus einem ersten Satz von Symbolen ausgewählt ist. Zum Beispiel kann die erste Vielzahl von Symbolen eine binäre Sequenz umfassen, die eine Nachricht oder einen Satz von Informationen, wie zum Beispiel ein Skript, einen Codeausschnitt, Anweisungen oder eine beliebige Art von strukturierten Daten, darstellt. In einem anderen Beispiel kann die erste Vielzahl von Symbolen eine Basis-M-Folge umfassen, die einen Satz von Informationen darstellt.
  • Bei Block 720 übersetzt der Prozessor die erste Vielzahl von Symbolen in eine zweite Vielzahl von Symbolen, die aus einem Satz von M-ären zyklischen Symbolen ausgewählt ist. Wenn zum Beispiel die erste Vielzahl von Symbolen eine binäre Folge umfasst, die eine Nachricht darstellt, kann die binäre Folge in eine Basis-M-Folge übersetzt werden, welche die Nachricht darstellt. Die Basis-M-Folge kann dann weiter in eine Folge übersetzt werden, die Symbole umfasst, die aus einem Satz von M-ären zyklischen Symbolen ausgewählt sind. In einem anderen Beispiel kann die erste Vielzahl von Symbolen bereits eine Basis-M-Folge umfassen. Somit kann Block 720 umfassen, dass der Prozessor die Basis-M-Folge in einen Satz von M-ären zyklischen Symbolen übersetzt, und zwar ohne die vorherigen Vorgänge zum Übersetzen in eine Basis-M-Folge. In einem Beispiel kann das Übersetzen das Konsultieren einer Tabelle umfassen, um die geeigneten M-ären zyklischen Symbole zum Darstellen der Basis-M-Folge zu bestimmen. Zum Beispiel kann eine der Zeilen der Tabelle 300 aus 3 verwendet werden, um das M-äre Symbol zu bestimmen, welches dem Basis-M-Wert jeder Ziffer innerhalb der Basis-M-Folge entspricht. In verschiedenen Beispielen kann der Satz von M-ären zyklischen Symbolen somit Symbole umfassen, die dargestellt werden durch: Farben, Größen eines Icons, Positionen eines Icons, Anstiege oder Winkel einer Linie, alphanumerische Glyphen und so weiter.
  • In einem Beispiel können die M-ären zyklischen Symbole Wertunterschiede in einem anderen zyklischen Raum umfassen. Zum Beispiel können die M-ären zyklischen Symbole aus dem Satz 450 von 6-ären zyklischen Symbolen in 4 ausgewählt werden, wobei der Satz 450 von 6-ären zyklischen Symbolen Indexverschiebungen oder Winkelverschiebungen, allgemein „Wertverschiebungen” in dem Satz 400 von 8-ären zyklischen Symbolen darstellt. In einem Beispiel können die M-ären zyklischen Symbole Wertverschiebungen umfassen, die rationalen Fraktionen der Größe des zyklischen Raums entsprechen. Zum Beispiel kann ein Satz von 5-ären zyklischen Symbolen Winkelverschiebungen von –4π/5 Radiant, –2π/5 Radiant, 0 Radiant, +2π/5 Radiant und +4π/5 Radiant innerhalb eines zyklischen Raums umfassen, was fünf gleichmäßig beabstandete Symbole ergibt. Derselbe Satz von zyklischen Symbolen kann ebenfalls durch Indexverschiebungen von –2, –1, 0, +1 und +2 innerhalb des zyklischen Raums dargestellt werden, der durch dieselben fünf gleichmäßig beabstandeten Symbolwerte definiert ist. In einem anderen Beispiel können die M-ären zyklischen Symbole Wertverschiebungen umfassen, die keinen rationalen Fraktionen der Größe des zyklischen Raums entsprechen. Zum Beispiel kann ein Satz von 5-ären zyklischen Symbolen Winkelverschiebungen innerhalb eines kontinuierlichen zyklischen Raums umfassen, wobei der zyklische Raum 2π Radiant beträgt und die Winkelverschiebungen die folgenden sind: 4 Radiant, –2 Radiant, 0 Radiant, +2 Radiant bzw. +4 Radiant.
  • In jedem Beispiel, in dem die M-ären zyklischen Symbole Wertverschiebungen in einem anderen zyklischen Raum umfassen, kann Block 720 umfassen, dass der Prozessor eine Ziffer-Ziffer-Korrelation der Wertdifferenzen des Satzes von M-ären zyklischen Symbolen mit entsprechenden Symbolen innerhalb des anderen zyklischen Raums durchführt. Auf diese Weise können Wertdifferenzen zwischen ausgewählten Symbolen für jede nachfolgende Ziffer die Basis-M-Folge in dem Satz von M-ären zyklischen Symbolen codieren. In verschiedenen Beispielen kann der Satz von M-ären zyklischen Symbolen somit Folgendes umfassen: Farbdifferenzen, Größendifferenzen eines Icons, Positionsdifferenzen eines Icons, Differenzen der Anstiege oder Winkel einer Linie und so weiter.
  • In einem Beispiel umfasst Block 720 ferner, dass der Prozessor die zweite Vielzahl von Symbolen in eine zirkulär codierte Standardform übersetzt. Zum Beispiel kann die zweite Vielzahl von Symbolen in einer Folge angeordnet sein, wobei Ziffern der Folge zirkulär verschoben sind, um eine zirkulär verschobene Form mit einem geringsten Wert zu bestimmen. Die Anzahl der Ziffern, die verschoben werden, um die Standardform zu erhalten, umfasst die Phase der Ausgangsfolge. In einem Beispiel wird die zirkulär codierte Standardform in Verbindung mit einem Muster verwendet, welches bei Block 730 auf die Oberfläche geschrieben wird.
  • Bei Block 730 schreibt der Prozessor die zweite Vielzahl von Symbolen auf eine Oberfläche. Zum Beispiel kann Block 730 das Drucken der zweiten Vielzahl von Symbolen auf eine Oberfläche, wie zum Beispiel ein Blatt Papier, umfassen, und zwar unter Verwendung eines Tintenstrahldruckers oder einer anderen Art von tintenbasierter Druckvorrichtung, wobei die zweite Vielzahl von Symbolen lithographisch auf eine Oberfläche gedruckt wird, die Symbole optisch auf eine Oberfläche geschrieben werden, wie zum Beispiel unter Verwendung einer Laserdiode eines Laufwerks für lesbare/beschreibbare Compact Disks (CD-RW) und so weiter. Somit kann der Prozessor bei Block 730 Anweisungen an eine oder mehrere andere Vorrichtungen oder an eine oder mehrere andere Komponenten einer Rechenvorrichtung senden, in welcher sich der Prozessor befindet, um das physische Schreiben der Vielzahl von Symbolen auf die Oberfläche abzuschließen.
  • In einem Beispiel umfasst das Schreiben Ausbilden einer zweidimensionalen Matrix von Feldern auf der Oberfläche. In einem Beispiel kann jedes Feld ein zweidimensionales Muster von Symbolen umfassen, wobei die zweite Vielzahl von Symbolen in einer Anordnung geschrieben ist, die das zweidimensionale Muster von Symbolen in jedem Feld ausbildet. Zum Beispiel kann jedes Feld ein Muster umfassen, wie zum Beispiel eines der Muster, die für jedes der entsprechenden Felder 681, 682, 683 und 684 in 6 veranschaulicht sind. In einem Beispiel kann das zweidimensionale Muster von Symbolen innerhalb jedes Felds zyklische Verschiebungen der zweiten Vielzahl von Symbolen von Zeile zu Zeile, von Spalte zu Spalte, zwischen nicht benachbarten Zeilen oder Spalten, nicht gleichmäßig verteilt oder nicht trennbar über alle Felder und so weiter umfassen.
  • In einem Beispiel umfasst das zweidimensionale Muster von Symbolen für mindestens ein Feld eine modifizierte Version des zweidimensionalen Musters von Symbolen in einem anderen Feld, z. B. eine Modifikation des Musters zwischen den Feldern. Zum Beispiel kann ein erstes Feld, wie zum Beispiel Feld 681 in 6 ein erstes zweidimensionales Muster von Symbolen auf der Grundlage der zweiten Vielzahl von Symbolen umfassen. Ein zweites Feld, wie zum Beispiel Feld 682, kann dann ein zweites zweidimensionales Muster von Symbolen umfassen, welches eine zirkulär verschobene Version des Musters in Feld 681 umfasst (z. B. unter Verwendung einer zirkulären Verschiebung von zwei Ziffern). Unterschiedliche Modifikationen eines Musters können von Feld zu Feld in der horizontalen und vertikalen Richtung angewandt werden. In einem Beispiel können die Modifikationen zyklische Verschiebungen in dem Muster, zirkuläre Verschiebungen in dem Muster oder eine Kombination von zyklischen und zirkulären Verschiebungen umfassen.
  • In einem Beispiel wird eine systematische Modifikation auf das zweidimensionale Muster von Symbolen angewandt, wenn man sich von Feld zu Feld bewegt; wobei die Modifikationen gemäß einer vordefinierten Regel ausgewählt werden, was zu einem regulären Satz von Modifikationen fuhrt. In einem weiteren Beispiel müssen die Modifikationen nicht gemäß einem vordefinierten Muster angewandt werden. In diesem Fall können die Art der Modifikation zwischen den Feldern und der Wert der Modifikation verwendet werden, um eine gewisse Art von Informationen zu codieren. Zum Beispiel kann die Modifikation zwischen den Feldern ergänzende Informationen codieren, die verwendet werden können, um bei der Extraktion der zweiten Vielzahl von Symbolen zu helfen, wenn die Oberfläche durch eine Bildaufnahmevorrichtung gelesen wird. Die Modifikation zwischen den Feldern kann ebenfalls andere Arten von Informationen codieren, wie zum Beispiel Sicherheits- und Authentifizierungsinformationen, einen Fehlerberichtigungscode, Versionsinformationen und so weiter. Da unterschiedliche Modifikationen zwischen den Feldern angewandt werden können, wenn man sich in zwei unterschiedlichen Dimensionen der Oberfläche bewegt, können die unterschiedlichen Modifikationen zwischen den Feldern unterschiedliche Arten von Informationen codieren.
  • Da die Modifikationen des Musters zwischen den Feldern zyklische Verschiebungen umfassen können, können die Modifikationen die Form einer zyklischen Wertverschiebung der Werte der zweiten Vielzahl von Symbolen in dem Muster annehmen. Da der Satz von M-ären zyklischen Symbolen Wertdifferenzen in einem anderen zyklischen Raum umfassen kann, können zyklische Verschiebungen ebenfalls ein ganzzahliges Vielfaches einer Differenz zwischen zwei Werten in dem Satz von M-ären zyklischen Symbolen umfassen. Alternativ können zyklische Verschiebungen eine Winkelverschiebung um ein nicht ganzzahliges Vielfaches einer Differenz zwischen zwei Werten in dem Satz von M-ären zyklischen Symbolen umfassen.
  • Es versteht sich, dass das Beispiel aus 7 nur zur Veranschaulichung bereitgestellt ist, und dass verschiedene Modifikationen des Verfahrens 700 gemäß der vorliegenden Offenbarung entwickelt werden können. Zum Beispiel ist die vorliegende Offenbarung beim Schreiben der zweiten Vielzahl von Symbolen auf die Oberfläche bei Block 730 nicht auf die Verwendung einer beliebigen bestimmten Art von Modifikationen des Musters zwischen den Feldern beschränkt. Nach Block 730 geht das Verfahren 700 zu Block 795 über, wo das Verfahren endet.
  • 8 veranschaulicht ein Ablaufdiagramm eines beispielhaften Verfahrens 800 zum Aufnehmen einer Vielzahl von M-ären zyklischen Symbolen von einer Oberfläche. In einem Beispiel können die Schritte, Vorgänge oder Funktionen (z. B. die „Blöcke”) des Verfahrens 800 durch eine Rechenvorrichtung mit einem Prozessor, einem Speicher und Eingabe-/Ausgabevorrichtungen, wie in 9 und nachfolgend besprochen, implementiert werden, der spezifisch programmiert ist, um die Schritte, Funktionen und/oder Vorgänge des Verfahrens durchzuführen. Zur Veranschaulichung wird das Verfahren 800 nun in Bezug auf ein Beispiel beschrieben, wobei die Blöcke des Verfahrens durch einen Prozessor, wie zum Beispiel P 902 in 9, durchgeführt werden. Es ist anzumerken, dass, wenn Blöcke des Verfahrens 800 durch einen Prozessor durchgeführt werden, der Prozessor die Vorgänge direkt durchführen kann oder Anweisungen senden kann, um eine oder mehrere andere Vorrichtungen zu veranlassen, die Funktion durchzuführen, wie zum Beispiel durch Senden von Anweisungen an eine Digitalkamera oder eine andere Bildaufnahmevorrichtung zum Aufnehmen eines Bildes einer Oberfläche und so weiter.
  • Bei Block 805 beginnt das Verfahren 800. Bei Block 810 nimmt der Prozessor ein Bild von mindestens einem Teil einer Oberfläche auf. In einem Beispiel beinhaltet das Bild des mindestens einen Teils der Oberfläche mindestens einen Teil einer zweidimensionalen Matrix von Feldern auf der Oberfläche. In einem Beispiel kann jedes Feld ein zweidimensionales Muster von Symbolen umfassen, wobei eine erste Vielzahl von Symbolen in einer Anordnung geschrieben ist, die das zweidimensionale Muster von Symbolen in jedem Feld ausbildet. Zum Beispiel kann jedes Feld ein Muster umfassen, wie zum Beispiel eines der Muster, die für jedes der entsprechenden Felder 681, 682, 683 und 684 in 6 veranschaulicht sind. In einem Beispiel umfasst die erste Vielzahl von Symbolen eine Folge von Symbolen, die aus einem Satz von M-ären zyklischen Symbolen ausgewählt sind. In einem Beispiel kann Block 810 umfassen, dass der Prozessor Anweisungen an eine andere Komponente sendet, wie zum Beispiel eine Digitalkamera oder eine andere Bildaufnahmevorrichtung, um das Bild von mindestens einem Teil der Oberfläche aufzunehmen. Daher kann Block 810 ferner Zurückempfangen einer Kopie des Bildes von der anderen Komponente umfassen.
  • In einem Beispiel umfasst das zweidimensionale Muster von Symbolen mindestens eine systematische Modifikation, wenn man sich von Feld zu Feld bewegt; wobei die Modifikationen gemäß einer vordefinierten Regel ausgewählt werden, was zu einem regulären Satz von Modifikationen führt. In einem weiteren Beispiel müssen die Modifikationen nicht gemäß einem vordefinierten Muster angewandt werden. Anders ausgedrückt, können die Art der Modifikation zwischen den Feldern und der Wert der Modifikation verwendet werden, um eine gewisse Art von Informationen zu codieren. Zum Beispiel kann die Modifikation zwischen den Feldern ergänzende Informationen codieren, die verwendet werden können, um bei der Extraktion der zweiten Vielzahl von Symbolen bei Block 830 zu helfen. Die Modifikation zwischen den Feldern kann ebenfalls andere Arten von Informationen codieren, wie zum Beispiel Sicherheits- und Authentifizierungsinformationen, einen Fehlerberichtigungscode, Versionsinformationen und so weiter. Der Prozessor kann unterschiedliche Modifikationen zwischen den Feldern in zwei unterschiedlichen Dimensionen der Oberfläche anwenden, wobei die unterschiedlichen Modifikationen zwischen den Feldern unterschiedliche Arten von Informationen codieren können.
  • Bei Block 820 detektiert der Prozessor die erste Vielzahl von Symbolen aus dem Bild. Wie vorstehend erwähnt, kann die erste Vielzahl von Symbolen Symbole umfassen, die aus einem Satz von M-ären zyklischen Symbolen ausgewählt sind. Außerdem kann das Bild eine Reihe von Feldern beinhalten, wo mindestens eine Variation oder Modifikation eines zweidimensionalen Musters von Symbolen in jedem Feld zwischen den Feldern vorhanden ist. In einem Beispiel können die Modifikationen zyklische Verschiebungen in dem Muster, zirkuläre Verschiebungen in dem Muster oder eine Kombination von zyklischen und zirkulären Verschiebungen umfassen. Da die Modifikationen des Musters zwischen den Feldern zyklische Verschiebungen umfassen können, können die Modifikationen die Form einer zyklischen Verschiebung der Werte der ersten Vielzahl von Symbolen in dem Muster annehmen. Da der Satz von M-ären zyklischen Symbolen Wertdifferenzen in einem anderen zyklischen Raum umfassen kann, können zyklische Verschiebungen ebenfalls ein ganzzahliges Vielfaches einer Differenz zwischen zwei Werten in dem Satz von M-ären zyklischen Symbolen umfassen. Alternativ können zyklische Verschiebungen eine Winkelverschiebung um ein nicht ganzzahliges Vielfaches einer Differenz zwischen zwei Werten in dem Satz von M-ären zyklischen Symbolen umfassen.
  • Da das Bild eine Vielzahl von Feldern von einer zweidimensionalen Matrix beinhalten kann und da jedes Feld modifizierte Versionen eines Musters aufweisen kann, das auf der ersten Vielzahl von Symbolen beruht, kann es ohnehin unklar sein, welche Felder und welche Teile des Musters innerhalb jedes Felds eine Ausgangsfolge umfassen können. In einem Beispiel können spezielle Marker, wie zum Beispiel schwarze Punkte, Icons oder Bilder, die nicht Teil des Satzes von M-ären zyklischen Symbolen sind, eine unterschiedliche Farbe (wobei Farbe nicht das definierende Merkmal des Satzes von M-ären zyklischen Symbolen ist) und dergleichen, verwendet werden, um zu skizzieren, wo die Ausgangsfolge wiederholt werden kann. In einem anderen Beispiel kann die erste Vielzahl von Symbolen jedoch einen Satz von Symbolen umfassen, bei dem es sich um eine zirkulär verschobene Standardform einer M-ären Ausgangsfolge handelt. Somit können die Muster innerhalb der Felder auf der Standardform der M-ären Ausgangsfolge beruhen. Obwohl es möglich ist, dass die Ausgangsnachricht irgendwo innerhalb von mindestens einem der Felder innerhalb des Bildes wiederholt wird, kann ihre Position unklar sein, wenn sie nicht durch spezielle Marker angezeigt wird.
  • In einem Beispiel kann der Prozessor jedoch eine Blindschätzungstechnik durchführen, um die Standardform der Folge zu bestimmen, wenn eine ausreichend große Anzahl an Wiederholungen des Musters in dem Bild aufgenommen ist. Wenn zum Beispiel bekannt ist, dass die Modifikation des Musters zwischen den Feldern, wenn man sich von links nach rechts bewegt, eine Art von zyklischer Verschiebung in dem Muster ist, existiert eine begrenzte Anzahl an möglichen zyklischen Verschiebungen, die getestet werden können. In einem Satz von 5-ären zyklischen Symbolen können zum Beispiel fünf mögliche zyklische Verschiebungen von einem Muster zu dem nächsten existieren. Somit kann das Muster in dem ersten Feld als ein Anfangsparameter genommen werden. Das Muster kann dann um 0 Werte oder Symbolindizes innerhalb der Sequenz des Satzes von 5-ären zyklischen Symbolen zyklisch verschoben werden. Als Nächstes kann das Muster um einen Werte oder einen Symbolindex innerhalb der Sequenz des Satzes von 5-ären zyklischen Symbolen zyklisch verschoben werden und so weiter. Jede zyklisch verschobene Version des Ausgangsmusters kann dann mit dem Muster in dem zweiten Feld verglichen werden. Gibt es eine Übereinstimmung, kann der Prozessor dann bestimmen, dass diese zyklische Verschiebung die Modifikation des Musters ist, wenn man sich von dem ersten Feld zu dem zweiten Feld bewegt.
  • Der Prozessor kann eine ähnliche Technik zum Schätzen einer zirkulären Verschiebung zwischen den Feldern verwenden, wenn die Modifikation des Musters eine gewisse Form einer zirkulären Verschiebung umfasst. Wenn zum Beispiel im Voraus bekannt ist, dass die Länge einer Folge, welche die erste Vielzahl von Symbolen umfasst, eine bestimmte Anzahl von Ziffern „D” beträgt, können maximal D – 1 zirkuläre Verschiebungen getestet werden, um die zirkuläre Verschiebung zwischen den Feldern zu bestimmen. Das Verfahren kann erweitert werden, um zusätzliche Modifikationen von Feld zu Feld zu bewerten, z. B. wenn man sich entlang einer Zeile von Feldern in einer Richtung von links nach rechts über die Oberfläche bewegt. Somit kann zum Beispiel bestimmt werden, dass nachfolgende Felder zirkulär verschobene und/oder zyklisch verschobene Versionen desselben Musters beinhalten. Es ist anzumerken, dass Felder ebenfalls feldinterne Modifikationen eines Musters beinhalten können. Zum Beispiel können zirkuläre Verschiebungen oder zyklische Verschiebungen von Zeile zu Zeile oder von Spalte zu Spalte in einem Muster innerhalb eines einzelnen Felds vorhanden sein. Somit kann ein ähnliches Blindschätzungsverfahren zum Bestimmen von Mustern innerhalb eines Felds verwendet werden.
  • Außerdem kann der Prozessor ebenfalls eine Blindschätzungstechnik zum Bestimmen der Grenzen von einem Feld zu dem nächsten in der Abwesenheit spezieller Marker zum Skizzieren derartiger Grenzen durchführen. Wenn zum Beispiel bekannt ist, dass eine Matrix Felder einer bestimmten Größe beinhaltet, z. B. 6 × 3 Felder, kann die Blindschätzungstechnik aufeinanderfolgende in Frage kommende Fenster von 6 × 3-Symbolpositionen nehmen. Muster in dem 6 × 3-Fenster neben dem in Frage kommenden Fenster können dann mit dem Muster in dem in Frage kommenden Fenster verglichen werden, um zu bestimmen, ob die Muster eine gewisse definierte Beziehung aufweisen, z. B. sind die Muster identisch, umfassen die Muster zirkuläre oder zyklisch verschobene Versionen und so weiter. Wenn die Muster eine gewisse definierte Beziehung aufweisen, dann wird von dem in Frage kommenden Fenster bestimmt, dass es die Grenzen eines Felds definiert. Andernfalls kann das in Frage kommende Fenster um eine Symbolposition in einer der zwei Dimensionen verschoben werden und das Verfahren wird wiederholt. Bei bestimmten Störungen zwischen den Feldern kann es unnötig sein, Feldgrenzen aufzustellen, da jede fortlaufende Auswahl von Symbolen der Größe eines Felds über Verschiebungen des zyklischen Werts oder der zirkulären Position in eine Standardform umgewandelt werden kann.
  • In dem Fall, in welchem zirkulär verschobene Versionen eines Musters von einem Feld zum dem nächsten oder innerhalb eines einzelnen Felds vorhanden sind, muss die Phase der Ausgangsfolge, von welcher das Muster abgeleitet ist, bekannt sein, um die Ausgangsfolge bei Block 830 wiederherzustellen. In einem Beispiel können diese Informationen bandextern bereitgestellt sein, z. B. unter Verwendung von einem oder mehreren speziellen Markern, die kein Teil des Satzes von M-ären zyklischen Symbolen sind. In einem Beispiel können diese bandexternen Informationen somit bei Block 810 aufgenommen und bei Block 820 detektiert werden. In einem anderen Beispiel kann jedoch eine der Modifikationen des Musters, entweder zwischen den Feldern oder feldintern, verwendet werden, um die Phasenverschiebung zu übermitteln, die erforderlich ist, um die Ausgangsform der Folge aus den zirkulär verschobenen Versionen der Folge wiederherzustellen. Wenn sie nicht zum Übermitteln der zirkulären Phasenverschiebungsinformationen verwendet wird, kann eine beliebige oder mehrere Modifikationen des Musters, entweder zwischen den Feldern oder feldintern, verwendet werden, um andere Arten von Informationen zu übermitteln, wie zum Beispiel Authentifizierungs- und Sicherheitscodeinformationen, einen Fehlerberichtigungscode, eine Versionsnummer eines Dokuments und so weiter. Außerdem können diese Modifikationen und die Werte derartiger Modifikationen alle als Teil der Vorgänge von Block 820 detektiert werden. In einem anderen Beispiel können die bandexternen Symbole durch einen Teilsatz von Symbolen des M-ären Satzes definiert werden.
  • Bei Block 830 übersetzt der Prozessor die erste Vielzahl von Symbolen in eine zweite Vielzahl von Symbolen, die aus einem Satz von Symbolen ausgewählt ist. In einem Beispiel umfasst Block 830 das Übersetzen einer Standardform einer Folge von M-ären Symbolen in eine Ausgangsfolge, und zwar unter Verwendung der bei Block 820 bestimmten Phasenversatzinformationen. In einem Beispiel umfasst die zweite Vielzahl von Symbolen numerische Basis-M-Symbole. Somit kann die erste Vielzahl von Symbolen von einem Satz von M-ären zyklischen Symbolen in eine numerische Basis-M-Darstellung übersetzt werden. In einem Beispiel kann die numerische Basis-M-Darstellung ferner in einen Symbolsatz einer anderen Basis übersetzt werden, wie zum Beispiel einen Basis-2-Symbolsatz. Anders ausgedrückt kann die zweite Vielzahl von Symbolen binäre Einsen und Nullen umfassen. In noch einem anderen Beispiel kann die zweite Vielzahl von Symbolen Zeichen des American Standard Code for Information Interchange (Amerikanischer Standard-Code für den Informationsaustausch, ASCII) umfassen. Zum Beispiel kann die erste Vielzahl von Symbolen, die einen Satz von M-ären zyklischen Symbolen umfasst, mehreren Übersetzungsvorgängen unterzogen werden, z. B. von M-ären zyklischen Symbolen in numerische Basis-M, von Basis-M in Basis-2 und von Basis-2 in Satz von ASCII-Zeichen. In einem Beispiel, in welchem die zweite Vielzahl von Symbolen ASCII-Zeichen umfasst, kann die zweite Vielzahl von Symbolen strukturierte Daten umfassen, wie zum Beispiel ein computerlesbares Skript, einen Codeausschnitt oder verschiedene Parameter, die verwendet werden können, um eine Rechenvorrichtung zu veranlassen, eine oder mehrere Aufgaben durchzuführen.
  • Bei Block 840 führt der Prozessor mindestens eine Aufgabe als Reaktion auf die erste Vielzahl von Symbolen durch. Wenn zum Beispiel die zweite Vielzahl von Symbolen ASCII-Zeichen umfasst, kann die zweite Vielzahl von Symbolen eine beliebige Art von strukturierten Daten umfassen, wie zum Beispiel ein computerlesbares Skript, einen Codeausschnitt oder verschiedene Parameter, die verwendet werden können, um eine Rechenvorrichtung zu veranlassen, eine oder mehrere Aufgaben durchzuführen. In einem anderen Beispiel kann die zweite Vielzahl von Symbolen einen Authentifizierungscode umfassen, der den Prozessor oder eine andere Rechenvorrichtung veranlassen kann, Zugriff auf ein Merkmal zu gewähren oder zu verweigern, und zwar in Abhängigkeit von der zweiten Vielzahl von Symbolen. In noch einem anderen Beispiel kann die zweite Vielzahl von Symbolen eine Internet-Protocol(IP)-Adresse, einen Uniform Resource Locator (URL) oder dergleichen umfassen. Somit kann der Prozessor in einem Beispiel Zugriff auf mindestens eine Ressource über ein Netzwerk ersuchen, das auf einer Kennung beruht, die in der zweiten Vielzahl von Symbolen enthalten ist. Die vorstehenden Ausführungen sind nur einige Beispiele für die Arten von Aufgaben, die gemäß dem Verfahren 800 implementiert werden können. Somit kann Block 840 in anderen, weiteren und unterschiedlichen Beispielen eine Reihe von zusätzlichen Aufgaben umfassen, die in Abhängigkeit von dem bestimmten System und dem Zweck der Codierung der zweiten Vielzahl von Symbolen auf einer Oberfläche unter Verwendung der ersten Vielzahl von Symbolen, die aus einem Satz von M-ären zyklischen Symbolen ausgewählt ist, durchgeführt werden können. Nach Block 840 geht das Verfahren 800 zu Block 895 über, wo das Verfahren endet.
  • Es ist anzumerken, dass ein/e oder mehrere Blöcke, Funktionen oder Vorgänge des Verfahrens 700 oder des Verfahrens 800, die vorstehend beschrieben sind, je nach Bedarf für eine bestimmte Anwendung einen Schritt des Speicherns, Anzeigens und/oder Ausgebens beinhalten können, obwohl dies nicht ausdrücklich spezifiziert wurde. Anders ausgedrückt, können beliebige in den Verfahren besprochene Daten, Aufzeichnungen, Felder und/oder Zwischenergebnisse je nach Bedarf für eine bestimmte Anwendung gespeichert, angezeigt oder an eine andere Verfahren ausgegeben werden. Darüber hinaus erfordern Schritte, Funktionen oder Vorgänge in den 7 und 8, die einen Bestimmungsvorgang aufzählen oder eine Entscheidung umfassen, nicht notwendigerweise, dass beide Abzweigungen des Bestimmungsvorgangs umgesetzt werden. Anders ausgedrückt, kann eine der Abzweigungen des Bestimmungsvorgangs als ein optionaler Schritt betrachtet werden.
  • 9 bildet ein Blockdiagramm auf hoher Ebene einer Rechenvorrichtung ab, die zur Verwendung bei der Durchführung der hier beschriebenen Funktionen geeignet ist. Wie in 9 abgebildet, umfasst das System 900 ein oder mehrere Hardwareprozessorelemente 902 (z. B. eine zentrale Verarbeitungseinheit (CPU), einen Mikroprozessor oder einen Mehrkernprozessor), einen Speicher 904 (z. B. Direktzugriffsspeicher (RAM) und/oder Nur-Lese-Speicher (ROM)), ein Modul 905 zum Schreiben einer Vielzahl von M-ären zyklischen Symbolen auf eine Oberfläche oder zum Aufnehmen einer Vielzahl von M-ären zyklischen Symbolen von einer Oberfläche und verschiedene Eingabe-/Ausgabevorrichtungen 506 (z. B. Speichervorrichtungen, unter anderem einschließlich eines Bandlaufwerks, eines Diskettenlaufwerks, eines Festplattenlaufwerks oder eines Compact-Disk-Laufwerks, eines Empfängers, eines Senders, eines Lautsprechers, einer Anzeige, eines Sprachgenerators, eines Ausgabeanschlusses, eines Eingabeanschlusses und einer Benutzereingabevorrichtung (wie zum Beispiel einer Tastatur, eines Keypads, einer Maus, eines Mikrofons und dergleichen)). Obwohl nur ein Prozessorelement gezeigt ist, ist anzumerken, dass die Rechenvorrichtung eine Vielzahl von Prozessorelementen verwenden kann. Darüber hinaus, obwohl nur eine Rechenvorrichtung in der Figur gezeigt ist, wenn das Verfahren 700 oder das Verfahren 800, die vorstehend besprochen wurden, auf eine verteilte oder parallele Weise für ein bestimmtes veranschaulichendes Beispiel implementiert wird, d. h., die Blöcke des Verfahrens oder das gesamte Verfahren wird/werden über mehrere oder parallele Rechenvorrichtungen implementiert, dann soll die Rechenvorrichtung dieser Figur jede dieser mehreren Rechenvorrichtungen darstellen.
  • Darüber hinaus können ein oder mehrere Hardwareprozessoren beim Unterstützen einer virtualisierten oder geteilten Rechenumgebung verwendet werden. Die virtualisierte Rechenumgebung kann eine oder mehrere virtuelle Maschinen unterstützen, die Computer, Server oder andere Rechenvorrichtungen darstellen. In derartig virtualisierten virtuellen Maschinen können Hardwarekomponenten, wie zum Beispiel Hardwareprozessoren und computerlesbare Speichervorrichtungen, virtualisiert oder logisch dargestellt werden.
  • Der eine oder die mehreren Hardwareprozessoren 902 können ebenfalls konfiguriert oder programmiert sein, um andere Vorrichtung zu veranlassen, einen oder mehrere Vorgänge durchzuführen, wie vorstehend besprochen. Anders ausgedrückt, können der eine oder die mehreren Hardwareprozessoren 902 die Funktion einer zentralen Steuerung erfüllen, die andere Vorrichtung anweist, den einen oder die mehreren Vorgänge durchzuführen, wie oben beschrieben.
  • Es ist anzumerken, dass die vorliegende Offenbarung in Software und/oder einer Kombination von Software und Hardware implementiert werden kann, z. B. unter Verwendung von anwendungsspezifischen integrierten Schaltungen (ASIC), einem programmierbaren Gate-Array (PGA), einschließlich Feld-PGA, oder einer Zustandsmaschine, eingesetzt in einer Hardwarevorrichtung, einer Rechenvorrichtung oder beliebigen anderen Hardwareäquivalenten, z. B. können computerlesbare Anweisungen, welche die vorstehend besprochenen Verfahren betreffen, zum Konfigurieren eines Hardwareprozessors verwendet werden, um die Schritte, Funktionen und/oder Vorgänge (die „Blöcke”) der vorstehend offenbarten Verfahrenen durchzuführen. In einem Beispiel können Anweisungen und Daten für das vorliegende Modul oder das vorliegende Verfahren 905 zum Schreiben einer Vielzahl von M-ären zyklischen Symbolen auf eine Oberfläche oder zum Aufnehmen einer Vielzahl von M-ären zyklischen Symbolen von einer Oberfläche (z. B. ein Softwareprogramm, das computerausführbare Anweisungen umfasst) in einen Speicher 904 geladen und durch das Hardwareprozessorelement 902 ausgeführt werden, um die Schritte, Funktionen oder Vorgänge, wie oben beschrieben, in Verbindung mit dem Verfahren 700 bzw. dem Verfahren 800 zu implementieren. Wenn darüber hinaus ein Hardwareprozessor Anweisungen zum Durchführen von „Vorgängen” ausführt, könnte dies beinhalten, dass der Hardwareprozessor die Vorgänge direkt durchführt und/oder einer anderen Hardwarevorrichtung oder -komponente (z. B. ein Co-Prozessor und dergleichen) ermöglicht, diese anweist oder mit ihr zusammenarbeitet, (um) die Vorgänge durchzuführen.
  • Der Prozessor, der die computerlesbaren oder Softwareanweisungen in Bezug auf das vorstehend beschriebene Verfahren ausführt, kann als ein programmierter Prozessor oder ein spezialisierter Prozessor bezeichnet werden. Daher kann das Modul 905 zum Schreiben einer Vielzahl von M-ären zyklischen Symbolen auf eine Oberfläche oder zum Aufnehmen einer Vielzahl von M-ären zyklischen Symbolen von einer Oberfläche (einschließlich assoziierter Datenstrukturen) der vorliegenden Offenbarung auf einer/m materiellen oder physischen (weitgehend dauerhaften) computerlesbaren Speichervorrichtung oder -medium gespeichert werden, z. B. flüchtiger Speicher, nichtflüchtiger Speicher, ROM-Speicher, RAM-Speicher, Magnet- oder optisches Laufwerk, Vorrichtung oder Diskette und dergleichen. Ferner umfasst eine „materielle” computerlesbare Speichervorrichtung eine physische Vorrichtung, eine Hardwarevorrichtung oder eine Vorrichtung, die durch Berührungen wahrgenommen werden kann. Insbesondere kann die computerlesbare Speichervorrichtung beliebige physische Vorrichtungen umfassen, welche die Fähigkeit bereitstellen, Informationen, wie zum Beispiel Daten und/oder Anweisungen, zu speichern, auf die ein Prozessor oder eine Rechenvorrichtung, wie zum Beispiel ein Computer oder ein Anwendungsserver, zugreifen soll.
  • Es ist ersichtlich, dass Varianten der vorstehend offenbarten und anderen Merkmale und Funktionen, oder Alternativen davon, zu vielen anderen unterschiedlichen Systemen oder Anwendungen kombiniert werden können. Verschiedene gegenwärtig unvorhersehbare und unerwartete Alternativen, Modifikationen, Variationen oder Verbesserungen können nachfolgend daran vorgenommen werden.

Claims (15)

  1. Verfahren, umfassend: Empfangen, durch einen Prozessor, einer ersten Vielzahl von Symbolen, die aus einem ersten Satz von Symbolen ausgewählt ist; Übersetzen, durch den Prozessor, der ersten Vielzahl von Symbolen in eine zweite Vielzahl von Symbolen, die aus einem Satz von M-ären zyklischen Symbolen ausgewählt ist; und Schreiben, durch den Prozessor, der zweiten Vielzahl von Symbolen auf eine Oberfläche.
  2. Verfahren nach Anspruch 1, wobei das Schreiben Ausbilden einer zweidimensionalen Matrix von Feldern auf der Oberfläche umfasst, wobei jedes Feld ein zweidimensionales Muster von Symbolen umfasst, wobei das Schreiben Schreiben der zweiten Vielzahl von Symbolen in einer Anordnung umfasst, die das zweidimensionale Muster von Symbolen in jedem Feld ausbildet.
  3. Verfahren nach Anspruch 2, wobei, für mindestens ein Feld, das zweidimensionale Muster von Symbolen eine modifizierte Version des zweidimensionalen Musters von Symbolen in einem anderen Feld umfasst.
  4. Verfahren nach Anspruch 3, wobei das Schreiben Folgendes umfasst: Anwenden einer systematischen Modifikation eines Musters auf jedes Feld in der zweidimensionalen Matrix von Feldern, wobei die systematische Modifikation des Musters mindestens eine zweidimensionale zirkuläre Transformation der Anordnung der zweiten Vielzahl von Symbolen umfasst.
  5. Verfahren nach Anspruch 3, wobei das Schreiben Folgendes umfasst: Anwenden einer systematischen Modifikation eines Musters auf jedes Feld in der zweidimensionalen Matrix von Feldern, wobei die systematische Modifikation des Musters mindestens eine zyklische Verschiebung der Werte der zweiten Vielzahl von Symbolen in dem Muster umfasst.
  6. Verfahren nach Anspruch 5, wobei die mindestens eine zyklische Verschiebung ein ganzzahliges Vielfaches einer Differenz zwischen zwei Werten in dem Satz von M-ären zyklischen Symbolen umfasst.
  7. Verfahren nach Anspruch 5, wobei die mindestens eine zyklische Verschiebung eine Winkelverschiebung zu einem nicht ganzzahligen Vielfachen einer Differenz zwischen zwei Werten in dem Satz von M-ären zyklischen Symbolen umfasst.
  8. Vorrichtung, umfassend: einen Prozessor; und ein computerlesbares Medium, auf dem Anweisungen gespeichert sind, die, wenn sie von dem Prozessor ausgeführt werden, den Prozessor zu Folgendem veranlassen: Empfangen einer ersten Vielzahl von Symbolen, die aus einem ersten Satz von Symbolen ausgewählt ist; Übersetzen der ersten Vielzahl von Symbolen in eine zweite Vielzahl von Symbolen, die aus einem Satz von M-ären zyklischen Symbolen ausgewählt ist; und Schreiben der zweiten Vielzahl von Symbolen auf eine Oberfläche.
  9. Vorrichtung nach Anspruch 8, wobei die der Satz von M-ären zyklischen Symbolen einen geordneten Satz von M Symbolen umfasst, wobei die M Symbole Proben aus einem zyklischen Raum darstellen, in welchem Positionen der M Symbole in einem zyklisch geordneten Satz monoton ansteigen und zu einem Ausgangswert zurückkehren, nachdem ein M-ter Wert erreicht wurde.
  10. Vorrichtung nach Anspruch 9, wobei der geordnete Satz von M Symbolen Folgendes umfasst: durch Farben dargestellte Symbole; durch Größen eines Icons dargestellte Symbole; durch Positionen eines Icons dargestellte Symbole; durch Anstiege einer Linie dargestellte Symbole; oder durch alphanumerische Glyphen dargestellte Symbole.
  11. Vorrichtung nach Anspruch 9, wobei der zyklische Raum Wertdifferenzen in einem anderen zyklischen Raum umfasst.
  12. Vorrichtung nach Anspruch 11, wobei der Satz von M Symbolen Folgendes umfasst: durch Farbunterschiede dargestellte Symbole; durch Größenunterschiede dargestellte Symbole; durch Positionsunterschiede dargestellte Symbole; oder durch Anstiegsunterschiede dargestellte Symbole.
  13. Vorrichtung nach Anspruch 11, wobei die Wertunterschiede irrationale Partitionen des zyklischen Raums beinhalten.
  14. Verfahren, umfassend: Aufnehmen, durch einen Prozessor, eines Bilds von mindestens einem Teil einer Oberfläche; Detektieren, durch den Prozessor, einer ersten Vielzahl von Symbolen aus dem Bild, wobei die erste Vielzahl von Symbolen Symbole umfasst, die aus einem Satz von M-ären zyklischen Symbolen ausgewählt sind; Übersetzen, durch den Prozessor, der ersten Vielzahl von Symbolen in eine zweite Vielzahl von Symbolen, die aus einem zweiten Satz von Symbolen ausgewählt ist; und Durchführen, durch den Prozessor, mindestens einer Aufgabe als Reaktion auf die zweite Vielzahl von Symbolen.
  15. Verfahren nach Anspruch 14, wobei das Übersetzen ferner Folgendes umfasst: Transformieren der zweiten Vielzahl von Symbolen von einer zirkulären Codestandardform in eine Ausgangsform.
DE112015005883.4T 2015-01-30 2015-01-30 M-äre zyklische codierung Pending DE112015005883T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2015/013695 WO2016122567A1 (en) 2015-01-30 2015-01-30 M-ary cyclic coding

Publications (1)

Publication Number Publication Date
DE112015005883T5 true DE112015005883T5 (de) 2017-09-28

Family

ID=56543989

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112015005883.4T Pending DE112015005883T5 (de) 2015-01-30 2015-01-30 M-äre zyklische codierung

Country Status (4)

Country Link
US (2) US10621688B2 (de)
CN (1) CN107408214B (de)
DE (1) DE112015005883T5 (de)
WO (1) WO2016122567A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10977466B2 (en) * 2015-07-09 2021-04-13 Hewlett-Packard Development Company, L.P. Multi-dimensional cyclic symbols

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5442147A (en) 1991-04-03 1995-08-15 Hewlett-Packard Company Position-sensing apparatus
US5852434A (en) 1992-04-03 1998-12-22 Sekendur; Oral F. Absolute optical position determination
US6182901B1 (en) * 1993-12-22 2001-02-06 Xerox Corporation Orientational disambiguation for self-clocking glyph codes
AU3577997A (en) * 1996-06-24 1998-01-14 Irori Solid phase tyrphostin library linked to matrices with memories
PL185442B1 (pl) 1996-10-03 2003-05-30 Georgiades Biotech Ltd Środek farmaceutyczny o działaniu immunologicznym i psychotropowym, jego postać terapeutyczna oraz zastosowanie
US6594406B1 (en) * 1996-12-20 2003-07-15 Xerox Corporation Multi-level selection methods and apparatus using context identification for embedded data graphical user interfaces
SE516522C2 (sv) * 1999-05-28 2002-01-22 Anoto Ab Positionsbestämning
SE517445C2 (sv) 1999-10-01 2002-06-04 Anoto Ab Positionsbestämning på en yta försedd med ett positionskodningsmönster
US7143952B2 (en) * 2000-03-21 2006-12-05 Anoto Ab Apparatus and methods relating to image coding
AUPR440901A0 (en) * 2001-04-12 2001-05-17 Silverbrook Research Pty. Ltd. Error detection and correction
SE519277C2 (sv) * 2001-06-25 2003-02-11 Anoto Ab Anordning och förfarande för positionskodning och för avkodning av en positionskod
GB2383219A (en) * 2001-12-13 2003-06-18 Sony Uk Ltd Marking material using a two part watermark
EP1579380B1 (de) * 2002-12-16 2007-08-29 Koninklijke Philips Electronics N.V. Authentifizierungssystem mit optischer verschlüsselung unter verwendung von polarisiertem licht
SE0301729D0 (sv) * 2003-06-13 2003-06-13 Anoto Ab Behovsstyrd utskrift av kodningsmönster
US7048198B2 (en) * 2004-04-22 2006-05-23 Microsoft Corporation Coded pattern for an optical device and a prepared surface
DE102006057125A1 (de) 2006-11-30 2008-06-05 Bundesdruckerei Gmbh Sicherheitselement mit optisch variablem, mehrfarbigem Barcode
US7878404B2 (en) * 2007-02-08 2011-02-01 Silverbrook Research Pty Ltd Bar code reading method
DE102007015514A1 (de) * 2007-03-30 2008-10-09 Iconmobile Gmbh Übermittlungsverfahren
US20090078780A1 (en) * 2007-09-21 2009-03-26 Silverbrook Research Pty Ltd Coding pattern comprising registration symbols
TWI497920B (zh) * 2007-11-26 2015-08-21 Sony Corp Data processing device and data processing method
US8291306B2 (en) * 2008-07-02 2012-10-16 Joseph Schweiray Lee Encoder of cyclic codes for partially written codewords in flash memory
US8328109B2 (en) * 2008-10-02 2012-12-11 Silverbrook Research Pty Ltd Coding pattern comprising registration symbols for identifying the coding pattern
JP2010157107A (ja) 2008-12-26 2010-07-15 Hitachi Software Eng Co Ltd 業務文書処理装置
CN101515335B (zh) 2009-03-30 2011-11-09 浙江工业大学 具有高压缩比汉字编码能力的彩色二维条码的编码、解码方法
US8590791B2 (en) 2009-07-07 2013-11-26 Chemspectra, Inc. Color coded swipe for portable explosive or drug detection system
US20110180602A1 (en) * 2010-01-27 2011-07-28 Silverbrook Research Pty Ltd Method of imaging coding pattern using variant registration codewords
CN103748536A (zh) * 2012-05-31 2014-04-23 松下电器产业株式会社 位置代码的读取装置以及读取方法
CN103310255B (zh) 2013-05-31 2017-12-22 曾芝渝 一种彩色字符的编码方法及其解码方法
US10977466B2 (en) * 2015-07-09 2021-04-13 Hewlett-Packard Development Company, L.P. Multi-dimensional cyclic symbols
US10217182B1 (en) * 2015-10-29 2019-02-26 Digimarc Corporation Construction of signal maps for images with encoded signals

Also Published As

Publication number Publication date
WO2016122567A1 (en) 2016-08-04
US10891704B2 (en) 2021-01-12
CN107408214A (zh) 2017-11-28
US10621688B2 (en) 2020-04-14
US20200211145A1 (en) 2020-07-02
CN107408214B (zh) 2021-07-09
US20180005342A1 (en) 2018-01-04

Similar Documents

Publication Publication Date Title
DE69727440T2 (de) Schutz von Bildern durch Wasserzeichen
DE102016202281A1 (de) Verfahren und system zum generieren und drucken dreidimensionaler barcodes
DE112007002225B4 (de) Erstellen und Codieren von Glyphen
DE102019008221A1 (de) Interaktives Bildmattieren unter Verwendung neuronaler Netze
DE69830383T2 (de) Kodierverfahren
DE112020001345T5 (de) Optimierung der erkennung von bildern in bezug auf ziele auf der grundlage von farbraumtransformationstechniken
DE3914440A1 (de) Optisch maschinenlesbarer binaercode und verfahren zu seiner bildung und zur bestimmung seiner groesse und dichte
DE2315509A1 (de) Kodierte aufzeichnung und verfahren und einrichtung zum kodieren und dekodieren dieser aufzeichnung
WO2008015020A1 (de) Verfahren zum analysieren und/oder testen zumindest einer benutzeroberfläche, datenverarbeitungseinrichtung und computerprogrammprodukt
DE69935392T2 (de) Dokumentverarbeitung
DE2653288A1 (de) Verfahren und anordnung zur entfernung von vorgebbarer hintergrundinformation aus einem bild
DE19814075A1 (de) Verfahren zum Abtasten und Erkennen mehrerer Fotografien und zum Beseitigen von Randfehlern
DE112015006022B4 (de) Barcode-bildscanner für eine verbesserte dokumentenaufnahme
WO2011054337A1 (de) Verfahren zur authentifizierung eines benutzers an einer rechnereinheit
US10289874B2 (en) Stack edge image formation
DE69734639T2 (de) Mehrdimensionale Adressräume
EP2639738A1 (de) Verfahren und Lesegerät zur Erfassung einer Mehrzahl nacheinander auf eine Anzeigevorrichtung dargestellter zweidimensionaler Codes
DE102008013789A1 (de) Vorrichtung, Verfahren und Programm zum Eliminieren von Zeichenstörungen
EP3023916B1 (de) Codieren/decodieren von informationen aus einer graphischen informationseinheit
DE112015005883T5 (de) M-äre zyklische codierung
DE102007006230B4 (de) Farbpixel-Kodierung
DE1524439A1 (de) Zeichenerkennungsgeraet
BE1029610A1 (de) Systeme und Verfahren zum Verbessern einer Performanz einer trainierbaren optischen Zeichenerkennung (OCR)
Haindl et al. A plausible texture enlargement and editing compound markovian model
DE102019132518A1 (de) Verfahren zur Prüfung einer rasterförmig bedruckten und/oder gestalteten Oberfläche eines Gegenstands und Gegenstand

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R081 Change of applicant/patentee

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

Free format text: FORMER OWNER: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., HOUSTON, TEX., US

R082 Change of representative

Representative=s name: PLASSERAUD EXPANSION MUNICH SARL, DE