嵌入式視頻圖像系統壓縮算法的實現和優化
DOPTPU4是個計算 4對 8位數據乘積求和的運算。兩個 DOPTPU4可在單周期內并行 , 所以可極大地提高 SAD的計算速度。具體步驟如下:
本文引用地址:http://www.104case.com/article/92476.htm1)兩個 LDNDW指令從當前幀和參考幀取 8個像素;
2)兩個 SUBABS4計算 8個像素的差值;
3)兩個 DOTPU4計算 8個像素乘積求和。
像素插值也是個計算量大的模塊。AVG4指令可執行 4個 8位數值平均值計算。AVG2可以執行 2個 16位數據的平均計算。SHRMB(Shift Right andMerge Byte) 右移第 2個寄存器 , 把第 1個寄存器的低位作為高字節。AVG4計算平均值,SHRMB處理結果。
此外筆者參考 TI提供的 IMGLIB支持庫 該庫中還包括了許多常用的圖像和視頻處理的函數 ,以完成 DCT、 IDCT (Inverse Direct Cosine Transform)、中值濾波等功能 , 這些函數都是經過匯編優化。完全能夠實現軟件流水, 執行效率很高。采用標準序列 Coastguard.yuv編碼 5幀數據,主要函數優化前后性能比較,如表 1所示。
表 1 各個函數優化性能比較
Tab1Performance of functions by analysis
利用 EDMA進行數據搬移, 提高存儲速度
TMS320C6455DSP支持 EDMA功能 , 是在沒有 CPU介入的情況下 , 訪問存儲器的一種工作方式。它可以直接通過 EDMA通道 , 提前把外設或片外存儲器中的數據直接搬移到片上內存。對 CPU來說 , 所訪問的數據總是在片內的 , 沒有阻塞的情況發生 , 減少了 CPU等待時間[8]。
使用 TI的 CSL (Chip SupportLibrary )支持功能[9,10]。它有專門的 DMA模塊 , 便于對 DMA的各個存儲器控制。主要使用 DAT函數 , 進行 DMA存儲器間數據傳送。其中使用 DAT copy ( )和DAT fill ( )。
評論