差分編碼

差分編碼

差分編碼(differential encoding)指的是對數字數據流,除第一個元素外,將其中各元素都表示為各該元素與其前一元素的差的編碼。

基本內容


差分編碼,又稱增量編碼,是以序列式資料之間的差異儲存或傳送資料的方式(相對於儲存傳送完整檔案的方式)。在需要檔案改變歷史的情況下的差分編碼有時又稱為差分壓縮。差異儲存在稱為“delta”或“diff”的不連續檔案中。由於改變通常很小(平均佔全部大小的2%),差分編碼能大幅減少資料的重複。一連串獨特的delta檔案在空間上要比未編碼的相等檔案有效率多了。
差分編碼的簡單例子是儲存序列式資料之間的差異(而不是儲存資料本身):不存“2, 4, 6, 9, 7”,而是存“2, 2, 2, 3, -2”。單獨使用用處不大,但是在序列式數值常出現時可以幫助壓縮資料。

定義


利用信號源符號之間的相關性,用過去的樣本預測當前樣本,然後對差值進行編碼。如果預測模型足夠好,且樣本序列在時間上相關性較強,差值會很小。對差值在進行量化,在相同碼率下,量化誤差會減小。

分類


按照工作原理,編碼器可分為增量式和絕對式兩類。增量式編碼器是將位移轉換成周期性的電信號,再把這個電信號轉變成計數脈衝,用脈衝的個數表示位移的大小。絕對式編碼器的每一個位置對應一個確定的數字碼,因此它的示值只與測量的起始和終止位置有關,而與測量的中間過程無關。
旋轉增量式編碼器以轉動時輸出脈衝,通過計數設備來知道其位置,當編碼器不動或停電時,依靠計數設備的內部記憶來記住位置。這樣,當停電后,編碼器不能有任何的移動,當來電工作時,編碼器輸出脈衝過程中,也不能有干擾而丟失脈衝,不然,計數設備記憶的零點就會偏移,而且這種偏移的量是無從知道的,只有錯誤的生產結果出現后才能知道。
解決的方法是增加參考點,編碼器每經過參考點,將參考位置修正進計數設備的記憶位置。在參考點以前,是不能保證位置的準確性的。為此,在工控中就有每次操作先找參考點,開機找零等方法。

編碼規則


曼徹斯特編碼中,每一位的中間有一跳變,位中間的跳變既作時鐘信號,又作數據信號;從高到低跳變表示"1",從低到高跳變表示"0"。還有一種是差分曼徹斯特編碼,每位中間的跳變僅提供時鐘定時,而用每位開始時有無跳變表示"0"或"1",有跳變為"0",無跳變為"1"。
兩種曼徹斯特編碼是將時鐘和數據包含在數據流中,在傳輸代碼信息的同時,也將時鐘同步信號一起傳輸到對方,每位編碼中有一跳變,不存在直流分量,因此具有自同步能力和良好的抗干擾性能。但每一個碼元都被調成兩個電平,所以數據傳輸速率只有調製速率的1/2。主要用在數據同步傳輸的一種編碼方式。
舉例:給出比特流101100101的以下兩個波形。
(1)曼徹斯特碼脈衝圖形;
(2)差分曼徹斯特碼脈衝圖形。
圖1.曼徹斯特編碼與差分曼徹斯特編碼
圖1.曼徹斯特編碼與差分曼徹斯特編碼
曼徹斯特編碼是將每一個碼元在分成兩個相等的間隔。碼元1是在前一個碼元為高電平后一個碼元為底電平。碼元0正好相反,是從碼元0變成碼元1。這種編碼的好處是可以保證每一個碼元(這裡的碼元是指源碼)的正中間出現一次變化。這對接收端提取位同步信號是非常有利的。但是這也同同時增加了信息傳送量,延長傳輸時間,所佔的頻帶寬度比原始信號的頻帶寬了近一倍。
差分曼徹斯特編碼規則是若源碼為1,編碼碼元的前半部分與前一個編碼的電平相同,後半部分碼元與前半部分碼元相反。若源碼為0,編碼碼元的前半部分與前一個編碼的電平相反,後半部分與前半部分相反。這樣在每個源碼的編碼過程中,當中一定會有一次變化。

應用


差分編碼在預測編碼中的應用頗廣,代表技術有:DPCMADPCM等。
ADPCM在語音編碼中的作用,如G.726;
預測編碼在圖像編碼中的應用,如JPEG-LS,JPEG無損壓縮模型;
預測編碼在視頻編碼中的應用,如幀內預測,運動補償
1.
ADPCM在語音編碼中的作用,如G.726;
2.
預測編碼在圖像編碼中的應用,如JPEG-LS,JPEG無損壓縮模型;
3.
預測編碼在視頻編碼中的應用,如幀內預測,運動補償。

相關補充


預測編碼
增量調製
差分調製