引言
MPEG-4視頻編碼技術(shù)可以在較小的帶寬下傳輸高質(zhì)量的視頻數(shù)據(jù),節(jié)省大量存儲(chǔ)空間,但編碼復(fù)雜度也較高,目前豐要有3種實(shí)現(xiàn)方案:在通用PC上編程實(shí)現(xiàn);通過ASIC硬件實(shí)現(xiàn)以及使用通用DSP芯片實(shí)現(xiàn)。與前兩者相比,通用DSP芯片實(shí)現(xiàn)方案具有以下優(yōu)勢(shì):運(yùn)算性能強(qiáng);可升級(jí)性好,與PC類似,通用DSP芯片的功能仍是通過編程來實(shí)現(xiàn)的,能快速、方便地進(jìn)行軟件升級(jí)及添加新的功能,以適應(yīng)技術(shù)發(fā)展和市場(chǎng)變化;成本低、功耗低、適應(yīng)場(chǎng)合廣泛。
系統(tǒng)硬件設(shè)計(jì)
編碼系統(tǒng)處理核心為ADSP-BF533(以下簡(jiǎn)稱BF533),利用其多功能并行接口PPI采集視頻數(shù)據(jù),該P(yáng)PI具有DMA功能,無需內(nèi)核干預(yù)便可進(jìn)行高速數(shù)據(jù)傳輸,傳輸完成后可自動(dòng)向內(nèi)核發(fā)出DMA中斷。
視頻采集部分選用0mniVision公司的CIF級(jí)彩色CMOS圖像傳感芯片OV6630,其最大分辨率為352×288,采集速率最高可達(dá)60fps,且片內(nèi)硬件實(shí)現(xiàn)了原始RGB數(shù)據(jù)到4:2:2YUV格式數(shù)據(jù)的轉(zhuǎn)換,用戶無需自行編寫復(fù)雜的RGB轉(zhuǎn)YUV應(yīng)用程序,大大減少了代碼量,很適合用作MPEG-4編碼。
設(shè)置OV6630
輸出為4:2:2 YUV視頻數(shù)據(jù)格式,BF533的PPI即可直接接收該格式視頻數(shù)據(jù)。二者可實(shí)現(xiàn)無縫連接,無需中間電路。
考慮到目前還有大量模擬制式的攝像機(jī)仍在廣泛應(yīng)用,系統(tǒng)中還增加了視頻ADC ADV7183,該芯片可以把PAL制模擬電視信號(hào)轉(zhuǎn)為ITU-R656標(biāo)準(zhǔn)4:2:2格式數(shù)字視頻,同樣將ADV7183輸出端口與BF533的PPI相連。這樣,既可以采用系統(tǒng)自帶CMOS圖像傳感器采集視頻,也可以外接PAL制模擬攝像機(jī),用戶可自由選擇。
由于BF533片內(nèi)存儲(chǔ)空間有限,而視頻采集、編碼數(shù)據(jù)量巨大,選用一片Hynix公司的4MBSDRAM HY57V56162(內(nèi)含4個(gè)內(nèi)部子集)作為BF533片外大容量動(dòng)態(tài)存儲(chǔ)器。同時(shí),為存放程序啟動(dòng)代碼,利用一片容量為1MB的閃存芯片PSD4256G6V構(gòu)成BF533的片外非易失性存儲(chǔ)器。系統(tǒng)硬件構(gòu)成如圖1所示。
編碼器設(shè)計(jì)實(shí)現(xiàn)
存儲(chǔ)器空間分配
BF533采用統(tǒng)一的32位、共4GB可尋址空間,包括位于片內(nèi)的L1高速SRAM,片外的同步存儲(chǔ)器空間SDRAMSpace,以及異步存儲(chǔ)器空間(A syn chronousMemory Space)。
片內(nèi)Ll SRAM包括:64KB指令SRAM、16KB指令Cache/SRAM、32KB數(shù)據(jù)SRAM、32KB數(shù)據(jù)Cache/SRAM,以及4KB便簽存儲(chǔ)器。
L1 SRAM工作在內(nèi)核時(shí)鐘頻率,內(nèi)核可以對(duì)其進(jìn)行高速帶寬訪問。它是所有存儲(chǔ)器中訪問速度最快的,但容量有限,因此,只應(yīng)將那些最關(guān)鍵的代碼和數(shù)據(jù)存放在L1SRAM里。同時(shí),指令Cache和數(shù)據(jù)Cache全部使能,這樣可以大大提高訪問片外存儲(chǔ)器的效率。Cache設(shè)置是通過相應(yīng)的I M E M_C O N T R O L、DMEM_CONTROL,以及CPLB寄存器配置實(shí)現(xiàn)的。
由于BF533片內(nèi)存儲(chǔ)空間有限,而原始視頻數(shù)據(jù)量較大:CIF級(jí)4:2:2格式每幀圖像占用的空間為202752字節(jié),如果采用模擬PAL制式視頻輸入,每幀占用空間更是高達(dá)829440字節(jié),只能將其放至SDRAM中。同樣,視頻編碼數(shù)據(jù)也應(yīng)存放在SDRAM中。此外,系統(tǒng)啟動(dòng)完成Boot loader引導(dǎo)后,主要關(guān)鍵代碼放在片內(nèi)L1程序SRAM中執(zhí)行,但大部分程序代碼仍需從SDRAM中執(zhí)行。由于SDRAM特殊的讀/寫方式,如果下次訪問內(nèi)存頁與當(dāng)前活動(dòng)頁(Active Page)不同,即出現(xiàn)了頁錯(cuò)失(Page Miss),SDRAM就必須首先關(guān)閉當(dāng)前頁,再打開新的頁,大大降低了SDRAM讀寫速率。而該系統(tǒng)中SDRAM又需存儲(chǔ)多種數(shù)據(jù),內(nèi)核、DMA均需要頻繁訪問SDRAM,因此,應(yīng)精心分配SDRAM空間,以使頁錯(cuò)失現(xiàn)象盡量少發(fā)生。
BF533的SDRAM控制器(SDC)可以支持SDRAM每個(gè)內(nèi)部子集中的一個(gè)活動(dòng)頁,且在這4個(gè)I-Bank中進(jìn)行切換時(shí)無需任何延遲。這樣,將不同的數(shù)據(jù)、代碼映射至不同的I-Bank,可使頁錯(cuò)失現(xiàn)象降到最少,進(jìn)而改善訪問SDRAM的效率。
由于需要實(shí)時(shí)編碼,為保證視頻采集和壓縮可以同步執(zhí)行,采用乒乓緩沖技術(shù):設(shè)置了兩塊視頻幀接收緩沖區(qū)BUF1和BUF2,采用BF533的DMA傳輸鏈方式進(jìn)行傳輸。當(dāng)某一DMA緩沖區(qū)填滿后,內(nèi)核對(duì)其作MPEG-4編碼(同時(shí)也在構(gòu)建參考幀),此時(shí)DMA開始對(duì)另一塊緩沖區(qū)進(jìn)行填充。由于BUF1、BUF2、程序代碼以及參考幀均位于不同的I-Bank,減少了SDRAM頁面切換的機(jī)會(huì),實(shí)現(xiàn)了對(duì)SDRAM的高效訪問。
來源:電子設(shè)計(jì)應(yīng)用 |