C語言程式設計之RLE壓縮解壓演算法

2021-10-06 22:52:59 字數 1125 閱讀 4653

遊程編碼(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...