You are on page 1of 4

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

V01.26 No.1 2 Dec.2005


Compeer Engineering and Design

远程教学系统中的屏幕图像实时传输技术
鲁 萍
(西安建筑科技大学理学院,陕西西安710055)

摘 要:在交互式远程教学系统中,屏幕图像的捕获、压缩、实时传输、解压缩和显示是该类应用中的关键技术。对
用软件编码实现图像压缩/解压缩技术进行研究,给出了基于行程编码的帧间无损压缩和有损压缩两种方案及传输时
为满足实时性的要求而对相关网络协议加以改进的方案。介绍了用Java语言实现系统时可用的相关类及重要方法。
关键词:远程教学;实时传榆;图像压缩;Java

中图法分类号:TP311.11 文献标识码:A 文章编号:1000.7024(2005)12-3270.04

Technology of screen image real--time transmission in distance-・learning system

LUPing

(College of Science,Xi’an University of Architecture and Technology,Xi’an 7 1 0055,China)

Abstract:According to real—time transmission system,how to capture screen image,then compress、transmit、decompress and

display the image is the principal technology.Two software encoding plans based on Run・-length coding・loss and lossless・could realize

the image compressing and decompressing,and also give a plan to alter the protocol relative to network in order to meet the real—time

property.The main packets and classes ofJava Language relative to realize the system were also introduced.

Key words:distance—learning;real-time transmission;compress;Java

1 引 言

目前,在中、小学及高校中普遍采用的多媒体教学系统大
多用硬件加软件辅助实现,成本高,而且是单向的一对多通
信,学生机之间不能交互式通信,这限制了授课模式为单一的
讲授方式,而无法实现分组讨论等其它教学方式,不利于学生
能力的培养。
图1图像传输基本原理
随着计算机处理速度的提高、内存空问的扩大和图像压
缩技术的发展,应通过软件编码解决硬件依赖性方面的问题。 上传输,并尽可能使总传输时间最短,是系统完成实时传输任

在实时传输中,针对远程教学图像特点对多媒体数据流进行 务的关键技术。此外,在图像传输中为了满足实时性的要求

压缩,使得完全依靠软件编/解码提高传输速度,使远程教学 要对涉及到的网络协议进行改进也是难点之一。为了使教师

系统具有较强的可扩充性,且软件更有利于系统升级,这是远 和学生之间能交互式通信,整个系统应为组播传输结构,且应

程可视化实时通信系统研究的基础和核心。 能够通过设置使任意一台联网计算机能够作为组播的发送方,
其它计算机为接收方。该系统为C/S结构,用Java语言实现,
2系统关键技术分析
下面逐一说明技术要点。

系统基本原理如图1所示。首先在图像发送方(如教师
3系统关键技术实现
机)获取屏幕图像,然后对该图像进行软件编码实现图像压

缩,可以选用不同的压缩算法,将压缩后的图像数据在网络上 3.1图像获取及显示
进行组播传输,接收方(如学生机)收到图像数据后进行解压 首先要在发送方获取屏幕图像。Robot类的方法createS.
缩还原图像,并显示在屏幕上。 creenCapture(Rectangle screenRect)可以从当前屏幕上读取像素
正确的获取屏幕图像和显示全屏幕图像是系统实现的基 后生成一幅图像并返回,返回值就是Bufferedlmage对像,即当
本条件。如何进行软件编/解码使压缩后的图像能够在网络 前屏幕图像。

收稿日期:2004.09.26。
基金项目:西安建筑科技大学基础研究基金项目(AJl2029)。
作者简介:鲁萍(1979一),女,陕西西安人,硕士生,研究方向为计算机网络技术和多媒体技术。

-——3270・——
万方数据
通常图像的数据量很大,传输之前要对图像进行压缩处 相同的像素异或结果为0。如果帧与帧之间的变化很少,则会
理,压缩时分析图像特点,压缩图像像素,因此需要得到屏幕 出现大量连续的0。再用简单的行程编码对异或结果进行压
图像对应的像素数组。通常用RGB模式表示1个像素,即Ⅱ 缩,可以得到较好的压缩结果。传输压缩后的数据,在接收端
(透明度)、R(红)、G(绿)、B(黄)分别量化成256个亮度级别, 接收并解压缩,与上一帧图像像素再次进行异或运算可还原该
各占8位,用32位二进制数位(即1个int数)表示1个像素的 图像。算法描述如图2所示。

色值。Bufferedlmage类的方法getRGB(int star-
LI:捕获屏幕图像,保存像素色值置数组x LI:接收屏幕图像,保存像素色值置数组x
t)(,int startV,int w'int h,int[]rgbArray,int offset,
if是第l帧图像then数组z《 if是第1帧图像then数组ze_x
int scansize)可以对Bufferedlmage对像返回其 else{数组,z;-Xo Y’ else{对x进行行程编码逆运算,

像素数组。 对z进行行程编码) 数组ze.XoY}

数组Ye-X 数组Y《
发送z给接收方 显示数组z中的图像数据
衄{robot=new Robot(); //在主屏幕坐标 retum L1 retBrn L1

系下构造1个Robot对象 (a)发送方 (b)接收方

}catch(AWTException awe){)∥使用Ro—
bot对象必须抛出异常 图2基于异或运算的无损压缩算法
Bufferedlmage bufimg=robot.createScreen Cap。

ture(new Rectangle(startx,starty,width,hight));//抓取屏幕图像, (2)基于差值量化的有损压缩:由人的视觉、生理、心理学

bufimg.getRGB(x,y,w,h,pixels,0,w);//返回图像象素的数组置于 的论证可知,肉眼对大面积图像能分辨出的灰度等级比对小

pixels 块图像或细节部分的灰度等级大得多“’。亦即,如果相邻像素
的色值差别很小,人的眼睛无法分辨,可考虑将相邻且相近的

图像像素数据经过网络传输到达接收方,经过解压缩后 色值量化为1个色值。

应将用像素数组生成图像,即还原图像,并显示。用像素数组 例1 对连续数据(3,4,5,2,3,3,4,0,3,5)可量化为{3,3,3,3,3,

生成图像先用MemorylmageSource接口构造数据源,再用crea— 3,3,3,3,3),经行程编码可得(3,10)。

telmage方法生成图像存于内存。显示图像则是将内存中的图 帧间差值,是指在活动图像序列的的某一像素位置(f,J)

像绘制在屏幕上。Java中在frame上绘图不能直接用Graphics 上,当前帧的图像色值坼(f,,)与上l帧的色值新一。(,,/)之差。

类的drawlmage方法,而是要重写paint方法,通过调用repaint 当两帧图像只有少量变化时,则得到的差值大部分是0。对

()来激活paint方法,实现绘图。 于非0数据,可将相邻且相近的差值量化为数值,故而得到

public class FrameShow extends JFrame{, 更多的连续数值。最后用行程编码能得到较高的压缩比。


被量化的值不能还原,因此图像精度有所下降,为了保证图

public void paint(Graphics g){ 像的质量,可间隔一段时间传输一幅完整的图像进行帧同

Image img; 步。

img=createlmage(new MemorylmageSource(w,h,pixels,0, 量化过程中,量化步长的选取很关键,这需要确定把多大


w))://生成图像存于内存 范围内的色值量化为1个色值最合适。显然,步长小则图像

g.drawlmage(img,0,0,w,h,this);//绘图 失真少,精度高,但压缩比较低。量化可以采用均匀量化方
} 法,可分为两种方式。
) 方式1 首先定义量化步长,比如8,确定量化范围,将

FrameShow frame 1 2 new FrameShow() 0-255以8为单位分组,取每组的均值为量化色值,对每个数

framei.repaint(); //显示图像 据根据其色值所在组的量化色值,重新定义该色值。

3.2图像压缩及解压缩 设原始色值为X,0≤x≤255,对应量化色值空间为

用软件编/解码的方法对图像数据压缩和解压缩。在授 ◇ly=(rx/8]x8)+3)
课中屏幕图像变化率很低,有时屏幕电子教案可能要延用几 例2组O~7的量化色值为3,组8—15的量化色值为ll

分钟。这种运动图像信号,除帧内像素间相关外,帧与帧之间 等依此类推。对数据(3,4,5,2,3,8,12,13,11,12)量化结果<3,

的像素值也有很强的相关性,且帧变化较平稳。若能利用帧 3,3,3,3,11,1l,11,1l,11)。显然,不量化直接压缩数据量为

之间的数据相关性,通过特殊变换,屏蔽帧与帧之间的变化, 20,量化后压缩数据量为4,大大增加了压缩比。

使之表现为大量连续相同数据,只保留差异,则使用简单高效 这种方式很简单,定义映射函数后统一操作,但没有考虑

的行程编码就能得到较高的压缩比。该系统对帧问编码使用 局部数据的特征,可能会降低图像的精度。

了两种方案,一种是基于异或运算的帧间无损压缩,一种是基 例3对例2中的量化条件,对数据(3,4,5,15,15,15,15,

于差值量化的帧问有损压缩。 15,2,3)进行量化结果(3,3,3,t1,ll,11,11,1l,3,3)。显然,将

(1)基于异或运算的无损压缩:利用异或运算性质可知,令 5个15量化为5个11,并不提高压缩比,反而损失了图像的精

X为时刻获取的屏幕图像的像素值,Y为时刻获取的屏幕图像 度。对于这种情况,方式l略见其拙。

的像素值,在传送端,对两幅图像的像素按位进行异或运算, 方式2充分考虑局部数据特征,根据数据特征动态定义

一3271—
万方数据
量化色值。首先仍是定义量化步长,根据量化步长分组,量化
时对于连续属于同一组的数据取其平均值作为量化色值,可 准

最大程度减少精度损失。算法如图3所示。

图4分片/重组协议的petri网

分片的帧格式由ID、Offset和Flag扩展为5个字段,如图
5所示。

图3量化方式二算法
图5分片头部
例4以8为单位进行分组,¨7为一组,8~15为一组,依
ID:序号。通过序号可以控制同步帧的传输,每隔一段时
此类推。对数据(3,4,5,15,15,15,15,15,2,3)进行量化,可知
间传输一个同步帧。
(3,4,5)同组,<15,15,15,15,15}同组,(2,3)同组,分别取每组
DataLength..该数据报所传有效载荷数据的长度(各分片
的整数均值作为量化色值得到{4,4,4,15,15,15,15,15,2,2)。
有效载荷长度之和)。接收方根据数据帧的大小来预留缓冲
再经过行程编码即得(4,3)(15,5)(2,2)。
区以便于分片重组。
量化色值也可用方差等更精确的定义方式,但其运算相
FragNum:分片个数。该数据报被分为分片的个数。接收
对复杂,平均值是最简单的折衷运算,有较高的性价比。关于
方主要通过控制这个值来判断,属于一个帧的分片是否接收
量化方法的更多讨论,可参见文献[4.5】。
完毕。
(3)算法比较:以异或运算为基础,屏蔽运动图像帧与帧之
FraglD:数据片序号。该分片是该数据数据报中的第几
间的相同点,保留差异,消除图像信号的冗余度,针对差异进
个分片。
行无损的行程编码压缩。这种方式不能进行有损压缩。因为
FragOffset:分片偏移量,该分片中的数据在整个数据报有
两数据进行异或运算后得到的结果,与原数据有很大的相关
效载荷中的位置。在接收方进行分片重组时根据偏移量,可
性,这种相关性不是线性的,也不能累计增、减。任何一个比
以直接把该分片的有效载荷置于数据缓冲区中的正确位置。
特位的改变都可能极大地影响解压缩时原数据的值。而基于
发送数据报分片,接收方收到分片首先检查帧序号ID,若
差值的有损压缩则不同,对差值量化只是新图像对于原图像
与等待帧序号相同,则接收分片,并解析出FragNum(分片个
改变很小的一部分,与原图像差别不大。
数),根据此值计数接收的分片个数,每接收一个计数递减,计
3.3网络传输
数为0时组合分片为完整数据报,递交主机,经解码后显示图
将压缩后的图像像素数组封装为数据报通过Socket进
像。若接收帧序号>等待帧序号,则可认为当前等待的数据报
行传输。通常Socket每次最大发送15KB的字节,而压缩后
分片可能丢失,放弃该帧,重新初始化接收参数,处理当前收
的图像数据可能大于15KB,尤其是第l帧图像和同步帧图
到的数据报分片,开始接收新的一帧。若接收帧序号<等待帧
像不能进行帧间压缩,只能进行帧内压缩,故而数据量较大。
序号,则为过时的数据报,不予处理,继续等待下一个数据报。
必须在发送方对数据进行分片后逐一传输,在接收方重组为
如图6所示。
完整数据报,即图像像素数据,再进行解压缩后显示。多媒
体数据实时传输的一个显著特点就是“延迟敏感,误差包容” 接收数据报,解析报头
(delay—sensitive and loss—tolerate),用于普通数据的分片/重 if帧序号=等待帧
组协议由于延迟较大不适用于实时传输,应做适当改进,描 then(解析分片头部

述如下。 if(计数>0)then数据置缓冲区

(1)分片/重组协议:实时图像传输数据报之间的间隔通常 else{缓冲区数据递交主机,
重置等待帧序号)
非常小,如教学或监控图像传输一般为25帧/秒,每接收到1

幅图像的各个分片要立刻处理后显示,若是遇到出错或丢失
else if帧序号>等待帧
的分片则会延长处理时间,这恰恰与实时性相悖。随着网络
then重置等待帧序号
技术的提高,带宽增加,线路出错率降低,接收时对于出错的
数据报或丢失的数据报最简单的方法就是立刻放弃,而不影
图6分片重组协议算法
响后续数据的接收。这也是协议改进设计的思想。协议的
Pe仃i网描述如图4所示。 (2)组播结构:教学系统是典型的组播结构,通常的模式是

・——3272-——
万方数据
教师机作为发送方学生机作为接收方,也可以令学生分组,在 multisocket);//创建数据报
小组内有一个发送方,小组其他成员为接收方。因此要能够 multisoeket.send(@);//发送组播数据
灵活地建立临时组,并管理好临时组地址的分配。
IP组播是指在一定的组内对其成员进行的广播,组中的 multisocket.1eaveGroup(group);#脱离该组
某个成员发出的信息,组中的其他所有成员都能收到,是 4结 论
UDP通信的一个分支。小组成员可动态变化,一个机器有权
在远程实时传输教学系统中,针对教学图像特点,对多媒
选择加入或者退出某个“小组”,“小组”包括永久组和临时
体数据流通过软件方法编/解码进行压缩,最大限度地提高编
组两种形式。组播地址使用的是D类IP地址,范围是224.0.
码器编码效率,提高传输可靠性,减少传输延迟,并对所涉及
0.0~239.255.255.255,永久组的IP地址是由Interact管理机构
到的网络协议进行改进,使之适用于多媒体实时传输。在传
分配的,是保留的D类地址范围224.0.0.0—224.0.0.2551临时
输数据时还可以进一步考虑用XML文档描述信息源机要传
组的地址则使用除永久组地址外的非保留的D类地址。临
输的信息,在源机与目的机之间传输文本格式的XML文档,
时组的组播地址由网络管理员选择,需要保证这个地址在
在目的机把接收到的XML文档重新转换为屏幕元素信息。尽
一定的范围内没有其它的“小组”同时在使用这个组播地
址。 可能使系统通用性和可扩展性更强。

编写1个Java组播应用程序主要完成以下过程:①创建 参考文献:
1个需要发送的按规定编址的DatagramPacket数据报;②建立 [1】 谢琪,林国.基于C/S的多媒体教学系统中图像的传输技术[J】.
1个用于发送和接收的MulticastSocket:③加入1个组播组; 计算机应用,2001,8(21):132.137.
④将数据报放入MulticastSocket中传送出去;⑤等待从Multi- 【2】 王文义,李尊锋,周兵.局域网环境下视频实时传输系统的软
castSocket接收数据报;⑥解码数据报提取信息;⑦根据得到 件实现方法研究[J].计算机工程与应用,2002,23(11):154—155.
的信息做出响应;⑧重复过程⑤~⑦;⑨离开组播组,关闭Mul- [3] 田丽华.编码理论【M】.西安:西安电子科技大学出版社,2003.
ticastSocket。 93。99.

重点是应用Java.net.MulticastSocket类编写组播应用程 [4】 叶青,高宁.一种基于动态行程的有损压缩【J】.长春光学精密机


序。MulticastSocket类继承了UDP DatagramSocket类,增加了 械学院学报,2002,25(1):39-41.
组播的一些特定操作。重要方法如下: 【5】 黄心晔,王茂祥,富煜清,等.多级矢量量化法用于图像压缩编码
的研究【J].电子工程师,2000,(11):8-10.
InetAddr ess group=InetAddress.getByName(”228.0.0.1”);// [6]Andrew S.TanenBaum ComputerNetwork[M】.第3版.北京:清
创建以228.0.0.1为组播地址的组 华大学出版社,1997,406-409.
MulticastSocket multisocket--new MulticastSocket(5000);//创 [7】 James F Kurose,Keith W Ross.Computer network a top-down-

建1个组播Socket approach featuring the intemet[M】一B京:高等教育出版社,2001.

317.321.
multisocket.joinGroup(group);//加入到该组
【8】 徐京,鲁士文.TCP/IP网络环境下的视频图像传输【J】.计算机

DatagramPacket dp=new DatagramPacket(buf,length,group, 工程与应用,1999,20(12):98—100.

(上接第3243页)

同的信息情况,给出了3种算法。通过分析3种算法很好地 (4):15-18,23.

解决了路由竞争现象,并且在不同的情况下相应地提高了路 阱 Ash Mohammad Abbas,Bijendra Nath Jain.An analytical fra-

由的生存期,缩短了端到端传输延迟,减少了路由跳数,有效 mework for path reliabilities in mobile MANET[C].USA:Net—

地减小了传输能量消耗。 works,Proc IEEE ISCC’2003,2003.

下一步的工作,我们将在NS2的平台上对PANDD—L0、 Ⅲ Ahmed Sobeih,Hoda Baraka,Aly Fahmy.A reliable multica-

PANDD—LV和PANDD—TP算法对进行仿真。比较分析使 stpmtocol for wireless mobik multihop MANET[C】.Taipei,Taiwan:

用PANDD方法和RRD方法后协议在链路生存期、端到端传 Networks,Proc IEEE ICNSC,2004.

吲 RFC3561.Perkins C,Nokia Research Center,Belding-Royer E.


输延迟、路由跳数以及传输能量消耗上的表现。
Ad hoc on.demand distance vector(AODV)routing[S].
参考文献: 吲 Pappaport T S.Wireless communications principles and practice

【l】 王海涛,郑少仁.移动Ad hoc网络路由协议及性能比较【J].数 [D】.USA:Prentice Hall,2002.

据通信,2003,(1):5.8. 忉 The network simulator ns.2 available online【EB/OL].http://


www.isi.edu/nsnam/ns/.
[2】方旭明.移动AdHoc网络研究与发展现状[J】.数据通信,2003,

———3273・——
万方数据

You might also like