壓縮解壓算法LZ77算法有許多派生算法(這里面包括 LZSS算法)。它們的算法原理上基本都相同,無(wú)論是哪種派生算法,LZ77算法總會(huì)包含一個(gè)動(dòng)態(tài)窗口(Sliding Window)和一個(gè)預(yù)讀緩沖器(Read Ahead Buffer)。動(dòng)態(tài)窗口是個(gè)歷史緩沖器,它被用來(lái)存放輸入流的前n個(gè)字節(jié)的有關(guān)信息。一個(gè)動(dòng)態(tài)窗口的數(shù)據(jù)范圍可以從 0K 到 64K,而LZSS算法使用了一個(gè)4K的動(dòng)態(tài)窗口。預(yù)讀緩沖器是與動(dòng)態(tài)窗口相對(duì)應(yīng)的,它被用來(lái)存放輸入流的前n個(gè)字節(jié),預(yù)讀緩沖器的大小通常在0 – 258 之間。這個(gè)算法就是基于這些建立的。用下n個(gè)字節(jié)填充預(yù)讀緩存器(這里的n是預(yù)讀緩存器的大小)。在動(dòng)態(tài)窗口中尋找與預(yù)讀緩沖器中的最匹配的數(shù)據(jù),如果匹配的數(shù)據(jù)長(zhǎng)度大于最小匹配長(zhǎng)度 (通常取決于編碼器,以及動(dòng)態(tài)窗口的大小,比如一個(gè)4K的動(dòng)態(tài)窗口,它的最小匹配長(zhǎng)度就是2),那么就輸出一對(duì)〈長(zhǎng)度(length),距離(distance)〉數(shù)組。長(zhǎng)度(length)是匹配的數(shù)據(jù)長(zhǎng)度,而距離(distance)說(shuō)明了在輸入流中向后多少字節(jié)這個(gè)匹配數(shù)據(jù)可以被找到。
標(biāo)簽:
算法
LZSS
LZ
77
上傳時(shí)間:
2014-01-22
上傳用戶:tzl1975