多媒体教学中的屏幕分块算法的改进
2016-10-14尹成瑞
尹成瑞
多媒体教学中的屏幕分块算法的改进
尹成瑞
随着多媒体技术的发展与普及,多媒体视频教学成为在线教学的一种趋势,这些应用中很重要的一个功能就是屏幕信息的捕获与传输。所以,如何以最短的时间、最少的带宽占用获取高质量的屏幕数据越来越成为研究热点。介绍了多媒体教学系统中采用的屏幕分块原理,提出了一种对客户端屏幕位图进行分块的算法,具体分块数采取动态规划思想获取,然后,对相邻时刻对应分块位图进行比较,最终只传输发生变化的分块到服务器以减少数据传输量,提高局域网屏幕监控的性能。
多媒体教学;屏幕分块算法;动态规划
0 引言
在多媒体教学中,屏幕上大部分区域在一定时间内是保持稳定不变的。而对于网络传输来讲,真正需要关注的其实仅仅是屏幕上前后发生变化的区域,这样如果全屏采集数据并在网络传输时会产生较大的数据冗余。针对这一现状,本文提出一种基于差异的屏幕分块思想。差异式屏幕捕获是指在需要利用网络实现多个终端之间屏幕共享的场合中,为了尽量减少数据冗余,进而节省网络带宽,提高屏幕共享质量而采取一定的图像变化检测方法,动态检测出在一定时间段内屏幕发生的变化区域,然后截取变化块并压缩传输,接收端在接收到变化块之后再利用适当的图像拼接技术将这些变化块拼接到相应位置的一种高效屏幕捕获技术。
1 屏幕分块原理
屏幕分块核心思想是将x×y大小的计算机屏幕按合理的比例分成个矩形块,然后进行分块截屏、分块比较、分块压缩和网络传输。因此,分块数和的取值大小是本算法的关键所在。为了针对不同的屏幕大小找到其最佳的分块数,本文采取多次取样分别设置不同的分块数m和n,计算得出不同的子块宽度和高度,最后结合计算机屏幕在一段时间内的变化情况,进行多次实验比较分析得到最佳效果的m和n值。
通常计算机屏幕的x轴和y轴尺寸大小不同,为了保持各个分块和整体屏幕的宽高比例的一致性,便于实验计算和比较分析,将屏幕水平和垂直方向分块数设置为相同值,即:m=n。所以,每个分块的宽度和高度之比和计算机屏幕的宽和高之比相同。那么,假设计算机屏幕宽和高分别是x和y,水平和垂直方向的分块数均为n,子块的宽和高分别是mx和my,则有:和等式成立。mx和my的计算如公式(1)、(2):
(2)
当x或则y不是n的整数倍时,每个分块的宽和高分别比或x/n或则或y/n取值大一点。这样,就会导致水平方向或垂直方向的第n组分块的宽或高达不到x/n或y/n,为了方便计算与数据处理,本文采用不足区域用空白补充的方式,使得所有分块大小都相同。当x和y都是n的整数倍时,整个图像正好分为块,不需要空白块填充。以2×2为例,即:n=2,把轴和轴均分为2个分块,总的分块数为2×2=4,屏幕正好等分和需要空白填充块的屏幕分块示意图分别如图1和图2所示:
图1 2×2屏幕分块示意图(无需空白块填充)
图2 2×2屏幕分块示意图(需要空白块填充)
本文算法中所截取的计算机屏幕和对其分块所得的子块都采用bmp位图格式类型,屏幕分块所得的n×n个子块在内存中仍存储为bmp位图类型,位图数据采用RGB类型数据,相邻时间点相应分块比较时将分块位图数据读取到Opencv视觉库函数中的矩阵结构结构CMat中进行。假设计算机屏幕大小为X×Y,分块数为n×n。屏幕分块之后所得子块集合Z如公式(3):
为了找出合理的屏幕水平和垂直方向分块数n,避免分块过大和过小造成系统资源和时间成本的浪费。本文在执行屏幕分解的过程中,不是将屏幕分为确定数量的子块,而是采取以下策略:i)在首次发生屏幕分块时,通过结合被控端屏幕的宽度和高度大小设定为合适的n的初始值。i i)多次分块过程中采用动态规划思想,在一定时间段内,根据屏幕变化分块的数量的大小变化趋势进而逐步调整下一时间段内的分块数,最终找到最接近最优状态的n值。本文采取的动态规划思想如图3所示:
图3 动态规划思想
动态求解水平和垂直分块数n的具体过程如图4所示:
图4 动态求解水平和垂直分块数n的过程
图4中表示客户端在首次触发屏幕监控的一个时间周期t内进行截屏并分块的初始水平和垂直方向分块数,ni表示在第t个时间周期内分块截屏时水平和垂直方向分块数。n0的初始值的值a是系统在发生首次整屏捕获之后根据当前被监控终端的屏幕宽度而设定的固定的值,具体的计算方式见公式(4):
公式(4)中为被监控终端的屏幕宽度。图4中状态迁移线上的条件①表示,条件②表示,条件③表示。
2 屏幕分块算法
屏幕分块算法主要描述在多媒体屏幕的初始时刻进行整屏截取屏幕信息,然后将屏幕进行分块的过程。算法中主要创新点是屏幕分块数不是固定不变的,而是随着屏幕变化区域的大小及频率的变化而动态变化,从而保证在一段相对较长的时间内有较稳定和高效的分块数。假设屏幕分块数ni进行一次动态规划的时间间隔为T,屏幕截取、分块、比较、传输整个过程为一个时间周期ti,通常在一个周期T内包含多个这样的子过程,每个子过程中的分块比较结束时记录变化分块数ai,所有子过程的截屏分块数n相同,但时间ti周期不一定相同,发生变化的分块数也不一定相同。具体的T和ti关系应满足:即:在一个周期T内正好完成m个截屏、分块、比较、传输子过程时;或者且,即:在给定的周期内完成m个子过程时间有剩余,但不够完成m+1个子过程。
当时间T结束,即:或m或则m+1个截屏、分块、比较、传输子过程结束时,计算出所有子过程的变化分块数的平均值,计算公式如公式(5):
屏幕分块算法流程图如图5所示:
图5 屏幕分块算法流程图
4 算法分析
在未引入分块和比较思想时通过将采集到的屏幕图像分别保存为bmp和jpg两种格式进行实验,通过多次实验得出二者性能数据比较如表1所示:
表1 两种屏幕图像采集参数对照表(屏幕分辨率:1024×768)
可见采用jpg格式可以大大减少截屏时间和硬盘容量。同时,文件大小差异很大,所以在网络传输上,后者也具有明显的优势,更好地保证了监控实时性和可靠性。而且,jpg本身是压缩型的文件格式,所以无需对图像再次压缩。如果屏幕图像基本一直在发生变化时,这种采取jpg格式存储和网络传输的方法具有很好的效率。但是,由于jpg格式自身的压缩结构原因,当需要对图像分块和比较等处理时,最好是采用未经压缩的bmp位图格式。因此,本文系统采取bmp格式形成和保存位图,然后在传输时将其按一定的编码方式进行压缩再传输。
4 总结
目前现有的屏幕截取技术主要有定时扫描整屏截取,镜像驱动技术,API Hook技术,这些技术很少考虑被控端屏幕内容是否发生变化。本文提出一种高效的动态截屏方式,利用动态规划思想对屏幕进行合理分块,然后动态扫描比较相邻时间点上对应矩形块的内容,进而找到发生变化的分块,最后只传输发生变化的分块系统运行结果表明,在一定时间范围内,当屏幕信息发生局部变化时,该系统明显提高了截屏速度,减少了对屏幕冗余信息的截取和传输,一定程度上提高了局域网监控中屏幕信息交互的流畅性和清晰度。
参考文献:
[1] 孙路,毕笃彦. 基于信息熵的图像分割阈值迭代改进算法[J].计算机应用与软件,2008,(10): 225-226,238.
[2] Kittler J. and Illingworth J. Minimum error thresholding[J]. Pattern Recognition, 1986,19(1):41-47,.
[3] Bosc M., Heitz F., Armspach J. P., Namer1., Gounot D., and Rumbach L., Auto- matic change detection in multimodal serial MRI: Application to multiple sclerosis lesion evolution[J], Neuroimage, vol. 20, pp. 643-656,2003.
[4] 孙洪淋,廖继旺. 基于Sobel算子的图像边缘检测及其实现[J].人工智能及识别技术, 2008,(15):1105-1106, 1125.
[5] 邹福辉,李忠科.图像边缘检测算法的对比分析[J].计算机应用,2008,28(1): 215- 216,219.
[6] 彭丰平,鲍苏苏,曾碧卿. 基于自适应区域生长算法的肝脏分割[J].计算机工程与应用, 2010,46(33):198-200.
[7] 徐彩云. 图像识别技术研究综述[J].电脑知识与技术,2013,9(10): 2446-2447.
[8] Pun T. Entropic thresholding, a new method[J]. Computer Graphics and Image Process,16(3):210-239,1981.
[9] 周恕义,陈圣奇,贺玉虎等. 基于MirrorDriver的屏幕图像捕捉技术[J].计算机工程,2013,(6):295-298.
[10] Massig J H. Measurement of Phase Objects by Simple Means[J]. Applied Optics, 2003,38(19):4103-4105.
[11] 杨红生. 基于Hook和轮询监测机制的屏幕共享技术[J].计算机工程与应用, 2009,45(5):29-31.
Improvement of Screen Block Algorithm in Multimedia Teaching
Yin Chengrui
(Qinghai University, Qinghai 810016, China)
With the development and popularization of multimedia technology, multimedia video teaching becomes a trend in online teaching, and the capture and transmission of screen information is a very important function of these applications. Therefore, how to get screen data of high quality by the shortest time and less bandwidth becomes a research hotspot. This article introduces the screen block principle used by the multimedia teaching system, and it proposes an algorithm to do the blocking for the screen bitmap at client side. The actual number of blocks can be got by dynamic programming, and then it compares the corresponding block bitmap of adjacent time. In the end only the blocks which have changed can be transmit to the server so that it can reduce the amount of data transmission, and it also improves the performance of the LAN screen monitoring.
Multimedia; Screen Block Algorithm; Dynamic Programming
1007-757X(2016)04-0060-03
TP311
A
(2015.11.09)
尹成瑞(1981-),男,青海大学,讲师,硕士,研究方向:计算机网络,西宁,810016