视频编码方法和装置与流程

文档序号:11157555阅读:312来源:国知局
视频编码方法和装置与制造工艺
本发明公开涉及视频编码,尤其涉及一种降低视频码率的方法和装置。
背景技术
:网络视频服务提供商可以根据网络带宽压制特定的码流。观看网络视频的用户的硬件和网络情况往往是复杂多样的,且会随时间发生较大变化,比如网络拥塞、网络抖动等,因此,一般认为很难为用户定制特定码率的视频。为了兼顾网络服务质量和实现的难易程度,现有网络视频网站一般都预先将视频压制为几个档位,比如流畅、高清、超清、蓝光等,用户可以根据自己的网络情况和硬件条件,选择合适档位的视频观看。网络视频网站的主要成本是高额的网络带宽费用,约占总成本的60%-70%。随着视频的分辨率和码率的增高,以及用户对观看体验要求的提升,这部分成本还在在显著增加。如何以合理的成本应对上述变化,而又不降低服务质量(QualityofService,QoS)的前提下,成为了网络视频服务提供商的当务之急。目前,大都使用时域估计或空域估计的方法估计视频复杂度,这些都是计算密集型的方法,会显著降低编码速度,增加编码延时,这些方法没有实际编码,所以确定码率的准确性较低。技术实现要素:为了实现上述目的,根据本发明的实施例,希望提供一种根据视频内容的复杂度来自适应地调整视频码率的方案,优选地,希望该方案能够有效降低视频的编码码率,从而降低带宽成本。具体地,根据本发明的公开第一方面的实施例,提供了一种训练视频编码器的方法,包括:将所述编码器设置为二次编码模式;确定多个目标码率;提供多个训练片源,并为其中每个训练片源执行以下操作:-以所述多个目标码率中的一个作为目标码率,获得所述训练片源一次通过所述编码器后的量化参数值;-更换目标码率,重复上述步骤,直至遍历所述多个目标码率;-基于该训练片源的各个目标码率与量化参数值对,确定该训练片源的目标码率与量化参数关系曲线;基于所述多个训练片源各自的目标码率与量化参数关系曲线中的一条或多条曲线,获得一条拟合曲线,所述拟合曲线将用于所述编码器后续的视频编码。可选地,确定多个目标码率的步骤包括:-确定一个连续的目标码率集合;-从所述连续的目标码率集合中采样出离散的所述多个目标码率。可选地,所述多个训练片源分属于不同的视频类型。可选地,获得所述训练片源一次通过所述编码器后的量化参数值的步骤包括:获得所述训练片源一次通过所述编码器后的平均量化参数值。可选地,基于所述多个训练片源各自的目标码率与量化参数关系曲线中的一条或多条曲线,获得一条拟合曲线的步骤包括:选择所述多个训练片源各自的目标码率与量化参数关系曲线中量化参数较高的多条曲线,拟合出所述拟合曲线。可选地,所述拟合曲线对应复杂度最高的视频,并由下式表示:Qp(k)=a×kb+c,其中a,b和c为所述编码器的模型参数,k表示码率,Qp(k)表示码率为k时的量化参数值。根据本发明公开的另一方面,提供了一种视频编码方法,包括:i.将待编码的视频输入根据前述方法训练后的编码器;ii.以一个第一码率为目标码率,得到所述视频第一次通过所述编码器后的平均量化参数;iii.根据步骤i中设置的第一码率和步骤ii中得到的平均量化参数,计算第二码率;iv.将所述第二码率作为目标码率,将所述视频再次输入所述编码器,得到编码完成的所述视频。可选地,所述步骤iii包括:根据b(r)=d×((QP(r)/QP1)e)×r来计算所述第二码率,其中b(r)为所述第二码率,d、e为预先确定的常量,r为所述第一码率,QP1为所述步骤ii中得到的所述平均量化参数,QP(r)为将r代入所述编码器的拟合曲线后的结果。根据本发明公开的另一方面的实施例,提供了一种训练视频编码器的计算机设备,包括:处理器;存储器,所述存储器存储了可由所述处理器执行的指令,当所述指令被执行时,使得所述处理器执行以下操作:将所述编码器设置为二次编码模式;确定多个目标码率;提供多个训练片源,并为其中每个训练片源执行以下操作:-以所述多个目标码率中的一个作为目标码率,获得所述训练片源一次通过所述编码器后的量化参数值;-更换目标码率,重复上述步骤,直至遍历所述多个目标码率;-基于该训练片源的各个目标码率与量化参数值对,确定该训练片源的目标码率与量化参数关系曲线;以及,基于所述多个训练片源各自的目标码率与量化参数关系曲线中的一条或多条曲线,获得一条拟合曲线,所述拟合曲线将用于所述编码器后续的视频编码。可选地,所述确定多个目标码率的步骤包括:确定一个连续的目标码率集合;从所述连续的目标码率集合中采样出离散的所述多个目标码率。可选地,所述多个训练片源分属于不同的视频类型。可选地,获得所述训练片源一次通过所述编码器后的量化参数值的步骤包括:获得所述训练片源一次通过所述编码器后的平均量化参数值。可选地,基于所述多个训练片源各自的目标码率与量化参数关系曲线中的一条或多条曲线,获得一条拟合曲线的步骤包括:选择所述多个训练片源各自的目标码率与量化参数关系曲线中量化参数较高的多条曲线,拟合出所述拟合曲线。可选地,所述拟合曲线对应复杂度最高的视频,并由下式表示:Qp(k)=a×kb+c,其中a,b和c为所述编码器的模型参数,k表示码率,Qp(k)表示码率为k时的量化参数值。根据本发明公开的另一方面的实施例,提供了一种用于视频编码的计算机设备,包括:处理器;存储器,其上存储了可供所述处理器执行的指令,当所述指令被执行时,使得所述处理器执行以下操作:i.将待编码的视频输入经前述的计算机设备训练后的编码器;ii.以一个第一码率为目标码率,得到所述视频第一次通过所述编码器后的平均量化参数;iii.根据步骤i中设置的第一码率和步骤ii中得到的平均量化参数,计算第二码率;iv.将所述第二码率作为目标码率,将所述视频再次输入所述编码器,得到编码完成的所述视频。可选地,所述步骤iii包括:根据b(r)=d×((Qp(r)/QP1)e)×r来计算所述第二码率,其中b(r)为所述第二码率,d、e为预先确定的常量,r为所述第一码率,QP1为所述步骤ii中得到的所述平均量化参数,QP(r)为将r代入所述编码器的拟合曲线后的结果。与现有技术相比,本发明的实施例具有以下优点:在保证视频主观画质基本不变的前提下,建立了视频复杂度与允许降低码率的模型;根据视频内容的复杂度自适应估计视频所需码率,利用编码器中2pass码率控制方式中第一遍编码pass1的结果估计视频内容复杂度,并修改第二遍编码pass2的码率,几乎不增加任何计算量;所有的视频编码后比特率和量化参数(QuantizationParameter,QP)都符合统一的关系,通用性好。附图说明通过阅读以下参照附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:图1为根据本发明公开的实施例的训练视频编码器的方法流程示意图;图2为根据本发明公开的实施例的对视频进行编码的方法流程示意图;图3为根据本发明公开的实施例表示码率与量化参数间关系的拟合曲线的示意图。附图中相同或相似的附图标记代表相同或相似的部件。具体实施方式图1为根据本发明公开的实施例的训练视频编码器的方法流程示意图,该方法典型地可以由计算机来实现,编码器具体地可以由计算机软件或是与硬件的结合来实现。首先,在步骤12中,将编码器设置为二次编码模式,换言之,将编码器的码率控制模式设置为2pass模式。进入步骤14。在步骤14中,确定多个目标码率,例如,TBR1,TBR2和TBR3。具体地,步骤14可以实现如下:确定一个连续的目标码率集合R;从这个连续的目标码率集合中采样出离散的多个目标码率,作为步骤14的结果。在步骤16中,提供多个训练片源,并为其中每个训练片源执行步骤162-166。其中,优选地,这些训练片源属于尽可能多的不同的视频类型,例如新闻、体育、电影、动漫等。步骤162中,以TBR1为目标码率,将该训练片源送入编码器,获得该训练片源一次通过编码器后的量化参数值,这里,获得的量化参数(QP)值可以是平均值,也即,平均量化参数值。由此,得到一个属于该训练片源的目标码率与平均量化参数值对。步骤164中,更换以TBR2为目标码率,重复步骤162中的操作,为该训练片源获得TBR2相对应的平均量化参数值,而后,再换以TBR3为目标码率,将该训练片源送入编码器,得到与TBR3相对应的平均量化参数值。步骤166中,基于该训练片源的各个目标码率与量化参数值对,确定该训练片源的目标码率与量化参数关系曲线,根据一个例子,该关系曲线可以如图3所示。经过步骤16,为这一个训练片源获得的三组参数对,通过分别为其它训练片源执行相应的操作,可以为每个训练片源分别获得三组参数对。如果有N个训练片源,则经步骤16,可以得到N条曲线,这样,有助于找出复杂度最高的视频内容所对应的TBR与量化参数的关系的连续曲线。优选地,在步骤16中,按照从小到大的顺序为每个训练片源选择目标码率,本例中,假设TBR1<TBR2<TBR3。如果这些参数间大小关系与此不同,则相应的选择的先后顺序可优选地相应调整。步骤18中,从基于所述多个训练片源各自的目标码率与量化参数关系曲线中的一条或多条曲线,获得一条拟合曲线,所述拟合曲线将用于所述编码器后续的视频编码。具体地,步骤18中的拟合曲线可以通过以下方式描绘:选择所述多个训练片源各自的目标码率与量化参数关系曲线中量化参数较高的一条或多条曲线,拟合出所述拟合曲线。该曲线可以用下式表示:Qp(k)=a×kb+c(1)其中a,b和c为所述编码器的模型参数,k表示码率,Qp(k)表示码率为k时的量化参数值,该拟合曲线相应地对应于复杂度最高的视频,因为根据编码理论,相同码率下,复杂度高的视频编码时使用的平均量化参数值高。此处所说的复杂度最高的视频不是上述各训练源片中复杂度最高的一个,而是其中最高的m个对应数据的拟合。根据一个替代例,所述拟合曲线也可以用其它方式拟合,例如多项式。本发明公开实施例中的编码器的参数选择的一个例子如表1所示:表1模型参数的取值档位分辨率码率/kbpsabcde蓝光/原画1920x10805000/6000306.70-0.3216.991.01.4超清1280x7201800194.10-0.15-25.050.80.5高清720x404850160.60-0.12-34.920.80.5流畅480x270290-33.440.11105.900.80.5本领域技术人员可以根据上述例子以及本说明书的公开,根据实际需要选择各参数的取值。参数a-e的选择典型地是在选定某个模型拟合现有数据时,例如一次编码时的目标码率和一次编码完成后的平均量化参数值,设置某个置信边界(比如95%),执行区间估计后得到的参数值。优选地,在选择训练片源时,可以尽可能选择复杂度高的视频内容,必须指出,可能存在复杂度高于估计的最高复杂度的视频,这是正常的。同时,最复杂的视频会导致其他视频跟其对比获得的相对复杂度低而导致码率预测不准确。图2为根据本发明公开的实施例的对视频进行编码的方法流程示意图。经过图1所示的例子中的训练,编码器已经可以用于对视频进行编码,具体地,参看图2,在步骤110中,将待编码的视频输入根据经上述方法训练后的编码器。步骤112中,以一个第一码率为目标码率,得到所述视频基于第一次通过所述编码器后的平均量化参数,其中,所述第一码率可以是从前述的目标码率连续集合中任选的一个码率。步骤114中,根据步骤112中使用的第一码率和得到的平均量化参数,计算第二码率。步骤116中,将所述第二码率作为目标码率,将所述视频再次输入所述编码器,得到编码完成的所述视频。其中,在步骤114中:根据b(r)=d×((Qp(r)/QP1)e)×r(2)来计算所述第二码率,其中b(r)为所述第二码率,d、e为预先确定的常量(见表1),r为所述第一码率,QP1为所述步骤ii中得到的所述平均量化参数,QP(r)为将r代入所述编码器的拟合曲线后的结果。式(2)表示表示一次编码时的平均量化参数值与二次编码时设置的目标码率的关系。上述各方法均可以通过计算机来实现,该计算机典型地具有处理器和存储器,将可触发执行上述方法的软件或指令存储在存储器中后由处理器执行,即可实现该等方法。为了测试提出根据本发明实施例的模型的性能,发明人测试了各种类型的测试片源,以及一些特殊的片源,测试得到的编码性能如表2所示,测试设备的配置如表3所示。采用MOS(MeanofScore)主观意见分作为主观评价指标,该测试严格按照连续双刺激质量评价方法。MOS的取值范围为0-50,MOS值越大,说明画质越好。“实施例”表示本发明实施例中提出的算法,默认表示默认编码器,以x264编码器为例。“比特率”表示视频序列的比特率,大于0表示降低,小于0表示提高;PSNR表示客观质量,小于0表示降低,大于0表示提高;编码速度大于0表示提升,小于0表示降低。表2码率节省比例和画质分析表2可以得出以下结论:1)比较“MOS”列可以发现,“默认”对应的视频MOS平均分是49分,“实施例”对应的视频MOS平均分是46.19分,且对不同的视频序列,该分变化不大。这说明本发明实施例的方案实现的画质与“默认”非常接近,且对不同的视频序列差异不大。2)与“默认”相比,本发明实施例实现的比特率平均降低了33.29%,客观画质指标PSNR平均下降2.27dB,编码速度平均提升20.17%。虽然PSNR下降比较明显,但是该指标是客观指标,不能有效衡量视频的主观画质。综上所述,本发明公开提出的算法编码视频序列得到的码率比默认编码视频序列的码率降低了33.29%,且主观画质基本一致。表3测试设备配置本发明公开的说明书中,虽然流程图将各项操作描述成顺序地处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。在上下文中所称“计算机设备”,是指可以通过运行预定程序或指令来执行数值计算和/或逻辑计算等预定处理过程的智能电子设备,其可以包括处理器与存储器,由处理器执行在存储器中预存的存续指令来执行预定处理过程,或是由ASIC、FPGA、DSP等硬件执行预定处理过程,或是由上述二者组合来实现。计算机设备包括但不限于服务器、个人电脑、笔记本电脑、平板电脑、智能手机等。计算机设备包括用户设备与网络设备。其中,用户设备包括但不限于电脑、智能手机、PDA等;网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(CloudComputing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本发明,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本发明。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。需要说明的是,用户设备、网络设备和网络等仅为举例,其他现有的或今后可能出现的计算机设备或网络如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。本发明公开的说明书中所讨论的方法(其中一些通过流程图示出)可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实施。当用软件、固件、中间件或微代码来实施时,用以实施必要任务的程序代码或代码段可以被存储在机器或计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本发明的示例性实施例的目的。但是本发明可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。应当理解的是,当一个单元被称为“连接”或“耦合”到另一单元时,其可以直接连接或耦合到所述另一单元,或者可以存在中间单元。与此相对,当一个单元被称为“直接连接”或“直接耦合”到另一单元时,则不存在中间单元。应当按照类似的方式来解释被用于描述单元之间的关系的其他词语(例如“处于...之间”相比于“直接处于...之间”,“与...邻近”相比于“与...直接邻近”等等)。应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,本发明的各个装置可采用专用集成电路(ASIC)或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1