CN107122067B - 物理介质表面位置编解码的方法、装置和可读存储介质 - Google Patents

物理介质表面位置编解码的方法、装置和可读存储介质 Download PDF

Info

Publication number
CN107122067B
CN107122067B CN201710309145.3A CN201710309145A CN107122067B CN 107122067 B CN107122067 B CN 107122067B CN 201710309145 A CN201710309145 A CN 201710309145A CN 107122067 B CN107122067 B CN 107122067B
Authority
CN
China
Prior art keywords
code
differential
sequence
bit
coding
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.)
Active
Application number
CN201710309145.3A
Other languages
English (en)
Other versions
CN107122067A (zh
Inventor
陈刚
谭伟
姚锦辉
肖云龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN201710309145.3A priority Critical patent/CN107122067B/zh
Publication of CN107122067A publication Critical patent/CN107122067A/zh
Application granted granted Critical
Publication of CN107122067B publication Critical patent/CN107122067B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0354Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves

Abstract

本发明的实施方式提供了一种物理介质表面位置编解码的方法、装置和可读存储介质。该方法包括:确定位置码的比特数目M;确定第一个位置码;以及通过对第一个位置码进行循环移位,建立位置码与位置码序号之间的序号比特编码表;其中,在序号比特编码表中位置码与位置码序号一一对应,且位置码序号按照一预先设定的第一顺序排列;其中,序号比特编码表中的位置码用于对物理介质表面的位置进行编码,得到的编码结果由预设编码图案呈现在物理介质表面上。本发明的位置编解码方法使得编码算法运算量小同时减低了确定位置信息的限制条件。

Description

物理介质表面位置编解码的方法、装置和可读存储介质
技术领域
本发明的实施方式涉及位置编码技术领域,更具体地,本发明的实施方式涉及用于物理介质表面位置编码的编解码方法、装置和可读存储介质。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
现有技术中,可以将包含了一定信息(如数值信息、网址信息、坐标信息、文本信息或加密信息等)的编码图案打印在物理介质表面上。从而可以通过采集、分析编码图案来得到其中包含的信息。常见的编码图案如二维码、条形码等。
目前,有一种打印于物理介质表面(如纸张)上、用于表示该物理介质表面的坐标位置的编码图案。在该编码图案中包含若干可读标记符号。该可读标记符号很小,例如直径小于0.5mm。该可读标记符号可以通过如数码笔等工具读出,并由此确定数码笔在该物理介质表面上的书写笔迹。用来生成该种表示位置信息的编码图案的编码算法被称为位置编码算法。
现有的位置编码算法如Anoto公司的位置编码算法,是通过位置编码算法对物理介质表面的坐标位置进行编码,得到由非常细小的点符号组成的点阵图案,并将其打印到普通的纸张上成为数码纸,从而为数码笔提供坐标参数信息,保证数码笔在数码纸上书写时,能够准确地记录书写时的笔尖坐标,进而记录书写笔迹。
发明内容
但是,现有的位置编码算法中,算法简单的编码方案虽然运算量低,对CPU等硬件的要求低,但所提供的编码的坐标数量有限,即坐标编码的范围有限,无法满足位置获取的精度要求;而算法复杂的编码方案运算量非常高,对硬件要求高。
为此,非常需要一种改进的编解码方法,以使编码算法的运算量小且确定位置信息的限制条件低。
在本上下文中,本发明的实施方式期望提供一种用于物理介质表面位置编码的编解码方法、装置和可读存储介质。
在本发明实施方式的第一方面中,提供了一种用于物理介质表面位置编码的编码方法,包括:确定位置码的比特数目M;确定第一个位置码;以及通过对第一个位置码进行循环移位,建立位置码与位置码序号之间的序号比特编码表;其中,在序号比特编码表中位置码与位置码序号一一对应,且位置码序号按照一预先设定的第一顺序排列;其中,序号比特编码表中的位置码用于对物理介质表面的位置进行编码,得到的编码结果由预设编码图案呈现在物理介质表面上。
在本发明的一些实施例中,上述通过对第一个位置码进行循环移位,建立位置码与位置码序号之间的序号比特编码表包括:将第一个位置码列在序号比特编码表中;将第一个位置码沿第一方向移1位,并将末位补0或1中的一个,生成第二比特序列;确定第二比特序列是否已出现在序号比特编码表中;当第二比特序列未出现在序号比特编码表中时,将第二比特序列确定为第二个位置码,按照位置码序号的第一顺序,在序号比特编码表中将第二个位置码排列在第一个位置码之后;以及当第二比特序列已出现在序号比特编码表中时,将末位补0或1中的另一个,生成新的第二比特序列,将新的第二比特序列确定为第二个位置码,按照位置码序号的第一顺序,在序号比特编码表中将第二个位置码排列在第一个位置码之后。
在本发明的一些实施例中,上述通过对第一个位置码进行循环移位,建立位置码与位置码序号之间的序号比特编码表,还包括:K依次取值2、3、4……、(2M-1),相应的依次执行以下操作:将第K个位置码沿第一方向移1位,并将末位补0或1中的一个,生成第K+1比特序列;确定第K+1比特序列是否已出现在序号比特编码表中;当第K+1比特序列未出现在序号比特编码表中时,将第K+1比特序列确定为第K+1个位置码,按照位置码序号的第一顺序,在序号比特编码表中将第K+1个位置码排列在第K个位置码之后;以及当第K+1比特序列已出现在序号比特编码表中时,将末位补0或1中的另一个,生成新的第K+1比特序列,将新的第K+1比特序列确定为第K+1个位置码,按照位置码序号的第一顺序,在序号比特编码表中将第K+1个位置码排列在第K个位置码之后。
在本发明实施方式的第二方面中,提供了一种用于物理介质表面位置编码的编码方法,包括:确定位置码的比特数目M;根据位置码的比特数目M,确定差分码的位数为N,其中N大于等于2,且小于等于M-1;在0-(2M-1)之间选择由T个整数值构成的整数值集合,并从整数值集合中选择1到N个整数值作为第一个差分码的各位数,形成第一个差分码,其中,T大于等于2,且小于等于(2M-1);以及通过对第一个差分码进行循环移位,建立差分码与差分码序号之间的差分位置编码表;其中,在差分位置编码表中差分码与差分码序号一一对应,且差分码序号按照一预先设定的第二顺序排列;其中,差分位置编码表中的差分码用于对物理介质表面的位置进行编码,得到的编码结果由预设编码图案呈现在物理介质表面上。
在本发明的一些实施例中,上述通过对第一个差分码进行循环移位,建立差分码与差分码序号之间的差分位置编码表包括:将第一个差分码列入差分位置编码表;将第一个差分码沿第一方向移1位,并将末位设为按预先设定的第三顺序排列的、整数值集合T个数值中的第P个数值,生成第二数值序列;以及执行下述将第二数值序列列入差分位置编码表的步骤:确定第二数值序列是否已出现在差分位置编码表中;当第二数值序列未出现在差分位置编码表中时,将第二数值序列确定为第二个差分码,按差分码序号的第二顺序,在差分位置编码表中将第二个差分码排列在第一个差分码之后;及当第二数值序列已出现在差分位置编码表中时,将末位设为按预先设定的第三顺序排列的、整数值集合T个数值中的第P+1个数值,生成新的第二数值序列,并将P的值赋值为P+1;其中,P的初始值为1;并重新执行将第二数值序列列入差分位置编码表的步骤。
在本发明的一些实施例中,上述通过对第一个差分码进行循环移位,建立差分码与差分码序号之间的差分位置编码表,还包括:对K依次取值2、3、4……、(2M-1),相应的依次执行以下操作:将第K个差分码列入差分位置编码表;将第K个差分码沿第一方向移1位,并将末位设为按预先设定的第三顺序排列的、整数值集合T个数值中的第L个数值,生成第K+1数值序列;以及执行下述将第K+1数值序列列入差分位置编码表的步骤:确定第K+1数值序列是否已出现在差分位置编码表中;当第K+1数值序列未出现在差分位置编码表中时,将第K+1数值序列确定为第K+1个差分码,按差分码序号的第二顺序,在差分位置编码表中将第K+1个差分码排列在第K个差分码之后;及当第K+1数值序列已出现在差分位置编码表中时,将末位设为按预先设定的第三顺序排列的、整数值集合T个数值中的第L+1个数值,生成新的第K+1数值序列,并将L的值赋值为L+1;其中,L的初始值为1;并重新执行将第K+1数值序列列入差分位置编码表的步骤。
在本发明的一些实施例中,上述方法还包括:根据差分位置编码表中的差分码,建立坐标序号与起始位置码序号之间的起始位置编码表;其中,在起始位置编码表中坐标序号与起始位置码序号一一对应。
在本发明的一些实施例中,根据差分位置编码表中的差分码,建立坐标序号与起始位置码序号之间的起始位置编码表包括:从0-(2M-1)中选择一个整数,作为第一个起始位置码序号;以及将差分位置编码表中的第X个差分码的N位中每一位上的数值及其他每个差分码最末位上的数值,按照各差分码在差分位置编码表中的顺序,组装一[TN+N-1]位的码序列,以码序列中每一位数为步进,确定起始位置编码表中第一个起始位置码序号之后的其余[TN+N-1]个起始位置码序号,其中,X为预设自然数。
在本发明的一些实施例中,上述方法还包括:将起始位置编码表中[TN+N]个起始位置码序号分别作为第一方向编码表中[TN+N]行的第一个位置码序号;以及从各行中第一个位置码序号开始,依次加1并对2M取模,得到各行后续的位置码序号,以构成第一方向编码表。
在本发明的一些实施例中,上述方法还包括:将起始位置编码表中[TN+N]个起始位置码序号分别作为第二方向编码表中[TN+N]列的第一个位置码序号;以及从各列中第一个位置码序号开始,依次加1并对2M取模,得到各列后续的位置码序号,以构成第二方向编码表。
在本发明的一些实施例中,上述方法还包括:根据上述的序号比特编码表,分别将第一方向编码表中的位置码序号及第二方向编码表中的位置码序号转换为位置码,以构建第一方向二进制编码表及第二方向二进制编码表。
在本发明的一些实施例中,上述方法还包括:根据第一方向二进制编码表及第二方向二进制编码表,确定编码图案;以及将编码图案呈现在物理介质表面上。
在本发明实施方式的第三方面中,提供了一种用于物理介质表面位置编码的解码方法,包括:获取物理介质表面的位置编码图案;根据编码图案,获取(N+1)*(N+1)比特的第一二进制编码矩阵;根据上述的序号比特编码表,将第一二进制编码矩阵转换为排列为一列的N+1个第一位置码序号;分别确定相邻的两两第一位置码序号之间的差值,并分别将差值模2M,以获取第一二进制编码矩阵的差分码;根据上述的差分位置编码表,确定第一二进制编码矩阵的差分码对应的第一二进制编码矩阵在第一方向上的坐标序号;以及将包含坐标序号的坐标信息发送,和/或根据坐标信息回放物理介质表面之上的书写笔迹;其中,M为序号比特编码表中的位置码的比特数,N为差分码的位数。
在本发明的一些实施例中,上述还包括:根据位置编码图案,获取(N+1)*(N+1)比特的第二二进制编码矩阵;根据序号比特编码表,将第二二进制编码矩阵转换为排列为一行的N+1个第二位置码序号;分别确定相邻的两两第二位置码序号之间的差值,并分别将差值模2M,以获取第二二进制编码矩阵的差分码;以及根据差分码位置编码表,确定第二二进制编码矩阵的差分码对应的第二二进制编码矩阵在第二方向上的坐标序号。
在本发明实施方式的第四方面中,提供了一种用于物理介质表面位置编码的编码装置,包括:比特数目确定模块,用于确定位置码的比特数目M;第一位置码确定模块,用于确定第一个位置码;以及序号编码表建立模块,用于通过对第一个位置码进行循环移位,建立位置码与位置码序号之间的序号比特编码表;其中,在序号比特编码表中位置码与位置码序号一一对应,且位置码序号按照一预先设定的第一顺序排列;其中,序号比特编码表中的位置码用于对物理介质表面的位置进行编码,得到的编码结果由预设编码图案呈现在物理介质表面上。
在本发明实施方式的第五方面中,提供了一种用于物理介质表面位置编码的编码装置,包括:比特数目确定模块,用于确定位置码的比特数目M;差分码位数确定模块,用于根据位置码的比特数目M,确定差分码的位数为N,其中N大于等于2,且小于等于M-1;初始差分码确定模块,用于在0-(2M-1)之间选择由T个整数值构成的整数值集合,并从整数值集合中选择1到N个整数值作为第一个差分码的各位数,形成第一个差分码,其中,T大于等于2,且小于等于(2M-1);以及差分编码表确定模块,用于通过对第一个差分码进行循环移位,建立差分码与差分码序号之间的差分位置编码表;其中,在差分位置编码表中差分码与差分码序号一一对应,且差分码序号按照一预先设定的第二顺序排列;其中,差分位置编码表中的差分码用于对物理介质表面的位置进行编码,得到的编码结果由预设编码图案呈现在物理介质表面上。
在本发明实施方式的第六方面中,提供了一种用于物理介质表面位置编码的解码装置,包括:编码图案获取模块,用于获取物理介质表面的位置编码图案;编码矩阵获取模块,用于根据编码图案,获取(N+1)*(N+1)比特的第一二进制编码矩阵;位置码序号转换模块,用于根据上述的序号比特编码表,将第一二进制编码矩阵转换为排列为一列的N+1个第一位置码序号;差分码获取模块,用于分别确定相邻的两两第一位置码序号之间的差值,并分别将差值模2M,以获取第一二进制编码矩阵的差分码;坐标序号确定模块,用于根据上述方法中的差分码位置编码表,确定第一二进制编码矩阵的差分码对应的第一二进制编码矩阵在第一方向上的坐标序号;以及坐标信息处理模块,用于将包含坐标序号的坐标信息发送,和/或根据坐标信息回放物理介质表面之上的书写笔迹;其中,M为序号比特编码表中的位置码的比特数,N为差分码的位数。
在本发明实施方式的第七方面中,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一种编码方法。
在本发明实施方式的第八方面中,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时上述任一种解码方法。
在本发明实施方式的第九方面中,提供了一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任一种编码方法。
在本发明实施方式的第九方面中,提供了一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任一种解码方法。
根据本发明实施方式的用于物理介质表面位置编码的编解码方案,其通过空间换时间,来降低运算量,从而降低算法对CPU等硬件性能的要求;此外该编解码方案无需使用“浮动”窗口,即对于编码的比特位数为m位的位置编码,解码时仅需任意m*m个可读符号即可解码,从而减低了求位置信息的限制条件,使得方案设计更加灵活,同时减低了对高速摄像头分辨率及视场(fov)的要求。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示意性地示出了具有点阵编码图案的数码纸的示意图。;
图2示意性地示出了根据本发明实施方式的用于物理介质表面位置编码的编码方法的流程图;
图3示意性地示出了根据本发明另一实施例的用于物理介质表面位置编码的编码方法的流程图;
图4示意性地示出了根据本发明又一实施例的用于物理介质表面位置编码的编码方法的流程图;
图5示意性地示出了根据本发明另一实施方式的用于物理介质表面位置编码的编码方法的流程图;
图6示意性地示出了根据本发明另一实施例的用于物理介质表面位置编码的编码方法的流程图;
图7示意性地示出了根据本发明又一实施例的用于物理介质表面位置编码的编码方法的流程图;
图8示意性地示出了根据本发明再一实施例的用于物理介质表面位置编码的编码方法的流程图;
图9示意性地示出了根据本发明再一实施例的用于物理介质表面位置编码的编码方法的流程图;
图 10示意性地示出了根据本发明再一实施例的用于物理介质表面位置编码的编码方法的流程图;
图11示意性地示出了第一方向编码表的示意图;
图12示意性地示出了第二方向编码表的示意图;
图 13示意性地示出了根据本发明再一实施例的用于物理介质表面位置编码的编码方法的流程图;
图 14示意性地示出了根据本发明实施方式的物理介质表面位置编码的解码方法的流程图;
图 15示意性地示出了根据本发明另一实施例的物理介质表面位置编码的解码方法的流程图;
图 16示意性地示出了根据本发明实施方式的用于物理介质表面位置编码的编码装置的框图;
图 17示意性地示出了根据本发明另一实施方式的用于物理介质表面位置编码的编码装置的框图;
图 18示意性地示出了根据本发明实施方式的用于物理介质表面位置编码的解码装置的框图;
图19示意性地示出了根据本发明实施方式的电子设备的框图;
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种用于物理介质表面位置编码的编解码方法、装置和可读存储介质。
此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
发明人发现现有的位置编码算法中,算法简单的编码方案虽然运算量低,对CPU等硬件的要求低,但所提供的编码的坐标数量有限,即坐标编码的范围有限,无法满足位置获取的精度要求;而算法复杂的编码方案运算量非常高,对硬件要求高。
因此,发明人经过研究发明了一种用于物理介质表面位置编码的编解码方案,其通过空间换时间,来降低运算量,从而降低算法对CPU等硬件性能的要求;此外该编解码方案无需使用“浮动”窗口,即对于编码的比特位数为m位的位置编码,解码时仅需任意m*m个可读符号即可解码,从而减低了求位置信息的限制条件,使得方案设计更加灵活,同时减低了对高速摄像头分辨率的要求。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
应用场景总览
图1示意性地示出了具有点阵编码图案的数码纸的示意图。参考图1,通过位置编码算法对数码纸表面的位置信息进行编码后得到的编码图案中包括很多肉眼几乎不可见的可读符号,可读符号可由直径为50μm的圆点组成,相邻符号之间的间距可为300μm。每6*6=36个点,构成一个最小的数据单元,分布在1.8mm*1.8mm=3.24mm2面积上。可读符号例如可以根据圆点位置的不同分为四种,如图1中最右边的示意图所示,分别为圆点位于两条参考线相交点右边、左边、上边及下边四种符号,每种符号可以使用两位二进制比特表示,例如00、01、10及11。
数码笔在数码纸上书写时,对笔尖经过的点的信息(如点阵的坐标、书写速度、时间及压力等)进行提取、存储和发送,其本身并不对这些信息进行处理。数码笔将生成的信息传输到处理器通过解码算法进行解析处理,从而还原笔迹坐标及其他笔迹动态数据等。上述应用场景中数码纸上的编码图案示例不对本发明的保护范围形成限制,本发明的方案可以使用其他的编码图案呈现位置编码结果,本发明的重点在于改进的位置编码算法,重点并不在于用何种图案来呈现位置编码结果。
示例性方法
下面结合图1的应用场景,参考图2~图15来描述根据本发明示例性实施方式的用于物理介质表面位置编码的编解码方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
图2示意性地示出了根据本发明实施方式的用于物理介质表面位置编码的编码方法的流程图。如图2所示,方法10包括:
在步骤S102中,确定位置码的比特数目M。
首先,确定位置码采用的比特数目,以M=4为例,则有0000~1111共2M=16个位置码。
在步骤S104中,确定第一个位置码。
例如,仍以M=4为例,可以从0000~1111中选择一个位置码作为第一个位置码。
在步骤S106中,通过对第一个位置码进行循环移位,建立位置码与位置码序号之间的序号比特编码表。
其中,在该序号比特编码表中,位置码与位置码序号一一对应,且位置码序号按照一预先设定的第一顺序排序。
例如,位置码序号通过十进制数表示,仍以M=4为例,位置码序号为0~15;第一顺序例如为由小到大的顺序,则在该序号比特编码表中,确定的第一个位置码对应的位置码序号为0。
通过对第一个位置码进行循环移位,例如将该第一个位置码沿第一方向移1位,并将末位补0或1从而得到下一个位置码。末位是指第一方向的反方向的最后一位,如果第一方向为左,则末位指最右边的一位,如果第一方向为右,则末位指最左边的一位。
所构建的比特位置编码表中的位置码可用于对物理介质表面的位置进行编码,得到的编码结果由预设编码图案呈现在该物理介质表面上,例如可以如上述“应用场景总览”部分所述,将其打印于数码纸之上,用于确定数码笔的书写笔迹。
图3示意性地示出了根据本发明另一实施例的用于物理介质表面位置编码的编码方法的流程图。图3为图2中步骤S106提供了一种实施方法。如图3所示,步骤S106包括:
在步骤S1061中,将第一个位置码列在序号比特编码表中。
同上,仍以M=4为例,位置码序号为0~15;第一顺序例如为由小到大的顺序,则在该序号比特编码表中,确定的第一个位置码对应的位置码序号为0。
不失一般性地,为了便于说明书,在下述说明中,均以第一个位置码为1111为例。
在步骤S1062中,将第一个位置码沿第一方向移1位,并将末位补0或1中的其中之一,生成第二比特序列。
同上,末位是指第一方向的反方向的最后一位,如果第一方向为左,则末位指最右边的一位,如果第一方向为右,则末位指最左边的一位。
以第一方向为左,末位补0为例。将第一个位置码1111左移1位,且末位补0,则可得到第二比特序列1110。
在步骤S1063中,确定第二比特序列是否已出现在序号比特编码表中,如果否,则进入步骤S1064;否则,则进入步骤S1065。
在一些实施例中,可以通过一标志映射图来确定第二比特序列是否已出现在序号比特编码表中。具体地,构建一第一标志映射图,其中包括序号分别为0~(2M-1)的2M个标志位,初始时每个标志位被设置为未占用(如置位为0)。首先将以第一个位置码换算得到的十进制数为序号的标志位置位已占用(如置位为1)。之后,将第二比特序列换算为十进制数,判断在第一标志映射图中以该十进制数为序号的标志位是否为未占用,如果是,则该第二比特序列未出现在序号比特编码表中;否则,该第二比特序列已出现在序号比特编码表中。
在步骤S1064中,当第二比特序列未出现在序号比特编码表中时,将第二比特序列确定为第二个位置码,按照位置码序号的第一顺序,在序号比特编码表中,将第二个位置码排列在第一个位置码之后。
在步骤S1065中,当第二比特序列出现在序号比特编码表中时,将末位补0或1中的另外一个,生成新的第二比特序列,将新的第二比特序列确定为第二个位置码,按照位置码序号的第一顺序,在序号比特编码表中,将第二个位置码排列在第一个位置码之后。
图4示意性地示出了根据本发明又一实施例的用于物理介质表面位置编码的编码方法的流程图。图4为图2中步骤S106提供了一种进一步的实施方法。如图4所示,步骤S106还包括:
对K依次取值2、3、4、……、(2M-1),并依次的执行以下步骤:
在步骤S1066中,将第K个位置码列在序号比特编码表中。
以K=2为例,第二个位置码如为上述的1110,则将1110列入序号比特编码表中。
在步骤S1067中,将第K个位置码沿第一方向移1位,并将末位补0或1中的其中之一,生成第K+1比特序列。
同上,末位是指第一方向的反方向的最后一位,如果第一方向为左,则末位指最右边的一位,如果第一方向为右,则末位指最左边的一位。
以第一方向为左,末位补0为例。将第二个位置码1110左移1位,且末位补0,则可得到第三比特序列1100。
在步骤S1068中,确定第K+1比特序列是否已出现在序号比特编码表中,如果否,则进入步骤S1069;否则,则进入步骤S1070。
在一些实施例中,仍可以通过标志映射图来确定第K+1比特序列是否已出现在序号比特编码表中。具体地,将第K+1比特序列换算为十进制数,判断在第一标志映射图中以该十进制数为序号的标志位是否为未占用,如果是,则该第K+1比特序列未出现在序号比特编码表中;否则,该第K+1比特序列已出现在序号比特编码表中。
在步骤S1069中,当第K+1比特序列未出现在序号比特编码表中时,将第K+1比特序列确定为第K+1个位置码,按照位置码序号的第一顺序,在序号比特编码表中,将第K+1个位置码排列在第K个位置码之后。
在步骤S1070中,当第K+1比特序列出现在序号比特编码表中时,将末位补0或1中的另外一个,生成新的第K+1比特序列,将新的第K+1比特序列确定为第K+1个位置码,按照位置码序号的第一顺序,在序号比特编码表中,将第K+1个位置码排列在第K个位置码之后。
仍以M=4,第一个位置码为1111,第一方向为左为例,依次执行上述各步骤后,得到的序号比特编码表例如如表一所示:
表一 序号比特编码表
位置码序号 位置码
0 1 1 1 1
1 1 1 1 0
2 1 1 0 0
3 1 0 0 0
4 0 0 0 0
5 0 0 0 1
6 0 0 1 0
7 0 1 0 0
8 1 0 0 1
9 0 0 1 1
10 0 1 1 0
11 1 1 0 1
12 1 0 1 0
13 0 1 0 1
14 1 0 1 1
15 0 1 1 1
图5示意性地示出了根据本发明另一实施方式的用于物理介质表面位置编码的编码方法的流程图。如图5所示,方法20包括:
在步骤S202中,确定位置码的比特数目M。
首先,确定位置码采用的比特数目,以M=4为例,则有0000~1111共2M=16个位置码。
在步骤S204中,根据位置码的比特数目M,确定差分码的位数为N,其中N大于或等于2,且小于或等于M-1。
例如,仍以M=4为例,则差分码的位数N大于或等于2,且小于或等于3。
在步骤S206中,在0-(2M-1)之间选择由T个整数值构成的整数值集合,并从该整数值集合中选择1到N个整数值作为第一个差分码的各位数,形成第一个差分码,其中T大于或等于2,且小于或等于(2M-1)。
例如,仍以M=4为例,T大于或等于2,且小于或等于15。以N=3,T=3为例,在0~15之间选择0、1及2共3个整数值作为该整数值集合,如可以选择222作为第一个差分码。
在步骤S208中,通过对第一个差分码进行循环移位,建立差分码与差分码序号之间的差分位置编码表。
在差分位置编码表中,差分码与差分码序号一一对应,且差分码序号按照一预先设定的第二顺序排列。
例如,差分码序号通过十进制数表示,仍以M=4,N=3及T=3为例,则共有TM=27个差分码,差分码序号为0~26;第一顺序例如为由小到大的顺序,则在该差分位置编码表中,确定的第一个差分码对应的位置码序号为0。
通过对第一个差分码进行循环移位,例如将第一个差分码沿第一方向移1位,并将末位设为按预先设定的第三顺序排列的、整数值集合T个数值中的第P个数值,生成第二数值序列。同上,末位是指第一方向的反方向的最后一位,如果第一方向为左,则末位指最右边的一位,如果第一方向为右,则末位指最左边的一位。
所构建的差分位置编码表中的差分码用于对物理介质表面的位置进行编码,得到的编码结果由预设编码图案呈现在所述物理介质表面上,例如可以如上述“应用场景总览”部分所述,将其打印于数码纸之上,用于确定数码笔的书写笔迹。
图6示意性地示出了根据本发明另一实施例的用于物理介质表面位置编码的编码方法的流程图。图6为图5中步骤S208提供了一种实施方法。如图6所示,步骤S208包括:
在步骤S2081中,将第一个差分码列在差分位置编码表中。
同上,仍以M=4,N=3及T=3为例,序号为0~26;第一顺序例如为由小到大的顺序,则在该序号比特编码表中,确定的第一个位置码对应的位置码序号为0。
不失一般性地,为了便于说明书,在下述说明中,均以第一个差分码为222为例。
在步骤S2082中,将第一个差分码沿第一方向移1位,并将末位补为按预先设定的第三顺序排列的、整数值集合T个数值中的第P个数值,生成第二数值序列。
其中,P的初始值为1。
同上,末位是指第一方向的反方向的最后一位,如果第一方向为左,则末位指最右边的一位,如果第一方向为右,则末位指最左边的一位。
以第一方向为左,整数值集合为0、1及2,第三顺序为由小到大,P=1为例。将第一个差分码222左移1位,且末位补0,则可得到第二比特序列220。
在步骤S2083中,确定第二数值序列是否已出现在差分位置编码表中,如果否,则进入步骤S2084;否则,则进入步骤S2085。
在一些实施例中,可以通过一标志映射图来确定第二数值序列是否已出现在序号比特编码表中。具体地,构建一第二标志映射图,其中包括序号分别为0~(TN-1)的TN个标志位,初始时每个标志位被设置为未占用(如置位为0)。首先确定第一个差分码的十进制数值,例如可以3为底,计算第一个差分码的十进制数值,如222的十进制数值为2*32+2*31+2*30=26。将以第一个差分码换算得到的十进制数为序号的标志位置位为已占用(如置位为1)。之后,确定第二数值序列的十进制数值,判断在第二标志映射图中以该十进制数为序号的标志位是否为未占用,如果是,则该第二数值序列未出现在差分位置编码表中;否则,该第二数值序列已出现在差分位置编码表中。
在步骤S2084中,当第二数值序列未出现在差分位置编码表中时,将第二数值序列确定为第二个差分码,按照差分码序号的第二顺序,在差分位置编码表中,将第二个差分码排列在第一个差分码之后。
在步骤S2085中,当第二数值序列已出现在差分位置编码表中时,将末位设为按预先设定的第三顺序排列的、整数值集合T个数值中的第P+1个数值,生成新的第二数值序列,并将P的值赋值为P+1;并重新进入步骤S2083。
图7示意性地示出了根据本发明又一实施例的用于物理介质表面位置编码的编码方法的流程图。图7为图5中步骤S208提供了一种进一步的实施方法。如图7所示,步骤S208还包括:
对K依次取值2、3、4、……、(2M-1),并依次的执行以下步骤:
在步骤S2086中,将第K个差分码列在差分位置编码表中。
以K=2为例,第二个差分码如为上述的220,则将220列入序号比特编码表中。
在步骤S2087中,将第K个差分码沿第一方向移1位,并将末位补为按预先设定的第三顺序排列的、整数值集合T个数值中的第P个数值,生成第K+1数值序列。
其中,P的初始值为1。
同上,末位是指第一方向的反方向的最后一位,如果第一方向为左,则末位指最右边的一位,如果第一方向为右,则末位指最左边的一位。
以第一方向为左,整数值集合为0、1及2,第三顺序为由小到大,P=1为例。将第二个差分码220左移1位,且末位补0,则可得到第三数值序列200。
在步骤S2088中,确定第K+1数值序列是否已出现在差分位置编码表中,如果否,则进入步骤S2089;否则,则进入步骤S2090。
在一些实施例中,仍可以通过标志映射图来确定第K+1数值序列是否已出现在差分位置编码表中。具体地,将第K+1数值序列换算为十进制数,例如可以3为底,计算第二个差分码的十进制数值,如220的十进制数值为2*32+2*31+0*30=24。判断在第二标志映射图中以该十进制数为序号的标志位是否为未占用,如果是,则该第K+1数值序列未出现在差分位置编码表中;否则,该第K+1数值序列已出现在差分位置编码表中。
在步骤S2089中,当第K+1数值序列未出现在差分位置编码表中时,将第K+1数值序列确定为第K+1个差分码,按照差分码序号的第二顺序,在差分位置编码表中,将第K+1个差分码排列在第K个差分码之后。
在步骤S1070中,当第K+1数值序列已出现在差分位置编码表中时,将末位设为按预先设定的第三顺序排列的、整数值集合T个数值中的第P+1个数值,生成新的第K+1数值序列,并将P的值赋值为P+1;并重新进入步骤S2088。
仍以M=4,N=3,T=3,第一个位置码为222,第一方向为左,整数值集合为0、1及2且第三顺序为从小到大为例,依次执行上述各步骤后,得到的差分位置编码表例如如表二所示:
表二 差分位置编码表
Figure BDA0001286630490000181
Figure BDA0001286630490000191
图8示意性地示出了根据本发明再一实施例的用于物理介质表面位置编码的编码方法的流程图。如图8所示,方法20还进一步包括:
在步骤S210中,根据差分位置编码表中的差分码,建立坐标序号与起始位置码序号之间的起始位置编码表。
其中,在起始位置编码表中坐标序号与起始位置码序号一一对应。
图9示意性地示出了根据本发明再一实施例的用于物理介质表面位置编码的编码方法的流程图。图9为图8中步骤S210提供了一种实施方法。如图9所示,步骤S210包括:
在步骤S2101中,从0-(2M-1)中选择一个整数,作为第一个起始位置码序号。
仍以M=4为例,例如,可以选择第一个起始位置码序号为0。
在步骤S2102中,将差分位置编码表中的第X个差分码的N位中每一位上的数值及其他每个差分码最末位上的数值,按照各差分码在所述差分位置编码表中的顺序,组装一[TN+N-1]位的码序列,以该码序列中每一位数为步进,确定起始位置编码表中第一个起始位置码序号之后的其余[TN+N-1]个起始位置码序号。
其中,X为预设自然数。
例如,以表二中的差分位置编码表中的差分码及其顺序为例,由第一个差分码的三位数及其后的每个差分码的最末位上的数值组成的[TN+N-1]=29位的码序列为2、2、2、0、0、0、1、……、2、1、2、2,以该码序列中每一位数为步进,确定起始位置编码表中第一个起始位置码序号之后的其余[TN+N-1]个起始位置码序号,由此构建如表三所示的起始位置编码表。
表三 起始位置编码表
Figure BDA0001286630490000201
Figure BDA0001286630490000211
图10示意性地示出了根据本发明再一实施例的用于物理介质表面位置编码的编码方法的流程图。如图10所示,方法20还进一步包括:
在步骤S212中,将起始位置编码表中[TN+N]个起始位置码序号分别作为第一方向编码表中[TN+N]行的第一个位置码序号。
例如,第一方向编码表为Y轴方向编码表。
在步骤S214中,从各行中第一个位置码序号开始,依次加1并对2M取模,得到各行后续的位置码序号,以构成第一方向编码表。
以表三所示的起始位置编码表为例,第一方向编码表如图11所示。
在步骤S216中,将起始位置编码表中[TN+N]个起始位置码序号分别作为第二方向编码表中[TN+N]列的第一个位置码序号。
例如,第二方向编码表为X轴方向编码表。
在步骤S218中,从各列中第一个位置码序号开始,依次加1并对2M取模,得到各列后续的位置码序号,以构成第二方向编码表。
以表三所示的起始位置编码表为例,第二方向编码表如图12所示。
图13示意性地示出了根据本发明再一实施例的用于物理介质表面位置编码的编码方法的流程图。如图13所示,方法20还进一步包括:
在步骤S220中,根据序号比特编码表,分别将第一方向编码表中的位置码序号及第二方向编码表中的位置码序号转换为位置码,以构建第一方向二进制编码表及第二方向二进制编码表。
以图11的方框中的如下位置编码序号为例:
Figure BDA0001286630490000221
转换为部分的第一方向二进制编码表如下:
表四部分的第一方向二进制编码表
1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0
0 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0
0 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0
0 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0
以图12的方框中的如下位置编码序号为例:
Figure BDA0001286630490000222
转换为部分的第二方向二进制编码表如下:
表五部分的第二方向二进制编码表
Figure BDA0001286630490000223
Figure BDA0001286630490000231
在步骤S222中,根据第一方向二进制编码表及第二方向二进制编码表,确定编码图案。
将第一方向二进制编码表与第二方向二进制编码表的左上角对齐,组成若干重叠的的、包含由第一方向二进制编码表和第二方向二进制编码表中的各1比特组成的2比特的小格。每个小格中的2比特第一位例如表示第一方向(如Y轴方向),第二位例如表示第二方向(如X轴方向),该2比特分别可以为00、01、10及11,分别表示为4种可读符号,4种可读符号如表六所示:
表六
可读符号值 X轴代码 Y轴代码
1 0 0
2 0 1
3 1 0
4 1 1
该4种可读符号的具体表示例如如图1中的4种可读符号,但本发明不限于此。
以表四和表五中的二进制编码表为例,分别取表四与表五中前4*4比特矩阵,构成下表:
表七
(1,0) (0,0) (1,0) (1,0)
(0,1) (1,1) (1,1) (1,1)
(0,0) (1,0) (1,1) (1,1)
(0,1) (1,1) (1,1) (1,1)
以(1,0)为例,其中1代表Y轴代码,0代表X轴代码。
则依次对应的可读符号如表八所示:
表八
第2种符号 第1种符号 第2种符号 第2种符号
第3种符号 第4种符号 第4种符号 第4种符号
第1种符号 第2种符号 第4种符号 第4种符号
第3种符号 第4种符号 第4种符号 第4种符号
由此,可以根据各不同的可读符号构成编码后的编码图案。
在步骤S224中,将编码图案呈现在所述物理介质表面上。
例如,将编码图案通过打印的方式呈现在物理介质(如纸张)表面上。
图14示意性地示出了根据本发明实施方式的物理介质表面位置编码的解码方法的流程图。如图14所示,方法30包括:
在步骤S302中,获取物理介质表面的位置编码图案。
在步骤S304中,根据所述编码图案,获取(N+1)*(N+1)比特的第一二进制编码矩阵。
例如,通过“应用场景总览”部分所述的数码笔中的摄像头采集到一幅图片,经过剪切、旋转、去噪、二值化等处理后,得到解析出的二进制编码矩阵。以N=3为例,例如得到如表七中的二进制矩阵。分别取前一位的比特,得到如表九所示的第一二进制编码矩阵:
表九
1 0 1 1
0 1 1 1
0 1 1 1
0 1 1 1
在步骤S306中,根据序号比特编码表,将第一二进制编码矩阵转换为排列为一列的N+1个第一位置码序号。
如将表九中的第一二进制编码矩阵转换为位置码序号:
14
15
15
15
在步骤S308中,分别确定相邻的两两第一位置编码序号之间的差值,并分别将差值模2M,以获取第一二进制编码矩阵的差分码。
其中M为序号比特编码表中的位置码的比特数,N为差分码的位数。
以M=4为例,如求各位置码序号的差值:
15-14=1;15-15=0;15-15=0
对各差值取模:
1mod 16=1;0mod 16=0;0mod 16=0
得到差分码:1 0 0。
在步骤S310中,根据差分位置编码表,确定第一二进制编码矩阵的差分码对应的第一二进制编码矩阵在第一方向上的坐标序号。
如根据表二可查得,第一方向上的坐标序号为6,第一方向例如为Y轴方向,即y=6。
在一些实施例中,获取的第一二进制编码矩阵还可以很大,再将其分割成(N+1)*(N+1)矩阵。分别计算各(N+1)*(N+1)矩阵的第一方向的坐标,再将计算出的第一方向的坐标中重复值最多的坐标值作为第一方向的坐标。
在步骤S310中,将包含坐标序号的坐标信息发送,和/或根据坐标信息回放物理介质表面之上的书写笔迹。
图15示意性地示出了根据本发明另一实施例的物理介质表面位置编码的解码方法的流程图。如图15所示,方法30还可以包括:
在步骤S312中,根据位置编码图案,获取(N+1)*(N+1)比特的第二二进制编码矩阵。
例如得到如表七中的二进制矩阵。分别取前一位的比特,得到如表十所示的第二二进制编码矩阵:
表十
0 0 0 0
1 1 1 1
0 0 1 1
1 1 1 1
在步骤S314中,根据序号比特编码表,将第二二进制编码矩阵转换为排列为一行的N+1个第二位置码序号。
如将表十中的的第二二进制编码矩阵转换为位置码序号:
13 13 15 15
在步骤S316中,分别确定相邻的两两第二位置码序号之间的差值,并分别将差值模2M,以获取第二二进制编码矩阵的差分码。
仍以M=4为例,如求各位置码序号的差值:
13-13=0;15-13=2;15-15=0
对各差值取模:
0mod 16=0;2mod 16=2;0mod 16=0
得到差分码0 2 0。
在步骤S318中,根据差分码位置编码表,确定第二二进制编码矩阵的差分码对应的第二二进制编码矩阵在第二方向上的坐标序号。
如根据表二可查得,第二方向上的坐标序号为8,第二方向例如为X轴方向,即x=8。
在一些实施例中,获取的第二二进制编码矩阵也可以很大,再将其分割成(N+1)*(N+1)矩阵。分别计算各(N+1)*(N+1)矩阵的第二方向的坐标,再将计算出的第二方向的坐标中重复值最多的坐标值作为第二方向的坐标。
根据本发明实施方式的用于物理介质表面位置编码的编解码方案,其通过空间换时间,来降低运算量,从而降低算法对CPU等硬件性能的要求;此外该编解码方案无需使用“浮动”窗口,即对于编码的比特位数为m位的位置编码,解码时仅需任意m*m个可读符号即可解码,从而减低了求位置信息的限制条件,使得方案设计更加灵活,同时减低了对高速摄像头分辨率及视场(fov)的要求。
示例性装置
在介绍了本发明示例性实施方式的方法之后,接下来,参考图16至图18对本发明示例性实施方式的用于物理介质表面位置编码的解码装置及解码装置进行说明。
图16示意性地示出了根据本发明实施方式的用于物理介质表面位置编码的编码装置的框图。如图16所示,该装置40包括:比特数目确定模块402、第一位置码确定模块404及序号编码表建立模块406。
其中,比特数目确定模块404用于确定位置码的比特数目M。
第一位置码确定模块406用于确定第一个位置码。
序号编码表建立模块408用于通过对第一个位置码进行循环移位,建立位置码与位置码序号之间的序号比特编码表。
其中,在序号比特编码表中位置码与位置码序号一一对应,且位置码序号按照一预先设定的第一顺序排列;
其中,序号比特编码表中的位置码用于对物理介质表面的位置进行编码,得到的编码结果由预设编码图案呈现在物理介质表面上。
图17示意性地示出了根据本发明另一实施方式的用于物理介质表面位置编码的编码装置的框图。如图17所示,该装置50包括:比特数目确定模块502、差分码位数确定模块504、初始差分码确定模块506及差分编码表确定模块508。
其中,比特数目确定模块502用于确定位置码的比特数目M。
差分码位数确定模块504用于根据位置码的比特数目M,确定差分码的位数为N,其中N大于等于2,且小于等于M-1。
初始差分码确定模块506用于在0-(2M-1)之间选择由T个整数值构成的整数值集合,并从整数值集合中选择1到N个整数值作为第一个差分码的各位数,形成第一个差分码,其中,T大于等于2,且小于等于(2M-1)。
差分编码表确定模块508用于通过对第一个差分码进行循环移位,建立差分码与差分码序号之间的差分位置编码表。
其中,在差分位置编码表中差分码与差分码序号一一对应,且差分码序号按照一预先设定的第二顺序排列;
其中,差分位置编码表中的差分码用于对物理介质表面的位置进行编码,得到的编码结果由预设编码图案呈现在物理介质表面上。
图18示意性地示出了根据本发明实施方式的用于物理介质表面位置编码的解码装置的框图。如图18所示,该装置60包括:编码图案获取模块602、编码矩阵获取模块604、位置码序号转换模块606、差分码获取模块608、坐标序号确定模块610及坐标信息处理模块612。
编码图案获取模块602用于获取物理介质表面的位置编码图案。
编码矩阵获取模块604用于根据编码图案,获取(N+1)*(N+1)比特的第一二进制编码矩阵。
位置码序号转换模块606用于根据上述序号比特编码表,将第一二进制编码矩阵转换为排列为一列的N+1个第一位置码序号。
差分码获取模块608用于分别确定相邻的两两第一位置码序号之间的差值,并分别将差值模2M,以获取第一二进制编码矩阵的差分码。
坐标序号确定模块610用于根据如上述的差分码位置编码表,确定第一二进制编码矩阵的差分码对应的第一二进制编码矩阵在第一方向上的坐标序号。
坐标信息处理模块612用于将包含坐标序号的坐标信息发送,和/或根据坐标信息回放物理介质表面之上的书写笔迹;
其中,M为序号比特编码表中的位置码的比特数,N为差分码的位数。
示例性设备
在介绍了本发明示例性实施方式的方法和装置之后,接下来,介绍根据本发明的另一示例性实施方式的电子设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本发明实施方式的电子设备可以至少包括至少一个处理单元、以及至少一个存储单元。其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的用于物理介质表面位置编码的编码方法及解码方法中的各步骤。例如,所述处理单元可以执行如图2中所示的步骤S102~S106,或者可以执行如图3所示的步骤S1061~S1065等。
下面参照图19来描述根据本发明的这种实施方式的电子设备的框图。图19示意性示出本发明实施方式的电子设备800的框图,电子设备800仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图19所示,电子设备800以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:上述至少一个处理单元801、上述至少一个存储单元802、连接不同系统组件(包括存储单元802和处理单元801)的总线803。
总线803表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储单元802可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)8021和/或高速缓存存储器8022,还可以进一步包括只读存储器(ROM)8023。
存储单元802还可以包括具有一组(至少一个)程序模块8024的程序/实用工具8025,这样的程序模块8024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
电子设备800也可以与一个或多个外部设备804(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个能与电子设备800交互的设备通信,和/或该电子设备800能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口805进行。并且,电子设备800还可以通过网络适配器806与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图8所示,网络适配器806通过总线803与用于会话控制的设备800的其它模块通信。应当明白,尽管图8中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
示例性程序产品
在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的用于物理介质表面位置编码的编码方法及解码方法中的各步骤。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了用于物理介质表面位置编码的编码装置及解码装置的若干功能模块,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多功能模块的特征和功能可以在一个装置中具体化。反之,上文描述的一个功能模块的特征和功能可以进一步划分为由多个子模块来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

Claims (23)

1.一种用于物理介质表面位置编码的编码方法,包括:
确定位置码的比特数目M;
确定第一个位置码;以及
通过对所述第一个位置码进行循环移位,建立所述位置码与位置码序号之间的序号比特编码表;以及
根据所述序号比特编码表中的位置码对物理介质表面的位置进行编码,得到的编码结果由预设编码图案呈现在所述物理介质表面上,以用于确定数码笔在所述物理介质表面之上的书写笔迹;
其中,在所述序号比特编码表中所述位置码与所述位置码序号一一对应,且所述位置码序号按照一预先设定的第一顺序排列。
2.根据权利要求1所述的方法,通过对所述第一个位置码进行循环移位,建立所述位置码与位置码序号之间的序号比特编码表包括:
将所述第一个位置码列在所述序号比特编码表中;
将所述第一个位置码沿第一方向移1位,并将末位补0或1中的一个,生成第二比特序列;
确定所述第二比特序列是否已出现在所述序号比特编码表中;
当所述第二比特序列未出现在所述序号比特编码表中时,将所述第二比特序列确定为第二个位置码,按照所述位置码序号的第一顺序,在所述序号比特编码表中将所述第二个位置码排列在所述第一个位置码之后;以及
当所述第二比特序列已出现在所述序号比特编码表中时,将所述末位补0或1中的另一个,生成新的第二比特序列,将所述新的第二比特序列确定为第二个位置码,按照所述位置码序号的第一顺序,在所述序号比特编码表中将所述第二个位置码排列在所述第一个位置码之后。
3.根据权利要求2所述的方法,通过对所述第一个位置码进行循环移位,建立所述位置码与位置码序号之间的序号比特编码表,还包括:对K依次取值2、3、4……、(2M-1),相应的依次执行以下操作:
将第K个位置码沿第一方向移1位,并将末位补0或1中的一个,生成第K+1比特序列;
确定所述第K+1比特序列是否已出现在所述序号比特编码表中;
当所述第K+1比特序列未出现在所述序号比特编码表中时,将所述第K+1比特序列确定为第K+1个位置码,按照所述位置码序号的第一顺序,在所述序号比特编码表中将所述第K+1个位置码排列在所述第K个位置码之后;以及
当所述第K+1比特序列已出现在所述序号比特编码表中时,将所述末位补0或1中的另一个,生成新的第K+1比特序列,将所述新的第K+1比特序列确定为第K+1个位置码,按照所述位置码序号的第一顺序,在所述序号比特编码表中将所述第K+1个位置码排列在所述第K个位置码之后。
4.一种用于物理介质表面位置编码的编码方法,包括:
确定位置码的比特数目M;
根据所述位置码的比特数目M,确定差分码的位数为N,其中N大于等于2,且小于等于M-1;
在0-(2M-1)之间选择由T个整数值构成的整数值集合,并从所述整数值集合中选择1到N个整数值作为第一个差分码的各位数,形成第一个差分码,其中,T大于等于2,且小于等于(2M-1);以及
通过对所述第一个差分码进行循环移位,建立所述差分码与差分码序号之间的差分位置编码表;以及
根据所述差分位置编码表中的差分码对物理介质表面的位置进行编码,得到的编码结果由预设编码图案呈现在所述物理介质表面上,以用于确定数码笔在所述物理介质表面之上的书写笔迹;
其中,在所述差分位置编码表中所述差分码与所述差分码序号一一对应,且所述差分码序号按照一预先设定的第二顺序排列。
5.根据权利要求4所述的方法,通过对所述第一个差分码进行循环移位,建立所述差分码与差分码序号之间的差分位置编码表包括:
将所述第一个差分码列入所述差分位置编码表;
将所述第一个差分码沿第一方向移1位,并将末位设为按预先设定的第三顺序排列的、所述整数值集合T个数值中的第P个数值,生成第二数值序列;以及
执行下述将第二数值序列列入所述差分位置编码表的步骤:
确定所述第二数值序列是否已出现在所述差分位置编码表中;
当所述第二数值序列未出现在所述差分位置编码表中时,将所述第二数值序列确定为第二个差分码,按所述差分码序号的第二顺序,在所述差分位置编码表中将所述第二个差分码排列在所述第一个差分码之后;及
当所述第二数值序列已出现在所述差分位置编码表中时,将所述末位设为按预先设定的第三顺序排列的、所述整数值集合T个数值中的第P+1个数值,生成新的第二数值序列,并将P的值赋值为P+1;其中,P的初始值为1;并重新执行所述将第二数值序列列入所述差分位置编码表的步骤。
6.根据权利要求5所述的方法,通过对所述第一个差分码进行循环移位,建立所述差分码与差分码序号之间的差分位置编码表,还包括:对K依次取值2、3、4……、(2M-1),相应的依次执行以下操作:
将所述第K个差分码列入所述差分位置编码表;
将所述第K个差分码沿第一方向移1位,并将末位设为按预先设定的第三顺序排列的、所述整数值集合T个数值中的第L个数值,生成第K+1数值序列;以及
执行下述将第K+1数值序列列入所述差分位置编码表的步骤:
确定所述第K+1数值序列是否已出现在所述差分位置编码表中;
当所述第K+1数值序列未出现在所述差分位置编码表中时,将所述第K+1数值序列确定为第K+1个差分码,按所述差分码序号的第二顺序,在所述差分位置编码表中将所述第K+1个差分码排列在所述第K个差分码之后;及
当所述第K+1数值序列已出现在所述差分位置编码表中时,将所述末位设为按预先设定的第三顺序排列的、所述整数值集合T个数值中的第L+1个数值,生成新的第K+1数值序列,并将L的值赋值为L+1;其中,L的初始值为1;并重新执行所述将第K+1数值序列列入所述差分位置编码表的步骤。
7.根据权利要求4-6任一项所述的方法,还包括:
根据所述差分位置编码表中的差分码,建立坐标序号与起始位置码序号之间的起始位置编码表;
其中,在所述起始位置编码表中所述坐标序号与所述起始位置码序号一一对应。
8.根据权利要求7所述的方法,根据所述差分位置编码表中的差分码,建立所述坐标序号与起始位置码序号之间的起始位置编码表包括:
从0-(2M-1)中选择一个整数,作为第一个起始位置码序号;以及
将所述差分位置编码表中的第X个差分码的N位中每一位上的数值及其他每个差分码最末位上的数值,按照各差分码在所述差分位置编码表中的顺序,组装一[TN+N-1]位的码序列,以所述码序列中每一位数为步进,确定所述起始位置编码表中所述第一个起始位置码序号之后的其余[TN+N-1]个起始位置码序号,其中,X为预设自然数。
9.根据权利要求8所述的方法,还包括:
将所述起始位置编码表中[TN+N]个所述起始位置码序号分别作为第一方向编码表中[TN+N]行的第一个位置码序号;以及
从各行中所述第一个位置码序号开始,依次加1并对2M取模,得到各行后续的位置码序号,以构成所述第一方向编码表。
10.根据权利要求9所述的方法,还包括:
将所述起始位置编码表中[TN+N]个所述起始位置码序号分别作为第二方向编码表中[TN+N]列的第一个位置码序号;以及
从各列中所述第一个位置码序号开始,依次加1并对2M取模,得到各列后续的位置码序号,以构成所述第二方向编码表。
11.根据权利要求10所述的方法,还包括:
根据如权利要求1-3任一项所述的方法中的序号比特编码表,分别将所述第一方向编码表中的位置码序号及所述第二方向编码表中的位置码序号转换为所述位置码,以构建第一方向二进制编码表及第二方向二进制编码表。
12.根据权利要求11所述的方法,还包括:
根据所述第一方向二进制编码表及所述第二方向二进制编码表,确定编码图案;以及
将所述编码图案呈现在所述物理介质表面上。
13.一种用于物理介质表面位置编码的解码方法,包括:
获取物理介质表面的位置编码图案;
根据所述编码图案,获取(N+1)*(N+1)比特的第一二进制编码矩阵;
根据如权利要求1-3任一项所述的方法中的序号比特编码表,将所述第一二进制编码矩阵转换为排列为一列的N+1个第一位置码序号;
分别确定相邻的两两所述第一位置码序号之间的差值,并分别将所述差值模2M,以获取所述第一二进制编码矩阵的差分码;
根据如权利要求4-12任一项所述的方法中的差分位置编码表,确定所述第一二进制编码矩阵的差分码对应的所述第一二进制编码矩阵在第一方向上的坐标序号;以及
将包含所述坐标序号的坐标信息发送,和/或根据所述坐标信息回放所述物理介质表面之上的书写笔迹。
14.根据权利要求13所述的方法,还包括:
根据所述位置编码图案,获取(N+1)*(N+1)比特的第二二进制编码矩阵;
根据所述序号比特编码表,将所述第二二进制编码矩阵转换为排列为一行的N+1个第二位置码序号;
分别确定相邻的两两所述第二位置码序号之间的差值,并分别将所述差值模2M,以获取所述第二二进制编码矩阵的差分码;以及
根据所述差分码位置编码表,确定所述第二二进制编码矩阵的差分码对应的所述第二二进制编码矩阵在第二方向上的坐标序号。
15.一种用于物理介质表面位置编码的编码装置,包括:
比特数目确定模块,用于确定位置码的比特数目M;
第一位置码确定模块,用于确定第一个位置码;以及
序号编码表建立模块,用于通过对所述第一个位置码进行循环移位,建立所述位置码与位置码序号之间的序号比特编码表;
呈现编码图案模块,用于根据所述序号比特编码表中的位置码对物理介质表面的位置进行编码,得到的编码结果由预设编码图案呈现在所述物理介质表面上,以用于确定数码笔在所述物理介质表面之上的书写笔迹;
其中,在所述序号比特编码表中所述位置码与所述位置码序号一一对应,且所述位置码序号按照一预先设定的第一顺序排列。
16.一种用于物理介质表面位置编码的编码装置,包括:
比特数目确定模块,用于确定位置码的比特数目M;
差分码位数确定模块,用于根据所述位置码的比特数目M,确定差分码的位数为N,其中N大于等于2,且小于等于M-1;
初始差分码确定模块,用于在0-(2M-1)之间选择由T个整数值构成的整数值集合,并从所述整数值集合中选择1到N个整数值作为第一个差分码的各位数,形成第一个差分码,其中,T大于等于2,且小于等于(2M-1);以及
差分编码表确定模块,用于通过对所述第一个差分码进行循环移位,建立所述差分码与差分码序号之间的差分位置编码表;
呈现编码图案模块,用于根据所述差分位置编码表中的差分码对物理介质表面的位置进行编码,得到的编码结果由预设编码图案呈现在所述物理介质表面上,以用于确定数码笔在所述物理介质表面之上的书写笔迹;
其中,在所述差分位置编码表中所述差分码与所述差分码序号一一对应,且所述差分码序号按照一预先设定的第二顺序排列。
17.一种用于物理介质表面位置编码的解码装置,包括:
编码图案获取模块,用于获取物理介质表面的位置编码图案;
编码矩阵获取模块,用于根据所述编码图案,获取(N+1)*(N+1)比特的第一二进制编码矩阵;
位置码序号转换模块,用于根据如权利要求1所述的方法中的序号比特编码表,将所述第一二进制编码矩阵转换为排列为一列的N+1个第一位置码序号;
差分码获取模块,用于分别确定相邻的两两所述第一位置码序号之间的差值,并分别将所述差值模2M,以获取所述第一二进制编码矩阵的差分码;
坐标序号确定模块,用于根据如权利要求2所述的方法中的差分码位置编码表,确定所述第一二进制编码矩阵的差分码对应的所述第一二进制编码矩阵在第一方向上的坐标序号;以及
坐标信息处理模块,用于将包含所述坐标序号的坐标信息发送,和/或根据所述坐标信息回放所述物理介质表面之上的书写笔迹;
其中,M为所述序号比特编码表中的位置码的比特数,N为所述差分码的位数。
18.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1-3任一项所述的方法。
19.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求4-12任一项所述的方法。
20.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求13-14任一项所述的方法。
21.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-3任一项所述的方法。
22.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求4-12任一项所述的方法。
23.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求13-14任一项所述的方法。
CN201710309145.3A 2017-05-04 2017-05-04 物理介质表面位置编解码的方法、装置和可读存储介质 Active CN107122067B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710309145.3A CN107122067B (zh) 2017-05-04 2017-05-04 物理介质表面位置编解码的方法、装置和可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710309145.3A CN107122067B (zh) 2017-05-04 2017-05-04 物理介质表面位置编解码的方法、装置和可读存储介质

Publications (2)

Publication Number Publication Date
CN107122067A CN107122067A (zh) 2017-09-01
CN107122067B true CN107122067B (zh) 2020-09-08

Family

ID=59726689

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710309145.3A Active CN107122067B (zh) 2017-05-04 2017-05-04 物理介质表面位置编解码的方法、装置和可读存储介质

Country Status (1)

Country Link
CN (1) CN107122067B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109284424B (zh) * 2018-09-21 2021-10-19 长沙学院 构造滑动情况表的方法
CN111384973B (zh) * 2018-12-29 2023-05-26 泰斗微电子科技有限公司 多进制ldpc解码算法的优化方法、装置及解码器

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10228361A (ja) * 1997-02-14 1998-08-25 Canon Inc 復号化装置,方法および記憶媒体
CN1377488A (zh) * 1999-10-01 2002-10-30 阿诺托股份公司 位置确定-计算
CN1494675A (zh) * 2001-04-12 2004-05-05 ��������³���о����޹�˾ 循环位置代码
CN1578965A (zh) * 2001-10-29 2005-02-09 阿诺托股份公司 用于对位置编码图案进行解码的方法和设备
CN1806249A (zh) * 2003-06-13 2006-07-19 阿诺托知识产权许可贸易公司 编码图案的按需打印
CN101006454A (zh) * 2004-05-18 2007-07-25 西尔弗布鲁克研究有限公司 利用以许多数据部分编码的签名验证对象
CN101006455A (zh) * 2004-06-28 2007-07-25 阿诺托股份公司 数据的编码和解码
CN101198968A (zh) * 2005-06-17 2008-06-11 阿诺托股份公司 用于组合位置和信息码的方法和系统
CN102171705A (zh) * 2008-10-02 2011-08-31 西尔弗布鲁克研究股份有限公司 具有由循环位置码的经移位的子序列编码的标记坐标的位置编码图案

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10228361A (ja) * 1997-02-14 1998-08-25 Canon Inc 復号化装置,方法および記憶媒体
CN1377488A (zh) * 1999-10-01 2002-10-30 阿诺托股份公司 位置确定-计算
CN1494675A (zh) * 2001-04-12 2004-05-05 ��������³���о����޹�˾ 循环位置代码
CN1578965A (zh) * 2001-10-29 2005-02-09 阿诺托股份公司 用于对位置编码图案进行解码的方法和设备
CN1806249A (zh) * 2003-06-13 2006-07-19 阿诺托知识产权许可贸易公司 编码图案的按需打印
CN101006454A (zh) * 2004-05-18 2007-07-25 西尔弗布鲁克研究有限公司 利用以许多数据部分编码的签名验证对象
CN101006455A (zh) * 2004-06-28 2007-07-25 阿诺托股份公司 数据的编码和解码
CN101198968A (zh) * 2005-06-17 2008-06-11 阿诺托股份公司 用于组合位置和信息码的方法和系统
CN102171705A (zh) * 2008-10-02 2011-08-31 西尔弗布鲁克研究股份有限公司 具有由循环位置码的经移位的子序列编码的标记坐标的位置编码图案

Also Published As

Publication number Publication date
CN107122067A (zh) 2017-09-01

Similar Documents

Publication Publication Date Title
US7942341B2 (en) Two dimensional dot code, and decoding apparatus and method for a two dimensional dot code
CN102592160B (zh) 一种面向短信的字符二维码编码方法和解码方法
US20090119573A1 (en) Global metadata embedding and decoding
CN107610038A (zh) 水印的显示方法、装置及系统
CN107094021A (zh) 数据压缩
SE516109C2 (sv) Förfarande, system och datorprogram för dokumenthantering med hjälp av positionskodningsmönster
CN107122067B (zh) 物理介质表面位置编解码的方法、装置和可读存储介质
SE518962C2 (sv) Produkt och metod för att koda data till ett matrisformat kodningsmönster
CN107220689B (zh) 位置编码图案生成方法、装置、设备和可读存储介质
CN1524234A (zh) 大字符集浏览器
US20090027241A1 (en) Fast error-correcting of embedded interaction codes
EP2044558B1 (en) Position location using error correction
CN107103350B (zh) 物理介质表面多维度位置编码方法、装置和可读存储介质
CN109376825B (zh) 一种二维码生成方法及装置
US20170039399A1 (en) Creating mechanical stamps to produce machine-readable optical labels
CN114327244A (zh) 数据迁移的方法、装置、处理器和计算设备
JP3635374B1 (ja) デジタル情報坦体
CN102710978B (zh) 电视机的光标移动方法及装置
CN112698825B (zh) 编程积木块转换方法、装置、处理设备及存储介质
GB2050019A (en) Method of Producing Typographical Data
JP4368373B2 (ja) デジタル情報坦体
CN114021595A (zh) 一种二维码识别方法及装置
CN103136559A (zh) 可变条码的光栅化方法和装置
WO2009095449A2 (en) Pattern for identifying a location on a surface
CN107241100B (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
GR01 Patent grant
GR01 Patent grant