APP下载

基于图像分块压缩技术的远程监控系统的设计与实现*

2016-08-10何树有

舰船电子工程 2016年7期
关键词:远程监控实时性

何树有

(91550部队指控中心 大连 116023 )



基于图像分块压缩技术的远程监控系统的设计与实现*

何树有

(91550部队指控中心大连116023 )

摘要随着网络技术的不断发展,对计算机信号的远程监控在局域网管理,网络安全,网络教学中有着广泛的应用。在对前辈学者提出的屏幕捕获、图像数据传输及解压缩方法进行研究的基础上,论文提出了一种基于图像分块压缩技术的方法,该方法首先将捕获的屏幕位图进行均匀分块,只传输数据发生变化的图像小块,使得监控画面的实时性得到进一步的增强,并大大降低了网络带宽的占用率。同时为获得良好的用户体验使用无损压缩的霍夫曼编码方法,进一步减少了网络数据量。并且根据用户需求实现了对远程计算机软硬件的控制。

关键词图像分块技术; 霍夫曼编码; 远程监控; 实时性

Class Number

1引言

随着网络技术的推陈出新,远程监控在实际生产和生活中存在着广泛的应用,如公司企业对员工工作情况的考察,网络多媒体教学等。根据应用的不同对远程计算机信号的监控手段越来越多,但很大一部分应用程序都只是针对特定的任务或需求而进行设计的,本文提出了一种通过运用图像分块和压缩编码技术的方法对计算机信号进行实时监控,通过对计算机画面实时处理,使监视画面无论在画面质量还是在实时性都达到了系统设计要求,并且这种方法对于网络监控、远程控制、网络安全等领域都有很强的实用价值。

在远程计算机信号监视与控制中,对远程计算机的控制分为硬件和软件控制两种,硬件控制包括诸如启动、重启、关机等操作,软件控制包括内存资源监视、系统进程控制、键盘记录等。这些软硬件操作技术目前已经相当成熟,但由于拷贝屏幕图像文件较大,文件传输中占用网络带宽多,大部分的网络监控系统均采用定时发送屏幕图像的方式对目标计算机进行监视,这对实时性要求较高的系统比如军事、工业等等方面存在致命的缺陷,本文就是针对远程计算机监控中的图像压缩传输提出一种新的方法,并将其应用到实时监控系统中,取得了良好的效果。

实际应用中,屏幕捕捉及画面的压缩运算将大量地占用被监控主机的系统资源,而传输的图像数据也会严重消耗网络带宽,在网络繁忙的情况下,无法保证传输质量[1]。对远程屏幕监控系统来说这是两个关键的技术问题,本文就这两个方面分别给出了相应的解决方案。

2相关工作

文献[1]对捕捉屏幕图像的DC(Device Context)和DirectX方法进行了比较,得出DirectX方法在速度方面明显优于DC方法,考虑到系统的兼容性及DirectX的版本问题,所以本文采用第二种方法。安昌华[2]在其硕士论文中对远程屏幕监控系统进行了研究,在图像分块和图像压缩方面提出了自己的见解,但是该屏幕监控系统不能对播放的视频文件进行监控。

在文献[3]中王宇涛提出了一种采用改进的行程编码法(RLE)和字典编码法(LZ77)对具有较大冗余信息的图像进行压缩的复合算法,在压缩率和解压缩速度方面得到了提高。文献[4~8]使用Winsock技术实现了局域网中对目标计算机进行实时监控,屏幕锁定等。张锦华等[8]在其论文中提出,在屏幕DC方法的基础上利用内存映射文件技术在处理大数据量文件上的优势,提高屏幕图像采集效率;采用颜色量化技术降低视频图像颜色数据量,获得了较好的显示效果。Java中的Robot类用于截取屏幕和记录键盘等信息更加方便和快捷,文献[9~10]采用的就是这种方法。

3总体设计思想及系统架构

应用程序体系结构是指应用程序内部各组件间的组织方式,目前现有的屏幕监视系统采用的架构包括浏览器/服务器模式(Browse/Server,B/S)和客户端/服务器模式(Client/Server,C/S)两种结构,因系统中客户端程序需要实时对服务器端计算机进行监控,所以本系统采用传统的C/S结构。监控系统架构包括三部分,分别为服务器端、客户端和数据库服务器。服务器端实现对客户端目标计算机的实时控制与监视,将屏幕截图分割压缩后发送到客户端,客户端进行数据处理,解压数据后,将图像还原显示在监视器上,客户端将控制指令发送到服务器端,服务器端执行相应的操作。数据库服务器用于将客户端所记录的数据进行保存,用于事后察看。

图1 屏幕监控系统结构图

该屏幕监控系统编程语言采用C#语言,C#语言是一种最新的,面向对象的编程语言,它的高效、简洁,易用及其强大功能使之成为开发Windows应用程序的首选[11]。

在数据传输协议的选择上,同视频图像传输一样,计算机监控画面的时间连续性要求实时传输及高带宽,同时又允许传输中存在一定的数据错误率以及数据丢失率,UDP协议不进行数据的确认与重传,提高传输速率,具有高效快速的特点[12],因此本系统使用UDP数据传输协议。

为了降低网络带宽占用率,系统根据客户端显示监视画面数量的不同,相应服务器端在捕捉画面后先降低位图分辨率,再进行图像分块压缩处理后进行位图数据传输。

系统流程图如图2所示。

图2 系统控制流程图

4系统软件功能设计

在对该屏幕监控系统进行需求分析时,针对屏幕监控的实时性需求,明确屏幕监控系统应具备的功能如下:

1) 监视远程计算机的当前屏幕内容;

2) 监视及查看远程计算机内存资源;

3) 打开、关闭或运行远程计算机的文件、目录或程序;

4) 任意操作远程计算机的周边设备,比如打印机、摄像头等;

5) 上传或下载远程计算机的文件、目录;

6) 查看、终止远程计算机的程序进程;

7) 记录远程计算机的鼠标点击事件和键盘事件;

8) 任意修改远程计算机Windows注册表;

9) 开启、终止或暂停远程计算机的服务;

10) 启动、关闭、重启远程计算机。

5关键技术分析

随着计算机显示技术的大力发展,计算机显示画面的分辨率越来越高,而屏幕监控关键在于需要将服务器端计算机显示画面实时传送到服务器上,便于监视人员管理和控制,一副标准Windows桌面的捕捉画面,分辨率为1920*1080时,以压缩比较高的JPEG格式为例,占用空间都已达到了2.24MB,更不用说其他的PNG,TIFF等图像格式,如果不对屏幕图像进行压缩直接进行传送,大量的字节流将会占用带宽,降低监视画面质量,甚至会引起网络瘫痪。在对目前主流的图片格式PNG、JPEG、BMP等进行分析后(见表1),相同画面下JPEG格式因为是有损压缩的方式位图大小最小,但是也达到了180KB左右,因此若使监控画面达到实时性的要求,还要图像分块技术及压缩编解码方面进行研究。

5.1图像分块技术

本屏幕监控系统所提到位图分块技术与传统意义上图像分割技术概念是不一样的。传统意义中的图像分割,指的是将图像划分为与其中含有的真实世界的物体或区域有强关联的组成成分[13],而本系统的图像分块技术指的是,将整个屏幕均匀分成若干个小块,也就是进行矩形划分。为什么要在本系统开发中使用分块技术呢?这是基于减少网络传输量,优化系统性能,达到实时监控的目的出发的。因为在监控端向客户端发送的整个屏幕信息的过程中,相邻几次发送的屏幕信息中,有大部分信息是相同的,这样就没有必要每次都发送整个屏幕的信息。采用的方案就是将整个屏幕均匀的划分成若干个小块,本项目采用9*9格式,把原来一块屏幕分成了81 块,每次进传输前,都先比较此次要传输的屏幕信息中,有哪些小分块与上次传输的小分块是基本相同的,这样每次就只用传输发生了较大变化的小分块的图像的数据信息,大大减少了网络的传输量[2]。在对小分块位图数据进行比较时可以采用两种方法:一是直接比较法,对前后两小块位图数据内存数据按字节进行比较;二是CRC比较,保存前一幅图像的CRC值,通过判断两幅图像的CRC值判断图像是否发生变化[1]。经比较直接比较方法在时间和CPU占用率上均优于CRC方法,因此本监控系统采用直接比较法。

表1 各种截图格式对比(1920*1080)

5.2图像压缩技术

对于实时性要求较高的监控系统来说,如果直接将位图数字化,其数据量非常惊人,会给传输带来了很多不便,举例来说,一副图像180K,若要达到实时性要求,每秒需传送24副位图图像,假设系统可监视20台计算机,那么在一秒钟网络中流量为180K*24*10,接近84.375MB,无论是对监控端计算机还是对网络来说都有相当大的压力,如果不采取措施,容易造成网络堵塞,甚至瘫痪。因此在本系统的设计中使用了图像压缩技术。从信息论的角度来看,压缩就是去掉信息中的冗余,即保留不确定的信息,去掉确定的信息(可推知的) ,也就是用一种更接近信息本质的描述来代替原有冗余的描述。

图像压缩根据其对原始图像信息的处理方式可以分为有损压缩和无损压缩。为达到良好的监控显示效果,本系统采用无损压缩霍夫曼方法,其基本原理是将频繁使用的数据用较短的代码代替,较少使用的代码用较长的代码代替,每个数据的代码各不相同[2]。经过霍夫曼编码压缩后能够有效地减少图像块字节流大小。

5.3其他技术

1) 远程唤醒功能

本监控系统中,客户端软件通过服务器端软件自动对接入监控网络的设备计算机网卡Mac地址进行收集,通过远程发送Magic Pack进行远程开机操作,这一功能实现需要服务器端计算机主板支持远程唤醒功能。Magic Pack中格式为12个连续16进制F加上16个连续的48位MAC地址。

2) 重启与关机操作

在客户端发送操作指令,服务器端在收到操作指令后,调用“shutdown.exe”和“reboot.exe”实现关机和重启操作。

3) 获取进程信息

服务器端首先创建系统快照,之后枚举服务器端进程信息,将进程名称及其相关信息编码后发送至客户端供用户查看。

6系统测试及问题分析

在进行系统测试时,屏幕监控系统架构采用客户监控端计算机一台,服务器端十六台,数据备份计算机一台的方式,系统软硬件环境为如表2所示。

表2 屏幕监控系统测试环境表

系统测试从监视画面数量入手,分别对画面质量、流畅度和网络流量三个方面进行评测,如表3所示。

如表3所示,在客户端同时监控8台以上计算机时,监视画面就不够清晰,不能分辨服务器端某些操作,并且存在丢帧现象,网络流量在经过编码压缩后十六画面同时进行监控时网络流量为31.5MB/s,对现如今流行百兆千兆网来说,还是可以接受的。测试中,服务器端进行鼠标操作时,右键菜单画面并没有被捕获下来,导致服务器端某些操作并没有被记录下来。经分析认为在使用DC进行屏幕捕捉时,右键菜单并不属于屏幕画面,这一缺点有待改进。

表3 系统测试结果

7结语

该屏幕监控系统根据监视画面的不同,利用图像分块压缩技术,基本实现了对远程计算机画面的实时监视,同时运用多种技术实现了对远程计算机的启动、重启和关机等硬件操作,完成了对系统资源监视、进程控制、软件启动、记录键盘操作等系统软件操作,最后给出了系统测试结果。本文提出的针对屏幕监视图像的高效传输方法,对网络监控、远程教学、局域网管理等方面有很强的实用价值。

参 考 文 献

[1] 肖道举,刘洪峰,陈晓苏.面向远端屏幕监控的一种图像压缩传输方法[J].计算机工程与设计,2005,26(12):3356-3357.

[2] 安昌华.基于Windows平台的远程屏幕监控技术的研究与应用[D].武汉:华中科技大学,2007:25-28.

[3] 王宇涛.适用于局域网教学的图像压缩算法研究[J].西北农林科技大学学报,2002,30:145-147.

[4] 林粤伟,魏权利,李丽萍等.基于VC++的局域网监控软件的研制[J].计算机时代,2005(4):23-27.

[5] 高照恒,陈家琪.基于WinSock通信的屏幕监控系统[J].计算机系统应用,2011,20(4):132-137.

[6] 徐永新,陆宝春.利用Winsock通信实现远程控制[J].计算机应用研究,2003(1):159-163.

[7] 赵玲.基于Winsock网络通信的远程屏幕锁定技术[C]//The 2011 Asia-Pacific Youth Conference of Youth Communication and Technolog,2011:65-70.

[8] 张锦华,许慧雅.基于MVF和颜色量化的监控屏幕图像采集方法[J].计算机应用与软件,2014,31(6):213-219.

[9] 阎秀英,周亚建,胡正名.基于Java的网络实时远程监控系统设计[J].计算机工程,2009,35(5):74-78.

[10] 侯金彪,郭长友.基于Java的远程屏幕监控系统的设计研究[J].计算机工程与科学,2010,32(2):74-78.

[11] 李铭译.Christian Nagel ,BillEvjen, Jay Glynn. C#高级编程[M].北京:清华大学出版社,2010:3-4.

[12] 徐京,鲁士文.TCP/IP网络环境下的视频图像传输[J].计算机工程与应用,1999,12:98-100.

[13] 艾海舟,苏延超等译.Milan Sonka, Vaclav Hlavac, Roger Boyle.图像处理、分析与机器视觉[M].北京:清华大学出版社,2011:124-135.

收稿日期:2016年1月6日,修回日期:2016年2月1日

作者简介:何树有,男,工程师,研究方向:地理信息、图像处理。

中图分类号TP391

DOI:10.3969/j.issn.1672-9730.2016.07.025

Design and Realization of Remote Monitoring System Based on Image Block Compression Technology

HE Shuyou

(Command Center, No.91550 Troops of PLA, Dalian116023)

AbstractWith the continuous development of network technology, the remote monitoring of computer signals has a wide range of applications in the management of LAN, network security, network education. On the basis of the screen capture, image data transmission and compression method proposed by senior scholars, a method is proposed based on image block and compression technology. In this method, the captured screen bitmap uniform block only transport data on the occurrence of changes in the image block, making real-time monitor screen are further enhanced, and greatly reduce the occupancy rate of network bandwidth. At the same time, a good user experience is obtained using the lossless compression of the Hoffman encoding method, to further reduce the amount of network data. And the control of remote computer hardware and software is realized according to the need.

Key Wordsimage block technique, Huffman coding, remote monitoring, real-time

猜你喜欢

远程监控实时性
航空电子AFDX与AVB传输实时性抗干扰对比
变电站直流电源智能化在线远程监测系统的实际应用
基于数据融合的家庭远程监护系统研究
计算机控制系统实时性的提高策略
保鲜库智能温度远程监控系统
可编程控制器的实时处理器的研究
数据中心服务器运行状态监控系统研究 
基于Android的青少年监护系统设计与实现 
一种远程裁断机健康监测系统
基于B/S的实时用户行为检测管理系统设计与实现