首页> 中国专利> 辅助编码方法、装置、计算机设备及存储介质

辅助编码方法、装置、计算机设备及存储介质

摘要

本申请公开了一种辅助编码方法、装置、计算机设备及存储介质,该方法包括获取多媒体数据的第一编码数据;根据第一编码数据确定场景信息;根据场景信息对第一编码数据进行调整,得到第二编码数据;将第二编码数据发送至主编码器,以便主编码器根据第二编码数据进行编码,得到多媒体数据。本申请实施例能够基于编码数据的内容识别当前场景,并基于当前场景对编码数据进行调整,使得调整后的编码数据与当前场景更加匹配,提高视频码率有效性,降低成本。

著录项

  • 公开/公告号CN112543328A

    专利类型发明专利

  • 公开/公告日2021-03-23

    原文格式PDF

  • 申请/专利权人 广州虎牙科技有限公司;

    申请/专利号CN201910893770.6

  • 发明设计人 洪旭东;

    申请日2019-09-20

  • 分类号H04N19/142(20140101);H04N19/137(20140101);H04N19/147(20140101);H04N19/176(20140101);H04N21/478(20110101);H04N21/443(20110101);

  • 代理机构11332 北京品源专利代理有限公司;

  • 代理人孟金喆

  • 地址 511400 广东省广州市番禺区钟村街(汉溪商业中心)泽溪街13号1301

  • 入库时间 2023-06-19 10:21:15

说明书

技术领域

本申请实施例涉及数字信号处理技术,尤其涉及一种辅助编码方法、装置、计算机设备及存储介质。

背景技术

随着互联网技术的快速发展,伴随着用户对高清视频的需求量的增加,视频多媒体的视频数据量也在不断加大。如果未经压缩,这些视频很难应用于实际的存储和传输。视频压缩解码技术可以帮助有效地去除视频数据中冗余信息,实现视频数据在互联网中快速传输和离线的存储。因此,视频压缩解码技术是视频应用中的一项关键技术。

目前,视频压缩编码技术已十分普遍,例如使用x264编码器进行编码。x264编码器是基于H.264/MPEG-4AVC视频压缩标准的视频压缩编码器,它提供了多种可以设置的参数来控制其编码效率。

在直播过程中,例如游戏主播,存在主播在游戏画面和不在游戏画面的情形。目前视频编码为统一编码,即游戏画面和非游戏画面的编码策略是相同的,会出现高频码率被浪费的情况,浪费成本。

发明内容

本申请提供一种辅助编码方法、装置、计算机设备及存储介质,以实现提高视频码率有效性,降低成本。

第一方面,本申请实施例提供了一种辅助编码方法,应用于辅助编码器,包括:

获取多媒体数据的第一编码数据;

根据第一编码数据确定场景信息;

根据场景信息对第一编码数据进行调整,得到第二编码数据;

将第二编码数据发送至主编码器,以便主编码器根据第二编码数据进行编码,得到多媒体数据。

第二方面,本申请实施例还提供了一种辅助编码装置,应用于辅助编码器,包括:

编码数据获取模块,用于获取多媒体数据的第一编码数据;

场景信息确定模块,用于根据第一编码数据确定场景信息;

调整模块,用于根据场景信息对第一编码数据进行调整,得到第二编码数据;

数据反馈模块,用于将第二编码数据发送至主编码器,以便主编码器根据第二编码数据进行编码,得到多媒体数据。

第三方面,本申请实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现如第一方面所示的辅助编码方法。

第四方面,本申请实施例还提供了一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行如第一方面所示的辅助编码方法。

本申请实施例提供的辅助编码方法,能够由辅助编码器获取多媒体数据的第一编码数据;然后,根据第一编码数据确定场景信息;根据场景信息对第一编码数据进行调整,得到第二编码数据,最后,将第二编码数据发送至主编码器,以便主编码器根据第二编码数据进行编码,得到多媒体数据。相对于目前得到编码数据后,根据编码数据进行视频编码,无法区分不同场景,本申请实施例能够基于编码数据的内容识别当前场景,并基于当前场景对编码数据进行调整,使得调整后的编码数据与当前场景更加匹配,提高视频码率有效性,降低成本。

