DE102004063950B4 - Kanalcodiervorrichtung - Google Patents
Kanalcodiervorrichtung Download PDFInfo
- Publication number
- DE102004063950B4 DE102004063950B4 DE102004063950A DE102004063950A DE102004063950B4 DE 102004063950 B4 DE102004063950 B4 DE 102004063950B4 DE 102004063950 A DE102004063950 A DE 102004063950A DE 102004063950 A DE102004063950 A DE 102004063950A DE 102004063950 B4 DE102004063950 B4 DE 102004063950B4
- Authority
- DE
- Germany
- Prior art keywords
- cell
- cells
- inversion
- coding
- 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
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/611—Specific encoding aspects, e.g. encoding by means of decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/47—Error 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)
- Error Detection And Correction (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
wobei die Codiereinrichtung ausgestaltet ist, um einen Code zu erzeugen 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;
weiter aufweisend:
Register (10) mit Zellen (11), die in Abhängigkeit von Informationsbits invertiert werden können, vorzugsweise über XOR-Gatter (13).
Description
- Die Erfindung betrifft die Kanalcodierung 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.
- 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.
- Diese Aufgabe wird durch die Vorrichtung gemäß Anspruch 1 gelöst.
- 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, beispiels weise 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.
- 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 ent sprechen; 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 den1 bis10 mit "i" dargestellt. Nichtinversionszellen bleiben dagegen unabhängig vom Wert des Informationsbits unverändert, in den1 bis10 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 Zelltupel1 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 vorange henden 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 bis10 . Aufgrund der speziellen Mengenwahl und Wahl der Inversions/Nicht-inversionsbit-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 bis10 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 Zellen10 . - 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 l2). 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):
I2 I1 I0 c1 c2 c3 c4 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 1 1 0 0 0 1 1 0 0 1 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 1 0 0 1 - 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ückge-schrieben 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 Inversionszelle1 und Nichtinversionszelle3 , und Zelltupel A2 mit Inversionszelle2 und Nichtinversionszelle4 . Für Teilinformation I2 besteht die Zelltupelmenge aus den Zelltupeln B1 mit Inversionszelle1 und Nichtinversionszelle2 , und Zelltupel B2 mit Inversionszelle3 und Nichtinversionszelle4 . - 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 (8)
- Vorrichtung zum Codieren einer durch Teilinformationen darstellbaren Information, wobei durch die Codierung Zellen Zellwerte zuzuweisen sind, wobei die Codiereinrichtung ausgestaltet ist, um einen Code zu erzeugen 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; weiter aufweisend: Register (
10 ) mit Zellen (11 ), die in Abhängigkeit von Informationsbits invertiert werden können, vorzugsweise über XOR-Gatter (13 ). - Vorrichtung nach Anspruch 1, wobei die Zelltupel Zellpaare mit einer Inversionszelle und einer Nichtinversionszelle sind.
- Vorrichtung nach Anspruch 1 oder 2, wobei den Zellwerten Signalwerte, insbesondere auch Pixelwerte von Bildern, zugeordnet werden.
- Vorrichtung nach Anspruch 3, wobei die Pixel einen der binären Werte 0 oder 1 annehmen können.
- Vorrichtung 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.
- Vorrichtung nach einem der Ansprüche 1 bis 5, gekennzeichnet durch eine vorab vorgenommene differentielle Codierung der zuerst bearbeiteten Teilinformation.
- Vorrichtung 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.
- Vorrichtung nach einem der Ansprüche 1 bis 6, gekennzeichnet durch XOR-Verknüpfung des Ergebnisses mit einem Zufallsmuster.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE200410038601 DE102004038601B4 (de) | 2004-08-07 | 2004-08-07 | Kanalcodierungsverfahren und Codiereinrichtung |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE200410038601 DE102004038601B4 (de) | 2004-08-07 | 2004-08-07 | Kanalcodierungsverfahren und Codiereinrichtung |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102004063950A1 DE102004063950A1 (de) | 2006-06-01 |
DE102004063950B4 true DE102004063950B4 (de) | 2009-02-19 |
Family
ID=34980395
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102004063950A Expired - Fee Related DE102004063950B4 (de) | 2004-08-07 | 2004-08-07 | Kanalcodiervorrichtung |
Country Status (4)
Country | Link |
---|---|
US (1) | US7411524B2 (de) |
EP (1) | EP1779527A2 (de) |
DE (1) | DE102004063950B4 (de) |
WO (1) | WO2006015977A2 (de) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060235683A1 (en) * | 2005-04-13 | 2006-10-19 | Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. | Lossless encoding of information with guaranteed maximum bitrate |
US7991610B2 (en) * | 2005-04-13 | 2011-08-02 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Adaptive grouping of parameters for enhanced coding efficiency |
US8180712B2 (en) | 2008-09-30 | 2012-05-15 | The Nielsen Company (Us), Llc | Methods and apparatus for determining whether a media presentation device is in an on state or an off state |
US10020912B2 (en) | 2013-03-13 | 2018-07-10 | Sans R&D, Llc | Method and a system for a receiver design in bandwidth constrained communication systems |
Citations (8)
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 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2675971B1 (fr) * | 1991-04-23 | 1993-08-06 | France Telecom | Procede de codage correcteur d'erreurs a au moins deux codages convolutifs systematiques en parallele, procede de decodage iteratif, module de decodage et decodeur correspondants. |
JPH06153180A (ja) * | 1992-09-16 | 1994-05-31 | Fujitsu Ltd | 画像データ符号化方法及び装置 |
US5591956A (en) * | 1995-05-15 | 1997-01-07 | Welch Allyn, Inc. | Two dimensional data encoding structure and symbology for use with optical readers |
US5559506A (en) * | 1994-05-04 | 1996-09-24 | Motorola, Inc. | Method and apparatus for encoding and decoding a digital radio signal |
US5553084A (en) * | 1995-01-06 | 1996-09-03 | Intermec Corporation | Error correction enhancement for code one and other machine-readable symbologies |
US6904110B2 (en) * | 1997-07-31 | 2005-06-07 | Francois Trans | Channel equalization system and method |
US6307487B1 (en) * | 1998-09-23 | 2001-10-23 | Digital Fountain, Inc. | Information additive code generator and decoder for communication systems |
US6371373B1 (en) * | 1999-05-25 | 2002-04-16 | Matsushita Electric Industrial Co., Ltd. | Method for reading a two-dimensional barcode |
AU2001289296A1 (en) * | 2000-04-04 | 2001-10-15 | Advanced Hardware Architectures, Inc. | Enhanced turbo product code decoder system |
FR2860360B1 (fr) * | 2003-09-29 | 2005-12-09 | Canon Kk | Dispositif de codage /decodage utilisant un codeur/decodeur de reed-solomon |
-
2004
- 2004-08-07 DE DE102004063950A patent/DE102004063950B4/de not_active Expired - Fee Related
-
2005
- 2005-08-08 EP EP05771924A patent/EP1779527A2/de not_active Ceased
- 2005-08-08 WO PCT/EP2005/053904 patent/WO2006015977A2/de active Search and Examination
- 2005-08-08 US US11/573,321 patent/US7411524B2/en not_active Expired - Fee Related
Patent Citations (8)
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)
Title |
---|
MORELOS-ZARAGOZA,R.H.: The Art of Error Correcting Coding. … Chichester: Wiley, 2002. Deckblatt + Impressum + … Inhaltsverzeichnis + S.147-158. - ISBN 0471-49581-6; * |
MORELOS-ZARAGOZA,R.H.: The Art of Error Correcting Coding. Chichester: Wiley, 2002. Deckblatt + Impr essum + Inhaltsverzeichnis + S.147-158. - ISBN 047 1-49581-6 |
Also Published As
Publication number | Publication date |
---|---|
US20070210943A1 (en) | 2007-09-13 |
US7411524B2 (en) | 2008-08-12 |
WO2006015977A2 (de) | 2006-02-16 |
EP1779527A2 (de) | 2007-05-02 |
DE102004063950A1 (de) | 2006-06-01 |
WO2006015977A3 (de) | 2006-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2625973C3 (de) | Verfahren und Anordnung zur redundanzvermindernden Transformation von Bildern | |
EP1260933B1 (de) | Verfahren zum Erfassen von zweidimensionalen Codes | |
DE3784762T2 (de) | Datenkompression. | |
DE3886560T2 (de) | Musterkonturen in Bildverarbeitung. | |
DE4005492C2 (de) | Bildcodierverfahren | |
DE69416616T2 (de) | Verfahren zur Halbtonrasterung von digitalisierten Grauwertbildern und Bildverarbeitungsvorrichtung zur Durchführung des Verfahrens | |
DE60220341T2 (de) | Verfahren zum Erzeugen eines Burstfehlermusters sowie Burst- und Bytefehlerermittlungs- und-korrekturvorrichtung | |
DE3923449A1 (de) | Verfahren zum bestimmen von kanten in bildern | |
DE1549930B2 (de) | Einrichtung zum Erkennen vorzugsweise handgeschriebener Schriftzeichen | |
DE19623318C2 (de) | Teilpixelcodierungs- und Decodierungsverfahren | |
DE3587522T2 (de) | Interaktives Rasteranzeigesystem. | |
DE112010005721T5 (de) | Bildverarbeitungsvorrichtung | |
DE69421487T2 (de) | Verfahren zum Vergleichen von Mustern basierend auf der Verwendung von Bildelementmatritzen und Bildelementvektoren | |
DE102005022107B4 (de) | Vorrichtung und Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge | |
DE69229575T2 (de) | Verfahren und Vorrichtung für die Anpassung von Rasterdaten an die Auflösung eines Druckers | |
DE4322364C2 (de) | Verfahren zum Erzeugen von Fontdaten | |
DE102004063950B4 (de) | Kanalcodiervorrichtung | |
DE3612231C2 (de) | ||
DE102018008539A1 (de) | Kalibriervorrichtung und Verfahren zur Kamerakalibrierung für die Photogrammetrie | |
DE69421369T2 (de) | Automatische Schwellwertbestimmung für numerische Abtaster | |
DE102004038601B4 (de) | Kanalcodierungsverfahren und Codiereinrichtung | |
DE69413095T2 (de) | Anordnung zur Glättung von skalierten Faksimilebildern | |
DE4027897C2 (de) | Bildverarbeitungsvorrichtung | |
DE10205546B4 (de) | Verfahren zur Datenkomprimierung von Bildmaskendaten | |
DE602005005365T2 (de) | Verfahren und Vorrichtung zum Erzeugen von Rahmenfehlerdiffusion und Tintenmengenbegrenzung durch Schwellenwertmatrix |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AC | Divided out of |
Ref document number: 102004038601 Country of ref document: DE Kind code of ref document: P |
|
OP8 | Request for examination as to paragraph 44 patent law | ||
AC | Divided out of |
Ref document number: 102004038601 Country of ref document: DE Kind code of ref document: P |
|
AC | Divided out of |
Ref document number: 102004038601 Country of ref document: DE Kind code of ref document: P |
|
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 |