DE10307775B4 - Patterned code with robust decoding, in particular signal code, decoding method, decoding device, reading device, and data carrier with program - Google Patents

Patterned code with robust decoding, in particular signal code, decoding method, decoding device, reading device, and data carrier with program Download PDF

Info

Publication number
DE10307775B4
DE10307775B4 DE10307775A DE10307775A DE10307775B4 DE 10307775 B4 DE10307775 B4 DE 10307775B4 DE 10307775 A DE10307775 A DE 10307775A DE 10307775 A DE10307775 A DE 10307775A DE 10307775 B4 DE10307775 B4 DE 10307775B4
Authority
DE
Germany
Prior art keywords
code
cells
codes
symbols
decoding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE10307775A
Other languages
German (de)
Other versions
DE10307775A1 (en
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to DE10307775A priority Critical patent/DE10307775B4/en
Publication of DE10307775A1 publication Critical patent/DE10307775A1/en
Application granted granted Critical
Publication of DE10307775B4 publication Critical patent/DE10307775B4/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/06009Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
    • G06K19/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
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2703Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques the interleaver involving at least two directions
    • H03M13/2707Simple row-column interleaver, i.e. pure block interleaving
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability information
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability information
    • H03M13/451Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD]
    • H03M13/456Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD] wherein all the code words of the code or its dual code are tested, e.g. brute force decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • General Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)

Abstract

Signalcode mit eindimensional oder zweidimensional angeordneten Zellen von Signalabschnitten unterschiedlichen Signalverlaufs, die den entprechend unterschiedlichen Symbolen eines Alphabets von N Symbolen, mit N >= 2 zugeordnet sind,
dadurch gekennzeichnet, daß
– bei eindimensionaler Anordnung der Zellen, insbesondere bei Zeitsignalen mit Zeitsignalabschnitten als Zellen, in einem beliebigen Ausschnitt von f aufeinanderfolgenden Zellen des Signals, f festgesetzt mit f >= N·2 f <= N·N·4, jedes der N Symbole mindestens zweimal, vorzugsweise mindestens dreimal vorkommt.
bzw.
– bei zweidimensionaler Anordnung der Zellen, insbesondere bei Kennzeichnungen von Oberflächen, vorzugsweise bei verformenden Kennzeichnungen, mindestens eine der folgenden Voraussetzungen a) bis c) erfüllt ist:
a) – Die Zellen sind in Zeilenpaketen von je mindestens z Zeilen von Zellen angeordnet, mit z => 2,
– Innerhalb eines Zeilenpaketes kommt in einem beliebigen Abschnitt von f aufeinanderfolgenden Zellen, f festgesetzt mit f >= N·2/z f <= N·N·4/z, jedes der N Symbole mindestens...
Signal code with one-dimensionally or two-dimensionally arranged cells of signal sections of different signal course, which are assigned to the correspondingly different symbols of an alphabet of N symbols, with N> = 2,
characterized in that
In a one-dimensional arrangement of the cells, in particular in time signals with time signal sections as cells, in an arbitrary section of f consecutive cells of the signal, f set with f> = N * 2 f <= N * N * 4, each of the N symbols at least twice , preferably at least three times.
respectively.
In the case of a two-dimensional arrangement of the cells, in particular in the case of markings of surfaces, preferably in the case of deforming markings, at least one of the following conditions a) to c) is fulfilled:
a) - The cells are arranged in row packets of at least z rows of cells, with z => 2,
Within a row packet, in an arbitrary section of f successive cells, f is set with f> = N * 2 / z f <= N * N * 4 / z, each of the N symbols at least ...

Figure 00000001
Figure 00000001

Description

Die Erfindung betrifft die Kanalcodierung und die dazugehoerige Decodierung von Signalen, auf eindimensionale Signale (z.B. Zeitsignale) genauso bezogen wie auf zweidimensionale Signale (z.B. Bilder). Insbesondere betrifft die Erfindung einen Signalcode, ein Decodierverfahren, eine Decodiereinrichtung, eine Leseeinrichtung sowie einen Datenträger mit Programm. Aus Gruenden der besseren Anschaulichkeit und Einfachheit der Beschreibung werden die Methoden und Anordnungen anhand eines zweidimensionalen Beispiels dargestellt, einem Matrix-Code. Die beschriebenen Probleme, Lösungsmethoden und Anordnungen gelten sind sinngemäß für eindimensionale Signale.The The invention relates to channel coding and the associated decoding of signals, to one-dimensional signals (e.g., timing signals) as well as for two-dimensional signals (e.g., images). Especially the invention relates to a signal code, a decoding method, a decoding device, a reading device and a data carrier with Program. For reasons of better vividness and simplicity The description will describe the methods and arrangements by means of a two-dimensional example, a matrix code. The described problems, solution methods and arrangements apply mutatis mutandis to one-dimensional signals.

Die hier verwendete Begriffsbildung orientiert sich an [Bos].The Term formation used here is based on [Bos].

Vorab werden grundlegende Begriffen aus der Literatur erlaeutert, die hier eine wichtige Rolle spielen, und solche Begriffe und begrifflichen Unterscheidungen, die hier zum Zweck der Vereinfachung der Darstellung neu eingefuehrt werden.advance basic concepts from the literature are explained play an important role here, and such concepts and conceptual Distinctions made here for the purpose of simplifying the presentation be introduced.

Begriffe:terms:

  • – mehrdimensionales Signal/mehrdimensionale Merkmale: Ein Bild wird als zweidimensionales Signal bezeichnet, ein Zeitsignal als eindimensionales Signal. Bei eindimensionalen Signalen, bei denen die Signalwerte nach mehreren Dimensionen gleichzeitig moduliert sind (z.B. nach Amplitude und Phase gleichzeitig oder bei Quadratur-Amplituden-Modulation), wird hier zur Unterscheidung von mehreren Merkmalsdimensionen gesprochen (obwohl diese Signale in der Codierungsliteratur einfach "mehrdimensionale Signale" genannt werden). Ein Farb-Bildsignal wird dementsprechend als zweidimensionales Signal angesprochen, das beispielsweise in den drei unabhaengigen Merkmalsdimensionen Farbwinkel, Saettigung und Intensitaet moduliert ist.- multidimensional Signal / multidimensional features: An image is called two-dimensional Signal denotes a time signal as a one-dimensional signal. at one-dimensional signals in which the signal values after several Dimensions are simultaneously modulated (e.g., by amplitude and Phase simultaneously or in quadrature amplitude modulation) here for the distinction of several feature dimensions spoken (although these signals in the encoding literature are simply "multidimensional Called signals " become). A color image signal is accordingly as a two-dimensional Signal addressed, for example, in the three independent Feature dimensions Color angle, saturation and intensity modulated is.
  • – Alphabet/Symbole: Das Alphabet ist die Menge der im Code verwendeten Symbole. Beispiele: Eine Dezimalcodierung das Alphabet {0, 1, 2, ...9} mit den Ziffern 0, 1, ..9 als Symbole. Eine Binaercodierung hat das Alphabet {0, 1}. Ein Punkt-Matrixcode kann z.B. das Alphabet {Punkt gedruckt, Punkt nicht gedruckt} haben.- Alphabet / Symbols: The alphabet is the set of symbols used in the code. Examples: A decimal encoding the alphabet {0, 1, 2, ... 9} with the numbers 0, 1, ..9 as symbols. A binary encoding has the alphabet {0, 1}. A dot matrix code may e.g. the alphabet {dot printed, Dot not printed}.
  • – Codewort/Zeichen/Zeichenfolge: Ein Codewort der Laenge n besteht aus n Zeichen, jedes Zeichen ist ein Element des betreffenden Alphabets. Beispiel: das dritte Zeichen eines binaeren Codeworts hat als konkreten Wert eines der Symbole "1" oder "0". Code: Menge von Codewoertern. Eine beliebige Folge von Zeichen wird in der Literatur als Zeichenvektor (oder – irrefuehrend – als Codefolge) bezeichnet, hier als "Zeichenfolge". Wir unterscheiden hier genau zwischen "Zeichenfolge" und "Codewort", wie folgt: Nicht alle denkbaren Zeichenfolgen zu dem Alphabet muessen Codewoerter sein, also im Code enthalten sein (Beispiel: ein Code mit Parity-Bit enthaelt keine Zeichenfolgen mit ungerader Anzahl von Symbolen "1". Zeichenfolgen mit gerader Anzahl von Symbolen "1" sind Codewoerter). Statt "Codewort" wird hier manchmal auch, synonym, "moegliches Codewort" geschrieben. Jedes Codewort ist eine Zeichenfolge, aber nicht jede Zeichenfolge ist ein Codewort. Zeichen"folge" impliziert nicht eine eindimensionale Folge; es kann sich auch durchaus um eine mehrdimensionale Anordnung handeln, z.B. eine Matrix von Zeichen.- codeword / character / string: A codeword of length n consists of n characters, each character is an element of the alphabet in question. Example: the third character a binary codeword has as concrete value one of the symbols "1" or "0". Code: set of code words. Any sequence of characters is used in literature as a drawing vector (or - misleading - as a code sequence) referred to here as "string". We differentiate here exactly between "string" and "codeword", as follows: Not All conceivable strings to the alphabet must be codewords be included in the code (example: a code with parity bit contains no strings with an odd number of symbols "1". Even numbered strings Symbols "1" are code readers). Instead of "codeword" is sometimes here also, synonymously, "possible Codeword "written. Each codeword is a string, but not every string is a codeword. Sign "follow" does not imply a one-dimensional sequence; It can also be quite a multi-dimensional Act arrangement, e.g. a matrix of characters.
  • – Als Signalcode wird ein Code zusammen mit einer Symbolspezifischen Modulationsvorschrift bezeichnet, z.B. "0" = "bedruckt, "1" = unbedruckt, oder "0" = "tiefe Frequenz, "1" = hohe Frequenz".- When Signal code becomes a code together with a symbol-specific modulation rule denotes, e.g. "0" = "printed," 1 "= unprinted, or" 0 "=" low frequency, "1" = high frequency ".
  • – Dimension k eines Codes: Der Code enthaelt bei binaerer Codierung 2 hoch k Codewoerter, bei ternaerer Codierung 3 hoch k Codewoerter etc.- Dimension k of a code: If the code is binary, the code contains 2 high k Codeweerter, with ternaerer coding 3 high k Codewoerter etc.
  • – Mindestdistanz d eines Codes: die kleinstmoegliche Hammingdistanz [Bos] zwischen irgend zwei Codewoertern des Codes.- minimum distance d of a code: the smallest possible Hamming distance [Bos] between any two code words of the code.
  • - Laenge n eines Codes: Anzahl der Symbole in einem Codewort.- Length of a code: Number of symbols in a code word.
  • – Informationszeichen/Redundanzzeichen: Bei sog. systematischer Codierung werden den k informationstragenden Zeichen n-k Redundanzzeichen hinzugefuegt (z.B. Paritybits).- Information signs / redundancy signs: With so-called systematic coding, the k becomes information-bearing Character n-k redundancy characters added (e.g., parity bits).
  • – Demodulator Im Uebertragungskanal wird das uebertragene Signal zu den empfangenen Symbolen demoduliert. Beispiel Zweitonverfahren bei Zeitsignalen: Es wird geschaetzt, welche der beiden moeglichen Frequenzen vorliegen und dementsprechend auf die Symbole "0" oder "1" entschieden. Beispiel Barcode bei Bildanalyse: aus der Bildinformation wird geschaetzt, ob es sich um breiten/schmalen Strich bzw. Luecke handelt. Im allgemeinen ist es moeglich, fuer die Entscheidung eine Zuverlaessigkeitsinformation mit zu liefern. In Sonderfaellen kann die Zuverlaessigkeitsinformation gleich in Form von Wahrscheinlichkeiten interpretiert werden.- Demodulator in the Transmission channel is the transmitted signal to the received Symbols demodulated. Example of two-tone method for time signals: It is estimated, which of the two possible frequencies are available and accordingly decided on the symbols "0" or "1". Example barcode for image analysis: From the image information is estimated, whether it is broad / narrow Line or gap acts. In general, it is possible for the decision to provide a reliability information. In Special cases can equal the reliability information in the form be interpreted by probabilities.
  • – Algebraische/Zuverlaessigkeitsoptimierende Decodierverfahren; Hard Decision/Soft Decision: Bei algebraischer Decodierung wird, unabhaengig von der Demodulation, bei Uebertragungsfehlern, alleine aufgrund der vorliegenden Coderedundanz eine Fehlerkorrektur durchgefuehrt. Hierzu zaehlen – um eine kleine Auswahl von praktisch sehr verbreiteten Methoden zu nennen: HammingCode, CRC, Reed-Solomon. Dem stehen (ggf. ergaenzend) Methoden gegenueber, die die Korrektur von Fehlern aufgrund von Zuverlaessigkeitsinformation durchfuehren, die der Demodulator im Uebertragungskanal liefert. Die Gesamtheit dieser Verfahren wird hier "Zuverlaessigkeitsoptimierende" Decodierverfahren genannt. Voraussetzung hierfuer ist also, dass der Demodulator – zumindest teilweise – nicht irreversible Entscheidungen trifft, sondern einer Mehrzahl von moeglichen (Vor-)Entscheidungen Zuverlaessigkeitswerte mitgibt. Dann spricht man von Soft Decision im Gegensatz zu Hard Decision.- Algebraic / reliability optimizer Decoding method; Hard Decision / Soft Decision: At algebraic Decoding, regardless of the demodulation, is due to transmission errors, solely due to the present code redundancy an error correction carried out. Include - um a small selection of practically very common methods too call: HammingCode, CRC, Reed-Solomon. Stand (if necessary complementary) Compared with the methods of correction of errors due to To perform reliability information that the demodulator in the Transmission channel delivers. The entirety of these procedures will here "reliability-optimizing" decoding method called. The prerequisite for this is that the demodulator - at least partly - not irreversible decisions but a plurality of possible ones (Pre-) Decisions gives reliability values. Then speak one of Soft Decision as opposed to Hard Decision.
  • – Viterbi-Algorithmus Insbesondere in Verbindung mit Faltungscodes wird mittels des auf dem Prinzip der Dynamischen Optimierung beruhenden Viterbi-Algorithmus eine Decodierung auf minimale Distanz durchgefuehrt, ohne dass alle moeglichen Codeworte einzeln aufgefuehrt werden muessen. Die dem Code zugrundeliegende Struktur ist vorzugsweise in einem Uebergangsnetzwerk (Trellis) hinterlegt. Bei vorangehender Hard Decision kann eine Optimierung lediglich die dem Code innewohnende Minimaldistanz ausschlachten und auf minimale Distanz zu den moeglichen Codeworten entscheiden. Bei vorangehender Soft Decision, mit Angabe von Zuverlaessigkeitsinformation zu den einzelnen Entscheidungen, kann die Viterbi-Decodierung die Gesamt-Zuverlaessigkeit optimieren und z.B. auch bei Codes mit d = 2 Korrekturen durchfuehren.- Viterbi algorithm Especially in conjunction with convolutional codes is by means of on the principle Dynamic optimization based Viterbi algorithm Decoding performed at minimum distance without all possible Code words must be listed individually. The underlying code Structure is preferably in a transition network (Trellis) deposited. At the previous hard decision can be an optimization only exploit the minimum inherent in the code and decide on minimum distance to the possible codewords. at preceding soft decision, indicating reliability information To the individual decisions, Viterbi decoding can be the Optimize overall reliability, e.g. also with codes with d = 2 make corrections.
  • – Interleaving Viele Codes koennen gut statistisch unabhaengige Einzelfehler korrigieren, nicht jedoch in Pulks auftretende Fehler (Buendelfehler). Aus der Literatur ist fuer eindimensionale Signale das sog. Interleaving bekannt (realisiert durch zeilenweises Schreiben der Zeichen in einen Speicher und spaltenweises Auslesen). Dadurch koennen einzelne Buendelfehler in mehrere (korrigierbare) Einzelfehler verwandelt werden. Ein aehnliches Konzept findet man bei der bitweise Verteilung redundanter Codes auf getrennten Festplatten (RAID-Platten) mit dem Effekt der Rekonstruktionsmoeglichkeit der Information beim Crash einer einzelnen Festplatte.- Interleaving Lots Codes can easily correct statistically independent single errors, but not in Pulks occurring errors (bundle errors). Out The literature is the so-called interleaving for one-dimensional signals known (realized by line-by-line writing of the characters in a memory and column-by-column read-out). This allows individual Buendelfehler transformed into several (correctable) single errors become. A similar concept can be found in the bitwise Distribution of redundant codes on separate disks (RAID disks) with the Effect of the reconstruction possibility of the information during the crash a single hard disk.
  • – Matrixcode: Matrixfoermige Anordnung von Mustern, auf eine Oberflaeche angebracht, z.Beispiel gedruckt, gepraegt, geritzt, angegossene Noppen... Die einzelnen Muster auf der Matrix werden hier Matrixzelle (kurz Zelle) genannt. Sie unterscheiden sich durch Unterschiede in der Bearbeitung bzw. Erscheinungsform, z.B. gepraegt vs. ungepraegt; rund geritzt vs. eckig gerirtzt, waagrechte Strichpraegung vs. senkrechte Strichpraegung .... Es wurden auch schon Matrixcodes mit ueber analoge Werte (Grauwerte oder Farbe) modulierten Zellen bekannt ("hue Code"). Eine Matrixzelle selbst ist wiederum ein "kleines Bild" (d.h. wieder eine Matrix) mit einem zweidimensionalen Feld von Pixeln; die Pixel haben Grauwerte, die beispielsweise zwischen 0 und 255 liegen koennen. Die Matrixzelle entspricht bei eindimensionalen Signalen einem (zeitlichen) Signalabschnitt T, der zu einem Symbol zu demodulieren ist. "Zelle" und "Signalabschnitt" sind hier bezueglich der grundsaetzlichen Verfahren als gleichbedeutend anzusehen. Unter Matrixcode wird hier nicht, wie gelegentlich in der Codierungslitertur zu finden, eine Verallgemeinerung von Faltungscodes verstanden.- matrix code: Matrix-like arrangement of patterns, mounted on a surface, For example, printed, stamped, scratched, cast-on nubs ... The single pattern on the matrix will be here matrix cell (short cell) called. They differ due to differences in the processing or appearance, e.g. pronounced vs. unembossed; scratched around vs. squared angular, horizontal stroke vs.. vertical stroke .... There have been matrix codes with analog values (gray values or Color) modulated cells known ("hue code"). A matrix cell itself is again a "little one Image "(i.e. a matrix) with a two-dimensional array of pixels; the pixels have gray values that can be between 0 and 255, for example. The Matrix cell corresponds to a (temporal) one-dimensional signal Signal portion T to be demodulated into a symbol. "Cell" and "signal section" are relevant here to regard the basic procedure as synonymous. Under Matrix code does not get here, as occasionally in the encoding list to find a generalization of convolutional codes.
  • – Pixel: Der Begriff Pixel ist hier allgemein zu verstehen als ein von i.a. mehreren Abtastwerten des zu demodulierenden Signals, in der Regel innerhalb einer Zelle bzw. eines Zeitabschnitts. Der Abtastung liegt einerseits eine oertliche (zeitliche) und andererseits in der Regel auch eine wertemaessige Quantisierug zugrunde. Ist die wertemaessige Quantisierung binaer, so spricht man in der Bildverarbeitung von Binaerbildern.- pixels: The term pixel is to be understood here generally as one of i.a. several samples of the signal to be demodulated, usually within a cell or a period of time. The scan is on the one hand a local (temporal) and on the other hand in As a rule, it is also based on a value-based quantization. Is the quantum quantization binaer, as one speaks in image processing from Binaer pictures.
  • – Synchronisation: Bei der Abtastung eines eindimensionalen Ursprungs-Signals muss das Signal in Zellen oder Signalabschnitte unterteilt werden, die vom Demodulator getrennt weiterverarbeitet und (zumindest versuchsweise) Symbolen zugeordnet werden. Diese in ihrer Schwierigkeit in der Praxis nicht zu unterschaetzende Aufgabe wird Synchronisation genannt und entspricht der Segmentierungsaufgabe in der Mustererkennung und speziell der Lokalisierungsaufgabe beim Lesen von Matrixcodes.- Synchronization: at the sampling of a one-dimensional source signal must be the Signal are divided into cells or signal sections, which are from Demodulator separately processed and (at least tentatively) symbols be assigned. These in their difficulty in practice not task to be underestimated is called synchronization and corresponds the segmentation task in the pattern recognition and especially the Localization task when reading matrix codes.
  • – Median: Fuer Mittelungszwecke kann man anstelle des arithmetischen oder geometrischen Mittels den Median berechnen. Sortiert man Messwerte nach ihrer Groesse und waehlt den mittleren Wert aus, so erhaelt man den Median. Beispielsweise ist der Median der Werte {1, 4000, 20, 18, 17} der Wert 18. Der Median ist robust gegen einzelne Ausreisser.- median: For Averaging can be used instead of arithmetic or geometric Using the median calculate. Sorting readings according to their Size and select the mean value, you get the median. For example, the median of the values {1, 4000, 20, 18, 17} is the Value 18. The median is robust against individual outliers.

