用于视频编码的方法、装置、计算机可读介质及电子设备与流程

文档序号:15925243发布日期:2018-11-14 01:04阅读:122来源:国知局

本申请涉及计算机技术领域,具体而言,涉及一种用于视频编码的方法、装置、计算机可读介质及电子设备。

背景技术

视频编码技术在视频直播和点播中不断的使用,并且日趋成熟,在片源数据量巨大的情况下,常见的电视剧或者电影中常常会出现一些亮度较暗或者近似黑色的场景。例如,在电影场景中常常会出现连续3s或以上的帧是低亮度或者黑暗的场景。这些低亮度帧的存在在观影过程中虽然不会影响人们的视觉体验,但是视频序列中的当前帧在作为后续视频帧的参考帧的时候,会影响到后续的视频帧。

上述问题在传统的非分布式视频编码中存在,通过分析分布式的编码数据,这种情况在分布式编码中更为严重。

在分布式编码中,由于完整视频序列在切割成多段小视频序列的过程中,切断了视频的完整性和连续性。在切断的分布式的切片点处可能发生的帧类型改变和/或编码过程中产生的编码信息的缺失对后续的视频质量的影响是一个逐渐累加的过程,尤其对上述提及到的类似场景的低亮度或者黑暗帧的质量影响较为突出,从而会导致视频序列在这些特定场景下会存在较大的质量波动。

因此,需要一种新的用于视频编码的方法、装置、计算机可读介质及电子设备。

需要说明的是,在上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。



技术实现要素:

本发明实施例提供一种用于视频编码的方法、装置、计算机可读介质及电子设备,能够降低视频序列的质量波动。

本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。

根据本发明实施例的一方面,提供了一种用于视频编码的方法,视频序列采用n路编码;其中,所述方法包括:对所述视频序列进行第(n-1)路编码生成第(n-1)路分析文件,并获得所述视频序列中视频帧的第(n-1)路编码信息;获取所述视频帧的第n路编码码率控制阶段的量化参数;基于所述第(n-1)路分析文件对所述视频序列进行第n路编码,并根据所述视频帧的第(n-1)路编码信息修正所述视频帧的第n路编码码率控制阶段的量化参数;其中,n为大于等于2的正整数。

在本发明的一些实施例中,基于前述方案,所述第(n-1)路编码信息包括所述视频帧的第(n-1)路亮度分量和色度分量峰值信噪比;其中,所述根据所述视频帧的第(n-1)路编码信息修正所述视频帧的第n路编码码率控制阶段的量化参数,包括:若所述视频帧中的当前帧的第(n-1)路亮度分量和色度分量峰值信噪比大于第一阈值且所述当前帧非场景切换帧,则根据所述当前帧的第(n-1)路亮度分量和色度分量峰值信噪比修正所述当前帧的量化参数。

在本发明的一些实施例中,基于前述方案,所述根据所述当前帧的第(n-1)路亮度分量和色度分量峰值信噪比修正所述当前帧的量化参数,包括:若所述当前帧的第(n-1)路亮度分量和色度分量峰值信噪比处于第1区间至第m1区间中的任意一个,则采用相应的调控因子修正所述当前帧的量化参数;其中,m1为大于等于1的正整数。

在本发明的一些实施例中,基于前述方案,m1等于5;其中,所述若所述当前帧的第(n-1)路亮度分量和色度分量峰值信噪比处于第1区间至第m区间中的任意一个,则采用相应的调控因子修正所述当前帧的量化参数,包括:若所述当前帧的第(n-1)路亮度分量和色度分量峰值信噪比处于第1区间,则采用第一调控因子修正所述当前帧的量化参数;或若所述当前帧的第(n-1)路亮度分量和色度分量峰值信噪比处于第2区间,则采用第二调控因子修正所述当前帧的量化参数;或若所述当前帧的第(n-1)路亮度分量和色度分量峰值信噪比处于第3区间,则采用第三调控因子修正所述当前帧的量化参数;或若所述当前帧的第(n-1)路亮度分量和色度分量峰值信噪比处于第4区间,则采用第四调控因子修正所述当前帧的量化参数;或若所述当前帧的第(n-1)路亮度分量和色度分量峰值信噪比处于第5区间,则采用第五调控因子修正所述当前帧的量化参数。

在本发明的一些实施例中,基于前述方案,若所述视频序列为分段视频序列,则所述第一至第五调控因子分别为:1.2、1.8、2.2、3、4.5。

在本发明的一些实施例中,基于前述方案,所述第(n-1)路编码信息包括所述视频帧的第(n-1)路亮度分量和色度分量峰值信噪比;其中,所述根据所述视频帧的第(n-1)路编码信息修正所述视频帧的第n路编码码率控制阶段的量化参数,包括:若所述视频帧中的当前帧的第(n-1)路亮度分量和色度分量峰值信噪比大于第二阈值且处于第m2区间,且所述当前帧为第一帧间预测帧,则获取所述当前帧的前向参考帧的量化参数;根据所述前向参考帧的量化参数修正所述当前帧的量化参数;其中,m2为大于等于1的正整数。

在本发明的一些实施例中,基于前述方案,采用以下公式修正所述第一帧间预测帧的量化参数:q’=q-(ref0qp+a)*b,其中,ref0qp为所述前向参考帧的量化参数;a和b为常数;q为所述第一帧间预测帧的量化参数;q’为所述第一帧间预测帧修正后的量化参数。

在本发明的一些实施例中,基于前述方案,所述第(n-1)路编码信息包括所述视频帧的第(n-1)路亮度分量和色度分量峰值信噪比;其中,所述根据所述视频帧的第(n-1)路编码信息修正所述视频帧的第n路编码码率控制阶段的量化参数,包括:若所述视频帧中的当前帧的第(n-1)路亮度分量和色度分量峰值信噪比大于第二阈值且处于第m2区间,且所述当前帧为第二帧间预测帧,则获取所述当前帧的前向参考帧的量化参数和/或所述当前帧的后向参数帧的量化参数;根据所述当前帧的前向参考帧的量化参数和/或所述当前帧的后向参数帧的量化参数修正所述当前帧的量化参数;其中,m2为大于等于1的正整数。

