You are on page 1of 3

第26卷第12期 计算机工程与设计 2005年12月

V01.26 No.1 2 Computer Engineering and Design Dec.2005

面向远端屏幕监控的一种图像压缩传输方法
肖道举, 刘洪峰, 陈晓苏
(华中科技大学计算机科学与技术学院,湖北武汉430074)

摘要:针对已有的屏幕图像传输技术过于消耗主机资源和网络带宽的现状,给出了一种改进的远端屏幕图像压缩传
输方法。通过对屏幕图像进行分块,只传输发生改变的屏幕图像块,大大地减少了图像数据的传输流量,提高了控制
端屏幕刷新的流畅度。最后对本技术进行性能测试,并针对不同应用环境提出优化方法,可以作为网络监控、远程控
制等系统屏幕传输算法的参考。
关键词:屏幕监控;图像传输;图像压缩;远程控制;网络安全
中图法分类号:TP391 文献标识码:A 文章编号:1000.7024(2005)12-3356—02

Image compression and transmission method for remote screen monitoring

XIAO Dao-ju, LIU Hong—feng, CHEN Xiao-SU

(School ofComputer Science and Technology,Huazhong University ofScience and Technology,Wuhan 430074,China)
Abstract:In the view ofhigh occupation on the system and network bandwidth ofthe traditional method ofscreen image transmission,

an improved compression and transmission technology of screen image was given out, which divided the screen into blocks, and only

transfer the block that changed,SO that lower transmission flux was obfained,with a good refresh rate of the screen.At last,the

performance test on the technology was made,and also some optimization method in particular application environment.It is a reference

for network monitoring,remote control and other systems.

Key words:screen monitoring;image transmission;image compression;remote control;network security

1引 言 2思路及原理

在网络远程控制、网上主机监控等应用领域,需要对屏幕 2.1屏幕图像的捕捉
图像进行实时压缩和传输。屏幕图像实时压缩和传输有其自 图像压缩传输的前提是图像截取。通常获取屏幕图像的
身的特点,一是需要高效的图像压缩算法,减少对主机资源的 方法有两种:创建屏幕DC方法和使用DirectX方法。两种屏
消耗;另一方面要求实际传输的数据流量尽可能的小,以适合 幕捕捉方法各有优劣,屏幕DC方法适用范围广,能够捕捉大
各种网络传输环境。传统的影像压缩算法如MPEG、H.26x等, 部分的屏幕图像,但捕捉速度较慢。DirectX方法捕捉速度快,
虽然压缩效率高,但是进行编码时的资源开销较大,在此并不 但适用范围较窄。有研究人员在CPU为Athlon XPl700+,使
适用…。 用显卡Geforce2GTS并安装DirectX8.1的测试环境中,对上述
本文针对屏幕监控的特点,通过分析已有的屏幕图像 两种方法分别进行了3次捕捉试验,每次连续捕捉100帧,每
压缩传输技术,给出了一种面向远端屏幕监控的图像压缩 种方法在不同分辨率下的每帧平均捕捉时间如表1所示嘲。
传输方法,以满足不同网络应用环境下屏幕图像传输的需
表1屏幕图像捕捉速度比较
要。
屏幕尺寸 DC/ms DX/ms
已有的屏幕图像传输方法通常采取设备描述表DC(De.
1024x768 450 122
vice Context)方式获取屏幕图像,然后对获取的整幅屏幕图像
800x600 270 74

进行压缩、传输。
640x480 170 47

在实际应用中,压缩运算将大量地占用被监控主机的资 320x240 45 12

源,而传输的图像数据也会严重消耗网络带宽,在网络繁忙的
情况下,无法保障传输质量。 从表1可以看出DirectX方法在速度方面明显优于屏幕
为了能满足不同网络环境中的应用,需要对已有的屏幕 DC方法。为了提高效率,减少对被监控主机资源的占用,优
图像传输方法进行改进。 先选择DirectX来进行屏幕图像的捕捉,并使用DC方式作为

收稿日期:2004—10—23。
作者简介:肖道举(1954.),男,湖北人,副教授,研究方向为计算机网络技术;刘洪峰(1981一),硕士生,研究方向为计算机网络安全。

万方数据
补充,以兼顾到DirectX未安装或DirectX版本过低的主机。 屏幕的内存数据逐个字节进行比较。此方法需保存两份屏幕

2.2图像的压缩 数据拷贝,当分辨率为1024x768,24位色时,一幅图像所需内

由于屏幕图像需要进行实时传输,如需做到无打扰监控, 存空间为2.25Mb。

需保证主机资源和网络带宽的低占用率,其中压缩的效率是 (2)CRC比较法:本方法计算图像数据的CRC值“1,对前

关键所在。 一幅图像仅保存其CRC值,通过判断两幅图像的CRC值即可

目前常用的图像压缩方式有无损的GIF压缩和有损的 判断图像是否发生改变。
JPEG压缩的。GIF最高色彩数为256色,JPEG可以达到24位 由于CRC算法是根据内存数据计算出一个2字节的CRC
真彩色。 数据字,因而对于连续的2幅屏幕图像,图像发生改变而计算
针对上述两种压缩方式,在1024×768的分辨率下,对1个 得到的CRC数据又相同的可能性仅为:

p=c!-・×c:n=啬≈4×1

标准Windows桌面进行捕捉,分析不同色彩数情况下的图像 0_10

压缩状况,结果如表2所示。其中JPEG压缩采用65%的压缩
显然这一概率非常小,所以采取CRC来判断图像是否变
比01,GIF压缩为256色。 .

化是可行的。
表2不同色彩数的屏幕图像Jpeg压缩的比较 为确定哪种方式更适合实际应用的需要,对这两种方法

屏幕色彩数 压缩前 Jpeg压缩 Gif压缩 进行了测试。测试程序随机生成2块1Mb大小内存数据,考


4位(16色) 384KB 69KB 2l KB 虑到进行逐字节比较的效率同数据内容有关,为模拟实际情
8位(256色) 768KB 67KB 31 KB 况,取前512Kb的数据相同。使用VC++6.0,debug方式编译,
24位色 2.25M[B 67KB N/A
测试机器为P4 1.8GHz,512Mb内存。结果如表3所示。

表3 mememp和CRC方式的比较
从表2可看到,GIF压缩方法除了支持最高色彩只能达到
方式 百次时间注 CPU占用率
256色外,其压缩率远优于JPEG压缩方法。对于多数日常工
memcmp 0,089 SeC. 大约20%
作,如文字处理、网络浏览等而言,256色已足够清楚地识别和
CRC 4.087 see. 大约98%
判断文字、图标等信息,因此选择GIF压缩作为图像压缩方法。
经过GIF压缩后,根据图像内容的不同,整幅屏幕图像数 从表3可以看出,使用memcmp要比使用CRC快近50倍,
据大约为30-150Kb。如需进行流畅的屏幕监控,图像更新速 而且占用资源非常低,惟一缺点是多占用1倍的内存空间。由
率最好达到1帧/秒(1fps),即系统的最低网络带宽至少需要 于需要对图像进行实时传输,同时还要尽量减少对主机资源
30x8=240Kbps。局域网和宽带环境一般可满足此带宽需求, 的开销,最后选择使用memcmp来实现图像的比较。在实际
但在窄带(如拨号上网)环境中,会出现严重的图像刷新延迟。 应用中,可根据不同环境来选择。
所以仅仅使用GIF压缩是不够的,本文给出的方法正是为了 注:时间为程序运行10次的平均值
解决这一问题。 以下是使用memcmp方式的算法:
2.3屏幕图像的分块压缩传输 ・被控端:
传统的屏幕图像传输方法是定时截取整幅图像后压缩传 定时进行屏幕的截取
输,这会消耗大量的主机资源和网络带宽,尤其在窄带环境 {GetDesktop(plBmp)//获取图像
下,该方法无法实现流畅的屏幕图像传输。 pBmp->Bmp[0-1 5】//分块
事实上在电脑使用的大多数时间中,任一微小时间内屏 for(i=0:i<16;i++)
幕图像仅发生局部改变,如果只对发生改变的图像进行传输, {ifmemcmp(oldBmp[i],Bmp[i],size)
将能大大减少屏幕数据传输的流量。因此,可借鉴MPEG影 {oldBmp[i]=Bmp[i】∥刷新图像数据
像动态压缩的思路,对屏幕图像采用分块传输的方法,即将屏 Encode(Brnp[i]一>Gif)//压缩
幕图像划分为4x4共16块,定时同前一时刻比较判断每块图 Send(Gif,i)//发送图像,i为块号
像是否发生改变,仅仅对发生改变的屏幕图像块进行压缩和 )
传输。 )
由于只需要传输发生改变的图像数据,在进行远程控制 }
或者监控时,控制端所显示的远端屏幕就能够得到较好的刷 ・控制端:
新速率,从而实现更好的交互。 {Getlmage(Gif,n)//n为图像块编号
2.4图像改变的判断 Decode(Gif->Bmp)//解压
要对发生改变的屏幕图像进行压缩传输,前提是需对图 Display(Bmp,11)∥刷新对应图像块
像是否发生改变进行判断。截取的图像实际上是一块内存数 )
据,所以只需要对前后2块图像的数据进行比较,如果相同, 需要指出的是,屏幕数据在没有发生改变的情况下,先进
则表示图像没有改变,反之亦然。 行压缩再判断,虽然可以提高判断的效率,但是进行压缩将占
对于数据的比较有两种办法可供选择: 用主机资源。所以最好采取对图像原始数据先进行比较,再
(1)直接比较法:调用C语言的memcmp函数,对前后2幅 对改变的图像数据进行压缩的方式。 (下转第3364页)

・——3357-——
万方数据
,DecodeCache;
4结 论
Url字段是解码缓存结点的主键,decodedata字段用于记

录图像解码数据存放的内存区地址,pImageQueue和nImage- 缓存技术是影响嵌入式浏览器性能的重要因素,本文介
QueueSize字段在多个IMG标签的图片URL相同时使用,保 绍了嵌入式浏览器Jlbrowser中缓存的实现策略,在资源受限
证只为一个URL创建一个图像解码缓存结点,其它字段用于 的嵌入式系统中,使用少量的内存充当缓存,并采取一定的缓
记录图像大小及坐标等信息。 存淘汰机制,可以较好地提高系统性能。实际运行情况表明,
3.2淘汰算法 Jlbrowser上网效果得到了改善,增强了用户的友好性。
根据淘汰策略,图2为缓存管理采用的淘汰算法流程。
参考文献:
入口
[1】Bjrk S,Holmquist L E,Redstrm J,et a1.WEST:A Web browser

延苎至岁
淘汰DecodeCache结点
for small terminals[C].UIST’99,Asheville,NC,1999.187—196.

[2】 李小群,郑良辰,耿增强,等.浅析嵌入式系统中的浏览器[J】.测
Y i 控技术,2001,9(4):9—11.
淘汰不在访问栈口结点l
【3】 周正勇,阳富民,胡贯荣.一种嵌入式浏览器的核心技术及特色

诞区桓E>J
—、—/
劓余缓存区不够大?=≥—=

Y王
[J】.计算机工程与设计,2003,24(3):21—23.
[4】Deborah S Ray,Eric J Ray.HTMIA.0从入门到精通【M】_B京:
进行LFU选择淘汰I
电子工业出社,1998.

淘汰成功?
出错返 [5】5 朱奇波,郑扣根,潘云鹤.一个基于新型嵌入式系统浏览器的设
N 计与实现[J].计算机应用与研究,2002,19(5):101.104.
=:j睦噔堡!曼兰竺奎三二 [6] 李允,熊光泽,杨玉平.一种嵌入式浏览器设计技术【J】.2001,19


Y l・
(12):57.60.
[7】 刘心松,邱元杰.HTTP缓存的研究与实现[J】./J、型微型计算机
系统,2000,21(4):341—343.

(上接第3357页)

少图像数据的传输。此外,在进行图像分块时,可采取动态区
3性能测试和改进
域智能划分技术,通过对不同应用环境的智能判断,选择最佳
3.1性能测试 的屏幕块划分方案,以使传输的图像数据最少。将这些措施结

表4是在几个常见操作情况下,进行分块传输与整幅传 合起来,基本上能满足窄带网络环境下屏幕图像传输的需要。

输网络平均流量的比较81。
4结 论
表4性能对比测试
本文提供了一个对屏幕图像进行高效传输的办法,对于
操作 分块传输 完全传输 优化比
网络监控、远程控制、网络安全等领域都有很强的实用价值。
文字处理 20Kb,s 52Kb,s 39%

编程 13Kb/S 37Kb,s 34%


同时,根据不同应用环境给出相对应的办法,提供的算法也能

浏览网页 39Kb/s 95Kb/s 41% 方便应用到实际的系统当中。

混合 23Kb,s 5lKb,s 44%


参考文献:
从表4可以看出,在屏幕改变非常少的情况下,分块后的
[1】Haskell G,Howard E Image and video coding-emerging stan—

图像数据的传输流量能控制在较小的范畴内,但一旦屏幕图 dards and beyond[J].IEEE Transactions Record,1998,8(7):814—


像发生大幅度改变,仍然会产生较多的数据传输。采用本文 837.

所给出的方法,在ADSL等速率有限的准宽带环境下,能获得 [2】 邱岚,李翠华.Hook技术在视频截取中的应用研究与实现[J】.


较高的屏幕传输流畅度m,。 厦门大学学报(自然科学版),2003,42(6):709.712.
注:以上数据为模拟操作下5分钟内的平均值 [3] 张益贞,刘滔.Visual c++实现MPEG/JPEG编解码技术[M】.北
3.2方法改进和优化 京:人民邮电出版社,2004.46.62.
实际实验发现,若屏幕图像较大区域块发生改变,整个发 [4】 Feng Yuan.Windows graphics programming win32 GDL and di-
生改变的图像块都将需要进行重新传输,这时本文所给出的方 rect draw[M】.Prentice Hall PTR,2002.

法在窄带环境下(每秒传输小于5K)不能满足连续传输要求。 [5]5 宋晖擞字视频压缩编码系统的应用和测试[J】_电子技术,1998,


但是应看到,在文字处理、浏览网页等操作中,屏幕发生变化最 (1):17.21.

多的是拖动,而图像本身的内容并没有发生改变。因此,可以 [6】Douglas E Comer.用TCP/IP进行网际互联,第一卷:原理、协

对图像改变模式进行判断,充分利用已传输的图像数据,以减 议与结构[M】.第4版.北京:电子工业出版社,2001.

-——3364・——

万方数据

You might also like