首页 / 专利库 / 视听技术与设备 / 块匹配运动估计 / 一种运动估计方法及装置、服务器及计算机可读存储介质

一种运动估计方法及装置、服务器及计算机可读存储介质

阅读:415发布:2020-05-13

专利汇可以提供一种运动估计方法及装置、服务器及计算机可读存储介质专利检索,专利查询,专利分析的服务。并且本 发明 实施例 公开了一种 运动估计 方法及装置、 服务器 及计算机可读存储介质,用于提供一种快速查找桌面图像各宏 块 的匹配块的方法,有利于实现较短时间内在参考 帧 中的全部区域查找最佳匹配块,从而提升桌面图像的压缩效果。本发明实施例方法包括:获取待传输的桌面图像;对桌面图像按照目标尺寸进行切割,得到多个宏块;从缓存的参考帧中查找与桌面图像的宏块相对应的子图,桌面图像的宏块和与其对应的子图具有相同的尺寸和哈希值;根据桌面图像的宏块和与其对应的子图的 位置 计算桌面图像的宏块的 运动矢量 。,下面是一种运动估计方法及装置、服务器及计算机可读存储介质专利的具体信息内容。

1.一种运动估计方法,其特征在于,包括:
获取待传输的桌面图像;
对所述桌面图像按照目标尺寸进行切割,得到多个宏
从缓存的参考中查找与所述桌面图像的宏块相对应的子图,所述桌面图像的宏块和与其对应的子图具有相同的尺寸和哈希值;
根据所述桌面图像的宏块和与其对应的子图的位置计算所述桌面图像的宏块的运动矢量
2.根据权利要求1所述的方法,其特征在于,所述从缓存的参考帧中查找与所述桌面图像的宏块相对应的子图包括:
分别计算所述桌面图像的所有宏块的哈希值;
将所述桌面图像的所有宏块的索引信息进行存储得到第一索引信息库,所述桌面图像的任意一个目标宏块的索引信息包括所述目标宏块的位置和哈希值;
采用所述目标尺寸的滑动窗口在所述参考帧中进行滑动,所述滑动窗口的每次滑动得到所述参考帧的一个子图;
获取所述滑动窗口当前对应的第一子图;
计算所述第一子图的哈希值;
在所述第一索引信息库中查找与所述第一子图的哈希值相同的第一宏块的位置。
3.根据权利要求1所述的方法,其特征在于,所述从缓存的参考帧中查找与所述桌面图像的宏块相对应的子图包括:
采用所述目标尺寸的滑动窗口在所述参考帧中进行滑动,所述滑动窗口的每次滑动得到所述参考帧的一个子图;
分别计算所述参考帧的所有子图的哈希值;
将所述参考帧的所有子图的索引信息进行存储得到第二索引信息库,所述参考帧的任意一个目标子图的索引信息包括所述目标子图的位置和哈希值;
获取所述桌面图像中当前待处理的第二宏块;
计算所述第二宏块的哈希值;
在所述第二索引信息库中查找与所述第二宏块的哈希值相同的第二子图的位置。
4.根据权利要求2或3所述的方法,其特征在于,计算所述桌面图像的宏块的哈希值包括:
采用二维增量散列算法计算所述桌面图像的宏块的哈希值;
和/或,
计算所述参考帧的子图的哈希值包括:
采用二维增量散列算法计算所述参考帧的子图的哈希值。
5.根据权利要求4所述的方法,其特征在于,所述根据所述桌面图像的宏块和与其对应的子图的位置计算所述桌面图像的宏块的运动矢量包括:
当所述桌面图像的任意一个目标宏块对应于第三子图和第四子图时,分别计算所述目标宏块对应于所述第三子图的第三运动矢量和对应于所述第四子图的第四运动矢量;
分别预测所述第三运动矢量和所述第四运动矢量对应的编码码流的长度;
选择最短编码码流对应的运动矢量作为所述目标宏块的运动矢量。
6.一种运动估计装置,其特征在于,包括:
获取模块,用于获取待传输的桌面图像;
切割模块,用于对所述桌面图像按照目标尺寸进行切割,得到多个宏块;
查找模块,用于从缓存的参考帧中查找与所述桌面图像的宏块相对应的子图,所述桌面图像的宏块和与其对应的子图具有相同的尺寸和哈希值;
计算模块,用于根据所述桌面图像的宏块和与其对应的子图的位置计算所述桌面图像的宏块的运动矢量。
7.根据权利要求6所述的装置,其特征在于,所述查找模块具体用于:
分别计算所述桌面图像的所有宏块的哈希值;
将所述桌面图像的所有宏块的索引信息进行存储得到第一索引信息库,所述桌面图像的任意一个目标宏块的索引信息包括所述目标宏块的位置和哈希值;
采用所述目标尺寸的滑动窗口在所述参考帧中进行滑动,所述滑动窗口的每次滑动得到所述参考帧的一个子图;
获取所述滑动窗口当前对应的第一子图;
计算所述第一子图的哈希值;
在所述第一索引信息库中查找与所述第一子图的哈希值相同的第一宏块的位置。
8.根据权利要求6所述的装置,其特征在于,所述查找模块具体用于:
采用所述目标尺寸的滑动窗口在所述参考帧中进行滑动,所述滑动窗口的每次滑动得到所述参考帧的一个子图;
分别计算所述参考帧的所有子图的哈希值;
将所述参考帧的所有子图的索引信息进行存储得到第二索引信息库,所述参考帧的任意一个目标子图的索引信息包括所述目标子图的位置和哈希值;
获取所述桌面图像中当前待处理的第二宏块;
计算所述第二宏块的哈希值;
在所述第二索引信息库中查找与所述第二宏块的哈希值相同的第二子图的位置。
9.一种服务器,其特征在于:所述服务器包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1至5中任意一项所述运动估计方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1至5中任意一项所述运动估计方法的步骤。

