发明内容
本发明实施例提供一种低功耗编码方法及装置,以提供一种有效降低编码器功耗的方法。
第一方面,本发明提供一种低功耗编码方法,包括:
接收目标编码器发送的目标帧对应的skip宏块个数和运动矢量MV为预设值的宏块个数,所述目标帧是所述目标编码器当前编码的数据帧,所述目标编码器是主编码器;
依据所述skip宏块个数和所述运动矢量MV为预设值的宏块的个数获得编码复杂度指数,并依据所述编码复杂度指数判断所述目标帧对应的场景类型;
若连续多个所述目标帧分别对应的场景类型中第一预定场景的个数大于第一切换门限,则将从编码器作为所述目标编码器,以使所述从编码器对后续的目标帧进行编码。
如上所述的低功耗编码方法,优选的是,所述将从编码器作为所述目标编码器,以使所述从编码器对后续的目标帧进行编码之后,还包括:
若连续多个所述后续的目标帧分别对应的场景类型中第二预定场景的个数大于第二切换门限,则将所述主编码器作为所述目标编码器。
结合第一方面,在第一种可能的实现方式中,所述依据所述skip宏块个数和所述运动矢量MV为预设值的宏块个数获得编码复杂度指数包括:
依据公式Q=(M0+M1)/N计算所述编码复杂度指数Q,其中,M0表示所述skip宏块个数,M1表示所述运动矢量MV为预设值的宏块个数,N表示所述目标帧对应的宏块总个数;
所述预设值为0或所述预设值小于±1。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述依据所述编码复杂度指数判断所述目标帧对应的场景类型包括:
若所述编码复杂度指数大于第一复杂度门限,则判定所述目标帧对应的场景类型为第二预定场景;
若所述编码复杂度指数小于第二复杂度门限,则判定所述目标帧对应的场景类型为第一预定场景;
其中,所述第一复杂度门限大于所述第二复杂度门限。
结合第一方面,在第三种可能的实现方式中,所述低功耗编码方法还包括:
接收运动目标检测装置发送的所述目标帧中运动目标的个数i、各运动目标的大小Si、各运动目标的运动范围Wi和所述目标帧的图像大小S,并依据P=Σ(Si/S)*|Wi|计算图像场景运动比例P;
所述依据所述编码复杂度指数判断所述目标帧对应的场景类型包括:
依据所述编码复杂度指数和所述图像场景运动比例判断所述目标帧对应的场景类型。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述依据所述编码复杂度指数和所述图像场景运动比例判断所述目标帧对应的场景类型包括:
若所述编码复杂度指数大于第一复杂度门限且所述图像场景运动比例大于第一运动强度门限,则判定所述目标帧对应的场景类型为第二预定场景;
若所述编码复杂度指数小于第二复杂度门限且所述图像场景运动比例小于第二运动强度门限,则判定所述目标帧对应的场景类型为第一预定场景;
其中,所述第一复杂度门限大于所述第二复杂度门限,所述第一运动强度门限大于所述第二运动强度门限。
第二方面,本发明提供一种编码预分析装置,包括:
接收模块,用于接收目标编码器发送的目标帧对应的skip宏块个数和运动矢量MV为预设值的宏块个数,所述目标帧是所述目标编码器当前编码的数据帧,所述目标编码器是主编码器;
计算模块,用于依据所述skip宏块个数和所述运动矢量MV为预设值的宏块的个数获得编码复杂度指数;
判断模块,用于依据所述编码复杂度指数判断所述目标帧对应的场景类型;
切换模块,用于若连续多个所述目标帧分别对应的场景类型中第一预定场景的个数大于第一切换门限,则将从编码器作为所述目标编码器,以使所述从编码器对后续的目标帧进行编码。
结合第二方面,在第一种可能的实现方式中,所述切换模块还用于若连续多个所述后续的目标帧分别对应的场景类型中第二预定场景的个数大于第二切换门限,则将所述主编码器作为所述目标编码器。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述计算模块具体用于依据公式Q=(M0+M1)/N计算所述编码复杂度指数Q,其中,M0表示所述skip宏块个数,M1表示所述运动矢量MV为预设值的宏块个数,N表示所述目标帧对应的宏块总个数;所述预设值为0或所述预设值小于±1。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述判断模块具体用于若所述编码复杂度指数大于第一复杂度门限,则判定所述目标帧对应的场景类型为第二预定场景;若所述编码复杂度指数小于第二复杂度门限,则判定所述目标帧对应的场景类型为第一预定场景;其中,所述第一复杂度门限大于所述第二复杂度门限。
结合第二方面,在第四种可能的实现方式中,所述接收模块还用于接收运动目标检测装置发送的所述目标帧中运动目标的个数i、各运动目标的大小Si、各运动目标的运动范围Wi和所述目标帧的图像大小S;
所述计算模块还用于依据P=Σ(Si/S)*|Wi|计算图像场景运动比例P;
所述判断模块还用于依据所述编码复杂度指数和所述图像场景运动比例判断所述目标帧对应的场景类型。
结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述判断模块具体用于若所述编码复杂度指数大于第一复杂度门限且所述图像场景运动比例大于第一运动强度门限,则判定所述目标帧对应的场景类型为第二预定场景;若所述编码复杂度指数小于第二复杂度门限且所述图像场景运动比例小于第二运动强度门限,则判定所述目标帧对应的场景类型为第一预定场景;
其中,所述第一复杂度门限大于所述第二复杂度门限,所述第一运动强度门限大于所述第二运动强度门限。
第三方面,本发明提供一种低功耗编码系统,包括所述的编码预分析装置、主编码器和从编码器;
所述主编码器或所述从编码器,用于作为目标编码器向所述编码预分析装置发送目标帧对应的skip宏块个数和运动矢量MV为预设值的宏块个数,以及对所述目标帧进行编码。
结合第三方面,在第一种可能的实现方式中,所述低功耗编码系统还包括运动目标检测装置,用于对所述目标帧进行检测以获得所述目标帧中运动目标的个数、各运动目标的大小、各运动目标的运动范围和所述目标帧的大小,并将所述目标帧中运动目标的个数、各运动目标的大小、各运动目标的运动范围和所述目标帧的大小发送给所述编码预分析装置。
本发明实施例提供的低功耗编码方法及装置,通过判断主编码器编码的目标帧对应的场景类型,并统计连续多个目标帧分别对应的场景类型中第一预定场景的个数,当第一预定场景的个数超出第一切换门限时,将从编码器作为目标编码器,使从编码器对后续的目标帧进行编码,由于从编码器消耗的功率比主编码器消耗的功率小,从编码器替代主编码器对第一预定场景对应的目标帧进行编码,相比于主编码器对第一预定场景对应的目标帧进行编码,有效降低了编码功耗。
具体实施方式
图1为本发明实施例提供的低功耗编码方法流程图。图2为本发明实施例提供的编码系统结构图。本发明实施例通过图2所示的编码系统提供了一种低功耗编码方法,编码系统包括编码预分析装置、主编码器和从编码器,主编码器和从编码器都用于实现视频编码,区别在于主编码器是压缩能力强、处理图像信息损失小及消耗功耗较大的编码器,而从编码器是压缩能力弱、处理图像信息损失大及消耗功耗较小的编码器,编码预分析装置的功能是选择主编码器或从编码器作为当前编码器,通过编码系统进行低功耗编码的具体步骤如下:
步骤S101、接收目标编码器发送的目标帧对应的skip宏块个数和运动矢量MV为预设值的宏块个数,所述目标帧是所述目标编码器当前编码的数据帧,所述目标编码器是主编码器;
主编码器作为目标编码器对视频文件的每帧图像进行编码,且当前编码的数据帧为目标帧,目标编码器对目标帧进行编码后能够获取到目标帧对应的skip宏块个数和运动矢量MV为预设值的宏块个数,并将计算出的kip宏块个数和运动矢量MV为预设值的宏块个数发送给编码预分析装置,本发明中,每个宏块对应有运动矢量MV;skip宏块指目标帧包括的所有宏块中没有携带数据的宏块。
步骤S102、依据所述skip宏块个数和所述运动矢量MV为预设值的宏块的个数获得编码复杂度指数,并依据所述编码复杂度指数判断所述目标帧对应的场景类型;
编码预分析装置依据所述skip宏块个数和所述运动矢量MV为预设值的宏块的个数计算编码复杂度指数,该编码复杂度指数能够反映出目标帧对应场景的复杂度,依据该复杂度判断目标帧的场景类型是简单运动场景、复杂运动场景或即不简单又不复杂运动场景。
步骤S103、若连续多个所述目标帧分别对应的场景类型中第一预定场景的个数大于第一切换门限,则将从编码器作为所述目标编码器,以使所述从编码器对后续的目标帧进行编码。
本发明实施例用第一预定场景指示简单运动场景,若主编码器连续编码的多个数据帧分别对应的场景类型中,第一预定场景的个数大于第一切换门限,说明第一预定场景较多,该第一切换门限是本领域技术人员设定的经验值,此时若依然利用主编码器编码此类场景的目标帧,将导致大量的编码功率消耗,需将从编码器作为目标编码器,使从编码器对后续的目标帧进行编码。如图2所示,YUV序列作为目标帧的图像数据经过主编码器编码后生成码流输出,编码预分析装置将主编码器切换为从编码器时具体如虚线所示关闭主编码器、实线所示开启从编码器,使YUV序列流入从编码器而不流入主编码器即可。
统计第一预定场景的个数具体有两种实施方式:一种是在主编码器开始编码之前,设定用于统计第一预定场景的个数的计数器S1的初始值为0,当检测出目标帧对应的场景类型是第一预定场景时,计数器S1的值加1,计数器S1的值即表示连续多个所述目标帧分别对应的场景类型中第一预定场景的个数;另一种是在主编码器开始编码之前,设定用于统计第一预定场景的个数的计数器S1的初始值为G(G>0),当检测出目标帧对应的场景类型是第一预定场景时,计数器S1的值减1,G与计数器S1的值的差值表示连续多个所述目标帧分别对应的场景类型中第一预定场景的个数。
本发明实施例通过判断主编码器编码的目标帧对应的场景类型,并统计连续多个目标帧分别对应的场景类型中第一预定场景的个数,当第一预定场景的个数超出第一切换门限时,将从编码器作为目标编码器,使从编码器对后续的目标帧进行编码,由于从编码器消耗的功率比主编码器消耗的功率小,从编码器替代主编码器对第一预定场景对应的目标帧进行编码,相比于主编码器对第一预定场景对应的目标帧进行编码,有效降低了编码功耗。
图3为本发明另一实施例提供的编码系统结构图。在上述实施例的基础上,其特征在于,所述将从编码器作为所述目标编码器,以使所述从编码器对后续的目标帧进行编码之后,还包括:若连续多个所述后续的目标帧分别对应的场景类型中第二预定场景的个数大于第二切换门限,则将所述主编码器作为所述目标编码器。
从编码器作为目标编码器后,从编码器开始对后续的目标帧进行编码,本发明实施例用第二预定场景表示复杂运动场景,当从编码器编码的连续多个后续的目标帧分别对应的场景类型中复杂运动场景的个数大于第二切换门限时,说明复杂运动场景较多,该第二切换门限是本领域技术人员设定的经验值,此时若依然采用从编码器编码此类场景的目标帧,将导致编码效果较差,此时需将主编码器作为目标编码器。如图3所示,YUV序列作为目标帧的图像数据经过从编码器编码后生成码流输出,编码预分析装置将从编码器切换为主编码器时具体如虚线所示关闭从编码器、实线所示开启主编码器,使YUV序列流入主编码器而不流入从编码器即可。
在本发明实施例的基础上,所述依据所述skip宏块个数和所述运动矢量MV为预设值的宏块个数获得编码复杂度指数包括:依据公式Q=(M0+M1)/N计算所述编码复杂度指数Q,其中,M0表示所述skip宏块个数,M1表示所述运动矢量MV为预设值的宏块个数,N表示所述目标帧对应的宏块总个数;所述预设值为0或所述预设值小于±1。
所述依据所述编码复杂度指数判断所述目标帧对应的场景类型包括:
若所述编码复杂度指数大于第一复杂度门限,则判定所述目标帧对应的场景类型为第二预定场景;若所述编码复杂度指数小于第二复杂度门限,则判定所述目标帧对应的场景类型为第一预定场景;其中,所述第一复杂度门限大于所述第二复杂度门限。
本发明实施例用Th1表示第一切换门限,Th2表示第二切换门限,Th3表示第二复杂度门限,Th4表示第一复杂度门限,Th4>Th3>0,第二复杂度门限和第一复杂度门限均是本领域技术人员设定的经验值,初始状态选择主编码器作为目标编码器,本发明实施例具体的实现方法步骤如下:
步骤S201、编码预分析装置设置第一计数器S1的值为G(G>0)、第二计数器S2的值为0,第一计数器S1用于计算简单运动场景的个数,第二计数器S2用于计算复杂运动场景的个数;
步骤S202、目标编码器编码目标帧,并向编码预分析装置输出目标帧对应的skip宏块个数M0,以及目标帧对应的运动矢量MV为零或者小于±1的宏块个数M1;
步骤S203、编码预分析装置根据Q=(M0+M1)/N计算目标帧对应的编码复杂度指数Q;
步骤S204、编码预分析装置判断Q的大小,若Q>Th4,则目标帧对应的运动场景是复杂运动场景,将第二计数器S2的值加1,否则第二计数器S2的值保持不变;
若Q<Th3,则目标帧对应的运动场景是简单运动场景,将第一计数器S1的值减1,否则第一计数器S1的值保持不变;
若Th3≤Q≤Th4,则目标帧对应的运动场景是既不简单又不复杂运动场景,此时返回步骤S202,目标编码器继续编码下一目标帧;
步骤S205、若(G-S1)>Th1且目标编码器是主编码器,则将从编码器设置为目标编码器,并转到步骤S201;
若(G-S1)>Th1且目标编码器是从编码器,则不切换当前的目标编码器,并转到步骤S201;
若S2>Th2且目标编码器是主编码器,则不切换当前的目标编码器,并转到步骤S201;
若S2>Th2且目标编码器是从编码器,则将主编码器设置为目标编码器,并转到步骤S201;
若(G-S1)≤Th1且S2≤Th2,则转到步骤S202,且不切换当前的目标编码器,使目标编码器继续编码下一目标帧。
本发明实施例通过编码复杂度指数判断目标帧对应的运动场景,提供了一种复杂运动场景和简单运动场景的有效识别方法。
图4为本发明另一实施例提供的编码系统结构图。在上述实施例的基础上,步骤S101还包括:接收运动目标检测装置发送的所述目标帧中运动目标的个数i、各运动目标的大小Si、各运动目标的运动范围Wi和所述目标帧的图像大小S,并依据P=Σ(Si/S)*|Wi|计算图像场景运动比例P;
如图4所示,运动目标检测装置对目标帧进行检测,并将获得的目标帧中运动目标的个数i、各运动目标的大小Si、各运动目标的运动范围Wi和所述目标帧的图像大小S发送给编码预分析装置,编码预分析装置具体依据P=Σ(Si/S)*|Wi|计算出图像场景运动比例P,图像场景运动比例可以反映出目标帧中运动目标的运动强度,且图像场景运动比例P越大,运动目标的运动强度越大,说明目标帧对应的场景类型是复杂运动场景,即图像场景运动比例P也可以作为判断目标帧对应的场景类型的一个依据。
步骤S102中所述依据所述编码复杂度指数判断所述目标帧对应的场景类型包括:依据所述编码复杂度指数和所述图像场景运动比例判断所述目标帧对应的场景类型。
本发明实施例依据目标帧对应的编码复杂度指数Q和图像场景运动比例P共同判断目标帧对应的场景类型。
所述依据所述编码复杂度指数和所述图像场景运动比例判断所述目标帧对应的场景类型包括:若所述编码复杂度指数大于第一复杂度门限且所述图像场景运动比例大于第一运动强度门限,则判定所述目标帧对应的场景类型为第二预定场景;若所述编码复杂度指数小于第二复杂度门限且所述图像场景运动比例小于第二运动强度门限,则判定所述目标帧对应的场景类型为第一预定场景;其中,所述第一复杂度门限大于所述第二复杂度门限,所述第一运动强度门限大于所述第二运动强度门限。
本发明实施例用Th3表示第二复杂度门限,Th4表示第一复杂度门限,Th4>Th3>0,Th5表示第二运动强度门限,Th6表示第一运动强度门限,Th6>Th5>0,第二运动强度门限和第一运动强度门限是本领域技术人员设定的经验值,在上述实施例的基础上步骤S202、S203和S204分别对应为下列步骤S302、S303和S304:
步骤S302、目标编码器编码目标帧,并向编码预分析装置输出目标帧对应的skip宏块个数M0,以及目标帧对应的运动矢量MV为零或者小于±1的宏块个数M1;
运动目标检测装置对目标帧进行检测,并将获得的目标帧中运动目标的个数i、各运动目标的大小Si、各运动目标的运动范围Wi和所述目标帧的图像大小S发送给编码预分析装置;
步骤S303、编码预分析装置根据Q=(M0+M1)/N计算目标帧对应的编码复杂度指数Q;编码预分析装置具体依据P=Σ(Si/S)*|Wi|计算出图像场景运动比例P;
步骤S304、编码预分析模分别判断编码复杂度指数Q和图像场景运动比例P的大小,若Q>Th4且P>Th6,则目标帧对应的运动场景是复杂运动场景,将第二计数器S2的值加1,否则第二计数器S2的值保持不变;
若Q<Th3且P<Th5,则目标帧对应的运动场景是简单运动场景,将第一计数器S1的值减1,否则第一计数器S1的值保持不变;
若Th3≤Q≤Th4或Th5≤P≤Th6,则目标帧对应的运动场景是既不简单又不复杂运动场景,此时返回步骤S202,目标编码器继续编码下一目标帧。
本发明实施例通过目标帧对应的编码复杂度指数和图像场景运动比例共同判断目标帧的运动场景,提高了检测复杂运动场景和简单运动场景的精确度。
本发明实施例提出在一个编码系统中放置两个不同压缩能力、不同功耗水平的编码器,根据场景切换,合理使用合适的编码器编码。主编码器算法无简化,压缩能力强,功耗较大,从编码器算法简单,压缩能力弱,功耗低;例如主编码器压缩率能力为1/N,成本为5mm2,工作功耗为960mW(编码2160P30视频序列,在40nm工艺下),从编码器压缩能力为1/M(M<N),成本为2.5-3mm2,工作功耗为400-500mW(编码2160P30视频序列,在40nm工艺下)。在简单运动场景下选择使用从编码器进行编码,一旦场景切换到复杂、大运动,则迅速切换到主编码器。举例来说,一般应用情况下,复杂运动场景大约会占到整个场景的20%左右,这样这个场景编码下来,大约功耗是500*0.8+960*0.2=592mW,比全部使用主编码器编码的方案,可降低38.3%的功耗,收益十分显著,即使复杂运动场景占到整个场景的50%,这个编码功耗也只有500*0.5+960*0.5=730mW,与全部使用主编码器编码相比,功耗可降低24%。
本发明实施例依据目标帧对应的编码信息确定目标帧对应的场景类型,统计目标编码器连续编码的多个目标帧中第一类场景(简单运动场景)对应的目标帧的个数,当所述个数小于阈值时,将从编码器作为目标编码器对下一目标帧进行编码,由于从编码器消耗的功率比主编码器消耗的功率小,则由主编码器切换到从编码器,使从编码器对简单运动场景对应的目标帧进行编码,相比于,简单运动场景以及复杂运动场景对应的目标帧均使用主编码器进行编码的方式,有效降低了编码功耗。
图5为本发明实施例提供的编码预分析装置的结构图。本发明实施例提供的编码预分析装置可以执行低功耗编码方法实施例提供的处理流程,如图5所示,编码预分析装置50包括接收模块51、计算模块52、判断模块53和切换模块54,其中,接收模块51用于接收目标编码器发送的目标帧对应的skip宏块个数和运动矢量MV为预设值的宏块个数,所述目标帧是所述目标编码器当前编码的数据帧,所述目标编码器是主编码器;计算模块52用于依据所述skip宏块个数和所述运动矢量MV为预设值的宏块的个数获得编码复杂度指数;判断模块53用于依据所述编码复杂度指数判断所述目标帧对应的场景类型;切换模块54用于若连续多个所述目标帧分别对应的场景类型中第一预定场景的个数大于第一切换门限,则将从编码器作为所述目标编码器,以使所述从编码器对后续的目标帧进行编码。
本发明实施例通过判断主编码器编码的目标帧对应的场景类型,并统计连续多个目标帧分别对应的场景类型中第一预定场景的个数,当第一预定场景的个数超出第一切换门限时,将从编码器作为目标编码器,使从编码器对后续的目标帧进行编码,由于从编码器消耗的功率比主编码器消耗的功率小,从编码器替代主编码器对第一预定场景对应的目标帧进行编码,相比于主编码器对第一预定场景对应的目标帧进行编码,有效降低了编码功耗。
在图5的基础上,切换模块54还用于若连续多个所述后续的目标帧分别对应的场景类型中第二预定场景的个数大于第二切换门限,则将所述主编码器作为所述目标编码器。
计算模块52具体用于依据公式Q=(M0+M1)/N计算所述编码复杂度指数Q,其中,M0表示所述skip宏块个数,M1表示所述运动矢量MV为预设值的宏块个数,N表示所述目标帧对应的宏块总个数;所述预设值为0或所述预设值小于±1。
判断模块53具体用于若所述编码复杂度指数大于第一复杂度门限,则判定所述目标帧对应的场景类型为第二预定场景;若所述编码复杂度指数小于第二复杂度门限,则判定所述目标帧对应的场景类型为第一预定场景;其中,所述第一复杂度门限大于所述第二复杂度门限。
本发明实施例提供的编码预分析装置可以具体用于执行上述图1所提供的方法实施例,具体功能此处不再赘述。
本发明实施例通过编码复杂度指数判断目标帧对应的运动场景,提供了一种复杂运动场景和简单运动场景的有效识别方法。
在图5的基础上,接收模块51还用于接收运动目标检测装置发送的所述目标帧中运动目标的个数i、各运动目标的大小Si、所述各运动目标的运动范围Wi和所述目标帧的图像大小S,计算模块52还用于依据P=Σ(Si/S)*|Wi|计算图像场景运动比例P;判断模块53还用于依据所述编码复杂度指数和所述图像场景运动比例判断所述目标帧对应的场景类型。
判断模块53具体用于若所述编码复杂度指数大于第一复杂度门限且所述图像场景运动比例大于第一运动强度门限,则判定所述目标帧对应的场景类型为第二预定场景;若所述编码复杂度指数小于第二复杂度门限且所述图像场景运动比例小于第二运动强度门限,则判定所述目标帧对应的场景类型为第一预定场景;其中,所述第一复杂度门限大于所述第二复杂度门限,所述第一运动强度门限大于所述第二运动强度门限。
本发明实施例提供的编码预分析装置可以具体用于执行上述图1所提供的方法实施例,具体功能此处不再赘述。
本发明实施例通过目标帧对应的编码复杂度指数和图像场景运动比例共同判断目标帧的运动场景,提高了检测复杂运动场景和简单运动场景的精确度。
图6为本发明实施例提供的低功耗编码系统的结构图。本发明实施例提供的低功耗编码系统可以执行低功耗编码方法实施例提供的处理流程。如图6所示,低功耗编码系统60包括上述实施例中的编码预分析装置50、主编码器61和从编码器62,主编码器61或从编码器62,用于作为目标编码器向编码预分析装置50发送目标帧对应的skip宏块个数和运动矢量MV为预设值的宏块个数,以及对所述目标帧进行编码。
本发明实施例提供的低功耗编码系统与图2和图3提供的编码系统一致,可以执行低功耗编码方法实施例提供的处理流程。
图7为本发明另一实施例提供的低功耗编码系统的结构图。本发明实施例提供的低功耗编码系统可以执行低功耗编码方法实施例提供的处理流程。如图7所示,在图6的基础上,低功耗编码系统60还包括运动目标检测装置63,运动目标检测装置63用于对目标帧进行检测以获得目标帧中运动目标的个数、各运动目标的大小、各运动目标的运动范围和目标帧的大小,并将目标帧中运动目标的个数、各运动目标的大小、各运动目标的运动范围和目标帧的大小发送给编码预分析装置50。
本发明实施例提供的低功耗编码系统与图4提供的编码系统一致,可以执行低功耗编码方法实施例提供的处理流程。
图8为本发明另一实施例提供的编码预分析装置的结构图。本发明实施例提供一种编码预分析装置,可以执行低功耗编码方法实施例提供的处理流程,如图8所示,编码预分析装置50包括总线82,以及连接到总线82的接口81、处理器83和存储器84,其中接口81用于接收目标编码器发送的目标帧对应的skip宏块个数和运动矢量MV为预设值的宏块个数,所述目标帧是所述目标编码器当前编码的数据帧,所述目标编码器是主编码器;存储器84用于存储指令,以及存储接口81接收到的目标编码器发送的目标帧对应的skip宏块个数和运动矢量MV为预设值的宏块个数;处理器83用于执行存储器84中存储的指令用于执行以下步骤,依据所述skip宏块个数和所述运动矢量MV为预设值的宏块的个数获得编码复杂度指数;依据所述编码复杂度指数判断所述目标帧对应的场景类型;若连续多个所述目标帧分别对应的场景类型中第一预定场景的个数大于第一切换门限,则将从编码器作为所述目标编码器,以使所述从编码器对后续的目标帧进行编码。
在本发明实施例中,可选地,处理器83还用于执行以下步骤,若连续多个所述后续的目标帧分别对应的场景类型中第二预定场景的个数大于第二切换门限,则将所述主编码器作为所述目标编码器。
在本发明实施例中,可选地,处理器83还用于执行以下步骤,依据公式Q=(M0+M1)/N计算所述编码复杂度指数Q,其中,M0表示所述skip宏块个数,M1表示所述运动矢量MV为预设值的宏块个数,N表示所述目标帧对应的宏块总个数;所述预设值为0或所述预设值小于±1。
在本发明实施例中,可选地,处理器83还用于执行以下步骤,若所述编码复杂度指数大于第一复杂度门限,则判定所述目标帧对应的场景类型为第二预定场景;若所述编码复杂度指数小于第二复杂度门限,则判定所述目标帧对应的场景类型为第一预定场景;其中,所述第一复杂度门限大于所述第二复杂度门限。
在本发明实施例中,可选地,接口81还用于接收运动目标检测装置发送的所述目标帧中运动目标的个数i、各运动目标的大小Si、各运动目标的运动范围Wi和所述目标帧的图像大小S;存储器84还用于存储接口81接收到的运动目标检测装置发送的所述目标帧中运动目标的个数i、各运动目标的大小Si、各运动目标的运动范围Wi和所述目标帧的图像大小S;处理器83还用于执行以下步骤,依据P=Σ(Si/S)*|Wi|计算图像场景运动比例P;依据所述编码复杂度指数和所述图像场景运动比例判断所述目标帧对应的场景类型。
在本发明实施例中,可选地,处理器83还用于执行以下步骤,若所述编码复杂度指数大于第一复杂度门限且所述图像场景运动比例大于第一运动强度门限,则判定所述目标帧对应的场景类型为第二预定场景;若所述编码复杂度指数小于第二复杂度门限且所述图像场景运动比例小于第二运动强度门限,则判定所述目标帧对应的场景类型为第一预定场景;其中,所述第一复杂度门限大于所述第二复杂度门限,所述第一运动强度门限大于所述第二运动强度门限。
本发明实施例通过判断主编码器编码的目标帧对应的场景类型,并统计连续多个目标帧分别对应的场景类型中第一预定场景的个数,当第一预定场景的个数超出第一切换门限时,将从编码器作为目标编码器,使从编码器对后续的目标帧进行编码,由于从编码器消耗的功率比主编码器消耗的功率小,从编码器替代主编码器对第一预定场景对应的目标帧进行编码,相比于主编码器对第一预定场景对应的目标帧进行编码,有效降低了编码功耗。
本发明实施例提供一种低功耗编码系统,可以执行低功耗编码方法实施例提供的处理流程,具体将图6或图7中的编码预分析装置50替换为图8所示的编码预分析装置50便可获得本发明实施例提供的低功耗编码系统。
本发明实施例提供的低功耗编码系统可以执行低功耗编码方法实施例提供的处理流程。
综上所述,本发明实施例通过判断主编码器编码的目标帧对应的场景类型,并统计连续多个目标帧分别对应的场景类型中第一预定场景的个数,当第一预定场景的个数超出第一切换门限时,将从编码器作为目标编码器,使从编码器对后续的目标帧进行编码,由于从编码器消耗的功率比主编码器消耗的功率小,从编码器替代主编码器对第一预定场景对应的目标帧进行编码,相比于主编码器对第一预定场景对应的目标帧进行编码,有效降低了编码功耗;通过编码复杂度指数判断目标帧对应的运动场景,提供了一种复杂运动场景和简单运动场景的有效识别方法;通过目标帧对应的编码复杂度指数和图像场景运动比例共同判断目标帧的运动场景,提高了检测复杂运动场景和简单运动场景的精确度。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。