亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lz77.h

?? 在Lz77的基礎上修改
?? H
字號:
//////////////////////////////
// LZ77.h
//////////////////////////////

// 使用在自己的堆中分配索引節點,不滑動窗口
// 每次最多壓縮 65536 字節數據
// 的優化版本

#ifndef _WIX_LZ77_COMPRESS_HEADER_001_
#define _WIX_LZ77_COMPRESS_HEADER_001_
#define _CRT_SECURE_NO_WARNINGS
// 滑動窗口的字節大小
#define _MAX_WINDOW_SIZE	65536
#define MAX_BUF 1024
class CCompress
{
public:
	CCompress() {};
	virtual ~CCompress() {};

public:
	virtual int Compress(BYTE* src, int srclen, BYTE* dest) = 0;
	virtual BOOL Decompress(BYTE* src, int srclen, BYTE* dest) = 0;

protected:
	// tools 

	/////////////////////////////////////////////////////////
	// CopyBitsInAByte : 在一個字節范圍內復制位流
	// 參數含義同 CopyBits 的參數
	// 說明:
	//		此函數由 CopyBits 調用,不做錯誤檢查,即
	//		假定要復制的位都在一個字節范圍內
	void CopyBitsInAByte(BYTE* memDest, int nDestPos, 
				  BYTE* memSrc, int nSrcPos, int nBits);

	////////////////////////////////////////////////////////
	// CopyBits : 復制內存中的位流
	//		memDest - 目標數據區
	//		nDestPos - 目標數據區第一個字節中的起始位
	//		memSrc - 源數據區
	//		nSrcPos - 源數據區第一個字節的中起始位
	//		nBits - 要復制的位數
	//	說明:
	//		起始位的表示約定為從字節的高位至低位(由左至右)
	//		依次為 0,1,... , 7
	//		要復制的兩塊數據區不能有重合
	void CopyBits(BYTE* memDest, int nDestPos, 
				  BYTE* memSrc, int nSrcPos, int nBits);

	//////////////////////////////////////////////////////////////
	// 將DWORD值從高位字節到低位字節排列
	void InvertDWord(DWORD* pDW);

	/////////////////////////////////////////////////////////////
	// 設置byte的第iBit位為aBit
	//		iBit順序為高位起從0記數(左起)
	void SetBit(BYTE* byte, int iBit, BYTE aBit);

	////////////////////////////////////////////////////////////
	// 得到字節byte第pos位的值
	//		pos順序為高位起從0記數(左起)
	BYTE GetBit(BYTE byte, int pos);

	////////////////////////////////////////////////////////////
	// 將位指針*piByte(字節偏移), *piBit(字節內位偏移)后移num位
	void MovePos(int* piByte, int* piBit, int num);

	/////////////////////////////////////////////////////////
	// 取log2(n)的upper_bound
	int UpperLog2(int n);

	/////////////////////////////////////////////////////////
	// 取log2(n)的lower_bound
	int LowerLog2(int n);
};

class CCompressLZ77 : public CCompress
{
public:
	CCompressLZ77();
	virtual ~CCompressLZ77();
public:
	/////////////////////////////////////////////
	// 壓縮一段字節流
	// src - 源數據區
	// srclen - 源數據區字節長度, srclen <= 65536
	// dest - 壓縮數據區,調用前分配srclen字節內存
	// 返回值 > 0 壓縮數據長度
	// 返回值 = 0 數據無法壓縮
	// 返回值 < 0 壓縮中異常錯誤
	int Compress(BYTE* src, int srclen, BYTE* dest);

	/////////////////////////////////////////////
	// 解壓縮一段字節流
	// src - 接收原始數據的內存區, srclen <= 65536
	// srclen - 源數據區字節長度
	// dest - 壓縮數據區
	// 返回值 - 成功與否
	BOOL Decompress(BYTE* src, int srclen, BYTE* dest);

	//壓縮文件
	bool CompressFile(char* unZipFile, char* zipFile); 
	//解壓文件
	bool DecompressFile(char* zipFile, char* unZipFile); 
	//壓縮目錄 includeSub:是否包含子目錄
	BOOL CompressDir(char* srcDir, char* zipFile, bool includeSub = true);
	//解壓目錄 
	BOOL DeCompressDir(char* zipFile, char* destDir);
protected:

	BYTE* pWnd;
	// 窗口大小最大為 64k ,并且不做滑動
	// 每次最多只壓縮 64k 數據,這樣可以方便從文件中間開始解壓
	// 當前窗口的長度
	int nWndSize;

