本發(fā)明屬于嵌入式針織控制技術領域,涉及一種織物數(shù)據(jù)加密壓縮的方法,具體涉及一種基于lzhuf的嵌入式針織系統(tǒng)用控制數(shù)據(jù)壓縮方法。
背景技術:
長期以來,我國的針織行業(yè)在自動化程度沒有達到先進及智能的階段,而近年來興起的嵌入式技術是針織機械邁向真正意義上自動化、智能化的關鍵一步,它促進了針織工業(yè)的發(fā)展,同時實現(xiàn)針織機械的智能化。
針織控制系統(tǒng)主要包括紡織cad、人機交互系統(tǒng)及實時控制系統(tǒng)。紡織cad可將織物實時控制數(shù)據(jù)以及花型數(shù)據(jù)轉化為二進制文件,嵌入式人機交互系統(tǒng)將二進制文件解析成實時控制信號,下發(fā)給實時控制系統(tǒng),完成整個織物的編織。然而,紡織cad產(chǎn)生的數(shù)據(jù)是經(jīng)過壓縮的密文,如:意大利的lonati制板軟件。因此,對紡織cad產(chǎn)生的數(shù)據(jù)進行解壓縮,是針織控制系統(tǒng)的關鍵一步。
技術實現(xiàn)要素:
本發(fā)明的目的在于提供一種基于lzhuf的嵌入式針織系統(tǒng)用控制數(shù)據(jù)壓縮方法,具有算法壓縮效率高及算法復雜度低的優(yōu)點,可在內(nèi)存空間和存儲空間有限的嵌入式針織控制系統(tǒng)中將織物控制數(shù)據(jù)無損還原,以保證嵌入式針織控制系統(tǒng)穩(wěn)定運行。
本發(fā)明所采用的技術方案是,基于lzhuf的嵌入式針織系統(tǒng)控制數(shù)據(jù)壓縮方法,具體按照以下步驟實施:
步驟1、在pc機的lonati制版軟件中設定編織的鏈條值以及花型數(shù)據(jù),經(jīng)編譯生成二進制文件;
步驟2、將經(jīng)步驟1得到的二進制文件拷貝到嵌入式針織控制系統(tǒng)內(nèi)的人機交互系統(tǒng)中,由人機交互系統(tǒng)顯示織物數(shù)據(jù),用戶在人機交互系統(tǒng)上選擇要編織的數(shù)據(jù),該人機交互系統(tǒng)通過lzhuf解壓縮算法,將加密壓縮的花型數(shù)據(jù)進行無損還原,并轉化為控制信號;
步驟3、經(jīng)步驟2后,嵌入式針織控制系統(tǒng)內(nèi)的人機交互系統(tǒng)通過調(diào)用織物數(shù)據(jù)提取算法,將數(shù)據(jù)轉化為特定數(shù)據(jù)格式的控制信號,并傳輸?shù)綄崟r控制系統(tǒng),以完成織物的編織中控制數(shù)據(jù)的解壓縮。
本發(fā)明的特點還在于:
在步驟1中:二進制文件中包含有:織物控制數(shù)據(jù)以及壓縮的花型數(shù)據(jù);織物控制數(shù)據(jù)前512字節(jié)包括有:織物文件標識,速度和電機、圈循環(huán)、氣閥、傳感器及花型數(shù)據(jù)位置信息;
lonati制版軟件生成的織物花型數(shù)據(jù)包括有:花型數(shù)據(jù)位置文件jacq和花型數(shù)據(jù)文件dise;花型數(shù)據(jù)文件dise和花型數(shù)據(jù)位置文件jacq是經(jīng)過lzhuf壓縮后的密文。
在步驟2中:嵌入式針織控制系統(tǒng)的硬件采用s3c2416芯片,操作系統(tǒng)為嵌入式,linux基于qt/e搭建的圖形界面系統(tǒng)。
步驟2具體按照以下步驟實施:
步驟a、通過讀取織物文件標識來判斷文件合法性,即讀取織物文件前兩個字符,判斷是否為co;
判斷結果為是co,則進入下一步驟,即步驟b;
判斷結果為不是co,提示用戶操作失敗,并退出整個花型數(shù)據(jù)解壓縮流程;
步驟b、經(jīng)步驟a后,提取出織物文件中壓縮的花型數(shù)據(jù);
步驟c、經(jīng)步驟b后,找到dise數(shù)據(jù)和jacq數(shù)據(jù)開始位置和結束位置;將dise加密數(shù)據(jù)段讀入輸入緩沖區(qū),把輸入緩沖區(qū)的指針傳遞到解壓縮函數(shù),進行數(shù)據(jù)解壓縮;再執(zhí)行讀取文件大小,初始化動態(tài)huffman樹初始化工作;
讀取字符值,若字符值小于256,即是單個字符,直接將字符讀入輸出緩沖區(qū),并且移動緩沖區(qū)輸入指針,同時字符計數(shù)器的值加1;
若字符值大于256,即是字符串,讀取編碼位置并編碼,根據(jù)位置和匹配長度將字符串輸入輸出緩沖區(qū),移動緩沖區(qū)指針,同時字符計數(shù)器的值加1;
判斷字符計數(shù)器的值是否小于原文件的大小,若大于或者等于原文件大小,則結束,否則繼續(xù)讀取字符,重復解碼,直至解壓縮完所有數(shù)據(jù);
步驟d、經(jīng)步驟c后,算法執(zhí)行后會生成解壓縮后的花型文件,設定解壓縮生成的文件為dise.bind和jacq.bind,將解壓縮后的數(shù)據(jù)和lonati制板軟件設定的花型選針數(shù)據(jù)進行對比,用于驗證數(shù)據(jù)還原的無損性。
步驟b具體按照以下方法實施:
通過kmp算法查找字符‘dise’在織物文件中的位置,計算出花型數(shù)據(jù)的位置以及花型數(shù)據(jù)的大小,具體按照以下算法實施:
dpos=[apos+3]×256+[apos+4](1);
dlen=[apos+5]×256+[apos+6](2);
式(1)中apos為kmp算法返回的字符位置,dpos花型文件的位置,[apos+3]為apos+3位置的字符值;
式(2)中dlen表示花型數(shù)據(jù)的大小。
本發(fā)明的有益效果在于:
(1)本發(fā)明基于lzhuf的嵌入式針織系統(tǒng)用控制數(shù)據(jù)壓縮方法,結合了lzss算法和動態(tài)huffman編碼算法,能提高對織物數(shù)據(jù)的壓縮率;
(2)本發(fā)明基于lzhuf的嵌入式針織系統(tǒng)用控制數(shù)據(jù)壓縮方法,具有算法壓縮效率高及算法復雜度低的優(yōu)點,可在內(nèi)存空間和存儲空間有限的嵌入式針織控制系統(tǒng)中將織物控制數(shù)據(jù)無損還原,以保證嵌入式針織控制系統(tǒng)穩(wěn)定運行;
(3)本發(fā)明基于lzhuf的嵌入式針織系統(tǒng)用控制數(shù)據(jù)壓縮方法,還適合紡織cad中對織物數(shù)據(jù)的壓縮,對設計紡織cad軟件的壓縮算法有著重要的借鑒價值;
(4)本發(fā)明基于lzhuf的嵌入式針織系統(tǒng)用控制數(shù)據(jù)壓縮方法,lzhuf結合lzss算法和動態(tài)huffman壓縮算法的優(yōu)點,首先利用lzss對待壓縮字符進行同時編碼,再對輸出的字符使用頻率的高低進行動態(tài)huffman編碼,達到更好的壓縮效果,同時也加強數(shù)據(jù)的安全性。
附圖說明
圖1是本發(fā)明基于lzhuf的嵌入式針織系統(tǒng)用控制數(shù)據(jù)壓縮方法的工作流程圖;
圖2是利用本發(fā)明基于lzhuf的嵌入式針織系統(tǒng)用控制數(shù)據(jù)壓縮方法解壓縮花型數(shù)據(jù)的流程圖;
圖3是利用本發(fā)明基于lzhuf的嵌入式針織系統(tǒng)用控制數(shù)據(jù)壓縮方法計算被壓縮的花型數(shù)據(jù)的大小以及在織物文件中位置的流程圖。
具體實施方式
下面結合附圖和具體實施方式對本發(fā)明進行詳細說明。
本發(fā)明基于lzhuf的嵌入式針織系統(tǒng)用控制數(shù)據(jù)壓縮方法,如圖1所示,具體按照以下步驟實施:
步驟1、在pc機的lonati制版軟件(cad制板軟件)中設定編織的鏈條值以及花型數(shù)據(jù),經(jīng)編譯生成二進制文件(co文件);
該二進制文件(co文件)中包含有:織物控制數(shù)據(jù)以及壓縮的花型數(shù)據(jù);
織物控制數(shù)據(jù)前512字節(jié)包括有:織物文件標識,速度和電機、圈循環(huán)、氣閥、傳感器及花型數(shù)據(jù)位置信息;
lonati制版軟件生成的織物花型數(shù)據(jù)包括有:花型數(shù)據(jù)位置文件(jacq)和花型數(shù)據(jù)文件(dise);花型數(shù)據(jù)文件(dise)和花型數(shù)據(jù)位置文件(jacq)是經(jīng)過lzhuf壓縮后的密文。
步驟2、將經(jīng)步驟1得到的二進制文件(co文件)拷貝到嵌入式針織控制系統(tǒng)內(nèi)的人機交互系統(tǒng)中,由人機交互系統(tǒng)顯示織物數(shù)據(jù),用戶在人機交互系統(tǒng)上選擇要編織的數(shù)據(jù),該人機交互系統(tǒng)通過lzhuf解壓縮算法,將加密壓縮的花型數(shù)據(jù)進行無損還原,并轉化為控制信號,如圖2所示,具體按照以下方法實施:
其中,嵌入式針織控制系統(tǒng)的硬件采用s3c2416芯片,操作系統(tǒng)為嵌入式linux,基于qt/e搭建的圖形界面系統(tǒng);
步驟a、通過讀取織物文件標識來判斷文件合法性,即讀取織物文件前兩個字符,判斷是否為co;
判斷結果為是co,則進入下一步驟,即步驟b;
判斷結果為不是co,提示用戶操作失敗,并退出整個花型數(shù)據(jù)解壓縮流程;
步驟b、經(jīng)步驟a后,提取出織物文件(co文件)中壓縮的花型數(shù)據(jù),具體按照以下方法提?。?/p>
如圖3所示,通過kmp算法查找字符‘dise’在織物文件中的位置,計算出花型數(shù)據(jù)的位置以及花型數(shù)據(jù)的大小,具體按照以下算法實施:
dpos=[apos+3]×256+[apos+4](1);
dlen=[apos+5]×256+[apos+6](2);
式(1)中apos為kmp算法返回的字符位置,dpos花型文件的位置,[apos+3]為apos+3位置的字符值;
式(2)中dlen表示花型數(shù)據(jù)的大??;
步驟c、經(jīng)步驟b后,找到dise數(shù)據(jù)(即花型數(shù)據(jù))和jacq數(shù)據(jù)(即選針位置數(shù)據(jù))開始位置和結束位置;將dise加密數(shù)據(jù)段讀入輸入緩沖區(qū),把輸入緩沖區(qū)的指針傳遞到解壓縮函數(shù),進行數(shù)據(jù)解壓縮;再執(zhí)行讀取文件大小,初始化動態(tài)huffman樹初始化工作;
讀取字符值,若字符值小于256,即是單個字符,直接將字符讀入輸出緩沖區(qū),并且移動緩沖區(qū)輸入指針,同時字符計數(shù)器的值加1;
若字符值大于256,即是字符串,讀取編碼位置并編碼,根據(jù)位置和匹配長度將字符串輸入輸出緩沖區(qū),移動緩沖區(qū)指針,同時字符計數(shù)器的值加1;
判斷字符計數(shù)器的值是否小于原文件的大小,若大于或者等于原文件大小,則結束,否則繼續(xù)讀取字符,重復解碼,直至解壓縮完所有數(shù)據(jù);
步驟d、經(jīng)步驟c后,算法執(zhí)行后會生成解壓縮后的花型文件,設定解壓縮生成的文件為dise.bind(dise解壓縮后的文件)和jacq.bind(jacq解壓縮后的文件),將解壓縮后的數(shù)據(jù)和lonati制板軟件設定的花型選針數(shù)據(jù)進行對比,用于驗證數(shù)據(jù)還原的無損性。
步驟3、經(jīng)步驟2后,嵌入式針織控制系統(tǒng)內(nèi)的人機交互系統(tǒng)通過調(diào)用織物數(shù)據(jù)提取算法,將數(shù)據(jù)轉化為特定數(shù)據(jù)格式的控制信號,并傳輸?shù)綄崟r控制系統(tǒng),以完成織物的編織中控制數(shù)據(jù)的解壓縮。
本發(fā)明基于lzhuf的嵌入式針織系統(tǒng)的控制數(shù)據(jù)壓縮算法,其創(chuàng)新之處在于:lzhuf結合lzss和動態(tài)huffman編碼算法,利用lzss對待壓縮字符進行同時編碼,再對輸出的字符使用頻率的高低進行動態(tài)huffman編碼,達到更好的壓縮效果,并將此算法應用在嵌入式針織控制系統(tǒng)對織物數(shù)據(jù)的解壓縮。在嵌入式針織控制系統(tǒng)下,整個織物解壓縮算法首先通過kmp遍歷字符串算法,查找被加密壓縮的花型數(shù)據(jù)的位置,該算法可無損還原被壓縮的織物控制數(shù)據(jù),保證了針織控制系統(tǒng)運行的可靠性,同時也加強數(shù)據(jù)的安全性。