Diese Patentanmeldung fuehrt zum Zweck der Vereinfachung der Beschreibung die folgenden Begriffe neu ein:

  • – gemusterter Codes, die einerseits unterschieden werden in
  • – triviale gemusterte Codes,
  • – durch vollzaehlige Aufzaehlung definierte gemusterte Codes,
  • – iterative gemusterte Codes, andererseits in
  • – kontextfreie gemusterte Codes,
  • – kontextsensitive gemusterte Codes.
  • – Inselcode.
  • – systematische Platzierung.
This patent application reintroduces the following terms for the purpose of simplifying the description:
  • - Patterned codes that are distinguished on the one hand
  • - trivial patterned codes,
  • - patterned codes defined by a full list,
  • - iterative patterned codes, on the other hand in
  • Context-free patterned codes,
  • - Context-sensitive patterned codes.
  • - Island code.
  • - systematic placement.

Diese Begriffe werden in der Beschreibung weiter unten genau erlaeutert.These Terms are explained in detail in the description below.

Stand:Was standing:

Der allgemeine Stand der Technik wird in der angegebenen Grundlagenliteratur [Bos, Fri, Zar] beschrieben.Of the general state of the art is specified in the basic literature [Bos, Fri, Tsar].

Speziell zur Codierung bei Matrixcodes ist zu erwaehnen:
Bei Beschriftung von Papier oder Folien (Labels) mittels Tintenstrahl oder sehnlichen Methoden sind die derzeitigen Codierverfahren ausreichend zuverlaessig. Bei direkter, insbesondere bei verformender Markierung (Beschriftung), ganz besonders unbearbeiteter Oberflaechen mittels Laser, Nadelpraegen, Ritzen und sehnlichen Methoden ist der Einsatz der bekannten Codierverfahren in der Praxis derzeit noch sehr problematisch.
Especially for coding with matrix codes, it should be mentioned:
When labeling paper or films by means of ink-jet or stringent methods, the current coding methods are sufficiently reliable. In direct, especially in deforming marking (inscription), especially unprocessed surfaces by means of laser, Nadelpraegen, scratches and sehnlichen methods, the use of the known coding in practice is currently still very problematic.

Anhand des (preiswerten) Nadelpraegens seien die praktischen Probleme naeher erlaeutert:

  • – Die Zellen stellen sich (unter optimalen Bedingungen!) naeherungsweise punktartig dar. Die meisten Codespezifikationen erfordern jedoch spezielle Formen (z.B. Data Matrix: quadratisch beschriftete Zellen); damit wird zumindest die Lokalisierung und teilweise auch die Decodierung solcher Codes sehr schwierig.
  • – Speziell fuer punktartige Beschriftung definierte Codierungen sind nicht in der Lage, von der Punktform stark abweichende, wenn auch aufgrund der Beleuchtung systematisch auftretende Formen, sicher zu erkennen. Solche von der Punktform abweichende Formen ergeben sich in der Praxis haeufig, abhaengig von der Praegecharakteristik und der Beleuchtungs-Betrachtungsgeometrie.
  • – Einfach auszuwertende Zellen-Bildmuster, insbesondere korrekt platzierte Punkte, sind nur mit aufwendiger Beleuchtung erreichbar.
  • – Durch Abnutzen des Praegewerkzeugs oder schwankende Materialeigenschaften aendert sich die Praegecharakteristik im laufenden Betrieb.
On the basis of the (inexpensive) needles the practical problems are explained in more detail:
  • - The cells are almost point-like (under optimal conditions!). However, most code specifications require special shapes (eg Data Matrix: square-labeled cells); so that at least the localization and sometimes the decoding of such codes is very difficult.
  • - Encodings specially defined for point-like inscriptions are not able to reliably recognize forms that deviate strongly from the point form, even though they are systematically occurring due to the lighting. Such shapes deviating from the dot shape often result in practice, depending on the impression characteristic and the illumination viewing geometry.
  • - Easy-to-evaluate cell image pattern, in particular correctly placed points are achievable only with elaborate lighting.
  • - By wear of the preheating tool or fluctuating material properties, the impression characteristic changes during operation.

Die bei Zeitsignalen auftretenden Störungen werfen teilweise sehr ähnliche Probleme auf: Signalverzerrungen treten nicht vorhersehbar, nichtlinear, aber oft in lokal gesehen ähnlicher Weise auf (einfachstes Beispiel: Fading).The with time signals occurring disturbances throw in part very similar Problems on: Signal distortions occur unpredictable, nonlinear, but often more similar locally Way (simplest example: fading).

Matrixcodes werden bisher für algebraische Decodierverfahren realisiert, insbesondere für das Reed Solomon Verfahren. Algebraische Decodierverfahren nutzen nicht die meist im Demodulator verfuegbare Zuverlaessigkeitsinformation aus.matrix codes so far for realized algebraic decoding, especially for the Reed Solomon Method. Algebraic decoding methods do not use the most in the demodulator available reliability information.

Um wenigstens näherungsweise eine zuverlässigkeitsoptimierende Decodierung zu realisieren, wird nach [D3] zum Decodieren von zweidimensionalen Codes mit Hard-Decision auf zuvor mittels Binarisierungsschwelle binarisierten Daten vorgeschlagen, daß unsichere Bildbereiche ermittelt werden, deren Grauwerte nahe an der Binarisierungsschwelle liegen, und denen versuchsweise zur Decodierung ein anderer Binarisierungswert zugewiesen wird als durch die Binarisierungsschwelle vorgegeben.Around at least approximately a reliability-optimizing Decoding is done after [D3] to decode two-dimensional Codes with hard-decision on before by binarization threshold binarized data suggested that determines uncertain image areas whose gray values are close to the binarization threshold, and those tentatively for decoding another Binarisierungswert is assigned as predetermined by the Binarisierungsschwelle.

Nach [Wi1], werden an definierten Stellen eines optisch zu lesenden Datenstreifens Suchmuster zum Vergleich mit den informationstragenden Mustern eingebaut. Daraus wird Information zur Realisierung eines Decodierverfahrens auf Basis von Korrelation abgeleitet. (Anmerkung: Die "Zellen" nach [Wi1] entprechen NICHT den Zellen nach unserer Bezeichnungsweise, sondern eher Blöcken von Zellen, daher "sprechen wir hier von Zellblöcken).To [Wi1], appear at defined points of a data strip to be optically read Search pattern built in for comparison with the information-bearing patterns. This information becomes the realization of a decoding process derived on the basis of correlation. (Note: The "cells" after [Wi1] do NOT correspond the cells according to our designation, but rather blocks of Cells, therefore "speak we here from cell blocks).

Nach [D1] wird zur Erhöhung der Lesesicherheit bei einer Markierung mit einem oder mehreren kreisringförmigen Mustern vorgeschlagen, daß die Codierungen jeweils die gleiche Anzahl von Farbwechseln auf dem Kreisring aufweisen. Ersichtlich ist die dadurch gewonnene Sicherheit sehr gering, wie man an dem folgenden Beispiel erkennt: verändert man bei einem System mit den Farben Schwarz und Weiß ein Bit, das auf der einen Seite einen schwarzen Nachbarn, auf der anderen Seite einen weißen Nachbarn hat, so ändert das nichts an der Anzahl der Farbwechsel.According to [D1], in order to increase reading reliability, a marking with one or more circles is used proposed annular patterns that the codings each have the same number of color changes on the annulus. Obviously, the security gained by this is very small, as can be seen from the following example: if you change a system with the colors black and white to a bit that has a black neighbor on one side and a white neighbor on the other side, then Does not change the number of color changes.

Nach [D2] ist ein maschinenlesbarer Code in einer Folge von Spalten mit je m "Gebieten" (areas) angeordnet, bestehend aus Mustern aus je n Gebieten (d.h. m > n), wobei die Muster je ein Zeichen repräsentieren und entlang der Spalte mindestens einmal wiederholt werden. Muster, die durch zyklische Verschiebung entstehen, repräsentieren das gleiche Zeichen. Dadurch wird es möglich, mit einer Leseeinrichtung, die schmaler ist als m Gebiete, und deren Position entlang der Zeile schwanken kann, die Zeichen eindeutig zu lesen, unabhängig von der Position der Leseeinrichtung auf der Spalte.To [D2] is a machine-readable code in a sequence of columns with arranged per m "areas", consisting of patterns from each n areas (i.e., m> n), the patterns each representing one character and repeated at least once along the column. Template, caused by cyclic shift, represent the same sign. This will make it possible with a reading device that is narrower than m areas, and whose Position along the line can vary, the characters clearly to read, independently from the position of the reader on the column.

Nach [D4] DE 695 26 915 T2 wird ein Stapel von Strichcodes in eine Vielzahl von Paketen zerlegt, die sowohl Daten als auch Adreßinformationen beinhalten. Die kompakten Pakete sind einzeln decodierbar und können mit einem größeren Winkelbereich abgetastet werden als dies beim Abtastenb über die volle Breite des Codes möglich ist. Aufgrund der Adreßinformation ist die gesamte Codeinformation aus den einzelnen Paketen leicht zusammensetzbar, unabhängig davon, in welcher Reihenfolge die einzelnen Pakete decodiert wurden.After [D4] DE 695 26 915 T2 For example, a stack of bar codes is decomposed into a plurality of packets containing both data and address information. The compact packages are individually decodable and can be scanned with a wider range of angles than is possible with the full width of the code when scanning. Because of the address information, all the code information from the individual packets is easily composable, regardless of the order in which the individual packets were decoded.

Auf ganz spezielle Punkte des Stands der Technik wird unter Bezugnahme auf die restliche zitierte Literatur weiter unten bei der Schilderung der Vorteile eingegangen, da nach der Schilderung des hier vorgeschlagenen Verfahrens die Unterschiede besser verständlich werden.On very specific points of the prior art will be referred to to the rest of the cited literature below in the description the advantages received, since according to the description of the here suggested Process the differences become more understandable.

Aufgabe:Task:

Allgemeine Aufgabe der Erfindnung ist es, ueber die Moeglichkeiten des bisher Bekannten hinausgehend, eine allgemein verwendbare, aeusserst robuste Codierung mit zugehoeriger Decodierung bereitzustellen. Die Robustheit soll bisher bekannte Verfahren uebertreffen.General The object of the invention is to talk about the possibilities of the past Known, a generally usable, extremely robust To provide coding with associated decoding. The robustness should exceed previously known methods.

Spezielle Aufgabe der Erfindnung ist es, eine der allgemeinen Aufgabe entsprechende Codierung beim Beschriften/Markieren von Gegenstaenden bereitzustellen, mit zugehoeriger Decodierung, die es u.a. erlaubt, bei direkter Beschriftung (insbesonere gepraegt oder geritzt) und bei schwieriger/fehlerhafter Oberflaeche und sonstigen Stoerungen, die Informationen zuverlaessig zu erkennen. Dabei soll es nicht erforderlich sein, spezielle Suchmuster in den Code einzubauen, wie nach [Wi1] vorgeschlagen.Specific The object of the invention is to provide a general task Provide coding when labeling / marking objects, with associated decoding which it u.a. allowed, with direct Lettering (in particular stamped or scratched) and in case of difficult / incorrect Surface and other disturbances, the information is reliable to recognize. It should not be necessary, special search patterns to incorporate into the code as suggested by [Wi1].

In industriellem Umfeld sind oft nur wenige Informationen zu codieren (Beispiel: Angabe des Teiletyps, bei nur wenigen moeglichen Teiletypen), diese Informationen muessen jedoch sehr sicher, trotz teilweise sehr schwierigen Randbedingungen, ohne oder fast ohne Rueckweisungen automatisch gelesen werden. Der fuer die Unterbringung des Codes erforderliche Platzbedarf ist ebenso ein wichtiges Kriterium, spielt jedoch gegenueber der Lesesicherheit oft eine eher untergeordnete Rolle.In In the industrial environment, often only a small amount of information has to be coded (Example: Specification of the part type, with only a few possible part types), However, this information must be very secure, despite partial very difficult conditions, with no or almost no regrets be read automatically. The one for the accommodation of the code Required space is also an important criterion plays However, compared to the reading security often a subordinate Role.

Die Aufgabe wird erfindungsgemaess nach Anspruch 1 und 2 geloest.The The object is achieved according to the invention according to claim 1 and 2.

Im folgenden werden, unter Zuhilfenahme von Zeichnungen, bevorzugte Ausfuehrungsformen der Erfindung beschrieben.in the The following are preferred, with the aid of drawings Embodiments of the invention described.

1 zeigt beispielhaft die Berechnung von Zuverlaessigkeitswerten fuer Zellen, anhand von mittleren Helligkeitswerten und einfacher Kompaktheitsbetrachtungen. 1 shows by way of example the calculation of reliability values for cells, based on average brightness values and simple compactness considerations.

2 zeigt beispielhaft die Berechnung von Zuverlaessigkeitswerten fuer Zellen mit gleichem mittlerem Grauwert, aufgrund Aehnlichkeitsbetrachtung mit anderen Zellen mit hypothetischer Bedeutung. 2 shows by way of example the calculation of reliability values for cells with the same mean gray value, due to similarity with other cells with hypothetical significance.

3 zeigt beispielhaft die Berechnung von Zuverlaessigkeitswerten fuer Zellen alleine aufgrund Aehnlichkeitsbetrachtung mit anderen Zellen mit hypothetischer Bedeutung. 3 shows by way of example the calculation of reliability values for cells solely on the basis of similarity with other cells of hypothetical importance.

4 zeigt beispielhaft die Berechnung von Zuverlaessigkeitswerten fuer Zellen alleine aufgrund Aehnlichkeitsbetrachtung mit je mehreren anderen Zellen unterschiedlicher hypothetischer Bedeutung. 4 shows, by way of example, the calculation of reliability values for cells solely on the basis of similarity considerations with several other cells of different hypothetical significance.

5 zeigt beispielhaft einen iterativ gemusterten Code. 5 shows by way of example an iteratively patterned code.

6 zeigt beispielhaft das Trellis zu dem Code nach 5. 6 exemplifies the trellis to the code 5 ,

7 zeigt beispielhaft die Auswahl von Vergleichszellen bei iterativ gemusterten Codes. 7 shows by way of example the selection of comparison cells in the case of iteratively patterned codes.

8 zeigt beispielhaft einen kontextsensitiv gemusterten Code. 8th shows by way of example a context-sensitive patterned code.

Beschreibung der Codierung, anhand eines Beispiels:Description of the coding, based on a example:

Die Beschreibung erfolgt zunaechst anhand eines Beispiels aus dem Bereich Matrixcode, das speziell gewaehlt wurde, um das Grundverstaendnis der Erfindung zu erleichtern.The Description will first be made by way of example from the field Matrix code, which was specially chosen to the basic understanding to facilitate the invention.

