You are on page 1of 5

第18卷第4期 计算机技术与发展 Vd.18 No.4

2008年4月 (X)MPUTER TEam蚓0GY AND DEVELOPMENT Apr. 2008

一种基于分块采集和压缩技术的屏幕共享方案

左强翔,吴洁
(南京航空航天大学信息科学与技术学院,江苏南京210016)

摘要:在深入研究现有的屏幕共享方法的基础上,在实际的远程教学系统的项目实践过程中提供了一种基于分块采集
和压缩技术的解决方案。该方案主要利用分块采集和数据压缩技术来实现异地屏幕显示图像的共享,即首先使用划分的
思想把屏幕分成一些固定的块,然后分块采集屏幕图像,对采集的图像进行分析,从而决定采用哪一种技术进行压缩,然
后打包传输。针对图像发生变化的块数来决定采用何种压缩技术,主要有I.ZW和RLE数据压缩技术。实验证明,该方案
不仅可以获得很好的压缩率,并且具有较好的实时性和较低的编码复杂度,因此,应用前景广泛。
关键词:屏幕共享;采集;压缩;L2W;砒正
中图分类号:11P311.5 文献标识码:A 文章编号:1673—629X(2008)04—0206一04

A Screen Sharing Scheme Based on Block Collection

and Data Compression

ZUO Qiang-xiang.WU Jie


(College of Information Science&Technology,

Nanjing University of Aexonauties&Astronautics,Nanjing 210016,China)

&hstrtmt:After the deep坨跎眦h of the existing metheds of the x咖s}l咖,proposed all efficiaat scheme according幻the practice of

the distance education¥yate∞/l,to achieve the Kgh compressed ratio at the Sal"ne time protecting the nearly 10ssl图visual quality.ms
scheme is named“block collection”and includes the two main techniques。o眦is called block,and the other is the data—ournpression

method called哪and RLE.The first step of this scheme is to divide the whole饕砌协many equal blocks and collect the im唱∞by

block,save them∞bitmap formats.T11e last step is to apply different method to‘xl'npl'e女different block imag酋.Apply different method

acoording∞the change ntmmber of the all blocks,th眦are two metlxMs:四and RLE.After experimmt.it has good compression甩.

tio.and it has real rune performance,IllOla∞ver,the decode process is fairly simple.So its application prospect is widespread.

Key吣:s咖sharing;collection;compression;L2W;RLE
O引 言 MPEG系统中传统的视频图像序列,虽然两者常常共
所谓屏幕共享…1指的是远端的客户端程序在可以 存于MPEG系统中。例如,在远程教学系统中。远端

适应的时间延迟下,来重现服务器端主机的界面,从而 学生一般要求看到两种图像:一是教师的上半身图像,

使远端的用户感觉就像坐在自己的机子旁边一样来实 二是清晰的教师机上的PowerPoint讲稿。前者属于传

现一种虚拟的界面环境。在目前应用广泛的股票分析 统视频,此类视频的压缩有很多成熟的解决方案,如

系统、远程教学系统以及远程监控系统等众多应用系 H.261,H.263,MPEG一4标准;后者则是近来随着多

统中,经常会有这样的需求,客户或者远程终端要求实 媒体通信技术的发展而涌现出来的具有较多需求的,

时、无损或者在一定视觉容忍度下,共享服务器端主机 由于它与传统视频图像具有许多不同之处,在实际应
用中通常会分开处理。由于对于此种图像应用传统视
屏幕上的股评分析曲线、PowerPoint讲稿、操作界面
等。 频的压缩技术没有得到满意的效果,且无法满足网络

这类图像一般是非连续色调的半运动彩色图像序 实时传输的需要,同时针对不同的应用环境通常很难
提供一个统一的解决方案,例如远程教学系统中教师
列,它们一般都要求高清晰度及全屏显示,它不同于
机的屏幕上的PowerPoint讲稿内容大部分以黑白字
收稿日期:2007一07—12 体为主,以很少的彩色图像为辅,因而就需要一种清晰
作者简介:左强翔(1985一),男,安徽安庆人,硕土研究生,研究方向 度高的解决方案来避免字体在回放时所造成的重影问
为软件工程;吴洁,副教授,研究方向为软件工程。 题,同时屏幕图像具有在一定时间和空间范围内不变