在本发明的一些实施例中,基于前述方案,采用以下公式修正所述第二帧间预测帧的量化参数:q’=q–((ref0qp+c1)+(ref1qp+c2))*d,其中,ref0qp为所述前向参考帧的量化参数;ref1qp为所述后向参考帧的量化参数;c1、c2和d为常数;q为所述第二帧间预测帧的量化参数;q’为所述第二帧间预测帧修正后的量化参数。

根据本发明实施例的一方面,提供了一种用于视频编码的装置,视频序列采用n路编码;其中,所述装置包括:第一编码模块,配置为对所述视频序列进行第(n-1)路编码生成第(n-1)路分析文件,并获得所述视频序列中视频帧的第(n-1)路编码信息;量化参数获取模块,配置为获取所述视频帧的第n路编码码率控制阶段的量化参数;第二编码模块,配置为基于所述第(n-1)路分析文件对所述视频序列进行第n路编码,并根据所述视频帧的第(n-1)路编码信息修正所述视频帧的第n路编码码率控制阶段的量化参数;其中,n为大于等于2的正整数。

在本发明的一些实施例中,基于前述方案,所述第(n-1)路编码信息包括所述视频帧的第(n-1)路亮度分量和色度分量峰值信噪比;其中,所述第二编码模块包括:第一量化参数修正单元,配置为若所述视频帧中的当前帧的第(n-1)路亮度分量和色度分量峰值信噪比大于第一阈值且所述当前帧非场景切换帧,则根据所述当前帧的第(n-1)路亮度分量和色度分量峰值信噪比修正所述当前帧的量化参数。

在本发明的一些实施例中,基于前述方案,所述第一量化参数修正单元包括:第一量化参数修正子单元,配置为若所述视频帧中的当前帧的第(n-1)路亮度分量和色度分量峰值信噪比大于第一阈值且所述当前帧非场景切换帧,且所述当前帧的第(n-1)路亮度分量和色度分量峰值信噪比处于第1区间至第m1区间中的任意一个,则采用相应的调控因子修正所述当前帧的量化参数;其中,m1为大于等于1的正整数。

在本发明的一些实施例中,基于前述方案,所述第(n-1)路编码信息包括所述视频帧的第(n-1)路亮度分量和色度分量峰值信噪比;其中,所述第二编码模块包括:第二量化参数修正单元,配置为若所述视频帧中的当前帧的第(n-1)路亮度分量和色度分量峰值信噪比大于第二阈值且处于第m2区间,且所述当前帧为第一帧间预测帧,则获取所述当前帧的前向参考帧的量化参数;根据所述前向参考帧的量化参数修正所述当前帧的量化参数;和/或第三量化参数修正单元,配置为若所述视频帧中的当前帧的第(n-1)路亮度分量和色度分量峰值信噪比大于所述第二阈值且处于第m2区间,且所述当前帧为第二帧间预测帧,则获取所述当前帧的前向参考帧的量化参数和/或所述当前帧的后向参数帧的量化参数;根据所述当前帧的前向参考帧的量化参数和/或所述当前帧的后向参数帧的量化参数修正所述当前帧的量化参数;其中,m2为大于等于1的正整数。

根据本发明实施例的一方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中所述的用于视频编码的方法。

根据本发明实施例的一方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,配置为存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中所述的用于视频编码的方法。

在本发明的一些实施例所提供的技术方案中,通过对视频序列进行第(n-1)路编码获得所述视频序列中视频帧的第(n-1)路编码信息,并基于所述第(n-1)路编码信息修正所述视频帧的第n路编码码率控制阶段的量化参数,从而可以降低视频序列的质量波动,给用户带来更好的视觉体验。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1示出了可以应用本发明实施例的用于视频编码的方法或用于视频编码的装置的示例性系统架构的示意图;

图2示出了适于用来实现本发明实施例的电子设备的计算机系统的结构示意图;

图3示意性示出了根据本发明的一实施例的用于视频编码的方法的流程图;

图4示出了图3中所示的步骤s310在一实施例中的处理过程示意图;

图5示出了图3中所示的步骤s330在一实施例中的处理过程示意图;

图6示意性示出了根据本发明的又一实施例的用于视频编码的方法的流程图;

图7示意性示出了根据本发明的再一实施例的用于视频编码的方法的流程图;

图8示意性示出了根据本发明的一实施例的用于视频编码的装置的框图;

图9示意性示出了根据本发明的又一实施例的用于视频编码的装置的框图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。

此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。

附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。

图1示出了可以应用本发明实施例的用于视频编码的方法或用于视频编码的装置的示例性系统架构100的示意图。

如图1所示,系统架构100可以包括终端设备101、102、103中的一种或多种,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。比如服务器105可以是多个服务器组成的服务器集群等。

用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103可以是具有显示屏的各种电子设备,包括但不限于智能手机、平板电脑、便携式计算机和台式计算机、数字电影放映机等等。

服务器105可以是提供各种服务的服务器。例如用户利用终端设备103(也可以是终端设备101或102)向服务器105发送视频直播或者视频点播请求。服务器105可以基于该视频直播或者视频点播中携带的相关信息,在数据库中检索到匹配的搜索结果,并将搜索结果例如相应的视频信息反馈给终端设备103,进而用户可以基于终端设备103上显示的内容观看相应的视频。

又如终端设备103(也可以是终端设备101或102)可以是电影院的数字电影放映机,用户可以通过该数字电影放映机向服务器105发送视频播放指令。服务器105可以基于该视频播放指令,在数据库中检索到匹配的电影视频返回给该数字电影放映机,进而通过该数字电影放映机将返回的电影视频进行播放。

图2示出了适于用来实现本发明实施例的电子设备的计算机系统的结构示意图。

需要说明的是,图2示出的电子设备的计算机系统200仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图2所示,计算机系统200包括中央处理单元(cpu)201,其可以根据存储在只读存储器(rom)202中的程序或者从存储部分208加载到随机访问存储器(ram)203中的程序而执行各种适当的动作和处理。在ram203中,还存储有系统操作所需的各种程序和数据。cpu201、rom202以及ram203通过总线204彼此相连。输入/输出(i/o)接口205也连接至总线204。

以下部件连接至i/o接口205:包括键盘、鼠标等的输入部分206;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分207;包括硬盘等的存储部分208;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分209。通信部分209经由诸如因特网的网络执行通信处理。驱动器210也根据需要连接至i/o接口205。可拆卸介质211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器210上,以便于从其上读出的计算机程序根据需要被安装入存储部分208。