Diese Beschreibung ist ausdruecklich als didaktisch gewaehltes Beispiel zu verstehen; beispielsweise wurden binaere Codes und bestimmte Bit-Zahlen und oertliche Konfigurationen gewaehlt, die, soweit sinngemaess und sachlich moeglich, auf Codes mit groesserem Alphabet und andere Konfigurationen verallgemeinert werden koennen.These Description is expressly as a didactically chosen example to understand; for example, binary codes and certain Bit numbers and local configurations chosen, which, as far as appropriate and factually possible, on codes with larger alphabet and others Configurations can be generalized.

Das Beispiel fuehrt schrittweise zu dem Kern des Verfahrens hin, den gemusterten Codes (hier eingefuehrter Begriff), die sodann ausfuehrlich beschrieben werden. Die Beschreibung erfolgt also "von aussen nach innen".The Example leads step by step to the core of the process, the patterned code (term introduced here), which is then exhaustive to be discribed. The description is thus "from outside to inside".

Ausgangspunkt ist als "Ursprungscode" ein String der Gesamtlaenge L mit einem zu codierendes Alphabet von bis zu 2 hoch k Symbolen: z.B. sind fuer das Alphabet "0", "1", .."9", ",", ".", "–", "?", "!", "/" mit 16 Symbolen k = 4 Bits pro Zeichen erforderlich.
(bei weniger als 16 Ursprungssymbolen kann bei gleicher Codelaenge in einem Vorverarbeitungsschritt hier schon eine gewisse Redundanz eingebaut werden).
The starting point is a string of the total length L with an alphabet of up to 2 high k symbols to be coded, eg "0", "1", .. "9", ",", "." , "-", "?", "!", "/" With 16 symbols k = 4 bits per character required.
(With less than 16 symbols, a certain amount of redundancy can already be built in at a same code length in a preprocessing step).

Hierfuer wird in einem ersten Schritt ein binaerer Code definiert, der binaere Ursprungscode, mit Laenge n = k und Mindestdistanz d = 1. Ist im Beispiel der Ursprungscode 16 Zeichen lang, so entsteht zunaechst ein binaerer Ursprunsgcode mit 16·4 = 64 Bit.Therefor In a first step, a binary code is defined, the binary one Original code, with length n = k and minimum distance d = 1. Is in For example, if the original code is 16 characters long, the result is initially binary origin code with 16 x 4 = 64 bits.

Dieser Code wird optional um einen Header mit einer typischerweise kleinen Anzahl von Bits erweitert, im Beispiel 8 Bit. Der Header traegt insbesondere Information ueber das Alphabet des Ursprungscodes, ggf. auch ueber die Laenge des Ursprungscodes, ein ggf. vorab eingsetztes Komprimierverfahren, etc., optional auch ueber die Groesse der Matrix. Der so entstandene Code wird binaerer Startcode genannt.This Code is optionally a header with a typically small Number of bits expanded, 8 bits in the example. The header carries in particular information about the alphabet of the original code, if necessary also over the length of the original code, if necessary a pre-set Compression method, etc., optionally also about the size of the matrix. The resulting code is called a binary startup code.

Header BeispielHeader example

  • Header = 00000000: Alphabet = {"0", "1", ... "9", ",", ".", "–", "/"}. Redundanz und Codierung entsprechend Beispiel.Header = 00000000: Alphabet = {"0", "1", ... "9", ",", ".", "-", "/"}. redundancy and coding according to example.
  • Header = 00000001: Alphabet = {"0", "1", ... "9", "A", "B", ... "Z".","}. Redundanz und Codierung entsprechend Beispiel.Header = 00000001: Alphabet = {"0", "1", ... "9", "A", "B", ... "Z". ","}. redundancy and coding according to example.
  • Header = 10000000: Alphabet wie bei 00000000, Redundanz und Codierung jedoch modifiziert.Header = 10000000: Alphabet as at 00000000, redundancy and coding, however, modified.
  • Header = 10000001: Alphabet wie bei 00000001, Redundanz und Codierung jedoch modifiziert. etc.Header = 10000001: Alphabet as at 00000001, redundancy and coding, however, modified. Etc.

Im Beispiel hat der Header 8 Bit, der binaere Startcode hat also 72 Bit.in the For example, the header has 8 bits, so the binary start code has 72 Bit.

Der binaere Startcode wird nun um eine Anzahl von Pruefbits ergaenzt. Diese Pruefbits dienen spaeter beim Decodieren nicht der Fehlerkorrektur, sondern der Fehlerdetektion, um nicht erkennbare Codes zurueckweisen zu koennen. Guenstig ist z.B. der Hamming Code; bei ihm ist mit geringem Aufwand eine sehr hohe Restfehlerwahrscheinlichkeit erreichbar.Of the binary start code is now supplemented by a number of check bits. These check bits are not used for error correction later in decoding, but error detection to reject unrecognizable codes to be able to. Efficient is e.g. the Hamming Code; with him is with little effort a very high residual error probability achievable.

Randbemerkung:Side note:

Bei Rueckweisungen koennen bei Zeitsignalen und entsprechenden Protokollen Wiederholungen der Uebertragung ausgeloest werden, ggf. mit veraenderter Uebertragungsrate. Dem entspricht bei einer Bildauswertung das Einlesen eines neuen Bildes, ggf., mit veraenderten Randbedingungen (Beleuchtung, Kameraeinstellung etc.).at Cancellations can be made for time signals and corresponding protocols Repeats of the transmission are triggered, possibly with changed Transmission rate. This corresponds to the reading in a picture evaluation a new image, if necessary, with changed boundary conditions (lighting, Camera setting etc.).

Im Beispiel werden fuer insgesamt 72 Bits 8 Paritybits eingesetzt (z.B. Hamming Code mit 7 Pruefbits plus ein weiteres Pruefbit, das die ersten 7 Pruefbits einschliesst). Grundsaetzlich genuegen bei geringeren Anspruechen jedoch auch kleinere Ergaenzungen. Im Beispiel hat der Code nun insgesamt 72 + 8 = 80 Bit. Dieser Code wird nun Primaercode genannt.in the For example, 8 parity bits are used for a total of 72 bits (e.g. Hamming code with 7 check bits plus another check bit that the first 7 check bits included). Basically suffice for smaller claims but also smaller supplements. In the example, the code has now a total of 72 + 8 = 80 bits. This code is now called primary code.

Der Primaercode wird nun in moeglichst gleich lange Teile aufgespalten mit einer bestimmten Hoechstlaenge, im Beispiel in 16 Bloecke a 5 Bit, Primaerbloecke genannt. Diese Primaerblöcke werden nun als Binaerzahlen interpretiert, also als Codes mit k = 5, n = 5, d = 1 im Beispiel. Die Primaerbloecke werden nun umcodiert in sogenannte erweiterte Primaerbloecke. Die Menge der erweiterten Primaerbloecke stellt einen Code dar mit n > k und d > 1, erweiterter Primaercode genannt.Of the Primary code is now split into as long as possible parts with a certain maximum length, in the example in 16 blocks a 5 bits, called Primaerbloecke. These primary blocks are now called binary numbers interpreted as codes with k = 5, n = 5, d = 1 in the example. The Primaerbloecke are now recoded into so-called extended Primaerbloecke. The amount of extended Primaerbloecke provides a code with n> k and d> 1, extended Called primary code.

Diese Erweiterung wird bei der Decodierung zur Fehlerkorrektur eingesetzt.These Extension is used during the decoding for error correction.

Man bemerke, dass sich die Paritybits auf den gesamten Code beziehen, waehrend die letztgenannte Codeerweiterung blockweise realisiert ist.you note that the parity bits refer to the entire code, while the latter code extension realized in blocks is.

Diese Codeerweiterung kann nun mittels einer Codeergaenzung (sog. systematischer Code mit z.B. Paritybits) realisiert sein, vorzugsweise jedoch in Form eines sog. nichtsystematischen Codes, bei dem zwischen der uebertragenen Information und der Redundanzinformation nicht mehr direkt unterschieden werden kann.These Code extension can now be done by means of a code delimitation (so-called systematic Code with e.g. Parity bits), but preferably in Form of a so-called non-systematic code, in which between the transmitted information and the redundancy information no longer can be distinguished directly.

Hier ein Beispiel eines nichtsystematischen erweiterten Primaercodes mit k = 5, n = 9 und d = 3: 00000 000000000 10000 100000011 00001 111000000 10001 011000011 00010 100110000 10010 000110011 00011 011110000 10011 111110011 00100 010101000 10100 110101011 00101 101101000 10101 001101011 00110 110011000 10110 010011011 00111 001011000 10111 101011011 01000 110100100 11000 010100111 01001 001100100 11001 101100111 01010 010010100 11010 110010111 01011 101010100 11011 001010111 01100 100001100 11100 000001111 01101 011001100 11101 111001111 01110 000111100 11110 100111111 01111 111111100 11111 011111111 Here is an example of a non-systematic extended primary code with k = 5, n = 9 and d = 3: 00000 000000000 10000 100000011 00001 111000000 10001 011000011 00010 100110000 10010 000110011 00011 011110000 10011 111110011 00100 010101000 10100 110101011 00101 101101000 10101 001101011 00110 110011000 10110 010011011 00111 001011000 10111 101011011 01000 110100100 11000 010100111 01001 001100100 11001 101100111 01010 010010100 11010 110010111 01011 101010100 11011 001010111 01100 100001100 11100 000001111 01,101 011001100 11101 111001111 01110 000111100 11110 100111111 01111 111111100 11111 011111111

Hier ein einfacherer nichtsystematischer erweiterter Primaercode mit k = 5, n = 6 und d = 2: 00000 000000 00000 100001 00001 110000 00001 010001 00010 101000 00010 001001 .... .... 01111 011110 01111 111111 Here is a simpler non-systematic extended prima code with k = 5, n = 6 and d = 2: 00000 000000 00000 100001 00001 110000 00001 010001 00010 101000 00010 001001 .... .... 01111 011110 01111 111111

Im folgenden Beispiel wird der erste hochredundante Code verwendet. Damit koennen mit algebraischer Decodierung 1-Bit-Fehler korrigiert werden, mit zuverlaessigkeitsoptimierender Decodierung 3-Bit-Fehler. Aus den 16 Primaercode-Bloecken a 5 Bit, entstehen so 16 Bloecke von erweiterten Primaercodeworten mit je 9 Bit.in the The following example uses the first highly redundant code. This allows algebraic decoding to correct 1-bit errors become 3-bit errors with reliability-optimized decoding. From the 16 primary code blocks a 5-bit, so 16 blocks of extended Primaer codewords with 9 bits each.

Nun wird ein zunaechst konventionelles Interleaving durchgefuehrt. Durch Vertauschen von Zeilen und Spalten werden 16 9-Bit-Bioecke zu 9 16-Bit-Bioecken. Die 16-Bit-Bloecke koennen in kleinere Bloecke zerlegt werden;, hier je 4 4-Bit-Bloecke. Im Beispiel entstehen also 36 Bloecke von je 4 Bit. Die so entstandenen 4-Bit-Codes werden ZWISCHENCODES genannt.Now an initially conventional interleaving is performed. By swapping lines and Columns will be 16 9-bit bio-corners to 9 16-bit biocoins. The 16-bit blocks can be broken down into smaller blocks, here 4 4-bit blocks each. In the example, 36 blocks of 4 bits each are created. The resulting 4-bit codes are called INTERCODES.

Die Zwischencodes werden nun wiederum erweitert (systematisch oder nichtsystematisch), wobei der sog. INSELCODE entsteht.The Intermediate codes are now extended again (systematically or non-systematically), whereby the so-called ISLAND CODE arises.

Diese Inselcodes werden nun erfindungsgemaess systematisch platziert. Systematische Platzierung wird weiter unten genauer erlaeutert.These Island codes are now systematically placed according to the invention. Systematic placement is further explained below.

Inselcodes sind nun erfindungsgemaess GEMUSTERTE CODES.island codes are now ENGINEERED CODES according to the invention.

Gemusterte Codes (hier fuer diese Erfindung neu eingefuehrte Definition) sind Codes, die ganz spezielle, weiter unten erlaeuterte, oertliche (zeitliche) Platzierungsvorschriften für die Symbole einhalten, mit dem Ziel einer moeglichst guten Streuung des Codealphabets innerhalb der Codeworte, nach einem vorgegebenen System.patterned Codes (here newly introduced definition for this invention) are Codes that are very special, explained below, local (temporal) Placement rules for to keep the symbols, with the aim of the best possible diversification the code alphabet within the code words, according to a given system.

Die Darstellung von gemusterten Codes geschieht streng ortsbezogen bzw. zeitbezogen; bei der Beschreibung eines Inselcodes spielt immer die oertliche/zeitliche Anordnung der Symbole eine Rolle.

  • – Die Inselcodes werden bei zweidimensionaler bildhafter Codierung, z.B. einem Matrixcode, als zweidimensionale Anordnung der Bits dargestellt.
  • – Die Inselcodes werden bei eindimensionaler Codierung (z.B. Zeitsignalen) in strenger oertlicher/zeitlicher Reihenfolge dargestellt, d.h. ein Vertauschen der Zeichenpositionen ist nicht erlaubt.
(Anmerkung: vertauscht man sonst bei einem Code, der nicht gemusterter Code ist, die Zeichenpositionen immer in gleicher Weise, so hat das auf alle weiteren Eigenschaften keinen Einfluss).The representation of patterned codes is strictly local or time related; When describing an island code, the local / temporal arrangement of the symbols always plays a role.
  • - The island codes are displayed in two-dimensional pictorial encoding, such as a matrix code, as a two-dimensional arrangement of the bits.
  • - The island codes are displayed in one-dimensional coding (eg time signals) in strict local / temporal order, ie a swapping of the character positions is not allowed.
(Note: if you otherwise swap the character positions for a code that is not patterned code, then the same applies to all other properties).

Anmerkung: Die Anordnung muss nicht rechteckfoermig oder quadratisch sein; es sind beliebige Anordnungen mit fester relativer Geometrie der Zeichenpositionen moeglich. Auch koennen die ganzen Inseln, je nach freier Definitionsmoeglichkeit, beliebig gedreht angeordnet sein; wichtig ist nur die immer gleichbleibende RELATIVE Anordnung aller Zeichen untereinander.Annotation: The arrangement need not be rectangular or square; they are arbitrary arrangements with fixed relative geometry Character positions possible. Also, the whole islands, depending on free Definitionmeglichkeit, be arranged arbitrarily rotated; important is only the always consistent RELATIVE arrangement of all Characters among each other.

Hierzu ein Beispiel:Here is an example:

Es gibt mit 4 Bit langen Zwischencodes insgesamt 16 moegliche Zwischencodeworte. Diese werden z.B. fuer eine Matrixcodierung in die folgenden Inselcodes gewandelt, mit 6 Bit in einer 2×3-Anordnug: Beispiel 4 Bit Zwischencode, 6 Bit INSELCODE: 0000 011 1000 001 001 101 0001 011 1001 001 010 110 0010 010 1010 011 011 100 0011 101 1011 010 001 101 0100 101 1100 010 010 110 0101 100 1101 101 011 100 0110 110 1110 100 001 101 0111 110 1111 100 010 110 There are a total of 16 possible intermediate code words with 4-bit intermediate codes. These are converted into the following island codes, for example, for a matrix coding, with 6 bits in a 2 × 3 arrangement: Example 4 bits intermediate code, 6 bits ISLAND CODE: 0000 011 1000 001 001 101 0001 011 1001 001 010 110 0010 010 1010 011 011 100 0011 101 1011 010 001 101 0100 101 1100 010 010 110 0101 100 1101 101 011 100 0110 110 1110 100 001 101 0111 110 1111 100 010 110

Die wesentlichste Eigenschaft eines binaeren gemusterten Codes (und damit eines Inselcodes) ist die Mindestforderung, dass jedes der beiden Symbole mindestens einmal vorkommt (bei Erweiterung auf hoeherwertige Codes muss das fuer mindestens zwei der Symbole zutreffen, idealerweise fuer alle Symbole). Die Streuung soll nach einem bestimmten System erfolgen, so dass man Regeln angeben kann, nach denen man in bestimmten lokalen Untermengen der Zeichen alle Symbole mindestens n mal, mit n >= 1, findet. Ein weiterer Wunsch an einen guten Inselcode ist, dass er eine Mindestdistanz d >= 2 besitzen sollte.The most essential property of a binary patterned code (and thus of an island code) is the minimum requirement that each of the two symbols occur at least once (when extending to higher quality codes, this must be true for at least two of the symbols, ideally for all symbols). The scattering should be done according to a certain system, so that one can specify rules according to which one in certain local subsets of characters find all symbols at least n times, with n> = 1. Another desire for a good island code is that it should have a minimum distance d> = 2.

Zweck der lokalen Streuung der Symbole ist es, beim Demodulationsvorgang, aufgrund lokaler Vergleiche notwendigerweise unterschiedlicher Symbole (und/oder notwendigerweise gleicher Symbole), Zuverlaessigkeitsmasse herleiten zu koennen!purpose the local scattering of the symbols is, during the demodulation process, due to local comparisons of necessarily different symbols (and / or necessarily the same symbols), Reliability mass to deduce

Hier die vorteilhaften Eigenschaften des oben angegebenen Inselcodes:

  • a) Die Anzahl der Einsen ist immer ungerade. Daher gilt d >= 2.
  • b) Jedes Symbol kommt dreimal vor.
  • c) in den Zeilen kommt jedes Symbol mindestens einmal vor.
  • d) Bei spaltenweiser Betrachtung ist zu erkennen: Entweder – in allen 3 Spalten sind die Symbole jeweils unterschiedlich (→ 3 lokale Vergleiche moeglich) Oder – in einer Spalte sind die Symbole unterschiedlich, in den beiden verbleibenden Spalten, mit jeweils gleichen Symbolen, sind die Symbole von Spalte zu Spalte unterschiedlich. (→ 3 lokale Vergleiche: einmal spaltenweise, zweimal zeilenweise)
