基于C6000系列DSP的MPEG-4編碼器實(shí)現
2 MPEG-4編碼卡的硬件設計
2.1 視頻采集
視頻采集部分主要完成模擬視頻到數字視頻的轉換,包括一片視頻采集芯片和一片小的CPLD。CPLD的作用是控制視頻采集芯片,將采得的數據從8位或16位轉化為32位,并且使數據按照Y、U、V分開(kāi)的方式排列。這樣相當于對采集到的數據進(jìn)行了一次預處理,以便于視頻編碼使用。另外,CPLD將32位寬的數據輸出給32位的FIFO。用32位的FIFO以及將視頻數據轉換為32位,可以使DSP讀取視頻數據時(shí)32位的數據總線(xiàn)沒(méi)有空閑,從而提高DSP讀取視頻數據的效率;這里使用FIFO是為了減少DSP讀取數據的時(shí)間、降低高速設備和低速設備的不匹配。每次FIFO半滿(mǎn)時(shí),CPLD會(huì )給DSP發(fā)送中斷信號,并且在中斷處理程序中使用DMA方式讀取視頻數據;如果不使用FIFO,DSP會(huì )頻繁中斷,從而花費大量時(shí)間在入棧、出棧以及寄存器的設置上。
2.2 視頻編碼
DSP讀入視頻數據后進(jìn)行先期處理,如將YUV格式轉為RGB格式等;然后進(jìn)行MPEG-4視頻編碼。在這一過(guò)程中,數據訪(fǎng)問(wèn)通常要占用50%的時(shí)間,算術(shù)運算要占用30%的時(shí)間,控制要占用20%的時(shí)間。因為需要進(jìn)行運動(dòng)估計和運動(dòng)補償,在數據存儲器中通常保存一幀I(原始幀)幀圖像和至少一幀P(預測幀)幀圖像,這些圖像占用的空間都比較大,因此一般都放在外部存儲器SDRAM里。在編碼過(guò)程中還要存儲DCT系數、運動(dòng)向量、量化矩陣、可變長(cháng)編碼表、Z形編碼表等,由于占用較小的存儲空間而且會(huì )反復用到,因此把它們放在片內存儲器中。
評論