参考帧选择方法、视频转码方法、电子设备和存储介质与流程

文档序号:15171259发布日期:2018-08-14 17:58阅读:236来源:国知局

本发明涉及视频压缩技术,尤其涉及参考帧选择方法、视频转码方法、电子设备和存储介质。



背景技术:

h.264/avc、hevc/h.265等视频编码标准提供了优异的编码性能。h.264/avc压缩技术主要采用了以下几种方法对视频数据进行压缩。

1)帧内预测压缩,解决的是空域数据冗余问题。

2)帧间预测压缩,即运动估计与补偿,解决的是时域数据冗余问题。

3)整数离散余弦变换,即dct,将空间上的相关性变为频域上无关的数据然后进行量化。

4)cabac压缩。

h.264/avc以及hevc/h.265等视频编码的实现需要在参考帧中寻找当前要编码宏块的最佳匹配宏块,这个过程叫做运动估计;然后还需要进行运动补偿,即当前块减去参考块得到残差块,把残差块和运动矢量作为压缩后的视频信息。由此可知参考帧的准确选取是很重要的。

而且h.264/avc以及hevc/h.265等视频编码标准的高压缩性能是以提高运算复杂度为代价的,因此如何快速、准确的选取参考帧,以缩短运动估计时间、提高编码效率是迫切需要解决的问题。

有一种转码系统的场景是一入多出,如图1所示,视频解码器接收到输入视频流之后解码,然后将解码后的数据送至后级;后级包括多路转码任务,对每一条转码流都单独用视频编码器进行一路转码任务,多路转码任务之间完全没有任何联系。

对于上述转码系统,可以由解码器将解码出的gop结构、宏块模式、运动矢量等解码信息传送给视频编码器,视频编码器根据传递过来的解码信息快速判断参考帧;虽然这种优化方式可以利用视频编码器和视频解码器之间的关联,编码器通过使用解码器的已知信息降低编码的复杂度,但是这种优化方式对于转码过程中有码率变化的场景不能适用。



技术实现要素:

为了克服现有技术的不足,本发明的目的之一在于提供参考帧选择方法,其能解决如何快速、准确的选取参考帧,以缩短运动估计时间、提高编码效率的问题。

本发明的目的之二在于提供视频转码方法,其能解决如何快速、准确的选取参考帧,以缩短运动估计时间、提高编码效率的问题。

本发明的目的之三在于提供电子设备,其能解决如何快速、准确的选取参考帧,以缩短运动估计时间、提高编码效率的问题。

本发明的目的之四在于提供存储介质,存储有计算机程序,其能解决如何快速、准确的选取参考帧,以缩短运动估计时间、提高编码效率的问题。

本发明的目的之一采用以下技术方案实现:

参考帧选择方法,用于视频转码模块,所述视频转码模块包括用于处理同一视频流,并分别输出的第一编码器和至少一个第二编码器,所述第一编码器用于处理第一宏块,所述第二编码器用于处理第二宏块;所述参考帧选择方法包括以下步骤:

获取目标宏块的参考帧信息,所述目标宏块为关联于第二宏块的第一宏块,所述目标宏块的参考帧信息是由第一编码器计算的;

根据所述目标宏块的参考帧信息计算所述第二宏块的参考帧信息。

进一步地,所述关联于第二宏块的第一宏块,具体为:位于所述第二宏块相应位置的第一宏块,或邻近于所述第二宏块相应位置的第一宏块。

进一步地,所述参考帧选择方法还包括以下步骤:

第二编码器从第一编码器获取帧类型信息。

进一步地,所述根据所述目标宏块的参考帧信息计算所述第二宏块的参考帧信息,具体包括以下步骤:

根据所述帧类型信息和目标宏块的参考帧信息获取所述第二宏块的候选参考帧;

根据所述候选参考帧计算所述第二宏块的参考帧信息。

进一步地,所述根据所述候选参考帧计算所述第二宏块的参考帧信息,具体包括以下步骤:

根据各候选参考帧相应目标宏块的参考帧信息对所述候选参考帧进行排序;

依次遍历排序后的候选参考帧,选取所述第二宏块的最佳参考帧。

本发明的目的之二采用以下技术方案实现:

视频转码方法,用于视频转码模块,所述视频转码模块包括用于处理同一视频流,并分别输出的第一编码器和至少一个第二编码器;

所述视频转码方法包括如权利要求1-5中任一项所述的参考帧选择方法。

进一步地,所述视频转码方法还包括以下步骤:

