freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

自適應(yīng)哈弗曼編碼畢業(yè)論文(參考版)

2025-06-26 17:13本頁面
  

【正文】 Compression of text and binary files using adaptive Huffman coding techniques[J] Southeastcon 39。 二值圖像壓縮編碼算法的若干研究[D].山東:[15] Desoky, A. 。 數(shù)據(jù)壓縮算法在視頻監(jiān)控系統(tǒng)中的應(yīng)用研究[D].北京:[13]于海濤。艾海提。2009.[2] 李博軒, Visual C++ 網(wǎng)絡(luò)及Internet開發(fā)指南[M]. 北京:清華大學(xué)出版社,2000:83130[3] 張宏軍 黨留群等, Visual C++ 編程案例精選[M]. 北京:電子工業(yè)出版社,2005:23146[4] 邱仲潘 柯渝等, Visual C++ 從入門到精通[M]. 北京:電子工業(yè)出版社,2005:1059[5] 詹青龍, 網(wǎng)絡(luò)視頻技術(shù)及應(yīng)用[M]. 西安: 西安電子科技大學(xué)出版社,2004[6] 苗世洪 孫揚聲, 自適應(yīng)哈夫曼編碼的數(shù)據(jù)壓縮與解壓技術(shù)研究[J].應(yīng)用科技,1996[7]王素立, 電子文件完整性與一致性保護的Huffman 編碼方法[J].應(yīng)用技術(shù),2002[8] 黃榮輝 周明天 曾家智, 動態(tài)哈夫曼算法在電力線計算機網(wǎng)絡(luò)數(shù)據(jù)壓縮中的應(yīng)用[J]. 應(yīng)用科技,2000[9] 莊紅濤 王亮, 哈夫曼算法在圖像壓縮中的具體實現(xiàn)及改進[J].應(yīng)用技,2003[10]張吉玲。在此我也要感謝通信工程學(xué)院的各位老師四年來對我的指導(dǎo),使我在做人做事方面有了很大的提高。值此畢業(yè)之際,我謹代表我本人祝兄弟們前程似錦,一切順利。我還要感謝我的室友,四年來我們朝夕相處,互相幫助,不是親兄弟勝似親兄弟,他們是孫瑩凱、陳毅龍、張世興。在論文的各個階段,樊老師都給我提供了很大的幫助。半年多來,樊老師嚴謹細致、一絲不茍的作風(fēng)一直深深地影響著我。由于本人知識水平有限,再加上時間緊等因素,該數(shù)據(jù)壓縮軟件還有很多可以完善的地方,比如說壓縮中的文件不能過大、軟件界面不夠友好等問題,這都需要我在以后的工作和學(xué)習(xí)中不斷地努力。本文設(shè)計的自適應(yīng)哈夫曼編碼數(shù)據(jù)壓縮方法,同時還加入了對數(shù)據(jù)壓縮中重要的指標參數(shù)進行了測評,包括壓縮率,壓縮效率的測定。 6 總結(jié)本文主要介紹了在VC++環(huán)境下,如何實現(xiàn)通過自適應(yīng)哈夫曼算法進行數(shù)據(jù)壓縮。另外,對于大文件的壓縮,重復(fù)掃描引起的額外的磁盤訪問講嚴重降低該算法的執(zhí)行速度。文件名稱及類型文件原始大小壓縮后文件的大小壓縮率壓縮時間(本文文件)204k121k%(位圖文件)150k58k%(可執(zhí)行文件)232k173k%(可執(zhí)行文件)68k60k%表51 動態(tài)壓縮效果 表52 靜態(tài)壓縮效果文件名稱及類型文件原始大小壓縮后文件的大小壓縮率壓縮時間(本文文件)204k121k%(位圖文件)150k58k%(可執(zhí)行文件)232k173k%(可執(zhí)行文件)68k60k%通過對表51,表52的結(jié)果對比,可以非常明顯地看出,兩種算法的壓縮率相差不大,但是自適應(yīng)哈夫曼算法的時間消耗遠遠少于靜態(tài)哈夫曼算法。圖58 選取文件壓縮示圖圖59 選取文件存儲目錄(4)各種參數(shù)顯示顯示文件壓縮前后的大小和壓縮時間,其中時間可最小顯示微秒,壓縮比以百分比表示,如圖510所示。 圖57 壓縮程序主界面(3) 選擇文件和選擇目錄存貯壓縮文件通過瀏覽按鈕從計算機中選擇要壓縮的文件之后(如圖58所示)再選擇要儲存的目錄并取所需要的壓縮后的文件名,在這里取名為sj(如圖59所示),確定后點擊壓縮對文件進行壓縮。顯示壓縮比還有壓縮時間。(gmsg)。//計時,每次100毫秒 文件長度及壓縮率計算Getlength計算讀入文件的大小和壓縮后文件的大小,壓縮后文件大小與原文件之比求出壓縮率。在處理進度條時要引入多線程,使計時器,壓縮工作進程還有進度條本身相關(guān)聯(lián),如圖56所示 圖56 進度條狀態(tài)(int(jc * 100 / length))。//設(shè)置計時器MFC中自帶有CProgressCtrl類,可在窗口中生成進度條效果。//設(shè)置工作狀態(tài) timenum = 0。如圖55所示。 = m_pszFile。 char filters[] = All Files (*.*)|*.*|。\039。 iFileNum = 0。如圖54所示。//返回解碼字符} 相關(guān)模塊的實現(xiàn)及其系統(tǒng)整合 瀏覽及存儲文件CFileDialog類封裝了Windows常用的文件對話框。//壓縮編碼計數(shù) add_new_node(tree,ch)。0xff。 else { tmp = (intput[x]8) +intput[x+1]。 y = outlength%8。//壓縮編碼計數(shù) } ch = treenodes[current_node].child。 tabletmp2[y]) == 0)//根據(jù)編碼判斷向左走,還是向右走 current_node += 1。 y = outlength%8。 while(!treenodes[current_node].child_is_leaf) {//從根節(jié)點向子節(jié)點查詢,直到葉節(jié)點結(jié)束 current_node = treenodes[current_node].child 1。 WORD tmp。 int x,y。開始初始化根結(jié)點,空葉結(jié)點讀入第一個字符,作為根結(jié)點的右孩子,其重量為1,空葉結(jié)點作為根結(jié)點的左孩子,其重量為0結(jié)束否?從壓縮文件中讀入1位二進制數(shù)是0,則沿左孩子搜索是1,則沿右孩子搜索是葉結(jié)點?是空葉結(jié)點?將該葉子結(jié)點代表的字符取出存盤從壓縮文件讀入1個字節(jié)存盤修正動態(tài)哈夫曼樹結(jié)束YNYN 圖53 自適應(yīng)哈夫曼解碼流程圖(1)具體實現(xiàn)int CMyDlg::DecodeSymbol(TREE *tree, BYTE *intput){//對壓縮編碼解碼 long int current_node。知道解壓結(jié)束。再判斷是否是葉結(jié)點,不是的話重新再搜索,判斷葉結(jié)點之后再判斷是否是空葉結(jié)點,是的話就從壓縮文件讀入一個字節(jié)存盤,不是空葉結(jié)點的話,將該葉子結(jié)點代表的字符取出存盤,兩者運行之后都將修正動態(tài)哈夫曼樹。當(dāng)讀入第一個字符,把其作為根結(jié)點的右孩子,其重量為1,空葉結(jié)點作為根結(jié)點的左孩子,其重量為0。 //獲得非整字節(jié)剩余比特數(shù) if(current_node == 1) {//字符是第一次出現(xiàn),把位置指到NYT所在節(jié)點位置 current_node = treeleaf[NYT]。//臨時記錄字符編碼,然后**倒序**輸出 x = outlength/8。 int x,y,n。 BYTE tabletmp[8] = {0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe}。 }} void CMyDlg::EncodeSymbol(TREE *tree, BYTE ch, BYTE *output){//對字符進行編碼,新字符加入樹 long int current_node。i NYT。 treeleaf[NYT] = ROOT_NODE。 treenodes[ROOT_NODE].weight = 0。二者的重量均為0輸出字符編碼以該字符結(jié)點作為當(dāng)前結(jié)點當(dāng)前結(jié)點是根結(jié)點?將當(dāng)前結(jié)點與具有同樣重量且序號最大的結(jié)點進行交換,并使后者的父結(jié)點成為新的當(dāng)前結(jié)點將根結(jié)點到該字符結(jié)點路徑上所有結(jié)點的重量加1結(jié)束YYY圖52自適應(yīng)哈夫曼編碼流程(2)具體實現(xiàn)void CMyDlg::InitializeTree(TREE *tree){ //初始化Huffman樹,設(shè)置根節(jié)點=NYT treenodes[ROOT_NODE].child = NYT。整個編碼流程圖如52所示。之后再回到判斷當(dāng)前結(jié)點是否是根結(jié)點處。如果讀入新的字符沒有出現(xiàn)在編碼樹中,則輸出空葉結(jié)點編碼,字符ASCII碼,將該字符作為當(dāng)前空葉結(jié)點的右孩子,編號為當(dāng)前空葉節(jié)點號減1,新空葉結(jié)點作為當(dāng)前空葉結(jié)點的左孩子,編號為當(dāng)前空葉結(jié)點減2,二者的重量均為0。如果不是,繼續(xù)判斷該字符是否已出現(xiàn)在編碼樹中,如果已經(jīng)在編碼樹中則輸出字符編碼并以該字符結(jié)點作為當(dāng)前結(jié)點,之后再判斷當(dāng)前結(jié)點是否是根結(jié)點,如果是,則將根結(jié)點到該字符結(jié)點路徑上所有結(jié)點的重量加1。 圖51軟件總體設(shè)計 自適應(yīng)哈夫曼編碼的實現(xiàn)(1) 自適應(yīng)哈夫曼編碼壓縮流程 初始化哈夫曼樹,當(dāng)讀入第一個字符時,把其作為根節(jié)點的右孩子,計其重量為1,空葉結(jié)點作為根結(jié)點的左孩子,計其重量為0。本程序設(shè)計主要包括三大方面,分別有通過自適應(yīng)哈夫曼算法壓縮,自適應(yīng)哈夫曼解壓,還有相關(guān)輔助模塊。如果既限于某一領(lǐng)域的話VC毫無優(yōu)勢可言,但是如果開發(fā)一個新的領(lǐng)域的應(yīng)用程序或者該程序涉及多個應(yīng)用領(lǐng)域的話,可減少重復(fù)學(xué)習(xí)的頻率和難度,VC(MFC)的優(yōu)勢會立刻顯現(xiàn)出來。而很多其他的編程語言甚至找不到相關(guān)的資料。但是MFC真的沒有任何優(yōu)勢了嗎?不是,面對底層程序,它能很輕松的與Windows API或驅(qū)動程序結(jié)合,就是在自己的代碼中直接使用API函數(shù),而API和驅(qū)動程序的資料都是以C語言為基礎(chǔ)的,這使得VC程序員能夠更輕松的使用Windows API。而原有的優(yōu)勢如運行速度快等,也因為其他編程語言的日臻完善和個人電腦的運算速度增加而顯得不那么突出。
點擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1