双向可读二维条形码系统及其识读方法

文档序号:6360272阅读:877来源:国知局
专利名称:双向可读二维条形码系统及其识读方法
技术领域
本发明涉及条形码技术,特别涉及一种可从双向识读二维条形码系统及识读方法。
背景技术
条形码是一种可供光学扫描设备识读的特殊光学符号系统,被广泛应用于各个领域。按照空间维数,条形码可分为一维条形码、堆栈码和二维条形码。
一维条形码由一系列平行的黑条(bar)和白条(space)组成,绝大多数的一维条形码都以这些黑条和白条的宽度对信息进行编码。当识读一维条形码时,识读器对条形码依次进行扫描,并通过对扫描轨迹的测量即可得到一组黑条和白条的宽度数据序列。由于在设计一维条形码时已经充分考虑到对宽度数据序列始终只有一个方向可以译码,而从另一方向进行反向译码绝对不会产生误读(misread),所以一维条形码具有双向可读的唯一性,即使一维条形码有一定污染或缺损,情况也是如此,例如二五条码和UPC条码等。在另外的一维条形码(例如九三条码,128条码等)中,还设置有起始符(start character)和终止符(stop character)以进一步确保一维条形码双向可读的唯一性。堆栈码由多个一维条形码堆栈在一起而形成,所以具有与一维条形码相同的双向可读能力。
二维条形码是一种在结构和原理上与一维条形码、堆栈码完全不同的条形码,其编码信息序列被放置于编码区域(Encoding region)内的编码信息单元上。编码信息单元通常采用矩阵阵列形式,编码时应从矩阵阵列内一定的起始点开始,按照一定的分布规律将编码信息放置在相应的编码信息单元中。同样,在译码时也要从该矩阵阵列内的同一起始点开始,按照相同的分布规律从编码信息单元中将有效的译码信息提取出来,并送到译码系统中进行译码。显然,只有使编码及译码过程中的起始点重合并且按照相同的分布规律放置和读取编码信息序列,才能确保译码的成功。为了使图像处理系统在译码时能找到与编码时相同的起始点,现有二维条形码都采用各种类型的功能图形(function pattern)来对起始点进行定位。例如,如图1a所示,在QR Code中,其码形区域四个角中的其中三个上设置有特殊的位置探测图形;又如图1b所示,在Maxi Code中,其中心有一组同心园,并用该组同心园旁边的六组定位信息单元(每组三个定位信息单元)来定位它们各自的起始点。
由上可见,二维条形码的这种定位方式存在如下的缺点首先是定位起始点的功能图形将占用一定的条形码有效面积,减少了编码区域的面积,从而导致信息密度的降低。其次,更为严重的是,用于定位二维条形码起始点的功能图形缺乏任何保护措施,一旦这些功能图形受损,将会导致译码失败。

发明内容
本发明的目的是提供一种新型二维条形码系统,它具有信息密度高和定位性能可靠的优点。
本发明的上述目的可通过以下技术方案实现一种双向可读二维条形码系统,其编码区域由以矩阵形式排列的单元节点组成,编码信息序列沿某一识读方向并按照设定的可逆排列顺序依次放置于所述矩阵阵列内不同的单元节点上并且包含定向码元,其中,所述定向码元左右对称地分布于所述编码信息序列内不同的特定位置上并且以其所处特定位置与取值的组合标识将编码信息序列放置到所述矩阵阵列内单元节点上时的方向。
比较好的是,在所述双向可读二维条形码系统中,所述定向码元包括数据码元和相应的纠错码元。
比较好的是,在所述双向可读二维条形码系统中,所述定向码元由码元S11,S10,……,S1,S0,STA,R1,R2,R3,R4,STO,S′0,S′1,……,S′10,S′11组成,它们之间存在如下关系码元序列{STO,R4,R3,R2,R1,STA,S0,S1,…,S10,S11}构成一组BCH(18,6)纠错码序列,码元序列{STA,R1,R2,R3,R4,STO,S’0,S’1,…,S’10,S’11}构成另外一组BCH(18,6)纠错码序列,这里,STA、STO和R1~R4为数据码元,其中STA、STO用作定向信息的定位控制符,R1~R4用作表示一般信息的信息符,而S0~S11和S′0~S′11分别为各组纠错码序列内的纠错码元。
比较好的是,在所述双向可读二维条形码系统中,所述定向码元按照如下方式左右对称地分布于所述编码信息序列内不同的特定位置上将定向码元R2,R1,STA,S0,S1,…,S10,S11按照设定的分布规则映射至编码信息序列左半部分内的某一位置,而将定向码元R3,R4,STO,S’0,S’1,…,S’10,S’11按照所述分布规则映射至编码信息序列右半部分内的某一位置。
更好的是,在所述双向可读二维条形码系统中,对于BCH纠错编码方式的定向码元,所述分布规则为模拟随机离散分布规则。
本发明的另外一个目的是提供一种识读上述新型二维条形码系统的方法。
本发明的上述目的可通过以下技术方案实现一种识读如权利要求1所述的双向可读二维条形码系统的方法,包含以下步骤(1)沿任一识读方向并按照所述设定的可逆排列顺序读取所述矩阵阵列内单元节点上的编码信息以获得编码信息序列;(2)从读取的编码信息序列内的特定位置上提取出定向码元;以及(3)根据被提取定向码元的所处特定位置与取值的组合确定将编码信息序列放置到所述矩阵阵列内单元节点上时的方向。
比较好的是,在所述方法中,所述定向码元包括数据码元和相应的纠错码元。
由上可见,由于本发明的二维条形码系统用少量定位码元来标识译码方向,因此与采用功能图形的现有技术相比,增加了条形码编码区域的有效面积,大大提高了信息存储密度。而且由于可通过编码方式将定位信息分散在单元节点上,因此能够通过选择适当的分布规则来降低定位信息的受损概率,提高定位信息的可靠性。此外,在本发明中,还可以通过为定向信息提供纠错保护功能显著提高定位信息的可靠性。


