999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于MVF和改進八叉樹的屏幕圖像采集方案

2013-08-13 05:07:20勇,郭
電視技術 2013年19期

張 勇,郭 琳

(1.西南石油大學,四川 成都 610000;2.四川職業技術學院,四川 遂寧 629000)

在遠程視頻監控中,視頻快速捕捉與傳輸技術是決定其性能關鍵點之一[1],而隨著計算機功能的不斷強大,多媒體技術特別是數字圖像技術的不斷發展,為只依靠軟件技術快速抓取計算機屏幕的監控畫面,并將其轉化成可供傳輸與預覽的視頻流資源提供了可能。

目前在遠程實時視頻監控軟件系統中,獲取屏幕圖像的方法主要有兩種:創建屏幕設備描述表(Device Context,DC)方法[2]以及 DirectX 中的 DirectShow 方法[3],兩種方法各自具有優缺點。屏幕DC方法技術實現比較直接,對應用環境沒有特殊要求,但是截圖速率低,越來越難以滿足實時性視頻監控的需求。DirectShow方法截圖速率高,但是需要DirectX庫支持,在實現上相對于直接Windows設備上下文編程顯得繁雜,為程序開發和應用帶來不便。在遠程視頻監控系統的工程實踐中,為降低傳輸負載,在發送圖像文件時,后端硬件會進行取高位處理,例如實現24位色到16位色轉換時,分別對R,G,B取高位,由 R8∶G8∶B8 轉變成 R5∶G6∶B5,其優點是實現簡單,能保證系統傳輸的實時性需求,缺點是處理后的圖像會出現顏線、圖像輪廓模糊等問題,從而圖像效果出現嚴重失真。

筆者的研究主要是在屏幕DC截圖的基礎上,利用內存映射文件技術MVF(Map View of File),將圖像文件映射到虛擬內存的一塊地址空間,在訪問文件時像訪問內存文件一樣,避免了不必要的I/O操作,加快采集速度,較好地解決了屏幕DC截圖速度慢的缺點。又根據降低網絡傳輸負載的需求,對所采集到的圖像在統一量化算法初步處理的基礎上建立簡化的八叉樹,對像素點進行裁剪,既降低圖像傳輸數據量,又保證圖像成像效果,有效提升遠程實時視頻監控軟件系統的工作性能。

1 基于內存映射文件法的屏幕DC截圖法具體設計

1.1 內存映射文件技術簡要介紹

WIN32 API提供了實施文件操作的便捷渠道,也就是內存映射文件。在這里,其準許能夠在WIN32進程的虛擬空間里面留有一定的空間,同時能夠把物理存儲器里面的目標文件向這一個空間進行提交,從而能夠與該虛擬空間進行映射。這樣就能夠通過存取內存數據的手段對文件里面的數據進行直接操作,就像將它們置于內存里面,在很大程度上使得訪問文件得以簡化,同時能夠使若干進程共享數據得以實現。因此,引入內存映射文件能夠在很大程度上使程序效率得以提升[4]。

1.2 優化后屏幕DC讀寫屏工作流程設計

對于遠程視頻監控軟件系統來說,其主要是在計算機上運行的,是利用軟件手段把那些監控圖像在播放的過程中進行截取。由于所截取的為整個視頻信息,因此在這里要求抓取速率一定要保持在24幀/s(f/s)以上,這是由于人可以接受的連續畫面速度一般是24 f/s以上,要是比該速度小,人眼會觀察到一定的阻滯現象,這也是筆者優化讀寫屏速率的其中一個關鍵需求。另一方面,考慮到系統實時處理模式下網絡負載水平,在對圖像進行抓取的過程中,可以按照視頻的刷新率的具體情況,科學合理地對截圖速率進行設置,從而能夠有效控制一定時間內圖像抓取的數據量。該操作流程示意圖如圖1所示。

圖1 優化后的屏幕DC讀寫屏工作流程原理圖

將CreateDIBSection()引入傳統的屏幕DC截圖法里面,利用該函數能夠構建起存儲DIB位的內存,能夠進行GDI操作。在很大程度上降低了成本,縮短了讀屏消耗時間。對于CreateFileMapping()來說,其主要是負責在文件映射內核對象構建過程中進行使用,所以在具體使用過程中一般將文件創建成內存映射對象。

