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