特别地,根据本发明的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分209从网络上被下载和安装,和/或从可拆卸介质211被安装。在该计算机程序被中央处理单元(cpu)201执行时,执行本申请的方法和/或装置中限定的各种功能。

需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本发明各种实施例的方法、装置和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本发明实施例中所涉及到的模块和/或单元和/或子单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的模块和/或单元和/或子单元也可以设置在处理器中。其中,这些模块和/或单元和/或子单元的名称在某种情况下并不构成对该模块和/或单元和/或子单元本身的限定。

作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如下述实施例中所述的方法。例如,所述的电子设备可以实现如图3或图4或图5或图6或图7所示的各个步骤。

图3示意性示出了根据本发明的一实施例的用于视频编码的方法的流程图。

本发明实施方式提供的用于视频编码的方法,视频序列可以采用n路编码,其中,n为大于等于2的正整数。

例如,n可以为2,则当前视频序列采用2路编码,即首先将当前视频序列进行第一路编码(1pass);然后再基于1pass编码后的分析文件,对当前视频序列进行第二路编码(2pass)。当当前视频序列采用2路编码时,1pass编码一般仅保留需要的有效信息并存储为文件,以供2pass编码时读取该文件中的有效信息进行第二路编码。

其中,2pass编码方式可以精确的得到想要的平均码率,2pass代表将视频序列做2次编码,第一路编码视频编码器例如x264先分析整个视频序列,可以得到一个stats文件和一个mbtree文件(默认使用mbtree)。第二路编码可以以这两个文件作参考分配合理的码率。需要特定的码率或文件大小需要使用2pass或者多pass编码。

再例如,n可以为3,则当前视频序列采用3路编码,即首先将当前视频序列进行第一路编码(1pass);然后再基于1pass编码后的分析文件,对当前视频序列进行第二路编码(2pass);接着再基于2pass编码后的分析文件,对当前视频序列进行第三路编码(3pass)。以此类推,可以对当前视频序列进行多路编码,具体的编码路数可以根据应用场景而定,本发明对此不作限定。即除了2pass,还有多pass编码方式,在之前分析的基础上再继续分析,理论上会使码率分配更加合理,但实际上2pass已经足够了。

需要说明的是,在下面的举例中,均以视频序列采用2路编码为例进行说明,但本发明并不限定于此。

如图3所示,本发明实施方式提供的用于视频编码的方法可以包括以下步骤。本发明实施方式的方法可以由终端设备执行,也可以由服务端执行,或者由终端设备和服务端交互执行,例如,可以由上述图1中的服务器105执行,但本发明并不限定于此。

在步骤s310中,对所述视频序列进行第(n-1)路编码生成第(n-1)路分析文件,并获得所述视频序列中视频帧的第(n-1)路编码信息。

在示例性实施例中,所述第(n-1)路编码信息可以包括所述视频帧的第(n-1)路亮度分量和色度分量峰值信噪比(即视频帧的第(n-1)路yuvpsnr,下文中记为(n-1)passpsnr)。

其中,psnr(peaksignaltonoiseratio,峰值信噪比),是一种评价图像的客观标准。通常在经过影像压缩之后,输出的影像都会在某种程度与原始影像不同。为了衡量经过处理后的影像品质,通常会参考psnr值来衡量某个处理是否令人满意。psnr的单位是db,数值越大表示失真越小。psnr是普遍和使用较为广泛的一种图像客观评价指标,它是基于对应像素点间的误差,即基于误差敏感的图像质量评价。

在步骤s320中,获取所述视频帧的第n路编码码率控制阶段的量化参数(quantizationparameter,qp,下文中记为q)。

本发明实施例中,在对所述视频序列中第n路编码之前,视频编码器会预先自动给所述视频序列中的各个视频帧分配一个初始的量化参数q。

在步骤s330中,基于所述第(n-1)路分析文件对所述视频序列进行第n路编码,并根据所述视频帧的第(n-1)路编码信息修正所述视频帧的第n路编码码率控制阶段的量化参数。

本发明实施例中,利用各视频帧的第(n-1)路编码信息对编码中所使用的量化参数值进行修正,然后利用修正后的量化参数值进行编码。

在示例性实施例中,所述根据所述视频帧的第(n-1)路编码信息修正所述视频帧的第n路编码码率控制阶段的量化参数,可以包括:若所述视频帧中的当前帧的第(n-1)路亮度分量和色度分量峰值信噪比大于第一阈值且所述当前帧非场景切换帧,则根据所述当前帧的第(n-1)路亮度分量和色度分量峰值信噪比修正所述当前帧的量化参数。

例如,所述第一阈值可以为61。但本发明并不限定于此,所述第一阈值的取值可以根据所述视频序列是否分段视频序列以及具体的应用场景来确定。

本发明实施例中,可以将(n-1)passpsnr大于所述第一阈值的视频帧称之为低亮度帧。例如,低亮度帧可以是指视频帧的第(n-1)路yuvpsnr值大于61的视频帧。

这里对视频编码的基本原理进行简单说明:视频图像数据有极强的相关性,也就是说有大量的冗余信息。其中冗余信息可分为空域冗余信息和时域冗余信息。压缩技术就是将数据中的冗余信息去掉,去除数据之间的相关性,压缩技术包含帧内图像数据压缩技术、帧间图像数据压缩技术和熵编码压缩技术。视频文件一般涉及到三个参数:帧率、分辨率和码率。其中,帧率是指每秒显示的图片数,帧率影响画面流畅度,与画面流畅度成正比。码率是指把每秒显示的图片进行压缩后的数据量,码率影响体积,与体积成正比。分辨率是指(矩形)图片的长度和宽度,即图片的尺寸。其中,帧率乘以分辨率等于压缩前的每秒数据量,单位为字节。压缩比等于压缩前的每秒数据量/码率,对于同一个视频源并采用同一种视频编码算法,则压缩比越高,画面质量越差。

视频质量可以通过主观和客观方式来表现,主观方式就是通常人们提到的视频清晰度,而客观参数则是量化参数或者压缩比或者码率。在视频源一样,压缩算法也一样的前提下比较,量化参数、压缩比和码率之间是有直接的比例关系的。

