基于ARM的無線視頻傳輸系統(tǒng)的設計
2 系統(tǒng)軟件設計
2.1 系統(tǒng)軟件框絮
視頻發(fā)送端軟件的主要功能:采集當前屏幕顯示圖像,壓縮圖像,傳送經壓縮的圖像。除此以外發(fā)送端軟件還需要完成與接收端連接的建立、斷開功能。與之對應的,接收端軟件的主要功能是:接收經過壓縮的圖像數據,進行圖像解碼,顯示圖像。發(fā)送端和接收端之間通過Wi-Fi鏈路傳輸數據。系統(tǒng)軟件構架框圖如圖4所示。本文引用地址:http://butianyuan.cn/article/165900.htm
在會議場合,典型的演示方式是播放幻燈片,在這種應用場合下,圖像在大部分時間下都是準靜態(tài)的,所以在這種情況下視頻的刷新速度可以保持在一個較低的數值上,這里我們設定為8幀每秒。此時,若計算機的屏幕分辨率是1 280×800,色深是24 bit,則視頻流的速率是197Mb/s。
而目前普遍采用的802.11 g Wi-Fi標準,其標稱速度只有54 Mbps,并不能滿足以上所需的數據帶寬。所以需要對數據經行壓縮。在1 280x800的分辨率下,壓縮率需要在5:1以上,可以考慮選用JPEG標準。JPEG壓縮品質比較如圖5所示。
JPEG是很靈活的編碼標準,其Q值可以在100以內任意取值。但如果圖片質量過高,不但增加了圖像編碼時CPU的負擔,而且增加了數據傳輸量;而圖片質量過低又會影響演示質量。需要在圖像質量和數據流量之間找到一個平衡點。
圖5是圖片在不同的JPEG編碼質量下的效果比較,當Q取50時,進過壓縮的圖片在肉眼觀察下任然擁有較高的畫質。而此時,壓縮率是15:1,大于前面分析中提出的5:1壓縮率要求,在這種情況下數據速率為13 Mb/s,能夠在802.11 g提供的帶寬下進行傳輸??梢姡琎=50時,圖像質量和數據流量之間可以取得一個較好的平衡。
2.2 視頻發(fā)送端軟件設計
該系統(tǒng)的發(fā)送端軟件基于windows設計。其實現(xiàn)的主要功能可以概括為:采集當前屏幕顯示圖像,壓縮圖像,傳送經壓縮的圖像。發(fā)送端軟件流程圖如圖6所示。
在windows環(huán)境下捕捉當前屏幕的方法有:GDI,DirectX,以及Windows media API。其中采用GDI時效率不高,不適合應用在該系統(tǒng)中,這里選用DirectX。
在DirectX中提供了g_pd3dDevice對象,這是一個IDixeet3DDevice9對象,可以調用IDirect3DSudace9::LockRect()方法來獲得一個指針,這個指針指向當前顯示緩存的首地址,再使用合適的算法計算出當前顯示緩存區(qū)的大小,就可以很方便地復制顯示緩存的內容至指定內存區(qū)域,并采用JEPG標準壓縮所采集到的數據。具體原理和過程如下:每一個DirectX程序都包含了后臺緩存,與此同時,每個程序在默認狀態(tài)下都可以訪問前臺緩存,前臺緩存即存儲了當前的Windows桌面內容。訪問這個前臺緩存就可以捕捉當前桌面所顯示的畫面。以下是捕捉屏幕的關鍵代碼。
評論