多媒体技术项目实践_第1页
多媒体技术项目实践_第2页
多媒体技术项目实践_第3页
多媒体技术项目实践_第4页
多媒体技术项目实践_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

多媒体技术项目实践项目实践一Huffman编码一、实验目的与要求1、实验目的(1)掌握哈夫曼编码原理。(2)理解数据压缩的实现过程。2、实验要求根据哈夫曼编码算法,对下列信源实现哈夫曼编码。求出编码后的平均码长。二、实验内容与步骤1、实验内容对上面信源进行哈夫曼编码。显示出每个符号的分配代码及平均码长。2、实验步骤(1)初始化,根据符号概率的大小按由大到小顺序对符号进行排序。(2)把概率最小的两个符号组成一个节点。(3)重复步骤(1)(2),直到概率和为1(4)从根节点开始到相应于每个符号的“树叶”,概率大的标“0”,概率小的标“1”贫(5)从根给节点开始,沿对符号进行私编码。刘三、实验成筝果色1、哈夫曼撒编码程序。旨2、实验报点告。说项目实践二灰DCT变背换编码形一、实验目也的与要求读1、实验目仍的头(1)掌握肠DCT变换枝编码原理。政(2)理解条DCT变换显的实现过程泼。氧2、实验要膨求攻鸽现有一张3岛20伸×笛240的拖图像翼一张,要求苍对其进行敏DCT变换碌。碌二、实验内爷容与步骤滩1、实验内素容暴对320匠×居240的至图像铺进行DC碧T变换值2、实验步键骤圾步骤一、分稿块播将每个分量苍图像分成许驳多8巡×河8=64个动样点组成的匠像块,并对椒其采样,得轿到在空域中呆的8血×贱8的样值矩购阵。摄步骤二、界变换缘利用FDC直T公式,将钱空域中的8迅×垂8样值矩阵提,正向变换喇(FDCT鄙)为频域中翼的8穷×条8DCT跪系数矩阵。寇逮步骤三、呜关于FDC脚T变换无的几点说明努威(1)f(风x,y)为叮空域中位置察为(x,y捧)点的样值己函数(x,眉y=0,1湾,航…头,7)。垃(2)F(铅u,v)为归频率域中频采率位置为(起u,v)点案的DCT系蒜数(u,v掩=0,1,逐…咐,7)。带(3)沿u螺,v方向频欠率增加,但遇是0~7并第不特指某一栽频率(可视呜为小的频率慰域)。好(4)F(卫0,0)对魂应直流分量裙,称为DC是系数,其它队63个对应蚂交流分量的乳系数,称为筑AC系数。判碧(5)两个些空间的同位殊置系数无对蒙应关系。冷(6)在频谅域中的右下惜角对应高频怨部分,而在揉左上角对应沿低频部分(枝特点,相关释性)。缩步骤四、蝇讨论惠(1)D稳C系数的构母成:喊当u,v=看0时,C萄(U)=C熟(V)=1谋/幼√心2,有搏:之可见DC系违数为空域中测64个样值罩的平均值(旧对8的)。丽问(2)A娃C系数的构稀成:极当u,v姐≠以0时,C醒(U)=C弓(V)=1抓遥每个AC系下数为空域中葵64个样值还分别乘以对洲应的余弦量夫后求和,再纯取平均。蒸(3)DC滚T系数的取韵值范围:在挤视频数字化漠中,由于采晴用8位量化糟,在空域中培的样值的最百大值应为2岸56,所以持廊F(0,0阿)MAX=旱DCMAX逆=256私×核64/8=奶2048毯故:0腊≤孟DC欲≤飘2047兰-1024脚≤粒AC脚≤蒜1023妻(4)D赏CT系数规累律:低频系荡数值大,高驾频系数值小凑。刻步骤五、迹DCT系数疼量化蝇(1)量化律的原因:杏DCT之后辜其系数矩阵朝中相关性不镜够明显,为遍进一步降低撤DCT系数奶矩阵中非零召系数的幅值拆,增加零系盗数的个数,浮使相关性表也现的更明显扎,需要进一阁步量化。屿(2)量化状的依据歼对失真的要坦求:量化是肉图像质量下挪降的重要原耍因,DCT梨系数量化是付基于限失真燕编码理论进艳行的,容许稻有失真,但决应在视觉容但许的容限内圈。葬对寒视觉辫的炉要求:亮度丈信号与色度丙信号的分辨寒能力不同;唱对低频图落像信号和高窗频图像信号勺的分辨能力倾不同。隔(3)量桂化的方法将区域滤波法棕:采用对D增CT系数矩孙阵中的每一槽个值逐一量尤化。箩三、实验成收果抢1、写好实何验报告。珠项目实践三凶树词统典编码塘一、实验环夫境稻Turbo读C哭二、实验目脆的与要求插1.实验目昂的暑(1)理荡解词典编码演的思想。早(2)了纪解LZ77由算法。闯(事3肚)掌握L鸡ZW算法。圾2.实验要澡求听根据LZW攻算法原理对躬一段具体的惕字符进行编菜译。要求在化编码过程中帽写出流程图钓,以便充分俭理解LZW邻算法原理,绵最终达到熟以练应用。诱三激、逃实验内容与掌步骤罪1.实验内势容体任意卸输入辨一段字符进吸行编码。驳依据字典算雀法的步骤,丢写出字符编淋码的流程图丸。倒2.实验步六骤径进入Tub跟orC编繁译环境。哥在编译环境但下输入词典须的编码算法蜡。(参考程虾序)袖给#incl猴ude<殊strin向g.h>士void日copy1咸(char趟*pre绩fix,c华har*爽s,int怀i,in扁tj)丽/*表拷贝字符串马*/{喘in桨tk;绳fo石r(k=0辫;k<20香;k++)朗/*态将前缀字符叛串清空惊*/督揪pref游ix[k]渔='';沙fo伏r(k=i靠;k<i+盘j;k++亏)梅还{pref禽ix[k-视i]=s[抵k];匙/沈*pr趴intf(欧"aplg宜htis仇:%d--鹊-%c\n腰",k-i乘,pref治ix[k-铅i]);*食/}}双main(胞)项{c救hars话[30],搅pref闸ix[30盐],dic兵[20][逐30]={埋"A","范B","C膊"},c[街20];偷走int外i,j,锣k,n,t吼,m;/竟*k习指字典中的订编号绞,m程指匹配号码档,崭j名指截取字母厦的长度蜓*/译k恶=3;m评=0;j=看1;i=抬0;糕p劳rintf粥("ple燥asei畅nput枕strin煤g:\n"址);滑g写ets(s扫);钉引while草(i<st摔rlen(翻s))桨呈{哑草copy绢1(pre田fix,s仅,i,j)茫;/*毕读取字符的贵长度酱*/粱把f刻or(n=慌0;n<k思;n++)璃/*呈查找字典中津的编号欣*/售集某{益糊/估*pri滨ntf("誓prefi馒x=%s真",pr晋efix)竟;摆骑乓print头f("di郑c[3]=搬%s"四,dic[牵n]);乒*/孙锦挺if(st肆rcmp(使prefi恼x,dic球[n])=秃=0)芽蚀乔味{传聚屈链j=竹j+1;协音柔m=n数;斗竹左坑if蛮((i+j咬)<=st诞rlen(产s))凯充轨农仓cop厘y1(pr时efix,麻s,i,j帅);误笼氏轨el猪se呆蜜宰宽士strc该py(pr荣efix,兰"");斜步晒进}计伸东}贞脖pri佳ntf("脏%d"袄,m);积让if(st绸rlen(狂prefi居x)!=0冻)匹规饿{strc学py(di盼c[k],诞prefi行x);紫/*减写入字典灿*/美湿pri奴ntf("选%s\泼n",di抛c[k])河;}矛抱壳k=k+1部;储扬i=i嗓+j-1;顶趋鸟j=1;肝都}}仇运行该程序荒,根据其要违求输入要编质译的字符串乏“新ABBAB烫ABAC妄”捧。翠调试、观察赴运行结果,纯并与自己画趋的编译流程次图相比较。沸四轨、支实验思考题涝1.扒字符流的输融入如钱表泄3段-森1觉所示,使用脆LZW算法煤计算输出的挺码字流。请尤核对计算的更输出码字流镇是否为:败(1)(垃2)(4惭)(3)絮(5)座(8)(帜1)(1窜0)(1回1)…精并将码字流娱中的码字填己入练习药表厘3哈-金2慎对应的位置皮。叹表锋3掘-堵1输入鸟字符流饼输入位置翠1泄2鬼3胆4句5云6评7拼8肾9膝10孔11柱12甘13立14织15秘……拣输入字符流步A胡B乐A颈B练C装B不A畏B平A想B桨A炒A启A酒A卸A摔……际输出码子险表棋3装-扁2编码表咽步骤崇位置松词典找输出码子暂(1)辞a水(2)叠b际(3)货c及1伐1导2眉…织9练…薯项目实践四陡辽声音录制、台编辑和合成思一、实验哨目的周(1)亦通过妖实验学习声归音的数字化皆过程,了解借计算机如何逆处理和存储器声音。竖(2)循掌握声音处越理工具软件叼Cool后Edit的怪用法,能够双用Cool扬Edit吉进行录音并轿根据需要编叨辑声音。初(3)刊了解用Ca谢kewa往lk音乐大穷师制作MI胆DI音乐。摆二、实验浑内容致(1)诱用惰Cool竭Edit胜录音并去除滨声音文件中局的噪音、添尘加混响效果筑、制作渐弱拒效果和自制留卡拉OK伴补奏带。斑(询2膛)批*Cak蚊ewal宋k音乐大师弊制作MID胳I音乐肿三、实验垂要求污(1)令提交皇用Cool猎Edit奇录制的原文屯件。愚(2)敢提交用Co锯olEd草it处理噪室音、添加混危向效果以及娃制作渐弱效授果的最终作毙品。杠(3)障尝试用Ca延kewa脾lk音乐大膨师制作MI棒DI音乐。抛四、实验操邮作晕缝钟用Cool援Edit照录音并去除犯声音文件中脏的噪音、添散加混响效果士、制作渐弱根效果和自制富卡拉OK伴声奏带。由1、录制背碗景音乐派背景音乐可牛由录音机、齐CD唱机等忆输出的模拟凭音频获取。判首先保证外吩界音源设备截与声卡的L笼ineI寿n接口正确凉相连。奥步骤1:选米择【开始】胆/【程序】宵/【Coo叙lEdi扬t200棵0】/【C迁oolE要dit2罢000】,致打开Coo螺lEdi细t200象0;全步骤2:单疗击工具栏的司【Reco阴rd】按钮仓.出现【N轻ewWa退vefor宴m】对话框众,分别选择谦【Samp篇leRa糕te】为4颤4100,拴【Chan值nels】松为【Ste票reo】,上【Reso竹lutio器n】为【1躺6-bit堤s】,单击诊【OK】按标钮开始录音为。糖步骤3:录壶音结束,单兽击工具栏的堡【Stop寄】按钮完成不录音。霸步骤4:执柜行【Fil序e】/【S艇aveA名s牵…任】,打开保雕存对话框。递选择好路径麻,文件名存衔为【背景音彼乐】,保存幻类型选【W抄indow汪sPCM旧(*.Wa阔v)】,单导击【保存】他完成对音乐洪文件的录制戚。揪2、去除声敏音文件中的嘱噪音辞步骤1:越打开我们上而面录制的【棚背景音乐】滨,执行【E境ffect酷s】/【N昌oise吉Reduc伴tion】枪命令,打开抖【Nois熄eRed蚊uctio飞n态…摇】对话框或(1)在N者oise筛Reduc粘tion糕Setti呈ngs框中威,【FFT爆Size耻】取值在4绘096~小2000尾0之间,在栏这里把它设耐为8192拦。其他各项生就取CE贴Pro设好挣的默认值。敏(2)在P签rofil兔es框中垫,单击【G胸etPr盼oSel院ectio茶n】按钮,蚀CEPr探o就会把噪胁音轮廓记录耕在原先为灰困色的以“证Noise租Prof柱ile仇”窜框中,水平床方向表示频掀率,竖直方办向表示噪音哈的量。锤(3)按下酷【Nois麻eRed涨uctio盛n阳…粱】对话框中丘的【Clo雨se】按钮虑关闭对话框鞋,注意不要跳按下【Ca关ncel】坐按钮来关闭姑对话框。回雄到CEP播ro的工作纯界面后,使守用水平缩放嚼工具使整个隆声音波形都步显示在波形似显示区中,摸双击波形显碑示区选取整父个波形,然瓶后再次打开会【Nois妇eRed晚uctio浙n指…荷】对话框,处会看到噪音刘轮廓还在那侨里,这时按嗓下【OK】喉按钮,CE刺Pro就旁开始自动清佩除环境噪音顿了。胡步骤2:处欣理结束后,溉打开【Fi贵le】/【偷Save津As耽…桥】,选择好蛮路径,文件肺名存为【无吼噪音背景音锅乐】单击【内保存】,完骡成去除声音壁文件中的噪屿音处理。撇3、用Co撞olEd付itPr摆o进行混音瓦处理昂步骤1:打邮开另一个我动们录制的【运伴奏带】,奇执行【Ed挥it】/【佛Mixp出aste败…火】命令,打段开【Mix睁past蔽e】对话框赵(1)在V激olume挪框中,【V床olume更L,R】薯代表左右声燕道音量,若畜为单声道文喘件,则只有祥一个声道音清量调节,若美选中【In吼vert】酬,则文件在跟被粘贴前声泼音数据将会词颠倒。当【晓Lockl城eft/R仇ight】恒被选中时,毕左右声道调犹节钮将被锁旷定,调节时之将一齐变化铅。打(2)在合瓜成方式框中四,选定【I障nsert测】,则被粘任贴的文件插元入当前文件液之中。选定炉【Over警lap】时魄,则被粘贴鸣的文件不会劝取代当前文裳件中的选定郊部分,而是副以选定的部快分与当前文喇件叠加。若鹿被粘贴的文侄件比当前文胀件的选定部系分长,则超昨出范围的部油分将继续被绢粘贴。选定眼【Repl粘ace】,幕则被粘贴的俭声音文件将冲覆盖源文件央。选定【M沾odula环te】则被竖粘贴的声音群文件与当前陡文件一起调犁制,即将每绩采样点的幅违值相乘混合岭后输出。激苍活【Cro式ssfad眨e】,输入衬时间(ms刮),则在粘来贴前后粘贴往的文件有一吉定的淡入淡毕出。插(3)在选杂择被粘贴的莲文件来源框滋中,选中【宿From煮Clipb仙oard】虾表示被粘贴霉的文件来源沿于剪贴板。戴【From朱wind卫owsC竖lipbo治ard】表翁示被粘贴的鼓文件来源于凑Windo阵ws剪贴板嫩。【Fro稿mFil骆e】表示被陶粘贴的文件所来源于新文序件,单击【翠Selec销tFil凯e睛…需】按钮可选信择文件。茫(4)【L简ooppa抚st】指粘斧贴文件的次拐数。泉在本实验中喝设置【Vo挑lume宅L,R】为少90,选中条【Over饲lap】,颜设置【Cr他ossfa申de】值为漏50,选中本【From珍File吉】,单击【浊Selec兆tFil义e麦…匀】选择作为毅背景音乐的跌文件【无噪股音背景音乐觉】,【Lo矛oppas谎t】为1,哪单击【OK织】完成设置榆。迁步骤2:处丰理结束后,拴打开【Fi见le】/【低Save霜As辨…斑】,选择好券路径,文件强名存为【混霞合音乐】单绕击【保存】唐,完成混音辈处理。长4、制作渐独弱效果毁步骤1:着打开我们上屑面编辑的【泰混合音乐】巷,执行【E优ffect竖s】/【A贴mplit掌ude】命权令,打开【挡Ampli吩fy茅…乌】对话框,分在该对话框祥中选中【F着ade】对耗话框。假(1)在适Initi举alAm政plifi矮catio墙n框中的上库下两个滑块滤分别控制左盐右声道最初矿音量放大的垦倍数,F关ianl吸Ampli而ficat睁ion框中败的上下两个桶滑块则分别济控制左右声循道最终音量证放大的倍数暮。100%勾相当于音量塘没有改变,母0%相当于兔音量被减小相至无声。在巷此,我们选谋中【混合音惹乐】中需要巷制作渐弱效临果的一段音李频,在【I锦nitia程lAmp丙lific脊ation粱】中左右声锐道放大倍数巷为100%至,在【Fi超anlA趁mplif杀icati坑on】中左矩右声道放大招倍数为50巾%。副(2)【L宰inear漆Fade膏】单选框是津将最初和最出终音量放大慕的倍数呈线抽性变化,而哑选中【Lo肆garit对hmic败Fade】版则是最初和歉最终音量放既大的倍数呈帮对数变化。鞠我们可以试韵听一下这两发种变化的效糕果。在这段锻音乐里,我速们选择线性娱变化。姻(3)【L粮ockL野eft/R步ight】苦用来控制左败右声道是否恐作同样的变聪化,如果不捐选它,左右恨声道音量放星大的倍数就路可以分别设嗓置。我们不共选择该复选掏框。土步骤2:处苦理结束后,潮打开【Fi唇le】/【铺Save仓As药…雕】,选择好色路径,文件困名存为【混党合音乐】单副击【保存】偶,完成渐弱览效果的处理框。鼓至此,具有连一些效果的腰自制卡拉O丸K伴奏带就棍基本上完成绒了。默*Cak煎ewal狭k音乐大师女制作MID束I音乐屈在这里我们超尝试用Ca乘keWal棕k9.0对露一段音乐进喷行独奏处理蹈。哲步骤1:选倒择【开始】罢/【程序】聪/【Cak谊ewalk善pro屈audio吃9.0】脉/【Cak革ewalk示pro来audio批9.0】,扔打开Cak炸ewalk呼9.0;撞步骤2:打割开以前制作兴的Back稀groun啦d.wrk猫,并把音轨城窗口最大化撞。窗口中语显示了该曲欧的音轨,音辣轨窗左半边喝每条音轨上铅都有三条颜舟色较深的竖见栏,上面标珍有M、S、谈R字样,分雕别是MUT彼E、SOL伯O、ARM射的缩写。M喂UTE键用违来指定音轨茶为静音状态妻,SOLO盛键用来指定浪音轨为独奏筋状态,AR芳M键用来指祖定音轨为录铺音状态。谋步骤3:点企击打击乐器过音轨(Or宇ch.pe政rcuss挂ion)的下M键,这样笑就把该组打闭击乐器静音害了。该轨的超M键变为黄醋色,并注意采到下面音轨连指示栏最左那边一格显示坑出MUTE乖字样,并变佳为黄色。秆步骤4:重身复3的操作染,把除了我警们想单独听舞的声音以外凭的其它的节这奏声都给静干音了。或者柿直接把我们离想听的节奏集声设为独奏壤(SOLO棋)状态,操皱作类似步骤饰3。讨步骤5:枣处理结束后担,打开【F倒ile】/聪【Save盲As央…方】,选择好参路径,文件棵名存为【独伍奏】单击【腿保存】,完吼成独奏效果搏的处理。吼五、实验逃讨论还(1)我庸们在前面实获验中完成了陡声音文件中侨噪音的处理似,那么如何寿去除出气声量和清除呼吸尺声和不重叠浓在有效语音晃上的杂音。诉(2)在足宅球赛中,球桃迷的欢呼和恋解说词都是虎一个人录制益的,如何使袖球迷的声音裕和解说词的壶声音有较大兰的差别?防(3)在制分作声音文件受的过程中,退如何把几个丧已经制作好抱的声音片段贫合并程一个薯声音片段?虹(4)在C枯akewa垃lkPr巩oAud搅io9.0韵中,如何调纠出虚拟钢琴者?氏项目壶实践五卧P跪hotos据hop仿图像编辑、背处理横一、实验目军标颜1.能够根薪据不同需要闲生成不同格贺式的图像文逃件。植2.掌握图烫层、通道的枯概念,能够毫应用图层、网通道并使用胸Photo题shop进规行基本的图音形图像绘制跃。抬3.能够应厕用Phot倾oshop但的滤镜制作虏出特殊效果拨的图像。度二、实验内胡容变在规定时间影内,在教师纽的指导下,塑学习使用P削hotos矮hop进行企数字图像的运多种处理。有三、实践环析境仍1.多媒体服计算机具2.Ado芹bePh琴otosh蛮op软件.栋四、实验步版骤注混1.运行P阿hotos梅hop程序合。剑2.认识图丸像的属性。沙(1)睛选取劈一张合适的远BMP格式福图片扬,用Pho耕tosho瞎p打开。使秘用文件菜单功下眠“傲另存为束”魔命令将该图下片分别存为舰GIF、J丽PG、TI由FF、PN幅G等不同格右式。保存为气JPEG格凤式时,在图健像选项中分隙别设置压缩线品质为1拔0、8、5繁、3后存储诵为不同名字群的文件。承(2)使用菌Photo确shop的臂“塔文件浏览器汪”群面板查看新卡生成图像文糊件的属性值斑:文件存储翼大小,图像膝尺寸(p鉴ixel屈和cm)殿、颜色数等番。众(3)将相荡关文件全部情打开,比较危它们的显示龟效果。腹3.制作缩“吓奥运五环钢”栏图像。坊(1)新建治一个背景色槐为白色的R擦GB文件。蕉撇(2)选择伐工具箱中的牙椭圆选框工歼具,结合选皱框选项面版免中的相关设坏置,以及参征考线等工具舟的使用,在攻画布中圈选款得到一个圆惧环选择区域跪。睬(3)新建全图层,使用息油漆桶工具迟将之填充为奉蓝色。帖(4)再重矛复步骤(3衫),新建图抖层分别填充见圆环为黄色饿、黑色、绿盛色、红色。滔(5)使用队移动工具把今各个图层中养的圆环按照捏奥林匹克五却环标志的形子式摆放注——掀第一行中的案蓝、黑、红头三环互不相落交,但第二化行中的黄、布绿环却要分管别和蓝、黑床环以及黑、衫红环相交。破(6)按住阶Ctrl键灶并点击图层务面版中图层渗1,将蓝色搏圆环载入选烦择区域;使苗用选择工具浴并按下Sh灯ift和A敬lt键,在仰蓝色和黄色辽圆环交集处森圈选,以选谷出两环交集旅的区域,回焰到黄色圆环恐所在的图层尿,按DEL夹键删除两个址圆环重叠的圣地方。灶(7)重复塞步骤(6)芽,将其他圆便环相交的地管方也做同样柱处理。揉(8)将五趣环所在的图欺层依次进行悠链接并恐“授合并链接图谎层侮”辞,将合并得察到的图层命课名为五环。体在图层面版销中的闲“拼五环窝”幻图层中点击膨鼠标右键,纤应用弹出菜写单中的夺“都效果浴”转命令,为五较环加上阴影郊效果。祸(9)合并差所有图层,堂保存文件。固图僚5-叔1奥运五赌环制作效果技图绿4.应用滤汤镜制作艺术输字。芝(1)新建说一个RGB氏模式的图像级,将背景填胞充为黑色。直(2)用文狗本工具输入士白色文字,浩将文字图层障栅格化,然雅后拼合图层谊。理(3)执行终图像(Im誉age)/术旋转画布(精Rotat蜘aCan疮vas)/怎逆时针旋转何90度(9越0某°桂CCW)命驻令将整个图遗像逆时针旋跃转90度,埋然后执行滤跪镜(Fil御ter)/晓风格化(S屿tyliz脸e)/风(秤Wind)藏命令做出风辈的效果。滩(4)执行继图像(Im膝age)/笑旋转画布(浅Rotat蛛aCan许vas)/纷顺时针(9勿0隐°董CW)旋转射90度将整许个图像顺时劫针旋转90僻度回复,然讲后执行滤镜纵(Filt搁er)/扭灾曲(Dis零tort)僚/波纹(R嫌ipple盈)命令制出寿图像抖动效荐果。狗(5)执行老图像(Im厅age)/怪模式(Mo常de)/灰聪度模式(G摔raysc仅ale),嫩然后执行图状像(Ima膏ge)/模除式(Mod鼠e)/索引低模式(In枯dexed旧Colo存r)宗浇命令。卵(6)执行逢图像(Im圈age)/颈模式(Mo毁de)/向粒颜色表(C碌olor功Table宣)命令,选峡择黑体。夜(7)最后下将图像调整蛾为RGB模盯式,制作完渴成。鼓图梅5-2伐火焰字制荡作效果图北五、实验结膜论及成果态项目实践报体告陶。捐提交制作的香“往奥运五环肺”钩、岩“夺火焰字笼”游图像作品。饱项目诱实践面六岩VC实现图访像压缩编码载一、实验目境标辅掌握挺BMP位图悔以及JPE愿G多文件结构鬼。沿能够使用V厘C编程工具谷利用JPE茂G压缩编码乱算法实现B吩MP格式转院换为JPE璃G格式的程向序。短二、实验内碰容意在规定时间足内,在教师扭的指导下,废使用VC实惕现将BMP甚格式转换为谨JPEG格闻式的程序。谁三、实践环事境1.计算机群2.Vis馒ualC凉++6.授0软件.灶四、实验步森骤搭晓安装Vis窑ualC溜++6.限0软件。页参考以下程滨序编程。钥-----艺-----润-----重-----棚-----司-----报-----公-----臣-----还-----短-----劫-----费---奥//JTY厚PES.H瓦#defi闪neBY绸TEun陶signe槽dcha汇r卸#defi奔neSB臭YTEs妥igned品char远#defi皮neSW食ORDs内igned壁shor诵tint台#defi鞠neWO配RDun养signe满dsho揭rtin候t罩#defi饮neDW同ORDu源nsign怠edlo圣ngin絮t叶#defi蔬neSD拥WORD耍signe坦dlon况gint污stati蝶cstr节uctA立PPOin蛛fotyp滋e{平WORD呈marke侮r;//=凉0xFFE廉0盈WORD熟lengt饺h;//评=16泰for袋usual炉JPEG挤,no舍thumb况nail坛BYTE砍JFIFs垄ignat扣ure[5获];//星="J霞FIFY蔑\0'贺BYTE铲versi度onhi;芦//1谁BYTE街versi使onlo;少//1搭BYTE倍xyuni咬ts;暖//0斩=no映units仪,nor炒mald蚕ensit童y谋WORD结xdens昨ity;善//1阀WORD戴ydens锋ity;创//1滋BYTE卸thumb拿nwidt筛h;//弊0盒BYTE肝thumb艰nheig艰ht;/割/0号}APPO歇info=辽{0XFF脱E0,16章,'J',风'F','桥I','F龙',0,1妻,1,0,假1,1,0呢,0};亮stati味cstr靠uctS覆OFOin奶fotyp顽e{福WORD轰marke映r;//浙=0X繁FFCO介WORD宴lengt绞h;//猫=17丧for仆atru上ecolo茧rYCb独CrJP捏G飞BYTE勉preci腥sion;祸//Sh话ould源be8:托8bi屿ts/sa归mple记WORD梳heigh挡t;辆WORD尚width挠;臭BYTE游nrofc帆ompon柄ents;的//Sho最uldb敬e3:政Ween拆code咽atru炸ecolo桨rJPG垦BYTE嚷IdY;底川//=耽1研BYTE戒HVY;谨柄//sa贞mplin册gfac维tors歉forY允(bit输0-3篇vert.钩,4-7午hor.批)裁BYTE间QTY;彻抛//Qu坚antiz员ation鹅Tabl沾enum陈berf外orY节=0在BYTE桂IdCb;惭//=扇2信BYTE纺HVCb;吊BYTE指QTCb;倍//1望BYTE赖IdCr;炕//=数3战BYTE斑HVCr;据BYTE男QTCr;盼//N杰ormal脊lyeq奔ualt绕oQTC冠b=1级}SOFO安info=纪{0XFF搜C0,17攀,8,0,驱0,3,1渗,0X11根,0,2,蚊0X11,岛1,3,0养X11,1搭};堵//De眼fault刺samp竞ling班facto杏rsar袖e1,1素for予every柿imag渡ecom唐ponen棚t:No胸down贤sampl纷ing劝stati衬cstr尿uctD慧QTinf翁otype照{日WORD漠marke牛r;//铃=0X牌FFDB害WORD狼lengt滨h;//愉=13桶2务BYTE扣QTYin污fo;//广=0:追bit0耀..3:绒numbe疑rof军QT=乓0(ta结blef说orY)作//劣bit丝4..颂7:pr仅ecisi旷onof镇QT,蛇0=8宋bit洲BYTE听Ytabl逼e[64]腰;田BYTE女QTCbi捐nfo;日//=朗1(qu抖antiz维ation喝tabl剪efor梁Cb.C王r}表BYTE悼Cbtab饶le[64关];赴}DQT狸info;叠//Yt裁able涌from放DQTin钩fosh椒ould坛beeq海ualt雁oas漏caled择and拢zizag第reor寨dered杠vers沃ion炸//of予the跪table菌whic敏hcan击bef相ound僻in"t吹ables辆,h":我std_程lumin碧ance_浴qt匙//Cb奥table纱,si怒milar恩=st傍d_chr狱omina喉nce_q遣t富//We墓'11系init驳them咐inth名epro袄gram罩using及set_议DQTin么fofu喉nctio话n哈stati希cstr见uctD粗HTinf的otype很{脱WORD玉marke座r;//晓=0X涝FFC4为WORD获lengt篮h;//糕0X茄01A扫2苗BYTE突HTYDC疫info;热//b醉it0.贞.3:著numbe茫rof备KT(0驰..3)湾,for党V=0折馋//bit没4rl蚕ypeo旧fHT,页0=词DCta午ble,谈1=A棚Ctab蚕le绢//bit戴5..7灶:not率used棋,mus汇tbe会0玩BYTE韵YDC_n匀rcode蜘s[16]奶;//a浆tind云exi绢=nr斥ofco妙desw殊ithl栽ength源i俩BYTE妙YDC_v心alues压[12];殿遍BYTE堆HTYAC社info;胡//=嫩0x10课BYTE援YAC_n貌rcode钢s[16]追;礼BYTE显YAC_v支alues聪[162]槽;//we绢'llu饮seth乓esta沫ndard甜Huff特mant立ables不BYTE坛HTCbD州Cinfo单;//拳=1凶BYTE贝CbDC_需nrcod蹄es[16展];金BYTE炮CbDC_枣value时s[12]趴;福BYTE伪HTCbA集Cinfo仪;//领=0X1贡1粉BYTE扶CbAC_鬼nrcod洞es[16国];必BYTE决CbAC_苍value毛s[162族];无}DHTi疗nfo;畏stati脑cstr修uctS痰OSinf短otype湾{订WORD狼marke肆r;//瞒=0X傲FFDA爱WORD玉lengt尝h;//存=12堆BYTE雾nrofc怀ompon观ents;纲//S进hould蒜be3把:tru威ecolo廉rJPG瘦BYTE舍IdY;干//I袋BYTE钢HTY;停//O/逃/bit抛s0.阳.漫3:AC摆tabl萄e(0.精.3)盒//bi方ts4.违.7:士DCta笔ble(用0..3)望BYTE物IdCb;界//2越BYTE当HTCb;永//0X桂11可BYTE吹IdCr;影//3云BYTE疮HTCr;留//0X银11障BYTE贺Ss,Se吼,Bf;歉//no矛tint葬erest延ing,飞they锤shoul甩dbe脏0,63,答0脾}SOSi景nfo={你0XFFD武A,12狗,3,1珠,0,2屿,0X1包1,3,巡0X11时,0,0过X淋3F河,0};厚typed戏efst暖ruct剑{BYT场EB,掘G,R;满}co舞lorRG悲B;酱typed军efst动ruct疤{BYTE面leng慎th;厅WORD骨value细;}bit鸣strin撑g;求#defi劫neY(引R,G,B诊)物俗((BYT狼E)((Y霉Rtab[咳(R)]+积YGtab赖[(G)]千+YBta馋b[(B)元])>>1族6)-12欢8)键#defi屯neCb倾(R,G,利B)缠叨((BYT得E)((C读bRtab寒[(R)]翠+CbGt眼ab[(G掉)]+Cb淘Btab[稍(B)])始>>16)蜂)双#defi壳neCr句(R,G,炊B)道男((BYT鱼E)((C酱rRtab伯[(R)]捧+CrGt厉ab[(G滚)]+Cr为Btab[倍(B)])搜>>16)期)羊#defi最newr顺iteby码te(b)粒fput倍c((b)裹,fp_j去peg_s悔tream膝)范#defi杂newr玻itewo送rd(w)套writ借ebyte晃((w)/杯256)芬;writ晨ebyte董((w)%汪256)伤;柴-----凳-----扎-----侮-----栽-----珍-----出-----查-----究-----摄-----屋-----惜-----销---日//低JGLOB务ALS.屋H舰stati桶cBYT盾Ebyt惠enew=苏0;//截The华byte守that响will京bewr摧itten悠int何heJP巩Gfil姑e绩stati密cSBY惑TEby套tepos淡=7;/推/bit仁posit乌ioni躲nthe可byte问wew你rite拌(byte敞new)垒//sho味uldb皇e<=7棚and>脑=0安stati榜cWOR沟Dmas肚k[l6]回={l育,2,喉4,8,未16,递32,6锡4,128袄,256臣,512案,1024功,204果8,40新%,81称92,16摘384,玩32768处};钻//Th担eHuf薪fman捡table由swe'依llus吓e:练stati猪cbit芒strin洁gYDC姓_HT[l象2];牧stati圈cbit罪strin纷gCbD党C_HT[撕l2];喉stati重cbit弊strin却gYAC下_HT[2痛56];鸣stati氧cbit尚strin缴gCbA首CJtT[乐256];苏stati假cBYT怖E*ca向tegor株y_all顺oc;磁stati江cBYT付E*ca磁tegor垒y;//肠Here丘we'll红keep动the抛categ则oryo视fthe晒numb求ersi枕nran深ge:-捡32767竞..32枪767侧stati徒cbit辈strin照g*bi搁tcode速_allo药c;申stati紫cbit古strin宪g*bi叶tcode跪;//浇their彻bitc吓oded脂repre伞senta储tion复//Pre壶calcu喘lated枕tabl近esfo落raf泊aster跪YCbC涛r-RS卡Btra者nsfor翼matio诸n乞//We坡use索aSDW霉ORDt小able殖becau始sewe宝*11s德cale执value棍sby越2"16耗andw竞orkw余ithi香ntege雕rs蠢stati托cSDT狱ORDY百Rtab[貌256],帝YGtab千[256]亚,YBta卸b[256象];型stati氧cSDW气ORDC沃bRtab递[256]乌,CbG物tab[2虽56],记CbBta谢b[256采];御stati蜻cSDW阅ORDC沃rRtab解[256]捡,CrG盛tab[2蝶56],千CrBta忌b[256膨];巷stati纽cflo牺atfd秀tbl_Y茫[64];以stati旗cflo摆atfd库tbl_C郑b[64]超;//t赵hesa再mewi有thth艳efdt柄bl_Cr钞[64]动color污RGB*惧RGB_b赶uffer敏;//i垦mage被tobe国enco旋ded雾WORD摸Ximag狐e,Yi绝mage;北//im贵aged把imens步ions贤divis艇ible欠by8乱stati沈cSBY垦TEYO湖U[64]效;//屡This继isth贿eDat派aUni济tof劲Yaft胃erYC冒bCr->尊RGBt仿ransf晌ormat订ion共stati蓄cSBY接TECb庸DU[64免];触stati坛cSBY浆TECr玻DU[64若];委stati怨cSWO酒RDDU址_DCT[住64];坚//Cu平rrent滋DU(讽after达DCT与andq巧uanti工zatio傻n)wh愉ichw菌e'll艘zigza群g导stati彩cSWO肚RDDU貌[64];亿//zi行gzag润reord完ered循DUwh宇ichw能illb油eHuf银fman镜coded裤FILE盐*fp_j卷peg_s株tream位;冒-----拳-----刷-----重-----阳-----话-----乐-----泼-----就-----损-----裙-----雅-----趋---悔//JT巧ABLES集.H卡stati心cBYT渡Ezig材zag[6诵4]=督{0,欺1,5,芦6,14峡,15,2修7,28,浸2,4,稀7,13唐,16,2殃6,29,碑42,在3,8,莫12,17渔,25,短30,旁41,43蒙,券9,11,斥18,24身,31,4莫0,44,划53,宽10,1茫9,23故,32,罗39,添45,5伤2,54瓜,均20.2颠2,33最,38,危46,鸟51,5替5,60洲,董21.3脂4,37袄,47,惊50,哀56,5山9,61垒,贴35,3厉6,48袜,49,土57,绝58,6惰2,63肺};待/*Th出esea弄reth那esam河pleq久uanti负zatio径ntab确lesg鸣iven衣inJP拥EGsp距ec躬厚secti悠onK.阔1.T射hesp地ecsa井ysth送atth滋eval嫂uesg职iven勇produ凶ce"g头ood"锄quali怕ty,a臭nd营斥when可divid南edby战2,"堆very膝good"福qual昂ity.*类/陪stati释cBYT压Estd机_lumi释nance慕_qt[6钟4]=琴{面16,1神1,10羡,16,丢24,盟40,5序1,61丧,婆12,1屡2,14投,19,足26,卡58,6鹿0,55郑,丛14,1留3,16止,24,湿40,茄57,6誓9,56渗,扶14,17洗,22,绳英29,51章,87,骂罗80,62效,仇18,22物,37,聪唐56,68样,109,聋103,7蛛7,恳24,35缺,55,6蛇4,81,温104,1墨13,巡妨92,着49,64子,78,8悔7,103腾,121,靠120,1幼01,莫72,92宅,95,9处8,112补,100,缸103,9工9};端stati讲cBYT疑Estd棍_chro贷minan衬ce_qt饰[64]遭聋={音17.园潜18,峡蜘24,奸歇47,芒贿99,啦爬99,数恭99,家依99,研18.确摔21,圾调26,乖草66,钢炎99,纵形99,暑渔99,陶属99,彻24,漠详26,岩庙56,切脊99,维驴99,层断99,鹿衫99,葛勿99,崖47,前朽66,危薄99,舰懒99,灰升99,腊捉99,龄陵99,馅甩99,税99,骑必99,撇浇99,抖俊99,村扑99,曲帆99,治述99,菊框99,博99,民奏99,站久99,疾坝99,币带99,漆条99,州逗99,避撤99,什99,烧众99,保历99,动惭99,乞专99,常巷99,算束99,关芒99,划99,搅执99,递压99,搁财99,翠桐99,辫难99,创侧99,疑境99};慨//St器andar锹dHuf议fman纸table妄s(cf通.JPE转Gsta用ndard痕sect考ionK脑.3)待*/氧stati杨cBYT滔Estd六_dc_l担umina年nce_n澡rcode盯s[l7]穿={朝0f经0,1皂,5,希1,1,旦1,1彩,1,多1,0,饲0,0序,0,持0,0,旷0};打缘stati茅cBYT乞Estd路_dc_l渠umina门nce_v惯alues双[12]玉=(0惜,1,医2,3,菊4,5姥,6,春7,8,的9,1剂0,11笑};汗stati醋cBYT晶Estd皆_dc_c储hromi醒nance凯_nrco跌des[l越7]=掉{0,0观,3,纤1,1,若1,1钩,1,咱1,1,慨1,1屡,0,书0,0,絮0,0荐};s芦tatic粒BYTE专std_计dc_ch镰romin历ance_营value讨s[l2]孩={0震,1,控2,3,制4,5丽,6,办7,8,仓9,1撞0,11私};诚stati万cBYT免Estd任_ac_l妹umina饼nce_n角rcode脱s[l7]小={0节,0,您2,1,穿3,3,样2,4,3士,5,咱5,4,勒4,0车,0,1往,Ox7屋d};剪stati宿cBYT江Estd下_ac_l自umina互nce_v猜alues绒[l62]耍={使0x01,堡0x02术,0x0球3,0x姻00,0术x04,伸Oxll,美0x05违,0x1售2,科0x21,暴0x31,异0x41,而0x06,特0x13,撕0x51,粮0x61,愤罗0x07,拿0x22,钞0x71,往0x14,研0x32,诱0x81,等0x91,熔Oxal,闷0x08,释0x23,谦0x42,串Oxbl,补Oxcl,培0x15,碍0x52,垄Oxdl,循OxfO,矿0x24,国0x33,渡0x62,做0x72,涨0x82,淡0x09,扁OxOa,独0x16,潜0x17,煌0x18,式0x19,秩Oxla,载0x25,莫0x26,剖0x27,漠0x28,鹊0x29,魄Ox桐2a错,0x34书,0x35窄,0x36叠,0x37铸,0x38临,菊氏0x39,译Ox革3a栗,0x43鸟,0x44老,0x45乌,0x46逗,0x47扔,0x48接,樱鸽0x49,挥Ox雀4a广,0x53榨,0x54跌,0x55惩,0x56烘,0x57临,0x58获,挪联0x59,裂Ox右5a感,0x63响,0x64登,0x65慕,0x66仁,0x67敬,0x68哭,座慈0x69,疮Ox纳6a叉,0x73怎,0x74庭,0x75翼,0x76都,0x77拒,0x78狗,狸篮0x79,伟Ox蔑7a袍,0x83号,0x84时,0x85门,0x86挂,0x87扭,0x88王,模惕0x89,把Ox桐8a讨,0x92吹,0x93形,0x94及,0x95毯,0x96耐,0x97勿,火言0x98,轨0x99,掉Ox音9a盲,Oxa2锈,Oxa3围,Oxa4春,业鞋Oxa5,削Oxa6,瞧Oxa7,步Oxa8,湾Oxa9,胃Oxaa,傲Oxb2,蛋Oxb3,控Oxb4,简Oxbo,征Oxb6,讯Oxb7,仿Oxb8,杰Oxb9,果Oxba,循Oxc2,暖Oxc3,河Oxc4,椒Oxc5,屋Oxc6,膜Oxcv,叛Oxc8,端Oxc9,欢Oxca,堤间Oxd2,盆Oxd3,妄Oxd4,成Oxdo,显Oxd6,京Oxd7,谷Oxd8,迎耀Oxd9,壶Oxda,咏Oxel,卵Oxe2,碍Oxe3,宝Oxe4,馅Oxe5,尽Oxe6,乌Oxe7,董Oxe8,仿Oxe9,娘Oxea,达Oxfl,角Orf2,着Oxf3,轿Oxf4,递Oxf5,奴Oxf6,傍Oxf7,蛛Oxf8,励Oxf9,腹Oxfa般};贤stati除cBYT纺E臣茂std_a露c_chr宰omina赤nce_n顷rcode蚂s[17轨]={胖0,0,县2,1,2兵,4,圣4,3,宫4,7进,5,随4,4,鸣0,1括,2,旗0x77}聚;依stati烧cBYT蓬E附健std_a理c_chr滤omina傅nce_v啄alues页[l62]松={际0x00,皱捧0x01,宏臭0x02,乓笔0x03,浩裙Oxll,王幅0x04,杠观0x05,结传0x21,秋0x31,楚纯0x06,察浩0x12,纯紧0x41,骄掏0x51,恭竿0x07,链角0x61,卡欣0x71,犁0x13,异熔0x22,悔沃0x32,纲阵0x81,细之0x08,硬抵0x14,绳蓬0x42,乳醉0x91,屿Oxal,蜻啊Oxbl,蠢削Oxcl,遇朱0x09,为比0x23,袄改0x33,柴闯0x52,不裙OxfO,进0x15,竿卡0x62,阅岭0x72,饼驳Oxdl,歌细OxOa,还级0x16,扣雅0x24,派目0x34,肆Oxel,膝啦0x25,其裳Oxfl,撤绘0x17,崇蛋0x18,途耍0x19,辞败Oxla,梁需0x26,瞎0x27,溪漂0x28,电鄙0x29,讯泼Ox畏2a翼,筝碌0x35,寇克0x36,乏胖0x37,泳雁0x38,柏0x39,醋悉Ox碧3a间,旨劳0x43,禽顶0x44,阀相0x45,您桨0x46,盘跪0x47,慧垒0x48,膛0x49,分躬Ox胸4a愁,亭方0x53,油版0x54,豪勾0x55,枯彻0x56,历夸0x57,震彩0x58,怪0x59,传接Ox素5a距,竞病0x63,膊缝0x64,差乌0x65,黄丢0x66,朴丘0x67,续插0x68,拔0x69,耳钱Ox设6a玻,小炕0x73,纺佣0x74,雅腔0x75,卸灾0x76,管堪0x77,戴昆0x78,览0x79,呼知Ox窝7a袜,忧怜0x82,类畅0x83,律央0x84,伴捏0x85,取榆0x86,僻轨0x87,周0x88,奖屯0x89,盗尝Ox度8a兼,质解0x92,枪佛0x93,狂界0x94,气辛0x95,疾条0x96,颜0x97,拳见0x98,省顿0x99,皇泻Ox箭9a精,隶域Oxa2,停棵Oxa3,叼穷Oxa4,衔姑Oxa5,爸Oxa6,暂签Oxa7,霞珍Oxa8,签球Oxa9,覆晒Oxaa,菜宴Oxb2,疗谦Oxb3,遵磁Oxb4,诊Oxb5,滋摆Oxb6,纳室Oxb7,笋晓Oxb8,歌拜Oxb9,贫扒Oxba,畜怕Oxc2,系搂Oxc3,园Oxc4,湾汉Oxc5,斥营Oxc6,巨塔Oxc7,司剧OxcS,玉傅Oxc9,律睛Oxca,造嫌Oxd2,动Oxd3,宰呆Oxd4,丹艰Oxd5,恶耻Oxd6,备心Oxd7,押脱OxdS,不杂Oxd9,丹春Oxda,侄Oxe2,秧兼Oxe3,似市Oxe4,押嘴Oxe5,舍发Oxe6,然雕Oxe7,命乔OxeS,渐斧Oxe9,肢Oxea,蜡良Oxf2,抢骗Oxf3,衡议Oxf4,就死Oxf5,矩衣Oxf6,味号Oxf7,贫牢Oxf8,料Oxf9,挖妹Oxfa广};注-----先-----途-----距-----收-----谈-----拍-----话-----塘-----衔-----熔-----聪-----烦---级//EN敬C.C园//A脂BMPt哈rueco微lort遵oJPE介Genc忧oder柏//Co循pyrig钻ht19朴99Cr炎isti乏Cutur榨icu悠#incl陪ude<努stdio哥.h>具#incl承ude<艘stdli于b.h>墓#incl歉ude<报strin窄g.h>咱#incl动ude"漏jtype循s.h"留#incl丘ude"项jglob城als.h腔"德#incl恒ude"反jtabl刺es.h"担void遥write比_APPO炕info(也)飘//Not闹hing特toov坏erwri俗tefo稀rAPP象Oinfo{爸write端word(落APPOi筛nfo.m泡arker奏);喊write附word(锐APPOi息nfo.l醋ength添);掘write莫byte(泰'J');猾write减byte(杀'F');夺write你byte(吨'I');绘write壁byte(密'F');码write砍byte(饱0);悠write取byte(铅APPOi固nfo.v地ersio贷nhi);副write纱byte(舱APPOi屯nfo.v胁ersio炮nlo);处write远byte(卧APPOi格nfo.x改yunit嘱s);趋write旁word(什APPOi率nfo.x拉densi杨ty);孤write域word(傲APPOi轨nfo.y岭densi胀ty);佛write痛byte(围APPOi升nfo.t省humbn肿width帐);穿write浸byte(军APPOi冈nfo.t且humbn赠heigh奸t);}费void黎write泛_SOFO芒info(届)骂//We栋shou罢ldov邪erwri优tewi砖dtha握ndhe怖ight{距write甜word(莫SOFOi熟nfo.m抖arker夏);计write磁word(花SOFOi嗽nfo.l使ength贼);忧write迁byte(巩SOFOi勺nfo.p卡recis弹ion);暂write浙word(谷SOFOi彻nfo.h庆eight卡);wri伸tewor奔d(SOF包Oinfo乳.widt诱h);篮write陶byte(垄SOFOi确nfo.n绍rofco苗mpone芬nts);寸write丧byte(斑SOFOi松nfo.I赏dY);w谨riteb垂yte(S滥OFOin皇fo.HV创Y);wr风iteby咬te(SO者FOinf促o.QTY个);罚write韵byte(械SOFOi恶nfo.I题dCb);项write挥byte(卷SOFOi愈nfo.H箭VCb);足write金byte(右SOFOi心nfo.Q缎TCb);盼write删byte(蛇SOFOi忠nfo.I裙dCr);膊write茎byte(末SOFOi遵nfo.H浸VCr);召write切byte(单SOFOi沸nfo.Q希TCr);}块void草write舅_DQTi馒nfo(){迫BYTE响i;句write扛word(之DQTin限fo.ma膝rker)笼;与write锄word(栗DQTin甩fo.le爪ngth)暖;机write产byte(恩DQTin炕fo.QT茧Yinfo着);for镰(i=0;锡i<64;轰i++)w却riteb馆yte(D辣QTinf爸o.Yta脊ble[i锤]);否write乡byte(令DQTin结fo.QT警Cbinf飞o);fo默r(i=0垫;i<64眉;i++)必writ治ebyte览(DQTi再nfo.C功btabl胞e[i])默;}元void饶set_q镜uant_贪table晕(BYTE路*bas报ic_ta迁ble,耀BYTE仗scale高_fact装or,BY旺TE*n水ewtab卧le)搅//Set套quan松tizat柏iont太able染andz煤igzag糊reor演deri波t{熔BYTE叫i;银long蝴temp;颠for(i惑=0;i<厨64;i+材+){稍temp=逐((lon福g)bas誓ic_ta狱ble[i简]*sca香le_fa旺ctor+员50L知)/尼100L皇;阵/*lim原itth为eval钱uest醋othe敲vali捡dran盒ge*/屋if(te六mp<=续0L爽)temp锦=抚1L峡;专if(te丸mp>冒255L格)tem华p=浪255L炒;/*li星mitt波obas筋eline仗rang翻eif赴reque手sted网*/万newta狭ble[z勿igzag棋[i]]=渠(WORD院)temp孕;}}尽void庆set_D写QTinf上o(){驴BYTE爆scale俊facto截r=50;省//sc显alefa麻ctor翠contr迟olst钢hevi谁sual芳quali快tyof钢the翅image寸//th凝esma暴ller其is,t印hebe威tter灯image母we'l点lget拾,and诉the炼small饥er新//co筋mpres枝sion互we'll吊achi仁eve穗DQTin各fo.ma米rker=蜘0xFFB却;床DQTin洪fo.le判ngth=娱132;坚DQTin资fo.QT阅Yinfo屋=0;趴DQTin泻fo.QT竟Cbinf惠o=1;核set_q滩uant_词table胜(std_铲lumin漠ance_迅qt,sc厅alefa炉ctor,业DQTin蛇fo.Yt容able)累;障set_q核uant_米table揭(std_纱chrom具inanc蔑e_qt,胁scale喜facto铃r,DQT句info.夸Cbtab政le);}梨void掘write草_DHTi摧nfo(){余BYTE设i;牌write写word(弱DHTin拥fo.ma恳rker)脏;行write迎word(饭DHTin糠fo.le慈ngth)循;语write胖byte(必DHTin萄fo.HT翁YDCin瞧fo);发for(i修=0;i<牲16;i+差+)wr触iteby闸te(DH考Tinfo秋.YDC_转nrcod已es[i]逢);悲for(i糠=0;i<厘=11;i丝++)w慕riteb犹yte(D牙HTinf青o.YDC魔_valu抚es[i]淹);唤write少byte(旦DHTin稳fo.HT牲YACin聪fo);退for(i达=0;i<酷16;i+庄+)wr电iteby光te(DH谱Tinfo帽.YAC_址nrcod踪es[i]阶);瞎for(i魂=0;i<言=161;末i++)呀write植byte(拥DHTin拦fo.YA框C_val落ues[i蜻]);富write姻byte(从DHTin糟fo.HT葬CbDCi国nfo);喂for(i纹=0;i<闷16;i+洗+)wr拦iteby沉te(DH钓Tinfo币.CbDC捞_nrco搞des[i扑]);途for(i残=0;i<泪=11;i掉++)w异riteb购yte(D夺HTinf奶o.CbD死C_val榴ues[i扒]);时write寇byte(弹DHTin弓fo.HT理CbACi蛇nfo);架for(i食=0;i<捞16;i+书+)wr司iteby旱te(DH栗Tinfo数.CbAC策_nrco珍des[i晕]);投for(i裙=0;i<甜=161;咐i++)躁write挑byte(省DHTin气fo.Cb悲AC_va秀lues[怎i]);}吊void帖set_D掌HTinf泼o(){城BYTE侧i;浑DHTin缺fo.ma不rker=像0xFFC吊4;虾DHTin福fo.le保ngth=隔0x豪01A由2;盏DHTin欠fo.HT不YDCin通fo=0;马for(i艺=0;i<金16;i+放+)DH毛Tinfo郊.YDC_飞nrcod更es[i]否=std_索dc_lu陪minan回ce_nr论codes效[i+1]蓝;恼for(i颠=0;i<论=11;i幕++)D旨HTinf霉o.YDC撑_valu蚂es[i]捧=std_慕dc_lu谅minan碎ce_va赴lues[洗i];消DHTin赏fo.HT接YACin授fo=0x庭10;虾for(i番=0;i<费16;i+掀+)DH保Tinfo技.YAC_亿nrcod浩es[i]静=std_搏ac_lu袭minan耀ce_nr伞codes丢[i+1]险;检for(役i=0;i夜<=161答;i++)邀DHTi否nfo.Y菊AC_va往lues[催i]=st匠d_ac_明lumin锐ance_水value侍s[i];够DHTin圆fo.HT虎CbDCi铲nfo=1侮;秋for(i秆=0;i<纯16;i+缸+)DH标Tinfo庸.CbDC省_nrco厅des[i上]=std傲_dc_c舟hromi指nance罗_nrco酬des[i是+1];勉for(i踪=0;i<旁=11;i柏++)D愁HTinf叉o.CbD豪C_val歪ues[i各]=std替_dc_c悄hromi抬nance跨_valu咱es[i]会;非DHTin番fo.HT归CbACi团nfo=0促x11;逆for(i煮=0;i<五16;i+逃+)DH钢Tinfo森.CbAC踩_nrco叠des[i蒙]=std权_ac_c室hromi站nance础_nrco川des[i积+1];丽for(i稿=0;i<世=161;岩i++)易DHTin弃fo.Cb陕AC_va线lues[炕i]=st译d_ac_躺chrom撑inanc无e_val愤ues[i也];}马void骨write泥_SOSi纱nfo()塞//Not炼hing厨toov杨erwri腥tefo优rSOS错info织{writ征eword洪(SOSi帆nfo.m律arker役);西write巩word(宾SOSin适fo.le驾ngth)鉴;羊write咐byte(似SOSin挨fo.nr远ofcom勾ponen鹊ts);刮write腥byte(上SOSin乡fo.Id业Y);wr显iteby您te(SO撑Sinfo辈.HTY)越;慎write新byte(序SOSin源fo.Id比Cb);w孔riteb衫yte(S束OSinf哭o.HTC共b);展write毅byte(颂SOSin库fo.Id汗Cr);w逝riteb战yte(S离OSinf怎o.HTC舞r);办write辩byte(降SOSin典fo.Ss荣);wri难tebyt棵e(SOS坦info.加Se);w绳riteb啊yte(S盟OSinf悉o.Bf)获;}纲void乡write跑comme银nt(BY催TE*c巴ommen图t){柄WORD肠i,len诊gth;跌write沟word(吓0xFFF虹E);//刚TheC系OMma估rker浪lengt狸h=str够len((郑const确char均*)co气mment狗);唉write孕word(铜lengt趣h+2);珠for(i译=0;i<哀lengt兰h;i++莫)wri狮tebyt侮e(com扁ment[城i]);}衬void胡write间bits(岸bitst播ring善bs)免//A续porta股blev颜ersio流n;it肥shou疼ldbe窜done稼ina贱ssemb态ler{秃WORD取value艘;白SBYTE绝posv杏al;//糠bitp翁ositi侨onin盐the款bitst婚ring摧were普ad,s菊hould那be</劲=15a摸nd>=心0趟value须=bs.v蒜alue;擦posva伞l=bs.汪lengt纷h-1;棕while攻(posv趴al>=0鉴)效{if(v镜alue胞&mas化k[pos江val])死byte纯new|=惭mask[民bytep挨os];剑posva徐l--;b唇ytepo全s--;习if(by刃tepos搭<0){i慎f(byt识enew=炎=0xFF隶){wr净iteby久te(0x耍FF);w兔riteb您yte(0样);}袋else{春write碌byte(舅byten慰ew);}烤bytep茄os=7;反byten趴ew=0;}}}殊void荐compu聋te_Hu铸ffman拆_tabl蔽e(BYT黄E*nr茧codes样,BYTE鸽*std撤_tabl赴e,bit励strin你g*HT已){残BYTE泄k,j;答BYTE各pos_i罗n_tab焦le;刑WORD宪codev强alue;甚codev红alue=必0;pos倦_in_t丙able=会0;滴for(k旬=1;k<莲=16;k皮++){卵for(j玻=1;j<肠=nrco址des[k检];j++肆){HT[找std_t谦able[集pos_i副n_tab荐le]].捞value芬=code朽value睁;偷HT[st伞d_tab湖le[po优s_in_掩table悄]].le别ngth=匹k;跪pos_i卵n_tab丝le++;困codev虾alue+半+;}清codev蛛alue*旱=2;}}煤void亦init_耍Huffm渔an_ta绪bles(狸){门compu煌te_Hu标ffman阵_tabl负e(std温_dc_l米umina喝nce_n震rcode刷s,std萌_dc_l逢umina劈nce_v昌alues扇,YDC_牧HT);肆compu锐te_Hu菌ffman勉_tabl框e(std醉_dc_c乌hromi薄nance致_nrco丧des,s轿td_dc捐_chro启minan记ce_va泊lues,洗CbDC_它HT);谦compu奇te_Hu爪ffman平_tabl畜e(std酷_ac_l东umina拐nce_n梢rcode友s,std恒_ac_l楚umina幅nce_v子alues完,YAC_具HT);木compu香te_Hu宋ffman佳_tabl竖e(std疲_ac_c家hromi侦nance卫_nrco本des,s晴td_ac恩_chro去minan尺ce_va坏lues,流CbAC_倚HT);}往void爆exitm助essag坛e(cha锤r*er血ror_m裕essag者e){德print议f("%s啦\n",e鼻rror_音messa梢ge);e难xit(E修XIT_F餐AILUR怪E);}棕void撒set_n便umber惊s_cat椒egory惊_and_蚂bitco摆de(){跟SDWOR钥Dnr;孟SDWOR棍Dnrl鞋ower,声nrupp鱼er;戏BYTE宿cat,v倘alue;变categ识ory_a脂lloc=海(BYTE验*)mal贡loc(6泼5535*沾sizeo篇f(BYT次E));调if(ca白tegor津y_all卵oc=NU门LL)ex帮itmes河sage(岸"Not膏enoug减hmem摸ory."顶);领categ超ory=c东atego呜ry_al银loc+3扎2767;安//all辫owne幼gativ谎esub孟scrip精ts高bitco砌de_al眉loc=(妇bitst考ring臣*)mal右loc(6伴5535*挺sizeo勇f(bit虫strin类g));澡if(bi不tcode狡_allo司c==NU坝LL)e奋xitme泼ssage斩("Not穿enou想ghme相mory.吓");桂bitco罢de=bi厚tcode勒_allo犯c+327烫67;小nrlow央er=1;呀nrupp劣er=2;悼for(c翻at=1;缎cat<=贡15;ca泄t++){战//Pos额itive油numb妈ers骂for(n坡r=nrl洪ower;融nr<nr式upper稼;nr++贪)险{cate猛gory[慨nr]=c贩at;借bitco哀de[nr袍].len受gth=c似at;bi棕tcode捡[nr].式value弓=(WOR笑D)nr;}轨//Neg陡ative抓numb沿ers毕for(n锈r=-(n当ruppe宾r-1);味nr<=-营nrlow益er;nr匀++)恒{cate丰gory[竞nr]=c币at;扮bitco巩de[nr灰].len伍gth=c地at;麦bitco删de[nr册].val兔ue=(W鱼ORD)(洒nrupp弯er-1+陈nr);}断nrlow焦er<<=株1;赠nrupp肆er<<=茫1;}}个void厦preca堵lcula虽te_YC温bCr_t匪ables淹(){混WORD根R,G,B庄;雀for(R汉=0;R<盲=255;饲R++)剃{YRta把b[R]=片(SDWO男RD)(6娇5536*畏0.299融+0.5)星*R;正CbRta拦b[R]=旧(SDWO吃RD)(6该5536*屋-0.16家874+0渗.5)*R马;完CrRta劈b[R]=言(SDWO被RD)(3讲2768)据*R;}靠for(G袋=0;G<倍=255;衬G++)慕{YGta惑b[G]=魄(SDWO芒RD)(6进5536*柜0.587标+0.5)绣*G;另CbGta说b[G]=化(SDWO龄RD)(6荡5536*队-0.33抚126+0逐.5)*G窃;棋CrGta厦b[G]=继(SDWO伶RD)(6务5536*禁-0.41知869+0再.5)*G街;}渣for(B极=0;B<搅=255;衡B++)安{YBta尺b[B]=平(SDWO误RD)(6悼5536*状0.114库+0.5)短*B;毫CbBta活b[B]=忙(SDWO雀RD)(3貌2768)时*B;拉CrBta勤b[B]=约(SDWO隶RD)(6求5536*晶-0.08族131+0翁.5)*B摇;}}住//Us士inga夺bit今modif赏iedf掉ormo项fthe税FDCT席rout亚inef训romI被JG'太sCs垄ource潮:摆//Fo爪rward广

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论