基于Intel Xscale和嵌入式Linux的視頻模塊設(shè)計(jì)
3.2.3 解碼模塊
由于圖像經(jīng)過了壓縮引擎的壓縮,在本地終端進(jìn)行實(shí)時(shí)顯示之前必須經(jīng)過解碼模塊的解碼,如果視頻流通過網(wǎng)絡(luò)進(jìn)行傳輸,在本地終端視頻流則不必經(jīng)過該模塊,但是遠(yuǎn)程應(yīng)用仍然需要該模塊。目前圖像壓縮技術(shù)主要采用余弦變換(DCT),小波變換(Wavelet)和子帶編碼等技術(shù),其中余弦變換具有快速算法,易于用軟硬件實(shí)現(xiàn),且壓縮性能接近統(tǒng)計(jì)最佳,目前被廣泛采用,這也是壓縮引擎采用的算法。余弦變換用于數(shù)字圖像壓縮編碼時(shí),一般采用二維變換,先將整幅圖像分成 8×8 或16×16 宏塊,以宏塊為單位進(jìn)行二維變換,再對每一宏塊的變換域系數(shù)用Zig - Zag 方式進(jìn)行Huffman 變長編碼或算術(shù)編碼。在圖像接收端作相反的處理,即先恢復(fù)各宏塊的變換域系數(shù),再經(jīng)余弦反變換即可恢復(fù)圖像數(shù)據(jù),其解碼原理和主要步驟如圖4 所示。
該模塊是提高實(shí)時(shí)性的關(guān)鍵所在,為提高實(shí)時(shí)性,我們對代碼進(jìn)行了有效的優(yōu)化,主要措施有:針對Xscale微處理器的特點(diǎn),合理安排程序流程,盡量做到并行處理,提高程序運(yùn)行效率;采用適合整數(shù)運(yùn)算的快速反余弦變換算法,變換中只用加法和移位,減少了乘法運(yùn)算量,提高了運(yùn)算效率;采用基于查表的快速 Huffman 解碼算法,以減少運(yùn)算量,提高計(jì)算速度。通過這些措施既減少了內(nèi)存的開銷,也加快了解碼的速度,取得了滿意的效果。
3.2.4 視頻應(yīng)用模塊
視頻應(yīng)用模塊包括兩部分:本地應(yīng)用子模塊完成視頻圖像的實(shí)時(shí)顯示,本地用戶控制和圖像的存儲等功能;網(wǎng)絡(luò)傳輸子模塊完成基于RTP 的壓縮后的視頻流數(shù)據(jù)傳輸,遠(yuǎn)程控制等功能。借助于Linux 操作系統(tǒng)對多線程機(jī)制的良好支持,主線程專門負(fù)責(zé)消息的響應(yīng),使程序能夠即時(shí)響應(yīng)用戶通過鼠標(biāo)或鍵盤輸入的命令或其他事件,輔助線程用于完成圖像的實(shí)時(shí)顯示、存儲和網(wǎng)絡(luò)傳輸?shù)绕渌容^費(fèi)時(shí)的工作,這樣就不至于影響主線程的運(yùn)行,保證在做圖像解碼顯示和數(shù)據(jù)傳輸?shù)耐瑫r(shí),能夠即時(shí)響應(yīng)用戶的輸入。不同的線程完成不同的任務(wù),提高了程序的模塊化,便于維護(hù)和擴(kuò)展,充分利用了系統(tǒng)資源,有利于提高應(yīng)用程序的實(shí)時(shí)性。由于對視頻輸出設(shè)備,RGB空間格式更加直接高效,而解碼??斓妮敵鰹閅UV顏色空間子格式,所以在視頻圖像的回顯之前必須進(jìn)行顏色空間的轉(zhuǎn)換。該模塊圖形界面的實(shí)現(xiàn)是通過調(diào)用MiniGUI 提供的API 函數(shù)來實(shí)現(xiàn)的,MiniGUI 提供了比較豐富的類Win32API 函數(shù),給我們開發(fā)圖形界面帶來了很大的方便。
4 視頻模塊性能及測試效果
視頻模塊經(jīng)過終端測試,性能結(jié)果如表1 所示。通過結(jié)果可以看出,采集的經(jīng)過壓縮的視頻圖像幀速和經(jīng)過網(wǎng)絡(luò)傳輸后基于PC顯示的幀速都達(dá)到了理想水平,但視頻圖像在終端上顯示時(shí),由于嵌入式系統(tǒng)處理能力較PC 機(jī)弱,解碼模塊和顯示模塊雖然經(jīng)過了優(yōu)化,但仍然占有一定的時(shí)間,使速度下降了很多。但該速度相對于嵌入式系統(tǒng)來說,也達(dá)到了實(shí)用的地步,并且不影響終端基于網(wǎng)絡(luò)的視頻應(yīng)用,隨著嵌入式微處理器處理能力的逐漸增強(qiáng),這個(gè)問題也一定能得到很好的解決。比如,集成英特爾無線MMX 技術(shù)的處理速度更快的英特爾PXA27x 處理器家族新增了一系列新技術(shù)以提供額外的性能來支持高級視頻。
終端視頻模塊采集的圖像經(jīng)過壓縮、解壓縮后具有較高的質(zhì)量,基于PC 和終端顯示并未見明顯區(qū)別,圖像效果及用戶界面窗口如圖5 所示。
5 結(jié)論
本文針對基于Intel Xscale 和嵌入式Linux 的多媒體終端對視頻應(yīng)用的需求,從實(shí)時(shí)性、功耗和體積等著手,提供了一種多媒體終端圖像實(shí)時(shí)連續(xù)采集、顯示管理和網(wǎng)絡(luò)傳輸?shù)姆桨?,并且在?shí)際中得到了驗(yàn)證。由于采用了模塊化設(shè)計(jì)和設(shè)計(jì)的靈活性,只需稍加修改就還可以很容易的移植到別的嵌入式系統(tǒng)多媒體應(yīng)用中。我們可以在該終端平臺上方便地進(jìn)行一些基于視頻模塊的網(wǎng)絡(luò)應(yīng)用開發(fā),我們認(rèn)為有價(jià)值的進(jìn)一步開發(fā)與研究方向包括: 作為嵌入式視頻網(wǎng)絡(luò)接入終端滿足不同方面的需要,例如遠(yuǎn)程數(shù)字監(jiān)控系統(tǒng), 交互式醫(yī)療,交互式可視多媒體遠(yuǎn)程教學(xué)、網(wǎng)絡(luò)電臺、視頻點(diǎn)播等。較PC機(jī)實(shí)現(xiàn)的系統(tǒng)有具有體積小、成本低和穩(wěn)定性高的特點(diǎn),開發(fā)具有自主知識產(chǎn)權(quán)的手持式多媒體視頻網(wǎng)絡(luò)終端系統(tǒng)。當(dāng)今世界已經(jīng)進(jìn)入了Internet 時(shí)代, 嵌入式系統(tǒng)接入Internet 已成為網(wǎng)絡(luò)接入重要的基礎(chǔ)信息設(shè)施。因此, 具有視頻模塊的嵌入式系統(tǒng)在交互式多媒體、嵌入式系統(tǒng)、消費(fèi)電子產(chǎn)品等領(lǐng)域具有很強(qiáng)的應(yīng)用背景和市場前景。 linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論