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

正文內(nèi)容

mpeg4視頻編程技術(shù)研究畢業(yè)設(shè)計論文-資料下載頁

2025-06-22 12:19本頁面
  

【正文】 標(biāo)準(zhǔn)【50】。符合MPEG.4 SP碼流只包含矩形形狀的IVOP、PVOP紋理和運(yùn)動信息。在這種情況下視頻對象平面(VOP)的概念與傳統(tǒng)意義上的幀兼容。仍然在1616的宏塊基礎(chǔ)上進(jìn)行幀間幀內(nèi)編碼。其中,內(nèi)部宏塊的紋理編碼采用DCT變換和AC/DC預(yù)測,進(jìn)一步降低了碼率。外部宏塊的運(yùn)動向量可有單一運(yùn)動向量和4運(yùn)動向量兩種表示方法,其中運(yùn)動向量具有半像素精度,并可指向參考幀界外(無限制運(yùn)動向量)。在第二章有專門的章節(jié)對MPEG.4 SP框架結(jié)構(gòu)的關(guān)鍵技術(shù)進(jìn)行分析,這里就不再重述。由于具有編碼效率高,差錯恢復(fù)能力強(qiáng)等編碼特點,非常適合應(yīng)用在機(jī)頂盒、數(shù)字電視、視頻點播、實時多媒體監(jiān)控系統(tǒng)及視頻會議等低功耗實時編碼系統(tǒng)中。目前MPEG.4 SP己成為嵌入式系統(tǒng)開發(fā)的首選。4.3 MPEG.4 SP編碼系統(tǒng)整體設(shè)計本課題采用的MPEG 4編碼器是Xvidcorl.0.2,PC運(yùn)行的環(huán)境是MicrosoftVisual C++6.0簡體中文企業(yè)版【5l】,DSP運(yùn)行集成調(diào)試環(huán)境Visual DSP 4.5++,該編碼器實現(xiàn)了MPEG.4 SP視頻編碼的基本功能。編碼原理框架如圖4.1。MPEG4 SP采用的是混合編碼框架。經(jīng)過運(yùn)動估計補(bǔ)償、離散余弦編碼(DCT)、量化、游程編碼和可變長編碼等過程。整個系統(tǒng)的硬件平臺如圖4.2。視頻編碼器以美國ADI公司的Blackfin系列DSP處理器BF561為處理核心。在BF561芯片外圍擴(kuò)展了1MB閃存(Flash),用于存放MPEG4視頻壓縮算法程序代碼和參數(shù)配置,系統(tǒng)啟動時將從Flash讀出代碼和配置參數(shù);擴(kuò)展8MB的同步動態(tài)數(shù)據(jù)存儲器(SDRAM),用于存放數(shù)據(jù)和運(yùn)行程序。視頻采集采用ADI公司的AD7183,CCD攝像頭采集到的模擬視頻信號經(jīng)過AD71 83轉(zhuǎn)換為數(shù)字視頻信號通過并行外部接口(PPI)送到BF561處理器。同時,還可以選用數(shù)字?jǐn)z像頭直接作為視頻輸入。另外,利用串行接口(UAI玎)向上位機(jī),傳輸系統(tǒng)調(diào)試信息,便于系統(tǒng)的調(diào)試。在開發(fā)板上還外擴(kuò)了Audio Codec AK4550,作為音頻采集回放,以備添加音頻編碼設(shè)備,它通過同步串口接口(SPORT)與BF561連接。壓縮后的視頻碼流通過串行外設(shè)接口(SPI)輸出到網(wǎng)卡發(fā)送到網(wǎng)絡(luò),或者直接解碼送到顯示設(shè)備實時播放??傮w的開發(fā)流程如下:1.在VC 6.0建立一個工程“encode.PC”,以Xvidcorl.0.2的源代碼為基礎(chǔ),建立軟件編碼器。2.在VC下,調(diào)試工程,修改源代碼中,替換PC匯編語言為基礎(chǔ)做的代碼優(yōu)化,建立一個純C的代碼,并能夠已文件讀寫的方式,實現(xiàn)正確的MPEG4 SP層次的編碼。其中,輸入.yuv文件(像素以YCrCb值形式存儲),輸出為.m4v文件,即己完成編碼的文件。3.在PC平臺上面,進(jìn)行算法的初步優(yōu)化,除去不必要的代碼,調(diào)整函數(shù)的個數(shù),把一些使用頻繁的小函數(shù),直接寫入代碼中,進(jìn)行移植的準(zhǔn)備。4.在Visual DSP4.5++開發(fā)環(huán)境下,建立所需的工程組,按照事先對開發(fā)環(huán)境和BF561的理解,調(diào)整好各個函數(shù)存放的位置。5.進(jìn)過重復(fù)的編譯.修改.調(diào)試等過程,建立可運(yùn)行于DSP的視頻編碼程序。數(shù)據(jù)的輸入輸出仍然采用文件讀寫方式(Visual DSP 4.5++安裝在PC機(jī)上,支持通過C函數(shù)對PC機(jī)文件的讀寫操作)。6.修改數(shù)據(jù)的輸入輸出模式,輸入源變?yōu)閿z像頭,輸出源變?yōu)镾DRAM上面的緩存,最后以數(shù)據(jù)塊的形式,寫入文件。7.打開Visual DSP4.5++提供的優(yōu)化策略,設(shè)置正確的編譯選項。8.利用Visual DSP4.5++提供的統(tǒng)計窗VI,調(diào)整LDF文件【52】中,各級存儲器配置的大小和規(guī)模,重新設(shè)置L1存儲空間SRAM和Cache的大??;調(diào)整項目組相應(yīng)項目內(nèi),相應(yīng)變量的位置和存放的位置。9.注意處理器的BF561的架構(gòu)特性,進(jìn)行C語言代碼級的優(yōu)化。10.修改輸入控制代碼,實現(xiàn)BF561雙核在宏塊層上的并行處理。11.進(jìn)行匯編級代碼優(yōu)化,把關(guān)鍵代碼用Blackfin系列支持的代數(shù)匯編代碼改寫。12.把編譯好的二進(jìn)制文件打包,下載到Flash存儲器,從Flash啟動調(diào)試。4.4軟件移植移植前代碼是針對通用PC機(jī)的,不適用BF561,因此需要針對BF561的特點,調(diào)整代碼,使其能夠在DSP上面運(yùn)行,從而移植到DSP上,為后面代碼的優(yōu)化奠定基礎(chǔ)【53】。移植的步驟如下:1.在VisualDSP 4.5++下,建立一個“MPEG.4 encoder”的項目組,根據(jù)開發(fā)環(huán)境的特點。在項目組下,建立corea、coreb、sml2和sml3四個子項目。其分別代表內(nèi)核A、內(nèi)核B、L2存儲空間和L3存儲空間。2.把PC機(jī)上可運(yùn)行的源代碼移植到項目組對應(yīng)的項目內(nèi)。要注意,如果代碼的位置在corea項目內(nèi),說明代碼存放在內(nèi)核A的L1空間,如果代碼的位置在sml3項目內(nèi),說明代碼存放在外部的SDRAM。3.把代碼放入相應(yīng)位置后,進(jìn)行調(diào)試編譯。根據(jù)編譯器出錯提示,進(jìn)行代碼修改。因為,通用PC和DSP存在的不同,所以,需要反復(fù)調(diào)試直到程序調(diào)試通過。4.VisualDSP 4.5++完全支持C語言,對于C語言的絕大部分內(nèi)置庫函數(shù)也提供支持。其支持文件讀寫操作,先利用文件方式完成輸入輸出數(shù)據(jù)的讀寫,確定程序能正常運(yùn)行。5.改寫數(shù)據(jù)的輸入輸出模式,刪除文件讀寫相關(guān)fopen(),fwrite()等函數(shù),輸入改成從PPl0經(jīng)過A/D轉(zhuǎn)換的視頻數(shù)據(jù),輸出改為寫入輸出緩沖區(qū)。在移植過程中,因為跨越不同的平臺,需要注意下面的問題:1.慎重考慮malloc()內(nèi)存分配函數(shù)的作用和位置。如申請的空間需要不斷的使用,可以考慮在L2空間申請相應(yīng)大小的空間。maUoc()函數(shù)的位置,因其所在的子項目的不同而不同??梢岳肰isualDSP 4.5++內(nèi)存瀏覽器查看,根據(jù)BF561統(tǒng)一的4G內(nèi)存空間的分配來確定其所在存儲空間。2.匯編代碼的改寫。在Xvidcorl.0.2的源代碼中,存在大量的PC匯編(MME,SSE,SSE2等)代碼,其不能在DSP上面執(zhí)行。因此,需要把其改寫成同樣功能的C語言代碼。3.修改編碼條件和庫函數(shù)。Visual DSP 4.5++支持C語言代碼,但是其一些默認(rèn)的編譯選項和支持的庫函數(shù)與通用PC機(jī)存在一些不同,需要修改這些編碼選項和庫函數(shù)4.?dāng)?shù)據(jù)結(jié)構(gòu)的不同。不同的處理器由于體系結(jié)構(gòu)不同,其數(shù)據(jù)定義位數(shù)不同,而Xvidcorl.0.2定義了一些跨平臺的數(shù)據(jù)結(jié)構(gòu),應(yīng)該對應(yīng)DSP與普通PC的不同,進(jìn)行修正。‘4.5雙核DSP宏塊層并行結(jié)構(gòu)設(shè)計視頻編碼處理算法的計算量很大,對處理速度要求很高,BF561作為一種高性能的雙核DSP,研究與其適應(yīng)的視頻編碼并行算法,更能適應(yīng)視頻編碼編碼對運(yùn)算速度的要求。因此全面的分析研究MPEG.4編碼標(biāo)準(zhǔn)的流程,進(jìn)一步設(shè)計新的視頻壓縮算法,具有重要的意義。為了滿足視頻編碼算法運(yùn)算量大的需要,從并行性的角度出發(fā),能夠比較全面的對已有MPEG.4編碼算法進(jìn)行研究,確定并行粒度,再根據(jù)BF561雙核特性,設(shè)計并行算法流程。4.5.1視頻編碼算法的并行性分析視頻編碼算法的主流是以離散余弦變換和運(yùn)動估計為框架的混合編碼算法,其也被MPEG.4國際標(biāo)準(zhǔn)所采用。依照并行算法要求分析,視頻編碼算法中大致有兩種類型阱】:一種是可并行的計算,其具有數(shù)據(jù)流確定、運(yùn)算規(guī)則簡單、相關(guān)性(數(shù)據(jù)相關(guān)性、控制相關(guān)性和資源相關(guān)性)弱的特點,例如,DCT/IDCT、運(yùn)動估計補(bǔ)償和量化/反量化等。另一種是不可并行的計算,這種計算控制和數(shù)據(jù)相關(guān)性強(qiáng),有較多的轉(zhuǎn)移分支,例如,游程編碼、折線形掃描、算術(shù)編碼、變長解碼以及碼率控制等,具有并行特點的計算量占視頻壓縮算法計算量的主要部分,特別是DCT和運(yùn)動估計,成為視頻編碼處理的瓶頸,因此,對視頻壓縮算法進(jìn)行并行處理,有利于解決計算量大的瓶頸。下面我們對MPEG.4的碼流結(jié)構(gòu)方面進(jìn)行并行性分析,提出對MPEG.4進(jìn)行并行化設(shè)計的思路,由于時間關(guān)系,只對其中的一些重要算法進(jìn)行了并行化編程實現(xiàn),可作為進(jìn)一步分析計算的基礎(chǔ)。MPEG4圖像編碼包含3個成分:IVOP、P.VOP和B.VOP。IVOP編碼采用基準(zhǔn)幀模式,只提供幀內(nèi)壓縮,PVOP采用預(yù)測編碼,利用相鄰幀的一般統(tǒng)計信息進(jìn)行預(yù)測,P.VOP預(yù)測當(dāng)前幀與前面最近的I幀或P幀的差別。B.VOP 在MPEG4 SP層次沒有使用。MPEG.4的視頻流提供了對視頻場景的分層描述。但是在SP層中,以圖像的矩形為分割單元進(jìn)行編碼,其類似于MPEG.1/2,因此,不需要形狀編碼的信息。這樣分析其結(jié)構(gòu)時,從VOG作為最上層的數(shù)據(jù)機(jī)構(gòu)。下面依次為GOP、條層、宏塊層和塊層。MPEG.4的層次從下到上依次為:塊層:由8*8個像素點構(gòu)成,是DCT變換基本單元。宏塊層:在4:2:0取樣中,一個宏塊有4個亮度象塊,1個Cr象塊和1個Cb象塊構(gòu)成。另外還有4:2:2取樣和4:4:4取樣的兩種宏塊。條層:一連串宏塊可構(gòu)成一個圖像條。視頻對象層:一系列像條可以構(gòu)成一幅圖像,圖像分成IVOP,P.VOP,B.VOP三類視頻對象。視頻對象平面組層:由相關(guān)的一組IVOP、PVOP和B.VOP組成。在SP框架下無B.VOP。從塊丌始從下至上依次編碼,在宏塊外的每一層的開始處加上起始碼和頭標(biāo)志,就形成了MPEG.4基本碼流。從并行算法的角度來說,并行的粒度越小,并行的效果越好。因此,從快曾開始考慮并行設(shè)計的可行性。塊層是MPEG.4最低的層次,是DCT變換的基本單元。但MPEG.4支持的4MV(運(yùn)動向量),支持1616亮度塊運(yùn)動補(bǔ)償?shù)街С?*8亮度塊運(yùn)動補(bǔ)償,因此一個1616宏塊可能有1個或者4個運(yùn)動向量。如果,以塊層作為最基本的并行處理單元,兩核之間關(guān)于運(yùn)動補(bǔ)償模式的判定會產(chǎn)生很強(qiáng)的控制相關(guān)性,需要互相傳遞大量的信息。宏塊層是MPEG.4壓縮算法能夠獲得的最好的并行粒度,能夠很好的協(xié)調(diào)處理編碼過程中大部分的運(yùn)算模塊,但該層次并行存在的問題是每個宏塊的編碼必須依賴于前一宏塊的編碼。比如,內(nèi)部宏塊中,DC的值以前一宏塊的DC值作為偏移量。在B.VOP中,滑過宏塊是基于前一宏塊的運(yùn)動向量(目前暫不考慮B.VOP編碼)。條層是能夠獲得的媒體并行機(jī)制。MPEG引入SLICE,就是讓每個SLICE能夠獨立編碼。更粗糙的層次,可以以VOG進(jìn)行并行編碼。然而,GOP的編碼不能完全排除I/P/B.VOP之間的依賴性。設(shè)VOG為IBBPBBPBBPBB,則可以發(fā)現(xiàn),最后一針的編碼必須依賴下一個VOG的第一個I幀,所以VOG之間也存在相關(guān)性??疾煲曨l編碼標(biāo)準(zhǔn)中運(yùn)算量最大的DCT和運(yùn)動估計補(bǔ)償模塊。ME的基本運(yùn)算是減法、絕對值、求和以及比較運(yùn)算;DCT的基本運(yùn)算是乘累加和轉(zhuǎn)置運(yùn)算。其運(yùn)算都能以1616宏塊的并行粒度下,得到很好的運(yùn)算性能。不同宏塊在運(yùn)算過程中,相關(guān)性很小,因此不同宏塊可以同時處理。因此,在1616宏塊層,進(jìn)行并行性設(shè)計可以獲得很高的算法效率。宏塊層并行化的問題是每個宏塊的編碼必須依賴于前一宏塊的編碼。因此,在算法中需要設(shè)計合理的通信方法,可以很好的解決該問題,實現(xiàn)并行處理算法。4.5.2 BF561并行性算法結(jié)構(gòu)設(shè)計BF561有兩個相同的BF533內(nèi)核構(gòu)成,每個內(nèi)核都有獨立的乘/累加器(MAC)、40位ALU、視頻ALU和40位移位器,通過128KB L2內(nèi)存在雙核間共享數(shù)據(jù)。由此可見,BF561兩個核都擁有大量的硬件資源,完全可以獨立運(yùn)行,而不需要互相支持。因此,采用過于低的并行級別,如像素級的并行運(yùn)算,兩核之間的通信過于頻繁,減低了算法效率。綜合考慮MPEG.4視頻編碼標(biāo)準(zhǔn)和BF561的特點,采用宏塊層并行的處理結(jié)構(gòu)。根據(jù)MPEG4編碼的流程,把輸入的視頻數(shù)據(jù)經(jīng)預(yù)處理后,按照幀的順序存儲在SDRAM,然后BF561的兩核,依次通過DMA從SDRAM中讀出1616個像素宏塊對應(yīng)的YCbCr數(shù)據(jù),如圖4.3所示。按照4:2:0數(shù)據(jù)格式,則是4個8*8的Y亮度塊數(shù)據(jù),將其編號為A~D,1個8*8的Cb色差數(shù)據(jù)塊,1個8*8的Cr色差數(shù)據(jù)塊,共6個8*8塊。雙核同時進(jìn)行編碼中的運(yùn)動估計補(bǔ)償、DCT、量化、之形掃描和算術(shù)編碼等運(yùn)算,編碼完成后,按照讀出的順序輸入到指定的外部存儲器空間。本系統(tǒng)根據(jù)BF561的結(jié)構(gòu)特點和MPEG.4 SP編碼的流程(詳見圖4.1MPEG4 SP編碼模型原理圖)。設(shè)計圖4.4所示的雙核并行編碼流程框架圖。該流程結(jié)合考慮了BF561雙核的對稱性和三級存儲系統(tǒng)的優(yōu)勢(詳見章節(jié)5.3存儲器分配),并充分利用了DMA控制器的強(qiáng)大功能(詳見章節(jié)5.4 DMA控制方案設(shè)計),具有較高的可行性和有效性。從流程圖中,可以看出不同于其他編碼系統(tǒng)的設(shè)計方案。一般的系統(tǒng)一般采用一個主核A一個從核B的模式。主核A運(yùn)行操作系統(tǒng)和流程控制等;從核B進(jìn)行具體的計算。這種模式的好處是,系統(tǒng)結(jié)構(gòu)簡單,便于編程和維護(hù),但是沒能充分利用雙核的性能。因此,本系統(tǒng)設(shè)計的雙核同時運(yùn)行,利用L2傳遞信息和數(shù)據(jù)的方案。其中,A核額外負(fù)責(zé)DMA傳輸控制和全局信息更改等處理,因這些處理所需計算很小,不影響到雙核之間協(xié)同運(yùn)行。4.5.3并行編碼存在問題的解決方法在并行編碼過程中,涉及到一些不同于單核處理器的同步問題。下面對這些問題的的解決方法進(jìn)行闡述。1.宏塊編碼的相關(guān)性處理方法雙核以1616的宏塊為并行處理的基礎(chǔ)單元。在宏塊編碼時,DC的值以前一宏塊的DC值作為偏移量,對于A核編碼部分沒有影響,其所需要的數(shù)據(jù)DC值在上一編碼循環(huán)已經(jīng)存儲。但是,對于B核其所需的DC值則存在不同,其對應(yīng)的B,C,D三個亮度塊沒有影響,因為其前一宏塊的DC系數(shù)在其同一內(nèi)核內(nèi)可以得到。但是,對于A亮度塊,E,F(xiàn)兩個色差塊,其所需在DC值在A核內(nèi),并且正在運(yùn)算。解決的方法有兩個:(1)在L2定義三個存儲變量,一旦A核完成A,E,F(xiàn)三個塊的編碼,把其DC值存入對應(yīng)變量,B核編碼到相應(yīng)的位置時,從L2讀出對應(yīng)的數(shù)據(jù)。因為,A核編碼開始時間在前,并且兩核計算能力相當(dāng),加上L2讀出的速度約為L1的一半,所以,犧牲效率很有限,并能
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1