我最近了解了PDF417条形码,我惊讶地发现,在我将条形码翻录成两半并仅扫描原始标签的一个片段后,我仍然可以读取条形码。
条形码解码如何才能强大?在编码和解码过程中使用哪种(类型)算法?
编辑:我理解引入冗余以创建健壮性的一般理念,但我对更多细节感兴趣,即如何使用PDF417完成。
答案 0 :(得分:2)
pdf417格式允许其内容中存在不同级别的重复/冗余。所使用的冗余程度将影响可以隐藏或删除条码的多少,同时仍然可以使内容可读
答案 1 :(得分:2)
PDF417不使用任何东西。这是数据编码的规范。
我认为条形码格式与它传达的数据之间存在混淆。
各种条形码格式(PDF417
,Aztec
,DataMatrix
)指定了一种对数据进行编码的方式,无论是数字,字母还是二进制...确切的内容未指定
从我所看到的,Reed-Solomon通常是用于冗余的算法。使用此算法可以确定冗余的确切级别,并且至少在Java
和C
中存在来自我处理过的库。
现在,您需要指定条形码的确切内容,包括用于冗余的算法以及此算法使用的参数。当然,你需要与那些要解码它的人携手合作:)
注意: QR
似乎略有不同,有明确的冗余数据区域。
答案 2 :(得分:1)
我不知道PDF417。我知道二维码使用Reed Solomon correction。这是一种过采样技术。为了得到这个概念:假设你有一个6的幂多项式。从技术上讲,你需要七个点来唯一地描述这个多项式,所以你可以用七个点完美地传输关于整个多项式的信息。但是,如果这七个中的一个被破坏,那么您将错过整个信息。要解决此问题,请从多项式中提取大量的点,并将其写下来。只要您拥有至少七个,就足以重建原始信息。
换句话说,您通过引入越来越多的冗余来交换空间以获得稳健性。这里没什么新鲜的。
答案 3 :(得分:-1)
我不认为空间和稳健性之间的权衡概念在这里与其他地方有任何不同。想想RAID,让我们说RAID 5 - 您可以从阵列中取出磁盘并且数据仍然可用。价格? - 额外的磁盘。或者就条形码而言 - 标签占据的额外空间