基于H265编码的帧间预测方法和编码器IP转让专利

申请号 : CN201610871310.X

文献号 : CN106254884A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张善旭何德龙黄镜灵

申请人 : 福州瑞芯微电子股份有限公司

摘要 :

本发明涉及视频编解码领域,特别涉及基于H265的视频编解码。本发明提供基于H265编码的帧间预测方法和编码器IP,用于解决目前编码方法效率低的问题,其方法在帧间插值计算之前还包括步骤:根据候选的至少1个运动矢量,判断其中是否包含相同的运动矢量,并将相同的运动矢量合并,将合并后的运动矢量用于帧间插值计算,并将合并后的运动矢量及矢量的合并方式信息用于模式判决和比特率失真计算。

权利要求 :

1.基于H265编码的帧间预测方法,其特征在于,在帧间插值计算之前还包括步骤:根据候选的至少1个运动矢量,判断其中是否包含相同的运动矢量,并将相同的运动矢量合并,将合并后的运动矢量用于帧间插值计算,并将合并后的运动矢量及矢量的合并方式信息用于模式判决和比特率失真计算。

2.根据权利要求1所述的基于H265编码的帧间预测方法,其特征在于,设置merge模式个数。

3.根据权利要求1所述的基于H265编码的帧间预测方法,其特征在于,在步骤“判断其中是否包含相同的运动矢量”,还包括判断merge模式的有效性。

4.用于实现H265编码的帧间预测方法的编码器IP,其特征在于,包括运动矢量合并模块,帧间插值计算模块、模式判决模块和比特率失真计算模块;

运动矢量合并模块用于接收使用merge模式、amvp模式和运动矢量估计处理后输出的运动矢量,判断接收到的运动矢量中是否包含相同的运动矢量,并将相同的运动矢量合并,并向模式判决和比特率失真计算模块发送运动矢量的合并信息;

帧间插值计算模块用于根据合并后的运动矢量进行帧间插值计算;

模式判决模块用于根据合并后的运动矢量判断最优的编码模式。

5.根据权利要求4所述的用于实现H265编码的帧间预测方法的编码器IP,其特征在于,还包括主控制模块,主控制模块用于设置merge模式个数。

6.根据权利要求4所述的用于实现H265编码的帧间预测方法的编码器IP,其特征在于,所述运动矢量合并模块还用于判断merge模式的有效性。

说明书 :

基于H265编码的帧间预测方法和编码器IP

技术领域

[0001] 本发明涉及视频编解码领域,特别涉及基于H265的视频编解码。

背景技术

[0002] H.265(HEVC)是目前最新的国际视频压缩标准。H.265拥有极高的编码效率,主要是因为采用的更精确的帧内预测(intra prediction)和帧间预测(inter prediction)。但是这些编码效率的提高都会伴随着编码复杂度的提高,为实现实时算法提出了新的挑战。
[0003] 随着可穿戴智能设备的兴起,在极小空间内集成的硬件设备要求越来越低功耗,而且能够高效处理各项事务,特别是针对视频采集等广泛性的社会需求,这也造成了视频编码系统的挑战。而目前H265视频编码系统在性能上有所欠缺,体现在占用面积大,功耗大等问题上。

发明内容

