黑白之间 — 条形码

一条红色的光轻轻一扫, 嘟的一声, 商品的价格等信息就显示到电脑里了. 不但顾客付账排队的时间缩短了, 商家也可以很方便的管理帐务和库存, 不起眼的条形码极大的方便了所有人. 但回顾一下Barcode的历史, 其实一点都不长.

180px-upc-a-036000291452.png

它起源于70年代初, 美国的一些生产厂家和超市企业联合会意识到使用统一的商品编码能在很多方面降低成本, IBM的三位研究人员Heard Baumeister, Bill Crouse和George Laurer承担了这个重任. 这在当时还是一个很有难度的问题: 首先要考虑到条形码不能轻易出错, 比如无论商品正着扫还是反着扫, 都必须读出正确的编码; 其次, 条形码要印刷在商品包装上, 对印刷精度的要求也不能太高, 印刷成本也不能高; 然后, 它至少应含有10位数字的编码量, 但总面积又不能太大. 因此, 这是一个涉及到编码, 压缩, 解码, 容错和印刷等多方面的复杂问题. Laurer等人的最初结论是, 以当时的技术水平, 条形码至少要做到20厘米长20厘米宽才能符合全部要求. 当然, 两年以后他们设计的很多巧妙的方案, 成功的把问题解决了, 最终产品的大小是以前的五十分之一, 只有3.8厘米长2.5厘米宽, 这就是鼎鼎大名的UPC Barcode. 后来读码器不但精度进一步提高, 而且还能照出像万花筒一样各种方向的红光. 因此, 条形码可以做的更小, 而且摆成任何方向都可读, 当然这都是后话了.

最初UPC Barcode由12位数字组成, 主要在美国和加拿大使用. 随后它被采纳为国际标准, 变成EAN-13编码. 顾名思义, 就是在UPC前面又加了一位数字, 以方便国际上统一编码, 既扩大范围又兼容UPC. EAN-13规定编码的前三位是企业的国家代码, 中间四位是企业代码, 后五位是产品代码, 最后是一个校验位. 关于国家代码, 北美商品的条形码都是0开头的13位数字, 或者干脆只有12位数字, 编码资源相当丰富. 其它国家就远没有那么幸运了, 三位国家代码去掉所有0开头的还剩899个单位. 大部分国家只分配到一个单位, 中国得到5个单位(690到695), 日本和欧洲国家每国十个单位. 其中也有搞特殊化的, 比如, 骄傲的法国人一向以”国际标准”自居, 一口气抢了八十个单位, 东德和西德也各有二十个单位. 最有意思的是, 为了跟出版业的ISBN编码兼容, EAN-13还设计978和979给一个叫做Bookland的国家, 所有书籍都归那个国度.

三十年后的今天, 随着影像技术和计算机图形处理能力的提高, 条形码识别器已经不需要使用那条红色的激光, 只要一个CCD感应器和一小块芯片就可以了. 同时, 人们对条形码的功能也提出更多的要求, 比如更高的数据存储量, 更强的纠错功能等. 因此, 各种二维条形码(2D Barcode)就应运而生.

      ups_maxicode_example.png

上面是生活中能经常见到的几种二维条形码样图. 第一个是在电子产品上常见的Data Matrix码, 一般面积很小, 但能存储两千个字节的数据, 即使部分破损都依然可读, Stone记得在洗发水瓶子上也见过这种条形码. 中间一个图是PDF417码, 也比较常见, 比如Utah的驾照的背面就使用这种条形码, 好像I-20表上也是. 第三种是MaxiCode, 是USPS建立的标准. 虽然它只能存储不到100个字节的信息, 但即使在高速运动中也能被正确的检测, 很适于用在传送带上运动的包裹上.

不久的将来, 条形码肯定会变得更复杂, 比如微软公司开发的彩色二维码, 都已经被国际标准协会接受. 看过上面的介绍, 同志们是不是已经左手握洗发水, 右手拿驾照, 开始四处找2D条形码了?

Comments 4

  1. aries wrote:

    恩,长知识了

    Posted 03 Sep 2007 at 10:30 pm
  2. scorp wrote:

    为啥才分给我们5个?我们地大物博,我们跟国际接轨,我们连WTO都入了为啥才给5个?哼哼

    Posted 06 Sep 2007 at 8:01 am
  3. YING wrote:

    为什么我们印出来的条码数字是13位(前面6个零000000)
    但是过电脑扫描时又只有12位呢?(前面只有5个零)

    Posted 18 Jan 2008 at 4:08 am
  4. 赵嘉信 wrote:

    我爱 一亩二分地 留言不是因为这篇文章好,是因为每篇文章都好,呵呵,可惜我英语差!
    谢谢你们,我受益非浅!

    Posted 25 Jul 2008 at 4:05 am

Post a Comment

Your email is never published nor shared. Required fields are marked *