Wie wird die PDF417-Barcode-Decodierung von beschädigten Etiketten wiederhergestellt?

8

Ich habe kürzlich über PDF417-Barcodes erfahren und ich war erstaunt, dass ich den Barcode noch lesen kann, nachdem ich ihn halbiert und nur ein Fragment des Originaletiketts gescannt habe.

Wie kann die Barcode-Decodierung so robust sein? Welche (Arten von) Algorithmen werden beim Kodieren und Dekodieren verwendet?

BEARBEITEN: Ich verstehe die allgemeine Philosophie der Einführung von Redundanz, um Robustheit zu erzeugen, aber ich bin an weiteren Details interessiert, d. h. wie das mit PDF417 gemacht wird.

    
Daniel Rikowski 13.02.2010, 11:33
quelle

4 Antworten

2

Das PDF417-Format ermöglicht unterschiedliche Ebenen der Duplizierung / Redundanz in seinem Inhalt. Die Höhe der Redundanz wirkt sich darauf aus, wie viel des Barcodes verdeckt oder entfernt werden kann, während der Inhalt lesbar bleibt.

    
Matt Lacey 13.02.2010, 12:45
quelle
2

PDF417 verwendet nichts. Es ist eine Spezifikation der Kodierung von Daten.

Ich denke, es gibt eine Verwirrung zwischen dem Barcode-Format und den Daten, die es übermittelt.

Die verschiedenen Barcode-Formate ( PDF417 , Aztec , DataMatrix ) geben eine Möglichkeit an, Daten zu verschlüsseln, sei es numerisch, alphabetisch oder binär ... der genaue Inhalt wird jedoch nicht angegeben.

Nach dem, was ich gesehen habe, ist Reed-Solomon oft der Algorithmus, der für Redundanz verwendet wird. Die genaue Höhe der Redundanz liegt bei Ihnen mit diesem Algorithmus und es gibt Bibliotheken zumindest in Java und C von dem, mit dem ich es zu tun habe.

Nun liegt es an Ihnen, den genauen Inhalt Ihres Barcodes anzugeben, einschließlich des für die Redundanz verwendeten Algorithmus und der von diesem Algorithmus verwendeten Parameter. Und natürlich müssen Sie Hand in Hand mit denen arbeiten, die es entschlüsseln wollen:)

Hinweis: QR scheint etwas anders zu sein, mit expliziten Zonen für Redundanzdaten.

    
Matthieu M. 15.02.2010 16:03
quelle
1

Ich kenne das PDF417 nicht. Ich weiß, dass QR-Codes Reed Solomon Korrektur verwenden. Es ist eine Überabtastungstechnik. Um das Konzept zu erhalten: Angenommen, Sie haben ein Polynom in der Potenz von 6. Technisch benötigen Sie sieben Punkte, um dieses Polynom eindeutig zu beschreiben, damit Sie die Information über das ganze Polynom mit nur sieben Punkten perfekt übertragen können. Wenn jedoch eine dieser sieben Dateien beschädigt ist, fehlt die gesamte Information. Um dieses Problem zu umgehen, extrahieren Sie eine größere Anzahl von Punkten aus dem Polynom und schreiben Sie sie auf. Solange Sie mindestens sieben aus dem Haufen haben, wird es ausreichen, um Ihre ursprünglichen Informationen zu rekonstruieren.

Mit anderen Worten, Sie tauschen Raum für Robustheit aus, indem Sie immer mehr Redundanz einführen. Nichts Neues hier.

    
Stefano Borini 13.02.2010 11:41
quelle
-1

Ich denke nicht, dass das Konzept des Trade-Offs zwischen Raum und Robustheit anders ist als anderswo. Think RAID, sagen wir RAID 5 - Sie können eine Festplatte aus dem Array ziehen und die Daten sind noch verfügbar. Der Preis? - Eine zusätzliche Festplatte. Oder in Bezug auf den Barcode - zusätzlicher Platz, den das Etikett einnimmt

    
mfeingold 13.02.2010 14:06
quelle