一种自适应屏幕比例的大容量QR码编码、解码方法

文档序号:34070852发布日期:2023-05-06 18:24阅读:29来源:国知局
一种自适应屏幕比例的大容量QR码编码、解码方法

本发明涉及自动识别领域,特别涉及一种自适应屏幕比例的大容量qr码编码、解码方法。


背景技术:

1、随着移动互联网的快速发展,qr码已经普遍的出现在人们的日常生活中。qr码具有编码范围大、自由度高、容错能力强等诸多优势,作为一种及时、准确、经济的数据传输方法,qr码已广泛的应用于商品、交通运输、医疗、工业、自动化办公等领域。由于qr码应用领域的扩大,普通qr码在数据传输领域难以满足大量数据的存储及传输需求。

2、因此,为了满足大量数据的存储传输,产生了各类直接或间接的qr码存储容量的扩增技术,如网址链接(详见tiwari s.an introduction to qr code technology[c]//2016international conference on information technology(icit).ieee,2016:39-44.)、数据隐藏(详见mathivanan p,balaji ganesh a.qr code based color imagecryptography for the secured transmission of ecg signal[j].multimedia toolsand applications,2019,78(6):6763-6786.)、动态qr码(详见liu w,wang b,li y,etal.screen-camera communication system based on dynamic qr code[c]//iopconference series:materials science and engineering.iop publishing,2020,790(1):012012.)、多级强度(详见tank a h,unde m m,patel b j,et al.storage andtransmission of information using grey level qr(quick-response)code structure[c]//2016conference on advances in signal processing(casp).ieee,2016:402-405.)、彩色qr码(详见galiyawala h j,pandya k h.to increase data capacity of qrcode using multiplexing with color coding:an example of embedding speechsignal in qr code[c]//2014annual ieee india conference(indicon).ieee,2014:1-6.)等。但也相应的存在一些应用环境的限制,如网络链接由于网络环境限制会影响qr码的应用效率和使用范围,数据隐藏需要额外添加隐藏信息,动态qr码需要显示在电子屏幕上,多级强度降低了qr码对噪声的容忍度,彩色二维码需要控制彩色印刷色彩差异等。

3、观察到常见的大部分的电子显示屏设备都是长方形的,如手机、平板、电子屏等,而标准qr码为正方形图形。屏幕显示qr码时,通常都是占满长方形屏幕的最短边,而剩余的屏幕空间没有qr码数据显示。考虑到充分利用显示空间资源,实现单次扫码获取更多数据信息,本发明提出了一种自适应屏幕比例的大容量qr码编码、解码方法。


技术实现思路

1、本发明的目的是提出一种自适应屏幕比例的大容量qr码编码、解码方法,用于增大qr码数据存储容量,提高通信带宽。

2、本发明的技术方案:一种自适应屏幕比例的大容量qr码编码、解码方法,步骤如下:

3、步骤1、根据显示屏幕的长宽比例尽可能多的将信息编码生成qr码并显示;设计的qr码编码方式:根据已知qr码的版本及显示屏幕长宽比例确定qr码的长宽模块数、位置探测图形、定位图形、校正图形的位置,根据编码方式进行各图形布置并生成qr码;

4、步骤1.1、分析数据类型,确定编码字符的类型,按照相应的字符集将信息转化为符号字符;数据根据类型分段,并添加4位模式指示符、字符计数指示符,将数据编码为数据位流;所有数据位流连接生成数据码字,数据码字数为b;

5、步骤1.2、以获取屏幕的宽度(短边)为标准,使用版本c(2≤c≤40)的模块数量n将宽划分为正方形单元,以此单元大小将长度划分m,其中如果m为偶数则减一,保持水平方向模块数为奇数(屏幕长宽比例为m:n)。qr码图形中模块行列标号均从0开始,从左到右,从上到下标号,坐标表示为(行标号,列标号)。

6、根据显示屏幕的长宽比例,通过图形版本号c划分长宽模块;计算各个功能图形数量及坐标;功能图形包括位置探测图形、位置探测图形分隔符、定位图形、校正图形;

7、水平方向模块数量:

8、

9、垂直方向模块数量:

10、n=4(c-1)+21

11、其中,表示显示屏幕长宽比例,c表示图形版本号,2≤c≤40;

12、位置探测图形是位于图形左上、左下、右上角的3个7×7模块大小的图形,由7×7黑框中心包含3×3的黑色方块组成。位置探测图形中心坐标分别为(3,3),(n-4,3),(3,m-4);每个位置探测图形和编码区域之间宽度为1个模块的位置探测图形分隔符,此区域全空白;位置探测图形占模块数为w=3×7×7=147个;

13、定位图形分别为1模块宽的一行和一列,深浅模块交替组成,其头部及尾部均为深色模块;第一行和第一列定位图形与位置探测图形融合:

14、垂直方向定位图形数量:

15、水平方向定位图形数量:

16、图形版本号为c的qr码均设置校正图形,右下角(n-7,m-7)处固定一个校正图形;使得三个位置探测图形与该校正图形构成一个矩形。一个校正图形由5×5黑框包含1×1黑块组成。校正图形要尽量将qr码图形的编码区域均分。校正图形数量为gsum=(g1+2)(g2+2)-3,其中g1为水平方向校正模块数,g2为垂直方向校正模块数。

17、计算定位图形线上的校正图形,当r<15时垂直方向不设置校正图形,当w<15时水平方向不设置校正图形。

18、o表示水平方向或垂直方向定位图形深色模块数量,当o≥15时,取整数g=1,2,3...,g为水平方向或垂直方向上校正图形数,计算校正图形分隔开的水平或垂直方向深色定位图形模块数量d(5≤d≤12)。

19、因此,在水平方向和垂直方向上定位图形的深色模块数量大于设定值时,设置其他校正图形;被校正图形分隔开的深色定位图形数量:

20、d=(o-3g)/(g+1)

21、其中,o表示水平方向或垂直方向定位图形深色模块数量,g表示水平方向或垂直方向上校正图形数量,满足5≤d≤12;

22、若d为整数,则水平或垂直方向上深色定位图形按照此分隔均分;若d为小数,则得到向上取整d1和向下取整d2。取整数dn1=1,2,3…,计算d3=w-3g-dn1×d1,直到dn2=d3/d2为整数,则水平方向上深色定位图形分隔为dn1个含有d1个深色模块的分隔与dn2个含有d2个深色模块的分隔。

23、水平方向和垂直方向分别计算得深色定位图形分隔d表示为dw和dr;水平方向校正图形中心坐标为(6,10+2dw),(6,10+2dw+4+2dw)...,其中,dw为小数时,取值为向上取整dw1或向下取整dw2;水平方向上每下一个校正图形的列坐标都在前一个校正图形的列坐标基础上加4+2dw;垂直方向上校正图形中心坐标为(10+2dr,6),(10+2dr+4+2dr,6)...,其中,dr为小数时,取值为向上取整dr1或向下取整dr2;垂直方向上每下一个校正图形的行坐标都在前一个校正图形的行坐标基础上加4+2dr;其他分布在编码区域内的校正图形的坐标为已计算的水平方向和垂直方向校正图形及右下角固定校正图形坐标的横纵坐标的组合;

24、步骤1.3、计算图像总数据位

25、功能图形、格式信息和版本信息占用单元格g计算公式为:

26、g=w+d+j+f+v

27、其中,w为位置探测图形占单元格数,d为位置探测图形分隔符占单元格数,j为定位图形及校正图形占单元格数,f为格式信息占单元格数,v为版本信息占单元格数;w=3×7×7;d=3×15;j=2(r+w)-1+5(5gsum-g1-g2);f=2×15;v=2×46。

28、确定功能图形、格式信息和版本信息占用单元格总数g后,计算图形总数据位数s和码字总数z;总数据位数为s=n×m-g,码字总数为;

29、步骤1.4、计算纠错码字数

30、根据传输信息的准确度要求、使用环境等条件,平衡传输容量及信息质量,选择纠错等级(l:7%,m:15%,q:25%,h:30%)。若没有确定好的纠错等级,则使用与数据相适应的最小版本。

31、根据纠错码版本的纠错容量百分比b(%)及码字总数z计算纠错容量e和纠错码字数r;

32、

33、r=2e

34、步骤1.5、图像版本选择

35、根据图形版本号c、码字总数z和纠错码字数r计算存放的数据码字数;

36、a=z-r

37、当此版本图形可存放的数据码字数a≥b,采用此版本图形进行编码;当a<b时,增加图形版本号,重复步骤1.2-步骤1.4,逐个计算并比较更大版本的图形容量,直至a≥b;未填满的空码字交替填充11101100与00010001,直至填满所有码字;

38、步骤1.6、数据码字与纠错码字分块

39、将数据码字分块形成数据分块,每个数据分块分别纠错运算生成纠错数据码字;

40、将纠错码字和数据码字均匀的分布在数据分块中;使用纠错容量e除以整数e,取第一个能够整除的数字为单个数据分块的纠错容量,商为数据分块个数p;当p≤15且e<p时,交换e,p数值;数据分块中纠错码字数量为2e,每个数据分块中数据码字数为整数k,计算式如下:

41、a÷p=k......d

42、其中,a为码字总数;在分块时,最多出现两种含不同数量数据码字的分块,且数据码字数量相差不超过1。当余数d=0时,分为p个含k个数据码字的数据分块;当d≠0时,分为p-d个含k个数据码字的数据分块以及s个含k+1个数据码字的数据分块;每个数据分块中的数据码字数用k表示;

43、步骤1.7、生成纠错码字

44、根据步骤1.6获得的数据分块个数p和每个数据分块中总码字数、数据码字和纠错容量数据(k+2e,k,e),将数据码字分为p块,每块数据分块中包括k个数据码字,每一块数据分块用rs(reed-solomon)编码生成纠错码字;

45、步骤1.8、布置图形排列

46、将功能图形、数据码字块、纠错码字块以及最小空白区域4x排放在图形中,功能图形摆放在计算的固定位置,数据码字块与纠错码字块根据分块情况穿插放置;码字序列从qr码符号的右下角开始布置,自右向左且自下而上、自上而下交替排列2个模块宽的竖列。码字内部符号位的排列方向与码字序列排列方向相同,码字最高位放在第一个模块位置(用7表示),若遇到功能图形或边界可以绕过图形或在其上面或下面的位置连续布置或改变排列方向进行连续布置。

47、步骤1.9、设置掩模图形

48、采用标准qr码中使用的8种掩模图形中的一种;使用评价条件选择最好;

49、步骤1.10、生成格式信息和版本信息

50、设置格式信息15位,包含5位数据位和10位纠错位;

51、数据位:第1-2位为纠错等级,第3-5位为采用的掩模图形编码。

52、纠错位:使用bch(15,5)编码计算得到纠错位,其中bch码生成码为10100110111(0x537)。

53、数据位与纠错位形成15为格式信息后,进行掩模处理。将15位格式信息与掩模图形101010000010010(0x5412)进行异或运算,得到最终格式信息。

54、设置46位版本信息,包括16位数据位和30位纠错位;

55、数据位:第1-6位为版本号,第7-16位为长边单元个数。

56、纠错位:将数据位分段,1-5位使用bch(15,5)编码计算得到纠错位,其中bch生成码为10100110111(0x537);6-16位使用bch(31,11)编码计算得到纠错位,其中bch生成码为101100010011011010101(0x1626d5)。

57、最终形成46位的版本信息,版本信息不进行掩模处理;

58、步骤2、根据解码方式将qr码解码为数据信息;

59、解码方式具体为:识别位置探测图形后,使用bch(15,5),bch(31,11)纠错解码版本信息;根据版本信息的版本以及长边模块数计算该版本图形各个校正图形和位置探测图形的中心坐标。

60、所述步骤2具体为:

61、步骤2.1、获取符号图像;

62、使用图像反射率最大值与最小值之间的中值作为阈值,使用阈值将图像分为深色模块和浅色模块;

63、确定位置探测图形;通过分析位置探测图形的坐标识别qr码符号的旋转角度,确定qr码符号原本方向;

64、步骤2.2、识别并读取版本信息;

65、用右上角位置探测图形的宽度wur除以7,计算模块尺寸cpur;确定右上角版本信息区域中每个模块中心;数据检测无错时直接获取版本信息;数据检测有错时使用bch码纠错;当不能成功读取时,识别读取左下角版本信息数据;

66、步骤2.3、校正图形定位

67、根据版本信息中获取的版本数据和长度数据计算出qr码图形中校正图形的中心坐标,确定取样网络;

68、步骤2.4、识别并读取格式信息

69、对左上角位置探测图形周围的格式信息使用101010000010010进行xor运算,解除掩模;数据检测无错时直接译码获取格式信息;数据检测有错时使用bch码纠错后进行译码获取格式信息;当检测错误超出纠错容量,则识别读取右上角和左下角位置探测图形周围的格式信息;

70、步骤2.5、消除掩模图形

71、格式信息得到掩模图形信息后,用掩模图形对符号编码区域进行异或处理,解除掩模,恢复数据码字和纠错码字字符;

72、步骤2.6、识别并读取数据和纠错码字

73、根据版本信息中的图形大小和格式信息中的纠错等级计算出图形的数据码字和纠错码字数量及排列;根据编码时使用的交替排列处理过程恢复原本的数据码字和纠错码字排列;

74、步骤2.7、纠错码字检测纠正错误

75、使用rs码检测验证并纠错;

76、步骤2.8、恢复信息位流

77、将纠错后的数据块读取位流,根据模式指示符和字符计数指示符将数据位流划分成段;一段数据位流由模式指示符开始,长度由字符计数指示符确定;

78、步骤2.9、数据位流译码

79、根据每一段数据位流中的模式规则进行译码,最终得到数据字符并输出。

80、所述步骤1.2图形版本号的初选择为最小版本,根据步骤1.5依次增大。

81、所述步骤1.6中,当图形版本2-6时,使用纠错容量e除以整数e(7≤e≤15),取第一个能够整除的数字为单块的纠错容量,商为分块个数n。若p≤15且e<p,则交换e,p数值。

82、当图形版本为7及以上时,使用纠错容量e除以整数e(9≤e≤15),取第一个能够整除的数字为单块的纠错容量,商为分块个数。若n≤15且e<n,则交换e,n数值。

83、本发明的有益效果:本发明提出了一种自适应屏幕比例的大容量qr码编码、解码方法。当有大量数据要传输时,分次将数据编码为大容量qr码,进行数据流的传输,最大限度的使用某种比例的屏幕显示。qr码根据屏幕长宽比例编码数据,计算数据码字块、校正符号、定位符号数量及摆放位置。在扫码后进行由于屏幕利用率高,因此可以实现比标准qr码更高的传输效率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1