基于嵌入式平臺的視頻編碼器的實(shí)現
將編碼程序中的較復雜的部分程序段使用arm匯編進(jìn)行改寫(xiě),這樣可以很大程度的提高代碼的運行速度。例如下面就是宏塊預測predict.c中的一段匯編優(yōu)化的代碼,C代碼如下:
4.3 基于PXA255結構的優(yōu)化
結合PXA255硬件結構特點(diǎn),從以下幾個(gè)方面對h.264編碼程序進(jìn)行優(yōu)化處理:
?。?)合理分配變量的存儲位置。根據片內存儲器容量小而存取速度快,片外存儲器容量大但存取速度慢的特點(diǎn),在分配存儲器的時(shí)候對于那些經(jīng)常使用的變量放在片內,如VLC表、運動(dòng)矢量、反量化、反DCT的系數以及其它中間變量等,而對于那些執行次數比較少或者比較大的變量如參考幀則放在片外。此外由于編譯和分配空間是以文件為單位的,所以把頻繁使用的函數放在同一文件中,再將這個(gè)文件放入片內存儲器以高效地利用有限的片內資源。
?。?)PXA255處理器中集成了大量的DSP多媒體操作指令,使用這些指令可以極大的提高程序的運行效率。
?。?)指令并行執行是提高程序執行效率的很好的方法,PXA255處理器中引入了Branch Target Buffer技術(shù),以實(shí)現指令執行的流水線(xiàn)。
5 實(shí)驗結果
為了驗證程序優(yōu)化的效果,改變每次采集的幀數進(jìn)行實(shí)驗結果分析。結果如表1所示。由表l中的實(shí)驗結果可知,經(jīng)過(guò)優(yōu)化的h.264編碼器每秒能處理20幀左右的QCIF圖像,而圖像的質(zhì)量沒(méi)有什么影響。因此,優(yōu)化后,h.264壓縮算法能夠對采集到的圖像進(jìn)行實(shí)時(shí)壓縮,具有很好的實(shí)用性。圖5為采集的視頻經(jīng)過(guò)h.264壓縮后的視頻流。
6 結束語(yǔ)
本文描述了在嵌入式平臺PXA255上實(shí)現新一代視頻壓縮標準h.264編碼算法,并結合硬件芯片特點(diǎn)和專(zhuān)有匯編指令對原程序進(jìn)行相應優(yōu)化,實(shí)現了編碼器實(shí)時(shí)編碼的要求。研究基于嵌入式平臺的h.264視頻編碼算法有很大的實(shí)用價(jià)值,它的優(yōu)異的壓縮性能也將在嵌入式數字電視廣播以及視頻實(shí)時(shí)通信等各個(gè)方面發(fā)揮作用。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論