基于C6000系列DSP的MPEG-4編碼器實現(xiàn)
MPEG-4是一種開放性標準,其中許多部分都沒有規(guī)定,可以加入一些新的算法,因此采用通用DSP能夠隨時更新算法、優(yōu)化算法、使得編碼效率更高。由于MPEG-4編碼算法復(fù)雜,需要存儲的數(shù)據(jù)量大,無論是存儲空間分配、數(shù)據(jù)傳輸還是運算速度對DSP來說都是挑戰(zhàn)。本文介紹了基于C6000系列DSP的MPEG-4視頻編碼卡的軟硬件實現(xiàn)。利用DSP的VLIW和流水線結(jié)構(gòu)設(shè)計程序可以使MPEG-4編碼效率大大提高。
1 DSP特性介紹
由于算法的復(fù)雜性及數(shù)據(jù)量的日益增大,單靠串行結(jié)構(gòu)的處理器完成數(shù)據(jù)處理工作已經(jīng)越來越不可行,因此出現(xiàn)了并行結(jié)構(gòu)的CPU以完成這一新的任務(wù)?,F(xiàn)今最著名的兩種并行體系結(jié)構(gòu)是超長指令字VLIW(Very Long Instruction Word)結(jié)構(gòu)和超標量體系結(jié)構(gòu)。由于超標量體系結(jié)構(gòu)CPU硬件極其復(fù)雜,指令動態(tài)調(diào)度將導(dǎo)致時間的不確定性,所以DSP很少使用這種結(jié)構(gòu)。而一般使用超長指令字(VLIW)結(jié)構(gòu),這種長指令通常包括多個彼此獨立的同步操作。
DSP的CPU結(jié)構(gòu)如圖1所示,它具有兩個通道,每個通道具有4個功能單元(1個乘法器和3個算術(shù)邏輯單元),16個32位通用寄存器,每個通道的功能單元可以隨意訪問本通道的寄存器。CPU還有兩個交叉單元,通過它們,一個通道的功能單元可以訪問另一個通道的寄存器。另外CPU還具有256bit寬的數(shù)據(jù)和程序通道,可以使程序存儲器在每個時鐘周期提供8條并行執(zhí)行指令。這種CPU結(jié)構(gòu)是DSP具有VLIW結(jié)構(gòu)的最基本條件。此系列DSP的存儲空間映射為內(nèi)部存儲器、內(nèi)部外設(shè)及擴展存儲器。其中內(nèi)部存儲器由64KB內(nèi)部程序存儲器和數(shù)據(jù)存儲器構(gòu)成,內(nèi)部程序存儲器可以映射到CPU地址空間或者作為Cache操作。內(nèi)部和外部數(shù)據(jù)存儲器均可通過CPU、DMA或HPI(HostPort Interface)方式訪問,HPI接口使上位機可以訪問DSP的存儲空間。
評論