CN115271013A - 一种二维码编码、解码方法及电子设备 - Google Patents
一种二维码编码、解码方法及电子设备 Download PDFInfo
- Publication number
- CN115271013A CN115271013A CN202110486582.9A CN202110486582A CN115271013A CN 115271013 A CN115271013 A CN 115271013A CN 202110486582 A CN202110486582 A CN 202110486582A CN 115271013 A CN115271013 A CN 115271013A
- Authority
- CN
- China
- Prior art keywords
- mode
- character
- characters
- coding
- encoding
- 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 119
- 108091026890 Coding region Proteins 0.000 claims description 48
- 238000013507 mapping Methods 0.000 claims description 28
- 230000015654 memory Effects 0.000 claims description 27
- 238000004891 communication Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 11
- 108700026244 Open Reading Frames Proteins 0.000 claims description 7
- 230000000875 corresponding effect Effects 0.000 description 163
- 238000012545 processing Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 238000010295 mobile communication Methods 0.000 description 11
- 230000008859 change Effects 0.000 description 9
- 238000007726 management method Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 230000005236 sound signal Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000005260 corrosion Methods 0.000 description 1
- 230000007797 corrosion Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003628 erosive effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer 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
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/146—Methods for optical code recognition the method including quality enhancement steps
- G06K7/1486—Setting the threshold-width for bar codes to be decoded
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/1408—Methods for optical code recognition the method being specifically adapted for the type of code
- G06K7/1417—2D bar codes
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Electromagnetism (AREA)
- Toxicology (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Bioethics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
一种二维码编码、解码方法以及电子设备。在该方法中,电子设备获取待编码文本,待编码文本中包含N个字符;电子设备从X个可选编码模式中确定N个字符中各字符的目标编码模式;电子设备根据各字符的目标编码模式将N个字符分成M个字符段,并确定M个字符段中各字符段的目标编码模式;M小于或等于N;电子设备根据各字符段的目标编码模式对M个字符段进行编码,得到第一二进制字符串;电子设备将第一二进制字符串生成第一二进制字符串的长度对应版本的二维码。实施本申请提供的技术方案,电子设备可以将待编码文本编码成更短的二进制字符串。
Description
技术领域
本申请涉及终端人工智能(artificial intelligence,AI)领域以及对应的子领域、信息存储领域,尤其涉及一种二维码编码、解码方法及电子设备。
背景技术
现如今,二维码被广泛地应用在生活中。用户在生活随处可见二维码。例如,用户可以利用电子设备扫描二维码,来实现支付、信息获取、账号登录等等。二维码可以用来存储支付信息、账号登录信息等等。常见的二维码有快速反应(quick response,QR)码、圆形二维码等等。二维码的版本不同,存储信息的容量也有所不同。
电子设备可以将需要存储到二维码中的信息(简称待存储信息,例如字符串)进行编码二进制字符串,然后生成二维码。对于待存储信息,电子设备编码的方法不同,得到的二进制字符串的长度不同。由于二维码的容量有限,因此希望电子设备编码得到的二进制字符串长度尽量可能短。
由此,电子设备如何将带存储信息编码成长度更短的二进制字符串是亟待解决的问题。
发明内容
本申请提供了一种二维码编码、解码方法以及电子设备,在本申请提供的二维码编码方法中,电子设备可以将待编码文本编码成更短的二进制字符串。在本申请提供的二维码解码方法中,电子设备可以对使用本申请的二维码编码方法编码得到的二维码进行解码。
第一方面,本申请提供了一种二维码编码方法,该方法可以包括:电子设备获取待编码文本,待编码文本中包含N个字符,N为正整数;电子设备从X个可选编码模式中确定N个字符中各字符的目标编码模式;电子设备根据各字符的目标编码模式将N个字符分成M个字符段,并确定M个字符段中各字符段的目标编码模式;M小于或等于N;电子设备根据各字符段的目标编码模式对M个字符段进行编码,得到第一二进制字符串;电子设备将第一二进制字符串生成第一二进制字符串的长度对应版本的二维码。
通过本申请实施例提供的一种二维码编码方法,电子设备可以将待编码文本编码成更短的二进制字符串。当待编码文本中字符长度太长,通过现有技术中的编码方法得到的二进制字符串超出现有技术中二维码中的数据容量,导致无法生成二维码。而采用本申请实施例中二维码编码方法,可以对字符长度较长的待编码文本进行编码,生成二维码。
在一种可能的实现方式中,电子设备从X个可选编码模式中确定N个字符中各字符的目标编码模式,包括:电子设备从X分可选编码模式中确定N个字符中的第一字符的一个或多个候选编码模式;电子设备从一个或多个候选编码模式中选择编码位数最低的候选编码模式作为第一字符的目标编码模式。
这样,电子设备可以将每个字符编码成位数更低的二进制字符串。从而,电子设备对待编码文本进行编码,可以得到更短的二进制字符串。
在一种可能的实现方式中,电子设备根据N个各字符的目标编码模式将N个字符分成M个字符段,并确定M个字符段中各字符段的目标编码模式,包括:电子设备将N个字符中连续相邻且目标编码模式相同的字符分成一个字符段,得到M个字符段;电子设备基于各字符段的字符的目标编码模式,确定M个字符段中各字符段的目标编码模式。
在一种可能的实现方式中,M个字符段中包括第一字符段,第一字符段中包括第一字符与第二字符,第一字符与第二字符的目标编码模式相同,第一字符段的目标编码模式与第一字符和第二字符的目标编码模式相同。
这样,电子设备将N个字符分成字符段进行编码,可以节约模式指示符所占的二进制位数,从而可以得到更短的二进制字符串。
在一种可能的实现方式中,电子设备根据N个各字符的目标编码模式将N个字符分成M个字符段,并确定M个字符段中各字符段的目标编码模式,包括:电子设备将N个字符中连续相邻,且大于预设数量的、相同的目标编码模式的字符划分为一个字符段,得到M个字符段;电子设备基于各字符段的字符的目标编码模式,确定M个字符段中各字符段的目标编码模式。
这样,电子设备可以将N个字符分成更少的字符段,每个字符段只需要一个模式指示符。相比于,一个字符作为一个字符段来说,电子设备得到的二进制字符串中的模式指示符更少。这样,可以节约模式指示符的位数。从而,电子设备可以得到更短的二进制字符串。
在一种可能的实现方式中,M个字符段中包括第二字符段,第二字符段中的字符数量大于或等于预设数量。
在一种可能的实现方式中,电子设备根据N个各字符的目标编码模式将N个字符分成M个字符段,并确定M个字符段中各字符段的目标编码模式,包括:电子设备从N个字符中的第一个字符开始计数;当计数到第(u-1)个字符时,电子设备确定字符的数量大于或等于预设数量,且第(u-1)个字符与第u个字符的目标编码模式不同时,电子设备将N个字符中第一个字符至第(u-1)个字符划分为一个字符段,得到M个字符段;电子设备基于M个字符段中各字符段的字符的目标编码模式,确定M个字符段中各字符段的目标编码模式。
这样,电子设备可以将N个字符分成更少的字符段,每个字符段只需要一个模式指示符。相比于,一个字符作为一个字符段来说,电子设备得到的二进制字符串中的模式指示符更少。并且,可以使得字符段的目标编码模式的编码位数更低,这样,电子设备可以得到更短的二进制字符串。
在一种可能的实现方式中,M个字符段中包括第一字符段,电子设备基于各字符段的字符的目标编码模式,确定M个字符段中各字符段的目标编码模式,包括:电子设备确定第一字符段中的第一字符和第二字符的目标编码模式为第一目标编码模式;电子设备将第一目标编码模式作为第一字符段的目标编码模式。
在一种可能的实现方式中,M个字符段中包括第一字符段,电子设备基于各字符段的字符的目标编码模式,确定M个字符段中各字符段的目标编码模式,包括:电子设备确定第一字符段中的第一字符的目标编码模式为第一目标编码模式,第一字符段中的第二字符的目标编码模式为第二目标编码模式,其中,第一目标编码模式的编码位数高于第二目标编码模式,且第一目标编码模式对应的编码索引表中包括第二字符,X个可选编码模式中包括第一目标编码模式和第二目标编码模式;电子设备将第一目标编码模式作为第一字符段的目标编码模式。
在一种可能的实现方式中,M个字符段中包括第一字符段,电子设备基于各字符段的字符的目标编码模式,确定M个字符段中各字符段的目标编码模式,包括:电子设备确定第一字符段中的第一字符的目标编码模式为第一目标编码模式,第一字符段中的第二字符的目标编码模式为第二目标编码模式,其中,第一目标编码模式与第二目标编码模式不同,且第一目标编码模式对应的编码索引表中未包含第一字符,第二目标编码模式对应的编码索引表中未包含第二字符,第三目标编码模式对应的编码位数高于第一目标编码模式和第二目标编码模式,X个可选编码模式中包括第一目标编码模式、第二目标编码模式和第三目标编码模式;电子设备将第三目标编码模式作为第一字符段的目标编码模式。
在一种可能的实现方式中,第一二进制字符串中包括第二二进制字符串,第二二进制字符串由第一字符段编码得到,第二二进制字符段中包括第一字符段的目标编码模式的模式指示符、第一字符段中字符长度的指示符以及第一字符串中字符按照第一字符串的目标编码模式编码得到的二进制字符串。
在一种可能的实现方式中,N个字符中包括数字字符、大写字母字符、小写字母字符、特殊字数、转义字符中的一种或多种,数字字符、大写字母字符、小写字母字符、特殊字数、转义字符分别对应的编码位数最低的目标编码模式不同。
在一种可能的实现方式中,X个可选编码模式中各可选编码模式对应一种编码索引表;编码索引表包括第一编码索引表、第二编码索引表、第三编码索引表、第四编码索引表、第五编码索引表、第六编码索引表、第七编码索引表、第八编码索引表;第一编码索引表中包含数字字符;第二编码索引表中包含数字字符和大写字母字符;第三编码索引表中包含数字字符和小写字母字符;第四编码索引表中包含大写字母字符和特殊字符;第五编码索引表中包含小写字母字符和特殊字符;第六编码索引表中包含数字字符、大写字母字符和特殊字符;第七编码索引表中包含数字字符、小写字母字符和特殊字符;第八编码索引表中包含数字字符、大写字母字符、小写字母字符和特殊字符。
在一种可能的实现方式中,二维码包括第一版本的二维码、第二版本的二维码、第三版本的二维码、第四版本的二维码、第五版本的二维码、第六版本的二维码,第一版本的二维码、第二版本的二维码、第三版本的二维码、第四版本的二维码、第五版本的二维码以及第六版本的二维码的数据容量不同。
在一种可能的实现方式中,该二维码为圆形二维码,该圆形二维码中包括多个同心圆组成的编码区域,多个同心圆中各同心圆的圆环上包含多个码元。
第二方面,提供一种二维码解码方法,该方法可以包括:电子设备获取待解码二维码,待解码二维码指示第一信息;电子设备从待解码二维码中获取模式指示信息;电子设备从模式指示信息中确定待解码二维码的编码模式,电子设备中存储有一个或多个映射关系表,映射关系表中包含模式指示信息和模式指示信息对应的编码模式;电子设备按照编码模式对待解码二维码进行解码,得到第一信息。
这样,通过本申请提供的一种二维码解码方法,电子设备可以对不同编码模式的二维码进行解码。
在一种可能的实现方式中,待解码二维码中包含编码区域,电子设备从待解码二维码中确定模式指示信息,具体包括:电子设备从编码区域中存储有模式指示信息的码元中获取模式指示信息。这样,电子设备可以获取模式指示信息。
在一种可能的实现方式中,电子设备从编码区域中存储有模式指示信息的码元中获取模式指示信息之前,包括:电子设备获取待解码二维码的版本信息,基于版本信息确定待解码二维码的目标版本;目标版本指示了待解码二维码的编码区域中每个存储位置的坐标信息;电子设备根据每个存储位置的坐标信息,确定待解码二维码的编码区域中多个码元中各码元占据的存储位置对应的二进制数值。这样,电子设备可以准确地处编码区域中每个码元对应的二进制数值。
可选地,二进制数据可以是0或1。
在一种可能的实现方式中,电子设备可以根据待解码二维码中任意两个定位符的距离确定待解码二维码的版本信息。不同的版本信息对应二维码中任意两个定位符的距离也不相同。
在一种可能的实现方式中,电子设备按照编码模式对待解码二维码进行解码,得到第一信息,包括:电子设备按照编码模式对待解码二维码的编码区域中多个码元中各码元占据的存储位置对应的二进制数值进行解码,得到第一信息。不同的编码模式,对应的编码位数不同,这样电子设备可以根据编码模式准确地将对应位数的二进制数值解码出第一信息。
在一种可能的实现方式中,电子设备从待解码二维码中获取模式指示信息,包括:电子设备从待编码二维码中获取一个模式指示信息,和编码模型信息中包含的一个或多个子模式指示信息;
电子设备从模式指示信息中确定待解码二维码的编码模式,包括:电子设备从模式指示信息中确定待解码二维码的编码模式,和从一个或多个子模式指示信息中确定待解码二维码的一个或多个编码子模式;
电子设备按照所述编码模式对待解码二维码的编码区域中多个码元中各码元占据的存储位置对应的二进制数值进行解码,得到第一信息,包括:电子设备按照一个或多个编码子模式对待解码二维码的编码区域中多个码元中各码元占据的存储位置对应的二进制数值进行解码,得到第一信息。
第一信息可以是由一个编码模式下的多个编码子模式编码成待解码二维码。这样,电子设备逐步细分解码,可以准确地从待解码二维码中解码出第一信息。
在一种可能的实现方式中,一个或多个编码子模式中包括第一编码子模式和第二编码子模式,编码区域包括第一编码区域和第二编码区域;电子设备按照一个或多个编码子模式对待解码二维码的编码区域中多个码元中各码元占据的存储位置对应的二进制数值进行解码,得到第一信息,包括:电子设备按照第一编码子模式对第一编码区域中多个码元中各码元占据的存储位置对应的二进制数值进行解码,按照第二编码子模式对第二编码区域中多个码元中各码元占据的存储位置对应的二进制数值进行解码,得到第一信息。这样,电子设备逐步细分解码,可以准确地从待解码二维码中解码出第一信息。
在一种可能的实现方式中,模式指示信息和一个或多个子模式指示信息为固定位数的二进制字符。
在一种可能的实现方式中,电子设备从模式指示信息中确定待解码二维码的编码模式,电子设备中存储有一个或多个映射关系表,映射关系表中包含模式指示信息和模式指示信息对应的编码模式,包括:电子设备在映射关系表中查询模式指示信息对应的编码模式,以及编码模式的编码位数。
在一种可能的实现方式中,电子设备从模式指示信息中确定待解码二维码的编码模式,电子设备中存储有一个或多个映射关系表,映射关系表中包含模式指示信息和模式指示信息对应的编码模式,具体包括:电子设备在映射关系表中查询模式指示信息对应的编码模式,以及一个或多个编码子模式中各子模式指示信息对应的编码子模式。
在一种可能的实现方式中,待解码二维码中包含一个模式指示信息和多个子模式指示信息,第一信息包含数字字符、大写字母字符、小写字母字符、特殊字符、转义字符中的两种字符或多种字符,数字字符、大写字母字符、小写字母字符、特殊字数、转义字符分别对应的编码位数最低的目标编码模式不同。
在一种可能的实现方式中,一个或多个编码子模式各编码子模式对应一种编码索引表;编码索引表包括第一编码索引表、第二编码索引表、第三编码索引表、第四编码索引表、第五编码索引表、第六编码索引表、第七编码索引表、第八编码索引表;第一编码索引表中包含所述数字字符;第二编码索引表中包含数字字符和大写字母字符;第三编码索引表中包含数字字符和小写字母字符;第四编码索引表中包含大写字母字符和特殊字符;第五编码索引表中包含小写字母字符和特殊字符;第六编码索引表中包含数字字符、大写字母字符和特殊字符;第七编码索引表中包含数字字符、小写字母字符和特殊字符;第八编码索引表中包含数字字符、大写字母字符、小写字母字符和特殊字符。
在一种可能的实现方式中,待解码二维码的目标版本包括第一版本、第二版本、第三版本、第四版本、第五版本、第六版本;待解码二维码的目标版本不同,待解码二维码的数据容量不同。
第三方面,本申请提供了一种电子设备,包括:一个或多个处理器、一个或多个存储器;该一个或多个存储与一个或多个处理器耦合;该一个或多个存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令;当该计算机指令在该处理器上运行时,使得该电子设备执行:设备获取待编码文本,待编码文本中包含N个字符,N为正整数;从X个可选编码模式中确定N个字符中各字符的目标编码模式;根据各字符的目标编码模式将N个字符分成M个字符段,并确定M个字符段中各字符段的目标编码模式;M小于或等于N;根据各字符段的目标编码模式对M个字符段进行编码,得到第一二进制字符串;将第一二进制字符串生成第一二进制字符串的长度对应版本的二维码。
通过本申请实施例提供的一种二维码编码方法,电子设备可以将待编码文本编码成更短的二进制字符串。当待编码文本中字符长度太长,通过现有技术中的编码方法得到的二进制字符串超出现有技术中二维码中的数据容量,导致无法生成二维码。而采用本申请实施例中二维码编码方法,可以对字符长度较长的待编码文本进行编码,生成二维码。
在一种可能的实现方式中,该处理器还用于执行:从X分可选编码模式中确定N个字符中的第一字符的一个或多个候选编码模式;从一个或多个候选编码模式中选择编码位数最低的候选编码模式作为第一字符的目标编码模式。
这样,电子设备可以将每个字符编码成位数更低的二进制字符串。从而,电子设备对待编码文本进行编码,可以得到更短的二进制字符串。
在一种可能的实现方式中,该处理器还用于执行:将N个字符中连续相邻且目标编码模式相同的字符分成一个字符段,得到M个字符段;基于各字符段的字符的目标编码模式,确定M个字符段中各字符段的目标编码模式。
在一种可能的实现方式中,M个字符段中包括第一字符段,第一字符段中包括第一字符与第二字符,第一字符与第二字符的目标编码模式相同,第一字符段的目标编码模式与第一字符和第二字符的目标编码模式相同。
这样,电子设备将N个字符分成字符段进行编码,可以节约模式指示符所占的二进制位数,从而可以得到更短的二进制字符串。
在一种可能的实现方式中,该处理器还用于执行:将N个字符中连续相邻,且大于预设数量的、相同的目标编码模式的字符划分为一个字符段,得到M个字符段;基于各字符段的字符的目标编码模式,确定M个字符段中各字符段的目标编码模式。
这样,电子设备可以将N个字符分成更少的字符段,每个字符段只需要一个模式指示符。相比于,一个字符作为一个字符段来说,电子设备得到的二进制字符串中的模式指示符更少。这样,可以节约模式指示符的位数。从而,电子设备可以得到更短的二进制字符串。
在一种可能的实现方式中,M个字符段中包括第二字符段,第二字符段中的字符数量大于或等于预设数量。
在一种可能的实现方式中,该处理器还用于执行:从N个字符中的第一个字符开始计数;当计数到第(u-1)个字符时,确定字符的数量大于或等于预设数量,且第(u-1)个字符与第u个字符的目标编码模式不同时,将N个字符中第一个字符至第(u-1)个字符划分为一个字符段,得到M个字符段;基于M个字符段中各字符段的字符的目标编码模式,确定M个字符段中各字符段的目标编码模式。
这样,电子设备可以将N个字符分成更少的字符段,每个字符段只需要一个模式指示符。相比于,一个字符作为一个字符段来说,电子设备得到的二进制字符串中的模式指示符更少。并且,可以使得字符段的目标编码模式的编码位数更低,这样,电子设备可以得到更短的二进制字符串。
在一种可能的实现方式中,该处理器还用于执行:确定第一字符段中的第一字符和第二字符的目标编码模式为第一目标编码模式;将第一目标编码模式作为第一字符段的目标编码模式。
在一种可能的实现方式中,该处理器还用于执行:确定第一字符段中的第一字符的目标编码模式为第一目标编码模式,第一字符段中的第二字符的目标编码模式为第二目标编码模式,其中,第一目标编码模式的编码位数高于第二目标编码模式,且第一目标编码模式对应的编码索引表中包括第二字符,X个可选编码模式中包括第一目标编码模式和第二目标编码模式;将第一目标编码模式作为第一字符段的目标编码模式。
在一种可能的实现方式中,该处理器还用于执行:确定第一字符段中的第一字符的目标编码模式为第一目标编码模式,第一字符段中的第二字符的目标编码模式为第二目标编码模式,其中,第一目标编码模式与第二目标编码模式不同,且第一目标编码模式对应的编码索引表中未包含第一字符,第二目标编码模式对应的编码索引表中未包含第二字符,第三目标编码模式对应的编码位数高于第一目标编码模式和第二目标编码模式,X个可选编码模式中包括第一目标编码模式、第二目标编码模式和第三目标编码模式;将第三目标编码模式作为第一字符段的目标编码模式。
在一种可能的实现方式中,第一二进制字符串中包括第二二进制字符串,第二二进制字符串由第一字符段编码得到,第二二进制字符段中包括第一字符段的目标编码模式的模式指示符、第一字符段中字符长度的指示符以及第一字符串中字符按照第一字符串的目标编码模式编码得到的二进制字符串。
在一种可能的实现方式中,N个字符中包括数字字符、大写字母字符、小写字母字符、特殊字数、转义字符中的一种或多种,数字字符、大写字母字符、小写字母字符、特殊字数、转义字符分别对应的编码位数最低的目标编码模式不同。
在一种可能的实现方式中,X个可选编码模式中各可选编码模式对应一种编码索引表;编码索引表包括第一编码索引表、第二编码索引表、第三编码索引表、第四编码索引表、第五编码索引表、第六编码索引表、第七编码索引表、第八编码索引表;第一编码索引表中包含数字字符;第二编码索引表中包含数字字符和大写字母字符;第三编码索引表中包含数字字符和小写字母字符;第四编码索引表中包含大写字母字符和特殊字符;第五编码索引表中包含小写字母字符和特殊字符;第六编码索引表中包含数字字符、大写字母字符和特殊字符;第七编码索引表中包含数字字符、小写字母字符和特殊字符;第八编码索引表中包含数字字符、大写字母字符、小写字母字符和特殊字符。
在一种可能的实现方式中,二维码包括第一版本的二维码、第二版本的二维码、第三版本的二维码、第四版本的二维码、第五版本的二维码、第六版本的二维码,第一版本的二维码、第二版本的二维码、第三版本的二维码、第四版本的二维码、第五版本的二维码以及第六版本的二维码的数据容量不同。
在一种可能的实现方式中,该二维码为圆形二维码,该圆形二维码中包括多个同心圆组成的编码区域,多个同心圆中各同心圆的圆环上包含多个码元。
第四方面,本申请提供了一种电子设备,包括:一个或多个处理器、一个或多个存储器;该一个或多个存储与一个或多个处理器耦合;该一个或多个存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令;当该计算机指令在该处理器上运行时,使得该电子设备执行:获取待解码二维码,待解码二维码指示第一信息;从待解码二维码中获取模式指示信息;从模式指示信息中确定待解码二维码的编码模式,电子设备中存储有一个或多个映射关系表,映射关系表中包含模式指示信息和模式指示信息对应的编码模式;按照编码模式对待解码二维码进行解码,得到第一信息。
这样,通过本申请提供的一种二维码解码方法,电子设备可以对不同编码模式的二维码进行解码。
在一种可能的实现方式中,该电子设备还用于执行:从编码区域中存储有模式指示信息的码元中获取模式指示信息。这样,电子设备可以获取模式指示信息。
在一种可能的实现方式中,该电子设备还用于执行:获取待解码二维码的版本信息,基于版本信息确定待解码二维码的目标版本;目标版本指示了待解码二维码的编码区域中每个存储位置的坐标信息;根据每个存储位置的坐标信息,确定待解码二维码的编码区域中多个码元中各码元占据的存储位置对应的二进制数值。这样,电子设备可以准确地处编码区域中每个码元对应的二进制数值。
可选地,二进制数据可以是0或1。
在一种可能的实现方式中,电子设备可以根据待解码二维码中任意两个定位符的距离确定待解码二维码的版本信息。不同的版本信息对应二维码中任意两个定位符的距离也不相同。
在一种可能的实现方式中,该电子设备还用于执行:按照编码模式对待解码二维码的编码区域中多个码元中各码元占据的存储位置对应的二进制数值进行解码,得到第一信息。不同的编码模式,对应的编码位数不同,这样电子设备可以根据编码模式准确地将对应位数的二进制数值解码出第一信息。
在一种可能的实现方式中,该电子设备还用于执行:从待编码二维码中获取一个模式指示信息,和编码模型信息中包含的一个或多个子模式指示信息;从模式指示信息中确定待解码二维码的编码模式,和从一个或多个子模式指示信息中确定待解码二维码的一个或多个编码子模式;按照一个或多个编码子模式对待解码二维码的编码区域中多个码元中各码元占据的存储位置对应的二进制数值进行解码,得到第一信息。
第一信息可以是由一个编码模式下的多个编码子模式编码成待解码二维码。这样,电子设备逐步细分解码,可以准确地从待解码二维码中解码出第一信息。
在一种可能的实现方式中,一个或多个编码子模式中包括第一编码子模式和第二编码子模式,编码区域包括第一编码区域和第二编码区域;该电子设备还用于执行:按照第一编码子模式对第一编码区域中多个码元中各码元占据的存储位置对应的二进制数值进行解码,按照第二编码子模式对第二编码区域中多个码元中各码元占据的存储位置对应的二进制数值进行解码,得到第一信息。这样,电子设备逐步细分解码,可以准确地从待解码二维码中解码出第一信息。
在一种可能的实现方式中,模式指示信息和一个或多个子模式指示信息为固定位数的二进制字符。
在一种可能的实现方式中,该电子设备还用于执行:在映射关系表中查询模式指示信息对应的编码模式,以及编码模式的编码位数。
在一种可能的实现方式中,该电子设备还用于执行:在映射关系表中查询模式指示信息对应的编码模式,以及一个或多个编码子模式中各子模式指示信息对应的编码子模式。
在一种可能的实现方式中,待解码二维码中包含一个模式指示信息和多个子模式指示信息,第一信息包含数字字符、大写字母字符、小写字母字符、特殊字符、转义字符中的两种字符或多种字符,数字字符、大写字母字符、小写字母字符、特殊字数、转义字符分别对应的编码位数最低的目标编码模式不同。
在一种可能的实现方式中,一个或多个编码子模式各编码子模式对应一种编码索引表;编码索引表包括第一编码索引表、第二编码索引表、第三编码索引表、第四编码索引表、第五编码索引表、第六编码索引表、第七编码索引表、第八编码索引表;第一编码索引表中包含所述数字字符;第二编码索引表中包含数字字符和大写字母字符;第三编码索引表中包含数字字符和小写字母字符;第四编码索引表中包含大写字母字符和特殊字符;第五编码索引表中包含小写字母字符和特殊字符;第六编码索引表中包含数字字符、大写字母字符和特殊字符;第七编码索引表中包含数字字符、小写字母字符和特殊字符;第八编码索引表中包含数字字符、大写字母字符、小写字母字符和特殊字符。
在一种可能的实现方式中,待解码二维码的目标版本包括第一版本、第二版本、第三版本、第四版本、第五版本、第六版本;待解码二维码的目标版本不同,待解码二维码的数据容量不同。
第五方面,本申请提供了一种电子设备,包括:一个或多个处理器、一个或多个存储器;该一个或多个存储与一个或多个处理器耦合;该一个或多个存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令;当该计算机指令在该处理器上运行时,使得该电子设备执行上述第一方面任一种可能的实现方式中的二维码编码方法和上述第二方面任一种可能的实现方式中的二维码解码方法。
第六方面,本申请实施例提供了一种计算机存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行上述任一方面任一项可能的实现方式中的二维码编码方法和上述第二方面任一种可能的实现方式中的二维码解码方法。
第七方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述任一方面任一项可能的实现方式中的二维码编码方法和上述第二方面任一种可能的实现方式中的二维码解码方法。
附图说明
图1是本申请实施例提供的一种QR码示意图;
图2是本申请实施例提供的一组二维码示意图;
图3A-图3F是本申请实施例提供的一组二维码示意图;
图4是本申请实施例提供的二维码编码方法流程示意图;
图5是本申请实施例提供的字符串划分成多个字符段示意图;
图6A是本申请实施例提供的一种字符段的编码结果格式示意图;
图6B是本申请实施例提供的一种字符串的编码结果格式示意图;
图6C是本申请实施例提供的又一种字符段的编码结果格式示意图;
图6D是本申请实施例提供的又一种字符串的编码结果格式示意图;
图7是本申请实施例提供的一种二维码编码方法中将编码结果生成二维码的步骤示意图;
图8A-图8F是本申请实施例提供的一组二维码的结构示意图;
图9是本申请实施例提供的一种二维码解码方法的流程示意图;
图10是本申请实施例提供的电子设备的结构示意图。
具体实施方式
本申请以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括复数表达形式,除非其上下文中明确地有相反指示。还应当理解,本申请中使用的术语“和/或”是指并包含一个或多个所列出项目的任何或所有可能组合。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。术语“中间”、“左”、“右”、“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
本申请实施例涉及一种二维码编码方法的应用,该方法可以应用在电子设备100中。通过该方法,首先,电子设备100可以获取待编码文本,待编码文本可以包含数字、大写字母、小写字母、汉字、日文等等中的一项或多项;然后,电子设备100可以将待编码文本划分为多个字段,然后,电子设备100将多个字段中的每个字段选择位数最低的编码模式进行编码,得到二进制字符串,其中,电子设备中存储有N个编码表,每个编码表对应一种编码模式;最后,电子设备100可以将二进制字符串生成二维码。
下面首先对本申请提供的一种二维码编码方法中涉及的一些概念进行说明。
1、编码模式
在本申请实施例中,电子设备中可以存在多种编码模式,每一种编码模式用于将待编码文本转换为二进制字符。但不同的编码模式采用的转换方法不同。当选择一种编码模式进行编码时,电子设备100将待编码文本中的字符按照该编码模式对应的编码索引表转换为该字符对应的索引值,然后再按照编码模式将索引值转换为二进制字符。
如下表1所示,表1示例性地列举出一些编码模式和编码模式对应的模式指示符。
表1
表1中示出的编码模式和编码模式对应的模式指示符为二维码标准协议中提供的编码模式和模式指示符。可以理解的是,随着二维码标准协议的发展,编码模式可以更多。本申请实施例涉及的编码模式可以不限于表1中提供的编码模式。
其中,在本申请实施例中,混合编码模式Structured_Append可以包括多种编码子模式,每一种编码子模式对应一个编码索引表。混合编码模式Structured_Append的编码子模式可以下表2所示。表2中示例性地示出了混合编码模式的8种子模式,即纯数字编码模式、大写十六进制编码模式、小写十六进制编码模式、数字加大写字母混合编码模式、数字加小写字母混合编码模式、数字加大写字母以及常用字符混合编码模式、数字加小写字母以及常用字符混合编码模式、数字加大小写以及特殊字符和转义字符的混合编码模式。
表2
可以理解的是,表2仅为举例示意,混合编码模式Structured_Append的编码子模式可以不限于表2中示出的8种编码子模式。混合编码模式的编码子模式中还可以包括西班牙语编码模式、葡萄牙语编码模式、或者韩文编码模式或者不同语言文字混合的编码模式等等,此处不作限定。
在本申请实施例中,数字“0”-数字“9”可以称为数字字符,大写英文字母“A”-大写英文字母“Z”可以称为大写字母字符,小写英文字母“a”-小写英文字母“z”可以称为小写字母字符。计算机键盘中除数字以及大小英文字母之外的字符可以称为特殊字符,例如问号?、双引号“”、左括号(、右括号)等等。转义字符是指反斜杠加其他字符,例如“\0”、“\a”等等。
2、编码索引表
编码索引表用于指定字符(char)对应的索引值(value)。本申请实施例中电子设备100可以存储有Base10模式对应的编码索引表、Base16_U模式对应的编码索引表、Base16_L模式对应的编码索引表、Base32_U模式对应的编码索引表、Base32_L模式对应的编码索引表、Base45_U模式对应的编码索引表、Base45_L模式对应的编码索引表、Base128模式对应的编码索引表。
示例性地,Base10模式对应的编码索引表可以如下表3所示。
表3
字符(char) | 索引值(value) | 字符(char) | 索引值(value) |
0 | 0 | 5 | 5 |
1 | 1 | 6 | 6 |
2 | 2 | 7 | 7 |
3 | 3 | 8 | 8 |
4 | 4 | 9 | 9 |
如表3所示,表3示出了纯数字字符的编码索引表。该编码索引表中可以包括数字字符“0”-数字字符“9”、以及数字字符“0”-数字字符“9”分别对应的索引值。例如,当待编码文本中的字符为“0”时,该字符在表3中示出的编码索引表中对应的索引值为“0”。表3中示出的索引值可以是十进制的数值,即,索引值“0”-索引值“9”可以是十进制数值。
可以理解的是,Base10模式对应的编码索引表可以不限于表3示出的编码索引表。Base10模式对应的编码索引表可以随着二维码编码协议的改变而变化。此处对Base10模式对应的编码索引表的具体形式和内容不作限定。
示例性地,Base16_U模式对应的编码索引表可以如下表4所示。
表4
字符(char) | 索引值(value) | 字符(char) | 索引值(value) |
0 | 0 | 8 | 8 |
1 | 1 | 9 | 9 |
2 | 2 | A | 10 |
3 | 3 | B | 11 |
4 | 4 | C | 12 |
5 | 5 | D | 13 |
6 | 6 | E | 14 |
7 | 7 | F | 15 |
如表4所示,表4示出了十六进制编码索引表。该编码索引表中可以包括十六进制字符(数字字符“0”-“9”,和大写字母“A”-“F”)分别对应的索引值。例如,表4中字符“0”对应的索引值为“0”,字符“A”对应的索引值为“10”。表4中示出的索引值可以是十进制的数值。即,表4中的索引值“0”-索引值“15”可以是十进制数值。
可以理解的是,Base16_U模式对应的编码索引表可以不限于表4示出的编码索引表。Base16_U模式对应的编码索引表可以随着二维码编码协议的改变而变化。此处对Base16_U模式对应的编码索引表的具体形式和内容不作限定。
示例性地,Base16_L模式对应的编码索引表可以如下表5所示。
表5
字符(char) | 索引值(value) | 字符(char) | 索引值(value) |
0 | 0 | 8 | 8 |
1 | 1 | 9 | 9 |
2 | 2 | a | 10 |
3 | 3 | b | 11 |
4 | 4 | c | 12 |
5 | 5 | d | 13 |
6 | 6 | e | 14 |
7 | 7 | f | 15 |
如表5所示,表5示出了十六进制编码索引表。该编码索引表中可以包括十六进制字符(数字字符“0”-“9”,和小写字母“a”-小写字母“f”)分别对应的索引值。例如,表5中字符“0”对应的索引值为“0”,字符“a”对应的索引值为“10”。表5中示出的索引值可以是十进制的数值。即,表5中的索引值“0”-索引值“15”可以是十进制数值。
可以理解的是,Base16_L模式对应的编码索引表可以不限于表5示出的编码索引表。Base16_L模式对应的编码索引表可以随着二维码编码协议的改变而变化。此处对Base16_L模式对应的编码索引表的具体形式和内容不作限定。
示例性地,Base32_U模式对应的编码索引表可以如下表6所示。
表6
如表6所示,表6示出了大写字母和特殊字符的编码索引表。该编码索引表中可以包括大写字母“A”-“Z”和特殊字符“SP”、以及大写字母“A”-“Z”分别对应的索引值、特殊字符“SP”对应的索引值。例如,在表6中,大写字符“A”对应的索引值可以是“0”,特殊字符“SP”对应的索引值可以是“26”。表6中示出的索引值可以是十进制的数值。即,表6中的索引值“0”-“31”可以是十进制数值。
可以理解的是,Base32_U模式对应的编码索引表可以不限于表6示出的编码索引表。Base32_U模式对应的编码索引表可以随着二维码编码协议的改变而变化。此处对Base32_U模式对应的编码索引表的具体形式和内容不作限定。
示例性地,Base32_L模式对应的编码索引表可以如下表7所示。
表7
如表7所示,表7示出了小写字母和特殊字符的编码索引表。该编码索引表中可以包括小写字母“a”-“z”和特殊字符“SP”、以及小写字母“a”-“z”分别对应的索引值、特殊字符“SP”对应的索引值。例如,在表7中,小写字母“a”对应的索引值可以是“0”,特殊字符“SP”对应的索引值可以是“26”。表7中示出的索引值可以是十进制的数值。即,表7中的索引值“0”-“31”可以是十进制数值。
可以理解的是,Base32_L模式对应的编码索引表可以不限于表7示出的编码索引表。Base32_L模式对应的编码索引表可以随着二维码编码协议的改变而变化。此处对Base32_L模式对应的编码索引表的具体形式和内容不作限定。
示例性地,Base45_U模式对应的编码索引表可以如下表8所示。
表8
如表8所示,表8示出了数字、大写字母和常用字符的编码索引表。该编码索引表中可以包括数字字符“0”-“9”,以及大写字母“A”-“Z”和特殊字符(例如“?”、“$”、“%”等等)、以及数字字符“0”-“9”分别对应的索引值,大写字母“A”-“Z”分别对应的索引值、常用字符分别对应的索引值。例如,在表8中,数字字符“0”对应的索引值可以是“0”,大写字母“A”对应的索引值可以是“10”,特殊字符“?”对应的索引值可以是“36”。表8中示出的索引值可以是十进制的数值。即,表8中的索引值“0”-“44”可以是十进制数值。
可以理解的是,Base45_U模式对应的编码索引表可以不限于表8示出的编码索引表。Base45_U模式对应的编码索引表可以随着二维码编码协议的改变而变化。此处对Base45_U模式对应的编码索引表的具体形式和内容不作限定。
示例性地,Base45_L模式对应的编码索引表可以如下表9所示。
表9
如表9所示,表9示出了数字、小写字母和特殊字符的编码索引表。该编码索引表中可以包括数字字符“0”-“9”,以及小写字母“a”-“z”和常用字符(例如“?”、“!”、“=”等等)、以及数字字符“0”-“9”分别对应的索引值,小写字母“a”-“z”分别对应的索引值、常用字符分别对应的索引值。例如,在表9中,数字字符“0”对应的索引值可以是“0”,小写字母“a”对应的索引值可以是“10”,常用字符“?”对应的索引值可以是“43”。表9中示出的索引值可以是十进制的数值。即,表9中的索引值“0”-“44”可以是十进制数值。
可以理解的是,Base45_L模式对应的编码索引表可以不限于表9示出的编码索引表。Base45_L模式对应的编码索引表可以随着二维码编码协议的改变而变化。此处对Base45_L模式对应的编码索引表的具体形式和内容不作限定。
示例性地,Base128模式对应的编码索引表可以如下表10所示。
表10
如表10所示,表10示出了数字、小写字母、大写字母和常用字符、转义字符的编码索引表。该编码索引表中可以包括数字字符“0”-“9”,以及小写字母“a”-“z”、大写字母“A”-“Z”和常用字符(例如“?”、“!”、“=”等等)、转义字符,以及数字字符“0”-“9”分别对应的索引值,小写字母“a”-“z”分别对应的索引值、大写字母“A”-“Z”分别对应的索引值,以及常用字符和转义字符分别对应的索引值。例如,在表10中,数字字符“0”对应的索引值可以是“16”,小写字母“a”对应的索引值可以是“65”,常用字符“?”对应的索引值可以是“31”。表10中示出的索引值可以是十进制的数值。即,表10中的索引值“0”-“127”可以是十进制数值。
可以理解的是,Base128模式对应的编码索引表可以不限于表10示出的编码索引表。Base128模式对应的编码索引表可以随着二维码编码协议的改变而变化。此处对Base128模式对应的编码索引表的具体形式和内容不作限定。
可以理解的是,本申请实施例中电子设备100存储的编码索引表可以不限于上述表3-表10示出的编码索引表。电子设备100可以存储更多的编码索引表,此处不作限定。
本申请实施例涉及的混合编码模式Structured_Append的编码子模式(例如,Base10模式、Base16_U模式、Base16_L模式、Base32_U模式、Base32_L模式、Base45_U模式、Base45_L模式、Base128模式)分别对应的编码二进制位和模式指示符可以如下表11所示。
表11
如表11所示,表11中示例性地示出了Base10模式、Base16_U模式、Base16_L模式、Base32_U模式、Base32_L模式、Base45_U模式、Base45_L模式、Base128模式等分别对应的二进制位和模式指示符。可以理解的是,表11中示出的编码子模式、以及该编码子模式对应的二进制位和模式指示符仅为举例说明,本申请实施例对编码子模式的个数,以及每个编码子模式对应的二进制位和模式指示符不作限定。
可以理解的是,本申请实施例中的编码索引表可以更多,不限于上述表3-表10示出的编码索引表。
电子设备100可以选择上述任一种编码模式将待编码文本编码成二进制字符串,然后电子设备100可以根据将该二进制字符串生成对应与该二进制字符串的位数相对应版本的二维码。本申请实施例涉及的二维码可以包括不同类型的二维码、以及同一类型但不同版本的二维码。例如,图1示出的QR(Quick Response,快速反应)码、图2中的(a)图、(b)图、(c)图示出的二维码,图3A-图3F示出的圆形二维码。可以理解的是,不同类型的二维码、同一类型不同版本的二维码可以存储的数据容量一般是不相同。二维码可以存储的数据容量越大,该二维码可以存储的二进制字符串的长度越长。
图2中的(a)图、(b)图、(c)图示出的小程序为相同类型的二维码,但是版本不同,可以存储的数据容量也不相同。
图3A-图3F中示出的圆形二维码的类型相同,但类型版本不同。图3A示出了版本一的圆形二维码,图3B示出了版本二的圆形二维码,图3C示出了版本三的圆形二维码,图3D示出了版本四的圆形二维码,图3E示出了版本五的圆形二维码,图3F示出了版本六的圆形二维码。图3A-图3F示出的圆形二维码在本申请实施例中可以称为鸿蒙二维码。可以理解的是,本申请实施例对图3A-图3F示出的二维码的名称不作限定。
可以理解的是,图1、图2以及图3A-图3F中示出的二维码仅为举例说明,本申请实施例涉及的二维码的类型以及某一类型的二维码的版本可以更多,不限于图1、图2以图3A-图3F中示出的二维码。下文以图3A-图3F中示出的二维码为例进行阐述。
示例性地,图3A-图3F中示出的不同版本的二维码的数据容量可以如下表12所示。
表12
版本 | 二进制位(bits) | 有效字节数(bytes) |
版本一 | 249 | 19 |
版本二 | 408 | 34 |
版本三 | 624 | 55 |
版本四 | 872 | 80 |
版本五 | 1152 | 108 |
版本六 | 1464 | 136 |
如表12所示,图3A中示出的版本一的二维码的数据容量为249bits,可以存储19个有效字节。图3B中示出的版本二的二维码的数据容量为408bits,可以存储34个有效字节。图3C中示出的版本三的二维码的数据容量为624bits,可以存储55个有效字节。图3D中示出的版本四的二维码的数据容量为872bits,可以存储80个有效字节。图3E中示出的版本五的二维码的数据容量为1152bits,可以存储108个有效字节。图3F中示出的版本六的二维码的数据容量为1464bits可以存储136个有效字节。
基于上文对本申请实施例涉及的基础概念的解释,下面介绍本申请实施例提供的一种二维码编码方法。如图4所示,图4示出了本申请实施例提供的一种二维码编码方法流程,该二维码编码方法可以包括如下步骤:
S101、电子设备100获取待编码文本,待编码文本可以包含N个字符。
电子设备100可以获取到待编码文本,该待编码文本的N个字符可以是数字字符、英文大写字母、英文小写字母、汉字、日文、韩文、通用字符、特殊字符、转义字符等等中的一项或多项。具体地,该待编码文本可以是一串数字、一段文字(中文、英文、日文、韩文等等)、一个链接等等,例如“12345678”、“ABCD”、“abcdef”、“一种二维码编码方法”、“https://zh.wikipedia.org/wiki/%E4%BD%8D%E5%85%83”等等。
电子设备100获取的待编码文本可以是用户在电子设备100中输入的,也可以是电子设备100基于用户输入的信息生成的,或者电子设备100从其他电子设备获取的等等,此处不作限定。
S102、电子设备100从X个可选编码模式中确定出N个字符中每个字符的一个或多个候选编码模式,从一个或多个候选编码模式中选择编码位数最低的候选编码模式作为每个字符的目标编码模式,X为正数。
电子设备100中存储有X种编码模式,每一种编码模式有对应的编码位数。例如,表11中示出的Base10模式、Base16_U模式、Base16_L模式、Base32_U模式、Base32_L模式、Base45_U模式、Base45_L模式、Base128模式等八种编码模式,以及每个编码模式对应的编码位数(即表中的bits数,又称二进制位数)。
在本申请实施例中X为正数,X可以等于8,也可以等于10,此处不作限定。下文以X等于8为例进行阐述。即,下文以电子设备100中配置有如表11示出的8种编码模式为例进行阐述。
电子设备100中配置的编码模式可以称为可选编码模式。电子设备100可以从X种编码模式中确定待编码文本中每个字符对应的一个或多个候选编码模式。当编码模式A对应的编码索引表中包括字符A时,编码模式A可以称为字符A的候选编码模式。举例来说,对于字符“0”,Base10模式、Base16_U模式、Base16_L模式、Base32_U模式、Base32_L模式、Base45_U模式、Base45_L模式、Base128模式等编码模式对应的编码索引表中均包含字符“0”,那么Base10模式、Base16_U模式、Base16_L模式、Base32_U模式、Base32_L模式、Base45_U模式、Base45_L模式、Base128模式都可以称为字符“0”的候选编码模式。
从表11中可知,Base10模式的编码位数为3。Base16_U模式的编码位数为4。Base16_L模式的编码位数为4。Base32_U模式的编码位数为5。Base32_L模式的编码位数是5。Base45_U模式的编码位数是6。Base45_L模式的编码位数是6。Base128模式的编码位数是7。Base10模式的编码位数最低,因此,电子设备100可以在字符“0”的候选模式中选择Base10模式作为字符“0”的目标编码模式。
待编码文本的N个字符中每个字符目标编码模式可以相同,也可以不相同。例如,如N个字符为“0124FEAabcd”(此时,N等于11)。参考上文中电子设备100确定出字符“0”的目标编码模式的描述,电子设备100可以确定出字符“0”的目标编码模式为Base10模式,字符“1”的目标编码模式为Base10模式,字符“2”的目标编码模式为Base10模式,字符“4”的目标编码模式为Base10模式,字符“F”的目标编码模式为Base16_U模式,字符“E”的目标编码模式为Base16_U模式,字符“A”的目标编码模式为Base16_U模式,字符“a”的目标编码模式为Base16_L模式,字符“b”的目标编码模式为Base16_L模式,字符“c”的目标编码模式为Base16_L模式,字符“d”的目标编码模式为Base16_L模式。
可以理解的是,N为大于1的整数,本申请实施例对N的具体取值不作限定。例如,N可以等于1,N也可以等于11。
S103、电子设备100根据N个字符中每个字符的目标编码模式将N个字符分成M个字符段,并确定出M个字符段的目标编码模式,M个字符段中每个字符段包含一个或多个字符。
电子设备100可以根据N个字符中每个字符的目标编码模式将N个字符分成M个字符段。M个字符段中每个字符段包含一个或多个字符。M可以小于或等于N。电子设备100还可以根据字符段中每个字符的目标编码模式确定出字符段的目标编码模式。
电子设备100可以在系统将M配置成与N相等。电子设备100也可以将M配置为小于N。
电子设备100可以按照多种方式将N个字符段分成M个字符段。下文以电子设备100将上文中的N个字符“0124FEAabcd”进行分段为例,来具体阐述电子设备如何根据N个字符中每个字符的目标编码模式将N个字符分成M个字符段,并确定出M个字符段的目标编码模式。
可选地,在一种可能的实现方式中,电子设备100可以将11个字符组成的字符串“0124FEAabcd”分成11个字符段,即每个字符段中包含一个字符。每个字符段的目标编码模式即为字符段中包含的一个字符的目标编码模式。字符串“0124FEAabcd”中每个字符的目标编码模式以及字符段的编码模式可以如下表13所示。
表13
如表13所示,电子设备100可以将字符串“0124FEAabcd”分成11个字符段,即字符段“0”、字符段“1”、字符段“2”、字符段“4”、字符段“F”、字符段“E”、字符段“A”、字符段“a”、字符段“b”、字符段“c”、字符段“d”。字符段“0”的目标编码模式为Base10模式。字符段“1”的目标编码模式为Base10模式。字符段“2”的目标编码模式为Base10模式。字符段“4”的目标编码模式为Base10模式。字符段“F”的目标编码模式为Base16_U模式。字符段“E”的目标编码模式为Base16_U模式。字符段“A”的目标编码模式为Base16_U模式。字符段“a”的目标编码模式为Base16_L模式。字符段“b”的目标编码模式为Base16_L模式。字符段“c”的目标编码模式为Base16_L模式。字符段“d”的目标编码模式为Base16_L模式。
可选地,在一种可能的实现方式中,电子设备100可以将N个字符中连续相邻且目标编码模式相同的字符分成一个字符段,最终得到M个字符段。例如,字符串“0124FEAabcd”中,字符“0”、字符“1”、字符“2”、字符“4”这几个字符连续相邻(即字符“0”与字符“1”相邻,字符“1”与字符“2”相邻,字符“2”与字符“4”相邻),且目标编码模式相同。电子设备100可以字符“0”、字符“1”、字符“2”、字符“4”划分成一个字符段“0124”。字符段“0124”的目标编码模式为字符“0”、字符“1”、字符“2”、字符“4”的目标编码模式,即Base10模式。字符串“0124FEAabcd”中每个字符的目标编码模式以及字符段的编码模式可以如下表14所示。
表14
如表13所示,电子设备100可以将字符串“0124FEAabcd”分成3个字符段,即字符段“0124”、字符段“FEA”、字符段“abcd”。字符段“0124”中包含4个字符,该4个字符的目标编码模式均为Base10模式,因此字符段“0124”的目标编码模式也可以是Base10模式。字符段“FEA”中包含3个字符,该3个字符的目标编码模式均为Base16_U模式,因此字符段“FEA”的目标编码模式也可以是Base16_U模式。字符段“abcd”中包含4个字符,该4个字符的目标编码模式均为Base16_L模式,因此,字符段“abcd”的目标编码模式也可以是Base16_L模式。
可选地,在一种可能的实现方式中,电子设备100可以将N个字符划分为M个字符段,M个字符段中每个字符段的字符数大于或等于预设数量。
进一步地,电子设备100可以按照N个字符的字符排列顺序依次划分字符段,电子设备100可以将N个字符中连续相邻,且目标编码模式相同的字符的数量大于或等于预设数量分成一个字符段;电子设备100可以将连续相邻,但目标编码模式不同的等于或大于预设数量的字符分成一个字符段。举例来说,如预设数量为4,电子设备100对字符串“0124FEAabcd”划分字符段的结果可以如下表15所示。
表15
如表15所示,字符串“0124FEAabcd”中字符“0”、字符“1”、字符“2”、字符“4”连续相邻,目标编码模式相同,电子设备100可以将字符“0”、字符“1”、字符“2”、字符“4”划分为一个字符段“0124”。字符串“0124FEAabcd”中字符“F”、字符“E”、字符“A”连续相邻,且编码模式不同,但是字符“F”、字符“E”、字符“A”共三个字符不满足预设数量,因此电子设备100可以将字符“A”后的字符“a”、字符“b”、字符“c”、字符“d”与字符“F”、字符“E”、字符“A”一起划分为一个字符段“FEAabcd”。字符“F”、字符“E”、字符“A”的目标编码模式为Base16_U模式,字符“a”、字符“b”、字符“c”、字符“d”的目标编码模式为Base16_L模式。字符段“FEAabcd”的目标编码模式可以是Base128模式,Base128模式需要既可以对英文大写字母编码,又可以对英文小写字母编码。
可选地,电子设备100可以将字符串“0124FEAabcd”分成字符段“0124”、字符段“FEAa”、字符段“bcd”,字符段“0124”的目标编码模式为Base10模式。字符段“FEAa”的目标编码模式为Base128模式。可选地,在一种可能的实现方式中,电子设备从N个字符的第1个字符开始计数,当字符数量大于或等于预设数量,第u个字符的目标编码模式与第(u-1)个字符的目标编码模式不相同时,电子设备100将第1个字符至第(u-1)个字符划分成一个字符段。然后,电子设备100再次从第u个字符开始计数,当字符数量大于或等于预设数量,第v个字符的目标编码模式与第(v-1)个字符的目标编码模式不相同时,电子设备100将第u个字符与第(v-1)个字符划分为字符段。依次地,电子设备100将N个字符划分为M个字符段。
进一步地,在一种可能的实现方式中,电子设备可以采用两个指针分别用于计数和标识字符串中不同的目标编码模式。例如,图5中示出的字符串“10ABCD1234aaaa”,以及指针i与指针j。指针i用于计数,指针j是一个位置指针,用于识别新的目标编码模式。以预设数量等于4为例,如图5所示,首先,指针j在j1位置,即第一个字符“1”处,指针i从字符串“10ABCD1234aaaa”的第一个字符“1”开始计数。当指针j在j2位置,即第7个字符“1”处,第7个字符“1”与第6个字符“D”的目标编码模式不同,电子设备100将前六个字符分为一个字符段,即字符段“10ABCD”。指针i从第7个字符“1”处再次开始计数,在j=j3处,电子设备100识别出第十三个字符“a”的目标编码模式与第十二个字符“4”的目标编码模式不同,电子设备100将第7个字符至第11个字符,共4个字符分成一个字符段,即字符段“1234”,电子设备100将剩下的4个字符,即连续相邻的四个字符“a”分成一个字符段“aaaa”。
可以理解的是,当电子设备100按照上述步骤将N个字符的划分为M-1个字符段后,若剩下的字符数量小于预设数量,电子设备100也可以将小于预设数量的字符划分为第M个字符段。即M个字符段中最后得到的一个字符段中的字符数量可以小于预设数量。
可以理解的是,预设数量可以由电子设备100的系统配置,预设数量的经验值为4。但本申请实施例对预设数量的具体取值不作限定,预设数量可以是4,也可以是5,还可以是其他数值。
S104、电子设备100按照M个字符段的目标编码对M个字符段进行编码,得到二进制字符串S。
当电子设备100将N个字符划分成M个字符段,并确定M个字符段的目标编码模式后,电子设备100可以按照M个字符段中每个字符段的目标编码模式分别对每个字符段进行编码,最后得到二进制字符串S。
在一种可能的实现方式中,字符段安装该字符段的目标编码模式进行编码后的二进制字符串的格式可以如图6A所示。字符段编码得到的二进制字符串600中可以包括模式指示符60a,数据长度60b,数据60c。模式指示符60a用于标识该二进制字符串600的编码模式。数据长度60b用于指示该二进制字符串600的中数据60c的长度。数据60c是原字符段中字符按照目标模式编码得到的二进制字符数据。下面以上表14中示出的字符段“0124”进行举例说明。字符段“0124”按照目标编码模式,即Base10模式编码进行编码得到二进制字符串S1如下表16所示。
表16
如表16所示,字符段“0124”的目标编码模式为Base10模式,字符段“0124”中的“0124”按照Base10模式编码得到的结果为“000001010100”,加上模式指示符和长度后,最终字符段“0124”的编码结果为二进制字符串S1“001100000001010100”。其中,字符“0”对应Base10模式的编码索引表中的十进制数值“0”,由于Base10模式的编码位数为3,十进制数值“0”可以转换为三位的二进制字符“000”。因此,字符“0”按照Base10模式编码可以编码成二进制字符“000”。同样地,字符“1”按照Base10模式编码可以编码成二进制字符“001”。字符“2”按照Base10模式编码可以编码成二进制字符“010”。字符“4”按照Base10模式编码可以编码成二进制字符“100”。
进一步地,待编码文本中的N个字符的编码结果二进制字符串S的格式可以如图6B所示。如图6B所示,二进制字符串60可以由多个字符段的编码结果(例如二进制字符串60(包括模式指示符、长度、数据)、以及二进制字符串601(包括模式指示符、长度、数据)、二进制字符串602(包括模式指示符、长度、数据)等等)组成。下面以表14中示出的N个字符“0124FEAabcd”、以及N个字符“0124FEAabcd”的分段结果进行举例说明。N个字符“0124FEAabcd”的编码结果,即二进制字符串S可以如下表17所示。
表17
如表17所示,N个字符“0124FEAabcd”可以划分为字符段“0124”、字符段“FEA”、以及字符段“abcd”。字符段“0124”按照目标模式,即Base10模式编码后可以得到二进制字符串S1“001100000001010100”。字符段“FEA”按照目标模式,即Base16_U模式编码后可以得到二进制字符串S2“010011111111101010”。字符段“abcd”按照目标编码模式,即Base16_L模式编码后可以得到二进制字符串S3“001100101010111101”。N个字符“0124FEAabcd”的编码结果,即二进制字符串S。二进制字符串S可以由二进制字符串S1、二进制字符串S2以及二进制字符串S3组成。因此,二进制字符串S可以为“001100000001010100010011111111101010001100101010111101”。其中,字符段“0124”、字符段“FEA”、以及字符段“abcd”中每个字符的编码结果可以参考表16中对字符段“0124”中字符“0”的编码结果的描述,此处不再赘述。
可以理解的是,由于Base10模式、Base16_U模式、Base16_L模式码为Structured_Append混合编码模式的子模式,最后编码得到的二进制字符串S前可以加上Structured_Append混合编码模式的模式指示符“0011”。可选地,在Structured_Append混合编码模式的模式指示符“0011”后还可以加上字符串的总长度(共11个字符)指示“1011”。因此,最终的二进制字符串S可以是“00111011001100000001010100010011111111101010001100101010111101”。
可选地,当M个字符段中的字符数量固定时,该字符段的编码结果的格式也可以是如图6C示出的编码格式。与图6A示出的编码格式相比,图6C中可以不包含数据长度。例如,表13中示出的字符段,每个字符段中只包含一个字符,这个,该字符段的编码结果,即编码后得到的二进制字符串的格式可以是图6C中示出的格式。表13中示出的字符串的编码结果的格式可以如图6D所示。图6D中的字符串70可以由多个字符段编码得到的字符串组成(例如字符串700(包括模式指示符和数据)、字符串701(包括模式指示符和数据)、字符串702(包括模式指示符和数据)等等)此处可以参考上文中对图6A和图6B的描述,此处不再赘述。
可以理解的是,本申请实施例的二进制字符串的格式不限于图6B和图6D示出的格式。二进制字符串的格式可以有更多形式,例如,该二进制字符串的格式可以是模式指示符之前,数据在后,即“模式指示符1模式指示符2模式指示符3数据1数据2数据3”之类的格式,模式指示符1为数据1的编码模式指示,模式指示符2为数据2的编码模式指示,模式指示符3为数据3的编码模式指示,此处不作限定。
可以理解的是,N个字符的划分结果不同,最终编码得到的二进制字符串S可以不相同。例如,N个字符“0124FEAabcd”按照表13示出的划分得到的字符段进行编码,得到的编码结果与按照表14示出的字符段的编码结果可以不同。
可以理解的是,上述表16和表17中的字符长度的编码位数为3仅为举例说明,当字符段和字符串的字符长度越长时,字符长度的编码位数越高。编码位数为3时,最多可以表示7个字符的字符段或字符串。编码为4时,最多可以表示15个字符的字符段或字符串。本申请实施例中的字符长度的编码位数可以设定为固定值。即,每个字符段的字符长度可以按照设定的编码位数进行编码。本申请实施例对字符长度的编码位数不作限定,例如可以是表16和表17示出的3,可以是4,也可以是8,也可以更高,等等。
S105、电子设备100根据二进制字符串S的长度生成对应版本的目标二维码。
由于不同版本的二维码的数据容量不同,电子设备100需要根据二进制字符串S的长度生成对应版本的二维码。与二进制字符串S的长度对应版本的目标二维码,是指该版本的目标二维码的数据容量大于或等于该二进制字符串S的长度。
可选地,电子设备可以对二进制字符串S进行加密和压缩,得到二进制字符串S’,电子设备可以根据二进制字符串S’的长度生成对应版本的二维码。这样,可以提高字符串的安全性,并提高字符串的存储空间。
在一种可能的实现方式中,如图7所示,电子设备100根据二进制字符串S的长度生成对应版本的二维码,具体可以包括如下步骤:
S1051、电子设备100可以根据二进制字符串的长度确定目标二维码的目标版本。
不同的版本提供了不同的存储数据量。二进制字符串越长,则存储需要的数据量就越大。电子设备100根据二进制字符串的长度确定待生成二维码的目标版本。
下面以图3A-图3F中示出的二维码的六种版本为例进行阐述说明,并简要的介绍图3A-图3F中二维码的六种版本。需要说明的是,以下对二维码的六种版本中的圆点形码元进行描述时,这里的圆点形码元均为一个存储位置,并不能等同于生成的二维码中的码元。
版本一,二维码的编码区域中包括4个同心圆区域。
如图8A所示,图8A中的二维码的图像区域401指示了该二维码的品牌类型(鸿蒙系统,harmony OS),可以看出在图8A中,该图像区域401为圆形。
以图像区域401的中心点为圆心,编码区域402包括4个同心圆区域,每个同心圆区域中均匀排列着圆点形码元,每个同心圆区域中两个相邻圆点形码元的圆心之间的距离(也可以是每两个相邻圆点形码元的圆心构成的圆弧长度)相同。每个圆点形码元都能够存储信息,每个圆点形码元存储的信息可以指示在颜色形式上,若一个圆点形码元上存储了第一信息(例如可以为二进制的1),则将该圆点形码元置为第一颜色(例如黑色),若一个圆点形码元上存储了第二信息(例如可以为二进制的0),则将该圆点形码元置为第二颜色(例如白色,例如透明色)或者不上色。
图像区域401和编码区域402之间存在第一间隔,编码区域402中每两个相邻同心圆区域之间存在第二间隔,其中,每个同心圆区域都由一个内圆环和一个外圆环组成,同心圆区域的宽度为内圆环和外圆环的半径之差,该第二间隔为相邻两个同心圆区域中,小同心圆区域的外圆环和大同心圆区域的内圆环之间的间隔;每个同心圆区域中两个相邻圆点形码元之间存在第三间隔。例如在图8A中,若一个圆点形码元的直径为1,则图像区域401的半径为10,图像区域401和编码区域402之间的间隔为1,即第一间隔为1或者为一个圆点形码元的直径;编码区域402中每个同心圆区域的宽度都为1,即一个圆点形码元的直径;编码区域402中每两个相邻同心圆区域之间的间隔为1,即第二间隔为1或者为一个圆点形码元的直径;每个同心圆区域中两个相邻圆点形码元之间的间隔可以为0,可以为一段圆心角相同的圆弧,即第三间隔可以为0,可以为一段圆心角相同的圆弧。
在一些实施例中,该4个同心圆区域均分为上半区域和下半区域,上半区域和下半区域之间存在第四间隔,例如在图8A中,若一个圆点形码元的直径为1,上半区域和下半区域之间的间隔为5。
定位符区域在二维码之中,例如在图8A中包括三个主定位符403和一个辅助定位符404,三个主定位符403和一个辅助定位符404的外轮廓均为圆形,主定位符403的圆心均在外围倒数第二个同心圆区域中,一个圆点形码元的直径为1,则三个主定位符403的直径为5。
版本二,二维码的编码区域中包括5个同心圆区域。
如图8B所示,图8B中的二维码的图像区域411指示了该二维码的品牌类型(鸿蒙系统,harmony OS)。以图像区域411的中心点为圆心,编码区域412包括5个同心圆区域,每个同心圆区域中均匀排列着圆点形码元,每个同心圆区域中两个相邻圆点形码元的圆心之间的距离(也可以是每两个相邻圆点形码元的圆心构成的圆弧长度)相同。
图像区域411和编码区域412之间存在第一间隔,编码区域412中每两个相邻同心圆区域之间存在第二间隔,每个同心圆区域中两个相邻圆点形码元之间存在第三间隔。例如在图8B中,若一个圆点形码元的直径为1,则图像区域411的半径为10,图像区域411和编码区域412之间的间隔为2,即第一间隔为2或者为两个圆点形码元的直径;编码区域412中每两个相邻同心圆区域之间的间隔为1,即第二间隔为1或者为一个圆点形码元的直径;每个同心圆区域中两个相邻圆点形码元之间的间隔可以为0,可以为一段圆心角相同的圆弧,即第三间隔可以为0,可以为一段圆心角相同的圆弧。
在一些实施例中,该4个同心圆区域均分为上半区域和下半区域,上半区域和下半区域之间存在第四间隔,例如在图8B中,若一个圆点形码元的直径为1,上半区域和下半区域之间的间隔为5。
定位符区域在二维码之中,例如在图8B中包括三个主定位符413和一个辅助定位符414,三个主定位符413和一个辅助定位符414的外轮廓均为圆形,主定位符413的圆心均在外围倒数第二个同心圆区域中,一个圆点形码元的直径为1,则三个主定位符413的直径为5。
版本三,二维码的编码区域中包括8个同心圆区域。
如图8C所示,图8C中的二维码的图像区域421指示了该二维码的品牌类型(鸿蒙系统,harmony OS)。以图像区域421的中心点为圆心,编码区域422包括8个同心圆区域,每个同心圆区域中均匀排列着圆点形码元,每个同心圆区域中两个相邻圆点形码元的圆心之间的距离(也可以是每两个相邻圆点形码元的圆心构成的圆弧长度)相同。
图像区域421和编码区域422之间存在第一间隔,编码区域422中每两个相邻同心圆区域之间存在第二间隔,每个同心圆区域中两个相邻圆点形码元之间存在第三间隔。例如在图8C中,若一个圆点形码元的直径为1,则图像区域421的半径为10,图像区域421和编码区域422之间的间隔为2,即第一间隔为2或者为两个圆点形码元的直径;编码区域422中每两个相邻同心圆区域之间的间隔小于1,即第二间隔可以在0和1之间;每个同心圆区域中两个相邻圆点形码元之间的间隔可以为0,可以为一段圆心角相同的圆弧,即第三间隔可以为0,可以为一段圆心角相同的圆弧。
在一些实施例中,该8个同心圆区域均分为上半区域和下半区域,上半区域和下半区域之间存在第四间隔,例如在图8C中,若一个圆点形码元的直径为1,上半区域和下半区域之间的间隔为5。
定位符区域在二维码之中,例如在图8C中包括三个主定位符423和一个辅助定位符424,三个主定位符423和一个辅助定位符424的外轮廓均为圆形,主定位符423的圆心均在外围倒数第二个同心圆区域中,一个圆点形码元的直径为1,则三个主定位符423的直径为5。
版本四,二维码的编码区域中包括10个同心圆区域。
如图8D所示,图8D中的二维码的图像区域431指示了该二维码的品牌类型(鸿蒙系统,harmony OS)。以图像区域431的中心点为圆心,编码区域432包括10个同心圆区域,每个同心圆区域中均匀排列着圆点形码元,每个同心圆区域中两个相邻圆点形码元的圆心之间的距离(也可以是每两个相邻圆点形码元的圆心构成的圆弧长度)相同。
图像区域431和编码区域432之间存在第一间隔,编码区域432中每两个相邻同心圆区域之间存在第二间隔,每个同心圆区域中两个相邻圆点形码元之间存在第三间隔。例如在图8D中,若一个圆点形码元的直径为1,则图像区域431的半径为10,图像区域431和编码区域432之间的间隔为2,即第一间隔为2或者为两个圆点形码元的直径;编码区域432中每两个相邻同心圆区域之间的间隔小于1,即第二间隔可以在0和1之间;每个同心圆区域中两个相邻圆点形码元之间的间隔可以为0,可以为一段圆心角相同的圆弧,即第三间隔可以为0,可以为一段圆心角相同的圆弧。
在一些实施例中,该4个同心圆区域均分为上半区域和下半区域,上半区域和下半区域之间存在第四间隔,例如在图8D中,若一个圆点形码元的直径为1,上半区域和下半区域之间的间隔为5。
定位符区域在二维码之中,例如在图8D中包括三个主定位符433和一个辅助定位符434,三个主定位符433和一个辅助定位符434的外轮廓均为圆形,主定位符433的圆心均在外围倒数第二个同心圆区域中,一个圆点形码元的直径为1,则三个主定位符433的直径为5。
版本五,二维码的编码区域中包括11个同心圆区域。
如图8E所示,图8E中的二维码的图像区域441指示了该二维码的品牌类型(鸿蒙系统,harmony OS)。以图像区域441的中心点为圆心,编码区域442包括11个同心圆区域,每个同心圆区域中均匀排列着圆点形码元,每个同心圆区域中两个相邻圆点形码元的圆心之间的距离(也可以是每两个相邻圆点形码元的圆心构成的圆弧长度)相同。
图像区域441和编码区域442之间存在第一间隔,编码区域442中每两个相邻同心圆区域之间存在第二间隔,每个同心圆区域中两个相邻圆点形码元之间存在第三间隔。例如在图8E中,若一个圆点形码元的直径为1,则图像区域441的半径为10,图像区域441和编码区域442之间的间隔为1,即第一间隔为1或者为一个圆点形码元的直径;编码区域442中每两个相邻同心圆区域之间的间隔小于1,即第二间隔可以在0和1之间;每个同心圆区域中两个相邻圆点形码元之间的间隔可以为0,可以为一段圆心角相同的圆弧,即第三间隔可以为0,可以为一段圆心角相同的圆弧。
在一些实施例中,该11个同心圆区域均分为上半区域和下半区域,上半区域和下半区域之间存在第四间隔,例如在图8E中,若一个圆点形码元的直径为1,上半区域和下半区域之间的间隔为5。
定位符区域在二维码之中,例如在图8E中包括三个主定位符443和一个辅助定位符444,三个主定位符443和一个辅助定位符444的外轮廓均为圆形,主定位符443的圆心均在外围倒数第二个同心圆区域中,一个圆点形码元的直径为1,则三个主定位符443的直径为5。
版本六,二维码的编码区域中包括13个同心圆区域。
如图8F所示,图8F中的二维码的图像区域451指示了该二维码的品牌类型(鸿蒙系统,harmony OS)。以图像区域451的中心点为圆心,编码区域452包括13个同心圆区域,每个同心圆区域中均匀排列着圆点形码元,每个同心圆区域中两个相邻圆点形码元的圆心之间的距离(也可以是每两个相邻圆点形码元的圆心构成的圆弧长度)相同。
图像区域451和编码区域452之间存在第一间隔,编码区域452中每两个相邻同心圆区域之间存在第二间隔,每个同心圆区域中两个相邻圆点形码元之间存在第三间隔。例如在图8F中,若一个圆点形码元的直径为1,则图像区域451的半径为13,图像区域451和编码区域452之间的间隔为3,即第一间隔为3或者为三个圆点形码元的直径;编码区域452中每两个相邻同心圆区域之间的间隔小于1,即第二间隔可以在0和1之间;每个同心圆区域中两个相邻圆点形码元之间的间隔可以为0,可以为一段圆心角相同的圆弧,即第三间隔可以为0,可以为一段圆心角相同的圆弧。
在一些实施例中,该4个同心圆区域均分为上半区域和下半区域,上半区域和下半区域之间存在第四间隔,例如在图8F中,若一个圆点形码元的直径为1,上半区域和下半区域之间的间隔为7。
定位符区域在二维码之中,例如在图8F中包括三个主定位符453和一个辅助定位符454,三个主定位符453和一个辅助定位符454的外轮廓均为圆形,主定位符453的圆心均在外围倒数第二个同心圆区域中,一个圆点形码元的直径为1,则三个主定位符453的直径为5。
可以理解的,同心圆区域的数量越多、圆点形码元的数量越多,则该版本的存储数据量越大。不限于上述六个版本,二维码的同心圆区域的数量和每个同心圆区域中圆点形码元数量可以有其他的配置,本申请对此不作限制。
S1052、电子设备100可以根据目标二维码的目标版本中的图像区域、编码区域、定位符的位置,将二进制字符串S分配到编码区域中的各个同心圆区域,得到二维码信息。
电子设备100根据待生成二维码的目标版本的结构中图像区域、编码区域、定位符的位置,将二进制字符串进行分环处理,将二进制字符串分配到编码区域中的各个同心圆区域的圆点形码元中,得到二维码信息。
具体的,可以根据二维码结构中编码区域中的同心圆区域的数量,以及每个同心圆区域的信息容量(与圆点形码元的数量正相关),将二进制字符串拆分为与各个同心圆区域对应的子字符串,将每个子字符串分配给对应的同心圆区域中的圆点形码元存储。
其中,二维码信息包括每个圆点形码元对应存储的信息,例如处于第一位置的圆点形码元存储第一信息,处于第二位置的圆点形码元存储第二信息,其中第一位置和第二位置指示了圆点形码元的圆心坐标和半径信息。示例性的,第一信息可以为二进制字符串中的1,第二信息可以为二进制字符串中的0。
在一些实施例中,二维码信息还可以包括每个圆点形码元对应的显示形式,例如将存储第一信息的圆点形码元对应置为第一颜色,将存储第二信息的圆点形码元对应置为第二颜色。示例性的,第一颜色可以为黑色,第二颜色可以为白色、或者透明色、或者不上色。
在一些实施例中,电子设备100将一个同心圆区域对应的子字符串进一步地拆分为两个子字符串,这两个子字符串分别由该同心圆区域的上半区域和下半区域对应存储;还可以将一个同心圆区域对应的子字符串进一步地拆分为四个子字符串,这四个子字符串分别由该同心圆区域的四个象限内的区域对应存储。
电子设备100将二进制字符串填充到目标版本的二维码的同心圆区域中的圆点形码元中,填充的方向可以是先填充最内部的同心圆区域,然后慢慢向外部的同心圆区域填充;也可以是先填充最外部的同心圆区域,然后慢慢向内部的同心圆区域填充;也可以是从左到右、从上到下等方向,本申请实施例对此不作限制。
如果遇到预留区域(例如预留格式信息的区域,预留版本信息的区域)和功能模块区域(例如定位符区域、校准模块区域、时间模块区域)时,不对该处码元进行填充,一直到下一个闲置码元才继续进行填充。
S1053、电子设备100选择目标二维码的掩码模式,添加掩码信息。
掩码是指根据特定规则将二维码的编码区域内的码元的值改变的一种策略。采用掩码的目的是调整二维码内码元的展示效果(例如避免二维码内大面积空白或黑块,影响扫码识别),方便读码器尽可能更容易地读取信息。
掩码模式包括例如二维码中所有偶数同心圆区域被掩码处理;又例如,二维码中每个同心圆区域中的部分圆点形码元被掩码处理。电子设备100使用掩码模式对二维码信息进行掩码叠加处理,以调整二维码信息的布局,使得二维码信息中码元的分布更加均匀,从而使得生成的二维码更加美观。
具体的,使用掩码对二维码信息进行掩码叠加处理,可以通过将二维码信息的二进制字符串与掩码进行异或运算实现。
在一些实施例中,电子设备100将增加了掩码信息的二维码信息填充到编码区域,电子设备100验证该目标版本是否满足待生成二维码的容量要求,若满足,添加版本信息。
S1054、电子设备生成目标二维码。
本申请实施例中,电子设备100可以采用不可用区域空置的方式进行二维码的编码区域的编码,在完成二维码编码区域的编码得到二维码信息之后,电子设备100基于二维码信息,通过绘制算法将编码区域中的存储第一信息的圆点形码元绘制为第一颜色,将存储第二信息的圆点形码元绘制为第二颜色,完成编码区域的绘制。并且电子设备100将目标版本中对应的图像区域、定位符区域等区域进行填充,即可得到完整的二维码图片。其中,不可用区域包括二维码的目标版本中的图像区域、定位符区域,以及编码区域中的空白区域(如图8A中上半区域和下半区域之间的间隔为5的空白区域),等等。
在一些实施例中,电子设备100将满足预设条件的圆点形码元连接并绘制成圆弧形码元,其中预设条件包括,若在一个同心圆区域中存在连续两个以上的相邻圆点形码元均存储了第一信息,将该两个以上的相邻圆点形码元连接并绘制成一个圆弧形码元,该圆弧形码元绘制为第一颜色。可选的,该圆弧形码元中连接圆点形码元的部分也填充为第一颜色,可以增强二维码的美观性。同理若在一个同心圆区域中存在连续两个以上的相邻圆点形码元均存储了第二信息,将该两个以上的相邻圆点形码元连接并绘制成一个圆弧形码元,该圆弧形码元绘制为第二颜色。
下面对分别对上述六个版本的二维码,生成的二维码图像进行示例性的描述。
目标版本为版本一时,生成的示例性的二维码如图3A所示。图3A中包括4个同心圆区域,基于版本一,版本一中部分圆点形码元绘制为黑色,部分圆点形码元绘制为白色或者透明色或者不上色,并且连续相邻被绘制为黑色的圆点形码元连接并绘制为圆弧形码元。
目标版本为版本二时,生成的示例性的二维码如图3B所示。图3B中包括5个同心圆区域,基于版本二,版本二中部分圆点形码元被绘制为黑色,部分圆点形码元绘制为白色或者透明色或者不上色,并且连续相邻被绘制为黑色的圆点形码元连接并绘制为圆弧形码元。
目标版本为版本三时,生成的示例性的二维码如图3C所示。图3C中包括8个同心圆区域,基于版本三,版本三中部分圆点形码元被绘制为黑色,部分圆点形码元绘制为白色或者透明色或者不上色,并且连续相邻被绘制为黑色的圆点形码元连接并绘制为圆弧形码元。
目标版本为版本四时,生成的示例性的二维码如图3D所示。图3D中包括10个同心圆区域,基于版本四,版本四中部分圆点形码元被绘制为黑色,部分圆点形码元绘制为白色或者透明色或者不上色,并且连续相邻被绘制为黑色的圆点形码元连接并绘制为圆弧形码元。
目标版本为版本五时,生成的示例性的二维码如图3E所示。图3E中包括11个同心圆区域,基于版本五,版本五中部分圆点形码元被绘制为黑色,部分圆点形码元绘制为白色或者透明色或者不上色,并且连续相邻被绘制为黑色的圆点形码元连接并绘制为圆弧形码元。
目标版本为版本六时,生成的示例性的二维码如图3F所示。图3F中包括13个同心圆区域,基于版本六,版本六中部分圆点形码元被绘制为黑色,部分圆点形码元绘制为白色或者透明色或者不上色,并且连续相邻被绘制为黑色的圆点形码元连接并绘制为圆弧形码元。
可以理解的是,本申请实施例提供的一种二维码编码方法可以是上述步骤S101-步骤S105的任意结合得到。或者本申请实施例提供的一种二维码编码方法可以是基于上述步骤S101-步骤S105相关联的步骤结合得到、或者可以是上述步骤S101-步骤S105的任意一个步骤的替换方案结合得到的二维码编码方法。例如,上述步骤S102可以替换为电子设备确定N个字符的字符类型,确定每种字符类型对应的目标编码模式。
本申请实施例提供一种二维码编码方法,通过该方法,电子设备100可以获取待编码文本,待编码文本可以包含N个字符;电子设备100从X个可选编码模式中确定出N个字符中每个字符的一个或多个候选编码模式,从一个或多个候选编码模式中选择编码位数最低的候选编码模式作为每个字符的目标编码模式,X为正数;电子设备100根据N个字符中每个字符的目标编码模式将N个字符分成M个字符段,并确定出M个字符段的目标编码模式,M个字符段中每个字符段包含一个或多个字符;电子设备100按照M个字符段的目标编码对M个字符段进行编码,得到二进制字符串S;电子设备100根据二进制字符串S的长度生成对应版本的目标二维码。这样,电子设备100可以将待编码文本编码成长度更短的二进制字符串,提高了二维码的数据容量。从而,可以实现将长度更长的待编码文本进行编码并生成二维码。
举例来说,字符串“0124FEAabcd”按照本申请实施例提供的二维码编码方法可以编码成54位的二进制字符串“001100000001010100010011111111101010001100101010111101”。字符串“0124FEAabcd”按照现有技术中的编码方式,电子设备100直接将字符串“0124FEAabcd”作为一个整体进行编码,采用base128编码模式进行编码,得到84位的二进制字符串。其中,base128编码模式的编码位数为7,“0124FEAabcd”的11个字符中每一个字符都要编码成7位二进制字符,得到77位的二进制字符串,然后加上3位模式指示符以及4位长度指示,最后得到84位的二进制字符串。可以看出,采用本申请实施例提供的二维码编码方法,编码得到的二进制字符串更短。这样,电子设备可以将长度更长的字符串生成二维码。
基于上述实施例提供的一种二维码编码方法,本申请实施例还提供一种二维码解码方法。前述实施例相关的内容,均适用于本实施例,此处不再赘述。如图9所示,该二维码解码方法具体可以包括如下步骤:
S901、电子设备100获取待解码二维码。
电子设备100可以通过摄像头获取待解码二维码,电子设备还可以从电子设备的图库中获取待解码二维码。电子设备100还可以通过其他电子设备100获取待解码二维码。即,其他电子设备将待解码二维码发送给电子设备100。本申请实施例对电子设备100获取待解码二维码的方式不作限定。
待解码二维码可以是如图1所示的QR码,也可以是如图2中的(a)图、(b)图或者(c)图示出的二维码,或者也可以是图3A-图3F中示出的任一种版本的二维码,此处对二维码的类型不作限定。
该待解码二维码可以是根据上述步骤S101-步骤S105生成的二维码。
在一种可能的实现方式中,在电子设备100获取到待解码二维码之前,电子设备100获取到包含待解码二维码的第一图像;电子设备100通过待解码二维码中的定位符(例如,图8A中示出的主定位符403以及辅助定位符404)确定出待解码二维码在第一图像中的区域。
进一步地,在电子设备100确定出待解码二维码在第一图像中的区域之前,电子设备100可以对第一图像进行预处理。预处理可以包括灰度化处理、去噪处理、二值化处理、膨胀处理和腐蚀处理中的一项或多项。度化处理、去噪处理、二值化处理、膨胀处理和腐蚀处理的具体过程可以参考现有技术,此处不再赘述。
S902、电子设备100从待解码二维码中获取模式指示信息。
电子设备100可以从待解码二维码的编码区域(例如图8A中示出的编码区域402)中获取到模式指示信息。该模式指示信息可以是二进制字符串。电子设备100可以获取用于标识待解码二维码的编码模式的二进制字符串。
可选地,电子设备100可以获取到待解码二维码的版本信息,基于该版本信息确定该待解码二维码中的编码区域。然后,电子设备100可以从该编码区域中获取模式指示信息。
S903、电子设备100从模式指示信息中确定编码模式,电子设备中存储有模式指示信息与编码模式的映射关系表。
电子设备100可以根据模式指示信息,例如用于指示编码模式的二进制字符串确定该待解码二维码的编码模式。电子设备100中可以存储有模式指示信息与编码模式的映射关系表。该映射关系表可以是上文中的表1,还可以是上文中的表11。电子设备若获取到的模式指示信息为“0000”,电子设备100可以确定该待解码二维码的编码模式为Terminator Mode。若电子设备100获取到的模式指示信息为“0011”,电子设备100可以该待解码二维码的编码模式为混合编码模式。电子设备100还可以从模式指示信息中确定出该待解码二维码的编码子模式。
进一步地,若电子设备100确定待解码二维码中的编码区域中的一部分字符中还包括编码子模式的模式指示信息,电子设备100可以根据编码子模式的模式指示信息确定对应的编码子模式。如该模式指示信息为二进制字符串“000”,电子设备100可以确定该编码子模式为Base10模式。
在一种可能的实现方式中,电子设备100在编码区域中获取到多个模式指示信息,例如多个模式指示符,电子设备100按照二进制字符串对应的模式指示信息对二进制字符串进行解码。
S904、电子设备100按照编码模式对待解码二维码进行解码,得到二维码中编码信息。
电子设备100按照确定的编码模式对待解码二维码进行解码。若电子设备100从待解码二维码中获取到压缩指示信息,电子设备100可以按照该压缩指示信息对待解码二维码进行解压缩。若电子设备100获取到加密指示信息,电子设备100还可以按照该加密指示信息对该待解码二维码进行解密。最后,电子设备100可以得到待解码二维码中的编码信息,例如“abcd”、例如“我爱我家”等等。在本申请实施例中,二维码中编码信息可以称为第一信息。
在一种可能的实现方式中,电子设备100可以从编码区域中确定出该编码区域中包含多少个二进制字节,每个二进制字节的长度以及编码模式。电子设备100可以按照每个字节对应的编码长度对该字节进行编码。举例来说,电子设备100可以从待解码二维码中确定模式指示信息为“0011”。那么该待解码二维码的编码模式为混合编码模式。若编码信息中字节长度为3,则表明该待解码二维码由3个二进制字符串编码而成。电子设备可以从编码区域获取该3个二进制字符串的编码子模式指示符(例如“001”,表明编码模式为Base10模式)以及长度指示(例如“100”表明编码成该二进制字符的原字符个数为4),最终可以获取具体的该3个二进制字符串具体结果,例如“000001010100”。“000001010100”按照该编码子模式解码可以得到二维码编码信息,即数字字符“0124”。
在一种可能的实现方式中,待解码二维码中包含编码区域,电子设备从待解码二维码中确定模式指示信息,具体包括:电子设备从编码区域中存储有模式指示信息的码元中获取模式指示信息。这样,电子设备可以获取模式指示信息。
在一种可能的实现方式中,电子设备从编码区域中存储有模式指示信息的码元中获取模式指示信息之前,包括:电子设备获取待解码二维码的版本信息,基于版本信息确定待解码二维码的目标版本;目标版本指示了待解码二维码的编码区域中每个存储位置的坐标信息;电子设备根据每个存储位置的坐标信息,确定待解码二维码的编码区域中多个码元中各码元占据的存储位置对应的二进制数值。这样,电子设备可以准确地处编码区域中每个码元对应的二进制数值。
可选地,二进制数据可以是0或1。
在一种可能的实现方式中,电子设备可以根据待解码二维码中任意两个定位符的距离确定待解码二维码的版本信息。不同的版本信息对应二维码中任意两个定位符的距离也不相同。
在一种可能的实现方式中,电子设备按照编码模式对待解码二维码进行解码,得到第一信息,包括:电子设备按照编码模式对待解码二维码的编码区域中多个码元中各码元占据的存储位置对应的二进制数值进行解码,得到第一信息。不同的编码模式,对应的编码位数不同,这样电子设备可以根据编码模式准确地将对应位数的二进制数值解码出第一信息。
在一种可能的实现方式中,电子设备从待解码二维码中获取模式指示信息,包括:电子设备从待编码二维码中获取一个模式指示信息,和编码模型信息中包含的一个或多个子模式指示信息;
电子设备从模式指示信息中确定待解码二维码的编码模式,包括:电子设备从模式指示信息中确定待解码二维码的编码模式,和从一个或多个子模式指示信息中确定待解码二维码的一个或多个编码子模式;
电子设备按照所述编码模式对待解码二维码的编码区域中多个码元中各码元占据的存储位置对应的二进制数值进行解码,得到第一信息,包括:电子设备按照一个或多个编码子模式对待解码二维码的编码区域中多个码元中各码元占据的存储位置对应的二进制数值进行解码,得到第一信息。
第一信息可以是由一个编码模式下的多个编码子模式编码成待解码二维码。这样,电子设备逐步细分解码,可以准确地从待解码二维码中解码出第一信息。
在一种可能的实现方式中,一个或多个编码子模式中包括第一编码子模式和第二编码子模式,编码区域包括第一编码区域和第二编码区域;电子设备按照一个或多个编码子模式对待解码二维码的编码区域中多个码元中各码元占据的存储位置对应的二进制数值进行解码,得到第一信息,包括:电子设备按照第一编码子模式对第一编码区域中多个码元中各码元占据的存储位置对应的二进制数值进行解码,按照第二编码子模式对第二编码区域中多个码元中各码元占据的存储位置对应的二进制数值进行解码,得到第一信息。这样,电子设备逐步细分解码,可以准确地从待解码二维码中解码出第一信息。
在一种可能的实现方式中,模式指示信息和一个或多个子模式指示信息为固定位数的二进制字符。
在一种可能的实现方式中,电子设备从模式指示信息中确定待解码二维码的编码模式,电子设备中存储有一个或多个映射关系表,映射关系表中包含模式指示信息和模式指示信息对应的编码模式,包括:电子设备在映射关系表中查询模式指示信息对应的编码模式,以及编码模式的编码位数。
在一种可能的实现方式中,电子设备从模式指示信息中确定待解码二维码的编码模式,电子设备中存储有一个或多个映射关系表,映射关系表中包含模式指示信息和模式指示信息对应的编码模式,具体包括:电子设备在映射关系表中查询模式指示信息对应的编码模式,以及一个或多个编码子模式中各子模式指示信息对应的编码子模式。
在一种可能的实现方式中,待解码二维码中包含一个模式指示信息和多个子模式指示信息,第一信息包含数字字符、大写字母字符、小写字母字符、特殊字符、转义字符中的两种字符或多种字符,数字字符、大写字母字符、小写字母字符、特殊字数、转义字符分别对应的编码位数最低的目标编码模式不同。
在一种可能的实现方式中,一个或多个编码子模式各编码子模式对应一种编码索引表;编码索引表包括第一编码索引表、第二编码索引表、第三编码索引表、第四编码索引表、第五编码索引表、第六编码索引表、第七编码索引表、第八编码索引表;第一编码索引表中包含所述数字字符;第二编码索引表中包含数字字符和大写字母字符;第三编码索引表中包含数字字符和小写字母字符;第四编码索引表中包含大写字母字符和特殊字符;第五编码索引表中包含小写字母字符和特殊字符;第六编码索引表中包含数字字符、大写字母字符和特殊字符;第七编码索引表中包含数字字符、小写字母字符和特殊字符;第八编码索引表中包含数字字符、大写字母字符、小写字母字符和特殊字符。
在一种可能的实现方式中,待解码二维码的目标版本包括第一版本、第二版本、第三版本、第四版本、第五版本、第六版本;待解码二维码的目标版本不同,待解码二维码的数据容量不同。
可以理解的是,本申请实施例提供的一种二维码解码方法可以是上述步骤S901-步骤S904的任意结合得到。或者本申请实施例提供的一种二维码解码方法可以是基于上述步骤S901-步骤S904相关联的步骤结合得到、或者可以是上述步骤S901-步骤S904的任意一个步骤的替换方案结合得到的二维码解码方法。上述步骤S901-步骤S904仅为举例说明,不对本申请实施例提供的一种二维码解码方法构成限定。
通过本申请实施例提供的一种二维码解码方法,电子设备100获取待解码二维码;电子设备100从待解码二维码中获取模式指示信息;电子设备100中模式指示信息中确定编码模式,电子设备中存储有模式指示信息与编码模式的映射关系表;电子设备100按照编码模式对待解码二维码进行解码,得到二维码中编码信息。这样,电子设备100可以更为准确地解码出二维码中的信息。本申请实施例提供的一种二维码解码方法应用于对细分编码的特殊二进制编码结构进行解码。电子设备可以采用分块解码的方式,一步一步还原细分编码信息,从而得到编码字符串。
下面介绍本申请实施例提供的示例性电子设备100。
图10是本申请实施例提供的电子设备100的结构示意图。
下面以电子设备100为例对实施例进行具体说明。应该理解的是,电子设备100可以具有比图中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
电子设备100可以包括:处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194以及用户标识模块(subscriber identify module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
在本申请实施例中,处理器110可以用于确定待编码文本的N个字符中每个字符的目标编码模式,并按照每个字符的目标编码模式将N个字符分成M个字符段。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
内部存储器121可以包括一个或多个随机存取存储器(random access memory,RAM)和一个或多个非易失性存储器(non-volatile memory,NVM)。随机存取存储器可以由处理器110直接进行读写,可以用于存储操作系统或其他正在运行中的程序的可执行程序(例如机器指令),还可以用于存储用户及应用程序的数据等。非易失性存储器也可以存储可执行程序和存储用户及应用程序的数据等,可以提前加载到随机存取存储器中,用于处理器110直接进行读写。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。
耳机接口170D用于连接有线耳机。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。
陀螺仪传感器180B可以用于确定电子设备100的运动姿态。
气压传感器180C用于测量气压。
磁传感器180D包括霍尔传感器。
加速度传感器180E可检测电子设备100在各个方向上(一般为三轴)加速度的大小。还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。
距离传感器180F,用于测量距离。
接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。
环境光传感器180L用于感知环境光亮度。
指纹传感器180H用于采集指纹。电
温度传感器180J用于检测温度。
触摸传感器180K,也称“触控面板”。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。
电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例对电子设备100的软件架构不作限定,例如,电子设备100的软件架构可以是分层架构的Android系统。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
上述实施例中所用,根据上下文,术语“当…时”可以被解释为意思是“如果…”或“在…后”或“响应于确定…”或“响应于检测到…”。类似地,根据上下文,短语“在确定…时”或“如果检测到(所陈述的条件或事件)”可以被解释为意思是“如果确定…”或“响应于确定…”或“在检测到(所陈述的条件或事件)时”或“响应于检测到(所陈述的条件或事件)”。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘)等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。
Claims (30)
1.一种二维码编码方法,其特征在于,包括:
电子设备获取待编码文本,所述待编码文本中包含N个字符,所述N为正整数;
所述电子设备从X个可选编码模式中确定所述N个字符中各字符的目标编码模式;
所述电子设备根据所述各字符的目标编码模式将所述N个字符分成M个字符段,并确定所述M个字符段中各字符段的目标编码模式;所述M小于或等于所述N;
所述电子设备根据所述各字符段的目标编码模式对所述M个字符段进行编码,得到第一二进制字符串;
所述电子设备将所述第一二进制字符串生成所述第一二进制字符串的长度对应版本的二维码。
2.根据权利要求1所述的方法,其特征在于,所述电子设备从X个可选编码模式中确定所述N个字符中各字符的目标编码模式,包括:
所述电子设备从X分可选编码模式中确定所述N个字符中的第一字符的一个或多个候选编码模式;
所述电子设备从所述一个或多个候选编码模式中选择编码位数最低的候选编码模式作为所述第一字符的目标编码模式。
3.根据权利要求2所述的方法,其特征在于,所述电子设备根据所述N个各字符的目标编码模式将所述N个字符分成M个字符段,并确定所述M个字符段中各字符段的目标编码模式,包括:
所述电子设备将所述N个字符中连续相邻且目标编码模式相同的字符分成一个字符段,得到M个字符段;
所述电子设备基于所述各字符段的字符的目标编码模式,确定所述M个字符段中各字符段的目标编码模式。
4.根据权利要求3所述的方法,其特征在于,所述M个字符段中包括第一字符段,所述第一字符段中包括所述第一字符与第二字符,所述第一字符与所述第二字符的目标编码模式相同,所述第一字符段的目标编码模式与所述第一字符和所述第二字符的目标编码模式相同。
5.根据权利要求2所述的方法,其特征在于,所述电子设备根据所述N个各字符的目标编码模式将所述N个字符分成M个字符段,并确定所述M个字符段中各字符段的目标编码模式,包括:
所述电子设备将所述N个字符中连续相邻,且大于预设数量的、相同的目标编码模式的字符划分为一个字符段,得到M个字符段;
所述电子设备基于所述各字符段的字符的目标编码模式,确定所述M个字符段中各字符段的目标编码模式。
6.根据权利要求3所述的方法,其特征在于,所述M个字符段中包括第二字符段,所述第二字符段中的字符数量大于或等于所述预设数量。
7.根据权利要求2所述的方法,其特征在于,所述电子设备根据所述N个各字符的目标编码模式将所述N个字符分成M个字符段,并确定所述M个字符段中各字符段的目标编码模式,包括:
所述电子设备从所述N个字符中的第一个字符开始计数;
当计数到第(u-1)个字符时,所述电子设备确定所述字符的数量大于或等于预设数量,且所述第(u-1)个字符与所述第u个字符的目标编码模式不同时,所述电子设备将所述N个字符中所述第一个字符至所述第(u-1)个字符划分为一个字符段,得到M个字符段;
所述电子设备基于M个字符段中各字符段的字符的目标编码模式,确定所述M个字符段中各字符段的目标编码模式。
8.根据权利要求3-7任一项所述的方法,其特征在于,所述M个字符段中包括第一字符段,所述电子设备基于所述各字符段的字符的目标编码模式,确定所述M个字符段中各字符段的目标编码模式,包括:
所述电子设备确定所述第一字符段中的所述第一字符和第二字符的目标编码模式为第一目标编码模式;
所述电子设备将所述第一目标编码模式作为所述第一字符段的目标编码模式。
9.根据权利要求3-7任一项所述的方法,其特征在于,所述M个字符段中包括第一字符段,所述电子设备基于所述各字符段的字符的目标编码模式,确定所述M个字符段中各字符段的目标编码模式,包括:
所述电子设备确定所述第一字符段中的第一字符的目标编码模式为第一目标编码模式,所述第一字符段中的第二字符的目标编码模式为第二目标编码模式,其中,所述第一目标编码模式的编码位数高于所述第二目标编码模式,且所述第一目标编码模式对应的编码索引表中包括所述第二字符,所述X个可选编码模式中包括所述第一目标编码模式和所述第二目标编码模式;
所述电子设备将所述第一目标编码模式作为所述第一字符段的目标编码模式。
10.根据权利要求3-7任一项所述的方法,其特征在于,所述M个字符段中包括第一字符段,所述电子设备基于所述各字符段的字符的目标编码模式,确定所述M个字符段中各字符段的目标编码模式,包括:
所述电子设备确定所述第一字符段中的第一字符的目标编码模式为第一目标编码模式,所述第一字符段中的第二字符的目标编码模式为第二目标编码模式,其中,所述第一目标编码模式与所述第二目标编码模式不同,且所述第一目标编码模式对应的编码索引表中未包含所述第一字符,所述第二目标编码模式对应的编码索引表中未包含所述第二字符,所述第三目标编码模式对应的编码位数高于所述第一目标编码模式和所述第二目标编码模式,所述X个可选编码模式中包括所述第一目标编码模式、所述第二目标编码模式和所述第三目标编码模式;
所述电子设备将所述第三目标编码模式作为所述第一字符段的目标编码模式。
11.根据权利要求1-10任一项所述的方法,其特征在于,所述第一二进制字符串中包括第二二进制字符串,所述第二二进制字符串由所述第一字符段编码得到,所述第二二进制字符段中包括所述第一字符段的目标编码模式的模式指示符、所述第一字符段中字符长度的指示符以及所述第一字符串中字符按照所述第一字符串的目标编码模式编码得到的二进制字符串。
12.根据权利要求1-11任一项所述的方法,其特征在于,所述N个字符中包括数字字符、大写字母字符、小写字母字符、特殊字数、转义字符中的一种或多种,所述数字字符、所述大写字母字符、所述小写字母字符、所述特殊字数、所述转义字符分别对应的编码位数最低的目标编码模式不同。
13.根据权利要求8-10任一项所述的方法,其特征在于,所述X个可选编码模式中各可选编码模式对应一种编码索引表;所述编码索引表包括第一编码索引表、第二编码索引表、第三编码索引表、第四编码索引表、第五编码索引表、第六编码索引表、第七编码索引表、第八编码索引表;所述第一编码索引表中包含所述数字字符;所述第二编码索引表中包含所述数字字符和所述大写字母字符;所述第三编码索引表中包含所述数字字符和所述小写字母字符;所述第四编码索引表中包含所述大写字母字符和所述特殊字符;所述第五编码索引表中包含所述小写字母字符和所述特殊字符;所述第六编码索引表中包含所述数字字符、所述大写字母字符和所述特殊字符;所述第七编码索引表中包含所述数字字符、所述小写字母字符和所述特殊字符;所述第八编码索引表中包含所述数字字符、所述大写字母字符、所述小写字母字符和所述特殊字符。
14.根据权利要求1-13任一项所述的方法,其特征在于,所述二维码包括第一版本的二维码、第二版本的二维码、第三版本的二维码、第四版本的二维码、第五版本的二维码、第六版本的二维码,所述第一版本的二维码、所述第二版本的二维码、所述第三版本的二维码、所述第四版本的二维码、所述第五版本的二维码以及所述第六版本的二维码的数据容量不同。
15.根据权利要求1-14任一项所述的方法,其特征在于,所述二维码为圆形二维码,所述圆形二维码中包括多个同心圆组成的编码区域,所述多个同心圆中各同心圆的圆环上包含多个码元。
16.一种二维码解码方法,其特征在于,包括:
电子设备获取待解码二维码,所述待解码二维码指示第一信息;
所述电子设备从所述待解码二维码中获取模式指示信息;
所述电子设备从所述模式指示信息中确定所述待解码二维码的编码模式,所述电子设备中存储有一个或多个映射关系表,所述映射关系表中包含模式指示信息和所述模式指示信息对应的编码模式;
所述电子设备按照所述编码模式对所述待解码二维码进行解码,得到所述第一信息。
17.根据权利要求15所述的方法,其特征在于,所述待解码二维码中包含编码区域,所述电子设备从所述待解码二维码中确定模式指示信息,具体包括:
所述电子设备从所述编码区域中存储有模式指示信息的码元中获取所述模式指示信息。
18.根据权利要求17所述的方法,所述电子设备从所述编码区域中存储有模式指示信息的码元中获取所述模式指示信息之前,包括:
所述电子设备获取所述待解码二维码的版本信息,基于所述版本信息确定所述待解码二维码的目标版本;所述目标版本指示了所述待解码二维码的编码区域中每个存储位置的坐标信息;
所述电子设备根据所述每个存储位置的坐标信息,确定所述待解码二维码的编码区域中多个码元中各码元占据的存储位置对应的二进制数值。
19.根据权利要求18所述的方法,其特征在于,所述电子设备按照所述编码模式对所述待解码二维码进行解码,得到所述第一信息,包括:
所述电子设备按照所述编码模式对所述待解码二维码的编码区域中多个码元中各码元占据的存储位置对应的二进制数值进行解码,得到所述第一信息。
20.根据权利要求19所述的方法,其特征在于,所述电子设备从所述待解码二维码中获取模式指示信息,包括:
所述电子设备从所述待编码二维码中获取一个模式指示信息,和所述编码模型信息中包含的一个或多个子模式指示信息;
所述电子设备从所述模式指示信息中确定所述待解码二维码的编码模式,包括:
所述电子设备从所述模式指示信息中确定所述待解码二维码的编码模式,和从所述一个或多个子模式指示信息中确定所述待解码二维码的一个或多个编码子模式;
所述电子设备按照所述编码模式对所述待解码二维码的编码区域中多个码元中各码元占据的存储位置对应的二进制数值进行解码,得到所述第一信息,包括:
所述电子设备按照所述一个或多个编码子模式对所述待解码二维码的编码区域中多个码元中各码元占据的存储位置对应的二进制数值进行解码,得到所述第一信息。
21.根据权利要求20所述的方法,其特征在于,所述一个或多个编码子模式中包括第一编码子模式和第二编码子模式,所述编码区域包括第一编码区域和第二编码区域;
所述电子设备按照所述一个或多个编码子模式对所述待解码二维码的编码区域中多个码元中各码元占据的存储位置对应的二进制数值进行解码,得到第一信息,包括:
所述电子设备按照所述第一编码子模式对所述第一编码区域中多个码元中各码元占据的存储位置对应的二进制数值进行解码,按照所述第二编码子模式对所述第二编码区域中多个码元中各码元占据的存储位置对应的二进制数值进行解码,得到所述第一信息。
22.根据权利要求21所述的方法,其特征在于,所述模式指示信息和所述一个或多个子模式指示信息为固定位数的二进制字符。
23.根据权利要求16-22任一项所述的方法,其特征在于,所述电子设备从所述模式指示信息中确定所述待解码二维码的编码模式,所述电子设备中存储有所述模式指示信息与所述编码模式的映射关系表,包括:
所述电子设备在所述映射关系表中查询所述模式指示信息对应的编码模式,以及所述编码模式的编码位数。
24.根据权利要求19所述的方法,其特征在于,所述电子设备从所述模式指示信息中获取所述待解码二维码的编码模式,所述电子设备中存储有所述模式指示信息与所述编码模式的映射关系表,具体包括:
所述电子设备在所述映射关系表中查询所述模式指示信息对应的编码模式,以及所述一个或多个编码子模式中各子模式指示信息对应的编码子模式。
25.根据权利要求16-24所述的方法,其特征在于,所述待解码二维码中包含一个模式指示信息和多个子模式指示信息,所述第一信息包含数字字符、大写字母字符、小写字母字符、特殊字符、转义字符中的两种字符或多种字符,所述数字字符、所述大写字母字符、所述小写字母字符、所述特殊字数、所述转义字符分别对应的编码位数最低的目标编码模式不同。
26.根据权利要求16-25任一项所述的方法,其特征在于,所述一个或多个编码子模式各编码子模式对应一种编码索引表;所述编码索引表包括第一编码索引表、第二编码索引表、第三编码索引表、第四编码索引表、第五编码索引表、第六编码索引表、第七编码索引表、第八编码索引表;所述第一编码索引表中包含所述数字字符;所述第二编码索引表中包含所述数字字符和所述大写字母字符;所述第三编码索引表中包含所述数字字符和所述小写字母字符;所述第四编码索引表中包含所述大写字母字符和所述特殊字符;所述第五编码索引表中包含所述小写字母字符和所述特殊字符;所述第六编码索引表中包含所述数字字符、所述大写字母字符和所述特殊字符;所述第七编码索引表中包含所述数字字符、所述小写字母字符和所述特殊字符;所述第八编码索引表中包含所述数字字符、所述大写字母字符、所述小写字母字符和所述特殊字符。
27.根据权利要求16-26任一项所述的方法,其特征在于,所述待解码二维码的目标版本包括第一版本、第二版本、第三版本、第四版本、第五版本、第六版本;
所述待解码二维码的目标版本不同,所述待解码二维码的数据容量不同。
28.根据权利要求16-27任一项所述的方法,其特征在于,所述待解码二维码为圆形二维码,所述圆形二维码中包括多个同心圆组成的编码区域,所述多个同心圆中各同心圆的圆环上包含多个码元。
29.一种电子设备,其特征在于,包括:通信接口、存储器和处理器;所述通信接口、所述存储器与所述处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述处理器从所述存储器中读取所述计算机指令,以使得所述电子设备执行如权利要求1至15或16-28中的任一项所述方法。
30.一种计算机存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1至15或16-28中的任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110486582.9A CN115271013A (zh) | 2021-04-30 | 2021-04-30 | 一种二维码编码、解码方法及电子设备 |
PCT/CN2022/087178 WO2022228157A1 (zh) | 2021-04-30 | 2022-04-15 | 一种二维码编码、解码方法及电子设备 |
EP22794628.2A EP4318307A1 (en) | 2021-04-30 | 2022-04-15 | Two-dimensional code encoding and decoding methods, electronic device |
US18/496,052 US20240062027A1 (en) | 2021-04-30 | 2023-10-27 | Two-dimensional code encoding method, two-dimensional code decoding method, and electronic device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110486582.9A CN115271013A (zh) | 2021-04-30 | 2021-04-30 | 一种二维码编码、解码方法及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115271013A true CN115271013A (zh) | 2022-11-01 |
Family
ID=83745865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110486582.9A Pending CN115271013A (zh) | 2021-04-30 | 2021-04-30 | 一种二维码编码、解码方法及电子设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240062027A1 (zh) |
EP (1) | EP4318307A1 (zh) |
CN (1) | CN115271013A (zh) |
WO (1) | WO2022228157A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115545730A (zh) * | 2022-11-28 | 2022-12-30 | 吉林省高信技术服务有限公司 | 基于手机后置摄像头的高保真防伪方法及后置摄像模组 |
CN116633697A (zh) * | 2023-07-25 | 2023-08-22 | 苏州万店掌网络科技有限公司 | 一种设备入网方法、装置、设备及可读存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ITTO20070508A1 (it) * | 2007-07-11 | 2009-01-12 | Selex Communications Spa | Procedimento per la codifica di dati numerici in un elaboratore e procedimento per la codifica di strutture dati per la trasmissione in un sistema di telecomunicazioni, basato su detto procedimento di codifica di dati numerici |
CN104143109B (zh) * | 2014-01-28 | 2017-04-05 | 深圳市雁联计算系统有限公司 | 一种二维码的编码和解码方法及其印刷物 |
CN107563477A (zh) * | 2017-07-26 | 2018-01-09 | 中国农业大学 | 二维码及其生成方法和装置 |
-
2021
- 2021-04-30 CN CN202110486582.9A patent/CN115271013A/zh active Pending
-
2022
- 2022-04-15 EP EP22794628.2A patent/EP4318307A1/en active Pending
- 2022-04-15 WO PCT/CN2022/087178 patent/WO2022228157A1/zh active Application Filing
-
2023
- 2023-10-27 US US18/496,052 patent/US20240062027A1/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115545730A (zh) * | 2022-11-28 | 2022-12-30 | 吉林省高信技术服务有限公司 | 基于手机后置摄像头的高保真防伪方法及后置摄像模组 |
CN116633697A (zh) * | 2023-07-25 | 2023-08-22 | 苏州万店掌网络科技有限公司 | 一种设备入网方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2022228157A1 (zh) | 2022-11-03 |
EP4318307A1 (en) | 2024-02-07 |
US20240062027A1 (en) | 2024-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022228157A1 (zh) | 一种二维码编码、解码方法及电子设备 | |
CN105325009B (zh) | 用于流式传输视频质量分析的改进技术 | |
CN112449192B (zh) | 解码方法、编码方法及装置 | |
CN111178546B (zh) | 机器学习模型的搜索方法及相关装置、设备 | |
CN111357014B (zh) | 一种ai模型的开发方法及装置 | |
US20240046055A1 (en) | Method for recognizing two-dimensional code and related apparatus | |
CN110062246B (zh) | 对视频帧数据进行处理的方法和装置 | |
CN109165001B (zh) | 编码方法、装置及显示装置 | |
CN109151477B (zh) | 一种图像数据的编码、解码方法及装置 | |
CN114119758A (zh) | 获取车辆位姿的方法、电子设备和计算机可读存储介质 | |
CN111209377A (zh) | 基于深度学习的文本处理方法、装置、设备及介质 | |
CN111507094B (zh) | 基于深度学习的文本处理模型训练方法、装置及设备 | |
CN114330374A (zh) | 融合场景感知机器翻译方法、存储介质及电子设备 | |
CN113297843B (zh) | 指代消解的方法、装置及电子设备 | |
CN114416723B (zh) | 一种数据的处理方法、装置、设备及存储介质 | |
CN113763931B (zh) | 波形特征提取方法、装置、计算机设备及存储介质 | |
CN111638878A (zh) | 图标的样式风格处理的方法以及装置 | |
CN113537430B (zh) | 信标、信标生成方法、信标生成装置和设备 | |
CN111738034B (zh) | 车道线的检测方法和装置 | |
CN114116541A (zh) | 确定物理地址的方法及芯片系统 | |
CN111859001B (zh) | 图像相似度检测方法、装置、存储介质与电子设备 | |
CN113885785B (zh) | 一种数据去重方法及装置 | |
CN111951168B (zh) | 图像处理方法、图像处理装置、存储介质与电子设备 | |
CN111931770B (zh) | 图像处理方法、装置、设备及存储介质 | |
CN116437293B (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 |