	// 對滑動窗口中每一個2字節串排序
	// 排序是為了進行快速術語匹配
	// 排序的方法是用一個64k大小的指針數組
	// 數組下標依次對應每一個2字節串:(00 00) (00 01) ... (01 00) (01 01) ...
	// 每一個指針指向一個鏈表,鏈表中的節點為該2字節串的每一個出現位置
	struct STIDXNODE
	{
		WORD off;		// 在src中的偏移
		WORD off2;		// 用于對應的2字節串為重復字節的節點
						// 指從 off 到 off2 都對應了該2字節串
		WORD next;		// 在SortHeap中的指針
	};
	
	WORD SortTable[65536];  // 256 * 256 指向SortHeap中下標的指針

	// 因為窗口不滑動,沒有刪除節點的操作,所以
	// 節點可以在SortHeap 中連續分配
	struct STIDXNODE* SortHeap;
	int HeapPos;	// 當前分配位置

	// 當前輸出位置(字節偏移及位偏移)
	int CurByte, CurBit;

protected:
	////////////////////////////////////////
	// 輸出壓縮碼
	// code - 要輸出的數
	// bits - 要輸出的位數(對isGamma=TRUE時無效)
	// isGamma - 是否輸出為γ編碼
	void _OutCode(BYTE* dest, DWORD code, int bits, BOOL isGamma);

	///////////////////////////////////////////////////////////
	// 在滑動窗口中查找術語
	// nSeekStart - 從何處開始匹配
	// offset, len - 用于接收結果,表示在滑動窗口內的偏移和長度
	// 返回值- 是否查到長度為3或3以上的匹配字節串
	BOOL _SeekPhase(BYTE* src, int srclen, int nSeekStart, int* offset, int* len);

	///////////////////////////////////////////////////////////
	// 得到已經匹配了3個字節的窗口位置offset
	// 共能匹配多少個字節
	inline int _GetSameLen(BYTE* src, int srclen, int nSeekStart, int offset);

	//////////////////////////////////////////
	// 將窗口向右滑動n個字節
	inline void _ScrollWindow(int n);

	// 向索引中添加一個2字節串
	inline void _InsertIndexItem(int off);

	// 初始化索引表,釋放上次壓縮用的空間
	void _InitSortTable();
private:
	void GetCompressFileName(char *dst, char *src);
};