其中,视频的码率直接影响到了视频的编码质量。为了在信道带宽和传输时延受限的情况下,有效地传输视频数据以满足网络视频业务的服务要求,通常需要对视频编码进行码率控制。所谓的码率控制就是通过设置适当的编码参数,在保证恢复视频质量的前提之下,使视频编码产生的码率尽可能的接近已定好的目标码率。

在示例性实施例中,所述根据所述当前帧的第(n-1)路亮度分量和色度分量峰值信噪比修正所述当前帧的量化参数,可以包括:若所述当前帧的第(n-1)路亮度分量和色度分量峰值信噪比处于第1区间至第m1区间中的任意一个,则采用相应的调控因子修正所述当前帧的量化参数;其中,m1为大于等于1的正整数。

本发明实施例中,m1等于5。但本发明并不限定于此,具体的区间划分可以根据实际应用场景选择,这里仅用于举例说明。

在示例性实施例中,所述若所述当前帧的第(n-1)路亮度分量和色度分量峰值信噪比处于第1区间至第m区间中的任意一个,则采用相应的调控因子修正所述当前帧的量化参数,可以包括:

若所述当前帧的第(n-1)路亮度分量和色度分量峰值信噪比处于第1区间,则采用第一调控因子qfactor1修正所述当前帧的量化参数;或

若所述当前帧的第(n-1)路亮度分量和色度分量峰值信噪比处于第2区间,则采用第二调控因子qfactor2修正所述当前帧的量化参数;或

若所述当前帧的第(n-1)路亮度分量和色度分量峰值信噪比处于第3区间,则采用第三调控因子qfactor3修正所述当前帧的量化参数;或

若所述当前帧的第(n-1)路亮度分量和色度分量峰值信噪比处于第4区间,则采用第四调控因子qfactor4修正所述当前帧的量化参数;或

若所述当前帧的第(n-1)路亮度分量和色度分量峰值信噪比处于第5区间,则采用第五调控因子qfactor5修正所述当前帧的量化参数。

本发明实施例通过评测低亮度的视频帧(可以简写为低亮度帧)和统计低亮度的视频帧的yuvpsnr值进行分区间,将低亮度场景的视频帧划分成5个区间,在各个区间中采用大量数据的经验值得出的相应调控因子来调整量化参数,可以有效提高低亮度场景的视频帧的视频质量,减少质量波动,特别是针对分布式编码效果显著,可以将其应用视频点播和直播平台中。

在示例性实施例中,若所述视频序列为分段视频序列,则所述第一至第五调控因子分别为:1.2、1.8、2.2、3、4.5。

需要说明的是,上述第一至第五调控因子是针对分布式编码中的分段视频序列进行大量数据统计分析获得的经验值,若所述视频序列的编码方式发生改变例如采用非分布式编码,则相应的上述第一至第五调控因子可以发生相应的变化。此外,虽然上述以分布式视频编码为例进行说明,但本发明实施例提供的方法也可以应用非分布式编码方式中。

其中,视频转换编码简称视频转码,是指视频从一种格式到另一种格式的转换,其中格式是由码率、帧率、空间分布率和编码算法所表征。随着高清电影的发展,影片的片源容量从几g增加到几十g不等,对此类片源转码所需的时间也急剧增加。另外,由于转码需要适配的用户终端类型增多,转码任务日趋繁多。目前主流的转码模式有分布式的,即采用多台转码服务器同时对视频文件进行转码。将视频在片源分段,将每段传输到对应的转码服务器上,转码完成后将各段合并成一个视频文件,返回该视频。这种方式优点是并行转码,时间成本低,可以应对并发转码任务。例如基于hadoop平台的分布式视频转码方案,使用hdfs(hadoopdistributedsystem,分布式文件系统)存储视频文件和利用mapreduce编程框架进行分布式转码,转码工具采用ffmpeg,将视频存储和转码集成一体,达到减少转码时所需网络带宽和耗时的目的。

其中,整个系统可以包括一个webserver和一个hadoop集群。webserver负责处理用户请求,包括视频的存取和转码。hadoop集群中的namenode负责接收webserver转发的用户请求,调度集群中的datanodes进行视频存储或者转码。hdfs中文件都以数据块形式存储,一个文件由一个或多个数据块组成,其中数据块的大小可以调整,故在存储视频文件时需要分段(对视频分段即分块)。

在分布式编码中,分段视频序列的切片点也是一个视频帧。位于切片点处的视频帧一方面可能发生帧类型(例如i帧,或者p帧,或者b帧)的改变;另一方面,即使切片点处的视频帧不发生帧类型的改变,由于分布式编码中视频连续性受到了影响,也会影响视频质量。例如,当前帧如果是帧间预测帧,需要参考前向的视频帧,切片会导致编码信息的缺失。因此,在分布式编码中因为切片点的帧类型改变和/或编码信息的缺失会导致视频的质量波动更严重。

在示例性实施例中,其中,所述根据所述视频帧的第(n-1)路编码信息修正所述视频帧的第n路编码码率控制阶段的量化参数,可以包括:若所述视频帧中的当前帧的第(n-1)路亮度分量和色度分量峰值信噪比大于第二阈值且处于第m2区间,且所述当前帧为第一帧间预测帧,则获取所述当前帧的前向参考帧的量化参数;根据所述前向参考帧的量化参数修正所述当前帧的量化参数;其中,m2为大于等于1的正整数。

在示例性实施例中,m1可以等于m2,例如m1=m2=5。但本发明并不限定于此。

在示例性实施例中,可以采用以下公式修正所述第一帧间预测帧的量化参数:

q’=q-(ref0qp+a)*b(1)

其中,上述公式(1)中,ref0qp为所述第一帧间预测帧的前向参考帧的量化参数;a和b为常数,例如a可以取值为4,b可以取值为2,但本发明并不限定于此;q为所述第一帧间预测帧的量化参数;q’为所述第一帧间预测帧修正后的量化参数。

