一种分层结构二维码的编码及译码方法技术

技术编号:13896532 阅读:121 留言:0更新日期:2016-10-25 03:17
本发明专利技术公开了一种分层结构二维码的编码方法,包括如下步骤:S1,判断源数据信息流是否满足ECC200表格规则;S2,得到数据码字;S3,得到最终码字;S4,得到可供识别的二维码图片。本发明专利技术还公开了一种分层结构二维码的译码方法,包括如下步骤:S5,用扫描二维码的扫描器扫描二维码获取二维码信息;S6,将获取的二维码信息通过译码器译码得到源数据信息流。本发明专利技术的编码方法能够避免被大规模污染或者被磨损或被褶皱的二维码不能扫描现象的发生,其有利于能够继续被识别和读取,提高了其可靠性和安全性;另一方面本发明专利技术的译码方法,具有计算复杂程度低和纠错还原效率高的优点,也大大提高了译码的效率。

【技术实现步骤摘要】

本专利技术涉及二维码领域,更确切地说是一种分层结构二维码的编码及译码方法
技术介绍
二维条码/二维码(2-dimensional bar code)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的,在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,黑色图案对应逻辑“1”比特,白色图案对应逻辑“0”比特,二维条码能够在横向和纵向两个方向同时表达信息,因此这样的二维码具有在很小的面积内存储大量信息的能力,并且自身具有一定的校验功能。现有的二维条码被大规模污染或被磨损或被褶皱导致不够清晰时,扫描设备(手机)将无法扫描出二维条码所携带的信息,在扫描设备(手机)无法识别二维条码,则被污染、磨损、褶皱的二维条码没有任何办法进行补救,从而使得二维条码无法满足现在日益所需的可靠性,且对于现有的二维条码一般使用的是Reed-Solomon译码算法,该Reed-Solomon译码算法基于求解线性方程组来对输入编码进行纠错,计算复杂程度高,如果二维码图形形状越大,译码速度越慢,同时其二维条码的译码纠错还原效率低,从而使得二维条码的译码无法适应现在快速发展的需求。二维码一般是大致正方形或长方形的形状,转换为原形状后,基于各单元的像素值,进行分析(解码)处理。为了对被拍摄的图像的位置关系进行检测,二维码具有规定形状的位置检测图形。分析时,对于拍摄的二维码的图像,检测位置检测图形,基于位置检测图形的位置关系来进行转换。位置检测图形的检测是成为分析的基础的处理,对识别精度、分析时间的影响大,因此位置检测图形的检测处理是分析处理的重要的要素。二维码与一维码相比,能够以狭小的面积承载较多的信息,被广泛使用于物品管理、使用便携式电话的网络引导等各种各样的用途。由于要以各种角度拍摄二维码,二维码的图
像在画面中的大小和方向并非一定,也会发生图像畸变和图像模糊等情况。二维码自身被污染的情况下,也会发生部分图像不能够判别的情况。
技术实现思路
针对现有技术中的缺陷,本专利技术提供了一种分层结构二维码的编码方法,其具有避免被大规模污染或者被磨损或者被褶皱的二维码不能够使用的现象,提高了其可靠性和安全性。为了实现上述目的,本专利技术所采取的技术方案是:一种分层结构二维码的编码方法,包括如下步骤:S1,判断源数据信息流是否满足ECC200表格规则,判断源数据信息流是否满足ECC200表格规则具体为:将源数据信息流转换成二进制码,二进制码通过卷积码编码器得到二进制码的个数,二进制码的个数与ECC200表格规则中预设规定的二进制码个数相比较;S2,如果是,则将源数据信息流根据编码规则得到源数据码字,对源数据码字进行二进制转换为源数据二进制比特流,源数据二进制比特流通过卷积码编码器进行编码,得到数据码字,所述将源数据码字进行二进制转换,得到一组只有0和1的二进制流;如果否,根据源数据信息流计算满足ECC200表格规则所需要补充的二进制流,同时将源数据信息流根据编码规则得到源数据码字,对源数据码字进行二进制转换为源数据二进制比特流,在源数据二进制比特流后面添加所需要补充的二进制流,源数据二进制比特流以及源数据二进制比特流后所补充的二进制流通过卷积码编码器进行编码,得到数据码字,所述将源数据码字进行二进制转换,得到一组只有0和1的二进制流;所述源数据信息流根据编码规则是经过查询ASCⅡ码表生成(0,255)范围内的源数据码字,如果源数据码字的码长过长,可以混合其他编码方式如C40、Text、X12、EDIFACT、Base256等方式将码长进行压缩,根据不同编码方式的要求与ASCⅡ码进行切换字符,所述根据ECC200表格所容纳数据大小计算所需要补充的二进制流,同时将源数据信息流根据编码规则得到源数据码字,对源数据码字进行二进制转换为(0,255)范围内的源数据二进制比特流,判断源数据二进制比特流根据计算能否填满对应源数据信息流的ECC200表格,如果是则不需要补充二进制流,如果否则需要在源数据二进制比特流后面添加所需要补充的二进制流使其满足ECC200表格规则,源数据二进制比特流和后面添加所需要补充的二进制流组成一个新源数据二进制比特流,其具体根据ECC200表格所对应可容纳的比特数计算出原本需要输入的源数据二进制比特流,计算出原本需要输入的源数据二进制比特流与源数据信息流转换成的源数据二进制比特流的差值个数,将源数据信息流转换成的源数据二进制比特流的末端提取差值个数相同二进制流按照源数据二进制比特流末端的顺序排列添加到源数据信息流转换成的源数据二进制比特流之后,得到满足ECC200表格规则的新源数据二进制比特流,所述运用编码速率为1/2的(2,1,9)的卷积码编码器对源数据二进制码字进行编码,(2,1,9)的卷积码编码器对输入的源数据二进制码字进行计算:将g(1,1)(x)得到的二进制数先输出放置在十位上,g(1,2)(x)得到的二进制数后输出放置在个位上,十位上和个位上的二进制数组合得到一个两位二进制数组,将每一个二进制数组按顺序排列得到一组二进制流,(2,1,9)卷积码编码器会在上述得到的一组二进制流后面添加8位“0”二进制数,从而得到数据码字;S3,将上述步骤2中的数据码字输入到交织器中进行交织,并将交织后的数据码字读取,最终得到最终码字,其交织器首先对数据码字进行分组交织,将列数C预设为30,然后设数据码字的码字个数为U,找出满足不等式U≤RC的最小整数R,得到行数R,确定行数R后,得到矩阵A,接下来将数据码字逐行写入矩阵A中,若数据码字无法将R行写入完整,则用数据二进制比特流的0或1将R行其它空缺位置填补,将矩阵A进行矩阵变换得到新矩阵B,最终将新矩阵B逐列读出数据,并将之前不存在数据码字中的数据二进制比特流中的0或1去掉,得到最终码字;S4,将最终码字按照输出的排列顺序每三个一分组,从而转化成二维码,二维码是按照对应的ECC200表格规则进行逐行填充,所以能够得到可供识别的二维码图片。本专利技术由于二维码是由多个最终码字构成的,在二维码生成之后,即使发生了被大规模污染或者出现被磨损或者被褶皱的情况,通过扫描器依然能够识别和读取最终得到源数据二进制比特流信息,大大增加了二维码的识别可靠性和安全性。针对现有技术中的缺陷,本专利技术提供了一种分层结构二维码的译码方法,其具有计算复杂程度低和纠错还原效率高的优点,从而更加适应现在快速发展的需求。为了实现上述目的,本专利技术所采取的技术方案是:一种分层结构二维码的译码方法,包括如下步骤:S5,用扫描二维码的扫描器扫描二维码获取二维码信息;S6,将获取的二维码信息通过译码器译码得到源数据信息流,所述译码器由解调器、解交织译码器和维特比译码器构成,具体的步骤是:a、二维码信息通过解调器解调得到二进制码字流;b、将解调获取的二进制码字流进入解交织译码器进行解交织得到一组码字流,其解交
织译码器具体算法是构造一个解交织矩阵,其中规定解交织矩阵列数C为30,根据接收到的码字,设码字个数为U',找出满足不等式U'≤R'C中的最小整数R',得到行数R',确定行数R'后,得到矩阵D,将接收到的码字逐列写入矩阵D中,若输入码字无法将行数R'写入本文档来自技高网
...

【技术保护点】
一种分层结构二维码的编码方法,其特征在于,包括如下步骤:S1,判断源数据信息流是否满足ECC200表格规则;S2,如果是,则将源数据信息流根据编码规则得到源数据码字,对源数据码字进行二进制转换为源数据二进制比特流,源数据二进制比特流通过卷积码编码器进行编码,得到数据码字;如果否,根据源数据信息流计算满足ECC200表格规则所需要补充的二进制流,同时将源数据信息流根据编码规则得到源数据码字,对源数据码字进行二进制转换为源数据二进制比特流,在源数据二进制比特流后面添加所需要补充的二进制流,源数据二进制比特流以及源数据二进制比特流后所补充的二进制流通过卷积码编码器进行编码,得到数据码字;S3,将所述数据码字输入到交织器中进行交织,并将交织后的数据码字读取,得到最终码字;S4,将最终码字每三个一分组,从而转化成二维码。

【技术特征摘要】
1.一种分层结构二维码的编码方法,其特征在于,包括如下步骤:S1,判断源数据信息流是否满足ECC200表格规则;S2,如果是,则将源数据信息流根据编码规则得到源数据码字,对源数据码字进行二进制转换为源数据二进制比特流,源数据二进制比特流通过卷积码编码器进行编码,得到数据码字;如果否,根据源数据信息流计算满足ECC200表格规则所需要补充的二进制流,同时将源数据信息流根据编码规则得到源数据码字,对源数据码字进行二进制转换为源数据二进制比特流,在源数据二进制比特流后面添加所需要补充的二进制流,源数据二进制比特流以及源数据二进制比特流后所补充的二进制流通过卷积码编码器进行编码,得到数据码字;S3,将所述数据码字输入到交织器中进行交织,并将交织后的数据码字读取,得到最终码字;S4,将最终码字每三个一分组,从而转化成二维码。2.如权利要求1所述一种分层结构二维码的编码方法,其特征在于,S1中判断源数据信息流是否满足ECC200表格规则的判断方法为:将源数据信息流转换成二进制码,二进制码通过卷积码编码器得到二进制码的个数,二进制码的个数与ECC200表格规则中预设规定的二进制码个数相比较。3.如权利要求1所述一种分层结构二维码的编码方法,其特征在于,S2中源数据信息流根据编码规则是经过查询ASCⅡ码表生成(0,255)范围内的源数据码字。4.如权利要求1所述一种分层结构二维码的编码方法,其特征在于,S2中根据ECC200表格所容纳数据大小计算所需要补充的二进制流,同时将源数据信息流根据编码规则得到源数据码字,对源数据码字进行二进制转换为(0,255)范围内的源数据二进制比特流。5.如权利要求1所述一种分层结构二维码的编码方法,...

【专利技术属性】
技术研发人员:楼喜中陈善梁宣雷
申请(专利权)人:上海思岭信息科技有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1