具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明实施例作进一步详细的说明。
实施例一
本实施例提供了一种编码端的区块移动侦测方法,如图1所示,包括:
S10,在对当前区块进行编码操作时,利用编码参数和预置的灵敏度档位Sensitivity计算辅助参数;所述编码参数至少包括当前区块运动矢量MV;所述辅助参数至少包括所述MV的绝对值的和与第一门限值;
其中,所述区块包括一个或两个以上宏块,一个帧中的区块排列比较规则,如图2a~2c所示。编码参数为编码过程中必然形成的中间参数,可以包括当前区块的MV、当前区块的帧间差异度量inter_cost、帧内差异度量intra_cost,当然,根据需要还可以包括与当前帧相距第一数量的帧内全部区块的帧间差异度量和帧内差异度量等;所述第一数量为至少一个。辅助参数为根据编码参数计算得到的对于移动侦测起辅助作用的参数,可以包括MV的绝对值的和与第一门限值。
S20,通过与所述编码参数和辅助参数对应的判断模型,确定当前区块的运动状态。
所述区块的运动状态最终会被判定为运动或静止,以完成移动侦测的目的。判定过程会使用到上述的编码参数和辅助参数。对于编码参数和辅助参数,存在与所述编码参数和辅助参数对应的判断模型,所述判断模型中定义了所使用的编码参数和辅助参数的输入位置与最终输出结果的对应流程关系。针对每种编码参数和辅助参数的组合,可以存在一个对应的判断模型。判断模型可以预置在编码器或其他外部存储设备中,均不影响本发明的实施,本发明对此不做限定。
下面通过几个具体实施例对上述方法进行详细介绍。
A)本实施例的编码参数包括当前区块的运动矢量MV,辅助参数包括MV绝对值的和MV_abs、第一门限值。
如图3所示,则S10具体可以为:
S101,通过当前区块的MV计算所述MV的绝对值的和,通过Sensitivity计算所述第一门限值。
其中,MV是编码器编码过程中产生的编码参数,MV的绝对值的和MV_abs可以为该MV在X方向和Y方向的绝对值之和,即MV_abs=abs(MVx)+abs(MVy);Sensitivity是用户根据实际需要选择的。本发明可以预设8个Sensitivity0~7,0的级别最低,7的级别最高最敏感;初始会设置一个默认级别的Sensitivity(如3),之后用户可以根据需要进行调整。
后续描述的各个辅助参数的计算方法都是以一个区块中包括一个宏块为例进行计算,但是本领域技术人员根据已掌握的现有技术知识及本发明的启示,能够容易的得到适合一个区块的对应的辅助参数计算方法。例如,对于各个区块包含的宏块数相等的情况,区块的MV绝对值的和可以是区块内全部宏块的MV绝对值的和之和,也可以是区块内全部宏块的MV绝对值的和之和的平均值。其中,如果一个宏块在编码过程中使用宏块分割模式,宏块的MV是这个宏块内所有单元像素块的MV的绝对值的和的平均值,每个单元像素块可以为4×4的像素块;那么当前区块的MV的绝对值的和可以为对当前区块内的所有宏块的单元像素块的MV的绝对值的和求平均值;或者为对当前区块内的每个宏块的单元像素块的MV的绝对值的和的平均值求和。对于各个区块包含的宏块数不统一的情况,区块的MV绝对值的和可以为区块内全部宏块的MV绝对值的和之和的平均值。同理,其他辅助参数,也可以采用同样的处理方式。当然,处理方式还有很多,本领域技术人员可以根据实际需要自行选择,在此不一一列举。将一个以上宏块划分到一个区块中,在进行移动侦测时,可以对于整个区块的运动状态判定一次,节约了在判定过程中占用的资源、缩短了判定的时间。
第一门限值可以为10与Sensitivity差值的4倍,具体可以将10与Sensitivity差值的32位二进制码左移两位,即(10-Sensitivity)<<2计算,其中<<2表示左移两位。
步骤S20可以为:
S102,当所述MV绝对值的和小于第一门限值时,判定当前区块静止;其他情况则判定当前区块运动。
本实施例的区块移动侦测方法,通过使用区块编码过程中形成的编码参数,简单处理计算出辅助参数,再通过与所述编码参数和辅助参数对应的判断模型,对区块的运动状态进行判定。由于不需要存储图像,因此大大节省了移动侦测对内存的开销,降低了移动侦测的计算量,编码器的CPU就可以在编码区块的过程中进行区块的移动侦测计算,不需外部软硬件资源,节省成本且移动侦测的速度块。
B)本实施例的编码参数包括当前区块的MV、当前区块的帧间差异度量inter_cost、与当前帧相距第一数量的帧内全部区块的帧间差异度量;所述第一数量为至少一个;辅助参数包括MV绝对值的和、第一门限值、第二门限值。
如图4所示,则S10具体可以包括:
S201,通过当前区块的MV计算所述MV的绝对值的和,通过Sensitivity计算所述第一门限值,通过与当前帧相距第一数量的帧内全部区块的帧间差异度量得到与当前帧相距第一数量的帧内全部区块的帧间差异度量平均值inter_cost_average。
其中,当前区块的inter_cost是当前编码区块中的各个宏块完成运动估值之后输出的宏块inter_cost的和或平均值;与当前帧相距第一数量的帧内全部区块的帧间差异度量在编码后保存在内存中,在当前区块进行编码时,编码器CPU对所述与当前帧相距第一数量的帧内全部区块的帧间差异度量进行处理,计算出与当前帧相距第一数量的帧内全部区块的帧间差异度量平均值inter_cost_average。
S202,利用所述inter_cost_average和Sensitivity进一步计算第二门限值。
对于仅包含一个宏块的区块,其第二门限值可以为inter_cost_average-10x Sensitivity。
步骤S20具体可以为:
S203,当所述MV绝对值的和小于第一门限值且inter_cost小于第二门限值时,判定当前区块静止;其他情况则判定当前区块运动。
C)本实施例的编码参数包括当前区块的运动矢量MV、当前区块的inter_cost、帧内差异度量intra_cost、与当前帧相距第一数量的帧内全部区块的和帧内差异度量,辅助参数包括MV绝对值的和、第一门限值、第二门限值和第三门限值。
如图5所示,步骤S10具体可以包括:
S301,通过当前区块的MV计算所述MV的绝对值的和,通过Sensitivity计算所述第一门限值,通过与当前帧相距第一数量的帧内全部区块的帧间差异度量得到与当前帧相距第一数量的帧内全部区块的帧间差异度量平均值inter_cost_average,通过与当前帧相距第一数量的帧内全部区块的帧内差异度量得到与当前帧相距第一数量的帧内全部区块的帧内差异度量平均值intra_cost_average。
其中,当前区块的inter_cost,intra_cost是当前区块中的各个宏块完成运动估值和帧内模式估计之后输出的宏块inter_cost,intra_cost的和或平均值;与当前帧相距第一数量的帧内全部区块的inter_cost_average和intra_cost_average分别是与当前帧相距第一数量的帧的所有区块Inter_cost和intra_cost的平均值。
S302,利用所述inter_cost_average和Sensitivity进一步计算第二门限值,利用所述intra_cost_average和Sensitivity进一步计算第三门限值。
对于仅包含一个宏块的区块,其第三门限值可以为intra_cost_average-10x Sensitivity。
当第一侦测参数还包括量化系数QP时,优选的,第二门限值和第三门限值还根据所述QP调整得到,例如,第二门限值可以为inter_cost_average-10xSensitivity+10x(QP/5),第三门限值可以为intra_cost_average-10xSensitivity+10x(QP/5),其中,“/”为取整除法。
QP是编码器在编码过程的一个重要相关参数,有两种获取方式,一种可以是根据编码过程中的码率控制从而动态计算而来;另外一种方式可以在编码器设置里面预先设定。
步骤S20具体可以为:
S303,当所述MV绝对值的和小于第一门限值、inter_cost小于第二门限值且intra_cost小于第三门限值时,判定当前区块静止;其他情况则判定当前区块运动。
D)本实施例的编码参数包括当前区块的MV、与当前区块相邻的至少一个已编码区块的运动状态,辅助参数包括MV绝对值的和与第一门限值。如图6所示,步骤S10具体可以为:
S401,通过当前区块的MV计算所述MV的绝对值的和,通过Sensitivity计算所述第一门限值。
与所述当前区块相邻的已编码区块可以包括左上、上、右上、左区块(参见图7),这些已编码完成的区块的运动状态已经确定。
S20具体可以为:
S402,当所述MV绝对值的和小于第一门限值且所述与当前区块相邻的至少一个已编码区块的运动状态满足预设条件时,判定当前区块静止;其他情况则判定当前区块运动。
根据相邻区块的运动状态判断当前区块的运动状态,是由于摄像机对高反差静止物体存在边缘的紫边和色散效应,从而进行的修正处理。
例如,获取的是当前区块的左、左上和上区块的运动状态,所述预设条件为大于等于2个相邻区块静止,或获取的相邻区块中没有一个是运动的。当然,需要获取运动状态的相邻区块还可以为左上和右上区块、或左和右上区块等多种组合方式,预设条件也可以为上区块静止、或左区块静止、或上区块静止且大于等于2个相邻区块静止等多种组合,此处不再列举。
E)本实施例的编码参数包括当前区块的MV、当前区块编码后的码流长度、与当前区块相距第二数量的帧的相同位置的编码区块码流长度;所述第二数量为至少一个;辅助参数包括MV绝对值的和与第一门限值。
如图8所示,步骤S10具体可以为:
S501,通过当前区块的MV计算所述MV的绝对值的和,通过Sensitivity计算所述第一门限值。
本实施例中,各个区块中的宏块数量需要一致。所述当前区块编码后的码流长度,可以通过计算组成当前区块的各个宏块的首尾码流移动指针的差值,获得所述各个宏块的编码后码流长度,最后将这些差值相加即为当前宏块编码后的码流长度,单位为字节;与当前区块相距第二数量的帧的相同位置的编码区块码流长度在所述与当前帧相距第二数量的帧编码完成后进行缓存。
S20具体可以为:
S502,当所述MV绝对值的和小于第一门限值且当前区块编码后的码流长度小于等于与当前区块相距第二数量的帧的相同位置的编码区块码流长度时,判定当前区块静止;其他情况则判定当前区块运动。
F)本实施例的编码参数包括当前区块的MV、当前区块的inter_cost、intra_cost、与当前帧相距第一数量的帧内全部区块的帧间差异度量和帧内差异度量、与当前区块相邻的至少一个已编码区块的运动状态,辅助参数包括MV绝对值的和、第一门限值、第二门限值和第三门限值。
如图9所示,S10具体可以包括:
S601,通过当前区块的MV计算所述MV的绝对值的和,通过Sensitivity计算所述第一门限值,通过与当前帧相距第一数量的帧内全部区块的帧间差异度量得到与当前帧相距第一数量的帧内全部区块的帧间差异度量平均值inter_cost_average,通过与当前帧相距第一数量的帧内全部区块的帧内差异度量得到与当前帧相距第一数量的帧内全部区块的帧内差异度量平均值intra_cost_average。
S602,利用所述inter_cost_average和Sensitivity进一步计算第二门限值,利用所述intra_cost_average和Sensitivity进一步计算第三门限值。
步骤S20具体可以为:
S603a,当MV绝对值的和小于第一门限值且当前区块的inter_cost小于第二门限值时,判定当前区块静止;若否,则进入S603b:当MV绝对值的和大于等于第一门限值的两倍以上、且inter_cost大于等于第二门限值的两倍以上,判定当前区块运动;其他情况判定为第一次待定,进入S604a;
S604a,当MV绝对值的和小于等于第一门限值、inter_cost小于等于第二门限值且intra_cost小于等于第三门限值,则判定为静止;若否,则进入S604b:若MV绝对值的和大于等于第一门限值、且inter_cost大于等于第二门限值或intra_cost大于等于第三门限值,则判定为运动;其他情况判定为第二次待定,进入S605;
S605,当与当前区块相邻的至少一个已编码区块的运动状态满足预设条件时,判定当前区块静止;其他情况判定为第三次待定,执行S606;
S606,当MV绝对值的和小于第一门限值、inter_cost大于第二门限值、intra_cost大于第三门限值且Sensitivity不是最高级时,判定当前区块静止;其他情况判定为运动。
在根据相邻区块的运动状态判断当前区块进入第三次待定,是由于摄像机对高反差静止物体存在边缘的紫边和色散效应,从而进行的修正处理。
G)本实施例的编码参数包括当前区块的MV、与当前帧相距第二数量的帧的相同位置的编码区块码流长度、当前区块编码后的码流数据长度、当前区块编码后的码流长度、与当前区块相邻的至少一个已编码区块的运动状态,所述第二数量为至少一个;辅助参数包括MV绝对值的和与第一门限值。
如图10所示,步骤S10具体可以为:
S701,通过当前区块的MV计算所述MV的绝对值的和,通过Sensitivity计算所述第一门限值。
S20具体可以为:
S702,当所述MV绝对值的和小于第一门限值且所述当前区块编码后的码流长度小于等于与当前区块相距第二数量的帧的相同位置的编码区块码流长度时,判定当前区块静止;当所述MV绝对值的和大于等于第一门限值的两倍以上、且所述当前区块编码后的码流长度大于所述与当前区块相距第二数量的帧的相同位置的编码区块码流长度的两倍以上时,判定当前区块运动;其他情况判定为第一次待定;
S703,所述第一次待定中,与当前区块相邻的至少一个已编码区块的运动状态满足预设条件时,判定当前区块静止;其他情况判定为第二次待定;
S704,所述第二次待定中,当MV绝对值的和小于第一门限值、所述当前区块编码后的码流长度大于所述与当前区块相距第二数量的帧的相同位置的编码区块码流长度且Sensitivity不是最高级时,判定当前区块静止;其他情况判定为运动。
若所述侦测参数还包括量化系数QP,则所述当前区块编码后的码流长度和与当前区块相距第二数量的帧的相同位置的编码区块码流长度还根据所述QP调整得到。下面以一个区块中仅包含一个宏块为例:
若同一帧中宏块的QP不完全相同,则设定一个基准QP,宏块编码后的码流长度优选进行一个归一化处理,归一化后的宏块码流长度为(1+12.5%)ΔQP×current_macroblock_bytes,current_macroblock_bytes为当前宏块编码后的码流长度。ΔQP为基准QP和当前宏块的QP差值。例如,基准QP为25,如果某一宏块的QP为26,码流长度为30字节,那么,所述宏块归一化之后的码流长度为(1+12.5%)(25-26)×30=0.88×30=26.4字节。所有宏块的平均值都以归一化之后的码流长度进行计算平均。
若各个帧之间的基准QP不同,优选的,还对宏块码流长度进行修正,修正后的宏块码流长度为(1+12.5%)ΔQP×previous_macroblock_bytes,其中,所述previous_macroblock_bytes为与当前帧相距第二数量的帧的相同位置的编码区块码流长度。基准QP之间的差值越大,修正幅度越大。例如,与当前帧相距第二数量的帧的基准QP为25,与当前帧相距第二数量的帧的相同位置的编码区块的码流长度为40字节,当前帧的基准QP为26,那么与当前帧相距第二数量的帧的相同位置的编码区块的码流长度修正值=(1+12.5%)(25-26)×40=0.88×40=35.2字节。也就是说,上一帧的码流长度修正值取35.2字节(映射到以QP为26的新基准的归一化)。
虽然上面详细描述了几个实施例,但是本领域技术人员根据本发明的启示,还能够得到编码参数和辅助参数的更多组合侦测方式。
本实施例的区块移动侦测方法,通过使用区块编码过程中形成的编码参数计算出辅助参数,利用编码参数和辅助参数对区块的运动状态进行判定,对于编码端,移动侦测可以与视频编码过程同时进行,不需要专用的硬件电路设备完成移动侦测,节约成本;对于低照度情况下电子噪声对移动侦测的影响,可以参考周围已编码区块的运动状态确定当前区块的运动状态,抗噪声能力提高。
本实施例的编码端区块移动侦测方法,通过使用区块编码过程中形成的编码参数,简单处理计算出辅助参数,再通过与所述编码参数和辅助参数对应的判断模型,对区块的运动状态进行判定。由于不需要存储图像,因此大大节省了移动侦测对内存的开销,降低了移动侦测的计算量,编码器的CPU就可以在编码区块的过程中进行区块的移动侦测计算,不需外部软硬件资源,节省成本且移动侦测的速度块。
实施例二
本实施例提供了一种解码端的区块移动侦测方法,如图11所示,包括:
S11,在对当前区块进行解码操作时,利用解码参数和预置的灵敏度档位Sensitivity计算辅助参数;所述解码参数至少包括当前区块运动矢量MV;所述辅助参数至少包括所述MV的绝对值的和与第一门限值;
解码参数为解码过程中使用的中间参数,可以包括当前区块的MV、与当前区块相距第二数量的帧的相同位置的解码区块码流长度、当前区块解码后的码流长度等(解码端收到的编码后码流中不包含当前区块的inter_cost、intra_cost等编码过程的中间参数),所述第二数量为至少一个。辅助参数为根据解码参数计算得到的对于移动侦测起辅助作用的参数,可以包括MV的绝对值的和与第一门限值。
S22,通过与所述解码参数和辅助参数对应的判断模型,确定当前区块的运动状态;所述区块包括一个或两个以上宏块。
对于解码参数和辅助参数,存在与所述解码参数和辅助参数对应的判断模型,所述判断模型中定义了所使用的解码参数和辅助参数的输入位置与最终输出结果的对应流程关系。针对每种解码参数和辅助参数的组合,可以存在一个对应的判断模型。判断模型可以预置在解码器或其他外部存储设备中,均不影响本发明的实施,本发明对此不做限定。
下面通过几个具体实施例对上述方法进行详细介绍。
a)本实施例的解码参数包括当前区块的MV,辅助参数包括所述MV绝对值的和、第一门限值。
如图12所示,步骤S11具体可以为:
S111,通过当前区块的MV计算所述MV的绝对值的和,通过Sensitivity计算所述第一门限值;
MV的绝对值的和MV_abs可以为该MV在X方向和Y方向的绝对值之和,即MV_abs=abs(MVx)+abs(MVy),Sensitivity是用户根据实际需要选择的,有多个等级。对于宏块分割模式,所述当前区块MV绝对值的和为对当前区块内的所有宏块的单元像素块的MV的绝对值的和求平均值;或为对当前区块内的每个宏块的单元像素块的MV的绝对值的和的平均值求和。
第一门限值可以为10与Sensitivity差值的4倍,具体可以将10与Sensitivity差值的32位二进制码左移两位,即(10-Sensitivity)<<2。
S22具体可以为:
S112,当所述MV绝对值的和小于第一门限值时,判定当前区块静止;其他情况则判定当前区块运动。
b)本实施例的解码参数还包括与当前区块相邻的至少一个已解码区块的运动状态;
参见图13,步骤S11具体可以包括:
S221,通过当前区块的MV计算所述MV的绝对值的和,通过Sensitivity计算所述第一门限值;
S22具体可以包括:
S222,当所述MV绝对值的和小于第一门限值且所述与当前区块相邻的至少一个已解码区块的运动状态满足预设条件时,判定当前区块静止;其他情况则判定当前区块运动。
关于预设条件可以参见实施例一的相关介绍,本实施例不再赘述。
c)本实施例的解码参数还包括当前区块解码后的码流长度、与当前区块相距第二数量的帧的相同位置的解码区块码流长度;所述第二数量为至少一个;
其中,当前区块解码后的码流长度,可以通过计算组成当前区块的各个宏块的首尾码流移动指针的差值,获得所述各个宏块的编码后码流长度,最后将这些差值相加即为当前宏块编码后的码流长度,单位为字节;与当前区块相距第二数量的帧的相同位置的解码区块码流长度在所述与当前帧相距第二数量的帧解码完成后进行缓存,与实施例一中的相关内容相似。
如图14所示,步骤S11具体可以为:
S331,通过当前区块的MV计算所述MV的绝对值的和,通过Sensitivity计算所述第一门限值;
S22具体可以为:
S332,当所述MV绝对值的和小于第一门限值且当前区块解码后的码流长度小于等于与当前区块相距第二数量的帧的相同位置的解码区块码流长度时,判定当前区块静止;其他情况则判定当前区块运动。
所述解码参数还包括量化系数QP,则所述当前区块解码后的码流长度和所述与当前区块相距第二数量的帧的相同位置的解码区块码流长度还可以根据所述QP调整得到。调整过程与实施例一中对编码后宏块码流长度进行归一化处理的过程相似,此处不再赘述。
d)本实施例的解码参数还包括与当前区块相距第二数量的帧的相同位置的解码区块码流长度、当前区块解码后的码流长度、与当前区块相邻的至少一个已解码区块的运动状态;
如图15所示,步骤S11具体可以包括:
S441,通过当前区块的MV计算所述MV的绝对值的和,通过Sensitivity计算所述第一门限值;
步骤S22具体可以包括:
S442a,当所述MV绝对值的和小于第一门限值且所述当前区块解码后的码流长度小于等于与当前区块相距第二数量的帧的相同位置的解码区块码流长度时,判定当前区块静止;其他情况进入步骤S442b:当所述MV绝对值的和大于等于第一门限值的两倍以上、且所述当前区块解码后的码流长度大于所述与当前区块相距第二数量的帧的相同位置的解码区块码流长度的两倍以上时,判定当前区块运动;其他情况判定为第一次待定,进入S443;
S443,所述第一次待定中,与当前区块相邻的至少一个已解码区块的运动状态满足预设条件时,判定当前区块静止;其他情况判定为第二次待定,进入S444;
S444,所述第二次待定中,当MV绝对值的和小于第一门限值、所述当前区块解码后的码流长度大于所述与当前区块相距第二数量的帧的相同位置的解码区块码流长度且Sensitivity不是最高级时,判定当前区块静止;其他情况判定为运动。
本实施例的区块移动侦测方法,通过使用区块解码过程中解析获得的解码参数计算出辅助参数,利用解码参数和辅助参数对区块的运动状态进行判定,对于解码端,移动侦测可以与视频解码过程同时进行,不需要专用的硬件电路设备完成移动侦测,节约成本;对于低照度情况下电子噪声对移动侦测的影响,可以参考周围已编码区块的运动状态确定当前区块的运动状态,抗噪声能力提高。
本实施例的解码端区块移动侦测方法,通过使用区块解码过程中解析获得的解码参数,简单处理计算出辅助参数,再通过与所述解码参数和辅助参数对应的判断模型,对区块的运动状态进行判定。由于不需要存储图像,因此大大节省了移动侦测对内存的开销,降低了移动侦测的计算量,解码器的CPU就可以在解码区块的过程中进行区块的移动侦测计算,不需外部软硬件资源,节省成本且移动侦测的速度块。
实施例三
本实施例提供了一种编码端的区块移动侦测装置,如图16所示,包括:
辅助参数计算模块10,用于在对当前区块进行编码操作时,利用编码参数和预置的灵敏度档位Sensitivity计算辅助参数;所述编码参数至少包括当前区块运动矢量MV;所述辅助参数至少包括所述MV的绝对值的和与第一门限值;
判定模块20,用于通过与所述编码参数和辅助参数对应的判断模型,确定当前区块的运动状态。
所述移动侦测装置具体可以包括:
第一计算单元,用于通过当前区块的MV计算所述MV的绝对值的和,通过Sensitivity计算所述第一门限值;
第一判定单元,用于当所述MV绝对值的和小于第一门限值时,判定当前区块静止;其他情况则判定当前区块运动;
和/或
第二计算单元,用于当所述编码参数还包括当前区块的帧间差异度量inter_cost、与当前帧相距第一数量的帧内全部区块的帧间差异度量、所述辅助参数还包括第二门限值时,通过当前区块的MV计算所述MV的绝对值的和,通过Sensitivity计算所述第一门限值,通过与当前帧相距第一数量的帧内全部区块的帧间差异度量得到与当前帧相距第一数量的帧内全部区块的帧间差异度量平均值inter_cost_average;利用所述inter_cost_average和Sensitivity进一步计算第二门限值;所述第一数量为至少一个;
第二判定单元,用于当所述MV绝对值的和小于第一门限值且inter_cost小于第二门限值时,判定当前区块静止;其他情况则判定当前区块运动;
和/或
第三计算单元,用于当所述编码参数还包括当前区块的帧间差异度量inter_cost、帧内差异度量intra_cost、与当前帧相距第一数量的帧内全部区块的帧间差异度量和帧内差异度量、所述辅助参数还包括第二门限值和第三门限值时,通过当前区块的MV计算所述MV的绝对值的和,通过Sensitivity计算所述第一门限值,通过与当前帧相距第一数量的帧内全部区块的帧间差异度量得到与当前帧相距第一数量的帧内全部区块的帧间差异度量平均值inter_cost_average,通过与当前帧相距第一数量的帧内全部区块的帧内差异度量得到与当前帧相距第一数量的帧内全部区块的帧内差异度量平均值intra_cost_average;利用所述inter_cost_average和Sensitivity进一步计算第二门限值,利用所述intra_cost_average和Sensitivity进一步计算第三门限值;所述第一数量为至少一个;
第三判定单元,用于当所述MV绝对值的和小于第一门限值、inter_cost小于第二门限值且intra_cost小于第三门限值时,判定当前区块静止;其他情况则判定当前区块运动;
和/或
第四计算单元,用于当所述编码参数还包括与当前区块相邻的至少一个已编码区块的运动状态时,通过当前区块的MV计算所述MV的绝对值的和,通过Sensitivity计算所述第一门限值;
第四判定单元,用于当所述MV绝对值的和小于第一门限值且所述与当前区块相邻的至少一个已编码区块的运动状态满足预设条件时,判定当前区块静止;其他情况则判定当前区块运动;
和/或
第五计算单元,用于当所述编码参数还包括当前区块编码后的码流长度、与当前区块相距第二数量的帧的相同位置的编码区块码流长度时,通过当前区块的MV计算所述MV的绝对值的和,通过Sensitivity计算所述第一门限值;所述第二数量为至少一个;
第五判定单元,用于当所述MV绝对值的和小于第一门限值且当前区块编码后的码流长度小于等于与当前区块相距第二数量的帧的相同位置的编码区块码流长度时,判定当前区块静止;其他情况则判定当前区块运动;
和/或
第六计算单元,用于当所述编码参数还包括当前区块的帧间差异度量inter_cost、帧内差异度量intra_cost、与当前帧相距第一数量的帧内全部区块的帧间差异度量和帧内差异度量、与当前区块相邻的至少一个已编码区块的运动状态、所述辅助参数还包括第二门限值和第三门限值时;通过当前区块的MV计算所述MV的绝对值的和,通过Sensitivity计算所述第一门限值,通过与当前帧相距第一数量的帧内全部区块的帧间差异度量得到与当前帧相距第一数量的帧内全部区块的帧间差异度量平均值inter_cost_average,通过与当前帧相距第一数量的帧内全部区块的帧内差异度量得到与当前帧相距第一数量的帧内全部区块的帧内差异度量平均值intra_cost_average;利用所述inter_cost_average和Sensitivity进一步计算第二门限值,利用所述intra_cost_average和Sensitivity进一步计算第三门限值;所述第一数量为至少一个;
第六判定单元,用于当MV绝对值的和小于第一门限值且当前区块的inter_cost小于第二门限值时,判定当前区块静止;当MV绝对值的和大于等于第一门限值的两倍以上、且inter_cost大于等于第二门限值的两倍以上,判定当前区块运动;其他情况判定为第一次待定;所述第一次待定中,若MV绝对值的和小于等于第一门限值、inter_cost小于等于第二门限值且intra_cost小于等于第三门限值,则判定为静止;若MV绝对值的和大于等于第一门限值、且inter_cost大于等于第二门限值或intra_cost大于等于第三门限值,则判定为运动;其他情况判定为第二次待定;所述第二次待定中,与当前区块相邻的至少一个已编码区块的运动状态满足预设条件时,判定当前区块静止;其他情况判定为第三次待定;所述第三次待定中,当MV绝对值的和小于第一门限值、inter_cost大于第二门限值、intra_cost大于第三门限值且Sensitivity不是最高级时,判定当前区块静止;其他情况判定为运动;
和/或
第七计算单元,用于当所述编码参数还包括与当前区块相距第二数量的帧的相同位置的编码区块码流长度、当前区块编码后的码流长度、与当前区块相邻的至少一个已编码区块的运动状态时,通过当前区块的MV计算所述MV的绝对值的和,通过Sensitivity计算所述第一门限值;所述第二数量为至少一个;
第七判定单元,用于当所述MV绝对值的和小于第一门限值且所述当前区块编码后的码流长度小于等于与当前区块相距第二数量的帧的相同位置的编码区块码流长度时,判定当前区块静止;当所述MV绝对值的和大于等于第一门限值的两倍以上、且所述当前区块编码后的码流长度大于所述与当前区块相距第二数量的帧的相同位置的编码区块码流长度的两倍以上时,判定当前区块运动;其他情况判定为第一次待定;所述第一次待定中,与当前区块相邻的至少一个已编码区块的运动状态满足预设条件时,判定当前区块静止;其他情况判定为第二次待定;所述第二次待定中,当MV绝对值的和小于第一门限值、所述当前区块编码后的码流长度大于所述与当前区块相距第二数量的帧的相同位置的编码区块码流长度且Sensitivity不是最高级时,判定当前区块静止;其他情况判定为运动。
本实施例的区块移动侦测装置可以为编码器CPU,也可以为外部附加设备,本发明对此不做限制。
本实施例的编码端区块移动侦测装置,通过使用区块编码过程中形成的编码参数,简单处理计算出辅助参数,再通过与所述编码参数和辅助参数对应的判断模型,对区块的运动状态进行判定。由于不需要存储图像,因此大大节省了移动侦测对内存的开销,降低了移动侦测的计算量,编码器的CPU就可以在编码区块的过程中进行区块的移动侦测计算,不需外部软硬件资源,节省成本且移动侦测的速度块。
实施例四
本实施例提供了一种解码端的区块移动侦测装置,如图17所示,包括:
辅助参数计算模块11,用于在对当前区块进行解码操作时,利用解码参数和预置的灵敏度档位Sensitivity计算辅助参数;所述解码参数至少包括当前区块运动矢量MV;所述辅助参数至少包括所述MV的绝对值的和与第一门限值;
判定模块22,用于通过与所述解码参数和辅助参数对应的判断模型,确定当前区块的运动状态;所述区块包括一个或两个以上宏块。
所述移动侦测装置具体可以包括:
第一计算单元,用于通过当前区块的MV计算所述MV的绝对值的和,通过Sensitivity计算所述第一门限值;
第一判定单元,用于当所述MV绝对值的和小于第一门限值时,判定当前区块静止;其他情况则判定当前区块运动;
和/或
第二计算单元,用于当所述解码参数还包括与当前区块相邻的至少一个已解码区块的运动状态时,通过当前区块的MV计算所述MV的绝对值的和,通过Sensitivity计算所述第一门限值;
第二判定单元,用于当所述MV绝对值的和小于第一门限值且所述与当前区块相邻的至少一个已解码区块的运动状态满足预设条件时,判定当前区块静止;其他情况则判定当前区块运动;
和/或
第三计算单元,用于当所述解码参数还包括当前区块解码后的码流长度、与当前区块相距第二数量的帧的相同位置的解码区块码流长度时;通过当前区块的MV计算所述MV的绝对值的和,通过Sensitivity计算所述第一门限值;所述第二数量为至少一个;
第三判定单元,用于当所述MV绝对值的和小于第一门限值且当前区块解码后的码流长度小于等于与当前区块相距第二数量的帧的相同位置的解码区块码流长度时,判定当前区块静止;其他情况则判定当前区块运动;
和/或
第四计算单元,用于当所述解码参数还包括与当前区块相距第二数量的帧的相同位置的解码区块码流长度、当前区块解码后的码流长度、与当前区块相邻的至少一个已解码区块的运动状态时,通过当前区块的MV计算所述MV的绝对值的和,通过Sensitivity计算所述第一门限值;所述第二数量为至少一个;
第四判定单元,用于当所述MV绝对值的和小于第一门限值且所述当前区块解码后的码流长度小于等于与当前区块相距第二数量的帧的相同位置的解码区块码流长度时,判定当前区块静止;当所述MV绝对值的和大于等于第一门限值的两倍以上、且所述当前区块解码后的码流长度大于所述与当前区块相距第二数量的帧的相同位置的解码区块码流长度的两倍以上时,判定当前区块运动;其他情况判定为第一次待定;所述第一次待定中,与当前区块相邻的至少一个已解码区块的运动状态满足预设条件时,判定当前区块静止;其他情况判定为第二次待定;所述第二次待定中,当MV绝对值的和小于第一门限值、所述当前区块解码后的码流长度大于所述与当前区块相距第二数量的帧的相同位置的解码区块码流长度且Sensitivity不是最高级时,判定当前区块静止;其他情况判定为运动。
本实施例的区块移动侦测装置可以为解码器CPU,也可以为外部附加设备,本发明对此不做限制。
本实施例的解码端区块移动侦测装置,通过使用区块解码过程中解析获得的解码参数,简单处理计算出辅助参数,再通过与所述解码参数和辅助参数对应的判断模型,对区块的运动状态进行判定。由于不需要存储图像,因此大大节省了移动侦测对内存的开销,降低了移动侦测的计算量,解码器的CPU就可以在解码区块的过程中进行区块的移动侦测计算,不需外部软硬件资源,节省成本且移动侦测的速度块。
由于装置实施例与方法实施例的相似内容较多,因此介绍的比较简略,相关之处请参见方法实施例部分。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。