一種即插即用的多接口數(shù)據(jù)壓縮設(shè)備的制作方法
【專利摘要】一種即插即用的多接口數(shù)據(jù)壓縮設(shè)備,包括多接口輸入模塊、數(shù)據(jù)壓縮編碼模塊、標(biāo)識(shí)位編碼模塊、編碼輸出模塊。其中,多接口輸入模塊包含并行接口和SPI同步串行接口,分別由若干移位寄存器和鎖存器組成。標(biāo)識(shí)位編碼模塊由若干超前進(jìn)位加法器與數(shù)據(jù)比較器分別級(jí)聯(lián)構(gòu)成,以提供壓縮編碼所需的標(biāo)識(shí)位;壓縮編碼模塊由邏輯門(mén)組成,負(fù)責(zé)將數(shù)據(jù)位與標(biāo)識(shí)位組成單字節(jié),并通過(guò)編碼輸出模塊將壓縮后的單字節(jié)輸出到下一級(jí)電路。本設(shè)備亦可通過(guò)擴(kuò)展接口將多個(gè)設(shè)備級(jí)聯(lián)使用。本發(fā)明即插即用,操作簡(jiǎn)單,運(yùn)算速度快,功耗低。比傳統(tǒng)的軟件壓縮具有更好的實(shí)時(shí)性。適用于嵌入式通信系統(tǒng)的傳輸線路中,可有效減小數(shù)據(jù)量,解決傳輸延遲和設(shè)備能耗問(wèn)題。
【專利說(shuō)明】—種即插即用的多接口數(shù)據(jù)壓縮設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)字電子技術(shù)以及數(shù)據(jù)壓縮【技術(shù)領(lǐng)域】,應(yīng)用數(shù)字電子技術(shù)與壓縮算法實(shí)現(xiàn)具有數(shù)據(jù)壓縮功能的電子設(shè)備。
【背景技術(shù)】
[0002]隨著電子信息技術(shù)的發(fā)展,數(shù)字電子技術(shù)已廣泛應(yīng)用于嵌入式系統(tǒng)、通信、計(jì)算機(jī)、自動(dòng)化控制等領(lǐng)域。人們對(duì)電子設(shè)備的依賴性越來(lái)越強(qiáng),對(duì)設(shè)備的性能要求也逐漸提高?,F(xiàn)今的電子工程師和設(shè)計(jì)師們往往樂(lè)此不疲的為計(jì)算機(jī)更換更大的硬盤(pán),擴(kuò)展更多的內(nèi)存,增加更大的網(wǎng)絡(luò)帶寬,其目的主要是為了存放和傳輸越來(lái)越多的聲音、圖像等數(shù)據(jù)。對(duì)于數(shù)據(jù)的壓縮大體有兩個(gè)思路,要么采用成熟的通用數(shù)據(jù)壓縮技術(shù)進(jìn)行壓縮,要么根據(jù)媒體信息的特性設(shè)計(jì)新的壓縮方法。實(shí)際上,人們?cè)趦蓷l道路上都做了卓有成效的探索。計(jì)算機(jī)為什么需要數(shù)據(jù)壓縮技術(shù)?因?yàn)閿?shù)據(jù)的信息量實(shí)在太大。例如,對(duì)于目前的電子設(shè)備,IG的存儲(chǔ)容量有時(shí)都不足以存放30分鐘的視頻數(shù)據(jù)。因此,通常情況下,圖像的記錄和傳播首先需要進(jìn)行數(shù)據(jù)壓縮處理。簡(jiǎn)單來(lái)說(shuō),如果沒(méi)有數(shù)據(jù)壓縮技術(shù)我們就沒(méi)有辦法用軟件對(duì)Email中的附件瘦身;如果沒(méi)有數(shù)據(jù)壓縮技術(shù),市場(chǎng)上的數(shù)碼錄音筆就只能記錄不到20分鐘的語(yǔ)音;如果沒(méi)有數(shù)據(jù)壓縮技術(shù),從Internet上下載一部電影也許要花半年的時(shí)間,所以說(shuō)數(shù)據(jù)壓縮對(duì)人們的生活有著重要的意義。
[0003]數(shù)據(jù)壓縮有多種方法,較常用的是按過(guò)程的可逆性分為無(wú)損壓縮和有損壓縮兩大類(lèi)。無(wú)所壓縮是利用數(shù)據(jù)的冗余度壓縮,壓縮后的數(shù)據(jù)進(jìn)行重構(gòu)后與原來(lái)的數(shù)據(jù)完全相同,包括哈夫曼編碼、游程編碼、算術(shù)編碼和LZ編碼;有損壓縮后數(shù)據(jù)進(jìn)行重構(gòu)與原來(lái)的數(shù)據(jù)不同,多用于圖形、圖像和數(shù)字化語(yǔ)音壓縮等領(lǐng)域。多數(shù)的數(shù)據(jù)采集系統(tǒng)因被測(cè)對(duì)象的不確定性則需要采用無(wú)損數(shù)據(jù)壓。
[0004]由于近年來(lái)人們對(duì)設(shè)備性能要求的提高,傳統(tǒng)的軟件壓縮由于實(shí)時(shí)性受限等因素,以滿足不了電子工程師們的要求,為了在保證壓縮率的前提下追求更高的實(shí)時(shí)性,對(duì)于數(shù)據(jù)壓縮的研究已逐漸轉(zhuǎn)向數(shù)字集成電路以及FPGA等領(lǐng)域。
【發(fā)明內(nèi)容】
[0005]本發(fā)明為了解決嵌入式通信系統(tǒng)由于大數(shù)據(jù)量而引起的傳輸延遲、網(wǎng)絡(luò)擁塞以及存儲(chǔ)空間不足的問(wèn)題,提供一種可即插即用的多接口數(shù)據(jù)壓縮設(shè)備。該設(shè)備包含的算法簡(jiǎn)單、高效,設(shè)備操作便捷,即插即用,比傳統(tǒng)的軟件壓縮具有更好的實(shí)時(shí)性。并且基于該方法的數(shù)據(jù)接收端能完成數(shù)據(jù)的無(wú)損解壓還原。
[0006]本發(fā)明為了實(shí)現(xiàn)上述目的,采用以下技術(shù)方案:
[0007]—種即插即用的多接口數(shù)據(jù)壓縮設(shè)備,系統(tǒng)主要包括多接口輸入模塊,數(shù)據(jù)壓縮編碼模塊,標(biāo)識(shí)位編碼模塊,編碼輸出模塊以及擴(kuò)展接口。串行或并行數(shù)據(jù)由多接口輸入模塊輸入到模塊內(nèi)部(串行數(shù)據(jù)經(jīng)內(nèi)部移位寄存器處理轉(zhuǎn)換為并行數(shù)據(jù))。標(biāo)識(shí)位編碼模塊將接收到的數(shù)據(jù)進(jìn)行處理,生成壓縮編碼字節(jié)所需的標(biāo)識(shí)位,解壓須根據(jù)標(biāo)識(shí)位進(jìn)行數(shù)據(jù)處理。數(shù)據(jù)壓縮編碼模塊將標(biāo)識(shí)位與待壓縮數(shù)據(jù)拼合成最終的壓縮字節(jié)碼,通過(guò)編碼輸出模塊輸出到下一級(jí)電路。該設(shè)備可將輸入的16位數(shù)據(jù)以一個(gè)字節(jié)的形式輸出,從而達(dá)到壓縮目的。將若干該設(shè)備級(jí)聯(lián)使用可以擴(kuò)展輸入的數(shù)據(jù)位數(shù)。
[0008]本發(fā)明的有益效果是,根據(jù)嵌入式通信系統(tǒng)的數(shù)據(jù)量、數(shù)據(jù)變化趨勢(shì)和存儲(chǔ)空間等要求,可選擇性的加入該設(shè)備,通過(guò)該設(shè)備內(nèi)部提供的數(shù)據(jù)壓縮電路,能夠減少傳輸或存儲(chǔ)的數(shù)據(jù)量,有效降低傳輸延遲或內(nèi)存占用,進(jìn)而可以降低通信設(shè)備的能耗,延長(zhǎng)系統(tǒng)壽命。該壓縮設(shè)備即插即用,可移植性強(qiáng),操作簡(jiǎn)單。
【專利附圖】
【附圖說(shuō)明】
[0009]圖1是本發(fā)明的內(nèi)部電路總圖。
[0010]圖2是本發(fā)明的多接口輸入模塊電路圖。
[0011]圖3是本發(fā)明的標(biāo)不位編碼模塊電路圖。
[0012]圖4是本發(fā)明的壓縮編碼模塊電路圖。
[0013]圖5是本發(fā)明的編碼輸出模塊電路圖。
[0014]圖6是內(nèi)部結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0015]下面結(jié)合技術(shù)方案和附圖詳細(xì)說(shuō)明本發(fā)明的具體實(shí)施例,但本發(fā)明的實(shí)施方式不限于此。
[0016]圖1所示為本發(fā)明的內(nèi)部電路總圖。因版面限制等因素,此電路圖對(duì)非關(guān)鍵部分進(jìn)行了剪裁,目的是為了更清晰的表現(xiàn)各模塊直接的連接關(guān)系。完整的電路將在各模塊電路圖中詳細(xì)介紹。
[0017]圖2是本發(fā)明的多接口輸入模塊電路圖。其中同步串口(SPI)輸入接口由4片移位寄存器74HC595串聯(lián)而成,74HC595是一款漏極開(kāi)路輸出的CMOS移位寄存器,具有可控三態(tài)輸出的輸出端口,該芯片可將串行輸入的數(shù)據(jù)轉(zhuǎn)為并行數(shù)據(jù)輸出。CPU可通過(guò)SPI的獨(dú)立時(shí)鐘線與芯片的SCK 口相連,控制輸入數(shù)據(jù)在寄存器中的移位,當(dāng)4片74HC595中保存了兩個(gè)相鄰的16位數(shù)據(jù)后,CPU向芯片的RCK 口輸出一個(gè)上升沿,使四片移位寄存器同時(shí)向下一級(jí)模塊輸出鎖存的數(shù)據(jù),以進(jìn)行按位編碼處理。對(duì)于并行輸入的數(shù)據(jù),為了實(shí)現(xiàn)先分時(shí)輸入兩個(gè)16位數(shù)據(jù)再同時(shí)輸出,需先通過(guò)并入串出的移位寄存器轉(zhuǎn)為串行數(shù)據(jù),本設(shè)備選用兩個(gè)SN74165串聯(lián)實(shí)現(xiàn),其功能與74HC595相反,控制方法相似。再將串行數(shù)據(jù)輸入到第一片74HC595的輸入端(即最低位),進(jìn)行串并轉(zhuǎn)換。這樣的處理過(guò)程即保證了功能的實(shí)現(xiàn),又提高了芯片的復(fù)用率。兩種輸入方法通過(guò)輸入方式選擇開(kāi)關(guān)來(lái)控制。
[0018]圖3是本發(fā)明的標(biāo)示位編碼模塊電路圖。該模塊首先對(duì)輸入的兩個(gè)相鄰16位數(shù)據(jù)進(jìn)行減法運(yùn)算,以縮小數(shù)據(jù)絕對(duì)值,也就是說(shuō)本發(fā)明包含的壓縮算法是基于一種固定長(zhǎng)度算法,即將較大的數(shù)據(jù)用相對(duì)較少的固定的位數(shù)來(lái)表示。本發(fā)明用單字節(jié)來(lái)表示16位的差量。但是,并不是所有的差量都可以用單字節(jié)表示,也就是說(shuō)當(dāng)差值不小于64時(shí)是無(wú)法用I個(gè)字節(jié)來(lái)存儲(chǔ)的(實(shí)際只有6位可以存數(shù)據(jù),剩余兩位用作標(biāo)示位),對(duì)于這種情況本發(fā)明采取分時(shí)輸出兩個(gè)單字節(jié)的方法,將16位差值的高8位與低8位分別存儲(chǔ)在兩個(gè)字節(jié)中,再依次輸出。對(duì)于靜態(tài)數(shù)據(jù)或緩變數(shù)據(jù),此方法顯然是簡(jiǎn)單、高效的。[0019]由于差量有正有負(fù),輸出方式有單字節(jié)也有雙字節(jié),所以需要一個(gè)正負(fù)標(biāo)示位和一個(gè)輸出方式標(biāo)示位,以便在解壓的時(shí)候正確還原差量所表示的信息。數(shù)據(jù)的差量和正負(fù)標(biāo)示位本發(fā)明由若干74HC283與邏輯門(mén)配合實(shí)現(xiàn)。74HC283是具有超前進(jìn)位功能的4位全加器,可進(jìn)行兩個(gè)4位二進(jìn)制數(shù)的加法運(yùn)算每位有和輸出Σ I~Σ 4,進(jìn)位由第4位得到C4,將多個(gè)加法器級(jí)聯(lián)即可進(jìn)行16位運(yùn)算。由于16位超前進(jìn)位產(chǎn)生邏輯十分復(fù)雜,故本發(fā)明僅采用將4片74HC238串聯(lián)的方法,有關(guān)傳輸延遲的問(wèn)題,將在后文做出解決方案。由二進(jìn)制數(shù)算數(shù)運(yùn)算可知,減法運(yùn)算是通過(guò)加法運(yùn)算進(jìn)行的。若16位二進(jìn)制的原碼為N#,則與它相對(duì)應(yīng)的二進(jìn)制補(bǔ)碼為
[0020]N補(bǔ)=216-? (式 I)
[0021]補(bǔ)碼與反碼的關(guān)系式
[0022]N補(bǔ)=N反+ 1 (式 2)
[0023]設(shè)兩個(gè)16進(jìn)制數(shù)A、B相減,利用式I和式2可得
[0024]A-B = A+B 補(bǔ) _216 = A+B 反 +1_216 (式 3)
[0025]式3表明,A減B可由A加B的補(bǔ)碼并減216完成,具體原理如下,由16個(gè)反向器將B的各位反向(求反),并將第I片74HC283進(jìn)位輸入端CL1接邏輯I以實(shí)現(xiàn)加1,由此求得B的補(bǔ)碼。加法器相加結(jié)果為(A+B&+1)。由于216 = (10000000000000000)2,相加結(jié)果與216相減只能由加法器進(jìn)位輸出信號(hào)完成。當(dāng)進(jìn)位輸出信號(hào)為I時(shí),它與216的差位O ;當(dāng)進(jìn)位輸出信號(hào)為O時(shí),它與216的差值為1,同時(shí)還應(yīng)發(fā)出借位信號(hào)。因此,只要將進(jìn)位信號(hào)反向即實(shí)現(xiàn)了減216的運(yùn)算,反相器的輸出SIGN為I時(shí)需要借位,故SIGN也可作為借位信號(hào)。借位信號(hào)SIGN為O時(shí)代表差值為正,為I時(shí)代表差值為負(fù)。由于壓縮編碼需要差值的原碼而不是補(bǔ)碼,所以還需進(jìn)行變換。由式I可知將補(bǔ)碼再求補(bǔ)得原碼。求補(bǔ)電路如圖3中第二排的4片74HC28 3所示,第一排芯片所得差值輸入到異或門(mén)的一個(gè)輸入端,而另一端輸入由借位信號(hào)SIGN控制。當(dāng)SIGN=I時(shí),差值按位取反,并與SIGN=I相加,實(shí)現(xiàn)求補(bǔ)運(yùn)算;SIGN=0時(shí),差值不取反,加法器也不實(shí)現(xiàn)加I運(yùn)算,維持原碼。這樣,求補(bǔ)電路與上一排的電路共同組成輸出為原碼的完整的16位減法運(yùn)算電路,并帶有符號(hào)位輸出,即符號(hào)+絕對(duì)值。最后,將差值的絕對(duì)值(原碼)輸入到比較器中與64進(jìn)行比較,若大于或等于64,則輸出方式標(biāo)志位TYPE置1,否則置O。比較器由若干SN7485數(shù)據(jù)比較器并聯(lián)而成,用邏輯門(mén)電路對(duì)TYPE加以控制。由此,該標(biāo)識(shí)位編碼模塊便可輸出方式標(biāo)示位、符號(hào)標(biāo)識(shí)位以及差量絕對(duì)值。
[0026]圖4是本發(fā)明的壓縮編碼模塊電路圖。主要由寄存器和邏輯門(mén)組成,其功能是將輸出方式標(biāo)識(shí)位、符號(hào)標(biāo)識(shí)位和差量絕對(duì)值拼合為最終的壓縮編碼字節(jié)。本發(fā)明規(guī)定,若以單字節(jié)輸出編碼字節(jié)(TYPE=O),則寄存器的D7位為T(mén)YPE位,D6位為SIGN位,D5~DO為差值絕對(duì)值,輸出時(shí)只輸出低8位。若以雙字節(jié)分時(shí)輸出(TYPE=I ),則寄存器的D15位為T(mén)YPE位,D14位為SIGN位,D13~DO為差值絕對(duì)值,輸出時(shí)先輸出高8位,再輸出低8位??梢钥闯?,寄存器的D6、D7、D14和D15的置是根據(jù)TYPE取值進(jìn)行編碼的,其真值表如下表所示。
[0027]
【權(quán)利要求】
1.一種即插即用的多接口數(shù)據(jù)壓縮設(shè)備,其特征在于,該數(shù)據(jù)壓縮設(shè)備包括多接口輸入模塊、標(biāo)識(shí)位編碼模塊、數(shù)據(jù)壓縮編碼模塊和編碼輸出模塊;串行或并行數(shù)據(jù)由多接口輸入模塊輸入到模塊內(nèi)部;標(biāo)識(shí)位編碼模塊將輸入模塊接收到的數(shù)據(jù)進(jìn)行處理,生成壓縮編碼字節(jié)所需的標(biāo)識(shí)位,解壓須根據(jù)標(biāo)識(shí)位進(jìn)行數(shù)據(jù)處理;數(shù)據(jù)壓縮編碼模塊將標(biāo)識(shí)位與數(shù)據(jù)位拼合成最終的壓縮字節(jié)碼,通過(guò)編碼輸出模塊輸出到下一級(jí)電路; 所述的標(biāo)識(shí)位編碼模塊包括若干超前進(jìn)位加法器與數(shù)據(jù)比較器,該模塊負(fù)責(zé)數(shù)據(jù)處理,內(nèi)部的減法電路將兩個(gè)二進(jìn)制原碼做差,并輸出差值的絕對(duì)值原碼和一個(gè)正負(fù)標(biāo)識(shí)位;輸入的兩個(gè)相鄰數(shù)據(jù)做差后,得到一個(gè)絕對(duì)值小的原碼和對(duì)應(yīng)的正負(fù)標(biāo)識(shí)位SIGN ;數(shù)據(jù)比較電路將上述絕對(duì)值原碼與64進(jìn)行比較,判斷是否將絕對(duì)值存儲(chǔ)于6bit的空間內(nèi): 若能夠存儲(chǔ),則輸出一個(gè)TYPE=O的標(biāo)志位,代表該設(shè)備最終以單字節(jié)的形式輸出,即兩個(gè)標(biāo)識(shí)位和6bit的絕對(duì)值原碼; 若不能存儲(chǔ)于6bit的空間內(nèi),則輸出一個(gè)TYPE=I的標(biāo)志位,代表需要利用一個(gè)字節(jié)空間存其低8位,再用另一個(gè)字節(jié)空間存剩余的位和兩個(gè)標(biāo)識(shí)位,設(shè)備最終以兩個(gè)字節(jié)分時(shí)進(jìn)行輸出,即Hbit的絕對(duì)值原碼和兩個(gè)標(biāo)識(shí)位; 解壓時(shí),通過(guò)標(biāo)識(shí)位決定每次處理的字節(jié)數(shù)以及差值的正負(fù); 所述的壓縮編碼模塊和編碼輸出模塊,包括寄存器、D觸發(fā)器和邏輯門(mén),標(biāo)識(shí)位編碼模塊所輸出的SIGN位、TYPE位和絕對(duì)值原碼,經(jīng)過(guò)邏輯計(jì)算存儲(chǔ)在相應(yīng)的位置上;若以單字節(jié)輸出,則將符號(hào)位SIGN與輸出方式位TYPE分別置于壓縮字節(jié)碼的第6位與第7位;若以雙字節(jié)分時(shí)輸出,則將符號(hào)位SIGN與輸出方式位TYPE分別置于壓縮字節(jié)碼的第14位與第15位;編碼輸出模塊中的時(shí)鐘分頻電路與數(shù)據(jù)選擇電路,對(duì)這兩種輸出方式進(jìn)行分時(shí)控制。
2.根據(jù)權(quán)利要求1所述的一種即插即用的多接口數(shù)據(jù)壓縮設(shè)備,其特征在于,多接口輸入模塊配有擴(kuò)展接口,將不同數(shù)據(jù)位數(shù)輸入。
3.根據(jù)權(quán)利要求1或2所述的一種即插即用的多接口數(shù)據(jù)壓縮設(shè)備,其特征在于,所述的多接口輸入模塊設(shè)置一個(gè)選擇開(kāi)關(guān),選擇輸入串行數(shù)據(jù)或并行數(shù)據(jù);若是串行數(shù)據(jù),則需通過(guò)多接口輸入模塊內(nèi)部的移位寄存器轉(zhuǎn)換為并行數(shù)據(jù),移位所需的時(shí)鐘信號(hào)以及使能信號(hào)由外殼上的時(shí)鐘輸入接口和使能信號(hào)接口提供。
4.根據(jù)權(quán)利要求1或2所述的一種即插即用的多接口數(shù)據(jù)壓縮設(shè)備,其特征在于,所述的標(biāo)識(shí)位編碼模塊,SIGN位為O時(shí),代表差值為正,為I時(shí),代表差值為負(fù);TYPE位為O時(shí),代表輸出方式為單字節(jié)輸出,為I時(shí),代表雙字節(jié)分時(shí)輸出。
5.根據(jù)權(quán)利要求3所述的一種即插即用的多接口數(shù)據(jù)壓縮設(shè)備,其特征在于,所述的標(biāo)識(shí)位編碼模塊,SIGN位為O時(shí),代表差值為正;為I時(shí),代表差值為負(fù);TYPE位為O時(shí),代表輸出方式為單字節(jié)輸出 '為I時(shí),代表雙字節(jié)分時(shí)輸出。
【文檔編號(hào)】H03M7/30GK103607207SQ201310557267
【公開(kāi)日】2014年2月26日 申請(qǐng)日期:2013年11月11日 優(yōu)先權(quán)日:2013年11月11日
【發(fā)明者】金仁成, 趙萌, 何清葉, 朱明 , 劉沖 申請(qǐng)人:大連理工大學(xué)