基于A(yíng)DSP-BF561的H.264編碼器設計
摘 要:依據H.264視頻編碼標準,在DSP上完成視頻編碼器的設計工作,以實(shí)現高質(zhì)量視頻流的實(shí)時(shí)傳輸。編碼器硬件平臺選用AD公司的BF561開(kāi)發(fā)板,圖像采集采用OV7660,利用DMA技術(shù)以達到更高效的視頻采集和數據格式轉換。測試結果表明,在DSP上實(shí)現實(shí)時(shí)的H.264編碼方案,并且滿(mǎn)足高質(zhì)量、低帶寬傳輸的系統要求是完全可行的。
關(guān)鍵詞:H.264;編碼器;BF561;嵌入式系統
0 引 言
互聯(lián)網(wǎng)的帶寬越來(lái)越大,基于互聯(lián)網(wǎng)的信息特別是聲音圖像實(shí)時(shí)數據的傳輸已經(jīng)成為可能。視頻和音頻數據的傳輸正好充分利用了互聯(lián)網(wǎng)帶寬,并達到了實(shí)時(shí)交流以及進(jìn)行遠程開(kāi)會(huì )的可能。視頻會(huì )議系統相比傳統的電話(huà)會(huì )議更充分利用了互聯(lián)網(wǎng)資源,從而降低了運營(yíng)成本。
視頻編碼器是視頻會(huì )議系統的主要構成部分。目前視頻壓縮標準有H.261、H.263、MPEG4和H.264等。新一代視頻編碼標準H.264與以往標準相比具有壓縮率高,網(wǎng)絡(luò )親和性好,視頻質(zhì)量?jì)?yōu)越等優(yōu)點(diǎn)。H.264引入了許多當前視頻編碼中的新技術(shù),使得在相同的重建圖像質(zhì)量下,編碼效率比H.263和MPEG-4高50%左右。因此,視頻編碼器設計中采用了H.264編碼標準,編碼器主要通過(guò)美國AD公司的BF561 DSP芯片實(shí)現。目前,視頻處理方案也已經(jīng)由前幾年的ASIC方案轉向DSP平臺。在DSP平臺上進(jìn)行視頻產(chǎn)品開(kāi)發(fā)有以下幾方面的優(yōu)勢:第一,用戶(hù)開(kāi)發(fā)自由度更大,支持多種個(gè)性化開(kāi)發(fā),可以適應市場(chǎng)不斷提出的新要求,在第一時(shí)間提升產(chǎn)品性能,增強產(chǎn)品的競爭能力;第二,DSP處理能力強,可以在一個(gè)DSP上同時(shí)實(shí)現多路音、視頻信號的壓縮處理;第三,開(kāi)發(fā)周期短,能實(shí)現快速技術(shù)更新和產(chǎn)品換代,各種新出現的快速及優(yōu)化算法可靈活進(jìn)行升級。
1 BF561介紹
BF561采用了對稱(chēng)雙核的架構,在一顆BF561芯片內部集成了2個(gè)BF533 DSP內核,2個(gè)內核主頻都可以高達600 MHz,支持并行處理。BF561處理器的特性保證了其強大的數字信號處理能力,并且支持低電壓低電流供電,能夠滿(mǎn)足多功能的數字消費類(lèi)產(chǎn)品對于性能、功耗方面的要求。
1.1 DMA介紹
Blackfin處理器用直接存儲器訪(fǎng)問(wèn)(DMA)在存儲器之間或存儲器與外設之間傳送數據。DMA控制器可在存儲器和片上外設(外設DMA)之間進(jìn)行數據傳送,以及在L1/L2/L3存儲器間進(jìn)行數據傳送(存儲器DMA或MDMA)。DMA控制器是Blackfin處理器架構中的重要組件,完全獨立于內核,不會(huì )進(jìn)行周期挪用,完全無(wú)需占用處理器內核周期。在理想的應用配置中,內核只需要設置DMA控制器,并在數據調用過(guò)程中響應中斷。
BF561有3個(gè)獨立的DMA控制器DMA1,DMA2和IMDMA。DMA1和DMA2控制器各有12個(gè)外設DMA通道和4個(gè)存儲器DMA通道。IMDMA控制器有4個(gè)存儲器DMA通道。
1.2 基于描述符的DMA
基于描述符的DMA傳送需要存儲于存儲器中的參數來(lái)初始化一個(gè)DMA隊列。描述符包括所有需對DMA控制寄存器正常編程的參數。描述符允許把多個(gè)DMA隊列鏈接在一起。在基于描述符的DMA操作中,可以對一個(gè)DMA通道編程,以便在當前傳送隊列完成后,自動(dòng)設置和啟動(dòng)其他DMA傳送過(guò)程。在管理一個(gè)系統的DMA傳送過(guò)程時(shí),基于描述符的模型能提供最大的靈活性。
描述符列表模型分為描述符列表“小”模式和描述符列表“大”模式。在描述符列表“小”模式中,描述段包括一個(gè)16位字段,用以指向下一描述符入口地址的低16位,地址的高16位通過(guò)寄存器編程得到且保持不變,限制描述符在存儲器的一個(gè)特定64 KB大小的頁(yè)中。當描述符需要跨頁(yè)時(shí),可用能提供32位入口地址的描述符列表“大”模式。
2 H.264視頻編碼器構成
H.264編碼器由視頻采集、數據格式轉換、H.264編碼3部分組成。視頻采集部分負責捕獲圖像,并且將捕獲到的圖像通過(guò)PPI接口填充到指定的視頻幀緩沖區中。數據格式轉換部分完成將輸入的4:2:2格式的圖像轉換成H-264編碼器能夠編碼的4:2:0格式的數據。H.264編碼部分負責對4:2:0格式圖像編碼。
在本視頻編碼器設計中,BF561 A核用于運行操作系統和協(xié)議棧,而H.264算法在B核實(shí)現。
2.1 視頻采集
視頻采集是由攝像頭OV7660完成,OV7660是美國OmniVision公司開(kāi)發(fā)的一款CMOS彩色圖像傳感器芯片,支持VGA,QVGA,GIF等多種分辨率。視頻輸出格式有Raw RGB,GRB 4:2:2和YUV/YCb-Cr(4:2:2)。在本設計中,選擇CIF YVYU(4:2:2)格式,需要設置其相應寄存器COMl=0X00,CLKRC=OX80,COM7=0X30,TSLB=0X05。攝像頭配置完后,打開(kāi)PPIO將視頻數據填充到Blackfin處理器的視頻幀緩沖區中。采用基于描述符的PPI DMA可以很容易的實(shí)現乒乓緩沖,從而確保不會(huì )覆蓋尚未處理完畢的輸入數據。
乒乓緩沖的原理如圖1所示。
設置兩個(gè)CIF 4:2:2幀大小的輸入緩沖區,首先輸入數據通過(guò)PPI接口填充到4:2:2視頻幀1中,當第一幀數據填充滿(mǎn)時(shí),處理器對這幀數據進(jìn)行MDMA搬移和壓縮編碼等操作,與此同時(shí),PPI繼續填充第二個(gè)視頻幀。當第二個(gè)視頻幀填充滿(mǎn)時(shí),處理器處理第二個(gè)視頻幀同時(shí)填充第一個(gè)視頻幀。利用乒乓緩沖,數據將源源不斷地填充到兩個(gè)視頻幀中。
評論