PatentDe  


Dokumentenidentifikation DE102004038601B4 24.08.2006
Titel Kanalcodierungsverfahren und Codiereinrichtung
Anmelder Tropf, Hermann, 68789 St. Leon-Rot, DE
Vertreter Bettinger und Kollegen, 81679 München
DE-Anmeldedatum 07.08.2004
DE-Aktenzeichen 102004038601
Offenlegungstag 11.05.2006
Veröffentlichungstag der Patenterteilung 24.08.2006
Veröffentlichungstag im Patentblatt 24.08.2006
Free division/divided out on the grounds of lack of unity 102004063950.7
IPC-Hauptklasse H03M 13/03(2006.01)A, F, I, 20051017, B, H, DE
Zusammenfassung Die zu codierende Information wird informationsbitweise codiert bzw. durch die Decodierung zurückgewonnen; bei jedem Codierschritt wird das aktuelle Informationsbit mit einer bestimmten Menge von Bits des entstehenden Codes XOR-verknüpft. Bei der Decodierung werden die Entscheidungen als Mehrheitsentscheid über Vergleichsergebnisse bestimmter Codebits getroffen, vozugsweise unter Verwendung von Fuzzy-XOR-Operationen.
Aufgrund der Verwendung von Vergleichen adaptiert die Decodierung automatisch an Schwankungen von Signaleigenschaften. Die Wirkungsweise ist in ihren Einzelschritten transparent. Dadurch wird es sehr vereinfacht, zur Optimierung eines Gesamtsystems ganz gezielt anwendungsspezifische Modifikationen zur Selbstreferenzierung und Integration der Demodulation in den Decodierungsprozeß einzuführen, mit zuverlässigkeitsoptimierender Decodierung direkt auf Signalebene.

Beschreibung[de]

Die Erfindung betrifft die Kanalcodierung und die dazugehörige Decodierung von Signalen, auf eindimensionale Signale (z.B. Zeitsignale) genauso bezogen wie auf zweidimensionale Signale (z.B. Bilder) sowie entsprechende Codiereinrichtungen.

Sehr beliebt und verbreitet sind Reed-Solomon-(RS)-Codes. Die Decodierung von RS-Codes ist rein algebraisch und für den Ingenieur sehr schwer verständlich und unanschaulich; es gibt keine fertigen Rezepte für die Integration von Soft-Decision-Methoden. Will man anwendungsspezifische Optimierungen eines Gesamtsystems realisieren, so muss man die bekannte (algebraische) Codierung und Decodierung als fertige Blackbox im Gesamtsystem einsetzen; eine Systemoptimierung kann dann nur um diese Box herum realisiert werden, echt verzahnte Modifikationen, die z.B. im Zusammenhang mit der verwendeten Modulationsmethode stehen, und die anwendungsspezifische Integration von Soft-Decision-Methoden sind in der Praxis kaum möglich.

In neuerer Zeit wurden die sog. Turbo Codes eingeführt und erfolgreich eingesetzt. Bei Turbo Codes werden zwei verkettete Faltungscodes, getrennt durch Interleaving, iterativ mittels Soft-in-Soft-out-Viterbi-Decodierung decodiert. Turbo Codes können in bestimmten Fällen erstaunlich stark gestörte Signale decodieren, haben jedoch auch Nachteile: Die iterative Arbeitsweise führt zu nicht vorhersagbarer Rechenzeit; Turbo Codes erfordern Faltungscodes mit unendlicher Impulsantwort (IIR = infinite impulse response). Solche Codes bergen die Gefahr der katastrophalen Fehlerfortpflanzung. Gute Faltungscodes können nur computergestützt entworfen werden; es gibt keine systematischen Entwurfsmethoden für "gute" Faltungscodes (ja selbst die Definition eines Gütekriteriums ist schwierig). Die Wirkungsweise von Turbo Codes ist sehr schwierig zu durchschauen, daher gestalten sich der Entwurf und die Optimierung sehr schwierig.