将获取的视频流解码后传输至所述第一编码器和第二编码器。

进一步地,所述视频转码方法还包括以下步骤:

将解码后的视频流调整分辨率后传输至所述第一编码器、第二编码器中的至少一个。

本发明的目的之三采用以下技术方案实现:

电子设备,包括存储器、处理器以及存储在存储器中的程序,所述程序被配置成由处理器执行,处理器执行所述程序时实现:

上述参考帧选择方法的步骤;或者

上述视频转码方法的步骤。

本发明的目的之四采用以下技术方案实现:

存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现:

上述参考帧选择方法的步骤;或者

上述视频转码方法的步骤。

相比现有技术,本发明的有益效果在于:通过利用目标宏块的参考帧信息,所述目标宏块为关联于第二宏块的第一宏块,计算第二编码器中第二宏块的参考帧信息,目标宏块的参考帧信息是由第一编码器计算的;由于第二编码器和第一编码器处理同一视频输入流,第二编码器可以参考第一编码器的参考帧信息,缩小最佳参考帧的遍历范围,减少第二编码器对参考帧的评估,从而降低视频转码的计算量;而且第一编码器、第二编码器可以输出不同码率的视频。

附图说明

图1为一入多出转码系统的结构示意图;

图2为本发明实施例一的参考帧选择方法的流程示意图;

图3为实施例一的视频转码模块的结构示意图;

图4关联于第二宏块的第一宏块的示意图;

图5为本发明实施例二的参考帧选择方法的流程示意图;

图6为本发明实施例三的视频转码模块的结构示意图;

图7为本发明实施例四的电子设备的结构示意图。

具体实施方式

下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。

实施例一

如图2为本实施例的参考帧选择方法的流程示意图,适用于如图3所示的视频转码模块。该视频转码模块包括用于处理同一视频流,并分别输出的第一编码器和至少一个第二编码器。第一编码器、以及各第二编码器均对同一个输入视频流进行压缩编码;第一编码器、第二编码器可以采用不同的码率控制参数,从而可以输出不同质量的视频流,如输出视频流1-视频流3。

宏块是视频信息的主要承载者,一个编码图像通常划分为多个宏块组成,宏块包含着每一个像素的亮度和色度信息。在h.264中,宏块是图像帧中16×16的像素区域,是运动补偿的基本运算单位。在h.265中,将宏块的大小从h.264的16×16扩展到了64×64,以便于高分辨率视频的压缩。

为便于理解,将第一编码器处理输入视频流过程中的宏块称为第一宏块;将第二编码器处理输入视频流过程中的宏块称为第二宏块。

本实施例的参考帧选择方法包括以下步骤:

步骤s110、获取目标宏块的参考帧信息,所述目标宏块为关联于第二宏块的第一宏块,所述目标宏块的参考帧信息是由第一编码器计算的。

作为优选的实施方式,第一编码器独立进行输入视频流的编码,对各第一宏块进行运动估计,获取各第一宏块相应的最佳参考帧,某一第一宏块与其最佳参考帧的对应关系即为该第一宏块的参考帧信息。

第二编码器在处理某一第二宏块时,需要找出该第二宏块相应的最佳参考帧。由于第二编码器与第一编码器处理同一输入视频流,因此可以利用第一宏块的参考帧信息缩小第二宏块最佳参考帧的遍历范围。

作为优选的实施方式,目标宏块,即关联于第二宏块的第一宏块,具体为:位于所述第二宏块相应位置的第一宏块,或邻近于所述第二宏块相应位置的第一宏块。

如图4所示,关联于第二宏块的第一宏块包括位于所述第二宏块10相应位置20的第一宏块21。

所述第二宏块10相应位置20可以由第二宏块10的坐标,按照宏块的宽高等比例缩放信息找到该第二宏块10在第一编码器中相应位置20的宏块,即第一宏块21。

由于在帧间编码的时候邻近宏块的参考帧大概率的会一致,即使降分辨率或者降码率也会一样,因此关联于第二宏块的第一宏块,即目标宏块还可以是邻近于所述第二宏块10相应位置20的第一宏块22。

在本实施例中,邻近于所述第二宏块10相应位置20的第一宏块22具体为位于所述第二宏块10相应位置20的第一宏块21的上、下、左或右方向的第一宏块22,在另一实施例中,邻近于所述第二宏块10相应位置20的第一宏块22还可以是位于所述第二宏块10相应位置20的第一宏块21斜角方向的第一宏块(图未注),还可以是位于所述第二宏块10相应位置20的第一宏块21外围第二圈的第一宏块(图未示)。

