AztecCode条码解码芯片及其解码方法

文档序号:6603471阅读:1026来源:国知局
专利名称:Aztec Code条码解码芯片及其解码方法
Aztec Code条码解码芯片及其解码方法
技术领域
本发明涉及条码识别技术领域,特别地,涉及一种Aztec Code条码解码芯片及其 解码方法。
背景技术
条码技术是在计算机技术与信息技术基础上发展起来的一门集编码、印刷、识别、 数据采集和处理于一身的新兴技术。条码技术由于其识别快速、准确、可靠以及成本低等优 点,被广泛应用于商业、图书管理、仓储、邮电、交通和工业控制等领域,并且势必在逐渐兴 起的“物联网”应用中发挥重大的作用。目前被广泛使用的条码包括一维条码及二维条码。一维条码又称线形条码是由平 行排列的多个“条”和“空”单元组成,条形码信息靠条和空的不同宽度和位置来表达。一 维条码只是在一个方向(一般是水平方向)表达信息,而在垂直方向则不表达任何信息,因 此信息容量及空间利用率较低,并且在条码污损后即无法识别。二维条码是由按一定规律在二维方向上分布的黑白相间的特定几何图形组成,其 可以在二维方向上表达信息,因此信息容量及空间利用率较低,并具有一定的校验功能。二 维条码可以分为堆叠式二维条码和矩阵式二维条码。堆叠式二维条码是由多行短截的一 维条码堆叠而成,代表性的堆叠式二维条码包括PDF417、Code 49、Code 16K等。矩阵式二 维条码是由按预定规则分布于矩阵中的黑、白模块组成,代表性的矩阵式二维条码包括QR 码、Data Matrix码、Maxi Code,Aztec Code、汉信码等。二维条码除具备一维条码也具有 的优点外,同时还具有信息容量大、密度高、具有纠错功能、可表示各种多媒体信息以及多 种文字信息、保密防伪性强、解码可靠性高的特点。现有技术在对二维条码进行解码的过程中,通常是利用摄影设备对条码进行拍 摄,以获取条码图像,然后对条码图像进行去燥、灰度提取、二值化、码字提取、译码等处理 方法。然而,上述现有技术在对条码图像进行自适应亮度均衡化和二值化处理过程时, 是针对每一个像素点进行自适应亮度均衡化和二值化处理,因此要对每一个像素点的灰度 进行调节,并与阈值灰度进行比对,数据计算量很大,降低了系统的处理速度。而且由于该 系统是在不知晓条码特征信息(即条码的相关参数,包括条码方向、条码区域尺寸和条码 版本、条码畸变系数等信息)的情况下进行二值化处理,会造成模块错误,即在二值化过程 中,由于噪声、畸变等因素的影响,出现模块的深浅状态和设计状态发生倒置的情况,这大 大降低条码的识别能力,增加了条码识别的误码率。尤其在条码版本较高,所含模块数量较 多的情况下,或者是条码图像分辨率低,曝光质量不佳的情况下,这种方法较难对二维条码 进行识别。另外,现有技术的Aztec Code识别系统通常是采用处理器调用程序存储器中的解 码程序,对条码图像进行处理来实现识别解码。该系统的问题在于一、处理速度慢,该系统 需要在微处理器中写入实现解码算法的一系列程序,单个处理器只能同时针对一种特定类型的条码格式进行解码处理,处理器在一个时钟周期只能处理一个操作,软件处理也决定 了解码流程的单流程特性,较难实现对条码图像的流水线作业和并行处理,处理速度较慢; 二、使用成本高,由于解码算法较为复杂,因此需要使用高端的处理器(如32位处理器)实 现以上算法,需要处理器以及硬件加速电路相配合,这样会造成系统成本高昂;三、系统复 杂,集成难度大,功耗高,不易于便携应用。因此,针对现有技术存在的以上不足,亟需提供一种Aztec Code条码解码芯片及 其解码方法,使得能保证解码过程快速、顺利地进行。

发明内容针对现有技术存在的处理速度慢、错误发生机率较大等不足,本发明提供一种 Aztec Code条码解码芯片及其解码方法,能保证Aztec Code解码过程快速、顺利地进行。本发明提供一种Aztec Code条码解码芯片,包括特征搜索单元、条码参数获取 单元、版本/格式参数获取单元、校正特征获取单元、模块信息处理单元、二值化单元、码字 提取单元以及纠错译码单元。特征搜索单元在条码图像中搜索位置探测图形来确定位置探 测图形的像素坐标。条码参数获取单元根据位置探测图形的像素坐标来获取模块宽度,并 根据位置探测图形的像素坐标来搜索指向图形,获取条码方向。版本/格式参数获取单元 获取条码的版本参数和/或格式参数。校正特征获取单元在条码图像上搜索特征位置,根 据特征位置获取校正特征。模块信息处理单元根据版本参数、模块宽度、条码方向和校正特 征,计算模块所对应的灰度值。二值化单元,对AztecCode模块进行二值化处理。码字提取 单元,根据二值化处理的模块提取码字。纠错译码单元对码字进行译码处理。本发明又提供一种Aztec Code条码解码芯片,包括特征搜索单元、条码参数获取 单元、版本/格式参数获取单元、模块信息处理单元、二值化单元、码字提取单元以及纠错 译码单元。特征搜索单元在条码图像中搜索特征图形来确定特征图形的像素坐标。条码参 数获取单元根据特征图形的像素坐标来获取模块宽度,并根据特征图形的像素坐标来搜索 指向图形,获取条码方向。版本/格式参数获取单元获取条码的版本参数和/或格式参数。 版本/格式参数获取单元获取条码的版本参数和/或格式参数。模块信息处理单元根据 版本参数、模块宽度、条码方向和特征图形的像素坐标,计算模块所对应的灰度值。二值化 单元对模块进行二值化处理。码字提取单元根据二值化处理的模块提取码字。纠错译码单 元对码字进行译码处理。本发明还提供一种Aztec Code解码方法,包括以下步骤a.获取条码图像;b.搜 索位置探测图形,根据位置探测图形的像素坐标来获取模块宽度,并根据位置探测图形的 像素坐标来搜索指向图形,获取条码方向;c.获取版本参数,根据版本参数获取模块参数; d.搜索校正特征,获取校正特征的像素坐标;e.根据模块宽度、条码方向、模块参数和校 正特征的像素坐标,计算校正特征的模块坐标;f.根据校正特征的像素坐标和模块坐标, 计算条码图像的像素坐标与模块坐标之间的映射关系;g.根据映射关系计算模块灰度值; h.对模块灰度值进行二值化处理;i.根据二值化处理结果提取码字;j.对码字进行译码处 理。本发明另提供一种Aztec Code解码方法,包括以下步骤a.获取条码图像;b.搜 索特征图形,获取模块宽度、条码方向和特征图形的像素坐标;c.获取版本参数,根据版本参数获取模块参数;d.根据模块宽度、条码方向、模块参数和特征图形的像素坐标,计算特 征图形的模块坐标;e.根据特征图形的像素坐标和模块坐标,计算条码图像的像素坐标与 模块坐标之间的映射关系;f.根据映射关系计算模块灰度值;g.对模块灰度值进行二值化 处理;h.根据二值化处理结果提取码字;i.对码字进行译码处理。本发明又提供一种Aztec Code解码方法包括以下步骤a.获取条码图像;b.在条 码图像的预定区域内,提取符合预定长度的多个黑白边界线段;c.基于多个黑白边界线段 构建多个直线;d.根据平行线特性对多个直线进行分组并形成行平行线组及列平行线组; e.根据Aztec Code的特性,通过对行平行线组及列平行线组构建的网格进行判断来确认 是否存在AztecCode ;f.根据行平行线组及列平行线组构建的网格来获取位置探测图形的 像素坐标,根据位置探测图形的像素坐标来搜索指向图形,获取条码方向;g.获取版本参 数,根据版本参数获取模块参数;h.搜索校正特征,获取校正特征的像素坐标;i.根据模块 宽度、条码方向、模块参数和校正特征的像素坐标,计算校正特征的模块坐标;g.根据校正 特征的像素坐标和校正特征的模块坐标,计算条码图像的像素坐标与模块坐标之间的映射 关系;k.根据映射关系计算模块灰度值;1.对模块灰度值进行二值化处理;m.根据二值化 处理的结果提取码字;η.对码字进行译码处理。本发明的Aztec Code解码方法,通过搜索校正特征,获取校正特征的像素灰度坐 标与模块坐标,计算条码图像的像素坐标与模块坐标之间的映射关系,然后根据该映射关 系计算模块灰度值,对模块灰度值进行二值化,进而还原Aztec Code所对应的条码符号图 形。与现有技术相比,本发明的AztecCode解码方法是在知晓条码特征信息,并根据条码特 征信息对条码图像进行校正后进行的二值化处理,因此降低了噪声、畸变等因素对二值化 过程的影响,减少了模块错误的出现,大大增加了条码的识别能力,提升了条码识别的解码 成功率。本发明的Aztec Code条码解码芯片采用硬件流水线结构,通过硬件逻辑实现对条 码图像的识别解码,由于硬件流水线结构适于对条码图像进行流水线作业和并行处理,因 此处理速度很快。相对于现有技术的处理器解码技术而言,本发明的Aztec Code条码解码芯片采用 全硬件结构,无需处理器参与解码,芯片结构相对于处理器而言结构更为简化、面积更小、 功耗更低、成本更低、易于集成,容易实现便携应用。可以方便地与物联网技术相结合,为条 码技术的应用提供了更为广阔的发展空间。

图1是Aztec Code的条码符号图形示意图。图2是Aztec Code的条码符号图形的功能示意图。图3是紧凑型Aztec Code的条码符号图形的中心区域的功能示意图。图4是完整型Aztec Code的条码符号图形的中心区域的功能示意图。图5是根据本发明的Aztec Code条码解码芯片的解码方法的处理流程图。图6是根据本发明的Aztec Code条码解码芯片的第一实施方式的结构示意图。图7是根据本发明的Aztec Code条码解码芯片的第一实施方式中校正特征获取 单元的第一种校正点获取结构的示意图。
7
图8是根据本发明的Aztec Code条码解码芯片的第一实施方式中模块信息处理 单元的结构示意图。图9是根据本发明的Aztec Code条码解码芯片的第一实施方式中模块信息处理 单元的转换原理示意图。图10是根据本发明的Aztec Code条码解码芯片的第二实施方式的结构示意图。图11是根据本发明的Aztec Code条码解码芯片的第二实施方式中校正特征获取 单元的第二种校正点获取结构的示意图。
具体实施方式有关本发明的特征及技术内容,请参考以下的详细说明与附图,附图仅提供参考 与说明,并非用来对本发明加以限制。为使本领域技术人员更易于理解本发明的技术内容,提供以下条码术语的参考与 说明,其中部分条码术语是根据中华人民共和国国家标准GB/T12905-2000而来,并非用于 对本发明加以限制。条码符号某种条码定义的表示信息的条、空组合形式或模块的组合形式。码字码字表示源数据向条码符号转换的中间值。一种符号的码字数决定了该条 码符号的所有符号的数量。数据码字数据码字表示数据符号的值。纠错码字纠错码字表示纠错符号的值。模块矩阵式二维条码中的一个最小独立单元,代表一位二进制数据。功能图形矩阵式二维条码符号中用于符号定位与特征识别的特定图形。功能图 形包括探测图形、定位图形、校正图形等。探测图形矩阵式二维条码符号图形中,用于在条码图像中进行符号定位的特殊 图形,也称位置探测图形。定位图形矩阵式二维条码符号图形中,用于确定符号中模块的像素坐标的图形。校正图形矩阵式二维条码符号图形中,用于确定符号位置的一个固定的参照图 形。在条码图像有一定程度畸变或污损的情况下,可以通过校正图形对条码图像中模块的 像素坐标进行校正。编码区域矩阵式二维条码符号图形中,未被功能图形占据,用于对数据和纠错码 字进行编码,表示数据符号和纠错符号的区域。版本用于表示矩阵式二维条码符号规格的序列,反映了符号尺寸、符号中的模块 数量和符号中的模块的排列方式。版本信息矩阵式二维条码符号图形中,用于确定矩阵式二维条码符号版本号的 功能图形。格式用于表示矩阵式二维条码符号所使用的纠错等级以及掩模图形。格式信息矩阵式二维条码符号图形中,用于确定矩阵式二维条码符号所使用的 纠错等级以及掩模图形信息的功能图形。掩模图形在编码区域内用掩模图形对位图进行异或处理,其目的是使符号中深 色与浅色模块的比例均衡,并减少影响条码图像处理的图形出现。
二值化条码图像用整体阈值或局部阈值对灰度条码图像进行处理,从而得到的 深浅两色的条码图像。阈值分割两个检验等级的边界值,其值本身是上面等级的下限值。模块错误在二值化条码图像中,深浅状态和设计状态发生倒置的模块。像素光敏阵列(如CXD或CMOS器件)上的单个光敏单元在条码图像上所对应的 单位,一个像素通常被视为条码图像的最小的完整单位。数码条码图像的储存方式一般以 像素(Pixel)为单位,每个像素是数码条码图像里面积最小的单位。图1是Aztec Code的符号图形示意图,图2是Aztec Code的符号图形功能说明 图。为使本领域技术人员更易于理解本发明的技术内容,以下结合图1、图2对Aztec Code 进行简单说明。如图1所示,Aztec Code的符号图形是建立在正方形网格基础上,符号图形中心 是用于定位条码的正方形牛眼(Bulls-eye)位置探测图形。AztecCode属于矩阵式二维条 码的一种,其在结构形体及元素排列上与代数矩阵具有相似的特征。Aztec Code的符号结 构是由特定的符号功能图形及分布在矩阵元素位置上表示数据信息的正方形图形模块构 成。其用深色模块单元表示二进制的“1”,用浅色模块单元表示二进制的“0”(当然,作为 一种约定,也可用深色模块单元表示二进制的“0”,用浅色模块单元表示二进制的“ 1”)。 数据码字流通过分布在矩阵元素位置上的单元模块的不同组合来表示。图2是Aztec Code的符号图形的功能示意图。如图2所示,Aztec Code的功能 图形包括位置探测图形、指向图形、校正图形(坐标方格)。编码区包括表示符号信息的模 块信息以及数据区。位置探测图形位于Aztec Code的中心,是多层正方形深浅模块的牛眼 图案。Aztec Code包括尺寸较小的紧凑型Aztec Code和尺寸较大的完整型Aztec Code完 整型Aztec Code两类。紧凑型Aztec Code中没有校正图形。完整型Aztec Code完整型 Aztec Code中的校正图形采用深浅间隔的单模块宽度的轨道线形式,用于为符号图形中模 块的坐标定位提供坐标参考。下面针对Aztec Code的功能图形进行详细介绍,以便于本领域技术人员理解后续 Aztec Code的解码过程。图3是紧凑型Aztec Code的条码符号图形的中心区域的功能示 意图。图4是完整型Aztec Code的条码符号图形的中心区域的功能示意图。如图3和图 4所示,位置探测图形中心为一个模块宽度的深色模块,向外依次环绕多层正方形的反色模 块,每层为一个模块宽度。位置探测图形正方形的每个顶角的模块被指向图形覆盖,指向图 形由深浅不同的4个正方形模块构成,按顺时针方向,左上角指向图形为4深,右上角指向 图形的指向图形为1浅3深,右下角指向图形为2浅2深,左下角指向图形为3浅1深。根 据指向图形的模块排列,可以确定Aztec Code的符号图形的方向。指向图形之间是Aztec Code的版本和格式信息区,紧凑型Aztec Code在位置探 测图形的四边共计28个模块用于编码版本和格式信息,完整型Aztec Code在位置探测图 形的四边共计40个模块用于编码版本和格式信息。版本和格式信息包括了整个条码的模 块层数、模块位数以及纠错等级。版本和格式信息区外是编码区,编码区由多层正方形的编码区环绕构成,每层编 码区为2个模块宽度。以下对本发明的Aztec Code解码方法进行详细描述,图5是根据本发明的Aztec
9Code解码方法的处理流程图。如图5所示,在步骤901,在条码图像上进行特征搜索,以确定位置探测图形的像 素坐标,根据位置探测图形的像素坐标获取条码参数,条码参数包括模块宽度和条码方向 等。模块宽度可以通过位置探测图形的像素坐标计算获得,条码方向可以根据位置探测图 形四个顶角的指向图形的模块排列方式确定。在本发明的一种实施方式中,此步骤可以通 过模板匹配检测位置探测图形的方式实现。在本发明的另一种实施方式中,位置探测图形 的搜索也可以通过比例检测的方式实现,该方式包括通过扫描方式检测条码图像中的深浅 模块边界点,将深浅模块边界点之间的间距关系与位置探测图形或校正图形的模块尺寸比 例相比较,根据比较结果确定特征图形在条码图像上的像素坐标。另外,本发明还提供一种 通过行列线检测实现对Aztec Code的识别的实施方式,该方法包括以下步骤首先在条码 图像的预定区域内,提取符合预定长度的多个黑白边界线段;然后基于提取到的多个黑白 边界线段构建多个直线;再根据平行线特性对多个直线进行分组并形成行平行线组及列平 行线组;最后根据Aztec Code的特性,通过对行平行线组及列平行线组构建的网格进行判 断来确认是否存在Aztec Code,并根据行平行线组及列平行线组构建的网格来获取位置探 测图形的像素坐标,根据位置探测图形的像素坐标获取条码参数。在步骤902,根据检测到的位置探测图形的像素坐标和条码参数(包括模块宽度 和条码方向),在条码图像上提取版本信息和格式信息,对版本信息和格式信息进行解码以 获取版本/格式参数,例如包括模块层数、模块位数等信息的版本参数以及纠错等级等。在 某些情况下,条码图像上版本信息和格式信息区域会被污损而导致无法读取数据时,可以 根据条码类型对条码的格式、版本进行预估。例如,通过将各个版本、格式的可能进行排列 组合来对版本和格式预估。根据预估的格式、版本对条码图像进行后续处理。在步骤903,在条码图像上搜索特征图形,例如包括位置探测图形的转角点、校正 图形、动态特征模板、划线特征模板等,根据特征图形获取校正特征,例如包括校正点的像 素坐标和灰度值。在步骤904,根据版本参数确定模块参数,根据校正特征、模块参数和条码参数计 算校正特征所对应的模块坐标,根据校正特征的像素坐标和模块坐标计算校正参数,该校 正参数反映了条码图像的像素点与条码模块之间的映射关系,根据模块参数和校正参数计 算各个模块所对应的像素点,根据各个模块所对应的像素点的坐标和灰度值计算各个模块 所对应的灰度值,构造模块图。在步骤905,对模块图进行二值化处理以提取位图。在步骤906,根据Aztec Code的排列规则进行位流提取并转换为数据码字和纠错码字。在步骤907,根据步骤902得到的版本号和纠错等级,重新将数据码字和纠错码字 按块排列,进行错误检测和纠错计算,纠正删除错误和未知错误,直到版本号和纠错等级所 规定的最大纠错容量,然后重新组配数据块序列,还原表示Aztec Code信息的数据位流。在步骤908,根据还原的数据位流进行译码,以获得Aztec Code信息。以下对本发明的Aztec Code条码解码芯片进行详细描述,图6是根据本发明的 Aztec Code条码解码芯片的第一实施方式的结构示意图。如图6所示,数据存储器11存储条码图像,Aztec Code条码解码芯片10对数据存储器11存储条码图像进行识别解码。Aztec Code条码解码芯片10包括控制逻辑单元 100、特征搜索单元101、条码参数获取单元102、版本/格式参数获取单元103、校正特征获 取单元104、模块信息处理单元105、二值化单元106、码字提取单元107以及纠错译码单元 108。控制逻辑单元100用于控制特征搜索单元101、条码参数获取单元102、版本/格 式参数获取单元103、校正特征获取单元104、模块信息处理单元105、二值化单元106、码字 提取单元107以及纠错译码单元108的工作状态和处理流程。控制逻辑单元100采用有限 状态机(Finite State Machine)形式进行控制。有限状态机又称有限状态自动机或简称 状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的状态逻辑。控制逻 辑单元100可以用可编程逻辑设备、可编程逻辑控制器、逻辑门和触发器来构造。优选的实 施方式中,控制逻辑单元100包括寄存器、确定状态转移的组合逻辑以及确定状态控制模 块输出的组合逻辑。寄存器用于存储状态变量。特征搜索单元101通过在条码图像中搜索特征图形来确定特征图形在条码图像 上的像素坐标。特征图形包括但不限于条码的功能图形,例如位置探测图形、校正图形等。 优选的实施方式中,位置特征搜索单元101采用模板匹配的方式搜索位置探测图形,其根 据位置探测图形的模块宽度比生成位置探测图形检测模板,将位置探测图形检测模板相对 条码图像进行平移并进行灰度匹配,以确定位置探测图形检测模板与条码图像的最佳匹配 位置,并根据最佳匹配位置确定条码图像中位置探测图形的中心点和四角的像素坐标。在 本发明的另一种实施方式中,特征搜索单元101也可以通过比例检测的方式来确定位置探 测图形或校正图形在条码图像上的像素坐标,该方式包括通过扫描方式检测条码图像中的 深浅模块边界点,将深浅模块边界点之间的间距关系与位置探测图形或校正图形的模块尺 寸比例相比较,根据比较结果确定位置探测图形或校正图形在条码图像上的像素坐标。另 外,本发明还提供一种通过行列线检测实现对Aztec Code的识别的实施方式,在该实施方 法中,特征搜索单元101首先在条码图像的预定区域内,提取符合预定长度的多个黑白边 界线段,然后基于提取到的多个黑白边界线段构建多个直线,再根据平行线特性对多个直 线进行分组并形成行平行线组及列平行线组,最后根据Aztec Code的特性,通过对行平行 线组及列平行线组构建的网格进行判断来确认是否存在Aztec Code,并根据行平行线组及 列平行线组构建的网格来获取位置探测图形的像素坐标。条码参数获取单元102根据特征搜索单元101所检测的位置探测图形的像素坐标 来计算条码参数,通过位置探测图形的层宽计算模块宽度,根据位置探测图形的四角的指 向图形的模块排列,确定Aztec Code的符号图形的条码方向。版本/格式参数获取单元103根据特征搜索单元101所检测的位置探测图形的像 素坐标和条码参数,在条码图像上提取版本信息和格式信息,对版本信息和格式信息进行 解码以获取版本/格式参数。由于编码区的版本信息、格式信息是临近位置检测图形设置 的,版本/格式参数获取单元103根据位置检测图形的像素坐标和条码方向、条码模块宽 度,可以搜索获得版本信息、格式信息区域,进行二值化计算和纠错译码后即可获取版本/ 格式参数,例如版本号、纠错等级等。在某些情况下,条码图像上版本信息和格式信息区域会被污损而导致无法读取数 据。版本/格式参数获取单元103可以根据条码类型对条码的格式、版本进行预估。例如,通过将各个版本及纠错等级的可能进行排列组合来对版本和格式预估。根据预估的格式、 版本对条码图像进行后续处理。校正特征获取单元104通过在条码图像上搜索特征位置,例如包括位置探测图形 的转角点、校正图形、指向图形、动态模板、划线模板等,根据特征位置获取校正特征,例如 包括校正点的像素坐标和/或模块坐标以及灰度值。校正特征获取单元包括多种实施方 式,并非限定于根据校正图形获取校正特征。图7是根据本发明的Aztec Code条码解码芯片的第一实施方式中校正特征获取 单元的第一种校正点获取结构的示意图。如图7所示,校正特征获取单元104包括校正图 形搜索单元1041和校正点获取单元1042。与特征搜索单元101类似,校正图形搜索单元 1041根据校正图形的模块宽度比和条码参数,例如是按照轨道线的模块宽度比生成校正图 形检测模板,将校正图形检测模板相对条码图像进行平移并进行灰度匹配。校正点获取单 元1042对匹配结果进行相似度计算处理,以确定校正图形检测模板与条码图像的最佳匹 配位置,根据最佳匹配位置确定条码图像中校正图形的中心点的像素坐标以及灰度值。模块信息处理单元105根据版本参数确定模块参数,根据校正特征、模块参数和 条码参数计算校正特征所对应的模块坐标,根据校正特征的像素坐标和模块坐标计算校正 参数,该校正参数反映了条码图像的像素点与条码模块之间的映射关系,根据模块参数和 校正参数计算各个模块所对应的像素点,根据各个模块所对应的像素点的坐标和灰度值计 算各个模块所对应的灰度值,构造模块图。图8是根据本发明的Aztec Code条码解码芯片的第一实施方式中模块信息处理 单元的结构示意图。模块信息处理单元105包括模块参数计算单元1051、校正特征模块坐 标计算单元1052、校正参数计算单元1053、模块像素点计算单元1054以及模块灰度值计算 单元1055。模块参数计算单元1051根据版本参数获取与版本参数相对应的模块层数、模块 位数和模块数量。校正特征模块坐标计算单元1052根据校正特征获取单元104提供的校 正特征的像素坐标,结合条码参数和模块参数计算获得校正特征的模块坐标。校正参数计 算单元1053根据校正特征的像素坐标和模块坐标计算获得校正参数,该校正参数反映了 条码图像的像素点与条码模块之间的映射关系。模块像素点计算单元1054根据模块参数 和校正参数计算各个模块所对应的像素点。模块与像素点之间的映射计算可以通过多种方 式实现,包括透视变换、二次多项式、三次多项式、三角网格、小波变换或上述计算方式的结 合等。模块像素点计算单元1054可以通过模块坐标计算对应的像素点的坐标,也可以通过 像素坐标计算对应的模块的坐标。本发明对上述计算过程及其所采取的计算手段并不加以 限定。模块灰度值计算单元1055根据各个模块所对应的像素点的坐标和灰度值计算各个 模块所对应的灰度值,以构造模块图。模块的灰度值计算可以通过多种方式实现,包括统计 计算、插值计算、均值计算、加权计算或上述计算方式的结合等,本发明对上述计算过程及 其所采取的计算手段并不加以限定。为便于本领域技术人员理解本发明的模块信息处理单元的处理过程,本发明举例 一种计算方法对本发明的模块信息处理单元的转换原理进行说明,但是,该计算方法不应 理解为对本发明的模块信息处理单元的限制。图9是根据本发明的Aztec Code条码解码芯片的第一实施方式中模块信息处理 单元的转换原理示意图。模块81与像素区域82之间具有映射关系,变形区域821对应于模块81在像素区域82上的映射范围。模块81的中心点W在像素区域82所对应的映射点 为r。由图9可知,模块81所对应的像素点包括A-P的16个像素点,围绕映射点W'的 像素点为A、B、C、D 4个像素点。中心变形区域822对应于模块81的中心区域在像素区域 82上的映射范围。对于矩阵条码而言,模块的中心区域所反映的模块值最准确。优选的实 施方式中,可以通过A、B、C、D 4个像素点的灰度值来计算与映射点W'相对应的模块中心 点W的灰度值。当然,也可以通过像素区域82所对应的所有像素点来计算模块81的灰度 值。即,模块81的灰度值可以通过与其对应的若干个像素点的灰度值计算得出。二值化单元106接收模块信息处理单元105计算获得的模块灰度值,根据阈值对 模块图进行二值化处理以提取位图。阈值的获取方式包括预设阈值、整体阈值获取、局部阈 值获取等多种方式码字提取单元107根据Aztec Code的排列规则进行位流提取并转换为数据码字 和纠错码字。纠错译码单元108根据版本/格式参数获取单元103得到的版本号和纠错等级, 重新将数据码字和纠错码字按块排列,进行错误检测和纠错计算,纠正删除错误和未知错 误,直到版本号和纠错等级所规定的最大纠错容量,然后重新组配数据块序列,还原表示 Aztec Code信息的数据位流,根据还原的数据位流进行译码,以获得Aztec Code信息。图10是根据本发明的Aztec Code条码解码芯片的第二实施方式的结构示意图。 与本发明的Aztec Code条码解码芯片的第一实施方式的不同之处在于,Aztec Code条码 解码芯片20的结构作了以下改进,其通过特征搜索单元201实现对功能图形和/或校正特 征的搜索,取消了校正特征获取单元。与本发明的第一实施方式相类似,特征搜索单元201通过在条码图像中搜索特征 图形来确定特征图形在条码图像上的像素坐标。特征图形例如是位置探测图形。通过调整 模板匹配的模块宽度比和/或模块坐标,特征搜索单元101还可以对其他特征图形进行搜 索,例如校正图形。特征搜索单元201按照轨道线的模块宽度比生成校正图形检测模板,将 校正图形检测模板相对条码图像进行平移并进行灰度匹配。校正点获取单元1042对匹配 结果进行相似度计算处理,以确定校正图形检测模板与条码图像的最佳匹配位置,根据最 佳匹配位置确定条码图像中校正图形的中心点的像素坐标以及灰度值。特征图形包括但不限于条码的功能图形,例如位置探测图形、校正图形、指向图形 等。为使本领域技术人员易于理解本发明,下面对功能图形之外的特征图形的表现形式作 举例说明。Aztec Code属于矩阵码的一种,其条码符号图形具有矩阵码的代数矩阵特征, 条码符号可以视为是由若干个深浅不同的矩形模块组成。通过选取条码图像区域中相对 于相邻模块图形比较容易区分的标志性较好的矩形模块图形的集合,可以形成动态特征模 板。另外还可以通过搜索条码图像上位于同一行或列上的相互间隔的两个同色模块(深色 模块或浅色模块),形成划线特征模板。特征搜索单元201按照动态特征模板或划线特征模板的模块坐标所对应的模块 宽度比生成动态特征模板或划线特征模板的检测模板,将动态特征模板或划线特征模板的 检测模板相对条码图像进行平移并进行灰度匹配。对匹配结果进行相似度计算处理,以确 定动态特征模板或划线特征模板的检测模板与条码图像的最佳匹配位置,根据最佳匹配位 置确定条码图像中动态特征模板或划线特征模板的中心点和/或四角的像素坐标以及灰
13度值。模块信息处理单元205直接接收特征搜索单元201所提供的特征图形的像素坐标 作为校正特征进行处理,校正特征例如是条码图像中位置探测图形的中心点和四角的像素 坐标,校正图形的中心点的像素坐标,指向图形的像素坐标,或者是动态特征模板或划线特 征模板的中心点的像素坐标等。图11是根据本发明的Aztec Code条码解码芯片的第二实 施方式中模块信息处理单元的结构示意图。与本发明的Aztec Code条码解码芯片的第一 实施方式的不同之处在于,校正特征模块坐标计算单元2052连接特征搜索单元201,并根 据条码参数和模块参数计算单元2051提供的模块参数计算获得特征图形的模块坐标。校 正参数计算单元2053根据特征图形的像素坐标和模块坐标计算获得校正参数,该校正参 数反映了条码图像的像素点与条码模块之间的映射关系。模块像素点计算单元2054根据 模块参数和校正参数计算各个模块所对应的像素点。模块与像素点之间的映射计算可以通 过多种方式实现,包括透视变换、二次多项式、三次多项式、三角网格、小波变换或上述计算 方式的结合等。模块灰度值计算单元2055根据各个模块所对应的像素点的坐标和灰度值 计算各个模块所对应的灰度值,以构造模块图。本发明的Aztec Code解码方法,通过搜索校正特征,获取校正特征的像素灰度坐 标与模块坐标,计算条码图像的像素坐标与模块坐标之间的映射关系,然后根据该映射关 系计算模块灰度值,对模块灰度值进行二值化,进而还原Aztec Code所对应的条码符号图 形。与现有技术相比,本发明的AztecCode解码方法是在知晓条码特征信息,并根据条码特 征信息对条码图像进行校正后进行的二值化处理,因此降低了噪声、畸变等因素对二值化 过程的影响,减少了模块错误的出现,大大增加了条码的识别能力,提升了条码识别的解码 成功率。本发明的Aztec Code条码解码芯片采用硬件流水线结构,通过硬件逻辑实现对条 码图像的识别解码,由于硬件流水线结构适于对条码图像进行流水线作业和并行处理,因 此处理速度很快。相对于现有技术的处理器解码技术而言,本发明的Aztec Code条码解码芯片采用 全硬件结构,无需处理器参与解码,芯片结构相对于处理器而言结构更为简化、面积更小、 功耗更低、成本更低、易于集成,容易实现便携应用。可以方便地与物联网技术相结合,为条 码技术的应用提供了更为广阔的发展空间。以上参照

了本发明的各种优选实施例,但是只要不背离本发明的实质和 范围,本领域的技术人员可以对其进行各种形式上的修改和变更,都属于本发明的保护范围。
权利要求
一种Aztec Code条码解码芯片,包括特征搜索单元,在条码图像中搜索位置探测图形来确定所述位置探测图形的像素坐标;条码参数获取单元,根据所述位置探测图形的像素坐标来获取模块宽度,并根据所述位置探测图形的像素坐标来搜索指向图形,获取条码方向;版本/格式参数获取单元,获取条码的版本参数和/或格式参数;校正特征获取单元,在所述条码图像上搜索特征位置,根据所述特征位置获取校正特征;模块信息处理单元,根据所述版本参数、所述模块宽度、所述条码方向和所述校正特征,计算模块所对应的灰度值;二值化单元,对所述模块进行二值化处理;码字提取单元,根据二值化处理的所述模块提取码字;纠错译码单元,对所述码字进行译码处理。
2.根据权利要求1所述的AztecCode条码解码芯片,其特征在于,所述特征搜索单元 根据所述特征图形的模块宽度比生成特征图形检测模板,将所述特征图形检测模板相对所 述条码图像进行平移并进行灰度匹配,以确定所述特征图形检测模板与所述条码图像的最 佳匹配位置,并根据所述最佳匹配位置确定所述条码图像中所述特征图形的像素坐标。
3.根据权利要求1所述的AztecCode条码解码芯片,其特征在于,所述特征搜索单元 通过扫描方式检测所述条码图像中的深浅模块边界点,将所述深浅模块边界点之间的间距 关系与所述位置探测图形的模块尺寸比例相比较,根据比较结果确定所述条码图像中所述 位置探测图形的像素坐标。
4.根据权利要求1所述的AztecCode条码解码芯片,其特征在于,所述特征搜索单元 在所述条码图像的预定区域内,提取符合预定长度的多个黑白边界线段,然后基于提取到 的所述多个黑白边界线段构建多个直线,再根据平行线特性对所述多个直线进行分组并形 成行平行线组及列平行线组,最后根据AztecCode的特性,通过对所述行平行线组及列平 行线组构建的网格进行判断来确认是否存在Aztec Code,并根据所述行平行线组及列平行 线组构建的网格的来获取所述位置探测图形的像素坐标。
5.根据权利要求1所述的AztecCode条码解码芯片,其特征在于,所述版本/格式参 数获取单元根据所述特征图形的像素坐标和所述模块宽度、所述条码方向,在所述条码图 像上提取版本信息和格式信息,对所述版本信息和所述格式信息进行解码以获取所述版本 /格式参数。
6.根据权利要求1所述的AztecCode条码解码芯片,其特征在于,所述版本/格式参 数获取单元根据Aztec Code的格式、版本进行预估以获取所述版本参数和/或格式参数。
7.根据权利要求1所述的AztecCode条码解码芯片,其特征在于,所述模块信息处理 单元包括模块参数计算单元、校正特征模块坐标计算单元、校正参数计算单元、模块像素点 计算单元以及模块灰度值计算单元,所述模块参数计算单元根据所述版本参数获取模块参 数,所述校正特征模块坐标计算单元根据所述模块宽度、所述条码方向、所述模块参数和所 述特征图形的像素坐标,计算所述特征图形的模块坐标,所述校正参数计算单元根据所述 特征图形的像素坐标和所述特征图形的模块坐标,计算所述条码图像的像素坐标与模块坐标之间的映射关系,所述模块像素点计算单元根据所述映射关系计算各个模块所对应的像 素坐标,所述模块灰度值计算单元根据所述各个模块所对应的像素坐标计算所述各个模块 的灰度值。
8.一种Aztec Code条码解码芯片,包括特征搜索单元,在条码图像中搜索特征图形来确定所述特征图形的像素坐标; 条码参数获取单元,根据所述特征图形的像素坐标来获取模块宽度,并根据所述特征 图形的像素坐标来搜索指向图形,获取条码方向;版本/格式参数获取单元,获取条码的版本参数和/或格式参数; 模块信息处理单元,根据所述版本参数、所述模块宽度、所述条码方向和所述特征图形 的像素坐标,计算模块所对应的灰度值;二值化单元,对所述模块进行二值化处理; 码字提取单元,根据二值化处理的所述模块提取码字; 纠错译码单元,对所述码字进行译码处理。
9.根据权利要求8所述的AztecCode条码解码芯片,其特征在于,所述特征搜索单元, 在所述条码图像中搜索第一特征图形来确定所述第一特征图形的像素坐标,所述条码参数 获取单元根据所述第一特征图形的像素坐标来获取所述模块宽度、所述条码方向。
10.根据权利要求9所述的AztecCode条码解码芯片,其特征在于,所述特征搜索单 元,在所述条码图像中搜索第二特征图形来确定所述第二特征图形的像素坐标,所述模块 信息处理单元根据所述版本参数、所述模块宽度、所述条码方向和所述第二特征图形的像 素坐标,计算所述模块所对应的灰度值。
11.一种Aztec Code解码方法,其特征在于,包括以下步骤a.获取条码图像;b.搜索位置探测图形,根据所述位置探测图形的像素坐标来获取模块宽度,并根据所 述位置探测图形的像素坐标来搜索指向图形,获取条码方向;c.获取版本参数,根据所述版本参数获取模块参数;d.搜索校正特征,获取校正特征的像素坐标;e.根据所述模块宽度、所述条码方向、所述模块参数和所述校正特征的像素坐标,计算 所述校正特征的模块坐标;f.根据所述校正特征的像素坐标和所述校正特征的模块坐标,计算所述条码图像的像 素坐标与模块坐标之间的映射关系;g.根据所述映射关系计算模块灰度值;h.对所述模块灰度值进行二值化处理;i.根据所述二值化处理的结果提取码字; j.对所述码字进行译码处理。
12.—种Aztec Code解码方法,其特征在于,包括以下步骤a.获取条码图像;b.搜索特征图形,获取模块宽度、条码方向和特征图形的像素坐标;c.获取版本参数,根据所述版本参数获取模块参数;d.根据所述模块宽度、所述条码方向、所述模块参数和所述特征图形的像素坐标,计算所述特征图形的模块坐标;e.根据所述特征图形的像素坐标和所述特征图形的模块坐标,计算所述条码图像的像 素坐标与模块坐标之间的映射关系;f.根据所述映射关系计算模块灰度值;g.对所述模块灰度值进行二值化处理;h.根据所述二值化处理结果提取码字;i.对所述码字进行译码处理。
13.根据权利要求12所述的AztecCode解码方法,其特征在于,步骤b还进一步包括 搜索第一特征图形,获取所述模块宽度、所述条码方向;搜索第二特征图形,获取所述第二 特征图形的像素坐标。
14.根据权利要求12所述的AztecCode解码方法,其特征在于,该方法还包括根据所 述模块宽度、所述条码方向、所述模块参数和所述特征图形的像素坐标,计算所述第二特征 图形的模块坐标;根据所述第二特征图形的像素坐标和所述第二特征图形的模块坐标,计 算所述条码图像的像素坐标与模块坐标之间的映射关系。
15.一种Aztec Code解码方法,其特征在于,包括以下步骤a.获取条码图像;b.在所述条码图像的预定区域内,提取符合预定长度的多个黑白边界线段;c.基于所述多个黑白边界线段构建多个直线;d.根据平行线特性对所述多个直线进行分组并形成行平行线组及列平行线组;e.根据AztecCode的特性,通过对所述行平行线组及列平行线组构建的网格进行判 断来确认是否存在Aztec Code ;f.根据所述行平行线组及列平行线组构建的网格来获取位置探测图形的像素坐标,根 据所述位置探测图形的像素坐标来搜索指向图形,获取条码方向;g.获取版本参数,根据所述版本参数获取模块参数;h.搜索校正特征,获取所述校正特征的像素坐标;i.根据所述模块宽度、所述条码方向、所述模块参数和所述校正特征的像素坐标,计算 所述校正特征的模块坐标;g.根据所述校正特征的像素坐标和所述校正特征的模块坐标,计算所述条码图像的像 素坐标与模块坐标之间的映射关系;k.根据所述映射关系计算模块灰度值; 1.对所述模块灰度值进行二值化处理; m.根据所述二值化处理的结果提取码字; η.对所述码字进行译码处理。
全文摘要
本发明提供一种Aztec Code条码解码芯片。特征搜索单元在条码图像中搜索位置探测图形来确定位置探测图形的像素坐标。条码参数获取单元根据位置探测图形的像素坐标来获取模块宽度,并根据位置探测图形的像素坐标来搜索指向图形,获取条码方向。版本/格式参数获取单元获取条码的版本参数和/或格式参数。校正特征获取单元在条码图像上搜索特征位置,根据特征位置获取校正特征。模块信息处理单元根据版本参数、模块宽度、条码方向和校正特征,计算模块所对应的灰度值。二值化单元,对模块进行二值化处理。码字提取单元,根据二值化处理的模块提取码字。纠错译码单元对码字进行译码处理。本发明还提供一种通过Aztec Code解码方法。本发明的Aztec Code条码解码芯片以及Aztec Code解码方法能保证Aztec Code解码过程快速、顺利地进行。
文档编号G06K7/10GK101908128SQ20101018981
公开日2010年12月8日 申请日期2010年6月1日 优先权日2010年6月1日
发明者刘荣生, 蔡强, 邱有森, 黄建新 申请人:福建新大陆电脑股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1