Der Stand der Technik fehlerkorrigierender Codierung ist beschrieben in R.H. Morelos-Zaragoza, „The Art of Error Correcting Coding", Wiley 2002.

Allgemeine Aufgabe der Erfindung ist es, eine robuste, technisch einfach realisierbare Codierung mit zugehörigen Einrichtungen zur Verfügung zu stellen, deren Wirkungsweise in ihren Einzelschritten transparent ist, so dass für die Optimierung eines Gesamtsystems an verschiedenen Stellen anwendungsspezifische Modifikationen möglich sind.

Vorbemerkung zu hier verwendeten Begriffen:

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 Farbbildsignal wird dementsprechend als zweidimensionales Signal angesprochen, das beispielsweise in den drei unabhängigen Merkmalsdimensionen Farbwinkel, Sättigung und Intensität moduliert ist.

Ein Bild kann zu einem eindimensionalen Signal vorverarbeitet sein, z.B. durch die Abtastung eines Barcodes (1-D-Code).

Ein Matrixcode ist eine zweidimensionale Anordnung von Zellen, wie z.B. bei dem verbreiteten ECC-200-Standard.

Zellen sind bei Bildsignalen kleine Bildbereiche von wenigen Punkten, beispielsweise die (ggf. vorsegmentierten) Zellen eines zweidimensional gedruckten Matrixcodes oder der Bildinhalt von kleinen, das Gesamtbild gleichmäßig aufrasternden Parzellen. Die Zellen können auch nur aus einem Pixel bestehen, dann ist der Begriff Zelle mit dem Begriff Pixel identisch.

Entsprechendes gilt für Zeitsignale, wo die Zellen durch kurze Signalabschnitte und die Pixel durch einzelne Signalwerte repräsentiert sind.

Zellwerte: Interne Muster einer Zelle (Pixelmuster) werden durch Zellwerte repräsentiert. Beispielsweise kann bei einem Matrixcode eine logisch-0-Zelle (Zellwert 0) durch einen senkrechten Balken und eine logisch-1-Zelle (Zellwert 1) durch einen waagrechten Balken realisiert sein, das Flächenmass eines ansonsten nicht weiter spezifizierten Fleckens (Dot), oder aber einfach durch dunkle bzw. helle Pixel, verschiedene Farben etc. Fälle mit mehr als 2 möglichen Zellwerten sind z.B. 1 für rot, 2 für grün, 3 für blau.

Durch Zwischenwerte kann zum Ausdruck gebracht werden, wie gut die Zellen idealen Pixelmustern entsprechen.

Die Zellwerte entsprechen den Symbolen eines konventionellen Codes. Da hier im Gegensatz zu konventionellen Codes auch mit Zwischenwerten gearbeitet wird, wird hier dieser Begriff verwendet.

Bei mehreren Merkmalsdimensionen können die Zellwerte dimensionsweise existieren, die Zellwerte können jedoch auch mehrere Dimensionen zusammenfassend repräsentieren.

Die Aufgabe der Erfindung wird gemäß den unabhängigen Ansprüchen gelöst. Vorteilhafte Weiterbildungen sind in den abhängigen Ansprüchen definiert.

Gegeben sei ein zweidimensionales Bildsignal mit 10 × 3 Zellen. Die 30 Zellen sollen redundant für eine Codierung der 10 Informationsbits verwendet werden. Die Zellen bestehen im Beispiel aus einzelnen binären Pixeln, mögliche Zellwerte sind zunächst 0 oder 1.

Die Anordnung der Zellen muss nicht unbedingt der endgültigen Anordnung entsprechen; die für die Datenübertragung oder Datenspeicherung (z.B. Beschriftung mit einem Dotcode) verwendete Anordnung wird in der Regel von der hier besprochenen Anordnung abweichen, weil am Ende noch eine gestreute Platzierung, ähnlich Interleaving, durchgeführt wird (s.u.).