在示例性实施例中,所述根据所述视频帧的第(n-1)路编码信息修正所述视频帧的第n路编码码率控制阶段的量化参数,可以包括:若所述视频帧中的当前帧的第(n-1)路亮度分量和色度分量峰值信噪比大于第二阈值且处于第m2区间,且所述当前帧为第二帧间预测帧,则获取所述当前帧的前向参考帧的量化参数和/或所述当前帧的后向参数帧的量化参数;根据所述当前帧的前向参考帧的量化参数和/或所述当前帧的后向参数帧的量化参数修正所述当前帧的量化参数;其中,m2为大于等于1的正整数。

在示例性实施例中,所述第二阈值大于等于所述第一阈值,例如所述第二阈值可以取值为97。本发明实施例中,一方面可以采用相应的调控因子对低亮度帧的量化参数进行优化;另一方面,还可以采用当前帧的前向参考帧和/或后向参考帧的量化参数可以针对更低亮度帧甚至近似黑暗的场景的视频帧进行所述当前帧的量化参数的进一步优化处理。

在示例性实施例中,可以采用以下公式修正所述第二帧间预测帧的量化参数:

q’=q–((ref0qp+c1)+(ref1qp+c2))*d(2)

其中,上述公式(2)中,ref0qp为所述第二帧间预测帧的前向参考帧的量化参数;ref1qp为所述第二帧间预测帧的后向参考帧的量化参数;c1、c2和d为常数,例如c1和c2可以相等,两者均取值为4,d可以取值为2,但本发明并不限定于此;q为所述第二帧间预测帧的量化参数;q’为所述第二帧间预测帧修正后的量化参数。

本发明实施例中,由于h.261、h.263、h.264和mpeg2、mpeg4等编码标准均采用帧层码率控制算法来对视频进行压缩,所以本发明适用范围涵盖以上这些编码标准。

本发明实施方式提供的用于视频编码的方法,基于多路(包括两路)编码的方式,通过对视频序列进行前一路编码保留的前一路编码信息,可以对当前路编码的码率控制阶段的量化参数进行优化,从而可以弥补视频帧的质量波动以达到减少质量损失和减少波动的效果。特别是针对分布式编码中的低亮度视频帧这种局部特殊场景,可以有效的调整质量波动。

下面结合图4-7,并以视频序列采用两路编码为例,对上述实施例提供的用于视频编码的方法进行举例说明。

本发明实施例中,在进入第二路编码码率控制阶段的量化参数调整前,首先会对视频序列进行第一路编码(1pass编码)的第一路编码信息(例如第一路编码的onepasspsnr)的获取并存入分析文件file,并在所述视频文件的第二路编码(2pass)阶段进行所述一路编码信息的获取。具体的操作如流程图4和流程图5所示。

图4示出了图3中所示的步骤s310在一实施例中的处理过程示意图。本发明实施方式的方法步骤可以由终端设备执行,也可以由服务端执行,或者由终端设备和服务端交互执行,例如,可以由上述图1中的服务器105执行,但本发明并不限定于此。

如图4所示,本发明实施方式中,上述步骤s310可以进一步包括以下步骤。

在步骤s311中,判断视频序列是否存在;若视频序列存在,则进入步骤s312;反之,跳转到步骤s315结束本次操作。

在步骤s312中,判断所述视频序列当前是否为第一路编码(1pass编码);若是第一路编码,则进入步骤s313;反之,进入步骤s314。

在步骤s313中,对所述视频序列中的视频帧进行第一路编码(1pass编码)并收集所述视频帧的第一路编码信息。

在步骤s314中,输出错误信息。

在步骤s315中,结束。

图5示出了图3中所示的步骤s330在一实施例中的处理过程示意图。本发明实施方式的方法步骤可以由终端设备执行,也可以由服务端执行,或者由终端设备和服务端交互执行,例如,可以由上述图1中的服务器105执行,但本发明并不限定于此。

如图5所示,本发明实施方式中,上述步骤s330可以进一步包括以下步骤。

在步骤s331中,判断视频序列是否存在;若视频序列存在,则进入步骤s332;反之,跳转到步骤s336结束本次操作。

在步骤s332中,判断所述视频序列当前是否为第二路编码(2pass编码);若是第二路编码(2pass编码),则进入步骤s333;反之,进入步骤s335。

本发明实施例中,2pass是2次编码的意思,fil分析文件,记录了1pass中的信息。2次编码就相当于2次转换,虽然转换时间会延长,但压缩出来的视频会有更好的画质,画面细节更好,而且体积会更小。2pass主要是针对非实时的视频编码如文件来说的,第一路编码是先对整个视频文件进行扫描,记录一些统计信息,第二路编码时根据前面记录的统计信息再进行编码,这样的好处是可以提高编码的质量。

在步骤s333中,判断是否存在第一路分析文件(file);若存在所述第一路分析文件,则进入步骤s334;反之,跳转到步骤s336结束本次操作。

在步骤s334中,读取所述第一路分析文件,基于所述第一路分析文件对所述视频序列中的视频帧进行第二路编码。

在步骤s335中,输出错误信息。

在步骤s336中,结束。

下面通过图6和图7分别对第二路编码码率控制阶段的量化参数进行修正的方案进行举例说明。

需要说明的是,下述图6和图7中的方案可以结合起来对量化参数q进行优化,也可以仅采用图6或者图7中的一种方案对量化参数q进行优化,在下面的实施例中,以图6和图7中的方案结合起来对量化参数q进行优化为例进行说明。

图6示意性示出了根据本发明的又一实施例的用于视频编码的方法的流程图。

本发明实施例中,通过分析多个视频序列数据和场景,得出基于第一路编码信息(yuvpsnr值)对视频帧进行进行一个人为的分类,例如,这里假设yuvpsnr值在0-60db之间为普通的视频场景、61-89db为较暗的视频场景、90-100db划分为近似黑夜的视频场景,具体的流程图如图6所示。

需要说明的是,上述数值仅用于举例说明,实际应用中可以进行相应的调整。

本发明实施例中,在进行第二路编码码率控制编码的时候,首先获取第一路编码信息,然后在正式开始码率控制阶段的时候进行量化参数的调控。

如图6所示,本发明实施方式提供的用于视频编码的方法可以包括以下步骤。本发明实施方式的方法步骤可以由终端设备执行,也可以由服务端执行,或者由终端设备和服务端交互执行,例如,可以由上述图1中的服务器105执行,但本发明并不限定于此。