Here are the advantageous properties of the island code given above:
  • a) The number of ones is always odd. Therefore, d> = 2.
  • b) Each symbol occurs three times.
  • c) in the lines, each symbol occurs at least once.
  • d) For column-by-column observation it can be seen: Either - in all 3 columns the symbols are different (→ 3 local comparisons possible) Or - in one column the symbols are different, in the two remaining columns, each with the same symbols, are the Symbols vary from column to column. (→ 3 local comparisons: once in columns, twice in rows)

Eine Systematik gemusterter Codes und damit moeglicher Inselcodes wird unten angegeben.A Systematics of patterned codes and thus possible island codes given below.

Systematische PlatzierungSystematic placement

Die Inselcodes werden erfindungsgemaess (auf der Matrix bzw. in der Zeit) systemtisch platziert.The Island codes are inventively (on the matrix or in the Time) systemically placed.

Die Inselcodes sind aus erweiterten Primaercodes entstanden; jeder Inselcode ist damit einer Anzahl von erweiterten Primaercodes zugeordnet. Systematische Platzierung bedeutet nun, fuer Inselcodes, die zugeordnete erweiterte Primaercodes gemeinsam haben, der oertliche (zeitliche) Mindestabstand, einen Mindestwert uebersteigt oder dass solche Inselcodes, im Rahmen der durch die Groesse der Codematrix gegebenen Moeglichkeiten (bzw einer maximal ertraeglichen Zwischenspeicherkapazitaet und eines Zeitverzugs bei der Decodierung), moeglichst weit auseinander zu liegen kommen.The Island codes have arisen from extended primary codes; every island code is thus assigned to a number of extended primary codes. Systematic placement now means, for island codes, the associated have common extended primary codes, the local (temporal) Minimum distance, exceeds a minimum value or that such island codes, in the context of the possibilities given by the size of the code matrix (or a maximum ertraeglichen cache memory and a delay in the decoding), as far as possible apart to come to rest.

Im vorliegenden Beispiel erhaelt man eine 6×6-Anordnung von 4-Bit-Zwischencodes (und damit 6-Bit-Inselcodes), worin jeweils 2×2-Anordnungen dieser Codes aus unterschiedlichen erweiterten Primaercodes stammen und solche Zwischencodes, die mindestens einen (von 4) erweiterten Primaercodes gemeinsam haben, den hier maximalen Abstand von 2 Platzierungsinrementen zueinander haben.in the In this example, a 6x6 array of 4-bit intermediate codes is obtained (and thus 6-bit island codes), wherein each 2 x 2 arrays of these codes come from different extended primary codes and such Intermediate codes that have at least one (out of 4) extended primary codes have in common, the here maximum distance of 2 placement increments have each other.

Je nach Anwendungsgesichtpunkten wird beispielsweise der mittlere oder der minimale oertliche Abstand zwischen solchen Inselcodes maximiert.ever For application purposes, for example, the middle or the minimum local distance between such island codes is maximized.

Zusaetzlich sollte eine weitere Bedingung erfuellt sein:
Bei gemusterten Codes spielt, wie gesagt, die Platzierung der Symbole eine Rolle. Aus Gruenden, die weiter unten klar werden (Demodulation bei gemusterten Codes, s.u.), sollten die Symbole eines einzelnen Inselcodes selbst jedoch moeglichst nahe beisammen liegen, die Inselcodes sollten also moeglichst kompakte Bereiche haben; beispielsweise ist die oben angegebene 2×3-Form guenstiger eine 1×6-Form. Allgemein guenstig im Zweidimensionalen sind also quadratische oder gleichseitig-hexagonale Formen.
In addition, another condition should be satisfied:
For patterned codes, as I said, the placement of symbols plays a role. For reasons that will become clearer below (demodulation of patterned codes, see below), the symbols of a single island code itself should, however, be as close together as possible, so the island codes should have as compact a range as possible; for example, the above-mentioned 2 × 3-shape is more favorable a 1 × 6-shape. Generally favorable in the two-dimensional are therefore quadratic or equilateral hexagonal forms.

Bei der Platzierung der Symbole wird also darauf geachtet: Inselcodes, die aus gemeinsamen zugehoerigen erweiterten Primaercodes entstanden sind, sollen moeglichst weit voneinander entfernt sein, die Symbole eines einzelnen Inselcodes liegen andererseits moeglichst nahe beisammen.at the placement of the symbols is thus taken care of: island codes, which originated from common associated extended codes of primacy are, should be as far apart as possible, the symbols On the other hand, a single island code is as close as possible to each other.

DECODIERUNG:DECODE:

Decodierung der Inselcodes:Decode the island codes:

Die vorteilhafte Ausnutzung der Eigenschaften gemusterter Codes zur Decodierung mit Zuverlaessigkeitsinformation sei anhand des hier dargestellten Inselcodes aufgezeigt.The Advantageous exploitation of the properties of patterned codes for Decoding with reliability information is based on here shown island codes shown.

Vorbemerkung: Obwohl der Mindestabstand dieses Inselcodes d = 2 ist, koennen unter Ausnutzung von Zuverlaessigkeitsinformation 1-Bit-Fehler korrigiert werden (algebraische Methoden benoetigen dafuer d >= 3). Es ist ein allgemeiner Vorteil der Zuverlaessigkeitsdecodierung gegenueber algebraischer Decodierung, dass bei geradzahligem Mindestabstand grundsaetzlich mehr Fehler korrigiert werden koennen als bea algebraischer Decodierung.Preliminary remark: Although the minimum distance of this island code is d = 2, 1-bit errors can be corrected by using reliability information (algebraic methods require this) > = 3). It is a general advantage of reliability decoding versus algebraic decoding that, with even minimum spacing, more errors can be corrected in principle than bea algebraic decoding.

Bezeichnungen:designations:

Die Symbole des oben angegebenen 2×3-Inselcodes werden im folgenden bezeichnet mit:
ace
bdf
The symbols of the above-mentioned 2 × 3 island code are hereinafter referred to as:
ace
bdf

Bei nicht zu grossen Inselcodes kann man eine "brute force"-Decodierung realisieren, die darin besteht, dass alle moeglichen Codeworte aufgezaehlt werden und fuer jedes moegliche Codewort die zugehoerige Zuverlaessigkeit berechnet wird. Der Decodierer entscheidet sich fuer das Codewort mit der hoechsten Zuverlaessigkeit. Anhand dieser, im folgenden Brute-Force-Decodierung genannten Methode sei im folgenden erlaeutert, wie man die Zuverlaessigkeitswerte vorteilhaft berechnen und nutzen kann.at not too big island codes can one a "brute force" decoding realize that consists in that all possible code words counted and for each possible codeword the Zugehoerige reliability is calculated. The decoder decides for the codeword with the highest reliability. Based on this, below Brute force decoding The method mentioned below is explained as the reliability values calculate and use advantageous.

Das erste moegliche Codewort (s.o.) ist
0000 011
001,
also a = 0, b = 0, c = 1, d = 0, e = 1, f = 1.
The first possible codeword (see above) is
0000 011
001,
that is, a = 0, b = 0, c = 1, d = 0, e = 1, f = 1.

Der Demodulator berechnet nun Zuverlaessigkeitswerte z je für die Ergebnisse 0 und 1. Im einfachsten Ansatz geschieht dies aus je einem Zeichen, also z(a = 1) = ..., z(a = 0) = ... . Die Summe dieser zwei Zuverlaessigkeitswerte muss nicht notwendigerweise normiert sein. Der Decodierer entscheidet nun auf das moegliche Codewort, fuer das die Summe der Zuverlaessigkeitswerte maximal ist.Of the Demodulator now calculates reliability values z each for the results 0 and 1. In the simplest approach this is done from one character each, that is, z (a = 1) = ..., z (a = 0) = .... The sum of these two reliability values does not necessarily have to be normalized. The decoder decides Now on the possible codeword, for which the sum of the reliability values is maximum.

Dabei ergibt sich:

  • – Bereits damit ist, da die Mindestdistanz des Inselcodes >= 2 ist, eine Fehlerkorrektur moeglich.
  • – Bereits damit ist eine signaladaptive Demodulation moeglich, wie weiter unten beschrieben wird.
This results in:
  • Already with this, since the minimum distance of the island code is> = 2, an error correction is possible.
  • Already with this, a signal-adaptive demodulation is possible, as will be described below.

Eine sich aus der Praxis der Demodulationsaufgabe ergebende, wesentliche, erfindungsgemaesse Verbesserung ergibt sich dadurch, dass der Demodulator Zuverlaessigkeitswerte paarweise oder tripeweise oder quedrupelweise etc. berechnet. Im folgenden betrachten wir paarweise Betrachtung:
Der Demodulator berechnet speziell fuer den Code
011 (ace
001 bdf)
(wir befinden uns bei einer Brute-Force-Decodierung) die Zuverlaessigkeitswerte fuer solche Paare, die bei diesem Codewort unterschiedliche Symbole haben, also
z(a = 0, c = 1), z(a = 0, e = 1), z(a = 0, f = 1),
z(b = 0, c = 1), z(b = 0, e = 1), z(b = 0, f = 1),
z(c = 1, a = 0), z(c = 1, b = 0), z(c = 1, d = 0),
z(d = 0, c = 1), z(d = 0, e = 1), z(d = 0, f = 1),
z(e = 1, a = 0), z(e = 1, b = 0), z(e = 1, d = 0),
z(f = 1, a = 0), z(f = 1, b = 0), z(f = 1, d = 0).
An essential improvement according to the invention resulting from the practice of the demodulation task results from the fact that the demodulator calculates reliability values in pairs or tripwisely or quedrupelweise, etc. In the following we consider pairwise consideration:
The demodulator calculates specifically for the code
011 (ace
001 bdf)
(we are in a brute-force decoding), the reliability values for those pairs that have different symbols in this codeword, ie
z (a = 0, c = 1), z (a = 0, e = 1), z (a = 0, f = 1),
z (b = 0, c = 1), z (b = 0, e = 1), z (b = 0, f = 1),
z (c = 1, a = 0), z (c = 1, b = 0), z (c = 1, d = 0),
z (d = 0, c = 1), z (d = 0, e = 1), z (d = 0, f = 1),
z (e = 1, a = 0), z (e = 1, b = 0), z (e = 1, d = 0),
z (f = 1, a = 0), z (f = 1, b = 0), z (f = 1, d = 0).

