一种二维码的编码和解码方法及其印刷物的制作方法

文档序号:6537350阅读:291来源:国知局
一种二维码的编码和解码方法及其印刷物的制作方法
【专利摘要】本发明公开了一种二维码的编码和解码方法及其印刷物,编码方法包括:确定输入数据的编码模式;将输入数据转换为数据码字流;确定纠错等级、行数M和列数N;生成纠错码字并添加到数据码字流之后;生成二维码的水平和竖直分割线,通过水平和竖直分割线将二维码外边框围成的区域分割为编码区块;将添加了纠错码字的数据码字添加到各编码区块中。解码方法包括:扫描二维码并生成二值图像;生成边界图像;生成边框图像;分别编码区块的顶点坐标;获得数据码字流;纠错解码数据码字流;还原数据。印刷物上印刷有所述二维码。在实现高编码密度的同时,还可以通过调整二维码的行数和列数来调整二维码的长宽比,从而适应不同的实际应用的需求。
【专利说明】-种二维码的编码和解码方法及其印刷物

【技术领域】
[0001] 本发明涉及二维码技术,更具体地说,涉及一种二维码的编码和解码方法及其印 刷物。

【背景技术】
[0002] -维码是一种廉价、简单、准确的数字信息传递方式,其通过在水平方向排列的条 和空来表达信息,在坚直方向不表达信息,其容量十分有限。相比之下,二维码在坚直方向 也能表达信息,容量大大增加,并且通过应用纠错算法,二维码的可靠性也大大增强。
[0003] 常规的二维码主要有PDF417、QR、DataStrip和Data matrix等,他们可以分为两 类:层排式二维码和矩阵式二维码。其中,层排式二维码可以看作是由多行一维码堆积而 成,常见的层排式二维码主要有美国的TOF417码。TOF417码为长方形,其缺点在于其采用 了一个基于929个码字(4个黑白间隔)的编码方式,每个条码字符只能代表9. 2位数据,这 大大降低了单个TOF417码的数据量。
[0004] 矩阵式二维条码是在一个矩形空间通过黑、白像素在矩阵中的不同分布进行编 码,其通过在矩阵相应元素位置上用点(方点、圆点或其他形状)的出现表示二进制"1",点 的不出现表示二进制的"〇",点的排列组合确定了矩阵式二维条码所代表的意义。常见的矩 阵式二维码主要有日本的QR码、中国的网格矩阵码(GM码)和紧密矩阵码(CM码),QR码和 GM码为正方形,CM码为长方形。与层排式二维码相比,矩阵式二维码在同等面积下可编码 更多数据,即具有更高的编码密度。
[0005] 在二维码的实际应用中,预留用于印制二维码的区域可能是长方形,例如支票右 下角区域,若采用层排式二维码则无法获得高编码密度,若采用正方形的矩阵式二维码,将 大大浪费编码面积,从而导致编码容量下降。虽然CM码也是长方形的,但它在高度方向上 没有定位功能,在实际应用中,由于打印或扫描二维码区域时难以保证100%均匀性,当CM 码过高时,识读将会非常困难,甚至完全无法识读。


【发明内容】

[0006] 本发明针对现有的二维码由于其长宽比不可调而无法满足实际应用需求的缺陷, 提供一种二维码的编码和解码方法及其印刷物,生成的二维码具有高编码密度,并且可以 调整二维码的长宽比。
[0007] 本发明解决其技术问题采用的技术方案是:提供一种二维码的编码方法,包括以 下步骤:
[0008] S1、分析输入数据的类型,确定各类型的输入数据的编码模式;
[0009] S2、将输入数据按照确定的编码模式对应的编码规则转换为位流,并将编码产生 的位流转换为数据码字流;
[0010] S3、确定二维码的纠错等级、行数Μ和列数N,所述纠错等级为纠错码字占总码字 的比例,Μ和Ν均为正整数;
[0011] S4、生成纠错码字,并将生成的纠错码字添加到数据码字流之后;
[0012] S5、根据二维码的行数Μ和列数N分别生成二维码的水平分割线和坚直分割线,通 过水平分割线和坚直分割线将二维码的外边框围成的区域分割为Μ行、Ν列的编码区块,每 个编码区块包括多个单元模块,将格式信息编码于编码区块的部分单元模块中,所述格式 信息包括纠错等级以及该编码区块在二维码网格图形中的位置信息;
[0013] S6、将添加了纠错码字的数据码字流中的码字按顺序分别添加到各编码区块的剩 余单元模块中。
[0014] 优选地,步骤S2包括以下子步骤:
[0015] S21、将输入数据按照类型分段;
[0016] S22、分别将各段输入数据按照该类型的编码模式对应的编码规则转换为位流,每 段位流包括编码模式指示符、数据长度指示符和数据位流;
[0017] S23、将编码产生的位流转换为数据码字流。
[0018] 优选地,输入数据的类型包括数字字符、字母字符、汉字字符和任意二进制数据; 编码模式包括数字模式、数字字母混合模式、小写字母模式、大写字母模式、汉字模式和字 节模式。
[0019] 优选地,步骤S4包括以下子步骤:
[0020] S41、若纠错码字的个数与数据码字流中的码字的个数之和大于255,则将数据码 字分割成多个纠错块,并确定每个纠错块添加纠错码字的数量;
[0021] S42、生成纠错码字,并按照各纠错块添加纠错码字的数量将生成的纠错码字分别 添加到对应的纠错块的数据码字之后。
[0022] 优选地,步骤S6包括以下子步骤:
[0023] S61、从第一纠错块至最后一个纠错块中按照码字的排列顺序将排列序号相同的 码字逐批提取出来形成新的码字流;
[0024] S62、将新的码字流中的码字按顺序分别添加到各编码区块的剩余单元模块中。
[0025] 优选地,位于所述编码区块四个顶角的单元模块用于编码格式信息。
[0026] 提供一种二维码的解码方法,用于上述任一项所述的编码方法生成的二维码进行 解码,所述解码方法包括以下步骤:
[0027] S1、扫描二维码,以获取二维码的灰度图像,并将所述灰度图像转化为二值图像;
[0028] S2、根据所述二值图像生成边界图像,所述边界图像由所述二值图像中自身为黑 色、并且周围四个像素点至少有一个为白色的像素点组成;
[0029] S3、根据所述边界图像生成边框图像,所述边框图像由二维码的外边框、水平分割 线和坚直分割线组成;
[0030] S4、分别计算由水平分割线和坚直分割线将二维码外边框围成的区域分割成的多 个编码区块的顶点坐标;
[0031] S5、根据各编码区块的顶点坐标计算各编码区块中每个单元模块的坐标,并读取 所述二值图像中对应坐标下像素点的颜色,根据黑色像素点对应二进制1,白色像素点对应 二进制0的规则获得数据码字流;
[0032] S6、对获得的数据码字流进行纠错解码;
[0033] S7、将纠错后的数据码字流中的码字组装成二进制位流,根据编码规则将所述二 进制位流还原为原始数据。
[0034] 优选地,步骤S3包括以下子步骤:
[0035] S31、去除所述边界图像中的曲线,留下直线,从而生成所述边框图像。
[0036] 优选地,步骤S5中,通过插值计算法,根据各编码区块的顶点坐标计算各编码区 块中每个单元模块的坐标。
[0037] 提供一种二维码的印刷物,所述印刷物上印刷的二维码由上述任一项所述的编码 方法生成。
[0038] 本发明的二维码的编码和解码方法及其印刷物具有以下有益效果:在实现高编码 密度的同时,还可以通过调整二维码的行数和列数来调整二维码的长宽比,从而适应不同 的实际应用的需求。

【专利附图】

【附图说明】
[0039] 图1为本发明的二维码的编码方法第一实施例的流程图;
[0040] 图2为本发明的二维码的框架结构示意图;
[0041] 图3为纠错码生成电路的电路图;
[0042] 图4为各编码区块添加码字的顺序示意图;
[0043] 图5为编码区块中码字的添加顺序示意图;
[0044] 图6为本发明的二维码的解码方法第一实施例的流程图;
[0045] 图7为本发明的二维码的灰度图;
[0046] 图8为本发明的二维码的二值化图像;
[0047] 图9为本发明的二维码的边界图像;
[0048] 图10为本发明的二维码的边框图。

【具体实施方式】
[0049] 以下结合附图和实施例对本发明做进一步的解释说明。
[0050] 图1为本发明的二维码的编码方法第一实施例的流程图,参见图1和图2,在本实 施例中,二维码的编码方法包括以下步骤:
[0051] S1、分析输入数据的类型,确定输入数据的编码模式;
[0052] S2、将输入数据按照确定的编码模式对应的编码规则转换为位流,并将编码产生 的位流转换为数据码字流;
[0053] S3、确定二维码的纠错等级、行数Μ和列数N,所述纠错等级为纠错码字占总码字 的比例,Μ和Ν均为正整数;
[0054] S4、生成纠错码字,并将生成的纠错码字添加到数据码字流之后;
[0055] S5、根据二维码的行数Μ和列数Ν分别生成二维码的水平分割线210和坚直分割 线220,通过水平分割线210和坚直分割线220将二维码的外边框230分割为Μ行、Ν列的 编码区块240,每个编码区块240包括多个单元模块,将格式信息编码于编码区块240的部 分单元模块中,所述格式信息包括纠错等级以及该编码区块在二维码网格图形中的位置信 息;
[0056] S6、将添加了纠错码字的数据码字流中的码字按顺序分别添加到各编码区块的剩 余单元模块中。
[0057] 在本实施例中,输入数据的类型包括数字字符、字母字符、汉字字符和任意二进制 数据,编码模式包括数字模式、数字字母混合模式、小写字母模式、大写字母模式、汉字模式 和字节模式。在步骤S1中,对输入数据进行分析,确定输入数据的类型,并确定各类输入数 据的编码模式。例如,输入数据为"123",其类型为数字字符,数字字符采用数字模式进行编 码。例如,输入数据为"密码123",其类型包括汉字字符和数字字符,汉字字符采用汉字模 式编码,数字字符采用数字模式编码。例如,输入数据为" 123A",其类型包括数字字符和字 母字符,可以选择数字字符用数字模式编码,字母字符具体为大写字母字符则采用大写字 母模式编码,另外,也可以将" 123A"的类型看作是数字字母混合的类型,整体采用数字字母 混合模式编码。当出现根据输入数据的类型确定的编码模式不唯一时,分别计算采用各编 码模式编码该(段)输入数据所获得的位流的位数,选择产生位流的位数少的编码模式。即 混合模式编码时,模式切换需要一定开销,不同的混合情况容量不同,选择开销少的编码模 式。另外,编码时应尽量将相同类型字段放在一起编码,可减少开销。混合数据可全部按字 节模式编码,即混合数据可以按字节模式计算容量。
[0058] 本实施例的步骤S2包括以下子步骤:S21、将输入数据按照类型分段;S22、分别将 各段输入数据按照该类型的编码模式对应的编码规则转换为位流,每段位流包括编码模式 指示符、数据长度指示符和数据位流;S23、将编码产生的位流按照每X位对应一个码字的 方式转换为数据码字流,X为正整数,当最后就一个码字不足X位时用0填充,例如可以取X 为7、8、9等,由于二进制第一码字对应有8位,因此优选X为8。
[0059] 其中,编码模式与模式指示符的对应关系如表1所示,该对应关系仅用于示例,不 用于限制本发明。
[0060] 表1模式指示符
[0061]