在步骤s601中,判断视频序列中的当前帧是否idr(instantaneousdecodingrefresh,即时解码刷新)帧;若所述当前为idr帧,则跳转到步骤s612;若所述当前帧不为idr帧,则进入步骤s602。

本发明实施例中,视频帧的帧类型可以包括i帧、p帧和b帧,其中idr帧属于i帧中的一种情况。

i帧为帧内编码帧,是一种自带全部信息的独立帧,无需参考其他图像便可独立进行解码,视频序列中的第一个帧始终都是i帧。i和idr帧都是使用帧内预测的。在编码和解码中为了方便,为了把首个i帧和其他i帧区别开,把第一个i帧叫idr帧,这样就方便控制编码和解码流程。

其中,idr帧的作用是立刻刷新,使错误不致传播,从idr帧开始,重新算一个新的序列开始编码。而i帧不具有随机访问的能力,这个功能是由idr承担。idr会导致dpb(decodedpicturebuffer,参考帧列表)清空,而i不会。idr帧一定是i帧,但i帧不一定是idr帧。一个视频序列中可以有很多的i帧,i帧之后的视频帧可以引用i帧之间的视频帧做运动参考。

对于idr帧来说,在idr帧之后的所有帧都不能引用任何ird帧之前的帧的内容,与此相反,对于普通的i帧来说,位于其之后的b和p帧可以引用位于普通i帧之前的i帧。从随机存取的视频流中,播放器永远可以从一个idr帧播放,因为在它之后没有任何帧引用之前的帧。但是,不能在一个没有idr帧的视频中从任意点开始播放,因为后面的帧总是会引用前面的帧。

对idr帧的处理与i帧的处理相同:进行帧内预测,决定所采用的帧内预测模式;像素值减去预测值,得到残差;对残差进行变换和量化;变长编码和算术编码;重构图像并滤波,得到的图像作为其它帧的参考帧。

需要说明的是,本发明实施例中,均以idr作为判断当前帧是否为场景切换帧的标识,但本发明并不限定于此。

本发明实施例中,首先判断当前帧的帧类型是否为idr帧,如果是idr帧则进入编码器默认操作,此时不对所述当前帧的量化参数q进行调整;否则,接下来判断当前帧对应在一路编码中的yuvpsnr值。

在步骤s602中,判断所述当前帧的第一路编码信息中的yuvpsnr值onepasspsnr是否大于97且小于等于100;若所述当前帧的97<onepasspsnr≤100,则跳转到步骤s611;若所述当前帧不满足97<onepasspsnr≤100,则进入步骤s603。

在步骤s603中,判断所述当前帧的第一路编码信息中的yuvpsnr值onepasspsnr是否大于90且小于等于97;若所述当前帧的90<onepasspsnr≤97,则跳转到步骤s610;若所述当前帧不满足90<onepasspsnr≤97,则进入步骤s604。

在步骤s604中,判断所述当前帧的第一路编码信息中的yuvpsnr值onepasspsnr是否大于85且小于等于90;若所述当前帧的85<onepasspsnr≤90,则跳转到步骤s609;若所述当前帧不满足85<onepasspsnr≤90,则进入步骤s605。

在步骤s605中,判断所述当前帧的第一路编码信息中的yuvpsnr值onepasspsnr是否大于70且小于等于85;若所述当前帧的70<onepasspsnr≤85,则跳转到步骤s608;若所述当前帧不满足70<onepasspsnr≤85,则进入步骤s606。

在步骤s606中,判断所述当前帧的第一路编码信息中的yuvpsnr值onepasspsnr是否大于60且小于等于70;若所述当前帧的60<onepasspsnr≤70,则跳转到步骤s607;若所述当前帧不满足60<onepasspsnr≤70,则进入步骤s612。

在步骤s607中,60<onepasspsnr≤70,q’=q-qfactor1,之后进入步骤s612进入其他编码阶段。

本发明实施例中,当onepasspsnr在(60,70]区间时,q’=q-qfactor1。

其中,q为二路编码码率控制阶段的量化参数;q’为修正后的二路编码码率控制阶段的量化参数。需要说明的是,如果当前视频序列采用n路编码,则q为n路编码码率控制阶段的量化参数,相应的onepasspsnr修改为(n-1)passpnsr即第(n-1)路编码的yuvpsnr值。

在步骤s608中,70<onepasspsnr≤85,q’=q-qfactor2,之后进入步骤s612进入其他编码阶段。

本发明实施例中,当onepasspsnr在(70,85]区间时,q’=q-qfactor2。

在步骤s609中,85<onepasspsnr≤90,q’=q-qfactor3,之后进入步骤s612进入其他编码阶段。

本发明实施例中,当onepasspsnr在(85,90]区间时,q’=q-qfactor3。

在步骤s610中,90<onepasspsnr≤97,q’=q-qfactor4,之后进入步骤s612进入其他编码阶段。

本发明实施例中,当onepasspsnr在(90,97]区间时,q’=q-qfactor4。

在步骤s611中,97<onepasspsnr≤100,q’=q-qfactor5,之后进入步骤s612进入其他编码阶段。

本发明实施例中,当onepasspsnr在(97,100]区间时,q’=q-qfactor5。

需要说明的是,实际情况中,onepasspsnr值并不是整数,一般编码时,onepasspsnr值是double类型的,小数点后面还有两位,所以虽然本发明实施例中对onepasspsnr值的区间划分以整数例如100、97、90、85、70、60为例作为端点值,但这种划分只是一种近似取值。

本发明实施例中,qfactor1-qfactor5qfactor为根据统计分析获得的优化经验值,例如,qfactor1到qfactor5取值可以分别为1.2,1.8,2.2,3,4.5。但本发明并不限定于此。

在步骤s612中,其他编码阶段。

在步骤s613中,结束。

图7示意性示出了根据本发明的再一实施例的用于视频编码的方法的流程图。

如图7所示,本发明实施方式提供的用于视频编码的方法还可以包括以下步骤。本发明实施方式的方法步骤可以由终端设备执行,也可以由服务端执行,或者由终端设备和服务端交互执行,例如,可以由上述图1中的服务器105执行,但本发明并不限定于此。

