遊程編碼(run-length encoding, rle)又稱行程長度編碼或者變動長度編碼法,在控制理論中對於二值影象而言是一種編碼方法,對連續的黑,白向畫素以不同的碼字進行編碼。遊程編碼是一種簡單的無失真壓縮方法,其特點是壓縮和解壓縮都非常快。該方法是用重複位元組和重複次數來簡單的描述重複的位元組,也就是將一串連續的相同資料轉換為特定的格式來達到壓縮的目的。
rle是一種簡單的壓縮演算法,主要用於壓縮影象中連續的重複的顏色塊。當然rle並不是只能應用於影象壓縮上,rle能壓縮任何二進位制資料。原始影象檔案的資料有乙個特點,那就是有大量連續重複的顏色資料,rle正好是用來壓縮有大量連續重複資料的壓縮編碼,但對於其他二進位制檔案而言,由於檔案中相同的資料出現概率較少,使用rle壓縮這些資料重複性不強的檔案效果不太理想,有時候壓縮後的資料反而變大了。
rle壓縮方案是一種極其成熟的壓縮方案,其特點是無損失壓縮。
感謝這位博主
(感覺仔細看了上面兩個內容後就不用再過多解釋了,**裡面有壓縮函式的注釋,解壓和其相似就沒有再寫)
#include
#include
#include
void
zip(
char
*filename,
char
*outfile)
//進行rle壓縮
else}}
fclose
(in)
;fclose
(out)
;//關閉檔案
}void
unzip
(char
*filename,
char
*outfile)
}fclose
(in)
;fclose
(out);}
intmain
(int argc,
char
*ar**)
elseif(
!strcmp
(ar**[2]
,"-c"))
else
printf
("輸入引數有誤,請重新檢查,-c : compress; -d : decompress\n");
return0;
}
C語言RLE壓縮解壓演算法(西電C程式作業4)
4 rle壓縮解壓演算法 涉及知識點 檔案讀寫 位操作 記憶體管理 結構體定義 rlw演算法 命令列引數 要求 編寫乙個程式,可以在命令列輸入引數,完成指定檔案的壓縮解壓 命令列引數如下 rle file1 c d file2 第乙個引數為可執行程式名稱,第二個引數為源檔名,第三個引數為壓縮或解壓縮...
RLE壓縮和解壓演算法以及鍊錶翻轉
include include struct rlenode 壓縮字串 struct rlenode encode char str if ptr i ptr i 1 ptr return head 解壓字串 char decode struct rlenode head else p p next...
C語言小程式設計之素數演算法剖析
首先,我們在這裡的問題是確定100 200之間的素數。關於素數的分析 首先我們先要明確乙個概念,什麼是素數,素數就是只能被1和它本身整除的數,在這,我們先要進行的就是提取出100 200的數,然後對這些數進行判斷,如果是只有1和它本身可以整除,那麼就輸出,否則不輸出。如下 include inclu...