尹成瑞
?
多媒體教學中的屏幕分塊算法的改進
尹成瑞
隨著多媒體技術的發展與普及,多媒體視頻教學成為在線教學的一種趨勢,這些應用中很重要的一個功能就是屏幕信息的捕獲與傳輸。所以,如何以最短的時間、最少的帶寬占用獲取高質量的屏幕數據越來越成為研究熱點。介紹了多媒體教學系統中采用的屏幕分塊原理,提出了一種對客戶端屏幕位圖進行分塊的算法,具體分塊數采取動態規劃思想獲取,然后,對相鄰時刻對應分塊位圖進行比較,最終只傳輸發生變化的分塊到服務器以減少數據傳輸量,提高局域網屏幕監控的性能。
多媒體教學;屏幕分塊算法;動態規劃
在多媒體教學中,屏幕上大部分區域在一定時間內是保持穩定不變的。而對于網絡傳輸來講,真正需要關注的其實僅僅是屏幕上前后發生變化的區域,這樣如果全屏采集數據并在網絡傳輸時會產生較大的數據冗余。針對這一現狀,本文提出一種基于差異的屏幕分塊思想。差異式屏幕捕獲是指在需要利用網絡實現多個終端之間屏幕共享的場合中,為了盡量減少數據冗余,進而節省網絡帶寬,提高屏幕共享質量而采取一定的圖像變化檢測方法,動態檢測出在一定時間段內屏幕發生的變化區域,然后截取變化塊并壓縮傳輸,接收端在接收到變化塊之后再利用適當的圖像拼接技術將這些變化塊拼接到相應位置的一種高效屏幕捕獲技術。
屏幕分塊核心思想是將x×y大小的計算機屏幕按合理的比例分成個矩形塊,然后進行分塊截屏、分塊比較、分塊壓縮和網絡傳輸。因此,分塊數和的取值大小是本算法的關鍵所在。為了針對不同的屏幕大小找到其最佳的分塊數,本文采取多次取樣分別設置不同的分塊數m和n,計算得出不同的子塊寬度和高度,最后結合計算機屏幕在一段時間內的變化情況,進行多次實驗比較分析得到最佳效果的m和n值。
通常計算機屏幕的x軸和y軸尺寸大小不同,為了保持各個分塊和整體屏幕的寬高比例的一致性,便于實驗計算和比較分析,將屏幕水平和垂直方向分塊數設置為相同值,即:m=n。所以,每個分塊的寬度和高度之比和計算機屏幕的寬和高之比相同。那么,假設計算機屏幕寬和高分別是x和y,水平和垂直方向的分塊數均為n,子塊的寬和高分別是mx和my,則有:和等式成立。mx和my的計算如公式(1)、(2):
(2)
當x或則y不是n的整數倍時,每個分塊的寬和高分別比或x/n或則或y/n取值大一點。這樣,就會導致水平方向或垂直方向的第n組分塊的寬或高達不到x/n或y/n,為了方便計算與數據處理,本文采用不足區域用空白補充的方式,使得所有分塊大小都相同。當x和y都是n的整數倍時,整個圖像正好分為塊,不需要空白塊填充。以2×2為例,即:n=2,把?軸和軸均分為2個分塊,總的分塊數為2×2=4,屏幕正好等分和需要空白填充塊的屏幕分塊示意圖分別如圖1和圖2所示:

圖1 2×2屏幕分塊示意圖(無需空白塊填充)

圖2 2×2屏幕分塊示意圖(需要空白塊填充)
本文算法中所截取的計算機屏幕和對其分塊所得的子塊都采用bmp位圖格式類型,屏幕分塊所得的n×n個子塊在內存中仍存儲為bmp位圖類型,位圖數據采用RGB類型數據,相鄰時間點相應分塊比較時將分塊位圖數據讀取到Opencv視覺庫函數中的矩陣結構結構CMat中進行。假設計算機屏幕大小為X×Y,分塊數為n×n。屏幕分塊之后所得子塊集合Z如公式(3):

為了找出合理的屏幕水平和垂直方向分塊數n,避免分塊過大和過小造成系統資源和時間成本的浪費。本文在執行屏幕分解的過程中,不是將屏幕分為確定數量的子塊,而是采取以下策略:i)在首次發生屏幕分塊時,通過結合被控端屏幕的寬度和高度大小設定為合適的n的初始值。i i)多次分塊過程中采用動態規劃思想,在一定時間段內,根據屏幕變化分塊的數量的大小變化趨勢進而逐步調整下一時間段內的分塊數,最終找到最接近最優狀態的n值。本文采取的動態規劃思想如圖3所示:

圖3 動態規劃思想
動態求解水平和垂直分塊數n的具體過程如圖4所示:

圖4 動態求解水平和垂直分塊數n的過程
圖4中表示客戶端在首次觸發屏幕監控的一個時間周期t內進行截屏并分塊的初始水平和垂直方向分塊數,ni表示在第t個時間周期內分塊截屏時水平和垂直方向分塊數。n0的初始值的值a是系統在發生首次整屏捕獲之后根據當前被監控終端的屏幕寬度而設定的固定的值,具體的計算方式見公式(4):

