H.264視頻編碼器在DSP上的實現與優化
摘要:在DM642 EVM平臺上實現了 H.264視頻編碼器,并從內存分配、Cache優化、代碼優化以及匯編程序級優化等幾個方面對編碼器進行了優化。實驗結果表明,優化后的編碼器能保持較高的圖象質量和壓縮效率,并具有較好的實時性能。
本文引用地址:http://www.j9360.com/article/151099.htm1 引言
H.264/AVC是ITU-T視頻編碼專家組和ISO/IEC運動圖象專家組聯合提出的新一代視頻編碼標準。在相同的條件下,與MPEG-1、MPEG-2、H.263、MPEG-4等標準相比,H.264/AVC能夠減少50%的碼流。但是,H.264的高編碼效率是以高運算量和高復雜度為代價的。
本文采用具有較高運算速度和較強數據處理能力的DM642 EVM作為H.264視頻編碼器實現和優化的DSP硬件平臺,實現了 H.264視頻編碼算法,并對算法程序進行了綜合優化。實驗結果表明,經過優化的 H.264視頻編碼器能保持較高的圖象質量和壓縮效率,并具有較好的實時性能。
2 H.264視頻編碼技術及DM642 EVM開發平臺
2.1 H264視頻編碼技術
H.264壓縮算法采用與H.263和MPEG-4類似的基于塊的混和編碼方法,采用幀內(Intra)和幀間(Inter)兩種編碼模式。為了提高編碼效率、壓縮比和圖象質量,H.264采用了許多新的編碼技術,這些技術主要有:
⑴ H.264標準壓縮系統由視頻編碼層(VCL,Video Coding Layer)和網絡抽象層(NAL,Network Abstraction Layer)兩部分組成。
⑵ H.264采用幀內預測,昀大程度地減少圖象的空間冗余信息。
?、?H.264的幀間預測采用多幀參考幀(參考的個數為1~5)、高精度的內插算法(包括1/4和 1/8精度)、多種變形搜索塊等新的方法,在很大程度上提高運動估計與補償的效率。
?、?1/4、1/8象素精度的亞象素運動估計:對于QCIF視頻格式使用1/4象素精度預測方式,對于CIF視頻格式使用1/8象素精度預測方法。
?、?殘差圖象的4x4整數DCT變換技術,逆變換過程中沒有匹配錯誤問題。
⑹ 新的環路濾波技術及熵編碼技術等。
2.2 DM642 EVM開發平臺DM642
EVM是TI推出的一款專門面向多媒體應用的開發平臺,板上資源包括:DM642 CPU芯片、4M×64bit同步動態存儲器(SDRAM)、4M×8bit FLASH存儲器和一路視頻編碼和兩路視頻解碼等,其結構如圖1所示。DM642基于C64X內核,主頻高達600MHz,采用超長指令字(VLIW)結構,每個指令周期可并行處理8條32位的指令,處理能力達4800MIPS;片上內存采用二級緩存Cache結構,L1由16KB的數據Cache L1D和16KB的程序Cache L1P組成,256KB的L2可配置成SRAM或Cache,大幅度提高了程序的運行性能;片內64位的EMIF(External MemoryInterface)接口可以與SDRAM、Flash等存儲器件無縫連接,極大地方便了大量數據的搬移;DM642包括了3個專用的視頻端口(VP0~VP2),用于接收、處理視頻數據,提高了整個系統的性能;DM642自帶的EMAC口以及從EMIF口擴展出來的ATA口,還為處理完成后產生的海量數據提供了存儲通道。因此,實現H.264的視頻算法,高性能的DM642 EVM是一個理想的硬件平臺。
3 H.264視頻編碼器的實現與優化
3.1 編碼器的實現
H.264視頻編碼器的實現有多種方法,不過大部分都是進行移植、優化的操作。H.264代碼要在DSP的軟件平臺CCS環境下運行,需要注意幾個問題:如配置文件、庫文件的改動、數據類型的調整、匯編程序的處理、內存終結模式的調整等。
H.264編碼采用變換和預測的混合編碼方法,其原理如圖2所示。輸入幀或者場Fn以宏塊為單位被編碼器處理,即將圖象分成子圖象塊,以子圖象塊作為編碼單元。當采用幀內預測編碼時,預測值P是由當前片中已編碼的參考圖象經過運動補償(MC)后得出的,其中參考圖象用F1n-1表示;為了提高預測精度,從而提高壓縮比,實際的參考圖象可在過去或未來已編碼解碼重建和濾波的幀中選擇。預測值P和當前塊相減后,產生一個殘差塊Dn,經塊變換、量化后產生一組量化后的變化系數X,再經過熵編碼,與解碼所需的一些邊信息(如預測模式量化參數、運動矢量等)一起組成一個壓縮后的碼流,經過NAL供傳輸和存儲用。
評論