Maxicode二维条码/牛眼码的缘起和发展
1980年代晚期,美国知名的UPS(United Parcel Service)快递公司认知到利用机器辨读资讯可有效改善作业效率、提高服务品质,故从1987年开始着手於机器可读表单(Machine Readable Form)的研究,发觉到条码是相对成本最低的可行方案。为了能达到高速扫瞄的目的,UPS舍弃了堆叠式二维条码的做法,重新研发一种新的条码,在1992年时推出UPS code,并研发出相关设备,此即Maxicode二维条码的前身。 1996年时,美国自动辨识协会(AIMUSA)制定统一的符号规格,称为Maxicode二维条码,也有人称USS-Maxicode二维条码(Uniform Symbology Specification- Maxicode)。本文所指的Maxicode二维条码,都是遵循AIMUSA所制订的标准。
Maxicode二维条码是一种中等容量、尺寸固定的矩阵式二维条码,它由紧密相连的六边形模组和位於符号中央位置的定位图形所组成。Maxicode二维条码是特别为高速扫瞄而设计,主要应用於包裹搜寻和追踪上。UPS除了将Maxicode二维条码/牛眼码应用到包裹的分类、追踪作业上,并打算推广到其他应用上。1992年与1996年所推出的Maxicode二维条码符号规格略有不同,就外观上来看,图1的左边是1992年刚推出的样子,右边则是现在Maxicode二维条码应有的样子。由于其外观形象,有名:牛眼码。
图1 Maxicode二维条码的外观
Maxicode二维条码的基本特征
外形近乎正方形,由位於符号中央的同心圆(或称公牛眼)定位图形 (Finder Pattern),及其周围六边形蜂巢式结构的资料位元所组成,这种排列方式使得Maxicode二维条码可从任意方向快速扫瞄。其外观与中心放大图如图2所示。
图2 Maxicode二维条码外观与中心放大图
符号大小固定。为了方便定位,使解码更容易,以加快扫瞄速度,Maxicode二维条码的图形大小与资料容量大小都是固定的,图形固定约1平方英寸,资料容量最多93个字元。
定位图形:Maxicode二维条码具有一个大小固定且唯一的中央定位图形,为叁个黑色的同心圆,用於扫瞄定位。此定位图形位在资料模组所围成的虚拟六边形的正中央,在此虚拟六边形的六个顶点上各有3个黑白色不同组合式所构成的模组,称为「方位丛」(Orientation Cluster),其提供扫瞄器重要的方位资讯,见图3。
图3 Maxicode二维条码的符号排列方式
每个Maxicode二维条码均将资料栏位划分成两大部分,围在定位图形周围的深灰色蜂巢称为主要讯息(Primary Messages),其包含的资料较少,主要用来储存高安全性的资料,通常是用来分类或追踪的关键资讯,其包括60个资料位元(bits)和60个错误纠正位元。
主要讯息有两个特殊作用,其中最重要的是包含4个模式位元(Mode Bits),围在定位图形右上方全白的方位丛左边,以淡灰色所标识的四个位元即是,其直接指示出其馀的资料编码模式。另一个用途是,剩馀的56个资料位元则依包裹分类追踪需要的所有资讯编码成结构化收件人讯息(Structured Carrier Messages),因此大部份在高速扫瞄的状况下,只需要将主要讯息解码就够了。
在主要讯息外围的淡灰色部份(未表示完全),用来储存次要讯息(Secondary Messages),其提供额外的讯息,如来源地、目的地等人工分类时所需的重要资讯。
模式:是一种允许符号有不同结构的机制,Maxicode二维条码共有7种模式(模式0~模式6),但其中有2个模式(模式0、模式1)已作废。
(二) 错误纠正能力
Maxicode二维条码具有复杂而坚固的错误纠正能力,以确保符号中的资讯是正确的,就算条码受到部份损毁,内部储存的资讯仍可完整读出。
(叁) 解码速度
Maxicode二维条码的最大优点在於其解码速度相当快,Maxicode二维条码可在速度为每分钟550英 的输送带上成功读取。
Maxicode二维条码的组成
编码字元集
Maxicode二维条码允许对256个国际字符编码,包括值0~127的ASCII字元和128~255的扩展ASCII字元。在数字组合模式下,可用6个字码表示9位数字。用於代码切换和其他控制字元也包括在其字元集中。
Maxicode二维条码符号字元的表示
每个字元由6个六边形的模组组成。
每个模组表示一个二进制位,深色模组表示 “1” ,浅色模组表示 “0”。
通常六个模组排成3层,顺序为右上至左下,见图4所示。
图4 Maxicode二维条码的位元组成排列方式
由於Maxicode二维条码符号的特殊结构,符号字元具有特殊的排列形式。
字码集
字码是介於数字字元和符号字元间的值,也是错误纠正计算的基础。Maxicode二维条码的字码集共有64个,范围为0~63,二进位表示为000000~111111。在每符号字元中,最高有效位是编号最低的模组。
符号尺寸
每个Maxicode二维条码符号共有884个六边形模组,分33层围绕着中央定位图形,每一层分别由30个或29个模组组成。符号四周应有空白区。每个Maxicode二维条码包括空白区在内,尺寸固定为28.14mm×26.91mm,约1平方英寸。中央定位图形相当於90个模组的大小。
资料容量
884个六边形模组中,有18个模组用於定位,剩馀866个为资料模组,扣掉2个未使用的模组,用於表示资料编码和错误纠正的模组共有864个,包含144个6位元的符号字元,其中至少须有50个以上的错误纠正字元,以及1个模式字元,因此资料容量最大为93个字元,若纯为数字字元,则可存放138个。
错误纠正
Maxicode二维条码提供标准错误纠正(Standard Error Correction, SEC)与增强错误纠正(Extended Error Correction, EEC)两种错误纠正等级,这两种等级需要不同数量的字,提供不同水准的错误恢复能力,SEC的错误复原能力达16%,EEC则可达25%。这两种错误纠正等级的基本特性如表所示。采用哪一种错误纠正等级是由模式字元所指定。
Maxicode的错误纠正等级
特性 |
错误纠正等级 |
|
标准 |
增强 |
|
字码总数 |
144 |
144 |
可能的资料字元数 |
93 |
77 |
模式字元数 |
1 |
1 |
错误字元数 |
50 |
66 |
可纠正的错误字元数 |
22 |
30 |
Maxicode的模式
如前所述,每个Maxicode有1个模式字元,用来定义符号的资料与错误结构,模式的编码是主要讯息的一部份。
原本於1992年推出的UPS code的规格只有两种模式:
模式0:主要讯息为一个结构化收件人讯息,次要讯息至多可编入84个大写英文字母,或数字、标点符号。
模式1:主要讯息加上次要讯息至多可编入93个大写英文字母,或数字、标点符号。
不过上述两种模式已废除,由新规定的模式2和模式3取代模式0,由模式4取代模式1。AIMUSA所规定的新模式及其内容为:
模式2:主要讯息为一个结构化收件人讯息加上一个数字型态的邮递编号,次要讯息至多可编入84个字元(character)。
模式3:主要讯息为一个结构化收件人讯息加上一个文数字型态的邮递编号,次要讯息至多可编入84个字元。
模式2及模式3适用於运输业者,此时符号表示收件人定义的目的地地址及服务类型。符号的前120位用增强错误纠正(EEC)表示收件人结构化资讯,而符号的其馀部份用标准错误纠正(SEC)表示其它资讯。收件人讯息的结构如表。
结构化收件人讯息的结构
位元编号 |
编码资料 |
结构 |
3~6 |
模式 |
二进制0~15 |
1~2, 7~30, 33~36 |
邮递编号 |
数字型邮递编号(最多9位) |
31~32, 39~42 |
邮递编号长度 |
只对数字型邮递编号编码 |
1~2, 7~36, 39~42 |
邮递编号 |
文数字型邮递编号 |
37~38, 43~48, 53~54 |
国家代码 |
3位数字( ISO 3166 ) |
49~52, 55~60 |
服务类型 |
3位数字 |
61~120 |
EEC码字 |
|
模式5:主要讯息加上次要讯息至多可编入77个字元。
模式5是全EEC模式,其指示在主要讯息及次要讯息部份全部采用EEC,符号有77个资料字码。
模式6:主要讯息加上次要讯息至多可编入93个字元。
模式6为扫瞄器编程模式,其指示符号表示的讯息是用於扫瞄器编程,主要讯息采用EEC,次要讯息采用SEC。
上述一个 “字元”是指6位元的符号字元。目前模式字元其实只用了编号3~6号等4个位元,放在符号的第一个符号字符中。将Maxicode的模式再做一总结。
Maxicode的模式
模式 |
说明 |
模组号 |
0 |
废除 |
0000 |
1 |
废除 |
0001 |
2 |
结构化收件人讯息 数字型邮递编码 |
0010 |
3 |
结构化收件人讯息 文数字型邮递编码 |
0011 |
4 |
标准符号,次要讯息SEC |
0100 |
5 |
全EEC符号 |
0101 |
6 |
扫瞄器编程,次要讯息SEC |
0110 |
Maxicode的解码步骤