基于 TMS320DM6446 的 H.264 編碼器的設計與優(yōu)化
2003年發(fā)布的H.264視頻壓縮編碼標準在一定程度上解決了要在盡可能低的碼率下獲得盡可能好的圖像質(zhì)量這一問(wèn)題。在相同的重建圖像質(zhì)量下,H.264能夠比H.263節約50%左右的比特率,此外H.264還增強了其對網(wǎng)絡(luò )的適應性,差錯的恢復能力,使其非常適用于數字視頻存儲、IPTV及手機電視等視頻質(zhì)量要求高而信道傳輸環(huán)境不穩定的場(chǎng)合。
本文引用地址:http://dyxdggzs.com/article/151137.htm
由于加入了多模式位移估計、基于4×4塊的整數變換等多種新的算法,使H.264算法本身的復雜度大幅增加。因此本文采用基于TI的TMS320DM6446的DAVINCI_EVM平臺作為算法的硬件平臺,提出針對達芬奇平臺對H.264編碼器進(jìn)行優(yōu)化,在不降低編碼質(zhì)量的情況下提高程序運行效率,降低運算復雜度的一個(gè)實(shí)現方案。
H.264編碼器的算法流程
H.264編碼器結構如圖1所示,輸入的Fn為當前幀或場(chǎng),編碼器以宏塊為單位進(jìn)行處理,每個(gè)宏塊可以選擇幀內或者幀間預測兩種編碼方式。如果采用幀內編碼模式,其預測值PRED(圖中為P)是由本幀之前已經(jīng)經(jīng)過(guò)編碼、解碼、重建的一些樣本點(diǎn)生成。而如果采用幀間模式,則P由一個(gè)或者多個(gè)參考幀的運動(dòng)補償預測生成。預測值P和當前塊相減后,產(chǎn)生一個(gè)殘差塊D,經(jīng)塊變換、量化后產(chǎn)生一組量化后的變換系數X,再經(jīng)熵編碼,與解碼所需的一些信息一起組成一個(gè)壓縮后的碼流,經(jīng)NAL供傳輸和存儲用。
圖1 H.264編碼器結構
編碼硬件平臺概況
本文采用的達芬奇數字視頻評估模塊DVEVM(Digital Video Evaluation Module)是TI提供的用來(lái)評估DaVinci技術(shù)和DM644x體系架構的評估模塊,是強調片上能力的一個(gè)很好的參考平臺。其硬件資源包括TM320DM6446的DSP和ARM9的雙核芯片、128MB的SDRAM、16MB的NAND Flash以及豐富的外設接口。
TM320DM6446中用于編碼器具體實(shí)現的C64x+ DSP的時(shí)鐘頻率達到600MHz。C64x+ DSP的內部存儲器的配置包括32KB的程序存儲器L1P、80KB的數據存儲器L1D和64KB的二級緩存L2。圖2為T(mén)M320DM6446中DSP端的核心C64x+的結構原理圖。
編圖2 C64x+結構原理圖
碼器在TM320DM6446上的實(shí)現
由于DSP平臺與PC平臺的差異性,必須對PC上開(kāi)發(fā)的編碼器程序進(jìn)行結構上的調整,并進(jìn)行合理的內存分配才能在DSP平臺上正常的運行。主要實(shí)現步驟如下。
1 編碼器C語(yǔ)言結構調整
PC平臺上用C語(yǔ)言實(shí)現的編碼器在DSP平臺上的編碼幀率(fps)非常低,平均2秒才能編完一幀,其主要原因是無(wú)法利用DSP的并行處理機制。因此針對C64x+的特點(diǎn),將程序中對流水線(xiàn)操作影響較大的的循環(huán)拆分成若干小循環(huán)實(shí)現。對編碼器運行速度影響較大的模塊如sad的計算,DCT變換等采用CCS自帶的圖像庫以提高編碼效率。
評論