根据目标宏块,即关联于第二宏块的第一宏块,就可以获取目标宏块的参考帧信息。

步骤s120、根据所述目标宏块的参考帧信息计算所述第二宏块的参考帧信息。

由于第二编码器与第一编码器处理同一输入视频流,第二编码器中的各帧图像均可以对应于第一编码器中的某一帧图像,因此根据目标宏块的参考帧信息就可以找出第二编码器中相应的某一帧或多帧图像,;第二编码器中的这一帧或多帧图像可以称为该第二宏块的候选参考帧;进而可以选取一候选参考帧作为该第二宏块的最佳参考帧,该第二宏块与该最佳参考帧的对应关系即为该第二宏块的参考帧信息。

作为优选的实施方式,选取一候选参考帧作为某一宏块的最佳参考帧包括以下步骤:按由近到远的时间顺序遍历所有的候选参考帧;在遍历的过程中根据运动估计中的预设变量,设置一定的阈值,如果计算出的预设变量值小于该阈值就结束对候选参考帧的遍历,当前的候选参考帧即为最佳参考帧。

作为优选的实施方式,某一第二宏块的目标宏块,即该第二宏块关联的第一宏块可能会有多个,而且可能会有多个目标宏块对应于同一最佳参考帧,因此第二宏块的候选参考帧可能会有一个或多个。

在另一实施例中,如果第二宏块的候选参考帧只有一个,即第二宏块关联的第一宏块的最佳参考帧为同一个,那么第二宏块的该候选参考帧即为其最佳参考帧。如果第二宏块的候选参考帧有多个,可以根据第二宏块关联的第一宏块的最佳参考帧出现的频率高低对这些候选参考帧进行排序,优先计算频率高的候选参考帧的预设变量,设置一定的阈值,如果计算出的预设变量值小于该阈值就结束对候选参考帧的遍历,当前的候选参考帧即为最佳参考帧。

本发明实施例提供的参考帧选择方法,通过利用目标宏块的参考帧信息,目标宏块为关联于第二宏块的第一宏块,计算第二编码器中第二宏块的参考帧信息,目标宏块的参考帧信息是由第一编码器计算的;由于第二编码器和第一编码器处理同一视频输入流,第二编码器可以参考第一编码器的参考帧信息,缩小最佳参考帧的遍历范围,减少第二编码器对参考帧的评估,从而降低视频转码的计算量;而且第一编码器、第二编码器可以输出不同码率的视频。

实施例二

如图5所示的参考帧选择方法,包括以下步骤:

步骤s210、第二编码器从第一编码器获取帧类型信息。

第一编码器在进行输入视频流的编码时,会计算画面组(groupofpictures,gop)结构,画面组结构可以体现各帧的类型,即帧类型信息。第二编码器可以复用从第一编码器获取的帧类型信息,从而第二编码器不需要对帧类型进行分析计算;而且可以保证第二编码器、第一编码器对各帧图像类型的定义完全一致,以保障第二编码器利用第一编码器参考帧信息的准确性和稳定性。

在另一实施例中,可以由第二编码器计算画面组结构,也可实现第二编码器对第一编码器参考帧信息的利用,只是稳定性略差,计算量需求较大。

步骤s220、获取目标宏块的参考帧信息,所述目标宏块为关联于第二宏块的第一宏块,所述目标宏块的参考帧信息是由第一编码器计算的。

步骤s220对应实施例一中的s110,不再赘述。

步骤s230、根据所述目标宏块的参考帧信息计算所述第二宏块的参考帧信息。

作为优选的实施方式,步骤s230根据所述目标宏块的参考帧信息计算所述第二宏块的参考帧信息,具体包括以下步骤:

步骤s231、根据所述帧类型信息和目标宏块的参考帧信息获取所述第二宏块的候选参考帧。

第二编码器可以根据帧类型信息更快速的把目标宏块的最佳参考帧,即第二宏块关联的各第一宏块的最佳参考帧映射至第二编码器中相应的帧,因此可以更快的找出第二宏块的候选参考帧。

步骤s232、根据所述候选参考帧计算所述第二宏块的参考帧信息。

作为优选的实施方式,选取一候选参考帧作为某一宏块的最佳参考帧,可以包括以下步骤:按由近到远的时间顺序遍历所有的候选参考帧;在遍历的过程中根据运动估计中的预设变量,设置一定的阈值,如果计算出的预设变量值小于该阈值就结束对候选参考帧的遍历,当前的候选参考帧即为最佳参考帧。