说明书全文

一种运动估计方法及装置、服务器及计算机可读存储介质

技术领域

[0001] 本发明涉及计算机技术领域,尤其涉及一种运动估计方法及装置、服务器及计算机可读存储介质。

背景技术

[0002] 虚拟桌面基于桌面虚拟化技术,而桌面虚拟化依赖于服务器虚拟化,在数据中心的服务器上进行服务器虚拟化,生成大量的独立的桌面操作系统,同时根据专有的虚拟桌面协议发送给终端设备。用户终端通过以太网登录到虚拟主机上,只需要记住用户名、密码以及网关信息,便可以随时随地的通过网络访问自己的桌面系统。虚拟桌面基础架构需要实时传输大量的虚拟桌面图像,在有限的带宽下,如何削减服务器和客户端之间的传输流量成为虚拟桌面技术的关键问题。
[0003] 由于不同的桌面图像通常存在较多的冗余数据,因此可以采用去冗余的视频压缩算法对桌面图像进行压缩,以保证图像质量的前提下削减桌面图像的传输流量。运动估计算法是视频压缩编码的核心算法之一,高质量的运动估计算法是高效视频编码的前提和基础。现有的运动估计算法需要计算并比较参考帧中多个的运动代价,选择运动代价最小的块作为当前宏块的匹配块。由于计算并比较运动代价需要耗费较高算,耗时较长,并且运动估计所选用的参考帧往往有多帧图像,若到参考帧全范围内查找当前宏块的匹配块,将导致图像压缩过程耗费的算力过大,耗时过长。由于自然物体运动的连续性,运动矢量在时间域也存在一定相关性,因此现有技术提出用邻近参考帧的运动矢量来预测当前帧的运动矢量,并在预测的运动矢量的邻域内查找匹配块。
[0004] 但是与自然物体的运动场景不同,桌面图像中物体运动的连续性通常较差,运动矢量在时间域的相关性很差,在预测的运动矢量的邻域内查找匹配块将难以找到最佳匹配块,而现有的运动估计方法只能实现在参考帧中的某个指定区域内查找匹配块,这将影响桌面图像的压缩效果。

发明内容