Auch bei Zeitsignalen ist es hilfreich, die Zellen hilfsweise gedanklich in einem zweidimensionalen Raster anzuordnen (Hilfsanordnungen in höheren Dimensionen sind möglich, haben sich bei den vom Anmelder bearbeiteten Beispielen nicht als nützlich erwiesen). Die im Folgenden zugrunde gelegte Anordnung ist also lediglich hilfreich für die folgenden Betrachtungen und wird in der Regel nachträglich verändert, insbesondere durch eine gestreute Platzierung.

Codierung:

Als Initialisierung wird allen Zellen des zu erstellenden Codes der gleiche Grundwert, z.B. 0, zugewiesen.

Wir definieren eine Menge M1 von Zellen, die in unserem Beispiel speziell alle Zellen umfasst, in 1 mit "i" bezeichnet. Die Zellen in M1 werden nun alle invertiert, wenn das erste Informationsbit 1 ist; falls es 0 ist, werden sie alle nicht invertiert. Mit anderen Worten: die Zellen in M1 werden XOR-verknüpft mit dem ersten Informationsbit (geht man vom Grundwert 0 aus, entspricht dies einer Kopie des ersten Informationsbits auf die Zellen von M1). Solcherart behandelte Zellen von Zellmengen werden im Folgenden Inversionszellen genannt und in den 1 bis 10 mit "i" dargestellt. Nichtinversionszellen bleiben dagegen unabhängig vom Wert des Informationsbits unverändert, in den 1 bis 10 mit "n" dargestellt.

Dieser erste Schritt bei diesem Beispiel entspricht nicht exakt dem Anspruch 1; die folgenden Schritte entsprechen jedoch dem Anspruch 1:

Es gibt für jede Teilinformation – und damit für jeden Codierschritt eine Menge von Zelltupeln, kurz Zelltupelmengen. Ein Zelltupel besteht aus mindestens einer Inversionszelle und mindestens einer Nichtinversionszelle.

Da es insgesamt 10 Informationsbits zu codieren gilt, definieren wir noch insgesamt 10 – 1 = 9 Zelltupelmengen.

In unserem Beispiel besteht jedes Zelltupel aus genau einer Inversionszelle und einer Nichtinversionszelle. Zelltupel werden in den Figuren als Doppelpfeile zwischen je einer Inversionszelle und einer Nichtinversionszelle angedeutet.

In 2 umfasst die Zelltupelmenge M2 6 Inversionszellen und 6 Nichtinversionszellen; einige Zelltupel 1 sind durch Doppelpfeile angedeutet. Es muss hier kein besonderes geometrisches System bei der Wahl der Verteilung von Inversions- und Nichtinversionszellen und bei der Wahl der Zelltupel verwendet werden, wie durch die Pfeile angedeutet. Es sind auch durchaus grundsätzlich Überlappungen erlaubt, d.h. eine Zelle kann mehreren Zelltupeln angehören.

Die Inversionszellen von M2 werden mit dem zweiten Informationsbit XOR-verknüpft. D.h. falls sie aufgrund des ersten Informationsbits bereits invertiert wurden und nun aufgrund des zweiten Informationsbits invertiert werden, nehmen sie wieder den ursprünglichen Grundwert an.

Wir kommen nun zum dritten Informationsbit und zur Zelltupelmenge M3, siehe 3. Die Menge M3 umfasst in unserem Beispiel genau die gleichen Zellen wie M2.

Bei der Wahl der Inversionszellen und Nichtinversionszellen braucht wiederum kein besonderes System Verwendung zu finden. Jedoch muss bei der Definition der Zellpaare ab M3 eine zusätzliche Vorschrift beachtet werden (die für M1 und M2 ohnehin erfüllt ist):

Die Zellen eines Zelltupels müssen bei XOR-Operationen vorangehender Informationsbits alle gleich behandelt worden sein, unabhängig vom aktuellen Wert der vorangehenden Informationsbits. Dies ist erfüllt, wenn sie für jeden vorangehenden Codierschritt jeweils entweder alle Inversionszellen oder alle Nichtinversionszellen sind.

