基于DM642的X.264編碼器優(yōu)化
(2)EDMA。EDMA是增強的直接存儲器訪(fǎng)問(wèn),增加了高達64個(gè)傳輸通道,每個(gè)通道相互獨立,且通道間的優(yōu)先級可以設置。CIF格式的圖像格式為352×288,一幀數據需要101 376 b,L2的CACHE容量有限,不能將所需要的參考幀和當前編碼幀都放到片內CACHE中。X.264處理的最小模塊為宏塊16×16,將當前編碼宏塊保存到片內CACHE中來(lái)提速,DSP運行的同時(shí)將片外的下一編碼宏塊傳輸到片內。采用EDMA的ping-pong緩沖技術(shù)可以對X.264編碼器的數據傳輸部分進(jìn)行優(yōu)化。這樣既利用了DM642片內數據存儲速度快的優(yōu)點(diǎn),又避免了使用較多的片內存儲空間。ping-pong緩沖結構中EDMA與CPU的工作原理如圖2所示。本文引用地址:http://dyxdggzs.com/article/150348.htm
3 優(yōu)化結果
完成對代碼的優(yōu)化過(guò)后,通過(guò)CCS的編譯將x264.out文件加載到DM642目標板上,使用了5個(gè)CIF實(shí)驗序列來(lái)測試優(yōu)化過(guò)后的編碼速率。 CIF序列編碼的幀數為100幀,量化系數為28。通過(guò)CCS所提供的clock工具記錄測試序列中編碼一幀圖像所需要的CPU時(shí)鐘數。實(shí)驗測得的編碼速率數據如表5所示。
將X.264簡(jiǎn)單DSP代碼化移植到DM642上,編碼速率很低,只有平均0.6 f/s。對比表中所示的數據可知,對于紋理簡(jiǎn)單,運動(dòng)不激烈的視頻序列,編碼幀數可達15 f/s左右,對于運動(dòng)激烈,背景紋理較復雜的視頻序列,則只有10 f/s左右。通過(guò)解壓圖片可以看出,解碼后的圖像沒(méi)有發(fā)生明顯的失真。
評論