万方数据
第4期 左强翔等:一种基于分块采集和压缩技术的屏幕共享方案 ・207・

的特性。也就说明了存在部分区域和时闻段内不需要 2方案的设计思想
传输的情况,文中主要针对此种应用和屏幕图像的特 在屏幕共享系统中~般都是分两个部分的,服务
点在多次实验的基础上提出了一种基于分块采集穰鹾 器端采集好屏幕数据,经过一定的缡鹌压缩羼,然后再
缩技术的屏幕共事方案,和粥该方案不仅可以获得很 以IP组播或者单播的形式发送蓟客户端程序,客户端
好的腿缩比和较好的实时性和清晰度,并且解码简单, 稷序接收到服务器传送过来的数据后,采用与之相应
是一种走损压缩的解决方案,满足了应熙的需要。 的勰码算法对数据进行髌压缩,再把鳃压后的数据在
指定的窗口中显示出来。具体的设计思想如下:
1屏幕共享技术的发展和实现 (1)系统采用基于C/S的工作模式。该屏幕共享
1。1湃幕共享按术豹发展 系统是采耀C/S模式进行工俸豹,客户端囊服务器端
屏幕共享出现在图形化的用户界谣(GUI)之后, 发送的主要请求命令如裘1所示。
最早的GUI概念由苹果公司提出,并很快得到了IT 表1 客户端发出的主要命令列表、
企韭爨的认可。瑰在,绝大多数流行的搡俸系统,都提
INl聪AI理E 建立双方连接遁遵
供一定的图形用户界面。作为计算机倍息显示的主要 9丑强戴N—GEr 请求传输屏幕图像
方式,屏幕显示信息本身开始成为一种新的信息源…。 B】麟 发送屏幕划分方窳

随着网络应耀的发展,入彝想到剩耀网络去察现 (2)客产端每次发蠢SCREEN—G疆请求对,服
诸如远程控制、监视等方面的应用。这方面的应用需 务器只向客户端传送屏幕上发送变化的块数据的“差
求直接促进了屏幕共享技术的发展。 图”。由于屏幕的抓取与传送是一个连续的过程,通常
屏幕共享技零蟊蘸有很多戆产菇,院如X—win。 一今较短鹃对阕内哭会发生局部范嚣的变化,有时候
dow,Windows系列系统的远程终端服务,NetMeeting, 甚至不变化。因此,没有必要传送整个屏幕,必需要把
Symantec的PCAnywhere,Remote Administrator,VNC 变化的部分传送给客户端就可以了。无变化就可以完
戳及溪内的红瘸蛛教学系统等。 全不震传送,从瑟减少对麓络资源豹占有,提离了实时
1.2屏幕共享的实现方式 性。在具体到传送每一块的时候,采用新块减去旧块
常见的屏幕共享通常由下述两种方式来实 数据,向客户端传送该块的“差图”;客户端收剿“差图”
理[2,3】. 数据以后,把它与自己原骞的该块的上一较数据进行
(1)利用操作系统底层的GUI矢量指令实现。例 相加,从而就得到了该块的“新图”。
如Windows2000提供的远程终端服务。Windows2000 (3)采用无损压缩算法对块数据进行解压缩。为
Professional使用终端客户软俘登陆列Windows2000 了减步数据的传输量,在数据待输之前需要辩其遘行
Server的终端服务,同时服务器端为每个客户端开辟 服缩。为了兼顾图像有更好的可视性,采用了两种无
一个虚拟桌面(Virtual Desktop),并将该用户的操作结 损压缩算法榴结合:LZW算法和RLE算法。块数据
栗显添耋定商舞德新在豹察谣,这些鬟示操终首先被 采用“差图”的传输方法燕为了提高数据的歪缩率。当
分解成若干个Windows GDI(Gmphic device interface) 块数据变化不大时,“差图“中就会存在大量的零,这将
指令,然后传输到客户端解码显示,使得客户端感觉像 大大有助子提高数据的压缩率。
是在粪正操律服务器端,蠢予魏穗方法与搡箨系统藕
合性比较紧,所以不利于软件系统的开发和扩展。
3方案的具体实现
(2)利用拷羼和压缩技术实现屏幕共享【4j。屏幕
在阐述典体酶实现过程之前,先将服务器端和客
显示豹内容不是逶过拆鼹戎具体的绘图命令来实瑰,
户端都要采用的关键数据结构描述如下匡引,然后再
而是通过调用API(Application Program Interface)先拷
给出两者的具体实现过程。
贝屏幕图像,然藤进行数据压缩处理并传送到客户端,
屏幕块Block的数据结构如-F:
然后出客户端解秘显示出来。壶予处理过程孛可敬根 struet Blozk
据具体情况,采用多种压缩算法来满足不同应用的需

要,不但灵活,丽且具有很好的扩展性,因而该方法应 ∥该装的X轴编号
用较广,尤其在多媒体软{簪舞发领域。嗣时也是学术 ha mBlockX;

研究的热点问蹶之一,目前针对中间环节提出了好多 //该块的Y轴编号
著名的莲缩算法,如LZW,RLE,Huffman,小波变换 hat mBkr_.kY;

等o //该块友t角酶x赣潞幕绝对坐标

万方数据
・208・ 计算机技术与发展 第18卷

hat mLeftTopX; 冲区中的数据,如果没有变化,则继续抓取下一块数


//该块左上角的Y轴屏幕绝对坐标 据,反之,求出“差图”并存人“旧图缓冲区”中,最后将
int m1..eftTopY;
所采集的这块数据插入到维护所有块数据的链表中,
//该块右下角的X轴屏幕绝对坐标
同时修改变化的块数据计数器。
int mRightBottomX;
采集完所有数据以后,判断变化的块数据计数器。
//该块右下角的Y轴屏幕绝对坐标

int mRightBottomY;
如果为0,则向客户端发送无变化的命令标识,从而结

//该块的“旧图缓冲区”头指针 束此次采集过程;否则,向客户端发送变化的块数据数
unsigned char’pOldlmage; 目,同时指定压缩算法,对链表中的所有“旧图缓冲区”
//该块的“新图缓冲区”头指针 的数据进行压缩,然后发送给客户端,接着,把链表中
Ⅲ塔i删char。pNewlrnage; 所有块中的“新图缓冲区”中的数据拷贝到它的“旧图
//位图数据长度 缓冲区”。
山1Sigmd long dwraWaa;
上面的实现方案具体流程图如图2所示。
//块数据有无变化
600l isC)naI】ged;

//是否是首次传输

b00l isFirstTran;

};

管理所有块的链表结构如下:
tyoedd¥truet Bl烈蝴岫

¥tlalct Block No&Data;
struclt BIock卜Iode。pNext;

}BlockNode,・BloddJst;

全局变量图像发生变化的块数:
hat gTotalChanged=0:

3.1服务器端的实现
3.1.1服务器发送的决数据
服务器发送的每一个块数据由信息头和经过压缩
的数据两部分组成,如图1所示。

图1块数据的格式
块信息头的结构如下:
¥tnlct BlocklnfoHeader


//X块的X轴编号

int mBkr.ZX;

∥该块的Y轴编号
int mBIockY;

//该块的压缩方式

int mCompressionLevd;

//该块位图数据压缩后的长度
图2服务器端传送数据流程图
unsi印ed long dwC_ompreml.e.n;

}; 3.2客户端的实现
3.1.2服务器端具体实现 客户端首先向服务器端发送请求屏幕命令
服务器端首先抓取当前块的数据,然后存入到它 SCREEN—GET,服务器端接着就会发送给客户端所需
的“新图缓冲区”中,如果是第一次抓屏。同时将采集到 要的屏幕信息,客户端首先接收到的是发生变化的块
的数据也拷贝到它的“旧图缓冲区”,然后比较新旧缓 的个数,如果为零。表明此次屏幕没有任何变化,无须

万方数据
第4期 左强翔等:一种基于分块采集和压缩技术的屏幕共享方案 .209・

更新屏幕显示区域,等待接受下次屏幕的数据。否则, 之间的差值,即前面所提到的“差图”,然后对这个差值
接收块数据,并按服务器端传来的指定算法进行解压 进行RLE压缩再传送。
操作,解压后的数据存入“临时缓冲区”,如果是第一次
传输屏幕块数据,则将“临时缓冲区”中的数据直接拷 4实验结果与分析
贝到当前块的“新图缓冲区”,否则将它们与“新图缓冲 针对此种屏幕共享方案,做了多次实验,测试的结
区”中的数据进行一一相加,并将结果存到“新图缓冲 果表明在采用16x 8的划分方案的情况下。取得的效
区”。等到接收完所有块数据以后,调用相关的API 果最佳,有很好的清晰度和压缩率。下面给出的是在
函数更新客户端屏幕显示区域。下面给出上述实现方 此划分方案下学生机所显示的屏幕图像与教师机上原
案的具体流程图,如图3所示。 始图像的对比(主要针对变化很大的文字区域进行采
集,由于文中的主要项目背景是远程教学系统,该系统
以文字讲稿为主),其中学生机和教师机都运行于
Windows XP平台上,分辨率都是1024×768,它们的
CPU都是奔腾4,主频为2.0GI-k,教师机内存是
512M,学生机是256M。学生机提出sC:砌、EN—GET
的时间间隔是200毫秒,也就是每秒要更新5次屏幕。
结果如图4所示。

块,宿舍总管对宿‘ 块,宿舍总管对宿:

有一个简单的论坛: 有一个简单的论坛j

科学规范的微机操 科学规范的微机操

加科学化,规范化。 加科学化.规范化。
……_H T…”…一… 一‘‘"。。』一…^。。…

(a) (b)

图4学生机(a)和教师机(b)界面(16×8模式下)
综合上面所述,可以发现基于分块采集的屏幕共
享方案取得很好的效果,是一种很好的实现屏幕共享
的方法。

5结束语
屏幕共享技术是一种非常有潜力的应用技术,同
时它的应用也是非常广泛的,目前很流行的远程教学、
远程监控以及相关的多媒体应用方面都体现了屏幕共
享技术的价值。针对远程教学系统中的实际应用,实
现了基于Windows平台的屏幕共享问题,通过该方案
图3 客户端接收数据流程图 的实施达到了很好的效果。至于不同平台之间以及两
针对数据块压缩算法,采用下列约定,借用MPEG 者处于不同分辨率下的屏幕共享问题有待于进一步的
的相关术语,将整个屏幕上所有块组成的帧称I帧,将 研究。
仅含有屏幕变化区域的块组成的帧称作为P帧,同时
如果所有块都发生变化了,那么此帧肯定也是I帧。 参考文献:

由此可见,每当客户端发出SCREEN—GET命令时。服 [1]李凡,陈琦,朱光喜.屏幕共享技术及其在多媒体技术
中的应用[J】.电视技术,2002(2):75—77.
务器都将发送P帧给客户端。但服务器第一次响应
[2]张丽萍,喻占武,肖进举,等.一种基于拷屏与压缩技术的
SCREEN—GET请求时,发送的帧实际上是一个I帧。
屏幕共享方案[J].中国图像图形学报,2003(9):1095—
文中在具体的实现时,对于I帧中的块数据,将采用对 1099.

原始图像进行LZW压缩后传送,而对于P帧中的块数 [3]李小鹏,刘连东,李亚敏,等.一种改进的远程屏幕图像实

据,则首先将其与上一帧中的旧图进行相减得出两者 (下转第213页)

万方数据
第4期 文必龙等:基于信息模型的企业过程度量研究 ・213-

是由哪些基本度量经过运算得出来的; [2]Basili V R,Caldiera G,Rombach H D.The goal question met—

ric paradigm[J].Encydopedia of Software EngiI】eering,1994,


c)将基本度量映射到企业信息模型中的数据项。
2(1):528—532.
通过对企业指标的分析,获得与指标相关的度量
[3]李亚红,郝克刚,葛玮.基于GO.M模型的软件项目进度
定义,将这些度量定义映射到企业信息模型中的信息
的度量过程[J].计算机应用,2005,25(6):1448—1450.
项。如果现有企业信息模型不包括这些信息的描述,对
[4]陈祖荫,刘建丽.C,QM软件度量模式的某些决策问题[J].
该信息模型进行扩展,加入对这些基本信息项的描述。
北京工业大学学报,2000,26(2):45—48.

[5]杨基平,余忠华.GqM方法及其应用研究[J].制作业自动
4结语 化,2003,25(6):20—23.

企业过程度量是对企业过程进行改进和优化的基 [6]立春,李建奇.度量软件过程——改进软件过程[J].软
件世界,2002,20(4);132—137.
础。分析了企业过程模型与信息模型的特点,提出一
[7]李育泽.我国企业信息化现状与发展趋势浅析[J].今日湖
个企业度量信息模型,实现了企业过程模型与信息模
北理论版,2007,1(1):9—10.
型之间的映射,从而实现从现有信息库中获取信息来
[8]葛世伦.企业信息模型研究[J].华东船舶工业学院学报:
实现企业过程的度量。阐述了度量信息模型在衔接过
自然科学版,2001,15(3):73—78.
程模型与信息模型的作用和意义,简单描述了度量信 【9]John M,David C,Chery J,et a1.Practical Software Measure—
息模型实现方法,为企业过程模型和信息模型的集成 m饥t:Objective Information for Decision Makers[M].[S.
提供了一种机制。 1.]:Addison Wesley/Pearson,2002.

[10]Briand L C,Differding C M,Rombach H D.Practical Guide—

参考文献: lines for Measurement—Based Proee整Irrorovmlent[J].Soft—

[1]陈雪松.企业软件过程度量实践[J].清华大学学报:自然 ware Process Improvement and Practic,1996,2(4):253—

科学版,2003,23(9):37—43. 280.

—■—・—+-——}—-■—・—+--—卜——+-——}—+-—卜・・卜——+——■-——+——_—・—+-—・}-——}——■一——卜-—}——_———}——■一——}——■—-—+-——■——■———●—-+—+—・■一-—}———卜-+——+---+-—-■一——卜-—卜—-●—-・卜-・卜—-+・—卜・

(上接第129页)
[3] GanterB,WiUe R.Formal Concept Analysis:Mathematical

F’ol耵da60ndM].Berfin:[s.n.],1999.
3结语
[4]StummeG,MaedcheA.FCA—merge:bottom—upmerging of
在介绍了形式概念分析方法之后,在以概念分析
ontologid C]//17th Intl Conf on Artificial Intelligence(IJ—
方法的总体思路的基础上,在具体的软件工程各个工
CAI’01).Germany:Springer,2001:225—230.
作阶段的相关应用进行了详细的说明。可以看出,软 [5] Uschold M.Ontologies:Principles,Methods aIld Applications
件工程中FCA的运用可以很好地改善开发效率,它清 [J].The Knowledge Enginedllg Review,1996,11(2):93—
楚地表达了软件和概念之间的关系。然而,在软件开 120.

发的其它阶段,如何更合理更优化地运用形式概念分 [6]"1311ey T,C_Dle R,眦P,et a1.A Survey of Formal Concept

析是今后本课题主要的研究发展方向。 Analysis Support for Sdtware Fmgineering Activities[C]//


Iri:Smmme G.Proceedings of the胁Intematioml Confer-

参考文献:
㈣c11 Formal Concept Analysis—ICFCA’03.[s.1.]:[s.

[1]Wolff K E.A First‰in Formal Concept Analysis—How n.],2003:119—124.


[7]Carl Zhan,Jones D M,O’Brien P.Issues in Ontology—based
tO understand line diagram[J].Statistical Software,1993,14

(4):429—438. Applications[J].SIGMOD Record,2002,31(1):43—48.


[8]Lindig C.Fast Concept Analysis[EB/OL].2002.http://
[2]Ca晒I蜘C,Romano G.A lattice conceptual clustering system

w、^研.st.岱.uni—lindi_g.pdf.
and its application tO browsing retrieval[J].Machine Learn—

ing,1996,24(2):95—122.
—+-—+・..—-+.・+—卜—・卜—+-+—-+.—+一・+—+—+—+—+—■—-卜—●——卜—■—-+_—+斗斗—+—+斗—+-・卜—+—・卜・+・・卜・—卜呻-。+.斗斗斗—・卜・。+-——卜呻-+—+・

(上接第209页)
时传输方法[J].计算机应用,2007(3):703—705. [5]张友生.远程控制编程技术[M].北京:电子工业出版社,
[4]郎锐.vC++实现对远程计算机屏幕的监视[EB/OL]. 2002.

2006.http://www.e∞ytu.mm/software/program/VC++/ [6]罗红,慕德俊.桌面图形图像序列压缩与传输研究[J]
2006—10—27/14216.html. 计算机应用,2005(6):1299—1304.

万方数据

You might also like