尹成瑞
?
多媒體教學(xué)中的屏幕分塊算法的改進(jìn)
尹成瑞
隨著多媒體技術(shù)的發(fā)展與普及,多媒體視頻教學(xué)成為在線教學(xué)的一種趨勢(shì),這些應(yīng)用中很重要的一個(gè)功能就是屏幕信息的捕獲與傳輸。所以,如何以最短的時(shí)間、最少的帶寬占用獲取高質(zhì)量的屏幕數(shù)據(jù)越來(lái)越成為研究熱點(diǎn)。介紹了多媒體教學(xué)系統(tǒng)中采用的屏幕分塊原理,提出了一種對(duì)客戶端屏幕位圖進(jìn)行分塊的算法,具體分塊數(shù)采取動(dòng)態(tài)規(guī)劃思想獲取,然后,對(duì)相鄰時(shí)刻對(duì)應(yīng)分塊位圖進(jìn)行比較,最終只傳輸發(fā)生變化的分塊到服務(wù)器以減少數(shù)據(jù)傳輸量,提高局域網(wǎng)屏幕監(jiān)控的性能。
多媒體教學(xué);屏幕分塊算法;動(dòng)態(tài)規(guī)劃
在多媒體教學(xué)中,屏幕上大部分區(qū)域在一定時(shí)間內(nèi)是保持穩(wěn)定不變的。而對(duì)于網(wǎng)絡(luò)傳輸來(lái)講,真正需要關(guān)注的其實(shí)僅僅是屏幕上前后發(fā)生變化的區(qū)域,這樣如果全屏采集數(shù)據(jù)并在網(wǎng)絡(luò)傳輸時(shí)會(huì)產(chǎn)生較大的數(shù)據(jù)冗余。針對(duì)這一現(xiàn)狀,本文提出一種基于差異的屏幕分塊思想。差異式屏幕捕獲是指在需要利用網(wǎng)絡(luò)實(shí)現(xiàn)多個(gè)終端之間屏幕共享的場(chǎng)合中,為了盡量減少數(shù)據(jù)冗余,進(jìn)而節(jié)省網(wǎng)絡(luò)帶寬,提高屏幕共享質(zhì)量而采取一定的圖像變化檢測(cè)方法,動(dòng)態(tài)檢測(cè)出在一定時(shí)間段內(nèi)屏幕發(fā)生的變化區(qū)域,然后截取變化塊并壓縮傳輸,接收端在接收到變化塊之后再利用適當(dāng)?shù)膱D像拼接技術(shù)將這些變化塊拼接到相應(yīng)位置的一種高效屏幕捕獲技術(shù)。
屏幕分塊核心思想是將x×y大小的計(jì)算機(jī)屏幕按合理的比例分成個(gè)矩形塊,然后進(jìn)行分塊截屏、分塊比較、分塊壓縮和網(wǎng)絡(luò)傳輸。因此,分塊數(shù)和的取值大小是本算法的關(guān)鍵所在。為了針對(duì)不同的屏幕大小找到其最佳的分塊數(shù),本文采取多次取樣分別設(shè)置不同的分塊數(shù)m和n,計(jì)算得出不同的子塊寬度和高度,最后結(jié)合計(jì)算機(jī)屏幕在一段時(shí)間內(nèi)的變化情況,進(jìn)行多次實(shí)驗(yàn)比較分析得到最佳效果的m和n值。
通常計(jì)算機(jī)屏幕的x軸和y軸尺寸大小不同,為了保持各個(gè)分塊和整體屏幕的寬高比例的一致性,便于實(shí)驗(yàn)計(jì)算和比較分析,將屏幕水平和垂直方向分塊數(shù)設(shè)置為相同值,即:m=n。所以,每個(gè)分塊的寬度和高度之比和計(jì)算機(jī)屏幕的寬和高之比相同。那么,假設(shè)計(jì)算機(jī)屏幕寬和高分別是x和y,水平和垂直方向的分塊數(shù)均為n,子塊的寬和高分別是mx和my,則有:和等式成立。mx和my的計(jì)算如公式(1)、(2):
(2)
當(dāng)x或則y不是n的整數(shù)倍時(shí),每個(gè)分塊的寬和高分別比或x/n或則或y/n取值大一點(diǎn)。這樣,就會(huì)導(dǎo)致水平方向或垂直方向的第n組分塊的寬或高達(dá)不到x/n或y/n,為了方便計(jì)算與數(shù)據(jù)處理,本文采用不足區(qū)域用空白補(bǔ)充的方式,使得所有分塊大小都相同。當(dāng)x和y都是n的整數(shù)倍時(shí),整個(gè)圖像正好分為塊,不需要空白塊填充。以2×2為例,即:n=2,把?軸和軸均分為2個(gè)分塊,總的分塊數(shù)為2×2=4,屏幕正好等分和需要空白填充塊的屏幕分塊示意圖分別如圖1和圖2所示:
圖1 2×2屏幕分塊示意圖(無(wú)需空白塊填充)
圖2 2×2屏幕分塊示意圖(需要空白塊填充)
本文算法中所截取的計(jì)算機(jī)屏幕和對(duì)其分塊所得的子塊都采用bmp位圖格式類型,屏幕分塊所得的n×n個(gè)子塊在內(nèi)存中仍存儲(chǔ)為bmp位圖類型,位圖數(shù)據(jù)采用RGB類型數(shù)據(jù),相鄰時(shí)間點(diǎn)相應(yīng)分塊比較時(shí)將分塊位圖數(shù)據(jù)讀取到Opencv視覺庫(kù)函數(shù)中的矩陣結(jié)構(gòu)結(jié)構(gòu)CMat中進(jìn)行。假設(shè)計(jì)算機(jī)屏幕大小為X×Y,分塊數(shù)為n×n。屏幕分塊之后所得子塊集合Z如公式(3):
為了找出合理的屏幕水平和垂直方向分塊數(shù)n,避免分塊過(guò)大和過(guò)小造成系統(tǒng)資源和時(shí)間成本的浪費(fèi)。本文在執(zhí)行屏幕分解的過(guò)程中,不是將屏幕分為確定數(shù)量的子塊,而是采取以下策略:i)在首次發(fā)生屏幕分塊時(shí),通過(guò)結(jié)合被控端屏幕的寬度和高度大小設(shè)定為合適的n的初始值。i i)多次分塊過(guò)程中采用動(dòng)態(tài)規(guī)劃思想,在一定時(shí)間段內(nèi),根據(jù)屏幕變化分塊的數(shù)量的大小變化趨勢(shì)進(jìn)而逐步調(diào)整下一時(shí)間段內(nèi)的分塊數(shù),最終找到最接近最優(yōu)狀態(tài)的n值。本文采取的動(dòng)態(tài)規(guī)劃思想如圖3所示:
圖3 動(dòng)態(tài)規(guī)劃思想
動(dòng)態(tài)求解水平和垂直分塊數(shù)n的具體過(guò)程如圖4所示:
圖4 動(dòng)態(tài)求解水平和垂直分塊數(shù)n的過(guò)程
圖4中表示客戶端在首次觸發(fā)屏幕監(jiān)控的一個(gè)時(shí)間周期t內(nèi)進(jìn)行截屏并分塊的初始水平和垂直方向分塊數(shù),ni表示在第t個(gè)時(shí)間周期內(nèi)分塊截屏?xí)r水平和垂直方向分塊數(shù)。n0的初始值的值a是系統(tǒng)在發(fā)生首次整屏捕獲之后根據(jù)當(dāng)前被監(jiān)控終端的屏幕寬度而設(shè)定的固定的值,具體的計(jì)算方式見公式(4):
公式(4)中為被監(jiān)控終端的屏幕寬度。圖4中狀態(tài)遷移線上的條件①表示,條件②表示,條件③表示。
屏幕分塊算法主要描述在多媒體屏幕的初始時(shí)刻進(jìn)行整屏截取屏幕信息,然后將屏幕進(jìn)行分塊的過(guò)程。算法中主要?jiǎng)?chuàng)新點(diǎn)是屏幕分塊數(shù)不是固定不變的,而是隨著屏幕變化區(qū)域的大小及頻率的變化而動(dòng)態(tài)變化,從而保證在一段相對(duì)較長(zhǎng)的時(shí)間內(nèi)有較穩(wěn)定和高效的分塊數(shù)。假設(shè)屏幕分塊數(shù)ni進(jìn)行一次動(dòng)態(tài)規(guī)劃的時(shí)間間隔為T,屏幕截取、分塊、比較、傳輸整個(gè)過(guò)程為一個(gè)時(shí)間周期ti,通常在一個(gè)周期T內(nèi)包含多個(gè)這樣的子過(guò)程,每個(gè)子過(guò)程中的分塊比較結(jié)束時(shí)記錄變化分塊數(shù)ai,所有子過(guò)程的截屏分塊數(shù)n相同,但時(shí)間ti周期不一定相同,發(fā)生變化的分塊數(shù)也不一定相同。具體的T和ti關(guān)系應(yīng)滿足:即:在一個(gè)周期T內(nèi)正好完成m個(gè)截屏、分塊、比較、傳輸子過(guò)程時(shí);或者且,即:在給定的周期內(nèi)完成m個(gè)子過(guò)程時(shí)間有剩余,但不夠完成m+1個(gè)子過(guò)程。
當(dāng)時(shí)間T結(jié)束,即:或m或則m+1個(gè)截屏、分塊、比較、傳輸子過(guò)程結(jié)束時(shí),計(jì)算出所有子過(guò)程的變化分塊數(shù)的平均值,計(jì)算公式如公式(5):
屏幕分塊算法流程圖如圖5所示:
圖5 屏幕分塊算法流程圖
在未引入分塊和比較思想時(shí)通過(guò)將采集到的屏幕圖像分別保存為bmp和jpg兩種格式進(jìn)行實(shí)驗(yàn),通過(guò)多次實(shí)驗(yàn)得出二者性能數(shù)據(jù)比較如表1所示:
表1 兩種屏幕圖像采集參數(shù)對(duì)照表(屏幕分辨率:1024×768)
可見采用jpg格式可以大大減少截屏?xí)r間和硬盤容量。同時(shí),文件大小差異很大,所以在網(wǎng)絡(luò)傳輸上,后者也具有明顯的優(yōu)勢(shì),更好地保證了監(jiān)控實(shí)時(shí)性和可靠性。而且,jpg本身是壓縮型的文件格式,所以無(wú)需對(duì)圖像再次壓縮。如果屏幕圖像基本一直在發(fā)生變化時(shí),這種采取jpg格式存儲(chǔ)和網(wǎng)絡(luò)傳輸?shù)姆椒ň哂泻芎玫男省5?,由于jpg格式自身的壓縮結(jié)構(gòu)原因,當(dāng)需要對(duì)圖像分塊和比較等處理時(shí),最好是采用未經(jīng)壓縮的bmp位圖格式。因此,本文系統(tǒng)采取bmp格式形成和保存位圖,然后在傳輸時(shí)將其按一定的編碼方式進(jìn)行壓縮再傳輸。
目前現(xiàn)有的屏幕截取技術(shù)主要有定時(shí)掃描整屏截取,鏡像驅(qū)動(dòng)技術(shù),API Hook技術(shù),這些技術(shù)很少考慮被控端屏幕內(nèi)容是否發(fā)生變化。本文提出一種高效的動(dòng)態(tài)截屏方式,利用動(dòng)態(tài)規(guī)劃思想對(duì)屏幕進(jìn)行合理分塊,然后動(dòng)態(tài)掃描比較相鄰時(shí)間點(diǎn)上對(duì)應(yīng)矩形塊的內(nèi)容,進(jìn)而找到發(fā)生變化的分塊,最后只傳輸發(fā)生變化的分塊系統(tǒng)運(yùn)行結(jié)果表明,在一定時(shí)間范圍內(nèi),當(dāng)屏幕信息發(fā)生局部變化時(shí),該系統(tǒng)明顯提高了截屏速度,減少了對(duì)屏幕冗余信息的截取和傳輸,一定程度上提高了局域網(wǎng)監(jiān)控中屏幕信息交互的流暢性和清晰度。
[1] 孫路,畢篤彥. 基于信息熵的圖像分割閾值迭代改進(jìn)算法[J].計(jì)算機(jī)應(yīng)用與軟件,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算子的圖像邊緣檢測(cè)及其實(shí)現(xiàn)[J].人工智能及識(shí)別技術(shù), 2008,(15):1105-1106, 1125.
[5] 鄒福輝,李忠科.圖像邊緣檢測(cè)算法的對(duì)比分析[J].計(jì)算機(jī)應(yīng)用,2008,28(1): 215- 216,219.
[6] 彭豐平,鮑蘇蘇,曾碧卿. 基于自適應(yīng)區(qū)域生長(zhǎng)算法的肝臟分割[J].計(jì)算機(jī)工程與應(yīng)用, 2010,46(33):198-200.
[7] 徐彩云. 圖像識(shí)別技術(shù)研究綜述[J].電腦知識(shí)與技術(shù),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的屏幕圖像捕捉技術(shù)[J].計(jì)算機(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和輪詢監(jiān)測(cè)機(jī)制的屏幕共享技術(shù)[J].計(jì)算機(jī)工程與應(yīng)用, 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-),男,青海大學(xué),講師,碩士,研究方向:計(jì)算機(jī)網(wǎng)絡(luò),西寧,810016