视频编码中的运动搜索控制方法和控制装置
技术领域
本发明涉及视频编码中的控制技术,特别涉及一种视频编码中的运动搜索控制方法、以及一种视频编码中的运动搜索控制装置。
背景技术
现有的视频编码过程中通常都会涉及帧间预测,用于检测当前帧中各宏块的位置是否相比于参考帧发生了变化,从而只需对宏块的位置变化信息进行编码并传输。
在进行帧间预测时,依次将当前帧中的每一个宏块作为当前宏块,并在参考帧中设定一个对应的搜索区域,参见图1,中心处的M×N的矩形为当前帧中的任一宏块,而该宏块外围的(M+2Rx)×(N+2Ry)的矩形则表示该宏块在参考帧中对应的搜索区域,M、N、Rx、Ry的取值通常均以像素个数为单位。然后,在该搜索区域中对当前宏块进行运动搜索,按照残差绝对值求和(SAD)最小准则找到当前宏块在参考帧中的最佳匹配位置。
此后,如果当前宏块在参考帧中的最佳匹配位置,与当前宏块在当前帧中的位置相同,则认为当前宏块未进行运动,即确定当前宏块的运动向量为零,无须对零运动向量进行熵编码;如果当前宏块在参考帧中的最佳匹配位置,不同于当前宏块在当前帧中的位置,则认为当前宏块正在运动,并产生非零的运动向量,然后对当前宏块非零的运动向量进行熵编码后传输。
然而,在现有视频编码中,每一帧中的每一个宏块所对应的搜索区域大小均相同且固定不变,即图1中的(M+2Rx)、(N+2Ry)的取值对于每一帧中的每一个宏块来说均是固定不变的,例如±32个像素。由此,就会导致如下的问题:
在视频监控领域,经常需要摄像头全天候地拍摄图像,这就使得各帧图像可能是在亮暗不同的各种光照条件,以及例如雾、雨、雪、沙尘等各种气候条件下拍摄得到的。当处于亮度较暗,和/或雾、雨、雪、沙尘较恶劣的条件时,拍摄得到的各帧图像中会包含较多的噪声,从而会影响运动搜索的准确度。
假设监控场景中没有任何运动物体,那么在无噪声时的正确运动搜索结果应当是:当前帧中所有宏块的运动向量均为零,即针对当前帧无须进行任何熵编码操作、也无须传输任何码流。但由于当前帧和参考帧中均存在噪声、且当前帧和参考帧中噪声集中位置之间的SAD非常小,因而当对包含有噪声的当前宏块进行运动搜索时,就有可能误将参考帧中噪声集中的位置确定为当前宏块在参考帧中的最佳匹配位置,进而如果参考帧中噪声集中的位置不同于当宏块在当前帧中的位置,则还会进一步产生非零的运动向量,从而需要对残差信息进行熵编码并传输,因而额外增加了视频编码的计算量和传输码率。
可见,在现有视频编码中,运动搜索的搜索区域大小无法进行动态调整,进而会使得运动搜索的准确度不高,进一步还会增加不必要的视频编码计算量和传输码率。
发明内容
有鉴于此,本发明提供了一种视频编码中的运动搜索控制方法、以及一种视频编码中的运动搜索控制装置,能够实现搜索区域大小的动态调整。
本发明提供的一种视频编码中的运动搜索控制方法,包括:
a1、计算当前帧与参考图像之间的噪声幅度;
a2、依据计算得到的噪声幅度,并按照噪声幅度越大、则搜索区域越小的趋势调整当前帧中各宏块在参考帧所对应的搜索区域大小。
所述步骤a1进一步按照预先设定的单位像素区域,计算当前帧中各单位像素区域与参考图像中的对应像素区域之间的噪声幅度。
所述单位像素区域为一个宏块,该控制方法依次将当前帧中每一宏块作为当前宏块、并按照如下方式对当前宏块执行所述步骤a1:
a11、将参考图像中与当前宏块位置相同的像素区域,确定为当前宏块对应的参考宏块;
a12、计算得到当前宏块中所有像素的取值与参考宏块中对应像素取值的差的绝对值;
a13、从当前宏块对应所有像素对应的差的绝对值中,将表示非噪声的各绝对值筛除;
a14、将筛除剩余的绝对值的平均值确定为当前宏块与参考图像对应像素区域之间的噪声幅度;
且,所述步骤a2分别依据当前帧中每一宏块与参考图像对应像素区域之间的噪声幅度,执行对该宏块所对应的搜索区域大小的调整。
所述单位像素区域为整帧图像,所述步骤a1包括:
a11’、计算得到当前帧中所有像素的取值与参考帧中对应像素取值的差的绝对值;
a12’、从当前帧所有像素对应的差的绝对值中,将表示非噪声的各绝对值筛除;
a13’、将筛除剩余的绝对值的平均值确定为当前帧与参考图像整帧之间的噪声幅度;
且,所述步骤a2依据当前帧与参考图像整帧之间的噪声幅度,执行对当前帧中所有宏块所对应的搜索区域大小的调整。
所述将表示非噪声的各绝对值筛除之前,进一步将大于预设阈值的绝对值确定为表示非噪声的绝对值;且,所述预设阈值为预先统计得到的噪声高斯概率分布中满足3σ准则的取值。
所述步骤a2中,噪声幅度越大、则搜索区域越小的趋势包括:噪声幅度每提升预设的步长、或预设的倍数,则搜索区域在各方向上等比缩小。
本发明提供的一种视频编码中的运动搜索控制装置,包括:
噪声检测单元,用于计算当前帧与参考图像之间的噪声幅度;
区域调整单元,用于依据计算得到的噪声幅度,并按照表示噪声幅度越大、则搜索区域越小的调整规则调整当前帧中各宏块在参考帧所对应的搜索区域大小。
该控制装置进一步包括精度设定单元,其内部设定有单位像素区域;
所述噪声检测单元进一步按照所述单位像素区域,计算当前帧中各单位像素区域与参考图像中的对应像素区域之间的噪声幅度。
所述单位像素区域为一个宏块,所述噪声检测单元依次将当前帧中每一宏块确定为当前宏块、并包括:
参考宏块子单元,用于将参考图像中与当前宏块位置相同的像素区域确定为当前宏块对应的参考宏块;
绝对值计算子单元,用于计算得到当前宏块中所有像素与参考宏块中对应像素的差的绝对值;
绝对值筛除子单元,用于从当前宏块对应所有像素对应的差的绝对值中,将表示非噪声的各绝对值筛除;
噪声确定子单元,用于将筛除剩余的绝对值的平均值确定为当前宏块与参考图像对应像素区域之间的噪声幅度;
且,所述区域调整单元分别依据当前帧中每一宏块与参考图像对应像素区域之间的噪声幅度,执行对该宏块所对应的搜索区域大小的调整。
所述单位像素区域为整帧图像,所述噪声检测单元包括:
绝对值计算子单元,用于计算得到当前帧中所有像素的取值与参考帧中对应像素取值的差的绝对值;
绝对值筛除子单元,用于从当前帧所有像素对应的差的绝对值中,将表示非噪声的各绝对值筛除;
噪声确定子单元,用于将筛除剩余的绝对值的平均值确定为当前帧与参考图像整帧之间的噪声幅度;
且,所述区域调整单元依据当前帧与参考图像整帧之间的噪声幅度,执行对当前帧中所有宏块所对应的搜索区域大小的调整。
所述噪声检测单元进一步包括阈值存储子单元,用于存储预设阈值,该预设阈值的取值为预先统计得到的噪声高斯概率分布中满足3σ准则的取值;所述噪声确定子单元进一步将大于所述预设阈值的绝对值确定为表示非噪声的绝对值。
该控制装置进一步包括调整配置单元,用于存储所述调整规则,且所述调整规则包括:噪声幅度每提升预设的步长、或预设的倍数,则搜索区域在各方向上等比缩小。
由上述技术方案可见,本发明能够依据当前帧中的噪声幅度实现搜索区域大小的动态调整,进而能够降低由图像噪声对运动搜索准确度的影响,而且还能够减少不必要的视频编码计算量和传输码率。
较佳地,本发明还能够在宏块级调整搜索区域大小,从而能够提高本发明对搜索区域动态调整的控制精度,进而能够进一步降低由图像噪声对运动搜索准确度的影响,并进一步减少不必要的视频编码计算量和传输码率。
附图说明
图1为现有运动搜索所设定的搜索区域示意图;
图2为本发明实施例中视频编码中的运动搜索控制方法流程示意图;
图3为本发明实施例中视频编码中的运动搜索控制装置结构示意图;
图4为如图3所示控制装置中噪声检测单元的一种结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
本发明实施例中,在视频编码的运动搜索之前,增加了一个噪声估计环节。而本发明实施例所增加的噪声估计环节并不是像现有技术那样用来评估图像质量、也不是用来确定如何进行图像处理,而是用来根据估计出的帧间噪声幅度,动态调整当前帧中各宏块所对应的搜索区域大小。
具体来说,本发明实施例中视频编码中的运动搜索控制方法,主要包括如下两个步骤:
a1、计算当前帧与参考图像之间的噪声幅度。
a2、依据计算得到的噪声幅度,调整当前帧中各宏块在参考帧所对应的搜索区域大小。
较佳地,对于该控制方法可以在宏块级调整搜索区域的大小,以提高调整的精度,进而进一步降低由图像噪声对运动搜索准确度的影响,并进一步减少不必要的视频编码计算量和传输码率。
如果在宏块级调整,则需要将当前帧中每一宏块作为当前宏块、并执行步骤a1,以计算当前帧中各宏块与参考图像对应像素区域之间的噪声幅度,且步骤a2也需要分别依据当前帧中每一宏块的噪声幅度,调整该宏块所对应的搜索区域大小。
图2为本发明实施例中视频编码中的运动搜索控制方法流程示意图。如图2所示,以在宏块级调整搜索区域的大小为例,该控制方法依次将当前帧中每一宏块作为当前宏块、并执行如下步骤:
步骤201,将参考图像中与当前宏块位置相同的像素区域,确定为当前宏块对应的参考宏块。
步骤202,计算得到当前宏块中所有像素的取值与参考宏块中对应像素取值的差的绝对值。
步骤203,从当前宏块对应所有像素对应的差的绝对值中,将表示非噪声的各绝对值筛除。
实际应用中,可选取一预设阈值,该预设阈值的取值为:按照现有方式预先统计得到的残差噪声高斯概率分布中满足3σ准则的取值。而当任一绝对值大于预设阈值时,则表示对应的像素取值在当前宏块和参考宏块之间的差异是由运动物体所引发、而非由噪声引发。这样,本步骤中可进一步将大于预设阈值的绝对值确定为表示非噪声的绝对值。
步骤204,将筛除剩余的绝对值的平均值确定为当前宏块与参考图像对应像素区域之间的噪声幅度。
上述步骤201~204即为对当前宏块执行前述步骤a1的一种具体处理过程。
步骤205,依据当前宏块与参考图像对应像素区域之间的噪声幅度,调整当前宏块所对应的搜索区域大小。
在本步骤中,可进一步按照噪声幅度越大、则搜索区域越小的趋势,执行对当前宏块对应的搜索区域大小的调整。其中,噪声幅度越大、则搜索区域越小的趋势可具体体现为噪声幅度每提升预设的步长、或预设的倍数,则搜索区域在各方向上等比缩小;或者,体现为任一种递减函数。
当然,本步骤中也可进一步按照噪声幅度越大、则搜索区域越大的趋势执行对当前宏块对应的搜索区域大小的调整。实际应用中采用哪一种趋势执行调整,可依据需要任意选定。
本步骤即为对当前宏块执行前述步骤a2的一种具体处理过程。
至此,本步骤结束。
除了按照如图2的方式在宏块级调整搜索区域的大小之外,本发明实施例当然也可以在帧级调整搜索区域的大小。
如果在帧级调整,则对于当前帧可以只执行一次步骤a1和一次步骤a2,而执行步骤a1和步骤a2原理可以与图2中的相应步骤基本相同:
在步骤a1,先计算得到当前帧中所有像素的取值与参考帧中对应像素取值的差的绝对值;然后从当前帧所有像素对应的差的绝对值中,将表示非噪声的各绝对值筛除;再将筛除剩余的绝对值的平均值确定为当前帧与参考图像整帧之间的噪声幅度;
而在步骤a2,则依据当前帧与参考图像整帧之间的噪声幅度,执行对当前帧中的所有宏块所对应的搜索区域、即对当前帧中进行运动搜索所需采用的所有搜索区域大小的调整。也就是说,该调整后的搜索区域大小对当前帧中所有的宏块均有效。
实际应用中,究竟是在宏块级、还是帧级、再或者其他大小的单位像素区域实现调整,可根据需要任意设定。例如,如图2所示的控制方法还进一步预先设定表示一个宏块、或整帧图像的单位像素区域;相应地,在步骤a1即可进一步按照该单位像素区域,计算当前帧中各单位像素区域与参考图像中的对应像素区域之间的噪声幅度。
如上可见,本发明实施例中视频编码中的运动搜索控制方法,能够依据当前帧中的噪声幅度实现搜索区域大小的动态调整,进而能够降低由图像噪声对运动搜索准确度的影响。
假设,监控场景中没有任何运动物体,那么在无噪声时的正确运动搜索结果应当是:当前帧中所有宏块的运动向量均为零,即针对当前帧无须进行任何熵编码操作、也无须传输任何码流。如果当前帧和参考帧中均存在噪声,则对包含有噪声的当前宏块进行运动搜索之前,先计算出当前帧与参考图像之间的噪声幅度,然后按照噪声幅度越大、则搜索区域越小的趋势缩小搜索区域的大小。
如此一来,即便参考帧中噪声集中的位置不同于当宏块在当前帧中的位置、且当前帧和参考帧中噪声集中位置之间的SAD非常小,但由于缩小了搜索区域的大小,因而也就降低了误将参考帧中噪声集中的位置确定为当前宏块在参考帧中的最佳匹配位置的概率,从而就降低了误产生非零运动向量的概率,进而也就降低了由图像噪声对运动搜索准确度的影响,且还能够进一步减少对错误信息进行熵编码并传输的概率,减少了视频编码不必要的计算量和传输码率。
图3为本发明实施例中视频编码中的运动搜索控制装置结构示意图。如图3所示,本实施例中视频编码中的运动搜索控制装置包括:
噪声检测单元301,用于计算当前帧与参考图像之间的噪声幅度;
区域调整单元302,用于依据计算得到的噪声幅度,调整当前帧中各宏块在参考帧所对应的搜索区域大小。
可选地,如图3所示的控制装置还可以进一步包括调整配置单元303,用于存储表示噪声幅度越大、则搜索区域越小的调整规则,或存储表示噪声幅度越大、则搜索区域越大的调整规则。例如,表示噪声幅度越大、则搜索区域越小的调整规则体现为噪声幅度每提升预设的步长、或预设的倍数,则搜索区域在各方向上等比缩小;或者,体现为任一种递减函数。这种情况下,区域调整单元302进一步按照该调整规则执行所述调整。
较佳地,如图3所示的控制装置可以在宏块级调整搜索区域的大小。
如果在宏块级调整,则需要将当前帧中每一宏块作为当前宏块、并由噪声检测单元301和区域调整单元302针对当前宏块执行相应处理。
参见图4,以在宏块级调整搜索区域的大小为例,噪声检测单元301依次将当前帧中每一宏块确定为当前宏块、并包括:
参考宏块子单元311,用于将参考图像中与当前宏块位置相同的像素区域确定为当前宏块对应的参考宏块;
绝对值计算子单元312,用于计算得到当前宏块中所有像素与参考宏块中对应像素的差的绝对值;
绝对值筛除子单元313,用于从当前宏块对应所有像素对应的差的绝对值中,将表示非噪声的各绝对值筛除;
噪声确定子单元314,用于将筛除剩余的绝对值的平均值确定为当前宏块与参考图像对应像素区域之间的噪声幅度。
可选地,噪声检测单元301可进一步包括阈值存储子单元315,用于存储预设阈值,该预设阈值的取值为:按照现有方式预先统计得到的残差噪声高斯概率分布中满足3σ准则的取值。这种情况下,噪声确定子单元314进一步将大于该预设阈值的绝对值确定为表示非噪声的绝对值。
同样为了在宏块级调整搜索区域的大小,区域调整单元302则相应地依据当前宏块与参考图像对应像素区域之间的噪声幅度,调整当前宏块所对应的搜索区域大小。
除了在宏块级调整之外,如图3所示的控制装置当然也可以在帧级调整搜索区域的大小。如果在帧级调整,则可以只需由噪声检测单元301和区域调整单元302针对当前帧执行一次相应处理即可。
这种情况下,噪声检测单元301只需包括如图4所示:绝对值计算子单元312、绝对值筛除子单元313、噪声确定子单元314、以及可选的阈值存储子单元315,其中,
绝对值计算子单元312,用于计算得到当前帧中所有像素的取值与参考帧中对应像素取值的差的绝对值;
绝对值筛除子单元313,用于从当前帧所有像素对应的差的绝对值中,将表示非噪声的各绝对值筛除;
噪声确定子单元314,用于将筛除剩余的绝对值的平均值确定为当前帧与参考图像整帧之间的噪声幅度;可选地,噪声确定子单元314可进一步将大于阈值存储子单元315中预设阈值的绝对值确定为表示非噪声的绝对值。
相应地,区域调整单元302依据当前帧与参考图像整帧之间的噪声幅度,执行对当前帧中所有宏块所对应的搜索区域、即对当前帧中进行运动搜索所需采用的所有搜索区域大小的调整。也就是说,该调整后的搜索区域大小对当前帧中所有的宏块均有效大小的调整。
实际应用中,究竟是在宏块级、还是帧级、再或者其他大小的单位像素区域实现调整,可根据需要任意设定。例如,如图3所示的控制装置还进一步包括精度设定单元(图3中未示出),其内部设定有表示一个宏块或整帧图像的单位像素区域;相应地,噪声检测单元301即可进一步按照该单位像素区域,计算当前帧中各单位像素区域与参考图像中的对应像素区域之间的噪声幅度。
如上可见,本发明实施例中视频编码中的运动搜索控制装置,能够依据当前帧中的噪声幅度实现搜索区域大小的动态调整,进而能够降低由图像噪声对运动搜索准确度的影响。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。