基於統計的壓縮算法:游程編碼


1.游程編碼概念

  游程編碼又稱“運行長度編碼”或“行程編碼”,是一種統計編碼,該編碼屬於無損壓縮編碼。

2.基本原理

  用一個符號值和串長代替具有相同值的連續符號,使符號長度少於原始數據的長度。

  如:     原始文本:dfffffeeeeettttrrrrttttt

    游程編碼后文本:d1f5e5t4r4t5

 3.代碼示例

 1 #include <stdio.h>
 2 #include <string.h>
 3 int main()
 4 {
 5     char textBefore[100] ="dfffffeeeeettttrrrrttttt";
 6     char textAfter[100];
 7     memset(textAfter,0,sizeof(textAfter));
 8 
 9     char c;
10     int num,i,j;
11     for(i=0;i<strlen(textBefore);){
12         c   = textBefore[i];    ///臨時保存字符
13         num = 1;    ///保存個數
14         for(j=i+1;j<strlen(textBefore);j++){
15             if(c == textBefore[j])
16                 num++;
17             else
18                 break;
19         }
20         i = j;
21 
22         sprintf(textAfter,"%s%c",textAfter,c);
23         sprintf(textAfter,"%s%d",textAfter,num);
24     }
25     printf("textBefore : %s\n",textBefore);
26     printf("textAfter  : %s\n",textAfter);
27     return  0;
28 }

代碼輸出:

  

 

參考:

http://zh.wikipedia.org/wiki/%E6%B8%B8%E7%A8%8B%E7%BC%96%E7%A0%81

http://baike.baidu.com/view/721796.htm?fr=aladdin

(方法簡單也是有名字的)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM