用于RPA机器人屏幕录制的无损视频编码方法和解码方法与流程

文档序号:26539597发布日期:2021-09-07 21:11阅读:308来源:国知局
用于RPA机器人屏幕录制的无损视频编码方法和解码方法与流程
用于rpa机器人屏幕录制的无损视频编码方法和解码方法
技术领域
1.本发明属于视频编码技术领域,更具体地,涉及一种用于rpa机器人屏幕录制的无损视频编码方法和解码方法。


背景技术:

2.视频编码是指通过压缩技术,将原始视频格式的文件转换成另一种视频格式文件的方法。视频流传输中最为重要的编解码标准有国际电联的h.261、h.263、h.264,运动静止图像专家组的m

jpeg和国际标准化组织运动图像专家组的mpeg系列标准,此外,在互联网上被广泛应用的还有real

networks的realvideo、微软公司的wmv以及apple公司的quicktime等。
3.视频图像数据有很强的相关性,即存在大量的冗余信息,其中冗余信息可分为空域冗余信息和时域冗余信息。为了去除数据中的冗余信息(即去除数据之间的相关性),需要使用压缩技术,现有的主流压缩技术包括帧内图像数据压缩技术、帧间图像数据压缩技术、以及熵编码压缩技术。其中帧内图像数据压缩技术是当压缩一帧图像时,仅考虑本帧的数据而不考虑相邻帧之间的冗余信息,这实际上与静态图像压缩类似,帧内一般采用有损压缩算法,达不到很高的压缩比;帧间图像数据压缩技术是基于许多视频或动画的连续前后两帧具有很大的相关性(即连续的视频其相邻帧之间具有冗余信息)的特点来实现的.通过比较时间轴上不同帧之间的数据实施压缩,进一步提高压缩比;熵编码压缩技术是根据数据出现的频率进行不等长编码。
4.然而,上述现有的三种压缩技术均存在一些不可忽略的缺陷:第一、对帧内图像数据压缩技术而言,其压缩率不够高,会导致视频体积过大;第二、对帧间图像数据压缩技术而言,其无法完整考虑整个视频所有帧之间出现的重复情况,只针对邻近帧进行压缩编码,因此造成压缩效果差;第三、对熵编码压缩技术而言,其适用于对完成的视频进行压缩和处理,实时录制时进行压缩会导致计算量过大,不适用于实时录制并编码视频。


技术实现要素:

