屏幕图像的全局运动向量的处理方法和装置
技术领域
本发明涉及图像处理领域,具体而言,涉及一种屏幕图像的全局运动向量的处理方法和装置。
背景技术
屏幕图像是一类比较特殊复杂的视频图像,它的每一帧图像都是复合图像,既包含普通的图片信息也包含文字信息,并且相邻帧之间具有相关性,利用相邻帧块之间的相关性对图像进行压缩,可以得到较好的压缩性能。在处理当前帧时,与之相关性较强的帧记为参考帧,可以找到当前要处理的图像帧与参考帧中相同的内容,例如,可以是背景或不变部分,即相同内容的位置相同,这些部分对应的位移是(0,0)向量;还可以是由于用户移动窗口,或者阅读时上下滚动文档等动作造成移动的部分,即相同内容的位置不同,可以估算出这部分内容的位移向量,称为全局运动向量(MV)。全局运动向量的计算可以通过特征点提取和特征匹配得到。
但是,现有技术中全局运动向量的处理方法中的特征点检测和特征值匹配算法复杂,耗时较长,无法实现屏幕图像的实时压缩。
针对现有技术中屏幕图像的全局运动向量的处理方法耗时长,实时压缩性能差的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种屏幕图像的全局运动向量的处理方法和装置,以至少解决现有技术中屏幕图像的全局运动向量的处理方法耗时长,实时压缩性能差的技术问题。
根据本发明实施例的一个方面,提供了一种屏幕图像的全局运动向量的处理方法,包括:获取屏幕图像中的当前帧和参考帧;获取当前帧中的多个第一特征点,并获取参考帧中的多个第二特征点,其中,通过当前像素点与相邻像素点的差值获取特征点;将每个第一特征点的特征值与每个第二特征点的特征值进行匹配,其中,通过像素值的哈希值得到特征值;根据匹配结果,得到当前帧的全局运动向量。
进一步地,获取当前帧中的多个第一特征点,并获取参考帧中的多个第二特征点,包括:对当前帧进行分块,得到当前帧的多个第一宏块,对参考帧进行分块,得到参考帧的多个第二宏块;获取每个第一宏块中的所有像素点的兴趣值,并获取每个第二宏块中的所有像素点的兴趣值;将每个第一宏块中的最大兴趣值对应的像素点作为第一特征点,并将每个第二宏块中的最大兴趣值对应的像素点作为第二特征点。
进一步地,获取每个第一宏块中的所有像素点的兴趣值,并获取每个第二宏块中的所有像素点的兴趣值,包括:计算每个第一宏块中的第一像素点在多个预设方向上与相邻的第二像素点的差值,得到多个第一差值,并计算每个第二宏块中的第三像素点在多个预设方向上与相邻的第四像素点的差值,得到多个第二差值,其中,第一像素点为每个第一宏块中除边缘像素点之外的像素点,第三像素点为每个第二宏块中除边缘像素点之外的像素点;选取多个第一差值中的最小值作为第一像素点的兴趣值,并选取多个第二差值中的最小值作为第三像素点的兴趣值。
进一步地,将每个第一宏块中的最大兴趣值对应的像素点作为第一特征点,并将每个第二宏块中的最大兴趣值对应的像素点作为第二特征点,包括:获取每个第一宏块中的最大兴趣值,并获取每个第二宏块中的最大兴趣值;判断每个第一宏块中的最大兴趣值是否满足第一预设条件,并判断每个第二宏块中的最大兴趣值是否超过第一预设条件;如果每个第一宏块中的最大兴趣值满足第一预设条件,则将每个第一宏块中的最大兴趣值对应的像素点作为第一特征点,如果每个第二宏块中的最大兴趣值满足第一预设条件,则将获取每个第二宏块中的最大兴趣值对应的像素点作为第二特征点。
进一步地,第一预设条件用于表征最大兴趣值超过第一预设值。
进一步地,在将每个第一特征点的特征值与每个第二特征点的特征值进行匹配之前,上述方法还包括:获取在每个第一特征点的预设范围内的多个第五像素点的像素值,并获取在每个第二特征点的预设范围内的多个第六像素点的像素值;计算多个第五像素点的像素值的哈希值,得到第一特征点的特征值,并计算多个第六像素点的像素值的哈希值,得到第二特征点的特征值。
进一步地,根据匹配结果,得到当前帧的全局运动向量,包括:如果任意一个第一特征点的特征值与任意一个第二特征点的特征值匹配成功,则得到任意一个第一特征点与任意一个第二特征点的偏移向量;对每个偏移向量的出现次数进行统计,得到至少一个主偏移向量;判断至少一个主偏移向量是否满足第二预设条件;如果第一主偏移向量满足第二预设条件,则确定第一主偏移向量为全局运动向量。
进一步地,第二预设条件用于表征第一主偏移向量的出现次数超过第二预设值。
进一步地,如果任意一个第一特征点的特征值与多个第二特征点的特征值匹配成功,则从多个第一特征点中删除任意一个第一特征点。
进一步地,在根据匹配结果,得到当前帧的全局运动向量之后,上述方法还包括:分别对当前帧和参考帧进行分块;根据全局运动向量,将当前帧的每个宏块和参考帧的每个宏块进行比较,得到当前帧的每个宏块的类型信息;根据当前帧的每个宏块的类型信息,对当前帧的每个宏块进行相应编码,得到多个编码码流;根据全局运动向量,当前帧的每个宏块的类型信息和多个编码码流,生成复合码流;将复合码流发送给接收设备。
进一步地,根据全局运动向量,将当前帧的每个宏块和参考帧的每个宏块进行比较,得到当前帧的每个宏块的类型信息,包括:如果当前帧的第三宏块与参考帧中相同位置的宏块相同,则确定第三宏块的类型信息为零运动向量块;如果当前帧的第四宏块按照全局运动向量进行移动后,与参考帧中相应位置的宏块相同,则确定第四宏块的类型信息为全局运动向量块;确定当前帧的第五宏块的类型信息为帧内块,其中,第五宏块为当前帧的多个宏块中除第三宏块和第四宏块之外的宏块。
进一步地,根据当前帧的每个宏块的类型信息,对当前帧的每个宏块进行相应编码,得到多个编码码流,包括:对当前帧中类型信息为帧内块的宏块进行帧内编码,得到多个编码码流。
根据本发明实施例的另一方面,还提供了一种屏幕图像的全局运动向量的处理装置,包括:第一获取单元,用于获取屏幕图像中的当前帧和参考帧;第二获取单元,用于获取当前帧中的多个第一特征点,并获取参考帧中的多个第二特征点,其中,通过当前像素点与相邻像素点的差值获取特征点;匹配单元,用于将每个第一特征点的特征值与每个第二特征点的特征值进行匹配,其中,通过像素值的哈希值得到特征值;处理单元,用于根据匹配结果,得到当前帧的全局运动向量。
根据本发明实施例的另一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述实施例中的屏幕图像的全局运动向量的处理方法。
根据本发明实施例的另一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述实施例中的屏幕图像的全局运动向量的处理方法。
在本发明实施例中,获取屏幕图像中的当前帧和参考帧,获取当前帧中的多个第一特征点,并获取参考帧中的多个第二特征点,将每个第一特征点的特征值与每个第二特征点的特征值进行匹配,根据匹配结果,得到当前帧的全局运动向量,从而实现全局运动向量的计算过程。容易注意到的是,由于可以通过当前像素点与相邻像素点的差值获取特征点,并通过像素值的哈希值得到特征值,与现有技术相比,特征点的获取与特征值的匹配均较为简单,全局运动向量的处理过程耗时短,从而解决了现有技术中屏幕图像的全局运动向量的处理方法耗时长,实时压缩性能差技术问题,可以达到降低算法复杂度,缩短处理时长,进一步达到提高压缩性能的技术效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种屏幕图像的全局运动向量的处理方法的流程图;
图2是根据本发明实施例的一种可选的当前像素点与多个预设方向上相邻像素点的关系图;
图3是根据本发明实施例的一种可选的屏幕图像的全局运动向量的处理方法的流程图;
图4是根据本发明实施例的一种可选的屏幕图像的编解码系统的示意图;以及
图5是根据本发明实施例的一种屏幕图像的全局运动向量的处理装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种屏幕图像的全局运动向量的处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种屏幕图像的全局运动向量的处理方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,获取屏幕图像中的当前帧和参考帧。
具体地,上述的屏幕图像可以是对屏幕进行录屏,得到的多帧图像;上述的当前帧可以是多帧图像中当前需要处理的图像帧;上述的参考帧可以是多帧图像中与当前帧相邻的图像帧。
步骤S104,获取当前帧中的多个第一特征点,并获取参考帧中的多个第二特征点,其中,通过当前像素点与相邻像素点的差值获取特征点。
具体地,上述的第一特征点可以是当前帧图像中的像素点;上述的第二特征点可以是当前帧图像中的像素点。
在一种可选的方案中,可以对当前帧和参考帧进行分块,并计算每个分块中多个像素点与预设方向上相邻点的差值,得到每个像素点的兴趣值,并从多个像素点的兴趣值中选取出满足压缩条件的像素点作为特征点。
步骤S106,将每个第一特征点的特征值与每个第二特征点的特征值进行匹配,其中,通过像素值的哈希值得到特征值。
具体地,上述的特征值可以是特征点周围预设范围内所有像素值的哈希值(HASH)。
在一种可选的方案中,在确定出每个分块的特征点之后,可以计算每个特征点周围一定范围内的所有像素值的HASH值,得到每个特征点的特征值,并将当前帧中每个特征点的特征值与参考帧中每个特征点的特征值进行匹配,得到匹配点。
步骤S108,根据匹配结果,得到当前帧的全局运动向量。
在一种可选的方案中,如果第一特征点的特征值与第二特征点的特征值匹配成功,则可以记录第一特征点到第二特征点的偏移向量,得到当前需要处理的图像帧的全局运动向量。
根据本发明上述实施例,获取屏幕图像中的当前帧和参考帧,获取当前帧中的多个第一特征点,并获取参考帧中的多个第二特征点,将每个第一特征点的特征值与每个第二特征点的特征值进行匹配,根据匹配结果,得到当前帧的全局运动向量,从而实现全局运动向量的计算过程。容易注意到的是,由于可以通过当前像素点与相邻像素点的差值获取特征点,并通过像素值的哈希值得到特征值,与现有技术相比,特征点的获取与特征值的匹配均较为简单,全局运动向量的处理过程耗时短,从而解决了现有技术中屏幕图像的全局运动向量的处理方法耗时长,实时压缩性能差技术问题。因此,通过本发明上述实施例提供的方案,可以达到降低算法复杂度,缩短处理时长,进一步达到提高压缩性能的技术效果。
可选地,在本发明上述实施例中,步骤S104,获取当前帧中的多个第一特征点,并获取参考帧中的多个第二特征点,包括:
步骤S1042,对当前帧进行分块,得到当前帧的多个第一宏块,对参考帧进行分块,得到参考帧的多个第二宏块。
在一种可选的方案中,可以获取屏幕图像中当前需要处理的图像帧,该图像帧的大小为W*H,将当前帧拆分成m*n的宏块,得到多个第一宏块。可以对参考帧做同样的处理,得到多个第二宏块。
步骤S1044,获取每个第一宏块中的所有像素点的兴趣值,并获取每个第二宏块中的所有像素点的兴趣值。
具体地,上述的所有像素点可以是每个宏块中除边缘像素点的所有像素点;上述的兴趣值可以是所有像素点与领域点的差值。
在一种可选的方案中,可以计算每个第一宏块中除边缘像素点的所有像素点在多个方向上与领域点的差值,并将多个差值中的最小值作为每个第一宏块中的所有像素点的兴趣值。可以对参考帧做同样的处理,得到每个第二宏块中的所有像素点的兴趣值。
步骤S1046,将每个第一宏块中的最大兴趣值对应的像素点作为第一特征点,并将每个第二宏块中的最大兴趣值对应的像素点作为第二特征点。
在一种可选的方案中,在计算得到每个第一宏块中除边缘点之外的其他像素点的兴趣值,并从中取出最大兴趣值对应的像素点作为第一特征点,得到每个第一宏块中的第一特征点。可以对参考帧做同样的处理,得到每个第二宏块中的第二特征点。
可选地,在本发明上述实施例中,步骤S1044,获取每个第一宏块中的所有像素点的兴趣值,并获取每个第二宏块中的所有像素点的兴趣值,包括:
步骤S10442,计算每个第一宏块中的第一像素点在多个预设方向上与相邻的第二像素点的差值,得到多个第一差值,并计算每个第二宏块中的第三像素点在多个预设方向上与相邻的第四像素点的差值,得到多个第二差值,其中,第一像素点为每个第一宏块中除边缘像素点之外的像素点,第三像素点为每个第二宏块中除边缘像素点之外的像素点。
具体地,上述的多个预设方向可以包括:0°、45°、90°和135°四个方向。
步骤S10444,选取多个第一差值中的最小值作为第一像素点的兴趣值,并选取多个第二差值中的最小值作为第三像素点的兴趣值。
在一种可选的方案中,在当前帧和参考帧中,对于如图2所示的当前像素点和相邻像素点,均可以通过如下公式计算当前像素点I(i,j)在0°、45°、90°和135°四个方向上与相邻点的差值:
V0=abs(I(i,j)-I(i,j-1))+abs(I(i,j)-I(i,j+1)),
V45=abs(I(i,j)-I(i+1,j-1))+abs(I(i,j)-I(i-1,j+1)),
V90=abs(I(i,j)-I(i-1,j))+abs(I(i,j)-I(i+1,j)),
V135=abs(I(i,j)-I(i-1,j-1))+abs(I(i,j)-I(i+1,j+1)),
D(i,j)=min{V0,V90,V45,V135},
并选取四个差值中的最小值作为当前点的兴趣值,即得到第一像素点的兴趣值和第三像素点的兴趣值。
可选地,在本发明上述实施例中,步骤S1046,将每个第一宏块中的最大兴趣值对应的像素点作为第一特征点,并将每个第二宏块中的最大兴趣值对应的像素点作为第二特征点,包括:
步骤S10462,获取每个第一宏块中的最大兴趣值,并获取每个第二宏块中的最大兴趣值。
步骤S10464,判断每个第一宏块中的最大兴趣值是否满足第一预设条件,并判断每个第二宏块中的最大兴趣值是否超过第一预设条件。
可选地,在本发明上述实施例中,第一预设条件用于表征最大兴趣值超过第一预设值。
具体地,由于每个第一宏块中的最大兴趣值或每个第二宏块中的最大兴趣值与其他兴趣值的差距较小,为了提高特征点获取的准确度,可以判断最大兴趣值是否超过第一预设值。
步骤S10466,如果每个第一宏块中的最大兴趣值满足第一预设条件,则将每个第一宏块中的最大兴趣值对应的像素点作为第一特征点,如果每个第二宏块中的最大兴趣值满足第一预设条件,则将获取每个第二宏块中的最大兴趣值对应的像素点作为第二特征点。
在一种可选的方案中,可以通过如下公式计算每个第一宏块或每个第二宏块中的最大兴趣值,如果判断出该最大兴趣值超出阈值,则此最大兴趣值对应的像素点可以作为特征点O(i,j),即得到每个第一宏块的第一特征点和每个第二宏块的第二特征点:O(i,j)=max(i,j)属于m×n的块{D(i,j)}。
可选地,在本发明上述实施例中,在步骤S106,将每个第一特征点的特征值与每个第二特征点的特征值进行匹配之前,该方法还包括:
步骤S110,获取在每个第一特征点的预设范围内的多个第五像素点的像素值,并获取在每个第二特征点的预设范围内的多个第六像素点的像素值。
具体地,上述的预设范围内的多个像素点可以是以每个特征点为中心的p*q矩形区域中的p*q个像素点。
步骤S112,计算多个第五像素点的像素值的哈希值,得到第一特征点的特征值,并计算多个第六像素点的像素值的哈希值,得到第二特征点的特征值。
在一种可选的方案中,对于当前帧中的每个特征点,计算以此点为中心的p*q矩形区域中的p*q个像素值的HASH值作为当前特征点的特征值,从而得到第一特征点的特征值和第二特征点的特征值。
可选地,在本发明上述实施例中,步骤S108,根据匹配结果,得到当前帧的全局运动向量,包括:
步骤S1082,如果任意一个第一特征点的特征值与任意一个第二特征点的特征值匹配成功,则得到任意一个第一特征点与任意一个第二特征点的偏移向量。
步骤S1084,对每个偏移向量的出现次数进行统计,得到至少一个主偏移向量。
步骤S1086,判断至少一个主偏移向量是否满足第二预设条件。
可选地,在本发明上述实施例中,第二预设条件用于表征第一主偏移向量的出现次数超过第二预设值。
具体地,由于主偏移向量之间差距较小,为了提高全局运动向量的处理的准确度,可以判断主偏移向量的出现次数是否超过第二预设值。
步骤S1088,如果第一主偏移向量满足第二预设条件,则确定第一主偏移向量为全局运动向量。
在一种可选的方案中,当前帧中的每个特征点与参考帧中的特征点的特征值进行匹配,匹配成功后,记录特征点的偏移,最后对每个偏移向量出现的次数进行统计,得到主偏移向量,如果主偏移向量满足一定的条件,就作为全局运动向量。
可选地,在本发明上述实施例中,如果任意一个第一特征点的特征值与多个第二特征点的特征值匹配成功,则从多个第一特征点中删除任意一个第一特征点。
在一种可选的方案中,在当前帧中每个特征点进行匹配的过程中。如果在参考帧中出现多个匹配点,认为此时产生了匹配冲突,则将当前点从特征点集合中删除。
需要说明的是,可以对当前帧和参考帧进行相同的处理,得到当前帧中的所有特征点和参考帧中的所有特征点,以及每个特征点的特征值。
可选地,在本发明上述实施例中,在步骤S108,根据匹配结果,得到当前帧的全局运动向量之后,该方法还包括:
步骤S114,分别对当前帧和参考帧进行分块。
步骤S116,根据全局运动向量,将当前帧的每个宏块和参考帧的每个宏块进行比较,得到当前帧的每个宏块的类型信息。
具体地,上述的类型信息可以包括如下之一:零运动向量块、全局运动向量块和帧内块,其中,帧内块可以包括:预测块、文字块和图片块。
步骤S118,根据当前帧的每个宏块的类型信息,对当前帧的每个宏块进行相应编码,得到多个编码码流。
步骤S120,根据全局运动向量,当前帧的每个宏块的类型信息和多个编码码流,生成复合码流。
步骤S122,将复合码流发送给接收设备。
具体地,上述的接收设备可以是控制屏幕显示屏幕图像的设备,例如屏幕的图像工作站,也可以是显示屏幕图像的设备,例如投影仪。
在一种可选的方案中,在获取到全局运动向量之后,可以将当前帧分成m*n的宏块,根据全局运动向量将当前帧中的每个宏块与参考帧中的每个宏块进行比较,将当前帧中的每个宏块进行分类,得到每个宏块的类型信息,对不同类型的宏块采用不同的方式进行编码,得到当前帧的压缩码流,即上述的多个编码码流,并根据全局运动向量,当前帧的每个宏块的类型信息和当前帧的压缩码流,得到复合码流,并将复合码流发送给接收设备,接收设备可以根据当前帧中每个宏块的类型信息和全局运动向量,对当前帧的压缩码流进行解码,并将解码后的多个宏块进行合并,得到当前帧图像。
可选地,在本发明上述实施例中,步骤S116,根据全局运动向量,将当前帧的每个宏块和参考帧的每个宏块进行比较,得到当前帧的每个宏块的类型信息,包括:
步骤S1162,如果当前帧的第三宏块与参考帧中相同位置的宏块相同,则确定第三宏块的类型信息为零运动向量块。
步骤S1164,如果当前帧的第四宏块按照全局运动向量进行移动后,与参考帧中相应位置的宏块相同,则确定第四宏块的类型信息为全局运动向量块。
步骤S1166,确定当前帧的第五宏块的类型信息为帧内块,其中,第五宏块为当前帧的多个宏块中除第三宏块和第四宏块之外的宏块。
在一种可选的方案中,可以将当前帧的每个宏块和参考帧的每个宏块进行比较,如果相同位置的宏块完全相同,则确定当前宏块的类型信息为零运动向量块;如果当前宏块经过全局运动向量运动之后和参考帧相应位置的宏块完全相同,则确定当前宏块的类型信息为全局运动向量块,并确定其它的块为帧内块。
可选地,在本发明上述实施例中,步骤S118,根据当前帧的每个宏块的类型信息,对当前帧的每个宏块进行相应编码,得到多个编码码流,包括:
步骤S1182,对当前帧中类型信息为帧内块的宏块进行帧内编码,得到多个编码码流。
在一种可选的方案中,在当前帧中,对于类型信息为零运动向量的宏块以及类型信息为全局运动向量块的宏块,无需进行压缩编码;而对于类型信息为帧内块的宏块,可以采用帧内编码方式进行编码压缩,得到帧内编码码流,即得到多个编码码流。
图3是根据本发明实施例的一种可选的屏幕图像的全局运动向量的处理方法的流程图,图4是根据本发明实施例的一种可选的屏幕图像的编解码系统的示意图,下面结合图3和图4对本发明一种优选的实施例进行详细说明。
如图3所示,该方法可以包括如下步骤:
步骤S31,对参考帧进行分块,得到参考帧中特征点。
可选地,可以获取屏幕图像中的参考帧W×H,并将其分成16×16的块,计算每个块中除去边缘点的所有其它点在0,45,90,135四个方向上与邻域点的差值,并取四个值中的最小值作为当前点的兴趣值,每个块中取所有点的兴趣值中的最大值,如果此最大兴趣值超出阈值,则此兴趣值对应的点为参考帧中的特征点。
步骤S32,计算各个特征点的特征值。
可选地,对于参考帧中的每个特征点,计算以此点为中心的5×5矩形区域中的25个像素值的Hash值作为当前特征点的特征值。
步骤S33,对当前帧进行分块,得到当前帧中特征点。
可选地,可以获取屏幕图像中的参考帧W×H,并将其分成16×16的块,计算每个块中除去边缘点的所有其它点在0,45,90,135四个方向上与邻域点的差值,并取四个值中的最小值作为当前点的兴趣值,每个块中取所有点的兴趣值中的最大值,如果此最大兴趣值超出阈值,则此兴趣值对应的点为当前帧中的特征点。
步骤S34,计算各个特征点的特征值。
可选地,对于当前帧中的每个特征点,计算以此点为中心的5×5矩形区域中的25个像素值的Hash值作为当前特征点的特征值。
步骤S35,特征值匹配。
步骤S36,确定全局运动向量。
可选地,当前帧中的每个特征点与参考帧中的特征点的特征值进行匹配,匹配成功后,记录特征点的偏移,最后对每个偏移向量出现的次数进行统计,得到主偏移向量,如果主偏移向量满足一定的条件,就作为全局运动向量。在当前帧中每个特征点进行匹配的过程中,如果在参考帧中出现多个匹配点,认为此时产生了匹配冲突,则将当前点从特征点集合中删除。
步骤S37,将当前帧分成m*n的块。
步骤S38,对m*n块进行分类。
可选地,在计算得到全局运动向量后,将前帧分成16×16的块。当前帧的每个块和参考帧中的块进行比较,如果相同位置的块完全相同,那么当前块记为0运动向量块;如果当前块经过全局运动后和参考帧相应位置的块完全相同,那么当前块为全局运动向量块。其它的块为帧内块
步骤S39,对m*n块进行编码压缩,得到复合码流。
可选地,可以采用帧内编码方式对帧内块进行编码压缩,得到帧内编码码流,并将块类型信息、全局运动矢量值和帧内编码码流组合为复合码流,传输到接收设备,接收设备对每个块的码流进行解码并合并得到屏幕图像中的当前帧。
如图4所示,屏幕图像的编解码系统可以包括发送设备和接收设备,其中,发送设备可以是便携设备,例如,笔记本电脑、平板电脑等,接收设备可以是显示设备,例如,拼接屏,投影仪等。发送设备可以包括:当前帧和参考帧特征点选取模块,全局运动向量估计模块,不同类型块编码模块,码流组织模块和发送模块,接收设备可以包括:接收模块,码流拆分模块,不同类型块解码模块和帧显示模块。其中,当前帧和参考帧特征点选取模块用于执行图3中的步骤S31和步骤S33,全局运动矢量估计模块用于执行图3中的步骤S32、步骤S34至步骤S36,不同类型块编码模块用于执行图3中的步骤S38和步骤S39中的对m*n块进行编码压缩步骤,码流组织模块用于执行图3中的步骤S39中的得到复合码流步骤,发送模块用于将复合码流发送给接收设备的接收模块,码流拆分模块用于执行与码流组织模块相对应的解码步骤,不同类型块解码模块用于执行与不同类型块编码模块相对应的解码步骤,帧显示模块用于将不同类型块解码模块得到的每个块进行合并,并将合并后的图像帧进行显示。
通过上述方案,提供了一种屏幕图像的全局运动向量的处理方法,包括图像特征点的提取方法和特征值的匹配方法,达到快递、准确地确定全局运动向量,从而进一步达到更高的压缩性能,并且可以适用于所有屏幕图像压缩的场合,无需特殊设备支持,适用于多种类型移动终端,包括手机、PC等设备,具有传输显示效果好、用户体验好的效果。
实施例2
根据本发明实施例,提供了一种屏幕图像的全局运动向量的处理装置的实施例。
图5是根据本发明实施例的一种屏幕图像的全局运动向量的处理装置的示意图,如图5所示,该装置包括:
第一获取单元51,用于获取屏幕图像中的当前帧和参考帧。
具体地,上述的屏幕图像可以是对屏幕进行录屏,得到的多帧图像;上述的当前帧可以是多帧图像中当前需要处理的图像帧;上述的参考帧可以是多帧图像中与当前帧相邻的图像帧。
第二获取单元53,用于获取当前帧中的多个第一特征点,并获取参考帧中的多个第二特征点,其中,通过当前像素点与相邻像素点的差值获取特征点。
具体地,上述的第一特征点可以是当前帧图像中的像素点;上述的第二特征点可以是当前帧图像中的像素点。
在一种可选的方案中,可以对当前帧和参考帧进行分块,并计算每个分块中多个像素点与预设方向上相邻点的差值,得到每个像素点的兴趣值,并从多个像素点的兴趣值中选取出满足压缩条件的像素点作为特征点。
匹配单元55,用于将每个第一特征点的特征值与每个第二特征点的特征值进行匹配,其中,通过像素值的哈希值得到特征值。
具体地,上述的特征值可以是特征点周围预设范围内所有像素值的哈希值。
在一种可选的方案中,在确定出每个分块的特征点之后,可以计算每个特征点周围一定范围内的所有像素值的HASH值,得到每个特征点的特征值,并将当前帧中每个特征点的特征值与参考帧中每个特征点的特征值进行匹配,得到匹配点。
处理单元57,用于根据匹配结果,得到当前帧的全局运动向量。
在一种可选的方案中,如果第一特征点的特征值与第二特征点的特征值匹配成功,则可以记录第一特征点到第二特征点的偏移向量,得到当前需要处理的图像帧的全局运动向量。
根据本发明上述实施例,获取屏幕图像中的当前帧和参考帧,获取当前帧中的多个第一特征点,并获取参考帧中的多个第二特征点,将每个第一特征点的特征值与每个第二特征点的特征值进行匹配,根据匹配结果,得到当前帧的全局运动向量,从而实现全局运动向量的计算过程。容易注意到的是,由于可以通过当前像素点与相邻像素点的差值获取特征点,并通过像素值的哈希值得到特征值,与现有技术相比,特征点的获取与特征值的匹配均较为简单,全局运动向量的处理过程耗时短,从而解决了现有技术中屏幕图像的全局运动向量的处理方法耗时长,实时压缩性能差技术问题。因此,通过本发明上述实施例提供的方案,可以达到降低算法复杂度,缩短处理时长,进一步达到提高压缩性能的技术效果。
可选地,在本发明上述实施例中,第二获取单元53包括:分块模块,用于对当前帧进行分块,得到当前帧的多个第一宏块,对参考帧进行分块,得到参考帧的多个第二宏块;获取模块,用于获取每个第一宏块中的所有像素点的兴趣值,并获取每个第二宏块中的所有像素点的兴趣值;第一处理模块,用于将每个第一宏块中的最大兴趣值对应的像素点作为第一特征点,并将每个第二宏块中的最大兴趣值对应的像素点作为第二特征点。
可选地,在本发明上述实施例中,获取模块包括:计算子模块,用于计算每个第一宏块中的第一像素点在多个预设方向上与相邻的第二像素点的差值,得到多个第一差值,并计算每个第二宏块中的第三像素点在多个预设方向上与相邻的第四像素点的差值,得到多个第二差值,其中,第一像素点为每个第一宏块中除边缘像素点之外的像素点,第三像素点为每个第二宏块中除边缘像素点之外的像素点;选取子模块,用于选取多个第一差值中的最小值作为第一像素点的兴趣值,并选取多个第二差值中的最小值作为第三像素点的兴趣值。
可选地,在本发明上述实施例中,第一处理模块包括:获取子模块,用于获取每个第一宏块中的最大兴趣值,并获取每个第二宏块中的最大兴趣值;判断子模块,用于判断每个第一宏块中的最大兴趣值是否满足第一预设条件,并判断每个第二宏块中的最大兴趣值是否超过第一预设条件;处理子模块,用于股如果每个第一宏块中的最大兴趣值满足第一预设条件,则将每个第一宏块中的最大兴趣值对应的像素点作为第一特征点,如果每个第二宏块中的最大兴趣值满足第一预设条件,则将获取每个第二宏块中的最大兴趣值对应的像素点作为第二特征点。
可选地,在本发明上述实施例中,第一预设条件用于表征最大兴趣值超过第一预设值。
可选地,在本发明上述实施例中,该装置还包括:第三获取单元,用于获取在每个第一特征点的预设范围内的多个第五像素点的像素值,并获取在每个第二特征点的预设范围内的多个第六像素点的像素值;计算单元,用于计算多个第五像素点的像素值的哈希值,得到第一特征点的特征值,并计算多个第六像素点的像素值的哈希值,得到第二特征点的特征值。
可选地,在本发明上述实施例中,匹配单元55包括:第二处理模块,用于如果任意一个第一特征点的特征值与任意一个第二特征点的特征值匹配成功,则得到任意一个第一特征点与任意一个第二特征点的偏移向量;统计模块,用于对每个偏移向量的出现次数进行统计,得到至少一个主偏移向量;判断模块,用于判断至少一个主偏移向量是否满足第二预设条件;确定模块,用于如果第一主偏移向量满足第二预设条件,则确定第一主偏移向量为全局运动向量。
可选地,在本发明上述实施例中,第二预设条件用于表征第一主偏移向量的出现次数超过第二预设值。
可选地,在本发明上述实施例中,如果任意一个第一特征点的特征值与多个第二特征点的特征值匹配成功,则所述装置还包括:删除模块,用于从多个第一特征点中删除任意一个第一特征点。
可选地,在本发明上述实施例中,该装置还包括:分块单元,用于分别对当前帧和参考帧进行分块;比较单元,用于根据全局运动向量,将当前帧的每个宏块和参考帧的每个宏块进行比较,得到当前帧的每个宏块的类型信息;编码单元,用于根据当前帧的每个宏块的类型信息,对当前帧的每个宏块进行相应编码,得到多个编码码流;生成单元,用于根据全局运动向量,当前帧的每个宏块的类型信息和多个编码码流,生成复合码流;发送单元,用于将复合码流发送给接收设备。
可选地,在本发明上述实施例中,比较单元包括:第一确定子模块,用于如果当前帧的第三宏块与参考帧中相同位置的宏块相同,则确定第三宏块的类型信息为零运动向量块;第二确定子模块,用于如果当前帧的第四宏块按照全局运动向量进行移动后,与参考帧中相应位置的宏块相同,则确定第四宏块的类型信息为全局运动向量块;第三确定子模块,用于确定当前帧的第五宏块的类型信息为帧内块,其中,第五宏块为当前帧的多个宏块中除第三宏块和第四宏块之外的宏块。
可选地,在本发明上述实施例中,编码单元包括:编码模块,用于对当前帧中类型信息为帧内块的宏块进行帧内编码,得到多个编码码流。
需要说明的是,本实施例中的优选实施方式可以参见实施例1中的相关描述,此处不再赘述。
实施例3
根据本发明实施例,提供了一种存储介质的实施例,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述实施例1中的屏幕图像的全局运动向量的处理方法。
实施例4
根据本发明实施例,提供了一种处理器的实施例,处理器用于运行程序,其中,程序运行时执行上述实施例1中的屏幕图像的全局运动向量的处理方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。