簡介
MH編碼是一維編碼方案,即對一行一行的數據進行編碼。 即對一行一行的數據進行編碼。它將遊程編碼和霍夫曼碼相結合將遊程編碼和霍夫曼碼相結合,是一種改進的霍夫曼碼。MH編碼用於對黑白二值檔案傳真的數據壓縮。檔案傳真是指一般檔案、圖紙、手寫稿、表格、報紙等檔案的傳真。它們是黑白二值的,即信源是二元信源 q=2。
MH的編碼方式非常簡單,圖像按行以黑色和白色點的遊程編成序列。遊程長度小於64時,其結尾加上一個結尾碼。若其長度等於或大於64時,會在結尾碼前加入補充碼,來定義遊程的長度,這個長度是64的倍數,這個倍數為1到40的整數,故遊程長度的範圍就可以從64到2560.這樣就可以避免對2560個可能的遊程進行哈夫曼編碼,而把編碼長度限制在64。2560像素的單行長度對於標準的A4傳真紙已經足夠,而一般的傳真紙白色的部分要比黑色的部分的面積大,所以MH編碼還針對這一特點進行了最佳化,白色像素的遊程一般比黑色像素的遊程長。每行總是從白色遊程開始(如果第一像素為黑色,則此長度可設為0),這樣就保證收發圖文顏色同步 。
規則
MH碼編碼規則如下:
遊程長度在0~63時,碼字直接用相應的終端碼錶示。
遊程長度在64~1728,用一個形成碼加上一個終端碼一個形成碼加上一個終端碼為相應碼字。
規定每行都從白遊程開始 規定每行都從白遊程開始。若實際出現黑遊程開始的話。若實際出現黑遊程開始的話,則在行首加上零長度白遊程碼,則在行首加上零長度白遊程碼字,每行結束用一個結束碼字,每行結束用一個結束碼(EOL)。
每頁檔案開始第一個數據檔案開始第一個數據前加一個結束碼前加一個結束碼,每頁尾連續使用6個結束碼錶示結尾。
每行應恢復出1728個像素,否則有錯。1728個像素,否則有錯。
為了傳輸時實現同步操作,規定為了傳輸時實現同步操作,規定T為每編碼行的最小傳 為每編碼行的最小傳輸時間。一般規定輸時間。一般規定 20ms≤T≤ 5s。若編碼行傳輸時間小於若編碼行傳輸時間小於T,則在結束碼之前填以足夠的則在結束碼之前填以足夠的“0”碼元(稱填充碼)。
1.遊程長度在0~63時,碼字直接用相應的終端碼錶示。
2.遊程長度在64~1728,用一個形成碼加上一個終端碼一個形成碼加上一個終端碼為相應碼字。
3.規定每行都從白遊程開始 規定每行都從白遊程開始。若實際出現黑遊程開始的話。若實際出現黑遊程開始的話,則在行首加上零長度白遊程碼,則在行首加上零長度白遊程碼字,每行結束用一個結束碼字,每行結束用一個結束碼(EOL)。
4.每頁檔案開始第一個數據檔案開始第一個數據前加一個結束碼前加一個結束碼,每頁尾連續使用6個結束碼錶示結尾。
5.每行應恢復出1728個像素,否則有錯。1728個像素,否則有錯。
6.為了傳輸時實現同步操作,規定為了傳輸時實現同步操作,規定T為每編碼行的最小傳 為每編碼行的最小傳輸時間。一般規定輸時間。一般規定 20ms≤T≤ 5s。若編碼行傳輸時間小於若編碼行傳輸時間小於T,則在結束碼之前填以足夠的則在結束碼之前填以足夠的“0”碼元(稱填充碼)。
遊程編碼與哈夫曼編碼
遊程編碼(RLE,run-length encoding),又稱行程長度編碼或變動長度編碼法,是一種與資料性質無關的無損數據壓縮技術。變動長度編碼法為一種“使用變動長度的碼來取代連續重複出現的原始資料”的壓縮技術。
哈夫曼編碼(Huffman Coding),又稱霍夫曼編碼,是一種編碼方式,哈夫曼編碼是可變字長編碼(VLC)的一種。Huffman於1952年提出一種編碼方法,該方法完全依據字元出現機率來構造異字頭的平均長度最短的碼字,有時稱之為最佳編碼,一般就叫做Huffman編碼(有時也稱為霍夫曼編碼)。在計算機數據處理中,霍夫曼編碼使用變長編碼表對源符號(如檔案中的一個字母)進行編碼,其中變長編碼表是通過一種評估來源符號出現機率的方法得到的,出現機率高的字母使用較短的編碼,反之出現機率低的則使用較長的編碼,這便使編碼之後的字元串的平均長度、期望值降低,從而達到無損壓縮數據的目的。
例如,在英文中,e的出現機率最高,而z的出現機率則最低。當利用霍夫曼編碼對一篇英文進行壓縮時,e極有可能用一個比特來表示,而z則可能花去25個比特(不是26)。用普通的表示方法時,每個英文字母均占用一個位元組,即8個比特。二者相比,e使用了一般編碼的1/8的長度,z則使用了3倍多。倘若我們能實現對於英文中各個字母出現機率的較準確的估算,就可以大幅度提高無損壓縮的比例。
霍夫曼樹又稱最優二叉樹,是一種帶權路徑長度最短的二叉樹。所謂樹的帶權路徑長度,就是樹中所有的葉結點的權值乘上其到根結點的路徑長度(若根結點為0層,葉結點到根結點的路徑長度為葉結點的層數)。樹的路徑長度是從樹根到每一結點的路徑長度之和,記為WPL=(W1*L1+W2*L2+W3*L3+...+Wn*Ln),N個權值Wi(i=1,2,...n)構成一棵有N個葉結點的二叉樹,相應的葉結點的路徑長度為Li(i=1,2,...n)。可以證明霍夫曼樹的WPL是最小的。
傳真通信
傳真通信是利用傳真機,藉助於公眾通信網(模擬電話網或數據網)或其它通信線路傳送圖形、圖片、文字等書面信息,並在接收方獲得與傳送方原件相同或相似副本的一種通信方式。傳真通信包含掃描、光電變換、信號傳輸、記錄和同步同相五個基本過程。在傳送端,將欲傳送的圖像經發信掃描依次分解成許多微小的單元(稱像元或像素,用光電變換器件把它們變換成相應的電信號,經信號處理後通過信道串列地傳送出去。在接收端,將接收下來的電信號進行反變換,恢復成原始傳真信號,送至記錄器使之變換成光或電或熱等不同形式的能量,通過收信掃描把這些隨時間變化的一維電信號按照和發信掃描相同的順序記錄在記錄紙上,最後組成與原圖(原稿)相似的二維圖像(複製稿)。為獲得滿意的而不是被分裂、歪斜甚而不可辨認的複製稿,必須保證收發兩端同步同相。