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