CN112601088B - 调节编码器参数的方法、装置、计算机设备和存储介质 - Google Patents
调节编码器参数的方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN112601088B CN112601088B CN202011377796.4A CN202011377796A CN112601088B CN 112601088 B CN112601088 B CN 112601088B CN 202011377796 A CN202011377796 A CN 202011377796A CN 112601088 B CN112601088 B CN 112601088B
- Authority
- CN
- China
- Prior art keywords
- value
- parameter
- reference value
- current
- under
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/577—Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请涉及一种调节编码器参数的方法、装置、计算机设备和存储介质。所述方法包括:获取目标参数对应的多个参考值,和每个候选参数的多个参数值;获取每个候选参数的每个参数值在每个参考值下的编码性能;参数调节模块,用于根据每个所述候选参数的每个参数值在每个所述参考值下的编码性能,确定出所述候选参数在每个所述参考值下的默认值。根据关联目标参数的参考值确定出各个候选参数的默认值,即直接根据每个参考值下的各个候选参数的参数值的编码性能,确定出在各个候选参数在不同的参考值下的默认值,保证了编码性能。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种调节编码器参数的方法、装置、计算机设备和存储介质。
背景技术
视频编码是指通过压缩技术,将原始视频格式的文件转换成另一种视频格式文件的方式。视频流传输中的编解码标准有H.264、H.265、AVS等等。各类视频编码器都有其预设参数,不过目前的预设是基于编码需求。不同的预设参数通过对一组参数设置不同的初始值,以满足不同编码需求。在不同的编码质量需求下,各参数的性能有好有坏,从而导致编码时编码性能并未达到最优。
发明内容
为了解决上述技术问题,本申请提供了一种调节编码器参数的方法、装置、计算机设备和存储介质。
本申请提供了一种调节编码器参数的方法,包括:
获取目标参数对应的多个参考值,和每个候选参数的多个参数值;
获取每个所述候选参数的每个参数值在每个所述参考值下的编码性能;
根据每个所述候选参数的每个参数值在每个所述参考值下的编码性能,确定出所述候选参数在每个所述参考值下的默认值。
本申请提供了一种调节编码器参数的装置,包括:
数据获取模块,用于获取目标参数对应的多个参考值,和每个候选参数的多个参数值;
所述数据获取模块还用于获取每个所述候选参数的每个参数值在每个所述参考值下的编码性能;
参数调节模块,用于根据每个所述候选参数的每个参数值在每个所述参考值下的编码性能,确定出所述候选参数在每个所述参考值下的默认值。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述调节编码器参数的方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述调节编码器参数的方法的步骤。
上述调节编码器参数的方法、装置、计算机设备和存储介质,所述方法包括:获取目标参数对应的多个参考值,和每个候选参数的多个参数值;获取每个候选参数的每个参数值在每个参考值下的编码性能;参数调节模块,用于根据每个所述候选参数的每个参数值在每个所述参考值下的编码性能,确定出所述候选参数在每个所述参考值下的默认值。根据关联目标参数的参考值确定出各个候选参数的默认值,即直接根据每个参考值下的各个候选参数的参数值的编码性能,确定出在各个候选参数在不同的参考值下的默认值,保证了编码性能。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中调节编码器参数的方法的应用环境图;
图2为一个实施例中调节编码器参数的方法的流程示意图;
图3为一个实施例中RD曲线的示意图;
图4为一个实施例中RD曲线的示意图;
图5为一个实施例中码率速度曲线的曲线示意图;
图6为一个实施例中调节编码器参数的装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为一个实施例中调节编码器参数的方法的应用环境图。参照图1,该调节编码器参数的方法应用于调级编码参数的系统。该调级编码参数的系统包括终端110和服务器120。
终端110和服务器120通过网络连接。终端110具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
如图2所示,在一个实施例中,提供了一种调节编码器参数的方法。本实施例主要以该方法应用于上述图1中的终端110(或服务器120)来举例说明。参照图2,该调节编码器参数的方法具体包括如下步骤:
步骤S201,获取目标参数对应的多个参考值,和每个候选参数的多个参数值。
具体地,目标参数是指根据编码需求确定的参数,目标参数可以为量化参数(Quantization Parameter,QP)和速度档Preset等编码参数。参考值是指目标参数的取值,如目标参数QP的取值可以为0-51中的任意值。候选参数是除了目标参数之外的其他的编码参数。候选参数可以为除了目标参数之外的部分参数或全部参数。参数值是指编码参数对应的参数值,如帧速率、最大IDR帧间隔、最小IDR帧间隔、最大参考帧数、场景切换门限、最大B帧数量、最大缓冲帧数、编码速度、码控制方式、量化步长和码率偏差等。候选参数的参数值是指各个候选参数可以赋与的值,如最大B帧数量(bframes),bframes可以等于3/4/8等,其中的3/4/8即为参数值。
在一个实施例中,由于除了目标参数之外其他的编码参数还有许多,若每个参数都作为候选参数,则编码参数多,导致计算量大,且不同的编码参数之间可能存在关联,对应存在关联的编码参数可以选取其中的部分参数用于代表该类参数。
步骤S202,获取每个候选参数的每个参数值在每个参考值下的编码性能。
具体地,编码性能用于对编码工具在目标参数的各个参考值对应的编码数据的性能进行定量评价,确定在目标参数的各个参考值固定的情况下,候选编码参数合适使用什么样的参数值。编码性能是根据编码质量和编码速度计算得到的,其中编码质量是根据编码器在不同的参数下(即各个候选参数的不同的参数值)对应的编码结果和参考的编码结果计算得到的,其中编码结果包括编码质量和编码速度。其中编码质量中包括失真和码率。根据失真和码率可以计算得到BD-rate和BD-PSNR等用于评价编码质量的指标。根据各个候选参数的各个参数值的编码速度和默认参数的编码速度,计算出速度比,其中速度比等于各个候选参数的各个参数值的编码速度与默认参数的编码速的比值。根据各个候选参数的各个参数值的速度比和BD-rate(或BD-PSNR)计算得到每个候选参数的每个参数值在每个参考值下的编码性能。其中,BD-rate用于评价2个编码器编码质量好坏的一种指标,物理意义为待测试编码器(在参考值固定情况下,各个候选参数的每个参数值对应的编码器)相对原始编码器(在参考值固定情况下,该参考值对应的默认参数的参数值的编码器)在相同失真下的相对码率差值,单位为%。BD-rate小于0表示待测试编码器性能比原始编码器更好,负值越大表示性能越好,即相同失真下节省的码率越多。BD-rate具体的计算方法为:首先测试原始编码器的多个码率点下的多组编码数据(失真和码率),然后测试待测试编码器在多个码率点下的编码数据;利用上述多组编码数据作为输入,计算得到BD-rate。速度比是指中间编码器的编码速度除以原始编码器的编码速度。
在一个具体的实施例中,目标参数为QP,QP=20为例,则获取QP=20时编码器的默认参数,采用QP=20时编码器的默认参数执行编码得到编码结果。QP=20时,候选参数为A对应的参数值包括X1,X2和X3,则有A=Xi(i=1/2/3),其他默认参数不变,执行编码,得到QP=20时,A=Xi(i=1/2/3)的编码结果。根据QP=20时,默认参数对应的编码结果,和A=Xi对应的编码结果,分别计算得到A=Xi对应的编码性能。同理计算在其他QP时,候选参数A=Xi的各个编码性能。
同理,可以得到每个QP时,各个候选参数的各个参数值的编码性能。
同样的方式可以计算得到其他目标参数时,各个候选参数的各个参数值的编码性能。
步骤S203,根据每个候选参数的每个参数值在每个参考值下的编码性能,确定出候选参数在每个参考值下的默认值。
具体地,对每个候选参数的每个参数值的编码性能进行统计和分析,如统计出每个候选参数的各个参数值在每个参考值下的编码性能的最大值,或大于预设性能阈值的参数值的编码性能的均值,或全部编码性能对应的均值等等,根据统计得到的最大值和/或编码性能的均值确定出该候选参数在参考值下的默认值。如可以将每个候选参数的参数值中的最大值的编码性能对应的参数值作为该参考值下的默认值,若存在多个参考值,则计算每个参考值下的每个最大值的编码性能的加权均值,根据计算得到的加权均值确定出候选参数的默认值。还可以是根据加权均值对候选参数的参数值进行筛选,根据筛选得到的数据进一步进行分析,从而确定出候选参数的默认值。如对加权均值大于预设均值的参数值进行统计,得到对应的统计值,根据统计值的数量确定出该候选参数的默认值。
上述调节编码器参数的方法,包括:获取目标参数对应的多个参考值,和每个候选参数的多个参数值;获取每个候选参数的每个参数值在每个参考值下的编码性能;参数调节模块,用于根据每个所述候选参数的每个参数值在每个所述参考值下的编码性能,确定出所述候选参数在每个所述参考值下的默认值。根据关联目标参数的参考值确定出各个候选参数的默认值,即直接根据每个参考值下的各个候选参数的参数值的编码性能,确定出在各个候选参数在不同的参考值下的默认值,保证了编码性能。
在一个实施例中,步骤S203,包括:
步骤S2031,从每个候选参数的每个参数值在每个参考值下的编码性能中,筛选出最大值,得到每个候选参数在每个参考值下的最佳编码性能。
具体地,在参考值固定的情况下,从同一个候选参数的各个参数值对应的编码性能中筛选出最大值,得到在该参考值时,同一个候选参数的最佳编码性能。如QP=30时,候选参数包括A和B,A=Xi(i=1,2,...,m),B=Yi(i=1,2,....,n)。则QP=30时,从A=Xi对应的m个编码性能中选择最大值,得到A对应的最佳编码性能,同理从B=Yi对应的n个编码性能中选择最大值,得到B对应的最佳编码性能。同理可以得到QP为其他值时,A对应的最佳编码性能和B对应的最佳编码性能。
步骤S2032,计算当前候选参数在每个参考值下的最佳编码性能的均值,得到当前候选参数的性能均值。
具体地,当前候选参数的性能均值是指当前候选参数在每个参考值时,对应的最佳编码性能的加权均值。如目标参数QP=0-51,QP等于0-51的52个值时,当前候选参数都对应一个最佳编码性能,求均值是对同一个候选参数的52个最佳编码性能求平均值。每个候选参数都采用同样的计算方法,得到各个候选参数对应的性能均值。
在一个实施例中,QP=0-51,对QP的参考值进行分组,得到QP对应的多组参考值集合。其中QP的划分可以根据需求自定义划分,如将QP=0-51,划分成五个组,QP=0-9、QP=10-19、QP=20-29、QP=30-39和QP=40-51。也可以划分两个组,如QP=0-25和QP=26-51分别为一组。计算QP对应的每个参考值集合的编码性能的均值。以QP1=0-25和QP2=26-51两个参考值集合为例,则计算QP1=0-25时,对同一个候选参数的26个最佳编码性能求平均值,得到QP1=0-25时当前候选参数的性能均值。同理QP2=26-51时,对同一个候选参数的26个最佳编码性能求平均值,得到QP1=0-25时当前候选参数的性能均值。
步骤S2033,当当前候选参数的性能均值大于第一阈值时,统计当前候选参数在每个参考值下的最佳编码性能中相同的参数值,得到当前候选参数的统计值。
步骤S2034,当当前候选参数的统计值的最大值小于预设数目时,将当前候选参数在每个参考值下的最佳编码性能对应的参数值,作为当前候选参数在每个参考值下的默认值。
具体地,第一阈值为预先设定的用于判断编码性能是否提升的临界值,该临界值可以根据业务需求设置,不同的业务需求可以设置不同的值,不同的目标参数也可以设置不同的值。当前候选参数可以为任意一个候选参数。若该候选参数的性能均值大于第一阈值,则表示该候选参数对编码器的性能具有提升作用,统计该候选参数在不同的参考值下的最佳编码性能对应的参数值是否相同,统计得到最佳编码性能时该候选参数的各个参数值出现的次数。
当前候选参数的统计值的最大值是指同一个候选参数对应的编码性能中出现次数最多的参数值的出现次数。如候选参数对应的参数值包括X1和X2,且X1为最佳编码性能次数为48,且X2为最佳编码性能次数为4,则候选参数的编码性能的统计值中的最大值为48。预设数目是指预先设置的数目临界值,若当前候选参数的最大值小于预设数目,则表示在目标参数处于不同的参考值时,该候选参数采用不同的参数值对编码性的影响不同,故在不同的参考值时,该候选参数需要设置为不同的参数值。
在一个实施例中,当当前候选参数的统计值的最大值大于或等于预设数目时,将当前候选参数的统计值的最大值对应的参数值,作为当前候选参数在每个参考值下的默认值。
具体地,在当前候选参数的性能均值大于第一阈值的情况下,且当当前候选参数的统计值的最大值大于或等于预设数目时,在表示,该候选参数虽然对编码器的编码性能起着积极的作用,当该候选参数的多个参数值的其中一个值在大部分情况下都可以起到提升编码性能作用,故统计值为最大值对应的参数值作为该候选参数的默认值。默认值是指设置之后,若不进行再次调整,则直接采用该参数执行对应的编码。
在一个实施例中,当当前候选参数的统计值的最大值大于或等于预设数目时,将第一均值设置为当前候选参数在每个参考值下的默认值,第一均值为当前候选参数在每个参考值下的最佳编码性能对应的参数值的均值。
具体地,若当前候选参数的统计值的最大值大于或等于预设数目,且该候选参数的最佳编码性能对应的参数值存在不同时,该候选参数的最佳编码性能对应的参数值的出现次数计算加权系数或获取预设的加权系数,根据计算得到的加权系数求取加权均值,得到第一均值。其中加权系数可以根据需求,如根据各个参数值的出现次数确定,即候选参数A为X1是出现的次数为50,候选参数A为X2是出现的次数为2,则其中X1和X2的加权系数还可以为其他的预先设置的值。
在一个实施例中,当当前候选参数的性能均值小于或等于第一阈值时,保留当前候选参数的默认值。
具体地,当前候选参数的性能均值小于或等于第一阈值,表示该候选参数对编码器的性能的提升可以不考虑,也可以能会降低编码器的性能,故不修改该编码器的默认参数,避免该候选参数对编码的性能提升起到相反的作用。
上述调节编码器参数的方法,包括:获取目标参数对应的多个参考值,和每个候选参数的多个参数值;获取每个候选参数的每个参数值在每个参考值下的编码性能;从每个候选参数的每个参数值在每个参考值下的编码性能中,筛选出最大值,得到每个候选参数在每个参考值下的最佳编码性能;计算当前候选参数在每个参考值下的最佳编码性能的均值,得到当前候选参数的性能均值;当当前候选参数的性能均值大于第一阈值时,统计当前候选参数在每个参考值下的最佳编码性能中相同的参数值,得到当前候选参数的统计值;当当前候选参数的统计值的最大值小于预设数目时,将当前候选参数在每个参考值下的最佳编码性能对应的参数值,作为当前候选参数在每个参考值下的默认值。根据关联目标参数的参考值确定出各个候选参数的默认值,即直接根据每个参考值下的各个候选参数的参数值的编码性能,确定出在各个候选参数在不同的参考值下的默认值,保证了编码性能。
在一个实施例中,步骤S201之后,还包括:对目标参数对应的多个参考值进行组合,得到多个参考值集合,获取每个参考值集合对应的阈值,和每个参考值集合对应的预设数目。
具体地,目标参数存在多个参考值,当参考值较多时,可以对参考值进行分组,得到多组参考值,每组参考值组成一个参考值集合。每个参考值集合中包括一个或多个参考值。参考值的分组可以根据需求进行划分,以速度档Preset为例,常见的Preset包括9个档位,如可以每三个档位作为一个参考值集合,也可以划分成两个参考值集合。以QP为例,QP包括0-51个参考值,对QP的参考值进行划分,得到多个QP的参考值集合,如划分成2个参考值集合,QP=0-25和QP=26-51分别为一个参考值集合。
每个参考值集合对应一个阈值,该阈值用于判断每个参考值集合对应的编码性能是否提升的临界值。每个参考值集合对应一个预设数目,该预设数目与各个参考值集合中的参考值的数量相关,不同的参考值集合的预设数目不同。通过每个参考值集合的预设数目来界定各个参考值集合对应的参数值与最佳编码性能之间的关系,如同一个参数值出现最佳编码性能的次数多,则表示在不同的参考值时,采用该参数值执行编码时,可以较好的提升编码性能。反之,则表示在不同的参考值时,采用不同的参数值,才可以较好的提升编码性能。
在本实施例中,从每个候选参数的每个参数值在每个参考值下的编码性能中,筛选出最大值,得到每个候选参数在每个参考值下的最佳编码性能,包括:从每个候选参数的每个参数值在每个参考值集合中的每个参考值下的编码性能中,筛选出最大值,得到每个候选参数在每个参考值集合的每个参考值下的最佳编码性能。
具体地,在同一个参考值集合对应的多个参考值时,每个参考值对应的同一个候选参数对应的多个参数值的编码性能中筛选出最大值,得到同一个候选参数在该参考值集合中的每个参考值对应的最佳编码性能。以目标参数为QP为例,QP=0-51,QP的分组包括2组,分别为QP1=0-25和QP2=26-51,候选参数包括A和B,A=Xi(i=1,2,...,m),B=Yi(i=1,2,...,n),则在QP1=W时,从A的m个参数值对应的编码性能中,筛选出最大值,得到QP1=W时,A的最佳编码性能,QP1对应A的26个最佳编码性能,QP2对应A的26个最佳编码性能。同理,则在QP1=W时,从B的n个参数值对应的编码性能中,筛选出最大值,得到QP1=W时,B的最佳编码性能,QP1对应B的26个最佳编码性能,QP2对应B的26个最佳编码性能。
在本实施例中,步骤S2032,包括:计算当前候选参数在每个参考值集合的每个参考值下的最佳编码性能的均值,得到当前候选参数在每个参考值集合下的性能均值。
具体地,同一个参考值集合下的多个参考值下,计算同一个候选参数的最佳性能均值的平均值,得到该候选参数在该参考值集合下对应的性能均值。如计算QP1对应A的26个最佳编码性的性能均值,得到A在QP1时的性能均值,同理得到B在QP1时的性能均值,A和B在QP2时的性能均值。
在本实施例中,步骤S2033,包括:当当前候选参数在当前参考值集合下的性能均值大于对应的参考值集合对应的阈值,统计当前候选参数在当前参考值集合的每个参考值下的最佳编码性能中相同的参数值,得到当前候选参数在当前参考值集合的统计值。
具体地,判断同一个候选参数在当前参考值集合的性能均值是否大于该参考值集合对应的阈值,若大于,则表示该候选参数在当前参考值集合时,可以提升编码性能。对于性能均值大于该参考值集合对应的阈值的候选参数,统计在参考值集合对应的多个参考值时,该候选参数的各个参数值出现最佳编码性能的次数,得到该候选参数统计值。如计算QP1对应A的26个最佳编码性中,A=X1时,出现的次数,统计A=X1时,最佳编码性能的次数,得到A=X1在QP1的统计值。同理得到A等其他的参数值时的统计值。
在本实施例中,步骤S2034,包括:当当前候选参数在当前参考值集合的统计值的最大值,小于对应的当前参考值集合对应的预设数目时,将当前候选参数在每个当前参考值集合的每个参考值下的最佳编码性能对应的参数值,作为当前候选参数在当前参考值集合的每个参考值下的默认值。
具体地,同一个候选参数在当前参考值集合中出现编码性能次数最多的参数值的出现次数为最大值,该最大值若小于该参考值集合对应的预设数目,则表示该候选参数的同一个参数值作为最佳编码性能的次数较少,即随着参考值的变化,该候选参数应该选择不同的参数值,才可以得到最佳编码性能。故在设置编码器的参数时,该候选参数的参数值与目标参数的参考值相关,不同的参考值设置不同的参数值,且每个参考值对应的该候选参数的默认参数为在该参考值对应的该候选参数的最佳编码性能对应的参数值。如QP1=0-25,QP1=0时,A=X1(QP1=0,最佳编码性能对应的参数值为X1),QP1=1时,A=X3(QP1=1,最佳编码性能对应的参数值为X3),同理设置QP1=2-25。
在一个实施例中,当当前候选参数在当前参考值集合的统计值的最大值,大于或等于对应的当前参考值集合对应的预设数目时,将当前候选参数在当前参考值集合的统计值的最大值对应的参数值,作为当前候选参数在当前参考值集合的每个参考值下的默认值。
具体地,同一候选参数在当前参考值集合的统计值的最大值,大于或等于对应的当前参考值集合对应的预设数目,表示该候选参数的参数值不会随着参考值的变化而变化,或仅少部分发生变化。该候选参数的最佳参数值为最佳编码性能出现次数最多的参数值。如得到A=X1在QP1的统计值为最大值,且该最大值大于QP1对应的预设数目,则无论QP1选择哪个参考值,A的参数值都为X1时对编码器的编码性能起到正面作用,且起到的作用最大。
在一个实施例中,当当前候选参数在当前参考值集合下的统计值的最大值,大于或等于对应的当前参考值集合对应的预设数目时,将第二均值设置为当前候选参数在当前参考值集合的每个参考值下的默认值,第二均值为当前候选参数在当前参考值集合的每个参考值下的最佳编码性能对应的参数值的均值。
具体地,候选参数的第二均值为同一参考集合下各个参考值的最佳编码性能对应的参数值计算得到该候选参数的参数值的均值。如QP1=0-25,A=X1出现的次数为23,A=X2出现的次数为1,A=X 3出现的次数为1,预设数目为22,则有23>22,故QP1=0-25时,也可以为λ1X1+λ2X2+λ3X3,其中λ为各个取值的加权系数,根据加权系数加权,得到加权均值。如或A=0.9*X1+0.05*X2+0.05*X3。
在一个实施例中,步骤S202之前,还包括:获取每个参考值的参考编码结果;获取每个候选参数的每个参数值在每个参考值下的编码结果;根据当前参考值的参考编码结果,和当前候选参数的每个参数值在每个参考值下的编码结果,分别计算得到当前候选参数的每个参数值在每个参考值下的编码性能。
具体地,编码结果是指采用对应的参数值执行编码后得到的编码结果。确定参考值和该参考值对应的默认参数后执行编码后得到的编码结果为参考编码结果。如目标参数为QP,参考值为1,即QP=1,采用QP=1时编码器的其他编码参数选择默认参数执行编码的结果为QP=1时的参考编码结果。每个候选参数的每个参数值在每个参考值下的编码结果,是指将参考值对应的默认参数中与候选参数为相同的参数的参数值采用候选参数的参数值替代,并根据替代的参数执行编码后得到的编码结果。如QP=1时,编码器的其他编码参数中的候选参数A在不同的参数值下的编码结果,得到QP=1时,A的多个参数值对应的编码结果。当前参考值的可以为目标参数的任意一个参考值。如QP=0-51,则当前参考值可以为0-51中的任意一个数值。其中当前参考值对应的参考编码结果作为参考数据,当前参考值对应的同一个候选参数的每个参数值对应的编码结果与参考数据进行对比,计算得到当前参考值对应的同一个候选参数的每个参数值对应的编码性能。其中编码性能可以根据编码指令和编码速度计算得到。编码质量可以用户BD-rate、BD-PSNR等指标衡量,编码速度可以速度比衡量。
在一个实施例中,根据当前参考值的参考编码结果,和当前候选参数的每个参数值在每个参考值下的编码结果,分别计算得到当前候选参数的每个参数值在每个参考值下的编码性能,包括:根据当前参考值的参考编码结果和当前候选参数的每个参数值在每个参考值下的编码结果,计算得到当前候选参数的每个参数值在每个参考值下的BD-rate和当前候选参数的每个参数值在每个参考值下的速度比;计算当前候选参数的每个参数值在每个参考值下的BD-rate,和当前候选参数的每个参数值在每个参考值下的速度比的加权和,得到当前候选参数的每个参数值在每个参考值下的编码性能。
具体地,将目标参数对应的每个参考值对应的默认参数所对应的编码器作为对应的原始编码器。将目标参数对应的参考值的默认参数修改为候选参数的参数值之后的编码器作为中间编码器。分别计算每个中间编码器与对应的原始编码器之间的BD-rate和速度比。分别计算每个中间编码器与对应的原始编码器之间的BD-rate和速度比加权和,得到每个中间编码器的编码性能,即每个候选参数的每个参数值在每个参考值下的编码性能。其中,加权时的加权系数可以自定义设置。
在一个实施例中,计算中间编码器的编码性能,包括:获取中间编码器对应的编码结果,该编码结果包括编码质量和编码速度,其中编码质量可以用BD-rate和/或BD-PSNR来表示。获取同一个候选参数的默认参数值在目标参数的多个参考值的码率失真曲线,得到第一失真曲线,获取同一个候选参数的同一个参数值在目标参数的多个参考值对应的编码数据构成的码率失真曲线,得到第二失真曲线。分别从第一曲线和第二曲线中获取同一个候选参数的同一个参数值对应的值,得到确定出曲线区间;根据曲线区间、第一曲线和第二曲线,计算出同一个候选参数的同一个参数值对应的质量评价值,即BD-rate或BD-PSNR。
其中,码率失真曲线(Rate-Distortion Curve,RD曲线),编码器在不同的参数设置下会得到不同的编码结果,每个结果包含一组码率和失真,即一个RD点,将所有RD点连起来即为RD曲线。第一曲线是指根据原始编码器和编码参数执行编码后得到的值和编码参数绘制的曲线。码率是指单位时间数据传输的数据位数,码率的常见单位为Kbps(千比特每秒)。当前编码参数为候选编码参数中的任意一个编码参数,编码参数可以为量化参数(QP)或码率等。若编码参数为QP/码率点,则包含多个QP/码率点。第二曲线是指根据中间编码器和编码参数执行编码后得到的值和编码参数绘制的曲线。第二曲线也可以是指根据第一曲线中每个编码参数对应的值和编码参数绘制的曲线,且当前编码参数对应的值为目标编码器执行编码后得到的值。执行编码后得到的值为失真值和码率点。失真越小,码率越小,则编码质量越好。
在一个实施例中,原始编码器和中间编码器为同一编码器,目标编码器对应的编码条件和原始编码器对应的同一个编码参数的参数值不同。
在一个实施例中,曲线区间是指当前编码参数在第一曲线上和第二曲线上的值组成的区间。如当前编码参数为QP=32,在第一曲线上QP=32对应的值为42.39,在第二曲线上对应的值为41.60,则曲线区间为[41.60,42.39],其中曲线区间还可以根据需求进行调整,即根据预先配置的用于调整曲线区间的调整方式调整区间,如扩大/缩小曲线区间。选择扩大还是缩小曲线区间可以根据需求定义。
质量评价值是用于衡量当前编码参数时,目标编码器相对于原始编码器的质量评价值。质量评价值为BD-rate对应的值,或BD-PSNR对应的值。BD-rate用于衡量2个编码器编码质量好坏的一种指标,物理意义为目标编码器相对原始编码器在相同失真下的相对码率差值。BD-rate小于0表示待测试编码器质量比anchor更好,负值越大表示质量越好,即相同失真下节省的码率越多。BD-PSNR表示相同码率下的PSNR差值,BD-PSNR大于0表示待测试编码器的编码质量更好,即相同码率下PSNR(Peak Signal to Noise Ratio,峰值性躁比)更高。
若质量评价值对应的结果为目标编码器优于原始编码器,则将目标编码器作为最优编码器,反之,则将原始编码器作为最优编码器。
在一个实施例中,获取原始编码器的码率失真曲线得到第一曲线;获取目标编码器的码率失真曲线得到第二曲线;分别从第一曲线和第二曲线中获取当前编码参数对应的值,得到确定出曲线区间;根据曲线区间、第一曲线和第二曲线,计算出当前编码参数对应的质量评价值;根据质量评价值,从原始编码器和目标编码器中筛选出当前编码参数对应的最佳编码器。单独评价当前编码参数对应的编码质量,即评价在特定编码参数下的编码质量实现编码的局部优化。
在一个实施例中,获取原始编码器的码率失真曲线得到第一曲线之前,还包括:获取多个编码参数,当前编码参数为多个编码参数中任意一个编码参数;获取每个编码参数对应的第一编码质量参数,第一编码质量参数为采用原始编码器和编码参数执行编码时,得到的质量参数;根据每个编码参数和对应的第一编码质量参数,生成第一曲线。
具体地,每个编码参数执行编码时,可以得到对应的编码结果,编码结果中包括码率和失真,根据码率和失真绘制码率失真曲线,即采用第一编码质量参数和编码参数绘制码率失真曲线,得到第一曲线。
在一个实施例中,获取多个编码参数之后,还包括:获取每个编码参数对应的第二编码质量参数,第二编码质量参数为采用目标编码器和编码参数执行编码时,得到的质量参数,根据每个编码参数和对应的第二编码质量参数,生成第二曲线。
具体地,第一曲线和第二曲线的生成步骤一样。第二曲线是根据目标编码器和编码参数执行编码后得到的编码质量参数生成的曲线。直接采用目标编码器的编码质量参数生成曲线,后续质量评价过程中使用的数据更为准确,得到的评价结果也更为准确。
在一个实施例中,获取每个编码参数对应的第一编码质量参数之后,还包括:获取当前编码参数对应的当前编码质量参数,当前编码质量参数为采用目标编码器和当前编码参数执行编码时,得到的质量参数;采用当前编码参数对应的当前编码质量参数,替换第一编码质量参数中当前编码参数对应的编码质量参数,得到每个编码参数对应的第二编码质量参数;根据每个编码参数和对应的第二编码质量参数,生成第二曲线。
具体地,对于当前编码参数对应的编码质量参数,即当前编码质量参数,使用目标编码器执行编码得到的编码质量参数。剩余编码参数的编码质量参数,直接采用原始编码器的数据。采用当前编码质量参数,替换第一编码质量参数中当前编码参数对应的编码质量参数,得到每个编码参数对应的第二编码质量参数,采用每个编码参数和对应的第二编码质量参数,生成第二曲线。通过该方法可以节省非测试编码参数的编码数据的编码过程,从而节约整个编码过程。
在一个实施例中,曲线区间包括第一阈值和第二阈值,第一阈值小于第二阈值,获取在第一曲线中当前编码参数对应的值,得到第一参考值;获取在第二曲线中当前编码参数对应的值,得到第二参考值;将第一参考值和第二参考值中的最小值作为第一阈值;将第一参考值和第二参考值中的最小值作为第二阈值。
具体地,第一阈值和第二阈值分别为曲线区间中下限制和上限值,下限值和上限值分别根据当前参数对应的两个参考值中的最小值和最大值确定,如直接将第一参考值和第二参考值中的最小值作为第一阈值,最大值作为第二阈值。
在一个实施例中,按照第一预设方式调整第一阈值,得到第一调整阈值,按照第二预设方式调整第二阈值,得到第二调整阈值,曲线区间的阈值分别为第一调整阈值和第二调整阈值。
具体地,第一预设方式和第二预设方式为预先定义的用于调节阈值的方式。第一预设方式和第二预设方式为对应的一组调节方式。如第一预设方式为减少第一阈值的值,第二预设方式为增加第二阈值的值,通过减少第一阈值的值,并增加第二阈值的值使得整个曲线区间的区间跨度增大。也可以是通过第一预设方式增加第一阈值,且通过第二预设方式较少第二阈值,使得整个曲线区间的跨度变小。选择增大还是减少曲线区间的跨度,可以根据实际情况确定,若跨度大,则减少跨度,反之,则增大区间跨度。
在一个具体的实施例中,确定失真区间(曲线区间)时,下限等于(D1,D2)的较小值减0.5或乘以0.99,上限等于(D1,D2)的较大值加0.5或乘以1.11等,通过上述方式增大了曲线区间。
在一个具体的实施例中,目标参数为QP或目标码率,以QP/码率点为中心,向上、向下分别扩展一个或多个QP/码率点,具体扩展方式可以自定义。如,向上下分别扩展一个点时,通常QP向上加6,向下减6,码率向上乘2,向下除2等。
用2个编码器(原始编码器和中间编码器)分别以多个QP/码率点编码得到两条RD曲线(Rate-Distortion Curve,码率失真曲线)。若需节省计算量,也可以只测试anchor(原始编码器)的多个QP/码率点的编码结果绘制出anchor的RD曲线,随后只测试待测试编码器在目标QP/码率下的编码结果,将anchor的RD曲线中目标QP的RD点替换得到待测试编码器(中间编码器)的RD曲线。
获取2个编码器在特定QP/码率点的失真值D1和D2,由D1和D2确定该QP/码率点的失真区间,其中区间下限为(D1,D2)中的较小值,区间上限为(D1,D2)中的较大值,计算两条RD曲线在失真区间内的BD-rate和/或BD-PSNR。同理,获取2个编码器在特定QP/码率点的码率R1和R2,确定该QP/码率点的码率区间,计算两条RD曲线在码率区间内的BD-rate和/或BD-PSNR。
如图3所示为两个编码器在3个QP点(26/32/38)下的2条RD曲线。Anchor对应的数据为[39.68,42.39,45.33],待测试编码器对应的数据为[38.34,41.60,44.40]。若要计算QP=32处两个编码器的BD-rate,取2个编码器在QP=32处的失真区间(曲线区间)为[41.60,42.39],只计算2条RD曲线失真区间内的BD-rate,即为QP=32处的编码质量为BD-rateqp32=-22.34%。
若需节省计算量,在测试完anchor的多个QP的编码结果得到anchor的RD曲线后,只测试待测试编码器QP=32的编码结果,QP=26和38的编码结果直接用anchor在QP=26和38处的数据,得到待测试编码器的RD曲线,两条RD曲线如下图4。Anchor对应的数据为[39.68,42.39,45.33],待测试编码器对应的数据为[39.68,41.60,45.33]。同样取2个编码器在QP32处的失真区间为[41.60,42.39],只计算2条RD曲线在本段区间内的BD-rate’即为QP32处的编码质量为BD-rate’qp32=-23.74%。可见在节省计算量的情况下,算出的BD-rate与完整计算量下的结果差别不大,但是可以有效节约待测编码器其他QP对应的失真值的计算过程。
通过测试特定QP/码率下BD-rate和/或BD-PSNR的方法,能在局部衡量编码器的编码质量。可以通过对编码器每个局部的质量分析,针对性地优化编码器,或更有针对性地进行调参,增加编码工具或增加快速算法。
在一个具体的实施例中,目标参数为速度档,计算编码性能的加权系数,包括:从每个速度档的多个预设速度档中选择任意一个预设速度档作为参考档;根据参考档对应的原始编码器的编码结果,计算其他预设速度档相对于参考档的BD-rate和对应的速度比;根据各个预设速度档相对于参考档的BD-rate和对应的速度比绘制码率速度曲线;根据码率速度曲线中各个预设速度档对应的斜率,确定出各个预设速度档的加权系数。
在一个实施例中,采用预设速度档的加权系数作为BD-rate的加权系数,根据每个预设速度档的BD-rate的加权系数、BD-rate和速度比,计算得到每个预设速度档对应的编码性能。
具体地,参考档可以为预设速度档中的任意一个速度档,如选择最慢或最快的速度档作为参考档。将原始编码器的在参考档对应的编码结果作为参考编码结果,计算除参考档之外的预设速度档的编码结果相对于原始编码器的编码结果的BD-rate和速度比。即根据原始编码器的编码结果和预设速度档的编码结果计算得到速度提升,和码率节省,根据速度提升和码率节省绘制码率速度曲线,码率速度曲线的横轴对应码率增加百分比,纵轴为速度提升的百分比。根据码率速度曲线计算每个预设速度档对应的加权系数。该加权系数可以自定义,如可以定义为预设速度档与相邻或间隔预设数目的预设速度档之间的连线斜率,也可以是预设速度档与两个相邻的预设速度档之间的连线斜率的加权值,还可以是部分预设速度档的加权系数为与两个相邻的预设速度档之间的连线斜率的加权值,部分预设速度档的加权系数为相邻预设速度档之间的连线斜率。将预设速度档的加权系数作为该预设速度档的BD-rate的加权系数,根据该预设速度档的BD-rate的加权系数、该预设速度档的BD-rate和该预设速度档的速度比,计算得到该预设速度档对应的编码性能,通过该方式计算得到每个预设速度档的编码性能。采用每个编码器在预设速度档的斜率,可以根据编码器本来的性能,针对性地设置该编码器在每个的预设速度档下合适的加权系数。从而更为准确的优化编码器。不同的编码器,加权系数不相同,相对于采用使用经验值,采用斜率更为准确,因为斜率是根据实际编码数据计算得到的值,经验值一般是统计值,斜率的针对性更强。
在一个实施例中,根据码率速度曲线中各个预设速度档对应的斜率,确定出预设速度档的加权系数,包括:若当前预设速度档位于码率速度曲线的两端,则将当前预设速度档与相邻预设速度档之间的斜率,作为当前预设速度档对应的加权系数;若当前预设速度档位于码率速度曲线的中间,则分别计算当前预设速度档与相邻的两个预设速度档之间的斜率,计算当前预设速度档与相邻的两个预设速度档之间的斜率的加权值,得到当前预设速度档对应的加权系数。
具体地,位于码率速度曲线中间的预设速度档,相邻的预设速度档包括两个,采用该预设速度档与相邻的两个预设速度档之间的连线斜率的加权值,作为该预设速度档对应的斜率,即该预设速度档的加权系数。位于码率速度曲线中间的预设速度档,相邻的预设速度档仅包含一个,则采用该预设速度档与该预设速度档唯一相邻的预设速度档之间的连线斜率作为该预设速度档对应的加权系数。
在一个实施例中,对多个预设速度档进行分类,得到多个类别,每个类别包括至少一个预设速度档,每个类别对应一个预设加权系数;根据每个预设速度档的类别,获取每个预设速度档的预设加权系数。
在本实施例中,将每个预设速度档的预设加权系数,作为预设速度档的BD-rate的加权系数,根据每个预设速度档的BD-rate加权系数、预设速度档的BD-rate和预设速度档的速度比,计算得到每个预设速度档对应的编码性能。
具体地,对预设速度档进行分类得到多个类别,每个类别可以包括一个或多个预设速度档,各个类别中包含的预设速度档可以相同或不同。划分类别的数量和每个类别对应的预设速度档的数量可以自定义。如编码器一共包含九个预设速度档,可以平均划分得到三个类别,每个类别中包含三个预设速度档,也可以是划分为前两档、中间五档和后两档分别对应一个类别。还可以是划分成两类或四类等。每个类别对应的预设加权系数相同,每个类别对应的预设加权系数为经验值。经验值一般为技术人员多次实验后总结出来的值,可以较好的表征各个类别,从而较为准确的计算出各个预设速度档的编码性能。
在一个实施例中,预设速度档包括九档,对多个所述预设速度档进行分类,得到多个类别,包括:将多个预设速度档按照速度档由慢至快进行划分得到三个类别,每个类别中包括三个档位的预设速度档。
具体地,编码器中预设速度档包括九档,按照速度档由慢至快进行平均划分,得到三类,每一类对应的预设加权系数各不相同。如速度档代表的速度越快,则对应的预设加权系数越小。
在一个实施例中,档位分类模块中的三类分别为第一类、第二类和第三类,第一类的速度档快于所述第二类,第二类的速度档快于第三类,第三类对应的预设加权系数大于第二类对应的预设加权系数,第二类对应的预设加权系数大于第一类对应的预设加权系数。
在一个具体的实施例中,编码器的编码性能计算包括:
测试原始编码器的Anchor数据:
测试原始编码器在每个preset(预设速度档)下多个码率点(通常是4个常用的码率点)下的编码结果(包括编码质量和编码速度)作为Anchor数据;该Anchor数据用于作为新编码器(中间编码器)的参考数据。其中,中间编码器为在原始编码器中加入新编码工具/加速算法/参数调优之后德得到的编码器。Preset包括极慢(placebo)、很慢(veryslow)、较慢(slower)、慢速(slow)、中速(medium),快速(fast)、较快(faster)、很快(veryfast)和极快(superfast)等9个档位。
计算每个preset下的加权系数:
加权系数是指每个preset下,计算编码性能时BD-rate或速度比对于的加权系数。其中编码性能=λ×(-BD_rate)+(速度比-100),或编码性能=(-BD_rate)+λ(速度比-100),其中λ为加权系数。λ的计算方式可使用一组固定的经验值代替,如preset比fast档快时λ=5,preset比slow档慢时λ=20,preset介于fast和slow之间时λ=10。也可以是根据每个preset对应的斜率确定的,如选取原始编码器某个preset下的编码结果作为anchor’(此处的anchor’不同于的Anchor,Anchor是作为新编码器的参考,包含了所有preset的编码结果;此处的anchor’是作为同一个编码器不同preset的参考,仅指某一个preset的编码结果),将每个不同preset下的编码结果与anchor’比较,得到BD-rate和编码速度比,绘制出一个原始编码器的速度-码率图,如图5所示,计算每个preset点的斜率作为每个preset的λ。
如图5所示所示为编码器的速度-码率图。图中共有9个不同的速度档preset(从最慢档placebo到最快档superfast),横坐标为码率增加(BD-rate),单位为%,纵坐标为速度提升,单位为倍。
图5以速度档“placebo”为anchor’,计算每个preset相对placebo的BD-rate和速度比,比如“fast”相对placebo编码速度提升了约60倍,码率增加约28%。计算fast点处的斜率为medium-fast和fast-faster两段连线斜率的均值,为2.1左右。其他点的λ值计算类似,两个端点处“placebo”和“superfast”的斜率分别为placebo与veryslow段的连线斜率和veryfast与superfast段的连线斜率。图5中具体的每个preset下对应的λ值如表1所示:
表1为preset对应的λ值
通常随着编码器的优化越深入,速度-码率图的斜率也越高,λ值也越大。因此编码器不断优化过程中(不断加入了新的工具或算法或调参后),需不断更新速度-码率图。
测试新编码器的编码结果:原始编码器参数调优后,称为新编码器,测试新编码器在各个preset下与Anchor在其他设置完全相同下的编码结果。比如若进行参数调优,则测试新编码器时,需与Anchor除所调参数外其他参数皆保持一致。
计算BD-rate和速度比:用新的编码结果与Anchor比较,计算新编码器在每个preset下的BD-rate和速度比。
计算编码性能:根据计算得到的每个preset下的BD-rate和速度比,通过以下公式编码性能=λ×(-BD_rate)+(速度比-100),计算得到每个preset下新工具/加速算法/参数调优的编码性能。BD-rate和速度比的单位都为%,编码性能的值域是(-∞,+∞)。
例如,假设某编码器在preset为fast时=10,其新加了一个快速算法后相对anchor的BD-rate为4.35%(相同失真下码率大4.35%),速度比为122%(速度是anchor的1.22倍),则编码性能10×(-4.35)+(122-100)=-21.5。
在一个实施例中,对公式:编码性能=λ×(-BD_rate)+(速度比-100)进行变形,得到:编码性能=(-BD_rate)+λ'(速度比-100),其中λ'为λ的倒数。
通常可设置一个阈值T(如经验值T=0),若编码性能>T,则认为调参后的编码性能提升,否则表明编码性能下降。利用计算出的编码性能,即可对编码工具在各个preset进行定量评价,指导决策哪些preset下适合使用新的编码工具或新的加速算法,同时可以指导编码器的自动化调参。
在一个具体的实施例中,为了便于说明,本实施例中目标参数为QP,上述调节编码器参数的方法,包括:
参数耦合性筛选:由于编码器的参数本身具有较强的耦合性,在构建Q_preset时若考虑所有编码参数,整个过程的计算量太大,实现复杂度太高。故在整个过程前,先依据编码原理,手动筛选出相对独立或耦合性较低的参数,作为Q_preset的候选参数集(候选参数组成的集合)。因此,最终放入Q_preset的多个参数也不会互相产生较大影响。
全QP下测试anchor数据:测试每个QP下默认参数的编码结果(编码速度和编码质量)作为anchor数据,若编码器存在多个预设的速度preset,则在每个速度preset下,做相同操作。
全QP下全参数性能测试:对Q_preset候选集里的每个参数,测试每个QP下,每个参数不同参数值的编码结果,利用编码质量与anchor数据一起计算出BD-rate,利用编码速度与anchor数据一起计算出速度比,然后利用BD-rate和速度比得到每个QP下每个参数值的参数性能。由此得到每个QP下每个参数的最佳参数值Pbest,以及最佳的参数性能Mbest。同时,计算每个参数值在所有QP下的最佳性能均值Mmean。若编码器存在多个预设的速度preset,在每个速度preset下,做相同操作。
以在编码器的Q_preset候选参数集中,有一个候选参数“bframes”,其中bframes可设置的值有3、4和8等,分别测试QP值为0-51时,bframes=3/4/8的编码结果,计算每个QP下,bframes=3/4/8的参数性能。例如QP=18时,bframes的最佳参数值和最佳参数性能为Pbest=8,Mbest=6,QP=28时,bframes的最佳参数值和最佳参数性能为Pbest=4,Mbest=20,然后计算所有QP下bframes的最佳性能均值Mmean=10。
确定Q_preset的参数集以及每个参数值:
确定Q_preset的参数集以及每个参数值:设置一个参数性能阈值T,依据第三步中的结果分析每个参数,共分为下述三类情况。
第一类:若某参数的最佳性能均值Mmean小于T,则该参数不放入Q_preset的参数集,也不修改该参数的默认值;
第二类:若某参数的最佳性能均值Mmean大于T,且该参数的最佳参数值在不同QP时变化较大(比如共有52个QP,即52个最佳参数值,其中的众数占所有数的比例小于0.8),则将该参数加入Q_preset,每个QP下的预设值即为该参数每个QP下的最佳参数值Mbest。
第三类:某参数的最佳性能均值Mmean大于T,且该参数的最佳参数值不随QP变化,或变化较小(比如所有QP下最佳参数值的众数比例大于0.8),则该参数不放入Q_preset的参数集,但修改该参数的默认值为该参数在所有QP下的最佳参数值的均值或众数。
若编码器存在多个预设的速度preset,对每个速度preset下,做相同操作。即最终在每个preset下有一套Q_preset参数设置。
在一定实施例中,Q_preset是每个QP对应一组相同的参数设置,亦可将QP分组,每组QP对应一组相同的参数设置。
在一个实施例中,编码器的参数设置方法,包括:
在编码器实际编码时,参数设置的优先级为:默认参数<速度Preset<Q_preset<独立设置参数。即编码器首先设置默认参数,若编码命令中有速度preset,则将preset中的参数集重新设置覆盖默认参数;随后若编码为CRF或CQP模式,按QP或CRF值将Q_preset中的参数重新设置覆盖前面已设置参数;最后将独立设置的参数覆盖前面设置的参数。
举例说明,比如编码命令为“Encode.exe-preset veryslow-qp 30-sao1-bframes4”,则编码时先设置所有默认值,然后按照veryslow设置对应的preset参数覆盖已设置的值,然后按照qp设置对应的Q_preset参数覆盖已设置的值,然后设置sao=1和bframes=4覆盖已设置的值。
在实际编码时,可考虑将速度preset的优先级可以和质量Q_preset的优先级互换。
图2为一个实施例中调节编码器参数的方法的流程示意图。应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种调节编码器参数的装置300,包括:
数据获取模块301,用于获取目标参数对应的多个参考值,和每个候选参数的多个参数值;
数据获取模块301还用于获取每个候选参数的每个参数值在每个参考值下的编码性能;
参数调节模块302,根据每个所述候选参数的每个参数值在每个所述参考值下的编码性能,确定出所述候选参数在每个所述参考值下的默认值。
在一个实施例中,参数调节模块302包括:
性能筛选单元,用于从每个候选参数的每个参数值在每个参考值下的编码性能中,筛选出最大值,得到每个候选参数在每个参考值下的最佳编码性能;
均值计算单元,用于计算当前候选参数在每个参考值下的最佳编码性能的均值,得到当前候选参数的性能均值;
参数统计单元,用于当当前候选参数的性能均值大于第一阈值时,统计当前候选参数在每个参考值下的最佳编码性能中相同的参数值,得到当前候选参数的统计值;
参数调节单元,用于当当前候选参数的统计值的最大值小于预设数目时,将当前候选参数在每个参考值下的最佳编码性能对应的参数值,作为当前候选参数在每个参考值下的默认值。
在一个实施例中,参数调节单元还用于当当前候选参数的统计值的最大值大于或等于预设数目时,将当前候选参数的统计值的最大值对应的参数值,作为当前候选参数在每个参考值下的默认值。
在一个实施例中,参数调节单元还用于当当前候选参数的统计值的最大值大于或等于预设数目时,将第一均值设置为当前候选参数在每个参考值下的默认值,第一均值为当前候选参数在每个参考值下的最佳编码性能对应的参数值的均值。
在一个实施例中,参数调节单元还用于当当前候选参数的性能均值小于或等于第一阈值时,保留当前候选参数的默认值。
在一个实施例中,上述调节编码器参数的装置300,还包括:
参考值分组模块,用于对目标参数对应的多个参考值进行组合,得到多个参考值集合;
数据获取模块301还用于获取每个参考值集合对应的阈值,和每个参考值集合对应的预设数目;
性能筛选单元还用于从每个候选参数的每个参数值在每个参考值集合中的每个参考值下的编码性能中,筛选出最大值,得到每个候选参数在每个参考值集合的每个参考值下的最佳编码性能;
均值计算单元还用于计算当前候选参数在每个参考值集合的每个参考值下的最佳编码性能的均值,得到当前候选参数在每个参考值集合下的性能均值;
参数统计单元还用于当当前候选参数在当前参考值集合下的性能均值大于对应的参考值集合对应的阈值,统计当前候选参数在当前参考值集合的每个参考值下的最佳编码性能中相同的参数值,得到当前候选参数在当前参考值集合的统计值;
参数调节单元还用于当当前候选参数在当前参考值集合的统计值的最大值,小于对应的当前参考值集合对应的预设数目时,将当前候选参数在每个当前参考值集合的每个参考值下的最佳编码性能对应的参数值,作为当前候选参数在当前参考值集合的每个参考值下的默认值。
在一个实施例中,参数调节单元还用于当当前候选参数在当前参考值集合的统计值的最大值,大于或等于对应的当前参考值集合对应的预设数目时,将当前候选参数在当前参考值集合的统计值的最大值对应的参数值,作为当前候选参数在当前参考值集合的每个参考值下的默认值。
在一个实施例中,上述调节编码器参数的装置300,还包括:
编码性能计算模块,用于获取每个参考值的参考编码结果;获取每个候选参数的每个参数值在每个参考值下的编码结果;根据当前参考值的参考编码结果,和当前候选参数的每个参数值在每个参考值下的编码结果,分别计算得到当前候选参数的每个参数值在每个参考值下的编码性能。
在一个实施例中,编码性能计算模块用于根据当前参考值的参考编码结果和当前候选参数的每个参数值在每个参考值下的编码结果,计算得到当前候选参数的每个参数值在每个参考值下的BD-rate和当前候选参数的每个参数值在每个参考值下的速度比,计算当前候选参数的每个参数值在每个参考值下的BD-rate,和当前候选参数的每个参数值在每个参考值下的速度比的加权和,得到当前候选参数的每个参数值在每个参考值下的编码性能。
图7示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端110(或服务器120)。如图7所示,该计算机设备通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现调节编码器参数的方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行调节编码器参数的方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的调节编码器参数的装置可以实现为一种计算机程序的形式,计算机程序可在如图7所示的计算机设备上运行。计算机设备的存储器中可存储组成该调节编码器参数的装置的各个程序模块,比如,图6所示的数据获取模块301和参数调节模块302。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的调节编码器参数的方法中的步骤。
例如,图7所示的计算机设备可以通过如图6所示的调节编码器参数的装置中的数据获取模块301执行获取目标参数对应的多个参考值,和每个候选参数的多个参数值;获取每个候选参数的每个参数值在每个参考值下的编码性能。计算机设备可以通过参数调节模块302执行根据每个候选参数的每个参数值在每个参考值下的编码性能,确定出候选参数在每个所述参考值下的默认值。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述调节编码器参数的方法任一实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述调节编码器参数的方法任一实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述调节编码器参数的方法中任一实施例的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (12)
1.一种调节编码器参数的方法,其特征在于,所述方法包括:
获取目标参数对应的多个参考值,和每个候选参数的多个参数值;
获取每个所述候选参数的每个参数值在每个所述参考值下的编码性能;
根据每个所述候选参数的每个参数值在每个所述参考值下的编码性能,确定出所述候选参数在每个所述参考值下的默认值:从每个所述候选参数的每个参数值在每个所述参考值下的编码性能中,筛选出最大值,得到每个所述候选参数在每个所述参考值下的最佳编码性能;计算当前候选参数在每个所述参考值下的最佳编码性能的均值,得到所述当前候选参数的性能均值;当所述当前候选参数的性能均值大于第一阈值时,统计所述当前候选参数在每个所述参考值下的最佳编码性能中相同的参数值,得到所述当前候选参数的统计值;当所述当前候选参数的统计值的最大值小于预设数目时,将所述当前候选参数在每个所述参考值下的最佳编码性能对应的参数值,作为所述当前候选参数在每个所述参考值下的所述默认值。
2.根据权利要求1所述的方法,其特征在于,当所述当前候选参数的统计值的最大值大于或等于所述预设数目时,所述方法还包括:
将所述当前候选参数的统计值的最大值对应的参数值,作为所述当前候选参数在每个所述参考值下的默认值。
3.根据权利要求1所述的方法,其特征在于,当所述当前候选参数的统计值的最大值大于或等于所述预设数目时,所述方法还包括:
将第一均值设置为所述当前候选参数在每个所述参考值下的默认值,所述第一均值为所述当前候选参数在每个所述参考值下的最佳编码性能对应的参数值的均值。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述当前候选参数的性能均值小于或等于所述第一阈值时,保留所述当前候选参数的默认值。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述获取目标参数对应的多个参考值之后,还包括:
对所述目标参数对应的多个参考值进行组合,得到多个参考值集合;
获取每个所述参考值集合对应的阈值,和每个所述参考值集合对应的预设数目;
所述从每个所述候选参数的每个参数值在每个所述参考值下的编码性能中,筛选出最大值,得到每个所述候选参数在每个所述参考值下的最佳编码性能,包括:从每个所述候选参数的每个参数值在每个所述参考值集合中的每个参考值下的编码性能中,筛选出最大值,得到每个所述候选参数在每个所述参考值集合的每个参考值下的最佳编码性能;
所述计算当前候选参数在每个所述参考值下的最佳编码性能的均值,得到所述当前候选参数的性能均值,包括:计算当前候选参数在每个所述参考值集合的每个参考值下的最佳编码性能的均值,得到所述当前候选参数在每个所述参考值集合下的性能均值;
所述当所述当前候选参数的性能均值大于第一阈值时,统计所述当前候选参数在每个所述参考值下的最佳编码性能中相同的参数值,得到所述当前候选参数的统计值,包括:当所述当前候选参数在当前参考值集合下的性能均值大于对应的所述参考值集合对应的阈值,统计所述当前候选参数在所述当前参考值集合的每个参考值下的最佳编码性能中相同的参数值,得到所述当前候选参数在所述当前参考值集合的统计值;
所述当所述当前候选参数的统计值的最大值小于预设数目时,将所述当前候选参数在每个所述参考值下的最佳编码性能对应的参数值,作为所述当前候选参数在每个所述参考值下的默认值,包括:当所述当前候选参数在所述当前参考值集合的统计值的最大值,小于对应的所述当前参考值集合对应的预设数目时,将所述当前候选参数在每个所述当前参考值集合的每个参考值下的最佳编码性能对应的参数值,作为所述当前候选参数在所述当前参考值集合的每个参考值下的默认值。
6.根据权利要求5所述的方法,其特征在于,当所述当前候选参数在所述当前参考值集合的统计值的最大值,大于或等于对应的所述当前参考值集合对应的预设数目时,
所述将所述当前候选参数的统计值的最大值对应的参数值,作为所述当前候选参数在每个所述参考值下的默认值,包括:将所述当前候选参数在所述当前参考值集合的统计值的最大值对应的参数值,作为所述当前候选参数在所述当前参考值集合的每个参考值下的默认值。
7.根据权利要求1所述的方法,其特征在于,所述目标参数为量化参数或速度档。
8.根据权利要求1所述的方法,其特征在于,所述获取每个所述候选参数的每个参数值在每个所述参考值下的编码性能之前,还包括:
获取每个所述参考值的参考编码结果;
获取所述每个所述候选参数的每个参数值在每个所述参考值下的编码结果;
根据当前参考值的参考编码结果,和所述当前候选参数的每个参数值在每个所述参考值下的编码结果,分别计算得到当前候选参数的每个参数值在每个所述参考值下的编码性能。
9.根据权利要求8所述的方法,其特征在于,所述根据当前参考值的参考编码结果,和所述当前候选参数的每个参数值在每个所述参考值下的编码结果,分别计算得到当前候选参数的每个参数值在每个所述参考值下的编码性能,包括:
根据所述当前参考值的参考编码结果和所述当前候选参数的每个参数值在每个所述参考值下的编码结果,计算得到所述当前候选参数的每个参数值在每个所述参考值下的BD-rate和所述当前候选参数的每个参数值在每个所述参考值下的速度比;
计算所述当前候选参数的每个参数值在每个所述参考值下的BD-rate,和所述当前候选参数的每个参数值在每个所述参考值下的速度比的加权和,得到所述当前候选参数的每个参数值在每个所述参考值下的编码性能。
10.一种调节编码器参数的装置,其特征在于,所述装置包括:
数据获取模块,用于获取目标参数对应的多个参考值,和每个候选参数的多个参数值;
所述数据获取模块还用于获取每个所述候选参数的每个参数值在每个所述参考值下的编码性能;
参数调节模块,用于根据每个所述候选参数的每个参数值在每个所述参考值下的编码性能,确定出所述候选参数在每个所述参考值下的默认值:从每个所述候选参数的每个参数值在每个所述参考值下的编码性能中,筛选出最大值,得到每个所述候选参数在每个所述参考值下的最佳编码性能;计算当前候选参数在每个所述参考值下的最佳编码性能的均值,得到所述当前候选参数的性能均值;当所述当前候选参数的性能均值大于第一阈值时,统计所述当前候选参数在每个所述参考值下的最佳编码性能中相同的参数值,得到所述当前候选参数的统计值;当所述当前候选参数的统计值的最大值小于预设数目时,将所述当前候选参数在每个所述参考值下的最佳编码性能对应的参数值,作为所述当前候选参数在每个所述参考值下的所述默认值。
11.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至9中任一项所述方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011377796.4A CN112601088B (zh) | 2020-11-30 | 2020-11-30 | 调节编码器参数的方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011377796.4A CN112601088B (zh) | 2020-11-30 | 2020-11-30 | 调节编码器参数的方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112601088A CN112601088A (zh) | 2021-04-02 |
CN112601088B true CN112601088B (zh) | 2023-04-21 |
Family
ID=75187375
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011377796.4A Active CN112601088B (zh) | 2020-11-30 | 2020-11-30 | 调节编码器参数的方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112601088B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107197279A (zh) * | 2008-02-22 | 2017-09-22 | 高通股份有限公司 | 快速宏块增量量化参数的决定 |
CN109819263A (zh) * | 2017-11-22 | 2019-05-28 | 腾讯科技(深圳)有限公司 | 视频编码方法、装置、计算机设备及存储介质 |
CN110832856A (zh) * | 2017-11-30 | 2020-02-21 | 深圳市大疆创新科技有限公司 | 用于减小视频编码波动的系统及方法 |
CN111182300A (zh) * | 2018-11-09 | 2020-05-19 | 华为技术有限公司 | 编码参数的确定方法、装置、设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10609405B2 (en) * | 2013-03-18 | 2020-03-31 | Ecole De Technologie Superieure | Optimal signal encoding based on experimental data |
US10674158B2 (en) * | 2017-06-15 | 2020-06-02 | Beamr Imaging Ltd | Method and system of video coding optimization |
-
2020
- 2020-11-30 CN CN202011377796.4A patent/CN112601088B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107197279A (zh) * | 2008-02-22 | 2017-09-22 | 高通股份有限公司 | 快速宏块增量量化参数的决定 |
CN109819263A (zh) * | 2017-11-22 | 2019-05-28 | 腾讯科技(深圳)有限公司 | 视频编码方法、装置、计算机设备及存储介质 |
CN110832856A (zh) * | 2017-11-30 | 2020-02-21 | 深圳市大疆创新科技有限公司 | 用于减小视频编码波动的系统及方法 |
CN111182300A (zh) * | 2018-11-09 | 2020-05-19 | 华为技术有限公司 | 编码参数的确定方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112601088A (zh) | 2021-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Singh et al. | Quality of experience estimation for adaptive HTTP/TCP video streaming using H. 264/AVC | |
CN109862359A (zh) | 基于分层b帧的码率控制方法、装置和电子设备 | |
CN104023232B (zh) | 基于层次分析和多元线性回归的移动视频质量评估方法 | |
CN104822068A (zh) | 流媒体代理缓存替换方法及装置 | |
CN113938682A (zh) | 视频编码方法、装置和电子设备 | |
CN111953966B (zh) | 一种编码测试的方法、装置、服务器和存储介质 | |
KR102170046B1 (ko) | 적응형 멀티미디어 스트리밍의 품질 추정 | |
CN111539948B (zh) | 视频质量评估的方法、装置、电子设备及存储介质 | |
Duanmu et al. | A knowledge-driven quality-of-experience model for adaptive streaming videos | |
CN101895788B (zh) | 一种视频编码性能客观评价方法及系统 | |
CN110545418A (zh) | 一种基于场景的自适应视频编码方法 | |
US9280813B2 (en) | Blur measurement | |
CN112601088B (zh) | 调节编码器参数的方法、装置、计算机设备和存储介质 | |
CN109218722B (zh) | 一种视频编码方法、装置及设备 | |
WO2024017106A1 (zh) | 一种码表更新方法、装置、设备及存储介质 | |
CN112601073B (zh) | 编码器评价方法、装置、计算机设备和存储介质 | |
Wu et al. | Descriptive and predictive analysis of aggregating functions in serverless clouds: The case of video streaming | |
US10897619B2 (en) | Complexity control of video codec | |
CN111107359A (zh) | 一种适用于hevc标准的帧内预测编码单元划分方法 | |
CN112584147B (zh) | 调节编码器参数的方法、装置、计算机设备和存储介质 | |
CN112601074B (zh) | 评价编码器的方法、装置、计算机设备和存储介质 | |
JP2024506130A (ja) | データ処理方法、装置及びコンピュータプログラム。 | |
CN110049339A (zh) | 图像编码中的预测方向选取方法、装置和存储介质 | |
Kim et al. | Efficient video quality assessment for on-demand video transcoding using intensity variation analysis | |
CN109618155B (zh) | 压缩编码方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |