全球旧事资料 分类
LZ77压缩算法实验报告一、实验内容使用C编程实现LZ77压缩算法的实现。二、实验目的用LZ77实现文件的压缩。三、实验环境1、软件环境:VisualC602、编程语言:C四、实验原理LZ77算法在某种意义上又可以称为“滑动窗口压缩”,这是由于该算法将一个虚拟的,可以跟随压缩进程滑动的窗口作为术语字典,要压缩的字符串如果在该窗口中出现,则输出其出现位置和长度。使用固定大小窗口进行术语匹配,而不是在所有已经编码的信息中匹配,是因为匹配算法的时间消耗往往很多,必须限制字典的大小才能保证算法的效率;随着压缩的进程滑动字典窗口,使其中总包含最近编码过的信息,是因为对大多数信息而言,要编码的字符串往往在最近的上下文中更容易找到匹配串。五、LZ77算法的基本流程1、从当前压缩位置开始,考察未编码的数据,并试图在滑动窗口中找出最长的匹配字符串,如果找到,则进行步骤2,否则进行步骤3。2、输出三元符号组offle
c。其中off为窗口中匹
f配字符串相对窗口边界的偏移,le
为可匹配的长度,c为下一个字符。然后将窗口向后滑动le
1个字符,继续步骤1。
3、输出三元符号组00c。其中c为下一个字符。然后将窗口向后滑动le
1个字符,继续步骤1。六、源程序
Projectdescriptio
Lz77compressio
decompressio
algorithm
i
cludewi
dowshi
cludeco
iohi
cludestdiohi
cludeasserthdefi
eOFFSET_CODING_LENGTH10defi
eMAX_WND_SIZE1024defi
eMAX_WND_SIZE1OFFSET_CODING_LENGTHdefi
eOFFSET_MASK_CODEMAX_WND_SIZE1co
stULONGm3
UCHARUCHAR
__buffer1__0x200000__buffer2__0x200000
void
fWrite1ToBitStreamPUCHARpBufferULONGulBitOffsetULONGulByteBou
daryULONGulOffsetI
ByteulByteBou
daryulBitOffset3ulOffsetI
ByteulBitOffset7pBufferulByteBou
dary1ulOffsetI
BytevoidWrite0ToBitStreamPUCHARpBufferULONGulBitOffsetULONGulByteBou
daryULONGulOffsetI
ByteulByteBou
daryulBitOffset3ulOffsetI
ByteulBitOffset7pBufferulByteBou
dary1ulOffsetI
ByteULONGReadBitFromBitStreamPUCHARpBufferULONGulBitOffsetULONGulByteBou
daryULONGulOffsetI
ByteulByteBou
daryulBitOffset3ulOffsetI
ByteulBitOffset7retur
PULONGpBufferulByteBou
daryulOffsetI
Byte1
fULONGWINAPIWriteGolombCodeULONGxPUCHARpBufferULONGulBitOffsetULONGqri
tiqx1mrxqm1fori0ULONGiqiulBitOffser
好听全球资料 返回顶部