筆跡數據同步的方法和裝置、存儲介質以及終端設備與流程
2023-04-26 04:54:36 1
本發明涉及多媒體技術領域,尤其涉及一種筆跡數據同步的方法和裝置、一種存儲介質以及一種終端設備。
背景技術:
在現有的同步書寫系統中,至少包括兩個顯示終端和一個伺服器,當用戶在顯示終端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)等。
以上所述是本發明的優選實施方式,應當指出,對於本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也視為本發明的保護範圍。