文元美,聶新明,胡 勇
(廣東工業(yè)大學(xué)信息工程學(xué)院,廣東 廣州 510006)
基于MVF和顏色量化的LED燈飾效果優(yōu)化方法
文元美,聶新明,胡 勇
(廣東工業(yè)大學(xué)信息工程學(xué)院,廣東 廣州 510006)
為解決大型LED燈飾實時控制系統(tǒng)中截取計算機屏幕圖像速度慢和圖像數(shù)據(jù)量大的問題,在屏幕DC方法的基礎(chǔ)上,結(jié)合內(nèi)存映射文件技術(shù),設(shè)計一種提高屏幕圖像采集效率的新方法;同時使用顏色量化技術(shù)在保證視頻圖像效果的基礎(chǔ)上有效降低視頻圖像顏色數(shù)據(jù)量,提高控制系統(tǒng)的實時性。實驗結(jié)果表明:該LED燈飾效果優(yōu)化方法既有較快的屏幕圖像截取速率,又在降低圖像位數(shù)的前提下保證了圖像視覺效果,在LED燈飾實時控制系統(tǒng)中應(yīng)用良好。
LED燈飾;屏幕DC;內(nèi)存映射文件;顏色量化
目前在大型LED燈飾軟件處理系統(tǒng)中,獲取屏幕圖像的方法主要有創(chuàng)建屏幕DC(device context)方法[1]以及DirectX中的DirectDraw方法[2]兩種。其中屏幕DC方法截圖速率較低,難以滿足實時性抓屏處理的需求;DirectDraw方法截圖速率高,但是因為無法直接獲取Overlay Surface中的數(shù)據(jù),而導(dǎo)致截圖黑屏的現(xiàn)象。
通常為降低系統(tǒng)傳輸量,在發(fā)送圖像文件時,后端硬件會進行取高位處理,從而保證系統(tǒng)傳輸?shù)膶崟r性,然而處理后的圖像會出現(xiàn)顏色等分線、圖像輪廓模糊等問題,導(dǎo)致圖像效果嚴重失真。
本文在屏幕DC截圖的基礎(chǔ)上,利用內(nèi)存文件映射技術(shù)(map view of file,MVF),將圖像文件映射到虛擬內(nèi)存的一塊地址空間,在訪問文件時避免不必要的I/O操作,加快圖像采集速度,以解決傳統(tǒng)屏幕DC法截圖速度慢的問題。同時為降低網(wǎng)絡(luò)傳輸量,對所采集的圖像,在統(tǒng)一量化算法處理的基礎(chǔ)上建立簡易八叉樹,對像素點進行裁剪,有效提升LED燈飾實時控制處理軟件的性能。
1.1 內(nèi)存映射文件技術(shù)
WIN32 API提供了一種進行文件操作的高效途徑,即內(nèi)存映射文件。內(nèi)存映射文件允許在WIN32進程的虛擬地址空間中保留一段內(nèi)存區(qū)域,并將物理存儲器中目標文件提交給該區(qū)域,映射到這段虛擬內(nèi)存之中。采用存取內(nèi)存數(shù)據(jù)的方式直接操作文件中的數(shù)據(jù),如同這些數(shù)據(jù)放在內(nèi)存中一樣,簡化了對文件的訪問操作,還可以實現(xiàn)多個進程共享數(shù)據(jù),使用內(nèi)存映射文件技術(shù)可大大提高程序的運行效率。
圖1 基于MVF的屏幕DC讀寫屏截圖流程
1.2 基于MVF的屏幕DC讀寫屏截圖方法
LED燈飾處理軟件截取在主機上實時播放的成像數(shù)據(jù)。由于軟件系統(tǒng)截取的是連續(xù)視頻,通常抓取速率不能低于24幀/s,以免使人感到畫面阻滯不流暢。同時為兼顧LED燈飾系統(tǒng)實時數(shù)據(jù)傳輸能力,通常在抓取圖像時,根據(jù)視頻刷新率,設(shè)置截圖速率,從而控制所抓取圖像的數(shù)據(jù)量。綜合考慮截屏速率以及數(shù)據(jù)量,設(shè)計了基于MVF的屏幕DC讀寫方法,其截圖流程如圖1所示。
基于MVF的屏幕DC讀寫方法[3],在屏幕DC截圖法中引入Win32提供的函數(shù)CreateDIBSection(),通過它創(chuàng)建一個存儲DIB位的內(nèi)存區(qū)域,既可以執(zhí)行相應(yīng)的GDI操作,又可以直接通過指向DIB位區(qū)域的指針方位DIB位區(qū)域。避免了圖片資源選入后,轉(zhuǎn)化為DDB在時間和空間上的開銷,加快了讀屏速度。CreateFileMapping()函數(shù)用來創(chuàng)建文件映射內(nèi)核對象,不分配進程的地址空間,不占用內(nèi)存空間,在實際應(yīng)用中通常是一次性將整個文件創(chuàng)建為內(nèi)存映射對象。
MapViewofFile()函數(shù)將文件中的數(shù)據(jù)映射到進程的地址空間,UnmapViewOfFile()函數(shù)解除文件內(nèi)存映射,系統(tǒng)將內(nèi)存中的數(shù)據(jù)回寫到磁盤。最后通過CloseHandle()函數(shù)關(guān)閉映射文件,釋放內(nèi)存空間。
在LED燈飾實時控制系統(tǒng)網(wǎng)絡(luò)通信能力一定的情況下,每個像素點的顏色數(shù)據(jù)量越少,網(wǎng)絡(luò)負載壓力就越小。但是直接單純地減少圖像像素點數(shù)據(jù)量會不可避免地造成圖像細節(jié)失真,嚴重影響圖像的視覺特性。為了使顏色量化重建的圖像在視覺效果上盡可能接近原始圖像,本文在利用統(tǒng)一量化算法對圖像初步處理的基礎(chǔ)上,采用八叉樹算法[4],通過構(gòu)建簡易八叉樹,并限制八叉樹層數(shù),減少葉節(jié)點,簡化量化處理過程,提高處理速度,以適應(yīng)LED遠程控制系統(tǒng)應(yīng)用環(huán)境的實時性。
2.1 八叉樹構(gòu)建
在前文屏幕圖像采集中,獲取的是RGB信號,雖然在原理上說,LUV空間與人的視覺是相關(guān)聯(lián)的[5],在LUV空間上量化能得到更好的視覺效果,考慮到RGB空間與LUV空間中進行轉(zhuǎn)換需要經(jīng)過非線性運算,消耗大量的系統(tǒng)資源,為保證算法效率,直接采用RGB顏色空間進行顏色量化。
在設(shè)定構(gòu)建八叉樹時,采用規(guī)則八叉樹的存儲結(jié)構(gòu)[6],其中每個節(jié)點的數(shù)據(jù)結(jié)構(gòu)中包括一個指向父節(jié)點的指針,一個指向8個子節(jié)點向量的指針。另外還包括該節(jié)點對應(yīng)的顏色出現(xiàn)的次數(shù),R、G、B三位的顏色值以及節(jié)點代表的顏色在調(diào)色表中的索引值等五個字段。同時帶有3個成員函數(shù),分別用于判斷該節(jié)點是否為葉子節(jié)點、該節(jié)點是否為倒數(shù)第2層的節(jié)點,把子節(jié)點的R、G、B三位顏色值及其顏色出現(xiàn)次數(shù)累加到父節(jié)點中。這種結(jié)構(gòu)可以有效平衡空間和操作效率之間的關(guān)系,適用于實時性要求較高,內(nèi)存空間有限的系統(tǒng)中。
在設(shè)定的RGB顏色空間建立八叉樹過程如下:
1)通過統(tǒng)一量化法對24位顏色數(shù)據(jù)取高位,即將R8:G8:B8量化成12位的R4:G4:B4,獲取的12位顏色信息作為八叉樹中節(jié)點的坐標值,其中RGB數(shù)據(jù)信息按照從高到低分別對應(yīng)八叉樹中的淺層級節(jié)點與深層級節(jié)點,以此循環(huán)處理,可以確保得到的八叉樹的深度為4層。
2)確定八叉樹節(jié)點的坐標信息后,從根節(jié)點縱向遍歷八叉樹。如果遍歷到的坐標位置中不存在八叉樹的節(jié)點時,則生成該八叉樹節(jié)點,否則繼續(xù)以RGB低1位的組合作為節(jié)點坐標。深入到八叉樹的葉節(jié)點時,統(tǒng)計目前八叉樹中存在的顏色數(shù),同時把該節(jié)點對應(yīng)顏色出現(xiàn)的次數(shù)以及顏色的RGB值累加到節(jié)點數(shù)據(jù)結(jié)構(gòu)的相應(yīng)字段中。
圖像中每個像素均做以上兩步處理,直至圖像中的每個像素均與八叉樹中的葉節(jié)點一一對應(yīng),此時便建立了如圖2所示的八叉樹。
圖2 構(gòu)建的4層八叉樹結(jié)構(gòu)圖
2.2 八叉樹的裁剪與圖像質(zhì)量恢復(fù)
八叉樹數(shù)據(jù)結(jié)構(gòu)的建立需要大量的內(nèi)存空間,同時占用較多時間來計算葉節(jié)點,因此有必要對葉節(jié)點進行裁減,以減少運算時間和空間復(fù)雜性。在八叉樹的裁減中,對相同深度的節(jié)點取舍有兩個標準,即選擇具有最少像素的節(jié)點或者具有最多像素的節(jié)點。前者可以使圖像的誤差最小,但是缺少對圖像細節(jié)的支持;后者可能在大范圍的光滑區(qū)域中產(chǎn)生帶狀效應(yīng),但是可以較好地保持圖像中的細節(jié),達到反走樣的效果[7]。在LED燈飾實時控制處理的應(yīng)用環(huán)境中,圖像的輪廓和層次感對鎖播放圖像的視覺效果有著重要的影響,必須要保證圖像誤差盡可能的小,因此,在裁減具有相同深度的節(jié)點時,本文采用首先刪除具有最小像素的節(jié)點,對圖像細節(jié)的支持可以通過后續(xù)的誤差擴散處理解決。
裁減八叉樹的過程是以八叉樹的顏色數(shù)是否大于256色作為是否裁減完畢的判斷依據(jù)。當(dāng)八叉樹的顏色數(shù)大于256時,便從具有最小像素點的節(jié)點開始裁減,直到顏色數(shù)小于等于256,這樣處理得到的調(diào)色表的顏色數(shù)范圍介于249~256之間,能夠符合調(diào)色表的設(shè)計要求。
八叉樹的裁減過程先考察第3層的節(jié)點數(shù)是否大于256,如果大于256,則先把所有第4層的葉節(jié)點合并到其父節(jié)點中,并對其進行裁減。然后進行自下而上的裁減過程。其設(shè)計思想是刪除顏色次數(shù)出現(xiàn)最小的最底層父節(jié)點的所有子節(jié)點,直到八叉樹的顏色數(shù)小于等于256。步驟如下:
1)從根節(jié)點開始遍歷八叉樹,搜索出所有最底層的父節(jié)點。
2)把這類節(jié)點存儲在一個鏈表當(dāng)中,并以節(jié)點的顏色數(shù)作降序排列。
3)把這類節(jié)點子節(jié)點的顏色數(shù)和RGB的值累加到該類節(jié)點中。
4)此時在鏈表末尾端是顏色次數(shù)出現(xiàn)最少的最底層的父節(jié)點,在鏈尾刪除這種父節(jié)點所對應(yīng)的所有子節(jié)點,這種最底層的父節(jié)點就變成了葉節(jié)點,其本身所對應(yīng)的父節(jié)點就成了底層的父節(jié)點,重復(fù)步驟1)向下循環(huán)操作,直至八叉樹的顏色數(shù)小于257為止。
為降低對圖像八叉樹顏色數(shù)據(jù)結(jié)構(gòu)進行裁減后出現(xiàn)的圖像層次感差、輪廓現(xiàn)象明顯等視覺上的不適反應(yīng),本文在顏色量化處理的基礎(chǔ)上,設(shè)計一個負反饋系統(tǒng),通過Floyd-Steinberg[8]誤差擴散算法,對當(dāng)前像素的量化誤差按一定比例擴散到鄰接像素上,局部的誤差就在相鄰像素上得到補償。這種算法運算簡單,處理速度快,所以適用于LED燈飾實時控制系統(tǒng)。
為了比較屏幕DC法和優(yōu)化后的屏幕DC截圖效率,在同一軟硬環(huán)境下,利用所設(shè)計的屏幕圖像采集軟件做了4次捕捉實驗,每次捕捉尺寸不同,每次連續(xù)捕捉1000幀,捕捉一幀所需要的平均時間以及幀數(shù)如表1所示。
由表1可見,采用傳統(tǒng)DC屏幕截圖法,即使是在尺寸比較小的時候(如200×200)時,仍沒有達到24幀/s以上。而結(jié)合MVF技術(shù)的屏幕DC法,在截取尺寸在330×240以內(nèi)時,可以做到以24幀/s的速率抓取監(jiān)控屏幕中連續(xù)播放的視頻圖像,完全可以滿足LED燈飾控制系統(tǒng)對實時連續(xù)播放的需求。
表1 實驗測試視頻幀抓取時間及幀數(shù)
為了檢驗對所截取圖像的量化效果,特別是檢驗圖像在層次感、顆粒感與輪廓變化上給人的視覺感受,選擇如圖3(a)所示的原圖進行圖像靜態(tài)試驗,分別對原圖做了統(tǒng)一量化處理(圖3(b))、改進后的八叉樹裁減處理(圖3(c))及最后誤差擴散處理(圖3(d))。由圖可知改進的八叉樹算法在顏色的數(shù)據(jù)量減為原來的1/3的情況下,能夠有效減少在顏色漸變區(qū)域存在的帶狀現(xiàn)象,顏色更有層次感,在經(jīng)過Floyd-Steinberg誤差擴散處理后,圖像增加了顆粒感,同時帶狀現(xiàn)象也進一步弱化,從而進一步提高視覺效果。
圖3 顏色量化算法效果實現(xiàn)對比圖
本文所設(shè)計的LED燈飾效果優(yōu)化方法經(jīng)上述分步檢驗后,在如圖4所示的大型LED燈飾控制系統(tǒng)中進行了具體實驗,將采用本方法所采集的視頻資源與LED燈具布局平臺[9-10]所提供的LED像素點布局文件映射后,生成可被后端硬件所識別的異形文件。
本文設(shè)計的LED燈飾效果優(yōu)化方法,通過設(shè)計基于MVF技術(shù)的屏幕DC方法,實時截取LED實時控制屏幕圖像,能夠適應(yīng)各種視頻源文件,技術(shù)上實現(xiàn)簡單并且處理速度快;同時通過對原始八叉樹算法時效性的改進,配以Floyd-Steinberg誤差擴散處理等技術(shù),較好地解決了采集到的屏幕圖像由于顏色量化所產(chǎn)生的帶狀現(xiàn)象、顏色失真等問題。
圖4 大型LED燈飾控制系統(tǒng)
由于采用本方案設(shè)計的軟件系統(tǒng)工作在Windows系統(tǒng),而非實時操作系統(tǒng),所以軟件在實時抓取連續(xù)播放視頻圖像時,每秒實際截取的幀數(shù)可能會小于設(shè)置的幀數(shù),因此可考慮將本文所設(shè)計的方法移植到實時操作系統(tǒng)上(如VxWorks),從根本上解決軟件系統(tǒng)運行速度問題。
[1]於文雪,李松毅,羅立民.基于Windows GDI的圖形圖像處理探討[J].計算機工程,2003,29(2):270-272.
[2]董英英,王啟峰.基于DirectDraw的擊鍵式卡通游戲設(shè)計[J].計算機應(yīng)用與軟件,2010,27(4):169-241.
[3]徐世波,郭愛菁.基于大型圖片的文件讀取方法的研究與探討[J].計算機應(yīng)用與軟件,2009,26(6):126-140.
[4]劉志福,胡君.視覺顯著性的八叉樹顏色量化方法[J].計算機工程,2011,37(6):212-214.
[5]趙志誠,蔡安妮.圖像顏色矢量量化算法[J].北京郵電大學(xué)學(xué)報:自然科學(xué)版,2007,30(5):131-134.
[6]余文勇,李亞軍,陳幼平.虛擬現(xiàn)實場景中基于八叉樹的網(wǎng)格簡化算法[J].計算機工程與應(yīng)用,2006(14):34-37.
[7]Kang H C,Kai T W,Chin C C,et al.Exploiting hardware accelerated occlusion queries for visibility culling[J].IEICET Ransactions on Fundamentals,2005,88(7):2007-2014.
[8]Zhou B F,F(xiàn)ang X F.Improving mid-tone quality of variable-coefficient error diffusion using threshold modulation[C]∥ACM Trans on Graphics.New York:ACM,2003:437-444.
[9]Wen Y M,Nie X M,Liu G X.Design and realize of the graphics platform for LED lamps’layout based on GDI+and dual-buffer[C]∥International Workshop on Information and Electronics Engineering,2012:3297-3301.
[10]聶新明,文元美,劉桂雄.LED燈具布局平臺中MVC設(shè)計模式的研究與實現(xiàn)[J].現(xiàn)代制造工程,2012(9):135-138.
Optimization method for improving effects of LED lighting based on MVF&color quantization
WEN Yuan-mei,NIE Xin-ming,HU Yong
(School of Information Engineering,Guangdong University of Technology,Guangzhou 510006,China)
To solve the problems of low speed of screenshot of computer screen images and large amount of image data in the large-scale LED lighting real-time control system,a new method to improve the efficiency of the screen image screenshot was designed based on screen device context(DC)method combined with map view of file technology.At the same time,color quantization technology is utilized to reduce the amount of video image data and improve real time performance of the monitoring system,on the condition of good video image effects.The experimental results show that applying the optimized method of improving the LED lighting effects could get a faster screenshot of the screen image with better visual effect.The method is applied in the LED lighting real-time information system.
LED lighting;screen DC;map view of file;color quantization
TP301;TN312+.8;O224;TP274
:A
:1674-5124(2014)05-0096-04
10.11857/j.issn.1674-5124.2014.05.025
2013-11-17;
:2014-01-24
中國博士后科學(xué)基金項目(2011M500130)
文元美(1968-),女,湖北荊州市人,副教授,博士,主要從事智能信息處理與可信研究。