附图说明

图1是本申请实施例一中的一种系统架构示意图;

图2是本申请实施例一中的一种辅助编码方法的流程示意图;

图3是本申请实施例二中的一种辅助编码方法的流程示意图;

图4是本申请实施例三中的一种辅助编码装置的结构示意图;

图5是本申请实施例四中的一种计算机设备的结构示意图。

具体实施方式

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

目前,X264编码器提供了自适应量化,宏块树,率失真优化等多类特性,一般而言在使用x264编码器时在整个编码期间采用相同的编码参数和策略。但是视频画面的内容往往都是动态变化的,以游戏主播为例,存在主播在游戏中的画面,同时也存在主播等待游戏开始的画面。若这两种情况均使用相同的编码策略,则会出现资源浪费的问题。如何能够较好的实时的检测不同场景并根据不同场景动态配置编码策略一直是业界难题。基于此,本申请实施例提供了一种在整个开播期间编码过程中动态根据不同场景配置不同的编码策略的方案,从而达到更好的降低视频码率,节约成本的效果。

实施例一

图1为本申请实施例使用的系统架构示意图,其中包括主编码器010和辅助编码器020。辅助编码器020通过API接口与主编码器010进行通信。本申请中辅助编码器020可以基于延迟特征,生成第一编码数据,并基于第一编码数据获取场景信息,基于场景信息对第一编码数据进行调整,得到第二编码数据,再将第二编码数据通过API接口回传至主编码器010。其中,主编码器010和辅助编码器020均可使用x264的编码策略。

图2为本申请实施例一提供的辅助编码方法的流程示意图,本实施例可适用于进行视频编码的情况,该方法可以由辅助编码器来执行,辅助编码器可位于服务器端或用户终端内,该方法具体包括如下步骤:

步骤110、获取多媒体数据的第一编码数据。

在对某一帧进行编码时,可以基于延迟特性,使用辅助编码器生成第一编码数据。第一编码数据为编码结果数据,至少包括以下数据中的一种或多种的组合:1)编码中的各类宏块的数量,宏块包括I宏块、B宏块、P宏块以及SKIP宏块。其中,I(Intra picture)宏块为帧内编码宏块。I宏块可以是每个画面组(Group of Pictures,GOP)的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图象。I宏块相当于一个图像经过压缩后得到的压缩数据。P(predictive)宏块为前向预测宏块,通过充分将低于图像序列中前面已编码帧的时间冗余信息来压缩传输数据量的编码图像,又称为预测帧。B(bi-directionalinterpolated prediction)宏块为双向预测内插编码帧,既考虑与源图像序列前面已编码帧,也顾及源图像序列后面已编码帧之间的时间冗余信息来压缩传输数据量的编码图像,也叫双向预测帧。SKIP宏块标识无运动矢量残差的宏。统计上述各类宏块的数量。2)编码实际的恒定量化参数CRF值。若采用CRF码控模式,编码同样的码率需要设定的CRF值。3)编码的峰值信噪比(Peak Signal to Noise Ratio,PNSR),用于反应编码的质量。4)统计的编码时长。

步骤120、根据第一编码数据确定场景信息。

对第一编码数据进行分析,获取视频数据中图像帧的变化情况,基于变化情况确定场景信息。场景信息可以通过某参数标识,例如场景复杂度。当场景中图像变化较大时,场景复杂度较高。当场景中图像变化区域静止或变化较低时,场景复杂度较低。

步骤130、根据场景信息对第一编码数据进行调整,得到第二编码数据。

在确定场景信息后,可根据场景信息对第一编码数据进行调整。例如对CRF进行调整。可根据不同的场景复杂度配置不同的编码策略,每个编码策略包含不同的编码数据。基于步骤120得到的场景信息从预先设置的映射关系中确定编码策略包含的编码数据,基于编码数据对第一编码数据进行修改,得到第二编码数据。

步骤140、将第二编码数据发送至主编码器,以便主编码器根据第二编码数据进行编码,得到多媒体数据。

当辅助编码器对第一编码数据完成调整后,可通过API接口将第二编码数据回传给主编码器。能够在延迟机制中,快速为主编码器提供编码数据,降低主编码器负载。

