米 波,賀鋒濤
(西安郵電大學(xué) 電子工程學(xué)院,陜西 西安 710061)
當(dāng)代社會(huì)中,視頻圖像采集系統(tǒng)應(yīng)用越來越廣泛,從工業(yè)控制到工業(yè)檢測,從醫(yī)學(xué)的圖像處理到計(jì)算機(jī)智能機(jī)器人的視覺識(shí)別等等。隨著3G時(shí)代的到來,4G網(wǎng)絡(luò)的開啟,以視頻聊天為基礎(chǔ)的視頻通信、網(wǎng)絡(luò)通信的主要傳輸基本元素更加偏向以視頻傳輸為主。在此大背景、大趨勢(shì)下,視頻系統(tǒng)如何才能在滿足低功耗的基本要求下,把接收到的大量的視頻流信息及時(shí)快速的顯示出來成為迫切問題。本文以STM32F107為主芯片,在相同硬件基礎(chǔ)之上,對(duì)大量視頻流信息進(jìn)行了視頻流圖像更新方法的研究,并提出了基于STM32視頻流圖像更新的解決方案。
視頻流產(chǎn)生的基本原理是人體視覺的暫留現(xiàn)象和圖像的動(dòng)態(tài)更新兩個(gè)因素共同作用的結(jié)果。科學(xué)研究表明,視頻流動(dòng)畫效果的產(chǎn)生需要每秒24副圖像動(dòng)態(tài)更新才能完成。也就是說,每產(chǎn)生一秒的視頻流需要24副圖像。那么在具體的應(yīng)用中,就要計(jì)算實(shí)際的數(shù)據(jù)量。以當(dāng)前的比較主流的320×240TFT LCD液晶屏為例(以下同例),一秒的實(shí)際的數(shù)據(jù)量應(yīng)為24×320×240=1843200,其中由于TFT LCD液晶是以像素點(diǎn)進(jìn)行工藝制成,每個(gè)像素點(diǎn)在數(shù)據(jù)對(duì)應(yīng)上是一個(gè)字節(jié)(詳細(xì)請(qǐng)參閱相關(guān)TFT LCD液晶數(shù)據(jù)手冊(cè)),那么通過計(jì)算應(yīng)該為1843200 個(gè) 字 節(jié),即 1800KB=1.75MB。而STM32F107主芯片的工作頻率為72MHz,也就是說0.024S(1.75/72)內(nèi)完整的刷新一秒內(nèi)的數(shù)據(jù)量。但是由于液晶在顯示的過程中還需要對(duì)圖像信息維持(即圖像在顯示的過程中,圖像每刷新過后,由于材質(zhì)的因素,一旦沒有信號(hào)則圖像信息就會(huì)消失),所以需要不斷的刷新進(jìn)行數(shù)據(jù)維持,而且不同材質(zhì)工藝制作維持時(shí)間不同。以經(jīng)驗(yàn)值0.02S來計(jì)算,最后可以得出,要在一秒內(nèi)以這樣的數(shù)據(jù)量進(jìn)行計(jì)算,那么在一秒內(nèi)需要對(duì)液晶屏幕至少要進(jìn)行22次的刷新。這個(gè)計(jì)算結(jié)果雖然在常用的視頻流使用中不會(huì)造成很大的影響(觀察者進(jìn)行觀察時(shí)不會(huì)有明顯視頻延時(shí)的感覺),但是在中大型視頻流系統(tǒng)和視頻流加速放映時(shí),視頻流遲滯,圖像模糊,重影等等現(xiàn)象就比較嚴(yán)重。
針對(duì)此問題,本文提出基于STM32視頻流圖像更新的解決方案。
硬件平臺(tái)主要以STM32F107為主芯片;液晶屏,以3.5寸320×240TFT LCD液晶屏;其他硬件有STM32F107最小系統(tǒng)電路;SD卡,由于數(shù)據(jù)量比較大,將大量數(shù)據(jù)儲(chǔ)存在SD中;若干按鍵。主要的硬件原理圖,如圖1所示:
圖1 主要硬件原理圖
軟件平臺(tái)主要使用keil for ARM ,JTAG下載器。
通過上述的原理描述和實(shí)際的應(yīng)用發(fā)現(xiàn),在每一秒與每一秒之間的數(shù)據(jù)顯示中,液晶顯示的部分區(qū)域是不會(huì)變化或者很少變化的。能否在數(shù)據(jù)進(jìn)入液晶顯示之前,進(jìn)行數(shù)據(jù)的分析,對(duì)不同的數(shù)據(jù)進(jìn)行特殊處理,從而達(dá)到減少送入液晶顯示的數(shù)據(jù)壓力(即直接的減少了),間接的減少了主處理器用于圖像更新數(shù)據(jù)計(jì)算時(shí)間。具體方案如下:
(1)首先,對(duì)整個(gè)顯示圖像進(jìn)行顯示區(qū)域的分割,以常用分割為例,分為8個(gè)區(qū)域,如圖2所示。為了便于計(jì)算可以采用等面積分割,但是在實(shí)際中可以根據(jù)不同的需要進(jìn)行菱形分割,三角分割等等。
圖2 對(duì)圖像進(jìn)行顯示區(qū)域的分割
(2)進(jìn)行圖像對(duì)比。通過前面的原理,可以得知,一秒更新24圖像,但是在對(duì)比一秒內(nèi)前后兩幅圖像中的相同區(qū)域中,可以進(jìn)行隨機(jī)抽取的方法,來加快對(duì)比的時(shí)間和效率,而且在兩副圖像變化的時(shí)間內(nèi),由于人體視覺的暫留現(xiàn)象和液晶工藝的原因,輸出到液晶的圖像消失的時(shí)間相對(duì)于圖像的更新是比較長的,對(duì)分割好的圖像塊中的部分像素點(diǎn),進(jìn)行隨機(jī)性的抽取,來對(duì)比同一位置的圖像是否有更新,從而代替對(duì)整塊圖像的完全更新。根據(jù)實(shí)際得到隨機(jī)抽取的比例值80%左右即可。
(3)數(shù)據(jù)優(yōu)化。由于在圖像對(duì)比的過程中,主要是針對(duì)兩幅圖之間進(jìn)行對(duì)比的,該步驟將其應(yīng)用到整個(gè)24副圖像中,即若前兩個(gè)兩幅圖的對(duì)比重復(fù)率超過80%,那么第三副圖像與第二副圖像對(duì)比重復(fù)率只要檢測70%,第四幅圖與第三幅圖對(duì)比重復(fù)率只要檢測60%...,以此類推就可以得到一些實(shí)際經(jīng)驗(yàn)性的逐級(jí)檢測的加權(quán)系數(shù)。通過不同的加權(quán)系數(shù)的設(shè)置來對(duì)該圖像刷新進(jìn)行快速的加速顯示。
主要的設(shè)計(jì)流程圖如圖3所示:
圖3 主要設(shè)計(jì)流程圖
通過程序流程圖可以得知,在程序設(shè)計(jì)中,多次調(diào)用圖像分割后的隨機(jī)抽取函數(shù)對(duì)比結(jié)果的有效性是與分割大小有直接關(guān)系的。而且更為關(guān)鍵的是,一秒內(nèi)圖像更新的數(shù)據(jù)量大大的降低。以一個(gè)分割八塊的圖像為計(jì)算:在最不理想情況下,即每個(gè)圖像分割后同等位置的八塊圖像的重復(fù)率都要小于80%,此時(shí)一秒內(nèi)的每幅圖基本不相同。這種動(dòng)態(tài)圖像更新過程中,圖像與圖像之間突然變化,是不可能的。其原因?yàn)?,圖像變化是連續(xù)的,不斷更新的。那么該數(shù)據(jù)量的計(jì)算為:
C=(320×240/8)×8×1×24=1843200=1800KB
即為此基本原理中所得到的數(shù)據(jù)量。
在最理想情況下,即每個(gè)圖像分割后同等位置的八塊圖像的重復(fù)率都大于80%,此時(shí)其一秒內(nèi)每幅圖都基本相同,也就是說視頻流一秒內(nèi)沒變化。那么該數(shù)據(jù)量計(jì)算為:
C=(320×240/8)×8×(0.8+0.7+0.6+0.5×21)=967680=945KB
通過前后兩個(gè)值進(jìn)行對(duì)比可以很明顯的看到數(shù)據(jù)量的變化。
而且以上兩種都是很極端的情況,同時(shí)在此計(jì)算中并沒有考慮到分塊前后計(jì)算量的變化。表1和表2是實(shí)際得到數(shù)據(jù),經(jīng)過keil for ARM斷點(diǎn)調(diào)試得出。
表1 不進(jìn)行數(shù)據(jù)分割下對(duì)比
通過兩種方法的對(duì)比計(jì)算,此方案確實(shí)可行而且還大大的加快的主芯片使用效率。
本方案與原來視頻流的每一幀的圖像刷新方法相比,對(duì)視頻流中每一幀圖像重復(fù)顯示部分的更新操作大大減少。主要的原理是視頻流連續(xù)輸出時(shí),必然有一部分的圖像數(shù)據(jù)不會(huì)變化,只是對(duì)圖像變化的部分進(jìn)行圖像的顯示更新,并將圖像處理理論中關(guān)于圖像分割處理的基本思想遷移到實(shí)際的應(yīng)用中。具體的使用該方法是應(yīng)遵從先分割(處理),再計(jì)算的思想,這樣的好處是充分利用人體視覺的暫留現(xiàn)象和液晶工藝需要數(shù)據(jù)維持等因素,以求減少計(jì)算圖像的面積,從而達(dá)到減少液晶顯示模塊占用處理器整個(gè)工作的時(shí)間的目的。雖然本文提供了數(shù)據(jù)和基本的方法,但是還有一些不足之處,數(shù)據(jù)適用性需要進(jìn)一步的驗(yàn)證,以便做更好的計(jì)算模型,得到更加準(zhǔn)確的計(jì)算結(jié)果。
[1]王炳乂.面陣CCD圖像采集與多接口傳輸系統(tǒng)[D].成都:電子科技大學(xué),2009.
[2]談衛(wèi)星.全彩色LED顯示屏系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].杭州:杭州電子科技大學(xué),2011.
[3]ZHANG XiaoFeng,ZHANG CaiMing,TANG Wen-Jing,et al.Medical image segmentation using improved FCM[J].Science China:Information Sciences,2012(5):1052-1061.
[4]JIA Jianhua ,JIAO Licheng ,CHANG Xia .Image Segmentation via Mean Shift and Loopy Belief Propagation[J].Wuhan University Journal of Natural Sciences,2010(1):43-50.
[5]黃智偉,于紅利,寧志剛,等.基于STM32F417的圖像采集系統(tǒng)設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2012(10):48-51.
[6]覃松,李冰.JPEG圖像解碼器在STM32上的應(yīng)用研究[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2013(5):14-16.