Я недавно узнал о штрихкодах PDF417, и я был удивлен, что могу все еще считать штрихкод после того, как я разорвал его в половине и просканировал только фрагмент исходной маркировки.
Как декодирование штрихкода может состоять в том что устойчиво? Который (типы) алгоритмы используются во время кодирования и декодирования?
Править: Я понимаю общую философию представления дублирования для создания устойчивости, но мне интересно более подробно, т.е. как это сделано с PDF417.
формат pdf417 допускает различные уровни дублирования / избыточности в его содержании. используемый уровень избыточности будет влиять на то, какая часть штрих-кода может быть скрыта или удалена, при этом содержимое останется читаемым
Я не знаю PDF417. Я знаю, что QR-коды используют поправку Рида-Соломона . Это техника передискретизации. Чтобы понять концепцию: предположим, что у вас есть многочлен в степени 6. Технически вам нужно семь точек, чтобы однозначно описать этот многочлен, поэтому вы можете идеально передать информацию обо всем многочлене всего с семью точками. Однако, если один из этих семи поврежден, вы пропустите всю информацию. Чтобы обойти эту проблему, вы извлекаете из полинома большее количество точек и записываете их. Пока у вас есть хотя бы семь из группы, этого будет достаточно, чтобы восстановить вашу исходную информацию.
Другими словами, вы меняете место на надежность, вводя все больше и больше избыточности. Здесь ничего нового.
Я не думаю, что концепция компромисса между пространством и надежностью здесь отличается от других. Подумайте о RAID, скажем, RAID 5 - вы можете выдернуть диск из массива, и данные по-прежнему доступны. Цена? - дополнительный диск. Или в терминах штрих-кода - дополнительное пространство, которое занимает этикетка
PDF417 ничего не использует. Это спецификация кодировки данных.
Я думаю, что существует путаница между форматом штрих-кода и данными, которые он передает.
Различные форматы штрих-кодов ( PDF417
, Aztec
, DataMatrix
) определяют способ кодирования данных, будь то числовые, буквенные или двоичные ... однако точное содержание не указано.
Из того, что я видел, алгоритм Рида-Соломона часто используется для резервирования. Точный уровень избыточности зависит от этого алгоритма, и есть библиотеки, по крайней мере, в Java
и C
из того, с чем я имел дело.
Теперь вы должны указать, каким должно быть точное содержание вашего штрих-кода, включая алгоритм, используемый для избыточности, и параметры, используемые этим алгоритмом. И, конечно, вам нужно будет работать рука об руку с теми, кто собирается его декодировать :)
Примечание: QR
кажется немного другим, с явными зонами для данных избыточности.