?

基于MVF和顏色量化的LED燈飾效果優化方法

2014-03-03 03:57文元美聶新明
中國測試 2014年5期
關鍵詞:燈飾內存顏色

文元美,聶新明,胡 勇

(廣東工業大學信息工程學院,廣東 廣州 510006)

基于MVF和顏色量化的LED燈飾效果優化方法

文元美,聶新明,胡 勇

(廣東工業大學信息工程學院,廣東 廣州 510006)

為解決大型LED燈飾實時控制系統中截取計算機屏幕圖像速度慢和圖像數據量大的問題,在屏幕DC方法的基礎上,結合內存映射文件技術,設計一種提高屏幕圖像采集效率的新方法;同時使用顏色量化技術在保證視頻圖像效果的基礎上有效降低視頻圖像顏色數據量,提高控制系統的實時性。實驗結果表明:該LED燈飾效果優化方法既有較快的屏幕圖像截取速率,又在降低圖像位數的前提下保證了圖像視覺效果,在LED燈飾實時控制系統中應用良好。

LED燈飾;屏幕DC;內存映射文件;顏色量化

0 引 言

目前在大型LED燈飾軟件處理系統中,獲取屏幕圖像的方法主要有創建屏幕DC(device context)方法[1]以及DirectX中的DirectDraw方法[2]兩種。其中屏幕DC方法截圖速率較低,難以滿足實時性抓屏處理的需求;DirectDraw方法截圖速率高,但是因為無法直接獲取Overlay Surface中的數據,而導致截圖黑屏的現象。

通常為降低系統傳輸量,在發送圖像文件時,后端硬件會進行取高位處理,從而保證系統傳輸的實時性,然而處理后的圖像會出現顏色等分線、圖像輪廓模糊等問題,導致圖像效果嚴重失真。

本文在屏幕DC截圖的基礎上,利用內存文件映射技術(map view of file,MVF),將圖像文件映射到虛擬內存的一塊地址空間,在訪問文件時避免不必要的I/O操作,加快圖像采集速度,以解決傳統屏幕DC法截圖速度慢的問題。同時為降低網絡傳輸量,對所采集的圖像,在統一量化算法處理的基礎上建立簡易八叉樹,對像素點進行裁剪,有效提升LED燈飾實時控制處理軟件的性能。

1 基于MVF技術的屏幕DC截圖法

1.1 內存映射文件技術

WIN32 API提供了一種進行文件操作的高效途徑,即內存映射文件。內存映射文件允許在WIN32進程的虛擬地址空間中保留一段內存區域,并將物理存儲器中目標文件提交給該區域,映射到這段虛擬內存之中。采用存取內存數據的方式直接操作文件中的數據,如同這些數據放在內存中一樣,簡化了對文件的訪問操作,還可以實現多個進程共享數據,使用內存映射文件技術可大大提高程序的運行效率。

圖1 基于MVF的屏幕DC讀寫屏截圖流程

1.2 基于MVF的屏幕DC讀寫屏截圖方法

LED燈飾處理軟件截取在主機上實時播放的成像數據。由于軟件系統截取的是連續視頻,通常抓取速率不能低于24幀/s,以免使人感到畫面阻滯不流暢。同時為兼顧LED燈飾系統實時數據傳輸能力,通常在抓取圖像時,根據視頻刷新率,設置截圖速率,從而控制所抓取圖像的數據量。綜合考慮截屏速率以及數據量,設計了基于MVF的屏幕DC讀寫方法,其截圖流程如圖1所示。

基于MVF的屏幕DC讀寫方法[3],在屏幕DC截圖法中引入Win32提供的函數CreateDIBSection(),通過它創建一個存儲DIB位的內存區域,既可以執行相應的GDI操作,又可以直接通過指向DIB位區域的指針方位DIB位區域。避免了圖片資源選入后,轉化為DDB在時間和空間上的開銷,加快了讀屏速度。CreateFileMapping()函數用來創建文件映射內核對象,不分配進程的地址空間,不占用內存空間,在實際應用中通常是一次性將整個文件創建為內存映射對象。

MapViewofFile()函數將文件中的數據映射到進程的地址空間,UnmapViewOfFile()函數解除文件內存映射,系統將內存中的數據回寫到磁盤。最后通過CloseHandle()函數關閉映射文件,釋放內存空間。

2 基于八叉樹的顏色量化算法設計

