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

正文內(nèi)容

音視頻編碼解碼研究(參考版)

2024-11-05 13:41本頁面
  

【正文】 最后對老師,家人和朋友再次致以我最衷心的感謝! 在論文編寫過程中,雖然反復(fù)推敲核證,但因水平有限 ,不當(dāng)之處 ,在所難免 ,敬請老師、同學(xué)批評指正,以便修改完善。在此,謹(jǐn)向?qū)煴硎境绺叩木匆夂椭孕牡母兄x! 感謝我的家人沒有你們,就不會有今天的我!我一直感恩,感恩于我可以擁有一個如此溫馨的家庭,讓我所有的一切都可以在你們這里得到理解與支持,得到諒解和分擔(dān)。這種影響不是一朝的迸發(fā),而是日積月累的滲透,在這點(diǎn)滴匯聚中使我逐漸形成正確、成熟的人生觀、價(jià)值觀。 “授人以魚,不如授之以漁”,張老師正是這樣以言傳身教來教導(dǎo)著我 。而在不久的將來,連閃存的容量都要以 GB來計(jì)算時,為了追求更高的音質(zhì) 和畫質(zhì) , 應(yīng)用 無損壓縮的 編碼方式 會越來越被 人重視 。 硬盤容量 在 不斷 的 增加, 500GB已成主流,無損格式占用空間大的問題將不再是問題。 盡管還有一定的不足,但是 應(yīng)用 無損壓縮的 編碼方式的 前景無疑是光明的,從目前存在的 應(yīng)用 無損壓縮的 編碼 種類之多就可以看出這一點(diǎn) 。這一點(diǎn)比起有損格式 有很大的優(yōu)越性, 因?yàn)橛袚p壓縮格式的二次編碼(從一種有損格式轉(zhuǎn)換成另一種有損格式,或者格式不變而調(diào)整比特率)意味著丟失更多的信號,帶來更大的失真 。 ( 3) 通過本次研究 證明了音視頻編碼解碼 可以 節(jié)省存儲空間、節(jié)省 編碼 時間 ,大多數(shù)編碼方法都會占用較多的 CPU 資源,但優(yōu)秀的編碼方式可以較一般的編碼方式節(jié)省 CPU 使用率。 ( 2) 無損壓縮格式,是利用數(shù)據(jù)的統(tǒng)計(jì)冗余進(jìn)行壓縮,可完全回復(fù)原始數(shù)據(jù)而不引起任何失真,但壓縮率是受到數(shù)據(jù)統(tǒng)計(jì)冗余度的理論限制,一般為 2:1 到 5:1。音視頻編碼 技術(shù)就是將數(shù)據(jù)中的冗余信息去掉(去除數(shù)據(jù)之間的相關(guān)性), 編碼 技術(shù)包含幀內(nèi)圖像數(shù)據(jù)壓縮技術(shù)、幀間圖像數(shù)據(jù)壓縮技術(shù)和熵編碼壓縮技術(shù) 。 音視頻編碼解碼研究 –22– 結(jié) 論 經(jīng)過本次對音 視頻編碼解碼研究,我得出以下結(jié)論: ( 1)音視頻的編碼解碼過程就是音視頻壓縮與解壓縮的過程。測試結(jié)果如圖 所示。 音視頻編碼解碼研究 –21– 圖 聲音文件 壓縮比 比較 由上圖可知本次聲音文件的壓縮 比 為 19%,可見好的編碼方式能很大程度上節(jié)約存儲空間。 單獨(dú)使用 DirectShow Graph 不經(jīng)過任何編碼捕捉 10 秒聲音樣本,大小為 ; 使用 DirectShow Graph,添加 VHScreenEncoder Filter 編碼上一 聲音樣本, 編碼后的文件類型為 vhau,聲音文件 大小 337KB。 圖 圖片 壓縮比 比較 由上圖可知本次圖片的壓縮 比 為 53%,占用存儲空間比為 1 比 2。 2.壓縮比 單獨(dú)使用 DirectShow Graph 不經(jīng)過任何編碼捕捉一幀 100 100 像素 視頻圖片, 圖像 大小為 ; 音視頻編碼解碼研究 –20– 使用 DirectShow Graph,添加 VHScreenEncoder Filter 將上一圖片編碼 , 編碼后的文件類型為 vhv, 圖片大 小 。結(jié)果如圖 所示。mt); } if (pmt != NULL) DeleteMediaType(pmt); pOutSetMediaType(NULL); }//輸出數(shù)據(jù)流 hr = Copy(pIn, pOut); if (FAILED(hr)) return hr; return Depress(pIn, pOut); }返回解碼后的數(shù)據(jù)流 音視頻編碼解碼研究 –19– (四) 性能 比照 在安裝好的 DirectShow 環(huán)境下對已經(jīng) 建立好的 Filters 進(jìn)行連接,通過測試該編碼方法能將音視頻進(jìn)行有效的壓縮,其解碼方法 能 高質(zhì)量的還原源文件,達(dá)到了預(yù)期效果。amp。mt); }/判斷媒體數(shù)據(jù)流類型 if (pmt != NULL) DeleteMediaType(pmt); pInSetMediaType(NULL); }//輸入數(shù)據(jù)流 { AM_MEDIA_TYPE *pmt = NULL; hr = pOutGetMediaType(amp。amp。 HRESULT CVHScreenDecoder::Transform(IMediaSample *pIn, IMediaSample *pOut) { CheckPointer(pIn, E_POINTER); CheckPointer(pOut, E_POINTER); //檢查指針 HRESULT hr; { AM_MEDIA_TYPE *pmt = NULL; hr = pInGetMediaType(amp。mt); } if (pmt != NULL) DeleteMediaType(pmt); pOutSetMediaType(NULL); }//輸出數(shù)據(jù)流 hr = Copy(pIn, pOut); if (FAILED(hr)) { return hr; } return Compress(pIn, pOut); //調(diào)用 Zilb 中的 Compress 函數(shù),將數(shù)據(jù)流壓縮。amp。mt); (); }//判斷媒體數(shù)據(jù)流類型 if (pmt != NULL) DeleteMediaType(pmt); pInSetMediaType(NULL); }//輸入數(shù)據(jù)流 { AM_MEDIA_TYPE *pmt = NULL; hr = pOutGetMediaType(amp。amp。 HRESULT CVHScreenEncoder::Transform(IMediaSample *pIn, IMediaSample *pOut) { CheckPointer(pIn, E_POINTER); CheckPointer(pOut, E_POINTER); //檢查指針 HRESULT hr; { AM_MEDIA_TYPE *pmt = NULL; hr = pInGetMediaType(amp。sudVHScreenDecoder } }; 注冊成功后在 Filter Graph Manager 中顯示的結(jié)果如圖 所示。CLSID_VHScreenDecoder, // Filter CLSID LVHScreenDecoder, // String name MERIT_NORMAL, // Filter merit 2, // Number of pins sudpPins // Pin information }; 音視頻編碼解碼研究 –16– CFactoryTemplate g_Templates[] = { { LVHScreenDecoder , amp。CLSID_VHScreenEncoderProp , CVHScreenEncoderProp::CreateInstance } }; 注冊成功后在 Filter Graph Manager 中顯示的結(jié)果如圖 所示。CLSID_VHScreenEncoder , CVHScreenEncoder::CreateInstance , NULL , amp。 ( 1)編碼器的 Filter 的注冊 將 VHScreenEncoder 注冊到 Video Compressor 下,需要在編碼器對應(yīng)的 cpp 文件中寫入的代碼如下: const AMOVIESETUP_FILTER sudVHScreenEncoder = { amp?;謴?fù)出源文件。 在壓縮數(shù)據(jù)區(qū)中.存儲的數(shù)據(jù)是 PDATA 區(qū)數(shù)據(jù) TY NL ND NB PDATA CDATA 音視頻編碼解碼研究 –14– 所建立的字符樹與距離樹所代表的碼字,原文件中的 數(shù)據(jù)由該區(qū)還原。 從子參數(shù)區(qū)得到碼長后. 按照與碼長編碼樹建立時同樣的規(guī)則 ,我們就可以得到了字符樹與距離樹,由字符樹可以得到字符碼與匹配長度碼,由距離樹可以得到匹配距離碼 。根據(jù) CDATA 區(qū)所確立的碼字 。子參數(shù)區(qū) 2 從碼號 0 開始順序編碼至 257+NL。 子參數(shù)區(qū) 3 ( PDATA) PDATA 區(qū)是由 CDATA 區(qū)所產(chǎn)生的碼長編碼生成的。參數(shù)區(qū)的結(jié)構(gòu)見圖 。第一棵 HSF 碼樹由 CDATA 區(qū)構(gòu)造。 ( 2) HSF 碼樹的構(gòu)造 在參數(shù)區(qū)中碼樹信息是由碼長來表達(dá)的。這兩部分?jǐn)?shù)據(jù)存放著的都是某棵樹的葉節(jié)點(diǎn)的長度,其 CDATA 區(qū)的數(shù)據(jù)構(gòu)造碼長編碼樹。由于壓縮算法是預(yù)統(tǒng)計(jì)Huffman 編碼的壓縮算法碼樹或碼表是動態(tài)生成的,所以為了正確還原源文件,必須在壓縮文件中存儲壓縮時產(chǎn)生的碼樹或碼表等編碼信息,這些信息就是壓縮數(shù)據(jù)的參數(shù)區(qū)[11]。 ( 1)參數(shù)區(qū)結(jié)構(gòu) 在一個 ZIP 壓縮文件。 257258對應(yīng)的是匹配長度及尾碼位數(shù);匹配距離碼的基碼編號為 029。 音視頻編碼解碼研究 –13– 單字符依照 ASCII 碼編號為 0255。 Huffman 編碼器根據(jù)滑動窗口壓縮器輸出的中間結(jié)果進(jìn)行統(tǒng)計(jì)形成兩棵 HSF樹. 其中單字符與匹配長度在一棵 HSF 樹上稱為字符樹。根據(jù)統(tǒng)計(jì)的結(jié)果生成兩棵 Huffman 樹 (嚴(yán)格來說 ,這兩棵 樹 是 HuffmanShannonFano 樹 ,簡稱 HSF 樹 ),我們分別稱之為字符樹 (字符樹中包含字符碼與匹配長度碼 )與距離樹 (匹配距離碼 )。 2. Deflate 算法工作原理 Zlib 中的 Deflate 壓縮算法采用自適應(yīng)方式字典編碼, 壓縮之前是沒有字典的。若輸 入數(shù)據(jù) 有 誤, 則返回Z_DATA_ERROR (5) deflateInit() + deflate() + deflateEnd() 功能: 3 個函數(shù)結(jié)合使用完成壓縮功能 。當(dāng)函數(shù)退出后, destLen 是解壓出來的數(shù)據(jù)的實(shí)際大小。這就要求在進(jìn)行壓縮之前,保存原始數(shù)據(jù)的大小 (也就是解壓后的數(shù)據(jù)的大小 )。當(dāng)調(diào)用函數(shù)時, destLen 表示 dest 緩沖區(qū)的大小, dest 緩沖區(qū)要足以容下解壓后的數(shù)據(jù)。sourceLen 是 source 緩沖區(qū)的大小 (以字節(jié)計(jì) )。 (4) int unpress (Bytef *dest, uLongf *destLen,const Bytef *source, uLong sourceLen); 功能:解壓縮。 (3) uLong pressBound (uLong sourceLen); 功能: 計(jì)算需要的緩沖區(qū)長度。 press 若成功,則返回 Z_OK;若沒有足夠內(nèi)存,則返回 Z_MEM_ERROR;若輸出緩沖區(qū)不夠大,則返回 Z_BUF_ERROR。當(dāng)函數(shù)退出后, destLen 表示壓縮后緩沖區(qū)的實(shí)際大小。函數(shù)的第二個參數(shù) destLen 是傳址調(diào)用。 press 函數(shù)將 source 緩沖區(qū)中的內(nèi)容壓 縮到 dest 緩沖區(qū) 。 圖 解 碼器工作原理 ( 二 )壓縮算法 1.編碼解碼算法 本文研究的解碼算法采用無損壓縮中的字典壓縮法,壓縮算法調(diào)用 Zilb 函數(shù)庫的壓縮和解壓縮函數(shù),對視頻中的每一幀圖像進(jìn)行壓縮,對音頻中的采樣點(diǎn)進(jìn)行壓縮。 圖 編碼器工作原理 Filter Graph Manager Source Filters Transform Filters Render Filters 音視頻采集卡 各種軟硬件編碼解碼器 應(yīng)用程序 文件系統(tǒng) 網(wǎng)絡(luò) 文件系統(tǒng) 網(wǎng)絡(luò) 聲卡 顯卡 指令 事件 DirectShow 采用 Zlib 技術(shù)的編碼 器 音視頻采集卡 Filter Graph Manager Source Filters Transform Filters Render Filters 文件系統(tǒng)
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1