對于MapViewofFile()來說,其主要是負責將文件里面的數據信息向進程的地址空間里面進行映射,而對于UnmapViewOfFile()來說,其主要是負責將文件內存映射解除,然后系統把內存里面的數據向磁盤進行回寫。完成上述的操作之后,接著利用CloseHandle()將映射文件關閉,從而將所使用到的內存得到釋放[5]。

2 基于八叉樹顏色量化改進算法設計與實現

在監控網絡通信能力一定的基礎上,各像素點的顏色數據量愈小,網絡負載壓力就愈低,從而能夠在很大程度上改善系統的有效性,例如,在顏色量化重建過程中,為使圖像最大限度的和原始圖像相接近,筆者在這里主要是通過八叉樹算法進行[6],接下來將對基于八叉樹顏色量化改進算法設計和實現進行闡明。

2.1 構建八叉樹

在上面闡述的采集屏幕圖像過程中,主要得到的是RGB信號,然而要是在基于LUV的色彩空間上進行量化,就可以獲得非常不錯的視覺體驗。但鑒于要在LUV空間里面實施轉換,必須要以非線性運算方式實現,這個過程中需要相對較多的系統資源,因此,為充分保證算法具有較高的效率,可以通過RGB顏色空間實現顏色量化。

八叉樹構建過程中,筆者通過升級的八叉樹的存儲結構進行[7],具體見圖2,各節點的數據結構里面。

圖2 簡易八叉樹數據結構(截圖)

主要涉及到兩個指針,它們分別指向父節點與8個子節點向量,同時涉及到這一個節點對應的顏色、出現的次數等幾個方面的內容。并且具備3個成員函數,它們依次是在判斷這一個節點是不是葉子節點的過程中進行使用;判斷這一個節點是不是倒數第二層的節點過程中進行使用;將子節點的R,G,B的顏色值及其顏色出現次數向父節點進行累加的過程中使用。該結構能夠在很大程度上使空間與操作效率相互間的關系得到平衡,可以在內存空間相對較小、實時性要求相對偏高的視頻監控系統里使用。

在RGB顏色空間對八叉樹進行構建,該環節主要涉及到以下幾方面:

1)利用統一量化法進行操作,也就是把R8∶G8∶B8直接取高位,使其成為12位的R4∶G4∶B4,所得到的12位顏色信息當作八叉樹中節點的坐標值,在這里RGB數據從大到小依次與八叉樹里面的淺層以及深層級節點相對應,這樣多次操作,就能夠充分保證獲得的4層八叉樹。

2)將八叉樹節點的坐標信息確定下來之后,接著自根節點開始沿著縱向對八叉樹進行遍歷。要是遍歷的坐標里面沒有八叉樹的節點,在這種情況下,就能夠將這一個八叉樹節點生成,否則接著將低于RGB 1位的組合當作節點坐標,直至訪問到八叉樹的葉節點為止。需要對八叉樹里面具有的顏色數進行統計,并且還需要將這一個節點的顏色出現次數、RGB值向節點數據結構的字段里面進行累加。

圖像里面各像素都進行上面的兩個流程,一直到其里面的各像素都和八叉樹里面的葉節點相互對應為止,這樣就構建起八叉樹(見圖3)。

圖3 構建的4層八叉樹簡易結構圖

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

在裁減過程中,主要是通過下面的兩個條件取舍深度一樣的節點,也就是最少或最多像素的節點。對于前者來說,其能夠最大限度地降低圖像的誤差,然而在對圖像細節方面的支持不足;對于后者來說,其能夠在相對較大的光滑范圍里面形成帶狀效應,然而能夠有效地保持圖像里面的細節,從而實現反走樣的效果[8]。在遠程監控過程中,圖像的層次感與輪廓在很大程度上決定著圖像的視覺效果,應該最大限度地降低圖像的誤差,所以,在對深度一樣的節點進行裁減的過程中,筆者主要是通過將最小像素的節點刪去,以誤差擴散的方式保證圖像細節。

