主权项 |
1.一种用于压缩数据流的方法,包括:a.把数据流的一个第一部分读入一个窗口,该窗口具有一个历史缓存器和一个先行缓存器,b.选择一个从先行缓存器中的数据流的一个第四部分取得的指标,c.根据该指标选择一个指针阵列中的一个登记项,d.根据该指针阵列登记项选择一个记录阵列中的一个初始登记项,该记录阵列初始登记项具有一个历史缓存器地址和一个记录阵列地址,e.选择从被初始登记项的历史缓存器地址所引用的历史缓存器中的一个地址开始的数据流的一个第三部分,f.把数据流的该第三部分与先行缓存器中的数据流的一个第二部分进行比较,g.如果数据流的该第三部分不与数据流的第二部分相匹配,则根据初始登记项的记录阵列地址选择记录阵列中的一个随后的登记项,该随后的登记项随后被指定为初始登记项,h.重复步骤e.至g.,直到数据流的第三部分与数据流的第二部分相匹配或者在记录阵列中不再有登记项, (i)如果记录阵列中不再有剩下的登记项,则把数据流的该第二 部分写入输出文件,并使读入到窗口的数据流的第一部分有一个预定 量的增量,且 (ii)如果数据流的该第三部分与数据流的该第二部分匹配,则 把数据流的该第三部分的历史缓存器地址以及表示数据流的该第三 部分和数据流的该第二部分有多少字节匹配的一个长度值输出到输 出文件,并使读入到窗口的数据流的第一部分增加匹配的字节数,以 及i.重复从步骤b.开始的方法,直到所有数据流都已经被读入窗口中。 |