多媒体技术LZW压缩算法


这是多媒体技术教程里的LZW压缩算法,包含编码和解码过程。用C++ 语言进行了算法实现。
资源截图
代码片段和文件信息
#include 
#include 
#include 
using namespace std;
/* run this program using the console pauser or add your own getch system(“pause“) or input loop */
void LzwEncoding(int a[]int n);
int main(int argc char** argv) {//对编码字符进行解码 
int n;
map LzwMap;  //定义键值对存放 
cout<<“输入codes的个数“< cin>>n;
int a[n];
for(int i=0;i cout<<“第“< cin>>a[i];
}
LzwMap[1]=“A“LzwMap[2]=“B“LzwMap[3]=“C“;//初始化词典分别对A/B/C进行1/2/3编码
string s=“NIL“;
int count=4;//新字符的编码 
int k;
string str;
for(int i=0;i k=a[i];
map::iterator iter;
bool flag=false;
string value;
for(iter=LzwMap.begin();iter!=LzwMap.end();iter++){//搜素字典中键为k的值 
if (iter->first==k){
flag=true;
value=iter->second;
break;
}
}
if(flag==true){//若存在字典中,则输出值 
cout< }
if(s!=“NIL“){//把S对应的字符和字典k中对应的字符串的第一个字符相加并存储在字典中 
const char *p=value.data();
str=s+p[0];
LzwMap[count++]=str;
}
s=value;
}
return 0;
}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-11-03 15:11  lzw
     目录           0  2018-03-10 20:30  lzwLzwDecode
     文件         906  2017-12-30 00:15  lzwLzwDecodeLzwDecode.dev
     文件     2096804  2017-12-30 00:03  lzwLzwDecodeLzwDecode.exe
     文件          94  2017-12-30 00:15  lzwLzwDecodeLzwDecode.layout
     文件        1214  2017-12-30 00:15  lzwLzwDecodemain.cpp
     文件      223056  2017-12-30 00:03  lzwLzwDecodemain.o
     文件        1026  2017-12-30 00:03  lzwLzwDecodeMakefile.win
     目录           0  2018-03-10 20:30  lzwLzwEncode
     文件         894  2017-12-29 23:16  lzwLzwEncodeLZW.dev
     文件     2094402  2017-12-29 23:07  lzwLzwEncodeLZW.exe
     文件          92  2017-12-30 00:17  lzwLzwEncodeLZW.layout
     文件        1294  2017-12-29 23:16  lzwLzwEncodemain.cpp
     文件      223304  2017-12-29 23:07  lzwLzwEncodemain.o
     文件        1014  2017-12-29 23:07  lzwLzwEncodeMakefile.win

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)