八叉樹裁減主要是以其顏色數是不是比256色高當作裁減結束的標準。當比256色高的時候,就從最小像素點的節點位置進行裁減,直至顏色數在249~256區域內為止,這樣才可以與調色表的設計要求相符合。

裁減的時候應該首先看第三層的節點數是不是比256高,要是比256高,就應該將4層的全部葉節點向其父節點里面進行合并,同時還應該適當的裁減。接著開展從下到上的裁減操作。在這里主要是將顏色次數出現最小的最底層父節點的子節點刪除[9],一直至滿足上述條件為止。具體通過下面的操作流程進行:

1)第一步,從根節點處對八叉樹進行遍歷,得到最底層的父節點;

2)第二步,將該種節點向一個鏈表里面進行存儲,同時根據節點的顏色數從高到低進行邏輯排序;

3)第三步,將該種節點子節點的顏色數與RGB的對應的值進行累加;

4)第四步,這種情況下,鏈表尾部為顏色出現最少的最底層的父節點,然后將該類父節點的全部子節點都刪除,這樣該類父節點就成為葉節點,其父節點則變為底層的父節點,多次進行這幾個步驟,一直到八叉樹的顏色數比257小,才結束操作。

裁減之后會在一定程度上產生圖像層次感不足、輪廓明顯等諸多問題,為有效處理這些問題,筆者同時在顏色量化處理的前提條件下配置相應的負反饋系統,在這里主要是利用Floy-Steinberg誤差擴散算法進行,根據適當的比例將像素的量化誤差向鄰接像素進行擴散,從而使其有所補償。該算法具有諸多優勢,例如處理及時、運算簡單等,因此在實時性的遠程實時監控系統里面具有較高的適用性。

3 實現效果

為了測試優化后屏幕DC法的截圖效率,在同一軟硬環境下,利用設計的屏幕圖像采集。軟件工作基本流程如圖4所示。

截取正在播放的Flash文件的連續的監控畫面,并通過軟件合成。用AVI格式的視頻流檢測所采集到的畫面的連續性。軟件做了4次捕捉實驗,每次捕捉的尺寸不同,每次連續捕捉1000幀,捕捉1幀所需要的平均時間見表1。

如表1所示,可以清晰地比較出屏幕DC和優化屏幕DC二種截圖法的效率。在傳統DC屏幕截圖法中,即使是在尺寸比較小的時候(例如200×200),抓取每一幀的時間是0.0625 s,也就是說1 s抓取16幀,其效率仍沒有滿足24幀/s(f/s)。結合文件內存映射技術后的屏幕DC法,截取尺寸在330×240以內時,基本上可以做到每秒鐘抓取24幀以上,所以在一定的條件下,用基于MVF改進的屏幕DC截取法可以抓取監控屏幕中連續播放的視頻圖像,這樣就完全可以滿足監控畫面的實時連續播放的需求。

圖4 屏幕圖像采集軟件工作基本流程(截圖)

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

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

4 結論

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

筆者針對傳統屏幕DC法在采集圖像上速率的不足,結合內存映射文件法設計了在技術上實現較為直接,能夠適應各種視頻源文件,應用于遠程視頻監控屏幕資源采集的技術方案。同時通過對原始八叉樹算法時效性的改進,再配以改進的Floyd-Steinberg誤差擴散處理技術改善了對采集的屏幕圖像顏色量化降低顏色數據量時所產生的帶狀現象、顏色失真等問題。但是筆者設計的方案所對應的軟件系統目前的工作平臺是Windows系統,因其不是實時操作系統,所以軟件在實時抓取連續播放視頻圖像時,每秒鐘實際的截取幀數可能會小于設置的幀數,所以可以考慮將本文所設計方法移植到實時的操作系統上(例如VxWorks),從根本上解決軟件系統運行速度的可靠性瓶頸問題。另外筆者是通過對所采集的圖像進行量化處理,降低圖像顏色的數據量來降低實時監控系統的網絡負載,對通信網絡的數據吞吐量的提高沒有實際的幫助,所以也可以通過簡化底層通信機制,盡可能避免為提高網絡可靠性所進行的冗余處理,優化網絡通信的協議棧等方式增大系統的負載規模。