进一步的,利用主编码器的延迟缓冲,使用辅助编码器进行编码,获取多媒体数据的第一编码数据。

一般来说在x264的使用场合都是允许一定的延迟,这部分延迟由x264的lookahead模块使用,lookahead模块主要对这些缓存帧做一些自适应量化,宏块树和码率控制的相关分析。Lookahead模块用于在同样的编码码率下提供更好的码率分配和率失真优化,提升编码画质。本申请实施例基于Lookahead模块提供的延迟特性,在辅助编码器内部开启一个无延迟的快速的辅助编码器。为了方便起见,辅助编码器采用恒定码率(ABR)码控算法。

本申请实施例提供的辅助编码方法,能够由辅助编码器获取多媒体数据的第一编码数据;然后,根据第一编码数据确定场景信息;根据场景信息对第一编码数据进行调整,得到第二编码数据,最后,将第二编码数据发送至主编码器,以便主编码器根据第二编码数据进行编码,得到多媒体数据。相对于目前得到编码数据后,根据编码数据进行视频编码,无法区分不同场景,本申请实施例能够基于编码数据的内容识别当前场景,并基于当前场景对编码数据进行调整,使得调整后的编码数据与当前场景更加匹配,提高视频码率有效性,降低成本。

实施例二

图3为本申请实施例二提供的一种辅助编码方法的流程示意图,作为上述实施例的进一步说明,包括:

步骤210、获取多媒体数据的第一编码数据。

步骤220、统计多媒体数据包含的总宏块数量、以及其中的帧内编码I宏块数量和帧间SKIP宏块数量。

根据步骤210中得到的第一编码数据,从中统计出总宏块数量。总宏块数量可以为I宏块数量、B宏块数量、P宏块数量以及帧间SKIP宏块数量的总和。

步骤230、根据总宏块数量和I宏块数量计算第一比例,第一比例为I宏块在总宏块中所占比例;根据总宏块数量和SKIP宏块数量计算第二比例,第二比例为SKIP宏块在总宏块中所占比例。

在步骤220得到总宏块数量、以及其中的帧内编码I宏块数量和帧间SKIP宏块数量之后,计算第一比例ratio

步骤240、根据第一比例和第二比例确定场景复杂度,将场景复杂度作为场景信息。

第一比例表示视频趋于运动的比例,第二比例表示视频趋于静止的比例。可以基于第一比例或第二比例确定场景复杂度,如将其中大于1/2的数值作为场景复杂度。这种方式虽然较为快捷,但是无法准确识别真实的场景复杂度。

基于此,可已通过下述方式计算场景复杂度:首先,根据预设参数和第二比例确定第一预处理比例。然后,根据第一预处理比例和第一比例的和确定场景复杂度。

场景复杂度函数可以通过下述公式计算:

complexity=ratio

其中,complexity为场景复杂度。根据经验,选取预设参数λ=0.5。易知,0≤complexity≤1.5。将第一比例ratio

进一步的,由于0-1.5之间包含的数值终端,为了方便量化,可在场景复杂度的取值区间平均划分K端,然后,将公式得到的场景复杂度所在的子区间作为场景复杂度的表示。其中,K为正整数,可选为10。

步骤250、根据场景信息对第一编码数据进行调整,得到第二编码数据。

示例性的,第一编码数据还包括恒定量化参数CRF。此时,步骤250包括:根据预设的对应关系确定与场景复杂度映射的编码参数值,编码参数值包括CRF。

可以预先设置不同场景复杂度素质与编码参考值的映射关系。编码参考值用于描述部分或全部的编码策略。编码参考值包括但不限于:恒定量化参数CRF、参考帧数量、运动搜索空间(复杂度小运动搜索降低)等。

可以预先设定每一段场景复杂度与之对应的编码参数值,例如采用CRF模式编码时,较低的场景复杂度可以采用较小的CRF保证质量,而较高的场景复杂度采用较高的CRF来控制码率不至于溢出。同时,对于较低场景复杂度,可以采用较轻的去块滤波强度更多的保留细节,采用较强的心里优化参数提供更好的主观质量,而较高的场景复杂度采用较强的去块滤波强度来抑制方块效应。