Ein in diesem Sinne illegales Zelltupel ist in 3 unter der Nr. 2 angegeben. Es ist deshalb illegal, weil seine Nichtinversionszelle abhängig vom zweiten Informationsbit invertiert wurde, seine Inversionszelle hingegen nicht.

Diese Vorschrift brauchte für die vorangehende Menge M2 nicht beachtet zu werden, weil in dem Beispiel ihre Zellen ohnehin immer erfüllt war (alle Zellen von M2 sind in M1 Inversionszellen).

Im nächsten Schritt mit Informationsbit 4 und Zelltupelmenge M4, siehe 4, haben wir bei der speziellen Wahl von M4 wieder freie Wahl der Zellpaare, so wie vorher in M2.

Im nächsten Schritt mit Informationsbit 5 und Zelltupelmenge M5, siehe 5, haben wir bei der speziellen Wahl von M5 wieder die gleiche Situation wie bei Informationsbit 3 und Zelltupelmenge M3.

Im nächsten Schritt mit Informationsbit 6 und Zelltupelmenge M6, siehe 6, haben wir bei der speziellen Wahl von M6 wieder die gleiche Situation wie bei Informationsbit 2 und Zelltupelmenge M2.

Wir kommen nun zu den Informationsbits 7 bis 10, mit den Zelltupelmengen M7 bis M10, siehe 7 bis 10. Aufgrund der speziellen Mengenwahl und Wahl der Inversions/Nichtinversionsbit-Konstellationen ist die erstmalig für M3 formulierte Forderung immer dann erfüllt, wenn die Zellen eines Zellpaares übereinander stehen.

Die teilinformationsspezifische Aufteilung in Zelltupelmengen, Aufteilung in Zelltupel und Zuweisung der Inversions- und Nichtinversionszellen eines Zelltupels wird im Folgenden Konfiguration genannt und geschieht nur einmal vorab, manuell oder mit Rechenprogramm.

Die Codierung besteht einfach in der Anwendung der XOR-Operationen auf die Inversionszellen entsprechend der gegebenen Konfiguration, teilinformationsweise, wobei die Reihenfolge, in der die Teilinformationen den Mengen zugeordnet werden, grundsätzlich gleichgültig ist.

Die Mindestdistanz dieses Codebeispiels ist offensichtlich 5, da

  • a) sich mit jedem Informationsbit mindestens 5 Bits verändern
  • b) bei Überkreuzungen von Inversionszellmengen (Rücksetzen des betreffenden Bits) mindestens zwei Informationsbits beteiligt sind, die selbst mehrere weitere Zellen invertieren.

Durch die Hinzunahme eines Paritybits auf die Informationsbits kann die Mindestdistanz generell gesteigert werden.

Platzierung:

Da geometrisch gesehen der Platz, wo die Zellen eines Zellpaars sitzen, keine Rolle spielt, sondern nur die Zuordnung zu den Mengen, haben wir noch die Freiheit, die Zellen beliebig zu platzieren.

Wir führen nun noch eine gestreute Platzierung durch.