[1]鄭世寶.智能視頻監控技術與應用[J].電視技術,2009,33(1):94-96.

[2]胡春安,歐陽城添.Windows編程中的圖像輸出[J].浙江工業大學學報,2006,34(5):546-549.

[3]張立榮,石峰.基于DirectShow的遠程視頻監控系統的設計與實現[J].電視技術,2005,29(3):91-93.

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

[5]李小根,王宗敏,黃志全.基于內存映射文件技術快速繪制大場景流域模型[J].計算機應用與研究,2009,26(2):527-528.

[6]廖峨眉,胡建平.基于八叉樹顏色量化的OpenGL實現[J].信息技術,2010(5):165-167.

[7]呂廣憲,潘懋,宋揚,等.基于多級線性結構和規則分塊的虛擬八叉樹[J].計算機工程,2007,33(23):3-5.

[8]KANG H C,KAI T W,CHIN C C,et al.Exploiting hardware accelerated occlusion queries for visibility culling[J].IEICET Transactions on Fundamentals,2005(7):2007-2014.

[9]GUO Baolong,FU Xiang.A modified octree color quantization algorithm[EB/OL].[2013-02-25].http://www.researchgate.net/publication/224695366_A_Modified_Octree_Color_Quantization_Algorithm.

主站蜘蛛池模板: 国产欧美精品午夜在线播放| 又大又硬又爽免费视频| 久久大香香蕉国产免费网站| 国产激情第一页| 亚洲精品无码AV电影在线播放| 国产伦片中文免费观看| 亚洲日韩精品欧美中文字幕| 欧美成a人片在线观看| 欧美国产日产一区二区| 91网在线| 国产本道久久一区二区三区| 亚洲综合经典在线一区二区| 欧美成人免费午夜全| 日韩人妻无码制服丝袜视频| 国产精品尤物铁牛tv| 91破解版在线亚洲| 国产无码精品在线播放| 亚洲精品国产自在现线最新| 成人精品在线观看| 制服丝袜一区| 综合色88| 国产99热| 色AV色 综合网站| 一区二区无码在线视频| 国产AV无码专区亚洲A∨毛片| 欧美亚洲网| 国产亚洲精品资源在线26u| 91小视频在线观看免费版高清| 大陆精大陆国产国语精品1024 | 欧美一区精品| 国产在线观看一区精品| 亚洲精品少妇熟女| 亚洲精品自产拍在线观看APP| 国产精品乱偷免费视频| 国产欧美在线观看精品一区污| 婷婷六月综合网| 精品视频福利| 日本精品影院| 亚洲h视频在线| 中文字幕欧美成人免费| 色网站免费在线观看| 色综合久久无码网| 久爱午夜精品免费视频| 国产高清在线精品一区二区三区| 国产精品成人啪精品视频| 毛片大全免费观看| 久久99国产综合精品1| 2021天堂在线亚洲精品专区| 欧美人人干| 国产尤物在线播放| 亚洲色图在线观看| 尤物成AV人片在线观看| 97se综合| 亚洲无码高清一区| 欧美影院久久| 99久久精品国产自免费| 狠狠干综合| h网址在线观看| 无码粉嫩虎白一线天在线观看| 午夜性刺激在线观看免费| 九九热精品免费视频| 99精品一区二区免费视频| 最新加勒比隔壁人妻| 欧美另类一区| 日韩高清在线观看不卡一区二区| 91在线视频福利| 国产一区二区三区精品久久呦| 国产婬乱a一级毛片多女| 午夜天堂视频| 精品剧情v国产在线观看| 欧美a级完整在线观看| 国产美女91呻吟求| 精品剧情v国产在线观看| 亚洲日韩图片专区第1页| 久久综合结合久久狠狠狠97色| 91精品免费高清在线| 在线观看国产小视频| 超碰aⅴ人人做人人爽欧美 | 在线免费亚洲无码视频| 国产一区二区人大臿蕉香蕉| 中文字幕久久波多野结衣 | 国产欧美日韩视频一区二区三区|