#endif // _WIX_LZW_COMPRESS_HEADER_001_

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美最猛性xxxxx直播| 中文字幕欧美国产| 久久美女艺术照精彩视频福利播放 | 国产精品羞羞答答xxdd| 成人午夜激情视频| 欧美优质美女网站| 欧美成人video| 中文字幕中文字幕一区二区| 偷窥少妇高潮呻吟av久久免费| 欧美mv日韩mv| 亚洲色图第一区| 午夜精品福利一区二区蜜股av| 激情欧美一区二区三区在线观看| 波多野结衣欧美| 7777精品伊人久久久大香线蕉 | 国产在线视频一区二区| 波多野结衣在线一区| 欧美日韩成人一区| 国产精品女主播在线观看| 亚洲最快最全在线视频| 激情另类小说区图片区视频区| 91网站在线播放| 精品久久久久久综合日本欧美| 国产精品久久久久久妇女6080 | 欧美成人一区二区三区在线观看| 国产精品美女久久久久久| 日本最新不卡在线| 99精品视频在线观看| 欧美哺乳videos| 悠悠色在线精品| 丁香另类激情小说| 日韩视频一区二区在线观看| 亚洲日本在线a| 国产美女精品在线| 欧美日韩不卡一区| 亚洲视频你懂的| 狠狠网亚洲精品| 91.com视频| 亚洲影视在线播放| 成人国产精品免费观看视频| 欧美一区二区三区免费| 一区二区三区欧美| 99视频国产精品| 日韩精品一区二区三区swag | 午夜精品福利在线| 91麻豆精东视频| 欧美激情在线观看视频免费| 麻豆国产一区二区| 欧美日韩国产综合视频在线观看| 综合网在线视频| 国产ts人妖一区二区| 日韩午夜激情av| 婷婷久久综合九色综合伊人色| 色综合久久六月婷婷中文字幕| 国产亚洲精久久久久久| 麻豆一区二区三| 欧美一区二区三区在线电影| 亚洲成国产人片在线观看| 在线免费av一区| 成人免费一区二区三区视频| 国产99久久久久| 久久久久国产精品免费免费搜索| 蜜臀va亚洲va欧美va天堂| 91麻豆精品国产91久久久使用方法 | 久久99精品国产麻豆不卡| 91精品国产免费久久综合| 香蕉久久一区二区不卡无毒影院| 91黄色免费观看| 一区二区三区在线看| 91美女视频网站| 亚洲视频狠狠干| 色琪琪一区二区三区亚洲区| 亚洲免费在线播放| 色欲综合视频天天天| 亚洲免费三区一区二区| 91麻豆高清视频| 亚洲男女一区二区三区| 色偷偷久久人人79超碰人人澡| 亚洲欧美色图小说| 在线观看欧美精品| 亚洲h动漫在线| 日韩一区二区电影网| 久久激情综合网| 久久网站最新地址| 懂色中文一区二区在线播放| 国产精品国产三级国产有无不卡| 99国产一区二区三精品乱码| 亚洲精品日产精品乱码不卡| 欧美午夜精品免费| 青椒成人免费视频| 久久精品男人的天堂| www.日韩精品| 一级中文字幕一区二区| 欧美精品777| 国产一区在线观看麻豆| 国产精品三级电影| 色综合久久综合中文综合网| 午夜成人免费视频| 2020国产精品久久精品美国| 成人美女在线视频| 一区二区在线观看av| 欧美日韩精品免费| 国产美女一区二区三区| 亚洲婷婷综合色高清在线| 婷婷中文字幕综合| 精品剧情在线观看| a在线播放不卡| 天天色 色综合| 国产婷婷色一区二区三区 | 亚洲一区二区三区中文字幕在线| 欧美日本国产视频| 激情五月播播久久久精品| 国产精品美女一区二区| 欧美色视频在线| 国产一区二区日韩精品| 亚洲欧美一区二区在线观看| 欧美精品xxxxbbbb| 丁香六月久久综合狠狠色| 亚洲国产成人高清精品| 2021国产精品久久精品| 色噜噜狠狠成人中文综合| 久久99精品国产麻豆婷婷| 亚洲欧美日韩国产一区二区三区| 欧美精品日韩一本| 成人精品视频一区二区三区尤物| 亚洲va国产va欧美va观看| 久久精品夜色噜噜亚洲a∨| 在线看日韩精品电影| 国产一本一道久久香蕉| 亚洲第四色夜色| 国产欧美va欧美不卡在线| 欧美美女一区二区三区| 成人午夜电影久久影院| 午夜激情一区二区| 亚洲人成人一区二区在线观看| 欧美成va人片在线观看| 色欲综合视频天天天| 国产aⅴ综合色| 免费成人在线播放| 亚洲精品一卡二卡| 国产亚洲欧洲997久久综合 | 免费成人性网站| 一区二区久久久| 中文字幕免费不卡| 日韩女同互慰一区二区| 日本高清视频一区二区| 国产成人综合视频| 青青草原综合久久大伊人精品 | 欧美私人免费视频| 成人av网址在线| 九九久久精品视频| 日韩 欧美一区二区三区| 亚洲自拍都市欧美小说| 国产精品国产三级国产| 久久综合五月天婷婷伊人| 97se狠狠狠综合亚洲狠狠| 在线播放国产精品二区一二区四区| 日本欧洲一区二区| 91久久精品国产91性色tv| 久久久精品欧美丰满| 日韩国产欧美一区二区三区| 91在线观看高清| 亚洲成人动漫在线免费观看| av电影在线观看不卡| 91精品国产综合久久香蕉的特点| 亚洲精品中文字幕在线观看| 99精品视频在线观看免费| 一区二区三区国产精华| 色噜噜狠狠色综合中国| 天涯成人国产亚洲精品一区av| 有码一区二区三区| 亚洲精品自拍动漫在线| 亚洲人成小说网站色在线 | 国产一区二区日韩精品| 蜜臀av一级做a爰片久久| 视频一区视频二区中文字幕| 亚洲mv在线观看| 视频一区在线视频| 奇米色777欧美一区二区| 免费观看30秒视频久久| 美女精品自拍一二三四| 久久精品999| 国产一区二区三区免费看| 国产成人午夜片在线观看高清观看| 黄网站免费久久| 国产成人在线视频网址| 成人美女在线视频| 91麻豆精东视频| 色哟哟一区二区| 欧美乱妇23p| 日韩免费视频一区| 2021中文字幕一区亚洲| 中文字幕巨乱亚洲| 中文字幕综合网| 亚洲影视在线播放| 日本成人在线电影网| 另类小说图片综合网| 国产成人精品网址| 91丨porny丨中文| 欧美日韩中文国产|