基于ADSP-BF5619處理的H.264視頻編碼器設(shè)計(jì)
在ADSP-BF561開發(fā)板上實(shí)現(xiàn)這個(gè)編碼算法時(shí),其主要的難點(diǎn)是兩個(gè)核之間如何通信以及協(xié)調(diào)工作。雙核同時(shí)運(yùn)行一個(gè)視頻編碼程序時(shí),需要對(duì)數(shù)據(jù)進(jìn)行共享和交換。雖然,使用片外內(nèi)存或者L2共享存儲(chǔ)器來進(jìn)行宏塊數(shù)據(jù)交換的實(shí)現(xiàn)方法比較簡(jiǎn)單,且不需要進(jìn)行數(shù)據(jù)的拷貝,但是,大量訪問低速率存儲(chǔ)器的操作將極大地影響程序執(zhí)行的速率,進(jìn)而影響編碼器的編碼效率,所以,不能采用共享內(nèi)存來進(jìn)行宏塊數(shù)據(jù)的交換。本文采用的是IMDMA在雙核各自的L1數(shù)據(jù)段直接進(jìn)行數(shù)據(jù)交換,而且在編碼處理的同時(shí)進(jìn)行內(nèi)存數(shù)據(jù)的交換,從而避免了大量訪問低速率的存儲(chǔ)空間操作,減少了程序執(zhí)行的時(shí)間。而由于消息交換數(shù)據(jù)量很小,可以使用共享存儲(chǔ)器,因此,可以采用訪問速率相對(duì)較快的L2存儲(chǔ)器來進(jìn)行存取。事實(shí)上,筆者已經(jīng)經(jīng)過優(yōu)化編程在BF561開發(fā)板上實(shí)現(xiàn)了上述編碼算法。其雙核編碼主流程如圖5所示。本文引用地址:http://butianyuan.cn/article/166848.htm
3 試驗(yàn)結(jié)果與數(shù)據(jù)分析
經(jīng)過優(yōu)化,H.264的編碼性能有了較大的提升,實(shí)現(xiàn)了在BF561芯片上對(duì)4CIF格式視頻的實(shí)時(shí)編碼處理。同時(shí),筆者還在VisualDSP++5.0編譯環(huán)境下分別對(duì)原編碼器和雙核編碼器實(shí)現(xiàn)的編碼結(jié)果進(jìn)行了測(cè)試,其結(jié)果如表1所列。事實(shí)上,編碼速度基本取決于圖像畫面的運(yùn)動(dòng)情況和顏色是否豐富。從上面的數(shù)據(jù)可以看出,對(duì)于不同序列,其編碼速度也不同。Claire序列的編碼速度之所以很快,是因?yàn)閳D像背景靜止,只有肩部和頭部有運(yùn)動(dòng),所以編碼數(shù)據(jù)量較表1對(duì)不同序列的優(yōu)化結(jié)果(25f/s CIF格式)少,編碼速度較高。另外,如果圖像比較簡(jiǎn)單,其編碼速度也會(huì)較高,從而節(jié)約編碼時(shí)間。
試驗(yàn)結(jié)果表明,采用本文的優(yōu)化方法可以節(jié)約大量的H.264視頻編碼數(shù)據(jù)處理的時(shí)間,能較好地滿足4CIF視頻序列實(shí)時(shí)編碼的要求。而對(duì)于很復(fù)雜的圖像,也可以在一定的量化參數(shù)下實(shí)現(xiàn)4CIF的實(shí)時(shí)編碼。
4 結(jié)束語(yǔ)
本文重點(diǎn)研究了基于ADSP-BF561雙核處理器的H.264視頻編碼算法的優(yōu)化及其實(shí)現(xiàn)方法。同時(shí)針對(duì)ADSP-BF561雙核處理器的體系結(jié)構(gòu),對(duì)編碼的關(guān)鍵部分進(jìn)行了算法流程的調(diào)整,并通過BF561雙核之間的數(shù)據(jù)交換和協(xié)調(diào)工作,在雙核上實(shí)現(xiàn)了4CIF格式視頻數(shù)據(jù)的實(shí)時(shí)編碼。實(shí)踐證明,使用VisualDSP++5.0仿真軟件,在ADSP-BF561開發(fā)板上實(shí)現(xiàn)25f/s的H.264 4CIF視頻編碼系統(tǒng),可以滿足人們對(duì)視頻傳輸?shù)男枨蟆?br />
評(píng)論