通过预先设置场景复杂度与编码参数值的映射关系,能够实现快速确定CRF数值。特别是在基于延迟机制中使用时,根据映射关系进行查找能够实现快速处理,提高处理效率,在系统延迟时实现无延迟的辅助编码计算。

进一步的,第一编码数据还包括峰值信噪比PSNR,在上述步骤之后,还包括:判断PSNR是否低于阈值,若低于阈值则减小CRF;若高于阈值则增加CRF。

在得到CRF之后,可以根据第一编码数据中的峰值信噪比PSNR对CRF做进一步优化。示例性的,可将峰值信噪比PSNR分段。若检测到当前复杂度的PSNR值较低,则进一步降低CRF值来保证质量,反之亦然。

上述实施方式能够够实现使用PSNR对CRF进行进一步的校正,提高编码效率。

可选的,第一编码数据还包括编码时长,编码时长为编码已使用的时间。

步骤250还包括:

若编码时长超过预设时长,则提高率失真优化强度;

若编码时长未超过预设时长,则降低率失真优化强度。

若编码时长较长,则说明延迟机制中剩余的时间较少。此时需要增加率失真优化强度,以减少率失真优化所用时间。率失真代价优化得到的优化参数用于保证在同样的码率下能够提供更好的主观和客观质量,唯一的代价就是增加编码时长,降低编码效率。在这一步由于检测到编码时长,若编码时长较低,则提升率失真优化强度得到更好的编码质量,反之亦然。

上述实施方式能够基于编码时长对率失真优化强度进行调整,实现在可控时间范围内,完成预定任务,提高效率以及流程完整性。

步骤260、将第二编码数据发送至主编码器,以便主编码器根据第二编码数据进行编码,得到多媒体数据。

本申请实施例提供的辅助编码方法,能够由辅助编码器获取多媒体数据的第一编码数据;然后,根据第一编码数据确定场景信息;根据场景信息对第一编码数据进行调整,得到第二编码数据,最后,将第二编码数据发送至主编码器,以便主编码器根据第二编码数据进行编码,得到多媒体数据。相对于目前得到编码数据后,根据编码数据进行视频编码,无法区分不同场景,本申请实施例能够基于编码数据的内容识别当前场景,并基于当前场景对编码数据进行调整,使得调整后的编码数据与当前场景更加匹配,提高视频码率有效性,降低成本。此外,本申请实施例能够基于开源编码器x264,够实时监测待编码视频序列的场景信息,根据场景信息动态配置对应的编码参数,在不影响画质的前提下节省成本。同时,根据编码反馈实时更新编码策略,提供更为高效编码方案。

实施例三

图4为本申请实施例三提供的一种辅助编码装置,应用于辅助编码器,包括:编码数据获取模块301、场景信息确定模块302、调整模块303以及数据反馈模块304。

其中,编码数据获取模块301,用于获取多媒体数据的第一编码数据;

场景信息确定模块302,用于根据第一编码数据确定场景信息;

调整模块303,用于根据场景信息对第一编码数据进行调整,得到第二编码数据;

数据反馈模块304,用于将第二编码数据发送至主编码器,以便主编码器根据第二编码数据进行编码,得到多媒体数据。

进一步的,场景信息确定模块302用于:

统计多媒体数据包含的总宏块数量、以及其中的帧内编码I宏块数量和帧间SKIP宏块数量;

根据总宏块数量和I宏块数量计算第一比例,第一比例为I宏块在总宏块中所占比例;

根据总宏块数量和SKIP宏块数量计算第二比例,第二比例为SKIP宏块在总宏块中所占比例;

根据第一比例和第二比例确定场景复杂度,将场景复杂度作为场景信息。

进一步的,场景信息确定模块302用于:

根据预设参数和第二比例确定第一预处理比例;

根据第一预处理比例和第一比例的和确定场景复杂度。

进一步的,第一编码数据还包括恒定量化参数CRF,相应的,调整模块303用于:

根据预设的对应关系确定与场景复杂度映射的编码参数值,编码参数值包括CRF。

进一步的,第一编码数据还包括峰值信噪比PSNR,调整模块303还用于:

