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