[0004] 以下给出对一个或更多个方面的简化概述以力图提供对此类方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在指认出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或更多个方面的一些概念以作为稍后给出的更加具体的说明之序。
[0005] 本发明提供一种基于H265编码的帧间预测方法和编码器IP解决现有编码系统性能低,耗电量大的问题。
[0006] 为实现上述目的,发明人提供了基于H265编码的帧间预测方法,在帧间插值计算之前还包括步骤:
[0007] 根据候选的至少1个运动矢量,判断其中是否包含相同的运动矢量,并将相同的运动矢量合并,将合并后的运动矢量用于帧间插值计算,并将合并后的运动矢量及矢量的合并方式信息用于模式判决和比特率失真计算。
[0008] 进一步,设置merge模式个数。
[0009] 进一步,在步骤“判断其中是否包含相同的运动矢量”,还包括判断merge模式的有效性。
[0010] 用于实现H265编码的帧间预测方法的编码器IP,包括运动矢量合并模块,帧间插值计算模块、模式判决模块和比特率失真计算模块;
[0011] 运动矢量合并模块用于接收使用merge模式、amvp模式和运动矢量估计处理后输出的运动矢量,判断接收到的运动矢量中是否包含相同的运动矢量,并将相同的运动矢量合并,并向模式判决和比特率失真计算模块发送运动矢量的合并信息;
[0012] 帧间插值计算模块用于根据合并后的运动矢量进行帧间插值计算,获得视频编码;
[0013] 模式判决模块用于根据合并后的运动矢量判断最优的编码模式。
[0014] 进一步,还包括主控制模块,主控制模块用于设置merge模式个数。
[0015] 进一步,所述运动矢量合并模块还用于判断merge模式的有效性。
[0016] 区别于现有技术,上述技术方案在进行运动矢量合并后,可以省掉相对应合并运动矢量的计算对应的流水时间。从而降低该方法对应的芯片可以相对的降低时钟频率从而降低功耗;为能达成前述及相关目的,这一个或更多个方面包括在下文中充分描述并在所附权利要求中特别指出的特征。以下描述和附图详细阐述了这一个或更多个方面的某些说明性特征。但是,这些特征仅仅是指示了可采用各种方面的原理的各种方式中的若干种,并且本描述旨在涵盖所有此类方面及其等效方面。

附图说明

[0017] 以下将结合附图来描述所公开的方面,提供附图是为了说明而非限定所公开的方面,附图中相似的标号标示相似要素,并且在其中:
[0018] 图1为本发明的帧间预测得到的运动矢量的合并流程;
[0019] 图2为帧间预测MV的有效性判断过程;
[0020] 图3为根据有效的模式个数,输出合并模式信息的处理过程;
[0021] 图4对视频编解码采用流水处理;
[0022] 图5所示为运动矢量合并的编解码效率统计;
[0023] 图6帧间预测方法的编码器IP的结构示意图。

具体实施方式