Eine erfindungsgemäße Erweiterung besteht darin, vorzugsweise nach Abschluss der Codierung die Daten mit einem Raster XOR- zu verknüpfen, z.B. mit einem Schachbrett oder im Eindimensionalen mit einer 010101... Folge, oder auch einer Zufallsfolge. Dies wird im folgenden Gitteroperation genannt. Dadurch kann eine gewisse Strukturierung der Daten erreicht werden, dergestalt, dass unabhängig von der codierten Information, (lokal) immer eine gewisse Mindestanzahl von Zellen mit logisch 1 und eine Mindestanzahl mit logisch 0 belegt ist (bei dem oben aufgeführten Beispiel wird – auch nach gestreuter Platzierung – durch Verwenden eines einfachen Schachbrett-Gitters erreicht, dass sich in dem 3 × 10-Feld immer mindestens 7 logisch 1-Zellen und mindestens 7 logisch 0-Zellen befinden). Der Code erhält dadurch eine gewisse Musterung. Diese Eigenschaft kann vorteilhaft für die Demodulation verwendet werden, insbesondere auch für die Synchronisation, mit einer Rückwirkung von der Decodierung auf die Demodulation. Primitivstes Beispiel wäre das Durchfahren einer Binarisierungsschwelle, bis die Mindestanzahlen erfüllt sind. Auch für ein Rückweisungskriterium ist diese Eigenschaft nützlich; primitives Beispiel: ein ganz schwarzes Bild wird so ohne zusätzliche Sonderabfragen automatisch zurückgewiesen. Vor der eigentlichen Decodierung wird eine Gitter-Operation durchgeführt, um sie wieder rückgängig zu machen.

Alternativ oder auch ergänzend kann man natürlich auch ein festes Synchronisations- oder Referenzierungsmuster einführen, beispielsweise eine Folge von alternierenden Symbolen wie 0101010... oder 012012012012... etc.

Ein wichtiges Thema ist die optimale Gestaltung der Konfiguration.

Zwei systematische Ansätze zur Konfiguration, die beide aus dem Beispiel 1...10 ansatzweise erkennbar sind, sind miteinander kombinierbar:

  • 1) Man zerlege sukzessive in kleine Bereiche unterschiedlicher (X-)Koordinaten, denen Inversions- und Nichtinversionszellen zugeordnet sind, wie dies aus 2...6 erkennbar ist.
  • 2) Aus unserem Beispiel 1 bis 10 ist ersichtlich, dass eine dimensionsweise Organisation der Zellen hilfreich sein kann: die Mengen M1 bis M6 sind vertikal orientiert, d.h. vertikal untereinander stehende Zellen sind alle gleichartig, während die Mengen M7 bis M10 horizontal orientiert sind. Auch Hilfsanordnungen mit mehr als 2 Dimensionen sind grundsätzlich möglich.

11 zeigt eine Hardwarerealisierung zu einem einfachen Beispiel. 11 ist ein Schema, Details wie z.B. Steuersignale sind weggelassen. Die Codierung ist oben dargestellt, die Decodierung unten.

Codierung:

Wir gehen wiederum zunächst von binären Zellen aus. Es ist ein Signal mit 3 Teilinformationen zu je ein Bit zu codieren, I0, I1, I2. Insgesamt stehen 4 Bit für die Codierung zur Verfügung. Die Codierstrecke ist eine Pipeline, bestehend aus drei Registern 11 mit je 4 binären Zellen 10.

Die Zellen werden für die folgende Beschreibung für jedes Register von links nach rechts von 1 bis 4 durchnummeriert, ebenso von links nach rechts; diese Nummern sind in 11 der Übersichtlichkeit halber nicht eingezeichnet. Von Codierschritt zu Codierschritt werden die Zellen, von links nach rechts, von Register zu Register übertragen (Zell-parallel mit 4 Schieberegistern der Länge 3 oder Zell-seriell mit einem Schieberegister der Länge 12). Im ersten Schritt wird das Informationsbit I0 in das erste Register übertragen (formell kann man das der Systematik halber als XOR-Verknüpfung mit einem Grundwert logisch "0" betrachten. Realisiert man diese XOR-Verknüpfungen tatsächlich, so kann genauso gut der logische Grundwert "1" verwendet werden).

Im zweiten Codierschritt wird das Informationsbit I1 XOR-verknüpft mit dem Inhalt der ersten beiden Zellen des zweiten Registers, das Ergebnis wird in die betreffenden Zellen zurückgeschrieben. Im dritten Codierschritt wird das Informationsbit I2 XOR-verknüpft mit dem Inhalt der ersten und dritten Zelle des dritten Registers, das Ergebnis wird in die betreffenden Zellen zurückgeschrieben.

