本发明涉及多媒体技术领域,尤其涉及一种笔迹数据同步的方法和装置、一种存储介质以及一种终端设备。
背景技术:
在现有的同步书写系统中,至少包括两个显示终端和一个服务器,当用户在显示终端a中书写时,显示终端a记录用户书写的所有坐标点,并实时将新生成的坐标点上传给服务器,服务器将新生成的坐标点传递给另一个显示终端b,显示终端b再根据传递过来的坐标点进行还原绘制,从而实现将用户远程书写的内容同步复现在另一终端中。
但是现有的同步书写系统存在以下缺陷:
1、用户在显示终端中书写时会产生大量的坐标点,传输时对网络带宽要求高;
2、长时间进行远程书写显示的操作,会产生大量的数据,完整同步一次数据时间过长。
技术实现要素:
本发明实施例提出的一种笔迹数据同步的方法和装置以及一种存储介质和一种终端设备,提高数据同步的效率,降低对网络带宽的要求,适应广泛。
第一方面,本发明实施例提供一种笔迹数据同步的方法,包括:
响应笔迹同步指令,以固定频率读取书写缓存区的笔迹数据;所述笔迹数据包括用户在显示界面上书写的每一笔迹点的坐标;
根据所述每一笔迹点的写入时间顺序和笔迹抖动阈值,将所述笔迹数据进行笔迹分段;
根据每一段笔迹的线段类型,提取每一段笔迹的关键数据;
将所述每一段笔迹的关键数据进行重新组合,生成笔迹同步数据;
将所述笔迹同步数据发送给远程的终端设备,以供远程的终端设备根据所述笔迹同步数据还原渲染出所述用户在显示界面上书写的笔迹。
在第一方面的第一种可能的实施方式中,在读取书写缓存区的笔迹数据之后,清除所述书写缓存区存储的所述笔迹数据。
在第一方面的第二可能的实施方式中,所述根据所述每一笔迹点的写入时间顺序和笔迹抖动阈值,将所述笔迹数据进行笔迹分段,具体包括:
设置i的初始值为1,并以所述笔迹数据中排序时间最先的笔迹点作为第1起点;
从第i起点开始选取时间连续的m个笔迹点,并以所述m个笔迹点中排序时间最后的笔迹点为第i终点;
计算所述m个笔迹点中不包含第i起点和第i终点的每一个笔迹点与由第i起点和第i终点连接而成的直线之间的垂直距离;
当所述m个笔迹点中不包含第i起点和第i终点的每一个笔迹点的垂直距离均小于笔迹抖动阈值时,截取所述m个笔迹点作为第i段笔迹,判别第i段笔迹为直线;
当所述m个笔迹点中存在有笔迹点的垂直距离大于所述笔迹抖动阈值时,在大于所述笔迹抖动阈值的笔迹点中选取距离第i起点最近的笔迹点来更新第i终点,并判断在第i起点至第i终点之间的每一个笔迹点与由所述第i起点和所述第i终点连接而成的直线之间的垂直距离是否均小于所述笔迹抖动阈值;
若从第i起点至第i终点之间的每一个笔迹点均小于所述笔迹抖动阈值,则截取从第i起点至第i终点的笔迹点作为第i段笔迹,并判别第i段笔迹为直线;
若在第i起点至第i终点之间存在有笔迹点大于所述笔迹抖动阈值,则截取所述第i起点至所述第i终点的笔迹点作为第i段笔迹,并判别第i段笔迹为曲线;
对i加一;并以第i-1终点对应的笔迹点作为第i起点,返回继续从第i起点开始选取时间连续的m个笔迹点进行笔迹截取,直至截取到所述笔迹数据的最后一个笔迹点。
在第一方面的第三种可能的实施方式中,所述根据每一段笔迹的线段类型,提取每一段笔迹的关键数据,具体为:
判断每一段笔迹的线段类型;
当该段笔迹为直线时,提取该段笔迹的起点和终点作为该段笔迹的关键数据;
当该段笔迹为曲线时,根据该笔迹中点、起点和终点,确定该笔迹的圆心和半径,提取该笔迹的起点、终点、圆心和半径作为该段笔迹的关键数据。
结合第一方面的第三种可能的实施方式,在第一方面的第四种可能的实施方式中,所述将所述每一段笔迹的关键数据进行重新组合,生成笔迹同步数据,具体为:
根据每一段笔迹的分段顺序,依次排列每一段笔迹的起点和终点,并将当段笔迹的终点与下一段笔迹的起点合并;
在排列过程,当当段笔迹的关键数据还包括圆心和半径时,将当段笔迹的起点和终点与当段笔迹的圆心和半径关联。
在第二方面,本发明实施例还提供一种笔迹数据同步的装置,包括:
笔迹数据获取模块,用于响应笔迹同步指令,以固定频率读取书写缓存区的笔迹数据;所述笔迹数据包括用户在所述本地终端的显示界面上书写的每一笔迹点的坐标;
笔迹分段模块,用于根据所述每一笔迹点的写入时间顺序和笔迹抖动阈值,将所述笔迹数据进行笔迹分段;
关键数据获取模块,用于根据每一段笔迹的线段类型,提取每一段笔迹的关键数据;
同步数据生成模块,用于将所述每一段笔迹的关键数据进行重新组合,生成笔迹同步数据;
同步数据发送模块,用于将所述笔迹同步数据发送给远程的终端设备,以供远程的终端设备根据所述笔迹同步数据还原渲染出所述用户在显示界面上书写的笔迹。
在第二方面的第一种可能的实施方式中,所述笔迹分段模块,具体包括:
初始化单元,用于设置i的初始值为1,并以所述笔迹数据中排序时间最先的笔迹点作为第1起点;
笔迹选取单元,用于从第i起点开始选取时间连续的m个笔迹点,并以所述m个笔迹点中排序时间最后的笔迹点为第i终点;
距离计算单元,用于计算所述m个笔迹点中不包含第i起点和第i终点的每一个笔迹点与由第i起点和第i终点连接而成的直线之间的垂直距离;
第一笔迹截取单元,用于当所述m个笔迹点中不包含第i起点和第i终点的每一个笔迹点的垂直距离均小于笔迹抖动阈值时,截取所述m个笔迹点作为第i段笔迹,判别第i段笔迹为直线;
笔迹选取与判断单元,用于当所述m个笔迹点中存在有笔迹点的垂直距离大于所述笔迹抖动阈值时,在大于所述笔迹抖动阈值的笔迹点中选取距离第i起点最近的笔迹点来更新第i终点,并判断在第i起点至第i终点之间的每一个笔迹点与由所述第i起点和所述第i终点连接而成的直线之间的垂直距离是否均小于所述笔迹抖动阈值;
第二笔迹截取单元,用于若从第i起点至第i终点之间的每一个笔迹点均小于所述笔迹抖动阈值,则截取从第i起点至第i终点的笔迹点作为第i段笔迹,并判别第i段笔迹为直线;
第三笔迹截取单元,用于若在第i起点至第i终点之间存在有笔迹点大于所述笔迹抖动阈值,则截取所述第i起点至所述第i终点的笔迹点作为第i段笔迹,并判别第i段笔迹为曲线;
循环操作单元,用于对i加一;并以第i-1终点对应的笔迹点作为第i起点,返回继续从第i起点开始选取时间连续的m个笔迹点进行笔迹截取,直至截取到所述笔迹数据的最后一个笔迹点。
在第二方面的第二种可能的实施方式中,所述同步数据生成模块,具体包括:
线型判断单元,用于判断每一段笔迹的线段类型;
直线提取单元,用于当该段笔迹为直线时,提取该段笔迹的起点和终点作为该段笔迹的关键数据;
曲线提取单元,用于当该段笔迹为曲线时,根据该笔迹中点、起点和终点,确定该笔迹的圆心和半径,提取该笔迹的起点、终点、圆心和半径作为该段笔迹的关键数据。
第三方面,本发明实施例还提供一种存储介质,其中存储有多条指令,,所述指令被处理器执行时实现第一方面的任一种实施方式提供的的笔迹数据同步的方法。
第四方面,本发明实施例还提供一种终端设备,包括存储介质、处理器及存储在所述存储介质上并可在所述处理器上运行的多条指令,其中,所述处理器执行所述指令时实现第一方面的任一种实施方式提供的笔迹数据同步的方法。
实施本发明实施例,具有如下有益效果:
本发明实施例提供的笔迹数据同步的方法和装置以及一种存储介质和一种终端设备,在用户要求将其在本地的终端设备的显示界面上书写的内容同步到另一个或多个关联远程的终端设备时,将用户书写的内容从存储区中提取来,按书写顺序将笔迹数据分成多段笔迹,然后再按每一段笔迹对应的线段类型进行提取关键数据,进而将关键数据组合,生成笔迹同步数据,传送给远程的终端设备渲染,由于笔迹数据压缩后,大大减少了数据同步过程的数据量,缩短同步的时间,从而改善同步过程中的延迟,优化同步速度,以及传输过程对网络带宽的要求降低,便于传输。
附图说明
图1是本发明提供的笔迹数据同步的方法的一个实施例的流程示意图;
图2是本发明提供的笔迹数据同步的方法的笔迹分段的一个实施例的流程示意图;
图3是本发明提供的笔迹数据同步的系统的数据传输过程的一个实施例的示意图;
图4是本发明提供的笔迹数据同步的装置的一个实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,是本发明提供的笔迹数据同步的方法的一个实施例的流程示意图;
如图1所示,第一方面,本发明实施例提供一种笔迹数据同步的方法,包括步骤s1至s5,以方法由本地的终端设备执行,即用户所书写于的终端设备,具体如下:
s1,响应笔迹同步指令,以固定频率读取书写缓存区的笔迹数据;所述笔迹数据包括用户在显示界面上书写的每一笔迹点的坐标。
作为本发明实施例的进一步改进,为了避免笔迹数据被重复压缩,则在每次,在每一次读取完书写缓存区的笔迹数据,都会清除该书写缓存区对应的笔迹数据。
s2,根据所述每一笔迹点的写入时间顺序和笔迹抖动阈值,将所述笔迹数据进行笔迹分段。
需要说明的是,分段的过程主要依据由一定数量的笔迹点连接成的笔迹线段的线段类型来对笔迹数据进行分段的,而线段类型主要参考笔迹抖动阈值来判断上述一定数量的笔迹点。
结合图2,描述上述步骤s2的笔迹分段的具体过程:
s21,设置i的初始值为1,并以所述笔迹数据中排序时间最先的笔迹点作为第1起点;
s22,从第i起点开始选取时间连续的m个笔迹点,并以所述m个笔迹点中排序时间最后的笔迹点为第i终点;
s23,计算所述m个笔迹点中不包含第i起点和第i终点的每一个笔迹点与由第i起点和第i终点连接而成的直线之间的垂直距离;
s24,判断所述m个笔迹点中不包含第i起点和第i终点的每一个笔迹点的垂直距离是否均小于笔迹抖动阈值;若是,即当所述m个笔迹点中不包含第i起点和第i终点的每一个笔迹点的垂直距离均小于笔迹抖动阈值时,执行步骤s25,若否,即当所述m个笔迹点中存在有笔迹点的垂直距离大于所述笔迹抖动阈值时,执行步骤s26;
s25,截取所述m个笔迹点作为第i段笔迹,判别第i段笔迹为直线;并跳转执行步骤s29;
s26,在大于所述笔迹抖动阈值的笔迹点中选取距离第i起点最近的笔迹点来更新第i终点,并判断在第i起点至第i终点之间的每一个笔迹点与由所述第i起点和所述第i终点连接而成的直线之间的垂直距离是否均小于所述笔迹抖动阈值;若是,执行步骤s27,若否,执行步骤s28;
s27,截取从第i起点至第i终点的笔迹点作为第i段笔迹,并判别第i段笔迹为直线;并跳转执行步骤s29;
s28,截取所述第i起点至所述第i终点的笔迹点作为第i段笔迹,并判别第i段笔迹为曲线;并跳转执行步骤s29;
s29,对i加一;并以第i-1终点对应的笔迹点作为第i起点,返回执行步骤s22直至截取到所述笔迹数据的最后一个笔迹点。
需要说明的是,通过上述识别由一定数量的笔迹点构成的笔迹段的线段类型,对笔迹数据进行分段,可以确保分段的数据仍保持数据的不失真性,以及在后续步骤s3中提取关键数据的过程,使得可以压缩数据的同时尽量避免图像失真程度过高,以及上述笔迹抖动阈值设置越高,笔迹数据的压缩率越高,但最终笔迹构成的图型(即由远程的终端设备渲染还原的笔迹图形)的失真程度也越高,因而可根据实际对压缩率与失真程度的要求对笔迹抖动阈值进行设置。
s3,根据每一段笔迹的线段类型,提取每一段笔迹的关键数据。
在本发明实施例中,上述步骤s3的具体实施过程为:
判断每一段笔迹的线段类型;
当该段笔迹为直线时,提取该段笔迹的起点和终点作为该段笔迹的关键数据;
当该段笔迹为曲线时,根据该笔迹中点、起点和终点,确定该笔迹的圆心和半径,提取该笔迹的起点、终点、圆心和半径作为该段笔迹的关键数据。
s4,将所述每一段笔迹的关键数据进行重新组合,生成笔迹同步数据。
在本发明实施例中,上述步骤s4的具体实施过程为:
根据每一段笔迹的分段顺序,依次排列每一段笔迹的起点和终点,并将当段笔迹的终点与下一段笔迹的起点合并;
在排列过程,当当段笔迹的关键数据还包括圆心和半径时,将当段笔迹的起点和终点与当段笔迹的圆心和半径关联。
需要说明的是,将由于笔迹分段是排时间顺序排列的,因而当段笔迹的终点与下一段笔迹的起点是重合的,因而上述对每一段笔迹的关键数据进行重新组合的过程,能够进一步压缩笔迹数据,且能保持压缩之前的失真程度。
s5,将所述笔迹同步数据发送给远程的终端设备,以供远程的终端设备根据所述笔迹同步数据还原渲染出所述用户在显示界面上书写的笔迹。
需要说明的是,在具体实施的过程,如图3所示,用户在本地的终端设备(图3的终端设备a)书写,而本地的终端设备与远程的一个或几个终端设备建立(以图3的终端设备b、c、d为例)长连接,则本地终端设备将笔迹同步数据上传到服务器,上传的方式优选为增量更新的方式,服务器对上传的笔迹同步数据缓存并转发给与本地的终端设备建立长连接的终端设备,转发的方式也优选为增量更新的方式,因此,对于此种数据转发的方式的,只要有远程的终端设备与本地的终端设备建立长连接,服务器即将从本地终端设备接收到的笔迹同步数据传送给上述建立长连接的远程终端设备,无需要远程终端设备进行请求,简化了同步通讯的流程。
以及,远程的终端设备接收到笔迹同步数据后,根据笔迹同步数据的按时间顺序排列的笔迹点(所有分段的笔迹的起点和终点)以及笔迹点关联的圆心和半径数据进行渲染,若相邻两个笔迹点不是同时关联同一个圆心和半径数据,则在该两个笔迹点之间绘制直线,若相邻两个笔迹点同时关联同一个圆心和半径数据,则在该两个笔迹点之间绘制一段以该圆心的坐标为圆心的圆弧。
本发明实施例提供的笔迹数据同步的方法,在用户要求将其在本地的终端设备的显示界面上书写的内容同步到另一个或多个关联远程的终端设备时,将用户书写的内容从存储区中提取来,按书写顺序将笔迹数据分成多段笔迹,然后再按每一段笔迹对应的线段类型进行提取关键数据,进而将关键数据组合,生成笔迹同步数据,传送给远程的终端设备渲染,由于笔迹数据压缩后,大大减少了数据同步过程的数据量,缩短同步的时间,从而改善同步过程中的延迟,优化同步速度,以及降低传输过程对网络带宽的要求,适用性广泛,便于传输。
参见图4,是本发明提供的笔迹数据同步的装置的一个实施例的结构示意图,
如图4所示,在第二方面,本发明实施例还提供一种笔迹数据同步的装置,,能够实现上述实施例提供的笔迹数据同步的方法的流程,具体包括:
笔迹数据获取模块10,用于响应笔迹同步指令,以固定频率读取书写缓存区的笔迹数据;所述笔迹数据包括用户在所述本地终端的显示界面上书写的每一笔迹点的坐标;
笔迹分段模块20,用于根据所述每一笔迹点的写入时间顺序和笔迹抖动阈值,将所述笔迹数据进行笔迹分段;
关键数据获取模块30,用于根据每一段笔迹的线段类型,提取每一段笔迹的关键数据;
同步数据生成模块40,用于将所述每一段笔迹的关键数据进行重新组合,生成笔迹同步数据;
同步数据发送模块50,用于将所述笔迹同步数据发送给远程的终端设备,以供远程的终端设备根据所述笔迹同步数据还原渲染出所述用户在显示界面上书写的笔迹。
进一步地,所述笔迹数据同步的装置还包括数据清除模块,用于在读取书写缓存区的笔迹数据之后,清除所述书写缓存区存储的所述笔迹数据。
在第二方面的第一种可能的实施方式中,所述笔迹分段模块,具体包括:
初始化单元,用于设置i的初始值为1,并以所述笔迹数据中排序时间最先的笔迹点作为第1起点;
笔迹选取单元,用于从第i起点开始选取时间连续的m个笔迹点,并以所述m个笔迹点中排序时间最后的笔迹点为第i终点;
距离计算单元,用于计算所述m个笔迹点中不包含第i起点和第i终点的每一个笔迹点与由第i起点和第i终点连接而成的直线之间的垂直距离;
第一笔迹截取单元,用于当所述m个笔迹点中不包含第i起点和第i终点的每一个笔迹点的垂直距离均小于笔迹抖动阈值时,截取所述m个笔迹点作为第i段笔迹,判别第i段笔迹为直线;
笔迹选取与判断单元,用于当所述m个笔迹点中存在有笔迹点的垂直距离大于所述笔迹抖动阈值时,在大于所述笔迹抖动阈值的笔迹点中选取距离第i起点最近的笔迹点来更新第i终点,并判断在第i起点至第i终点之间的每一个笔迹点与由所述第i起点和所述第i终点连接而成的直线之间的垂直距离是否小于所述笔迹抖动阈值;
第二笔迹截取单元,用于若从第i起点至第i终点之间的每一个笔迹点均小于所述笔迹抖动阈值,则截取从第i起点至第i终点的笔迹点作为第i段笔迹,并判别第i段笔迹为直线;
第三笔迹截取单元,用于若在第i起点至第i终点之间存在有笔迹点大于所述笔迹抖动阈值,则截取所述第i起点至所述第i终点的笔迹点作为第i段笔迹,并判别第i段笔迹为曲线;
循环操作单元,用于对i加一;并以第i-1终点对应的笔迹点作为第i起点,返回继续从第i起点开始选取时间连续的m个笔迹点进行笔迹截取,直至截取到所述笔迹数据的最后一个笔迹点。
在第二方面的第二种可能的实施方式中,所述同步数据生成模块,具体包括:
线型判断单元,用于判断每一段笔迹的线段类型;
直线提取单元,用于当该段笔迹为直线时,提取该段笔迹的起点和终点作为该段笔迹的关键数据;
曲线提取单元,用于当该段笔迹为曲线时,根据该笔迹中点、起点和终点,确定该笔迹的圆心和半径,提取该笔迹的起点、终点、圆心和半径作为该段笔迹的关键数据。
在第二方面的第三种可能的实施方式中,所述同步数据生成模块包括:
排列合并单元,用于根据每一段笔迹的分段顺序,依次排列每一段笔迹的起点和终点,并将当段笔迹的终点与下一段笔迹的起点合并;
数据关联单元,用于在排列过程,当当段笔迹的关键数据还包括圆心和半径时,将当段笔迹的起点和终点与当段笔迹的圆心和半径关联。
第三方面,本发明实施例还提供一种存储介质,其中存储有多条指令,,所述指令被处理器执行时实现第一方面的任一种实施方式提供的笔迹数据同步的方法。
第四方面,本发明实施例还提供一种终端设备,包括存储介质、处理器及存储在所述存储介质上并可在所述处理器上运行的多条指令,其中,所述处理器执行所述指令时实现第一方面的任一种实施方式提供的笔迹数据同步的方法。
实施本发明实施例,具有如下有益效果:
本发明实施例提供的笔迹数据同步的装置,以及存储介质和终端设备,在用户要求将其在本地的终端设备的显示界面上书写的内容同步到另一个或多个关联远程的终端设备时,将用户书写的内容从存储区中提取来,按书写顺序将笔迹数据分成多段笔迹,然后再按每一段笔迹对应的线段类型进行提取关键数据,进而将关键数据组合,生成笔迹同步数据,传送给远程的终端设备渲染,由于笔迹数据压缩后,大大减少了数据同步过程的数据量,缩短同步的时间,从而改善同步过程中的延迟,优化同步速度,以及降低传输过程对网络带宽的要求,适用性广泛,便于传输。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。