在LED燈飾實時控制系統網絡通信能力一定的情況下,每個像素點的顏色數據量越少,網絡負載壓力就越小。但是直接單純地減少圖像像素點數據量會不可避免地造成圖像細節失真,嚴重影響圖像的視覺特性。為了使顏色量化重建的圖像在視覺效果上盡可能接近原始圖像,本文在利用統一量化算法對圖像初步處理的基礎上,采用八叉樹算法[4],通過構建簡易八叉樹,并限制八叉樹層數,減少葉節點,簡化量化處理過程,提高處理速度,以適應LED遠程控制系統應用環境的實時性。

2.1 八叉樹構建

在前文屏幕圖像采集中,獲取的是RGB信號,雖然在原理上說,LUV空間與人的視覺是相關聯的[5],在LUV空間上量化能得到更好的視覺效果,考慮到RGB空間與LUV空間中進行轉換需要經過非線性運算,消耗大量的系統資源,為保證算法效率,直接采用RGB顏色空間進行顏色量化。

在設定構建八叉樹時,采用規則八叉樹的存儲結構[6],其中每個節點的數據結構中包括一個指向父節點的指針,一個指向8個子節點向量的指針。另外還包括該節點對應的顏色出現的次數,R、G、B三位的顏色值以及節點代表的顏色在調色表中的索引值等五個字段。同時帶有3個成員函數,分別用于判斷該節點是否為葉子節點、該節點是否為倒數第2層的節點,把子節點的R、G、B三位顏色值及其顏色出現次數累加到父節點中。這種結構可以有效平衡空間和操作效率之間的關系,適用于實時性要求較高,內存空間有限的系統中。

在設定的RGB顏色空間建立八叉樹過程如下:

1)通過統一量化法對24位顏色數據取高位,即將R8:G8:B8量化成12位的R4:G4:B4,獲取的12位顏色信息作為八叉樹中節點的坐標值,其中RGB數據信息按照從高到低分別對應八叉樹中的淺層級節點與深層級節點,以此循環處理,可以確保得到的八叉樹的深度為4層。

2)確定八叉樹節點的坐標信息后,從根節點縱向遍歷八叉樹。如果遍歷到的坐標位置中不存在八叉樹的節點時,則生成該八叉樹節點,否則繼續以RGB低1位的組合作為節點坐標。深入到八叉樹的葉節點時,統計目前八叉樹中存在的顏色數,同時把該節點對應顏色出現的次數以及顏色的RGB值累加到節點數據結構的相應字段中。

圖像中每個像素均做以上兩步處理,直至圖像中的每個像素均與八叉樹中的葉節點一一對應,此時便建立了如圖2所示的八叉樹。

圖2 構建的4層八叉樹結構圖

2.2 八叉樹的裁剪與圖像質量恢復

八叉樹數據結構的建立需要大量的內存空間,同時占用較多時間來計算葉節點,因此有必要對葉節點進行裁減,以減少運算時間和空間復雜性。在八叉樹的裁減中,對相同深度的節點取舍有兩個標準,即選擇具有最少像素的節點或者具有最多像素的節點。前者可以使圖像的誤差最小,但是缺少對圖像細節的支持;后者可能在大范圍的光滑區域中產生帶狀效應,但是可以較好地保持圖像中的細節,達到反走樣的效果[7]。在LED燈飾實時控制處理的應用環境中,圖像的輪廓和層次感對鎖播放圖像的視覺效果有著重要的影響,必須要保證圖像誤差盡可能的小,因此,在裁減具有相同深度的節點時,本文采用首先刪除具有最小像素的節點,對圖像細節的支持可以通過后續的誤差擴散處理解決。

裁減八叉樹的過程是以八叉樹的顏色數是否大于256色作為是否裁減完畢的判斷依據。當八叉樹的顏色數大于256時,便從具有最小像素點的節點開始裁減,直到顏色數小于等于256,這樣處理得到的調色表的顏色數范圍介于249~256之間,能夠符合調色表的設計要求。

八叉樹的裁減過程先考察第3層的節點數是否大于256,如果大于256,則先把所有第4層的葉節點合并到其父節點中,并對其進行裁減。然后進行自下而上的裁減過程。其設計思想是刪除顏色次數出現最小的最底層父節點的所有子節點,直到八叉樹的顏色數小于等于256。步驟如下:

1)從根節點開始遍歷八叉樹,搜索出所有最底層的父節點。

2)把這類節點存儲在一個鏈表當中,并以節點的顏色數作降序排列。

3)把這類節點子節點的顏色數和RGB的值累加到該類節點中。

4)此時在鏈表末尾端是顏色次數出現最少的最底層的父節點,在鏈尾刪除這種父節點所對應的所有子節點,這種最底層的父節點就變成了葉節點,其本身所對應的父節點就成了底層的父節點,重復步驟1)向下循環操作,直至八叉樹的顏色數小于257為止。

