CN118317090A - 媒体数据编码方法、用于调节编码参数的方法、装置、设备、存储介质及程序产品 - Google Patents
媒体数据编码方法、用于调节编码参数的方法、装置、设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN118317090A CN118317090A CN202410542579.8A CN202410542579A CN118317090A CN 118317090 A CN118317090 A CN 118317090A CN 202410542579 A CN202410542579 A CN 202410542579A CN 118317090 A CN118317090 A CN 118317090A
- Authority
- CN
- China
- Prior art keywords
- parameter
- coding
- encoding
- value
- parameters
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 160
- 238000003860 storage Methods 0.000 title claims abstract description 35
- 238000012545 processing Methods 0.000 claims description 161
- 230000008569 process Effects 0.000 claims description 57
- 230000001133 acceleration Effects 0.000 claims description 39
- 238000004590 computer program Methods 0.000 claims description 15
- 238000004891 communication Methods 0.000 claims description 13
- 230000008859 change Effects 0.000 claims description 5
- 238000003672 processing method Methods 0.000 claims 1
- 238000005457 optimization Methods 0.000 description 459
- 238000004422 calculation algorithm Methods 0.000 description 58
- 230000035945 sensitivity Effects 0.000 description 33
- 238000013441 quality evaluation Methods 0.000 description 18
- 238000012216 screening Methods 0.000 description 18
- 238000011161 development Methods 0.000 description 13
- 230000001105 regulatory effect Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000033228 biological regulation Effects 0.000 description 5
- 230000006872 improvement Effects 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000001303 quality assessment method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请实施例公开了媒体数据编码方法、用于调节编码参数的方法、装置、设备、存储介质及程序产品。媒体数据编码方法包括:接收编码任务,编码任务包括媒体数据和编码需求;将媒体数据和编码需求输入至调参后的编码器中,通过调参后的编码器确定与编码需求匹配的编码档位;采用调参后的编码器中的多个编码参数在编码档位下的档位参数值,对媒体数据进行编码处理,得到编码后的媒体数据,多个编码参数中的至少一个编码参数在编码档位下的档位参数值是基于多个编码参数的层级进行调节的。采用本申请实施例能够自适应满足编码需求。
Description
技术领域
本申请涉及计算机应用技术领域,尤其涉及媒体数据编码方法、用于调节编码参数的方法、装置、设备、存储介质及程序产品。
背景技术
编码器指的是对媒体数据进行压缩的程序或者设备。由于不同业务场景下的编码需求不同,例如对于短视频业务场景,编码需求是在提升编码速度的同时,尽可能减少编码质量的损失;又如对于在线医疗业务场景,编码需求是在提升编码质量的同时,尽可能减少编码时间的增加。因此编码器通常会设置不同的编码档位,以增加编码器的适用范围。编码器在不同编码档位下的编码参数的参数值不同,实现的编码需求也就不同。
如果编码器能够满足不同业务场景下的编码需求,那么该编码器的适用范围是较广的。因此,如何满足不同编码需求,是目前亟需解决的技术问题。
发明内容
本申请实施例提供媒体数据编码方法、用于调节编码参数的方法、装置、设备、存储介质及程序产品,能够自适应满足编码需求。
一方面,本申请实施例提供了一种媒体数据编码方法,该方法包括:
接收编码任务,所述编码任务包括媒体数据和编码需求;
将所述媒体数据和编码需求输入至调参后的编码器中,通过所述调参后的编码器确定与所述编码需求匹配的编码档位;
采用所述调参后的编码器中的多个编码参数在所述编码档位下的档位参数值,对所述媒体数据进行编码处理,得到编码后的媒体数据;
其中,所述多个编码参数中的至少一个编码参数在所述编码档位下的档位参数值是基于所述多个编码参数的层级进行调节的。
另一方面,本申请实施例提供了一种用于调节编码参数的方法,该方法包括:
接收针对编码器的调参任务,所述调参任务包括调参对象;
基于所述调参对象,在所述编码器中确定待调节的编码参数集合,所述编码参数集合包括至少一个编码参数,所述至少一个编码参数具有层级;
基于所述至少一个编码参数的层级,对所述至少一个编码参数进行调节。
在一个实施例中,所述基于所述至少一个编码参数的层级,对所述至少一个编码参数进行调节,包括:
针对所述编码参数集合中预设层级的目标编码参数,若所述目标编码参数存在性能满足调参要求的参数值,则暂停对所述目标编码参数的下一层级的编码参数进行调节;
若所述目标编码参数不存在满足调参要求的参数值,则对所述目标编码参数的下一层级的编码参数进行调节。
在一个实施例中,所述基于所述至少一个编码参数的层级,对所述至少一个编码参数进行调节,包括:
针对所述编码参数集合中预设层级的目标编码参数,若所述目标编码参数存在性能满足调参要求的参数值,或者所述编码参数集合中的每个第一编码参数均已确定是否存在性能满足调参要求的参数值,则对所述目标编码参数的上一层级的编码参数进行调节;
其中,所述第一编码参数的层级为所述预设层级。
在一个实施例中,所述编码参数集合中任一编码参数的调节方式包括:
按照所述任一编码参数的调节步长在所述任一编码参数的取值范围内进行搜索,以得到至少一个候选取值;
以每个候选取值执行编码过程,得到所述每个候选取值对应的性能;
从所述至少一个候选取值中选择编码指标满足调参要求的候选取值,并将选择的候选取值作为所述任一编码参数的候选取值;
基于所述编码参数集合中至少一个第二编码参数的候选取值,确定每个第二编码参数的目标参数值,所述至少一个第二编码参数包括所述任一编码参数,所述每个第二编码参数的层级相同。
在一个实施例中,所述基于所述编码参数集合中至少一个第二编码参数的候选取值,确定每个第二编码参数的目标参数值,包括:
将所述每个第二编码参数的每个候选取值进行组合,得到至少一个取值组合;
以每个取值组合执行编码过程,得到所述每个取值组合对应的性能;
从所述至少一个取值组合中选择性能满足调参要求的取值组合,并将选择的取值组合中的候选取值作为相应第二编码参数的目标参数值。
在一个实施例中,所述基于所述编码参数集合中至少一个第二编码参数的候选取值,确定每个第二编码参数的目标参数值,包括:
将所述编码参数集合中每个编码参数的每个候选取值进行组合,得到至少一个取值组合;
以每个取值组合执行编码过程,得到所述每个取值组合对应的性能;
从所述至少一个取值组合中选择性能满足调参要求的取值组合,并将选择的取值组合中的候选取值作为相应编码参数的目标参数值。
在一个实施例中,所述方法还包括:
获取预先配置的所述任一编码参数的取值范围;或者,
基于所述任一编码参数在目标编码档位的相邻编码档位下的档位参数值,确定所述任一编码参数在所述目标编码档位的取值范围,所述档位参数值随编码档位呈单调趋势变化。
在一个实施例中,所述按照所述任一编码参数的调节步长在所述任一编码参数的取值范围内进行搜索,以得到至少一个候选取值,包括:
根据调参要求确定搜索方向;
按照所述搜索方向和所述任一编码参数的调节步长在所述任一编码参数的取值范围内进行搜索,以得到至少一个候选取值。
在一个实施例中,所述编码参数集合中任一编码参数的调节方式,还包括:
若所述至少一个候选取值中不存在性能满足调参要求的候选取值,则减小所述调节步长;
按照减小后的调节步长重新从所述任一编码参数的参数值范围中选取新的候选取值,并从新的候选取值中选择性能满足调参要求的候选取值,并将选择的候选取值作为所述任一编码参数的候选取值。
在一个实施例中,所述方法还包括:
根据所述编码器的编码流程中的每个执行步骤的从属关系,确定所述每个执行步骤所关联的编码参数的层级。
在一个实施例中,所述调参对象包括目标编码模块、目标编码档位或者目标编码模式;
调参要求包括调参目标和加速比。
另一方面,本申请实施例提供了一种编码器的处理装置,该编码器的处理装置包括:
接收单元,用于接收编码任务,所述编码任务包括媒体数据和编码需求;
处理单元,用于将所述媒体数据和编码需求输入至调参后的编码器中,通过所述调参后的编码器确定与所述编码需求匹配的编码档位;采用所述调参后的编码器中的多个编码参数在所述编码档位下的档位参数值,对所述媒体数据进行编码处理,得到编码后的媒体数据;其中,所述多个编码参数中的至少一个编码参数在所述编码档位下的档位参数值是基于所述多个编码参数的层级进行调节的。
另一方面,本申请实施例提供了一种用于调节编码参数的装置,该用于调节编码参数的装置包括:
接收单元,用于接收针对编码器的调参任务,所述调参任务包括调参对象;
处理单元,用于基于所述调参对象,在所述编码器中确定待调节的编码参数集合,所述编码参数集合包括至少一个编码参数,所述至少一个编码参数具有层级;基于所述至少一个编码参数的层级,对所述至少一个编码参数进行调节。
另一方面,本申请实施例提供一种计算机设备,包括处理器、存储装置和通信接口,处理器、存储装置和通信接口相互连接,其中,存储装置用于存储支持计算机设备执行上述方法的计算机程序,计算机程序包括程序指令,处理器被配置用于调用程序指令,执行如下步骤:
接收编码任务,所述编码任务包括媒体数据和编码需求;
将所述媒体数据和编码需求输入至调参后的编码器中,通过所述调参后的编码器确定与所述编码需求匹配的编码档位;
采用所述调参后的编码器中的多个编码参数在所述编码档位下的档位参数值,对所述媒体数据进行编码处理,得到编码后的媒体数据;
其中,所述多个编码参数中的至少一个编码参数在所述编码档位下的档位参数值是基于所述多个编码参数的层级进行调节的。
另一方面,本申请实施例提供一种计算机设备,包括处理器、存储装置和通信接口,处理器、存储装置和通信接口相互连接,其中,存储装置用于存储支持计算机设备执行上述方法的计算机程序,计算机程序包括程序指令,处理器被配置用于调用程序指令,执行如下步骤:
接收针对编码器的调参任务,所述调参任务包括调参对象;
基于所述调参对象,在所述编码器中确定待调节的编码参数集合,所述编码参数集合包括至少一个编码参数,所述至少一个编码参数具有层级;
基于所述至少一个编码参数的层级,对所述至少一个编码参数进行调节。
另一方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时使处理器执行上述媒体数据编码方法或者用于调节编码参数的方法。
另一方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序适于由处理器加载并执行上述媒体数据编码方法或者用于调节编码参数的方法。
本申请实施例中,由于调参后的编码器中的至少一个编码参数在任一编码档位下的档位参数值是基于多个编码参数的层级进行调节的,因此调参后的编码器的编码性能更优。基于此,在接收到编码任务之后,可以将媒体数据和编码需求输入至调参后的编码器中,通过调参后的编码器确定与编码需求匹配的编码档位,采用调参后的编码器中的多个编码参数在编码档位下的档位参数值,对媒体数据进行编码处理,得到编码后的媒体数据,由于不同编码档位能够实现不同编码性能,与上述编码需求匹配的编码档位能够满足其编码需求,即与上述编码需求匹配的编码档位所实现的编码性能与上述编码需求是适配的,因此本申请实施例能够自适应满足编码需求。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的编码器的编码算法的示意图;
图2是本申请实施例提供的一种用于调节编码参数的方法的流程示意图;
图3是本申请实施例提供的另一种用于调节编码参数的方法的流程示意图;
图4是本申请实施例提供的另一种用于调节编码参数的方法的流程示意图;
图5是本申请实施例提供的另一种用于调节编码参数的方法的流程示意图;
图6是本申请实施例提供的另一种用于调节编码参数的方法的流程示意图;
图7是本申请实施例提供的另一种用于调节编码参数的方法的流程示意图;
图8是本申请实施例提供的一种媒体数据编码方法的流程示意图;
图9是本申请实施例提供的一种媒体数据编码装置的结构示意图;
图10是本申请实施例提供的一种用于调节编码参数的装置的结构示意图;
图11是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供的用于调节编码参数的方法可以灵活地实现针对编码器在多个业务场景下的编码参数优化。其中,所涉及的编码器可以包括视频编码器、图像编码器、音视频编码器、音频编码器或者文本编码器等。示例性的,业务场景可以包括直播、短视频、虚拟终端、云游戏、协同办公、在线医疗、在线教育、工业制造、智能机器人、智能家居、无人机、广电视频或者虚拟现实/增强现实(Virtual Reality/Augmented Reality,VR/AR)等。
在各类编码器中,视频编码器的应用较为广泛,以编码器为视频编码器为例,视频编码器指的是对视频进行压缩的程序或者设备,不同业务场景对视频编码器的编码质量(即编码效率)和时延(即编码速度)的需求不同,例如对于短视频业务场景,视频编码器的编码需求是在提升编码速度的同时,尽可能减少编码质量的损失;又如对于在线医疗业务场景,视频编码器的编码需求是在提升编码质量的同时,尽可能减少编码时间的增加。基于此,可以在视频编码器中设置不同的编码模式以及编码档位(preset),以增加视频编码器的适用范围。编码模式和/或编码档位的不同,可以简单理解为编码参数的参数值不同,即视频编码器在不同编码模式或者编码档位下的编码参数的参数值不同,实现的编码指标也就不同。因此,可以通过对视频编码器中的编码参数进行优化,以实现对视频编码器的开发。
再以编码器为图像编码器为例,图像编码器指的是对图像进行压缩的程序或者设备,不同业务场景对图像编码器的编码质量和时延的需求不同,例如对于协调办公业务场景,图像编码器的编码需求是在提升编码速度的同时,尽可能减少编码质量的损失;又如对于在线医疗业务场景,图像编码器的编码需求是在提升编码质量的同时,尽可能减少编码时间的增加。基于此,可以在图像编码器中设置不同的编码模式以及编码档位,以增加图像编码器的适用范围。编码模式和/或编码档位的不同,可以简单理解为编码参数的参数值不同,即图像编码器在不同编码模式或者编码档位下的编码参数的参数值不同,实现的编码指标也就不同。因此,可以通过对图像编码器中的编码参数进行优化,以实现对图像编码器的开发。
针对视频编码器、图像编码器等编码器而言,本申请实施例提供一种用于调节编码参数的方法,可以接收针对编码器的调参任务,调参任务包括调参对象。然后,可以基于调参对象,在编码器中确定待调节的编码参数集合,编码参数集合包括至少一个编码参数,至少一个编码参数具有层级,进而基于至少一个编码参数的层级,对至少一个编码参数进行调节。由此可见,在指定了编码对象的情况下,本申请实施例可以实现对指定的编码对象的自动参数调优,能够更灵活地完成编码器的编码参数的配置、优化,减少编码器开发过程中针对不同业务场景布局编码器的工程调优的次数,提高编码参数的优化效率。
其中,调参对象可以指示优化任务类型,例如单编码模块优化类型、单编码档位优化类型、多编码档位优化类型、单编码模式优化类型或者多编码模式优化类型等。也就是说,调参对象可以包括目标编码模块、目标编码档位或者目标编码模式。在调参对象包括目标编码模块的情况下,可以表明优化任务类型为单编码模块优化类型,目标编码模块可以指的是编码器中的一个编码模块。在调参对象包括目标编码档位的情况下,可以表明优化任务类型为单编码档位优化类型或者多编码档位优化类型,目标编码档位可以指的是编码器中的一个编码档位。在调参对象包括目标编码模式的情况下,可以表明优化任务类型为单编码模式优化类型或者多编码模式优化类型,目标编码模式可以指的是编码器中的一个编码模式。
基于上述用于调节编码参数的方法,本申请实施例还提供一种媒体数据编码方法,可以接收编码任务,编码任务包括媒体数据和编码需求。还可以将媒体数据和编码需求输入至调参后的编码器中,通过调参后的编码器确定与编码需求匹配的编码档位,然后采用调参后的编码器中的多个编码参数在编码档位下的档位参数值,对媒体数据进行编码处理,得到编码后的媒体数据。其中,多个编码参数中的至少一个编码参数在所述编码档位下的档位参数值是基于多个编码参数的层级进行调节的。
在该实施例中,由于调参后的编码器中的至少一个编码参数在任一编码档位下的档位参数值是基于多个编码参数的层级进行调节的,因此调参后的编码器的编码性能更优。基于此,在接收到编码任务之后,可以将媒体数据和编码需求输入至调参后的编码器中,通过调参后的编码器确定与编码需求匹配的编码档位,采用调参后的编码器中的多个编码参数在编码档位下的档位参数值,对媒体数据进行编码处理,得到编码后的媒体数据,由于不同编码档位能够实现不同编码性能,与上述编码需求匹配的编码档位能够满足其编码需求,即与上述编码需求匹配的编码档位所实现的编码性能与上述编码需求是适配的,因此本申请实施例能够自适应满足编码需求。
其中,媒体数据可以包括图像、文本、视频、音频等一种或者多种的组合。如果该编码器为视频编码器,那么输入至该编码器中的媒体数据可以包括视频、音视频或者图像等媒体数据。如果该编码器为图像编码器,那么输入至该编码器中的媒体数据可以包括图像等媒体数据。
其中,编码需求可以包括编码质量需求,编码速度需求中的一个或者多个。
下面对本申请实施例涉及的加速比、编码档位、编码模式以及层级等技术名词进行相关解释。
1、加速比
在对编码器的开发过程中,或者对编码器在至少一个业务场景下的工程调优过程中,编码需求可以是提升编码速度,或者提升编码效率,或者提升编码速度和编码效率。
提升编码速度在技术上的要求是:尽可能在提升编码速度的同时,不损伤视频编码质量。提升编码效率在技术上的要求是:尽可能在提升编码质量的同时,不增加太多的编码时间。
因此给出了加速比(tradeoff)这一概念,加速比是用于衡量编码速度和编码效率的物理量,加速比的确定方式可以如下述公式所示。
在一个可能的实施方式中,ratio可以表示加速比。在编码需求为提升编码速度率的情况下,speed up可以表示编码参数优化后得到的编码算法相比编码参数优化前的编码算法所节省的时间,encode quality可以表示编码参数优化后得到的编码算法相比编码参数优化前的编码算法造成的编码质量的损失。举例来讲,如果加速比为10:1,那么该加速比可以用于表征:每提升10%的编码速度,允许编码性能的损失(即编码质量的损失)小于1%。
在编码需求为提升编码效率的情况下,上述公式中的encode quality可以表示编码参数优化后得到的编码算法相比编码参数优化前的编码算法造成的编码质量的提升,speed up可以表示编码参数优化后得到的编码算法相比编码参数优化前的编码算法额外消耗的时间。举例来讲,如果加速比为10:1,那么该加速比可以用于表征:每提升1%的编码性能,至多允许增加10%的编码时间。
2、编码档位
编码档位用于权衡编码速度和编码效率(即编码质量)。以开源编码器x265为例,开源编码器x265的编码档位有下述表1中的0到9这10个档位,编码档位越低,编码速度越快,但编码效率越低;编码档位越高,编码效率越高,但编码速度越慢。
表1开源编码器x265的编码档位
在表1中,编码器的编码参数至少可以包括ctu、min-cu-size、bframes、b-adapt、rc-lookahead、lookahead-slices、scenecut、ref以及me等,表1给出了开源编码器x265在不同编码档位下,上述编码参数可以设置不同参数值。
在编码器开发等场景中,可以依据业务场景的实际需求为不同的编码档位设置加速比,该加速比可以作为对应编码档位下的编码算法的评价指标。举例来讲,假设对编码档位1设置的加速比为20:1,编码档位1的编码需求是提升编码速度,那么将加速比20:1作为编码档位1下的编码算法的评价指标可以理解为:只有通过编码算法得到的加速比大于或者等于20:1,才会将该编码算法确定为编码档位1下的编码算法。假设对编码档位8设置的加速比为20:1,编码档位8的编码需求是提升编码效率,那么将加速比20:1作为编码档位8下的编码算法的评价指标可以理解为:只有通过编码算法得到的加速比小于或者等于20:1,才会将该编码算法确定为编码档位8下的编码算法。
3、编码模式
针对不同的用于表征编码质量的编码质量参数、业务数据或者业务场景,编码器可以设置至少一种调谐模式(tune mode),即编码模式。以开源编码器x265为例,一共定义了7种编码模式,包括1种默认编码模式和如下表2列出的6种编码模式。
表2编码模式
-tune | Effect(影响) |
psnr | disables adaptive quant,psy-rd,and cutree |
ssim | enables adaptive quant auto-mode,psy-rdm |
grain | Improves retention of film grain,more below |
fastdecode | no loop filters,no weighted pred,no intra in B |
zerolatency | no lookahead,no B frames,no cutree |
animation | Improves encode quality for animated content |
如表2所示,编码模式可以包括峰值信噪比(Peak Signal-to-Noise Ratio,psnr)、结构相似性(Structural SIMilarity,ssim)、grain(可以理解为一种噪声)、fastdecode(指的是可以快速解码的参数)、zerolatency(零延迟,用在需要非常低的延迟的情况下,比如电视电话会议的编码)以及animation(动画)等。表2还给出了在不同编码模式下的影响(effect),例如在编码模式psnr下的影响为禁用自适应quant、psy-rd和cutree(即disables adaptive quant,psy-rd,and cutree)。
在一个可能的实施方式中,不同编码模式关注的图像质量评价指标不同,图像质量评价指标可以用于计算编码指标,例如加速比。举例来说,假设编码模式psnr关注的图像质量评价指标为psnr,则在编码模式psnr下的加速比的计算方式可以为:编码速度/psnr。在一个可能的实施方式中,可以将某个媒体数据输入至编码器,控制编码器在该编码模式下对该媒体数据进行编码,得到此次编码过程的编码速度和psnr,将该编码速度和psnr的比值作为该编码模式对应的加速比。又如,默认编码模式关注的图像质量评价指标可以包括psnr、ssim以及视频质量的多方法融合评价(Video Multi-method Assessment Fusion,vmaf)。
可选的,编码器还允许编码模式和编码档位组合,以增加编码器的适用范围。任一编码档位下可以存在至少一个编码模式。在任一编码档位下的每个编码模式的加速比的计算方式可以相同,也可以不同。在一个可能的实施方式中,当一个编码模式对应有多个图像质量评价指标的情况下,可以以多个图像质量评价指标各自对应的加速比来确定该编码模式下的加速比,例如根据多个图像质量评价指标各自对应的加速比求平均值来得到该编码模式下的加速比,以编码模式ssim为例,编码模式ssim关注的图像质量评价指标可以包括psnr、ssim以及vmaf,可以使用图像质量评价指标psnr和编码速度计算得到第一加速比,使用图像质量评价指标ssim和编码速度计算得到第二加速比,使用图像质量评价指标vmaf和编码速度计算得到第三加速比,将第一加速比、第二加速比以及第三加速比进行平均运算得到编码模式ssim对应的加速比。以编码模式fastdecode为例,解码时间也会计入加速比的计算,即编码模式fastdecode在计算加速比时,编码速度是由编码时间和解码时间确定的。
4、层级
编码器中的每个编码参数具有相应的层级。可以预先对编码器中的每个编码参数的层级进行设置,即根据编码器的编码流程中的每个执行步骤的从属关系,确定每个执行步骤所涉及的编码参数的层级。也就是说,层级用于指示对应待调节编码参数在编码器的编码流程中被使用的执行步骤的从属关系。
以图1所示的编码器的编码算法的示意图为例,编码器的编码算法可以包括算法A以及算法B,可以通过算法A实现编码,也可以跳过算法A,通过算法B实现编码。另外,算法A的处理过程至少包括第1步和第2步,第1步的处理过程具体可以包括三个子步骤,分别为第1步子步骤1,第1步子步骤2以及第1步子步骤3。算法A涉及的编码参数至少可以包括编码参数A0、编码参数A1、编码参数A2、编码参数A1-1、编码参数A1-2以及编码参数A1-3。在一个可能的实施方式中,编码参数A0在算法A开始执行的时候被使用,即编码参数A0被使用的使用顺序是最早的,那么编码参数A0的层级最高,即编码参数A0的层级为第一层级,如表3所示,第一层级可以用“0”表示。由于算法A的执行步骤至少包括第1步和第2步,第1步涉及的编码参数包括编码参数A1,第2步涉及的编码参数包括编码参数A2,因此编码参数A1以及编码参数A2的层级仅次于编码参数A0的层级,即编码参数A1以及编码参数A2的层级为第二层级,如表3所示,第二层级可以用“1”表示。同理,第1步包括第1步子步骤1,第1步子步骤2以及第1步子步骤3,第1步子步骤1涉及的编码参数包括编码参数A1-1,第1步子步骤2涉及的编码参数包括编码参数A1-2,第1步子步骤3涉及的编码参数包括编码参数A1-3,因此编码参数A1-1、编码参数A1-2以及编码参数A1-3为编码参数A1的下一级编码参数,即编码参数A1-1、编码参数A1-2以及编码参数A1-3的层级仅次于编码参数A1的层级,即编码参数A1-1、编码参数A1-2以及编码参数A1-3的层级为第三层级,如表3所示,第二层级可以用“2”表示。由于编码参数B0在算法A开始执行的时候被使用,即编码参数B0被使用的使用顺序是最早的,那么编码参数B0的层级最高,即编码参数B0的层级为第一层级,如表3所示,第一层级可以用“0”表示。
以下对本申请实施例提供的用于调节编码参数的方法进行描述,该用于调节编码参数的方法可以应用在编码器中,而编码器可以运行在客户端、服务器或者计算机设备中。客户端或者服务器可以包括视频播放器、图像编码插件等,客户端或者服务器可以安装或者集成在内容发布平台或者浏览器中,内容发布平台或者浏览器可以运行在计算机设备中。计算机设备包括但不限定于智能手机、相机、可穿戴设备、车载设备或者个人电脑等。
在本申请的具体实施方式中,涉及到用户相关的数据,例如视频或者图像等,当本申请实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守当地法律法规和标准。
基于上述描述,请参见图2,图2是本申请实施例提供的一种用于调节编码参数的方法的流程示意图,该用于调节编码参数的方法可以由编码器、客户端、服务器或者计算机设备执行;如图2所示的用于调节编码参数的方法包括但不限于步骤S201~S203,其中:
S201,接收针对编码器的调参任务,调参任务包括调参对象。
在一个示例中,在编码器开发等场景中,如果用户想要对某个调参对象进行编码参数调优,那么用户可以输入调参对象。基于此,本申请实施例可以响应用户的输入操作,获取编码器的调参任务,调参任务可以包括用户输入的调参对象,进一步执行下述步骤S202以及步骤S203。
在另一个示例中,可以响应用户的输入操作,生成编码器的调参任务,并将该调参任务存储至该编码器的缓存队列中。在满足调参任务的读取条件时,可以从缓存队列中获取该调参任务,进一步执行下述步骤S202以及步骤S203。
在一个可能的实施方式中,调参对象可以指示优化任务类型。优化任务类型指的是优化任务的任务类型,例如单编码模块优化类型、单编码档位优化类型、多编码档位优化类型、单编码模式优化类型或者多编码模式优化类型等。下面分别对上述五种优化任务类型进行相关描述。
在单编码模块优化类型下,可以对编码器中的一个编码模块进行算法优化,即对该一个编码模块相关的编码参数进行优化,该一个编码模块相关的编码参数可以指该编码模块在编码过程中所使用的编码参数,和/或对该编码模块的编码过程有影响的编码参数。
在单编码档位优化类型下,可以对编码器中的一个编码档位进行算法优化,即对该编码档位下的编码参数进行优化。
在多编码档位优化类型下,可以对编码器中的一个编码档位进行算法优化的过程中,使用编码参数在该编码档位相邻的编码档位下的缺省参数值,确定该编码参数在该编码档位下的参数值范围。
在单编码模式优化类型下,可以对编码器中的一个编码模式进行算法优化,即按照该编码模式对应的编码指标获取算法,获取编码器在该编码模式下的候选参数值的设定下对应的编码指标,并基于编码指标满足调参要求的参数值,对该编码模式下的编码参数进行优化。可选的,编码指标获取算法描述的是编码质量的确定方式以及编码速度的确定方式,编码质量可以通过一个或者多个编码质量评价指标衡量,编码速度可以通过编码时间,或者编码时间和解码时间衡量。不同编码模式的编码质量的确定方式和/或编码速度的确定方式不同,不同编码模式对应的编码指标获取算法也就不同,按照不同编码模式对应的编码指标获取算法获取到的编码指标也就不同。
在多编码模式优化类型下,可以对编码器中的默认编码模式进行算法优化,由于默认编码模式关注的编码质量评价指标为多个,因此可以按照该编码模式对应的多个编码指标获取算法,获取编码器在该编码模式下的候选参数值的设定下对应的多个编码指标,并基于多个编码指标均满足调参要求的参数值,对该编码模式下的编码参数进行优化。可选的,默认编码模式关注的多个编码质量评价指标可以包括psnr、ssim以及vmaf。
可选的,调参任务还可以包括调参要求,调参要求可以包括调参目标和加速比。调参要求中的加速比,即预期加速比,指的是此次优化任务预期要达到的加速比,调参目标可以是提升编码速度,或者提升编码效率,或者提升编码速度和编码效率。举例来说,假设调参目标为提升编码速度,预期加速比为20:1,那么该预期加速比可以用于表征:每提升20%的编码速度,允许编码性能的损失(即编码质量的损失)小于1%。假设调参目标为提升编码效率,预期加速比为20:1,那么该预期加速比可以用于表征:每提升1%的编码性能,至多允许增加20%的编码时间。
S202,基于调参对象,在编码器中确定待调节的编码参数集合,编码参数集合包括至少一个编码参数,至少一个编码参数具有层级。
不同调参对象所确定的待调节的编码参数集合是不同的,例如由于不同优化任务类型下待调节的编码参数可以是不同的,另外,为了满足不同调参要求,待调节的编码参数也可以是不同的。相对于对编码器中的所有编码参数进行优化,本申请实施例可以在一定程度上减少编码参数搜索空间,提高编码参数的优化效率。
可选的,可以在编码器中搜索与优化任务类型相关的至少一个编码参数,获取每个编码参数对调参要求的敏感度,按照每个编码参数对调参要求的敏感度,从至少一个编码参数中筛选出待调节编码参数。可选的,待调节编码参数对调参要求的敏感度高于其他编码参数对调参要求的敏感度,其他编码参数是指至少一个编码参数中除待调节编码参数之外的其余编码参数。
进一步可选的,每个编码参数对不同编码指标的敏感度可以是研发人员根据先验的编码器开发经验预先设置好的,每个编码参数对不同编码指标的敏感度可以存储在预设存储区间。因此,在获取到优化任务类型和调参要求之后,可以从预设存储区间查找与优化任务类型相关的至少一个编码参数中的每个编码参数对调参要求的敏感度。
在该实施例中,编码参数对调参要求的敏感度越高,表明该编码参数的优化对于实现该调参要求的影响也就越大,那么为了满足该调参要求,可以对敏感度较高的编码参数进行优化;反之,编码参数对调参要求的敏感度越低,表明该编码参数是否优化对于实现该调参要求的影响也就越小,那么为了提高编码参数的优化效率,可以不对敏感度较低的编码参数进行优化。基于此,在搜索到与优化任务类型相关的至少一个编码参数之后,可以将搜索到的至少一个编码参数中对调参要求的敏感度较高的编码参数确定为待调节编码参数。对调参要求的敏感度较高的编码参数可以理解为:对调参要求的敏感度高于预设阈值的编码参数,或者按照至少一个编码参数中每个编码参数对调参要求的敏感度从高到低的顺序进行排序,前h个编码参数即对调参要求的敏感度较高的编码参数。
在一个可能的实施方式中,与优化任务类型相关的至少一个编码参数,可以理解为该优化任务类型对应的优化任务在执行过程中所使用的编码参数,和/或对该优化任务类型对应的优化任务有影响的编码参数。
S203,基于至少一个编码参数的层级,对至少一个编码参数进行调节。
可选的,可以预先建立不同优化任务类型对应的优化规则,优化规则用于指示对待调节编码参数的优化方式,以实现对应优化任务类型对应的优化任务。基于此,在获取到优化任务信息之后,可以查找优化任务信息包含的优化任务类型对应的优化规则,查找到的优化规则即在优化任务类型下待调节编码参数的优化规则。
在一个示例中,假设预先建立的单编码模块优化类型对应的优化规则为:对待调节编码参数进行单独优化处理之后再组合优化处理。如果获取到优化任务信息所包含的优化任务类型为单编码模块优化类型,那么可以确定在该优化任务类型下待调节编码参数的优化规则为对待调节编码参数进行单独优化处理之后再组合优化处理。
在另一个示例中,建立的多编码档位优化类型对应的优化规则为:按照待调节编码参数的调节步长在该待调节编码参数的参数值范围内选取至少一个候选参数值,从至少一个候选参数值中筛选出满足调参要求的目标参数值,以对该待调节编码参数进行优化处理。如果获取到优化任务信息所包含的优化任务类型为:多编码档位优化类型,那么可以确定在该优化任务类型下待调节编码参数的优化规则为按照待调节编码参数的调节步长在该待调节编码参数的参数值范围内选取至少一个候选参数值,从至少一个候选参数值中筛选出满足调参要求的目标参数值,以对该待调节编码参数进行优化处理。
进一步可选的,一个优化任务类型可以对应多个优化规则,这多个优化规则的精细程度不同,也就是说,这多个优化规则的粒度不同,可以根据优化任务类型以及优化任务的需求信息(例如针对时效性的相关需求信息),来从该优化任务类型对应的多个优化规则中选择目标优化规则。如果获取到优化任务信息所包含的优化任务类型为单编码模块优化类型,那么可以查找该优化任务类型对应的多个优化规则,然后从查找到的多个优化规则中选取与该优化任务类型对应的优化任务匹配的精细程度对应的优化规则。
示例性的,假设预先建立的单编码模块优化类型对应的优化规则包括了第一优化规则、第二优化规则和第三优化规则,例如第一优化规则为:对待调节编码参数进行单独优化处理之后再组合优化处理。第二优化规则为:对待调节编码参数进行单独优化处理之后再组合优化处理,且在对待调节编码参数进行单独优化过程中,如果该待调节编码参数按照该待调节编码参数的调节步长在该待调节编码参数的参数值范围内没有找到满足调参要求的目标参数值,就可以减小调节步长,按照减小后的调节步长重新从该待调节编码参数的参数值范围中选取新的候选参数值,并从新的候选参数值中筛选出满足调参要求的目标参数值,以确定该待调节编码参数的单独优化处理结果。第三优化规则为:按照层级由高至低的顺序对待调节编码参数进行优化处理,如果按照某个等级的待调节编码参数的每个候选参数值执行编码处理后均不满足调参要求,就可以按照层级获取该待调节编码参数的下一级编码参数,并对该待调节编码参数的下一级编码参数进行优化处理;如果按照某个等级的待调节编码参数执行编码处理后存在满足调参要求的目标参数值,则可以不执行对该待调节编码参数的下一级编码参数的优化处。由此可知,第三优化规则的精细程度大于第二优化规则,第二优化规则的精细程度大于第一优化规则。
如果在对编码器开发过程中,确定此次优化任务适用于直播业务场景,优化任务类型是单编码模块优化类型,那么可以查找到该优化任务类型对应的多个优化规则,即第一优化规则,第二优化规则以及第三优化规则。由于直播业务场景对时效性的需求较高,因此与直播业务场景匹配的精细程度的要求较低,那么可以将第一优化规则确定为在优化任务类型下待调节编码参数的优化规则。
可选的,在相应的优化规则下,可以针对待调节编码参数中的每一个参数分别进行优化,例如逐步增大待调节编码参数的值,或者逐步减小待调节编码参数的值,以确定在按照变化前后的待调节编码参数进行编码处理之后的加速比是否满足调参要求所指示的加速比。
在一个可能的实施方式中,编码参数集合中任一编码参数的调节方式包括:按照任一编码参数的调节步长在任一编码参数的取值范围内进行搜索,以得到至少一个候选取值;以每个候选取值执行编码过程,得到每个候选取值对应的性能;从至少一个候选取值中选择编码指标满足调参要求的候选取值,并将选择的候选取值作为任一编码参数的候选取值;基于编码参数集合中至少一个第二编码参数的候选取值,确定每个第二编码参数的目标参数值,至少一个第二编码参数包括任一编码参数,每个第二编码参数的层级相同。该实施例可以对编码参数集合中某个层级的编码参数进行单独优化处理。
如果待调节编码参数的数量为1,优化规则包括第一待调节编码参数在进行优化处理过程中的调节步长,那么在调参要求的约束下,按照优化规则对待调节编码参数进行优化处理的方式可以包括:获取待调节编码参数的参考参数值,以及待调节编码参数的参数值范围;按照调节步长从待调节编码参数的参数值范围中选取至少一个候选参数值;从至少一个候选参数值中筛选出满足调参要求的目标参数值;将待调节编码参数的参数值更新为目标参数值。
在一个可能的实施方式中,可以将每个第二编码参数的每个候选取值进行组合,得到至少一个取值组合;以每个取值组合执行编码过程,得到每个取值组合对应的性能;从至少一个取值组合中选择性能满足调参要求的取值组合,并将选择的取值组合中的候选取值作为相应第二编码参数的目标参数值。该实施例可以对编码参数集合中某个层级的编码参数进行单独优化处理之后再组合优化处理。
在一个可能的实施方式中,可以将编码参数集合中每个编码参数的每个候选取值进行组合,得到至少一个取值组合;以每个取值组合执行编码过程,得到每个取值组合对应的性能;从至少一个取值组合中选择性能满足调参要求的取值组合,并将选择的取值组合中的候选取值作为相应编码参数的目标参数值。该实施例可以对编码参数集合中各个编码参数进行单独优化处理之后再组合优化处理。
如果待调节编码参数的数量为M,M为大于1的整数,即存在至少两个待调节编码参数,且优化规则用于指示对M个待调节编码参数进行单独优化处理之后再组合优化处理,那么在调参要求的约束下,按照优化规则对待调节编码参数进行优化处理的方式可以包括:在调参要求的约束下,分别对M个待调节编码参数进行单独优化处理,得到每个待调节编码参数的单独优化处理结果,对M个单独优化处理结果进行组合,得到满足调参要求的组合优化处理结果,按照组合优化处理结果,对M个待调节编码参数进行更新。
在一个可能的实施方式中,在调参要求的约束下,分别对M个待调节编码参数进行单独优化处理,得到每个待调节编码参数的单独优化处理结果,可以理解为对每个待调节编码参数单独调参,没有考虑M个待调节编码参数间的相互影响。而对M个单独优化处理结果进行组合,得到满足调参要求的组合优化处理结果,可以理解为考虑M个待调节编码参数间的相互影响,按照满足调参要求的组合优化处理结果,对M个待调节编码参数进行更新。
在调参要求的约束下,对任一待调节编码参数进行单独优化处理,可以理解为:获取编码器在该任一待调节编码参数的每个候选参数值的设定下分别对应的编码指标,从该任一待调节编码参数的至少一个候选参数值中筛选编码指标满足调参要求的目标参数值。也就是说,编码器在该任一待调节编码参数的每个候选参数值的设定下,将预设媒体数据输入至该编码器,通过该编码器对预设媒体数据进行编码,以得到每个候选参数值对应的编码指标。
每个候选参数值对应的编码指标可以指的是:编码器在该任一待调节编码参数的每个候选参数值的设定下,计算得到的加速比。
在一个可能的实施方式中,如果调参要求指的是在调参目标为提升编码速度的情况下,预期加速比为20:1,那么满足调参要求的组合优化处理结果可以理解为:编码器在该组合优化处理结果的设定下编码后计算得到的加速比大于或者等于20,且编码器在该组合优化处理结果的设定下编码后计算得到的加速比与预期加速比的差值,小于编码器在其他参数值组的设定下编码后计算得到的加速比与预期加速比的差值。
如果调参要求指的是在调参目标为提升编码效率的情况下,预期加速比为20:1,那么满足调参要求的组合优化处理结果可以理解为:编码器在该组合优化处理结果的设定下编码后计算得到的加速比小于或者等于20,且预期加速比与编码器在该组合优化处理结果的设定下编码后计算得到的加速比的差值,小于预期加速比与编码器在其他参数值组的设定下编码后计算得到的加速比的差值。
其他组合优化处理结果指的是对M个单独优化处理结果进行组合得到的多个参数值组中除了组合优化处理结果以外的其余参数值组。
可选的,可以获取预先配置的任一编码参数的取值范围。也就是说,在对每个待调节编码参数进行单独优化处理时,可以按照每个待调节编码参数的调节步长从每个待调节编码参数的参数值范围中选取至少一个候选参数值,以缩小每个待调节编码参数的参数值搜索空间。
在一个可能的实施方式中,可以将M个待调节编码参数中的任一待调节编码参数表示为第一待调节编码参数,如果优化规则包括第一待调节编码参数在进行单独优化处理过程中的调节步长,那么在调参要求的约束下,对第一待调节编码参数进行单独优化处理,得到第一待调节编码参数的单独优化处理结果的方式可以为:获取第一待调节编码参数的参考参数值,以及第一待调节编码参数的参数值范围,按照调节步长从第一待调节编码参数的参数值范围中选取至少一个候选参数值,从至少一个候选参数值中筛选出满足调参要求的目标参数值,第一待调节编码参数的单独优化处理结果可以包括参考参数值和目标参数值。可选的,可以将参考参数值和目标参数值添加至第一待调节编码参数的单独优化处理结果中。可选的,按照调节步长从第一待调节编码参数的参数值范围中选取至少一个候选参数值,可以包括:以参考参数值为基准,按照调节步长从第一待调节编码参数的参数值范围中选取至少一个候选参数值。
在一个可能的实施方式中,编码参数的调节步长和参数值范围可以是研发人员根据先验的编码器开发经验确定的,下述表3给出了多个编码参数的参数步长和参数值范围的示例。
表3编码参数
如表3所示,由于编码参数A0和编码参数B0的参数类型为bool(布尔型),那么编码参数A0和编码参数B0的参数值只有0和1这两种取值,因此编码参数A0和编码参数B0不存在调节步长。编码参数A1的参数类型为int(整型),以编码参数A1的调节步长为2,参数值范围为[0-6]为例,按照该调节步长从编码参数A1的参数值范围中选取的至少一个候选参数值可以包括0,2,4以及6。可选的,由于通过编码参数A1在不同编码档位下的缺省参数值可以知悉,编码档位表征的编码速度越快,在该编码档位下的编码参数A1的参数值越大,假设编码参数A1的参考参数值为1,此次优化任务的编码需求是提高编码速度,那么以参考参数值为基准,按照调节步长从第一待调节编码参数的参数值范围中选取的至少一个候选参数值应该大于或者等于参考参数值,即至少一个候选参数值可以包括1,3以及5。
在一个可能的实施方式中,任一编码参数在任一编码档位下的缺省参数值指的是该编码参数在该编码档位下的默认参数值,即初始参数值。以表1所示的开源编码器x265的编码档位为例,编码参数ctu在编码档位0下的缺省参数值为32。
在一个可能的实施方式中,任一编码参数在任一编码档位下的参考参数值可以指的是该编码参数在该编码档位下的缺省参数值,或者该编码参数在该编码档位下上一次迭代优化后的参数值。例如,假设编码参数的优化处理指的是对编码参数进行至少一轮迭代优化处理,直至编码参数的优化处理结果满足调参要求,如果当前是对编码参数进行第一轮迭代优化处理,那么编码参数在该编码档位下的参考参数值可以指的是该编码参数在该编码档位下的缺省参数值;如果当前是对编码参数进行第k+1轮迭代优化处理,那么编码参数在该编码档位下的参考参数值可以指的是该编码参数在该编码档位下第k轮迭代优化后的参数值,k为正整数。
可选的,可以根据调参要求确定搜索方向;按照搜索方向和任一编码参数的调节步长在任一编码参数的取值范围内进行搜索,以得到至少一个候选取值。
如果调参目标是提高编码质量,且编码器的编码质量随着该任一编码参数越大而越大,那么搜索方向可以是从小往大的方向。因此,可以以该任一编码参数的参考参数值为起点,按照从小往大的方向和该任一编码参数的调节步长在该任一编码参数的取值范围内进行搜索,以得到至少一个候选取值。以表3为例,假设编码参数A1的参考参数值为1,此次优化任务的调参要求是提高编码速度,搜索方向是从小往大的方向,那么以参考参数值为基准,按照调节步长从第一待调节编码参数的参数值范围中选取的至少一个候选参数值应该大于或者等于参考参数值,即至少一个候选参数值可以包括1,3以及5。
如果调参目标是提高编码质量,且编码器的编码质量随着该任一编码参数越小而越大,那么搜索方向可以是从大往小的方向。因此,可以以该任一编码参数的参考参数值为起点,按照从大往小的方向和该任一编码参数的调节步长在该任一编码参数的取值范围内进行搜索,以得到至少一个候选取值。以表3为例,假设编码参数A1的参考参数值为3,此次优化任务的调参要求是提高编码速度,搜索方向是从大往小的方向,那么以参考参数值为基准,按照调节步长从第一待调节编码参数的参数值范围中选取的至少一个候选参数值应该小于或者等于参考参数值,即至少一个候选参数值可以包括3,1以及0。
可以理解的是,上述调参目标仅为示例,本申请实施例中的调参目标包含但不限定于提高编码速度,提高编码质量,或者提高编码质量和编码速度。调参目标是提高编码速度,或者调参目标是提高编码质量和编码速度的情况下,得到至少一个候选取值的逻辑与调参目标是提高编码质量的情况下,得到至少一个候选取值的逻辑类似,本申请实施例不再赘述。
可选的,优化规则可以为先按照第一待调节编码参数的调节步长在第一待调节编码参数的参数值范围内进行搜索,接着可以减小调节步长进一步搜索。
在一个可能的实施方式中,编码参数集合中任一编码参数的调节方式,还可以包括:若至少一个候选取值中不存在性能满足调参要求的候选取值,则减小调节步长;按照减小后的调节步长重新从任一编码参数的参数值范围中选取新的候选取值,并从新的候选取值中选择性能满足调参要求的候选取值,并将选择的候选取值作为所述任一编码参数的候选取值。可以理解为,在调参要求的约束下,对第一待调节编码参数进行单独优化处理,得到第一待调节编码参数的单独优化处理结果,还可以包括:若至少一个候选参数值均不满足所述调参要求,则减小调节步长,按照减小后的调节步长重新从第一待调节编码参数的参数值范围中选取新的候选参数值,并从新的候选参数值中筛选出满足所述调参要求的目标参数值。
举例来说,以表3为例,编码参数A1的调节步长为2,参数值范围为[0-6],按照该调节步长从编码参数A1的参数值范围中选取的至少一个候选参数值可以包括0,2,4以及6这四个候选参数值。如果编码器在这四个候选参数值的设定下分别对应的编码指标都不满足调参要求,那么可以将编码参数A1的调节步长减小为原调节步长的1/m,m为大于1的自然数,假设m为2,即减小后的调节步长为1。那么按照减小后的调节步长重新从编码参数A1的参数值范围中选取的新的候选参数值可以包括0,1,2,3,4,5以及6,由于已确定0,2,4以及6这四个候选参数值对应的编码指标不满足调参要求,那么可以获取编码器在1,3,以及5这三个候选参数值的设定下分别对应的编码指标,如果这三个候选参数值对应的编码指标中存在满足调参要求的候选参数值,则将满足调参要求的候选参数值确定为目标参数值。
进一步可选的,如果新的候选参数值对应的编码指标均不满足调参要求,可以按照层级获取第一待调节编码参数的下一级编码参数,在调参要求的约束下,对第一待调节编码参数的下一级编码参数进行单独优化处理,得到第一待调节编码参数的下一级编码参数的单独优化处理结果。
举例来说,以表3为例,如果1,3,以及5这三个候选参数值对应的编码指标均不满足调参要求,那么表明编码参数A1不存在满足调参要求的参数值,因此可以继续下一级编码参数的优化处理,即在调参要求的约束下,对编码参数A1-1、编码参数A1-2以及编码参数A1-3分别进行单独优化处理。
可选的,优化规则可以为先按照第一待调节编码参数的调节步长在该待调节编码参数的参数值范围内进行搜索,如果没有搜索到满足调参要求的参数值,接着可以缩小第一待调节编码参数的参数值范围,按照第一待调节编码参数的调节步长从缩小后的参数值范围中重新选取新的候选参数值,并从新的候选参数值中筛选出满足所述调参要求的目标参数值。示例性的,缩小第一待调节编码参数的参数值范围的方式可以为:将第一待调节编码参数的参数值范围中的最小值与第一预设数值相加,得到缩小后的参数值范围中的最小值,和/或将第一待调节编码参数的参数值范围中的最大值与第二预设数值相减,得到缩小后的参数值范围中的最大值。第一预设数值和第二预设数值可以相同,也可以不同,第一预设数值和第二预设数值的确定方式可以有多种,例如,第一预设数值和第二预设数值可以是研发人员根据先验的编码器开发经验设置的,具体不受本申请实施例的限定。
可选的,优化规则可以为先按照第一待调节编码参数的调节步长在该待调节编码参数的参数值范围内进行搜索,如果没有搜索到满足调参要求的参数值,接着可以继续下一级编码参数的优化处理。
在一个可能的实施方式中,针对编码参数集合中预设层级的目标编码参数,若目标编码参数存在性能满足调参要求的参数值,则暂停对目标编码参数的下一层级的编码参数进行调节。若目标编码参数不存在满足调参要求的参数值,则对目标编码参数的下一层级的编码参数进行调节。可以理解为,M个待调节编码参数可以具备各自的层级,层级用于指示编码器的编码流程中的执行步骤的从属关系。基于此,若至少一个候选参数值均不满足调参要求,则按照层级获取第一待调节编码参数的下一级编码参数,在调参要求的约束下,对第一待调节编码参数的下一级编码参数进行单独优化处理,得到第一待调节编码参数的下一级编码参数的单独优化处理结果。
举例来说,以表3为例,如果0,2,4以及6这四个候选参数值对应的编码指标均不满足调参要求,那么表明编码参数A1不存在满足调参要求的参数值,因此可以继续下一级编码参数的优化处理,即在调参要求的约束下,对编码参数A1-1、编码参数A1-2以及编码参数A1-3分别进行单独优化处理。
可选的,可以基于任一编码参数在目标编码档位的相邻编码档位下的档位参数值,确定任一编码参数在目标编码档位的取值范围,档位参数值随编码档位呈单调趋势变化。可以理解为,编码器可以包括多个编码档位,多个编码档位中目标编码档位下的待调节编码参数的参数值范围,可以根据该待调节编码参数在该目标编码档位的相邻档位的档位参数值来确定,其中,相邻档位可以是该目标编码档位相邻的前后两个档位,也可以是相邻的一个档位,该档位参数值可以是指待调节编码参数在相邻档位上的缺省参数值。
进一步可选的,优化任务信息还可以包括待调节编码档位。基于此,获取第一待调节编码参数的参数值范围的方式可以包括:获取与待调节编码档位相邻的第一编码档位和第二编码档位,第一编码档位低于待调节编码档位,第二编码档位高于待调节编码档位,获取第一待调节编码参数在第一编码档位下的缺省参数值,以及第一待调节编码参数在第二编码档位下的缺省参数值,根据第一待调节编码参数在第一编码档位下的缺省参数值和第一待调节编码参数在第二编码档位下的缺省参数值,生成第一待调节编码参数的参数值范围。
进一步可选的,根据第一待调节编码参数在第一编码档位下的缺省参数值和第一待调节编码参数在第二编码档位下的缺省参数值,生成第一待调节编码参数的参数值范围的方式可以包括:将第一待调节编码参数在第一编码档位下的缺省参数值和第一待调节编码参数在第二编码档位下的缺省参数值作为第一待调节编码参数的参数值范围的两个端点值。
或者,将第一待调节编码参数在第一编码档位下的缺省参数值与第三预设数值相减,得到第一待调节编码参数的参数值范围的最小值,将第二待调节编码参数在第二编码档位下的缺省参数值与第四预设数值相加,得到第一待调节编码参数的参数值范围的最大值。第三预设数值和第四预设数值可以相同,也可以不同,第三预设数值和第四预设数值的确定方式可以有多种,例如,第三预设数值和第四预设数值可以是研发人员根据先验的编码器开发经验设置的,具体不受本申请实施例的限定。
在一个可能的实施方式中,如表1所示,申请人经研究发现,编码参数的参数值一般随编码档位呈现单调趋势,例如编码参数ctu在编码档位0的参数值为32,在编码档位1的参数值为32,在编码档位2至编码档位9的参数值均为64,即编码参数ctu随编码档位呈现递增趋势。因此,这种先验的编码器开发经验,也可以用来缩小参数值的搜索空间。以表3为例,编码参数A1在低速档位的参数值为0,编码参数A1在高速档位的参数值为2,如果要对编码参数A1在中速档位的参数值进行优化,那么可以确定编码参数A1的参数值范围为[0,2],相对表3中预先设置的编码参数A1的参数值范围[0,6],本申请实施例确定的参数值范围[0,2]更小,可进一步缩小参数值的搜索空间。另外,该实施例描述的参数值范围的确定方式可以确保参数值随编码档位呈现单调趋势,能够保证编码器载编码档位下的编码参数设置的物理可解释性。
可选的,对M个单独优化处理结果进行组合,得到满足调参要求的组合优化处理结果的方式可以包括:对M个单独优化处理结果中的N个待调节编码参数的单独优化处理结果中的参数值进行组合,得到多个参数值组,其中,待调节编码参数的单独优化处理结果中的参数值包括:待调节编码参数的参考参数值和目标参数值;每个参数值组中至少包括了不同待调节编码参数的一个参数值,N为大于1小于或等于M的整数;获取编码器在每个参数值组的设定下分别对应的编码指标;从多个参数值组中筛选编码指标满足调参要求的参数值组;将筛选得到的参数值组确定为组合优化处理结果。
进一步可选的,M个待调节编码参数中的任两个待调节编码参数表示为第一待调节编码参数和第二待调节编码参数,第一待调节编码参数的单独优化处理结果包括所述第一待调节编码参数的参考参数值和第一目标参数值,第二待调节编码参数的单独优化处理结果包括第二待调节编码参数的参考参数值和第二目标参数值。基于此,对M个单独优化处理结果进行组合,得到满足调参要求的组合优化处理结果的方式可以包括:对第一待调节编码参数的单独优化处理结果中的参数值和第二待调节编码参数的单独优化处理结果中的参数值进行组合,得到多个参数值组,每个参数值组由第一待调节编码参数的一个参数值与第二待调节编码参数的一个参数值构成;获取编码器在每个参数值组的设定下分别对应的编码指标;从多个参数值组中筛选编码指标满足调参要求的参数值组;将筛选得到的参数值组确定为组合优化处理结果。
在一个示例中,假设M个待调节编码参数包括参数A1和参数A2,参数A1的参考参数值为0,第一目标参数值为1;参数A2的参考参数值为2,第二目标参数值为3。那么可以对参数A1的单独优化处理结果中的参数值和参数A2的单独优化处理结果中的参数值进行组合,得到四个参数值组,参考参数值组包括参数A1的参数值为0,参数A2的参数值为2;第二参数值组包括参数A1的参数值为0,参数A2的参数值为3;第三参数值组包括参数A1的参数值为1,参数A2的参数值为2;第四参数值组包括参数A1的参数值为1,参数A2的参数值为3。可以控制编码器在每个参数值组的设定下,对预设媒体数据进行编码,获取编码器在每个参数值组的设定下分别对应的编码指标,从多个参数值组中筛选编码指标满足调参要求的参数值组,假设满足调参要求的参数值组为第四参数值组,那么可以将参数A1的参数值更新为1,将参数A2的参数值更新为3。
在另一个示例中,假设M个待调节编码参数包括参数A1和参数A2,参数A1不存在满足调参要求的参数值,从而对参数A1的下一级编码参数进行单独优化处理,即对参数A1-1、参数A1-2以及参数A1-3的层级分别进行单独优化处理。那么可以确定参数A1-1的参考参数值和目标参数值,参数A1-2的参考参数值和目标参数值,参数A1-3的参考参数值和目标参数值,以及参数A2的参考参数值和目标参数值,然后将参数A1-1、参数A1-2、参数A1-3以及参数A2中的一个参数值(即的参考参数值或目标参数值)进行组合,得到16(即24,4表示待调节编码参数的数量M)种参数值组,获取编码器在每个参数值组的设定下分别对应的编码指标,从多个参数值组中筛选编码指标满足调参要求的参数值组,将筛选得到的参数值组确定为组合优化处理结果。
可选的,待调节编码参数的数量为M,M为大于1的整数,优化规则可以用于指示按照层级由低至高的顺序进行迭代优化处理。基于此,针对编码参数集合中预设层级的目标编码参数,若目标编码参数存在性能满足调参要求的参数值,或者编码参数集合中的每个第一编码参数均已确定是否存在性能满足调参要求的参数值,则对目标编码参数的上一层级的编码参数进行调节;其中,第一编码参数的层级为所述预设层级。可以理解为,可以获取迭代优化处理过程中第k轮优化处理过程所涉及的待调节编码参数,k为正整数,按照层级由低至高的顺序,从M个待调节编码参数中选取第k轮优化处理过程所涉及的待调节编码参数的上一级编码参数,并将第k轮优化处理过程所涉及的待调节编码参数的上一级编码参数确定为迭代优化处理过程中第k+1轮优化处理过程所涉及的待调节编码参数。
以表3为例,在第一轮优化处理过程中,可以对参数A1-1、参数A1-2以及参数A1-3进行优化处理;在第二轮优化处理过程中,可以对参数A1以及参数A2进行优化处理;在第三轮优化处理过程中,可以对参数A0以及参数B0进行优化处理。
由于一次性调整所有待调节编码参数的搜索空间太大,进行一次参数调优的周期太长,因此设置编码参数的层级,通过迭代优化处理,能够减少搜索空间,从而能够高效地支持不同细粒度的参数调优任务。
本申请实施例中,接收针对编码器的调参任务,调参任务包括调参对象。然后,基于调参对象,在编码器中确定待调节的编码参数集合,编码参数集合包括至少一个编码参数,至少一个编码参数具有层级,进而基于至少一个编码参数的层级,对至少一个编码参数进行调节。由此可见,在指定了编码对象的情况下,本申请实施例可以实现对指定的编码对象的自动参数调优,能够更灵活地完成编码器的编码参数的配置、优化,减少编码器开发过程中针对不同业务场景布局编码器的工程调优的次数,提高编码参数的优化效率。
下面对不同优化任务类型下待调节编码参数的优化规则进行示例性描述,可以理解的是,任一优化任务类型下待调节编码参数的优化规则不仅限于下述实施例中描述的这一种,也可以是图1所示实施例中的其他优化规则。
在另一个实施例中,如果优化任务类型包括单编码模块优化类型,优化任务信息还包括待调节编码模块,待调节编码参数的数量为M,M为大于1的整数,M个所述待调节编码参数具备各自的层级,且优化规则用于指示按照层级由低至高的顺序进行单独优化处理之后再组合优化处理。基于此,M个待调节编码参数是按照待调节编码模块的优化处理结果进行优化处理的。待调节编码模块的优化处理结果是在调参要求的约束下,按照层级由低至高的顺序进行单独优化处理之后再组合优化处理得到的。
可选的,在调参要求的约束下,按照优化规则对所述待调节编码参数进行优化处理的方式可以包括:在调参要求的约束下,对M个待调节编码参数中层级为n的所有待调节编码参数进行单独优化处理,得到层级为n的每个待调节编码参数的单独优化处理结果,n为正整数;按照层级由低至高的顺序,在调参要求的约束下,对M个待调节编码参数中层级为n+1的所有待调节编码参数进行单独优化处理,得到层级为n+1的每个待调节编码参数的单独优化处理结果;对层级为n的所有待调节编码参数的单独优化处理结果,和层级为n+1的所有待调节编码参数的单独优化处理结果进行组合,得到待调节编码模块的满足调参要求的优化处理结果;按照待调节编码模块的优化处理结果,对M个待调节编码参数进行更新。
进一步可选的,请参见图3,图3是本申请实施例提供的另一种用于调节编码参数的方法的流程示意图,该用于调节编码参数的方法描述的是单编码模块优化类型的自动参数调优的具体方式,该用于调节编码参数的方法可以由编码器、客户端、服务器或者计算机设备执行。该用于调节编码参数的方法是在优化任务类型为单编码模块优化类型的情况下,按照层级由低至高的顺序进行单独优化处理之后再组合优化处理。如图3所示的用于调节编码参数的方法包括但不限于步骤S301~S309,其中:
S301,获取编码器的优化任务信息,优化任务信息包括优化任务类型、调参要求以及待调节编码模块,优化任务类型包括单编码模块优化类型。
S302,基于单编码模块优化类型、待调节编码模块和调参要求,在编码器中确定待调节编码参数,待调节编码参数的数量为M,M为大于1的整数,M个待调节编码参数具备各自的层级。
可选的,可以在编码器中搜索与待调节编码模块相关的至少一个编码参数,获取每个编码参数对调参要求的敏感度,按照每个编码参数对调参要求的敏感度,从至少一个编码参数中筛选出待调节编码参数。其中,待调节编码参数对调参要求的敏感度高于其他编码参数对调参要求的敏感度,其他编码参数是指至少一个编码参数中除待调节编码参数之外的其余编码参数。
S303,获取在单编码模块优化类型下待调节编码参数的优化规则,该优化规则用于指示按照层级由低至高的顺序进行单独优化处理之后再组合优化处理。
本申请实施例中步骤S301至步骤S303的具体描述可以参见图2所示实施例中的相关描述,本申请实施例不再赘述。
S304,在调参要求的约束下,对M个待调节编码参数中层级为n的所有待调节编码参数进行单独优化处理,得到层级为n的每个待调节编码参数的单独优化处理结果,n为正整数。
S305,对层级为n的每个待调节编码参数的单独优化处理结果进行组合,得到层级n对应的满足调参要求的组合优化处理结果。
S306,按照层级由低至高的顺序,在调参要求的约束下,对M个待调节编码参数中层级为n+1的所有待调节编码参数进行单独优化处理,得到层级为n+1的每个待调节编码参数的单独优化处理结果。
S307,对层级为n+1的每个待调节编码参数的单独优化处理结果进行组合,得到层级n+1对应的满足所述调参要求的组合优化处理结果。
S308,对层级n对应的满足调参要求的组合优化处理结果和层级n+1对应的满足调参要求的组合优化处理结果再进行组合,得到待调节编码模块的优化处理结果。
S309,按照待调节编码模块的优化处理结果,对M个所述待调节编码参数进行更新。
在一个示例中,以表3为例,可以在调参要求的约束下,分别对编码参数A1-1、编码参数A1-2以及编码参数A1-3进行单独优化处理,得到编码参数A1-1、编码参数A1-2以及编码参数A1-3的单独优化处理结果。对编码参数A1-1、编码参数A1-2以及编码参数A1-3的单独优化处理结果进行组合,得到编码参数A1-1、编码参数A1-2以及编码参数A1-3的层级对应的满足调参要求的组合优化处理结果。其次,可以在调参要求的约束下,分别对编码参数A1以及编码参数A2进行单独优化处理,得到编码参数A1以及编码参数A2的单独优化处理结果。对编码参数A1以及编码参数A2的单独优化处理结果进行组合,得到编码参数A1以及编码参数A2的层级对应的满足调参要求的组合优化处理结果。另外,可以在调参要求的约束下,分别对编码参数A0进行单独优化处理,得到编码参数A0的单独优化处理结果。由于对于算法A而言,最高层级的编码参数只有编码参数A0,因此编码参数A0的单独优化处理结果即编码参数A0的层级对应的满足调参要求的组合优化处理结果。在获取到每个层级对应的满足调参要求的组合优化处理结果之后,可以对每个层级对应的满足调参要求的组合优化处理结果再进行组合,得到待调节编码模块的满足调参要求的优化处理结果,按照待调节编码模块的优化处理结果,对编码参数A0、编码参数A1、编码参数A2、编码参数A1-1、编码参数A1-2以及编码参数A1-3进行更新。
在一个可能的实施方式中,对层级n对应的满足调参要求的组合优化处理结果和层级n+1对应的满足调参要求的组合优化处理结果再进行组合,得到待调节编码模块的优化处理结果,可以包括:获取每个待调节编码参数的组合优化处理结果中的参数值以及的参考参数值,将每个待调节编码参数的一个参数值进行组合,得到多个优化处理结果,即待调节编码模块的优化处理结果。每个待调节编码参数的一个参数值指的是每个待调节编码参数的组合优化处理结果中的参数值或者的参考参数值。
在一个可能的实施方式中,可以在调参要求的约束下,对M个待调节编码参数中层级为n的所有待调节编码参数进行单独优化处理;对层级为n的每个待调节编码参数的单独优化处理结果进行组合,得到层级n对应的满足调参要求的组合优化处理结果;按照层级n对应的满足调参要求的组合优化处理结果,对层级为n的待调节编码参数进行更新;按照层级由低至高的顺序,在调参要求的约束下,对M个待调节编码参数中层级为n+1的所有待调节编码参数进行单独优化处理,得到层级为n+1的每个待调节编码参数的单独优化处理结果;对层级为n+1的每个待调节编码参数的单独优化处理结果进行组合,得到层级n+1对应的满足所述调参要求的组合优化处理结果;按照层级n+1对应的满足所述调参要求的组合优化处理结果,对层级为n+1的待调节编码参数进行更新,直至完成对M个待调节编码参数的优化处理。
在一个示例中,以表3为例,可以在调参要求的约束下,分别对编码参数A1-1、编码参数A1-2以及编码参数A1-3进行单独优化处理,得到编码参数A1-1、编码参数A1-2以及编码参数A1-3的单独优化处理结果。对编码参数A1-1、编码参数A1-2以及编码参数A1-3的单独优化处理结果进行组合,得到编码参数A1-1、编码参数A1-2以及编码参数A1-3的层级对应的满足调参要求的组合优化处理结果。按照该组合优化处理结果,对编码参数A1-1、编码参数A1-2以及编码参数A1-3进行更新。其次,可以在调参要求的约束下,分别对编码参数A1以及编码参数A2进行单独优化处理,得到编码参数A1以及编码参数A2的单独优化处理结果。对编码参数A1以及编码参数A2的单独优化处理结果进行组合,得到编码参数A1以及编码参数A2的层级对应的满足调参要求的组合优化处理结果。按照该组合优化处理结果,对编码参数A1以及编码参数A2进行更新。另外,可以在调参要求的约束下,分别对编码参数A0进行单独优化处理,得到编码参数A0的单独优化处理结果。由于对于算法A而言,最高层级的编码参数只有编码参数A0,因此编码参数A0的单独优化处理结果即编码参数A0的层级对应的满足调参要求的组合优化处理结果。将编码参数A0的参数值更新为编码参数A0的单独优化处理结果所包含的目标参数值。
以编码器为视频编码器为例,视频编码器的编码模块可以包括块划分、帧间模式选择、帧内模式选择、环路滤波、码率控制、运动估计、前处理以及前向预测(lookahead)中的一种或者多种。在x265中,lookahead是一种技术,用于改善视频编码的效率和质量。
图3所示实施例涉及的优化任务类型包括单编码模块优化类型,图3所示的编码参数的优化规则可实现对编码模块进行精细的自动参数优化。
在另一个实施例中,如果优化任务类型包括单编码档位优化类型,优化任务信息还包括待调节编码档位,待调节编码参数的数量为M,M为正整数,M个所述待调节编码参数具备各自的层级,优化规则用于指示对层级为n的所有待调节编码参数进行单独优化处理,n为正整数,层级为n的待调节编码参数的层级高于其他待调节编码参数的层级,其他待调节编码参数是指M个待调节编码参数中除层级为n的待调节编码参数之外的其余待调节编码参数。基于此,M个待调节编码参数是按照待调节编码档位的优化处理结果进行优化处理的。待调节编码档位的优化处理结果是在调参要求的约束下,对层级为n的所有待调节编码参数进行单独优化处理得到的。
可选的,请参见图4,图4是本申请实施例提供的另一种用于调节编码参数的方法的流程示意图,该用于调节编码参数的方法描述的是单编码档位优化类型的自动参数调优的具体方式,该用于调节编码参数的方法可以由编码器、客户端、服务器或者计算机设备执行。该用于调节编码参数的方法是在优化任务类型为单编码档位优化类型的情况下,根据层级较高的待调节编码参数的优化处理结果,确定是否对层级较低的待调节编码参数进行优化处理。
如图4所示的用于调节编码参数的方法包括但不限于步骤S401~S406,其中:
S401,获取编码器的优化任务信息,优化任务信息包括优化任务类型、调参要求以及待调节编码档位,优化任务类型包括单编码档位优化类型。
S402,基于单编码档位优化类型、待调节编码档位和调参要求,在编码器中确定待调节编码参数,待调节编码参数的数量为M,M为大于1的整数,M个待调节编码参数具备各自的层级。
可选的,可以在编码器中搜索与待调节编码档位相关的至少一个编码参数,获取每个编码参数对调参要求的敏感度,按照每个编码参数对调参要求的敏感度,从至少一个编码参数中筛选出待调节编码参数。其中,待调节编码参数对调参要求的敏感度高于其他编码参数对调参要求的敏感度,其他编码参数是指至少一个编码参数中除待调节编码参数之外的其余编码参数。
S403,获取在单编码档位优化类型下待调节编码参数的优化规则,该优化规则用于指示对层级为n的所有待调节编码参数进行单独优化处理,n为正整数。
层级为n的待调节编码参数的层级高于其他待调节编码参数的层级,其他待调节编码参数是指M个待调节编码参数中除层级为n的待调节编码参数之外的其余待调节编码参数。
本申请实施例中步骤S401至步骤S403的具体描述可以参见图2所示实施例中的相关描述,本申请实施例不再赘述。
S404,在调参要求的约束下,对M个待调节编码参数中层级为n的所有待调节编码参数进行单独优化处理,得到层级为n的每个待调节编码参数的单独优化处理结果。
S405,根据层级为n的每个待调节编码参数的单独优化处理结果,得到待调节编码档位的优化处理结果。
S406,按照待调节编码档位的优化处理结果,对M个待调节编码参数进行更新。
举例来说,以表3为例,由于层级最高的编码参数包括编码参数A0以及编码参数B0,因此可以先调优编码参数A0和编码参数B0。假设待调节编码档位为低速档位,由于编码参数A0和编码参数B0的参数类型均为bool,编码参数A0在低速档位的缺省参数值为true,因此任务1可以表示为编码参数A0=true,编码参数B0在低速档位的缺省参数值为false,因此任务2可以表示为编码参数B0=false。如果任务1满足调参要求,那么可以跳过编码参数A0的下一级编码参数的搜索,即暂停对编码参数A0的下一级编码参数进行优化处理。其中,由于编码参数A0增大参数值可以提升编码速度,因此编码参数A0在低速编码档位、中速编码档位以及高速编码档位的参数值可以为true,表明编码参数A0对于提升编码速度的敏感度较高,即编码参数A0是否优化对于提升编码速度的影响较大。由于编码参数B0增大参数值可以提升编码性能,没有提升编码速度,因此编码参数B0在低速编码档位、中速编码档位以及高速编码档位的参数值可以为false,表明编码参数B0对于提升编码速度的敏感度较低,即编码参数A0是否优化对于提升编码速度的影响较小。
在执行任务1和任务2之后,即获取到编码器在编码参数A0为true的设定下对应的编码指标,以及编码器在编码参数B0为false的设定下对应的编码指标之后,如果编码参数A0和编码参数B0均不满足调参要求,那么编码参数A0和编码参数B0的参数值不更新,此次优化任务结束。如果编码参数A0和编码参数B0中有一个编码参数满足调参要求,即编码参数A0或编码参数B0满足调参要求,那么按照编码参数A0或编码参数B0中满足调参要求的编码参数的单独优化处理结果,对满足调参要求的编码参数进行更新,即将满足调参要求的编码参数的参数值更新为该编码参数的目标参数值。如果编码参数A0和编码参数B0均满足调参要求,那么可以将编码参数A0的单独优化处理结果中的参数值和编码参数B0的单独优化处理结果中的参数值进行组合,得到多个参数值组,每个参数值组由编码参数A0的一个参数值与编码参数B0的一个参数值构成,编码参数A0的单独优化处理结果包括编码参数A0的参考参数值和目标参数值,编码参数B0的单独优化处理结果包括编码参数B0的参考参数值和目标参数值;获取编码器在每个参数值组的设定下分别对应的编码指标;从多个参数值组中筛选编码指标满足调参要求的参数值组;按照筛选得到的参数值组中的参数值,对编码参数A0和编码参数B0进行更新。
图4所示实施例涉及的优化任务类型包括单编码档位优化类型,图4所示的编码参数的优化规则可实现对编码档位进行精细的自动参数优化。
在另一个实施例中,如果优化任务类型包括多编码档位优化类型,优化任务信息还包括待调节编码档位,编码器包括多个编码档位,待调节编码参数的数量为M,M为大于1的整数,优化规则用于指示对M个待调节编码参数进行单独优化处理之后再组合优化处理,M个待调节编码参数中的任一待调节编码参数表示为第一待调节编码参数,优化规则包括第一待调节编码参数在进行单独优化处理过程中的调节步长。基于此,M个待调节编码参数是在调参要求的约束下,进行单独优化处理之后再组合优化处理的。第一待调节编码参数在进行单独优化处理过程中的至少一个候选参数值是按照调节步长从第一待调节编码参数的参数值范围中选取的。第一待调节编码参数的参数值范围是根据第一待调节编码参数在待调节编码档位相邻的编码档位下的缺省参数值生成的。
可选的,请参见图5,图5是本申请实施例提供的另一种用于调节编码参数的方法的流程示意图,该用于调节编码参数的方法描述的是多编码档位优化类型的自动参数调优的具体方式,该用于调节编码参数的方法可以由编码器、客户端、服务器或者计算机设备执行。该用于调节编码参数的方法是在优化任务类型为多编码档位优化类型的情况下,对M个待调节编码参数进行单独优化处理之后再组合优化处理,且任一待调节编码参数的参数值范围是根据该待调节编码参数在待调节编码档位相邻的编码档位下的缺省参数值生成的。如图5所示的用于调节编码参数的方法包括但不限于步骤S501~S510,其中:
S501,获取编码器的优化任务信息,优化任务信息包括优化任务类型、调参要求以及待调节编码档位,优化任务类型包括多编码档位优化类型,编码器包括多个编码档位。
S502,基于多编码档位优化类型、待调节编码档位和调参要求,在编码器中确定待调节编码参数,待调节编码参数的数量为M,M为大于1的整数。
可选的,可以在编码器中搜索与待调节编码档位相关的至少一个编码参数,获取每个编码参数对调参要求的敏感度,按照每个编码参数对调参要求的敏感度,从至少一个编码参数中筛选出待调节编码参数。其中,待调节编码参数对调参要求的敏感度高于其他编码参数对调参要求的敏感度,其他编码参数是指至少一个编码参数中除待调节编码参数之外的其余编码参数。
S503,获取在多编码档位优化类型下待调节编码参数的优化规则,该优化规则用于指示对M个待调节编码参数进行单独优化处理之后再组合优化处理,M个待调节编码参数中的任一待调节编码参数表示为第一待调节编码参数,该优化规则包括第一待调节编码参数在进行单独优化处理过程中的调节步长。
本申请实施例中步骤S501至步骤S503的具体描述可以参见图2所示实施例中的相关描述,本申请实施例不再赘述。
S504,获取与待调节编码档位相邻的第一编码档位和第二编码档位,第一编码档位低于待调节编码档位,第二编码档位高于待调节编码档位。
S505,获取第一待调节编码参数在第一编码档位下的缺省参数值,以及第一待调节编码参数在第二编码档位下的缺省参数值。
S506,生成第一待调节编码参数的参数值范围,参数值范围的端点值包括第一待调节编码参数在第一编码档位下的缺省参数值和第一待调节编码参数在第二编码档位下的缺省参数值。
S507,按照调节步长从第一待调节编码参数的参数值范围中选取至少一个候选参数值。
S508,从至少一个候选参数值中筛选出满足调参要求的目标参数值,第一待调节编码参数的单独优化处理结果包括参考参数值和目标参数值。
S509,对M个单独优化处理结果进行组合,得到满足调参要求的组合优化处理结果。
S510,按照组合优化处理结果,对M个待调节编码参数进行更新。
举例来说,以表3为例,编码参数A1在低速档位的参数值为0,编码参数A1在高速档位的参数值为2,如果要对编码参数A1在中速档位的参数值进行优化,那么可以确定编码参数A1的参数值范围为[0,2]。编码参数A2在低速档位的参数值为0,编码参数A2在高速档位的参数值为2,如果要对编码参数A2在中速档位的参数值进行优化,那么可以确定编码参数A2的参数值范围为[0,2]。如果待调节编码参数包括编码参数A1以及编码参数A2,那么可以按照编码参数A1的调节步长从编码参数A1的参数值范围中选取至少一个候选参数值,从至少一个候选参数值中筛选出满足调参要求的目标参数值,编码参数A1的单独优化处理结果可以包括编码参数A1的参考参数值和目标参数值。同理,可以按照编码参数A2的调节步长从编码参数A2的参数值范围中选取至少一个候选参数值,从至少一个候选参数值中筛选出满足调参要求的目标参数值,编码参数A2的单独优化处理结果可以包括编码参数A2的参考参数值和目标参数值。对编码参数A1和编码参数A2的单独优化处理结果进行组合,得到满足调参要求的组合优化处理结果,按照组合优化处理结果,对编码参数A1和编码参数A2进行更新。
图5所示实施例涉及的优化任务类型包括多编码档位优化类型,图5所示的编码参数的优化规则可实现对编码档位进行精细的自动参数优化。
在另一个实施例中,如果优化任务类型包括单编码模式优化类型,优化任务信息还包括待调节编码模式,待调节编码参数的数量为M,M为大于1的整数,优化规则用于指示对M个待调节编码参数进行单独优化处理之后再组合优化处理,M个待调节编码参数中的任一待调节编码参数表示为第一待调节编码参数,优化规则包括第一待调节编码参数在进行单独优化处理过程中的调节步长。基于此,M个待调节编码参数是在调参要求的约束下,进行单独优化处理之后再组合优化处理的。第一待调节编码参数在单独优化处理过程中的每个候选参数值对应的编码指标是按照待调节编码模式对应的编码指标获取算法得到的。
可选的,请参见图6,图6是本申请实施例提供的另一种用于调节编码参数的方法的流程示意图,该用于调节编码参数的方法描述的是单编码模式优化类型的自动参数调优的具体方式,该用于调节编码参数的方法可以由编码器、客户端、服务器或者计算机设备执行。该用于调节编码参数的方法是在优化任务类型为单编码模式优化类型的情况下,对M个待调节编码参数进行单独优化处理之后再组合优化处理,且任一待调节编码参数在单独优化处理过程中的每个候选参数值对应的编码指标是按照待调节编码模式对应的编码指标获取算法得到的。如图6所示的用于调节编码参数的方法包括但不限于步骤S601~S609,其中:
S601,获取编码器的优化任务信息,优化任务信息包括优化任务类型、调参要求以及待调节编码模式,优化任务类型包括单编码模式优化类型。
S602,基于单编码模式优化类型、待调节编码模式和调参要求,在编码器中确定待调节编码参数,待调节编码参数的数量为M,M为大于1的整数,M个待调节编码参数中的任一待调节编码参数表示为第一待调节编码参数。
可选的,可以在编码器中搜索与待调节编码模式相关的至少一个编码参数,获取每个编码参数对调参要求的敏感度,按照每个编码参数对调参要求的敏感度,从至少一个编码参数中筛选出待调节编码参数。其中,待调节编码参数对调参要求的敏感度高于其他编码参数对调参要求的敏感度,其他编码参数是指至少一个编码参数中除待调节编码参数之外的其余编码参数。
S603,获取在单编码模式优化类型下待调节编码参数的优化规则,该优化规则用于指示对M个待调节编码参数进行单独优化处理之后再组合优化处理,M个待调节编码参数中的任一待调节编码参数表示为第一待调节编码参数,该优化规则包括第一待调节编码参数在进行单独优化处理过程中的调节步长。
本申请实施例中步骤S601至步骤S603的具体描述可以参见图2所示实施例中的相关描述,本申请实施例不再赘述。
S604,获取第一待调节编码参数的参考参数值,以及第一待调节编码参数的参数值范围。
S605,按照调节步长从第一待调节编码参数的参数值范围中选取至少一个候选参数值。
S606,按照待调节编码模式对应的编码指标获取算法,获取编码器在每个候选参数值的设定下分别对应的编码指标。
S607,从至少一个候选参数值中筛选出编码指标满足调参要求的目标参数值,第一待调节编码参数的单独优化处理结果包括参考参数值和目标参数值。
S608,对M个单独优化处理结果进行组合,得到满足调参要求的组合优化处理结果。
S609,按照组合优化处理结果,对M个待调节编码参数进行更新。
在该实施例中,不同编码模式的编码质量的确定方式和/或编码速度的确定方式不同,那么不同编码模式对应的编码指标获取算法也就不同,按照不同编码模式对应的编码指标获取算法获取到的编码指标也就不同。不同编码模式的编码质量的确定方式不同可以理解为不同编码模式关注的编码质量评价指标不同。不同编码模式的编码速度的确定方式不同可以理解为不同编码模式关注的延迟不同,例如编码模式fastdecode是根据编码时间和解码时间衡量编码速度的,编码模式ssim是根据编码时间衡量编码速度的。
图6所示实施例涉及的优化任务类型包括单编码模式优化类型,图6所示的编码参数的优化规则可实现对编码模式进行精细的自动参数优化。
在另一个实施例中,如果优化任务类型包括多编码模式优化类型,优化任务信息还包括默认编码模式,待调节编码参数的数量为M,M为大于1的整数,优化规则用于指示对M个待调节编码参数进行组合优化处理,优化规则包括M个待调节编码参数中的N个待调节编码参数在进行组合优化处理过程中的调节步长,N为大于1小于或等于M的整数。基于此,M个待调节编码参数是按照筛选得到的参数值组进行优化的;筛选得到的参数值组对应的多个编码指标均满足调参要求;筛选得到的参数值组对应的多个编码指标是按照默认编码模式对应的多个编码指标获取算法分别得到的;每个参数值组由所述N个待调节编码参数的至少一个候选参数值中的一个参数值构成;每个待调节编码参数的至少一个候选参数值是按照每个所述待调节编码参数的调节步长从每个待调节编码参数的参数值范围中选取的。
可选的,请参见图7,图7是本申请实施例提供的另一种用于调节编码参数的方法的流程示意图,该用于调节编码参数的方法描述的是多编码模式优化类型的自动参数调优的具体方式,该用于调节编码参数的方法可以由编码器、客户端、服务器或者计算机设备执行。该用于调节编码参数的方法是在优化任务类型为多编码模式优化类型的情况下,对M个待调节编码参数进行组合优化处理,且组合优化处理得到的参数值组对应的多个编码指标均满足调参要求,任一待调节编码参数在单独优化处理过程中的每个候选参数值对应的多个编码指标是按照待调节编码模式对应的多个编码指标获取算法得到的。如图7所示的用于调节编码参数的方法包括但不限于步骤S701~S708,其中:
S701,获取编码器的优化任务信息,优化任务信息包括优化任务类型、调参要求以及待调节编码模式,优化任务类型包括多编码模式优化类型,待调节编码模式为默认编码模式。
S702,基于多编码模式优化类型、待调节编码模式和调参要求,在编码器中确定待调节编码参数,待调节编码参数的数量为M,M为大于1的整数。
可选的,可以在编码器中搜索与默认编码模式相关的至少一个编码参数,获取每个编码参数对调参要求的敏感度,按照每个编码参数对调参要求的敏感度,从至少一个编码参数中筛选出待调节编码参数。其中,待调节编码参数对调参要求的敏感度高于其他编码参数对调参要求的敏感度,其他编码参数是指至少一个编码参数中除待调节编码参数之外的其余编码参数。
S703,获取在多编码模式优化类型下待调节编码参数的优化规则,该优化规则用于指示对M个待调节编码参数进行组合优化处理,M个待调节编码参数中的任两个待调节编码参数表示为第一待调节编码参数和第二待调节编码参数,该优化规则包括第一待调节编码参数在进行组合优化处理过程中的第一调节步长,以及第二待调节编码参数在进行组合优化处理过程中的第二调节步长。
本申请实施例中步骤S701至步骤S703的具体描述可以参见图2所示实施例中的相关描述,本申请实施例不再赘述。
S704,获取M个待调节编码参数中的N个待调节编码参数的参考参数值,以及N个待调节编码参数的参数值范围,并按照N个待调节编码参数中每个待调节编码参数的调节步长从每个待调节编码参数的参数值范围中选取至少一个候选参数值。
S705,对N个待调节编码参数的至少一个候选参数值中的参数值进行组合,得到多个参数值组,每个参数值组中至少包括了不同待调节编码参数的一个参数值。
S706,按照默认编码模式对应的多个编码指标获取算法,获取编码器在每个参数值组的设定下分别对应的多个编码指标。
S707,从多个参数值组中筛选多个编码指标均满足调参要求的参数值组。
S708,按照筛选得到的参数值组,对M个待调节编码参数进行更新。
在一个可能的实施方式中,优化规则可以用于指示对M个待调节编码参数进行组合优化处理,M个待调节编码参数中的任两个待调节编码参数表示为第一待调节编码参数和第二待调节编码参数,优化规则包括第一待调节编码参数在进行组合优化处理过程中的第一调节步长,以及第二待调节编码参数在进行组合优化处理过程中的第二调节步长。基于此,步骤S704以及S705可以包括:获取第一待调节编码参数的参考参数值,以及第一待调节编码参数的参数值范围,并按照第一调节步长从第一待调节编码参数的参数值范围中选取至少一个第一候选参数值。以及获取第二待调节编码参数的参考参数值,以及第二待调节编码参数的参数值范围,并按照第二调节步长从第二待调节编码参数的参数值范围中选取至少一个第二候选参数值。然后对至少一个第一候选参数值中的参数值和至少一个第二候选参数值中的参数值进行组合,得到多个参数值组,每个参数值组由第一待调节编码参数的一个参数值与第二待调节编码参数的一个参数值构成。
在该实施例中,由于默认编码模式关注的编码质量评价指标包括psnr、ssim以及vmaf,因此在对默认编码模式进行自动参数优化时,不用对每个待调节编码参数进行单独优化处理,而是直接对M个待调节编码参数进行组合优化处理,按照默认编码模式对应的多个编码指标获取算法,获取编码器在每个参数值组的设定下分别对应的多个编码指标。例如可以按照默认编码模式对应的第一编码指标获取算法,获取编码器在每个参数值组的设定下分别对应的第一编码指标,按照默认编码模式对应的第二编码指标获取算法,获取编码器在每个参数值组的设定下分别对应的第二编码指标,按照默认编码模式对应的第三编码指标获取算法,获取编码器在每个参数值组的设定下分别对应的第三编码指标。其中,第一编码指标获取算法在衡量编码质量时,用到的编码质量评价指标为psnr。第二编码指标获取算法在衡量编码质量时,用到的编码质量评价指标为ssim。第三编码指标获取算法在衡量编码质量时,用到的编码质量评价指标为vmaf。针对任一参数值组,可以判断该参数值组对应的第一编码指标、第二编码指标以及第三编码指标是否均满足调参要求,如果第一编码指标、第二编码指标以及第三编码指标均满足调参要求,则确定该参数值组满足调参要求;如果第一编码指标、第二编码指标以及第三编码指标中存在至少一个编码指标不满足调参要求,则确定该参数值组不满足调参要求。
图7所示实施例涉及的优化任务类型包括多编码模式优化类型,图7所示的编码参数的优化规则可实现对默认编码模式进行精细的自动参数优化。
基于上述实施例描述的用于调节编码参数的方法,可以得到调参后的编码器,调参后的编码器可以通过如下方式进行媒体数据编码。请参见图8,图8是本申请实施例公开的一种媒体数据编码方法,该媒体数据编码方法可以由编码器、客户端、服务器或者计算机设备执行,用于执行媒体数据编码方法的设备和用于执行用于调节编码参数的方法的设备可以是同一设备,也可以是不同设备。
如图8所示的媒体数据编码方法包括但不限于步骤S801~S803,其中:
S801,接收编码任务,编码任务包括媒体数据和编码需求。
S802,将媒体数据和编码需求输入至调参后的编码器中,通过调参后的编码器确定与编码需求匹配的编码档位。
S803,采用调参后的编码器中的多个编码参数在该编码档位下的档位参数值,对媒体数据进行编码处理,得到编码后的媒体数据,多个编码参数中的至少一个编码参数在编码档位下的档位参数值是基于多个编码参数的层级进行调节的。
在一个可能的实施方式中,如果调参后的编码器设置了编码模式,那么可以接收编码任务,编码任务可以包括媒体数据和编码需求;将媒体数据和编码需求输入至调参后的编码器中,通过调参后的编码器确定与编码需求匹配的编码模式;采用调参后的编码器中的多个编码参数在该编码模式下的档位参数值,对媒体数据进行编码处理,得到编码后的媒体数据;其中,多个编码参数中的至少一个编码参数在该编码模式下的档位参数值是基于多个编码参数的层级进行调节的。
可选的,如果调参后的编码器设置了同一编码档位下的多个编码模式,那么可以接收编码任务,编码任务可以包括媒体数据和编码需求;将媒体数据和编码需求输入至调参后的编码器中,通过调参后的编码器确定与编码需求匹配的编码档位和编码模式;采用调参后的编码器中的多个编码参数在该编码档位和该编码模式下的档位参数值,对媒体数据进行编码处理,得到编码后的媒体数据;其中,多个编码参数中的至少一个编码参数在该编码档位和编码模式下的档位参数值是基于多个编码参数的层级进行调节的。
本申请实施例还提供了一种计算机存储介质,该计算机存储介质中存储有程序指令,该程序指令被执行时,用于实现上述实施例中描述的相应方法。
再参见图9,图9是本申请实施例提供的一种媒体数据编码装置的结构示意图。
本申请实施例的媒体数据编码装置的一个实现方式中,媒体数据编码装置包括如下结构。
接收单元901,用于接收编码任务,所述编码任务包括媒体数据和编码需求;
处理单元902,用于将所述媒体数据和编码需求输入至调参后的编码器中,通过所述调参后的编码器确定与所述编码需求匹配的编码档位;采用所述调参后的编码器中的多个编码参数在所述编码档位下的档位参数值,对所述媒体数据进行编码处理,得到编码后的媒体数据;其中,所述多个编码参数中的至少一个编码参数在所述编码档位下的档位参数值是基于所述多个编码参数的层级进行调节的。
本申请实施例中,接收单元901接收编码任务,编码任务包括媒体数据和编码需求,处理单元902将媒体数据和编码需求输入至调参后的编码器中,通过调参后的编码器确定与编码需求匹配的编码档位;采用调参后的编码器中的多个编码参数在编码档位下的档位参数值,对媒体数据进行编码处理,得到编码后的媒体数据,多个编码参数中的至少一个编码参数在该编码档位下的档位参数值是基于多个编码参数的层级进行调节的,能够自适应满足编码需求。
再参见图10,图10可以是本申请实施例提供的一种用于调节编码参数的装置的结构示意图。
本申请实施例的用于调节编码参数的装置的一个实现方式中,用于调节编码参数的装置包括如下结构。
接收单元1001,用于接收针对编码器的调参任务,所述调参任务包括调参对象;
处理单元1002,用于基于所述调参对象,在所述编码器中确定待调节的编码参数集合,所述编码参数集合包括至少一个编码参数,所述至少一个编码参数具有层级;基于所述至少一个编码参数的层级,对所述至少一个编码参数进行调节。
在一个实施例中,所述处理单元1002基于所述至少一个编码参数的层级,对所述至少一个编码参数进行调节,包括:
针对所述编码参数集合中预设层级的目标编码参数,若所述目标编码参数存在性能满足调参要求的参数值,则暂停对所述目标编码参数的下一层级的编码参数进行调节;
若所述目标编码参数不存在满足调参要求的参数值,则对所述目标编码参数的下一层级的编码参数进行调节。
在一个实施例中,处理单元1002基于所述至少一个编码参数的层级,对所述至少一个编码参数进行调节,包括:
针对所述编码参数集合中预设层级的目标编码参数,若所述目标编码参数存在性能满足调参要求的参数值,或者所述编码参数集合中的每个第一编码参数均已确定是否存在性能满足调参要求的参数值,则对所述目标编码参数的上一层级的编码参数进行调节;
其中,所述第一编码参数的层级为所述预设层级。
在一个实施例中,所述编码参数集合中任一编码参数的调节方式包括:
按照所述任一编码参数的调节步长在所述任一编码参数的取值范围内进行搜索,以得到至少一个候选取值;
以每个候选取值执行编码过程,得到所述每个候选取值对应的性能;
从所述至少一个候选取值中选择编码指标满足调参要求的候选取值,并将选择的候选取值作为所述任一编码参数的候选取值;
基于所述编码参数集合中至少一个第二编码参数的候选取值,确定每个第二编码参数的目标参数值,所述至少一个第二编码参数包括所述任一编码参数,所述每个第二编码参数的层级相同。
在一个实施例中,所述处理单元1002基于所述编码参数集合中至少一个第二编码参数的候选取值,确定每个第二编码参数的目标参数值,包括:
将所述每个第二编码参数的每个候选取值进行组合,得到至少一个取值组合;
以每个取值组合执行编码过程,得到所述每个取值组合对应的性能;
从所述至少一个取值组合中选择性能满足调参要求的取值组合,并将选择的取值组合中的候选取值作为相应第二编码参数的目标参数值。
在一个实施例中,所述处理单元1002基于所述编码参数集合中至少一个第二编码参数的候选取值,确定每个第二编码参数的目标参数值,包括:
将所述编码参数集合中每个编码参数的每个候选取值进行组合,得到至少一个取值组合;
以每个取值组合执行编码过程,得到所述每个取值组合对应的性能;
从所述至少一个取值组合中选择性能满足调参要求的取值组合,并将选择的取值组合中的候选取值作为相应编码参数的目标参数值。
在一个实施例中,所述处理单元1002还用于获取预先配置的所述任一编码参数的取值范围;或者,基于所述任一编码参数在目标编码档位的相邻编码档位下的档位参数值,确定所述任一编码参数在所述目标编码档位的取值范围,所述档位参数值随编码档位呈单调趋势变化。
在一个实施例中,所述处理单元1002按照所述任一编码参数的调节步长在所述任一编码参数的取值范围内进行搜索,以得到至少一个候选取值,包括:
根据调参要求确定搜索方向;
按照所述搜索方向和所述任一编码参数的调节步长在所述任一编码参数的取值范围内进行搜索,以得到至少一个候选取值。
在一个实施例中,所述编码参数集合中任一编码参数的调节方式,还包括:
若所述至少一个候选取值中不存在性能满足调参要求的候选取值,则减小所述调节步长;
按照减小后的调节步长重新从所述任一编码参数的参数值范围中选取新的候选取值,并从新的候选取值中选择性能满足调参要求的候选取值,并将选择的候选取值作为所述任一编码参数的候选取值。
在一个实施例中,处理单元1002还用于根据所述编码器的编码流程中的每个执行步骤的从属关系,确定所述每个执行步骤所关联的编码参数的层级。
在一个实施例中,所述调参对象包括目标编码模块、目标编码档位或者目标编码模式;
调参要求包括调参目标和加速比。
本申请实施例中,接收单元1001接收针对编码器的调参任务,调参任务包括调参对象,处理单元1002基于调参对象,在编码器中确定待调节的编码参数集合,编码参数集合包括至少一个编码参数,至少一个编码参数具有层级;基于至少一个编码参数的层级,对至少一个编码参数进行调节,可以针对调参对象来实现编码参数的自动调优。
再参见图11,图11是本申请实施例提供的一种计算机设备的结构示意图,本申请实施例的计算机设备包括供电模块等结构,并包括处理器1101、存储装置1102以及通信接口1103。处理器1101、存储装置1102以及通信接口1103之间可以交互数据,由处理器1101实现相应的视频编码方法。
存储装置1102可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储装置1102也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flash memory),固态硬盘(solid-state drive,SSD)等;存储装置1102还可以包括上述种类的存储器的组合。
处理器1101可以是中央处理器(central processing unit,CPU)。处理器1101也可以是由CPU和GPU的组合。
在一个实施例中,存储装置1102用于存储程序指令。处理器1101可以调用程序指令,实现如本申请实施例中上述涉及的各种方法。
在第一个可能的实施方式中,计算机设备的处理器1101,调用存储装置1102中存储的程序指令,用于通过通信接口1103接收编码任务,所述编码任务包括媒体数据和编码需求;将所述媒体数据和编码需求输入至调参后的编码器中,通过所述调参后的编码器确定与所述编码需求匹配的编码档位;采用所述调参后的编码器中的多个编码参数在所述编码档位下的档位参数值,对所述媒体数据进行编码处理,得到编码后的媒体数据;其中,所述多个编码参数中的至少一个编码参数在所述编码档位下的档位参数值是基于所述多个编码参数的层级进行调节的。
本申请实施例中,处理器1101将媒体数据和编码需求输入至调参后的编码器中,通过调参后的编码器确定与编码需求匹配的编码档位;采用调参后的编码器中的多个编码参数在编码档位下的档位参数值,对媒体数据进行编码处理,得到编码后的媒体数据,多个编码参数中的至少一个编码参数在该编码档位下的档位参数值是基于多个编码参数的层级进行调节的,能够自适应满足编码需求。
再参见图11,图11是本申请实施例提供的一种计算机设备的结构示意图,本申请实施例的计算机设备包括供电模块等结构,并包括处理器1101、存储装置1102以及通信接口1103。处理器1101、存储装置1102以及通信接口1103之间可以交互数据,由处理器1101实现相应的视频编码方法。
存储装置1102可以包括易失性存储器,例如随机存取存储器;存储装置1102也可以包括非易失性存储器,例如快闪存储器,固态硬盘等;存储装置1102还可以包括上述种类的存储器的组合。
处理器1101可以是中央处理器。处理器1101也可以是由CPU和GPU的组合。
在一个实施例中,存储装置1102用于存储程序指令。处理器1101可以调用程序指令,实现如本申请实施例中上述涉及的各种方法。
在第一个可能的实施方式中,计算机设备的处理器1101,调用存储装置1102中存储的程序指令,用于通过通信接口1103接收针对编码器的调参任务,所述调参任务包括调参对象;基于所述调参对象,在所述编码器中确定待调节的编码参数集合,所述编码参数集合包括至少一个编码参数,所述至少一个编码参数具有层级;基于所述至少一个编码参数的层级,对所述至少一个编码参数进行调节。
在一个实施例中,所述处理器1101基于所述至少一个编码参数的层级,对所述至少一个编码参数进行调节,包括:
针对所述编码参数集合中预设层级的目标编码参数,若所述目标编码参数存在性能满足调参要求的参数值,则暂停对所述目标编码参数的下一层级的编码参数进行调节;
若所述目标编码参数不存在满足调参要求的参数值,则对所述目标编码参数的下一层级的编码参数进行调节。
在一个实施例中,处理器1101基于所述至少一个编码参数的层级,对所述至少一个编码参数进行调节,包括:
针对所述编码参数集合中预设层级的目标编码参数,若所述目标编码参数存在性能满足调参要求的参数值,或者所述编码参数集合中的每个第一编码参数均已确定是否存在性能满足调参要求的参数值,则对所述目标编码参数的上一层级的编码参数进行调节;
其中,所述第一编码参数的层级为所述预设层级。
在一个实施例中,所述编码参数集合中任一编码参数的调节方式包括:
按照所述任一编码参数的调节步长在所述任一编码参数的取值范围内进行搜索,以得到至少一个候选取值;
以每个候选取值执行编码过程,得到所述每个候选取值对应的性能;
从所述至少一个候选取值中选择编码指标满足调参要求的候选取值,并将选择的候选取值作为所述任一编码参数的候选取值;
基于所述编码参数集合中至少一个第二编码参数的候选取值,确定每个第二编码参数的目标参数值,所述至少一个第二编码参数包括所述任一编码参数,所述每个第二编码参数的层级相同。
在一个实施例中,所述处理器1101基于所述编码参数集合中至少一个第二编码参数的候选取值,确定每个第二编码参数的目标参数值,包括:
将所述每个第二编码参数的每个候选取值进行组合,得到至少一个取值组合;
以每个取值组合执行编码过程,得到所述每个取值组合对应的性能;
从所述至少一个取值组合中选择性能满足调参要求的取值组合,并将选择的取值组合中的候选取值作为相应第二编码参数的目标参数值。
在一个实施例中,所述处理器1101基于所述编码参数集合中至少一个第二编码参数的候选取值,确定每个第二编码参数的目标参数值,包括:
将所述编码参数集合中每个编码参数的每个候选取值进行组合,得到至少一个取值组合;
以每个取值组合执行编码过程,得到所述每个取值组合对应的性能;
从所述至少一个取值组合中选择性能满足调参要求的取值组合,并将选择的取值组合中的候选取值作为相应编码参数的目标参数值。
在一个实施例中,所述处理器1101还用于获取预先配置的所述任一编码参数的取值范围;或者,基于所述任一编码参数在目标编码档位的相邻编码档位下的档位参数值,确定所述任一编码参数在所述目标编码档位的取值范围,所述档位参数值随编码档位呈单调趋势变化。
在一个实施例中,所述处理器1101按照所述任一编码参数的调节步长在所述任一编码参数的取值范围内进行搜索,以得到至少一个候选取值,包括:
根据调参要求确定搜索方向;
按照所述搜索方向和所述任一编码参数的调节步长在所述任一编码参数的取值范围内进行搜索,以得到至少一个候选取值。
在一个实施例中,所述编码参数集合中任一编码参数的调节方式,还包括:
若所述至少一个候选取值中不存在性能满足调参要求的候选取值,则减小所述调节步长;
按照减小后的调节步长重新从所述任一编码参数的参数值范围中选取新的候选取值,并从新的候选取值中选择性能满足调参要求的候选取值,并将选择的候选取值作为所述任一编码参数的候选取值。
在一个实施例中,处理器1101还用于根据所述编码器的编码流程中的每个执行步骤的从属关系,确定所述每个执行步骤所关联的编码参数的层级。
在一个实施例中,所述调参对象包括目标编码模块、目标编码档位或者目标编码模式;
调参要求包括调参目标和加速比。
本申请实施例中,处理器1101通过通信接口1103接收针对编码器的调参任务,调参任务包括调参对象,基于调参对象,在编码器中确定待调节的编码参数集合,编码参数集合包括至少一个编码参数,至少一个编码参数具有层级;基于至少一个编码参数的层级,对至少一个编码参数进行调节,可以针对调参对象来实现编码参数的自动调优。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。
以上所揭露的仅为本申请的部分实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于本申请所涵盖的范围。
Claims (17)
1.一种媒体数据编码方法,其特征在于,包括:
接收编码任务,所述编码任务包括媒体数据和编码需求;
将所述媒体数据和编码需求输入至调参后的编码器中,通过所述调参后的编码器确定与所述编码需求匹配的编码档位;
采用所述调参后的编码器中的多个编码参数在所述编码档位下的档位参数值,对所述媒体数据进行编码处理,得到编码后的媒体数据;
其中,所述多个编码参数中的至少一个编码参数在所述编码档位下的档位参数值是基于所述多个编码参数的层级进行调节的。
2.一种用于调节编码参数的方法,其特征在于,包括:
接收针对编码器的调参任务,所述调参任务包括调参对象;
基于所述调参对象,在所述编码器中确定待调节的编码参数集合,所述编码参数集合包括至少一个编码参数,所述至少一个编码参数具有层级;
基于所述至少一个编码参数的层级,对所述至少一个编码参数进行调节。
3.如权利要求2所述的方法,其特征在于,所述基于所述至少一个编码参数的层级,对所述至少一个编码参数进行调节,包括:
针对所述编码参数集合中预设层级的目标编码参数,若所述目标编码参数存在性能满足调参要求的参数值,则暂停对所述目标编码参数的下一层级的编码参数进行调节;
若所述目标编码参数不存在满足调参要求的参数值,则对所述目标编码参数的下一层级的编码参数进行调节。
4.如权利要求2所述的方法,其特征在于,所述基于所述至少一个编码参数的层级,对所述至少一个编码参数进行调节,包括:
针对所述编码参数集合中预设层级的目标编码参数,若所述目标编码参数存在性能满足调参要求的参数值,或者所述编码参数集合中的每个第一编码参数均已确定是否存在性能满足调参要求的参数值,则对所述目标编码参数的上一层级的编码参数进行调节;
其中,所述第一编码参数的层级为所述预设层级。
5.如权利要求2至4任一项所述的方法,其特征在于,所述编码参数集合中任一编码参数的调节方式包括:
按照所述任一编码参数的调节步长在所述任一编码参数的取值范围内进行搜索,以得到至少一个候选取值;
以每个候选取值执行编码过程,得到所述每个候选取值对应的性能;
从所述至少一个候选取值中选择编码指标满足调参要求的候选取值,并将选择的候选取值作为所述任一编码参数的候选取值;
基于所述编码参数集合中至少一个第二编码参数的候选取值,确定每个第二编码参数的目标参数值,所述至少一个第二编码参数包括所述任一编码参数,所述每个第二编码参数的层级相同。
6.如权利要求5所述的方法,其特征在于,所述基于所述编码参数集合中至少一个第二编码参数的候选取值,确定每个第二编码参数的目标参数值,包括:
将所述每个第二编码参数的每个候选取值进行组合,得到至少一个取值组合;
以每个取值组合执行编码过程,得到所述每个取值组合对应的性能;
从所述至少一个取值组合中选择性能满足调参要求的取值组合,并将选择的取值组合中的候选取值作为相应第二编码参数的目标参数值。
7.如权利要求5所述的方法,其特征在于,所述基于所述编码参数集合中至少一个第二编码参数的候选取值,确定每个第二编码参数的目标参数值,包括:
将所述编码参数集合中每个编码参数的每个候选取值进行组合,得到至少一个取值组合;
以每个取值组合执行编码过程,得到所述每个取值组合对应的性能;
从所述至少一个取值组合中选择性能满足调参要求的取值组合,并将选择的取值组合中的候选取值作为相应编码参数的目标参数值。
8.如权利要求5所述的方法,其特征在于,所述方法还包括:
获取预先配置的所述任一编码参数的取值范围;或者,
基于所述任一编码参数在目标编码档位的相邻编码档位下的档位参数值,确定所述任一编码参数在所述目标编码档位的取值范围,所述档位参数值随编码档位呈单调趋势变化。
9.如权利要求5所述的方法,其特征在于,所述按照所述任一编码参数的调节步长在所述任一编码参数的取值范围内进行搜索,以得到至少一个候选取值,包括:
根据调参要求确定搜索方向;
按照所述搜索方向和所述任一编码参数的调节步长在所述任一编码参数的取值范围内进行搜索,以得到至少一个候选取值。
10.如权利要求5所述的方法,其特征在于,所述编码参数集合中任一编码参数的调节方式,还包括:
若所述至少一个候选取值中不存在性能满足调参要求的候选取值,则减小所述调节步长;
按照减小后的调节步长重新从所述任一编码参数的参数值范围中选取新的候选取值,并从新的候选取值中选择性能满足调参要求的候选取值,并将选择的候选取值作为所述任一编码参数的候选取值。
11.如权利要求2所述的方法,其特征在于,所述方法还包括:
根据所述编码器的编码流程中的每个执行步骤的从属关系,确定所述每个执行步骤所关联的编码参数的层级。
12.如权利要求2所述的方法,其特征在于,所述调参对象包括目标编码模块、目标编码档位或者目标编码模式;
调参要求包括调参目标和加速比。
13.一种编码器的处理装置,其特征在于,所述装置包括:
接收单元,用于接收编码任务,所述编码任务包括媒体数据和编码需求;
处理单元,用于将所述媒体数据和编码需求输入至调参后的编码器中,通过所述调参后的编码器确定与所述编码需求匹配的编码档位;采用所述调参后的编码器中的多个编码参数在所述编码档位下的档位参数值,对所述媒体数据进行编码处理,得到编码后的媒体数据;其中,所述多个编码参数中的至少一个编码参数在所述编码档位下的档位参数值是基于所述多个编码参数的层级进行调节的。
14.一种用于调节编码参数的装置,其特征在于,所述装置包括:
接收单元,用于接收针对编码器的调参任务,所述调参任务包括调参对象;
处理单元,用于基于所述调参对象,在所述编码器中确定待调节的编码参数集合,所述编码参数集合包括至少一个编码参数,所述至少一个编码参数具有层级;基于所述至少一个编码参数的层级,对所述至少一个编码参数进行调节。
15.一种计算机设备,其特征在于,所述计算机设备包括处理器、存储装置和通信接口,所述处理器、存储装置和通信接口相互连接,其中:
所述存储装置,用于存储计算机程序,所述计算机程序包括程序指令;
所述处理器,用于调用所述程序指令,执行如权利要求1所述的编码器的处理方法,或者执行如权利要求2至12任一项所述的用于调节编码参数的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,用于执行如权利要求1所述的编码器的处理方法,或者执行如权利要求2至12任一项所述的用于调节编码参数的方法。
17.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序适于由处理器加载并执行如权利要求1所述的编码器的处理方法,或者执行如权利要求2至12任一项所述的用于调节编码参数的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410542579.8A CN118317090A (zh) | 2024-04-30 | 2024-04-30 | 媒体数据编码方法、用于调节编码参数的方法、装置、设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410542579.8A CN118317090A (zh) | 2024-04-30 | 2024-04-30 | 媒体数据编码方法、用于调节编码参数的方法、装置、设备、存储介质及程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118317090A true CN118317090A (zh) | 2024-07-09 |
Family
ID=91731166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410542579.8A Pending CN118317090A (zh) | 2024-04-30 | 2024-04-30 | 媒体数据编码方法、用于调节编码参数的方法、装置、设备、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118317090A (zh) |
-
2024
- 2024-04-30 CN CN202410542579.8A patent/CN118317090A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210160510A1 (en) | Iterative techniques for encoding video content | |
KR20200058398A (ko) | 정보 처리 장치 및 방법 | |
US11785216B2 (en) | Point cloud coding methods, encoder, and decoder | |
JP7143529B2 (ja) | 画像復元方法及びその装置、電子機器並びに記憶媒体 | |
CN110401836B (zh) | 一种图像解码、编码方法、装置及其设备 | |
CN111160531B (zh) | 神经网络模型的分布式训练方法、装置及电子设备 | |
US10911785B2 (en) | Intelligent compression of grainy video content | |
CN113473148A (zh) | 一种用于视频编码的计算系统及视频编码方法 | |
US20230319292A1 (en) | Reinforcement learning based rate control | |
CN115984570A (zh) | 一种视频去噪方法、装置、存储介质和电子装置 | |
CN118317090A (zh) | 媒体数据编码方法、用于调节编码参数的方法、装置、设备、存储介质及程序产品 | |
CN115152217A (zh) | 感兴趣区域的可控视频编码技术 | |
CN117408910A (zh) | 三维模型补全网络的训练方法、三维模型补全方法及装置 | |
US20040161034A1 (en) | Method and apparatus for perceptual model based video compression | |
CN115334308B (zh) | 一种面向学习模型的编码决策处理方法、装置及设备 | |
US10559093B2 (en) | Selecting encoding options | |
Polakovič et al. | An approach to video compression using saliency based foveation | |
CN109995962B (zh) | 图片编码尺寸上限的控制方法及系统 | |
Hwang et al. | A layer-wise extreme network compression for super resolution | |
AU2022279597B2 (en) | Training rate control neural networks through reinforcement learning | |
Yuan et al. | Optimized quantization parameter selection for video-based point cloud compression | |
Lee et al. | Reinforcement learning for rate-distortion optimized hierarchical prediction structure | |
KR20040017370A (ko) | 오브젝트-기반 비디오 인코딩의 자동 마스크 선택 | |
EP4118750A1 (en) | Energy-aware processing system | |
CN115297223A (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 |