- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种为同屏显示设计图像传输算法
一种为同屏显示设计的图像传输算法
摘 要本文源于一种无纸化会议系统的图形传输模块,根据设计要求,要实现同屏显示。在这个问题上,涉及到图像传输算法优化。在优化方案中,固定分块算法是一种常见手段,而本文基于这种算法,提出相应改进,并加以应用,满足设计需求。
【关键词】图像传输 算法同屏显示
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第
文档评论(0)