專(zhuān)利名稱(chēng):差分編碼方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,更具體地涉及一種差分編碼方法和系統(tǒng)、以及一種用于對(duì)差分值的編碼結(jié)果進(jìn)行解碼的方法和系統(tǒng)。
背景技術(shù):
差分編碼處理被普遍用在計(jì)算相鄰傳輸數(shù)據(jù)之間的差分并對(duì)這些差分進(jìn)行熵編碼以實(shí)現(xiàn)數(shù)據(jù)壓縮的無(wú)損數(shù)據(jù)壓縮方法中。在傳統(tǒng)的差分編碼處理中,代碼表是通過(guò)哈夫曼(Huffman)編碼方法創(chuàng)建的。 Huffman編碼是一種可變長(zhǎng)度編碼方法。在Huffman編碼處理中,通常為頻繁出現(xiàn)的數(shù)據(jù)分配短代碼長(zhǎng)度,并為很少出現(xiàn)的數(shù)據(jù)分配長(zhǎng)代碼長(zhǎng)度。當(dāng)差分值范圍比較大時(shí),Huffman代碼表通常很大。這將消耗硬件實(shí)現(xiàn)中的大量存儲(chǔ)器來(lái)保存代碼表。Michael J. Barry等在1991年提出了一種代碼表設(shè)計(jì)方法。這種方法使用可變長(zhǎng)度代碼來(lái)對(duì)最頻繁出現(xiàn)的符號(hào)進(jìn)行編碼,并利用固定長(zhǎng)度代碼來(lái)對(duì)剩余符號(hào)進(jìn)行編碼,以降低對(duì)存儲(chǔ)器的需求。在固定長(zhǎng)度代碼的設(shè)計(jì)中,這種方法為前綴分配D比特,并為后綴分配K比特。其中,D是可變長(zhǎng)度代碼的最長(zhǎng)代碼長(zhǎng)度,K是差分的比特長(zhǎng)度。固定長(zhǎng)度代碼設(shè)計(jì)方法效率不高,并且降低了壓縮率。
發(fā)明內(nèi)容
鑒于以上所述的一個(gè)或多個(gè)問(wèn)題,本發(fā)明提出了一種新穎的差分編碼方法和系統(tǒng)。根據(jù)本發(fā)明實(shí)施例的差分編碼方法包括根據(jù)差分值所處的數(shù)值區(qū)間,從預(yù)先存儲(chǔ)的差分編碼代碼表中獲取對(duì)應(yīng)于所述數(shù)值區(qū)間的代碼作為所述差分值的編碼結(jié)果的數(shù)據(jù)前綴;判斷所述差分值的絕對(duì)值是否小于預(yù)定值,并根據(jù)判斷結(jié)果獲取對(duì)應(yīng)于所述差分值的代碼作為所述差分值的編碼結(jié)果的數(shù)據(jù)后綴,其中,如果所述差分值的絕對(duì)值小于所述預(yù)定值,則將所述差分值與所述數(shù)值區(qū)間的下邊界值之間的差的二進(jìn)制碼作為所述數(shù)據(jù)后綴,否則將所述差分值的二進(jìn)制補(bǔ)碼中的最低N位作為所述數(shù)據(jù)后綴,其中N表示所述差分值的初始數(shù)據(jù)寬度;以及對(duì)所述數(shù)據(jù)前綴和所述數(shù)據(jù)后綴進(jìn)行組合,并將組合后的數(shù)據(jù)作為所述差分值的編碼結(jié)果。其中,絕對(duì)值小于所述預(yù)定值的任意一個(gè)差分值的哈夫曼編碼結(jié)果的數(shù)據(jù)寬度不大于其自身的原始數(shù)據(jù)寬度,并且絕對(duì)值大于或等于所述預(yù)定值的任意一個(gè)差分值的哈夫曼編碼結(jié)果的數(shù)據(jù)寬度大于其自身的原始數(shù)據(jù)寬度。根據(jù)本發(fā)明實(shí)施例的差分編碼系統(tǒng)包括前綴獲取單元,被配置為根據(jù)差分值所處的數(shù)值區(qū)間,從預(yù)先存儲(chǔ)的差分編碼代碼表中獲取對(duì)應(yīng)于所述數(shù)值區(qū)間的代碼作為所述差分值的編碼結(jié)果的數(shù)據(jù)前綴;后綴獲取單元,被配置為判斷所述差分值的絕對(duì)值是否小于預(yù)定值,并根據(jù)判斷結(jié)果獲取對(duì)應(yīng)于所述差分值的代碼作為所述差分值的編碼結(jié)果的數(shù)據(jù)后綴,其中,如果所述差分值的絕對(duì)值小于所述預(yù)定值,則將所述差分值與所述數(shù)值區(qū)間的下邊界值之間的差的二進(jìn)制碼作為所述數(shù)據(jù)后綴,否則將所述差分值的二進(jìn)制補(bǔ)碼中的最低N位作為所述數(shù)據(jù)后綴,其中N表示所述差分值的初始數(shù)據(jù)寬度;以及數(shù)據(jù)組合單元, 被配置為對(duì)所述數(shù)據(jù)前綴和所述數(shù)據(jù)后綴進(jìn)行組合,并將組合后的數(shù)據(jù)作為所述差分值的編碼結(jié)果。其中,絕對(duì)值小于所述預(yù)定值的任意一個(gè)差分值的哈夫曼編碼結(jié)果的數(shù)據(jù)寬度不大于其自身的原始數(shù)據(jù)寬度,并且絕對(duì)值大于或等于所述預(yù)定值的任意一個(gè)差分值的哈夫曼編碼結(jié)果的數(shù)據(jù)寬度大于其自身的原始數(shù)據(jù)寬度。根據(jù)本發(fā)明實(shí)施例的用于對(duì)差分值的編碼結(jié)果進(jìn)行解碼的方法包括根據(jù)差分值的編碼結(jié)果的數(shù)據(jù)前綴,從預(yù)先存儲(chǔ)的差分編碼代碼表中獲取對(duì)應(yīng)于所述數(shù)據(jù)前綴的數(shù)值區(qū)間;根據(jù)所述數(shù)據(jù)前綴獲取所述差分值的編碼結(jié)果的數(shù)據(jù)后綴;當(dāng)對(duì)應(yīng)于所述數(shù)據(jù)前綴的數(shù)據(jù)區(qū)間的絕對(duì)值較大的一個(gè)邊界值的絕對(duì)值小于預(yù)定值時(shí),將所述差分值的編碼結(jié)果與對(duì)應(yīng)于所述數(shù)據(jù)前綴的數(shù)據(jù)區(qū)間的下邊界值的總和作為對(duì)應(yīng)于所述差分值的編碼結(jié)果的解碼結(jié)果,當(dāng)對(duì)應(yīng)于所述數(shù)據(jù)前綴的數(shù)據(jù)區(qū)間的絕對(duì)值較小的一個(gè)邊界值的絕對(duì)值大于所述預(yù)定值時(shí),將所述差分值的編碼結(jié)果的數(shù)據(jù)后綴作為對(duì)應(yīng)于所述差分值的編碼結(jié)果的解碼結(jié)果。根據(jù)本發(fā)明實(shí)施例的用于對(duì)差分值的編碼結(jié)果進(jìn)行解碼的系統(tǒng)包括區(qū)間獲取單元,被配置為根據(jù)差分值的編碼結(jié)果的數(shù)據(jù)前綴,從預(yù)先存儲(chǔ)的差分編碼代碼表中獲取對(duì)應(yīng)于所述數(shù)據(jù)前綴的數(shù)值區(qū)間;后綴獲取單元,被配置為根據(jù)所述數(shù)據(jù)前綴獲取所述差分值的編碼結(jié)果的數(shù)據(jù)后綴;解碼執(zhí)行單元,被配置為當(dāng)對(duì)應(yīng)于所述數(shù)據(jù)前綴的數(shù)據(jù)區(qū)間的絕對(duì)值較大的一個(gè)邊界值的絕對(duì)值小于預(yù)定值時(shí),將所述差分值的編碼結(jié)果與對(duì)應(yīng)于所述數(shù)據(jù)前綴的數(shù)據(jù)區(qū)間的下邊界值的總和作為對(duì)應(yīng)于所述差分值的編碼結(jié)果的解碼結(jié)果,當(dāng)對(duì)應(yīng)于所述數(shù)據(jù)前綴的數(shù)據(jù)區(qū)間的絕對(duì)值較小的一個(gè)邊界值的絕對(duì)值大于所述預(yù)定值時(shí), 將所述差分值的編碼結(jié)果的數(shù)據(jù)后綴作為對(duì)應(yīng)于所述差分值的編碼結(jié)果的解碼結(jié)果。如上所述,本發(fā)明提供了一種差分編碼方法和系統(tǒng)、以及一種用于對(duì)差分值的編碼結(jié)果進(jìn)行解碼的方法和系統(tǒng)。相對(duì)于Michael J. Barry提出的方法,本發(fā)明可以有效降低大于特定值的差分值的編碼結(jié)果的數(shù)據(jù)寬度,從而可以改善最終的壓縮率。
從下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式
的描述中可以更好地理解本發(fā)明,其中圖1示出了用于通過(guò)差分編碼方法對(duì)一系列數(shù)據(jù)進(jìn)行編碼的示例性系統(tǒng)的框圖;圖2示出了差分?jǐn)?shù)據(jù)的可能性分布情況的示意圖;圖3示出了根據(jù)本發(fā)明實(shí)施例的差分編碼系統(tǒng)的框圖;圖4示出了根據(jù)本發(fā)明實(shí)施例的差分編碼方法的流程圖;圖5示出了根據(jù)本發(fā)明實(shí)施例的用于對(duì)差分值的編碼結(jié)果進(jìn)行解碼的系統(tǒng)的框圖;以及圖6示出了根據(jù)本發(fā)明實(shí)施例的用于對(duì)差分值的編碼結(jié)果進(jìn)行解碼的方法的流程圖。
具體實(shí)施例方式下面將詳細(xì)描述本發(fā)明各個(gè)方面的特征和示例性實(shí)施例。下面的描述涵蓋了許多具體細(xì)節(jié),以便提供對(duì)本發(fā)明的全面理解。但是,對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō)顯而易見(jiàn)的是, 本發(fā)明可以在不需要這些具體細(xì)節(jié)中的一些細(xì)節(jié)的情況下實(shí)施。下面對(duì)實(shí)施例的描述僅僅是為了通過(guò)示出本發(fā)明的示例來(lái)提供對(duì)本發(fā)明更清楚的理解。本發(fā)明絕不限于下面所提出的任何具體配置和算法,而是在不脫離本發(fā)明的精神的前提下覆蓋了相關(guān)元素、部件和算法的任何修改、替換和改進(jìn)。圖1示出了用于通過(guò)差分編碼方法對(duì)一系列數(shù)據(jù)進(jìn)行編碼的示例性系統(tǒng)的框圖。 如圖1所示,該系統(tǒng)包括差分計(jì)算單元102和熵編碼單元104。其中,差分計(jì)算單元102計(jì)算相鄰的原始數(shù)據(jù)之間的差分值,例如Diff[n+l] = Data [n+1]-Data [η],從而使得原始數(shù)據(jù)被映射至差分值。然后,熵編碼單元104對(duì)差分計(jì)算單元102計(jì)算得出的差分值進(jìn)行熵編碼,以實(shí)現(xiàn)對(duì)一系列數(shù)據(jù)的編碼。具體地,在差分計(jì)算單元102中,數(shù)據(jù)沒(méi)有被壓縮,而是被擴(kuò)展。例如,如果原始數(shù)據(jù)為8比特,則在差分運(yùn)算之后,差分?jǐn)?shù)據(jù)(也稱(chēng)為差分值)為9比特。在對(duì)差分計(jì)算單元 102計(jì)算得出的差分值進(jìn)行編碼時(shí),熵編碼單元104檢索差分編碼代碼表,以獲取與輸入的差分值相對(duì)應(yīng)的代碼。差分編碼代碼表是基于差分值的可能性分布生成的。常用的差分編碼代碼表生成方法是哈夫曼(Huffman)編碼方法。它是由David A. Huffman在麻省理工大學(xué)(MIT)讀博士期間開(kāi)發(fā)的,于1952年在論文“A Methodfor the Construction of Minimum-Redundancy Codes”中發(fā)表。下面是Huffman差分編碼代碼表的一個(gè)示例差分值代碼-510 100100000101100111-509 100100000101100110-508 100100000101100101-507 100100000101100100-506 100100000101100011-505 100100000101100010......-18 10001011-17 10010011-16 00000011-15 00101011-14 00100011-13 1000011-12 1000111-11 0000011-10 0010011-90110011-8100111-7001011-6011011-500011
-401001
-31101
-20101
-1101
0111
10111
20011
31100
401000
500010
6011010
7000011
8100101
90110010
100010010
110000010
121000110
131000010
1400100001
1500001011
1600000001
1710010010
1810000011
505100100000101000001
506100100000101000000
507100100000100000011
508100100000100000010
509100100000100000001
510100100000100000000
從上表可以發(fā)現(xiàn),對(duì)二進(jìn)制補(bǔ)碼的數(shù)據(jù)寬度為10比特的差分值(-510 510)進(jìn)行編碼時(shí),最長(zhǎng)代碼長(zhǎng)度是18比特。用于編碼/解碼的硬件需要用大容量存儲(chǔ)器來(lái)存儲(chǔ)這個(gè)差分編碼代碼表。在以上示例中,需要進(jìn)行編碼的原始數(shù)據(jù)的數(shù)據(jù)寬度僅為8比特。利用圖1所示的系統(tǒng)進(jìn)行編碼后,只有對(duì)應(yīng)于絕對(duì)值較小的差分值(-18 18)的代碼的數(shù)據(jù)長(zhǎng)度小于8 比特,而對(duì)應(yīng)于其他的絕對(duì)值較大的差分值的代碼的數(shù)據(jù)長(zhǎng)度都大于8比特。所以,對(duì)絕對(duì)值較大的差分值的編碼不會(huì)對(duì)數(shù)據(jù)壓縮產(chǎn)生貢獻(xiàn)。圖2示出了差分?jǐn)?shù)據(jù)的可能性分布情況的示意圖。如圖2所示,差分值的可能性分布通常比較集中,絕對(duì)值較小的差分值比絕對(duì)值較大的差分值更頻繁地出現(xiàn)。所以,本發(fā)明
8提出將絕對(duì)值較小的差分值編碼為數(shù)據(jù)長(zhǎng)度較短的代碼,并將絕對(duì)值較大的差分值編碼為數(shù)據(jù)長(zhǎng)度較長(zhǎng)的代碼以實(shí)現(xiàn)壓縮的想法。其中,由于絕對(duì)值大的差分值出現(xiàn)的可能性非常低,所以可以使用固定長(zhǎng)度的代碼來(lái)對(duì)其進(jìn)行編碼;而對(duì)應(yīng)于絕對(duì)值較小的差分值的代碼的數(shù)據(jù)長(zhǎng)度在3-8比特之間,可以設(shè)計(jì)一種變長(zhǎng)代碼(3比特-8比特)來(lái)對(duì)數(shù)據(jù)范圍(-18, 18)附近的絕對(duì)值較小的差分值進(jìn)行編碼。根據(jù)本發(fā)明實(shí)施例,首先需要?jiǎng)?chuàng)建一種不同于以上所述的Huffman編碼代碼表的一種新穎的差分編碼代碼表。具體地,創(chuàng)建新穎的差分編碼代碼表的處理包括根據(jù)差分值的可能性分布,通過(guò)Huffman編碼方法創(chuàng)建初始差分編碼代碼表(即如上所述的包含有各個(gè)差分值的Huffman編碼結(jié)果的Huffman差分編碼代碼表);為Huffman編碼結(jié)果的數(shù)據(jù)寬度不大于其自身的初始數(shù)據(jù)寬度的差分值分配不同長(zhǎng)度的代碼,以組成可變長(zhǎng)度代碼表,并為哈夫曼編碼結(jié)果的數(shù)據(jù)寬度大于其自身的初始數(shù)據(jù)寬度的差分值分配固定長(zhǎng)度的代碼,以組成固定長(zhǎng)度代碼表;以及將可變長(zhǎng)度代碼表和固定長(zhǎng)度代碼表的組合為根據(jù)本發(fā)明實(shí)施例的新穎的差分編碼代碼表。在創(chuàng)建根據(jù)本發(fā)明實(shí)施例的差分編碼代碼表的處理中,將Huffman編碼結(jié)果的數(shù)據(jù)寬度不大于其自身的初始數(shù)據(jù)寬度的差分值劃分成多個(gè)數(shù)值區(qū)間,并且分別為每個(gè)數(shù)據(jù)區(qū)間分配數(shù)據(jù)寬度不同的代碼,以組成可變長(zhǎng)度代碼表。其中,在可變長(zhǎng)度代碼表中,數(shù)據(jù)寬度最小的代碼的數(shù)據(jù)寬度為Huffman編碼結(jié)果的數(shù)據(jù)寬度不大于其自身的初始數(shù)據(jù)寬度的差分值中Huffman編碼結(jié)果的數(shù)據(jù)寬度最小的一個(gè)差分值的Huffman編碼結(jié)果的數(shù)據(jù)寬度,數(shù)據(jù)寬度最大的代碼的數(shù)據(jù)寬度為Huffman編碼結(jié)果的數(shù)據(jù)寬度不大于其自身的初始數(shù)據(jù)寬度的差分值中Huffman編碼結(jié)果的數(shù)據(jù)寬度等于其自身的初始數(shù)據(jù)寬度的一個(gè)差分值的Huffman編碼結(jié)果的數(shù)據(jù)寬度(即,其自身的初始數(shù)據(jù)寬度)。并且在固定長(zhǎng)度代碼表中,對(duì)應(yīng)于Huffman編碼結(jié)果的數(shù)據(jù)寬度大于其自身的初始數(shù)據(jù)寬度的差分值的代碼的數(shù)據(jù)寬度為Huffman編碼結(jié)果的數(shù)據(jù)寬度不大于其自身的初始數(shù)據(jù)寬度的差分值中Huffman編碼結(jié)果的數(shù)據(jù)寬度最小的一個(gè)差分值的Huffman 編碼結(jié)果的數(shù)據(jù)寬度。例如,在根據(jù)本發(fā)明實(shí)施例的差分編碼代碼表中,可以將數(shù)值范圍[_22,22]劃分成以下的多個(gè)數(shù)值區(qū)間[_22,-15],[-14,-11],[-10,-7],[-6,-3],[-2,-1],
, [1, 2],[3,6],[7,10],[11,14],[15,22],并且分別為每個(gè)數(shù)值區(qū)間分配唯一的代碼(即,互不相同的代碼)。也就是說(shuō),在根據(jù)本發(fā)明實(shí)施例的差分編碼代碼表中,Huffman編碼結(jié)果的數(shù)據(jù)寬度不大于其自身的初始數(shù)據(jù)寬度的差分值所在的數(shù)值區(qū)間與代碼之間是一一對(duì)應(yīng)
的
數(shù)值區(qū)間代碼
[-22,-15]11011
[-14,-11]11001
[-10,-7]1011
[-6,-3]100
[-2,-1]010
000
[1,2]001
[3,6]011
[7,10]1010[11,14]11000[15,22]11010并且,Huffman編碼結(jié)果的數(shù)據(jù)寬度大于其自身的初始數(shù)據(jù)寬度的差分值所在的數(shù)值區(qū)間[-510,-23]和[23,510]都對(duì)應(yīng)于代碼111。也就是說(shuō),Huffman編碼結(jié)果的數(shù)據(jù)寬度不大于其自身的初始數(shù)據(jù)寬度的差分值所在的數(shù)值區(qū)間分別對(duì)應(yīng)于互不相同的代碼,并且Huffman編碼結(jié)果的數(shù)據(jù)寬度大于其自身的初始數(shù)據(jù)寬度的差分值所在的數(shù)值區(qū)間對(duì)應(yīng)于同一個(gè)代碼。接下來(lái),參考圖3和圖4描述利用根據(jù)本發(fā)明實(shí)施例的差分編碼代碼表進(jìn)行差分編碼的根據(jù)本發(fā)明實(shí)施例的差分編碼系統(tǒng)和方法。圖3示出了根據(jù)本發(fā)明實(shí)施例的差分編碼系統(tǒng)的框圖。圖4示出了根據(jù)本發(fā)明實(shí)施例的差分編碼方法的流程圖。如圖3所示,根據(jù)本發(fā)明實(shí)施例的差分編碼系統(tǒng)包括前綴獲取單元302、后綴獲取單元304、以及數(shù)據(jù)組合單元306。其中,前綴獲取單元302根據(jù)差分值所處的數(shù)值區(qū)間,從預(yù)先存儲(chǔ)的差分編碼代碼表中獲取對(duì)應(yīng)于差分值所處的數(shù)值區(qū)間的代碼作為差分值的編碼結(jié)果的數(shù)據(jù)前綴(即,執(zhí)行步驟S402);后綴獲取單元304判斷差分值的絕對(duì)值是否小于預(yù)先確定的特定值,并根據(jù)判斷結(jié)果獲取對(duì)應(yīng)于差分值的代碼作為差分值的編碼結(jié)果的數(shù)據(jù)后綴(即,執(zhí)行步驟S404);數(shù)據(jù)組合單元306對(duì)數(shù)據(jù)前綴和數(shù)據(jù)后綴進(jìn)行組合,并將組合后的數(shù)據(jù)作為差分值的編碼結(jié)果(即,執(zhí)行步驟S406)。其中,如果差分值的絕對(duì)值小于特定值,則后綴獲取單元304將差分值與差分值所處的數(shù)值區(qū)間的下邊界值之間的差的二進(jìn)制碼作為數(shù)據(jù)后綴,否則將差分值的二進(jìn)制補(bǔ)碼中的最低N位作為數(shù)據(jù)后綴,其中N表示差分值的初始數(shù)據(jù)寬度。其中,絕對(duì)值小于特定值的任意一個(gè)差分值的哈夫曼編碼結(jié)果的數(shù)據(jù)寬度不大于其自身的原始數(shù)據(jù)寬度,并且絕對(duì)值大于或等于特定值的任意一個(gè)差分值的哈夫曼編碼結(jié)果的數(shù)據(jù)寬度大于其自身的原始數(shù)據(jù)寬度。并且絕對(duì)值小于特定值的差分值(相當(dāng)于Huffman編碼結(jié)果的數(shù)據(jù)寬度不大于其自身的初始數(shù)據(jù)寬度的差分值)所在的數(shù)值區(qū)間對(duì)應(yīng)于互不相同的代碼,并且絕對(duì)值大于或等于特定值的差分值(相當(dāng)于Huffman編碼結(jié)果的數(shù)據(jù)寬度大于其自身的初始數(shù)據(jù)寬度的差分值)對(duì)應(yīng)于不同于根據(jù)本發(fā)明實(shí)施例的差分編碼代碼表中的其他代碼的一個(gè)代碼。下面結(jié)合上述數(shù)值區(qū)間和代碼之間的對(duì)應(yīng)關(guān)系的示例,詳細(xì)描述根據(jù)本發(fā)明實(shí)施例的差分編碼系統(tǒng)和方法對(duì)于處于數(shù)值范圍[_22,22]中的差分值進(jìn)行編碼的處理。例如,為了對(duì)差分值9進(jìn)行編碼,前綴獲取單元302從根據(jù)本發(fā)明實(shí)施例的差分編碼代碼表中獲取對(duì)應(yīng)于差分值9所處的數(shù)值區(qū)間[7,10]的代碼1010作為差分值9的編碼結(jié)果的數(shù)據(jù)前綴。 接著,由于差分值9小于預(yù)先確定的特定值23,所以后綴獲取單元304將差分值9與差分值 9所處的數(shù)值區(qū)間[7,10]的下邊界值7之間的差2的二進(jìn)制碼10作為差分值9的編碼結(jié)果的數(shù)據(jù)后綴。然后,數(shù)據(jù)組合單元306對(duì)差分值9的編碼結(jié)果的數(shù)據(jù)前綴和數(shù)據(jù)后綴進(jìn)行組合,并將組合后的數(shù)據(jù)101010作為差分值9的編碼結(jié)果。也就是說(shuō),每個(gè)差分值的編碼結(jié)果都是“數(shù)據(jù)前綴” + “數(shù)據(jù)后綴”的結(jié)構(gòu)。基于上述方法得出的絕對(duì)值小于特定值23 的差分值(即,處于數(shù)據(jù)范圍[-22,22]中的差分值)的編碼結(jié)果如下差分值編碼結(jié)果-2211011000
-2111011001
-2011011010
-1911011011
-1811011100
-1711011101
-1611011110
-1511011111
-141100100
-131100101
-121100110
-111100111
-10101100
-9101101
-8101110
-7101111
-610000
-510001
-410010
-310011
-20100
-10101
0000
10010
20011
301100
401101
501110
601111
7101000
8101001
9101010
10101011
111100000
121100001
131100010
141100011
1511010000
1611010001
1711010010
18 1101001119 1101010020 1101010121 1101011022 11010111另外,對(duì)于絕對(duì)值大于特定值23的差分值,后綴獲取單元304將差分值的二進(jìn)制補(bǔ)碼中的最低N位作為差分值的編碼結(jié)果數(shù)據(jù)后綴,其中N表示差分值的初始數(shù)據(jù)寬度。例如,對(duì)于差分值-255( 二進(jìn)制補(bǔ)碼為1100000001),其最低8位是00000001,編碼結(jié)果(數(shù)據(jù)前綴+數(shù)據(jù)后綴)為11100000001。僅對(duì)大于特定值23的差分值的最低N位進(jìn)行編碼的原因在于,當(dāng)使用差分值來(lái)重構(gòu)原始數(shù)據(jù)時(shí),僅使用差分值的最低N位。下面參考圖5和圖6來(lái)詳細(xì)描述利用根據(jù)本發(fā)明的差分編碼代碼表來(lái)對(duì)差分值的編碼結(jié)果進(jìn)行解碼的系統(tǒng)和方法。圖5示出了根據(jù)本發(fā)明實(shí)施例的用于對(duì)差分值的編碼結(jié)果進(jìn)行解碼的系統(tǒng)的框圖。圖6示出了根據(jù)本發(fā)明實(shí)施例的用于對(duì)差分值的編碼結(jié)果進(jìn)行解碼的方法的流程圖。如圖5所示,根據(jù)本發(fā)明實(shí)施例的用于對(duì)差分值的編碼結(jié)果進(jìn)行解碼的系統(tǒng)包括區(qū)間獲取單元502、后綴獲取單元504、以及解碼執(zhí)行單元506。其中,區(qū)間獲取單元502根據(jù)差分值的編碼結(jié)果的數(shù)據(jù)前綴,從根據(jù)本發(fā)明實(shí)施例的差分編碼代碼表中獲取對(duì)應(yīng)于差分值的編碼結(jié)果的數(shù)據(jù)前綴的數(shù)值區(qū)間(即,執(zhí)行步驟S602);后綴獲取單元504根據(jù)對(duì)應(yīng)于差分值的編碼結(jié)果的數(shù)據(jù)前綴獲取差分值的編碼結(jié)果的數(shù)據(jù)后綴(即,執(zhí)行步驟S604); 解碼執(zhí)行單元506根據(jù)差分值的編碼結(jié)果的數(shù)據(jù)前綴、對(duì)應(yīng)于差分值的編碼結(jié)果的數(shù)據(jù)前綴的數(shù)值區(qū)間、以及差分值的編碼結(jié)果的數(shù)據(jù)后綴來(lái)對(duì)差分值的編碼結(jié)果進(jìn)行解碼(即, 執(zhí)行步驟S606)。其中,當(dāng)對(duì)應(yīng)于差分值的編碼結(jié)果的數(shù)據(jù)前綴的數(shù)據(jù)區(qū)間的絕對(duì)值較大的一個(gè)邊界值的絕對(duì)值小于預(yù)先確定的特定值時(shí),解碼執(zhí)行單元506將差分值的編碼結(jié)果與對(duì)應(yīng)于差分值的編碼結(jié)果的數(shù)據(jù)前綴的數(shù)據(jù)區(qū)間的下邊界值的總和作為對(duì)應(yīng)于差分值的編碼結(jié)果的解碼結(jié)果。當(dāng)對(duì)應(yīng)于差分值的編碼結(jié)果的數(shù)據(jù)前綴的數(shù)據(jù)區(qū)間的絕對(duì)值較小的一個(gè)邊界值的絕對(duì)值大于所述特定值時(shí),解碼執(zhí)行單元506將差分值的編碼結(jié)果的數(shù)據(jù)后綴作為對(duì)應(yīng)于差分值的編碼結(jié)果的解碼結(jié)果。綜上所述,本發(fā)明將絕對(duì)值小于特定值的差分值分別編碼為了數(shù)據(jù)寬度小于或等于該差分值的初始數(shù)據(jù)寬度的長(zhǎng)度不同的代碼,并將絕對(duì)值大于特定值的差分值編碼為了固定長(zhǎng)度的不同代碼。其中,對(duì)應(yīng)于任意一個(gè)絕對(duì)值大于特定值的差分值的固定長(zhǎng)度代碼包括M比特的數(shù)據(jù)前綴和N比特的數(shù)據(jù)后綴,M是對(duì)應(yīng)于絕對(duì)值小于特定值的差分值的數(shù)據(jù)前綴中數(shù)據(jù)寬度最小的代碼的代碼長(zhǎng)度,N是該差分值的原始數(shù)據(jù)長(zhǎng)度(也稱(chēng)為數(shù)據(jù)寬度)。相對(duì)于Michael J. Barry提出的方法,本發(fā)明可以有效降低大于特定值的差分值的編碼結(jié)果的數(shù)據(jù)寬度,從而可以改善最終的壓縮率。以上已經(jīng)參考本發(fā)明的具體實(shí)施例來(lái)描述了本發(fā)明,但是本領(lǐng)域技術(shù)人員均了解,可以對(duì)這些具體實(shí)施例進(jìn)行各種修改、組合和變更,而不會(huì)脫離由所附權(quán)利要求或其等同物限定的本發(fā)明的精神和范圍。根據(jù)需要可以用硬件或軟件來(lái)執(zhí)行步驟。注意,在不脫離本發(fā)明范圍的前提下,可向本說(shuō)明書(shū)中給出的流程圖添加步驟、從中去除步驟或修改其中的步驟。一般來(lái)說(shuō),流程圖只是用來(lái)指示用于實(shí)現(xiàn)功能的基本操作的一種可能的序列。本發(fā)明的實(shí)施例可利用編程的通用數(shù)字計(jì)算機(jī)、利用專(zhuān)用集成電路、可編程邏輯器件、現(xiàn)場(chǎng)可編程門(mén)陣列、光的、化學(xué)的、生物的、量子的或納米工程的系統(tǒng)、組件和機(jī)構(gòu)來(lái)實(shí)現(xiàn)。一般來(lái)說(shuō),本發(fā)明的功能可由本領(lǐng)域已知的任何手段來(lái)實(shí)現(xiàn)??梢允褂梅植际交蚵?lián)網(wǎng)系統(tǒng)、組件和電路。數(shù)據(jù)的通信或傳送可以是有線(xiàn)的、無(wú)線(xiàn)的或者通過(guò)任何其他手段。還將意識(shí)到,根據(jù)特定應(yīng)用的需要,附圖中示出的要素中的一個(gè)或多個(gè)可以按更分離或更集成的方式來(lái)實(shí)現(xiàn),或者甚至在某些情況下被去除或被停用。實(shí)現(xiàn)可存儲(chǔ)在機(jī)器可讀介質(zhì)中的程序或代碼以允許計(jì)算機(jī)執(zhí)行上述任何方法,也在本發(fā)明的精神和范圍之內(nèi)。此外,附圖中的任何信號(hào)箭頭應(yīng)當(dāng)被認(rèn)為僅是示例性的,而不是限制性的,除非另有具體指示。當(dāng)術(shù)語(yǔ)被預(yù)見(jiàn)為使分離或組合的能力不清楚時(shí),組件或者步驟的組合也將被認(rèn)為是已經(jīng)記載了。
1權(quán)利要求
1.一種差分編碼方法,包括根據(jù)差分值所處的數(shù)值區(qū)間,從預(yù)先存儲(chǔ)的差分編碼代碼表中獲取對(duì)應(yīng)于所述數(shù)值區(qū)間的代碼作為所述差分值的編碼結(jié)果的數(shù)據(jù)前綴;判斷所述差分值的絕對(duì)值是否小于預(yù)定值,并根據(jù)判斷結(jié)果獲取對(duì)應(yīng)于所述差分值的代碼作為所述差分值的編碼結(jié)果的數(shù)據(jù)后綴,其中,如果所述差分值的絕對(duì)值小于所述預(yù)定值,則將所述差分值與所述數(shù)值區(qū)間的下邊界值之間的差的二進(jìn)制碼作為所述數(shù)據(jù)后綴,否則將所述差分值的二進(jìn)制補(bǔ)碼中的最低N位作為所述數(shù)據(jù)后綴,其中N表示所述差分值的初始數(shù)據(jù)寬度;以及對(duì)所述數(shù)據(jù)前綴和所述數(shù)據(jù)后綴進(jìn)行組合,并將組合后的數(shù)據(jù)作為所述差分值的編碼結(jié)果,其中,絕對(duì)值小于所述預(yù)定值的任意一個(gè)差分值的哈夫曼編碼結(jié)果的數(shù)據(jù)寬度不大于其自身的原始數(shù)據(jù)寬度,并且絕對(duì)值大于或等于所述預(yù)定值的任意一個(gè)差分值的哈夫曼編碼結(jié)果的數(shù)據(jù)寬度大于其自身的原始數(shù)據(jù)寬度。
2.根據(jù)權(quán)利要求1所述的差分編碼方法,其特征在于,還包括創(chuàng)建并存儲(chǔ)所述差分編碼代碼表的步驟,其中,創(chuàng)建所述差分編碼代碼表的處理包括根據(jù)差分值的可能性分布,通過(guò)哈夫曼編碼方法創(chuàng)建初始差分編碼代碼表,其中所述初始差分編碼代碼表中包含有對(duì)應(yīng)于各個(gè)差分值的哈夫曼編碼結(jié)果;為哈夫曼編碼結(jié)果的數(shù)據(jù)寬度不大于其自身的初始數(shù)據(jù)寬度的差分值分配不同長(zhǎng)度的代碼組成可變長(zhǎng)度代碼表,并為哈夫曼編碼結(jié)果的數(shù)據(jù)寬度大于其自身的初始數(shù)據(jù)寬度的差分值分配固定長(zhǎng)度的代碼組成固定長(zhǎng)度代碼表;以及將所述可變長(zhǎng)度代碼表和所述固定長(zhǎng)度代碼表組合為所述差分編碼代碼表。
3.根據(jù)權(quán)利要求2所述的差分編碼方法,其特征在于,所述可變長(zhǎng)度代碼表中數(shù)據(jù)寬度最大的代碼的數(shù)據(jù)寬度為對(duì)應(yīng)于所述數(shù)據(jù)寬度最大的代碼的差分值的初始數(shù)據(jù)寬度,并且所述可變長(zhǎng)度代碼表中數(shù)據(jù)寬度最小的代碼的數(shù)據(jù)寬度為對(duì)應(yīng)于所述數(shù)據(jù)寬度最小的代碼的差分值的哈夫曼編碼結(jié)果的數(shù)據(jù)寬度。
4.根據(jù)權(quán)利要求1所述的差分編碼方法,其特征在于,在所述差分編碼代碼表中,絕對(duì)值小于所述預(yù)定值的差分值所在的數(shù)值區(qū)間對(duì)應(yīng)于互不相同的代碼,并且絕對(duì)值大于或等于所述預(yù)定值的差分值對(duì)應(yīng)于不同于所述差分編碼代碼表中的其他代碼的一個(gè)代碼。
5.根據(jù)權(quán)利要求4所述的差分編碼方法,其特征在于,所述預(yù)定值為23。
6.根據(jù)權(quán)利要求5所述的差分編碼方法,其特征在于,對(duì)應(yīng)于數(shù)值范圍[-22,22]中的各個(gè)數(shù)值區(qū)間的代碼如下數(shù)值區(qū)間代碼[-22,-15]11011[-14,-11]11001[-10,-7]1011[-6,-3]100[-2,-1]010
000[1,2]001[3,6]011[7,10]1010[11,14]11000[15,22]11010。
7.一種差分編碼系統(tǒng),包括前綴獲取單元,被配置為根據(jù)差分值所處的數(shù)值區(qū)間,從預(yù)先存儲(chǔ)的差分編碼代碼表中獲取對(duì)應(yīng)于所述數(shù)值區(qū)間的代碼作為所述差分值的編碼結(jié)果的數(shù)據(jù)前綴;后綴獲取單元,被配置為判斷所述差分值的絕對(duì)值是否小于預(yù)定值,并根據(jù)判斷結(jié)果獲取對(duì)應(yīng)于所述差分值的代碼作為所述差分值的編碼結(jié)果的數(shù)據(jù)后綴,其中,如果所述差分值的絕對(duì)值小于所述預(yù)定值,則將所述差分值與所述數(shù)值區(qū)間的下邊界值之間的差的二進(jìn)制碼作為所述數(shù)據(jù)后綴,否則將所述差分值的二進(jìn)制補(bǔ)碼中的最低N位作為所述數(shù)據(jù)后綴,其中N表示所述差分值的初始數(shù)據(jù)寬度;以及數(shù)據(jù)組合單元,被配置為對(duì)所述數(shù)據(jù)前綴和所述數(shù)據(jù)后綴進(jìn)行組合,并將組合后的數(shù)據(jù)作為所述差分值的編碼結(jié)果,其中,絕對(duì)值小于所述預(yù)定值的任意一個(gè)差分值的哈夫曼編碼結(jié)果的數(shù)據(jù)寬度不大于其自身的原始數(shù)據(jù)寬度,并且絕對(duì)值大于或等于所述預(yù)定值的任意一個(gè)差分值的哈夫曼編碼結(jié)果的數(shù)據(jù)寬度大于其自身的原始數(shù)據(jù)寬度。
8.根據(jù)權(quán)利要求7所述的差分編碼系統(tǒng),其特征在于,還包括代碼表創(chuàng)建單元,被配置為創(chuàng)建并存儲(chǔ)所述差分編碼代碼表,其中,所述代碼表創(chuàng)建單元通過(guò)以下處理創(chuàng)建所述差分編碼代碼表根據(jù)差分值的可能性分布,通過(guò)哈夫曼編碼方法創(chuàng)建初始差分編碼代碼表,所述初始差分編碼代碼表中包含有各個(gè)差分值的哈夫曼編碼結(jié)果;為哈夫曼編碼結(jié)果的數(shù)據(jù)寬度不大于其自身的初始數(shù)據(jù)寬度的差分值分配不同長(zhǎng)度的代碼組成可變長(zhǎng)度代碼表,并為哈夫曼編碼結(jié)果的數(shù)據(jù)寬度大于其自身的初始數(shù)據(jù)寬度的差分值分配固定長(zhǎng)度的代碼組成固定長(zhǎng)度代碼表;以及將所述可變長(zhǎng)度代碼表和所述固定長(zhǎng)度代碼表的組合為所述差分編碼代碼表。
9.根據(jù)權(quán)利要求8所述的差分編碼系統(tǒng),其特征在于,所述可變長(zhǎng)度代碼表中數(shù)據(jù)寬度最大的代碼的數(shù)據(jù)寬度為對(duì)應(yīng)于所述數(shù)據(jù)寬度最大的代碼的差分值的初始數(shù)據(jù)寬度,并且所述可變長(zhǎng)度代碼表中數(shù)據(jù)寬度最小的代碼的數(shù)據(jù)寬度為對(duì)應(yīng)于所述數(shù)據(jù)寬度最小的代碼的差分值的哈夫曼編碼結(jié)果的數(shù)據(jù)寬度。
10.根據(jù)權(quán)利要求7所述的差分編碼系統(tǒng),其特征在于,在所述差分編碼代碼表中,絕對(duì)值小于所述預(yù)定值的差分值所在的數(shù)值區(qū)間對(duì)應(yīng)于互不相同的代碼,并且絕對(duì)值大于或等于所述預(yù)定值的差分值對(duì)應(yīng)于不同于所述差分編碼代碼表中的其他代碼的一個(gè)代碼。
11.根據(jù)權(quán)利要求10所述的差分編碼系統(tǒng),其特征在于,所述預(yù)定值為23。
12.根據(jù)權(quán)利要求11所述的差分編碼系統(tǒng),其特征在于,對(duì)應(yīng)于數(shù)值范圍[_22,22]中的各個(gè)數(shù)值區(qū)間的代碼如下數(shù)值區(qū)間代碼 [-22,-15] 11011 [-14,-11] 11001[-10,-7]1011[-6,-3]100[-2,-1]010
000[1,2]001[3,6]011[7,10]1010[11,14]11000[15,22]11010。
13.一種用于對(duì)差分值的編碼結(jié)果進(jìn)行解碼的方法,包括根據(jù)差分值的編碼結(jié)果的數(shù)據(jù)前綴,從預(yù)先存儲(chǔ)的差分編碼代碼表中獲取對(duì)應(yīng)于所述數(shù)據(jù)前綴的數(shù)值區(qū)間;根據(jù)所述數(shù)據(jù)前綴獲取所述差分值的編碼結(jié)果的數(shù)據(jù)后綴;當(dāng)對(duì)應(yīng)于所述數(shù)據(jù)前綴的數(shù)據(jù)區(qū)間的絕對(duì)值較大的一個(gè)邊界值的絕對(duì)值小于預(yù)定值時(shí),將所述差分值的編碼結(jié)果與對(duì)應(yīng)于所述數(shù)據(jù)前綴的數(shù)據(jù)區(qū)間的下邊界值的總和作為對(duì)應(yīng)于所述差分值的編碼結(jié)果的解碼結(jié)果,當(dāng)對(duì)應(yīng)于所述數(shù)據(jù)前綴的數(shù)據(jù)區(qū)間的絕對(duì)值較小的一個(gè)邊界值的絕對(duì)值大于所述預(yù)定值時(shí),將所述差分值的編碼結(jié)果的數(shù)據(jù)后綴作為對(duì)應(yīng)于所述差分值的編碼結(jié)果的解碼結(jié)
14.一種用于對(duì)差分值的編碼結(jié)果進(jìn)行解碼的系統(tǒng),包括區(qū)間獲取單元,被配置為根據(jù)差分值的編碼結(jié)果的數(shù)據(jù)前綴,從預(yù)先存儲(chǔ)的差分編碼代碼表中獲取對(duì)應(yīng)于所述數(shù)據(jù)前綴的數(shù)值區(qū)間;后綴獲取單元,被配置為根據(jù)所述數(shù)據(jù)前綴獲取所述差分值的編碼結(jié)果的數(shù)據(jù)后綴; 解碼執(zhí)行單元,被配置為當(dāng)對(duì)應(yīng)于所述數(shù)據(jù)前綴的數(shù)據(jù)區(qū)間的絕對(duì)值較大的一個(gè)邊界值的絕對(duì)值小于預(yù)先確定的預(yù)定值時(shí),將所述差分值的編碼結(jié)果與對(duì)應(yīng)于所述數(shù)據(jù)前綴的數(shù)據(jù)區(qū)間的下邊界值的總和作為對(duì)應(yīng)于所述差分值的編碼結(jié)果的解碼結(jié)果,當(dāng)對(duì)應(yīng)于所述數(shù)據(jù)前綴的數(shù)據(jù)區(qū)間的絕對(duì)值較小的一個(gè)邊界值的絕對(duì)值大于所述預(yù)定值時(shí),將所述差分值的編碼結(jié)果的數(shù)據(jù)后綴作為對(duì)應(yīng)于所述差分值的編碼結(jié)果的解碼結(jié)
全文摘要
公開(kāi)了一種差分編碼方法和系統(tǒng)。該方法包括根據(jù)差分值所處的數(shù)值區(qū)間,從預(yù)先存儲(chǔ)的差分編碼代碼表中獲取對(duì)應(yīng)于所述數(shù)值區(qū)間的代碼作為所述差分值的編碼結(jié)果的數(shù)據(jù)前綴;判斷所述差分值的絕對(duì)值是否小于預(yù)先確定的特定值,并根據(jù)判斷結(jié)果獲取對(duì)應(yīng)于所述差分值的代碼作為所述差分值的編碼結(jié)果的數(shù)據(jù)后綴,其中,如果所述差分值的絕對(duì)值小于所述特定值,則將所述差分值與所述數(shù)值區(qū)間的下邊界值之間的差的二進(jìn)制碼作為所述數(shù)據(jù)后綴,否則將所述差分值的二進(jìn)制補(bǔ)碼中的最低N位作為所述數(shù)據(jù)后綴,其中N表示所述差分值的初始數(shù)據(jù)寬度;以及對(duì)所述數(shù)據(jù)前綴和所述數(shù)據(jù)后綴進(jìn)行組合,并將組合后的數(shù)據(jù)作為所述差分值的編碼結(jié)果。
文檔編號(hào)H03M7/40GK102263560SQ201010187410
公開(kāi)日2011年11月30日 申請(qǐng)日期2010年5月28日 優(yōu)先權(quán)日2010年5月28日
發(fā)明者洲鐮康, 白向暉, 譚志明 申請(qǐng)人:富士通株式會(huì)社