欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 一种编码测试的方法、装置、服务器和存储介质独创技术48093字

一种编码测试的方法、装置、服务器和存储介质

2021-02-04 19:17:28

一种编码测试的方法、装置、服务器和存储介质

  技术领域

  本发明实施例涉及视频处理领域,尤其涉及一种编码测试的方法、装置、服务器和存储介质。

  背景技术

  随着互联网技术的快速发展,视频编解码技术在视频传输方面起到了重要作用,此时为了适应不同客户端对视频分辨率和图像质量的要求,通常会采用各类高性能的视频编码器对视频进行压缩以减少视频传输负担。当前普遍采用的视频编解码标准包括H.264、高效率视频编码(High Efficiency Video Coding,HEVC)、VP8、VP9、开放媒体联盟开发的第一代视频编码标准(AOMedia Video 1,AV1)、信源编码标准(Audio Video codingStandard,AVS)和AVS2等,此时对于不同的视频编码标准或者同一视频编码标准下的不同编码配置来说,同一视频的编码性能也会存在差异,因此如何测试不同视频编码模式(不同的视频编码标准或者同一视频编码标准下的不同编码配置)下的视频编码性能,以选择最优性能下的视频编码标准或者编码配置,是视频领域内普遍需要考虑的一个问题。

  目前,在测试同一视频在不同视频编码模式下的编码性能时,通常会在每一视频编码模式下分别随机选取出4个量化参数(Quantization Parameter,QP)点或者码率点,然后分别采用每一视频编码模式对该视频进行编码,以计算出每一视频编码模式的各个QP点或者码率点上的视频编码质量和码率,进而绘制出每一视频编码模式下的率失真(RateDistortion,RD)曲线,以便计算不同视频编码模式之间的BD-Rate,来分析不同视频编码模式下的编码性能。

  此时,如果不同视频编码模式下随机选取出QP点或者码率点存在于不同的码率区间,那么不同视频编码模式下的RD曲线也会属于不同的码率区间,因此无法判断出不同视频编码模式在相同码率下的性能表现,使得依据不同视频编码模式下的RD曲线所计算出的BD-Rate表示的编码性能不可靠,极大降低了不同视频编码模式下的性能测试准确性。

  发明内容

  本发明实施例提供了一种编码测试的方法、装置、服务器和存储介质,保证不同编码模式下所选用测试点对应的码率一致性,提高编码测试的可靠性和准确性。

  第一方面,本发明实施例提供了一种编码测试的方法,该方法包括:

  根据待测视频序列标定的码率测试上限,确定基准编码模式下的第一测试点集合;

  根据所述第一测试点集合所在的码率测试段,确定对标编码模式下的第二测试点集合;

  根据所述待测视频序列分别采用所述基准编码模式下的第一测试点集合和所述对标编码模式下的第二测试点集合编码后的编码性能差异,确定对应的编码测试结果。

  第二方面,本发明实施例提供了一种编码测试的装置,该装置包括:

  第一测试点确定模块,用于根据待测视频序列标定的码率测试上限,确定基准编码模式下的第一测试点集合;

  第二测试点确定模块,用于根据所述第一测试点集合所在的码率测试段,确定对标编码模式下的第二测试点集合;

  编码测试模块,用于根据所述待测视频序列分别采用所述基准编码模式下的第一测试点集合和所述对标编码模式下的第二测试点集合编码后的编码性能差异,确定对应的编码测试结果。

  第三方面,本发明实施例提供了一种服务器,该服务器包括:

  一个或多个处理器;

  存储装置,用于存储一个或多个程序;

  当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所述的编码测试的方法。

  第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所述的编码测试的方法。

  本发明实施例提供的一种编码测试的方法、装置、服务器和存储介质,由于对于任一编码模式,随着视频编码码率的不断增加,最终均会接近无损的视频画质,使得不同编码模式在过高码率下的编码测试,并不能准确代表自身真实的编码性能,因此可以预先为待测视频序列标定对应的码率测试上限,并确定基准编码模式下的第一测试点集合,使得第一测试点集合内每一测试点对应的码率均低于该码率测试上限,同时按照第一测试点集合所在的码率测试段,来确定对标编码模式下的第二测试点集合,使得第一测试点集合与第二测试点集合内测试点对应的码率处于同一码率测试段内,也就是第二测试点集合内每一测试点对应的码率也低于该码率测试上限,并保证不同编码模式下所选用测试点对应的码率一致性,避免不同编码模式下所选用测试点处于不同码率测试段的情况,从而实现不同编码模式下编码性能的准确测试,提高编码测试性能的可靠性。

  附图说明

  通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

  图1A为本发明实施例一提供的一种编码测试的方法的流程图;

  图1B为本发明实施例一提供的编码测试过程的原理示意图;

  图2A为本发明实施例二提供的一种编码测试的方法的流程图;

  图2B为本发明实施例二提供的编码测试过程的原理示意图;

  图3A为本发明实施例三提供的一种编码测试的方法的流程图;

  图3B为本发明实施例三提供的编码测试过程的原理示意图;

  图3C为本发明实施例三提供的方法中基准编码模式和对标编码模式下的RD曲线的示意图。

  图4为本发明实施例四提供的一种直播视频的转码装置的结构示意图;

  图5为本发明实施例五提供的一种服务器的结构示意图。

  具体实施方式

  下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

  实施例一

  图1A为本发明实施例一提供的一种编码测试的方法的流程图,本实施例可应用于为某一待编码视频选择编码性能最优的编码模式的情况中。本实施例提供的一种编码测试的方法可以由本发明实施例提供的编码测试的装置来执行,该装置可以通过软件和/或硬件的方式来实现,并集成在执行本方法的服务器中,该服务器可以是各类视频应用的后台服务器。

  具体的,参考图1A,该方法可以包括如下步骤:

  S110,根据待测视频序列标定的码率测试上限,确定基准编码模式下的第一测试点集合。

  具体的,由于采用不同视频编码标准(也就是编码器)或者同一视频编码标准下的不同编码配置,对同一视频进行编码时会存在对应的性能差异,此时本实施例中将视频编码可能采用的各个视频编码标准或者视频编码标准下的编码配置作为对应的编码模式,便于在不同编码模式下对同一视频进行编码测试,而待测视频序列可以为当前需要进行编码测试以选取最优编码性能下的编码模式来进行编码的完整视频,或者该完整视频中随机抽取出的视频段。

  进一步的,由于对于任何编码模式来说,随着视频编码码率的不断增加,引起的视频编码质量的提升会逐渐变缓,最终均会达到或者接近无损的视频画质,也就是任何编码模式下视频编码质量的提升均会随着编码码率的增加而逐渐趋于平缓,使得不同编码模式在过高码率下编码后的视频编码质量均会接近无损的视频画质,属于视频编码在过高码率下的固有特性,而不能准确代表各编码模式自身真实的编码性能,因此可以通过分析历史编码经验,预先为待测视频序列标定对应的码率测试上限,并要求后续在不同编码模式下进行编码测试时所选用的每一测试点对应的码率均低于该码率测试上限,以确保在不同编码模式下进行编码测试后得到的视频编码质量均能够准确代表该编码模式真实的编码性能,从而提高不同编码模式下的测试可靠性。

  需要说明的是,本实施例中所选用的测试点可以为码率点,也可以为与码率存在一定关系的QP点或者恒定码率因子(Constant Rate Factor,CRF)点等,具体需要根据编码配置条件来判断。

  同时,为了保证编码测试的准确性,本实施例在采用相应测试点来分析待测视频序列在不同编码模式下的编码性能时,首先需要确保不同编码模式之间所采用测试点的公平性,因此可以将不同编码模式中的某一特定编码模式下采用的测试点作为参考,来选择其他编码模式下的测试点,所参考的编码模式为本实施例中的基准编码模式,剩余待测试的其他编码模式为本实施例中的对标编码模式,例如,在测试分别采用编码器A下的编码配置cfgA和编码器B下的编码配置cfgB来对待测视频序列进行编码时的编码性能差异时,可以将编码器A及其下的编码配置cfgA作为基准编码模式,而将编码器B及其下的编码配置cfgB作为对标编码模式。

  本实施例中,在需要分析待测视频序列在不同编码模式下的编码性能时,首先会通过不同编码码率下的历史编码经验,来预先为该待测视频序列标定一个对应的码率测试上限,要求待测视频序列在不同编码模式下进行编码性能测试时,每一编码模式下所选用的测试点对应的码率均不允许超过该码率测试上限,以保证不同编码模式下编码性能测试的可靠性;进而,首先参考该待测视频序列标定的码率测试上限,在小于等于该码率测试上限的码率范围内对应的各个测试点中,按照一定规则筛选出目标数量下的测试点,从而组合得到基准编码模式下的第一测试点集合,此时第一测试点集合内的每一测试点对应的码率均小于或等于该码率测试上限,也就是采用基准编码模式下的第一测试点集合对待测视频序列进行编码后的视频编码质量,能够准确代表该基准编码模式真实的编码性能。

  S120,根据第一测试点集合所在的码率测试段,确定对标编码模式下的第二测试点集合。

  可选的,由于在任一编码模式下的不同码率段对同一视频进行编码时,不同码率段所表现出的编码性能也存在一定差异,使得无法通过该编码模式下某一码率段的编码性能,来预测该视频在其他码率段下的编码性能,因此在测试待测视频序列在不同编码模式下的编码性能时,为了保证不同编码模式下编码性能测试的公平性,则要求在基准编码模式和对标编码模式下所选用的测试点对应的码率处于同一码率段内,使得不同编码模式下的测试条件一致。

  可以理解的是,本实施例在确定出基准编码模式下的第一测试点集合之后,为了使基准编码模式和对标编码模式下所选用的测试点对应的码率处于同一码率段内,首先需要分析第一测试点集合内的测试点与码率值之间的关系,以计算出第一测试点集合内每一测试点对应的码率值,如图1B所示,从而确定第一测试点集合所在的码率测试段;然后,参考第一测试点集合所在的码率测试段,不断采用对标编码模式来对该待测视频序列进行多次编码,此时在多次编码过程中不断更新所采用的测试点值,以使对标编码模式下的编码码率不断接近第一测试点集合所在的码率测试段,从而得到对标编码模式下的第二测试点集合,使得该第二测试点集合与第一测试点集合内各测试点对应的码率处于同一码率测试段内,也就保证第二测试点集合内每一测试点对应的码率也小于等于该测视频序列标定的码率测试上限,同时保证基准编码模式和对标编码模式下所选用测试点对应的码率一致性,后续分析采用基准编码模式和对标编码模式在同一码率测试段内对该待测视频序列编码后的性能差异,避免不同编码模式下所选用测试点处于不同码率测试段的情况,从而实现不同编码模式下编码性能的准确测试,提高编码测试性能的可靠性。

  示例性的,本实施例中可以直接将第一测试点集合所在的码率测试段作为对标编码模式下的码率测试段,根据码率测试段内的起止码率,计算对标编码模式下的第二测试点集合。也就是说,首先确定出码率测试段内的起始码率和终止码率,然后根据具体测试点与码率值之间的关系,分别计算出起始码率和终止码率对应的测试点,进而按照第一测试点集合内的测试点分布规律,在起始码率和终止码率对应的两个测试点之间,查找出对应的其他测试点,从而组合得到对标编码模式下的第二测试点集合。例如如果第一测试点集合内存在固定间隔下的4个测试点,那么起始码率和终止码率对应的两个测试点之间,也按照对应间隔再查找2个测试点,与起始码率和终止码率对应的两个测试点共同组成对标编码模式下包括4个测试点的第二测试点集合。

  S130,根据待测视频序列分别采用基准编码模式下的第一测试点集合和对标编码模式下的第二测试点集合编码后的编码性能差异,确定对应的编码测试结果。

  可选的,在确定出基准编码模式下的第一测试点集合和对标编码模式下的第二测试点集合之后,可以利用基准编码模式,并采用第一测试点集合内的每一测试点对该待测视频序列进行编码,并计算该待测视频序列在第一测试点集合内的每一测试点下的视频编码质量,进而分析该视频编码质量随着第一测试点集合对应码率的增加而出现的变化情况,以得到待测视频序列采用基准编码模式进行编码时在第一测试点集合所在的码率测试段内出现的视频编码性能;同时,利用对标编码模式,并采用第二测试点集合内的每一测试点对该待测视频序列进行编码,并计算该待测视频序列在第二测试点集合内的每一测试点下的视频编码质量,进而分析该视频编码质量随着第二测试点集合对应码率的增加而出现的变化情况,以得到待测视频序列采用对标编码模式进行编码时在第二测试点集合所在的码率测试段内出现的视频编码性能,此时第一测试点集合所在的码率测试段与第二测试点集合所在的码率测试段一致,因此通过比对该码率测试段内在基准编码模式和对标编码模式下待测视频序列的编码性能,确定对应的编码性能差异,进而从基准编码模式和对标编码模式中选取出编码性能最优的编码模式,作为本次编码测试对应的编码测试结果,从而提高编码测试结果的可靠性。

  本实施例提供的技术方案,由于对于任一编码模式,随着视频编码码率的不断增加,最终均会接近无损的视频画质,使得不同编码模式在过高码率下的编码测试,并不能准确代表自身真实的编码性能,因此可以预先为待测视频序列标定对应的码率测试上限,并确定基准编码模式下的第一测试点集合,使得第一测试点集合内每一测试点对应的码率均低于该码率测试上限,同时按照第一测试点集合所在的码率测试段,来确定对标编码模式下的第二测试点集合,使得第一测试点集合与第二测试点集合内测试点对应的码率处于同一码率测试段内,也就是第二测试点集合内每一测试点对应的码率也低于该码率测试上限,并保证不同编码模式下所选用测试点对应的码率一致性,避免不同编码模式下所选用测试点处于不同码率测试段的情况,从而实现不同编码模式下编码性能的准确测试,提高编码测试性能的可靠性。

  实施例二

  图2A为本发明实施例二提供的一种编码测试的方法的流程图,图2B为本发明实施例二提供的编码测试过程的原理示意图。本实施例是在上述实施例的基础上进行优化。具体的,本实施例主要对于基准编码模式下的第一测试点集合和对标编码模式下的第二测试点集合的具体确定过程进行详细的解释说明。

  可选的,如图2A所示,本实施例可以包括如下步骤:

  S201,根据基准编码模式和对标编码模式的码控配置条件,确定第一测试点集合和第二测试点集合内测试点的类型。

  可选的,由于根据编码需求不同,在对应编码模式下会存在不同的配置要求,例如对编码码率存在特定需求时,会在该编码模式下预先设置对应的码控配置条件,如平均码率(Average Bitrate,ABR)、动态码率(Variable Bitrate,VBR)和恒定码率(ConstantBitrate,CBR)等码控条件等,而对编码质量存在特定需求时,则不会设置对应的码控配置条件,而可能会设置恒定量化参数(Constant Quantization Parameter,CQP)和恒定码率因子(Constant Rate Factor,CRF)等质量条件等,因此为了提高测试点与编码模式之间的适配性,本实施例首先会对基准编码模式和对标编码模式下的配置参数进行分析,判断是否存在对应的码控配置条件,进而确定第一测试点集合和第二测试点集合内测试点的类型,以便后续直接选择相应类型下的测试点。

  需要说明的是,为了保证编码测试的公平性,本实施例也会要求基准编码模式和对标编码模式的码控配置条件一致。

  示例性的,如果基准编码模式和对标编码模式下存在码控配置条件,则确定第一测试点集合和第二测试点集合内测试点的类型为码率点,而如果基准编码模式和对标编码模式下不存在码控配置条件,则确定第一测试点集合和第二测试点集合内测试点的类型为QP点,此时CRF点为特殊的QP点。

  S202,判断测试点的类型是否为码率点;若是,执行S203;若否,执行S204。

  可选的,由于测试点的类型不同,确定基准编码模式下的第一测试点集合和对标编码模式下的第二测试点集合时所执行的具体步骤也不同,因此需要判断测试点的类型是否为码率点,来执行不同的测试点确定步骤。

  S203,根据待测视频序列标定的码率测试上限,确定基准编码模式下的第一测试点集合,且第二测试点集合与第一测试点集合相同。

  可选的,如果测试点的类型为码率点,那么可以直接根据待测视频序列标定的码率测试上限,确定出小于等于该码率测试上限的具体码率值对应的多个码率点,作为基准编码模式下的第一测试点集合内的测试点,此时可以将第一测试点集合作为对标编码模式下的第二测试点集合,使得基准编码模式与对标编码模式在相同的码率点上进行编码测试,从而保证编码测试的准确性。

  示例性的,本实施例中可以直接将该待测视频序列标定的码率测试上限(定义为bitrate_anchor)作为基准编码模式下的第一测试点集合内的最大码率点,然后按照固定间隔依次减小,得到第一测试点集合内的其他码率点;如果第一测试点集合有4个测试点,那么4个测试点可以分别为bitrate_anchor/4、bitrate_anchor/2、bitrate_anchor*3/4和bitrate_anchor,第二测试点集合中的测试点也为bitrate_anchor/4、bitrate_anchor/2、bitrate_anchor*3/4和bitrate_anchor。

  S204,采用基准编码模式下的默认量化参数对待测视频序列进行编码。

  可选的,如果测试点的类型为非码率点,也就是要求第一测试点集合和第二测试点集合中的测试点为QP点,那么在确定基准编码模式下的第一测试点集合时,首先可以采用基准编码模式下的默认量化参数(如QP=22)对待测视频序列进行编码,以判断该默认量化参数对应的编码后码率是否满足待测视频序列标定的码率测试上限的要求,也就是判断编码后码率是否小于等于该码率测试上限,此时由于QP值可以表征编码过程中视频画面的细节压缩情况,如果QP较小,那么视频画面中的大部分细节会被保留,而QP增大,则会使部分细节丢失,也就是说,QP值和码率成反比的关系,因此,可以通过不断更新默认量化参数,来对应更新默认量化参数对应的编码后码率,然后通过判断编码后码率与待测视频序列标定的码率测试上限之间的大小,来确定基准编码模式下所允许达到的编码后码率对应的量化参数,以便确定基准编码模式下的第一测试点集合内的量化点。

  S205,如果编码后码率大于待测视频序列标定的码率测试上限,则更新默认量化参数,继续对待测视频序列进行编码,直至编码后码率小于等于码率测试上限,并将最新的默认量化参数作为第一测试点集合内的最小测试点。

  可选的,在采用基准编码模式下的默认量化参数对待测视频序列进行编码之后,如果得到的编码后码率大于待测视频序列标定的码率测试上限,说明码率不符合该码率测试上限的要求,因此可以根据当前得到的编码后码率与该码率测试上限之间的码率差,来更新该默认量化参数,而由于QP值和码率成反比的关系,此时更新该默认量化参数也就是相应增加该默认量化参数,然后采用基准编码模式下增加后的默认量化参数继续对待测视频序列进行编码,依次循环,使得编码后码率不断减小,直至小于等于码率测试上限,此时将最新的默认量化参数作为第一测试点集合内的最小测试点。

  S206,基于最小测试点和预设量化点规则,确定第一测试点集合内的其他测试点。

  可选的,在得到第一测试点集合内的最小测试点之后,为了使第一测试点集合内的测试点对应的码率均小于该码率测试上限,则会不断增加该最小测试点,使得对应的码率不断减小,此时预设量化点规则可以为每次增加的固定量化间隔,也就是在最小测试点依次增加该固定量化间隔,不断得到新的量化点,作为第一测试点集合内的其他测试点。

  示例性的,如果第一测试点集合内的最小测试点为QPA1,固定量化间隔为5,第一测试点集合内有4个测试点,那么第一测试点集合内的其他测试点分别为QPA2=QPA1+5、QPA3=QPA1+10和QPA4=QPA1+15。

  此时,可以根据第一测试点集合所在的码率测试段来计算对标编码模式下的第二测试点集合,而第一测试点集合所在的码率测试段内的起始码率可以为采用第一测试点集合内的最大测试点对待测视频序列进行编码的编码后码率,终止码率可以为采用第一测试点集合内的最小测试点对待测视频序列进行编码的编码后码率。

  S207,采用对标编码模式下的默认起始量化点对待测视频序列进行编码。

  可选的,由于本实施例要求第一测试点集合和第二测试点集合所在的码率测试段一致,因此可以按照第一测试点集合所在的码率测试段内的起止码率,来分析第二测试点集合内与起始码率对应的最大测试点的具体量化值,以及与终止码率对应的最小测试点的具体量化值。

  此时,在对第二测试点集合内的最小测试点进行分析时,基于第一测试点集合和第二测试点集合所在的码率测试段的一致性要求,可以首先将第一测试点集合内的最小测试点作为本实施例中对标编码模式下的默认起始量化点,然后采用对标编码模式下的默认起始量化点对待测视频序列进行编码,判断得到的编码后码率是否超出第一测试点集合所在的码率测试段内终止码率的临近范围,该临近范围能够表示确保第一测试点集合和第二测试点集合所在的码率测试段一致时所允许终止码率出现的误差范围,以便通过更新默认起始量化点来调整编码后码率,尽可能使第二测试点集合内的最小测试点对应的码率逐渐接近第一测试点集合所在的码率测试段内的终止码率。

  S208,如果编码后码率超出第一测试点集合所在的码率测试段内终止码率的临近范围,则更新默认起始量化点,继续对待测视频序列进行编码,直至编码后码率处于终止码率的临近范围内,则将最新的默认起始量化点作为第二测试点集合内的最小测试点。

  可选的,在采用对标编码模式下的默认起始量化点对待测视频序列进行编码后,如果编码后码率超出第一测试点集合所在的码率测试段内终止码率的临近范围,说明该编码后码率与第一测试点集合所在的码率测试段内的终止码率在误差允许范围内不一致,因此需要根据该编码后码率与第一测试点集合所在的码率测试段内的终止码率之间的大小来更新该默认起始量化点,例如如果编码后码率大于第一测试点集合所在的码率测试段内的终止码率,那么增加该默认起始量化点,而如果编码后码率小于等于第一测试点集合所在的码率测试段内的终止码率,那么减小该默认起始量化点,然后采用对标编码模式下更新后的默认起始量化点继续对待测视频序列进行编码,依次循环,直至最新得到的编码后码率处于该终止码率的临近范围内,说明最新的默认起始量化点对应的编码后码率已经接近第一测试点集合所在的码率测试段内的终止码率,在误差允许范围内与该终止码率一致,因此将该最新的默认起始量化点作为第二测试点集合内的最小测试点,从而保证第二测试点集合内的最小测试点的准确性。

  示例性的,本实施例中为了准确判断编码后码率是否处于第一测试点集合所在的码率测试段内终止码率的临近范围内,会预先设定两个参量flag1和flag2,并初始定义flag1=flag2=0,此时通过判断编码后码率与第一测试点集合所在的码率测试段内的终止码率之间的大小,来改变flag1和flag2的值,在刚开始编码时,flag1=flag2=0,如果编码后码率大于第一测试点集合所在的码率测试段内的终止码率,那么将flag1置为1,然后通过不断更新默认起始量化点,继续对待测视频序列进行编码时,会不断减小编码后码率,直到编码后码率首次小于或者等于第一测试点集合所在的码率测试段内的终止码率,则将flag2置为1,此时说明默认起始量化点的更新使得编码后码率首次跨过第一测试点集合所在的码率测试段内的终止码率;或者,在刚开始编码时,flag1=flag2=0,如果编码后码率小于等于第一测试点集合所在的码率测试段内的终止码率,那么将flag2置为1,然后通过不断更新默认起始量化点,继续对待测视频序列进行编码时,会不断增加编码后码率,直到编码后码率首次大于第一测试点集合所在的码率测试段内的终止码率,则将flag1置为1,此时说明默认起始量化点的更新使得编码后码率首次跨过第一测试点集合所在的码率测试段内的终止码率;也就是只有在flag1+flag2=2时,才说明当前的编码后码率处于第一测试点集合所在的码率测试段内终止码率的临近范围内,而在flag1+flag2<2时,说明当前的编码后码率超出第一测试点集合所在的码率测试段内终止码率的临近范围,需要继续更新默认起始量化点。

  相应的,为了减小待测视频序列重复编码的次数,本实施例在更新默认起始量化点之前,还可以包括:根据编码后码率与终止码率之间的码率差,确定默认起始量化点的当前更新系数。

  具体的,通过编码后码率与终止码率之间的码率差的大小来设置不同的更新系数,来对应更新默认起始量化点,使得不同码率差下,默认起始量化点的更新幅度不同,在每次需要更新默认起始量化点,首先按照通过分析编码后码率与终止码率之间的码率差,来确定默认起始量化点的当前更新系数,在码率差较大时,设置当前更新系数也较大,从而减少不必要默认起始量化点下的重复编码;例如,如果编码后码率与终止码率之间的码率差超过6%,那么可以设置默认起始量化点的当前更新系数QPoffs_lower为3,而如果码率差在3%-6%之间,那么可以设置默认起始量化点的当前更新系数QPoffs_lower为2等。

  S209,采用对标编码模式下的默认终止量化点对待测视频序列进行编码。

  可选的,在对第二测试点集合内的最大测试点进行分析时,与对第二测试点集合内的最小测试点的分析逻辑相同,首先将第一测试点集合内的最大测试点作为本实施例中对标编码模式下的默认终止量化点,然后采用对标编码模式下的默认终止量化点对待测视频序列进行编码,判断得到的编码后码率是否超出第一测试点集合所在的码率测试段内起始码率的临近范围,该临近范围能够表示确保第一测试点集合和第二测试点集合所在的码率测试段一致时所允许起始码率出现的误差范围,以便通过更新默认终止量化点来调整编码后码率,尽可能使第二测试点集合内的最大测试点对应的码率逐渐接近第一测试点集合所在的码率测试段内的起始码率。

  S210,如果编码后码率超出第一测试点集合所在的码率测试段内起始码率的临近范围,则更新默认终止量化点,继续对待测视频序列进行编码,直至编码后码率处于起始码率的临近范围内,则将最新的默认终止量化点作为第二测试点集合内的最大测试点。

  可选的,在采用对标编码模式下的默认终止量化点对待测视频序列进行编码后,如果编码后码率超出第一测试点集合所在的码率测试段内起始码率的临近范围,说明该编码后码率与第一测试点集合所在的码率测试段内的起始码率在误差允许范围内不一致,因此需要根据该编码后码率与第一测试点集合所在的码率测试段内的起始码率之间的大小来更新该默认终止量化点,例如如果编码后码率大于第一测试点集合所在的码率测试段内的起始码率,那么增加该默认终止量化点,而如果编码后码率小于等于第一测试点集合所在的码率测试段内的起始码率,那么减小该默认终止量化点,然后采用对标编码模式下更新后的默认终止量化点继续对待测视频序列进行编码,依次循环,直至最新得到的编码后码率处于该起始码率的临近范围内,说明最新的默认终止量化点对应的编码后码率已经接近第一测试点集合所在的码率测试段内的起始码率,在误差允许范围内与该起始码率一致,因此将该最新的默认终止量化点作为第二测试点集合内的最大测试点,从而保证第二测试点集合内的最大测试点的准确性。

  相应的,为了减小待测视频序列重复编码的次数,在更新默认终止量化点之前,与默认起始量化点的更新操作相同,还会根据编码后码率与起始码率之间的码率差,确定默认终止量化点的当前更新系数。

  需要说明的是,本实施例中的S207-S208是按照基准编码模式下的第一测试点集合来计算对标编码模式下第二测试点集合内的最小测试点的过程,而S209-S210是按照基准编码模式下的第一测试点集合来计算对标编码模式下第二测试点集合内的最大测试点的过程,S207-S208与S209-S210之间不存在固定的执行顺序,可以同时计算对标编码模式下第二测试点集合内的最小测试点和最大测试点。

  S211,基于第二测试点集合内的最小测试点和最大测试点,确定第二测试点集合内的其他测试点。

  可选的,在得到第二测试点集合内的最小测试点和最大测试点之后,本实施例会参考预设的测试点分布规则,在最小测试点和最大测试点之间的量化点中,选择出第二测试点集合内的其他测试点。

  例如,如果第二测试点集合存在4个测试点,最小测试点为QPB1,最大测试点为QPB4,那么第二测试点集合内除QPB1和QPB4之外,还包括QPB1和QPB4之间的QPB2和QPB3,此时QPB2=QPB1*2/3+QPB4/3,QPB3=QPB1/3+QPB4*2/3。

  S212,根据待测视频序列分别采用基准编码模式下的第一测试点集合和对标编码模式下的第二测试点集合编码后的编码性能差异,确定对应的编码测试结果。

  本实施例提供的技术方案,根据基准编码模式和对标编码模式的码控配置条件,确定第一测试点集合和所述第二测试点集合内测试点的类型,从而第一测试点集合和所述第二测试点集合内测试点与编码测试之间的适配性,同时通过不断更新待测视频序列编码采用的默认量化点,来采用基准编码模式或对标编码模式对待测视频序列进行重复编码,来分析第一测试点集合和第二测试点集合内的测试点对应码率的一致性,使得第一测试点集合和第二测试点集合内内每一测试点对应的码率均低于该码率测试上限,保证不同编码模式下所选用测试点对应的码率一致性,避免不同编码模式下所选用测试点处于不同码率测试段的情况,从而实现不同编码模式下编码性能的准确测试,提高编码测试性能的可靠性。

  实施例三

  图3A为本发明实施例三提供的一种编码测试的方法的流程图,图3B为本发明实施例三提供的编码测试过程的原理示意图。本实施例是在上述实施例的基础上进行优化。具体的,本实施例主要对于待测视频序列的调试过程和待测视频序列在基准编码模式和对标编码模式下编码性能差异的具体分析过程进行详细的解释说明。

  可选的,如图3A所示,本实施例可以包括如下步骤:

  S310,从待测编码模式库中筛选出基准编码模式和对标编码模式。

  可选的,待测编码模式库可以包括现有的各类视频编码标准及其该视频编码标准下的各项编码配置,每一视频编码标准或者该视频编码标准下的每一编码配置均可以作为一个编码模式,因此在为待测视频序列选取最优编码性能的编码模式时,首先需要从待测编码模式库中筛选出需要面向待测视频序列进行编码测试的基准编码模式和对标编码模式。

  S320,如果待测视频序列为非压缩格式,采用基准编码模式下的默认量化参数对待测视频序列进行编码,并将编码后码率作为待测视频序列标定的码率测试上限,否则,将待测视频序列压缩后的原始码率作为待测视频序列标定的码率测试上限。

  可选的,在判断待测视频序列标定的码率测试上限时,由于本实施例面向编码的待测视频序列通常是由某一客户端上报给后台服务器的视频,因此会携带一些原始的编码信息,此时可以参考待测视频序列的原始编码情况,直接将待测视频序列压缩后的原始码率作为待测视频序列标定的码率测试上限;但是,如果待测视频序列为非压缩格式,也就是之前未经过原始编码,那么本实施例可以先采用基准编码模式下的默认量化参数对待测视频序列进行初步的编码,该默认量化参数可以根据实际编码情况进行调整,进而将编码后码率作为待测视频序列标定的码率测试上限,从而确保码率测试上限的自适应性。

  例如,,如果待测视频序列是以颜色编码YUV格式保存的,则利用基准编码模式,以CQP配置下选取QP=22进行一次编码。

  S330,如果待测视频序列为压缩格式,将待测视频序列转换为非压缩格式,并按照编码尺寸下限设置待测视频序列的尺寸。

  可选的,由于在对待测视频序列进行编码测试时,要求待测视频序列为解封装后的视频帧集合,因此如果待测视频序列为压缩格式,则需要将该待测视频序列转换成非压缩格式,例如使用ffmpeg技术将待测视频序列转换为YUV格式。

  同时,考虑到待测视频序列在进行编码时所采用的编码单元的最小尺寸为8*8大小,为了避免待测视频序列在不符合尺寸下的编码误差,本实施例根据编码尺寸下限设置为8*8尺寸,还需要将待测视频序列的尺寸设置为编码尺寸下限的倍数,例如使用ffmpeg技术将待测视频序列转换为长和宽都是8的倍数的YUV格式,此时如果待测视频序列的原始长为width_org,原始宽为height_org,经过ffmpeg技术转换后的YUV图像长可以为(int)(width_org/8)*8,宽可以为(int)(height_org/8)*8。

  S340,根据待测视频序列标定的码率测试上限,确定基准编码模式下的第一测试点集合。

  S350,根据第一测试点集合所在的码率测试段,确定对标编码模式下的第二测试点集合。

  S360,分别采用基准编码模式下的第一测试点集合和对标编码模式下的第二测试点集合对待测视频序列进行编码。

  可选的,在确定出基准编码模式下的第一测试点集合和对标编码模式下的第二测试点集合之后,对于待测视频序列在基准编码模式和对标编码模式下的编码测试,首先会采用基准编码模式下的第一测试点集合内的每一测试点对待测视频序列进行编码,同时采用对标编码模式下的第二测试点集合内的每一测试点也对待测视频序列进行编码,后续分析基准编码模式和对标编码模式下每一测试点的视频编码质量,以便得到准确的编码测试结果。

  S370,采用预设的第三方编码评价工具分别生成待测视频序列在基准编码模式和对标编码模式下的率失真(Rate-Distortion,RD)曲线,并计算对应的编码性能偏差。

  可选的,在采用基准编码模式和对标编码模式下的每一测试点对待测视频序列进行编码后,会得到每一测试点下的码流,然后对每一码流进行解码后,采用预设的第三方编码评价工具将每一码流解码结果分别与原始的待测视频序列进行比对,从而计算每一测试点对应的视频编码质量,例如峰值信噪比(Peak Signal-to-Noise Ratio,PSNR)或者结构相似性(Structural SIMilarity,SSIM)等,避免不同编码模式在计算客观质量数据时使用的方法存在细节上的差异而影响编码测试结果的公平性;进而,分别参考基准编码模式和对标编码模式下的每一测试点的视频编码质量,在基准编码模式和对标编码模式下分别对第一测试点集合内每一测试点的视频编码质量和第二测试点集合内每一测试点的视频编码质量进行拟合,从而生成待测视频序列在基准编码模式和对标编码模式下的RD曲线,如图3C所示,然后根据基准编码模式和对标编码模式下的RD曲线之间的编码性能差异计算对应的BD-rate,作为本实施例中的编码性能偏差,以便后续基于该编码性能偏差确定对应的编码测试结果,从而保证编码测试的准确性。

  S380,基于编码性能偏差,确定对应的编码测试结果。

  可选的,基于计算得到的编码性能偏差(BD-rate),判断待测视频序列在基准编码模式和对标编码模式下的编码性能优化度,从而筛选出编码性能最优的编码模式作为对应的编码测试结果。

  本实施例提供的技术方案,通过对待测视频序列进行压缩格式判断和尺寸调整,保证待测视频序列的编码测试的自适应性,然后预先为待测视频序列标定对应的码率测试上限,并确定基准编码模式下的第一测试点集合,使得第一测试点集合内每一测试点对应的码率均低于该码率测试上限,同时按照第一测试点集合所在的码率测试段,来确定对标编码模式下的第二测试点集合,使得第一测试点集合与第二测试点集合内测试点对应的码率处于同一码率测试段内,也就是第二测试点集合内每一测试点对应的码率也低于该码率测试上限,并保证不同编码模式下所选用测试点对应的码率一致性,避免不同编码模式下所选用测试点处于不同码率测试段的情况,从而实现不同编码模式下编码性能的准确测试,提高编码测试性能的可靠性。

  实施例四

  图4为本发明实施例四提供的一种编码测试的装置的结构示意图,具体的,如图4所示,该装置可以包括:

  第一测试点确定模块410,用于根据待测视频序列标定的码率测试上限,确定基准编码模式下的第一测试点集合;

  第二测试点确定模块420,用于根据所述第一测试点集合所在的码率测试段,确定对标编码模式下的第二测试点集合;

  编码测试模块430,用于根据所述待测视频序列分别采用所述基准编码模式下的第一测试点集合和所述对标编码模式下的第二测试点集合编码后的编码性能差异,确定对应的编码测试结果。

  本实施例提供的技术方案,由于对于任一编码模式,随着视频编码码率的不断增加,最终均会接近无损的视频画质,使得不同编码模式在过高码率下的编码测试,并不能准确代表自身真实的编码性能,因此可以预先为待测视频序列标定对应的码率测试上限,并确定基准编码模式下的第一测试点集合,使得第一测试点集合内每一测试点对应的码率均低于该码率测试上限,同时按照第一测试点集合所在的码率测试段,来确定对标编码模式下的第二测试点集合,使得第一测试点集合与第二测试点集合内测试点对应的码率处于同一码率测试段内,也就是第二测试点集合内每一测试点对应的码率也低于该码率测试上限,并保证不同编码模式下所选用测试点对应的码率一致性,避免不同编码模式下所选用测试点处于不同码率测试段的情况,从而实现不同编码模式下编码性能的准确测试,提高编码测试性能的可靠性。

  本实施例提供的编码测试的装置可适用于上述任意实施例提供的编码测试的方法,具备相应的功能和有益效果。

  实施例五

  图5为本发明实施例五提供的一种服务器的结构示意图,如图5所示,该服务器包括处理器50、存储装置51和通信装置52;服务器中处理器50的数量可以是一个或多个,图5中以一个处理器50为例;服务器中的处理器50、存储装置51和通信装置52可以通过总线或其他方式连接,图5中以通过总线连接为例。

  本实施例提供的一种服务器可用于执行上述任意实施例提供的编码测试的方法,具备相应的功能和有益效果。

  实施例六

  本发明实施例六还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可实现上述任意实施例中的编码测试的方法。该方法具体可以包括:

  根据待测视频序列标定的码率测试上限,确定基准编码模式下的第一测试点集合;

  根据所述第一测试点集合所在的码率测试段,确定对标编码模式下的第二测试点集合;

  根据所述待测视频序列分别采用所述基准编码模式下的第一测试点集合和所述对标编码模式下的第二测试点集合编码后的编码性能差异,确定对应的编码测试结果。

  当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的编码测试的方法中的相关操作。

  通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

  值得注意的是,上述编码测试的装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

  以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

《一种编码测试的方法、装置、服务器和存储介质.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)