[0005] 本发明实施例提供了一种运动估计方法及装置、服务器及计算机可读存储介质,用于解决现有的运动估计方法只能实现在参考帧中的某个指定区域内查找匹配块的问题。
[0006] 本发明实施例一方面提供一种运动估计方法,包括:
[0007] 获取待传输的桌面图像;
[0008] 对所述桌面图像按照目标尺寸进行切割,得到多个宏块;
[0009] 从缓存的参考帧中查找与所述桌面图像的宏块相对应的子图,所述桌面图像的宏块和与其对应的子图具有相同的尺寸和哈希值;
[0010] 根据所述桌面图像的宏块和与其对应的子图的位置计算所述桌面图像的宏块的运动矢量。
[0011] 可选的,所述从缓存的参考帧中查找与所述桌面图像的宏块相对应的子图包括:
[0012] 分别计算所述桌面图像的所有宏块的哈希值;
[0013] 将所述桌面图像的所有宏块的索引信息进行存储得到第一索引信息库,所述桌面图像的任意一个目标宏块的索引信息包括所述目标宏块的位置和哈希值;
[0014] 采用所述目标尺寸的滑动窗口在所述参考帧中进行滑动,所述滑动窗口的每次滑动得到所述参考帧的一个子图;
[0015] 获取所述滑动窗口当前对应的第一子图;
[0016] 计算所述第一子图的哈希值;
[0017] 在所述第一索引信息库中查找与所述第一子图的哈希值相同的第一宏块的位置。
[0018] 可选的,所述从缓存的参考帧中查找与所述桌面图像的宏块相对应的子图包括:
[0019] 采用所述目标尺寸的滑动窗口在所述参考帧中进行滑动,所述滑动窗口的每次滑动得到所述参考帧的一个子图;
[0020] 分别计算所述参考帧的所有子图的哈希值;
[0021] 将所述参考帧的所有子图的索引信息进行存储得到第二索引信息库,所述参考帧的任意一个目标子图的索引信息包括所述目标子图的位置和哈希值;
[0022] 获取所述桌面图像中当前待处理的第二宏块;
[0023] 计算所述第二宏块的哈希值;
[0024] 在所述第二索引信息库中查找与所述第二宏块的哈希值相同的第二子图的位置。
[0025] 可选的,其特征在于,计算所述桌面图像的宏块的哈希值包括:
[0026] 采用二维增量散列算法计算所述桌面图像的宏块的哈希值;
[0027] 和/或,
[0028] 计算所述参考帧的子图的哈希值包括:
[0029] 采用二维增量散列算法计算所述参考帧的子图的哈希值。
[0030] 可选的,所述根据所述桌面图像的宏块和与其对应的子图的位置计算所述桌面图像的宏块的运动矢量包括:
[0031] 当所述桌面图像的任意一个目标宏块对应于第三子图和第四子图时,分别计算所述目标宏块对应于所述第三子图的第三运动矢量和对应于所述第四子图的第四运动矢量;
[0032] 分别预测所述第三运动矢量和所述第四运动矢量对应的编码码流的长度;
[0033] 选择最短编码码流对应的运动矢量作为所述目标宏块的运动矢量。
[0034] 本发明实施例第二方面提供一种运动估计装置,包括:
[0035] 获取模块,用于获取待传输的桌面图像;
[0036] 切割模块,用于对所述桌面图像按照目标尺寸进行切割,得到多个宏块;
[0037] 查找模块,用于从缓存的参考帧中查找与所述桌面图像的宏块相对应的子图,所述桌面图像的宏块和与其对应的子图具有相同的尺寸和哈希值;
[0038] 计算模块,用于根据所述桌面图像的宏块和与其对应的子图的位置计算所述桌面图像的宏块的运动矢量。
[0039] 可选的,所述查找模块具体用于:
[0040] 分别计算所述桌面图像的所有宏块的哈希值;
[0041] 将所述桌面图像的所有宏块的索引信息进行存储得到第一索引信息库,所述桌面图像的任意一个目标宏块的索引信息包括所述目标宏块的位置和哈希值;
[0042] 采用所述目标尺寸的滑动窗口在所述参考帧中进行滑动,所述滑动窗口的每次滑动得到所述参考帧的一个子图;
[0043] 获取所述滑动窗口当前对应的第一子图;
[0044] 计算所述第一子图的哈希值;
[0045] 在所述第一索引信息库中查找与所述第一子图的哈希值相同的第一宏块的位置。
[0046] 可选的,所述查找模块具体用于:
[0047] 采用所述目标尺寸的滑动窗口在所述参考帧中进行滑动,所述滑动窗口的每次滑动得到所述参考帧的一个子图;
[0048] 分别计算所述参考帧的所有子图的哈希值;
[0049] 将所述参考帧的所有子图的索引信息进行存储得到第二索引信息库,所述参考帧的任意一个目标子图的索引信息包括所述目标子图的位置和哈希值;
[0050] 获取所述桌面图像中当前待处理的第二宏块;
[0051] 计算所述第二宏块的哈希值;
[0052] 在所述第二索引信息库中查找与所述第二宏块的哈希值相同的第二子图的位置。
[0053] 可选的,所述查找模块还用于:
[0054] 采用二维增量散列算法计算所述桌面图像的宏块的哈希值;
[0055] 和/或,
[0056] 采用二维增量散列算法计算所述参考帧的子图的哈希值。
[0057] 可选的,当所述桌面图像的任意一个目标宏块对应于第三子图和第四子图时,所述计算模块用于:
[0058] 分别计算所述目标宏块对应于所述第三子图的第三运动矢量和对应于所述第四子图的第四运动矢量;
[0059] 分别预测所述第三运动矢量和所述第四运动矢量对应的编码码流的长度;
[0060] 选择最短编码码流对应的运动矢量作为所述目标宏块的运动矢量。
[0061] 本发明实施例的第三方面提供了一种服务器,所述服务器包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如第一方面或第一方面的任意一种可能的实现方式所述方法的步骤。
[0062] 本发明实施例的第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面或第一方面的任意一种可能的实现方式所述方法的步骤。
[0063] 从以上技术方案可以看出,本发明实施例具有以下优点:
[0064] 本发明提供的运动估计算法能够对待传输的桌面图像按照某一个固定的目标尺寸进行切割,得到多个宏块,方便后期编码,之后可以从缓存的参考帧中查找与桌面图像的宏块相对应的子图,桌面图像的宏块和与其对应的子图具有相同的尺寸和哈希值,并根据桌面图像的宏块和与其对应的子图的位置计算桌面图像的宏块的运动矢量,完成运动估计。由于本发明只需计算并比较桌面图像的宏块与参考帧的子图的哈希值便可以快速查找到匹配块,和现有技术相比,很大程度上减小了查找匹配块所耗费的算力和时间,因此能够实现在参考帧中的全部区域查找最佳匹配块,提升桌面图像的压缩效果。附图说明
[0065] 图1是本发明运动估计方法一个实施例示意图;
[0066] 图2是图1中步骤300的一种细化步骤示意图;
[0067] 图3是图1中步骤300的另一种细化步骤示意图;
[0068] 图4是图1中步骤400的细化步骤示意图;
[0069] 图5是本发明运动估计装置一个实施例示意图;
[0070] 图6是本发明服务器一个实施例示意图。