在步骤s701中,判断视频序列中当前帧的第一路编码信息中的yuvpsnr值onepasspsnr是否大于97且小于等于100且为第二路编码;若所述当前帧的97<onepasspsnr≤100且为第二路编码,则进入步骤s702;若所述当前帧不满足97<onepasspsnr≤100或者不为第二路编码,则进入步骤s709结束本次操作。

本发明实施例中,通过分析多个视频序列数据,onepasspsnr在区间(97,100)之间且当前编码为非一路编码(这里以二路编码为例)时候,采用上述图6所述方法对这类视频帧优化后,质量波动仍可以进一步改善。因此,当此类视频帧非场景切换帧(这里以idr帧为例,但本发明并不限定于此)之时,使用此类视频帧的参考帧(例如前向参考帧和/或后向参考帧)的信息,可以对此类视频帧的量化参数进一步优化。

本发明实施例中,当前帧的参考帧并非仅可以参考前后几帧,在此类型的编码器中,参考帧最长例如可以是参考前后16帧,因此采用图7所示方法在调整此类场景的视频帧时能够起到一定的效果。

本发明实施例中,在进行第二路编码码率控制编码的时候,首先获取第一路编码信息,然后在正式开始第二路编码码率控制阶段的时候进行量化参数的调控。

本发明实施例中,首先判断当前帧的onepasspsnr区间范围是否在(97,100]的区间内。

在步骤s702中,判断所述当前帧是否帧间预测帧;若所述当前帧为帧间预测帧,则进入步骤s703;若所述当前帧不为帧间预测帧,则跳转至步骤s708。

本发明实施例中,若所述当前帧的onepasspsnr区间范围在(97,100]的区间内,接着判断所述当前帧是否做帧间预测;如果所述当前帧不是做帧间预测,则所述当前帧是做帧内预测,此时保持当前帧的q值不变。

需要说明的是,这里所述的所述当前帧是做帧内预测,此时保持当前帧的q值不变,并不意味着q值一定是视频编码器初始预设值的量化参数,如果同时采用图6和图7所述方法对所述视频序列进行处理,则所述当前帧的量化参数q已经经过上述图6所述方法的处理,即97<onepasspsnr≤100,q’=q-qfactor5。

在步骤s703中,判断所述当前帧是否为p帧;若所述当前帧为p帧,则进入步骤s704;若所述当前帧不为p帧,则跳转至步骤s706。

本发明实施例中,若所述当前帧为帧间预测帧,则进一步判断当前帧是帧间p帧还是b帧。

其中,p帧为前向预测编码帧。在针对连续动态图像编码时,将连续若干幅图像分成p、b、i三种类型,p帧由在它前面的p帧或者i帧预测而来,它比较与它前面的p帧或者i帧之间的相同信息或数据,也即考虑运动的特性进行帧间压缩。p帧法是根据本帧与相邻的前一帧i帧或p帧的不同点来压缩本帧数据。采取p帧和i帧联合压缩的方法可达到更高的压缩且无明显的压缩痕迹。

其中,p帧是以i帧为参考帧,在i帧中找出p帧“某点”预测值和运动矢量,取预测差值和运动矢量一起传送。在接收端根据运动矢量从i帧中找出p帧某点的预测值并与差值相加以得到p帧某点样值,从而可得到完整的p帧。

在步骤s704中,判断所述当前帧是否存在前向参考帧;若所述当前帧存在前向参考帧,则进入步骤s705;若所述当前帧不存在前向参考帧,则跳转至步骤s709结束本次操作。

本发明实施例中,参考帧就是ipb编码时所需参考的帧。参考帧和ipb的关系,需要知道每种帧类型的编码方式。其中,i帧参考本图像内的块编码,不需要参考帧。p帧参考前面的i帧或p帧来编码,参考帧都是前向的。b帧参考前面的和后面的i帧或p帧编码,例如可以前后各一帧,或者只是前向参考帧或后向参考帧(三种任选)。

在步骤s705中,若所述当前帧为p帧,则可以采用以下公式对所述当前帧的量化参数q进行调整:

ref0qp’=ref0qp+4,

q’=q-ref0qp’*2,

本发明实施例中,若所述当前帧是帧间p帧,获取refslice0的ref0qp值;若所述当前帧帧间的b帧,获取refslice0和refslice1的ref0qp和ref1qp值。

其中,refslice0表示所述当前帧的前向参考帧;ref0qp表示refslice0量化参数即qp值。

在步骤s706中,若所述当前帧为b帧,则判断所述当前参考是否存在前向参考帧和/或后向参考帧;若所述当前参考存在前向参考帧和/或后向参考帧,则进入步骤s707;若所述当前参考不存在前向参考帧和/或后向参考帧,则跳转至步骤s709结束本次操作。

本发明实施例中,若所述当前帧为帧间预测的b帧且所述当前帧同时存在前向参考帧和后向参考帧,则获取refslice0和refslice1的ref0qp和ref1qp值。

其中,refslice0和refslice1分别为所述当前帧的前向参考帧和后向参考帧;ref0qp和ref1qp分别表示refslice0和refslice1的量化参数即qp值。

本发明实施例中,有的视频序列比较简单,就可能没有b帧。

其中,b帧为双向预测内插编码帧。b帧法是双向预测的帧间压缩算法。当把一帧压缩成b帧时,它根据相邻的前一帧、本帧以及后一帧数据的不同点来压缩本帧,也即仅记录本帧与前后帧的差值。采用b帧压缩能达到高压缩。b帧是以前面的i帧或p帧和后面的p帧为参考帧,找出b帧“某点”的预测值和两个运动矢量,并取预测差值和运动矢量传送。接收端根据运动矢量在两个参考帧中。

在步骤s707中,本发明实施例中,若所述当前帧为帧间预测的b帧且所述当前帧同时存在前向参考帧和后向参考帧,可以采用以下公式对所述当前帧的量化参数q进行修正:

ref0qp’=ref0qp+4

ref1qp’=ref1qp+4

combine_ref=(ref0qp’+ref1qp’)*2

q’=q-combine_ref,

其中,combine_ref表示,如果当前帧是b帧且前后向参考帧都存在时的所述当前帧的量化参数的调优常数。

需要说明的是,上述步骤中均是以当前帧的一个前向参考帧和/或一个后向参考帧为例进行举例说明,但在其他实施例中,所述当前帧可能同时存在多个前向参考帧和/或多个后向参考帧,此时,也可以根据所述当前帧的多个前向参考帧和/或多个后向参考帧的量化参数对所述当前帧的量化参数进行优化,本发明对此不作限定。