Parallel mit der Bearbeitung von I1 im zweiten Register kann die Bearbeitung des nächsten I0-Wertes im ersten Register erfolgen, etc. (Pipeline).

Der erzeugte Code ist wie folgt (c1...c4 entspricht den Zellnummern 1...4 der Register):

Ersichtlich kommt "1" nur in geradzahliger Anzahl vor, die Mindestdistanz ist daher 2.

Decodierung:

Zur Decodierung werden Register in umgekehrter Reihenfolge bearbeitet. Im ersten Decodierschritt wird das Informationsbit I2 gewonnen durch XOR-Verknüpfung des Inhalts der ersten und zweiten Zelle des dritten Registers und durch XOR-Verknüpfung des Inhalts der dritten und vierten Zelle des dritten Registers. Sind die Vergleichsergebnisse beide 1, so wird auf I2 = 1 decodiert, sind sie beide 0, so wird auf I2 = 0 decodiert.

Vorteilhaft wird mit Fuzzy-Zellwerten gearbeitet und für diese Entscheidung werden beide Vergleichsergebnisse miteinander betrachtet durch einfache Summation der Fuzzy-XOR-Werte, gefolgt durch eine Schwellwertentscheidung, wie im ersten Beispiel beschrieben. Solche Summations- und Schwellwertglieder sind in 11 mit Nr. 14 gekennzeichnet.

Abhängig von I2 werden die erste und die dritte Zelle des dritten Registers invertiert, indem I2 mit den betreffenden Zellwerten (Fuzzy-)XOR-verknüpft wird und das Ergebnis in die Zellen zurückgeschrieben wird.

Entsprechend wird mit den weiteren Registern verfahren:

Im zweiten Decodierschritt wird der Inhalt der ersten und dritten Zelle des zweiten Registers (Fuzzy-)XOR-verknüpft, ebenso der Inhalt der zweiten und vierten Zelle des zweiten Registers, und I1 wird vorzugsweise durch Summation der Fuzzy-XOR-Werte, gefolgt durch eine Schwellwertentscheidung gewonnen. Abhängig von I1 werden die erste und die zweite Zelle des zweiten Registers invertiert, indem I1 mit den betreffenden Zellwerten (Fuzzy-)XOR-verknüpft wird und das Ergebnis in die Zellen zurück geschrieben wird.

Im dritten Decodierschritt wird das Informationsbit I0 durch (Fuzzy-)XOR-Verknüpfung des Inhalts der vier Zellen mit dem Grundwert verknüpft. I0 wird vorzugsweise durch Summation der Fuzzy-XOR-Werte, gefolgt durch eine Schwellwertentscheidung, gewonnen.

Wenn ein Fehlersignal ("Fehlerbild", s.o.) gewonnen werden soll, werden hier abhängig von I0 die vier Zellen des ersten Registers invertiert, indem I0 mit den betreffenden Zellwerten (Fuzzy-)XOR-verknüpft wird und das Ergebnis in die Zellen zurückgeschrieben wird. Dieser Rückführzweig ist im letzten Schritt für die Decodierung selbst nicht notwendig.

Im Beispiel 11 haben wir die folgende Konfiguration:

Für Teilinformation I1 besteht die Zelltupelmenge aus den Zelltupeln A1 mit Inversionszelle 1 und Nichtinversionszelle 3, und Zelltupel A2 mit Inversionszelle 2 und Nichtinversionszelle 4. Für Teilinformation I2 besteht die Zelltupelmenge aus den Zelltupeln B1 mit Inversionszelle 1 und Nichtinversionszelle 2, und Zelltupel B2 mit Inversionszelle 3 und Nichtinversionszelle 4.

I0 ist ein Sonderfall und besteht nur aus Inversionszellen: hier wird nach 11 die Entscheidung nicht auf Basis eines Zellvergleichs gefällt. Dem kann in einfacher Weise abgeholfen werden durch eine differentielle Codierung von (vorzugsweise aufeinanderfolgenden) I0-Werten: beim Codieren werden die I0-Werte durch XOR-Verknüpfung aufeinander folgender I0-Werte ersetzt.


