丁嘉霖 張立鵬 龐翔 陸波亮 謝藝



【摘 要】隨著社會(huì)不斷發(fā)展進(jìn)步,視頻技術(shù)廣泛應(yīng)用于日常生活與專業(yè)領(lǐng)域之中。MPEG-4視頻編碼技術(shù)為其中一種常用技術(shù),本文闡述應(yīng)用BF561處理器完成MPEG-4 SP框架層次下視頻編碼系統(tǒng)的實(shí)現(xiàn)過(guò)程。首先,運(yùn)用純C語(yǔ)言實(shí)現(xiàn)編碼功能,可通過(guò)建立的軟件完成算法研究、修改,并將其作為DSP移植的根本,實(shí)現(xiàn)在DSP的開發(fā)。其次,應(yīng)用集成調(diào)試環(huán)境Visual DSP 4.5++完成后續(xù)開發(fā),最終達(dá)到編碼目標(biāo)。
【關(guān)鍵詞】DSP;MPEG-4;編碼
1.Visual DSP 4.5++
Visual DSP 4.5 ++擁有強(qiáng)大的編輯功能與高效的工程管理能力,還具有優(yōu)秀的調(diào)試控制能力與可視效果。其調(diào)試媒介能夠應(yīng)用軟件進(jìn)行模擬,也能夠用硬件應(yīng)用JTAG在EZKIT評(píng)估板上,還能夠應(yīng)用USB口實(shí)現(xiàn)調(diào)試。Visual DSP4.5++調(diào)試器具有優(yōu)秀的繪圖功能,能夠清晰展現(xiàn)數(shù)據(jù),促進(jìn)工作效率。此外,其統(tǒng)計(jì)學(xué)特性能夠?qū)崿F(xiàn)在不中斷程序的情況下獲取代碼運(yùn)行情況,更精準(zhǔn)的改進(jìn)程序性能。
2.MPEG-4 SP編碼系統(tǒng)整體設(shè)計(jì)
MPEG-4 SP框架結(jié)構(gòu)高效、容錯(cuò)高的特點(diǎn),十分適合運(yùn)用在數(shù)字電視、多媒體監(jiān)控等低功耗系統(tǒng)中,屬嵌入式系統(tǒng)開發(fā)的主要技術(shù)。本次設(shè)計(jì)MPEG-4 SP應(yīng)用混合編碼框架,編碼原理框架如圖1。
系統(tǒng)的硬件平臺(tái)如圖2
設(shè)計(jì)開發(fā)流程如下,第一,應(yīng)用VC 6.0新建“encode-PC”,利用Xvidcorl.0.2構(gòu)建編碼器。第二,構(gòu)建純C代碼,實(shí)現(xiàn)源代碼修改。注意,輸入為.yuv文件,輸出為.m4v 文件。第三,于PC平臺(tái),刪減不需要的代碼,調(diào)節(jié)函數(shù)數(shù),將常用小函數(shù)寫入,完成準(zhǔn)備工作。第四,于Visual DSP 4.5++,架構(gòu)工程組,調(diào)節(jié)函數(shù)存放位置。第五,反復(fù)完成編譯、修繕、調(diào)試,構(gòu)建可應(yīng)用于DSP的程序。第六,將輸入轉(zhuǎn)變?yōu)閿z像頭,輸出轉(zhuǎn)變?yōu)镾DRAM緩存。第七,應(yīng)用Visual DSP4.5++M優(yōu)化方案,選擇正確的編譯選項(xiàng)。第八,結(jié)合統(tǒng)計(jì)窗口,調(diào)整LDF中的存儲(chǔ)器規(guī)模,重設(shè)L1存儲(chǔ)SRAM于Cache大小,再對(duì)相應(yīng)變量的位置進(jìn)行調(diào)節(jié)。第九,實(shí)現(xiàn)BF561在宏塊層上的并行處理。第十,完善匯編級(jí)代碼。第十一,將處理好的二進(jìn)制文件轉(zhuǎn)移到Flash完成調(diào)試。
3.軟件移植
主要目的在于調(diào)整代碼適用于BF561,使其能夠應(yīng)用于DSP。流程如下,第一,于VisualDSP4.5++,新建項(xiàng)目組,并構(gòu)建corea、coreb、sml2、sml3四個(gè)項(xiàng)目,分別代表內(nèi)核A、B與存儲(chǔ)空間L1、L2。第二,將源代碼轉(zhuǎn)移到對(duì)應(yīng)項(xiàng)目,隨后反復(fù)進(jìn)行編譯修改。第三,于VisualDSP 4.5++進(jìn)行數(shù)據(jù)讀寫,確保程序正常運(yùn)行,再改寫輸入輸出模式,除去不需要函數(shù),輸入轉(zhuǎn)為從PPI0由A/D轉(zhuǎn)成的數(shù)據(jù),輸出轉(zhuǎn)為輸出緩沖區(qū)。
4.雙核DSP宏塊層并行結(jié)構(gòu)設(shè)計(jì)
4.1并行性分析
視頻編碼算法中并行性分析分兩種,其一,可并行計(jì)算,其數(shù)據(jù)流明確、運(yùn)算簡(jiǎn)便、相關(guān)性弱。其二,不可并行計(jì)算,其運(yùn)算控制與數(shù)據(jù)相關(guān)性強(qiáng)。通過(guò)并行處理視頻壓縮能夠有效應(yīng)對(duì)計(jì)算量大的情況。以下對(duì)MPEG-4進(jìn)行并行分析,優(yōu)化設(shè)計(jì),MPEG-4圖像編碼囊括I、P、B-VOP,其中B-VOP未應(yīng)用于MPEG-4 SP。MPEG-4的層次由上至下分作塊層、宏塊層、條層、視頻對(duì)象層、視頻對(duì)象平面組層,按照上述次序進(jìn)行編碼,于宏塊以外的各層添加起始碼與頭標(biāo),構(gòu)建MPEG-4基本碼流。結(jié)合并行特點(diǎn),從塊層開始考慮并行性,塊層兩核之間進(jìn)行運(yùn)動(dòng)補(bǔ)償將產(chǎn)生強(qiáng)烈的相關(guān)特性,需傳遞信息量巨大,效率不高;而宏塊層與并行粒度最適,在16*16宏塊,實(shí)現(xiàn)并行性能夠達(dá)到很好的效率,但編碼依賴于前一宏塊,所以需采用科學(xué)通信方式,解決該問(wèn)題;條層能取得媒體并行運(yùn)算處理機(jī)制,通過(guò)MPEG引進(jìn)SLICE,是指能夠單獨(dú)進(jìn)行編碼;以更粗糙層進(jìn)行考慮,能夠用VOG實(shí)現(xiàn)并行處理,不過(guò),GOP無(wú)法徹底排除I-VOP、P-VOP、B-VOP間的強(qiáng)依靠性,若設(shè)VOP為IBBPBBPBBPBB能夠得知,最終幀的編碼一定會(huì)依靠下一VOG的首幀,因此同樣產(chǎn)生相關(guān)性,綜上,采取宏塊層實(shí)現(xiàn)并行性處理是最有效的方式。
4.2BF561并行性算法
BF561雙核有大量硬件資源支持,可單獨(dú)運(yùn)行,避免BF561兩個(gè)核通信頻繁降低效率,結(jié)合MPEG-4編碼標(biāo)準(zhǔn),應(yīng)用宏塊層進(jìn)行并行處理。依據(jù)MPEGY編碼步驟,處理視頻數(shù)據(jù),并存在SDRAM,由BF561經(jīng)過(guò)DMA讀取16*16個(gè)宏塊相對(duì)的Y、Cb、Cr,如圖3,根據(jù)4:2:0格式實(shí)現(xiàn)雙核編碼,最后輸入至存儲(chǔ)空間。
綜合BF561雙核對(duì)稱特性及Ⅲ級(jí)存儲(chǔ)優(yōu)點(diǎn),發(fā)揮DMA強(qiáng)大功能,設(shè)計(jì)有效的編碼流程,具體流程如圖4。該流程特點(diǎn)在于核A進(jìn)行流程操控,核B實(shí)現(xiàn)運(yùn)算,結(jié)構(gòu)相對(duì)簡(jiǎn)潔,利于編寫與維護(hù)。為了充分發(fā)揮雙核性能,采用L2傳遞信息與數(shù)據(jù),A核增加控制DMA與處理全局信息的功能。
4.3并行編碼存在問(wèn)題及解決方法
(1)宏塊編碼相關(guān)性
宏塊編碼中,DC值根據(jù)上一宏塊DC值當(dāng)作偏量,不影響A核,其所需DC值已經(jīng)記錄在前一循環(huán)中。B核不相同,其相對(duì)的B、C、D亮度塊不受影響。不過(guò),E、F色差塊需要的DC值存儲(chǔ)在A核,且處于運(yùn)算中,因此,可以在L2劃分3個(gè)儲(chǔ)存變量,只要A核實(shí)現(xiàn)A、E、F編碼,將DC值記錄到相應(yīng)變量,編到B核對(duì)應(yīng)位置,就能從L2傳遞。由于,A核編碼起始時(shí)間早,兩核運(yùn)算能力差不多,相對(duì)于L1,L2讀取速度下降1/2,犧牲速率存在限制,但能更有效地完成編碼。另一種解決方式為,B核直接應(yīng)用前循環(huán)儲(chǔ)存的DC,相關(guān)度強(qiáng),DC偏差自然小,不會(huì)降低運(yùn)算效率,不過(guò)會(huì)產(chǎn)生一定的偏差,降低質(zhì)量。
(2)同步信號(hào)
兩個(gè)核同時(shí)處理宏塊的過(guò)程中,應(yīng)用儲(chǔ)存于L2的變量作為同步的信號(hào)。其中,由于兩個(gè)核可能隨時(shí)處理上述變量,當(dāng)另一個(gè)核讀取時(shí),可能產(chǎn)生讀取的內(nèi)容為儲(chǔ)存在核里的變量的副本,導(dǎo)致讀取值與實(shí)際值不同,運(yùn)行處理錯(cuò)誤的問(wèn)題,因此,變量?jī)?chǔ)存類別需要采用volatile限定符進(jìn)行處理。如添加volatile限定詞,每當(dāng)讀取變量值,轉(zhuǎn)而讀取L2儲(chǔ)存空間的實(shí)際值,保障并行工作運(yùn)行無(wú)誤。
5.結(jié)束語(yǔ)
綜上所述,實(shí)現(xiàn)MPEG-4編碼技術(shù)在DSP上的運(yùn)用,需要充分結(jié)合應(yīng)用Visual DSP 4.5++環(huán)境實(shí)現(xiàn)初步的設(shè)計(jì)編碼,需要了解并掌握MPEG-4 SP框架編碼程序原理,從而實(shí)現(xiàn)編碼系統(tǒng)的整體設(shè)計(jì),通過(guò)語(yǔ)言的轉(zhuǎn)換將軟件移植入DSP,實(shí)現(xiàn)基礎(chǔ)的技術(shù)構(gòu)建。結(jié)合實(shí)際情況,了解到視頻編碼運(yùn)行計(jì)算量龐大,通過(guò)對(duì)比分析,得出采用宏塊層并行結(jié)構(gòu)能夠更有效地實(shí)現(xiàn)視頻編碼技術(shù)目標(biāo),并對(duì)編碼過(guò)程中產(chǎn)生的問(wèn)題提出相應(yīng)的處理辦法、采取對(duì)應(yīng)的解決措施,以完成視頻編碼技術(shù)的實(shí)現(xiàn)。
參考文獻(xiàn):
[1]張小華,占妮.MPEG-4視頻編碼技術(shù)的研究及實(shí)現(xiàn)[J].自動(dòng)化與儀器儀表,2009,{4}(04):97-98+114.
[2]石獻(xiàn). 基于DSP的MPEG-4視頻編碼技術(shù)研究與實(shí)現(xiàn)[D].中南大學(xué),2008.
[3]張立東,熊磊,張雄,畢篤彥. MPEG-4標(biāo)準(zhǔn)中的視頻編碼關(guān)鍵技術(shù)及軟件實(shí)現(xiàn)[A]. 中國(guó)體視學(xué)學(xué)會(huì)圖像分析分會(huì)、中國(guó)航空學(xué)會(huì)信號(hào)與信息處理分會(huì)、陜西省圖象與圖形學(xué)學(xué)會(huì)、陜西省信號(hào)處理學(xué)會(huì).信號(hào)與信息處理技術(shù)——第一屆信號(hào)與信息處理聯(lián)合學(xué)術(shù)會(huì)議論文集[C].中國(guó)體視學(xué)學(xué)會(huì)圖像分析分會(huì)、中國(guó)航空學(xué)會(huì)信號(hào)與信息處理分會(huì)、陜西省圖象與圖形學(xué)學(xué)會(huì)、陜西省信號(hào)處理學(xué)會(huì):中國(guó)體視學(xué)學(xué)會(huì),2002:5.