You are on page 1of 3

国疆固舄馅国园赘瓯圈匠醯国窦回国图

北京中国农业大学东校区电子电力工程学院(1 OO 083) 董祖雄谢捷生

摘 要:远程屏幕传输的意义和应用,以及在实现远程屏幕传输过程中如何压缩传输的数据
量,并对各个压缩方案的优缺点进行了比较,
关键词:远程屏幕传输 电子教室 数据压缩

l 远程屏幕传输的意义及其应用背景
远程屏幕传输是指将一台计算机上的屏幕通过网络

交时地传送到一台或多台计算机上并重新再现出来。它
的传输过程如图1所示。 奉地机的屏桀 远程机的屏幕

远程屏幕传输是许多实际应用系统中的关键技术。最 圈1远程屏幕传输过程

为典型的直用是在电子教室应用系统中,教师机将自己显 如教师指导学生如何操作一个软件、完成一个瀑件的演不

示器的屏幕实时地通过计算机局域网络传送到几十台甚 或播放一段电影等。同时通过这种系统教师还可以随时监

至上百台学生机的监示器上,完成各种多媒体教学任务, 看和控制・台或多台学生机。这种系统目前以、计算机教
万方数据

t撬上负) Is—sq]=”CREATE’[ABLE XM(BBBH CHAR

应记录=通过GUl图形界面对结构描述表进行操作,为用 (10)NOT NULL PRIMARY KEY,T4 CHAR

户提供对结构描述表中的记录进行增、删、改、查询等操 (2),T3 CHAR(2),I t-I CHAR(2 J);”


作二在PowerBuilder应用程序中,这些可以通过构造数据
窗口,再对数据窗口中的内容进行增、删、改、查询等操作 SQLCA.AutoCommit=True
来实现: //执行内嵌SQL语句产生动态表XM
(2 J在结构描述表中选择相关记录形成动态表的结构 Execute immediate:ls—sql;

描述:蒯如.选择XM中的T4、T3、LH构造XM动态表,

选择操作的数据集如表3所示: 注意:代码中NOT NULL PRIMARY KEY的说明是

表3 XM动态表选择操作的数据集 保证动态创建表的关键。

XM BBBH 标本编号 CHAR 10 0 3结论


XM T3 l二碘甲状腺氨酸I CHAR 2 0
结构描述表为程序运行期间动态构造表提供了数据
xM T4 I三碘甲状腺氨酸l CHAR 2 0
库设计的软件接口。执行PowerBuilde r的内嵌SQL语句
XM LH I促黄体生长素l CHAR 2 0

来动态创建表,应用程序的开发提供了动态设计数据库的
l 3)根据所选记录动态生成表的步骤如下:
手段。用这种方法在开发基于SQL Anywhere数据库进
£根据所选择的记录构造相应的SQL语句。上例的
行数据处理的系统时可姒动态地扩展系统功能,可以更方
SQL语句是:
便地满足用厂1的新需求。
CREATE TABLE XM fBBBH CHAR f101 NOT

参考文献
NULL PRIMARY KEY.T4 C11AR(2).
1 王蓉PowcrBuiHer应用开发技术洋解.北京:电子工廿出
T3 CHAR(2),LH CHAR(2));
版社,1999
兽执行PoherBuilder提供的内嵌SQL语句(Embed—
2额尔曼,威多姆著,史加权谭数据库系统基础教程北京:
ed SQL Statement)来动态创建表。代码段如下:
清华大学出版社,1 999
,7,7将生成的SQL语句作为字符串赋给宁符串对象Is—sql
(收稿日期:2001—04—28)
string Is—sql

一54一 《微型机与应用》2001年第10期
学,网络培训、计算机网络管理、网吧管理等中有着很多实 决方案,其实现原理和机制如下。
际的应用在这些应用系统中,远程屏幕传输的最终效果 (11方案1:基于图像处理方法。实现原理:首先,在缓

是十舒关键的.它往往决定,整个产品的应用价值一 存区中存储一个整屏的屏幕数据,然后。定时地将当前屏

2远程屏幕传输中数据压缩的提出和压缩的可行性 幕与缓存屏幕进行比较一如果2个屏幕数据完全相同则

远程辟幕传输的目标是要求完整、实时、宵较好视觉 说明屏幕没有发生任何变化,小需要传送.否则可蹦求出

效果地将一台计算机的屏幕传送至一台或多台计箅机卜 发生变化的区域后传送,并替换缓存当前屏幕.可以用小
同罔像处理算法以最快速度求…发生变化的区域,如将2
并且重新再现出来一由于屏幕是一个大数据量的多媒体
信息.要达到这个目标并不是一件十分容易的事情。下面 个屏幕数据相减求出蒡分值,然后传递小等于零的差分

计算一下在没有任何数据压稚的情况下,远程屏幕传输 值;或将整个屏幕分解成许多规则的小块,然后逐个小块
进行比较,传送有差异的小块,用内存块比较西数进行小
中涉受到的数据量.
块比较,可大大加快计算速度。,
典型的显示配置为:分辨率为800+600,颜色深度
(2)方案2:基于Windows系统的消皂、机制,也称为钩子
为32位色 则一幅整辟的数据量为:800十600}32=
方式…。实现原理:Windows系统建立在事件驱动的机制上,
1 5360000B=l 5.36MB:要想达到一个可以接受的实时传
整个系统都通过消息的传递来实现:屏幕的变化在很大程
送效果.则每秒至少需要传送3—4个屏幕:因此在没有任
度上与消息存在着关系,如鼠标右击出现弹出式菜单、用鼠
何压缩的情况下,每秒需要传送的数据量军少为:
标对窗口和图标的拖动、敲击键盘输入字符等等都会引起
1 5 36MB}3/s=46 08MB/s,这样大的数据量在当前的
屏幕发生变化,当某个窗口需要重画的时候都会产生一个
10%lbps的局域同环境中是难以实现的:并且在很多具体
WM—PAINT消息。假设每条消息所产生的屏幕变化只对消
的它胃中.网络带宽也不可能被屏幕传输所独占。
息的目的窗口有影响(对Windows基于窗口的操作系统来蜕,
商对这样』=的数据量,必须进行数据压缩一而且在屏幕
绝大部分情况F这个假设是成立的).所以,nrL_通过截获
数据传输中也存在着许多冗余的数据,因此压缩是可行的.
系统的每条消息、然后授取这条消息的日的窗口的坐标作
首先,远程屏幕传输中数据存在时间上的相关眭:由于
为屏幕将发生变化的局部区域。至于如何截获系统的消息,
万方数据
远程屏幕传输是个连续进行的传输系统,在时间相关眭
则可以通过钩子(Hook)完成。钩子是Windows系统巾1E常
上表现为前岳二群存在着很大的相关性。例如:1个菜单的
重要的系统接口,用它可以截获并处理送给系统所有应用
弹出和收回、J个窗口的拖动操作、1个击键动作在某个编
程序的消息,来完成普通应用程序难以实现的功能:钩子实
辑窗口中增加或减少1个宁符等,所有这些都使前后一个 际上是一个处理淌息的程序段,通过系统凋用,把它挂人系
异幕在很大部分上相同,发生政变的只是一小部分象素。
统。每当特定的消息发出且没有到达目的窗L1前,钩子程序
其次.远程屏幕传输中数据1字在空间上的相关性:这表 就可以先捕获该消息,亦即钩子函数先得到控制权,在钩子
现在一个屏幕数据之内象素之间存在很大的相关性.对于 函数巾作相应的处理后,再传递至目的窗几完成棉应的消
磺indows这种基于窗口的操作系统的GUl界面,屏幕经常 息功能:持卸钩子可以通过Windows提供的API函数
ⅡI斑一大片颜色相同的背景块和前景块。例如:单一颜色的 SetWindowsHookEx和UnhookWindowsHookEx进行”.
桌面和应矸j程序背景、浅灰色的按钮和窗ff边框等。 以上二种解决^案各有利弊。下而对其迸{r比较:
最fij,辟幕数据在颜色表示上也存在冗余。Li前典型 (1)方案l。优点:是一种彻底、完整地监测屏幕动态变化
显示器的颜色配置有256色位、16位色、24位色和32位 的解决方法。缺点:这种解决方案占用的内存空间和计算量
色各个不同的颜色深度昕需要的数据最是不一样的。颜 都比较大:为r达到远程屏幕传输的实时性要求,在200~
色深度越大昕表示的颜色数越多,但同时所需的数据量 300ms之内必须完成前后屏幕数据的比较或差分值汁箅,并
乜越大:针对以上这些数据特点,可以采取不同的方案对 将比较后的数据编码并传送。这样才能达到每秒3~4幅屏幕

远程屏幕传输的数据进行压缩。 的效果.所以寻找一种高速高效的算法是至天重要的。

3 数据压缩的原理和实现方案 f2)方案2。优点:实现简单,可以很快地获取屏幕发

3.1从时间相关性上压缩 生的变化部分,在大部分场合口T以满足需要,缺点:屏幕

在远程辟幕传输中.前后屏幕之间存在着很大的相 变化和消息之间并小是一个充分必要条件,虽然在大多

关性,屏幕图像的变化往往只发生在局部区域。如果在发 数情况下成立,但也有一些情况下不成立。例如,在用许

送机端能够实时地监测到屏幕罔像发生变化的区域,然 多视频播放软件播放视频时,视频窗口中屏幕象素在不

昏只获取变化区域的图像数据进行传输和再现,将会大 断变化,仍钩子却截获不了任何消息;另外,在桌面或其

大地减少数据传输最和图像数据获取和再现时的计算 它窗口上单击鼠标左键时虽然产生了l,BultonDown消

量 所以通过屏幕图像变化的动态感知可以银有效地压 息,『旦可能没有造成任何屏幕变化。所以通过钩f方式进

缩数据量。屏幕图像变化的动态感知在实现上有■类解 行屏幕变化部分的截获存在着不完整性和冗余。
~55—
《微型机与应用)200_1年第10期
3.2从空间相关性上压缩 编码区域位置信息 小片l 小片1 小片n 小片n


对单幅屏幕图像的琏缩实际上和对静止图像的爪缩是 矩形 矩形 矩形 矩形 标志 编码 标志 编码
位置 位置 宽w 高H 彳=柚 数据 字节 数据
一致的。虽然现在对静止图像的算法很多.但是,因为典型
X Y

计算机屏幕的特点和远程屏幕传输实时性要求,所选抒的 I字节数 2 2 2 1

算法应该是计算量小、速度快、易于实现,并且解码再现过 小片的标志字节和编码数据形式如下:

程要快于获取编码过程及失真很小的高速算法?由于监测
说明:f1)如果原始编码位为1,则其已位尢意义。后面紧跟着w 4 h
出束的变化区域往往是独立分离的小块区域.网络传输对
个象素值,这里的w和h均用4位‘进制数表示。
数据包的大小有一个最大值的限制。因此,一个屏幕数据
I字节数 取值 描述
的编码可能需要分解成儿个意义相互独市的数据包进行
w_h+13 ≥0 片内从左到右,从上到下各点的象素值
传送:所以j己要求算法是一种可分解的顺序编码的形式。
n:觑色深度(用13个字节表示颜色)
存众多的算法中,本文选取了一种片型编码,效果较为
t2)女U果指定背景位为1,则后紧跟一个象素值.代表藏片的背景
理想一该算法的实现原理是:将变化的矩形区域分割成16 色。如果为0,则表币该片背景色和上片相同、

+16称为片(tile)的子块,如果矩形框的宽{高)小足16的倍

数,则最右(下)的片的l竟(高)将小丁16。然后对每个片再采
3)如果指定前景位为1.则后紧跟一十象紊值,代表该片的前
用台适的编码形式,在每个小片编码数据之前有一个标志
景色。该位为l+则于块颜色必须为0,
字节来表示小片的编码形式。时于小片数据采用二维行程
编码和原始编码二种形式。所谓原始编码就是对小片数据
不傲任何编码,将小片象素值矩阵复制到数据包中。所谓■ (4)随意子块位由1,则后紧跟一个字节代表片内于肚的个数
维行程编码足这样进行的:白先,对小片的各个象素扫描一
次,将出现次数最多的颜色数作为背景色,然后从左上角开
始查找非背景色的最大面积的色块,记录色块的颜色和位 5)于块觑色位为1.则每个H内子块都以一1、象素值和2个字
节的子转仲置参数来表示。陵位为0,则表不所自子块的颜
置,再用背景色填充该色块,再重复地顺序查找其它色块,
色和指定的前景色相同。如果没有指定前景色.则和上一片
万方数据
记录相应于块的颜色和位置.直至小片牟部填充成单・的 的Iji『景色相同

背景色为止:如果在二维行程编码中发现编码的字节数已 l字节数 取值 描述
子块颜色
经超过了原始编码的字节数,则立即停止编码而改用原始


0~255
于J夹的位置、和Y
编码一为了比较形象地说明这种编码的算法过程,图2给出 0~255 子块的大小w和h
了这种编码算法的最简单数据包编码形式。 图2 片型编码算法的数据包编码形式
这种编码算法,对通常较典型的计算机群幕压缩比 综合采用上述各种压缩方案,在某公司的一个电子
一般为10:1或更高,压缩效果比较好。 教室产品中实现了远程屏幕传输。其实现过程为:首先将
3.3从颜色变换上进行压缩 屏幕数据变换成中间色(16位 l获取屏幕数据I
因为计算机屏幕所需的存储空间大小和象素的颜色 色).然后将屏幕划分成16;16
深度有很大的关系:例如.如果崩32传色,每个象素就需 l,竖换至16位色l
的小块,采用快速小块比较法获
耍4个字节,而用16位色则每个象素只需要2个字节:所 取屏幕发生变化的区域,最后用 I划分成16t 16的小块,
lI.采用将具有较高颜色深度的计算机屏幕数据变换至较 片型压缩算法对发生变化的小 l并用快速小块比较法
f拽取发生变化的小块
低颜色深宦,即变换到中间颜色,就可以起到数据压缩的 块数据进行再次』玉缩后组装成
作用。当然,这种压缩方法在颜色方面是有损压缩的,并且 数据包发送。整体解决方案流程 1对发乍变化的小块{
颤色变换也同时引进了不小的计算量。但是.实验表明人 如图3所示:我们用该种方案成 I进行片型数据压缩I
眼对于1 6位色以上颜色分辨能力很弱.剐从32位色变换 功地在南CPU为赛扬300、内 f组装成数据包l
到16位色,虽然数据量减少至原来的一半,但视觉效果还 存为64MB的微机组成的
是可以接受的一同时,变换到中间颜色的方案,在某些应用 10Mbps的Windows98,对等局囤3整体解决方案流程图
场合是不得不进行的.例如,一台发送机对多台接收机进 域网王1、境中,实现了每秒传送3~4幅整屏的效果,达到了
行远程屏幕传输时,可能1竿红发送机和接收机颜色配置不 电子教室应用的要求。
一致、甚至接收机之间颜色配置也不一致的情况.这时采 参考文献
用中间色是一条比较好的解决途径。 l AT&T Laboratories Cambridge Virtua[NetWork com-

数据压缩的理论和方法的研究 直足多媒体应用领 puting doeument}.1 999

域中比较热点的研究.也形成了许多成熟的理论、算法和 2 Microsoft MSDN 1 ib rary Visual StudiO 6 0收.1 999

应用方案:但是,在不同的应用中,由于处珲多媒体信息 3 高文多媒体数据压缩技术.北京:电子工业出版社,I 994


方法的不同特点.相应也有不同的数据压缩方法、 (收稿日期:2001—05—06)

~56一 《微型机与应用))2001年第10期

You might also like