屏幕录像的压缩、存储、回放方法及压缩、存储系统的制作方法

文档序号:9350081阅读:1122来源:国知局
屏幕录像的压缩、存储、回放方法及压缩、存储系统的制作方法
【技术领域】
[0001]本发明属于图像存储技术领域,具体涉及一种屏幕录像的压缩、存储及回放方法,以及一种屏幕录像的压缩、存储系统。
【背景技术】
[0002]屏幕录像是一种用于对终端平台进行图形化监控,对客户端的操作行为进行录像的技术,录像后的数据能够进行长期保存,监视者可以随时根据自己需要的内容对录像文件进行检索,对于检索到的结果,能够快速定位到符合条件的图像帧,以便及时得到现场的图像信息,完全重现当时的操作场景。现有的屏幕录像基本捕捉桌面图片、将图片组合成基于AV1、GIF, HSR的文件保存;只适合短时间录像、当录像达到数小时后文件会大到无法打开。

【发明内容】

[0003]本发明所要解决的技术问题是针对【背景技术】的缺陷,提出一种屏幕录像压缩、存储及回放方法以及一种屏幕录像的压缩、存储系统,降低计算的复杂度、减少存储空间,在性能上实现了低速采样。
[0004]本发明为解决上述技术问题采用以下技术方案:
一种屏幕录像的压缩、存储方法,包括如下步骤:
A、设定屏幕变化获取的触发条件;
B、初始化全屏帧抓取频率FS1、窗口帧抓取频率WS1、文件写入频率WFI;
C、设定全屏帧文件FBK、区域变化帧文件FBS、变化帧索引文件FBI,按偏移时间来记录整个屏幕的变化;其中:
对于FBK文件,用于记录全屏帧文件的时间偏移量、全屏图像数据;
对于FBS文件,用于记录窗口变化的时间偏移量、窗口变化的图像数据;
对于FBI文件:用于记录全屏帧的偏移时间、全屏帧文件FBK的起始、结束位置,以及区域变化帧文件FBS的偏移时间、窗口帧的起始、结束位置;
D、拦截windows重绘消息,并将拦截的消息数据进行组装,具体为:
1)、实时记录重绘消息,以获得变化帧数据;
2)、帧数据组装:将拦截的变化帧数据以像素格式存储;
3)、数据比较:将本次抓取的变化帧数据与上次抓取的变化帧数据分割成若干个矩形进行比较;如果相同则不处理,否则,将变化的矩形数据记录成图像文件;
4)、图像处理:采用压缩感知的原理对步骤3)得到的图像进行抽样得到抽样值,对抽样值及其位置信息进行量化编码存储。
[0005]进一步,本发明的屏幕录像的压缩、存储方法,步骤A是将鼠标底层钩子、键盘底层钩子、系统消息钩子、消息队列钩子、对话框消息钩子注入到当前会话的所有程序中,包括之后打开的应用程序也被注入钩子,来监控屏幕变化,实现屏幕变化获取的触发。
[0006]进一步,本发明的屏幕录像的压缩、存储方法,步骤A所述设定屏幕变化获取的触发条件,是当用户登录windows用户会话时,设定进行如下操作:
(O向服务器申请对应获取用户的策略,分别为:获取当前windows用户的名称、用户操作web业务系统时使用的用户名称、通过当前机器的ip作为用户名称;
(2)根据(I)中获取到的用户名称去获取用户名称对应配置的场景,针对不同的场景区分开始录像的条件,分别是:
运维用户场景:当用户开始有鼠标、键盘的操作行为时,开始录像;当用户长时间不操作鼠标、键盘,且超出设定的时间阀值时,停止录像;
远程工具场景:当用户通过远程云桌面工具登录到云桌面系统时,开始录像;当用户退出云桌面系统时,停止录像;
全录像场景:用户登录上windows会话时,开始录像;用户断开或注销会话时,停止录像;
(3)IE应用场景:用户登录IE应用系统时,开始录像;退出应用业务系统时,停止录像。
[0007]进一步,本发明的屏幕录像的压缩、存储方法,步骤D的I)中,实时记录重绘消息,以获得变化帧数据,具体包括:
记录重绘消息中的N个区域范围Reg1nl, Reg1n2,......, Reg1nN,其中每个区域范围均包含若干个矩形像素,定时将这些区域范围Reg1nl, Reg1n2,......,Reg1nN取合集 Reg1nTotal ;
获取Reg1nTotal对应位置的像素点,并且相隔一段时间获取一次全屏幕像素数据。
[0008]进一步,本发明的屏幕录像的压缩、存储方法,步骤D的2)中将拦截的数据以像素格式存储,具体为:将数据拆分成N个矩形像素,在每个矩形像素都添加一个数据头dataHead(X, Y, W,H);其中X、Y分别表示矩形像素在屏幕上的X、Y坐标,W、H分别表示矩形的宽和高。
[0009]进一步,本发明的屏幕录像的压缩、存储方法,所述将拦截的数据以像素格式存储是通过使用24位或8位映射像素值到RGB亮度转换实现,其中:
定义像素格式参数为:
bits-per-pixel, depth, big-endian-flag, true-colour-flag, red-max, green-max, blue—max,red-shift, green—shift,blue-shift ;
其中:bits-per_pixel表示每个像素值需要的位数;depth表示像素中有用的位数;big-endian-f lag表示高位编址参数;true_colour-f lag表示真实颜色参数;red-max表示红色的最大值,green-max表示绿色的最大值,blue-max表示蓝色的最大值,red-max =2至η - 1,η表示用在红色上的位数;red-shift表示红色最低明显bit所需要替换个数,green-shift表示绿色最低明显bit所需要替换个数,blue-shift表示蓝色最低明显bit所需要替换个数;
定义变化帧格式参数:timeoffset,x, y, w, h ;
其中:timeoffset表示变化帧的偏移时间,x表示屏幕的x坐标,y表示屏幕的y坐标,w表示变化帧矩形宽度,h表示变化帧矩形高度。
[0010]进一步,本发明的屏幕录像的压缩、存储方法,步骤D的3)中所述数据比较,是将单位时间段内获取的Reg1nTotal重新分解成为多个矩形像素区域Recti, Rect2,......,Rect/?,然后进行比较,步骤包括:
a)当Recti的区域大小大于8*8时,将Recti区域图像缩小成8*8的区域图像RectScalei;如果Rect i小于或者等于8*8时,不需缩放,直接拷贝到RectScale ?,i=l, 2,…,η;
b)将缩小后的图像RectSaclel, RectSacle2,......, RectSacle/??一步转为 64 级灰度图像;
c)计算图像RectSaclel, RectSacle2,......, RectSacle/?的灰度平均值 N ;
d)将每个像素的灰度与灰度平均值N进行对比:大于或等于N记录为1,否则记录为
O ;
e)将步骤d)的对比结果构成一个序列,即为Recti的图像指纹,与上次Recti对应区域指纹对比,如果指纹不相同,把Recti加入变化区域数据Reg1nModify中;如果相同,表明Recti对应范围并没有屏幕变化,不需要发送Rect i对应范围类的像素数据。
[0011]进一步,本发明的屏幕录像的压缩、存储方法,步骤D的4)中所述采用压缩感知对图像进行处理,是获取Reg1nModify对应的像素数据,并对图像进行抽样得到抽样值,对抽样值及其位置信息进行量化编码存储,具体包括:
根据设定的压缩比,将Reg1nModify分割成为多个矩形像素区域RectModifyl,
RectModify2,......,RectModifya?,每个RectModify^/对应总的像素数据小于设定的压缩比上限,片,2,...对RectModifyJ内的像素数据进行判断是否为平滑图片,如果是则使用jpeg有损压缩算法压缩,如果否,则使用zlib无损压缩算法压缩。
[
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1