Nun wird die Zuverlaessigkeit fuer die Einzelergebnisse dieses Codeworts berechnet. Eine naheliegende Rechenvorschrift ist das arithmetische Mittel:
Z(a = 0):= (z(a = 0, c = 1) + z(a = 0, e = 1) + z(a = 0, f = 1))/3.
Z(b = 0):= (z(b = 0, c = 1) + ....
...
Now the reliability for the individual results of this codeword is calculated. An obvious calculation rule is the arithmetic mean:
Z (a = 0): = (z (a = 0, c = 1) + z (a = 0, e = 1) + z (a = 0, f = 1)) / 3.
Z (b = 0): = (z (b = 0, c = 1) + ....
...

Diese Rechenvorschrift fuehrt schon automatisch zu einer gewissen Fehlerkorrektur. Vorteilhafter ist jedoch erfindungsgemaess eine nichtlineare Rechenvorschrift, die einzelne oder gar mehrere "Ausreisser" in den einzelnen Termen unterdrueckt. Vorteilhaft sind Verfahren, die auf dem Vergleich der Signale von verschiedenen, ABER BENACHBARTEN Matrixzellen beruhen (automatische Lokaladaption).These Calculation rule automatically leads to a certain error correction. However, according to the invention, a non-linear calculation rule is more advantageous, the single or even several "outliers" in the individual Terms are suppressed. Advantageous are methods that are on the comparison the signals from different, but benign matrix cells are based (automatic local adaptation).

Zum Unterdruecken von Ausreissern (maximal einmal nach unten, maximal einmal nach oben) wird erfindungsgemaess vorgeschlagen:
Z(a = 0):= Median (z(a = 0, c = 1), z(a = 0, e = 1), z(a = 0, f = 1)).
Z(b = 0):= Median (z(b = 0, c = 1), ...
To suppress outliers (maximum once down, at most once up) is proposed according to the invention:
Z (a = 0): = median (z (a = 0, c = 1), z (a = 0, e = 1), z (a = 0, f = 1)).
Z (b = 0): = median (z (b = 0, c = 1), ...

Zum Unterdruecken von einfachen Ausreissern, entweder nach unten oder oben, wird vorgeschlagen:
Z(a = 0):= Median( (z(a = 0, c = 1) + z(a = 0, e = 1))/2,
(z(a = 0, c = 1) + z(a = 0, f = 1))/2,
(z(a = 0, e = 1) + z(a = 0, f = 1))/2
).
Z(b = 0):= Median((z(b = 0, c = 1) + ....
To suppress simple outliers, either down or up, it is suggested:
Z (a = 0): = median ((z (a = 0, c = 1) + z (a = 0, e = 1)) / 2,
(z (a = 0, c = 1) + z (a = 0, f = 1)) / 2,
(z (a = 0, e = 1) + z (a = 0, f = 1)) / 2
).
Z (b = 0): = median ((z (b = 0, c = 1) + ....

Die Gesamtzuverlaessigkeit fuer das Codewort ergibt sich typischerweise aus der Summe der Einzelzuverlaessigkeiten.The Overall reliability for the codeword typically results from the sum of individual reliabilities.

Das System entscheidet bei Hard Decision fuer das Codewort mit der hoechsten Gesamtzuverlaessigkeit. Das System liefert bei Soft Decision lediglich fuer jedes Codewort die dazugehoerige Gesamtzuverlaessigkeit.The System decides on hard decision for the codeword with the highest Gesamtzuverlaessigkeit. The system only provides soft decision for each code word the associated total reliability.

Liegt als Beispiel das hier angenommene Codewort (a = 0, b = 0, c = 1, d = 0, e = 1, f = 1) tatsaechlich vor, und die Matrixzelle e oder f sind im Signal beliebig gestoert, so wird dennoch das Signal in Matrixzelle a korrekt demoduliert, und das geschieht AUTOMATISCH unter Ausnutzung der einer Vergleichsprozedur mit der speziell hier zu a unterschiedlichen und ungestoerten Matrixzelle c! D.h. bei Hard Decision wird die richtige Entscheidung gefaellt; bei Soft Decision ist der zugehoerige Zuverlaessigkeitswert korrekt und durch die gestoerte Matrixzelle unbeeinflusst, sodass eine nachfolgende zuverlaessigkeitsoptimierende (typisch: Viterbi-)Decodierung korrekte Ergebnisse liefert.Lies as an example the codeword assumed here (a = 0, b = 0, c = 1, d = 0, e = 1, f = 1), and the matrix cell e or f are arbitrarily disturbed in the signal, nevertheless the signal in Matrix cell a is correctly demodulated and this is done AUTOMATICALLY taking advantage of a comparison procedure with the specifically here to a different and undistorted matrix cell c! That at Hard Decision is the right choice; at Soft Decision, the associated reliability value is correct and correct the interfered matrix cell unaffected, so that a subsequent reliability-optimizing (typically: Viterbi) decoding correct Delivers results.

Die grundlegenden Vorteile der Decodierung von gemusterten Codes sind bereits anhand dieses einfachen Beispiels erkennbar:
Niederfrequente Schwankungen in Zeitsignalen (Fading, Phasendrift etc), systematische Fehler bei Bildinhalten (z.B. Beleuchtungsunterschiede von Bild zu Bild, Beleuchtungsinhomogenitaet), systematische Fehler bei optisch zu lesenden Beschriftungen, Fehler bei der Bildaufnahme (z.B. Blooming), Schwankungen von Oberflaecheneigenschaften der abgebildeten Objekte, ... Eine Vielzahl von realen Problemen bei der Demodulation kann bei gemusterter Codierung ganz oder teilweise geloest werden.
The basic advantages of decoding patterned codes are already apparent from this simple example:
Low-frequency fluctuations in time signals (fading, phase drift etc), systematic errors in image content (eg image-to-image illumination, illumination inhomogeneity), systematic errors in captions to be read optically, errors in image acquisition (eg blooming), variations in surface properties of the imaged objects, ... A multitude of real problems in demodulation can be partially or completely solved with patterned coding.

Wir sind nun beim Kern des Verfahrens angelangt:
Gemusterte Codes ermoeglichen, wie weiter unten genauer ausgefuehrt, bei der Demodulation eine verteilte Selbst-Referenzierung oder Selbst-Normierung, der sie diese Moeglichkeiten verdanken. Die Selbstreferenzierung findet bei der Demodulation statt; aufgrund der Verteilung ist sie selbst wieder fehlertolerant. Die verteilte Referenz ist (ausser bei trivialer gemusterter Codierung, Definition siehe unten) nicht ein einfach eingestreutes zusaetzliches Referenzsignal, sondern Bestandteil des, zur Fehlerkorrektur auf hoeherer Ebene, ohnehin redundant codierten Signals selbst.
We have now reached the core of the procedure:
Patterned codes, as explained in more detail below, allow for distributed self-referencing or self-normalization in demodulation, to which they owe these possibilities. Self-referencing takes place during demodulation; Due to the distribution, it is again fault tolerant. The distributed reference is (except for trivial patterned coding, see below for definition) not a simply interspersed additional reference signal, but part of the error correction on a higher level, anyway redundantly coded signal itself.

Die Selbstreferenzierung geschieht in erster Linie lokal, da sich immer unterschiedliche Symbole eines gemusterten Codeworts vorzugsweise in kompakten oertlichen/zeitlichen Bereichen befinden; daraus resultiert eine automatische Adaption an niederfrequente Schwankungen oder systematische Abweichungen.The Self referencing happens primarily locally, as always different symbols of a patterned codeword preferably located in compact local / temporal areas; this results an automatic adaptation to low-frequency fluctuations or systematic deviations.

Umgekehrt jedoch wird die codierte Information aufgrund der systematischen Platzierung moeglichst weit verteilt, wodurch lokale buendelhafte Stoerungen, die auf lokaler Ebene trotzdem nicht zu beheben sind, korrigiert werden koennen.Vice versa however, the coded information is due to the systematic Placement spread as far as possible, making local buendelhafte Problems that still can not be resolved at the local level are corrected can be.

Ein einfaches Beispiel der fehlertoleranten Selbstreferenzierung haben wir bereits bei der oben beschriebenen Unterdrueckung von Ausreissern mittels Median-Operation kennengelernt. Das Prinzip wird unten unter "Selbstreferenzierung" anhand von Beispielen genauer erlaeutert.One have a simple example of fault tolerant self referencing we already in the above-described suppression of outliers met by median surgery. The principle is outlined below under "self-referencing" using examples Explained in more detail.

Bei grossen Inselcodes verbietet sich die Brute-Force Decodierung naturgemaess, da der Aufwand exponentiell mit der Laenge der Codeworte waechst. Nicht-Brute-Force Decodierung von Inselcodes wird unten unter "iterative gemusterte Codes" im Abschnitt "Systematik gemusterter Codes" anhand eines Beispiels beschrieben.at big island codes, the brute force decoding forbids naturally, because the effort grows exponentially with the length of the code words. Non-brute force decoding of island codes is below "iterative patterned Codes "in the section" scheme of patterned Codes "based on a Example described.

Aus der Decodierung der Inselcodes entstehen so die Zwischencodes.Out The decoding of the island codes thus creates the intermediate codes.

Mit jedem Zwischencode kann optional sein Zuverlaessigkeitswert weitergereicht werden (Soft Decision), um anschliessend eine weitere zuverlaessigkeitsoptimierende Decodierung zu ermoeglichen:With Each intermediate code can optionally have its reliability value passed on (Soft Decision) to then another reliability-optimizing To enable decoding:

Weitere Decodierschritte:Further decoding steps:

Durch Umkehrung der Platzierungs- und Interleave-Vorschrift entstehen die erweiterten Primaerbloecke, die nun decodiert werden zu den Primaerbloecken.By Reversal of the placement and interleave rule arise the extended Primaerbloecke, which are now decoded to the Primaerbloecken.

Dies kann geschehen

  • a) mit bekannten Methoden, unter Vernachlaessigkeit der eigentlich zur Verfuegung stehenden Zuverlaessigkeitsinformation
  • b) zuverlaessigkeitsoptimierend, mittels bekannter Verfahren, die typischerweise auf Dynamischer Optimierung beruhen.
This can happen
  • a) using known methods, neglecting the reliability information actually available
  • b) reliability-optimizing, by means of known methods, which are typically based on dynamic optimization.

Die restlichen Decodierschritte ergeben sich unmittelbar:
Zusammensetzen der Primaerbloecke, Ueberpruefung der Paritybits (daraus folgend ggf. Rueckweisung), Herausnahme des Headers, (vom Header ggf. abhaengige) Rueckcodierung in den Ursprungscode.
The remaining decoding steps are immediate:
Compilation of the primer blocks, checking of the parity bits (resulting in rejection if necessary), removal of the header, (possibly dependent on the header) return coding into the original code.

Betrachtung der CoderatenConsideration of code rates

Im hier aufgefuehrten Beispiel hat der Matrixcode insgesamt 24 × 24 = 576 Bit, waehrend der binaere Startcode insgesamt 72 Bit lang ist. Dies entspricht einer relativ geringen Coderate von 72/576, also 12,5%, jedoch bei sehr hoher Sicherheit der Decodierung:
Grob gesprochen duerfen bei diesem Beispiel, falls man durchweg zuverlaessigkeitsoptimierende Decodierung verwendet, von je 9 disjunkten Gruppen von Inseln, je drei Inseln komplett gestoert sein (d = 3 fuer erweiterten Primaercode) und zusaetzlich darf in allen noch verbleibenden Inseln eine Matrixzelle massiv gestoert sein (u.U. sogar zwei) oder praktisch alle Matrixzellen der Insel duerfen aufgrund der korrigierenden Wirkung beim Demodulieren geringfuegig gestoert sein; ZUSAeTZLICH duerfen ALLE Matrixzellen jeder Insel, global oder inselweise, TENDENZIELL GLEICHARTIG gestoert sein! Ueber die Paritybits die Moeglichkeit einer Rueckweisung, falls das Signal noch staerker gestoert ist.
In the example shown here, the matrix code has a total of 24 × 24 = 576 bits, while the binary start code has a total of 72 bits. This corresponds to a relatively low code rate of 72/576, ie 12.5%, but with very high security of the decoding:
Roughly speaking, in this example, if you consistently use reliability-optimizing decoding, each of 9 disjoint groups of islands, each of three islands may be completely disturbed (d = 3 for extended primary code) and, in addition, a matrix cell may be massively disturbed in all remaining islands ( possibly even two) or virtually all matrix cells of the island may be slightly disturbed due to the corrective effect of demodulating; IN ADDITION, ALL of the matrix cells of each island, globally or island-wise, may be TERRITORALLY LIKELY disturbed! About the parity bits the possibility of a rejection, if the signal is disturbed even more.

Je nach Umfang des Ursprungsalphabets, der maximal erlaubten Groesse der Matrix (des Zeitabschnittes) und je nach Erfordernissen an die Sicherheit kann das Verfahren sinngemaess mit geringerer oder noch hoeherer Redundanz realisiert werden.ever according to the scope of the original alphabet, the maximum permitted size the matrix (of the time period) and as required to the Certainly, the procedure can be analogous with lesser or still higher redundancy can be realized.

Hierzu kann man insbesondere eine geringere Redundanz beim Uebergang vom Primaercode zum erweiterten Primaercode verwenden (der oben angegebene Code mit 5-auf-9-Bit-Erweiterung ist nicht-optimal; er wurde im Beispiel nur zur Erleichterung der Erlaeuterung gewaehlt).For this In particular, a lower redundancy in the transition from Use primary code for extended primary code (the one given above 5-to-9-bit extension code is not-optimal; he was in Example only for the convenience of the explanation chosen).

Beispiel 1:Example 1:

Eine d = 2 Erweiterung des 80-Bit Primaercodes, aufgefasst als 16 × 5 Bit, auf 6 Bit fuehrt zu 16 × 6 = 96 Bit erweitertem Binaercode. Bei einer Breite des Zwischencodes von 6 Bit, verteilt auf 4 × 4 = 16 Positionen, der zu Inselcodes mit je 8 Bit erweitert wird, ergeben sich insgesamt 16 × 8 = 128 Bit fuer die Matrix. D. h. die Coderate ist 72/128 entsprechend ca. 0,57 Prozent.A d = 2 extension of the 80-bit primary code, construed as 16 × 5 bits, on 6 bits leads to 16 × 6 = 96 bit extended binary code. With a width of the intermediate code of 6 bits, spread over 4 × 4 = 16 positions, which is extended to 8-bit island codes, result in a total of 16 × 8 = 128 bits for the matrix. Ie. the code rate is 72/128 accordingly about 0.57 percent.

Beispiel 2:Example 2:

Eine d = 2 Erweiterung des 80-Bit Primaercodes, aufgefasst als 16 × 5 Bit, auf 6 Bit fuehrt zu 16 × 6 = 96 Bit erweitertem Binaercode. Bei einer Breite des Zwischencodes von 8 Bit, verteilt auf 3 × 4 = 12 Positionen, der zu Inselcodes mit je 9 Bit erweitert wird, ergeben sich insgesamt 12 × 9 = 108 Bit; Coderate 72/108 entsprechend ca. 0,66 Prozent.A d = 2 extension of the 80-bit primary code, construed as 16 × 5 bits, on 6 bits leads to 16 × 6 = 96 bit extended binary code. With a width of the intermediate code 8 bits, spread over 3 × 4 = 12 positions, which is extended to island codes with 9 bits each, result in a total of 12 × 9 = 108 bits; Code rate 72/108 corresponding to approx. 0.66 percent.

Die Coderaten bei Anwendung des Verfahrens werden, fuer durch vollstaendige Aufzaehlung der Codeworte definierte gemusterte Codes, nach diesen Rechenbeispielen also bei typisch 10% ... 65% liegen.The Code rates when using the method, for by complete Aufzaehlung the codewords defined patterned codes, according to these So calculation examples are typically 10% ... 65%.

Die unten eingefuehrten iterativen gemusterten Codes haben im allgemeinen guenstigere Coderaten als durch Aufzaehlung der Codeworte definierte gemusterte Codes.The In general, iterative patterned codes introduced below have more favorable code rates than defined by listing the code words patterned codes.

Selbstreferenzierung:self-referencing:

Ueber Selbstreferenzierung ist eine signaladaptive Demodulation moeglich.About Self referencing is signal adaptive demodulation possible.

Siehe hierzu 1. Die Zellen sind entweder "schwarz" oder "weiss". Die mittleren Grauwerte einer Zelle liegen zwischen g = 0 (schwarz) und g = 10 (weiss). Fuer jede Zelle werden einzelne Zuverlaessigkeitswerte berechnet, sie liegen zwischen z = 0 (sehr unzuverlaessig) und z = 10 (sehr zuverlaessig).See also 1 , The cells are either "black" or "white". The mean gray values of a cell are between g = 0 (black) and g = 10 (white). For each cell, individual reliability values are calculated, ranging between z = 0 (very unreliable) and z = 10 (very reliable).

Zuverlaessigkeiten werden getrennt berechnet fuer schwarz und weiss und muessen sich nicht zu 10 ergaenzen.

  • Fall 1, siehe 1: Berechnung alleine aus den einzelnen Zellinhalten. Die Zuverlaessigkeitswerte ergeben sich direkt aus den mittleren Grauwerten (1 oben; Zuverlaessigkeit alleine vom mittleren Grauwert abhaengig), gegebenenfalls unter Beachtung weiterer Kriterien wie z.B. eines Homogenitaetskriteriums (1 unten; unterschiedliche Zuverlaessigkeiten z bei gleichem mittleren Grauwert g).
  • Fall 2, siehe 2: Berechnung unter Beachtung weiterer Zellen (betrachtet werden im Beispiel zwei Zellen in der Naehe), mit der Hypothese dass diese Nachbarzellen schwarz bzw. weiss sind. Dabei werden, wie im Fall 1, lediglich die mittleren Grauwerte betrachtet, gegebenenfalls unter Beachtung weiterer Kriterien wie z.B. eines Homogenitaetskriteriums.
  • Fall 3, siehe 3: Berechnung unter Beachtung weiterer Zellen und Hypothesen, wie im Fall 2, jedoch ohne Beachtung der mittleren Grauwerte, ausserdem erfolgt ein pixelweiser Bild- (bzw Signal-)Vergleich. Bei dieser Vorgehensweise erfolgt nicht nur eine automatische Adaption an Eigenschaften wie z.B. Kontrastschwankungen, sondern auch eine Adaption an sich systematisch aendernde lokale Formen.
Reliability is calculated separately for black and white and does not have to be 10.
  • Case 1, see 1 : Calculation alone from the individual cell contents. The reliability values result directly from the mean gray values ( 1 above; Reliability depends solely on the average gray value), if appropriate taking into account further criteria such as eg a homogeneity criterion ( 1 below; different reliability z at the same mean gray value g).
  • Case 2, see 2 : Calculation taking into account further cells (considered in the example two cells in the vicinity), with the hypothesis that these neighboring cells are black or white. In this case, as in case 1, only the mean gray values are considered, if appropriate taking into account further criteria such as eg a homogeneity criterion.
  • Case 3, see 3 : Calculation taking into account further cells and hypotheses, as in the case of 2, but without observing the mean gray values, in addition, a pixel-wise image (or signal) comparison is carried out. In this approach, not only an automatic adaptation to properties such as contrast fluctuations, but also an adaptation to systematically changing local forms takes place.

4 zeigt ein Vorgehen nach 3, jedoch stehen hier fuer die verschiedenen Symbole gleich mehrere Vergleichszellen (je 5 im Beispiel) zur Verfuegung. Zur Berechnung der Zuverlaessigleit wird der Median der einzelnen Vergleichsergebnisse herangezogen. 4 shows a procedure 3 , but there are several comparison cells (5 each in the example) available for the different symbols. The median of the individual comparison results is used to calculate the reliability.

Durch die auf Vergleich basierenden Zuverlaessigkeitsmasse wird die gewuenschte Lokaladaption erreicht, sowohl an schwankende Mittelwerte als auch Signalformen betreffend.By the comparison-based reliability mass will be as desired Local adaptation achieved, both to fluctuating averages as well Concerning waveforms.

Der Decodierer betrachtet fuer jedes moegliche Codewort solche Zellpaare, die hypothetisch gleiche bzw. unterschiedliche Symbole haben, berechnet die dementsprechenden Zuverlaessigkeitswerte und berechnet darauf basierend fuer jedes Codewort die Gesamtzuverlaessigkeit, wie oben mittels Summe oder Median oder sonstiger Mittelwertsoperatoren, und entscheidet auf das Codewort mit der hoechsten Gesamtzuverlaessigkeit.Of the Decoder looks at such cell pairs for each possible codeword, have the hypothetical same or different symbols calculated the corresponding reliability values and calculated on it based on the total reliability for each codeword, as above by means of sum or median or other mean value operators, and decides on the codeword with the highest overall reliability.

Auf diese Weise adaptiert das Gesamt-Zuverlaessigkeitsmass eines Codeworts automatisch an lokale und/oder systematische Fehler wie z.B. Kontrastminderung, Fading, Pasenjitter, Veraenderung der charakteristischen bildhaften Erscheinungsform innerhalb einer Zelle (Blooming bei uebestrahlten Glanzlichern, Verlaufen von Druckerschwaerze bei falsch eingestelltem InkJet, Praegecharakteristik bei abgenutztem Praegewerkzeug). Beispiel: Binaer codierter Matrixcode mit Zellen, in denen sich Striche unterschiedlicher Richtung (+ 45 Grad, - 45 Grad) befinden, wie z.B. in [XER] beschrieben (allerdings nicht als gemusterter Code). Die folgenden Fehler werden ueber das hier angegebene Verfahren herausgerechnet:

  • – faelschlicherweise schraeg eingestelle Beschriftungseinrichtung: z.B. Strichrichtung +55/-35 Grad anstelle von +45/-45 Grad,
  • – Verdrehung durch Synchronisationsfehler beim Lokalisieren der Matrix,
  • – falsch eingestellte Tintenmenge bei der Beschriftungseinheit, Tinte geht zur Neige,
  • – schwankende Helligkeit der Hintergrundflaeche,
  • – bei verformend aufgebrachter Markierung der Oberflaeche mittels Ritzen oder Praegen ist das Erscheidnungsbild der einzelnen Striche stark von der Beleuchtungsrichtung abhaengig (z.B. werden aus punktfoermigen Mustern kreisfoermige oder Sichelfoermige); die Veraenderungen verhalten sich lokal in gleicher oder sehnlicher Wiese, d.h. Zellen mit gleichen Symbolen sehen lokal untereinander sehnlich aus, obwohl sie, je nach Beleuchtung, sehr unterschiedlich aussehen koennen.
In this way, the overall reliability measure of a codeword automatically adapts to local and / or systematic errors such as contrast reduction, fading, page jitter, changing the characteristic pictorial appearance within a cell (blooming in bright highlights, blurring of printer swirls with misadjusted inkjet, pre-emption characteristics worn preshare tool). Example: Binaer coded matrix code with cells in which lines of different directions (+ 45 degrees, - 45 degrees) are located, as described in [XER] (but not as a patterned code). The following errors are calculated using the procedure specified here:
  • - erroneously schraeg set label device: eg line direction + 55 / -35 degrees instead of + 45 / -45 degrees,
  • - skew due to synchronization error when locating the matrix,
  • - incorrectly set ink quantity at the labeling unit, ink is running out,
  • - fluctuating brightness of the background area,
  • In the case of deformed applied marking of the surface by means of scratches or engraving, the image of the formation of the individual lines is highly dependent on the direction of illumination (eg, dot-like patterns become circular or sickle-shaped); the changes behave locally in the same or sinewy way, ie cells with the same symbols look very close to each other locally, although they may look very different depending on the lighting.

Die Methode ist immer einsetzbar, da aufgund der Eigenschaften von gemusterten Codes garantiert ist, dass in einer gewissen Umgebung sicher Zellpaare mit gleichen und solche mit unterschiedlichen Symbolen existieren, nach bekannten Gesetzmaessigkeiten.The Method is always applicable because of the properties of patterned ones Codes is guaranteed to be safe in a certain environment cell pairs exist with the same and those with different symbols, according to known laws.

Bei guten gemusterten Codes existieren innerhalb eines gewissen Bereichs immer eine gewisse Anzahl von Symbolen von jeder Sorte. Dadurch kann zusaetzlich von der Ausreisser tolerierenden Eigenschaft des Median-Operators Gebrauch gemacht werden, wie oben beschrieben.at Good patterned codes exist within a certain range always a certain number of symbols of each kind. Thereby In addition, the outlier tolerant property of the Median operators, as described above.

Bei den bisher angegebenen Beispielen existieren immer mindestens 2 Symbole jeder Sorte, es ist also fuer eine bestimmte Zelle immer mindestens ein Aehnlichkeitsmass mit mindestens einer Zelle von hypothetisch gleicher und unterschiedlicher Sorte moeglich. Aber auch bei gemusterten Codes, bei denen jedes Symbol nur mindestens einmal vorkommt, ist dies vorteilhaft ausnutzbar: wenn in einer bestimmten Konstellation nur eine Vergleichszelle mit hypothetischem Symbol zur Verfuegung steht, ist auch ein einzelner Vergleich fuer die Berechnunge eines aussagekraeftigen Zuverlaessigkeitswerts nuetzlich.In the examples given so far there are always at least 2 symbols of each variety, so it is always at least one similarity measure for a certain cell with at least one cell of hypo the same and different varieties are possible. However, even with patterned codes in which each symbol only occurs at least once, this can advantageously be exploited: if only one comparison cell with a hypothetical symbol is available in a specific constellation, a single comparison is also useful for the calculation of a meaningful reliability value.

Systematik von gemusterten Codes:System of patterned codes:

Zur Erleichterung der Erlaeuterungen fuehren wir die folgende Unterscheidung ein:

  • – triviale gemusterte Codes
  • – durch vollzaehlige Aufzaehlung definierte gemusterte Codes
  • – iterative gemusterte Codes
To facilitate the explanation, we introduce the following distinction:
  • - trivial patterned codes
  • - patterned codes defined by a full list
  • - iterative patterned codes

Eine weitere Unterscheidungsmoeglichkeit ist die Aufteilung in kontextfreie und kontextsensitive gemusterte Codes. Bei der Platzierung der Symbole von kontextsensitiven gemusterten Codes sind die Symbol-Plazierungsregeln von weit vorher (z.B. eine Zeile zuvor, bei zeilenweiser Arbeitsweise) plazierten Symbolen in der Nachbarschaft abhaengig.A Another distinguishing feature is the division into context-free and context-sensitive patterned codes. When placing the icons of context-sensitive patterned codes are the symbol placement rules from far before (e.g., one line before, line by line) placed adjacent symbols in the neighborhood.

1) triviale gemusterte Codes1) trivial patterned codes

Bei trivialen gemusterten Codes wird das Codewort eines normalen Codes (z.B. Binaerzahl mit/ohne Paritybit; bei der hier beschriebenen Anwendung vorzugsweise der Zwischencode) mit innerhalb einer Region oertlich uneingeschraenkt platzierbaren Symbolen, ergaenzt um ein oder mehrere Symbole (Ergaenzungssymbol).at trivial patterned code becomes the codeword of a normal code (e.g., binary number with / without parity bit; as described herein Application preferably the intermediate code) within a region locally unrestricted placeable symbols, supplemented by one or more Icons (supplement icon).

Erfindungsgemaess geschieht die Erweiterung nach folgenden Regeln:
(Erlaeuterung anhand Alphabet {"0", "1"}):

  • a) Ein Ergaenzungssymbol: – Das Ergaenzungssymbol hat den gegenueber einem speziell festgelegten Zeichen des Codes invertierten Wert (bei laengerem Alphabet kann man z.B. jeweils zyklisch um einen Schritt weiter gehen im Alphabet). – das Ergaenzungssymbol kann vorteilhafterweise auch gegenueber dem im Code am haeufigsten vorkommenden Symbol invertiert sein.
  • b) Zwei Ergaenzungssymbole: – Es handelt sich um die Symbole "0" und "1" an festgelegter Position. Diese Ergaenzungssymbole koennen nun als Referenzsymbol fuer den Vergleich bei der Demodulation verwendet werden. – Das Codewort wird um ein erstes Symbol ergaenzt, das gegenueber dem im Codewort am haeufigsten vorkommenden Symbol invertiert ist und dann um ein weiteres Symbol ergaenzt, das gegenueber dem nun im Codewort UND dem ersten Ergaenzungssymbol am haeufigsten vorkommenden Symbol invertiert ist.
  • c) Mehrere Ergaenzungssymbole wurch wiederholtens Anwenden der Regeln a) und/oder b).
According to the invention, the extension takes place according to the following rules:
(Definitions based on alphabet {"0", "1"}):
  • a) An addition symbol: - The addition symbol has the value inverted with respect to a specially defined character of the code (in the case of a longer alphabet, for example, one can cyclically move one step further in the alphabet). - The supplement symbol may advantageously also be inverted compared to the symbol most frequently occurring in the code.
  • b) Two addition symbols: - These are the symbols "0" and "1" at the specified position. These addition symbols can now be used as a reference symbol for comparison during demodulation. The codeword is supplemented by a first symbol, which is inverted compared to the symbol most frequently occurring in the codeword and then supplemented by another symbol, which is inverted compared to the symbol which is most frequently occurring now in the codeword AND the first supplemental symbol.
  • c) Several supplementary symbols by repeatedly applying the rules a) and / or b).

Triviale gemusterte Codes haben den Nachteil, dass bei kleinem Ergaenzungsumfang (Faelle a, b) der Demodulator auf die Ungestoertheit aller Ergaenzungssymbole "angewiesen" ist, will er sie als Referenzsymbole verwenden, bzw., dass im Fall c) eine erhebliche Erweiterung der Codelaenge zustandekommt, will man ein robustes Decodieren ermoeglichen (mehrere potentielle Referenzsymbole zur Wahl).trivial Patterned codes have the disadvantage that, with a small amount of supplementation (Cases a, b) the demodulator is "dependent" on the immobility of all supplementary symbols, he wants them to use as reference symbols, or that in case c) a significant Extension of the code length comes about, you want a robust Allow decoding (several potential reference symbols for Choice).

Anmerkung: In [DM1] wird unter "redundancy data integrity enhancer" vorgeschlagen, Symbole einfach mehrfach anzuordnen, in freier, aber reproduzierbarer Anordnungsmoeglichkeit. Die Symbole bleiben dabei gleich, die Mindestforderung, dass in einer Umgebung jedes Symbol mindestens einmal vorkommt, ist damit nicht erfuellt. Es handelt sich dabei also nicht um einen (trivial) gemusterten Code.Annotation: In [DM1], under "redundancy data integrity enhancer ", Simple to arrange symbols in a freer but more reproducible way Arrangement possibility. The symbols remain the same, the minimum requirement that in an environment each symbol occurs at least once, is not fulfilled. So this is not one (trivial) patterned code.

2) durch vollzaehlige Aufzaehlung definierte gemusterte Codes2) defined by counting in full patterned codes

Solche Codes werden einfach durch Aufzaehlung aller moeglichen Codewoerter definiert, unter Angabe der geometrischen Anordnung der Symbole im Bild bzw. im Signal.Such Codes become simple by listing all possible code hosts defined, indicating the geometric arrangement of the symbols in the picture or in the signal.

Ein Beispiel eines solchen Codes wurde bei der beispielhaften Erlaeuterung des hier angemeldeten Codierungsverfahrens gegeben (Uebergang vom Zwischencode zum Inselcode).One An example of such a code has been exemplified of the coding procedure applied here (transition from Intermediate code to the island code).

Der Entwurf von umfangreicheren gemusterten Codes, die durch vollzaehlige Aufzaehlung definiert sind, ist jedoch relativ schwierig; ebenso die Umsetzung in ein angepasstes Decodierverfahren, will man vollstaendige Aufzaehlung beim Decodieren vermeiden. Computergestuetzte Entwurfsverfahren koennten hier nuetzlich sein, doch einfacher ist der Entwurf nach dem Ansatz der im folgenden beschriebenen iterativen gemusterten Codes.However, the design of more extensive patterned codes, defined by a full list, is relatively difficult; as well as the conversion into an adapted decoding method, one wants to avoid complete Aufzaehlung when decoding. Computer-aided design procedures could be used here useful, but the design is simpler following the approach of the iterative patterned codes described below.

3) iterative gemusterte Codes3) iterative patterned codes

Iterative gemusterte Codes werden anhand des Beispiels 5 bis 7 erlaeutert.Iterative patterned codes are based on the example 5 to 7 explained.

Der gemusterte Code setze sich zusammen aus Bloecken von je drei untereinander platzierten Symbolen. Die Bloecke werden, jeweils rechts anfuegend, nebeneinander angeordnet in beliebig waehlbarer Anzahl N.Of the patterned code is composed of blocks of three each placed symbols. The bloecke are, each on the right anfuegend, arranged next to each other in any number of N.

Fuer die Auswahl der Symbole innerhalb eines Blocks gelte die folgende Regel:
Bei einem rechts neu anzufuegenden Block muessen mindestens zwei Symbole sich von den entprechenden Symbolen des Vorgaengerblocks unterscheiden. 5 unten zeigt ein Beispiel, wobei die Platzierung ganz rechts nicht erlaubt ist. 6 oben zeigt das zugehoerige Trellis.
For the selection of symbols within a block, the following rule applies:
For a block to be added to the right, at least two symbols must be different from the corresponding symbols of the previous block. 5 Below is an example where placement on the far right is not allowed. 6 above shows the belonging Trellis.

Damit sind von den an sich moeglichen 2 hoch 3 Codewoertern des neuen Blocks die ausgeschlossen, bei denen

  • – alle Symbole gleich bleiben (trifft fuer ein Codewort zu), oder
  • – genau ein Symbol sich aendert (trifft fuer 3 Codewoerter zu).
Thus, of the possible per se 2 high 3 code words of the new block excluded those in which
  • - all symbols remain the same (applies to a codeword), or
  • - exactly one symbol changes (applies to 3 codewords).

Es sind also vier (= 2 hoch 2) von acht (= 2 hoch 3) Codewoertern ausgeschlossen. Damit ist die Coderate ca. 2/3.It So four (= 2 to the power of 2) out of eight (= 2 to 3) code domains are excluded. Thus, the code rate is about 2/3.

Nimmt man 5er Bloecke mit der Vorschrift, dass in analoger Weise mindestens jeweils mindestens 3 der 5 Symbole wechseln, so ist die Coderate grob 3/5, wenn mindestens jeweils mindestens 2 der 5 Symbole wechseln muessen, ist die Coderate grob 4/5. Mit iterativ gemusterten Codes kann man also, unter Beibehaltung aller Vorteile, sehr gute Coderaten erzielen.takes one block of 5 with the provision that in a similar way at least change at least 3 of the 5 symbols, so is the code rate roughly 3/5, if at least each of at least 2 of the 5 symbols change the code rate is roughly 4/5. With iteratively patterned codes So you can, while retaining all the advantages, very good code rates achieve.

Aufgrund der staendig wechselnden Symbole an mindestens 2 von drei Positionen, findet der Demodulator Wahlmoeglichkeit fuer lokale Rerenzsymbole. Die Handhabung ist analog der im urspruenglichen Beispiel angegebenen Vorgehensweise fuer Codes, die durch vollzaehlige Aufzaehlung definiert sind, nur dass nun nicht der gesamte Code betrachtet wird, sondern immer nur wenige (ausreichend: zwei) benachbarte Codebloecke. Die Verwendung von mehr als 2 Vergleichsbloecken wird weiter unten geschildert anhand von 7.Due to the constantly changing symbols in at least two out of three positions, the demodulator has the option of selecting local reminder symbols. The handling is analogous to the procedure given in the original example for codes that are defined by counting in full, except that now not the entire code is considered, but always only a few (sufficient: two) adjacent code blocks. The use of more than 2 comparison blocks is described below with reference to 7 ,

Die Decodierung erfolgt bevorzugt mittels Dynamischer Optimierung, unter Zugrundelegung des Trellis, wobei als Guetemasse Zuverlaessigkeitsmasse herangezogen werden, wie sie oben geschildert wurden, nur wird jetzt nicht in einem Schritt ueber alle moeglichen Codeworte des Inselcodes optimiert, sondern es wird in entspprechender Weise ein Gesamtzuverlaessigkeitsmass ueber die Codewoerter der Bloecke berechnet, die an dem gerade betrachteten Uebergang im Netz beteiligt sind.The Decoding preferably takes place by means of dynamic optimization, under On the basis of the trellis, whereby as the mass of mass reliability will be consulted, as described above, only now not in one step over all possible codewords of the island code but it becomes a total reliability measure in a corresponding manner Calculated over the codeweeler of the blocks, which looked at the just Transition in the network are involved.

Anmerkufg: Die uebliche Vorgehensweise bei der Dynamischen Optimierung eines Guetemasses ist wie folgt: man geht spaltenweise durch das Trellis, berechnet fuer jeden Knoten denjenigen Vorgaengerkonten, mit dem zusammen die maximale Guete entsteht, und speichert diesen Guetewert und einen Rueckwaertszeiger zu diesem Vorgaengerknoten. Am Ende bestimmt man in der letzten Spalte die global maximale Gesamtguete; von dem betreffenden Knoten ausgehend rueckwaerts durch die gespeicherten Zeiger erhaelt man die Loesung (das Codewort) mit der maximalen Gesamtguete.Anmerkufg: The usual procedure for the dynamic optimization of a Guetemasses is as follows: you go through the trellis in columns, calculates for each node the predecessor accounts with which together the maximum value is created and stores this value and a backward pointer to this predecessor node. At the end determine in the last column the global maximum total; from the node in question back through the stored Pointer you get the solution (the codeword) with the maximum Total Dumaguete.

7 illustriert die Auswahl von Referenzsymbolen (Referenzierung siehe Beispiele 3 und 4) fuer den Code 5 und 6: Der fett gezeichnete Pfeil kennzeichnet den gerade betrachteten Kantenuebergang des Trellis. Zur Berechnung von Zuverlaessigkeitswerten fuer die mit Fragezeichen gekennzeichnete Zelle stehen unmittelbar am Kantenuebergang vier Vergleichszellen mit hypothetischem Wert "s" und eine Vergleichszelle mit hypothetischem Wert "w" zur Verfuegung. 7 illustrates the selection of reference symbols (referencing see examples) 3 and 4 ) for the code 5 and 6 : The bold arrow indicates the currently considered edge transition of the trellis. To calculate reliability values for the question mark cell, four comparison cells with a hypothetical value "s" and a comparison cell with a hypothetical value "w" are available directly at the edge transition.

Ein Problem besteht nun dann, wenn man von jedem moeglichen hypothetischen Wert mehrere Vergleichszellen zur Verfuegung haben moechte, um beispielsweise ueber den Median-Operator ausreichend Stoersicherheit herstellen zu koennen. Das einfache Hinzunehmen weiterer Codeblocks und Aufzaehlen von Varianten wuerde zu einer kombinatorischen Explosion fuehren. Die erfindungsgemaesse Loesung besteht nun darin, dass man sich entlang den bei der dynamischen Optimierung speziell fuer die gerade betrachtete Ausgangszelle erstellten Rueckwaertszeigern (gestrichelter Pfeil) hangelt und die dort gefundenen weiteren Zellen mit dem dort angegebenen hypothetischen Wert verwendet; dies ist moeglich, da der von der gerade betrachteten Ausgangszelle aus gesehene Rueckwaertsweg just dann die endgueltige Loesung darstellen wird, wenn die Ausgangszelle beim Bestimmen der globalen Loesung durch Rueckwaertsverfolgen der gesetzten Zeiger beschritten wird. Auf diese Weise wird bei der Bestimmung von Referenzzellen die ohnehin vorgenommene Dynamische Optimierung vorteilhaft zur Verhinderung einer kombinatorischen Explosion ausgenutzt. In 7 trifft man so durch Rueckwaertsgehen entlang dem gestrichelten Pfeil ein Codewort mit zwei verwendbaren Zellen mit hypothetischem Wert "w", so dass also insgesamt drei solche Zellen zum Vergleich zur Verfuegung stehen.A problem exists if one wants to have available several comparison cells of every possible hypothetical value in order to be able to produce sufficient interference safety, for example via the median operator. Simply adding more blocks of code and listing variants would result in a combinatorial explosion. The solution according to the invention consists in following the dynamic optimization especially for the currently considered one Originated backspace pointers (dashed arrow) and used the other cells found there with the hypothetical value given there; this is possible since the return path seen by the source cell under consideration will be the final solution just then, if the source cell is trod on determining the global solution by backtracking the set pointers. In this way, in the determination of reference cells, the already performed dynamic optimization is advantageously exploited to prevent a combinatorial explosion. In 7 By reversing along the dashed arrow, one finds a code word with two usable cells with a hypothetical value "w", so that a total of three such cells are available for comparison.

Es bleibt noch die Frage nach dem Mindestabstand d.It the question remains about the minimum distance d.

Schon bei d = 1 ergibt sich so, aufgrund der durch den gemusterten Code gegebenen Redundanz und die Referenzierungsmoeglichkeit, eine gute Fehlerkorrektur.Nice at d = 1, it does so because of the patterned code given redundancy and the referencing ability, a good one Error correction.

Um einen bestimmten Mindestabstand d > 1 sicherstellen zu koennen, wird erfindungsgemaess vorgeschlagen, nach einer bestimmten Anzahl von Bloecken eine Paritaet zu fordern. Diese Paritaet kann sich auf die Wertigkeit von Bloecken oder aller Zellen oder auch getrennt nach verschiedenen Zellen beziehen (z.B. die der 1. und die der zweiten Zeile eines Blockes getrennt). Die flogende Erläuterung geschieht zell-bezogen, über alle Zellen also über die Anzahl der "Einsen".Around a certain minimum distance d> 1 to be able to ensure, it is proposed according to the invention to demand a parity after a certain number of blocks. This parity can affect the valence of blocks or all Cells or separately according to different cells (e.g. the 1st and the second line of a block separated). The flying explanation happens cell-related, about all cells over the number of "ones".

Bei binaeren Codes mit Alphabet {0,1} kann beispielsweise die Forderung gestellt werden, dass
mit n1 = Anzahl der "Einsen" gilt:

  • a) n1 MOD 2 = 1 (Anzahl ungerade), oder → d = 2
  • b) n1 MOD 2 = 0 (Anzahl gerade), oder → d = 2
  • c) m1 MOD 4 = 0 (Anzahl durch 4 teilbar) → d = 3
  • d) m1 MOD 4 = 2 (Anzahl durch 4 teilbar mit Rest 2) → d = 3 etc.
With binary codes with alphabet {0,1}, for example, the requirement can be made that
with n1 = number of "ones" applies:
  • a) n1 MOD 2 = 1 (number odd), or → d = 2
  • b) n1 MOD 2 = 0 (number even), or → d = 2
  • c) m1 MOD 4 = 0 (number divisible by 4) → d = 3
  • d) m1 MOD 4 = 2 (number divisible by 4 with remainder 2) → d = 3 etc.

Bei der Optimierung bedeutet dies im Fall a (bzw. b), dass man beim Vorwaerts-Durchlaufen des Trellis an jedem Knoten eine "doppelte Buchfuehrung" machen muss: man speichert das jeweilige Optimum und den zugehoerigen Rueckwaertszeiger sowohl fuer den Fall "Anzahl der Einsen bisher gerade" als auch fuer den Fall "Anzahl der Einsen bisher ungerade". Dies ist erforderlich, weil in jeder Spalte sowohl eine gerade als auch eine ungerade Anzahl von Einsen hinzukommen kann. Ganz am Ende waehlt man die optimale gerade (bzw. ungerade) Loesung, und waehlt beim Rueckwaertsgehen durch die Zeiger

  • – bei aktuell gerader Anzahl im Block den "geraden Zeiger",
  • – bei aktuell ungerader Anzahl im Block den "ungeraden Zeiger".
In the case of optimization, this means in case a (or b) that you have to do a "double entry" on each node when going through the trellis: you store the respective optimum and the corresponding backward pointer both for the case "number of ones so far "as well as in the case" number of ones so far odd ". This is necessary because in each column both an even and an odd number of ones can be added. At the very end, you choose the optimal even (or odd) solution, and choose when going back through the hands
  • - if the number is currently even in the block, the "straight pointer",
  • - if the number is currently odd in the block, the "odd pointer".

In Fall c) oder d) ist dementsprechend eine "vierfache Buchfuehrung" erforderlich, etc.In Case c) or d) accordingly requires a "quadruple bookkeeping", etc.

Mit iterativ gemusterten Codes koennen grosse Codelaengen erzeugt werden, unter Beibehaltung der inneren lokalen Gemustertheit. Gibt man solchen langen Codes ein oder wenige Paritybits mit, erhaelt man sehr gute Coderaten. Beispiel: 5-Bit-Bloecke mit der Restriktion, dass in aufeinander folgenden Bloecken mindestens zwei Wechsel auftreten muessen, erhaelt man, wie oben bereits erlaeutert, eine Coderate von etwas mehr als 4/5: wir haben bisher vernachlaessigt, dass man beim allerersten Block keine Restriktion hat. Fuegt man am Ende ein einziges Parity-Bit hinzu, so wird dadurch die Vernachlaessigung gerade aufgehoben und die Coderate betraegt exakt 4/5.With iteratively patterned codes, large code lengths can be generated, while maintaining the internal local pattern. Do you give such long codes with or a few parity bits with, you get very good Code rates. Example: 5-bit block with the restriction that in successive blocks at least two bills occur If you have to, you get, as already explained above, a code rate from just over 4/5: we have neglected that one at the very first block has no restriction. If you end up in the end adding a single parity bit, this neglects it just canceled and the code rate is exactly 4/5.

Das Hinzufuegen eines einzelnen Parity-Bits wuerde die gegebene Blockstruktur stoeren. Stattdessen kann man genausogut fuer den letzten anzufuegenden Block die Restriktion der Einhaltung der betreffenden Paritaet fordern. An der Betrachtung zur Coderate aendert dies nichts.The Adding a single parity bit would give the given block structure to disturb. Instead, you can just as well for the last to be added Block the restriction of compliance with the parity. This does not change anything when considering the code rate.

Bei iterativ gemusterten Codes wird erst der ganze – ggf. mit Parity – abgeschlossene Code als ein Codewort aufgefasst.at iteratively patterned codes will be the whole - possibly with parity - completed Code interpreted as a code word.

Kontextsensitive gemusterte Codes:Context-sensitive patterned codes:

Bei kontextsensitiven gemusterten Codes sind die Bloecke nicht nur von dem unmittelbar zuvor platzierten Block abhaengig.at Context-sensitive patterned codes are not just the blocks of depending on the block placed immediately before.

Ein einfaches Beispiel mit kontextsensitiven gemusterten Codes moege genuegen (8):
Die 2×2-Codebloecke werden zeilenweise gesetzt, wobei die Regel gilt, dass keine voellig schwarzen 2×2 Bloecke und keine voellig weissen 2×2 Bloecke entstehen duerfen, nicht nach links zum Vorgaenger (insoweit handelt es sich um einen iterativen gemusterten Code), aber auch nicht nach oben zu dem bereits weit vorher platzierten Nachbarn (diese Platzierung kann nicht mehr rueckgaengig gemacht werden). Es ergeben sich also situationsabhaengige zusaetzliche Restriktionen: es kann eintreten, dass ENTWEDER Bloecke mit "2× oben schwarz" ODER dass Bloecke mit "2× oben weiss" verboten sind.
A simple example with context-sensitive patterned codes may suffice ( 8th ):
The 2 × 2 code blocks are set line by line, with the rule that no completely black 2 × 2 blocks and no completely white 2 × 2 blocks may be created, not left to the previous page (insofar it is an iterative patterned code) but also not up to the already much-placed neighbor (this placement can not be reversed). There are therefore additional situation-dependent restrictions: it can happen that EITHER blocks with "2 × above black" OR that blocks with "2 × above white" are prohibited.

Kontextsensitive Codes bieten aufgrund ihrer strengen Gemustertheit in allen Richtungen neben der strenger möglichen Selbstreferenzierung Vereinfachungen für die Synchronisation von zweidimensionalen Codes.context-sensitive Codes offer due to their strict pattern in all directions in addition to the strictest possible Self-referencing simplifications for the synchronization of two-dimensional Codes.

Zusaetze:Additions:

Die folgenden moeglichen Zusaetze zu dem Verfahren seien erwaehnt:

  • – Eine erfindungsgemaesse Erweiterung besteht darin, bei zweidimensionalen Signalen die Parities so zu verteilen, dass daraus Orientierungsinformation ableitbar ist. Beispielsweise kann man die obere Haelfte (bzw. die Inselcodes der oberen Haelfte) eines Matrixcodes mit gerader Paritaet und die untere Haelfte mit ungerader Paritaet absichern. Vorteile: es wird fuer diese Information kein extra Platz benoetigt; aufgrund der Verteilung der Information auf den gesamten Code ist die Decodierung fehlertolerant.
  • – Komprimieren des Ursprungscodes – mit oder ohne Header – vor der ersten Erweiterung. Dann ist bei fest vorgegebenem Raum fuer den Gesamtcode normalerweise eine groessere Redundanz erreichbar.
  • – gestufte Redundanz: Aufteilen der Ursprungsinformation in wichtigere und unwichtigere Information; wichtigere Information erhaelt hoehere Redundanz als unwichtigere. Unwichtige Information ggf. direkt, ohne Redundanz codieren.
  • – Die oben angegebene MEDIAN-Funktion kann erfindungsgemaess ersetzt werden durch eine Funktion, die aus n Werten nicht den mittleren Wert herausgreift, sondern beispielweise den Zweit-Groessten oder Viert-Kleinsten oder x-groessten, mit x als einer Funktion von n und x <= n.
The following possible additions to the procedure are mentioned:
  • An extension according to the invention consists in distributing the parities in the case of two-dimensional signals in such a way that orientation information can be derived therefrom. For example, the upper half (or the upper half island codes) of a matrix code with even parity and the lower half with odd parity can be secured. Advantages: no extra space is needed for this information; because of the distribution of information over the entire code, decoding is error tolerant.
  • - Compress the source code - with or without header - before the first extension. Then, given a fixed space for the overall code, usually greater redundancy is achievable.
  • - tiered redundancy: splitting source information into more important and less important information; more important information gets higher redundancy than less important. If necessary, directly encode unimportant information without redundancy.
  • According to the invention, the MEDIAN function given above can be replaced by a function which does not pick the mean value out of n values but, for example, the second-largest or fourth-smallest or x-largest, with x as a function of n and x < = n.

Vorteile:Advantages:

Bei den bekannten zuverlaessigkeitsoptimierenden Verfahren liefert der Demodulator lediglich eine Zuverlaessigkeitsin formation aus dem Signal einzelner Zeichen. Beim hier vorgestellten Verfahren wird die Information über einen Vergleichsprozeß über die Signalabschnitte mehrerer Zeichen gewonnen, wobei eine bekannte Mindestanzahl von Zeichenpaaren gleich bzw. ungleich sein muss; daraus ergibt sich eine differenziertere Signalanalyse und eine bessere Adaption an veränderliche, lokal ähnliche Signalstörungen.at the known reliability-optimizing method provides the Demodulator only a Zuverlaessigkeitsin formation from the Signal of single characters. The method presented here is the information about a comparison process over the Signal portions of several characters won, with a known Minimum number of character pairs must be the same or different; This results in a differentiated signal analysis and a better adaptation to changeable, locally similar Signal interference.

Dieser Vorteil wird umso stärker, je mehr Zellen in einen Vergleich einbezogen werden. Besonders bevorzugt kommt in einem lokalen Bereich jedes Symbol mindestens dreimal vor.This Advantage becomes even stronger the more cells are included in a comparison. Especially preferred In a local area, each symbol occurs at least three times.

Bei Trelliscodierter Modulation (TCM) nach [Ung] wird die Codierung in Bezug auf die Signalkonstellation optimiert, d.h. codierte Folgen von Signalpunkten sollen maximalen euklidischen Abstand haben (siehe z.B. [Frie] S. 309 ff). Bei TCM koennen prinzipiell im Extremfall die Modulationswerte zu aufeinander folgenden Symbolen (oder Symbolgruppen) des gleichen Codeworts alle gleich sein.at Trellis coded modulation (TCM) after [Ung] becomes the encoding optimized with respect to the signal constellation, i. coded sequences of signal points should have maximum Euclidean distance (see, e.g. [Frie] p. 309 ff). In TCM, in principle, in extreme cases Modulation values for consecutive symbols (or groups of symbols) all the same with the same codeword.

Bei gemusterter Codierung hingegen wird sichergestellt, dass innerhalb des gleichen Codeworts immer eine gewisse Streuung ueber verschiedene Symbole stattfindet. Daraus leiten sich die geschliderten Moeglichkeiten der Erhoehung der Stoersicherheit durch Selbstreferenzierung ab.at By contrast, patterned coding ensures that within of the same codeword always a certain dispersion over different Symbols takes place. From this derive the closed possibilities the heightening of the security of failure by self-referencing.

Das Verfahren korrigiert sowohl lokale als auch ausgebreitete Fehler (Buendelfehler) und adaptiert automatisch an sich lansam oder systematisch veraendernde Verhaeltnisse.The Method corrects both local and propagated errors (Bundle defect) and automatically adapts itself lansomely or systematically changing circumstances.

Schwankungen der Signalqualitaet (z.B. Fading bei Zeitsignalen, Helligkeitsschwankungen bei Bildsignalen, zeitliche Aenderungen der Bildcharakteristik bei Bildfolgen) koennen aufgrund der direkten Vergleichsmoeglichkeit herausgerechnet werden, siehe die oben aufgefuehrten Beispiele, mit automatischer Adaption an die Signalcharakteristik. Bei der Decodierung von in Bildern mit abgebildeten Codes wie Matrixcodes/Balkencodes werden flaechige Oberflaechenfehler wie verdunkelnde Flecken aufgrund der Selbstreferenzierung korrigiert, gleichzeitig werden lokale Fehler wie Kratzer aufgrund der Kombination der eingebauten Fehlerkorrektur mit systematischer Platzierung korrigiert. Beide Massnahmen wirken zusammen und stuetzen sich gegenseitig. Das Verfahren adaptiert ueberdies automatich an systematische Signalveraenderungen, wie z.B. die optische Erscheinungsform eines runden Praegeeindrucks, der je nach Beleuchtungsrichtung sich systematisch veraendern kann von Kreisform ueber Kreisringform und Sichelform bis zur Kontrastumkehr. Automatisch finden die Korrekturen lokal eher auf Signalniveau statt, auf globaler Ebene eher auf logischem Niveau.Fluctuations in the signal quality (eg fading in time signals, brightness fluctuations in image signals, temporal changes in the image characteristics in the case of image sequences) can be excluded due to the direct comparability, see the examples listed above, with automatic adaptation to the signal characteristic. When decoding images with mapped codes such as matrix codes / bar codes, flat surface defects such as dark spots due to self-referencing are corrected while local errors such as scratches due to the combination of built-in error correction with systematic placement are corrected. Both measures work together and support each other. The method also automatically adapts to systematic signal changes, such as the visual appearance of a round impression impression, the systematically depending on the lighting direction can change from circular shape over circular ring shape and sickle shape to contrast reversal. Automatically, the corrections take place locally at the signal level, at the global level more at the logical level.

Weitere Vorteile von iterativ gemusterten Codes, gegenueber Faltungscodes:

  • – iterative gemusterte Codes werden nach endlicher Zahl von Iterationsschritten abgebrochen (d.h. sie sind Blockcodes). Daher kann es ueber groessere Bereiche grundsaetzlich keine Probleme mit der sog. katastrophalen Fehlerfortpflanzung geben.
  • – Innerhalb des Codes werden die Zuverlaessigkeitswerte vorzugsweise durch lokale Betrachtung berechnet; Zuverlaessigkeitswerte haengen nicht unbedingt von weiter entfernten Zuverlaessigkeitswerten ab. Auch aus dieser Sicht gibt es sogar innerhalb der Codes keine Fehlerfortpflanzung.
  • – Gute Faltungscodes koennen nur computergestuetzt entworfen werden; es gibt keine systematischen Entwurfsmethoden fuer "gute" Faltungscodes (ja selbst die Definition eines Guetekriteriums ist schwierig). Es gibt andererseits systematische Entwurfsmethoden fuer iterative gemusterte Codes mit angestrebten Eigenschaften, und fuer die Bewertung der Codes, wae anhand der Beispiele aufgezeigt.
  • – Grundsaetzlich koennte man versuchen, die iterativ gemusterten Codes durch Faltung zu erzeugen. Viel einfacher und durchschaubarer ist jedoch die oben geschilderte Vorgehensweise des Entwurfs per Zustandsdiagramm, woraus sich direkt die zugehoerige Trellis-Struktur zum Decodieren ableitet.
  • – Faltungscodes sind insbesondere deshalb beliebt, weil sie mittels Trellisdecodierung "online" decodiert werden koennen (wobei allerdings oft eine kuenstliche Beschneidung der Betrachtungstiefe stattfinden muss). Iterative gemusterte Codes sind ebenfalls mittels Trellis-Decodierung decodierbar, mit dem zusaetzlichen Vorteil der sich exakt wiederholenden Trellis-Struktur, was zusaetzliche Vorteile fuer eine hardwarenahe Realisierung bringt: a) aufgrund der exakt begrenzbaren notwendigen Betrachtungstiefe, b) aufgrund der exakten Wiederholung fuer eine Parallelisierung.
Further advantages of iteratively patterned codes compared to convolutional codes:
  • Iterative patterned codes are aborted after a finite number of iteration steps (ie they are block codes). Therefore, there can be no major problems with so-called catastrophic error propagation over larger areas.
  • Within the code, the reliability values are preferably calculated by local consideration; Reliability values do not necessarily depend on more distant reliability values. Even from this point of view, even within the codes there is no error propagation.
  • - Good convolutional codes can only be designed with computer assistance; there are no systematic design methods for "good" convolutional codes (even the definition of a criterion is difficult). On the other hand, there are systematic design methods for iterative patterned codes with desired properties, and for the evaluation of the codes, as shown by the examples.
  • - Basically, one could try to generate the iteratively patterned codes by convolution. Much simpler and more transparent, however, is the above-described procedure of the design by state diagram, from which directly derives the associated trellis structure for decoding.
  • Convolutional codes are particularly popular because they can be decoded "online" by means of trellis decoding (although often an artificial curtailment of the viewing depth has to take place). Iterative patterned codes are also decodable by means of trellis decoding, with the added advantage of the exactly repeating trellis structure, which provides additional advantages for hardware-near realization: a) due to the exact delineation required depth, b) due to the exact repetition for parallelization ,

Das Verfahren ist fuer mehrdimensionale Signale (speziell Bilder) ebenso einsetzbar wie fuer eindimensionale Signale (speziell Zeitsignale).The Procedure is for multidimensional signals (especially pictures) as well can be used as for one-dimensional signals (especially time signals).

Bei gemusterten Codes ergibt sich im Gesamtbild ein naeherungsweise gleichfoermiges Raster von staendig wechselnden Symbolen. Groessere Bereiche mit immer gleichen Symbolen werden vermieden.at patterned code results in the overall picture approximate homogeneous grid of constantly changing symbols. bigger Areas with always the same symbols are avoided.

Daraus ergeben sich die folgenden Vorteile:

  • – Moeglichkeit zur Selbstsynchronisation; Beispiel: die Abbildung eines gemusterten Matrixcodes fuehrt zu einer Struktur, deren Grundraster man beispielsweise ueber eine Fouriertransformation bestimmen kann. Die fuer eindimensionale Signale bekannte Vorgehensweise der Quadrierung des Signals mit nachfolgender schmalbandiger Filterung wird aufgrund der Gemustertheit des Signals effizienter. Dies gilt insbesondere, wie oben erwähnt, für kontextsensitiv gemusterte Codes. Dieses Selbstsynchronisationsverfahren ist global und entpricht nicht dem laufenden Nachführen entprechend der Lage von Kanten oder inneren Strukturen, wie in [Wi2] wegen welliger/verzogener Papiervorlage vorgeschlagen.
  • – homogenes Erscheinungsbild; aus groesserer Entfernung betrachtet verschwimmen die Zellen; Bei einer Hell-Dunkel-Modulation bilden sich keine hellen oder dunklen Inseln. Die Codierung eignet sich daher auch –
  • – als Grund"farbe" von groesseren, frei gestalteten Elementen,
  • – Als Steanographisches Codierungsmittel in der Kryptographie (aufgrund der Gemustertheit und aufgrund der Stoersicherheit).
This results in the following advantages:
  • - possibility for self-synchronization; Example: the image of a patterned matrix code leads to a structure whose basic grid can be determined, for example, by means of a Fourier transformation. The procedure known for one-dimensional signals of squaring the signal with subsequent narrow-band filtering becomes more efficient due to the patternedness of the signal. This applies in particular, as mentioned above, for context-sensitive patterned codes. This self-synchronization method is global and does not correspond to the ongoing tracking according to the location of edges or internal structures as suggested in [Wi2] for wavy / warped paper original.
  • - homogeneous appearance; seen from a greater distance, the cells blur; In a light-dark modulation, no light or dark islands form. The coding is therefore also suitable -
  • As a reason "color" of larger, free-form elements,
  • - As a Steanographic coding means in cryptography (due to pattern quality and due to the security against interference).