[0024] 为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。在以下描述中,出于解释目的阐述了众多的具体细节以提供对一个或更多个方面的透彻理解。但是显而易见的是,没有这些具体细节也可实践此类方面。
[0025] 本文公开一种基于H265编码的帧间预测方法,在帧间插值计算之前还包括步骤:
[0026] 根据候选的至少1个运动矢量,判断其中是否包含相同的运动矢量,并将相同的运动矢量合并,将合并后的运动矢量用于帧间插值计算,并将合并后的运动矢量及矢量的合并方式信息用于模式判决和比特率失真算法。可以理解的合并相同的运动矢量后,获得合并后的运动矢量,即合并后的运动矢量之间是互相不同的。
[0027] 在本文的编码器中,采用了合并模式(即merge模式,对应的用来表示PU的运动信息输出为merge MV),自动预测方法(AMVP,对应的用来表示PU的运动信息输出为mvp)、和运动估计(即ME,对应的用来表示PU的运动信息输出为MV)。
[0028] 合并模式中,编码器选择时域和空域上邻近的PU的运动信息,并预先定义一个运动信息候选列表,编码器选择最好的候选索引并直接使用目前PU运动补偿过程中的运动信息,且编码参考索引信息。而不同的是运动残差不被编码而是直接设为0。
[0029] 参见图1,为帧间预测得到的运动矢量的合并流程,其中MV合并预处理过程包括对merge模式有效性判断。在一些实施例中,设置merge模式的运动信息候选列表中候选的运动信息为个数为3个,即merge模式输出3个候选MV;设置amvp模式的运动信息候选表中候选的运动信息个数为1个,即amvp模式输出1个表。
[0030] 自预测方法AMVP,即从邻近PUs的MVs利用时空相关性进行自适应MV预测。使用AMVP推导出目前块的MV.首先AMVP扫描空间预测单元PUs的运动矢量MVs.然后在指定区域扫描时域相邻的PU并构造一个MV预测向量候选列表.编码器根据目前被编码的MV从候选列表中选择出最好的预测运动向是并编码相关的参数信息.。MV不同被编码的比特流也就不同。
[0031] 如图2所示,在一些实施例中,设置merge模式为3个,即merge模式对应运动信息候选列表中候选的运动信息为个数为3个,即merge模式输出3个候选MV;设置amvp模式为1个,即amvp模式对应的运动信息候选表中候选的运动信息个数为1个,即amvp模式输出1个MV;此时帧间预测MV的有效性判断过程如图2所示,其中帧间预测得到的模式在图中用mx表示,x表示序号,即m0表示第一个merge模式,以此类推,图中m1无效,即对应的MV无效,m1/2表示m1、m2无效。m0、m1、m2分别对应一个候选MV;若对应的模式无效,则对应的mv也无效。在经过如图2所示的帧间合并预处理后,其根据有效的模式个数,输出合并模式信息,其处理过程如图3所示。合并模式信息用于传送到模式判决、采用率失真优化(RDO)算法模块进行计算处理,合并模式信息包括MV的合并信息,MV信息。
[0032] 本文中的运动矢量的合并,指的是相同的运动矢量进行合并,不相同的不合并;例如MV0、MV1、MV2、MVamvp,若MV0=MV1,则合并后的运动矢量为:MV0、MV2、MVamvp,运动矢量合并信息包含合并后的运动矢量,以及矢量的合并方式。
[0033] 模式判决指根据合并后的运动矢量判断最优的编码模式,即根据上述合并后的运动矢量,判断帧内还是帧间最优,以及帧间那种模式最优。模式判决模块简要工作说明:
[0034] 模式编码过程包括帧间运动补偿、变换、量化、反量化,反变化,残差估计。
[0035] 图4中merge0表示代表MVmerge0,mc、T、Q、IQ、IT、SSE分别表示帧间运动补偿、变换、量化、反量化,反变化,残差估计,即merge0mc为MVmerge0进行帧间运动补偿运算,amvp mc指MV amvp进行帧间运动补偿运算,以此类推,图4中上方的1-34表示时间轴,mode estimation表示模式估计。在上述实施例中,若4个模式均有效,则对应的4个MV均有效,如图4所示,整个流程处理过程需要占用4组帧间预测模式消耗的硬件资源和流水时间为27个单位时间;若MVmerge0=MVmerge1=MVmerge2=MVamvp,只需要处理一组MV信息用于做帧间运动补偿、变换、量化、反量化,反变化,残差估计等计算,其所消耗的时间为12个单位时间。因此可以理解在进行运动矢量合并后,可以省掉相对应合并进去的流水时间。从而降低该方法对应的芯片可以相对的降低时钟频率从而降低功耗;特别是随着片源分辨率的提高,解码效率的提高,对满足4kx2k@30FPS,1080p@120FPS高效SOC编码和可穿戴低功耗需求,具有重大意义;在一个实施例中,运动矢量合并的编解码效率统计如图5所示。
[0036] 可以理解的是,根据功耗需求和芯片计算能力设置merge模式个数,以符合对应的产品需求。
[0037] 本文还提供用于实现上述H265编码的帧间预测方法的编码器IP,如图6所示:包括运动矢量合并模块,帧间插值计算模块、模式判决模块和比特率失真计算模块;
[0038] 运动矢量合并模块用于接收使用merge模式、amvp模式和运动矢量估计计算输出的运动矢量,判断接收到的运动矢量中是否包含相同的运动矢量,并将相同的运动矢量合并,并向模式判决和比特率失真计算模块发送运动矢量的合并方式信息;
[0039] 帧间插值计算模块用于根据合并后的运动矢量进行帧间插值计算,获得视频编码;
[0040] 模式判决模块用于根据合并后的运动矢量判断最优的编码模式。
[0041] 模式判决模块,处理帧间预测模块输入的运动矢量残差,以及当前模块从前级得到的块上下文信息,和模式对应的残差信息做模式最优的判决;
[0042] 模式判决总体公式如下:
[0043] J(mode)=SSE+λ*R(ref,mode,mv,residual)
[0044] 在此公式中,SSE是指重建块与源图像的差值平方和;λ是拉格朗日乘子;R是该模式下宏块编码的实际码流,包括对参考帧、模式、运动矢量、残差等的比特总和。如果是帧内模式,就只有R(mode,residual)。
[0045] 以上公式对当前编码的帧间或者帧内块,以及对应的各种模式做判决,取J值最小的模式最为最佳的判决模式。
[0046] 帧间插值模块简要工作说明:
[0047] 帧间插值模块,处理帧间预测模块输入的运动矢量信息,包括整数分量和小数分量的运动矢量信息;由于参考帧图像只包含整数的像素,因此有小数分量的运动信息参考时,需要在整数位置附近的运动块运动补偿;针对只有整数的运动分量信息,不需要做分像素的运动补偿,直接找到整数位置的运动块作为当前帧当前块的预测像素信息;如果包含的运动矢量即有整数又有小数的运动矢量信息,则需要在整数位置的附近根据小数信息进行分像素运动补偿得到当前帧当前块的预测像素信息;
[0048] 在一些实施例中,还包括主控制模块,主控制模块用于设置merge模式个数。如图2所示,在一些实施例中,设置merge模式为3个,即merge模式对应运动信息候选列表中候选的运动信息为个数为3个,即merge模式输出3个候选MV;设置amvp模式为1个,即amvp模式对应的运动信息候选表中候选的运动信息个数为1个,即amvp模式输出1个MV;此时帧间预测MV的有效性判断过程如图2所示,其中帧间预测得到的模式在图中用mx表示,x表示序号,即m0表示第一个merge模式,以此类推,图中m1无效,即对应的MV无效,m1/2表示m1、m2无效。m0、m1、m2分别对应一个候选MV;若对应的模式无效,则对应的mv也无效。在经过如图2所示的帧间合并预处理后,其根据有效的模式个数,输出合并模式信息,其处理过程如图3所示。
合并模式信息用于传送到模式判决、采用率失真优化(RDO)算法模块进行计算处理,合并模式信息包括MV的合并信息,MV信息。
[0049] 本文中的运动矢量的合并,指的是相同的运动矢量进行合并,不相同的不合并;例如MV0、MV1、MV2、MVamvp,若MV0=MV1,则合并后的运动矢量为:MV0、MV2、MVamvp。
[0050] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括……”或“包含……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的要素。此外,在本文中,“大于”、“小于”、“超过”等理解为不包括本数;“以上”、“以下”、“以内”等理解为包括本数。
[0051] 本领域内的技术人员应明白,上述各实施例可提供为方法、装置、或计算机程序产品。这些实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。上述各实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述计算机设备,包括但不限于:个人计算机、服务器、通用计算机、专用计算机、网络设备、嵌入式设备、可编程设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,包括但不限于:RAM、ROM、磁碟、磁带、光盘、闪存、U盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。
[0052] 上述各实施例是参照根据实施例所述的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到计算机设备的处理器以产生一个机器,使得通过计算机设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0053] 这些计算机程序指令也可存储在能引导计算机设备以特定方式工作的计算机设备可读存储器中,使得存储在该计算机设备可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0054] 这些计算机程序指令也可装载到计算机设备上,使得在计算机设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0055] 尽管已经对上述各实施例进行了描述,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改,所以以上所述仅为本发明的实施例,并非因此限制本发明的专利保护范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围之内。