PackBits解壓縮演算法

2021-09-24 09:58:15 字數 802 閱讀 5709

packbits壓縮方式是每段資料都有乙個頭(有符號的8bit型別資料)和資料。具體形式如下圖所示。

當頭部的值為-1~-127表示頭部後面的1乙個位元組的資料進行過資料壓縮,解壓縮時需要將頭部後面的乙個位元組的資料重複頭部值的絕對值+1次。

當頭部的值為0~127表示頭部後面頭部值+1個位元組的資料沒有進行過資料壓縮,解壓時需要將頭部後面的頭部值+1個資料直接進行拷貝。

當頭部的值為-128時不進行任何操作,跳過。

具體的**實現請參照下面的c實現的方式

#include #include typedef unsigned char uint8;

typedef signed char int8;

void packbitsdecode(uint8 *val, uint8 length);

int main()

; packbitsdecode(value, sizeof(value));

getchar();

return 0;

}void packbitsdecode(uint8 *val, uint8 length)

else if (data >= 0 && data <= 127)

else

if (i == length)

else if (i > length)

}for (i = 0; i < len; i++)

}

壓縮解壓縮

壓縮 壓縮後的檔名 包含物理路徑 待壓縮的資料夾 包含物理路徑 public static void packfiles string filename,string directory catch exception 解壓縮 待解壓檔名 包含物理路徑 解壓到哪個目錄中 包含物理路徑 public ...

壓縮 解壓縮

linux使用最廣泛的壓縮格式位gz,使用gzip命令進行壓縮和解壓縮 1 gzip,gunzip,壓縮 解壓縮檔案,compress or expand files gzip acdfhkllnnrtvv19 s suffix name gunzip acfhkllnnrtvv s suffix ...

遞迴演算法練習 解壓縮

現在有一種字串的壓縮規則是這樣的 k string 表示string連續出現k次 0 k 1000 例如 s ef3 a 2 bc gh 解壓後的字串為 efaaabcbcgh 這種壓縮也可以巢狀,s 3 a2 c 解壓後為 accaccacc 輸入乙個字串s,請輸出乙個解壓後的字串。輸入都是嚴格合...