CN116070661A - 一种自适应屏幕比例的大容量qr码编码、解码方法 - Google Patents
一种自适应屏幕比例的大容量qr码编码、解码方法 Download PDFInfo
- Publication number
- CN116070661A CN116070661A CN202211479622.8A CN202211479622A CN116070661A CN 116070661 A CN116070661 A CN 116070661A CN 202211479622 A CN202211479622 A CN 202211479622A CN 116070661 A CN116070661 A CN 116070661A
- Authority
- CN
- China
- Prior art keywords
- data
- code
- error correction
- pattern
- version
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000012937 correction Methods 0.000 claims abstract description 185
- 238000001514 detection method Methods 0.000 claims description 71
- 238000004364 calculation method Methods 0.000 claims description 9
- 230000003044 adaptive effect Effects 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 8
- 239000013256 coordination polymer Substances 0.000 claims description 5
- 238000000926 separation method Methods 0.000 claims description 5
- 230000000903 blocking effect Effects 0.000 claims description 4
- 238000002310 reflectometry Methods 0.000 claims description 4
- 108091026890 Coding region Proteins 0.000 claims description 3
- 108700026244 Open Reading Frames Proteins 0.000 claims description 3
- 238000005070 sampling Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 abstract description 9
- 238000004891 communication Methods 0.000 abstract description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000009191 jumping Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/06009—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
- G06K19/06037—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking multi-dimensional coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/06009—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
- G06K19/06046—Constructional details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/06009—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
- G06K19/06046—Constructional details
- G06K19/06131—Constructional details the marking comprising a target pattern, e.g. for indicating the center of the bar code or for helping a bar code reader to properly orient the scanner or to retrieve the bar code inside of an image
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明属于自动识别领域,提出了一种自适应屏幕比例的大容量QR码编码、解码方法。在通用环境下,当有大量数据要传输时,根据屏幕显示比例将数据编码为自适应比例大容量QR码,进行数据流的传输,实现最大限度的使用屏幕显示空间。QR码根据编码数据量及显示空间长宽比例选择图形版本,并根据版本及长宽比例计算数据码字块、校正符号、定位符号数量及坐标位置,扩充版本信息数据,编码数据生成QR码;并相应的给出自适应比例QR码解码方法,通过扫描将QR码数据信息解码并显示。由于屏幕利用率提高,因此实现了比标准QR码更高的数据传输效率,增加通信带宽。
Description
技术领域
本发明涉及自动识别领域,特别涉及一种自适应屏幕比例的大容量QR码编码、解码方法。
背景技术
随着移动互联网的快速发展,QR码已经普遍的出现在人们的日常生活中。QR码具有编码范围大、自由度高、容错能力强等诸多优势,作为一种及时、准确、经济的数据传输方法,QR码已广泛的应用于商品、交通运输、医疗、工业、自动化办公等领域。由于QR码应用领域的扩大,普通QR码在数据传输领域难以满足大量数据的存储及传输需求。
因此,为了满足大量数据的存储传输,产生了各类直接或间接的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码对噪声的容忍度,彩色二维码需要控制彩色印刷色彩差异等。
观察到常见的大部分的电子显示屏设备都是长方形的,如手机、平板、电子屏等,而标准QR码为正方形图形。屏幕显示QR码时,通常都是占满长方形屏幕的最短边,而剩余的屏幕空间没有QR码数据显示。考虑到充分利用显示空间资源,实现单次扫码获取更多数据信息,本发明提出了一种自适应屏幕比例的大容量QR码编码、解码方法。
发明内容
本发明的目的是提出一种自适应屏幕比例的大容量QR码编码、解码方法,用于增大QR码数据存储容量,提高通信带宽。
本发明的技术方案:一种自适应屏幕比例的大容量QR码编码、解码方法,步骤如下:
步骤1、根据显示屏幕的长宽比例尽可能多的将信息编码生成QR码并显示;设计的QR码编码方式:根据已知QR码的版本及显示屏幕长宽比例确定QR码的长宽模块数、位置探测图形、定位图形、校正图形的位置,根据编码方式进行各图形布置并生成QR码;
步骤1.1、分析数据类型,确定编码字符的类型,按照相应的字符集将信息转化为符号字符;数据根据类型分段,并添加4位模式指示符、字符计数指示符,将数据编码为数据位流;所有数据位流连接生成数据码字,数据码字数为B;
步骤1.2、以获取屏幕的宽度(短边)为标准,使用版本C(2≤C≤40)的模块数量N将宽划分为正方形单元,以此单元大小将长度划分M,其中如果M为偶数则减一,保持水平方向模块数为奇数(屏幕长宽比例为m:n)。QR码图形中模块行列标号均从0开始,从左到右,从上到下标号,坐标表示为(行标号,列标号)。
根据显示屏幕的长宽比例,通过图形版本号C划分长宽模块;计算各个功能图形数量及坐标;功能图形包括位置探测图形、位置探测图形分隔符、定位图形、校正图形;
水平方向模块数量:
垂直方向模块数量:
N=4(C-1)+21
位置探测图形是位于图形左上、左下、右上角的3个7×7模块大小的图形,由7×7黑框中心包含3×3的黑色方块组成。位置探测图形中心坐标分别为(3,3),(N-4,3),(3,M-4);每个位置探测图形和编码区域之间宽度为1个模块的位置探测图形分隔符,此区域全空白;位置探测图形占模块数为W=3×7×7=147个;
定位图形分别为1模块宽的一行和一列,深浅模块交替组成,其头部及尾部均为深色模块;第一行和第一列定位图形与位置探测图形融合:
图形版本号为C的QR码均设置校正图形,右下角(N-7,M-7)处固定一个校正图形;使得三个位置探测图形与该校正图形构成一个矩形。一个校正图形由5×5黑框包含1×1黑块组成。校正图形要尽量将QR码图形的编码区域均分。校正图形数量为gsum=(g1+2)(g2+2)-3,其中g1为水平方向校正模块数,g2为垂直方向校正模块数。
计算定位图形线上的校正图形,当r<15时垂直方向不设置校正图形,当w<15时水平方向不设置校正图形。
o表示水平方向或垂直方向定位图形深色模块数量,当o≥15时,取整数g=1,2,3...,g为水平方向或垂直方向上校正图形数,计算校正图形分隔开的水平或垂直方向深色定位图形模块数量d(5≤d≤12)。
因此,在水平方向和垂直方向上定位图形的深色模块数量大于设定值时,设置其他校正图形;被校正图形分隔开的深色定位图形数量:
d=(o-3g)/(g+1)
其中,o表示水平方向或垂直方向定位图形深色模块数量,g表示水平方向或垂直方向上校正图形数量,满足5≤d≤12;
若d为整数,则水平或垂直方向上深色定位图形按照此分隔均分;若d为小数,则得到向上取整d1和向下取整d2。取整数dn1=1,2,3…,计算d3=w-3g-dn1×d1,直到dn2=d3/d2为整数,则水平方向上深色定位图形分隔为dn1个含有d1个深色模块的分隔与dn2个含有d2个深色模块的分隔。
水平方向和垂直方向分别计算得深色定位图形分隔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;其他分布在编码区域内的校正图形的坐标为已计算的水平方向和垂直方向校正图形及右下角固定校正图形坐标的横纵坐标的组合;
步骤1.3、计算图像总数据位
功能图形、格式信息和版本信息占用单元格G计算公式为:
G=W+D+J+F+V
其中,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。
步骤1.4、计算纠错码字数
根据传输信息的准确度要求、使用环境等条件,平衡传输容量及信息质量,选择纠错等级(L:7%,M:15%,Q:25%,H:30%)。若没有确定好的纠错等级,则使用与数据相适应的最小版本。
根据纠错码版本的纠错容量百分比b(%)及码字总数Z计算纠错容量E和纠错码字数R;
R=2E
步骤1.5、图像版本选择
根据图形版本号C、码字总数Z和纠错码字数R计算存放的数据码字数;
A=Z-R
当此版本图形可存放的数据码字数A≥B,采用此版本图形进行编码;当A<B时,增加图形版本号,重复步骤1.2-步骤1.4,逐个计算并比较更大版本的图形容量,直至A≥B;未填满的空码字交替填充11101100与00010001,直至填满所有码字;
步骤1.6、数据码字与纠错码字分块
将数据码字分块形成数据分块,每个数据分块分别纠错运算生成纠错数据码字;
将纠错码字和数据码字均匀的分布在数据分块中;使用纠错容量E除以整数e,取第一个能够整除的数字为单个数据分块的纠错容量,商为数据分块个数p;当p≤15且e<p时,交换e,p数值;数据分块中纠错码字数量为2e,每个数据分块中数据码字数为整数k,计算式如下:
A÷p=k......d
其中,A为码字总数;在分块时,最多出现两种含不同数量数据码字的分块,且数据码字数量相差不超过1。当余数d=0时,分为p个含k个数据码字的数据分块;当d≠0时,分为p-d个含k个数据码字的数据分块以及s个含k+1个数据码字的数据分块;每个数据分块中的数据码字数用K表示;
步骤1.7、生成纠错码字
根据步骤1.6获得的数据分块个数p和每个数据分块中总码字数、数据码字和纠错容量数据(K+2e,K,e),将数据码字分为p块,每块数据分块中包括K个数据码字,每一块数据分块用RS(Reed-Solomon)编码生成纠错码字;
步骤1.8、布置图形排列
将功能图形、数据码字块、纠错码字块以及最小空白区域4X排放在图形中,功能图形摆放在计算的固定位置,数据码字块与纠错码字块根据分块情况穿插放置;码字序列从QR码符号的右下角开始布置,自右向左且自下而上、自上而下交替排列2个模块宽的竖列。码字内部符号位的排列方向与码字序列排列方向相同,码字最高位放在第一个模块位置(用7表示),若遇到功能图形或边界可以绕过图形或在其上面或下面的位置连续布置或改变排列方向进行连续布置。
步骤1.9、设置掩模图形
采用标准QR码中使用的8种掩模图形中的一种;使用评价条件选择最好;
步骤1.10、生成格式信息和版本信息
设置格式信息15位,包含5位数据位和10位纠错位;
数据位:第1-2位为纠错等级,第3-5位为采用的掩模图形编码。
纠错位:使用BCH(15,5)编码计算得到纠错位,其中BCH码生成码为10100110111(0x537)。
数据位与纠错位形成15为格式信息后,进行掩模处理。将15位格式信息与掩模图形101010000010010(0x5412)进行异或运算,得到最终格式信息。
设置46位版本信息,包括16位数据位和30位纠错位;
数据位:第1-6位为版本号,第7-16位为长边单元个数。
纠错位:将数据位分段,1-5位使用BCH(15,5)编码计算得到纠错位,其中BCH生成码为10100110111(0x537);6-16位使用BCH(31,11)编码计算得到纠错位,其中BCH生成码为101100010011011010101(0x1626d5)。
最终形成46位的版本信息,版本信息不进行掩模处理;
步骤2、根据解码方式将QR码解码为数据信息;
解码方式具体为:识别位置探测图形后,使用BCH(15,5),BCH(31,11)纠错解码版本信息;根据版本信息的版本以及长边模块数计算该版本图形各个校正图形和位置探测图形的中心坐标。
所述步骤2具体为:
步骤2.1、获取符号图像;
使用图像反射率最大值与最小值之间的中值作为阈值,使用阈值将图像分为深色模块和浅色模块;
确定位置探测图形;通过分析位置探测图形的坐标识别QR码符号的旋转角度,确定QR码符号原本方向;
步骤2.2、识别并读取版本信息;
用右上角位置探测图形的宽度WUR除以7,计算模块尺寸CPUR;确定右上角版本信息区域中每个模块中心;数据检测无错时直接获取版本信息;数据检测有错时使用BCH码纠错;当不能成功读取时,识别读取左下角版本信息数据;
步骤2.3、校正图形定位
根据版本信息中获取的版本数据和长度数据计算出QR码图形中校正图形的中心坐标,确定取样网络;
步骤2.4、识别并读取格式信息
对左上角位置探测图形周围的格式信息使用101010000010010进行XOR运算,解除掩模;数据检测无错时直接译码获取格式信息;数据检测有错时使用BCH码纠错后进行译码获取格式信息;当检测错误超出纠错容量,则识别读取右上角和左下角位置探测图形周围的格式信息;
步骤2.5、消除掩模图形
格式信息得到掩模图形信息后,用掩模图形对符号编码区域进行异或处理,解除掩模,恢复数据码字和纠错码字字符;
步骤2.6、识别并读取数据和纠错码字
根据版本信息中的图形大小和格式信息中的纠错等级计算出图形的数据码字和纠错码字数量及排列;根据编码时使用的交替排列处理过程恢复原本的数据码字和纠错码字排列;
步骤2.7、纠错码字检测纠正错误
使用RS码检测验证并纠错;
步骤2.8、恢复信息位流
将纠错后的数据块读取位流,根据模式指示符和字符计数指示符将数据位流划分成段;一段数据位流由模式指示符开始,长度由字符计数指示符确定;
步骤2.9、数据位流译码
根据每一段数据位流中的模式规则进行译码,最终得到数据字符并输出。
所述步骤1.2图形版本号的初选择为最小版本,根据步骤1.5依次增大。
所述步骤1.6中,当图形版本2-6时,使用纠错容量E除以整数e(7≤e≤15),取第一个能够整除的数字为单块的纠错容量,商为分块个数n。若p≤15且e<p,则交换e,p数值。
当图形版本为7及以上时,使用纠错容量E除以整数e(9≤e≤15),取第一个能够整除的数字为单块的纠错容量,商为分块个数。若n≤15且e<n,则交换e,n数值。
本发明的有益效果:本发明提出了一种自适应屏幕比例的大容量QR码编码、解码方法。当有大量数据要传输时,分次将数据编码为大容量QR码,进行数据流的传输,最大限度的使用某种比例的屏幕显示。QR码根据屏幕长宽比例编码数据,计算数据码字块、校正符号、定位符号数量及摆放位置。在扫码后进行由于屏幕利用率高,因此可以实现比标准QR码更高的传输效率。
附图说明
图1是自适应屏幕比例的大容量QR码编码、解码流程图;
图2是自适应屏幕比例的大容量QR码图形排列(版本2-Q,屏幕长宽比例16:9);
图3是自适应屏幕比例的大容量QR码码字内模块布置;(a)码字序列自下而上排列;(b)码字序列自上而下排列;(c)码字序列自下而上临近功能图形、格式信息或版本信息排列;(d)码字序列自上而下临近功能图形、格式信息或版本信息排列;(e)码字序列由向上变为向下排列;(f)码字序列由向下变为向上排列;
图4是自适应屏幕比例的大容量QR码格式信息的模块布置;
图5是自适应屏幕比例的大容量QR码版本信息的模块布置;(a)左下角版本信息1排列;(b)右上角版本信息2排列。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细、完整的说明。应当理解,此处所描述的实施例是本发明的一部分实施例,而不是全部的实施例,且此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1为一种自适应屏幕比例的大容量QR码编码、解码方法流程图,如图1所示,本发明提供了数据信息编码为自适应屏幕比例大容量QR码的方法,具体步骤如下:
步骤101,分析数据类型,数据根据类型分段,并添加4位模式指示符、字符计数指示符,将数据编码为数据位流。所有的位流连接生成数据码字,码字长度为8位,数据剩余位不足8位时使用0填充满该数据码字。本例中共生成B=36个数据码字;
计算功能图形数量及位置;位置探测图形中心坐标根据(3,3),(N,4,3),(3,M-4)计算为(3,3),(21,3),(3,39),数量为W=3×7×7;定位图形数量计算为垂直方向(深色)水平方向(深色)
校正图形水平方向计算dw=(w-3g1)/(g1+1),其中g1取正整数,使得满足dw(5≤dw≤12),否则取g1=g1+1继续计算。计算得g1=1,dw向上、向下取整为dw1=6,dw2=5。进一步计算d3=w-3g1-dn1×dw1,其中dn1取正整数,直到dn2=d3/dw2为整数,否则取dn1=dn1+1继续计算。
本例计算得dn1=1,dn2=1,也就是有1段间隔6个深色定位图形模块,1段间隔5个深色定位图形模块,水平方向校正图形的中心坐标为(6,10+2dw),计算为(6,22)。相同的方法计算垂直方向上校正图形的数量及分布得n2=0,所以垂直方向上不设置校正图形。在位置探测图形对角上的校正图形中心坐标为(N-7,M-7),计算为(18,36)。经过已知的校正图形中心坐标行列组合可以得到第三个校正图形中心坐标为(18,22)。计算QR码图形中所有校正图形的数量为gsum=(g1+2)(g2+2)-3=3,且校正图形的中心坐标分别为(6,22),(18,22),(18,36)。
计算定位图形、校正图形及固定黑色模块占模块数为J=2(r+w)-1+5(5gsum-g1-g2)=107。功能图形占用总模块数G=W+D+J+F+V=421。
步骤105,图形版本选择,该版本图形的数据码字数为A=Z-R=39,比较A与B的大小,若A≥B,则采用此版本图形进行编码;若A<B,则不可用,需增加图形版本,重复步骤102、步骤103和步骤104,逐个计算并比较更大版本的图形容量,直至A≥B。本例满足条件A≥B,采用版本2-Q即可。且A-B=39-36=3,剩余3个空码字交替填充11101100与00010001。
步骤106,计算数据码字与纠错码字分块,得到分块数量p以及每个分块中包含的码字数、数据码字数和纠错容量,即(K+2e,K,e)。
图形版本2-6使用纠错容量E除以整数e(7≤e≤15),取第一个能够整除的数字为单块的纠错容量,商为分块个数p。若p≤15且e<p,则交换e,p数值。图形版本7及以上使用纠错容量E除以整数e(9≤e≤15),取第一个能够整除的数字为单块的纠错容量,商为分块个数。若p≤15且e<p,则交换e,p数值。E÷e=p,分块中纠错码字数量为2e。
使用A÷p=k......d计算每个分块中数据码字为整数k。当d=0时,分为p个含k个数据码字的数据分块;当d≠0时,分为p-d个含k个数据码字的数据分块以及d个含k+1个数据码字的数据分块。
本例版本2-Q-16-9计算得数据分块数p=3,每个分块的码字数、数据码字数和纠错容量为(27,13,7)。
步骤107,生成纠错码字,每个分块用RS(Reed-Solomon)编码生成纠错码字。其中多项式算法用位的模2算法和字节的模100011101算法,使用加罗瓦域GF(28)。将每一个分块生成的纠错码字放在数据码字后面。
步骤108,布置图形排列,将数据码字与纠错码字穿插放置在编码区,在图形符号不足8位的剩余位区域填充0。码字序列从QR码符号的右下角开始布置,以2个模块宽的竖列自右向左且自下而上、自上而下交替排列。
码字内部符号位的排列方向与码字序列排列方向相同,码字最高位放在第一个模块位置(用7表示),如图4码字内模块布置。若遇到定位图形、校正图形等功能图形,可以绕过图形或在其上面或下面的位置连续布置;若遇到位置探测图形、上边界或下边界,可以改变向上或向下排列方向进行连续布置,如图3所示。
版本2-Q-16-9符号的最终码字排列序列为:D1,D14,D27,D2,D15,D28,D3,D16,D29,...D12,D25,D38,D13,D26,D39,E1,E15,E29,E2,E16,E30,E3,E17,E31,...E13,E27,E41,E14,E28,E42。
表1版本2-Q-16-9符号中字符布置
步骤109,设置掩模图形。将8种掩模图形依次放在编码区域,并将对应与掩模图形的深色模块的模块颜色取反,对不符合的条件的进行计分,取得分最低的掩模图形。
表2掩模图形计分
表中i为颜色相同紧邻模块数量大于5的个数,l和t为颜色相同的模块组成的块长和宽,q为整个符号中深色模块所占比率与50%的差值,罚分权重为N1=3,N2=3,Na=40,N4=10。
例子中选择计分最低的掩模图形110。
步骤1010,生成15位格式信息与46位版本信息,并放入QR码符号的固定位置。格式信息数据纠错等级Q二进制编码为11,掩模图形编码110,使用BCH(15,5)编码计算得到纠错位,其中,BCH码生成码为10100110111(0x537)。
二进制字符串:11110
生成多项式:x4+x3+x2+x
次数升至(15-5):x14+x13+x12+x11
被G(x)除后:
=(x10+x8+x5+x4+x2+x+1)(x4+x3)+(x9+x7+x6+x3)
5位数据加剩余多项式的系数字符形成格式信息数据串:111101011001000
数据位与纠错位形成15为格式信息后,进行掩模处理。将15位格式信息与掩模图形101010000010010(0x5412)进行异或运算,得到最终格式信息010111011011010。
版本信息数据版本2编码为000010,长边模块个数43编码为0000101011,使用BCH(15,5)编码计算得到纠错位,其中BCH生成码为10100110111(0x537);使用BCH(31,11)编码计算得到纠错位,其中BCH生成码为101100010011011010101(0x1626d5)。版本信息纠错位计算方式与格式信息相同,第一部分所得10位纠错位为00100110111,第二部分所得20位纠错位为00000100110001011110。在排列时前16位为数据编码,后30位为纠错编码,最后得到版本信息00001000001010110010011011100000100110001011110。
步骤1011,生成QR码,并显示。
图1自下到上的流程为自适应比例的大容量QR码解码流程,如图1所示本发明提供了自适应比例大容量QR码解码为数据的方法,具体步骤如下:
步骤201,获取符号图像。使用图像反射率最大值与最小值之间的中值作为阈值,使用阈值将图像深色和浅色模块。
确定位置探测图形。位于图像3个角上的位置探测图形由相对宽度比为1:1:3:1:1的深-浅-深-浅-深色模块依次组成。在扫描识别时可以出现比例多于或少于0.5的偏差。(a)对图像水平和竖直方向上相邻像素行进行反复探测,直到识别穿过水平方向和竖直方向上位置探测图形中心方块的所有像素行。(b)在水平方向和竖直方向上取位置探测图形中心方块的最外层像素线中线相交,确定位置探测图形的中心。(c)重复(a),(b)步骤确定三个位置探测图形的中心。通过分析位置探测图形的坐标识别QR码符号的旋转角度,确定QR码符号的原本的方向。
步骤202,识别并读取版本信息。
(a)用右上角位置探测图形的宽度WUR除以位置探测图形模块数,计算单个模块尺寸CPUR。
CPUR=WUR/7
(b)根据位置探测图形的中心坐标和模块尺寸CPUR确定右上角版本信息区域中每个模块中心,将图像深色和浅色模块识别为“1”和“0”阵列。
(c)进行数据检测,若检测无错则直接获取版本信息;若检测有错则使用BCH码纠错。
(d)若检测错误超出纠错容量,则获取左下角位置探测图形宽度WDL,进行步骤(a),(b),(c)获取左下角版本信息的数据。
步骤203,校正图形定位。根据版本信息中获取的版本数据和长度数据计算出QR码图形中校正图形的中心坐标(6,22)(18,22),(18,36),确定取样网络。
(a)根据左上角、左下角和右上角位置探测图形的中心坐标的连接直线和模块尺寸CPUL初步确定图形上边缘和左边缘存在的校正图形中心坐标。
(b)若上边缘和左边缘存在校正图形,则从初步确定的中心坐标像素开始扫描上边缘和左边缘的校正图形的空白方块轮廓,以此来确定实际的中心坐标,跳转步骤(d);若不存在则跳转步骤(c)。
(c)根据左上角、左下角和右上角位置探测图形的中心坐标估计左上角位置图形对角位置上校正图形的中心坐标。
(d)根据左上角位置探测图形的中心坐标(或校正图形中心坐标)、(b)中得到的上边缘校正图形的中心坐标和左边缘的校正图形的中心坐标(若不存在则用左下角位置探测图形的中心坐标)估计左上角位置图形最近的对角校正图形的中心坐标。
(e)获取对角校正图形的中心坐标后,可知四个校正图形(或包含位置探测图形)围成的矩形实际边长,用实际边长除已定义的边距获得该网格内的模块尺寸值。
(f)重复步骤(b),(d),(e)自左上至右下计算所有校正图形的中心坐标,并计算每4个图形划分出的网格中的模块尺寸。
(g)对网格中的图像像素进行取样,使用图像反射率最大值与最小值之间的中值作为阈值,使用阈值将图像深色和浅色模块,深色模块为“1”,浅色模块为“0”,表示为二进制的阵列。
步骤204,识别并读取格式信息。
(a)对左上角位置探测图形周围的格式信息使用101010000010010进行XOR运算,解除掩模。
(b)进行格式数据检测,若检测无错则直接译码获取格式信息;若检测有错则使用BCH码纠错后译码获取格式信息。
(c)若检测错误超出纠错容量,则重复步骤(b)对右上角和左下角位置探测图形周围的格式信息进行译码。
步骤205,消除掩模图形。
格式信息得到掩模图形信息后,用掩模图形对符号编码区域进行异或处理,解除掩模,恢复数据码字和纠错码字。
步骤206,计算数据分块,识别并读取数据和纠错码字。
根据版本信息中的图形版本2,长边模块数43和格式信息中的纠错等级Q计算出图形的数据码字和纠错码字数量及排列为3块(27,13,7)分块。并根据编码时使用的交替排列处理过程恢复原本的数据码字和纠错码字排列。
步骤207,纠错码字检测纠正错误。使用RS码检测验证并纠错位流。
步骤208,恢复信息位流。将纠错后的数据块读取位流,根据模式指示符和字符计数指示符将数据位流划分成段。一段数据位流由模式指示符开始,长度由字符计数指示符确定。
步骤209,数据位流译码。根据每一段数据位流中的模式规则进行译码,最终得到数据字符并输出。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (4)
1.一种自适应屏幕比例的大容量QR码编码、解码方法,其特征在于,步骤如下:
步骤1、根据已知QR码的版本及显示屏幕长宽比例确定QR码的长宽模块数、位置探测图形、定位图形、校正图形的位置,根据编码方式进行各图形布置并生成QR码;
步骤1.1、分析数据类型,数据根据类型分段,并添加4位模式指示符、字符计数指示符,将数据编码为数据位流;所有数据位流连接生成数据码字,数据码字数为B;
步骤1.2、根据显示屏幕的长宽比例,通过图形版本号C划分长宽模块;计算各个功能图形数量及坐标;功能图形包括位置探测图形、位置探测图形分隔符、定位图形、校正图形;
水平方向模块数量:
垂直方向模块数量:
N=4(C-1)+21
位置探测图形中心坐标分别为(3,3),(N-4,3),(3,M-4);每个位置探测图形和编码区域之间宽度为1个模块的位置探测图形分隔符,此区域全空白;
定位图形分别为1模块宽的一行和一列,深浅模块交替组成,其头部及尾部均为深色模块;第一行和第一列定位图形与位置探测图形融合:
图形版本号为C的QR码均设置校正图形,右下角(N-7,M-7)处固定一个校正图形;
在水平方向和垂直方向上定位图形的深色模块数量大于设定值时,设置其他校正图形;被校正图形分隔开的深色定位图形数量:
d=(o-3g)/(g+1)
其中,o表示水平方向或垂直方向定位图形深色模块数量,g表示水平方向或垂直方向上校正图形数量,满足5≤d≤12;水平方向和垂直方向分别计算得深色定位图形分隔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;其他分布在编码区域内的校正图形的坐标为已计算的水平方向和垂直方向校正图形及右下角固定校正图形坐标的横纵坐标的组合;
步骤1.3、计算图像总数据位
功能图形、格式信息和版本信息占用单元格G计算公式为:
G=W+D+J+F+V
其中,W为位置探测图形占单元格数,D为位置探测图形分隔符占单元格数,J为定位图形及校正图形占单元格数,F为格式信息占单元格数,V为版本信息占单元格数;
步骤1.4、计算纠错码字数
根据纠错码版本的纠错容量百分比b(%)及码字总数Z计算纠错容量E和纠错码字数R;
R=2E
步骤1.5、图像版本选择
根据图形版本号C、码字总数Z和纠错码字数R计算存放的数据码字数;
A=Z-R
当此版本图形可存放的数据码字数A≥B,采用此版本图形进行编码;当A<B时,增加图形版本号,重复步骤1.2-步骤1.4,逐个计算并比较更大版本的图形容量,直至A≥B;未填满的空码字交替填充11101100与00010001,直至填满所有码字;
步骤1.6、数据码字与纠错码字分块
将数据码字分块形成数据分块,每个数据分块分别纠错运算生成纠错数据码字;
将纠错码字和数据码字均匀的分布在数据分块中;使用纠错容量E除以整数e,取第一个能够整除的数字为单个数据分块的纠错容量,商为数据分块个数p;当p≤15且e<p时,交换e,p数值;数据分块中纠错码字数量为2e每个数据分块中数据码字数为整数k,计算式如下:
A÷p=k……d
其中,A为码字总数;当余数d=0时,分为p个含k个数据码字的数据分块;当d≠0时,分为p-d个含k个数据码字的数据分块以及d个含k+1个数据码字的数据分块;每个数据分块中的数据码字数用K表示;
步骤1.7、生成纠错码字
根据步骤1.6获得的数据分块个数p和每个数据分块中总码字数、数据码字和纠错容量数据(K+2e,K,e),将数据码字分为p块,每块数据分块中包括K个数据码字,每一块数据分块用RS编码生成纠错码字;
步骤1.8、布置图形排列
将功能图形、数据码字块、纠错码字块以及最小空白区域4X排放在图形中,功能图形摆放在计算的固定位置,数据码字块与纠错码字块根据分块情况穿插放置;
步骤1.9、设置掩模图形
采用标准QR码中使用的8种掩模图形中的一种;
步骤1.10、生成格式信息和版本信息
设置格式信息15位,包含5位数据位和10位纠错位;
设置46位版本信息,包括16位数据位和30位纠错位;格式信息使用BCH(15,5)生成纠错位;版本信息使用BCH(15,5)和BCH(31,11)生成纠错位;
步骤2、根据解码方式将QR码解码为数据信息;
解码方式具体为:识别位置探测图形后,使用BCH(15,5),BCH(31,11)纠错解码版本信息;根据版本信息的版本以及长边模块数计算该版本图形各个校正图形和位置探测图形的中心坐标。
2.根据权利要求1所述的自适应屏幕比例的大容量QR码编码、解码方法,其特征在于,所述步骤2具体为:
步骤2.1、获取符号图像;
使用图像反射率最大值与最小值之间的中值作为阈值,使用阈值将图像分为深色模块和浅色模块;
确定位置探测图形;通过分析位置探测图形的坐标识别QR码符号的旋转角度,确定QR码符号原本方向;
步骤2.2、识别并读取版本信息;
用右上角位置探测图形的宽度WUR除以7,计算模块尺寸CPUR;确定右上角版本信息区域中每个模块中心;数据检测无错时直接获取版本信息;数据检测有错时使用BCH码纠错;当不能成功读取时,识别读取左下角版本信息数据;
步骤2.3、校正图形定位
根据版本信息中获取的版本数据和长度数据计算出QR码图形中校正图形的中心坐标,确定取样网络;
步骤2.4、识别并读取格式信息
对左上角位置探测图形周围的格式信息使用101010000010010进行XOR运算,解除掩模;数据检测无错时直接译码获取格式信息;数据检测有错时使用BCH码纠错后进行译码获取格式信息;当检测错误超出纠错容量,则识别读取右上角和左下角位置探测图形周围的格式信息;
步骤2.5、消除掩模图形
格式信息得到掩模图形信息后,用掩模图形对符号编码区域进行异或处理,解除掩模,恢复数据码字和纠错码字字符;
步骤2.6、识别并读取数据和纠错码字
根据版本信息中的图形大小和格式信息中的纠错等级计算出图形的数据码字和纠错码字数量及排列;根据编码时使用的交替排列处理过程恢复原本的数据码字和纠错码字排列;
步骤2.7、纠错码字检测纠正错误
使用RS码检测验证并纠错;
步骤2.8、恢复信息位流
将纠错后的数据块读取位流,根据模式指示符和字符计数指示符将数据位流划分成段;一段数据位流由模式指示符开始,长度由字符计数指示符确定;
步骤2.9、数据位流译码
根据每一段数据位流中的模式规则进行译码,最终得到数据字符并输出。
3.根据权利要求1或2所述的自适应屏幕比例的大容量QR码编码、解码方法,其特征在于,所述位置探测图形占单元格数W=3×7×7;位置探测图形分隔符占单元格数D=3×15;定位图形及校正图形占单元格数J=2(r+w)-1+5(5gsum-g1-g2),gsum=(g1+2)(g2+2)-3,其中g1为水平方向校正图形数,g2为垂直方向校正图形数,gsum为符号中校正图形总数;格式信息占单元格数F=2×15;版本信息占单元格数V=2×46。
4.根据权利要求3所述的自适应屏幕比例的大容量QR码编码、解码方法,其特征在于,所述步骤1.2图形版本号的选择为最小版本,根据步骤1.5依次增大。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211479622.8A CN116070661A (zh) | 2022-11-24 | 2022-11-24 | 一种自适应屏幕比例的大容量qr码编码、解码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211479622.8A CN116070661A (zh) | 2022-11-24 | 2022-11-24 | 一种自适应屏幕比例的大容量qr码编码、解码方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116070661A true CN116070661A (zh) | 2023-05-05 |
Family
ID=86182882
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211479622.8A Pending CN116070661A (zh) | 2022-11-24 | 2022-11-24 | 一种自适应屏幕比例的大容量qr码编码、解码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116070661A (zh) |
-
2022
- 2022-11-24 CN CN202211479622.8A patent/CN116070661A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7694889B2 (en) | Printed material having location identification function, two-dimensional coordinate identification apparatus, image-forming apparatus and the method thereof | |
US10679175B2 (en) | Two-dimensional code, system for creation of two-dimensional code, and analysis program | |
JP4739317B2 (ja) | 装置、装置で実行される方法およびプログラム | |
CN104143109B (zh) | 一种二维码的编码和解码方法及其印刷物 | |
JP4294025B2 (ja) | インターフェース表面を生成する方法、および符号化データを読み取る方法 | |
CN102243712B (zh) | 彩色条码的生成方法及系统、彩色条码的解析方法及系统 | |
JPH10256921A (ja) | ディジタルデータの変調及び復調方法並びにディジタルデータの変調及び復調装置 | |
CN100377173C (zh) | 一种基于十六进制编码的构建二维码的方法 | |
CN102147873A (zh) | 彩码的生成方法及系统、彩码的解析方法及系统 | |
WO2003054786A1 (en) | Generating graphical codes by halftoning with embedded graphical encoding | |
JP2005267598A5 (zh) | ||
WO2006109951A1 (en) | Method and apparatus for generating block-based low-density parity check matrix and recording medium having recorded thereon code for implementing the method | |
CN104346640A (zh) | 二维码及生成二维码的方法 | |
CN106375762B (zh) | 参考帧数据压缩方法及其装置 | |
EP1766911A1 (en) | Discrete universal denoising with reliability information | |
JP2004040199A (ja) | 符号化装置、復号化装置、符号化方法、復号化方法、プログラム、プログラム記録媒体、及びデータ記録媒体 | |
US20120110409A1 (en) | Error-correcting encoding method with total parity bits, and method for detecting multiple errors | |
US5878061A (en) | Providing serial data clock signal transitions with parity bits | |
US5938773A (en) | Sideband signaling with parity bit schemes | |
CN116070661A (zh) | 一种自适应屏幕比例的大容量qr码编码、解码方法 | |
CN112187284A (zh) | 编码方法、编码图形、编码图形读取方法和拍摄装置 | |
WO2006012307A1 (en) | Discrete universal denoising with error correction coding | |
CN102142077A (zh) | 数据读取器、数据读取方法和数据记录器 | |
CN112561014B (zh) | 一种一维条码的编解码方法 | |
CN1068487C (zh) | 分组交换机的检错装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |