一種數據壓縮方法、數據解壓縮方法及裝置與流程
2023-10-09 01:50:24 1
本發明涉及數據傳輸
技術領域:
,尤其涉及一種數據壓縮方法及裝置。
背景技術:
:磁共振系統主要由磁體系統、梯度輸出模塊、射頻輸出模塊、信號採集模塊、數據傳輸模塊、圖像重建系統和計算機控制系統等組成。信號採集模塊的數據為模數轉換晶片並經過數字下變頻處理後的數據。現有技術中,通常對數字下變頻的數據不做任何處理,只是增加數據包長度、數據格式、通道號等指示性包頭信息。然而,不對數據進行處理會導致在對該數據進行傳輸時比較浪費傳輸帶寬。技術實現要素:有鑑於此,本發明提供了一種數據壓縮方法、解壓縮方法及裝置,用以解決現有技術中不對數據進行任何處理會導致在傳輸該數據時比較浪費傳輸帶寬的問題,其技術方案如下:一種數據壓縮方法,包括:獲取待壓縮數據序列,並基於預先設置的可壓縮量與數據範圍的對應關係,將所述待壓縮數據序列中的各個數據轉換為與所述各個數據所屬的數據範圍所對應的可壓縮量的數據,獲得第一數據序列,其中,所述可壓縮量用於指示將待轉換數據轉換為多少比特或者多少字節的數據;獲得所述第一數據序列中連續出現同一可壓縮量的數據的個數,將獲得的個數與對應的可壓縮量按預設規則組合作為計數值,並在所述連續出現同一可壓縮量的數據的第一預設位置插入對應的計數值,獲得第二數據序列;獲得所述第二數據序列的總數據量,並基於所述第一預設位置將所述第二數據序列的總數據量插入所述第二數據序列的第二預設位置,獲得壓縮數據序列,所述第二數據序列的總數據量為所述第二數據序列的總比特數或總字節數。其中,所述第一預設位置為所述連續出現同一可壓縮量的數據中最後一個數據的後面或者首個數據的前面;所述基於所述第一預設位置將所述第二數據序列的總數據量插入所述第二數據序列的第二預設位置,包括:當所述第一預設位置為所述連續出現同一可壓縮量的數據中最後一個數據的後面時,將所述第二數據序列的總數據量插入所述第二數據序列的尾部;當所述第一預設位置為所述連續出現同一可壓縮量的數據中首個數據的前面時,將所述第二數據序列的總數據量插入所述第二數據序列的頭部。所述的數據壓縮方法,還包括:當所述第一預設位置為所述連續出現同一可壓縮量的數據中最後一個數據的後面,所述第二預設位置為所述第二數據序列的尾部時,倒序輸出所述壓縮數據序列;當所述第一預設位置為所述連續出現同一可壓縮量的數據中首個數據的前面,所述第二預設位置為所述第二數據序列的頭部時,正序輸出所述壓縮數據序列。一種數據解壓縮方法,用於對所述的數據壓縮方法進行壓縮後得到的壓縮數據序列進行解壓縮,所述數據解壓縮方法包括:接收所述壓縮數據序列;從所述壓縮數據序列中讀取總數據量;從所述壓縮數據序列中讀取計數值,基於所述計數值中用於指示連續出現同一可壓縮量的數據的個數的數據讀取待轉換數據,並基於所述計數值中用於指示可壓縮量的數據將所述待轉換數據轉換為原始數據。所述數據解壓縮方法還包括:當接收的所述壓縮數據序列為數據壓縮端倒序輸出的數據序列時,將依次獲得的原始數據組成的數據序列進行倒序排序,將倒序排序後的數據序列確定為原始數據序列;當接收的所述壓縮數據序列為數據壓縮端正序輸出的數據序列時,將依次獲得的原始數據組成的數據序列確定為原始數據序列。一種數據壓縮裝置,包括:數據獲取單元、數據轉換單元、第一獲得單元、第一插入單元、第二獲得單元和第二插入單元;所述數據獲取單元,用於獲取待壓縮數據序列;所述數據轉換單元,用於基於預先設置的可壓縮量與數據範圍的對應關係,將所述待壓縮數據序列中的各個數據轉換為與所述各個數據所屬的數據範圍所對應的可壓縮量的數據,獲得第一數據序列,其中,所述可壓縮量用於指示將待轉換數據轉換為多少比特或者多少字節的數據;所述第一獲得單元,用於獲得所述第一數據序列中連續出現同一可壓縮量的數據的個數,將獲得的個數與對應的可壓縮量按預設規則組合作為計數值;所述第一插入單元,用於在所述連續出現同一可壓縮量的數據的第一預設位置插入對應的計數值,獲得第二數據序列;所述第二獲得單元,用於獲得所述第二數據序列的總數據量;所述第二插入單元,用於基於所述第一預設位置將所述第二數據序列的總數據量插入所述第二數據序列的第二預設位置,獲得壓縮數據序列,所述第二數據序列的總數據量為所述第二數據序列的總比特數或總字節數。其中,所述第一預設位置為所述連續出現同一可壓縮量的數據中最後一個數據的後面或者首個數據的前面;所述第二插入單元,具體用於當所述第一預設位置為所述連續出現同一可壓縮量的數據中最後一個數據的後面時,將所述第二數據序列的總數據量插入所述第二數據序列的尾部;當所述第一預設位置為所述連續出現同一可壓縮量的數據中首個數據的前面時,將所述第二數據序列的總數據量插入所述第二數據序列的頭部。所述數據壓縮裝置還包括:數據輸出單元;所述數據輸出單元,用於當所述第一預設位置為所述連續出現同一可壓縮量的數據中最後一個數據的後面,所述第二預設位置為所述第二數據序列的尾部時,倒序輸出所述壓縮數據序列;當所述第一預設位置為所述連續出現同一可壓縮量的數據中首個數據的前面,所述第二預設位置為所述第二數據序列的頭部時,正序輸出所述壓縮數據序列。一種數據解壓縮裝置,用於對所述的數據壓縮裝置進行壓縮後得到的壓縮數據序列進行解壓縮,所述數據解壓縮裝置包括:數據接收單元、數據讀取單元和數據轉換單元;所述數據接收單元,用於接收所述壓縮數據序列;所述數據讀取單元,用於從所述數據接收單元接收的所述壓縮數據序列中讀取總數據量、計數值,基於所述計數值中用於指示連續出現同一可壓縮量的數據的個數的數據讀取待轉換數據;所述數據轉換單元,用於基於所述數據讀取單元讀取的所述計數值中用於指示可壓縮量的數據將所述數據讀取單元讀取的所述待轉換數據轉換為原始數據。所述數據解壓縮裝置還包括:確定單元;所述確定單元,用於當所述接收單元接收的所述壓縮數據序列為數據壓縮端倒序輸出的數據序列時,將依次獲得的原始數據組成的數據序列進行倒序排序,將倒序排序後的數據序列確定為原始數據序列;當所述接收單元接收的所述壓縮數據序列為數據壓縮端正序輸出的數據序列時,將依次獲得的原始數據組成的數據序列確定為原始數據序列。上述技術方案具有如下有益效果:本發明提供的數據壓縮方法、解壓縮方法及裝置中的壓縮方法及裝置,在獲取待壓縮數據序列之後,可基於預先設置的可壓縮量與數據範圍的對應關係,將待壓縮數據序列中的各個數據轉換為與各個數據所屬的數據範圍所對應的可壓縮量的數據,獲得第一數據序列,獲得第一數據序列中連續出現同一可壓縮量的數據的個數,將獲得的個數與對應的可壓縮量按預設規則組合作為計數值,並在連續出現同一可壓縮量的數據的第一預設位置插入對應的計數值,獲得第二數據序列,最後獲得第二數據序列的總數據量,並基於第一預設位置將第二數據序列的總數據量插入第二數據序列的第二預設位置,獲得壓縮數據序列。本發明可基於待壓縮數據序列所對應信號的分布特點確定數據的可壓縮量,進而基於數據的大小和可壓縮量進行數據壓縮,對數據進行壓縮後再傳輸,能夠節省大量的傳輸帶寬。附圖說明為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。圖1為本發明實施例提供的數據壓縮方法的流程示意圖;圖2為本發明實施例提供的數據解壓縮方法的流程示意圖;圖3示出了磁共振信號的數據分布示意圖;圖4示出了磁共振圖像中間行及邊緣行的數據分布示意圖;圖5為本發明實施例提供的數據壓縮裝置的結構示意圖;圖6為本發明實施例提供的數據解壓縮裝置的結構示意圖。具體實施方式下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。本發明實施例提供了一種數據壓縮方法,應用於數據壓縮端,請參閱圖1,示出了該數據壓縮方法的流程示意圖,該方法可以包括:步驟S101:獲取待壓縮數據序列,並基於預先設置的可壓縮量與數據範圍的對應關係,將待壓縮數據序列中的各個數據轉換為與各個數據所屬的數據範圍所對應的可壓縮量的數據,獲得第一數據序列。在一具體實例中,由數據壓縮裝置從磁共振系統的數據採集裝置獲得待壓縮數據序列,對獲得的待壓縮數據序列進行後續的數據壓縮處理。所述數據壓縮裝置可由信號採集模塊或數據傳輸模塊實現。其中,可壓縮量用於指示將待轉換數據轉換為多少比特或者多少字節的數據。可壓縮量可基於待壓縮數據序列所對應信號的分布特點確定。待壓縮數據序列包括多個數據,在一種可能的實現方式中,數據壓縮裝置可依次對待壓縮數據序列中的每個數據執行數據轉換操作:基於可壓縮量與數據範圍的對應關係中的數據範圍確定待轉換數據所屬的數據範圍,示例性的,可壓縮量與數據範圍的對應關係可以為:可壓縮量數據範圍8比特-(27-1)~+(27-1)16比特-(215-1)~+(215-1)24比特-(224-1)~+(224-1)32比特-(231-1)~+(231-1)假設待轉換數據所屬的數據範圍為-(27-1)~+(27-1),與數據範圍-(27-1)~+(27-1)對應的可壓縮量為8比特,則將待轉換數據轉換為8比特的數據。對待壓縮數據序列中的各個數據依次執行上述轉換操作,獲得第一數據序列。步驟S102:獲得第一數據序列中連續出現同一可壓縮量的數據的個數,將獲得的個數與對應的可壓縮量按預設規則組合作為計數值,並在連續出現同一可壓縮量的數據的第一預設位置插入對應的計數值,獲得第二數據序列。在一種可能的實現方式中,可將計數值用N字節表示,其中,將連續出現同一可壓縮量的數據的個數作為N字節的低m位,將對應的可壓縮量作為N字節的高n位(m+n=8N),即低m位的個數與高n位的可壓縮量組成N字節的計數值。示例性的,計數值可用2位元組表示,其中,計數器值的低12位表示連續出現同一可壓縮量的數據的個數,計數器值的高4位表示可壓縮量,即可壓縮字節數。步驟S103:獲得第二數據序列的總數據量,並基於第一預設位置將第二數據序列的總數據量插入第二數據序列的第二預設位置,獲得壓縮數據序列,第二數據序列的總數據量為第二數據序列的總比特數或總字節數。在一種可能的實現方式中,第一預設位置可以為連續出現同一可壓縮量的數據中最後一個數據的後面,則基於第一預設位置將第二數據序列的總數據量插入第二數據序列的第二預設位置,包括:將第二數據序列的總數據量插入第二數據序列的尾部。在另一種可能的實現方式中,第一預設位置可以為連續出現同一可壓縮量的數據中第一個數據的前面,則基於第一預設位置將第二數據序列的總數據量插入第二數據序列的第二預設位置,包括:將第二數據序列的總數據量插入第二數據序列的頭部。本發明實施例提供的數據壓縮方法,數據壓縮端的數據壓縮裝置在獲取待壓縮數據序列之後,可基於預先設置的可壓縮量與數據範圍的對應關係,將待壓縮數據序列中的各個數據轉換為與各個數據所屬的數據範圍所對應的可壓縮量的數據,獲得第一數據序列,獲得第一數據序列中連續出現同一可壓縮量的數據的個數,將獲得的個數與對應的可壓縮量按預設規則組合作為計數值,並在連續出現同一可壓縮量的數據的第一預設位置插入對應的計數值,獲得第二數據序列,最後獲得第二數據序列的總數據量,並基於第一預設位置將第二數據序列的總數據量插入第二數據序列的第二預設位置,獲得壓縮數據序列。本發明實施例提供的數據壓縮方法可實現對數據的壓縮,從而使得,在對壓縮後的數據進行傳輸時能夠節省大量帶寬,且能夠提高數據的傳輸效率。可以理解的是,數據壓縮端的數據壓縮裝置在對數據採集裝置採集的待壓縮數據進行壓縮後需要輸出給數據傳輸模塊,在向數據傳輸模塊輸出壓縮數據序列時,為了便於後續數據解壓縮端的數據解壓縮裝置進行數據解壓縮,可基於第一預設位置和第二預設位置確定壓縮數據的輸出方式,具體的,當第一預設位置為連續出現同一可壓縮量的數據中最後一個數據的後面,第二預設位置為第二數據序列的尾部時,倒序輸出壓縮數據序列;當第一預設位置為連續出現同一可壓縮量的數據中首個數據的前面,第二預設位置為第二數據序列的頭部時,正序輸出壓縮數據序列。與上述數據壓縮方法相對應,本發明實施例還提供了一種數據解壓縮方法,應用於數據解壓縮端,請參閱圖2,示出了該數據解壓縮方法的流程示意圖,該方法可以包括:步驟S201:接收壓縮數據序列。在一具體實例中,數據解壓縮端的數據解壓縮裝置接收由磁共振系統的數據傳輸模塊傳輸來的、經數據壓縮裝置壓縮得到的壓縮數據序列之後,進行數據解壓縮。所述數據解壓縮裝置可由圖像重建系統或計算機控制系統實現。步驟S202:從壓縮數據序列中讀取總數據量。步驟S203:從壓縮數據序列中讀取計數值,基於計數值中用於指示連續出現同一可壓縮量的數據的個數的數據讀取待轉換數據,並基於計數值中用於指示可壓縮量的數據將待轉換數據轉換為原始數據。本發明實施例提供的數據解壓縮方法還可以包括:當數據解壓縮裝置接收的壓縮數據序列為數據壓縮端倒序輸出的數據序列時,將依次獲得的原始數據組成的數據序列進行倒序排序,將倒序排序後的數據序列確定為原始數據序列;當接收的壓縮數據序列為數據壓縮端正序輸出的數據序列時,將依次獲得的原始數據組成的數據序列確定為原始數據序列。本發明實施例提供的數據解壓縮方法,可對利用上述數據壓縮方法得到的壓縮數據序列進行解壓縮,從而復原出原始數據序列。在上述本發明實施例提供的數據壓縮方法的基礎上,現列舉一具體示例進行說明:以磁共振信號為例,磁共振信號的特點是信號的動態範圍大,如果用長度為n的行向量表示,通常在n/2附近的點常有很大的幅度,而靠近1和n的邊緣有很小的幅度,如圖3所示,這樣可以發現數據的特徵是中間高,兩邊低,而磁共振一副圖像由多行數據構成,行與行之間也有類似規律,如圖4的(a)表示中間行,(b)和(c)為邊緣行,(c)比(b)更加靠近圖像邊緣。本發明實施例利用該特徵對數據進行壓縮。採集的模擬信號經過模數轉換晶片和數字下變頻晶片處理後通常用32比特補碼表示。在本實施例中,需要將補碼轉換為原碼,表示為d31,d30,d29,d28…d0,其中,最高位d31表示符號位,d30,d29,d28…d0,這31比特表示數據的絕對值,取出原碼的最高位,即符號位d31保留。將低31位分為d6,d5…d0;d14,d13…d0;d22,d21…d0;d30,d29…d0這4個範圍,並用符號位d31附加在每個範圍的最高位,得到:[d31,d6,d5…d0],[d31,d14,d13…d0],[d31,d22,d21…d0]和[d31,d30,d29…d0]。上述得到4個數據區間,其對應的數據範圍分別為-(27-1)至+(27-1);-(215-1)至+(215-1);-(223-1)至+(223-1)和-(231-1)至+(231-1),上述過程相當於建立了可壓縮量與數據範圍的對應關係,可表示為:表2可壓縮量數據範圍8比特-(27-1)~+(27-1)16比特-(215-1)~+(215-1)24比特-(224-1)~+(224-1)32比特-(231-1)~+(231-1)表2中的可壓縮量8比特和數據範圍-(27-1)~+(27-1)標識,在-(27-1)~+(27-1)這一範圍內的數據可轉換為8比特的數據,也就是說,如果待壓縮數據序列中的各個數據均為32比特數據,而其中某個數據在-(27-1)~+(27-1)這一範圍內,則進行數據轉換後,該數據在存儲和傳輸時可節省24比特。同樣的,如果某一數據在-(215-1)~+(215-1)這一範圍內,則進行數據轉換後,該數據在存儲和傳輸時可節省16比特,如果某一數據在-(224-1)~+(224-1)這一範圍內,則進行數據轉換後,該數據在存儲和傳輸時可節省8比特,如果某一數據在-(231-1)~+(231-1)這一範圍內,則進行數據轉換後,該數據在存儲和傳輸時可節省0比特。假設待壓縮的數據序列為1,2,3,257,258,4,5,6,7,65537,2147483647,則:(1)基於表2示出的對應關係依次對待壓縮數據序列中的各個數據進行轉換:判斷第一個數據「1」所屬的數據範圍,由於數據「1」所屬的數據範圍為-(27-1)~+(27-1),該數據範圍為-(27-1)~+(27-1)對應的可壓縮量為8,表示第一個數據「1」可轉換為8比特的數據,即可轉換為單字節數據0x01;接著判斷第二個數據「2」所屬的數據範圍,由於數據2所屬的數據範圍同樣為-(27-1)~+(27-1),因此,將第二個數據「2」也轉換為8比特的數據,即可轉換為單字節數據0x02;第三個數據「3」也轉換為8比特的數據,即將第三個數據「3」轉換為單字節數據0x03;第四個數據為257,其所屬的數據範圍為-(215-1)~+(215-1),數據範圍-(215-1)~+(215-1)對應的可壓縮量為16,表示第四個數據「257」可轉換為16比特的數據,即可將第四個數據「257」轉換為雙字節數據0x0101;第五個數據為「258」,其所屬的數據範圍同樣為-(215-1)~+(215-1),因此,將其可轉換為雙字節數據0x0102;第六個數「4」、第七個數「5」、第八個數「6」和第九個數「7」所屬的數據範圍均為-(27-1)~+(27-1),因此,依次將第六個數「4」、第七個數「5」、第八個數「6」和第九個數「7」轉換為單字節數0x04、0x05、0x06和0x07;第十個數「65537」所屬的數據範圍為-(224-1)~+(224-1),該數據範圍-(224-1)~+(224-1)對應的可壓縮量為24,表示第十個數據「65537」可轉換為24比特的數據,即可轉換為三字節數據0x010001;第11個數據「2147483647」所屬的數據範圍為-(231-1)~+(231-1),該數據範圍-(231-1)~+(231-1)對應的可壓縮量為32,表示第11個數據65537可轉換為32比特的數據,即可轉換為四字節數據0x7fffffff。經過上述數據轉換可得到第一數據序列:0x01,0x02,0x03,0x0101,0x0102,0x04,0x05,0x06,0x07,0x010001,0x7fffffff。(2)依次獲得經數據轉換後得到的第一數據序列中,連續出現同一可壓縮量的數據的個數:序列0x01,0x02,0x03,0x0101,0x0102,0x04,0x05,0x06,0x07,0x010001,0x7fffffff中,連續出現了3個單字節數據(0x01,0x02,0x03)、連續出現了2個雙字節數據(0x0101,0x0102)、連續出現了4個單字節數據(0x04,0x05,0x06,0x07)、出現了1個三字節數據(0x010001),出現了1個四字節數據(0x7fffffff)。(3)將獲得的個數與對應的可壓縮量按預設規則組合作為計數值:在本實施例中,計數值可用2位元組表示,其中,計數器值的高4位表示可壓縮量,即可壓縮字節數,計數器值的低12位表示連續出現同一可壓縮量的數據的個數,可將計數值表示為k.cnt,其中,k即為可壓縮量,為了便於後續處理,這裡可表示成可壓縮字節數,其取值可以為1、2、3、4,cnt表示連續出現同一可壓縮量的數據的個數。對序列0x01,0x02,0x03,0x0101,0x0102,0x04,0x05,0x06,0x07,0x010001,0x7fffffff依次確定計數值分別為0x1003(k=1,cnt=3)、0x2002(k=2,cnt=2)、0x1004(k=1,cnt=4)、0x3001(k=3,cnt=1)、0x4001(k=4,cnt=1)。(4)對於第一數據序列,依次在連續出現同一可壓縮量的數據的最後一個數據後面插入對應的計數值,獲得第二數據序列:在0x01,0x02,0x03後插入計數值0x1003,在0x0101,0x0102後插入計數值0x2002,在0x04,0x05,0x06,0x07之後插入計數值0x1004,在0x010001之後插入計數值0x3001,在0x7fffffff之後插入計數值0x4001,得到如下的第二數據序列:0x01,0x02,0x03,0x1003,0x0101,0x0102,0x2002,0x04,0x05,0x06,0x07,0x1004,0x010001,0x3001,0x7fffffff,0x4001。(5)獲得第二數據序列的總字節數total,並在第二數據序列的尾部添加獲得的總字節數total:第二數據序列的總字節數total=3*1+1*2+2*2+1*2+4*1+1*2+1*3+1*2+1*4+1*2=28(0x001c);在第二數據序列0x01,0x02,0x03,0x1003,0x0101,0x0102,0x2002,0x04,0x05,0x06,0x07,0x1004,0x010001,0x3001,0x7fffffff,0x4001的尾部插入總字節數0x001c,得到如下壓縮數據序列:0x01,0x02,0x03,0x1003,0x0101,0x0102,0x2002,0x04,0x05,0x06,0x07,0x1004,0x010001,0x3001,0x7fffffff,0x4001,0x001c。(6)壓縮數據序列的輸出:為了簡化解壓縮端對數據序列的解壓縮過程,壓縮數據序列0x01,0x02,0x03,0x1003,0x0101,0x0102,0x2002,0x04,0x05,0x06,0x07,0x1004,0x010001,0x3001,0x7fffffff,0x4001,0x001c倒序輸出,即,先輸出總字節數0x001c,再輸出計數值0x4001,接著依次是0x7fffffff,0x3001,0x010001,0x1004,0x07,0x06,0x05,0x04,0x2002,0x0102,0x0101,0x1003,0x03,0x02,0x01。需要說明的是,壓縮數據序列需要通過用於傳輸數據的邏輯模塊向外界傳輸。示例性的,如果用於傳輸數據的邏輯模塊使用8位接口,可以直接用8比特傳輸。如果用於傳輸數據的邏輯模塊使用32位接口,則將4個通道的數據組合成:[通道1(8bit),通道2(8bit),通道3(8bit),通道4(8bit)](32bit)的格式進行一次傳輸4個通道的數據。可以理解的是,如果只使用一個通道傳輸數據,則使用字節傳輸模式,不進行字節和字的轉換操作。下面給出對通過上述壓縮過程得到的壓縮數據序列進行解壓縮的過程:由於壓縮端對壓縮數據序列0x01,0x02,0x03,0x1003,0x0101,0x0102,0x2002,0x04,0x05,0x06,0x07,0x1004,0x010001,0x3001,0x7fffffff,0x4001,0x001c倒序輸出,因此,對於解壓縮端而言:首先,讀取的是總字節數0x001c,通過總字節數0x001c可得知需要為後續的操作分配多大的存儲空間。然後,讀取計數值0x4001(k.cnt,k=4,cnt=1),由0x4001可得知接下來接收到1個(cnt=1)四字節數據(k=4),即0x7fffffff,將0x7fffffff復原為原始數據2147483647;接著讀取計數值0x3001(k.cnt,k=3,cnt=1),由0x3001可得知接下來接收到1個(cnt=1)三單字節數據(k=3),即0x010001,將0x010001復原為原始數據65537;接著讀取計數值0x1004,(k.cnt,k=1,cnt=4),由0x1004可得知接下來接收到4(cnt=4)個單字節數據(k=1),即依次接收到0x07,0x06,0x05,0x04,並依次復原成原始數據7,6,5,4;接著讀取計數值0x2002(k.cnt,k=2,cnt=2),由0x2002可得知接下來接收到2(cnt=2)個雙字節數據(k=2),即依次接收到0x0102,0x0101,並依次復原成原始數據258,257;接著讀取計數值0x1003(k.cnt,k=1,cnt=3),由0x1003可得知接下來接收到3(cnt=3)個單字節數據(k=1),即依次接收到0x03,0x02,0x01,並依次復原成原始數據3,2,1。經過上述過程得到如下數據序列:2147483647,65537,7,6,5,4,258,257,3,2,1。最後,將數據序列2147483647,65537,7,6,5,4,258,257,3,2,1倒序排序,得到原始序列1,2,3,257,258,4,5,6,7,65537,2147483647。對於磁共振信號而言,由於對於採集的模擬信號經過模數轉換晶片和數字下變頻晶片處理後通常用32比特補碼表示,而前面提到的待壓縮序列是將經過模數轉換晶片和數字下變頻晶片處理後得到的32比特補碼轉換為原碼後的數據,因此,為了復原經過模數轉換晶片和數字下變頻晶片處理後的數據,還需要對解壓縮得到的數據進行原碼到補碼的轉換。需要說明的是,在上述壓縮過程的步驟(4)中,對於第一數據序列,依次在連續出現同一可壓縮量的數據的最後一個數據後面插入對應的計數值,除了這種方式外,還可依次在連續出現同一可壓縮量的數據的首個數據前面插入對應的計數值,通過這種方式得到的第二數據序列為:0x1003,0x01,0x02,0x03,0x2002,0x0101,0x0102,0x1004,0x04,0x05,0x06,0x07,0x3001,0x010001,0x4001,0x7fffffff。此時,獲得的第二數據序列的總字節數total不再添加至第二數據序列的尾部,而是添加至第二數據序列的頭部,通過這種方式獲得壓縮數據序列為:0x001c,0x1003,0x01,0x02,0x03,0x2002,0x0101,0x0102,0x1004,0x04,0x05,0x06,0x07,0x3001,0x010001,0x4001,0x7fffffff。在對壓縮數據序列的輸出時,直接正序輸出即可。在對壓縮數據序列進行解壓縮時,不再需要對解壓出的數據序列進行倒序排序。與上述數據壓縮方法相對應,本發明實施例還提供了一種數據壓縮裝置,請參閱圖5,示出了該數據壓縮裝置50的結構示意圖,可以包括:數據獲取單元501、數據轉換單元502、第一獲得單元503、第一插入單元504、第二獲得單元505和第二插入單元506。數據獲取單元501,用於獲取待壓縮數據序列。數據轉換單元502,用於基於預先設置的可壓縮量與數據範圍的對應關係,依次將待壓縮數據序列中的各個數據轉換為與各個數據所屬的數據範圍所對應的可壓縮量的數據,獲得第一數據序列。其中,可壓縮量用於指示將待轉換數據轉換為多少比特或者多少字節的數據。第一獲得單元503,用於獲得第一數據序列中連續出現同一可壓縮量的數據的個數,將獲得的個數與對應的可壓縮量按預設規則組合作為計數值。第一插入單元504,用於在連續出現同一可壓縮量的數據的第一預設位置插入對應的計數值,獲得第二數據序列。第二獲得單元505,用於獲得第二數據序列的總數據量。第二插入單元506,用於基於第一預設位置將第二數據序列的總數據量插入第二數據序列的第二預設位置,獲得壓縮數據序列,第二數據序列的總數據量為第二數據序列的總比特數或總字節數。本發明實施例提供的數據壓縮裝置,在獲取待壓縮數據序列,可基於預先設置的可壓縮量與數據範圍的對應關係,將待壓縮數據序列中的各個數據轉換為與各個數據所屬的數據範圍所對應的可壓縮量的數據,獲得第一數據序列,獲得第一數據序列中連續出現同一可壓縮量的數據的個數,將獲得的個數與對應的可壓縮量按預設規則組合作為計數值,並在連續出現同一可壓縮量的數據的第一預設位置插入對應的計數值,獲得第二數據序列,最後獲得第二數據序列的總數據量,並基於第一預設位置將第二數據序列的總數據量插入第二數據序列的第二預設位置,獲得壓縮數據序列。本發明實施例提供的數據壓縮裝置可實現對數據的壓縮,從而使得,在對壓縮後的數據進行傳輸時能夠節省大量帶寬,且能夠提高數據的傳輸效率。在一種可能的實現方式中,上述實施例中的第一預設位置可以為連續出現同一可壓縮量的數據中最後一個數據的後面,則第二插入單元,具體用於將第二數據序列的總數據量插入第二數據序列的尾部。在另一種可能的實現方式中,上述實施例中的第一預設位置可以為連續出現同一可壓縮量的數據中首個數據的前面,則第二插入單元,具體用於將第二數據序列的總數據量插入第二數據序列的頭部。上述實施例提供的數據壓縮裝置還可以包括數據輸出單元。數據輸出單元,用於當第一預設位置為連續出現同一可壓縮量的數據中最後一個數據的後面,第二預設位置為第二數據序列的尾部時,倒序輸出壓縮數據序列;當第一預設位置為連續出現同一可壓縮量的數據中首個數據的前面,第二預設位置為第二數據序列的頭部時,正序輸出壓縮數據序列。與上述數據壓縮裝置相對應,本發明實施例還提供了一種數據解壓縮裝置,用於對上述數據壓縮裝置進行壓縮後得到的壓縮數據序列進行解壓縮,請參閱圖6,示出了該數據解壓縮裝置60的結構示意圖,可以包括:數據接收單元601、數據讀取單元602和數據轉換單元603。數據接收單元601,用於接收壓縮數據序列。數據讀取單元602,用於從數據接收單元601接收的壓縮數據序列中讀取總數據量、計數值,基於計數值中用於指示連續出現同一可壓縮量的數據的個數的數據讀取待轉換數據。數據轉換單元603,用於基於數據讀取單元602讀取的計數值中用於指示可壓縮量的數據將數據讀取單元602讀取的待轉換數據轉換為原始數據。本發明實施例提供的數據解壓縮裝置,還可以包括:確定單元。確定單元,用於當接收單元接收的壓縮數據序列為數據壓縮端倒序輸出的數據序列時,將依次獲得的原始數據組成的數據序列進行倒序排序,將倒序排序後的數據序列確定為原始數據序列;當接收單元接收的壓縮數據序列為數據壓縮端正序輸出的數據序列時,將依次獲得的原始數據組成的數據序列確定為原始數據序列。本發明實施例提供的數據解壓縮裝置可對上述數據壓縮裝置輸出的壓縮數據序列進行解壓縮,從而復原出原始數據序列。本說明書中各個實施例採用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。在本申請所提供的幾個實施例中,應該理解到,所揭露的方法、裝置和設備,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特徵可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些通信接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。所述功能如果以軟體功能單元的形式實現並作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基於這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的部分可以以軟體產品的形式體現出來,該計算機軟體產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,伺服器,或者網絡設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:U盤、移動硬碟、只讀存儲器(ROM,Read-OnlyMemory)、隨機存取存儲器(RAM,RandomAccessMemory)、磁碟或者光碟等各種可以存儲程序代碼的介質。對所公開的實施例的上述說明,使本領域專業技術人員能夠實現或使用本發明。對這些實施例的多種修改對本領域的專業技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發明的精神或範圍的情況下,在其它實施例中實現。因此,本發明將不會被限制於本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的範圍。當前第1頁1 2 3