一种为同屏显示设计的图像传输算法

2017-06-03 16:24林原徐亚军
电子技术与软件工程 2017年9期
关键词:服务端分块像素点

林原++徐亚军

摘 要本文源于一种无纸化会议系统的图形传输模块,根据设计要求,要实现同屏显示。在这个问题上,涉及到图像传输算法优化。在优化方案中,固定分块算法是一种常见手段,而本文基于这种算法,提出相应改进,并加以应用,满足设计需求。

【关键词】图像传输 算法同屏显示

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

猜你喜欢
服务端分块像素点
分块矩阵在线性代数中的应用
基于5×5邻域像素点相关性的划痕修复算法
云存储中基于相似性的客户-服务端双端数据去重方法
新时期《移动Web服务端开发》课程教学改革的研究
在Windows Server 2008上创建应用
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
反三角分块矩阵Drazin逆新的表示
基于自适应中值滤波的分块压缩感知人脸识别
基于多分辨率半边的分块LOD模型无缝表达
摸清黑客套路防范木马侵入