通过以下结合附图对本发明较佳实施例的描述,可以进一步理解本发明的目的、特征和优点,其中图1a和1b为QR条形码和MaxiCode条形码的示意图。
图2a和2b为可逆排列顺序的示意图。
图3为一种具有标识可识读方向的水平导向信息的二维条形码示意图。
具体实施例方式
以下首先描述可逆序列的概念。借助一维数组,可逆序列定义如下A={a1,a2,…,an-1,an}A’={an,an-1,…,a2,a1}上述数组具有两个性质(1)数组A和A′包含有相同的元素;(2)A数组中所有元素与A’数组中所有元素互为逆向排列。以下将具有上述性质的一对数组称为互为可逆序列。
对于编码信息序列在二维条形码矩阵阵列内的分布规律,也可以采用这样的一维数组来表示,其中,数组内的元素取值代表阵列单元节点的编号,由于存储在单元节点上的编码信息单元与单元节点一一对应,因此该编号也可视为是编码信息单元的编号。以5×5矩阵阵列为例,假设按图2a所示的路径或分布规律(沿箭头方向)依次读取每个单元节点上的编码信息,则可得到下列节点序列BB={0,5,6,1,2,7,8,3,4,9,14,13,12,11,10,15,20,21,16,17,22,23,18,19,24}当将图2a所示矩阵阵列旋转180°后将得到图2b所示的矩阵阵列,如果仍然按照图2a所示的路径或分布规律依次读取每个单元节点的编码信息,则将得到下列节点序列B′B’={24,19,18,23,22,17,16,21,20,15,10,11,12,13,14,9,4,3,8,7,2,1,6,5,0}显然,这两个序列B与B’构成互为可逆序列。值得指出的是,对于一个矩阵阵列来说,可能有多个构成可逆序列的分布规律,上述图2a和2b仅仅是示例性质的,不应理解为对本发明保护范围的限定。
本发明的基本思想是,一方面,通过按照构成可逆序列的分布规律放置编码信息从而使沿两个识读方向读取的编码信息序列互为可逆,另一方面,通过在编码信息序列左右对称的特定位置上放置定向码元来标识识读方向,可以确保两个方向上读取到的编码信息序列的特定位置上都是定向码元,只是取值有所不同,因此可根据特定位置上码元的取值确定编码时放置编码信息序列的方向。
显然,将本发明上述基本思想应用于二维条形码系统的前提条件是,能够正确确定与编码信息序列放置方向平行的方向(虽然无法进一步确定与放置方向是同向还是反向),而这样的前提条件是完全能够实现的。
例如可通过在编码区域之外设置标志图案的方式来标记与放置方向平行和垂直的方向,由于不占用编码区域,因此这种方式不会影响二维条形码的信息密度,图3示出了这种方式下的典型情形。如图3所示,二维条形码系统(以下将图3所示二维条形码系统称为龙贝码(LP Code))的编码信息序列沿水平方向或者垂直方向放置于矩形编码区域D内,通过在编码区域D的边界或顶角处设置各向异性的标记A可区分出二维条形码的水平方向和垂直方向,由此可以确定出编码信息的放置方向。图3所示标志图案的形状和设置位置并不是唯一的,它们可以有各种变化,对于本领域内普通技术人员来说这种变化都是显而易见的,因此本发明的二维条形码系统并不局限于图3所示的具体结构。又如,还可以通过人工干预方式来确定与放置方向平行和垂直的方向。总之,可以有多种方式来确定与放置方向平行和垂直的方向,从而满足将本发明上述基本思想应用于二维条形码系统的前提条件。
以下以图3所示的龙贝码为例,描述本发明二维条形码系统及其识读方法的一个较佳实施例。
在本实施例中,假设以图3中从左至右的水平方向为编码信息序列的放置方向和译码方向,并且以数组Info表示按照某一排列顺序或分布规律将编码信息序列放置于矩阵编码区域内时的节点序列Info={a0,a1,…,an-1,an}其中,a0~an表示矩阵编码区域单元节点的编号。由于存储在单元节点上的编码信息单元与单元节点一一对应,因此这种节点序列与编码信息序列等价,以下除非特别指明,编码信息序列与节点序列视为等同。
如上所述,在本发明的二维条形码系统中,必须按照构成可逆序列的分布规律放置编码信息从而使得沿两个识读方向读取的编码信息序列互为可逆,换句话说,如果将图3中的龙贝码翻转180°并按照同一排列顺序或分布规律遍历矩阵编码区域时,则得到的数组Info′应该为Info′={an,an-1,…,a1,a0}即,节点编号的排列顺序正好相反,因此由此获得的编号信息序列也正好相反。如上所述,可以有多种分布规律或排列顺序构造出上述可逆序列,并且对于本领域内普通技术人员来说,如何确定这类分布规律或排列顺序是公知的,因此不再赘述。
以下对定向码元进行描述。在本较佳实施例中,以下列定向数据数组D来表示定向码元D={S11,S10,…,S1,S0,STA,R1,R2,R3,R4,STO,S’0,S’1,…,S’10,S’11}对于数组D内的定向码元,存在如下的关系码元序列{STO,R4,R3,R2,R1,STA,S0,S1,…,S10,S11}构成一组BCH(18,6)纠错编码组BCHL,其中的数据码元由6个数据位{STO,R4,R3,R2,R1,STA}组成,纠错码元由12个数据位{S0,S1,…,S10,S11}组成;码元序列{STA,R1,R2,R3,R4,STO,S′0,S′1,…,S′10,S′11}构成一组BCH(18,6)纠错编码组BCHR,其中的数据码元由6个数据位{STA,R1,R2,R3,R4,STO}组成,纠错码元由12个数据位{S′0,S′1,…,S′10,S′11}组成。
由上可见,纠错编码组BCHL与BCHR共用一组互为可逆序列的数据码元,其中,数据位STA和STO分别为起始符和终止符,也称为定向控制符,用来作为标识编码信息序列放置方向的定向码元,另外四个数据位R1、R2、R3及R4可表示二维条形码中的其它信息,如纠错能力、格式信息、版本信息或数据块余数等,也称为一般信息符。为了提高定位的可靠性,本实施例为上述互为可逆序列的数据码元都提供了纠错码元以提供纠错能力。
以下描述将上述定向数据数组D左右对称地放置于编码信息序列特定位置上的方式。
首先,将定向数据码元数组D从中间一分为二以拆成两组数组DL和DRDL={R2,R1,STA,S0,S1,…,S10,S11}DR={R3,R4,STO,S′0,S′1,…,S′10,S′11}接着,将前述数组Info从中间一分为二以拆成两组数组InfoL和InfoR如果数组Info内元素的个数为偶数,则InfoL={a(n+1)/2,a(n+1)/2-1,…,a1,a0}InfoR={a(n+1)/2+1,a(n+1)/2+1,…,an-1,an}如果数组Info内元素的个数为奇数,则InfoL={an/2,an/2-1,…,a1,a0}InfoR={an/2,an/2+1,…,an-1,an}最后,按相同的分布规则将定向数据数组DL和DR内的定向码元分别分配到编码信息单元数组InfoL和InfoR内的特定位置上,换句话说,就是将这些定向码元存储在矩阵编码区域的特定单元节点上。由于将DL和DR内的定向码元分配到编码信息单元数组InfoL和InfoR内的分布规则相同,并且分布定向码元的起始点位于编码信息单元数组Info的中央,所以定向码元在整个编码信息单元数组Info内是左右对称分布的。
值得指出的是,上述数组Info的拆分方式并不是唯一的,例如也可以将其拆分为如下的形式如果数组Info内元素的个数为偶数,则
InfoL={a0,a1,…,a(n+1)/2-1,a(n+1)/2}InfoR={an,an-1,…,a(n+1)/2+2,a(n+1)/2+1}如果数组Info内元素的个数n为奇数,则InfoL={a0,a1,…,an/2-1,an/2}InfoR={an,an-1,…,an/2+1,an/2}显然,由于将DL和DR内的定向码元分配到编码信息单元数组InfoL和InfoR内的分布规则相同,并且分布定向码元的起始点位于编码信息单元数组Info的两端,所以定向码元在整个编码信息单元数组Info内仍然是左右对称分布的。
分布规则一般可用下列分布函数表示i=F(j) 0<=i<n/2j=0,1,…,13,14i>j其中,j为定向码元在定向数据数组DL或DR内的位置序号,i为定向码元在编码信息单元数组InfoL或InfoR内的位置序号。分布函数F的分布规则与纠错编码的类型密切相关,例如如果纠错编码的类型为BCH纠错编码,则函数F的分布规则应为模拟随机离散分布规则。
以下描述上述龙贝码识读方法的流程。
在步骤1中,识读系统的扫描器对物品上印刷有图3所示结构的龙贝码区域进行二维扫描,在扫描过程中,龙贝码图像上每个像素点的光学信号被扫描器转换为模拟电学信号,模拟电学信号经过模数转换后生成龙贝码的数字图像。
在步骤2中,识读系统的数字图像处理单元根据数字图像内的特殊标志图案确定出龙贝码编码区域范围和龙贝码可能识读方向(即与编码信息序列放置方向同向或方向的方向),并沿该可能的识读方向,按照与编码信息序列放置时同样的分布规律从编码区域内的各个单元节点上依次提取所有龙贝码编码的有效信息,从而得到信息单元数组Info″如果节点个数为偶数,则Info″={a′0,a′1,…,a′(n+1)/2-1,a′(n+1)/2,a′(n+1)/2+1,…,a′n-1,a′n}如果节点个数为奇数,则Info″={a′0,a′1,…,a′n/2-1,a′n/2,a′n/2+1,…,a′n-1,a′n}显然,当该识读方向与编码信息序列放置方向一致时,数组Info″与前述数组Info完全相同(如果没有误码)或部分相同(如果有误码);当该识读方向与编码信息序列放置方向相反时,该数组Info″与数组Info′完全相同(如果没有误码)或部分相同(如果有误码)。
接着,在步骤3中,将数组Info″从中间一分为二以拆成两组数组Info′L和Info′R如果数组Info″内元素的个数为偶数,则Info′L={a′(n+1)/2,a′(n+1)/2-1,,a′1,a′0}Info′R={a′(n+1)/2+1,a′(n+1)/2+2,…,a′n-1,a′n}如果数组Info′内元素的个数为奇数,则Info′L={a′n/2,a′n/2-1,…,a′1,a′0}Info′R={a′n/2,a′n/2+1,…,a′n-1,a′n}随后,在步骤4中,按照放置编码信息序列时所用的分布规则分别从编码信息单元数组Info′L及Info′R内的特定位置上提取出定向数据数组D′L和D′RD′L={R′2,R′1,STA′,T0,T1,…,T10,T11}
D′R={R′3,R′4,STO′,T′0,T′1,…,T′10,T′11}在步骤5中,根据前述定向数据数组的定义还原得到下列两组BCH(18,6)纠错编码BCH′L及BCH′RBCH′L={STO′,R′4,R′3,R′2,R′1,STA′,T0,T1,…,T10,T11}BCH′R={STA′,R′1,R′2,R′3,R′4,STO′,T′0,T′1,…,T′10,T′11}显然,如果识读方向与编码信息序列放置方向一致,则D′L与DL对应,D′R与DR对应,BCH′L与BCHL对应,BCH′R与BCHR对应,也就是说,定向码元STO′,R′4,R′3,R′2,R′1,STA′分别与定向码元STO,R4,R3,R2,R1,STA对应,T0,T1,…,T10,T11分别与S0,S1,…,S10,S11对应,T′0,T′1,…,T′10,T′11分别与S′0,S′1,…,S′10,S′11对应。反之,如果识读方向与编码信息序列放置方向相反,则D′L与DR对应,D′R与DL对应,BCH′L与BCHR对应,BCH′R与BCHL对应,也就是说,定向码元STO′,R′4,R′3,R′2,R′1,STA′分别与定向码元STA,R1,R2,R3,R4,STO对应,T0,T1,…,T10,T11分别与S′0,S′1,…,S′10,S′11对应,T′0,T′1,…,T′10,T′11分别与S0,S1,…,S10,S11对应。
在步骤6中,利用译码得到的纠错码元T0,T1,…,T10,T11和T′0,T′1,…,T′10,T′11分别对BCH′L与BCHL内的数据码元进行校验和纠错以得到这些码元正确的取值。
在步骤7中,根据两组纠错编码BCH′L和BCH′R内数据码元STA′和STO′的译码值确定编码信息序列的放置方向或译码方向。具体而言,如果STA′的取值与STA的一致并且/或STO′的取值与STO一致,则可以判断当前识读方向与编码信息序列的放置方向或译码方向一致;反之,如果STA′的取值与STO的一致并且/或STO′的取值与STA一致,则可以判断当前识读方向与编码信息序列的放置方向或译码方向相反。
随后,在步骤8中,根据确定的译码方向对读取的编码信息序列进行译码以还原得到龙贝码存储的信息。
权利要求
1.一种双向可读二维条形码系统,其编码区域由以矩阵形式排列的单元节点组成,其特征在于,编码信息序列沿某一识读方向并按照设定的可逆排列顺序依次放置于所述矩阵阵列内不同的单元节点上并且包含定向码元,其中,所述定向码元左右对称地分布于所述编码信息序列内不同的特定位置上并且以其所处特定位置与取值的组合标识将编码信息序列放置到所述矩阵阵列内单元节点上时的方向。
2.如权利要求1所述的双向可读二维条形码系统,其特征在于,所述定向码元包括数据码元和相应的纠错码元。
3.如权利要求2所述的双向可读二维条形码系统,其特征在于,所述定向码元由码元S11,S10,……,S1,S0,STA,R1,R2,R3,R4,STO,S′0,S′1,……,S′10,S′11组成,它们之间存在如下关系码元序列{STO,R4,R3,R2,R1,STA,S0,S1,…,S10,S11}构成一组BCH(18,6)纠错码序列,码元序列{STA,R1,R2,R3,R4,STO,S’0,S’1,…,S’10,S’11}构成另外一组BCH(18,6)纠错码序列,这里,STA、STO和R1~R4为数据码元,其中STA、STO用作定向信息的定位控制符,R1~R4用作表示一般信息的信息符,而S0~S11和S′0~S′11分别为各组纠错码序列内的纠错码元。
4.如权利要求3所述的双向可读二维条形码系统,其特征在于,所述定向码元按照如下方式左右对称地分布于所述编码信息序列内不同的特定位置上将定向码元R2,R1,STA,S0,S1,…,S10,S11按照设定的分布规则映射至编码信息序列左半部分内的某一位置,而将定向码元R3,R4,STO,S’0,S’1,…,S’10,S’11按照所述分布规则映射至编码信息序列右半部分内的某一位置。
5.如权利要求4所述的双向可读二维条形码系统,其特征在于,所述分布规则为模拟随机离散分布规则。
6.一种识读如权利要求1所述的双向可读二维条形码系统的方法,其特征在于,包含以下步骤(1)沿任一识读方向并按照所述设定的可逆排列顺序读取所述矩阵阵列内单元节点上的编码信息以获得编码信息序列;(2)从读取的编码信息序列内的特定位置上提取出定向码元;以及(3)根据被提取定向码元的所处特定位置与取值的组合确定将编码信息序列放置到所述矩阵阵列内单元节点上时的方向。
7.如权利要求6所述的方法,其特征在于,所述定向码元包括数据码元和相应的纠错码元。
全文摘要
本发明提供一种新型二维条形码系统及其识读方法,其具有信息密度高和定位性能可靠的优点。在本发明的双向可读二维条形码系统中,其编码区域由以矩阵形式排列的单元节点组成,编码信息序列沿某一识读方向并按照设定的可逆排列顺序依次放置于所述矩阵阵列内不同的单元节点上并且包含定向码元,其中,所述定向码元左右对称地分布于所述编码信息序列内不同的特定位置上并且以其所处特定位置与取值的组合标识将编码信息序列放置到所述矩阵阵列内单元节点上时的方向。
文档编号G06K19/06GK1458619SQ0312895
公开日2003年11月26日 申请日期2003年5月30日 优先权日2003年5月30日
发明者边隆祥 申请人:上海龙贝信息科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1