【权利要求】
1. 一种二维码的编码方法,其特征在于,包括以下步骤: 51、 分析输入数据的类型,确定各类型的输入数据的编码模式; 52、 将输入数据按照确定的编码模式对应的编码规则转换为位流,并将编码产生的位 流转换为数据码字流; 53、 确定二维码的纠错等级、行数Μ和列数N,所述纠错等级为纠错码字占总码字的比 例,Μ和Ν均为正整数; 54、 生成纠错码字,并将生成的纠错码字添加到数据码字流之后; 55、 根据二维码的行数Μ和列数Ν分别生成二维码的水平分割线和坚直分割线,通过水 平分割线和坚直分割线将二维码的外边框围成的区域分割为Μ行、Ν列的编码区块,每个编 码区块包括多个单元模块,将格式信息编码于编码区块的部分单元模块中,所述格式信息 包括纠错等级以及该编码区块在二维码网格图形中的位置信息; 56、 将添加了纠错码字的数据码字流中的码字按顺序分别添加到各编码区块的剩余单 元模块中。
2. 根据权利要求1所述的二维码的编码方法,其特征在于,步骤S2包括以下子步骤: 521、 将输入数据按照类型分段; 522、 分别将各段输入数据按照该类型的编码模式对应的编码规则转换为位流,每段位 流包括编码模式指示符、数据长度指示符和数据位流; 523、 将编码产生的位流转换为数据码字流。
3. 根据权利要求1所述的二维码的编码方法,其特征在于,输入数据的类型包括数字 字符、字母字符、汉字字符和任意二进制数据;编码模式包括数字模式、数字字母混合模式、 小写字母模式、大写字母模式、汉字模式和字节模式。
4. 根据权利要求1所述的二维码的编码方法,其特征在于,步骤S4包括以下子步骤: 541、 若纠错码字的个数与数据码字流中的码字的个数之和大于255,则将数据码字分 割成多个纠错块,并确定每个纠错块添加纠错码字的数量; 542、 生成纠错码字,并按照各纠错块添加纠错码字的数量将生成的纠错码字分别添加 到对应的纠错块的数据码字之后。
5. 根据权利要求4所述的二维码的编码方法,其特征在于,步骤S6包括以下子步骤: 561、 从第一纠错块至最后一个纠错块中按照码字的排列顺序将排列序号相同的码字 逐批提取出来形成新的码字流; 562、 将新的码字流中的码字按顺序分别添加到各编码区块的剩余单元模块中。
6. 根据权利要求1所述的二维码的编码方法,其特征在于,位于所述编码区块四个顶 角的单元模块用于编码格式信息。
7. -种二维码的解码方法,其特征在于,用于对权利要求1-6中任一项所述的编码方 法生成的二维码进行解码,所述解码方法包括以下步骤: 51、 扫描二维码,以获取二维码的灰度图像,并将所述灰度图像转化为二值图像; 52、 根据所述二值图像生成边界图像,所述边界图像由所述二值图像中自身为黑色、并 且周围四个像素点至少有一个为白色的像素点组成; 53、 根据所述边界图像生成边框图像,所述边框图像由二维码的外边框、水平分割线和 坚直分割线组成; 54、 分别计算由水平分割线和坚直分割线将二维码外边框围成的区域分割成的多个编 码区块的顶点坐标; 55、 根据各编码区块的顶点坐标计算各编码区块中每个单元模块的坐标,并读取所述 二值图像中对应坐标下像素点的颜色,根据黑色像素点对应二进制1,白色像素点对应二进 制〇的规则获得数据码字流; 56、 对获得的数据码字流进行纠错解码; 57、 将纠错后的数据码字流中的码字组装成二进制位流,根据编码规则将所述二进制 位流还原为原始数据。
8. 根据权利要求7所述的二维码的解码方法,其特征在于,步骤S3包括以下子步骤: S31、去除所述边界图像中的曲线,留下直线,从而生成所述边框图像。
9. 根据权利要求7所述的二维码的解码方法,其特征在于,步骤S5中,通过插值计算 法,根据各编码区块的顶点坐标计算各编码区块中每个单元模块的坐标。
10. -种二维码的印刷物,其特征在于,所述印刷物上印刷的二维码由权利要求1-6中 任一项所述的编码方法生成。
【文档编号】G06K19/06GK104143109SQ201410042801
【公开日】2014年11月12日 申请日期:2014年1月28日 优先权日:2014年1月28日
【发明者】赵明刚 申请人:深圳市雁联计算系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1