一种用于视频编码系统的性能控制方法及编码器与流程

文档序号:12009041阅读:236来源:国知局
一种用于视频编码系统的性能控制方法及编码器与流程
本发明涉及视频编码领域,尤其涉及到一种用于视频编码系统的性能控制方法及编码器。

背景技术:
视频编码器在工作中通常会遇到处理性能不可控,主要原因如下:一、总线延迟(latency)影响,视频编码器所需的数据未能及时获得,导致视频编码器一直等待待处理数据返回;二、图像变化剧烈,导致视频编码器算法工具集(tools)中的计算模块处理时间变长,如运动估计不收敛、多模式预测时间过长等。现有技术中,当碰到性能不足问题,通常采取减小搜索窗,或者直接关闭某些tools来解决,但会降低编码压缩效率。例如,通过减少总线数据的读取来减少总线的影响。在视频编码器中,最典型减少总线数据读取的方式是减少运动估计过程中参考帧数据的载入,一般是减少参考帧的个数,更典型的是减小搜索窗大小,这种方式可以有效降低总线latency的影响,但是减少参考帧会同时也会降低编码压缩效率。另一种现有技术中,在视频编码中,关闭分数像素运动(Fractionalsample)估计功能,可以减少计算时间,但是关闭分数像素运动估计功能,仅使用整像素运动估计,会带来压缩效率下降,尤其在大范围复杂运动显得尤为明显。

