林原++徐亞軍

摘 要本文源于一種無紙化會議系統的圖形傳輸模塊,根據設計要求,要實現同屏顯示。在這個問題上,涉及到圖像傳輸算法優化。在優化方案中,固定分塊算法是一種常見手段,而本文基于這種算法,提出相應改進,并加以應用,滿足設計需求。
【關鍵詞】圖像傳輸 算法同屏顯示
1 會議系統簡述
1.1 會議系統架構
首先簡述會議系統功能。此系統采用C/S架構,由一個服務端和多個客戶端構成。使用環境限定局域網,通過socket通信中TCP套接字綁定IP的方式實現服務端與客戶端的通信,具體包括圖像文字語音視頻信息的交互,本文著重于圖像傳輸模塊。
1.2 需求分析
在會議系統的同屏匯報模式中,所有與會人員同屏顯示發言人屏幕。整個同屏過程相當于位圖在局域網中傳輸。考慮到網絡帶寬及電腦CPU資源占用等因素,希望圖片傳輸模塊盡可能的降低傳輸數據量,以保證會議系統的實時性與流暢性。
2 圖像傳輸
2.1 圖像傳輸過程
會議系統的圖像傳輸模塊流程可以簡要概述為以下幾個步驟:
2.1.1 發言人開啟
發言客戶端開啟屏幕模式后,以0.05s為時間間隔進行圖片截取,截取下來的位圖信息發送至客戶端。
2.1.2 客戶端判定
若其他人正在發言則終止操作;若無人發言,則接收位圖信息。
2.1.3 服務端繪制
當客戶端接收到位圖信息后,發送給除發言人之外的其他客戶端;客戶端收到服務端傳輸位圖信息后,通過雙緩存的方式,將位圖資源寫入緩沖區并拷貝位圖至畫布,完成同屏圖像傳輸。
2.2 圖像傳輸算法
如2.1所述,在使用中為了保證畫面流暢(20幀以上),設定傳輸間隔為0.05s,而在實際使用中,匯報人屏幕在相隔0.05秒的兩個時間節點內,變化量可能非常有限,大部分時間只是鼠標的變動。如采取整圖傳輸,勢必浪費帶寬,因此在向服務端傳輸前,增加了算法優化部分,減小圖像傳輸的數據量。
3 算法優化
3.1 固定分塊算法
在圖像傳輸的過程中,只需傳輸變化的像素點。在算法優化方案中,固定分塊,隔行掃描是一種非常普遍的方案,具體實施步驟如下:
(1)本地緩存上一個時刻的bmp位圖,在下一掃描時刻,截取新的bmp位圖,將位圖分成若干矩形(一般為3*3,3*4,4*3),并逐一編號。
(2)對每一個bmp位圖分塊進行掃描,掃描方式為隔行掃描:從第I行(I初始為1)初始點起,對該行每一個點依次掃描,對照上一個時間點的位圖,若發現異樣點則停止掃描;若整行無異樣點,根據指定的間隔行數N,對第I行(I=I+N)行進行掃描,至I大于該分塊的總行數。
(3)對發現異樣點的bmp位圖分塊進行傳輸。在客戶端顯示的過程中,將接收的位圖分塊渲染到指定區域,對于未傳輸的部分,即無變化區域,與上一時刻顯示相同。
固定分塊算法在實際的使用中,由于只傳輸變化分塊,因此相比于整圖發送,帶寬資源及CPU資源占有率都有降低。但是其分塊方式簡單機械,在一定程度上限制了算法的優越性。
以圖1為例。若整個矩形為屏幕,圖中橢圓為需要傳輸的內容,屏幕采用3*4的分塊方式。顯然,對于1-12所有分塊,都包含橢圓的像素點,因此每個分塊都要進行傳輸,這相當于未優化。由于變化像素點的位置是隨機的,固定的分塊難以找到最佳傳輸矩形。因此本文基于固定分塊,隔行掃描的基礎思想,加以改進,提出一種自適應式分塊掃描算法。
3.2 自適應分塊算法
這種分塊方式,在初始階段與固定分塊相同,存儲上一時刻位圖,在下一時刻到來時,截取位圖。截圖后分塊,其分塊方式要通過掃描進行計算。以下具體介紹其計算方式:
3.2.1 建立坐標系
根據使用習慣,X軸向右為正方形,Y軸向下為正方形。同時設定掃描間隔行數N。
3.2.2 對應事件
設置事件1,該行發現不同像素點為true;事件2,該行未發現不同像素點為false。
3.2.3 掃描原則
從左上角(0,0)開始,沿X、Y軸正方向掃描。在每一行結束時判定掃描事件。當發生事件true時,開始記錄每一個變化點坐標;當發生事件false時,進入分塊階段,并記錄該行數I。
3.2.4 矩形選擇
通過步驟3,得到若干變化像素點,設每一個變化像素點的坐標為(Px1,Py1),(Px2,Py2)......通過這些變化像素點求出待傳輸矩形的對角坐標(Rrx,Rry)。
Rlx=min(Px1,Px2…)
Rly=min(Py1,Py2…)
Rrx=min(Px1,Px2…)
Rry=min(Px1,Px2…)
3.2.5 整圖掃描
在完成矩形選擇后,從發生事件2第I行起,間隔N行開始掃描,(此時I=I+N),依照上述掃描原則,重復此步驟至掃描整個位圖,選擇對應矩形。
3.2.6 同屏顯示
傳輸對應的矩形框,并根據坐標在指定位置繪制傳輸矩形,其他區域顯示上一時刻緩沖位圖。
以上介紹了本會議系統中所采用的自適應式分塊算法的基本原理,圖2可以直觀的描述。
4 總結
本文結合實際需求,設計出一種根據變化區域自行判定傳輸矩形的分塊掃描算法,相比于固定分塊掃描算法更為靈活。該方法特別適用于會議中PPT講解的同屏傳輸,在PPT講解過程中,大部分情況下屏幕的變動僅限于幾個圖形、一行文字,甚至只有光標的移動,因此待傳輸位圖只占整個屏幕的幾十甚至幾百分之一,而固定分塊方式,如3*3分塊,每次至少要傳輸1/9屏幕,可以得出,針對本課題所采用的會議系統,本文這種算法改進十分有效。
參考文獻
[1]吳棟淦.兩種屏幕圖像捕獲方案的比較[J].計算機技術應用,2007(03):9-11.
[2]劉德勝.基于矩形分割的局部渲染技術在無線圖像通信中的應用[J].程度信息工程學院學報,2012(27):5-7.
作者單位
北京航空航天大學 北京市 100191