CN114302137B - 用于视频的时域滤波方法、装置、存储介质及电子设备 - Google Patents

用于视频的时域滤波方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN114302137B
CN114302137B CN202111588666.XA CN202111588666A CN114302137B CN 114302137 B CN114302137 B CN 114302137B CN 202111588666 A CN202111588666 A CN 202111588666A CN 114302137 B CN114302137 B CN 114302137B
Authority
CN
China
Prior art keywords
video frame
motion compensation
layer
layer video
current
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202111588666.XA
Other languages
English (en)
Other versions
CN114302137A (zh
Inventor
谷嘉文
闻兴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN202111588666.XA priority Critical patent/CN114302137B/zh
Publication of CN114302137A publication Critical patent/CN114302137A/zh
Application granted granted Critical
Publication of CN114302137B publication Critical patent/CN114302137B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本公开提供了一种用于视频的时域滤波方法、装置、存储介质以及电子设备。该方法包括:针对当前视频帧构建多层视频帧;基于当前视频帧的编码单元的位置和尺寸以及各层视频帧被分割的块的尺寸,以编码单元作为划分粒度分别确定在各层视频帧中进行运动补偿的运动补偿区域;获取各层视频帧的运动补偿区域的补偿起点,并且基于所述补偿起点对各层视频帧的运动补偿区域中的块执行运动补偿以获得各层视频帧的运动补偿区域的运动矢量;基于所述运动矢量对当前视频帧的所述编码单元执行时域滤波。根据本公开的视频时域滤波方法能够有效解决了整帧MCTF处理带来的多线程阻塞问题,大幅提升编码效率。

Description

用于视频的时域滤波方法、装置、存储介质及电子设备
技术领域
本公开涉及视频编解码领域,尤其涉及一种用于视频的时域滤波的方法、装置、电子设备及计算机可读存储介质。
背景技术
视频的图像数据由视频编码器基于特定数据压缩标准(例如,运动图像专家组(MPEG)标准、高效率视频编码(HEVC)、多功能视频编码(VVC))被编码,然后被存储在记录介质中或者以比特流的形式通过通信信道被发送。
根据能够再现和存储高分辨率或高质量图像内容的硬件的开发和发布,对用于有效地对高分辨率或高质量图像内容进行编码或解码的编解码器的需求日益增加。近来,已经实现了用于有效地压缩高分辨率或高质量图像内容的方法。
在相关技术的视频编码装置中,基于运动补偿的时域滤波方法(MotionCompensated Temporal Filtering,MCTF)利用视频的时域相关性,利用块间参考关系对参考帧进行时域滤波,来减少视频块参考过程中产生的时域冗余信息,从而提升总体编码效率。
然而,该技术方案主要针对固定的帧结构按照固定的帧间隔(模8余0的帧)滤波。而在实际编码过程中,帧结构会根据场景变化动态调整以获取更高的压缩效率。其次,由于滤波中需要使用当前帧的QP参数,而大多编码器的QP决策由码率控制模型获得。最后,由于其计算复杂,并且必须在编码前完成滤波处理,因此在实际编码的过程中会阻塞实际编码的运行,将大幅增加编码时间。
发明内容
本公开提供一种用于视频的时域滤波方法、装置、存储介质及电子设备,以至少解决相关技术中的时域滤波增加编码时间的问题,也可不解决任何上述问题。
根据本公开的第一方面,提供了一种用于视频的时域滤波的方法,包括:针对当前视频帧构建多层视频帧;基于当前视频帧的编码单元的位置和尺寸以及各层视频帧被分割的块的尺寸,以编码单元作为划分粒度分别确定在各层视频帧中进行运动补偿的运动补偿区域;获取各层视频帧的运动补偿区域的补偿起点,并且基于所述补偿起点对各层视频帧的运动补偿区域中的块执行运动补偿以获得各层视频帧的运动补偿区域的运动矢量;基于所述运动矢量对当前视频帧的所述编码单元执行时域滤波。
根据本公开的第一方面,获取各层视频帧的运动补偿区域的补偿起点,并且基于所述补偿起点对各层视频帧的运动补偿区域中的块执行运动补偿以获得各层视频帧的运动补偿区域的运动矢量包括:如果各层视频帧中的当前层视频帧不是尾层视频帧,则基于当前层视频帧的运动补偿区域的运动矢量确定下一层视频帧的运动补偿区域的补偿起点;如果各层视频帧中的当前层视频帧是尾层视频帧,则基于当前层视频帧的运动补偿区域的运动矢量对当前视频帧的所述编码单元执行时域滤波。
根据本公开的第一方面,基于当前视频帧的编码单元的位置和尺寸以及各层视频帧被分割的块的尺寸,以编码单元作为划分粒度分别确定在各层视频帧中进行运动补偿的运动补偿区域包括:基于当前视频帧的所述编码单元的位置和尺寸,确定覆盖当前视频帧的所述编码单元的范围的区域,作为各层视频帧中的尾层视频帧的运动补偿区域;并且将各层视频帧中的尾层视频帧以上的各层视频帧中的运动补偿区域确定为覆盖下一层视频帧的运动补偿区域在该层视频帧中对应区域的预设范围的区域。
根据本公开的第一方面,基于当前视频帧的编码单元的位置和尺寸以及各层视频帧被分割的块的尺寸来分别确定在各层视频帧中进行运动补偿的运动补偿区域还包括:确定每一层视频帧的运动补偿区域内的块的位置是否超过该层视频帧的块的最大行数和最大列数;响应于确定该层视频帧的运动补偿区域内的块的位置超过该层视频帧的块的最大行数和最大列数,将所述运动补偿区域的位置确定为以所述最大行数和最大列数截断。
根据本公开的第一方面,在当前视频帧为预定类型并且编码器开启预定模式时,所述编码单元所对应各层视频帧的运动补偿区域被确定为比其他帧类型的相应运动补偿区域更大的预定区域。
根据本公开的第一方面,如果所述编码单元的行坐标或列坐标为预定坐标,则除了第一层视频帧以外的其他各层视频帧的运动补偿区域被确定为比其他帧类型下的相应运动补偿区域多一个行和一个列;如果所述编码单元的行坐标或列坐标均不为预定坐标,则各层视频帧的运动补偿区域被确定为比其他帧类型下的相应运动补偿区域多一个行和一个列。
根据本公开的第一方面,对于每一层视频帧的运动补偿范围内的所有块的运动补偿被并行执行。
根据本公开的第一方面,所述多层视频帧包括四层视频帧;其中,第一层视频帧、第二层视频帧和第三层视频帧被分割成第一尺寸的块以进行运动补偿,第四层视频帧被分割成第二尺寸的块以进行运动补偿,其中,第一尺寸为第二尺寸的2倍。
根据本公开的第二方面,提供了一种用于视频的时域滤波装置,包括:降采样单元,被配置为针对当前视频帧构建多层视频帧;运动补偿区域确定单元,被配置为基于当前视频帧的编码单元的位置和尺寸以及各层视频帧被分割的块的尺寸,以编码单元作为划分粒度分别确定在各层视频帧中进行运动补偿的运动补偿区域;运动补偿单元,被配置为获取各层视频帧的运动补偿区域的补偿起点,并且基于所述补偿起点对各层视频帧的运动补偿区域中的块执行运动补偿以获得各层视频帧的运动补偿区域的运动矢量;滤波单元,被配置为所述运动矢量对当前视频帧的所述编码单元执行时域滤波。
根据本公开的第二方面,运动补偿单元被配置为:如果各层视频帧中的当前层视频帧不是尾层视频帧,则基于当前层视频帧的运动补偿区域的运动矢量确定下一层视频帧的运动补偿区域的补偿起点;如果各层视频帧中的当前层视频帧是尾层视频帧,则基于当前层视频帧的运动补偿区域的运动矢量对当前视频帧的所述编码单元执行时域滤波。
根据本公开的第二方面,运动补偿区域确定单元被配置为:基于当前视频帧的所述编码单元的位置和尺寸,确定覆盖当前视频帧的所述编码单元的范围的区域,作为各层视频帧中的尾层视频帧的运动补偿区域;并且将各层视频帧中的尾层视频帧以上的各层视频帧中的运动补偿区域确定为覆盖下一层视频帧的运动补偿区域在该层视频帧中对应区域的预设范围的区域。
根据本公开的第二方面,运动补偿区域确定单元还被配置为:确定每一层视频帧的运动补偿区域内的块的位置是否超过该层视频帧的块的最大行数和最大列数;响应于确定该层视频帧的运动补偿区域内的块的位置超过该层视频帧的块的最大行数和最大列数,将所述运动补偿区域的位置确定为以所述最大行数和最大列数截断。
根据本公开的第二方面,运动补偿区域确定单元被配置为:在当前视频帧为预定类型并且编码器开启预定模式时,将所述编码单元所对应各层视频帧的运动补偿区域确定为比其他帧类型的相应运动补偿区域更大的预定区域。
根据本公开的第二方面,运动补偿区域确定单元被配置为:如果所述编码单元的行坐标或列坐标为预定坐标,则将除了第一层视频帧以外的其他各层视频帧的运动补偿区域确定为比其他帧类型下的相应运动补偿区域多一个行和一个列;如果所述编码单元的行坐标或列坐标均不为预定坐标,则将各层视频帧的运动补偿区域确定为比其他帧类型下的相应运动补偿区域多一个行和一个列。
根据本公开的第二方面,运动补偿单元被配置为对每一层视频帧的运动补偿范围内的所有块并行地执行运动补偿。
根据本公开的第二方面,所述多层视频帧包括四层视频帧;其中,第一层视频帧、第二层视频帧和第三层视频帧被分割成第一尺寸的块以进行运动补偿,第四层视频帧被分割成第二尺寸的块以进行运动补偿,其中,第一尺寸为第二尺寸的2倍。
根据本公开的实施例的第三方面,提供了一种电子设备,包括:至少一个处理器;至少一个存储计算机可执行指令的存储器,其中,所述计算机可执行指令在被所述至少一个处理器运行时,促使所述至少一个处理器执行如上所述的时域滤波方法。
根据本公开的实施例的第四方面,提供了一种计算机可读存储介质,当所述计算机可读存储介质中的指令由用于视频的时域滤波装置/电子设备/服务器的处理器执行时,使得用于视频的时域滤波装置/电子设备/服务器能够执行如上所述的时域滤波方法。
根据本公开的实施例的第五方法,提供了一种计算机程序产品,所述计算机程序产品中的指令被电子设备中的至少一个处理器运行以执行如上所述的时域滤波方法。
本公开的实施例提供的技术方案至少带来以下有益效果:通过对MCTF的块级并行拆分处理,有效解决了整帧MCTF处理带来的多线程阻塞问题,大幅提升编码效率。此外,根据本公开的示例性实施例的时域滤波方法在运动矢量搜索过程中不会丢失任何精度,不会带来编码损失。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是示出基于运动补偿的时域滤波(MCTF)和根据本公开的示例性实施例的基于块的并行MCTF的用于视频的时域滤波方法的示意图。
图2是示出根据本公开的示例性实施例的基于块的并行MCTF的用于视频的时域滤波方法中使用的金字塔结构的分层视频帧的结构的示意图。
图3是示出根据本公开的示例性实施例的基于块的并行MCTF的用于视频的时域滤波方法的流程图。
图4是示出根据本公开的示例性实施例的基于块的并行MCTF的用于视频的时域滤波方法应用于HEVC编码树单元的示意图。
图5是示出根据本公开的示例性实施例的基于块的并行MCTF的用于视频的时域滤波装置的框图。
图6是示出根据本公开的示例性实施例的用于执行基于块的并行MCTF的用于视频的时域滤波方法的电子设备的框图。
图7是示出根据另一示例性实施例示出的用于执行基于块的并行MCTF的用于视频的时域滤波方法的电子设备的示意图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在此需要说明的是,在本公开中出现的“若干项之中的至少一项”均表示包含“该若干项中的任意一项”、“该若干项中的任意多项的组合”、“该若干项的全体”这三类并列的情况。例如“包括A和B之中的至少一个”即包括如下三种并列的情况:(1)包括A;(2)包括B;(3)包括A和B。又例如“执行步骤一和步骤二之中的至少一个”,即表示如下三种并列的情况:(1)执行步骤一;(2)执行步骤二;(3)执行步骤一和步骤二。
在对本公开的实施例进行详细说明以前,先对本公开的实施例可能涉及到的一些术语或缩略语进行说明。
图1是基于运动补偿的时域滤波(MCTF)和根据本公开的示例性实施例的基于块的并行MCTF的用于视频的时域滤波的过程的示意图。在以下说明中,以高效率视频编码(HEVC)作为应用本公开的MCTF方法的示例进行说明,但应理解,根据本公开的示例性实施例的MCTF方法可应用于其他视频编解码标准(例如,多功能视频编码(VVC)标准)。
如图1(a)所示,首先通过预处理模块对视频帧进行预先分析以获得视频帧的帧类型和量化参数,并在获得帧类型和量化参数,再对视频帧执行MCTF后进行正常的编码流程。而正常的编码流程通常会将视频切割成行进行处理,并依次从上至下按照行并行的方式进行编码。
这里,如果当前视频帧需要进行时域滤波(如图1(a)中的灰色框所示),则对其前后的邻近帧(例如,前后各两帧)以及当前视频帧(一共5帧)均构建如图2所示的金字塔结构。金字塔结构包含1/4和1/2的降采样帧和原始大小的视频帧,在图2中用m_pyramidPic[idx]表示,idx=0、1、2分别表示1、1/2、1/4降采样后的帧。
然后,利用金字塔结构的视频帧和邻近帧进行运动补偿,找到对应的运动矢量MV。这里,假设当前帧为N,相邻帧为N-2、N-1、N+1、N+2,则依次计算当前帧N与邻近帧N-2、N-1、N+1和N+2的MV。计算方式大体如下:
a.将1/4降采样的视频帧会切割成预定尺寸的块(例如,在HEVC编码的条件下采用16×16的块),并利用差平方和(SSE)的方式搜索邻近帧中同位置块的预定范围为8(range=8)的块,并获取其中最佳匹配块。也就是说,在1/4降采样的邻近视频帧中的预定范围内的块中搜索与当前的1/4降采样的视频帧中的块的对应像素值之间的SSE最小的块作为最佳匹配块,并确定最佳匹配块与当前的1/4降采样的视频帧帧中的块之间的位置差(即,运动矢量MV1)。这里,针对1/4降采样的视频帧中的所有块执行最佳匹配块的搜索,从而得到的每个块的运动矢量MV1。也就是说,这里的MV1可以表示的是1/4降采样的视频帧中的每个块和与其对应的最佳匹配块之间的运动矢量的集合。
b.将1/2降采样的视频帧同样会被切割成与1/4降采样的视频帧的块相同尺寸的块。然后,针对1/2降采样的视频帧中与1/4降采样的视频帧中的块对应的块,基于在1/4降采样的视频帧中的对应块的MV1,利用2×MV1作为搜索起点,在range=2的范围内进行滤波处理后的运动矢量搜索。在搜索结果的基础上,利用SSE的方式,在range=5的范围内,按照步长为1的方式进行搜索以获得匹配块的运动矢量MV2。
这里,假设用坐标(x,y)来表示块的坐标位置,其中,坐标位置(x,y)中的x表示块的行坐标,y表示块的列坐标,x,y为等于或大于0的整数。这样,第一行第一列的块的坐标为(0,0),依次类推。在以上的搜索过程中,1/2降采样的视频帧中的位置为(x,y)块将使用1/4降采样的视频帧中的位置为floor(x/2),floor(y/2))的块的MV1×2所指向的块作为搜索起点按照上述的方式进行搜索,其中,floor表示向下取整。例如,1/2降采样的视频帧中的坐标位置为(0,0)、(1,0)、(0,1)、(1,1)的块可使用1/4降采样的视频帧中坐标位置为(0,0)的块的MV作为搜索起点。1/2降采样的视频帧中坐标位置为(0,2)、(0,3)、(1,2)、(1,3)的块可使用1/4降采样的视频帧中的坐标位置为(0,1)的块的MV作为搜索起点。同样地,这里的MV2可以表示的是1/2降采样的视频帧中的每个块和与其对应的最佳匹配块之间的运动矢量的集合。
c.首先将原始大小的视频帧分割成16×16的块。然后,与以上的过程b中类似地,同样基于1/2降采样的视频帧中的对应块的MV2,利用2×MV2作为原始大小的视频帧中的块的搜索起点,并按照b中的方式搜索得到匹配块的运动矢量MV3。同样地,这里的MV3可以表示的是原始大小的视频帧中的每个16×16的块和与其对应的最佳匹配块之间的运动矢量的集合。
d.首先将原始大小的视频帧分割成8×8的块,然后基于c中计算出来的MV3,利用MV3作为原始大小的视频帧中的块的搜索起点,按照b中方式搜索匹配块的运动矢量。然后,在匹配块的运动矢量的基础上,在range=12的范围内,按照步长为3的方式搜索。最后,在range=3的范围内,按照步长为1的方式进行搜索得到最终的MV4。至此,可获取到原始视频帧每个8×8块的MV。
在得到用于视频帧的每个块的运动补偿的MV之后,可基于执行时域滤波过程。
时域滤波过程主要包括:
1.根据视频帧的块的MV信息,分别计算出邻近帧中滤波之后的块信息。也就是说,利用计算出来的MV,找到对应帧中的对应块的位置,并利用插值滤波获取插值滤波后的滤波图像。
2.根据预定权重对邻近帧的插值滤波后的结果进行加权并生成最后的输出。也就是说,在以上的1中获取了插值滤波后的图像后,将其作为双边滤波中的强度参数,获取输出像素的权值,并对所有帧的像素进行加权得到最终的输出图像。
由于MCTF不会对所有帧类型操作而是仅针对部分帧类型操作,并且由于编码器存在帧间并行的机制,某些帧需要等待前序帧的第0行编码完成后才能开始编码,所以图1(a)中的MCTF的操作可能会阻塞延迟当前帧第0行的实际编码,从而影响后续帧开始编码的时间。
因此,根据本公开的示例性实施例的MCTF方法将MCTF过程拆分为块级来并行处理。具体来说,将MCTF的流程拆分成为块级并行,即在对当前编码单元(例如,在HEVC中限定的编码树CTU单元)进行处理之前才会进行对与当前编码单元相应的当前块的MCTF处理。其处理框架如图1(b)所示,图示中灰色的部分表示对当前块的MCTF处理。
下面将参照图3来说明根据本公开的示例性实施例的基于块的并行MCTF方法。在以下说明中,定义视频帧的分辨率为W×H,1/2降采样视频帧的分辨率为W/2×H/2,1/4降采样视频帧的分辨率为W/4×H/4,以HEVC中的尺寸为64×64的编码树单元(CTU)作为编码单元的示例进行说明,并且除了最后一次在全分辨率视频帧上按照8×8的搜索块粒度进行运动矢量搜索之外,在1/4和1/2降采样视频帧中的搜索块粒度为16×16。应理解,以上参数只是示例,可根据编码标准的不同而改变。例如,在VVC标准的编码器中,可针对128×128的尺寸的CTU执行根据本公开的示例性实施例的MCTF方法。
首先,在步骤S310,从当前视频帧构建多层视频帧。根据本公开的示例性实施例,可以构建如下的四层视频帧,其中,第一层视频帧是当前视频帧的1/4降采样视频帧,第二层视频帧是当前视频帧的1/2降采样视频帧,第三层视频帧和第四层视频帧是当前视频帧的全分辨率视频帧。例如,如果当前视频帧的分辨率为640×640,则第一层视频帧的1/4降采样视频帧的分辨率为160×160,第二层视频帧的分辨率为320×320,第三层和第四层视频帧为原分辨率的640×640。应理解,多层视频帧的构成不限于上述示例,本领域的技术人员可根据情况采用其他层数和分辨率。根据本公开的示例性实施例,第一层视频帧、第二层视频帧和第三层视频帧可被分割成第一尺寸(例如16×16)的块以进行运动补偿,第四层视频帧被分割成第二尺寸(例如8×8)的块以进行运动补偿,其中,第一尺寸为第二尺寸的2倍。
接下来,在步骤S320,基于当前视频帧的编码单元的位置和尺寸以及各层视频帧被分割的块的尺寸,以编码单元作为划分粒度分别确定在各层视频帧中进行运动补偿的运动补偿区域。也就是说,以编码单元作为单位来确定每个层中与该编码单元相应的运动补偿区域。在以下的说明中,以(x0,y0,x1,y1)表示在各层视频帧中将要进行运动补偿的区域,该区域表示块的坐标位于x0≤x≤x1,y0≤y≤y1中的所有块。根据本公开的示例性实施例,步骤S320可包括:基于当前视频帧的所述编码单元的位置和尺寸,确定覆盖当前视频帧的所述编码单元的范围的区域,作为各层视频帧中的尾层视频帧的运动补偿区域;并且将各层视频帧中的尾层视频帧以上的各层视频帧中的运动补偿区域确定为覆盖下一层视频帧的运动补偿区域在该层视频帧中对应区域的预设范围的区域。
也就是说,各层视频帧的运动补偿区域可满足以下条件:
尾层视频帧的运动补偿区域覆盖当前视频帧的编码单元的范围,并且尾层视频帧以上的各层视频帧中的运动补偿区域覆盖下一层视频帧的运动补偿区域在该层视频帧中对应区域的预设范围的区域。这样的原因在于根据本公开的示例性实施例的MCTF方法的下层视频帧在运动补偿中搜索运动矢量时需要以上层视频帧的运动矢量作为搜索起点并且搜索起点范围内预定范围(例如,±2行列)的区域。尾层视频帧的运动补偿区域需要与降采样前的编码单元的区域对应。将在后续说明中具体解释。
然后,在步骤S330,获取各层视频帧的运动补偿区域的补偿起点,并且基于所述补偿起点对各层视频帧的运动补偿区域中的块执行运动补偿以获得各层视频帧的运动补偿区域的运动矢量。具体地,如果各层视频帧中的当前层视频帧不是尾层视频帧,则基于当前层视频帧的运动补偿区域的运动矢量确定下一层视频帧的运动补偿区域的补偿起点;如果各层视频帧中的当前层视频帧是尾层视频帧,则基于当前层视频帧的运动补偿区域的运动矢量对当前视频帧的所述编码单元执行时域滤波。
例如,可根据参照图1说明的MCTF过程来执行对第一层视频帧到第四层视频帧的运动补偿区域中的块的运动补偿。根据本公开的示例性实施例,对各层视频帧中的运动补偿区域中的块执行运动补偿以获得各层视频帧的运动补偿区域的运动矢量包括:对第一层视频帧的第一运动补偿区域内的块执行运动补偿以获取所述第一运动补偿区域的块的第一运动矢量MV1;以2*MV1作为搜索起点对第二层视频帧的第二运动补偿区域内的块执行运动补偿以获取所述第二运动补偿区域内的块的第二运动矢量MV2;以2*MV2作为搜索起点对第三层视频帧的第三运动补偿区域内的块执行运动补偿以获得所述第三运动补偿区域内的块的第三运动矢量MV3;将第四层视频帧分割为第三层视频帧被分割的块的尺寸的1/2的块,并以MV3作为搜索起点对第四层视频帧的第四运动补偿区域内的块执行运动补偿以获得所述第四运动补偿区域内的块的运动矢量MV4。
以上已经参照图1详细说明了在每个层中以上一层的对应块的运动矢量为基础进行运动补偿以获得运动矢量的过程。例如,在用于HEVC标准的编码器中,在对第一层视频帧的第一运动补偿区域内的块执行运动补偿时,将第一层视频帧切割成16×16的块,并利用SSE的方式搜索邻近帧中第一运动补偿区域内的块的同位置块的预定范围(例如,range=8)内的块,并获取其中最佳匹配块以获得该最佳匹配块相对于第一运动矢量MV1。
在对第二层视频帧的第二运动补偿区域内的块执行运动补偿时,将第二层视频帧分割为16×16的块,并基于在第一层视频帧中的与这些块对应的块的MV1,利用2×MV1作为搜索起点,并在range=2的范围内进行滤波处理后的运动矢量搜索,在其搜索结果的基础上,利用SSE的方式,在range=5的范围内,按照步长为1的方式进行搜索以获得匹配块的运动矢量MV2。
在对第三层视频帧的第三运动补偿区域内的块执行运动补偿时,将第三层视频帧分割为16×16的块,以2×MV2作为搜索起点,并按照与第二层视频帧相同的方式搜索得到匹配块的运动矢量MV3。
将第四层视频帧分割成8×8的块,以MV3作为搜索起点,按照与第二层视频帧中的方式搜索匹配块的运动矢量。然后,在匹配块的运动矢量的基础上,在range=12的范围内,按照步长为3的方式搜索,然后在range=3的范围内,按照步长为1的方式进行搜索得到最终的MV4。至此,可获取到原始视频帧每个8×8块的MV。
根据本公开的示例性实施例,对于每一层视频帧的运动补偿范围内的所有块的运动补偿被并行执行。
根据本公开的示例性实施例,步骤S220还可包括:确定每一层视频帧的运动补偿区域内的块的位置是否超过该层视频帧的块的最大行数和最大列数;响应于确定该层视频帧的运动补偿区域内的块的位置超过该层视频帧的块的最大行数和最大列数,将所述运动补偿区域的位置确定为以所述最大行数和最大列数截断。也就是说,每一层视频帧的运动补偿区域内的块的位置以该层视频帧的块的最大行数和最大列数截断。例如,如果1/4降采样视频帧的最大行和最大列分别为5,但需要处理(5,6,5,6)位置的块时,则直接跳过当前块的处理。因为该区域内的块在之前的运动补偿过程中已经处理过,因此这些块被认为越界而无需处理。
根据本公开的示例性实施例,在当前视频帧为预定类型并且编码器开启预定模式时,所述编码单元所对应各层视频帧的运动补偿区域被确定为比其他帧类型的相应运动补偿区域更大的预定区域。
根据本公开的示例性实施例,如果所述编码单元的行坐标或列坐标为预定坐标,则除了第一层视频帧以外的其他各层视频帧的运动补偿区域被确定为比其他帧类型下的相应运动补偿区域多一个行和一个列;如果所述编码单元的行坐标或列坐标均不为预定坐标,则各层视频帧的运动补偿区域被确定为比其他帧类型下的相应运动补偿区域多一个行和一个列。
例如,在当前视频帧为I帧并且编码器开启预定模式(例如,强帧内平滑strong-intra-smooth模式)时,如果编码单元的行坐标或列坐标为0,则第四层视频帧、第三层视频帧和第二层视频帧的运动补偿区域被确定为比其他帧类型的相应运动补偿区域多一个行和一个列;如果编码单元的行坐标或列坐标均不为0,则第四层视频帧、第三层视频帧、第二层视频帧和第一层视频帧的运动补偿区域被确定为比其他帧类型下的相应运动补偿区域多一个行和一个列。这是因为在开启预定模式时,有一定概率会触发边界滤波,因此在1/2降采样视频帧和两层全分辨率视频帧的处理过程中需要比正常范围多处理一行一列的块。
最后,在步骤S340,基于所述运动矢量对当前视频帧的所述编码单元执行时域滤波。时域滤波的过程与参照图1说明的MCTF的时域滤波过程相同,即,根据视频帧的块的MV信息,分别计算出邻近帧中滤波之后的块信息,并根据预定权重对邻近帧的插值滤波后的结果进行加权并生成最后的输出。
下面将参照图4的示例来说明针对HEVC的CTU执行的基于块的并行MCTF的过程。假设视频帧的原始分辨率为640×640,则构建的金字塔结构的第一层视频帧、第二层视频帧、第三层视频帧和第四层视频帧的分辨率依次为160×160、320×320、640×640、640×640,第一层视频帧、第二层视频帧、第三层视频帧中的每个块的尺寸为16×16,而第四层视频帧的每个块的尺寸为8×8。进行运动补偿的区域以(x0,y0,x1,y1)表示,其表示块的坐标位于x0≤x≤x1,y0≤y≤y1中的所有块。
当对第i行第j列的CTU进行处理时,则可根据i,j以及编码单元的尺寸和每层视频帧中的块的尺寸之间的关系来确定每个层中的运动补偿区域。具体地:
如果(i,j)为(0,0),则:
a.对第一层视频帧中位于(0,0,4,4)的块进行运动补偿。
b.对第二层视频帧中位于(0,0,4,4)的块进行运动补偿。
c.对第三层视频帧中位于(0,0,5,5)的块进行运动补偿.
d.对第四层视频帧中位于(0,0,7,7)的块进行运动补偿。
如图4(a)所示,图中灰色区域表示下一层视频帧中的运动矢量搜索起点区域,深灰色区域表示为了覆盖下一层视频帧中的搜索起点的正负2个行列的区域而覆盖的区域。只有在覆盖了深灰色区域之后才能保证运动矢量的准确性和无损性。图4(a)中最右侧的第四层视频帧中的灰色区域(0,0,7,7)与64×64的编码单元的尺寸对应。而第三层视频帧中的灰色区域与第四层视频帧中的灰色区域对应,而在第三层视频帧的深灰色区域边界之外的两行两列是覆盖搜索起点的正负2的区域,因此,第三层视频帧中的运动补偿区域为(0,0,5,5)。依次类推可以得到第二层视频帧和第一层视频帧中的运动补偿区域均为(0,0,4,4)。
2.如果i=0,j>0,那么:
a.对第一层视频帧中位于(0,j+4,4,j+4)的块进行运动补偿。
b.对第二层视频帧中位于(0,2*j+3,4,2*j+4)的块进行运动补偿。
c.对第三层视频帧中位于(0,4*j+2,5,4*j+5)的块进行运动补偿。
d.对第四层视频帧中位于(0,8*j,7,8*j+7)的块进行运动补偿。
如图4(b)所示,如果对位置(0,1)的CTU进行处理,则对于第一层视频帧应对(0,5,4,5)的运动补偿区域进行运动补偿,但是由于该区域超出范围,在之前已经被处理过,因此无需处理。依次地,对于第二层视频帧,对(0,5,4,6)区域进行运动补偿,对于第三层视频帧,对(0,6,5,9)区域进行运动补偿,对于第四层视频帧,对(0,8,7,15)区域进行运动补偿。
3.如果i>0,j=0,那么:
a.对第一层视频帧中位于(i+4,0,i+4,4)的块进行运动补偿。
b.对第二层视频帧中位于(2*i+3,0,2*i+4,4)的块进行运动补偿。
c.对第三层视频帧中位于(4*i+2,0,4*i+5,5)的块进行运动补偿。
d.对第四层视频帧中位于(8*i,0,8*i+7,7)的块进行运动补偿。
如图4(c)所示,如果对位置(1,0)的CTU进行处理,则对于第一层视频帧应对(5,0,5,4)的运动补偿区域进行运动补偿,但是由于该区域超出范围,在之前已经被处理过,因此无需处理。依次地,对于第二层视频帧,对(5,0,6,4)区域进行运动补偿,对于第三层视频帧,对(6,0,9,5)区域进行运动补偿,对于第四层视频帧,对(8,0,15,7)区域进行运动补偿。
4.若i,j均不为0,那么:
a.对第一层视频帧中位于(i+4,j+4,i+4,j+4)的块进行运动补偿.
b.对第二层视频帧中位于(2*i+3,2*j+3,2*i+4,2*j+4)的块进行运动补偿。
c.对第三层视频帧中位于(4*i+2,4*j+2,4*i+5,4*j+5)的块进行运动补偿。
d.对第四层视频帧中位于(8*i,8*j,8*i+7,8*j+7)的块进行运动补偿。
如图4(d)所示,如果对位置(1,1)的CTU进行处理,则对于第一层视频帧应对(5,5,5,5)的运动补偿区域进行运动补偿,但是由于该区域超出范围,在之前已经被处理过,因此无需处理。依次地,对于第二层视频帧,对(5,5,6,6)区域进行运动补偿,对于第三层视频帧,对(6,6,9,9)区域进行运动补偿,对于第四层视频帧,对(8,8,15,15)区域进行运动补偿。
特别地,在当前帧为I帧,并且开启strong-intra-smooth模式时,有一定概率会触发边界滤波,因此在i=0或j=0时,1/2降采样视频帧和两层全分辨率视频帧均需要比其他帧类型(B帧和P帧)多处理一行一列,而1/4分辨率保持不变。因此,以上的MCTF的过程变为如下:
1.如果(i,j)为(0,0),则第一层视频帧、第二层视频帧、第三层视频帧和第四层视频帧的运动补偿区域的位置分别为:(0,0,4,4)、(0,0,5,5)、(0,0,6,6)、(0,0,8,8)。
2.如果i=0,j>0,则第一层视频帧、第二层视频帧、第三层视频帧和第四层视频帧的运动补偿区域的位置分别为:(0,j+4,4,j+4)、(0,2*j+4,5,2*j+5)、(0,4*j+3,6,4*j+6)、(0,8*j+1,8,8*j+8)。
3.如果i>0,j=0,则第一层视频帧、第二层视频帧、第三层视频帧和第四层视频帧的运动补偿区域的位置分别为:(i+4,0,i+4,0)、(2*i+4,0,2*i+5,0)、(4*i+3,0,4*i+6,6)、(8*i+1,0,8*i+8,0)。
4.如果i>0,j>0,则第一层视频帧、第二层视频帧、第三层视频帧和第四层视频帧的运动补偿区域的位置分别为:
(i+5,j+5,i+5,j+5)、(2*i+4,2*j+4,2*i+5,2*j+5)、(4*i+3,4*j+3,4*i+6,4*j+6)、(8*i+1,8*j+1,8*i+8,8*j+8)。
如上所述,根据本公开的示例性实施例的用于视频的时域滤波方法适用于正常编码和开启了WPP方式的编码,适应于初始非确定量化参数QP的情况和对并行度要求高的情况。通过对MCTF的块级并行拆分处理,有效解决了整帧MCTF处理带来的多线程阻塞问题,大幅提升编码效率。此外,根据本公开的示例性实施例的用于视频的时域滤波方法在运动矢量搜索过程中不会丢失任何精度,不会带来编码损失。
图5是示出根据本公开的示例性实施例的基于块的并行MCTF的时域滤波装置的框图。应理解,可以以软件、硬件、软件和硬件结合的方式中的任意一个方式来实现如图5所示的装置。
时域滤波装置500可包括降采样单元510、运动补偿区域确定单元520、运动补偿单元530和滤波单元540。
根据本公开的示例性实施例,降采样单元510被配置为针对当前视频帧构建多层视频帧。例如,可构建如图1所示出的四层视频帧,其中,第一层视频帧是当前视频帧的1/4降采样视频帧,第二层视频帧是当前视频帧的1/2降采样视频帧,第三层视频帧和第四层视频帧是当前视频帧的全分辨率视频帧。
根据本公开的示例性实施例,运动补偿区域确定单元520被配置为基于当前视频帧的编码单元的位置和尺寸以及各层视频帧被分割的块的尺寸,以编码单元作为划分粒度分别确定在各层视频帧中进行运动补偿的运动补偿区域;
根据本公开的示例性实施例,运动补偿单元530被配置为获取各层视频帧的运动补偿区域的补偿起点,并且基于所述补偿起点对各层视频帧的运动补偿区域中的块执行运动补偿以获得各层视频帧的运动补偿区域的运动矢量。
根据本公开的示例性实施例,滤波单元540被配置为基于第四层视频帧的运动补偿区域的运动矢量对当前视频帧的编码单元执行时域滤波。
根据本公开的示例性实施例,运动补偿单元530被配置为:如果各层视频帧中的当前层视频帧不是尾层视频帧,则基于当前层视频帧的运动补偿区域的运动矢量确定下一层视频帧的运动补偿区域的补偿起点;如果各层视频帧中的当前层视频帧是尾层视频帧,则基于当前层视频帧的运动补偿区域的运动矢量对当前视频帧的所述编码单元执行时域滤波。
例如,运动补偿单元530可对第一层视频帧的第一运动补偿区域内的块执行运动补偿以获取所述第一运动补偿区域的块的第一运动矢量MV1;以2*MV1作为搜索起点对第二层视频帧的第二运动补偿区域内的块执行运动补偿以获取所述第二运动补偿区域内的块的第二运动矢量MV2;以2*MV2作为搜索起点对第三层视频帧的第三运动补偿区域内的块执行运动补偿以获得所述第三运动补偿区域内的块的第三运动矢量MV3;将第四层视频帧分割为第三层视频帧被分割的块的尺寸的1/2的块,并以MV3作为搜索起点对第四层视频帧的第四运动补偿区域内的块执行运动补偿以获得所述第四运动补偿区域内的块的运动矢量MV4。
根据本公开的示例性实施例,运动补偿区域确定单元520被配置为:基于当前视频帧的所述编码单元的位置和尺寸,确定覆盖当前视频帧的所述编码单元的范围的区域,作为各层视频帧中的尾层视频帧的运动补偿区域;并且将各层视频帧中的尾层视频帧以上的各层视频帧中的运动补偿区域确定为覆盖下一层视频帧的运动补偿区域在该层视频帧中对应区域的预设范围的区域。
根据本公开的示例性实施例,运动补偿区域确定单元520还被配置为:确定每一层视频帧的运动补偿区域内的块的位置是否超过该层视频帧的块的最大行数和最大列数;响应于确定该层视频帧的运动补偿区域内的块的位置超过该层视频帧的块的最大行数和最大列数,将所述运动补偿区域的位置确定为以所述最大行数和最大列数截断。
根据本公开的示例性实施例,运动补偿区域确定单元520被配置为:在当前视频帧为预定类型并且编码器开启预定模式时,将所述编码单元所对应各层视频帧的运动补偿区域确定为比其他帧类型的相应运动补偿区域更大的预定区域。如果所述编码单元的行坐标或列坐标为预定坐标,则将除了第一层视频帧以外的其他各层视频帧的运动补偿区域确定为比其他帧类型下的相应运动补偿区域多一个行和一个列;如果所述编码单元的行坐标或列坐标均不为预定坐标,则将各层视频帧的运动补偿区域确定为比其他帧类型下的相应运动补偿区域多一个行和一个列。
根据本公开的示例性实施例,运动补偿单元530被配置为对每一层视频帧的运动补偿范围内的所有块并行地执行运动补偿。
根据本公开的示例性实施例,所述多层视频帧包括四层视频帧;其中,第一层视频帧、第二层视频帧和第三层视频帧被分割成第一尺寸的块以进行运动补偿,第四层视频帧被分割成第二尺寸的块以进行运动补偿,其中,第一尺寸为第二尺寸的2倍。
以上已经参照图3对用于视频的时域滤波装置500的各个模块的操作和功能进行了详细说明,在此不再重复描述。
图6是示出根据本公开的示例性实施例的一种用于视频的时域滤波的电子设备的结构框图。该电子设备600例如可以是:智能手机、平板电脑、MP4(Moving Picture ExpertsGroup Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。电子设备600还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,电子设备600包括有:处理器601和存储器602。
处理器601可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器601可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(FieldProgrammable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器601也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器601可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器601还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器602可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器602还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器602中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器601所执行以实现本公开的如图3所示的方法实施例提供的用于视频的时域滤波方法。
在一些实施例中,电子设备600还可选包括有:外围设备接口603和至少一个外围设备。处理器601、存储器602和外围设备接口603之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口603相连。具体地,外围设备包括:射频电路604、触摸显示屏605、摄像头606、音频电路607、定位组件608和电源609中的至少一种。
外围设备接口603可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器601和存储器602。在一些实施例中,处理器601、存储器602和外围设备接口603被集成在同一芯片或电路板上;在一些其他实施例中,处理器601、存储器602和外围设备接口603中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路604用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路604通过电磁信号与通信网络以及其他通信设备进行通信。射频电路604将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路604包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路604可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路604还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本公开对此不加以限定。
显示屏605用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏605是触摸显示屏时,显示屏605还具有采集在显示屏605的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器601进行处理。此时,显示屏605还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏605可以为一个,设置在电子设备600的前面板;在另一些实施例中,显示屏605可以为至少两个,分别设置在终端600的不同表面或呈折叠设计;在再一些实施例中,显示屏605可以是柔性显示屏,设置在终端600的弯曲表面上或折叠面上。甚至,显示屏605还可以设置成非矩形的不规则图形,也即异形屏。显示屏605可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件606用于采集图像或视频。可选地,摄像头组件606包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件606还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路607可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器601进行处理,或者输入至射频电路604以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端600的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器601或射频电路604的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路607还可以包括耳机插孔。
定位组件608用于定位电子设备600的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件608可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。
电源609用于为电子设备600中的各个组件进行供电。电源609可以是交流电、直流电、一次性电池或可充电电池。当电源609包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,电子设备600还包括有一个或多个传感器610。该一个或多个传感器610包括但不限于:加速度传感器611、陀螺仪传感器612、压力传感器613、指纹传感器614、光学传感器615以及接近传感器616。
加速度传感器611可以检测以终端600建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器611可以用于检测重力加速度在三个坐标轴上的分量。处理器601可以根据加速度传感器611采集的重力加速度信号,控制触摸显示屏605以横向视图或纵向视图进行用户界面的显示。加速度传感器611还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器612可以检测终端600的机体方向及转动角度,陀螺仪传感器612可以与加速度传感器611协同采集用户对终端600的3D动作。处理器601根据陀螺仪传感器612采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器613可以设置在终端600的侧边框和/或触摸显示屏605的下层。当压力传感器613设置在终端600的侧边框时,可以检测用户对终端600的握持信号,由处理器601根据压力传感器613采集的握持信号进行左右手识别或快捷操作。当压力传感器613设置在触摸显示屏605的下层时,由处理器601根据用户对触摸显示屏605的压力操作,实现对UI上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器614用于采集用户的指纹,由处理器601根据指纹传感器614采集到的指纹识别用户的身份,或者,由指纹传感器614根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器601授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器614可以被设置电子设备600的正面、背面或侧面。当电子设备600上设置有物理按键或厂商Logo时,指纹传感器614可以与物理按键或厂商Logo集成在一起。
光学传感器615用于采集环境光强度。在一个实施例中,处理器601可以根据光学传感器615采集的环境光强度,控制触摸显示屏605的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏605的显示亮度;当环境光强度较低时,调低触摸显示屏605的显示亮度。在另一个实施例中,处理器601还可以根据光学传感器615采集的环境光强度,动态调整摄像头组件606的拍摄参数。
接近传感器616,也称距离传感器,通常设置在电子设备600的前面板。接近传感器616用于采集用户与电子设备600的正面之间的距离。在一个实施例中,当接近传感器616检测到用户与终端600的正面之间的距离逐渐变小时,由处理器601控制触摸显示屏605从亮屏状态切换为息屏状态;当接近传感器616检测到用户与电子设备600的正面之间的距离逐渐变大时,由处理器601控制触摸显示屏605从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图6中示出的结构并不构成对电子设备600的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
图7所示为另一种电子设备700的结构框图。例如,电子设备700可以被提供为一服务器。参照图7,电子设备700包括一个或多个处理处理器710以及存储器720。存储器720可以包括用于执行以上的用于视频的时域滤波方法的一个或一个以上的程序。电子设备700还可以包括一个电源组件730被配置为执行电子设备700的电源管理,一个有线或无线网络接口740被配置为将电子设备700连接到网络,和一个输入输出(I/O)接口750。电子设备700可以操作基于存储在存储器720的操作系统,例如Windows ServerTM、Mac OS XTM、UnixTM、LinuxTM、FreeBSDTM或类似。
根据本公开的实施例,还可提供一种存储指令的计算机可读存储介质,其中,当指令被至少一个处理器运行时,促使至少一个处理器执行根据本公开的用于视频的时域滤波方法。这里的计算机可读存储介质的示例包括:只读存储器(ROM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、非易失性存储器、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、蓝光或光盘存储器、硬盘驱动器(HDD)、固态硬盘(SSD)、卡式存储器(诸如,多媒体卡、安全数字(SD)卡或极速数字(XD)卡)、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及任何其他装置,所述任何其他装置被配置为以非暂时性方式存储计算机程序以及任何相关联的数据、数据文件和数据结构并将所述计算机程序以及任何相关联的数据、数据文件和数据结构提供给处理器或计算机使得处理器或计算机能执行所述计算机程序。上述计算机可读存储介质中的计算机程序可在诸如客户端、主机、代理装置、服务器等计算机设备中部署的环境中运行,此外,在一个示例中,计算机程序以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得计算机程序以及任何相关联的数据、数据文件和数据结构通过一个或多个处理器或计算机以分布式方式存储、访问和执行。
根据本公开的实施例中,还可提供一种计算机程序产品,该计算机程序产品中的指令可由计算机设备的处理器执行以完成上述的用于视频的时域滤波方法。
根据本公开的用于视频的时域滤波方法、装置以及电子设备、计算机可读存储介质可以通过对MCTF的块级并行拆分处理,有效解决了整帧MCTF处理带来的多线程阻塞问题,大幅提升编码效率。此外,根据本公开的示例性实施例的用于视频的时域滤波方法在运动矢量搜索过程中不会丢失任何精度,不会带来编码损失。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (14)

1.一种用于视频的时域滤波的方法,其特征在于,包括:
针对当前视频帧构建多层视频帧;
基于当前视频帧的编码单元的位置和尺寸以及各层视频帧被分割的块的尺寸,以编码单元作为划分粒度分别确定在各层视频帧中进行运动补偿的运动补偿区域;
获取各层视频帧的运动补偿区域的补偿起点,并且基于所述补偿起点对各层视频帧的运动补偿区域中的块执行运动补偿以获得各层视频帧的运动补偿区域的运动矢量;
基于所述运动矢量对当前视频帧的所述编码单元执行时域滤波,
基于当前视频帧的编码单元的位置和尺寸以及各层视频帧被分割的块的尺寸来分别确定在各层视频帧中进行运动补偿的运动补偿区域包括:基于当前视频帧的所述编码单元的位置和尺寸,确定覆盖当前视频帧的所述编码单元的范围的区域,作为各层视频帧中的尾层视频帧的运动补偿区域,并且将各层视频帧中的尾层视频帧以上的各层视频帧中的运动补偿区域确定为覆盖下一层视频帧的运动补偿区域在该层视频帧中对应区域的预设范围的区域,
其中,对于每一层视频帧的运动补偿范围内的所有块的运动补偿被并行执行。
2.如权利要求1所述的方法,其特征在于,获取各层视频帧的运动补偿区域的补偿起点,并且基于所述补偿起点对各层视频帧的运动补偿区域中的块执行运动补偿以获得各层视频帧的运动补偿区域的运动矢量包括:
如果各层视频帧中的当前层视频帧不是尾层视频帧,则基于当前层视频帧的运动补偿区域的运动矢量确定下一层视频帧的运动补偿区域的补偿起点;
如果各层视频帧中的当前层视频帧是尾层视频帧,则基于当前层视频帧的运动补偿区域的运动矢量对当前视频帧的所述编码单元执行时域滤波。
3.如权利要求1所述的方法,其特征在于,基于当前视频帧的编码单元的位置和尺寸以及各层视频帧被分割的块的尺寸,以编码单元为最小划分粒度分别确定在各层视频帧中进行运动补偿的运动补偿区域还包括:
确定每一层视频帧的运动补偿区域内的块的位置是否超过该层视频帧的块的最大行数和最大列数;
响应于确定该层视频帧的运动补偿区域内的块的位置超过该层视频帧的块的最大行数和最大列数,将所述运动补偿区域的位置确定为以所述最大行数和最大列数截断。
4.如权利要求1所述的方法,其特征在于,在当前视频帧为预定类型并且编码器开启预定模式时,所述编码单元所对应各层视频帧的运动补偿区域被确定为比其他帧类型的相应运动补偿区域更大的预定区域。
5.如权利要求4所述的方法,其特征在于,
如果所述编码单元的行坐标或列坐标为预定坐标,则除了第一层视频帧以外的其他各层视频帧的运动补偿区域被确定为比其他帧类型下的相应运动补偿区域多一个行和一个列;
如果所述编码单元的行坐标或列坐标均不为预定坐标,则各层视频帧的运动补偿区域被确定为比其他帧类型下的相应运动补偿区域多一个行和一个列。
6.如权利要求1所述的方法,其特征在于,所述多层视频帧包括四层视频帧;其中,第一层视频帧、第二层视频帧和第三层视频帧被分割成第一尺寸的块以进行运动补偿,第四层视频帧被分割成第二尺寸的块以进行运动补偿,其中,第一尺寸为第二尺寸的2倍。
7.一种用于视频的时域滤波装置,其特征在于,包括:
降采样单元,被配置为针对当前视频帧构建多层视频帧;
运动补偿区域确定单元,被配置为基于当前视频帧的编码单元的位置和尺寸以及各层视频帧被分割的块的尺寸,以编码单元作为划分粒度分别确定在各层视频帧中进行运动补偿的运动补偿区域;
运动补偿单元,被配置为获取各层视频帧的运动补偿区域的补偿起点,并且基于所述补偿起点对各层视频帧的运动补偿区域中的块执行运动补偿以获得各层视频帧的运动补偿区域的运动矢量;
滤波单元,被配置为所述运动矢量对当前视频帧的所述编码单元执行时域滤波,
其中,运动补偿区域确定单元被配置为基于当前视频帧的所述编码单元的位置和尺寸,确定覆盖当前视频帧的所述编码单元的范围的区域,作为各层视频帧中的尾层视频帧的运动补偿区域,并且将各层视频帧中的尾层视频帧以上的各层视频帧中的运动补偿区域确定为覆盖下一层视频帧的运动补偿区域在该层视频帧中对应区域的预设范围的区域,
其中,运动补偿单元被配置为对每一层视频帧的运动补偿范围内的所有块并行地执行运动补偿。
8.如权利要求7所述的装置,其特征在于,运动补偿单元被配置为:
如果各层视频帧中的当前层视频帧不是尾层视频帧,则基于当前层视频帧的运动补偿区域的运动矢量确定下一层视频帧的运动补偿区域的补偿起点;
如果各层视频帧中的当前层视频帧是尾层视频帧,则基于当前层视频帧的运动补偿区域的运动矢量对当前视频帧的所述编码单元执行时域滤波。
9.如权利要求7所述的装置,其特征在于,运动补偿区域确定单元还被配置为:
确定每一层视频帧的运动补偿区域内的块的位置是否超过该层视频帧的块的最大行数和最大列数;
响应于确定该层视频帧的运动补偿区域内的块的位置超过该层视频帧的块的最大行数和最大列数,将所述运动补偿区域的位置确定为以所述最大行数和最大列数截断。
10.如权利要求7所述的装置,其特征在于,运动补偿区域确定单元被配置为:在当前视频帧为预定类型并且编码器开启预定模式时,将所述编码单元所对应各层视频帧的运动补偿区域确定为比其他帧类型的相应运动补偿区域更大的预定区域。
11.如权利要求10所述的装置,其特征在于,运动补偿区域确定单元被配置为:
如果所述编码单元的行坐标或列坐标为预定坐标,则将除了第一层视频帧以外的其他各层视频帧的运动补偿区域确定为比其他帧类型下的相应运动补偿区域多一个行和一个列;
如果所述编码单元的行坐标或列坐标均不为预定坐标,则将各层视频帧的运动补偿区域确定为比其他帧类型下的相应运动补偿区域多一个行和一个列。
12.如权利要求7所述的装置,其特征在于,所述多层视频帧包括四层视频帧;其中,第一层视频帧、第二层视频帧和第三层视频帧被分割成第一尺寸的块以进行运动补偿,第四层视频帧被分割成第二尺寸的块以进行运动补偿,其中,第一尺寸为第二尺寸的2倍。
13.一种电子设备,其特征在于,包括:
至少一个处理器;
至少一个存储计算机可执行指令的存储器,
其中,所述计算机可执行指令在被所述至少一个处理器运行时,促使所述至少一个处理器执行如权利要求1到6中的任一权利要求所述的用于视频的时域滤波方法。
14.一种计算机可读存储介质,当所述计算机可读存储介质中的指令由用于视频的时域滤波装置/电子设备/服务器的处理器执行时,使得用于视频的时域滤波装置/电子设备/服务器能够执行如权利要求1至6中任一项所述的用于视频的时域滤波方法。
CN202111588666.XA 2021-12-23 2021-12-23 用于视频的时域滤波方法、装置、存储介质及电子设备 Active CN114302137B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111588666.XA CN114302137B (zh) 2021-12-23 2021-12-23 用于视频的时域滤波方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111588666.XA CN114302137B (zh) 2021-12-23 2021-12-23 用于视频的时域滤波方法、装置、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN114302137A CN114302137A (zh) 2022-04-08
CN114302137B true CN114302137B (zh) 2023-12-19

Family

ID=80969579

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111588666.XA Active CN114302137B (zh) 2021-12-23 2021-12-23 用于视频的时域滤波方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN114302137B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116260973B (zh) * 2023-03-31 2024-03-19 北京百度网讯科技有限公司 一种时域滤波方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1934867A (zh) * 2004-03-02 2007-03-21 汤姆森许可贸易公司 采用分级时间分析的图像序列编码和解码方法
CN101478678A (zh) * 2008-12-30 2009-07-08 西安交通大学 基于感兴趣区域运动补偿时域滤波方法
CN104506870A (zh) * 2014-11-28 2015-04-08 北京奇艺世纪科技有限公司 一种适用于多码流的视频编码处理方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140286433A1 (en) * 2011-10-21 2014-09-25 Dolby Laboratories Licensing Corporation Hierarchical motion estimation for video compression and motion analysis

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1934867A (zh) * 2004-03-02 2007-03-21 汤姆森许可贸易公司 采用分级时间分析的图像序列编码和解码方法
CN101478678A (zh) * 2008-12-30 2009-07-08 西安交通大学 基于感兴趣区域运动补偿时域滤波方法
CN104506870A (zh) * 2014-11-28 2015-04-08 北京奇艺世纪科技有限公司 一种适用于多码流的视频编码处理方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GOP-based temporal filter improvements;P. Wennersten;JVET;第1-3页 *

Also Published As

Publication number Publication date
CN114302137A (zh) 2022-04-08

Similar Documents

Publication Publication Date Title
US11388403B2 (en) Video encoding method and apparatus, storage medium, and device
JP2023126583A (ja) 予測モードの復号化の方法、符号化の方法、復号化の装置、符号化の装置および記憶媒体
CN110933334B (zh) 视频降噪方法、装置、终端及存储介质
WO2023087637A1 (zh) 视频编码方法和装置、电子设备和计算机可读存储介质
CN110049326B (zh) 视频编码方法及装置、存储介质
CN114302137B (zh) 用于视频的时域滤波方法、装置、存储介质及电子设备
CN113095163B (zh) 视频处理方法、装置、电子设备和存储介质
CN110572679B (zh) 帧内预测的编码方法、装置、设备及可读存储介质
CN110177275B (zh) 视频编码方法及装置、存储介质
CN114268797B (zh) 用于视频的时域滤波的方法、装置、存储介质及电子设备
CN111770339B (zh) 视频编码方法、装置、设备及存储介质
CN113709479B (zh) 基于自适应帧内刷新机制的解码、编码方法及相关设备
CN110460856B (zh) 视频编码方法、装置、编码设备及计算机可读存储介质
CN114332709A (zh) 视频处理方法、装置、存储介质以及电子设备
CN113079372B (zh) 帧间预测的编码方法、装置、设备及可读存储介质
CN114422782B (zh) 视频编码方法、装置、存储介质及电子设备
CN112218071B (zh) 视频编码方法、装置、存储介质及电子设备
CN113038124B (zh) 视频编码方法、装置、存储介质及电子设备
CN112437304B (zh) 视频解码方法、编码方法、装置、设备及可读存储介质
CN113891090A (zh) 视频编码方法、装置、存储介质及电子设备
CN117834881A (zh) 视频帧的滤波方法、视频帧的编码方法及装置
CN113938689A (zh) 量化参数确定方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant