Как декодирование штрих-кода PDF417 восстанавливается после поврежденных этикеток? - PullRequest
8 голосов
/ 13 февраля 2010

Я недавно узнал о штрих-кодах PDF417, и я был удивлен, что все еще могу прочитать штрих-код после того, как разорвал его пополам и отсканировал только фрагмент оригинальной этикетки.

Как декодирование штрих-кода может быть таким надежным? Какие (типы) алгоритмов используются при кодировании и декодировании?

РЕДАКТИРОВАТЬ: Я понимаю общую философию введения избыточности для создания надежности, но мне интересны более подробные сведения, т.е. как это делается с PDF417.

Ответы [ 4 ]

2 голосов
/ 15 февраля 2010

PDF417 не использует ничего. Это спецификация кодирования данных.

Я думаю, что существует путаница между форматом штрих-кода и данными, которые он передает.

Различные форматы штрих-кодов (PDF417, Aztec, DataMatrix) определяют способ кодирования данных, будь то числовые, буквенные или двоичные данные ... хотя точное содержимое не указано.

Из того, что я видел, Рид-Соломон часто является алгоритмом, используемым для избыточности. Точный уровень избыточности зависит от вас с этим алгоритмом, и есть библиотеки по крайней мере в Java и C из того, с чем я имел дело.

Теперь вам нужно указать, каким должно быть точное содержимое вашего штрих-кода, включая алгоритм, используемый для резервирования, и параметры, используемые этим алгоритмом. И, конечно, вам нужно будет работать рука об руку с теми, кто собирается его декодировать:)

Примечание: QR выглядит немного иначе, с явными зонами для данных избыточности.

2 голосов
/ 13 февраля 2010

формат pdf417 допускает различные уровни дублирования / избыточности в своем контенте. уровень избыточности будет влиять на то, сколько штрих-кода можно скрыть или удалить, оставляя содержимое читабельным

1 голос
/ 13 февраля 2010

Я не знаю PDF417. Я знаю, что QR-коды используют коррекция Рида-Соломона . Это метод передискретизации. Чтобы получить концепцию: предположим, что у вас есть многочлен в степени 6. Технически, вам нужно семь баллов, чтобы однозначно описать этот многочлен, чтобы вы могли отлично передать информацию о всем полиноме всего с семью точками. Однако, если один из этих семи поврежден, вы упускаете информацию целиком. Чтобы обойти эту проблему, вы извлекаете большее количество точек из полинома и записываете их. Пока у вас есть по крайней мере семь из этой группы, этого будет достаточно для восстановления вашей исходной информации.

Другими словами, вы обмениваете пространство на надежность, вводя все больше избыточности. Здесь нет ничего нового.

0 голосов
/ 13 февраля 2010

Я не думаю, что концепция компромисса между пространством и устойчивостью отличается здесь, как нигде. Подумайте, RAID, скажем, RAID 5 - вы можете выдернуть диск из массива, и данные по-прежнему доступны. Цена? - дополнительный диск. Или с точки зрения штрих-кода - дополнительное место, которое этикетка занимает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...