判断PSNR是否低于阈值,若低于阈值则减小CRF;

若高于阈值则增加CRF。

进一步的,第一编码数据还包括编码时长,编码时长为编码已使用的时间;相应的,调整模块303还用于:

若编码时长超过预设时长,则提高率失真优化强度;

若编码时长未超过预设时长,则降低率失真优化强度。

进一步的,编码数据获取模块301用于:

利用主编码器的延迟缓冲,使用辅助编码器进行编码,获取多媒体数据的第一编码数据。

本申请实施例提供的辅助编码装置,能够由:编码数据获取模块301获取多媒体数据的第一编码数据;然后,场景信息确定模块302根据第一编码数据确定场景信息;调整模块303根据场景信息对第一编码数据进行调整,得到第二编码数据,最后,数据反馈模块304将第二编码数据发送至主编码器,以便主编码器根据第二编码数据进行编码,得到多媒体数据。相对于目前得到编码数据后,根据编码数据进行视频编码,无法区分不同场景,本申请实施例能够基于编码数据的内容识别当前场景,并基于当前场景对编码数据进行调整,使得调整后的编码数据与当前场景更加匹配,提高视频码率有效性,降低成本。

本申请实施例所提供的辅助编码装置可执行本申请任意实施例所提供的辅助编码方法,具备执行方法相应的功能模块和有益效果。

实施例四

图5为本申请实施例四提供的一种计算机设备的结构示意图,如图5所示,该计算机设备包括处理器40、存储器41、输入装置42和输出装置43;计算机设备中处理器40的数量可以是一个或多个,图5中以一个处理器40为例;计算机设备中的处理器40、存储器41、输入装置42和输出装置43可以通过总线或其他方式连接,图5中以通过总线连接为例。

存储器41作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请实施例中的辅助编码方法对应的程序指令/模块(例如,编码数据获取模块301、场景信息确定模块302、调整模块303以及数据反馈模块304)。处理器40通过运行存储在存储器41中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的辅助编码方法。

存储器41可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器41可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器41可进一步包括相对于处理器40远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置42可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置43可包括显示屏等显示设备。

实施例五

本申请实施例五还提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行一种辅助编码方法,该方法应用于辅助编码器,该方法包括:

获取多媒体数据的第一编码数据;

根据第一编码数据确定场景信息;

根据场景信息对第一编码数据进行调整,得到第二编码数据;

将第二编码数据发送至主编码器,以便主编码器根据第二编码数据进行编码,得到多媒体数据。

进一步的,根据第一编码数据确定场景信息,包括:

统计多媒体数据包含的总宏块数量、以及其中的帧内编码I宏块数量和帧间SKIP宏块数量;

根据总宏块数量和I宏块数量计算第一比例,第一比例为I宏块在总宏块中所占比例;

根据总宏块数量和SKIP宏块数量计算第二比例,第二比例为SKIP宏块在总宏块中所占比例;

根据第一比例和第二比例确定场景复杂度,将场景复杂度作为场景信息。

进一步的,根据第一比例和第二比例确定场景复杂度,包括:

根据预设参数和第二比例确定第一预处理比例;

根据第一预处理比例和第一比例的和确定场景复杂度。

进一步的,第一编码数据还包括恒定量化参数CRF,相应的,根据场景信息对第一编码数据进行调整,得到第二编码数据,包括:

根据预设的对应关系确定与场景复杂度映射的编码参数值,编码参数值包括CRF。

进一步的,第一编码数据还包括峰值信噪比PSNR,在根据预设的对应关系确定与场景复杂度映射的编码参数值,编码参数值包括CRF之后,还包括:

判断PSNR是否低于阈值,若低于阈值则减小CRF;

若高于阈值则增加CRF。

进一步的,第一编码数据还包括编码时长,编码时长为编码已使用的时间;相应的,根据场景信息对第一编码数据进行调整,得到第二编码数据,包括:

若编码时长超过预设时长,则提高率失真优化强度;

若编码时长未超过预设时长,则降低率失真优化强度。

进一步的,获取第一编码数据,包括:

利用主编码器的延迟缓冲,使用辅助编码器进行编码,获取多媒体数据的第一编码数据。

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

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

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

注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号