WO2024113874A1 - 环形二维码的编码方法和解码方法 - Google Patents
环形二维码的编码方法和解码方法 Download PDFInfo
- Publication number
- WO2024113874A1 WO2024113874A1 PCT/CN2023/106155 CN2023106155W WO2024113874A1 WO 2024113874 A1 WO2024113874 A1 WO 2024113874A1 CN 2023106155 W CN2023106155 W CN 2023106155W WO 2024113874 A1 WO2024113874 A1 WO 2024113874A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- dimensional code
- data
- circular
- data bits
- rings
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 238000012937 correction Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 101100012902 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) FIG2 gene Proteins 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 101000827703 Homo sapiens Polyphosphoinositide phosphatase Proteins 0.000 description 2
- 102100023591 Polyphosphoinositide phosphatase Human genes 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 108091026890 Coding region Proteins 0.000 description 1
- 101001121408 Homo sapiens L-amino-acid oxidase Proteins 0.000 description 1
- 102100026388 L-amino-acid oxidase Human genes 0.000 description 1
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Abstract
本申请公开了一种环形二维码的编码方法,包括:将待编码数据转换为二进制数据;确定待生成二维码的二维码版本,所述待生成二维码包括对应于同一中心的多个环,每个环对应多个数据位;根据所述二维码版本,确定所述多个环的多个有效数据位;将所述多个有效数据位划分多个数据段;根据所述元数据和所述二进制数据,在所述多个有效数据位生成对应的码元图案,以得到环形二维码。本申请提供的环形二维码,需要特定编解码方式,数据内容安全,适合专用在特定场景。
Description
本申请申明2022年11月30日递交的申请号为202211533389.7、名称为“环形二维码的编码方法和解码方法”的中国专利申请的优先权,该中国专利申请的整体内容以参考的方式结合在本申请中。
本申请实施例涉及计算机技术领域,尤其涉及一种环形二维码的编码方法、解码方法、编码系统、解码系统、计算机设备,以及计算机可读存储介质。
随着计算机技术的发展,二维码已成为信息传播的便捷载体,并且二维码的集成度越来越高,用户通过扫描二维码即可获得相关信息或链接到相关网页或接口上。二维码编解码是通过对图片进行二值化操作后,通过既定的规则完成二进制到目标数据的转换,较为常见的二维码有:QR码、微信小程序码、抖音码等。QR码、小程序码、抖音码都属于闭源二维码,无法在其它产品里直接使用。
目前市面上常见的二维码为QR码,其开源的编解码设计,客观上使QR码的应用的数量呈爆炸式增长。发明人意识到,由于QR码生成算法的开源性导致QR码的生成渠道不具有排他性,即不同的主体可以利用开源代码生成相同的二维码,因此给需要严格限定数码生成主体或范围的应用带来极大风险,数据内容隐私性差。
需要说明的是,上述内容并不必然是现有技术,也不用于限制本申请的专利保护范围。
发明内容
本申请实施例的目的是提供一种环形二维码的编码方法、系统、计算机设备及计算机可读存储介质,解决上述问题。
本申请实施例的一个方面提供了一种环形二维码的编码方法,包括:
将待编码数据转换为二进制数据;
确定待生成二维码的二维码版本,所述待生成二维码包括对应于同一中心的多个环,每个环对应多个数据位;
根据所述二维码版本,确定所述多个环的多个有效数据位;
将所述多个有效数据位划分多个数据段,所述多个数据段包括保留字段和内容数据段,所述保留字段用于编码元数据,所述内容数据段用于编码所述二进制数据;
根据所述元数据和所述二进制数据,在所述多个有效数据位生成对应的码元图案,以得到环形二维码。
可选地,所述确定待生成二维码的二维码版本,包括:
将所述待编码数据的信息量,确定所述二维码版本;
其中,不同的二维码版本对应不同的数量的多个有效数据位。
可选地,还包括:
基于预设时钟方向,将单个环的有效数据位组合为一个数据段,以得到多个环的多个数据段。
可选地,还包括:
依据所述多个环中的最内环到最外环的顺序,确定所述多个数据段的先后顺序。
可选地,还包括:
在所述待生成二维码的边缘配置多个定位符,分布在所述多个环的最外环上。
可选地,所述方法还包括:
将所述多个定位符占据的数据位确定为无效数据位,所述无效数据为不用于装载信息。
可选地,所述方法还包括:
在所述多个环中最内环的环内生成目标图案,其中,所述目标图案包括身份标识。
本申请实施例的一个方面又提供了一种环形二维码的编码系统,包括:
转换模块,用于将待编码数据转换为二进制数据;
第一确定模块,用于确定待生成二维码的二维码版本,所述待生成二维码包括对应于同一中心的多个环,每个环对应多个数据位;
第二确定模块,用于根据所述二维码版本,确定所述多个环的多个有效数据位;
划分模块,用于将所述多个有效数据位划分多个数据段,所述多个数据段包括保留字段和内容数据段,所述保留字段用于编码元数据,所述内容数据段用于编码所述二进制数据;
生成模块,用于根据所述元数据和所述二进制数据,在所述多个有效数据位生成对应的码元图案,以得到环形二维码。
本申请实施例的一个方面又提供了一种环形二维码的解码方法,其包括:
获取环形二维码,所述环形二维码包括多个环,所述多个环对应同一个中心,每个环对应多个数据位;
根据所述二维码版本,确定所述多个环的多个有效数据位;所述多个有效数据位被划分多个数据段,所述多个数据段包括保留字段和内容数据段,所述保留字段用于保存元数据,所述内容数据段用于保存二进制数据;
根据所述多个有效数据位对应多个有效码元图案,获取所述环形二维码的二进制数据。
可选地,还包括:
基于预设时钟方向,将单个环的有效数据位确定为一个数据段,以得到多个环的多个数据段;
依据所述多个环中的最内环到最外环的顺序,确定所述多个数据段的先后顺序。
本申请实施例的一个方面又提供了一种环形二维码的解码方法,包括:
第一获取模块,用于获取环形二维码,所述环形二维码包括多个环,所述多个环对应
同一个中心,每个环对应多个数据位;
确定模块,用于根据所述二维码版本,确定所述多个环的多个有效数据位;所述多个有效数据位被划分多个数据段,所述多个数据段包括保留字段和内容数据段,所述保留字段用于保存元数据,所述内容数据段用于保存二进制数据;
第二获取模块,用于根据所述多个有效数据位对应多个有效码元图案,获取所述环形二维码的二进制数据。
本申请实施例的一个方面又提供了一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现如上所述环形二维码的编码方法和/或解密方法的步骤。
本申请实施例的一个方面又提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令可被至少一个处理器所执行,以使所述至少一个处理器执行如上所述环形二维码的编码方法和/或解密方法的步骤。
本申请实施例提供的编解码方法、系统、计算机设备及计算机可读存储介质,可以包括以下技术效果:
不同于黑、白码元作为二维码的有效编码数据,在本实施例中,通过先确定有效数据位和无效数据位,即确定各个环上的有效编码数据。因此,该环形二维码需特定编解码方式,介于隐私性及彰显品牌个性的背景下,提供了识别度很高且私有的异形(环形)二维码,数据内容安全,适合专用在特定场景。
图1示意性示出了根据本申请实施例的环形二维码的编码方法的应用环境图;
图2示意性示出了根据本申请实施例一的环形二维码的编码方法的流程图;
图3示意性示出了根据本申请实施例一的环形二维码的示例性图案;
图4示意性示出了保留字段;
图5示意性示出了根据本申请实施例一的环形二维码的另一示例性图案;
图6示意性示出了根据本申请实施例一的环形二维码的另一示例性图案;
图7示意性示出了根据本申请实施例一的环形二维码的编码顺序;
图8示意性示出了根据本申请实施例二的环形二维码的编码方法的流程图;
图9示意性示出了根据本申请实施例三的环形二维码的编码系统的框图;
图10示意性示出了根据本申请实施例四的环形二维码的编码系统的框图;
图11示意性示出了根据本申请实施例五的适于实现环形二维码的编码/解码方法的计算机设备的硬件架构示意图。
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不
用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个申请实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
在本申请的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本申请及区别每一步骤,因此不能理解为对本申请的限制。
以下为本申请的术语解释:
二维码(2-Dimensional Bar Code):是用某种特定的几何图形按一定规律在平面(二维方向上)分布的、黑白相间的、记录数据符号信息的图形。
二值化:是指通过一定的图像算法,将整个图片转换成只有黑和白两种颜色的视觉效果。
ECC:全称是Error Correcting Code,是一种能够实现错误检测和纠正的技术,提高运行的稳定性和可靠性。
透视变换:是指将图片投影到一个新的视角或平面,可将变换后的视角转换成平面效果。
为方便本领域技术人员理解本申请实施例提供的技术方案,下面相关技术进行说明:
随着计算机技术的发展,二维码已成为信息传播的便捷载体,并且二维码的集成度越来越高,用户通过扫描二维码即可获得相关信息或链接到相关网页或接口上。二维码编解码是通过对图片进行二值化操作后,通过既定的规则完成二进制到目标数据的转换。二维条码种类繁多,不同码制的二维码具有不同的结构以及编写、读取方法。例如,PDF417码、QR码、汉信码、颜色条码、quick mark code、data matrix等。较为常见的二维码有:QR码、微信小程序码、抖音码等。小程序码、抖音码都属于闭源二维码,无法在其它产品里直接使用。
通过二维码识读设备可以扫描并解析出原始信息。如可以扫描纸质二维码和电子二维码,因此二维码可以应用于电子票务、电子优惠券、会员系统、账号登录验证等领域。
下面以QR码(Quick Response Code,快速响应矩阵码)为例,对二维码相关技术做进一步介绍。
QR码可以使用四种标准化编码模式(数字、字母数字、字节、汉字)来存储数据由于可以存储更多数据、提供开源的编解码设计和具有良好的识别率,QR码应用范围可以扩展到更多场景。但在对数据内容隐私性有要求的场景下,就不太适用,比如仅希望在某些特定的APP里才可以完成二维码内容的解析。
有鉴于此,本申请实施例提供新的二维码方案,可以实现数据内容安全,并适用特定
场景中。该二维码方案介于隐私性及彰显品牌个性的背景下,具有很高的识别成功率。
下面提供本申请的示例性应用环境,例如,可以用于如图1所示的二维码编码设备2、二维码解码设备4中。
二维码编码设备2可以是携带二维码生成和/或解析功能的任何设置。如智能手机、平板电脑、膝上型计算机、工作站、游戏设备、数字流媒体设备、车辆用户终端、智能电视、机顶盒等终端设备,也可以是服务器中的虚拟化的计算实例。虚拟化的计算实例可以包括虚拟机,如计算机系统,操作系统,服务器等的仿真。
二维码编码设备2可以包括多个客户端程序,如二维码生成器,二维码识别器等。二维码生成器可以提供二维码的生成功能,二维码识别器用于提供二维码的解析功能。
二维码解码设备4可以是特定的扫描设备,也可以是携带扫描和识别功能的通用设备,如智能手机。
下面,将在上述示例性应用环境下提供多个实施例,来说明本申请实施例的技术方案。二维码编码设备2或二维码解码设备4可以作为环形二维码的编、解码的执行主体。
实施例一
图2示意性示出了根据本申请实施例一的环形二维码的编码方法的流程图。如图2所示,所述环形二维码的编码方法可以包括步骤S200~S210,其中:
步骤S200,将待编码数据转换为二进制数据。
步骤S202,确定待生成二维码的二维码版本,所述待生成二维码包括对应于同一中心的多个环,每个环对应多个数据位。
步骤S204,根据所述二维码版本,确定所述多个环的多个有效数据位。
步骤S206,将所述多个有效数据位划分多个数据段,所述多个数据段包括保留字段和内容数据段,所述保留字段用于编码元数据,所述内容数据段用于编码所述二进制数据。
步骤S208,根据所述元数据和所述二进制数据,在所述多个有效数据位生成对应的码元图案,以得到环形二维码。
以图3为例,环形二维码从内到外有6个环。每个环的大小不同,相邻环之间具有一定间隔,防止重合交叉。为保障有效识别效率,环的形状可以如图2所示的圆环形。所述多个环为同心环,各个环的中心点为圆点。需要说明的是,环的形状也可以是椭圆环形、矩形环形、三角环形等,根据实际需要进行设计。
环由多个第一、第二码元图案交替组合形成。
以图3中的第三个环为例,该第三个环由多个第一码元图案和第二码元图案交替组合形成,在视觉上形成“虚线”圆环。不同的码元图案对应不同的二值化元素(1或0)。
在可选的实施例中,为了适应不同信息量的待编码数据,步骤S202可以包括:将所述待编码数据的信息量,确定所述二维码版本;其中,不同的二维码版本对应不同的数量的多个有效数据位。多个有效数据位的数量越多,说明可装载的信息量越大。
在可选的实施例中,为了便于编码和编码的准确性,所述方法还包括:
基于预设时钟方向,将单个环的有效数据位组合为一个数据段,以得到多个环的多个
数据段。
在可选的实施例中,为了便于编码和编码数据数据的划分,所述方法还包括:依据所述多个环中的最内环到最外环的顺序,确定所述多个数据段的先后顺序。
在可选的实施例中,所述方法还包括:
在所述待生成二维码的边缘配置多个定位符,分布在所述多个环的最外环上。继续参考图3,位于所述环形二维码边缘的圆圈对应为定位符。每个圆圈代表一个定位符。需要说明的是,定位符不限于图3所示的四个,也可以更多或更少,可以根据实际需求进行设置。定位符的形状也不限于图中所示的圆圈形状,也可以是矩形等;其排列的方式也不仅限于图3所示的排列方式,也可以根据实际需求进行设置。在本实施例中,所述多个定位符用于对所述环形二维码进行定位,提高识别准确度和效率。需要说明是,本实施例中的定位符优选采用圆圈形状。由于本实施例采用了环形二维码,圆圈形状不仅可以提高识别准确度,还减少面积占用,最大程度地减少对所述环形二维码的数量容量的影响。进一步的,为了提高所述环形二维码的定位识别效率和准确度,所述多个定位符的数据为四个,分布在所述目标中心点的正上方、正下方、正左侧、正右侧。
在可选的实施例中,所述方法还包括:
将所述多个定位符占据的数据位确定为无效数据位,所述无效数据为不用于装载信息。为了保证有效编码数据的正确,所述环形二维码设置如下:被所述多个定位符占据的交叉处的数据位为无效数据位,不用于装载有效编码数据。如图3,直线#1、#9、#10、#11、#18、#19、#20、#27、#28、#29与第五个环、第六个环的交叉处的数据位被定位符占据或影响。为保障正确编码,设置该十条直线的有效数据位为4位,剔除与第五个环、第六个环的交叉处对应的2个数据位。需要说明的是,若所述环形二维码中还可以其他影响数据位的图案,也需要做相应剔除。
在可选的实施例中,为了提供所述环形二维码的平台标识等,所述方法还包括:在所述多个环中最内环的环内生成目标图案,其中,所述目标图案包括身份标识。
例如图3、图5、图6分别提供了不同的二维码版本。
为了使得本实施例更容易理解,对本实施例提供的环形二维码(版本V1)进行描述。
如图3所示,本环形二维码中每个环中具有36个有效数据位,用于编解码。以垂直于水平直径的下半条开始编号为#1,每偏移10°增加一条直线,依次排列至36条。需要说明的是,图中的直线是为了方便指出数据位,该直线并不真实存在。
每条直线最多可以命中6个环(环形编码区):
如果直线与环的交叉处,则代表数据位0;
如果直线与环的交叉处为,则代表数据位1;
为了避开定位符以及图标区域:
#1、#9、#10、#11、#18、#19、#20、#27、#28、#29这10条直线的有效位为4位(剔除掉外面2位)。
因此,可以推算出该环形二维码最多支持的比特位为:(36*6)-(10*2)=196
bits。
另外,还可以设置最内环中的前16位作为保留字段,所以有效数据存储比特位为:196-16=180bits。
如图4所示,上述16个数据位定义如下:
(1)奇偶校验位,用于16位保留字段的奇偶校验,可采用偶校验方式。
(2)二维码版本号,可以使用二进制0b001-0b011表示。
(3)编码映射表版本:可以使用二进制0b0001-0b0011表示。
(4)数据类型:预留,可用于标识最终解码后的数据种类(如mid、app-id等,总共支持8种定义)。
(5)掩模索引:预留,索引数据编码区的解码掩模,共支持8种。
(6)纠错等级:对应L、M、Q、H四种纠错等级定义,可以使用二进制0b00-0b11表示。
ECC(Error Correcting Code,错误检查和纠正码)处理设计:
在保留字段里使用最后两个数据位来标识所述环形二维码的纠错等级,纠错算法可以和QR一致。例如:
1.算法:GF(256)RS codes;
2.等级:L(0b00)、M(0b01)、Q(0b10)、H(0b11);
3.校验位存放位置:数据编码区的最末端;
注意:校验位是对除校验位以外的所有数据区域生成的,其中不包括16位保留字段,当数据位不能按照1字节进行对齐时,最后不能对齐的数据位存放到单独1个字节的低位进行校验位生成。
如表一,纠错等级定义如下:
表一
以下结合图5,对本实施例提供的环形二维码(版本V2)进行描述。
在图5提供的环形二维码(V1版本)的基础上,图5中的环形二维码(V2版本)在数据区域新增了18条直线。也就是说,图5中的环形二维码有54条直线。
每条直线的有效数据位为外5环,基于以下两点考虑:
1.如果使用最内环数据过于密集,在编解码时容易产生脏数据。
2.最内的环存储了保留字段,定义了二维码元数据,需要没有版本差异(所有版本的解码方式一致)。
新增的18条直线,与在原有两条直线中间,比如直线#2.5在直线#2和直线#3这两条直线中间(将直线#2以顺时钟方向偏移5°),新增直线都是在V1版本环形二维码的直线编号的偶数位之后,即:2、4、6、8、10...后面设有新直线2.5、4.5、6.5、8.5、10.5...。
为了避开定位符以及平台图标区域:10.5、18.5、28.5、36.5这4条直线的有效位为3位(剔除掉外面2位)。
相比于V1版本的环形二维码,图4中的环形二维码(V2版本)多支持如下比特位:(18*5)-(4*2)=82bits。环形二维码(V2版本)的有效数据存储比特位为:180+82=262bits。
环形二维码(V2版本)的纠错等级定义如下表二:
表二
以下结合图6,对本实施例提供的环形二维码(版本V3)进行描述。
在图6提供的环形二维码(V1版本)的基础上,图6中的环形二维码(V3版本)在数据区域新增了36条直线。也就是说,图6中的环形二维码有72条直线。
每条直线的有效数据位为外5环,设计考虑点与V2版本一致。
在V2版本上新增的18条直线,与在原有两条直线中间,比如直线1.5在直线1、2这两条直线中间(将直线1以右偏5°),V3版本新增的直线都是在原有直线编号的奇数位之后,也就是:1、3、5、7、9...之后对应新直线1.5、3.5、5.5、7.5、9.5...。
为了避开定位符以及平台图标区域:
直线1.5、9.5、19.5、27.5这4条直线的有效数据位为3位(剔除掉外面2位)。
相比于V2版本的环形二维码,图5中的环形二维码(V3版本)多支持如下比特位:(18*5)-(4*2)=82bits。环形二维码(V3版本)的有效数据存储比特位为:262+82=344bits。
环形二维码(V3版本)的纠错等级定义如下表三:
表三
通过表一、二、三可知,不同版本的环形二维码,承载的数据量以及纠错等级不一样。因此,可以根据待编码数据量和纠错等级等,选择不同版本的环形二维码。
通过对上述介绍的3个二维码版本可知,不同版本对应不同数量的有效数据位。下面以图7所示的二维码版本为例,介绍编码过程。图7为提供的每个环上对应36个有效数据位。其位置可以在36条直线上。需要说明的是,该36条直线仅仅是为了方便理解而设置,实际二维码中并不存在。预设编码规则为:以中心的正下方的直线为第一条直线#1,顺时钟方向偏离10°为第二调整直线#2,依次类推得到第三十六条直线#36。
以第一条直线#1和第一个环(最内环)的交叉处为起始编码位置(第一个有效数据位)。第二条直线#2和第一个环(最内环)的交叉处为第二个有效数据位。依次类推,第三十六条直线#36和第一个环(最内环)的交叉处为第三十六个有效数据位。
接着,以第一条直线#1和第二个环(次内环)的交叉处为起始编码位置(第三十七个有效数据位)。第二条直线#2和第二个环(次内环)的交叉处为第三十七个有效数据位。依次类推,第三十六条直线#36和第二个环(次内环)的交叉处为第七十二个有效数据位。
接着,第一至第三十六条直线各自与第三个环的交叉处对应第七十三至第一百零八个有效数据位。
接着,第一至第三十六条直线各自与第四个环的交叉处对应第一百零九至第一百四十四个有效数据位。
在第五个环中,由于直线#1、#9、#10、#11、#18、#19、#20、#27、#28、#29这四条直线和第五个环(最内环)的交叉处均被占位符所占据,因此不用于编码。
接着,第二条直线#2和第五个环(次外环)的交叉处为第一百四十五个有效数据位。依次类推得到第五个环和二十六条直线形成的二十六个有效数据位(顺时钟方向)。
在第六个环中,由于直线#1、#9、#10、#11、#18、#19、#20、#27、#28、#29这四条直线和第六个环(最外环)的交叉处均被占位符所占据,因此不用于编码。
接着,第二条直线#2和第六个环(最外环)的交叉处为第一百六十一个数据位。依次类推得到第六个环和二十六条直线形成的二十六个有效数据位(顺时钟方向)。
通过上述可以知道,图7所示的环形二维码有196个数据位。
第一种情况:
以第一个数据位至第十六个有效数据位作为保留字段。以第十七个有效数据位为起始位置,可以将二进制数据按顺序填充到对应的位置处(交叉处)。若填充到某个位置处的二
进制数据为第一数值(如“0”),则该位置处形成第一码元图案(如白色)。若填充到某个位置处的二进制数据为第二数值(如“1”),则该位置处形成第二码元图案(如黑色)。通过上述方式,可以形成和二进制数据对应的环形二维码。
第二种情况:
以第一个有效数据位起始,可以将二进制数据按顺序填充到对应的位置处(交叉处)。若填充到某个位置处的二进制数据为第一数值(如“0”),则该位置处形成第一码元图案(如白色)。若填充到某个位置处的二进制数据为第二数值(如“1”),则该位置处形成第二码元图案(如黑色)。通过上述方式,可以形成和二进制数据对应的环形二维码。需要说明的是,环上非交叉处的位置可以随机生成第一或第二码元图案。若二进制数据少于196位,可以在结尾处形成特定的黑、白区域。
需要说明的是,这196个数据位,哪些数据位用于装载编码数据,哪些数据位用于其他用途,可以根据实际需要设定。上面列举的两个情况并不用于限定专利保护范围。
不同于黑、白码元作为二维码的有效编码数据,在本实施例中,先确定有效数据位和无效数据位,即确定各个环上的有效编码数据。因此,该环形二维码需特定编解码方式,介于隐私性及彰显品牌个性的背景下,提供了识别度很高且私有的异形(环形)二维码,数据内容安全,适合专用在特定场景。
实施例二
本实施例的解码方法和实施例一中的编码方法相对应,具体细节可以参考实施例一。
图8示意性示出了根据本申请实施例二的环形二维码的编码方法的流程图。如图8所示,所述环形二维码的解码方法可以包括步骤S800~S804,其中:
步骤S800,获取环形二维码,所述环形二维码包括多个环,所述多个环对应同一个中心,每个环对应多个数据位;
步骤S802,根据所述二维码版本,确定所述多个环的多个有效数据位;所述多个有效数据位被划分多个数据段,所述多个数据段包括保留字段和内容数据段,所述保留字段用于保存元数据,所述内容数据段用于保存二进制数据;
步骤S804,根据所述多个有效数据位对应多个有效码元图案,获取所述环形二维码的二进制数据。
在可选的实施例中,所述方法还包括:
基于预设时钟方向,将单个环的有效数据位确定为一个数据段,以得到多个环的多个数据段;
依据所述多个环中的最内环到最外环的顺序,确定所述多个数据段的先后顺序。
实施例三
图9示意性示出了根据本申请实施例三的环形二维码的编码系统的框图,该环形二维码的编码系统可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机可读指令段,以下描述将具体介绍本实施例中各
程序模块的功能。如图9所示,该环形二维码的编码系统900可以包括转换模块910、第一确定模块920、第二确定模块930、划分模块940、生成模块950,其中:
转换模块910,用于将待编码数据转换为二进制数据;
第一确定模块920,用于确定待生成二维码的二维码版本,所述待生成二维码包括对应于同一中心的多个环,每个环对应多个数据位;
第二确定模块930,用于根据所述二维码版本,确定所述多个环的多个有效数据位;
划分模块940,用于将所述多个有效数据位划分多个数据段,所述多个数据段包括保留字段和内容数据段,所述保留字段用于编码元数据,所述内容数据段用于编码所述二进制数据;
生成模块950,用于根据所述元数据和所述二进制数据,在所述多个有效数据位生成对应的码元图案,以得到环形二维码。
在可选的实施例中,所述第二确定模块930,还用于:
将所述待编码数据的信息量,确定所述二维码版本;
其中,不同的二维码版本对应不同的数量的多个有效数据位。
在可选的实施例中,所述系统还包括组合模块,用于:
基于预设时钟方向,将单个环的有效数据位组合为一个数据段,以得到多个环的多个数据段。
在可选的实施例中,所述系统还包括第三确定模块,用于:
依据所述多个环中的最内环到最外环的顺序,确定所述多个数据段的先后顺序。
在可选的实施例中,所述系统还包括配置模块,用于:
在所述待生成二维码的边缘配置多个定位符,分布在所述多个环的最外环上。
在可选的实施例中,所述系统还包括第四确定模块,用于:
将所述多个定位符占据的数据位确定为无效数据位,所述无效数据为不用于装载信息。
在可选的实施例中,所述生成模块,还用于:
在所述多个环中最内环的环内生成目标图案,其中,所述目标图案包括身份标识。
实施例四
图10示意性示出了根据本申请实施例四的环形二维码的解码系统的框图,该环形二维码的编码系统可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机可读指令段,以下描述将具体介绍本实施例中各程序模块的功能。如图9所示,该环形二维码的解码系统1000可以包括第一获取模块1010、第一确定模块1020、第二获取模块1030,其中:
第一获取模块1010,用于获取环形二维码,所述环形二维码包括多个环,所述多个环对应同一个中心,每个环对应多个数据位;
确定模块1020,确定所述多个环的多个有效数据位;所述多个有效数据位被划分多个数据段,所述多个数据段包括保留字段和内容数据段,所述保留字段用于保存元数据,所
述内容数据段用于保存二进制数据;
第二获取模块1030,用于根据所述多个有效数据位对应多个有效码元图案,获取所述环形二维码的二进制数据。
在可选的实施例中,所述系统还包括第三确定模块,用于:
基于预设时钟方向,将单个环的有效数据位确定为一个数据段,以得到多个环的多个数据段;
依据所述多个环中的最内环到最外环的顺序,确定所述多个数据段的先后顺序。
实施例五
图11示意性示出了根据本申请实施例五的适于实现环形二维码的编码/解码方法的计算机设备的硬件架构示意图。计算机设备10000可作为二维码编码设备2或二维码解码设备4,或它们的一部分。计算机设备10000是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,智能手机、平板电脑、电脑、车载终端、游戏机、虚拟设备、扫描器等设备,也可以是服务器等。
本实施例中,计算机设备10000是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。如图11所示,计算机设备10000至少包括但不限于:可通过系统总线相互通信链接存储器10010、处理器10020、网络接口10030。其中:
存储器10010至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器10010可以是计算机设备10000的内部存储模块,例如该计算机设备10000的硬盘或内存。在另一些实施例中,存储器10010也可以是计算机设备10000的外部存储设备,例如该计算机设备10000上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,存储器10010还可以既包括计算机设备10000的内部存储模块也包括其外部存储设备。本实施例中,存储器10010通常用于存储安装于计算机设备10000的操作系统和各类应用软件,例如环形二维码的编码方法的程序代码等。此外,存储器10010还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器10020在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器10020通常用于控制计算机设备10000的总体操作,例如执行与计算机设备10000进行数据交互或者通信相关的控制和处理等。本实施例中,处理器10020用于运行存储器10010中存储的程序代码或者处理数据。
网络接口10030可包括无线网络接口或有线网络接口,该网络接口10030通常用于在计算机设备10000与其他计算机设备之间建立通信链接。例如,网络接口10030用于通过网络将计算机设备10000与外部终端相连,在计算机设备10000与外部终端之间的建立数
据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,简称为GSM)、宽带码分多址(Wideband Code Division Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图11仅示出了具有部件10010-10030的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器10010中的环形二维码的编码方法、解码方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器10020)所执行,以完成本申请。
实施例六
本实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机可读指令,计算机可读指令被处理器执行时实现实施例中的环形二维码的编码方法、解码方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中的环形二维码的编码方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
需要说明的是,以上仅为本申请的优选实施例,并非因此限制本申请的专利保护范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (20)
- 一种环形二维码的编码方法,包括:将待编码数据转换为二进制数据;确定待生成二维码的二维码版本,所述待生成二维码包括对应于同一中心的多个环,每个环对应多个数据位;根据所述二维码版本,确定所述多个环的多个有效数据位;将所述多个有效数据位划分多个数据段,所述多个数据段包括保留字段和内容数据段,所述保留字段用于编码元数据,所述内容数据段用于编码所述二进制数据;根据所述元数据和所述二进制数据,在所述多个有效数据位生成对应的码元图案,以得到环形二维码。
- 根据权利要求1所述的环形二维码的编码方法,所述确定待生成二维码的二维码版本,包括:将所述待编码数据的信息量,确定所述二维码版本;其中,不同的二维码版本对应不同的数量的多个有效数据位。
- 根据权利要求1所述的环形二维码的编码方法,还包括:基于预设时钟方向,将单个环的有效数据位组合为一个数据段,以得到多个环的多个数据段。
- 根据权利要求1所述的环形二维码的编码方法,还包括:依据所述多个环中的最内环到最外环的顺序,确定所述多个数据段的先后顺序。
- 根据权利要求1至4任意一项所述的环形二维码的编码方法,还包括:在所述待生成二维码的边缘配置多个定位符,分布在所述多个环的最外环上。
- 根据权利要求5所述的环形二维码的编码方法,所述方法还包括:将所述多个定位符占据的数据位确定为无效数据位,所述无效数据位不用于装载信息。
- 根据权利要求1至4任意一项所述的环形二维码的编码方法,所述方法还包括:在所述多个环中最内环的环内生成目标图案,其中,所述目标图案包括身份标识。
- 一种环形二维码的编码系统,包括:转换模块,用于将待编码数据转换为二进制数据;第一确定模块,用于确定待生成二维码的二维码版本,所述待生成二维码包括对应于同一中心的多个环,每个环对应多个数据位;第二确定模块,用于根据所述二维码版本,确定所述多个环的多个有效数据位;划分模块,用于将所述多个有效数据位划分多个数据段,所述多个数据段包括保留字段和内容数据段,所述保留字段用于编码元数据,所述内容数据段用于编码所述二进制数据;生成模块,用于根据所述元数据和所述二进制数据,在所述多个有效数据位生成对应 的码元图案,以得到环形二维码。
- 根据权利要求8所述的环形二维码的编码系统,所述第二确定模块还用于:将所述待编码数据的信息量,确定所述二维码版本;其中,不同的二维码版本对应不同的数量的多个有效数据位。
- 根据权利要求8所述的环形二维码的编码方法,所述系统还包括组合模块,组合模块用于:基于预设时钟方向,将单个环的有效数据位组合为一个数据段,以得到多个环的多个数据段。
- 根据权利要求8所述的环形二维码的编码系统,所述系统还包括第三确定模块,第三确定模块用于:依据所述多个环中的最内环到最外环的顺序,确定所述多个数据段的先后顺序。
- 根据权利要求8至11任意一项所述的环形二维码的编码系统,所述系统还包括配置模块,配置模块用于:在所述待生成二维码的边缘配置多个定位符,分布在所述多个环的最外环上。
- 根据权利要求5所述的环形二维码的编码系统,所述系统还包括第四确定模块,第四确定模块用于:将所述多个定位符占据的数据位确定为无效数据位,所述无效数据位不用于装载信息。
- 根据权利要求8至11任意一项所述的环形二维码的编码系统,所述生成模块,还用于:在所述多个环中最内环的环内生成目标图案,其中,所述目标图案包括身份标识。
- 一种环形二维码的解码方法,包括:获取环形二维码,所述环形二维码包括多个环,所述多个环对应同一个中心,每个环对应多个数据位;根据所述二维码版本,确定所述多个环的多个有效数据位;所述多个有效数据位被划分多个数据段,所述多个数据段包括保留字段和内容数据段,所述保留字段用于保存元数据,所述内容数据段用于保存二进制数据;根据所述多个有效数据位对应多个有效码元图案,获取所述环形二维码的二进制数据。
- 根据权利要求15所述的环形二维码的解码方法,还包括:基于预设时钟方向,将单个环的有效数据位确定为一个数据段,以得到多个环的多个数据段;依据所述多个环中的最内环到最外环的顺序,确定所述多个数据段的先后顺序。
- 一种环形二维码的解码系统,包括:第一获取模块,用于获取环形二维码,所述环形二维码包括多个环,所述多个环对应同一个中心,每个环对应多个数据位;确定模块,用于根据所述二维码版本,确定所述多个环的多个有效数据位;所述多个有效数据位被划分多个数据段,所述多个数据段包括保留字段和内容数据段,所述保留字 段用于保存元数据,所述内容数据段用于保存二进制数据;第二获取模块,用于根据所述多个有效数据位对应多个有效码元图案,获取所述环形二维码的二进制数据。
- 根据权利要求17所述的环形二维码的解码系统,所述系统还包括第三确定模块,第三确定模块用于:基于预设时钟方向,将单个环的有效数据位确定为一个数据段,以得到多个环的多个数据段;依据所述多个环中的最内环到最外环的顺序,确定所述多个数据段的先后顺序。
- 一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现:权利要求1至7任意一项所述的环形二维码的编码方法的步骤;和/或实现权利要求15至16任意一项所述的环形二维码的解码方法的步骤。
- 一种计算机可读存储介质,所述计算机可读存储介质其上存储有计算机可读指令,所述计算机可读指令可被至少一个处理器所执行,以使所述至少一个处理器执行:权利要求1至7任意一项所述的环形二维码的编码方法的步骤;和/或权利要求15至16任意一项所述的环形二维码的解码方法的步骤。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211533389.7 | 2022-11-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024113874A1 true WO2024113874A1 (zh) | 2024-06-06 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103605950B (zh) | 一种可信二维码中签名的隐藏方法及系统 | |
US20100327066A1 (en) | Network based reliable decoding of bar codes | |
JP2021513141A (ja) | 2次元バーコードの生成及び識別 | |
CN108985066B (zh) | 一种智能合约安全漏洞检测方法、装置、终端及存储介质 | |
CN110489466B (zh) | 邀请码的生成方法、装置、终端设备及存储介质 | |
CN102724668A (zh) | 一种基于二维码图形的wifi网络信息共享方法及系统 | |
CN110597814B (zh) | 结构化数据的序列化、反序列化方法以及装置 | |
CN111539502B (zh) | 防伪二维码的生成方法、装置、服务器及存储介质 | |
CN110519294B (zh) | 身份认证方法、装置、设备及系统 | |
CN103997406B (zh) | 基于二维码的身份认证方法和装置 | |
CN112001376B (zh) | 基于开源组件的指纹识别方法、装置、设备及存储介质 | |
CN101859398B (zh) | 二维阵列码 | |
Kieseberg et al. | Malicious pixels using QR codes as attack vector | |
CN110210211A (zh) | 一种数据保护的方法和计算设备 | |
CN114051006A (zh) | 数据发送方法、装置、计算机设备以及存储介质 | |
CN107220689A (zh) | 位置编码图案生成方法、装置、设备和可读存储介质 | |
WO2021012732A1 (zh) | 基于区块链的信息验证装置、方法及存储介质 | |
WO2024113874A1 (zh) | 环形二维码的编码方法和解码方法 | |
CN103995815A (zh) | 手持终端以及通过手持终端访问网站的方法 | |
US20150156023A1 (en) | Method of authenticating and verifying data packet transmission, and apparatuses for performing the same | |
CN109214488B (zh) | 一种基于图形编码数据进行信息传递的方法及系统 | |
CN111355709A (zh) | 数据验证方法、装置、电子设备及计算机可读存储介质 | |
CN113051622B (zh) | 索引构建方法、装置、设备和存储介质 | |
CN102254204B (zh) | 字形码的译码方法 | |
CN115809469A (zh) | 环形二维码的编码方法和解码方法 |