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