Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How does PDF417 barcode decoding recover from damaged labels?

I recently learned about PDF417 barcodes and I was astonished that I can still read the barcode after I ripped it in half and scanned only a fragment of the original label.

How can the barcode decoding be that robust? Which (types of) algorithms are used during encoding and decoding?

EDIT: I understand the general philosophy of introducing redundancy to create robustness, but I'm interested in more details, i.e. how this is done with PDF417.

like image 811
Daniel Rikowski Avatar asked Feb 13 '10 11:02

Daniel Rikowski


2 Answers

the pdf417 format allows for varying levels of duplication/redundancy in its content. the level of redundancy used will affect how much of the barcode can be obscured or removed while still leaving the contents readable

like image 177
Matt Lacey Avatar answered Nov 15 '22 05:11

Matt Lacey


PDF417 does not use anything. It's a specification of encoding of data.

I think there is a confusion between the barcode format and the data it conveys.

The various barcode formats (PDF417, Aztec, DataMatrix) specify a way to encode data, be it numerical, alphabetic or binary... the exact content though is left unspecified.

From what I have seen, Reed-Solomon is often the algorithm used for redundancy. The exact level of redundancy is up to you with this algorithm and there are libraries at least in Java and C from what I've been dealing with.

Now, it is up to you to specify what the exact content of your barcode should be, including the algorithm used for redundancy and the parameters used by this algorithm. And of course you'll need to work hand in hand with those who are going to decode it :)

Note: QR seems slightly different, with explicit zones for redundancy data.

like image 31
Matthieu M. Avatar answered Nov 15 '22 05:11

Matthieu M.