具体实施方式

[0071] 本发明实施例提供了一种运动估计方法及装置、服务器及计算机可读存储介质,用于提供一种快速查找桌面图像各宏块的匹配块的方法,有利于实现较短时间内在参考帧中的全部区域查找最佳匹配块,从而提升桌面图像的压缩效果。
[0072] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0073] 本发明的说明书权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0074] 运动估计算法是视频压缩编码的核心算法之一,高质量的运动估计算法是高效视频编码的前提和基础。运动估计的基本思想是将图像序列的每一帧分成许多互不重叠的宏块,并认为宏块内所有像素的位移量都相同,然后对每个宏块到参考帧某一给定特定搜索范围内根据一定的匹配准则找出与当前宏块最相似的块,即匹配块,匹配块与当前宏块的相对位移即为运动矢量,得到运动矢量的过程被称为运动估计。视频压缩的时候,只需保存运动矢量和残差数据就可以完全恢复出当前宏块。请参阅图1,本发明实施例中运动估计方法一个实施例包括:
[0075] 100、获取待传输的桌面图像;
[0076] 本发明主要应用于传输桌面视频的场景,常见的传输桌面视频的应用场景可以包括计算机远程协助场景和虚拟桌面场景等。在计算机远程协助场景或虚拟桌面场景中,服务器需要获取桌面视频中待传输的桌面图像,并对其进行压缩,之后将压缩后的桌面图像发送给访问用户,以削减传输流量。对待传输的桌面图像进行压缩的关键在于对桌面图像中的宏块进行运动估计,本发明实施例主要提供一种运动估计方法。在运动估计的过程中,首先,服务器需要获取待传输的桌面图像。
[0077] 200、对桌面图像按照目标尺寸进行切割,得到多个宏块;
[0078] 服务器获取到待传输的桌面图像之后,可以按照目标尺寸将桌面图像A分割成多个互不重叠的宏块a,使得得到的每个宏块a的尺寸为目标尺寸,目标尺寸可以用于限定宏块的长度和宽度,比如,目标尺寸可以为32×32像素。
[0079] 300、从缓存的参考帧中查找与桌面图像的宏块相对应的子图;
[0080] 由于桌面视频的传输场景中,传输的桌面图像具有一定的冗余度,因此,服务器可以将传输过的桌面图像缓存起来,作为运动估计的参考帧。缓存的参考帧可以包括当前待传输的桌面图像所在的桌面视频中的、已传输的其它桌面图像,或者,可以包括已完成传输的桌面视频中的桌面图像,或者,可以包括当前待传输的桌面图像所在的桌面视频中的、已传输的其它桌面图像和已完成传输的桌面视频中的桌面图像。在服务器对待传输的桌面图像进行切割得到多个宏块后,服务器可以从缓存的参考帧中分别查找与各个宏块相对应的子图,对于待传输的桌面图像中的任意一个宏块来说,与其对应的子图和该宏块具有相同的尺寸和哈希值。
[0081] 400、根据桌面图像的宏块和与其对应的子图的位置计算桌面图像的宏块的运动矢量。
[0082] 从缓存的参考帧中查找到与待传输的桌面图像的宏块对应的子图后,可以分别根据桌面图像的宏块的位置和与其对应的子图的位置计算该桌面图像的宏块的运动矢量。
[0083] 本发明提供的运动估计算法可以根据尺寸和哈希值从缓存的参考帧中查找与桌面图像的宏块相对应的子图,并根据桌面图像的宏块和与其对应的子图的位置计算桌面图像的宏块的运动矢量,完成运动估计。由于本发明只需计算并比较桌面图像的宏块与参考帧的子图的哈希值便可以快速查找到匹配块,和现有技术相比,很大程度上减小了查找匹配块所耗费的算力和时间,因此能够实现在参考帧中的全部区域查找最佳匹配块,提升桌面图像的压缩效果。
[0084] 在发明的一些实施例中,请参照图2,图2为图1对应的实施例中步骤300的一种可能的细化步骤的示意图。基于上述图1对应的实施例,步骤300可以具体包括:
[0085] 301a、分别计算桌面图像的所有宏块的哈希值;
[0086] 将待传输的桌面图像切割成多个宏块之后,可以分别计算各个宏块的哈希值,由哈希算法计算得到的哈希值可以唯一代表某一图像区域。
[0087] 优选的,可以采用二维增量散列算法计算待传输的桌面图像的所有宏块的哈希值。二维增量散列算法为一类特殊的图像散列算法,对原图像进行一定的预处理之后,可以以较低的时间复杂度计算原图的每个矩形子图的散列值。需要说明的是,在实际使用中,也可以采用其它算法计算待传输的桌面图像的所有宏块的哈希值。
[0088] 302a、将桌面图像的所有宏块的索引信息进行存储得到第一索引信息库;
[0089] 分别计算桌面图像的所有宏块的哈希值之后,可以得到各个宏块的索引信息,并将各个宏块的索引信息进行存储,得到第一索引信息库。为了方便描述,以桌面图像中的一个宏块为例,该宏块为待传输的桌面图像中的任意一个宏块,并将该宏块称作目标宏块,目标宏块的索引信息包括目标宏块的位置和哈希值。
[0090] 303a、采用目标尺寸的滑动窗口在参考帧中进行滑动;
[0091] 得到第一索引信息库之后,可以采用目标尺寸的滑动窗口在缓存的参考帧中进行滑动,滑动窗口的尺寸与待传输的桌面图像的宏块的尺寸相同,比如,滑动窗口的尺寸可以为32×32像素。滑动窗口的每次滑动均可以得到参考帧中的一个子图。不同子图之间可以包括重叠区域,比如,滑动窗口可以在参考帧中做滑动,且每次滑动一个像素。缓存的参考帧可以包括当前待传输的桌面图像所在的桌面视频中的、已传输的其它桌面图像,或者,可以包括已完成传输的桌面视频中的桌面图像,或者,可以包括当前待传输的桌面图像所在的桌面视频中的、已传输的其它桌面图像和已完成传输的桌面视频中的桌面图像。
[0092] 304a、获取滑动窗口当前对应的第一子图;
[0093] 滑动窗口在参考帧中进行滑动的过程中,服务器可以获取滑动窗口当前对应的子图,为了方便描述,将滑动窗口当前对应的子图称作第一子图。
[0094] 305a、计算第一子图的哈希值;
[0095] 优选的,可以采用二维增量散列算法计算第一子图的哈希值。需要说明的是,在实际使用中,也可以采用其它算法计算待传输的桌面图像的所有宏块的哈希值。
[0096] 306a、在第一索引信息库中查找与第一子图的哈希值相同的第一宏块的位置。
[0097] 计算得到第一子图的哈希值之后,服务器可以在第一索引信息库中查找与第一子图的哈希值相同的哈希值,为了方便描述,将该哈希值所属的宏块称作第一宏块,并称第一子图与第一宏块相对应。之后可以在第一索引信息库中确定第一宏块的位置。
[0098] 利用滑动窗口遍历缓存的参考帧,服务器便可以在第一索引信息库中分别查找与参考帧中各个子图相对应的宏块,并确定查找到的各个宏块的位置。
[0099] 在本发明的一些实施例中,请参照图3,图3为图1对应的实施例中步骤300的另一种可能的细化步骤的示意图。基于上述图1对应的实施例,步骤300可以具体包括:
[0100] 301b、采用目标尺寸的滑动窗口在参考帧中进行滑动;
[0101] 服务器可以采用目标尺寸的滑动窗口在缓存的参考帧中进行滑动,滑动窗口的尺寸与待传输的桌面图像的宏块的尺寸相同,比如,滑动窗口的尺寸可以为32×32像素。滑动窗口的每次滑动均可以得到参考帧中的一个子图。不同子图之间可以包括重叠区域,比如,滑动窗口可以在参考帧中做蛇形滑动,且每次滑动一个像素。缓存的参考帧可以包括当前待传输的桌面图像所在的桌面视频中的、已传输的其它桌面图像,或者,可以包括已完成传输的桌面视频中的桌面图像,或者,可以包括当前待传输的桌面图像所在的桌面视频中的、已传输的其它桌面图像和已完成传输的桌面视频中的桌面图像。
[0102] 302b、分别计算参考帧的所有子图的哈希值;
[0103] 采用目标尺寸的滑动窗口遍历参考帧后,可以得到多个子图,之后可以分别计算参考帧中所有子图的哈希值。优选的,可以采用二维增量散列算法计算参考帧中所有子图的哈希值。需要说明的是,在实际使用中,也可以采用其它算法计算待传输的桌面图像的所有宏块的哈希值。
[0104] 303b、将参考帧的所有子图的索引信息进行存储得到第二索引信息库;
[0105] 分别计算参考帧中所有子图的哈希值之后,可以得到各个子图的索引信息,并将各个子图的索引信息进行存储,得到第二索引信息库。为了方便描述,以参考帧中的一个子图为例,该子图为参考帧中的任意一个子图,并将该子图称作目标子图,目标子图的索引信息包括目标子图的位置和目标子图的哈希值。
[0106] 304b、获取桌面图像中当前待处理的第二宏块;
[0107] 得到第二索引信息库之后,可以遍历待传输的桌面图像的各个宏块,分别对各个宏块进行处理,以确定与其对应的子图。为了方便描述,将当前待处理的宏块称作第二宏块,服务器可以获取桌面图像中当前待处理的第二宏块。
[0108] 305b、计算第二宏块的哈希值;
[0109] 优选的,可以采用二维增量散列算法计算第二宏块的哈希值。需要说明的是,在实际使用中,也可以采用其它算法计算待传输的桌面图像的所有宏块的哈希值。
[0110] 306b、在第二索引信息库中查找与第二宏块的哈希值相同的第二子图的位置。
[0111] 计算得到第二宏块的哈希值之后,服务器可以在第二索引信息库中查找与第二宏块的哈希值相同的哈希值,为了方便描述,将该哈希值所属的子图称作第二子图,并称第二子图与第二宏块相对应。之后可以在第二索引信息库中确定第二子图的位置。
[0112] 通过遍历待传输的桌面图像的各个宏块,服务器可以在第二索引信息库中分别查找与桌面图像中各个宏块相对应的子图,并确定查找到的各个子图的位置。
[0113] 和图2对应的实施例方法相比,图3对应的实施例方法需要把缓存的参考帧的所有子图的索引信息进行存储,这会消耗更多的内存,但是,由于图3对应的实施例中在第二索引信息库中进行查找的次数主要与待传输的桌面图像中的宏块数目相关,因此,当参考帧数量增加时,在第二索引信息库中进行查找的次数不会随之增加,性能不会随之下降,因此更加适用于参考帧数量较大的情况。
[0114] 按照图2对应的实施例方法或者按照图3对应的实施例方法,可以确定参考帧中的子图与待传输的桌面图像的宏块之间的对应关系,可能存在一个宏块对应于两个或两个以上子图的情形,此时,上述图1对应的实施例中步骤400需要从两个或两个以上子图中选择一个子图,根据选择出的子图计算该宏块的运动矢量。请参照图4,图4为上述图1对应的实施例中步骤400的一个细化步骤的示意图。为了方便描述,以桌面图像中的一个宏块为例,该宏块为待传输的桌面图像中的任意一个宏块,并将该宏块称作目标宏块。若目标宏块对应于两个或两个以上子图,以目标宏块对应于第三子图和第四子图为例,基于上述图1对应的实施例,步骤400可以具体包括:
[0115] 401、分别计算目标宏块对应于第三子图的第三运动矢量和对应于第四子图的第四运动矢量;
[0116] 当通过步骤300确定目标宏块对应于第三子图和第四子图时,服务器可以分别计算目标宏块对应于第三子图的第三运动矢量,和目标宏块对应于第四子图的第四运动矢量。
[0117] 402、分别预测第三运动矢量和第四运动矢量对应的编码码流的长度;
[0118] 计算得到第三运动矢量和第四运动矢量之后,服务器可以分别预测第三运动矢量对应的编码码流的长度,和第四运动矢量对应的编码码流的长度。可以根据将要采用的具体的编码方法来预测运动矢量对应的编码码流的长度,例如,在熵编码中,不同运动矢量对应不同的码流长度,因此,可以根据运动矢量预测其对应的编码码流的长度。
[0119] 403、选择长度最短的编码码流对应的运动矢量作为目标宏块的运动矢量。
[0120] 得到第三运动矢量对应的编码码流和第四运动矢量对应的编码码流之后,可以对编码码流进行比较,选择长度最短的编码码流对应的子图来计算目标宏块的运动矢量。
[0121] 图4对应的实施例方法能够解决从一个宏块对应的多个子图中选取编码码流的长度最短的子图来计算相应的运动矢量,进而对该宏块进行压缩编码,有利于削减对桌面图像的压缩编码码流。
[0122] 上面对本发明实施例中的运动估计方法进行了描述,下面对本发明实施例中的运动估计装置进行描述。
[0123] 请参阅图5,为本发明实施例运动估计装置的一个实施例示意图。本发明实施例运动估计装置的一个实施例包括:
[0124] 获取模块501,用于获取待传输的桌面图像;
[0125] 切割模块502,用于对桌面图像按照目标尺寸进行切割,得到多个宏块;
[0126] 查找模块503,用于从缓存的参考帧中查找与桌面图像的宏块相对应的子图,桌面图像的宏块和与其对应的子图具有相同的尺寸和哈希值;
[0127] 计算模块504,用于根据桌面图像的宏块和与其对应的子图的位置计算桌面图像的宏块的运动矢量。
[0128] 在本发明的一些实施例中,查找模块503可以具体用于:
[0129] 分别计算桌面图像的所有宏块的哈希值;
[0130] 将桌面图像的所有宏块的索引信息进行存储得到第一索引信息库,桌面图像的任意一个目标宏块的索引信息包括目标宏块的位置和哈希值;
[0131] 采用目标尺寸的滑动窗口在参考帧中进行滑动,滑动窗口的每次滑动得到参考帧的一个子图;
[0132] 获取滑动窗口当前对应的第一子图;
[0133] 计算第一子图的哈希值;
[0134] 在第一索引信息库中查找与第一子图的哈希值相同的第一宏块的位置。
[0135] 在本发明的一些实施例中,查找模块503具体用于:
[0136] 采用目标尺寸的滑动窗口在参考帧中进行滑动,滑动窗口的每次滑动得到参考帧的一个子图;
[0137] 分别计算参考帧的所有子图的哈希值;
[0138] 将参考帧的所有子图的索引信息进行存储得到第二索引信息库,参考帧的任意一个目标子图的索引信息包括目标子图的位置和哈希值;
[0139] 获取桌面图像中当前待处理的第二宏块;
[0140] 计算第二宏块的哈希值;
[0141] 在第二索引信息库中查找与第二宏块的哈希值相同的第二子图的位置。
[0142] 在本发明的一些实施例中,查找模块503可以具体用于:
[0143] 采用二维增量散列算法计算桌面图像的宏块的哈希值;
[0144] 和/或,
[0145] 采用二维增量散列算法计算参考帧的子图的哈希值。
[0146] 在本发明的一些实施例中,当桌面图像的任意一个目标宏块对应于第三子图和第四子图时,计算模块504可以用于:
[0147] 分别计算目标宏块对应于第三子图的第三运动矢量和对应于第四子图的第四运动矢量;
[0148] 分别预测第三运动矢量和第四运动矢量对应的编码码流的长度;
[0149] 选择最短编码码流对应的运动矢量作为目标宏块的运动矢量。
[0150] 上面从模块化功能实体的度对本发明实施例中的运动估计装置进行描述,下面从硬件处理的角度对本发明实施例中的服务器进行描述:
[0151] 请参阅图6,本发明实施例中服务器6一个实施例包括:
[0152] 处理器601和存储器602;
[0153] 存储器602用于存储计算机程序,处理器601用于执行存储器602中存储的计算机程序时,可以实现如下步骤:
[0154] 获取待传输的桌面图像;
[0155] 对桌面图像按照目标尺寸进行切割,得到多个宏块;
[0156] 从缓存的参考帧中查找与桌面图像的宏块相对应的子图,桌面图像的宏块和与其对应的子图具有相同的尺寸和哈希值;
[0157] 根据桌面图像的宏块和与其对应的子图的位置计算桌面图像的宏块的运动矢量。
[0158] 在本发明的一些实施例中,处理器601在执行存储器602中存储的计算机程序,实现从缓存的参考帧中查找与桌面图像的宏块相对应的子图的步骤时,可以具体实现如下步骤:
[0159] 分别计算桌面图像的所有宏块的哈希值;
[0160] 将桌面图像的所有宏块的索引信息进行存储得到第一索引信息库,桌面图像的任意一个目标宏块的索引信息包括目标宏块的位置和哈希值;
[0161] 采用目标尺寸的滑动窗口在参考帧中进行滑动,滑动窗口的每次滑动得到参考帧的一个子图;
[0162] 获取滑动窗口当前对应的第一子图;
[0163] 计算第一子图的哈希值;
[0164] 在第一索引信息库中查找与第一子图的哈希值相同的第一宏块的位置。
[0165] 在本发明的一些实施例中,处理器601在执行存储器602中存储的计算机程序,实现从缓存的参考帧中查找与桌面图像的宏块相对应的子图的步骤时,可以具体实现如下步骤:
[0166] 采用目标尺寸的滑动窗口在参考帧中进行滑动,滑动窗口的每次滑动得到参考帧的一个子图;
[0167] 分别计算参考帧的所有子图的哈希值;
[0168] 将参考帧的所有子图的索引信息进行存储得到第二索引信息库,参考帧的任意一个目标子图的索引信息包括目标子图的位置和哈希值;
[0169] 获取桌面图像中当前待处理的第二宏块;
[0170] 计算第二宏块的哈希值;
[0171] 在第二索引信息库中查找与第二宏块的哈希值相同的第二子图的位置。
[0172] 在本发明的一些实施例中,处理器601在执行存储器602中存储的计算机程序,实现从缓存的参考帧中查找与桌面图像的宏块相对应的子图的步骤时,可以具体实现如下步骤:
[0173] 采用二维增量散列算法计算桌面图像的宏块的哈希值;
[0174] 和/或,
[0175] 采用二维增量散列算法计算参考帧的子图的哈希值。
[0176] 在本发明的一些实施例中,处理器601在执行存储器602中存储的计算机程序,实现根据桌面图像的宏块和与其对应的子图的位置计算桌面图像的宏块的运动矢量的步骤时,可以具体实现如下步骤:
[0177] 当桌面图像的任意一个目标宏块对应于第三子图和第四子图时,分别计算目标宏块对应于第三子图的第三运动矢量和对应于第四子图的第四运动矢量;
[0178] 分别预测第三运动矢量和第四运动矢量对应的编码码流的长度;
[0179] 选择最短编码码流对应的运动矢量作为目标宏块的运动矢量。
[0180] 可以理解的是,上述说明的计算机装置中的处理器执行所述计算机程序时,也可以实现上述对应的各装置实施例中各单元的功能,此处不再赘述。示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述充电电流控制装置中的执行过程。例如,所述计算机程序可以被分割成上述充电电流控制装置中的各单元,各单元可以实现如上述相应充电电流控制装置说明的具体功能。
[0181] 所述服务器可包括但不仅限于处理器、存储器。本领域技术人员可以理解,处理器、存储器仅仅是计算机装置的示例,并不构成对计算机装置的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述计算机装置还可以包括输入输出设备、网络接入设备、总线等。
[0182] 所述处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
[0183] 所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0184] 本发明还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,可实现如下步骤:
[0185] 获取待传输的桌面图像;
[0186] 对桌面图像按照目标尺寸进行切割,得到多个宏块;
[0187] 从缓存的参考帧中查找与桌面图像的宏块相对应的子图,桌面图像的宏块和与其对应的子图具有相同的尺寸和哈希值;
[0188] 根据桌面图像的宏块和与其对应的子图的位置计算桌面图像的宏块的运动矢量。
[0189] 在本发明的一些实施例中,该计算机可读存储介质上存储的计算机程序被处理器执行,实现从缓存的参考帧中查找与桌面图像的宏块相对应的子图的步骤时,可以具体实现如下步骤:
[0190] 分别计算桌面图像的所有宏块的哈希值;
[0191] 将桌面图像的所有宏块的索引信息进行存储得到第一索引信息库,桌面图像的任意一个目标宏块的索引信息包括目标宏块的位置和哈希值;
[0192] 采用目标尺寸的滑动窗口在参考帧中进行滑动,滑动窗口的每次滑动得到参考帧的一个子图;
[0193] 获取滑动窗口当前对应的第一子图;
[0194] 计算第一子图的哈希值;
[0195] 在第一索引信息库中查找与第一子图的哈希值相同的第一宏块的位置。
[0196] 在本发明的一些实施例中,该计算机可读存储介质上存储的计算机程序被处理器执行,实现从缓存的参考帧中查找与桌面图像的宏块相对应的子图的步骤时,可以具体实现如下步骤:
[0197] 采用目标尺寸的滑动窗口在参考帧中进行滑动,滑动窗口的每次滑动得到参考帧的一个子图;
[0198] 分别计算参考帧的所有子图的哈希值;
[0199] 将参考帧的所有子图的索引信息进行存储得到第二索引信息库,参考帧的任意一个目标子图的索引信息包括目标子图的位置和哈希值;
[0200] 获取桌面图像中当前待处理的第二宏块;
[0201] 计算第二宏块的哈希值;
[0202] 在第二索引信息库中查找与第二宏块的哈希值相同的第二子图的位置。
[0203] 在本发明的一些实施例中,该计算机可读存储介质上存储的计算机程序被处理器执行,实现从缓存的参考帧中查找与桌面图像的宏块相对应的子图的步骤时,可以具体实现如下步骤:
[0204] 采用二维增量散列算法计算桌面图像的宏块的哈希值;
[0205] 和/或,
[0206] 采用二维增量散列算法计算参考帧的子图的哈希值。
[0207] 在本发明的一些实施例中,该计算机可读存储介质上存储的计算机程序被处理器执行,实现根据桌面图像的宏块和与其对应的子图的位置计算桌面图像的宏块的运动矢量的步骤时,可以具体实现如下步骤:
[0208] 当桌面图像的任意一个目标宏块对应于第三子图和第四子图时,分别计算目标宏块对应于第三子图的第三运动矢量和对应于第四子图的第四运动矢量;
[0209] 分别预测第三运动矢量和第四运动矢量对应的编码码流的长度;
[0210] 选择最短编码码流对应的运动矢量作为目标宏块的运动矢量。
[0211] 可以理解的是,所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在相应的一个计算机可读取存储介质中。基于这样的理解,本发明实现上述相应的实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0212] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0213] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0214] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0215] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0216] 以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