在步骤s708中,若所述当前帧为帧内预测帧,q不变。

在步骤s709中,结束。

本发明实施例中,可以通过ssim来衡量视频序列的质量波动,即ssim标准差越小,ssim平均值越大,则认为相应的视频序列的质量波动越小。

其中,ssim(structualssimilarity,结构相似性),也是一种全参考的图像质量评价指标,它分别从亮度、对比度、结构三方面度量图像相似性。ssim取值范围[0,1],值越大,表示图像失真越小。

实际测试中,以测试序列1和测试序列2为例采用上述方法对视频序列进行优化,具体效果如下表所示:

根据上表的测试结果可以看出,视频序列切片后采用本发明实施方式提供的方法优化后,其对应低亮度视频帧的位置处的ssim标准差小于原始未切片的视频序列相应位置的ssim标准差;同时,对应于局部出现场景较暗的区域的视频帧位置的ssim平均值,视频序列切片后采用本发明实施方式提供的方法优化后,其ssim平均值大于原始未切片视频序列对应位置的ssim平均值。由此可知,本发明实施方式提供的用于视频编码的方法是可行的,可以在加快视频编解码速度的同时,保证视频质量;优化了视频点播和直播平台,给用户带来更好的视觉体验。

图8示意性示出了根据本发明的一实施例的用于视频编码的装置的框图。

本发明实施方式提供的用于视频编码的装置800,视频序列可以采用n路编码。其中,n为大于等于2的正整数。

如图8所示,本发明实施方式提供的用于视频编码的装置800可以包括:第一编码模块810、量化参数获取模块820以及第二编码模块830。

其中,第一编码模块810可以配置为对所述视频序列进行第(n-1)路编码生成第(n-1)路分析文件,并获得所述视频序列中视频帧的第(n-1)路编码信息。

在示例性实施例中,所述第(n-1)路编码信息包括所述视频帧的第(n-1)路亮度分量和色度分量峰值信噪比。

量化参数获取模块820可以配置为获取所述视频帧的第n路编码码率控制阶段的量化参数。

第二编码模块830可以配置为基于所述第(n-1)路分析文件对所述视频序列进行第n路编码,并根据所述视频帧的第(n-1)路编码信息修正所述视频帧的第n路编码码率控制阶段的量化参数。

本发明实施例提供的用于视频编码的装置中的各个模块的具体实现可以参照上述用于视频编码的方法中的内容,在此不再赘述。

图9示意性示出了根据本发明的又一实施例的用于视频编码的装置的框图。

如图9所示,本发明实施方式提供的用于视频编码的装置900可以包括:第一编码模块910、量化参数获取模块920以及第二编码模块930。

其中,第一编码模块910可以配置为对所述视频序列进行第(n-1)路编码生成第(n-1)路分析文件,并获得所述视频序列中视频帧的第(n-1)路编码信息。

在示例性实施例中,所述第(n-1)路编码信息包括所述视频帧的第(n-1)路亮度分量和色度分量峰值信噪比。

量化参数获取模块920可以配置为获取所述视频帧的第n路编码码率控制阶段的量化参数。

其中,第一编码模块910和量化参数获取模块920可以参照上述图8所示实施例中的第一编码模块810和量化参数获取模块820。

第二编码模块930可以配置为基于所述第(n-1)路分析文件对所述视频序列进行第n路编码,并根据所述视频帧的第(n-1)路编码信息修正所述视频帧的第n路编码码率控制阶段的量化参数。

在示例性实施例中,第二编码模块930可以进一步包括:第n路编码单元(图中未示出)。其中,所述第n路编码单元可以配置为基于所述第(n-1)路分析文件对所述视频序列进行第n路编码。

在图9所示实施例中,第二编码模块930还可以包括第一量化参数修正单元931。其中,第一量化参数修正单元931可以配置为若所述视频帧中的当前帧的第(n-1)路亮度分量和色度分量峰值信噪比大于第一阈值且所述当前帧非场景切换帧,则根据所述当前帧的第(n-1)路亮度分量和色度分量峰值信噪比修正所述当前帧的量化参数。

继续参考图9,第一量化参数修正单元931可以包括:第一量化参数修正子单元9311。其中,第一量化参数修正子单元9311可以配置为若所述视频帧中的当前帧的第(n-1)路亮度分量和色度分量峰值信噪比大于第一阈值且所述当前帧非场景切换帧,且所述当前帧的第(n-1)路亮度分量和色度分量峰值信噪比处于第1区间至第m1区间中的任意一个,则采用相应的调控因子修正所述当前帧的量化参数;其中,m1为大于等于1的正整数。

继续参考图9,第二编码模块930还可以包括:第二量化参数修正单元932和/或第三量化参数修正单元933。

其中,第二量化参数修正单元932可以配置为若所述视频帧中的当前帧的第(n-1)路亮度分量和色度分量峰值信噪比大于第二阈值且处于第m2区间,且所述当前帧为第一帧间预测帧,则获取所述当前帧的前向参考帧的量化参数;根据所述前向参考帧的量化参数修正所述当前帧的量化参数;和/或

第三量化参数修正单元933可以配置为若所述视频帧中的当前帧的第(n-1)路亮度分量和色度分量峰值信噪比大于所述第二阈值且处于第m2区间,且所述当前帧为第二帧间预测帧,则获取所述当前帧的前向参考帧的量化参数和/或所述当前帧的后向参数帧的量化参数;根据所述当前帧的前向参考帧的量化参数和/或所述当前帧的后向参数帧的量化参数修正所述当前帧的量化参数;其中,m2为大于等于1的正整数。

在示例性实施例中,所述第二阈值大于所述第一阈值。

本发明实施例提供的用于视频编码的装置中的各个模块和/或单元和/或子单元的具体实现可以参照上述用于视频编码的方法中的内容,在此不再赘述。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元或者子单元,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或者单元或者子单元的特征和功能可以在一个模块或者单元或者子单元中具体化。反之,上文描述的一个模块或者单元或者子单元的特征和功能可以进一步划分为由多个模块或者单元或者子单元来具体化。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本发明实施方式的方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

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