本發(fā)明屬于數(shù)據(jù)壓縮,具體為一種自適應網(wǎng)絡寬帶環(huán)境下的動態(tài)數(shù)據(jù)壓縮方法、系統(tǒng)、設備及存儲介質(zhì)。
背景技術:
1、隨著互聯(lián)網(wǎng)的迅速發(fā)展和普及,網(wǎng)絡帶寬資源的利用變得越來越重要。不同的網(wǎng)絡帶寬環(huán)境會對數(shù)據(jù)傳輸?shù)男十a(chǎn)生顯著影響。傳統(tǒng)的數(shù)據(jù)傳輸方法通常使用固定的壓縮策略,但在實際應用中,這種方法并不能適應動態(tài)變化的網(wǎng)絡帶寬條件,從而導致傳輸效率低下或資源浪費。
2、目前傳統(tǒng)數(shù)據(jù)傳輸方法存在諸多局限性,例如:
3、(1)固定壓縮策略的不足:傳統(tǒng)的數(shù)據(jù)傳輸方法通常使用固定的壓縮算法,這種方法在寬帶和窄帶環(huán)境下的表現(xiàn)差異很大。在寬帶環(huán)境下,過度壓縮會浪費計算資源;而在窄帶環(huán)境下,壓縮不足會導致數(shù)據(jù)傳輸效率低下;
4、(2)動態(tài)網(wǎng)絡環(huán)境的挑戰(zhàn):隨著移動互聯(lián)網(wǎng)和無線網(wǎng)絡的普及,網(wǎng)絡帶寬變得更加動態(tài)和不可預測。在這種情況下,固定壓縮策略無法有效應對網(wǎng)絡帶寬的波動,導致數(shù)據(jù)傳輸過程中的不穩(wěn)定性和效率低下;
5、(3)資源利用的優(yōu)化需求:在實際應用中,用戶的需求和應用場景多種多樣。例如,傳感器數(shù)據(jù)傳輸對帶寬要求較低,但對延遲較為敏感,尤其是在實時監(jiān)控系統(tǒng)中,金融數(shù)據(jù)更新需要高頻率的低延遲傳輸,以確保數(shù)據(jù)的實時性和準確性,而物聯(lián)網(wǎng)設備通信則對帶寬需求較小,但延遲和可靠性非常關鍵,特別是在自動化控制系統(tǒng)中。
6、因此,提出一種能夠根據(jù)實時網(wǎng)絡帶寬自適應調(diào)整壓縮策略的方法顯得尤為重要。
技術實現(xiàn)思路
1、發(fā)明目的:為解決目前傳統(tǒng)數(shù)據(jù)傳輸方法存在的一個或多個缺陷,本發(fā)明提出了一種自適應網(wǎng)絡寬帶環(huán)境下的動態(tài)數(shù)據(jù)壓縮方法、系統(tǒng)、設備及存儲介質(zhì),通過靈活的壓縮方法來優(yōu)化資源利用和傳輸效率。
2、技術方案:一種自適應網(wǎng)絡寬帶環(huán)境下的動態(tài)數(shù)據(jù)壓縮方法,包括以下步驟:
3、當用戶觸發(fā)發(fā)送操作時,獲取本機當前網(wǎng)絡帶寬;
4、將本機當前網(wǎng)絡帶寬與預先配置的寬帶閾值進行比較,若本機當前網(wǎng)絡帶寬大于預先配置的寬帶閾值,則將待發(fā)送的數(shù)據(jù)按字節(jié)進行編解碼;若本機當前網(wǎng)絡帶寬不大于預先配置的寬帶閾值,則將待發(fā)送的數(shù)據(jù)按位進行編解碼。
5、進一步的,所述的將待發(fā)送的數(shù)據(jù)按字節(jié)進行編解碼,具體操作包括:
6、遵循自定義的按字節(jié)數(shù)據(jù)結構體,根據(jù)待發(fā)送的數(shù)據(jù)填充按字節(jié)數(shù)據(jù)結構體中的各個成員變量,得到填充后的按字節(jié)數(shù)據(jù)結構體;所述按字節(jié)數(shù)據(jù)結構體包括:必填項、選填項和結構體類型;每個選填項均對應有布爾型選填項標志;當布爾型選填項標志為1時,表示選填項存在;當布爾型選填項標志為0時,表示選填項不存在;
7、依據(jù)布爾型選填項標志,對填充后的按字節(jié)數(shù)據(jù)結構體進行編碼操作,得到編碼后的數(shù)據(jù);
8、依據(jù)編碼操作,進行對應的解碼操作。
9、進一步的,所述的依據(jù)布爾型選填項標志,對填充后的按字節(jié)數(shù)據(jù)結構體進行編碼操作,得到編碼后的數(shù)據(jù),具體操作包括:
10、定義存儲實際字節(jié)數(shù)偏移量,定義中間字節(jié)緩存區(qū);
11、按照必填項直接存入中間字節(jié)緩存區(qū),選填項根據(jù)布爾型選填項標志按需存入中間字節(jié)緩存區(qū)的原則,遍歷按字節(jié)數(shù)據(jù)結構體中的各個成員變量,進行中間字節(jié)緩存區(qū)的填充,字節(jié)數(shù)偏移量累加賦值;
12、根據(jù)字節(jié)數(shù)偏移量開辟發(fā)送緩存區(qū)并賦值;
13、填充報文頭、編碼類型和數(shù)據(jù)長度,得到編碼后的數(shù)據(jù)。
14、與該編碼操作對應的解碼操作包括:
15、定義存儲實際字節(jié)數(shù)據(jù)的緩存區(qū),定義中間字節(jié)數(shù)偏移量;
16、根據(jù)報文頭的解析,從解密后的數(shù)據(jù)中提取編碼后的數(shù)據(jù)存入緩存區(qū);
17、定義存儲解碼信息的字節(jié)結構體變量;
18、對存入緩存區(qū)的數(shù)據(jù)進行遍歷與偏移取值,按照必填項直接賦值給對應按字節(jié)數(shù)據(jù)結構體的成員變量,選填項根據(jù)布爾型選填項標志按需賦值給對應按字節(jié)數(shù)據(jù)結構體的成員變量的原則,解析數(shù)據(jù)至按字節(jié)數(shù)據(jù)結構體的成員變量,中間字節(jié)數(shù)偏移量根據(jù)對應按字節(jié)數(shù)據(jù)結構體的成員變量長度累加賦值,直至解碼結束。
19、進一步的,所述的將待發(fā)送的數(shù)據(jù)按位進行編解碼,具體操作包括:
20、遵循自定義的按字節(jié)數(shù)據(jù)結構體,根據(jù)待發(fā)送的數(shù)據(jù)填充按字節(jié)數(shù)據(jù)結構體中的各個成員變量,得到填充后的按字節(jié)數(shù)據(jù)結構體;所述按字節(jié)數(shù)據(jù)結構體包括:必填項、選填項和結構體類型;每個選填項均對應有布爾型選填項標志;當布爾型選填項標志為1時,表示選填項存在;當布爾型選填項標志為0時,表示選填項不存在;
21、針對每個按字節(jié)數(shù)據(jù)結構體,定義一個相應的成員位數(shù)分配結構體,該成員位數(shù)分配結構體用于定義每個成員變量的位數(shù);
22、根據(jù)待發(fā)送的數(shù)據(jù)填充按字節(jié)數(shù)據(jù)結構體中的各個成員變量,得到填充后的按字節(jié)數(shù)據(jù)結構體;
23、遍歷按字節(jié)數(shù)據(jù)結構體的每個成員變量,根據(jù)必填項及選填項情況,配合成員位數(shù)分配結構體定義,計算待發(fā)送的數(shù)據(jù)的總位數(shù),并開辟對應字節(jié)的發(fā)送緩沖區(qū);
24、定義位緩沖區(qū),遍歷按字節(jié)數(shù)據(jù)結構體的每個成員變量,根據(jù)必填項及選填項情況,配合配合成員位數(shù)分配結構體定義,為按字節(jié)數(shù)據(jù)結構體的每個成員變量創(chuàng)建對應位數(shù)的bitset,并將按字節(jié)數(shù)據(jù)結構體的成員變量值賦值給bitset;
25、定義位偏移量,利用循環(huán)將bitset位值賦值給位緩沖區(qū),并對位偏移量進行累加更新;
26、將位緩沖區(qū)的位值賦給發(fā)送緩沖區(qū);
27、填充報文頭、編碼類型、數(shù)據(jù)長度,按位編碼結束;
28、依據(jù)編碼操作,進行對應的解碼操作。
29、進一步的,所述的針對每個按字節(jié)數(shù)據(jù)結構體,定義一個相應的成員位數(shù)分配結構體,具體操作包括:
30、確定每個成員變量的取值范圍,根據(jù)取值范圍判斷每個成員變量需要的最小位數(shù);
31、創(chuàng)建成員位數(shù)分配結構體,為每個成員變量分配位數(shù)。
32、本發(fā)明公開了一種自適應網(wǎng)絡寬帶環(huán)境下的動態(tài)數(shù)據(jù)壓縮系統(tǒng),包括:
33、網(wǎng)絡帶寬獲取單元,用于當用戶觸發(fā)發(fā)送操作時,獲取本機當前網(wǎng)絡帶寬;
34、編碼壓縮單元,用于將本機當前網(wǎng)絡帶寬與預先配置的寬帶閾值進行比較,若本機當前網(wǎng)絡帶寬大于預先配置的寬帶閾值,則將待發(fā)送的數(shù)據(jù)按字節(jié)進行編解碼;若本機當前網(wǎng)絡帶寬不大于預先配置的寬帶閾值,則將待發(fā)送的數(shù)據(jù)按位進行編解碼。
35、進一步的,所述的將待發(fā)送的數(shù)據(jù)按字節(jié)進行編解碼,具體操作包括:
36、遵循自定義的按字節(jié)數(shù)據(jù)結構體,根據(jù)待發(fā)送的數(shù)據(jù)填充按字節(jié)數(shù)據(jù)結構體中的各個成員變量,得到填充后的按字節(jié)數(shù)據(jù)結構體;所述按字節(jié)數(shù)據(jù)結構體包括:必填項、選填項和結構體類型;每個選填項均對應有布爾型選填項標志;當布爾型選填項標志為1時,表示選填項存在;當布爾型選填項標志為0時,表示選填項不存在;
37、依據(jù)布爾型選填項標志,對填充后的按字節(jié)數(shù)據(jù)結構體進行編碼操作,得到編碼后的數(shù)據(jù);
38、依據(jù)編碼操作,進行對應的解碼操作。
39、進一步的,所述的將待發(fā)送的數(shù)據(jù)按位進行編解碼,具體操作包括:
40、遵循自定義的按字節(jié)數(shù)據(jù)結構體,根據(jù)待發(fā)送的數(shù)據(jù)填充按字節(jié)數(shù)據(jù)結構體中的各個成員變量,得到填充后的按字節(jié)數(shù)據(jù)結構體;所述按字節(jié)數(shù)據(jù)結構體包括:必填項、選填項和結構體類型;每個選填項均對應有布爾型選填項標志;當布爾型選填項標志為1時,表示選填項存在;當布爾型選填項標志為0時,表示選填項不存在;
41、針對每個按字節(jié)數(shù)據(jù)結構體,定義一個相應的成員位數(shù)分配結構體,該成員位數(shù)分配結構體用于定義每個成員變量的位數(shù);
42、根據(jù)待發(fā)送的數(shù)據(jù)填充按字節(jié)數(shù)據(jù)結構體中的各個成員變量,得到填充后的按字節(jié)數(shù)據(jù)結構體;
43、遍歷按字節(jié)數(shù)據(jù)結構體的每個成員變量,根據(jù)必填項及選填項情況,配合成員位數(shù)分配結構體定義,計算待發(fā)送的數(shù)據(jù)的總位數(shù),并開辟對應字節(jié)的發(fā)送緩沖區(qū);
44、定義位緩沖區(qū),遍歷按字節(jié)數(shù)據(jù)結構體的每個成員變量,根據(jù)必填項及選填項情況,配合配合成員位數(shù)分配結構體定義,為按字節(jié)數(shù)據(jù)結構體的每個成員變量創(chuàng)建對應位數(shù)的bitset,并將按字節(jié)數(shù)據(jù)結構體的成員變量值賦值給bitset;
45、定義位偏移量,利用循環(huán)將bitset位值賦值給位緩沖區(qū),并對位偏移量進行累加更新;
46、將位緩沖區(qū)的位值賦給發(fā)送緩沖區(qū);
47、填充報文頭、編碼類型、數(shù)據(jù)長度,按位編碼結束;
48、依據(jù)編碼操作,進行對應的解碼操作。
49、本發(fā)明還公開了一種計算機設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執(zhí)行所述計算機程序時實現(xiàn)上述公開的一種自適應網(wǎng)絡寬帶環(huán)境下的動態(tài)數(shù)據(jù)壓縮方法的步驟。
50、本發(fā)明還公開了一種存儲介質(zhì),所述存儲介質(zhì)存儲有數(shù)據(jù)壓縮程序,所述數(shù)據(jù)壓縮程序被至少一個處理器執(zhí)行時實現(xiàn)上述公開的一種自適應網(wǎng)絡寬帶環(huán)境下的動態(tài)數(shù)據(jù)壓縮方法的步驟。
51、有益效果:本發(fā)明與現(xiàn)有技術相比,具有以下優(yōu)點:
52、(1)本發(fā)明方法,在用戶發(fā)送操作觸發(fā)時啟動軟件監(jiān)控本機網(wǎng)絡帶寬功能,根據(jù)用戶配置的寬帶閾值,與實際帶寬進行比較,當大于閾值時,為了提高本機編解碼效率,采用按字節(jié)進行編解碼;當小于閾值時,為了提高發(fā)送端與接收端之間的數(shù)據(jù)傳輸效率,采用按位進行編解碼,能夠顯著提高數(shù)據(jù)傳輸?shù)撵`活性和效率,在寬帶環(huán)境下,按字節(jié)編解碼能夠減少計算開銷,提高編解碼效率;在窄帶環(huán)境下,按位編解碼能夠最大化壓縮數(shù)據(jù)量,提高傳輸效率;
53、(2)本發(fā)明方法不僅適用于各種網(wǎng)絡帶寬環(huán)境,還能夠適應多種應用場景,例如傳感器數(shù)據(jù)傳輸、金融數(shù)據(jù)更新、物聯(lián)網(wǎng)設備通信等,具有廣泛的應用前景和實際價值。