作为优选的实施方式,步骤s232根据所述候选参考帧计算所述第二宏块的参考帧信息,具体包括以下步骤:

步骤s2321、根据各候选参考帧相应目标宏块的参考帧信息对所述候选参考帧进行排序;

步骤s2322、依次遍历排序后的候选参考帧,选取所述第二宏块的最佳参考帧。

某一第二宏块的目标宏块可能会有多个,而且可能会有多个目标宏块对应于同一最佳参考帧,因此第二宏块的候选参考帧可能会有一个或多个。

作为优选的实施方式,如果第二宏块的候选参考帧只有一个,即第二宏块关联的第一宏块的最佳参考帧为同一个,那么第二宏块的该候选参考帧即为其最佳参考帧。如果第二宏块的候选参考帧有多个,可以根据第二宏块关联的第一宏块的最佳参考帧出现的频率高低对这些候选参考帧进行排序,优先计算频率高的候选参考帧的预设变量,设置一定的阈值,如果计算出的预设变量值小于该阈值就结束对候选参考帧的遍历,当前的候选参考帧即为最佳参考帧。

本发明实施例提供的参考帧选择方法,进一步通过第二编码器复用第一编码器的帧类型信息,使得第二编码器不需要对帧类型进行分析计算,而且可以保证第二编码器、第一编码器对各帧图像类型的定义完全一致,以保障第二编码器利用第一编码器参考帧信息的准确性和稳定性。

实施例三

本发明实施例提供了视频转码方法,用于如图3所示的视频转码模块。该视频转码模块包括用于处理同一视频流,并分别输出的第一编码器和至少一个第二编码器。

视频转码方法具体为在第二编码器进行参考帧选择时采用实施例一、实施例二提供的参考帧选择方法。

视频转码方法的其他步骤可以根据现有技术,如h.264/avc以及hevc/h.265等视频编码标准实现,本发明实施例不涉及对该部分的改进,不再赘述。

作为优选的实施方式,如图6所示,视频转码模块还包括视频解码器,用于将输入视频流转换为适用于第一编码器、第二编码器的数据。相应的,视频转码方法还包括以下步骤:

将获取的视频流解码后传输至所述第一编码器和第二编码器。

作为优选的实施方式,视频转码模块还包括视频缩放单元,用于调节传输至第一编码器、第二编码器的视频数据的分辨率。相应的,视频转码方法还包括以下步骤:

将解码后的视频流调整分辨率后传输至所述第一编码器、第二编码器中的至少一个。

因此第一编码器、第二编码器可以输出不同分辨率的视频。

本发明实施例提供的视频转码方法,通过利用目标宏块的参考帧信息,所述目标宏块为关联于第二宏块的第一宏块,计算第二编码器中第二宏块的参考帧信息,目标宏块的参考帧信息是由第一编码器计算的;由于第二编码器和第一编码器处理同一视频输入流,第二编码器可以参考第一编码器的参考帧信息,缩小最佳参考帧的遍历范围,减少第二编码器对参考帧的评估,从而降低视频转码的计算量;而且第一编码器、第二编码器可以输出不同码率的视频。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法,如:

存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现:前述参考帧选择方法的步骤;或者前述视频转码方法的步骤。

本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程的消费电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等,如实施例四。

实施例四

如图7所示电子设备,包括存储器200、处理器300以及存储在存储器200中的程序,所述程序被配置成由处理器300执行,处理器300执行所述程序时实现:前述参考帧选择方法的步骤;或者前述视频转码方法的步骤。

本实施例中的电子设备与前述实施例中的方法是基于同一发明构思下的两个方面,在前面已经对方法实施过程作了详细的描述,所以本领域技术人员可根据前述描述清楚地了解本实施中的系统的结构及实施过程,为了说明书的简洁,在此就不再赘述。

本发明实施例提供的电子设备,通过利用目标宏块的参考帧信息,所述目标宏块为关联于第二宏块的第一宏块,计算第二编码器中第二宏块的参考帧信息,目标宏块的参考帧信息是由第一编码器计算的;由于第二编码器和第一编码器处理同一视频输入流,第二编码器可以参考第一编码器的参考帧信息,缩小最佳参考帧的遍历范围,减少第二编码器对参考帧的评估,从而降低视频转码的计算量;而且第一编码器、第二编码器可以输出不同码率的视频。

上述实施方式仅为本发明的优选实施方式,不能以此来限定本发明保护的范围,本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1