Da gemusterte Codes ueber das gesamte Signal (oder den Grossteil des Signals) hinweg eine Musterung nach bestimmten Regeln fordern, kann auf naheliegende Weise sichergestellt werden, dass bei ausbleibendem Signal immer eine Rueckweisung erfolgt, bzw. die Detektion der Anwesenheit eines Signals gestaltet sich sehr einfach.There patterned codes over the entire signal (or most of the Signal) across a pattern according to certain rules, can be ensured that in the absence of Signal always a rejection takes place, or the detection of presence a signal is very simple.

Nach [Wi1] werden an definierten Stellen eines optisch zu lesenden Datenstreifens Suchmuster zum Vergleich mit den informationstragenden Mustern eingebaut. Daraus wird Musterweise (das wäre hier Zellblockweise) Zuverlässigkeitsinformation z.B. aufgrund von Korrelation abgeleitet.To [Wi1] appear at defined locations of a data strip to be optically read Search pattern built in for comparison with the information-bearing patterns. This will be patterned (that would be here cell blockwise) Reliability information e.g. derived by correlation.

Das hier vorgestellte Verfahren gestattet eine zuverlässigkeitsoptimierende Decodierung, ohne spezielle Suchmuster einbauen zu müssen. Da hier außerdem zellweise gearbeitet wird, wird hier eine viel differenziertere, nichtlineare Bewertung ermöglicht. Aufgrund der global zuverlässigkeitsoptmierenden Vorgehensweise, vorzugsweise mittels Dynamischer Optimierung realisiert, ist es nicht erforderlich, an irgendwelchen Stellen eindeutig richtige Erkennungen zu besitzten, um darauf basierend eine Entscheidungsrückführung auf andere Muster realisieren zu können.The method presented here allows a reliability-optimizing decoding without having to install special search patterns. In addition, as we work here cell by cell, a much more differentiated, non-linear evaluation is made possible here. Due to the global reliability-optimizing approach, preferably implemented by means of dynamic optimization, it is not necessary to have unambiguously correct recognitions in any places, in order to make a decision feedback to others To be able to realize patterns.

In neuerer Zeit wurden die sog. Turbo Codes eingefuehrt [Ber] und erfolgreich eingesetzt. Bei Turbo Codes werden zwei verkettete Faltungscodes, getrennt durch Interleaving, iterativ mittels Soft-in-Soft-out-Viterbi-Decodierung decodiert.In More recently, the so-called turbo codes have been introduced [Ber] and successfully used. Turbo codes are two concatenated convolutional codes, separated by interleaving, iteratively using soft-in-soft-out Viterbi decoding decoded.

Turbo Codes erfordern Faltungscodes mit unendlicher Impulsantwort (IIR = infinite impulse response). Es gilt damit das oben ueber Faltungscodes Gesagte. Die Wirkungsweise von Turbo Codes speziell ist sehr schwierig zu durchschauen, daher gestaltet sich der Entwurf und die Optimierung sehr schwierig. Die iterative Arbeitsweise fuehrt zu nicht vorhersagbarer Rechenzeit.turbo Codes require infinite impulse response convolutional codes (IIR = infinite impulse response). It is thus the above about convolutional codes Said. The operation of turbo codes specifically is very difficult to see through, therefore, the design and the optimization is designed very difficult. The iterative approach leads to unpredictable Computing time.

Quellen:Sources:

  • [Bos] M. Bossert: Kanalcodierung. Teubner 1998.[Bos] M. Bossert: Channel Coding. Teubner 1998.
  • [Fri] B. Friedrichs: Kanalcodierung. Springer 1996.[Fri] B. Friedrichs: Channel coding. Springer 1996.
  • [Zar] R. H. Morelos-Zaragoza: The Art of Error Correcting Coding. Wiley & Sons, April 2002.[Tsar] R.H. Morelos-Zaragoza: The Art of Error Correcting Coding. Wiley & Sons, April 2002.
  • [Ber] C. Berrou, A. Glavieux: Near Optimum Error Correcting Coding and Decoding: Turbo Codes. IEEE Trans. an Communications, Vol. 44, No. 10, Oct. 1996, S. 1261-1271.[Ber] C. Berrou, A. Glavieux: Near Optimum Error Correcting Coding and Decoding: Turbo Codes. IEEE Trans. To Communications, Vol. 44, no. 10, Oct. 1996, pp. 1261-1271.
  • [Ung] G. Ungerboeck: Channel Coding with Multilevel/Phase Signals. IEEE Trans. an Information Theory, Vol. IT-28, No. 1, Jan. 1982, S. 55-67.[Ung] G. Ungerboeck: Channel Coding with Multilevel / Phase Signals. IEEE Trans. An Information Theory, Vol. IT-28, no. 1, Jan. 1982, Pp. 55-67.
  • [DM1] US Patent 5.324.923 [DM1] U.S. Patent 5,324,923
  • [XER] Eurpoaeische Patentanmeldung 0 469 864 A2 [XER] European Patent Application 0 469 864 A2
  • [Wi1] DE 199 26 194 C2 [W i1] DE 199 26 194 C2
  • [Wi2] DE 199 26 197 C1 [Wi2] DE 199 26 197 C1
  • [D1] DE 197 33 466 A1 [D1] DE 197 33 466 A1
  • [D2] WO 81/00476 A1 [D2] WO 81/00476 A1
  • [D3] DE 101 23 406 A1 [D3] DE 101 23 406 A1
  • [D4] DE 695 26 915 T2 [D4] DE 695 26 915 T2

Claims (6)

Signalcode mit eindimensional oder zweidimensional angeordneten Zellen von Signalabschnitten unterschiedlichen Signalverlaufs, die den entprechend unterschiedlichen Symbolen eines Alphabets von N Symbolen, mit N >= 2 zugeordnet sind, dadurch gekennzeichnet, daß – bei eindimensionaler Anordnung der Zellen, insbesondere bei Zeitsignalen mit Zeitsignalabschnitten als Zellen, in einem beliebigen Ausschnitt von f aufeinanderfolgenden Zellen des Signals, f festgesetzt mit f >= N·2 f <= N·N·4, jedes der N Symbole mindestens zweimal, vorzugsweise mindestens dreimal vorkommt. bzw. – bei zweidimensionaler Anordnung der Zellen, insbesondere bei Kennzeichnungen von Oberflächen, vorzugsweise bei verformenden Kennzeichnungen, mindestens eine der folgenden Voraussetzungen a) bis c) erfüllt ist: a) – Die Zellen sind in Zeilenpaketen von je mindestens z Zeilen von Zellen angeordnet, mit z => 2, – Innerhalb eines Zeilenpaketes kommt in einem beliebigen Abschnitt von f aufeinanderfolgenden Zellen, f festgesetzt mit f >= N·2/z f <= N·N·4/z, jedes der N Symbole mindestens einmal, vorzugsweise mindestens zweimal, besonders bevorzugt mindestens dreimal vor. b) – Die Zellen sind in Zeilenpaketen von je mindestens z Zeilen von Zellen angeordnet, mit z => 2, – Innerhalb eines Zeilenpaketes wechseln von Spalte zu Spalte in einem beliebigen Abschnitt von f aufeinanderfolgenden Zellen, f festgesetzt mit f >= N·2/z f <= N·N·4/z, mindestens ein, vorzugsweise mindestens zwei, besonders bevorzugt mindestens drei Zeichen auf ein anderes Symbol. c) – innerhalb eines beliebigen Bereichs von f·g benachbarten Zellen, f und g festgesetzt mit f >= 2 und g >= 2 und f·g <= N·N, kommt jedes der N Symbole mindestens einmal, vorzugsweise mindestens zweimal, besonders bevorzugt mindestens dreimal vor.Signal code with one-dimensionally or two-dimensionally arranged cells of signal sections of different signal course, which are assigned to the correspondingly different symbols of an alphabet of N symbols, where N> = 2, characterized in that - in one-dimensional arrangement of the cells, in particular in time signals with time signal sections as cells, in an arbitrary section of f consecutive cells of the signal, f with f> = N * 2 f <= N * N * 4, each of the N symbols occurs at least twice, preferably at least three times. or - in the case of a two-dimensional arrangement of the cells, in particular in the case of markings on surfaces, preferably with deforming markings, at least one of the following conditions a) to c) is fulfilled: a) the cells are arranged in row packets of at least z rows of cells, with z => 2, - Within a row packet comes in any section of f consecutive cells, f set with f> = N · 2 / zf <= N · N · 4 / z, each of the N symbols at least once, preferably at least twice, more preferably at least three times before. b) - The cells are arranged in row packets of at least z rows of cells, with z => 2, - Within a row packet, change from column to column in any section of f consecutive cells, f fixed with f> = N · 2 / zf <= N · N · 4 / z, at least one, preferably at least two, more preferably at least three characters to another symbol. c) - within an arbitrary range of adjacent cells, f and g fixed with f> = 2 and g> = 2 and f · g <= N · N, each of the N symbols comes at least once, preferably at least twice, more preferably at least three times before. Decodierverfahren für Signalcode nach Anspruch 1 oder für einen Signalcode, der wie folgt beschrieben ist: Aus zweidimensionalen Zellen von Signalabschnitten unter schiedlichen Signalverlaufs, die den entprechend unterschiedlichen Symbolen eines Alphabets mit N Symbolen, mit N >= 2 zugeordnet sind, sind Zellblöcke aus mindestens je 2·2 Zellen zweidimensional angeordnet, bei denen in jedem der Zellblöcke jedes der N Symbole mindestens zweimal, vorzugsweise mindestens dreimal vorkommt, dadurch gekennzeichnet, daß – die Decodierung zumindest über einen Teil des Gesamtsignals zuverlässigkeitsoptimierend durchgeführt wird unter Optimierung eines Gesamtgütemasses, vorzugsweise mittels Dynamischer Optimierung, – wobei in das Gesamtgütemaß mindestens ein Einzelgütemass eingeht, – wobei die Einzelgütemasse berechnet werden aus einer oder mehreren Vergleichsfunktionen, in die Signale von mindestens zwei verschiedenen, vorzugsweise benachbarten Zellen eingehen.A signal code decoding method according to claim 1 or a signal code described as follows: cell blocks of at least each of two-dimensional cells of signal sections of different waveforms corresponding to the correspondingly different symbols of an alphabet of N symbols of N> = 2 2 × 2 cells arranged two-dimensionally, in which each of the N symbols in each of the cell blocks occurs at least twice, preferably at least three times, characterized in that - the decoding at least over a part of the total signal is carried out reliability optimizing optimization of a Gesamtgütemasses, preferably by means of dynamic optimization, - in the Gesamtgütemaß at least one single quality measure received, - the Einzelgütemasse be calculated from one or more comparison functions in the Receive signals from at least two different, preferably adjacent cells. Decodiereinrichtung mit einem Decodierverfahren nach Anspruch 2.Decoding device with a decoding method according to Claim 2. Leseeinrichtung mit einem Decodierverfahren nach Anspruch 2.Reading device with a decoding after Claim 2. Datenträger mit Programm zum Realisieren eines Signalcodes nach Anspruch 1.disk program for realizing a signal code according to claim 1. Datenträger mit Programm zum Decodieren von Signalen mittels eines Decodierverfahrens nach Anspruch 2.disk with a program for decoding signals by means of a decoding method according to claim 2.
DE10307775A 2002-02-22 2003-02-22 Patterned code with robust decoding, in particular signal code, decoding method, decoding device, reading device, and data carrier with program Expired - Fee Related DE10307775B4 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE10307775A DE10307775B4 (en) 2002-02-22 2003-02-22 Patterned code with robust decoding, in particular signal code, decoding method, decoding device, reading device, and data carrier with program

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE10207512.3 2002-02-22
DE10207512 2002-02-22
DE10307775A DE10307775B4 (en) 2002-02-22 2003-02-22 Patterned code with robust decoding, in particular signal code, decoding method, decoding device, reading device, and data carrier with program

Publications (2)

Publication Number Publication Date
DE10307775A1 DE10307775A1 (en) 2003-09-18
DE10307775B4 true DE10307775B4 (en) 2008-04-17

Family

ID=27762409

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10307775A Expired - Fee Related DE10307775B4 (en) 2002-02-22 2003-02-22 Patterned code with robust decoding, in particular signal code, decoding method, decoding device, reading device, and data carrier with program

Country Status (1)

Country Link
DE (1) DE10307775B4 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004063950B4 (en) * 2004-08-07 2009-02-19 Tropf, Hermann channel coding
DE102004038601B4 (en) * 2004-08-07 2006-08-24 Tropf, Hermann Channel coding method and coding device
DE102005037388B4 (en) * 2005-08-08 2007-05-16 Tropf Hermann Channel decoding with associated code

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1981000476A1 (en) * 1979-08-01 1981-02-19 Ncr Co Machine readable code
US5324923A (en) * 1988-05-05 1994-06-28 International Data Matrix, Inc. Apparatus for producing a dynamically variable machine readable binary code and method for reading and producing thereof
DE19733466A1 (en) * 1997-08-02 1999-02-04 Volkswagen Ag Marking system with coding for measuring purposes
DE19926197C1 (en) * 1999-06-09 2000-08-10 Datasound Gmbh Procedure to synchronize decoding of two-dimensional data strips, with specification formed to describe relative position of sensor fields to position of information cells
DE19926194C2 (en) * 1999-06-09 2001-05-10 Datasound Gmbh Data strips and methods for encoding and decoding printed data
DE10123406A1 (en) * 2001-05-15 2002-11-21 Sick Ag Detecting two-dimensional codes involves detecting unreliable image areas whose gray values are close to binarization threshold for particularly attention during error correction process
DE69526915T2 (en) * 1994-07-26 2003-01-23 Metanetics Corp., Fort Myers CODING AND DECODING OF PACKAGE STRIP CODES

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1981000476A1 (en) * 1979-08-01 1981-02-19 Ncr Co Machine readable code
US5324923A (en) * 1988-05-05 1994-06-28 International Data Matrix, Inc. Apparatus for producing a dynamically variable machine readable binary code and method for reading and producing thereof
DE69526915T2 (en) * 1994-07-26 2003-01-23 Metanetics Corp., Fort Myers CODING AND DECODING OF PACKAGE STRIP CODES
DE19733466A1 (en) * 1997-08-02 1999-02-04 Volkswagen Ag Marking system with coding for measuring purposes
DE19926197C1 (en) * 1999-06-09 2000-08-10 Datasound Gmbh Procedure to synchronize decoding of two-dimensional data strips, with specification formed to describe relative position of sensor fields to position of information cells
DE19926194C2 (en) * 1999-06-09 2001-05-10 Datasound Gmbh Data strips and methods for encoding and decoding printed data
DE10123406A1 (en) * 2001-05-15 2002-11-21 Sick Ag Detecting two-dimensional codes involves detecting unreliable image areas whose gray values are close to binarization threshold for particularly attention during error correction process

Also Published As

Publication number Publication date
DE10307775A1 (en) 2003-09-18

Similar Documents

Publication Publication Date Title
DE69635512T2 (en) Method for reading a two-dimensional bar code without a clock signal
DE60213657T2 (en) GENERATION OF GRAPHIC CODES BY HALFTONE GRASPING WITH INTEGRATED GRAPHIC CODING
DE69633893T2 (en) Trellis converter for trellis decoders
EP1260933B1 (en) Processing for the recognition of two-dimensional codes
DE69633908T2 (en) ANTI-HANDZITTER DATA FORMAT READER AND METHOD
DE69328058T2 (en) Coding for a multi-level transmission system
DE69028899T2 (en) Method and device for decoding bar codes with multiple scans
DE69526915T2 (en) CODING AND DECODING OF PACKAGE STRIP CODES
DE2530766C2 (en) Device for controlling a display device for a matrix-like representation of characters
DE19604767A1 (en) Method and device for decoding unresolved, complex bar code symbology profiles with different widths
DE2640414A1 (en) CIRCUIT ARRANGEMENT FOR COMPRESSION CODING USING A CORRELATION BETWEEN TWO-DIMENSIONAL MATRICES DERIVED FROM TWO-VALUE DIGITAL IMAGES
DE2653288A1 (en) METHOD AND ARRANGEMENT FOR REMOVING SPECIFIC BACKGROUND INFORMATION FROM AN IMAGE
DE2930903A1 (en) METHOD AND DEVICE FOR TRANSMITTING FACSIMILE SIGNALS
DE69127544T2 (en) SYSTEM FOR CODED SQUARE AMPLITUDE MODULATION
DE19623318C2 (en) Partial pixel coding and decoding methods
DE2340230A1 (en) METHOD AND DEVICE FOR PREDICTING THE SIGNAL LEVEL VALUE OF A MESSAGE ELEMENT
DE69128935T2 (en) ERROR PROTECTION FOR DATA OF VARIABLE LENGTH
DE69028470T2 (en) Method and device for nested printing
DE10307775B4 (en) Patterned code with robust decoding, in particular signal code, decoding method, decoding device, reading device, and data carrier with program
DE69503807T2 (en) BARCODE DECODING
DE69124529T2 (en) METHOD FOR TRANSFORMING A DITHER IMAGE
DE2340250A1 (en) PROCEDURE FOR CODING A MESSAGE STREAM HAVING A CERTAIN REDUNDANCY
DE69935655T2 (en) METHOD AND DEVICE FOR DECOMPOSITION COMPRESSION
DE3688919T2 (en) Method and device for image data compression.
EP3023916A1 (en) Encoding/decoding of information from a graphical information unit

Legal Events

Date Code Title Description
OR8 Request for search as to paragraph 43 lit. 1 sentence 1 patent law
8105 Search report available
8125 Change of the main classification

Ipc: G06K 112

8110 Request for examination paragraph 44
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee