专利名称:远程服务器主机画面监控系统及其方法
技术领域:
本发明涉及一种远程控制中图像处理系统及方法,特别涉及一种远程服务器主机画面监控系统及其方法。
背景技术:
远程服务器主机画面监控(Console Redirection)可将服务器端的屏幕画面显现在远程管理者的计算机屏幕上,让管理者如同在服务器前面操作,方便管理者进行远程管理的工作。
采用远程服务器主机画面监控,管理员就可以对服务器进行远程管理。控制台(Console)重定向无需为每台服务器配备单独的显示器和键盘。这种优点在高密度计算安装(如高性能计算群集器)中特别有用,因为管理员可以在一个位置监控多台远程控制台。通常的主机画面监控(ConsoleRedirection)需要将服务器端的屏幕图像实时传送到控制台端,以保证两边的图像一致。由于服务器端的屏幕图像是变化的,因此好的远程服务器主机画面监控就要保证控制台端能尽快地得到服务器端的屏幕图像,同时尽量减少图像的失真。
远程服务器主机画面监控的关键在于屏幕图像的撷取以及屏幕图像数据的压缩与解压缩,公知的远程控制系统在图像采集上往往撷取全部,或者利用操作系统(如Windows)的事件响应区域进行撷取。由于图像是连续变化的,上述两种方法都会在两幅图之间采集到重复的内容,利用操作系统的事件响应区域进行截取虽然比较好,但仍然会采集到重复的内容,而且会受到操作系统的限制,不具备通用性。一些其它的影像采集技术,如MEPG4,但采集后处理时间比较长,而且存在失真,因此无法满足实时快速和无失真的要求。对于屏幕图像数据的压缩与解压缩这一点,主要追求的是较高的压缩率与较快的压缩与解压缩速度,公知的远程服务器主机画面监控常通过选取一定的压缩与解压缩算法如RLE、JPEG等来实现。RLE算法的压缩率比较小,改进的RLE方法又比较费时,而JPEG方法压缩存在图像失真比较严重,不适合计算机系统显示的文字、图形。
因此如何保证控制台端能尽快地得到服务器端的图像,同时尽量减少图像的失真,从而满足实时快速和无失真的要求,是当前远程控制系统中亟待解决的问题。
发明内容
有鉴于此,本发明乃为解决上述问题而提出一种远程服务器主机画面监控系统及其方法,主要的目的在于远程服务器主机画面监控过程中满足屏幕图像显示实时、快速、无失真的要求,从而更加方便远程监控。
所以为达到上述目的,本发明提供一种远程服务器主机画面监控系统,用以将该服务器端的屏幕图像实时地传送到该控制台端,包括一服务器端,用以回应该控制台端的请求,并采集与发送其屏幕图像,以及一控制台端,主要是用以向该服务端发出获取其屏幕图像的请求,并将从该服务端发送而来的屏幕图像在本地实时显示出来,其中该服务器端包括屏幕撷取模块,用以撷取当前服务器端的该屏幕图像;异或模块,其用以将采集到的该屏幕图像与其前一幅图像进行完全异或运算;压缩模块,其用以将该异或后的图像进行行内、行间以及斜向压缩;发送模块,用以将该压缩后的图像放入发送队列进行发送;其中该控制台端包括接收模块,用以接收该服务器端发送的图像数据;解压模块,解压接收到的该图像数据;异或模块,将该解压后的图像与本地上一幅图像进行完全异或运算;显示模块,用以将该异或后的图像显示出来。
另外,本发明提供一种远程服务器主机画面监控方法,用以将该服务器端的屏幕图像实时传送到该控制台端,首先控制台端向该服务端发出获取其屏幕图像的请求;然后服务器端响应该控制台端的请求,并采集与发送其屏幕图像,包括撷取该服务器端的一屏幕图像;将该屏幕图像与其前一幅图像进行完全异或(XOR)运算;将该异或后的图像进行行内、行间以及斜向压缩;以及将该压缩后的图像放入发送对列进行发送;接着该控制台端接收从该服务端发送而来的屏幕图像,并将其在本地实时显示出来,包括接收服务器端的该图像;解压缩该接收到的图像;将该解压缩后的图像与其上一幅图像进行完全异或运算;以及显示该异或后的图像。
根据本发明所提出的远程服务器主机画面监控系统及其方法,可以只采集到变化的内容,采用压缩方法可以将大多数的计算机屏幕内容(主要是图形和文字)压缩率到10%以下,而又没有失真。同时,采用异或运算只需要一个时钟周期就可以完成,所以处理速度比较快。
有关本发明的详细内容及技术,现在配合
如下。
图1是本发明所提出的远程服务器主机画面监控系统的模块架构图;图2是本发明所提出的远程服务器主机画面监控方法的主体流程图;图3是本发明服务器端采集与发送其屏幕图像的流程图;图4是本发明控制台接收并显示图像的流程图;图5是远程控制实现流程图;图6是本发明图像采集示意图;图7是本发明图像压缩示意图;图8是本发明通过Windows应用程序显示Windows服务器端屏幕的示意图;及图9是本发明通过IE显示Windows Sever端屏幕的示意图。
其中,附图标号说明如下110服务器端111屏幕撷取模块112异或模块113压缩模块114发送模块120控制台端121接收模块122解压模块123异或模块124显示模块步骤210控制台端向服务端发出获取其屏幕图像的请求步骤220服务器端回应控制台端的请求,并采集与发送其屏幕图像步骤230控制台端接收从服务端发送而来的屏幕图像,并将其在本地实时显示出来步骤221撷取服务器端一屏幕图像步骤222将该屏幕图像与其前一幅图像进行完全异或运算步骤223将该异或后的图像进行行内、行间以及斜向压缩步骤224将该压缩后的图像放入发送对列进行发送步骤231接收服务器端的图像步骤232解压缩接收到的图像步骤233将解压缩后的图像与其上一幅图像进行二次完全异或运算步骤234显示异或后的图像步骤510服务器端图像采集步骤520服务器端图像压缩步骤530网络传输步骤540控制台端解压缩步骤550控制台端图像显示610服务器端采集图像620服务器端图像缓冲区630控制台端图像缓冲区640控制台端图像显示步骤710遍历图像中所有像素步骤720判断是否为第一行步骤731做行内压缩步骤741做行间压缩步骤742做行间斜向压缩具体实施方式
本发明为一种远程服务器主机画面监控系统及其方法,首先请参见图1,该图是本发明所提出的远程服务器主机画面监控系统的模块架构图。其中,服务器端110用以响应该控制台端的请求,并采集与发送其屏幕图像,包括屏幕撷取模块111,异或模块112,压缩模块113以及发送模块114。下面对控制台端进行详细说明(1)屏幕撷取模块111,用以撷取当前服务器端的该屏幕图像;(2)异或模块112,其用以将采集到的该屏幕图像与其前一幅图像进行完全异或运算,所述完全异或运算将当前图像的每一个像素都与其前一幅图像相同位置像素进行异或运算;(3)压缩模块113,其用以将该异或后的图像进行行内、行间以及斜向压缩;及(4)发送模块114,用以将该压缩后的图像放入发送对列进行发送。
控制台端120,主要是用以向该服务端发出获取其屏幕图像的请求,并将从该服务端发送而来的屏幕图像在本地实时显示出来,包括接收模块121,解压模块122,异或模块123以及显示模块124,下面分别对其进行详细说明(1)接收模块121,用以接收该服务器端发送的图像数据;(2)解压模块122,解压接收到的该图像数据;(3)异或模块123,将该解压后的图像与本地上一幅图像进行完全异或运算;及(4)显示模块124,用以将该异或后的图像显示出来。
接着,通过图2来说明本发明的流程,该图是本发明所提出的远程服务器主机画面监控方法的主体流程图,说明如下首先控制台端向该服务端发出获取其屏幕图像的请求(步骤210),然后服务器端响应该控制台端的请求,并采集与发送其屏幕图像(步骤220),控制台端接收从该服务端发送而来的屏幕图像,并将其在本地实时显示出来(步骤230)。
请参见图3,其中上述服务器端采集与发送其屏幕图像的过程进一步包括撷取该服务器端的一屏幕图像(步骤221),将该屏幕图像与其前一幅图像进行完全异或运算(步骤222),将该异或后的图像进行行内、行间以及斜向压缩(步骤223),将该压缩后的图像放入发送对列进行发送(步骤224)。
请参见图4,其中控制台接收并显示图像的过程更包括接收服务器端的该图像(步骤231),解压缩该接收到的图像(步骤232),将该解压缩后的图像与其上一幅图像进行完全异或运算(步骤233),显示该异或后的图像(步骤234)。
通常主机画面监控需要将服务器端的图像实时传送到控制台端,保证两边图像一致,由于服务器端的图像是变化的,因此就要保证控制台端能尽快地得到服务器端的图像。这个过程请参见图5,该图是远程控制的流程图,如图所示,服务器端首先采集图像(步骤510),然后图像在服务器端被压缩(步骤520),经过网络传输后(步骤530),图像在控制台端解压缩(步骤540),最后将解压缩的图像显示出来(步骤550)。
由于服务器端所撷取的屏幕图像一般资料量较大,若直接发送则会导致占用网络带宽过大、实时性差、占用系统资源过多、稳定性差等问题,因此需经过压缩后才能将其发送给控制台端,而控制台端相应地也要将接收到的屏幕图像数据进行解压缩后才能正确地将屏幕图像显示出来。
请参见图6,该图是本发明图像采集的示意图。包括四个区域分别为服务器端采集图像610,服务器端图像缓冲区620,控制台端图像缓冲区630,以及控制台端图像显示640。如图所示,本发明的第一幅图像不经过任何采集处理,直接放到服务器端图像缓冲区620,经过压缩后由传输介质传输到控制台端,控制台端接收到图像数据后,解压缩数据到图像缓冲区630,然后在控制台端图像显示640中将其显示出来。第二幅以后的图像则都要与其前一幅图像进行完全的异或运算。以第二幅图像为例,服务器端撷取第二幅图像之后,将其与第一幅图像进行完全的异或运算,即每一个像素都要与其前一幅图像相同位置的像素进行异或运算,然后将异或后的结果放入缓冲区。由于异或具有以下特性1 XOR 1=00 XOR 0=01 XOR 0=1100111011110101101 XOR 100111011110101101=0000000000000000100111011110100000 XOR 100111011110101101=0000000000001101因此,两幅图像中相同的像素异或后为0(黑色),不同的像素异或后为一新的值,这样,经过异或运算后,只要是非黑色的像素就是两幅图像不同的部分。这种异或运算只需要一个时钟周期就可以完成,所以处理速度比较快。
然后将运算所得的图像进行压缩。图像经过异或运算之后,可以实现很高的数据压缩率。因为一般情况下屏幕图像总是在一个局部而非整个屏幕发生变化,将当前屏幕图像与上一屏幕图像进行异或运算后,所得屏幕位图未变化部分的位值为0,而变化部分的位值为1,当屏幕图像变化范围较小时,则所撷取的屏幕图像位图的大量位值将为0,同时压缩率除与压缩算法有关外,还与待压缩的资料本身有关,压缩时颜色相同的部分会压缩到很小,大部分为变化的像素,因此这样对其进行压缩将取得更加理想的压缩效果,从而减小了传输量。
由于与相邻位置像素相同概率比较大,正常图像95%以上的像素会与同一行或上一行相邻位置像素相同,因此本发明利用这一特点进行行内和行间压缩。可以将压缩率控制在10%以内。请参见图7,该图是本发明压缩过程的示意图。系统遍历图像中的所有像素(步骤710),然后判断当前行是否为第一行(步骤720),如果为第一行,则做行内压缩(步骤731)。行内压缩是将一行内连续相同的像素进行压缩,记录第一个像素的值和连续的个数。如果不是第一行,则判断当前像素是否与其前一个像素相同,如果相同,则做行内压缩(步骤731);然后再判断当前像素是否与正上方像素相同,如果相同则做行间压缩(步骤741),行间压缩只记录连续与正上方的像素相同的个数;再判断当前像素是否与斜上方像素相同,如果相同则做行间斜向压缩(步骤742),行间斜向压缩只记录连续与斜上方像素相同的个数。另外,在上述压缩过程中对像素的遍历是对整个该屏幕图像从前向后逐个进行的。
经过压缩的图像再通过网络发送到控制台端,控制台端对其进行解压缩,解压缩是压缩的逆过程,解压缩后的图像可以恢复到服务器端异或后的结果。由于异或运算具有可逆性,将异或后的图像再进行第二次异或后,就会重新得到原来的图像。采用的异或原理为A XOR B=CC XOR A=B在控制台端,得到服务器端异或结果的图像后,只要再将当前图像与本地的上一幅图像进行第二次异或,就可以得到服务器端的最新图像了。最后再将得到的图像显示出来。如图8所示,可以通过Windows应用程控显示Windows Sever端,还可以通过IE浏览器显示Windows Sever端,如图9所示。
虽然本发明以前述的较佳实施例揭示如上,然而它们并非用以限定本发明,故任何熟悉本领域的技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的保护范围当视所附的权利要求所界定的为准。
权利要求
1.一种远程服务器主机画面监控系统,用以将该服务器端的屏幕图像实时地传送到该控制台端,包括一服务器端,用以响应该控制台端的请求,并采集与发送其屏幕图像,包括一屏幕撷取模块,用以撷取当前服务器端的该屏幕图像;一异或模块,其用以将采集到的该屏幕图像与其前一幅图像进行完全异或运算;一压缩模块,其用以将该异或后的图像进行行内、行间以及斜向压缩;及一发送模块,用以将该压缩后的图像放入发送对列进行发送;及一控制台端,用以向该服务端发出获取其屏幕图像的请求,并将从该服务端发送而来的屏幕图像在本地实时显示出来,包括一接收模块,用以接收该服务器端发送的图像数据;一解压模块,解压接收到的该图像数据;一异或模块,将该解压后的图像与本地上一幅图像进行完全异或运算;及一显示模块,用以将该异或后的图像显示出来。
2.如权利要求1所述的远程服务器主机画面监控系统,其中所述异或模块对第一幅该屏幕图像不进行异或运算。
3.如权利要求1所述的远程服务器主机画面监控系统,其中所述完全异或运算,将当前图像的每一个像素都与其前一幅图像相同位置像素进行异或运算。
4.如权利要求1所述的远程服务器主机画面监控系统,其中所述压缩过程中对像素的遍历,是对整个该屏幕图像从前向后逐个进行的。
5.如权利要求1所述的远程服务器主机画面监控系统,其中所述行内压缩将该行内连续相同的像素进行压缩,记录其第一个像素值和连续的个数;所述行间压缩记录连续与正上方的像素相同的个数;所述斜向行间压缩记录连续与斜上方像素相同的个数。
6.一种远程服务器主机画面监控方法,用以将该服务器端的屏幕图像实时的传送到该控制台端,包括如下步骤该控制台端向该服务端发出获取其屏幕图像的请求;该服务器端响应该控制台端的请求,并采集与发送其屏幕图像,包括撷取该服务器端的一屏幕图像;将该屏幕图像与其前一幅图像进行完全异或运算;将该异或后的图像进行行内、行间以及斜向压缩;及将该压缩后的图像放入发送对列进行发送;及该控制台端接收从该服务端发送而来的屏幕图像,并将其在本地实时显示出来,包括接收服务器端的该图像;解压缩该接收到的图像;将该解压缩后的图像与其上一幅图像进行二次完全异或运算;及显示该异或后的图像。
7.如权利要求6所述的远程服务器主机画面监控方法,其中所述进行完全异或运算的步骤,若为第一幅该屏幕图像,则不做异或运算。
8.如权利要求6所述的远程服务器主机画面监控方法,其中所述完全异或运算,将当前图像的每一个像素都与其前一幅图像相同位置像素进行异或运算。
9.如权利要求6所述的远程服务器主机画面监控方法,其中所述压缩过程中对像素的遍历是对整个该屏幕图像从前向后逐个进行的。
10.如权利要求6所述的远程服务器主机画面监控方法,其中所述行内压缩将该行内连续相同的像素进行压缩,记录其第一个像素值和连续的个数;所述行间压缩记录连续与正上方的像素相同的个数;所述斜向行间压缩记录连续与斜上方像素相同的个数。
全文摘要
一种远程服务器主机画面监控系统及其方法,采集与发送服务器端的屏幕图像到控制台(Console),将撷取的图像进行完全异或(XOR)运算,通过压缩后进行发送;控制台端接收到图像后,经过解压缩和完全异或运算后显示出来,从而使服务器端的屏幕图像实时地传送到控制台端。
文档编号H04N7/26GK1635466SQ200310124390
公开日2005年7月6日 申请日期2003年12月30日 优先权日2003年12月30日
发明者刘文涵, 陈玄同, 李翼嵩 申请人:英业达股份有限公司