全球旧事资料 分类
多媒体技术基础及应用实验报告
专业:班级:学号:姓名:
信息安全07020906070208张杰
2010年11月25日
f设计一:1名称:LZW算法压缩编码技术名称2编程环境wi
dowsXP编程环境:所用工具:所用工具:DevCPP3设计思路设计思路:LZW就是通过建立一个字符串表用较短的代码来表示较长的字符串来实现压缩字符串和编码的对应关系是在压缩过程中动态生成的并且隐含在压缩数据中解压的时候根据表来进行恢复是一种无损压缩LZW压缩算法的基本原理:提取原始文本文件数据中的不同字符,基于这些字符创建一个编译表,然后用编译表中的字符的索引来替代原始文本文件数据中的相应字符,减少原始数据大小。看起来和调色板图象的实现原理差不多,但是应该注意到的是,我们这里的编译表不是事先创建好的,而是根据原始文件数据动态创建的,解码时还要从已编码的数据中还原出原来的编译表4程序源代码:
i
cludeiostreami
cludecstdioi
cludecstri
gi
cludectimei
cludeco
ioh用来计算压缩的时间
fusi
g
amespacestd
定义常数co
sti
tMAX1000003最大code数,是一个素数,求模是速度比较快co
sti
tascii256co
sti
tByteSize8structEleme
ti
tkeyi
tcodeEleme
t
exttableMAXhash表ascii代码的数量8个字节hash表中的元素
i
thashfu
ctio
i
tkeyretur
keyMAXvoidhashi
itvoidmemsettable0sizeoftable
hash函数
hash表初始化
fvoidhashi
sertEleme
teleme
ti
tkhashfu
ctio
eleme
tkeyiftablekNULLEleme
tetablekwhilee
extNULLee
exte
ext
ewEleme
tee
extekeyeleme
tkeyecodeeleme
tcodee
extNULLelsetablek
ewEleme
ttablekkeyeleme
tkeytablekcodeeleme
tcodetablek
extNULL
hash表的插入
fboolhashfi
di
tkeyEleme
teleme
ti
tkhashfu
ctio
keyiftablekNULLEleme
tetablekwhileeNULLifekeykeyeleme
tkeyekeyeleme
tcodeecoderetur
trueee
extretur
falseelsehash表的查找
fretur
falsevoidcompressvoid打开一个流供写入FILEfpfpfope
好听全球资料 返回顶部