差分編碼
差分編碼
差分編碼(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,編碼碼元的前半部分與前一個編碼的電平相同,後半部分碼元與前半部分碼元相反。若源碼為0,編碼碼元的前半部分與前一個編碼的電平相反,後半部分與前半部分相反。這樣在每個源碼的編碼過程中,當中一定會有一次變化。
ADPCM在語音編碼中的作用,如G.726;
預測編碼在視頻編碼中的應用,如幀內預測,運動補償。
1.
ADPCM在語音編碼中的作用,如G.726;
2.
預測編碼在圖像編碼中的應用,如JPEG-LS,JPEG無損壓縮模型;
3.
預測編碼在視頻編碼中的應用,如幀內預測,運動補償。
預測編碼
增量調製
差分調製
曼徹斯特編碼