公式(4)中為被監控終端的屏幕寬度。圖4中狀態遷移線上的條件①表示,條件②表示,條件③表示。
屏幕分塊算法主要描述在多媒體屏幕的初始時刻進行整屏截取屏幕信息,然后將屏幕進行分塊的過程。算法中主要創新點是屏幕分塊數不是固定不變的,而是隨著屏幕變化區域的大小及頻率的變化而動態變化,從而保證在一段相對較長的時間內有較穩定和高效的分塊數。假設屏幕分塊數ni進行一次動態規劃的時間間隔為T,屏幕截取、分塊、比較、傳輸整個過程為一個時間周期ti,通常在一個周期T內包含多個這樣的子過程,每個子過程中的分塊比較結束時記錄變化分塊數ai,所有子過程的截屏分塊數n相同,但時間ti周期不一定相同,發生變化的分塊數也不一定相同。具體的T和ti關系應滿足:即:在一個周期T內正好完成m個截屏、分塊、比較、傳輸子過程時;或者且,即:在給定的周期內完成m個子過程時間有剩余,但不夠完成m+1個子過程。
當時間T結束,即:或m或則m+1個截屏、分塊、比較、傳輸子過程結束時,計算出所有子過程的變化分塊數的平均值,計算公式如公式(5):
屏幕分塊算法流程圖如圖5所示:

圖5 屏幕分塊算法流程圖
在未引入分塊和比較思想時通過將采集到的屏幕圖像分別保存為bmp和jpg兩種格式進行實驗,通過多次實驗得出二者性能數據比較如表1所示:

表1 兩種屏幕圖像采集參數對照表(屏幕分辨率:1024×768)
可見采用jpg格式可以大大減少截屏時間和硬盤容量。同時,文件大小差異很大,所以在網絡傳輸上,后者也具有明顯的優勢,更好地保證了監控實時性和可靠性。而且,jpg本身是壓縮型的文件格式,所以無需對圖像再次壓縮。如果屏幕圖像基本一直在發生變化時,這種采取jpg格式存儲和網絡傳輸的方法具有很好的效率。但是,由于jpg格式自身的壓縮結構原因,當需要對圖像分塊和比較等處理時,最好是采用未經壓縮的bmp位圖格式。因此,本文系統采取bmp格式形成和保存位圖,然后在傳輸時將其按一定的編碼方式進行壓縮再傳輸。
目前現有的屏幕截取技術主要有定時掃描整屏截取,鏡像驅動技術,API Hook技術,這些技術很少考慮被控端屏幕內容是否發生變化。本文提出一種高效的動態截屏方式,利用動態規劃思想對屏幕進行合理分塊,然后動態掃描比較相鄰時間點上對應矩形塊的內容,進而找到發生變化的分塊,最后只傳輸發生變化的分塊系統運行結果表明,在一定時間范圍內,當屏幕信息發生局部變化時,該系統明顯提高了截屏速度,減少了對屏幕冗余信息的截取和傳輸,一定程度上提高了局域網監控中屏幕信息交互的流暢性和清晰度。
[1] 孫路,畢篤彥. 基于信息熵的圖像分割閾值迭代改進算法[J].計算機應用與軟件,2008,(10): 225-226,238.
[2] Kittler J. and Illingworth J. Minimum error thresholding[J]. Pattern Recognition, 1986,19(1):41-47,.
[3] Bosc M., Heitz F., Armspach J. P., Namer1., Gounot D., and Rumbach L., Auto- matic change detection in multimodal serial MRI: Application to multiple sclerosis lesion evolution[J], Neuroimage, vol. 20, pp. 643-656,2003.
[4] 孫洪淋,廖繼旺. 基于Sobel算子的圖像邊緣檢測及其實現[J].人工智能及識別技術, 2008,(15):1105-1106, 1125.
[5] 鄒福輝,李忠科.圖像邊緣檢測算法的對比分析[J].計算機應用,2008,28(1): 215- 216,219.
[6] 彭豐平,鮑蘇蘇,曾碧卿. 基于自適應區域生長算法的肝臟分割[J].計算機工程與應用, 2010,46(33):198-200.
[7] 徐彩云. 圖像識別技術研究綜述[J].電腦知識與技術,2013,9(10): 2446-2447.
[8] Pun T. Entropic thresholding, a new method[J]. Computer Graphics and Image Process,16(3):210-239,1981.
[9] 周恕義,陳圣奇,賀玉虎等. 基于MirrorDriver的屏幕圖像捕捉技術[J].計算機工程,2013,(6):295-298.
[10] Massig J H. Measurement of Phase Objects by Simple Means[J]. Applied Optics, 2003,38(19):4103-4105.
[11] 楊紅生. 基于Hook和輪詢監測機制的屏幕共享技術[J].計算機工程與應用, 2009,45(5):29-31.
Improvement of Screen Block Algorithm in Multimedia Teaching
Yin Chengrui
(Qinghai University, Qinghai 810016, China)
With the development and popularization of multimedia technology, multimedia video teaching becomes a trend in online teaching, and the capture and transmission of screen information is a very important function of these applications. Therefore, how to get screen data of high quality by the shortest time and less bandwidth becomes a research hotspot. This article introduces the screen block principle used by the multimedia teaching system, and it proposes an algorithm to do the blocking for the screen bitmap at client side. The actual number of blocks can be got by dynamic programming, and then it compares the corresponding block bitmap of adjacent time. In the end only the blocks which have changed can be transmit to the server so that it can reduce the amount of data transmission, and it also improves the performance of the LAN screen monitoring.
Multimedia; Screen Block Algorithm; Dynamic Programming
1007-757X(2016)04-0060-03
TP311
A
(2015.11.09)
尹成瑞(1981-),男,青海大學,講師,碩士,研究方向:計算機網絡,西寧,810016