2010-02-13 82 views
8

我最近才了解到PDF417条形码,我惊讶于我可以读取条形码后将其翻成一半,只扫描原始标签的一部分。PDF417条形码解码如何从损坏的标签恢复?

条形码解码如何可靠?在编码和解码期间使用哪些(类型)算法?

编辑:我明白引入冗余创造稳健的一般原理,但我感兴趣的更多详细信息,即如何与PDF417完成。

回答

2

pdf417格式的内容允许不同级别的重复/冗余。所使用的冗余水平将影响条码的多少可以被遮蔽或去除,同时仍然保持内容可读性

1

我不知道PDF417。我知道QR码使用Reed Solomon correction。这是一种过采样技术。为了得到这个概念:假设你有一个6的幂次多项式。从技术上讲,你需要7个点来唯一地描述这个多项式,所以你可以用7个点完美地传输关于整个多项式的信息。但是,如果这七个中的一个已损坏,则会错过整个信息。要解决此问题,请从多项式中提取大量点,然后写下来。只要你至少有七个,它就足以重建你的原始信息。

换句话说,您通过引入越来越多的冗余来交易空间以提高稳健性。这里没有新东西。

+0

如何使用多项式表示字符串数据?是否有一些通用多项式可以使用某些字节值进行“参数化”? – 2010-02-13 11:46:24

-1

我不认为空间和稳健性之间的折衷概念与其他任何地方不同。认为RAI​​D,让我们说RAID 5 - 你可以从阵列中取出磁盘,数据仍然可用。价格? - 额外的磁盘。或者就条形码而言 - 标签占用额外空间

+0

这是完全不同的。如果x%的代码丢失,PDF417仍然可读。不管哪个x%丢失。RAID5不能这样做:想象一下,每个RAID驱动器的前1 MB都已损坏 - RAID无法从此恢复,数据将丢失。 – Niki 2010-02-13 14:56:36

+0

@nikie我不同意。 RAID也不例外 - 当然,它可以恢复多少损失是有限制的 - 如果你丢失了所有的磁盘,该怎么办?但对于PDF也是如此 - 如果x%= 100%会怎么样?同时没有任何'特殊'磁盘可以使用 - 但只有一个。无论如何 - 两种工作的方式是将整个数据序列分成组,每组注入一定的冗余。冗余越多,数据损失越严重。如果RAID5是不够的 - 去RAID6 – mfeingold 2010-02-13 15:10:35

+1

对不精确的公式:PDF417可以从高达x%的数据丢失恢复,对于一些x> 0,这取决于代码中选择的冗余级别,*不管哪个子集数据丢失*。无论使用多少个驱动器,RAID永远都不会这样做。如果每个驱动器的前1%丢失(即丢失总数据的1%),则无法恢复该数据。即使使用20个驱动器的RAID0也是如此。 – Niki 2010-02-13 16:12:48

2

PDF417不使用任何东西。这是数据编码的规范。

我认为条形码格式与其传达的数据之间存在混淆。

的各种条形码格式(PDF417AztecDataMatrix)指定的方式对数据进行编码,可以是数值,字母或二进制...的确切内容虽然是未指定。

从我所看到的,Reed-Solomon通常是用于冗余的算法。确切的冗余水平取决于这个算法,至少在我处理的文件中有至少JavaC

现在,您需要指定条形码的确切内容,包括用于冗余的算法以及该算法使用的参数。当然,你需要携手合作,与谁是要对其进行解码:)

注:QR似乎略有不同,与冗余数据明确的区域。