资源描述:
《多媒体实验报告-lzw编码与实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、计算机科学学院多媒体实验报告课程题目年级专业指导教师小组成员多媒体技术基础与实验教程LZW编码计算机科学与技术2011级2013年11月11日组员学号姓名实验名称LWZ编码实验室组员分工实验冃的或要求技术简介usingSystem;usingSystem・Collections・Generic;usingSystem・Linq;usingSystem・Text;usingSystem.Threading.Tasks;namespaceLZW{classProgram{staticvoidMain(string[]args){Encod
2、e();〃编码Decode();〃译码程序代码}publicstaticvoidEncode()//编码函数{stringInput="ABBABABAC";//盂耍编码的字符流Console.WriteLine(”编码前字符流:{0}",Input);Console.WriteLine();stringP=null;//当前前缀P为空stringX=null;inti=0,j=0,m=3,n=4,h=0;stringC=null;//当前字符Cstring[,」Dictionary=ncwstring_9,2];//定义词典〃词典初
3、始化Dictionary[0,0]二"1";Dictionary[0,1]="A";Dictionary[1,0]="2";Dictionary[1,1]=,,B,/;Dictionary[2,0]="3";Dietionary[2,//LZW算法编码Console.Write(?,编码后码字流:");while(h<9){C=Input.ToCharArray()[h].ToStringO:X=P+C;for(i=0;i<9;i++){if(X.Equals(Dictionary[i,1]))//缀-符串P+C在词典中{P=P+C;
4、//P:=P+Cbreak;})••J=1;程序代码if(j〉二9)//缀-符串P+C不在词典中{for(i=0;i<9;i++){if(P.Equals(DictionaryLi,1])){Console.Write(Dictionary[i,0]);//把代表当前前缀P的码字输出到码字流Console.Write(,?”);}}I)ictionary[m,0]=n.ToString();l)ictionary[m,1]=P+C;//把缀-符串P+C添加到词典P=C;//P:二Cm++;n++;)i=0;j=0;h++;}for(i
5、=0;i<9;i++)//码字流中无码字要译{if(P.Equals(Dictionary[i,1])){Console.Write(Dietionary[i,0]);//把代表'"l前前缀P的码字输出到码字流Console.Write(””);)}//输出DictionaryConsole.WriteLine();Console.WriteLine();Console.WriteLine("Dietionary如下:“);for(i=0;i<9;i++,Console.WritcLinoO){for(j=0;j<2;j++){Con
6、sole.Write(Dictionary[i,j]);程序代码Console.Write(“”);)}publicstaticvoidDecode。//译码函数{stringOutput="122473";//码字流stringcW=null;//当前码字stringpW=null://先前码字stringP=null;//当前前缀stringC=null;//当前字符inti=0,j=0,h=1,m=3,n=4;stringf,]Dictionary=newstring[20,2];//定义词典〃词典初始化Dictionary[0
7、,0]="1";Dictionary[0,1]="A";Dictionary[1,0]="2";Dictionary[1,1]="B";Dietionary[2,0]="3";Dietionary[2,1]="C";Console.Write(,z解码后字符流:");cW=Output.ToCharArray()[0].ToString();〃当前码字cV=码字流中的第一个码字Console.Write(Diclionary[int.Parse(cW)-1,1]);//输出当前缀-符string.cW到字符流Console.Writ
8、cC“);while(h<6){pW=cW;//先前码字二当前码字cW=Output.ToCharArray()[h].ToString();//牛前码字递增for(i=0;i<9;i++){try{程序代码if(Dic