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