之前寫過哈弗曼編碼的壓縮檔案的程式,今天在書上看到乙個更簡單用途單一的壓縮演算法:行程長度編碼
如果檔案包含許多相同位元組的長序列,效果很明顯,實現**如下
#include#includeint main(int argc,char** ar**)
char newname[256];
strcpy(newname,ar**[2]);
strcpy(newname+strlen(ar**[2]),".ra");
char ch,temp;
int num=0;
fread(&ch,1,1,src);
while(fread(&temp,1,1,src))
} fwrite(&num,sizeof(int),1,out);
fwrite(&ch,sizeof(char),1,out);
if(ftell(src)>=ftell(out))
else
} else
printf("eg:comp file1 file2\n");
}
行程長度編碼科普
在某些情況下,乙個字元可能在乙個長序列中反覆出現。在英語文字中,這種重複不常見,但在大的資料流中 如dna序列 中,這種情況則經常出現。一種名為行程長度編碼的文字壓縮方法利用了這種情況。行程長度編碼有時又稱為迭代編碼。在行程長度編碼中,重複字元的序列將被替換為標誌字元,後面加重複字元和說明字元重複次...
RLE行程長度編碼概述
rle行程長度編碼概述 目前,壓縮技術已經廣泛應用於各種軟體 聲音 影像格式等領域。總的來說,有兩種截然不同的影象格式壓縮型別 有失真壓縮和無失真壓縮 1 有失真壓縮利用視覺識別的原理可以大大地壓縮檔案的資料,但是會影響影象質量。無失真壓縮的基本原理是相同的顏色資訊只需儲存一次,可以刪除一些重複資料...
c 行程長度編碼 題解與做題感想
時間限制 1 sec 記憶體限制 128 mb 在資料壓縮中,乙個常用的途徑是行程長度壓縮。對於乙個待壓縮的字串而言,我們可以依次記錄每個字元及重複的次數。這種壓縮,對於相鄰資料重複較多的情況比較有效。例如,如果待壓縮串為 aaabbbbcbb 則壓縮的結果是 a,3 b,4 c,1 b,2 當然,...