林原++徐亚军
摘 要本文源于一种无纸化会议系统的图形传输模块,根据设计要求,要实现同屏显示。在这个问题上,涉及到图像传输算法优化。在优化方案中,固定分块算法是一种常见手段,而本文基于这种算法,提出相应改进,并加以应用,满足设计需求。
【关键词】图像传输 算法同屏显示
1 会议系统简述
1.1 会议系统架構
首先简述会议系统功能。此系统采用C/S架构,由一个服务端和多个客户端构成。使用环境限定局域网,通过socket通信中TCP套接字绑定IP的方式实现服务端与客户端的通信,具体包括图像文字语音视频信息的交互,本文着重于图像传输模块。
1.2 需求分析
在会议系统的同屏汇报模式中,所有与会人员同屏显示发言人屏幕。整个同屏过程相当于位图在局域网中传输。考虑到网络带宽及电脑CPU资源占用等因素,希望图片传输模块尽可能的降低传输数据量,以保证会议系统的实时性与流畅性。
2 图像传输
2.1 图像传输过程
会议系统的图像传输模块流程可以简要概述为以下几个步骤:
2.1.1 发言人开启
发言客户端开启屏幕模式后,以0.05s为时间间隔进行图片截取,截取下来的位图信息发送至客户端。
2.1.2 客户端判定
若其他人正在发言则终止操作;若无人发言,则接收位图信息。
2.1.3 服务端绘制
当客户端接收到位图信息后,发送给除发言人之外的其他客户端;客户端收到服务端传输位图信息后,通过双缓存的方式,将位图资源写入缓冲区并拷贝位图至画布,完成同屏图像传输。
2.2 图像传输算法
如2.1所述,在使用中为了保证画面流畅(20帧以上),设定传输间隔为0.05s,而在实际使用中,汇报人屏幕在相隔0.05秒的两个时间节点内,变化量可能非常有限,大部分时间只是鼠标的变动。如采取整图传输,势必浪费带宽,因此在向服务端传输前,增加了算法优化部分,减小图像传输的数据量。
3 算法优化
3.1 固定分块算法
在图像传输的过程中,只需传输变化的像素点。在算法优化方案中,固定分块,隔行扫描是一种非常普遍的方案,具体实施步骤如下:
(1)本地缓存上一个时刻的bmp位图,在下一扫描时刻,截取新的bmp位图,将位图分成若干矩形(一般为3*3,3*4,4*3),并逐一编号。
(2)对每一个bmp位图分块进行扫描,扫描方式为隔行扫描:从第I行(I初始为1)初始点起,对该行每一个点依次扫描,对照上一个时间点的位图,若发现异样点则停止扫描;若整行无异样点,根据指定的间隔行数N,对第I行(I=I+N)行进行扫描,至I大于该分块的总行数。
(3)对发现异样点的bmp位图分块进行传输。在客户端显示的过程中,将接收的位图分块渲染到指定区域,对于未传输的部分,即无变化区域,与上一时刻显示相同。
固定分块算法在实际的使用中,由于只传输变化分块,因此相比于整图发送,带宽资源及CPU资源占有率都有降低。但是其分块方式简单机械,在一定程度上限制了算法的优越性。
以图1为例。若整个矩形为屏幕,图中椭圆为需要传输的内容,屏幕采用3*4的分块方式。显然,对于1-12所有分块,都包含椭圆的像素点,因此每个分块都要进行传输,这相当于未优化。由于变化像素点的位置是随机的,固定的分块难以找到最佳传输矩形。因此本文基于固定分块,隔行扫描的基础思想,加以改进,提出一种自适应式分块扫描算法。
3.2 自适应分块算法
这种分块方式,在初始阶段与固定分块相同,存储上一时刻位图,在下一时刻到来时,截取位图。截图后分块,其分块方式要通过扫描进行计算。以下具体介绍其计算方式:
3.2.1 建立坐标系
根据使用习惯,X轴向右为正方形,Y轴向下为正方形。同时设定扫描间隔行数N。
3.2.2 对应事件
设置事件1,该行发现不同像素点为true;事件2,该行未发现不同像素点为false。
3.2.3 扫描原则
从左上角(0,0)开始,沿X、Y轴正方向扫描。在每一行结束时判定扫描事件。当发生事件true时,开始记录每一个变化点坐标;当发生事件false时,进入分块阶段,并记录该行数I。
3.2.4 矩形选择
通过步骤3,得到若干变化像素点,设每一个变化像素点的坐标为(Px1,Py1),(Px2,Py2)......通过这些变化像素点求出待传输矩形的对角坐标(Rrx,Rry)。
Rlx=min(Px1,Px2…)
Rly=min(Py1,Py2…)
Rrx=min(Px1,Px2…)
Rry=min(Px1,Px2…)
3.2.5 整图扫描
在完成矩形选择后,从发生事件2第I行起,间隔N行开始扫描,(此时I=I+N),依照上述扫描原则,重复此步骤至扫描整个位图,选择对应矩形。
3.2.6 同屏显示
传输对应的矩形框,并根据坐标在指定位置绘制传输矩形,其他区域显示上一时刻缓冲位图。
以上介绍了本会议系统中所采用的自适应式分块算法的基本原理,图2可以直观的描述。
4 总结
本文结合实际需求,设计出一种根据变化区域自行判定传输矩形的分块扫描算法,相比于固定分块扫描算法更为灵活。该方法特别适用于会议中PPT讲解的同屏传输,在PPT讲解过程中,大部分情况下屏幕的变动仅限于几个图形、一行文字,甚至只有光标的移动,因此待传输位图只占整个屏幕的几十甚至几百分之一,而固定分块方式,如3*3分块,每次至少要传输1/9屏幕,可以得出,针对本课题所采用的会议系统,本文这种算法改进十分有效。
参考文献
[1]吴栋淦.两种屏幕图像捕获方案的比较[J].计算机技术应用,2007(03):9-11.
[2]刘德胜.基于矩形分割的局部渲染技术在无线图像通信中的应用[J].程度信息工程学院学报,2012(27):5-7.
作者单位
北京航空航天大学 北京市 100191