Anspruch[de]
  1. Verfahren zur Codierung einer durch Teilinformationen darstellbaren Information, wobei durch die Codierung Zellen Zellwerte zuzuweisen sind,

    gekennzeichnet durch

    a) teilinformationsweise Codierschritte,

    b) teilinformationsspezifische Zelltupelmengen, deren Zelltupel aus zweierlei Typen von Zellen bestehen, Inversionszellen und Nichtinversionszellen, wobei jedes Zelltupel aus mindestens einer Inversionszelle und mindestens einer Nichtinversionszelle besteht, wobei die Zellen innerhalb jedes Zelltupels für jeden vorangehenden Codierschritt entweder alle Inversionszellen oder alle Nichtinversionszellen sind,

    c) für mindestens einen Codierschritt:

    XOR-Verknüpfung der betreffenden Teilinformation mit den Inversionszellen der betreffenden Zelltupelmenge.
  2. Verfahren zur Codierung nach Anspruch 1, wobei die Zelltupel Zellpaare mit einer Inversionszelle und einer Nichtinversionszelle sind.
  3. Verfahren zur Codierung nach Anspruch 1 oder 2, wobei den Zellwerten Signalwerte, insbesondere auch Pixelwerte von Bildern, zugeordnet werden.
  4. Verfahren zur Codierung nach Anspruch 3, wobei die Pixel einen der binären Werte 0 oder 1 annehmen können.
  5. Verfahren zur Codierung nach Anspruch 1 oder 2, wobei einer Zelle mehrere Pixel zugeordnet sind, wobei die Pixel die Bildpunkte eines Bildes oder einer Bildfolge oder die Signalwerte eines sonstigen Signals sind, gekennzeichnet durch Zuordnung von Pixelmustern zu den Zellwerten.
  6. Verfahren zur Codierung nach einem der Ansprüche 1 bis 5, gekennzeichnet durch eine vorab vorgenommene differentielle Codierung der zuerst bearbeiteten Teilinformation.
  7. Verfahren zur Codierung nach einem der Ansprüche 1 bis 6, gekennzeichnet durch XOR-Verknüpfung des Ergebnisses mit einem Muster, bei Bildern mit einem zweidimensionalen Schachbrettmuster, bei eindimensionalen Signalen mit einem 101010...-Muster.
  8. Verfahren zur Codierung nach einem der Ansprüche 1 bis 6, gekennzeichnet durch XOR-Verknüpfung des Ergebnisses mit einem Zufallsmuster.
  9. Sendeeinrichtung, die mit einem Codierverfahren nach einem der Ansprüche 1 bis 8 arbeitet, gekennzeichnet durch einen Phasenmodulator für mindestens eine Merkmalsdimension.
  10. Kennzeichnungseinrichtung mit verformender Kennzeichnung, insbesondere Nadelprägung, mit einem Codierverfahren für die Kennzeichnung nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass zur Signalmodulation die Verformungsstärke veränderbar ist, bevorzugt über die Anschlagsstärke oder den Hub der Nadel.
  11. Kennzeichnungseinrichtung mit verformender Kennzeichnung, insbesondere Ritzprägung, mit einem Codierverfahren für die Kennzeichnung nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass zur Signalmodulation die Richtung von Strichelementen, die auch miteinander verbunden sein können, veränderbar ist.
  12. Code-Leseeinrichtung für einen Code, wie er nach einem der Verfahren 1 bis 8 entstehen kann, gekennzeichnet durch eine Bildaufnahmeeinrichtung, bei der mindestens ein Bildaufnahmeparameter, insbesondere auch Beleuchtungsparameter, über ein Qualitätsmaß beeinflussbar ist, das von einem Fehlerbild abhängig ist.
Es folgen 4 Blatt Zeichnungen






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com