二维码哪些部分是无用的?

我观察扫描二维码的时候,不用全部入扫描区,就能成功。那么哪些信息是不必要的呢?
已邀请:

陈浩 - 曾经学物理,现在做数学

推荐来自: Joey 圆月超人 艺诗 LF DqWong vczh 浮生未半 叶藏 advAdder 石佳明更多 »

这并不是因为 QR 码有「无用部分」或「不必要信息」。QR 码的编码用了纠错码 (error-correcting code),有四个纠错等级,分别可以纠正 7%,15%,25%,30% 的数据损失。纠错是针对数据区,这个区域随便遮掉一小部分,一般都可以被纠正,所以没有固定的「无用部分」。功能区是不可以遮掉的(关于 QR 码结构请自己搜)。

关于纠错码:Reed-Solomon Error Correction.
 
上面这个 R-S 纠错码是非常巧妙的,但也涉及一些较深的数学,这里不展开。说说最简单的纠错码,就是重复。A 为了传输信息 11001 给 B,实际传输的是 111111000000111(每个字母重复三遍)。这是必要的,因为信道(信息传输的渠道)通常是不可靠的,B 可能收到的是 110101001100110。但是 B 每次读三个字母,比如 110,其中 1 比较多,就知道第一位应该是 1,这样最后解码成 11001。这就像以前无线电通讯时,要把呼号重复几遍一样。
 
纠错码可以看作是信息冗余,但也是保证数据准确传输所必需的。事实上,现在我们使用的通信全部有纠错能力,因为信道不可靠,而许多通信不允许有错。可以说多亏了纠错码才有了互联网的正常运行。认为没有必要设置冗余,这实在是对通信载体太有信心了。以二维码为例,印在纸上纸张可能破损、在户外可能有污渍、手机摄像头可能聚焦有问题,这些都会造成数据损失,但是因为纠错码,信息没有损失。也多亏了纠错功能,我们得以在二维码上进行一定的艺术设计,加些广告什么的,这会遮挡一部分二维码,但不会丢失信息。

要回答问题请先登录注册