技术实现要素:
本发明实施例提供了一种用于视频编码系统的性能控制方法,旨在解决编码性能不可控的问题。第一方面,一种用于视频编码系统的性能控制方法,其特征在于,所述方法包括:检测总线性能的值是否大于或等于预先设置的总线性能阈值,并且当所述总线性能的值大于或等于预先设置的总线性能阈值时,降低所述总线性能的值和所述计算性能的值;和/或检测计算性能的值是否大于或等于预先设置的计算性能阈值,并且当所述计算性能的值大于或等于预先设置的计算性能阈值时,降低所述计算性能的值。结合第一方面,在第一方面的第一种可能的实现方式中,所述当所述总线性能的值大于或等于预先设置的总线性能阈值时,降低所述总线性能的值和所述计算性能的值,包括:当所述总线性能的值大于或等于预先设置的总线性能阈值时,则关闭下一帧宏块参考数据的载入并减少编码器的计算性能的值。结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述当所述总线性能的值大于或等于预先设置的总线性能阈值,并且所述计算性能的值大于或等于预先设置的计算性能阈值时,降低所述总线性能的值和所述计算性能的值,包括:当所述总线性能的值大于或等于预先设置的总线性能阈值时,则关闭下一帧宏块参考数据的载入并减少编码器的计算性能的值。结合第一方面,在第一方面的第三种可能的实现方式中,所述当所述计算性能的值大于或等于预先设置的计算性能阈值时,降低所述计算性能的值,包括:当所述计算性能的值大于或者等于预先设置的计算性能的阈值时,则减少编码器的计算性能的值。结合第一方面或者第一方面的第一种可能的实现方式或者第一方面的第二种可能的实现方式或者第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述方法还包括:当所述总线性能的值小于所述预先设置的总线性能阈值时,则保持原先的编码器的计算性能的值。第二方面,一种编码器,所述编码器包括:检测单元,用于检测总线性能的值是否大于或等于预先设置的总线性能阈值;和/或检测计算性能的值是否大于或等于预先设置的计算性能阈值;降低单元,用于当所述总线性能的值大于或等于预先设置的总线性能阈值时,降低所述总线性能的值和所述计算性能的值;和/或当所述计算性能的值大于或等于预先设置的计算性能阈值时,降低所述计算性能的值。结合第二方面,在第二方面的第一种可能的实现方式中,所述降低单元,具体用于:当所述总线性能的值大于或等于预先设置的总线性能阈值时,则关闭下一帧宏块参考数据的载入并减少编码器的计算性能的值。结合第二方面,在第二方面的第二种可能的实现方式中,所述降低单元,具体用于:当所述总线性能的值大于或等于预先设置的总线性能阈值时,则关闭下一帧宏块参考数据的载入并减少编码器的计算性能的值。结合第二方面,在第二方面的第三种可能的实现方式中,所述降低单元,具体用于:当所述计算性能的值大于或者等于预先设置的计算性能的阈值时,则减少编码器的计算性能的值。结合第二方面或者第二方面的第一种可能的实现方式或者第二方面的第二种可能的实现方式或者第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述编码器还包括保持单元,所述保持单元具体用于:当所述总线性能的值小于所述预先设置的总线性能阈值时,则保持原先的编码器的计算性能的值。本发明提供一种用于视频编码系统的性能控制方法,所述方法检测总线性能的值是否大于或等于预先设置的总线性能阈值,并且当所述总线性能的值大于或等于预先设置的总线性能阈值时,降低所述总线性能的值和所述计算性能的值;和/或检测计算性能的值是否大于或等于预先设置的计算性能阈值,并且当所述计算性能的值大于或等于预先设置的计算性能阈值时,降低所述计算性能的值,使得所述编码器的处理性能大于或者等于预先设置的处理性能,从而避免编码器受系统状况或者编码图像影响而导致编码器处理性能不足。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例提供的一种用于视频编码系统的性能控制方法流程图;图2是本发明实施例提供的一种用于视频编码系统的性能控制方法示意图;图3是本发明实施例提供的一种用于视频编码系统的性能控制方法示意图;图4是本发明实施例提供的一种编码器的结构图;图5是本发明实施例提供的一种编码器的结构图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。参考图1,图1是本发明实施例提供的一种用于视频编码系统的性能控制方法流程图。如图1所示,所述方法包括以下步骤:步骤101,检测总线性能的值是否大于或等于预先设置的总线性能阈值;和/或检测计算性能的值是否大于或等于预先设置的计算性能阈值;步骤102,当所述总线性能的值大于或等于预先设置的总线性能阈值时,降低所述总线性能的值和所述计算性能的值;和/或当所述计算性能的值大于或等于预先设置的计算性能阈值时,降低所述计算性能的值。可选地,所述当所述总线性能的值大于或等于预先设置的总线性能阈值时,降低所述总线性能的值和所述计算性能的值,包括:当所述总线性能的值大于或等于预先设置的总线性能阈值时,则关闭下一帧宏块参考数据的载入并减少编码器的计算性能的值。可选地,所述当所述总线性能的值大于或等于预先设置的总线性能阈值,并且所述计算性能的值大于或等于预先设置的计算性能阈值时,降低所述总线性能的值和所述计算性能的值,包括:当所述总线性能的值大于或等于预先设置的总线性能阈值时,则关闭下一帧宏块参考数据的载入并减少编码器的计算性能的值。作为一种可选的实施例,所述方法还包括:当所述总线性能的值小于所述预先设置的总线性能阈值时,则保持原先的编码器的计算性能的值。具体的,用bus_real_cnt标识所述总线性能的值,所述总线性能的值为总线访问的时间,用pro_real_cnt标识计算性能的值,所述计算性能的值为编码器计算的时间,用mb_real_cnt标识预先设置的总线性能阈值,所述预先设置的总线性能阈值为所述编码器实际工作时的时间,用exp_cnt标识预先设置的计算性能阈值,所述预先设置的计算性能阈值为所述编码器实际工作时的计算时间。参考图2,图2是本发明实施例提供的一种用于视频编码系统的性能控制方法示意图。如图2所示,假设exp_cnt是840cycle/MB,一个典型编码器的计算部分分为五级流水:整像素运动估计(interME)、分数像素运动估计(fracME)、帧内预测(intra)、模式判决(modedecision)、环路滤波/熵编码(dblk/vlc);另外每级流水的处理时间是固定的,interME为400~1000cycle/MB,fracME为800cycle/MB,Intra为740cycle/MB,modedecision为700cycle/MB,dblk/vlc为700cycle/MB。如果在refload,即为载入参考帧等于n+4这一级时,编码器整体性能达到了所述bus_real_cnt大于所述mb_real_cnt,则下一次n+5这一级,关闭n+5这一参考帧数据的载入,同时限制interMEn+4这一级的计算,因为InterME这一级的性能是浮动的,为了能够弥补上一级数据载入,即n+4refload带来的多余开销,必需需要后续的计算模块性能小于840cycle/MB。另外,interME/fracME在n+5这一级也要被关闭,原因是到modedecision这一级需要将模式判决成帧内宏块,所以无需计算帧间宏块相关信息。如果到refload等于n+5这一级结束时,编码器整体性能还是未恢复到正常期望性能,则如图2所示继续关闭n+6这一级数据载入,同理其他流水线也做相应处理,直到恢复到正常期望性能。参考图3,图3是本发明实施例提供的一种用于视频编码系统的性能控制方法示意图。如图3所示,假设exp_cnt是840cycle/MB,一个典型编码器的计算部分分为五级流水:整像素运动估计(interME)、分数像素运动估计(fracME)、帧内预测(intra)、模式判决(modedecision)、环路滤波/熵编码(dblk/vlc);另外每级流水的处理时间是固定的,interME为400~1000cycle/MB,fracME为800cycle/MB,Intra为740cycle/MB,modedecision为700cycle/MB,dblk/vlc为700cycle/MB。如果在InterME等于n+3这一级时,当所述pro_real_cnt大于所述exp_cnt,则下一次n+4这一级,限制InterME的计算性能等于FracME的性能,直到整体计算性能达到正常期望性能,才对interME不做性能限制,如图3所示,至n+7级流水才取消对interME的性能限制。本发明提供一种用于视频编码系统的性能控制方法,所述方法检测总线性能的值是否大于或等于预先设置的总线性能阈值,并且当所述总线性能的值大于或等于预先设置的总线性能阈值时,降低所述总线性能的值和所述计算性能的值;和/或检测计算性能的值是否大于或等于预先设置的计算性能阈值,并且当所述计算性能的值大于或等于预先设置的计算性能阈值时,降低所述计算性能的值,使得所述编码器的处理性能大于或者等于预先设置的处理性能,从而避免编码器受系统状况或者编码图像影响而导致编码器处理性能不足。参考图4,图4是本发明实施例提供的一种编码器的结构图。如图4所示,所述编码器包括以下单元:检测单元401,用于检测总线性能的值是否大于或等于预先设置的总线性能阈值;和/或检测计算性能的值是否大于或等于预先设置的计算性能阈值;降低单元402,用于当所述总线性能的值大于或等于预先设置的总线性能阈值时,降低所述总线性能的值和所述计算性能的值;和/或当所述计算性能的值大于或等于预先设置的计算性能阈值时,降低所述计算性能的值。可选地,所述降低单元402,具体用于:当所述总线性能的值大于或等于预先设置的总线性能阈值时,则关闭下一帧宏块参考数据的载入并减少编码器的计算性能的值。可选地,所述降低单元402,具体用于:当所述总线性能的值大于或等于预先设置的总线性能阈值时,则关闭下一帧宏块参考数据的载入并减少编码器的计算性能的值。可选地,所述降低单元402,具体用于:当所述计算性能的值大于或者等于预先设置的计算性能的阈值时,则减少编码器的计算性能的值。所述编码器还包括保持单元,所述保持单元具体用于:当所述总线性能的值小于所述预先设置的总线性能阈值时,则保持原先的编码器的计算性能的值。具体的,用bus_real_cnt标识所述总线性能的值,所述总线性能的值为总线访问的时间,用pro_real_cnt标识计算性能的值,所述计算性能的值为编码器计算的时间,用mb_real_cnt标识预先设置的总线性能阈值,所述预先设置的总线性能阈值为所述编码器实际工作时的时间,用exp_cnt标识预先设置的计算性能阈值,所述预先设置的计算性能阈值为所述编码器实际工作时的计算时间。具体的,可以参考方法实施例中图2、图3的描述,在此不再赘述。本发明提供一种编码器,所述编码器用于检测总线性能的值是否大于或等于预先设置的总线性能阈值,并且当所述总线性能的值大于或等于预先设置的总线性能阈值时,降低所述总线性能的值和所述计算性能的值;和/或检测计算性能的值是否大于或等于预先设置的计算性能阈值,并且当所述计算性能的值大于或等于预先设置的计算性能阈值时,降低所述计算性能的值,使得所述编码器的处理性能大于或者等于预先设置的处理性能,从而避免编码器受系统状况或者编码图像影响而导致编码器处理性能不足。图5是本发明实施例提供的一种编码器的结构图。参考图5,图5是本发明实施例提供的一种编码器500,本发明具体实施例并不对所述编码器的具体实现做限定。所述编码器500包括:处理器(processor)501,通信接口(CommunicationsInterface)502,存储器(memory)503,总线504。处理器501,通信接口502,存储器503通过总线504完成相互间的通信。通信接口502,用于与其他设备进行通信;处理器501,用于执行程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。处理器501可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecificIntegratedCircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。存储器503,用于存放程序。存储器503可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。程序具体可以包括:检测总线性能的值是否大于或等于预先设置的总线性能阈值,并且当所述总线性能的值大于或等于预先设置的总线性能阈值时,降低所述总线性能的值和所述计算性能的值;和/或检测计算性能的值是否大于或等于预先设置的计算性能阈值,并且当所述计算性能的值大于或等于预先设置的计算性能阈值时,降低所述计算性能的值。所述当所述总线性能的值大于或等于预先设置的总线性能阈值时,降低所述总线性能的值和所述计算性能的值,包括:当所述总线性能的值大于或等于预先设置的总线性能阈值时,则关闭下一帧宏块参考数据的载入并减少编码器的计算性能的值。所述当所述总线性能的值大于或等于预先设置的总线性能阈值,并且所述计算性能的值大于或等于预先设置的计算性能阈值时,降低所述总线性能的值和所述计算性能的值,包括:当所述总线性能的值大于或等于预先设置的总线性能阈值时,则关闭下一帧宏块参考数据的载入并减少编码器的计算性能的值。所述当所述计算性能的值大于或等于预先设置的计算性能阈值时,降低所述计算性能的值,包括:当所述计算性能的值大于或者等于预先设置的计算性能的阈值时,则减少编码器的计算性能的值。所述方法还包括:当所述总线性能的值小于所述预先设置的总线性能阈值时,则保持原先的编码器的计算性能的值。本发明提供一种编码器,所述编码器用于检测总线性能的值是否大于或等于预先设置的总线性能阈值,并且当所述总线性能的值大于或等于预先设置的总线性能阈值时,降低所述总线性能的值和所述计算性能的值;和/或检测计算性能的值是否大于或等于预先设置的计算性能阈值,并且当所述计算性能的值大于或等于预先设置的计算性能阈值时,降低所述计算性能的值,使得所述编码器的处理性能大于或者等于预先设置的处理性能,从而避免编码器受系统状况或者编码图像影响而导致编码器处理性能不足。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存取存储器(RandomAccessMemory,简称RAM)等。以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1