版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
——算數(shù)編碼壓縮與解壓縮程序 2.1編碼器的實(shí)現(xiàn)試驗(yàn)背景及目的霍夫曼方法比香農(nóng)-費(fèi)諾方法更有效,但這兩種方法都很少能產(chǎn)生最佳變長的平均長度等于熵)。算數(shù)編碼克服了這個(gè)問題,它是把一個(gè)碼字(通常較長)試驗(yàn)內(nèi)容步驟m到2m個(gè)二進(jìn)制字的范圍。ii|(u-l+1)*CumCount(x-1)||(u-l+1)*CumCount(x)|.2.2解碼器的實(shí)現(xiàn)器實(shí)現(xiàn)就很好描述了。u|(u-l+1)*CumCount(x-1)||(u-l+1)*CumCount(x)|算法流程|(u-l+1)根Cum_Count(x)|{{}}{對l和u的(新)最高位求反}|(u-l+1)根Cum_Count(x)|{}{對l、u和t的(新)最高位求反}程序設(shè)計(jì)說明在程序壓縮包Arith中,算數(shù)編碼的實(shí)現(xiàn)程序文件為Arith.cpp,可在將data.txt文件中原來的數(shù)據(jù)覆蓋掉,再次運(yùn)行算數(shù)編碼的實(shí)現(xiàn)程序文件Arith.cpp即可得到測試結(jié)果,從而完成對程序壓縮性能的評價(jià)。價(jià)序壓縮性能評價(jià)做會(huì)顯得編碼結(jié)果比較亂),因此程序成功運(yùn)行后的編碼文件大小除綜上所述,本試驗(yàn)編寫的算數(shù)編碼壓縮與解壓縮程序不僅能完成各種符號(hào) 的壓縮比均大于1,因此本試驗(yàn)編寫的算數(shù)編碼壓縮與解壓縮程序具有較好的壓程序源代碼//定義相關(guān)變量并初始化//用來存儲(chǔ)從文件中讀入的字符串//文檔中字符的個(gè)數(shù)//字符總數(shù)intCKind=0;//文檔中字符的種類數(shù)intCount56]={0};//有效字符表中對應(yīng)字符出現(xiàn)次數(shù)intCumCount256]={0};//字符出現(xiàn)次數(shù)累加表intShowingTable};//有效字符表//主函數(shù){}//文件掃描函數(shù){FILE*fp1;{printf("數(shù)據(jù)加載失敗!\n");}for(i=0;i<FileLen;i++)//實(shí)現(xiàn)字符掃描{}//將有效字符移到新數(shù)組,同時(shí)編號(hào)forii<256;i++)//實(shí)現(xiàn)字符搬移{{}}{}{}//輸出統(tǒng)計(jì)結(jié)果printf("文件中共出現(xiàn)%d種字符,字符共計(jì)為%d個(gè)\n",CKind,TotalCount);//輸出字符統(tǒng)計(jì)表printf("字符該字符出現(xiàn)次數(shù)疊加次數(shù)\n");for(i=1;i<=CKind;i++)//實(shí)現(xiàn)字符搬移{printf("%d%d%d}for(i=0;i<FileLen;i++)//實(shí)現(xiàn)字符掃描{printf("%c",*(DataBuf+i));//輸出文件的各個(gè)字符}printf("\n");}intTurna[N]={0};//十進(jìn)制轉(zhuǎn)二進(jìn)制函數(shù){inta[N]={0};for(i=0;i<N;i++){}{}}//二進(jìn)制轉(zhuǎn)十進(jìn)制函數(shù){for(i=0;i<N;i++){}}intLowArray[N]={0};intHighArray[N]={0};//文件編碼函數(shù)//編碼輸出碼流{OldLow=0;//初始化下限stFILE*fp2;LL{printf("數(shù)據(jù)加載失敗!\n");}{ntjjCKindj{//按序?qū)⑤斎氲拿恳粋€(gè)字符與統(tǒng)計(jì)表中的字符進(jìn)行匹配{NewLow=OldLow+(OldHigh-OldLow+1)*CumCount[j-1]/{}得到新上限{}while(LowArray[0]==HighArray[0])//當(dāng)上下限最高位相同時(shí){{g}m{LowArray[m-1]=LowArray[m];}LowArray[N-1]=0;{hArraymHighArraym}}while(LowArray[0]==0&&LowArray[1]==1&&HighArray[0]==1&&HighArray[1]==0)//當(dāng)上下限的最高位和次高位分別為01和10時(shí),滿足{{LowArray[m-1]=LowArray[m];//下限數(shù)組低位補(bǔ)0HighArraymHighArraym1}LowArray[N-1]=0;LowArray[0]=(LowArray[0]+1)%2;//下限的最高位取反HighArrayHighArray0]+1)%2;//上限的最高位取反}}}}//將最終的下限編碼共12位添加到編碼碼流的最末位置{}for(i=0;i<N-1;i++){}}intIndex;//文件解碼函數(shù)//存儲(chǔ)從文件中讀入的壓縮碼//12位碼流元對應(yīng)的十進(jìn)制數(shù)//解碼判斷參量{FILE*fp3,*fpOut;FLAG{printf("數(shù)據(jù)加載失敗!\n");}foriiSubCodei化成程序中的二進(jìn)制碼流{}//寫出編碼得到的二進(jìn)制碼流printf("二進(jìn)制編碼結(jié)果為:\n");{}printf("\n");OldLow=0;//初始化下限for(i=0;i<N;i++){{}}printf("\n");printf("解碼結(jié)果為:\n");{for(i=0;i<N;i++){LowArray[i]=Turna[i];}1;//得到新上限for(i=0;i<N;i++){HighArray[i]=Turna[i];}while(LowArray[0]==HighArray[0])//當(dāng)上下限的最高位相同{{}for(i=0;i<N;i++){LowArray[i-1]=LowArray[i];}LowArray[N-1]=0;OldLow=NewLow;//更新上下限,進(jìn)行下一輪運(yùn)算}while(LowArray[0]==0&&LowArray[1]==1&&HighArray[0]==1&&{for(i=0;i<N;i++){LowArray[i-1]=LowArray[i];}LowArray[N-1]=0;LowArray[0]=(LowArray[0]+1)%2;//上下限及t的最高位取反OldLow=NewLow;//更新上下限,進(jìn)行下一輪運(yùn)算}ow{{}}FLAG++;}printf("\n");printf("\n");{printf("數(shù)據(jù)加載失敗!\n");}}測試數(shù)據(jù)文件本次試驗(yàn)共采用兩個(gè)文件完成對算數(shù)編碼程序的測試,一個(gè)為待壓縮文件data.txt,另一個(gè)為測試文件textdata.txt。兩個(gè)文件的具體內(nèi)容如下:Inaccordancewiththe“mainandcollateralchannels”theoryinTCM,theorgans.ItfeaturesintraditionalChinesemedicinethat“internaldiseasesaretobetreatedwithexternaltherapy”.Themaintherapyofacupunctureinvolvesusingstimulatethepatient’sacupointssoastostimulatethechannelsandrelievepain.Withmedicine,hasbeeninternationallyhailedasoneofthe“fournewnationaltreasures.”tatxte“artificialasitis,thegardenmustlookingeniousandnatural.”Whenyougoandriversfo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年礦業(yè)測量儀器合作協(xié)議書
- 2024年高強(qiáng)鋁合金材料項(xiàng)目合作計(jì)劃書
- 棉花采購招標(biāo)運(yùn)輸協(xié)議模板
- 皮革制品出口合同范本
- 林場開發(fā)土方運(yùn)輸合同樣本
- 2024版合同范本之政府采購合同印花稅
- 2024版房地產(chǎn)合同合同風(fēng)險(xiǎn)與合同監(jiān)控
- 2024版地區(qū)產(chǎn)品代理合同范本
- 通信基站碎石配送合同樣本
- 礦泉水運(yùn)輸服務(wù)協(xié)議
- 愛國主義專題知識(shí)競賽題庫(帶答案)
- 投標(biāo)報(bào)價(jià)得分計(jì)算表Excele
- 切爾諾貝利核電站事故工程倫理分析
- 2023-2024學(xué)年浙江省臺(tái)州椒江區(qū)八年級(上)期中數(shù)學(xué)試卷(含解析)
- 小學(xué)生古詩文大會(huì)備考基礎(chǔ)試題題庫及答案
- 第4課 兩漢統(tǒng)一多民族封建國家的鞏固【中職備課精研】《中國歷史》以圖證史教學(xué)課件(高教版2023?基礎(chǔ)模塊)
- 國家開放大學(xué)《數(shù)據(jù)結(jié)構(gòu)》課程實(shí)驗(yàn)報(bào)告(實(shí)驗(yàn)2-線性表)參考答案
- 標(biāo)桿電子商務(wù)專業(yè)群分析報(bào)告
- 電子信息工程專業(yè)工作總結(jié)標(biāo)準(zhǔn)范本
- 《為什么而讀書》的主題班會(huì)
- 智能制造中的數(shù)據(jù)安全與隱私保護(hù)研究
評論
0/150
提交評論