5.针对现有技术的以上缺陷或改进需求,本发明提供了一种用于rpa机器人屏幕录制的无损视频编码方法和解码方法,其目的在于,解决现有帧内图像数据压缩技术由于压缩率不够高而导致视频体积过大的技术问题,以及现有帧间图像数据压缩技术由于没有完整考虑整个视频所有帧之间出现的重复情况,而只针对邻近帧进行压缩编码,导致压缩效果差的技术问题,以及现有熵编码压缩技术在实时录制时进行压缩会导致计算量过大,不适用于实时录制并编码视频的技术问题。
6.为实现上述目的,按照本发明的一个方面,提供了一种用于rpa机器人屏幕录制的无损视频编码方法,包括以下步骤:
7.(1)设置计数器k=0。
8.(2)判断k是否大于待录制视频中的帧总数,如果是则过程结束,否则进入步骤
(3)。
9.(3)调用操作系统截屏接口对待录制视频进行屏幕截图,以得到与待录制视频中第k帧图像的分辨率相同的截图。
10.(4)对步骤(3)获取的截图的分辨率进行处理,使截图中每个像素的宽和高为n的整数倍,以得到处理后的第k张截图,其中n表示后续分割过程得到的每帧图像的边长;
11.(5)对步骤(4)处理后的第k张截图先后进行分割和编码处理,并将处理后得到的多个图像及每个图像对应的哈希签名结果以结构体形式存储在第k帧图像对应的二维结构体数组中。
12.(6)根据步骤(5)获取的第k帧图像对应的二维结构体数组中的所有哈希签名结果对视频对应的哈希字典进行更新,以得到更新后的哈希字典和第k帧图像对应的二维结构体数组。
13.(7)设置k=k+1,并返回步骤(2)。
14.优选地,步骤(4)中n的取值为32或者64,步骤(4)是采取最邻近插值法,或者直接填充空白像素块的方式对截图进行处理,以得到一个根据分割需求调整好分辨率的截图。
15.优选地,步骤(5)具体包括以下子步骤:
16.(5

1)对步骤(4)处理后的第k张截图分割成大小为n*n的多帧图像。
17.(5

2)对步骤(5

1)获取的每个n*n大小的图像进行图像编码,以得到编码后的图像。
18.(5

3)利用哈希算法计算步骤(5

2)得到的每个编码后的图像的哈希签名结果,并将每个图像及其对应的哈希签名结果以结构体的方式保存在预设的第k帧图像对应的二维结构体数组中;
19.优选地,步骤(5

2)中对图像进行编码,是采用的图像无损压缩算法,优选为jpeg算法。
20.优选地,步骤(6)包括以下子步骤:
21.(6

1)设置计数器i=0;
22.(6

2)判断i是否大于步骤(5)得到的第k帧图像对应的二维结构体数组中哈希签名结果的总数,如果是则过程结束,否则进入步骤(6

3);
23.(6

3)判断第k帧图像对应的二维结构体数组中的第i个哈希签名结果是否位于待录制视频对应的哈希字典中,如果是则进入步骤(6

4),否则进入步骤(6

5)
24.(6

4)判断待录制视频对应的哈希字典中是否存在该第i个哈希签名结果对应的键值,如果是则进入步骤(6

6),否则进入步骤(6

5);
25.(6

5)为该第i个哈希签名结果生成唯一的文件名,并将该第i个哈希签名结果和文件名作为键值添加到待录制视频对应的哈希字典中;
26.(6

6)从步骤(5)得到的第k帧图像对应的二维结构体数组中删除该第i个哈希签名结果对应的图像;
27.(6

7)设置i=i+1,并返回步骤(6

2)。
28.按照本发明的另一方面,提供了一种用于rpa机器人屏幕录制的无损视频解码方法,其是和根据权利要求1至5中任意一项所述的用于rpa机器人屏幕录制的高压缩率无损视频编码方法对应,所述无损视频解码方法包括以下步骤:
29.(1)设置计数器j=0;
30.(2)判断j是否大于二维结构体数组的总数,如果是则过程结束,否则进入步骤(3);
31.(3)将第j个二维结构体数组中的哈希签名结果和待录制视频对应的哈希字典进行匹配,并将匹配得到的图像拼接成待录制视频中的第j帧图像;
32.(4)设置j=j+1,并返回步骤(2)。
33.优选地,步骤(3)包括以下子步骤:
34.(3

1)设置计数器t=0;
35.(3

2)判断t是否大于第j个二维结构体数组中的哈希签名结果总数,如果是则过程结束,否则进入步骤(3

3);
36.(3

3)在待录制视频中获取第j个二维结构体数组中的第t个哈希签名结果对应的文件名,并根据该文件名从视频同级目录获取对应的图像。
37.(3

4)将步骤(3

3)得到的图像拼接在待录制视频的第j帧图像中;
38.(3

5)设置t=t+1,并返回步骤(3

2)。
39.总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
40.(1)本发明由于采用了步骤(5),其根据图像的哈希签名结果进行搜索匹配,实现了重复图像不重复编码的功能,因此能够解决现有帧内图像数据压缩技术存在的压缩率不高的技术问题;
41.(2)本发明由于采用了步骤(5),其通过哈希签名结果建立了整个视频所有帧间的联系,因此能够解决现有帧间图像数据压缩技术存在的无法考虑整个视频,只针对邻近帧进行压缩编码,导致压缩效果差的技术问题;
42.(3)本发明由于采用了步骤(4)和步骤(5),其可以实现在录制视频的同时进行编码和处理并保证视频压缩所需的计算量适中,因此能够解决现有帧间图像数据压缩技术存在的不适用于实时录制并编码视频的技术问题;
43.(4)本发明针对rpa流程录制场景重复率高的特点,通过哈希签名结果代替相同的图像,实现大幅度减少录制视频所占的空间。
44.(5)本发明的视频编码方案,可以保证每帧视频都具有和传统视频编码方案中关键帧同等的图像质量,在占用空间更少的前提下实现了解码后的视频质量优于传统编码方案。
附图说明
45.图1是本发明用于rpa机器人屏幕录制的无损视频编码方法的流程图。
46.图2是本发明用于rpa机器人屏幕录制的无损视频解码方法的流程图图。
具体实施方式
47.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要
彼此之间未构成冲突就可以相互组合。
48.本发明的基本思路在于,利用屏幕截图和分割,计算每部分图像的哈希签名结果,并将图像存入文件,最后通过文件的哈希签名来还原录制的视频。一方面,通过哈希签名去除帧内的时域冗余可以大幅降低视频的空间占用,另一方面,由于截图存储的都是完整的编码图像,因此可以保证视频的清晰度远高于传统的视频编码方式。
49.本发明将图像编码技术、图像分割技术和哈希签名技术进行了整合,对视频的大量重复部分使用相同的图像内容,最终实现了一种具有占用空间更小、视频清晰度更高特点的一种针对rpa机器人流程录制的视频编码方案。
50.如图1所示,本发明提供了一种用于rpa机器人屏幕录制的无损视频编码方法,包括以下步骤:
51.(1)设置计数器k=0。
52.(2)判断k是否大于待录制视频中的帧总数,如果是则过程结束,否则进入步骤(3)。
53.(3)调用操作系统截屏接口对待录制视频进行屏幕截图,以得到与待录制视频中第k帧图像的分辨率相同的截图。
54.(4)对步骤(3)获取的截图的分辨率进行处理,使截图中每个像素的宽和高为n的整数倍,以得到处理后的第k张截图,其中n表示后续分割过程得到的每帧图像的边长,单位是像素,取值推荐为32或者64。
55.具体而言,本步骤是采取最邻近插值法,或者直接填充空白像素块的方式对截图进行处理,以得到一个根据分割需求调整好分辨率的截图。
56.上述步骤(4)的优点在于,可以在录制视频的同时进行编码,并且最邻近插值法和简单的图像分割可以保证对每帧的计算量适中,不对性能产生过多的影响。
57.(5)对步骤(4)处理后的第k张截图先后进行分割和编码处理,并将处理后得到的多个图像及每个图像对应的哈希签名结果以结构体形式存储在第k帧图像对应的二维结构体数组中。
58.本步骤具体包括以下子步骤:
59.(5

1)对步骤(4)处理后的第k张截图分割成大小为n*n的多帧图像。
60.(5

2)对步骤(5

1)获取的每个n*n大小的图像进行图像编码,以得到编码后的图像。
61.具体而言,本步骤中对图像进行编码,是采用的图像无损压缩算法,优选为联合图像专家组(joint photographic experts group,简称jpeg)算法。
62.本步骤的目的在于,减少每个子图像的大小,进而减少编码后视频所占的体积。
63.(5

3)利用哈希算法计算步骤(5

2)得到的每个编码后的图像的哈希签名结果,并将每个图像及其对应的哈希签名结果以结构体的方式保存在预设的第k帧图像对应的二维结构体数组(其初始状态为空)中;
64.具体而言,本步骤最终得到第k个完整的保存了第k帧图像中所有图像及其对应哈希签名结果的二维结构体数组。
65.上述步骤(5)的优点在于,每张图像通过哈希值确定其唯一性,对于相同的图像只保留一个图像文件即可,通过这种方式将整个视频的所有帧关联起来进行编码,可以有效
的减少视频的空域冗余度。
66.(6)根据步骤(5)获取的第k帧图像对应的二维结构体数组中的所有哈希签名结果对视频对应的哈希字典进行更新,以得到更新后的哈希字典和第k帧图像对应的二维结构体数组。
67.本步骤包括以下子步骤:
68.(6

1)设置计数器i=0;
69.(6

2)判断i是否大于步骤(5)得到的第k帧图像对应的二维结构体数组中哈希签名结果的总数,如果是则过程结束,否则进入步骤(6

3);
70.(6

3)判断第k帧图像对应的二维结构体数组中的第i个哈希签名结果是否位于待录制视频对应的哈希字典中,如果是则进入步骤(6

4),否则进入步骤(6

5)
71.(6

4)判断待录制视频对应的哈希字典中是否存在该第i个哈希签名结果对应的键值,如果是则进入步骤(6

6),否则进入步骤(6

5);
72.(6

5)为该第i个哈希签名结果生成唯一的文件名,并将该第i个哈希签名结果和文件名作为键值添加到待录制视频对应的哈希字典中;
73.(6

6)从步骤(5)得到的第k帧图像对应的二维结构体数组中删除该第i个哈希签名结果对应的图像;
74.(6

7)设置i=i+1,并返回步骤(6

2)。
75.(7)设置k=k+1,并返回步骤(2)。
76.如图2所示,本发明还提供了一种用于rpa机器人屏幕录制的无损视频解码方法,其是和上述用于rpa机器人屏幕录制的高压缩率无损视频编码方法对应,包括以下步骤:
77.(8)设置计数器j=0。
78.(9)判断j是否大于步骤(1)

(7)所得到的二维结构体数组的总数,如果是则过程结束,否则进入步骤(10);
79.(10)将第j个二维结构体数组中的哈希签名结果和待录制视频对应的哈希字典进行匹配,并将匹配得到的图像拼接成待录制视频中的第j帧图像。
80.本步骤包括以下子步骤:
81.(10

1)设置计数器t=0;
82.(10

2)判断t是否大于第j个二维结构体数组中的哈希签名结果总数,如果是则过程结束,否则进入步骤(10

3)。
83.(10

3)在待录制视频中获取第j个二维结构体数组中的第t个哈希签名结果对应的文件名,并根据该文件名从视频同级目录获取对应的图像。
84.(10

4)将步骤(10

3)得到的图像拼接在待录制视频的第j帧图像中;
85.(10

5)设置t=t+1,并返回步骤(10

2)。
86.(11)设置j=j+1,并返回步骤(9)。
87.实验结果
88.基于上述的视频编码方案,对编码后的视频大小进行计算:
89.视频参数:帧率设置为2截图分辨率设置为1280*720哈希签名结果设置为md5图像格式设置为jpg录制时长设置为10小时。
90.md5值占用空间大小:根据s2的图像分割方式,每帧视频需要220个64*64的图像,
即220个md5值,而每个md5值需要占用四个字节空间,所以十小时共占用空间3600*10*2*220*4=63360000byte=60.42mb,进一步地,通过zip进行文件压缩可以将占用空间缩小到25mb,因此所有md5共占用空间25mb。
91.固定场景产生的图像占用空间大小:通过场景随机截图测试计算出每张64*64的jpg图像占用为1kb假设rpa机器人十小时共需要在20个场景进行切换,场景图像所需的空间大小为220*20=4400张,占用空间4.30mb,因此固定场景图像共占用空间4.30mb。
92.动态场景产生的图像占用空间大小:按照rpa机器人的流程进行速度,在流程录制开始时每秒会产生30

50个不同于场景的64*64图像,随着流程的录制,只有一小部分的图像是未记录过的,按照十个小时的长度平均计算,每秒有3个全新的64*64大小jpg图像需要存储,共产生108000个全新jpg图像,占用空间105.47mb,因此动态场景图像共占用空间105.47mb。
93.统计得到rpa流程录制10小时视频文件共占用存储空间134.77mb,而利用传统编码方案在相同时长相同分辨率下录制,视频大小会在3gb以上。因此,根据实验结果,本发明所阐述的视频编码方案可以大幅度减少视频的体积。
94.另外,由于每帧视频图像都是完整的jpg图像拼接而成,相当于每帧图像都是传统编码方式视频中的关键帧,因此清晰度也会比传统方案编码的视频更高。
95.可以理解的是,本发明针对rpa机器人工作流程中画面重复性高的特点,实现了一种针对相同图像采取哈希签名结果的特殊视频编码方法,使rpa机器人流程录制所需要的存储空间利用效率得到提高,减少了企业物力财力的消耗,也节约了rpa机器人流程维护中的成本。
96.本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1