DE102004038601B4 - Kanalcodierungsverfahren und Codiereinrichtung - Google Patents

Kanalcodierungsverfahren und Codiereinrichtung Download PDF

Info

Publication number
DE102004038601B4
DE102004038601B4 DE200410038601 DE102004038601A DE102004038601B4 DE 102004038601 B4 DE102004038601 B4 DE 102004038601B4 DE 200410038601 DE200410038601 DE 200410038601 DE 102004038601 A DE102004038601 A DE 102004038601A DE 102004038601 B4 DE102004038601 B4 DE 102004038601B4
Authority
DE
Germany
Prior art keywords
cell
cells
coding
inversion
values
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
DE200410038601
Other languages
English (en)
Other versions
DE102004038601A1 (de
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 DE200410038601 priority Critical patent/DE102004038601B4/de
Priority to DE102004063950A priority patent/DE102004063950B4/de
Priority claimed from DE102004063950A external-priority patent/DE102004063950B4/de
Priority to PCT/EP2005/053904 priority patent/WO2006015977A2/de
Priority to EP05771924A priority patent/EP1779527A2/de
Priority to US11/573,321 priority patent/US7411524B2/en
Publication of DE102004038601A1 publication Critical patent/DE102004038601A1/de
Application granted granted Critical
Publication of DE102004038601B4 publication Critical patent/DE102004038601B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/611Specific encoding aspects, e.g. encoding by means of 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/47Error detection, forward error correction or error protection, not provided for in groups H03M13/01 - H03M13/37

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Error Detection And Correction (AREA)

Abstract

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. DOLLAR A 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.

Description

  • 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 ges talten 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):
    Figure 00090001
  • 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.

Claims (12)

  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 ei nem 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.
DE200410038601 2004-08-07 2004-08-07 Kanalcodierungsverfahren und Codiereinrichtung Expired - Fee Related DE102004038601B4 (de)

Priority Applications (5)

Application Number Priority Date Filing Date Title
DE200410038601 DE102004038601B4 (de) 2004-08-07 2004-08-07 Kanalcodierungsverfahren und Codiereinrichtung
DE102004063950A DE102004063950B4 (de) 2004-08-07 2004-08-07 Kanalcodiervorrichtung
PCT/EP2005/053904 WO2006015977A2 (de) 2004-08-07 2005-08-08 Kanalcodierungsverfahren mit zugehörigem code sowie demodulations- und decodierungsverfahren und -einrichtungen
EP05771924A EP1779527A2 (de) 2004-08-07 2005-08-08 Kanalcodierungsverfahren mit zugeh\rigem code sowie demodulations- und decodierungsverfahren und -einrichtungen
US11/573,321 US7411524B2 (en) 2004-08-07 2005-08-08 Channel coding method with corresponding code and demodulation and decoding method and means

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE200410038601 DE102004038601B4 (de) 2004-08-07 2004-08-07 Kanalcodierungsverfahren und Codiereinrichtung
DE102004063950A DE102004063950B4 (de) 2004-08-07 2004-08-07 Kanalcodiervorrichtung

Publications (2)

Publication Number Publication Date
DE102004038601A1 DE102004038601A1 (de) 2006-05-11
DE102004038601B4 true DE102004038601B4 (de) 2006-08-24

Family

ID=36794804

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200410038601 Expired - Fee Related DE102004038601B4 (de) 2004-08-07 2004-08-07 Kanalcodierungsverfahren und Codiereinrichtung

Country Status (1)

