一种采用分层结构的二维码编码方法和译码方法与流程

文档序号:11920922阅读:228来源:国知局
一种采用分层结构的二维码编码方法和译码方法与流程
本发明涉及定位二维码领域,具体地说,特别涉及到一种采用分层结构的二维码编码方法和译码方法。
背景技术
:二维条码/二维码(2-dimensionalbarcode)是用某种特定的排列顺序按照一定的规律在平面上横向纵向上排布黑白相间的图形记录数据符号信息。利用计算机内部逻辑基础的“0”、“1”比特流概念,深色图案对应“1”比特,浅色图案对应“0”比特。相对一维条码,二维码不仅能在横向表达信息同时也能在纵向表达信息,并且具有一定的校验功能,不单单只是对物品进行标识而是可以对物品进行描述,而且不用像一维条码多数场合需要依赖数据库,可单独进行应用。现有的二维条码使用的里德-所罗门(Reed-Solomon)算法,Reed-Solomon算法是在伽罗华域中基于求解线性方程组来得到监督码和纠正因二维码污损产生的错误,计算复杂程度高。二维条码被大量运用于工业零部件方面,往往一个工业零部件需要长时间使用,因此当激光雕印在零部件上面的二维条码因污染磨损导致无法识别时,会因为无法及时更换零件而导致经济损失。因此设计出一种更容易识别、抗污损能力更强的二维码用于工业零部件上是大势所趋。技术实现要素:本发明的目的在于针对现有技术中的不足,提供一种采用分层结构的二维码编码方法,其具有对源数据信息流进行需优先编码的主要信息和非重要的次要信息分开进行编码形成二维码图片,可避免被大规模污损的二维码无法识别出主要信息的情况,提高了二维码图片的可靠性。本发明所解决的技术问题可以采用以下技术方案来实现:一种采用分层结构的二维码编码方法,包括如下步骤:S1,对源数据信息流进行主次要信息分类,获得新源数据信息流,并对分类后的新源数据信息流选择相对应的编码规则;S2,将新源数据信息流根据编码规则得到源数据码字,对源数据码字进行二进制转换为源数据二进制比特流,源数据二进制比特流通过Turbo编码器进行编码,得到数据码字;S3,将上述步骤S2中的数据码字输入到矩阵交织器中进行交织,并将交织后的数据码字读取,得到最终码字;S4,将最终码字分组,根据图形编码规则转化成二维码。所述步骤S1中对源数据信息流进行主次要信息分类的方法如下:对源数据信息流所携带的信息进行主要、次要信息进行分类,将优先需要编译出的信息流作为主要信息,将其他信息作为次要信息,并按照按主要信息在前,次要信息在后的排列顺序得到新源数据信息流。所述步骤S1还需判断主要源数据信息流的长度是否满足3的倍数输入,其具体方法如下:对分类得到的主要源数据信息流长度进行判断,若输入的主要源数据信息流为字符串ABC,则不需要在字符串ABC后面添加空字符;若输入的主要源数据信息流为字符A,则需要在字符A后面添加两个空字符NUL,得到新的主要源数据信息流ANULNUL;若输入的主要源数据信息流为字符AB,则需要在字符AB后面添加一个空字符NUL,得到新的主要源数据信息流ABNUL;所述新源数据信息流根据编码规则得到源数据码字的方法如下:将新源数据信息流通过ASCII码表转换成二进制码,二进制码通过卷积码编码器计算得到二进制码的个数,二进制码的个数与ECC200表格规中预设数据区域所容纳的二进制码个数相比较。所述步骤S2的具体方法如下:1)将所述步骤S2中的新源数据信息流通过查询ASCII码表生成(0,255)范围内的二进制码字,生成长度为K的新源数据二进制流XK;2)运用带有删余矩阵的(13,15)Turbo编码器对二进制码字进行编码,(13,15)Turbo编码器对输入的源数据二进制码字进行计算,公式如下所示:g1(D)=1+D+D3g0(D)=1+D2+D3含有递归系统卷积码(RSC)编码器会根据子编码器中反馈结构在后面添加3个尾比特使编码器状态归零。将长度为K的源数据二进制流XK直接进入编码器1进行编码,通过移位寄存器反馈获取尾比特执行寄存器清零,尾比特在源数据二进制流的编码后填充,最后得到由编码器1得到的校验流ZK,校验流ZK如下所示:{Z0,Z1,...,ZK-1,XK,ZK,XK+1,ZK+1,XK+2,ZK+2}将长度为K的源数据二进制流XK经过内部交织后得到长度为K的二进制流X'K。将二进制流X'K进入编码器2并填充尾比特后得到校验流Z'K,校验流Z'K如下所示:{Z'0,Z′1...,Z'K-1,X'K,Z'K,X'K+1,Z'K+1,X'K+2,Z'K+2}将上述得到的两组校验流ZKZ'K输入到删余矩阵对校验位进行删余,将删余过后的两组校验比特流与源数据二进制流XK结合得到数据码字。所述步骤S4中将最终码字分组,并根据图形编码规则转化成二维码的具体方法如下:由主要信息编码得到的最终码字先进行图形转换,在已经转换好的图形中从左到右、从上到下的顺序将次要信息的最终码字进行图形转换,得到二维码,其具体方法如下:将由主要源数据信息流转换得到的最终码字按照输出的排列顺序每三个一分组,先进行图形转换;由次要源数据信息流转换得到的最终码字按照输出的排列顺序每两个一分组,添加双“L”型识别区域得到完整二维码图片。一种采用分层结构二维码的译码方法,包括如下步骤:a1.用能够识别二维码的扫描器扫描二维码获取生成标准二维码矩阵;a2.将生成二维码矩阵通过译码器译码得到源数据信息流。所述步骤a1的具体方法如下:使用高精度的扫描器对二维码进行扫描,通过特定的图像处理采集二维码图像获得标准二维码矩阵。所述步骤a2的具体方法如下:a、对生成的标准二维码矩阵通过解调器解调得到二进制软信息比特流;b、将解调得到的二进制软信息比特流进入矩阵解交织译码器进行解交织得到一组新二进制软信息比特流;c、将新二进制软信息比特流进入到Turbo译码器,经过Turbo译码器进行译码纠错,获得源数据二进制比特流;d、利用译码规则将源数据二进制比特流解析出源数据信息流。与现有技术相比,本发明的有益效果如下:本发明由于二维码图片是由主要信息形成的二维码图片为主体,并对其进行分层,将次要信息形成的二维码图片按顺序添加到分层过后的主体二维码图片中。在二维码生成之后,即使发生了大规模污损的情况下,扫描器依然能够识别和读取得到主要信息的源数据信息流。提高了二维码图片的可识别性。附图说明图1为本发明所述的采用分层结构二维码的编码方法流程示意图。图2为本发明所述的采用分层结构二维码的译码方法流程示意图。图3为本发明所述的编码器的结构示意图。图4为本发明所述的二值化图像的示意图。图5为本发明所述的二值化图像矩阵的示意图。具体实施方式为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本发明。参见图1和图2,本发明所述的一种新型分层结构二维码的编码方法,包括如下步骤:S1,对源数据信息流进行主次要信息分类。判断主要源数据信息流长度是否满足3的倍数输入;判断主要源数据信息流长度是否满足3的倍数输入具体为:对分类得到的主要源数据信息流长度进行判断,例如输入的主要源数据信息流为字符串ABC,则不需要在字符串ABC后面添加空字符,需要进行下述步骤S2;输入的主要源数据信息流为字符A,则需要在字符A后面添加两个空字符NUL,得到新的主要源数据信息流ANULNUL,需要进行下述步骤S2;输入的主要源数据信息流为字符AB,则需要在字符AB后面添加一个空字符NUL,得到新的主要源数据信息流ABNUL,需要进行下述步骤S2;S2,根据主要源数据信息流选择出对应的ECC200表格并判断次要源数据信息流是否能完整填充;选择出对应ECC200表格规则并判断次要源数据信息流是否能完整填充具体为:先对分类后的主要源数据信息流转换成二进制码,计算二进制码通过卷积码编码器得到二进制码的个数,根据主要源数据信息流选择出对应的ECC200规格大小;再对分类后的次要源数据信息流转换成二进制,计算二进制码通过卷积码编码器得到二进制码的个数,计算方法同主要源数据信息流,(13,15)Turbo编码器含有6个寄存器,因此在编码结束后需要将编码器状态清“0”,会得到一组12位二进制码字流,将这组二进制码归为次要源数据信息流得到的二进制码字流。选择出对应ECC200规格大小时,次要源数据信息流无法填充完整图形时,无需补充二进制流将图形填充完整;次要源数据信息流因长度过长、图形太小无法完全容纳时,将冗余的二进制流去掉即可;例如使用删余矩阵、编码速率为1/2的(13,15)Turbo编码器,输入两个主要源数据信息流七个次要源数据信息流,先对两个主要源数据信息流添加一个空字符后得到新主要源数据信息流,新主要源数据信息流转换成八位二进制码,得到一个24位二进制码字流,每个二进制码通过编码速率为1/2的(13,15)Turbo编码器得到二进制码的个数,即每个二进制码通过卷积码编码器输出两个二进制码,总共得到24×2=48个二进制码,根据选择ECC200数据区域为8×8的表格,根据表二的图形编码方法每行每列为2×2的方块,因此该表格能容纳主要源数据信息流为4×4×3=48个二进制码,即主要源数据信息流满足ECC200表格规则;对七个次要源数据信息流进行计算得到112个二进制码,因为编码速率为1/2的(13,15)Turbo编码器只需要添加6个二进制码即可对Turbo编码器清“0”,因此得到所需的118个二进制码,根据表四每个主要源数据信息流拥有四个色块,每个色块可以携带2个次要源数据信息二进制码,因此可以容纳8个二进制码,根据计算得到需要数据区域为8×8的表格才能容纳所有次要源数据信息流,即次要源数据信息流满足ECC200表格规则无需删减多余的二进制码字流,需要进行下述步骤S3;S3,将源数据信息流根据编码规则得到源数据码字并进行二进制转换为源数据二进制比特流,通过(13,15)Turbo编码器进行编码,得到数据码字;所述源数据信息流根据编码规则得到源数据码字具体为:将分类过后的源数据信息流经过查询ASCII码表生成(0,255)范围内的源数据码字,针对不同的数据类型有不同的编码模式,为了提高特定类型数据的效率可以混合其他编码模式如C40模式、Text模式、X12模式、EDIFACT模式、Base256模式将码长进行压缩,根据不同编码方式的要求与ASCII码进行切换字符;所述源数据码字进行二进制转换具体为得到一组只有0和1的二进制流的生成长度为K的源数据二进制比特流;所述(13,15)Turbo编码器进行编码具体为:(13,15)Turbo编码器对输入的源数据二进制码字进行计算,公式如下所示:g1(D)=1+D+D3g0(D)=1+D2+D3含有递归系统卷积码(RSC)编码器会根据子编码器中反馈结构在输入码字流后添加3个尾比特使编码器状态归零。编码器结构如图3所示。将长度为K的源数据二进制流XK直接进入编码器1进行编码,通过移位寄存器反馈获取尾比特执行寄存器清零,尾比特在源数据二进制流的编码后填充,最后得到由编码器1得到的校验流ZK,校验流ZK如下所示:{Z0,Z1,...,ZK-1,XK,ZK,XK+1,ZK+1,XK+2,ZK+2}将长度为K的源数据二进制流XK经过内部交织后得到长度为K的二进制流X'K。将二进制流X'K进入编码器2并填充尾比特后得到校验流Z'K,校验流Z'K如下所示:{Z'0,Z′1...,Z'K-1,X'K,Z'K,X'K+1,Z'K+1,X'K+2,Z'K+2}将上述得到的两组校验流ZKZ'K输入到删余矩阵对校验位进行删余,将删余过后的两组校验比特流与源数据二进制流XK结合得到数据码字。S3,将上述S2中的数据码字输入到矩阵交织器中进行交织,并将交织后的数据码字读取,得到最终码字,其矩阵交织器首先对数据码字进行分组交织,将列数C预设为30,然后设数据码字的码字个数为U,找出满足不等式U≤RC的最小整数R,得到行数R,确定行数R后,得到矩阵A,接下来将数据码字逐行写入矩阵A中,若数据码字无法将R行写入完整,则用数据二进制比特流的0或1将R行其它空缺位置填补,将矩阵A进行矩阵变换得到新矩阵B,如矩阵A按照表一进行变换,最终将新矩阵B逐列读出数据,并将之前不存在数据码字中的数据二进制比特流的0或1去掉,得到最终码字;S4,将由主要源数据信息流转换得到的最终码字按照输出的排列顺序每三个一分组,先进行图形转换;由次要源数据信息流转换得到的最终码字按照输出的排列顺序每两个一分组,添加双“L”型识别区域得到完整二维码图片。如图2、图3、图4、图5、表1和表2所示,一种新型分层结构二维码的译码方法,包括如下步骤:S1,用能够识别新型二维码的扫描器对二维码进行扫描,得到采集的二维码图片;所述新型二维码的扫描器为一种识别精度较高的扫描器,可以对次要信息得到的分层二维码图片进行识别;当扫描器识别精度不高时,依旧可以将主要信息识别出来,不会因无法识别出次要信息而使得二维码失效;S2,对采集的二维码图片进行灰度化,对灰度化的图像进行二值化;所述对采集的二维码图片进行灰度化使用加权平均法,通过人眼对不同颜色的灵敏度对RGB三分量进行加权平均得到较合理的灰度图像;所述对灰度化的图像进行二值化,实现图像二值化软比特输出;S3,对二值化的图像进行定位、矫正处理得到标准化二维码矩阵;所述对二值化的图像进行定位、矫正处理为对图像中的二维码进行精确定位,寻找“L”形定位图形,获取“L”型的顶点坐标与两边的长度,并对图形进行旋转和裁剪,对得到的二维码图片映射成标准化二维码矩阵;S4,对得到的标准化二维码矩阵通过解调器运用软判决方法解调得到软信息比特流;S5,对解调得到的软信息比特流输入到矩阵解交织器中,得到解交织后的软信息比特流;对解调得到的软信息比特流输入到矩阵解交织器中,得到解交织后的软信息比特流具体为:将获取的软信息比特流进入解交织译码器进行解交织得到一组码字流,其解交织译码器具体算法是会构造一个解交织矩阵,其中规定解交织矩阵列数C为30,根据接收到的码字,设码字个数为U',找出满足不等式U'≤CR'中的最小整数R',得到行数R',确定行数R'后,得到矩阵D,将接收到的码字逐列写入矩阵D中,若输入码字无法将行数R'写入完整,则用数据二进制比特流的0或1将行数R'其它空缺位置填补,然后将矩阵D经过矩阵变换,如矩阵D按照表三进行变换,从而得到新矩阵E,接下来将矩阵E逐行读取,并将之前不存在数据码字中的数据二进制比特流0或1去掉,得到解交织后软信息比特流;S6,对解交织后的软信息比特流输入到Turbo译码器中进行译码,得到源数据信息流;所述对交织后的软信息比特流输入到Turbo译码器中进行译码,得到源数据信息流具体为:将解交织后的软信息比特流输入到由两个软输入软输出(SISO)构成的串行级联Turbo码译码器DEC1和DEC2,译码器DEC1对分量码RSC1进行最佳译码,产生关于源数据二进制流XK中每一个比特的似然比信息,并将其中的“外部信息”经过交织送给DEC2,译码器DEC2将此信息作为先验信息,对分量码RSC2进行最佳译码,产生交织后源数据二进制流中每一比特的似然比信息,然后将其中的“外部信息”经过解交织后送给DEC1,进行下一次解码。经过多次迭代后,DEC1或DEC2的外部信息趋于稳定,似然比渐进值逼近于对整个码的最大似然估计译码,对此似然比进行硬判决即可得到最佳估值序列。交织前列间排序{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29}交织后列间排序{0,20,10,5,15,25,3,13,23,8,18,28,1,11,21,6,16,26,4,14,24,19,9,29,12,2,7,22,27,17}表1解交织前列间排序{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29}解交织后列间排序{0,12,25,6,18,3,15,26,9,22,2,13,24,7,19,4,16,29,10,21,1,14,27,8,20,5,17,28,11,23}表2以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1