為降低對圖像八叉樹顏色數據結構進行裁減后出現的圖像層次感差、輪廓現象明顯等視覺上的不適反應,本文在顏色量化處理的基礎上,設計一個負反饋系統,通過Floyd-Steinberg[8]誤差擴散算法,對當前像素的量化誤差按一定比例擴散到鄰接像素上,局部的誤差就在相鄰像素上得到補償。這種算法運算簡單,處理速度快,所以適用于LED燈飾實時控制系統。

3 實驗與結果分析

為了比較屏幕DC法和優化后的屏幕DC截圖效率,在同一軟硬環境下,利用所設計的屏幕圖像采集軟件做了4次捕捉實驗,每次捕捉尺寸不同,每次連續捕捉1000幀,捕捉一幀所需要的平均時間以及幀數如表1所示。

由表1可見,采用傳統DC屏幕截圖法,即使是在尺寸比較小的時候(如200×200)時,仍沒有達到24幀/s以上。而結合MVF技術的屏幕DC法,在截取尺寸在330×240以內時,可以做到以24幀/s的速率抓取監控屏幕中連續播放的視頻圖像,完全可以滿足LED燈飾控制系統對實時連續播放的需求。

表1 實驗測試視頻幀抓取時間及幀數

為了檢驗對所截取圖像的量化效果,特別是檢驗圖像在層次感、顆粒感與輪廓變化上給人的視覺感受,選擇如圖3(a)所示的原圖進行圖像靜態試驗,分別對原圖做了統一量化處理(圖3(b))、改進后的八叉樹裁減處理(圖3(c))及最后誤差擴散處理(圖3(d))。由圖可知改進的八叉樹算法在顏色的數據量減為原來的1/3的情況下,能夠有效減少在顏色漸變區域存在的帶狀現象,顏色更有層次感,在經過Floyd-Steinberg誤差擴散處理后,圖像增加了顆粒感,同時帶狀現象也進一步弱化,從而進一步提高視覺效果。

圖3 顏色量化算法效果實現對比圖

本文所設計的LED燈飾效果優化方法經上述分步檢驗后,在如圖4所示的大型LED燈飾控制系統中進行了具體實驗,將采用本方法所采集的視頻資源與LED燈具布局平臺[9-10]所提供的LED像素點布局文件映射后,生成可被后端硬件所識別的異形文件。

4 結束語

本文設計的LED燈飾效果優化方法,通過設計基于MVF技術的屏幕DC方法,實時截取LED實時控制屏幕圖像,能夠適應各種視頻源文件,技術上實現簡單并且處理速度快;同時通過對原始八叉樹算法時效性的改進,配以Floyd-Steinberg誤差擴散處理等技術,較好地解決了采集到的屏幕圖像由于顏色量化所產生的帶狀現象、顏色失真等問題。

圖4 大型LED燈飾控制系統

由于采用本方案設計的軟件系統工作在Windows系統,而非實時操作系統,所以軟件在實時抓取連續播放視頻圖像時,每秒實際截取的幀數可能會小于設置的幀數,因此可考慮將本文所設計的方法移植到實時操作系統上(如VxWorks),從根本上解決軟件系統運行速度問題。

[1]於文雪,李松毅,羅立民.基于Windows GDI的圖形圖像處理探討[J].計算機工程,2003,29(2):270-272.

[2]董英英,王啟峰.基于DirectDraw的擊鍵式卡通游戲設計[J].計算機應用與軟件,2010,27(4):169-241.

[3]徐世波,郭愛菁.基于大型圖片的文件讀取方法的研究與探討[J].計算機應用與軟件,2009,26(6):126-140.

[4]劉志福,胡君.視覺顯著性的八叉樹顏色量化方法[J].計算機工程,2011,37(6):212-214.

[5]趙志誠,蔡安妮.圖像顏色矢量量化算法[J].北京郵電大學學報:自然科學版,2007,30(5):131-134.

[6]余文勇,李亞軍,陳幼平.虛擬現實場景中基于八叉樹的網格簡化算法[J].計算機工程與應用,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,Fang 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設計模式的研究與實現[J].現代制造工程,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

中國博士后科學基金項目(2011M500130)

文元美(1968-),女,湖北荊州市人,副教授,博士,主要從事智能信息處理與可信研究。

猜你喜歡
燈飾內存顏色
2020斯德哥爾摩家具與燈飾展
筆記本內存已經在漲價了,但幅度不大,升級擴容無須等待
“春夏秋冬”的內存
Barovier&Toso燈飾殿堂
紙糊地球儀
特殊顏色的水
內存搭配DDR4、DDR3L還是DDR3?
上網本為什么只有1GB?
燈飾清洗養護生意真的很賺錢
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合