Country Link
DE (1) DE102004038601B4 (de)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
DE69024045T2 (de) * 1990-08-16 1996-06-20 Ibm Kodierungsverfahren und Vorrichtung zur Pipeline- und Parallelverarbeitung.
DE69118891T2 (de) * 1991-10-14 1996-10-24 Ibm Flexibles Kodierungs-Verfahren und Architektur für Hochgeschwindigkeits-Datenübertragung und Aufzeichnung
DE19926197C1 (de) * 1999-06-09 2000-08-10 Datasound Gmbh Verfahren und Vorrichtung zur Synchronisation bei Kodierung und Dekodierung von in Datenstreifen gedruckten Daten
DE19926194C2 (de) * 1999-06-09 2001-05-10 Datasound Gmbh Datenstreifen und Verfahren zur Kodierung und Dekodierung gedruckter Daten
DE69526915T2 (de) * 1994-07-26 2003-01-23 Metanetics Corp., Fort Myers Kodierung und dekodierung von paketenstreifenkodes
DE10307775A1 (de) * 2002-02-22 2003-09-18 Tropf Hermann Gemusterter Code mit robuster Decodierung
EP1048113B1 (de) * 1997-12-22 2003-12-10 Telefonaktiebolaget Lm Ericsson Dekodierungsverfahren und -vorrichtung

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
DE69024045T2 (de) * 1990-08-16 1996-06-20 Ibm Kodierungsverfahren und Vorrichtung zur Pipeline- und Parallelverarbeitung.
DE69118891T2 (de) * 1991-10-14 1996-10-24 Ibm Flexibles Kodierungs-Verfahren und Architektur für Hochgeschwindigkeits-Datenübertragung und Aufzeichnung
DE69526915T2 (de) * 1994-07-26 2003-01-23 Metanetics Corp., Fort Myers Kodierung und dekodierung von paketenstreifenkodes
EP1048113B1 (de) * 1997-12-22 2003-12-10 Telefonaktiebolaget Lm Ericsson Dekodierungsverfahren und -vorrichtung
DE19926197C1 (de) * 1999-06-09 2000-08-10 Datasound Gmbh Verfahren und Vorrichtung zur Synchronisation bei Kodierung und Dekodierung von in Datenstreifen gedruckten Daten
DE19926194C2 (de) * 1999-06-09 2001-05-10 Datasound Gmbh Datenstreifen und Verfahren zur Kodierung und Dekodierung gedruckter Daten
DE10307775A1 (de) * 2002-02-22 2003-09-18 Tropf Hermann Gemusterter Code mit robuster Decodierung

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MORELOS-ZARAGOZA,R.H.: The Art of Error Correc- ting Coding. Wiley 2002
MORELOS-ZARAGOZA,R.H.: The Art of Error Correc- ting Coding. Wiley 2002 *

Also Published As

Publication number Publication date
DE102004038601A1 (de) 2006-05-11

Similar Documents

Publication Publication Date Title
DE3784762T2 (de) Datenkompression.
DE3886560T2 (de) Musterkonturen in Bildverarbeitung.
DE2625973C3 (de) Verfahren und Anordnung zur redundanzvermindernden Transformation von Bildern
EP1260933B1 (de) Verfahren zum Erfassen von zweidimensionalen Codes
DE2801536C2 (de) Zeichenformkodiervorrichtung
DE4005492C2 (de) Bildcodierverfahren
DE69123832T2 (de) Punktgrössesteuerverfahren bei digitaler Halbtonrasterung mit mehrzelliger Schwellenmatrix
DE2315509A1 (de) Kodierte aufzeichnung und verfahren und einrichtung zum kodieren und dekodieren dieser aufzeichnung
DE2256007C3 (de) Vorrichtung zur Verarbeitung kodierter Daten
DE19623318C2 (de) Teilpixelcodierungs- und Decodierungsverfahren
DE3587522T2 (de) Interaktives Rasteranzeigesystem.
DE3815586C2 (de) Kompressionsverfahren für Bildsignale
DE3241673C2 (de) Verfahren zum Verdichten von Daten Zwei-wertiger Bilddarstellungen
DE69421487T2 (de) Verfahren zum Vergleichen von Mustern basierend auf der Verwendung von Bildelementmatritzen und Bildelementvektoren
DE4322364C2 (de) Verfahren zum Erzeugen von Fontdaten
DE102004063950B4 (de) Kanalcodiervorrichtung
DE102018008539A1 (de) Kalibriervorrichtung und Verfahren zur Kamerakalibrierung für die Photogrammetrie
DE102004038601B4 (de) Kanalcodierungsverfahren und Codiereinrichtung
DE10205546B4 (de) Verfahren zur Datenkomprimierung von Bildmaskendaten
DE102005037388A1 (de) Kanaldecodierung mit zugehörigem Code
DE68926489T2 (de) Merkmalermittlungsgerät
DE102019132529A1 (de) Verfahren zum Extrahieren, Auslesen und/oder Ausgeben einer in einer bedruckten und/oder visuell gestalteten Oberfläche verborgenen Information
DE2054547A1 (de) Musterverarbeitungssystem
DE102012218854B4 (de) Verfahren und Vorrichtung zur Kompression von Bilddaten
DE2602126C2 (de) Anzeigevorrichtung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R082 Change of representative

Representative=s name: 2S-IP SCHRAMM SCHNEIDER PATENTANWAELTE - RECHT, DE

Representative=s name: 2S-IP SCHRAMM SCHNEIDER BERTAGNOLL PATENT- UND, DE

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee