视频编码方法、电子设备和计算机可读存储介质与流程

文档序号:32216854发布日期:2022-11-16 07:47阅读:36来源:国知局
视频编码方法、电子设备和计算机可读存储介质与流程

1.本技术涉及数据处理技术领域,特别是涉及一种视频编码方法、电子设备和计算机可读存储介质。


背景技术:

2.由于视频数据的数据量比较大,通常需要对视频数据进行编码以降低视频数据的数据量,但后端对视频数据进行编码的编码能力是有限的,也就是说可用编码总负载通常是有限的,当多个通道的视频数据需要编码时,现有技术中通常是为各个通道设置固定的帧率从而分配可用编码总负载,但是各个通道所采集的视频数据中的目标是在不断变化的,当编码帧率被指定后会增加部分帧率较低的通道中目标被忽略的概率,导致部分通道的编码帧率的合理性降低。有鉴于此,如何在可用编码总负载有限时提高多通道视频编码时各个通道的编码帧率的合理性成为亟待解决的问题。


技术实现要素:

3.本技术主要解决的技术问题是提供一种视频编码方法、电子设备和计算机可读存储介质,能够提高多通道视频编码时各个通道的编码帧率的合理性。
4.为解决上述技术问题,本技术第一方面提供一种视频编码方法,该方法包括:获得可用编码总负载和多个通道各自对应的待使用编码负载;所述待使用编码负载基于所述通道内视频数据的分辨率和帧率确定;获得各个所述通道对应的动检占比;所述动检占比基于各个所述通道内视频数据的当前帧中运动目标的占比确定;基于各个所述通道对应的动检占比和所述待使用编码负载,为各个所述通道分配所述可用编码总负载,得到各个所述通道对应的匹配编码负载;所述匹配编码负载与所述动检占比正相关;基于各个所述通道对应的匹配编码负载,确定各个所述通道对应的编码帧率,并按各个所述通道对应的编码帧率对通道内的视频数据进行编码。
5.为解决上述技术问题,本技术第二方面提供一种电子设备,该电子设备包括:相互耦接的存储器和处理器,其中,所述存储器存储有程序数据,所述处理器调用所述程序数据以执行上述第一方面所述的方法。
6.为解决上述技术问题,本技术第三方面提供一种计算机存储介质,其上存储有程序数据,所述程序数据被处理器执行时实现上述第一方面所述的方法。
7.上述方案,获得可用编码总负载和多个通道各自对应的待使用编码负载,当可用编码总负载难以满足多个通道各自对应的待使用编码负载时,获得各个通道对应的动检占比,其中动检占比基于各个通道内视频数据的当前帧中运动目标的占比确定,而运动目标往往是视频数据中需要关注的重点对象,也就是说动检占比能够作为衡量各个通道内视频数据重要程度的指标,进而基于各个通道对应的动检占比和待使用编码负载,为各个通道分配可用编码总负载,得到各个通道对应的匹配编码负载,并且匹配编码负载与动检占比正相关,因此,当通道内视频数据的重要程度越高时所能分到的匹配编码负载越高,基于匹
配编码负载确定编码帧率,能够为重要程度越高的通道分配更高的编码帧率,按照各个通道对应的编码帧率对通道内的视频数据进行编码,进而有效提高多通道视频编码时各个通道的编码帧率的合理性。
附图说明
8.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
9.图1是本技术视频编码方法一实施方式的流程示意图;
10.图2是本技术视频编码方法另一实施方式的流程示意图;
11.图3是本技术视频编码方法又一实施方式的流程示意图;
12.图4是本技术电子设备一实施方式的结构示意图;
13.图5是本技术计算机可读存储介质一实施方式的结构示意图。
具体实施方式
14.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性的劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
15.本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。
16.请参阅图1,图1是本技术视频编码方法一实施方式的流程示意图,该方法包括:
17.s101:获得可用编码总负载和多个通道各自对应的待使用编码负载,待使用编码负载基于通道内视频数据的分辨率和帧率确定。
18.具体地,可用编码总负载基于后端编码装置在单位时间内的最大编码面积确定,其中,最大编码面积对应有单位时间内的可用编码帧数和可用编码面积,且可用编码帧数与可用编码面积的乘积为最大编码面积。
19.进一步地,多个通道内各自采集有视频数据,视频数据对应有编码参数包括分辨率和帧率,各个通道对应的待使用编码负载基于通道内视频数据的分辨率和帧率确定。其中,通道内视频数据对应为通道采集的原始数据,原始数据包括但不限于视频流或连续的图像帧,原始数据对应有分辨率和帧率,即为视频数据的编码参数。
20.在一应用方式中,获得后端编码装置的可用编码总负载,获得各个通道内视频数据对应的编码参数,确定各个通道对应的待使用编码负载。
21.s102:获得各个通道对应的动检占比,动检占比基于各个通道内视频数据的当前帧中运动目标的占比确定。
22.具体地,当触发获取动检占比的条件时,获得各个通道对应的动检占比,其中,动
检占比可由各个通道检测后上传也可在编码前由后端编码装置进行检测。
23.在一应用方式中,获取各个通道内视频数据的当前帧,将当前帧与历史帧进行比对进而确定当前帧中的运动目标,其中,历史帧为当前帧之前的视频帧,基于运动目标在当前帧中所占画面的比例确定动检占比。
24.在另一应用方式中,各个通道内实时检测当前帧相对历史帧中的运动目标,基于运动目标在当前帧中所占画面的比例确定动检占比,其中,历史帧为当前帧之前的视频帧,响应于触发获取动检占比的条件,从各个通道内获取当前的动检占比。
25.在一具体应用场景中,各个通道内实时检测当前帧相对历史帧中的运动目标,为运动目标设置运动检测框,基于所有运动检测框的并集区域在当前帧中所占画面的比例确定动检占比。其中,当前帧中的每个运动对应有各自的运动检测框。
26.可以理解的是,运动目标往往是视频数据中需要关注的重点对象,也就是说动检占比能够作为衡量各个通道内视频数据重要程度的指标。
27.s103:基于各个通道对应的动检占比和待使用编码负载,为各个通道分配可用编码总负载,得到各个通道对应的匹配编码负载,匹配编码负载与动检占比正相关。
28.具体地,基于各个通道对应的动检占比对可用编码总负载进行划分,将各个通道所能分到的编码负载与待使用编码负载进行比对,若所有通道所能分到的编码负载均小于待使用编码负载,则对各个通道所能分到的编码负载进行适应性取整,为各个通道设置匹配编码负载。
29.进一步地,若存在至少一个通道所能分到的编码负载大于或等于待使用编码负载,则对应通道所能分到的编码负载能够满足待使编码负载的使用,在可用编码总负载的剩余负载中,为对应通道设置匹配编码负载为对应通道的待使用编码负载的数值,进而基于未分配有匹配编码负载的通道对应的动检占比对剩余负载进行划分,重复上述比对过程,直至剩余未分配有匹配编码负载的通道所能分到的编码负载小于待使用编码负载,则对剩余通道所能分到的编码负载进行适应性取整,为对应的通道设置匹配编码负载。
30.在一应用场景中,假设可用编码总负载为每秒60帧分辨率为1080p的视频帧,共四个通道的编码参数均为帧率30帧/秒且分辨率为1080p,也就是说多个通道的待使用编码负载为120帧分辨率为1080p的视频帧,因此,可用编码总负载无法满足所有通道按照待使用编码负载进行编码,当四个通道的动检占比分别为70%、40%、50%和60%时,则基于各个通道的动检占比对可用编码总负载进行划分,四个通道依次所能分到的编码负载为每秒19.09帧1080p视频帧、每秒10.9帧1080p视频帧、每秒13.63帧1080p视频帧和每秒16.36帧1080p视频帧,因此,所有通道所能分到的编码负载均小于待使用编码负载,对所有通道所能分到的编码负载进行适应性取整以使可用编码总负载均被使用,得到四个通道依次对应的匹配编码负载为每秒19帧1080p视频帧、每秒11帧1080p视频帧、每秒14帧1080p视频帧和每秒16帧1080p视频帧。
31.在另一应用场景中,仍以上一应用场景中的条件为例,当四个通道的动检占比分别为70%、30%、10%和10%时,则基于各个通道的动检占比对可用编码总负载进行划分,四个通道依次所能分到的编码负载为每秒35帧1080p视频帧、每秒15帧1080p视频帧、每秒5帧1080p视频帧和每秒5帧1080p视频帧,因此,存在一个通道所能分到的编码负载超过待使用编码负载,则对应的通道的匹配编码负载设置为待使用编码负载,也就是每秒30帧1080p
视频帧,此时剩余负载为每秒30帧1080p视频帧,基于未分配有匹配编码负载的通道对应的动检占比对剩余负载进行划分,得到剩余通道对应的所能分到的编码负载为每秒18帧1080p视频帧、每秒6帧1080p视频帧和每秒6帧1080p视频帧,此时,所有剩余通道所能分到的编码负载均小于待使用编码负载,适应性取整后获得剩余通道依次对应的匹配编码负载为每秒18帧1080p视频帧、每秒6帧1080p视频帧和每秒6帧1080p视频帧。
32.可以理解的是,各个通道对应的匹配编码负载与动检占比正相关,当通道内视频数据的重要程度越高时所能分到的匹配编码负载越高。
33.s104:基于各个通道对应的匹配编码负载,确定各个通道对应的编码帧率,并按各个通道对应的编码帧率对通道内的视频数据进行编码。
34.具体地,基于各个通道对应的匹配编码负载确定各个通道对应的编码帧率,进而在对各个通道内的视频数据进行编码时按照各自对应的编码帧率进行编码。
35.在一应用场景中,在确定匹配编码负载时即可获得匹配编码负载所对应的编码帧率,基于匹配编码负载确定编码帧率,能够为重要程度越高的通道分配更高的编码帧率,当可用编码总负载不足以保证所有通道按待使用编码负载进行编码时,动检占比较大的通道对应有更高的编码帧率,从而充分利用编码总负载并为运动目标占比较高的通道配置更高的编码帧率,提高对运动目标进行捕捉的精度,进而有效提高多通道视频编码时各个通道的编码帧率的合理性。
36.可选地,基于各个通道对应的匹配编码负载,确定各个通道对应的编码帧率,并按各个通道对应的编码帧率对通道内的视频数据进行编码之前,还包括:在预设时间间隔内利用匹配编码负载对各个通道内的视频数据进行编码;响应于超过预设时间间隔,返回至获得各个通道对应的动检占比的步骤。
37.具体地,当确定新的匹配编码负载后保持当前的匹配编码负载,按照当前的匹配编码负载确定编码帧率,从而按照编码帧率编码预设时间间隔,当预设时间间隔到达后再次触发获取动检占比的条件。其中,基于各个通道对应的编码帧率编码预设时间间隔内的视频数据,当经过预设时间间隔后再次获取各个通道对应的动检占比,以再次调整编码帧率,从而适应各通道内采集的视频数据中运动目标的变化过程,同时避免频繁获取动检占比以致编码帧率不断调整。
38.上述方案,获得可用编码总负载和多个通道各自对应的待使用编码负载,当可用编码总负载难以满足多个通道各自对应的待使用编码负载时,获得各个通道对应的动检占比,其中动检占比基于各个通道内视频数据的当前帧中运动目标的占比确定,而运动目标往往是视频数据中需要关注的重点对象,也就是说动检占比能够作为衡量各个通道内视频数据重要程度的指标,进而基于各个通道对应的动检占比和待使用编码负载,为各个通道分配可用编码总负载,得到各个通道对应的匹配编码负载,并且匹配编码负载与动检占比正相关,因此,当通道内视频数据的重要程度越高时所能分到的匹配编码负载越高,基于匹配编码负载确定编码帧率,能够为重要程度越高的通道分配更高的编码帧率,按照各个通道对应的编码帧率对通道内的视频数据进行编码,进而有效提高多通道视频编码时各个通道的编码帧率的合理性。
39.请参阅图2,图2是本技术视频编码方法另一实施方式的流程示意图,该方法包括:
40.s201:获得可用编码总负载和多个通道各自对应的待使用编码负载,待使用编码
负载基于通道内视频数据的分辨率和帧率确定。
41.具体地,可用编码总负载基于后端编码装置的最大编码面积确定,各个通道对应的待使用编码负载基于通道内视频数据的分辨率和帧率确定。
42.在一应用方式中,获得各个通道采集的视频数据,确定视频数据的分辨率和帧率得到各个通道对应的待使用编码帧率,基于后端编码装置单位时间内的最大编码面积,确定可用编码总负载。
43.s202:获得各个通道对应的动检占比,动检占比基于各个通道内视频数据的当前帧中运动目标的占比确定。
44.具体地,各个通道内对当前帧中的运动目标进行实时检测,将当前帧与当前帧之前的上一视频帧或上一关键帧进行比对,确定当前帧中的运动目标,从而基于运动目标在当前帧中所占画面的比例确定各个通道对应的动检占比。
45.s203:基于各个通道对应的动检占比对可用编码总负载进行划分,得到各个通道对应的可分配编码负载,可分配编码负载与动检占比正相关。
46.具体地,基于各个通道对应的动检占比对可用编码总负载进行初步划分,也就是只参照动检占比一个参数对可用编码总负载进行划分,得到各个通道对应的可分配编码负载,此时可分配编码负载为完全基于动检占比的理论值。
47.进一步地,在对可用编码总负载进行划分时,首先获取所有通道对应的动检占比的总和,将每个通道对应的动检占比与总和相除后再与可用编码总负载相乘得到各个通道对应的可分配编码负载,以使可分配编码负载与动检占比呈正比例关系。
48.可选地,基于各个通道对应的动检占比对可用编码总负载进行划分,得到各个通道对应的可分配编码负载之前,还包括:基于各个通道对应的动检占比,确定各个通道对应的动检层级;其中,动检层级与动检占比的数值相关,最高层级对应的动检占比的数值大于第一数值,最低层级对应的动检占比的数值小于或等于第二数值;响应于获得动检层级为最低层级的通道,为至少一个动检层级为最低层级的通道设置下限编码负载,并将已设置下限编码负载的通道作为已划分通道;下限编码负载基于通道内视频数据的分辨率和一个视频帧确定。
49.具体地,动检占比对应有至少两个层级,其中最高层级对应的动检占比的数值大于第一数值,最低层级对应的动检占比的数值小于或等于第二数值,其中,第一数值大于第二数值,且第二数值的取值极小,当动检占比的数值小于第二数值时,表示对应通道内的视频数据中运动目标的变化幅度极小。
50.可选地,第二数值为零,当任一通道的动检占比对应的动检层级为最低层级时,也就表示对应通道内视频数据中目前没有运动目标,为完全静止状态。
51.进一步地,当获得动检层级为最低层级的通道时,则表示存在至少一个通道内的视频数据为几乎静止或完全静止的状态,为至少一个动检层级为最低层级的通道设置下限编码负载,并将已设置下限编码负载的通道作为已划分通道。其中,下限编码负载基于通道内视频数据的分辨率和一个视频帧确定,也就是对应的通道内每秒只编码一个视频帧,在保持视频数据的时序的基础上,减少对应通道内的编码负载消耗并适配通道内静止的状态。
52.可选地,除最低层级和最高层级之外动检层级还设置有中间层级,以便对动检占
比进行精度更高的划分。
53.在一应用场景中,基于各个通道对应的动检占比对可用编码总负载进行划分,得到各个通道对应的可分配编码负载,包括:响应于获得已划分通道,将下限编码负载作为已划分通道的可分配编码负载,基于各个区别于已划分通道的未划分通道对应的动检占比,对剩余划分编码负载进行划分,得到各个未划分通道对应的可分配编码负载;其中,剩余划分编码负载基于可用编码总负载与所有已划分通道的下限编码负载的差值确定;响应于未获得已划分通道,基于各个通道对应的动检占比与所有通道对应的动检占比总和之间的比值,对可用编码总负载进行划分,得到各个通道对应的可分配编码负载。
54.具体地,当获得已划分通道时,则将下限编码负载作为已划分通道的可分配编码负载,计算可用编码总负载与所有已划分通道的下限编码负载的差值,作为剩余划分编码负载。进而,基于各个未划分通道对应的动检占比,对剩余划分编码负载进行划分,得到各个未划分通道对应的可分配编码负载,其中,未划分通道区别于已划分通道。
55.进一步地,当未获得已划分通道时,基于各个通道对应的动检占比与所有通道对应的动检占比总和之间的比值,对可用编码总负载进行划分,得到各个通道对应的可分配编码负载。
56.也就是说,如果不存在最低层级的动检占比,则不存在已划分通道,基于各个通道对应的动检占比与所有通道对应的动检占比总和之间的比值,对可用编码总负载进行划分即可,若存在最低层级的动检占比,则为至少一个动检层级为最低层级的通道设置下限编码负载,并将已设置下限编码负载的通道作为已划分通道,对剩余的未划分通道按动检占比对剩余划分编码负载进行划分,得到各个未划分通道对应的可分配编码负载。通过对最低层级的动检占比对应的通道指定下限编码负载,从而保持各个通道视频数据的连续性,并减少最低层级的动检占比对应的通道对编码负载的消耗。
57.在一具体应用场景中,假设可用编码总负载为每秒60帧分辨率为1080p的视频帧,共四个通道的编码参数均为帧率30帧/秒且分辨率为1080p,动检层级预先分成四个层级,其中,最高层级对应的动检占比大于或等于60%、第二层级对应的动检占比为30%~60%,第三层级对应的动检占比为1%~30%,最低层级对应的动检占比小于或等于1%。当四个通道的动检占比分别为70%、40%、10%和0%时,则存在一个通道的动检占比的动检层级为最低层级,为动检层级为最低层级的通道设置下限编码负载,下限编码负载对应为每秒1帧1080p视频帧,并将已设置下限编码负载的通道作为已划分通道,此时剩余划分编码负载对应为每秒59帧分辨率为1080p的视频帧,对剩余的未划分通道按动检占比对剩余划分编码负载进行划分,得到各个未划分通道对应的可分配编码负载,也就是对动检占比为70%、40%和10%的通道按动检占比对剩余划分编码负载进行划分,得到各个未划分通道对应的可分配编码负载。其中,对剩余划分编码负载进行划分的计算方式为先计算动检占比占总和的百分比,进而将各个通道对应的百分比与剩余划分编码负载进行划分,得到各个未划分通道对应的可分配编码负载分别为每秒34.22帧1080p视频帧、每秒19.6帧1080p视频帧和每秒4.8帧1080p视频帧。
58.s204:基于可分配编码负载与待使用编码负载的大小关系以及各个通道对应的动检占比,为各个通道分配可用编码总负载,得到各个通道对应的匹配编码负载。
59.具体地,比对可分配编码负载与待使用编码负载的大小关系,若所有通道对应的
可分配编码负载均小于待使用编码负载,则对各个通道所能分到的编码负载进行适应性取整,为各个通道设置匹配编码负载,若存在至少一个通道对应的可分配编码负载大于或等于待使用编码负载,则将对应通道的待使用编码负载的数值作为匹配编码负载。
60.在一应用方式中,响应于至少一个通道对应的可分配编码负载大于或等于通道对应的待使用编码负载,将待使用编码负载作为对应通道的匹配编码负载,将分配有待使用编码负载的通道作为已匹配通道;以及,基于各个区别于已匹配通道的未匹配通道对应的动检占比,对剩余可用编码负载进行分配,得到各个未匹配通道对应的匹配编码负载;其中,剩余可用编码负载基于可用编码总负载与所有已匹配通道的待使用编码负载的差值确定;响应于所有通道的可分配编码负载均小于各自对应的待使用编码负载,将各个通道对应的可分配编码负载作为各个通道对应的匹配编码负载。
61.具体地,上述应用方式可应用于上述步骤s204中任一应用场景中,当至少一个通道对应的可分配编码负载大于或等于通道对应的待使用编码负载时,将待使用编码负载作为对应通道的匹配编码负载,将分配有待使用编码负载的通道作为已匹配通道,则区别于已匹配通道的通道作为未匹配通道,计算可用编码总负载与所有已匹配通道的待使用编码负载的差值,作为剩余可用编码负载,进而基于各个未匹配通道对应的动检占比,对剩余可用编码负载进行分配,得到各个未匹配通道对应的匹配编码负载。可用理解的是,对剩余可用编码负载进行再次划分时,仍然比对可分配编码负载与待使用编码负载的大小关系,直至未匹配通道对应的可分配编码负载均小于待使用编码负载,对可分配编码负载进行适应性取整,将取整后的数值作为各个未匹配通道对应的匹配编码负载,使得能够满足待使用编码负载的通道按照待使用负载满额进行编码,并释放超过待使用编码负载的部分作为剩余可用编码负载,增加未匹配通道对应的匹配编码负载的数值,从而整体上提高各个通道的编码帧率的合理性。
62.进一步地,当所有通道的可分配编码负载均小于各自对应的待使用编码负载时,将各个通道对应的可分配编码负载适应性取整,将取整后的数值作为各个通道对应的匹配编码负载,所有通道对应的匹配编码负载的总和小于或等于可用编码总负载。
63.需要说明的是,当动检占比对应有动检层级时,则包括动检层级为最低层级的通道时,则对应的通道的匹配编码负载直接设置为可分配编码负载,该通道的可分配编码负载即为下限编码负载。
64.在一具体应用场景中,假设可用编码总负载为每秒60帧分辨率为1080p的视频帧,共四个通道的编码参数均为帧率30帧/秒且分辨率为1080p,当通道一动检占比为70%、通道二动检占比为35%、通道三动检占比为10%、通道四动检占比为5%时。各个通道对应的可分配编码负载分别为每秒35帧1080p视频帧、每秒17.5帧1080p视频帧、每秒5帧1080p视频帧和每秒2.5帧1080p视频帧,通道一所能分到的编码负载超过待使用编码负载,则通道一的匹配编码负载设置为待使用编码负载,也就是每秒30帧1080p视频帧,此时,通道一为已匹配通道,通道二、通道三和通道四为未匹配通道,剩余可用编码负载为每秒30帧1080p视频帧,基于未匹配通道对应的动检占比对剩余可用编码负载进行分配,得到未分配通道对应的可分配编码负载分别为每秒21帧1080p视频帧、每秒6帧1080p视频帧和每秒3帧1080p视频帧,此时可分配编码负载均小于待使用编码负载,对分配编码负载适应性取整后得到匹配编码负载。
65.在另一具体应用场景中,假设可用编码总负载为每秒60帧分辨率为1080p的视频帧,通道一的编码参数为帧率30帧/秒且分辨率为540p,通道二、三、四的编码参数均为帧率30帧/秒且分辨率为1080p,其中,通道一至四的动检占比分别为40%、70%、10%和0%。其中,通道四的动检层级为最低层级,对应的可分配编码负载为下限编码负载也就是每秒1帧1080p的视频帧,通道一对应的可分配编码负载为每秒19.6帧1080p视频帧、每秒34.22帧1080p视频帧和每秒4.8帧1080p视频帧。其中,通道一对应的可分配编码负载为每秒19.6帧1080p视频帧,通道一对应的待使用编码负载为每秒30帧540p视频帧,通道一对应的待使用编码负载相当于每秒15帧1080p视频帧,此时通道一和通道二对的可分配编码负载均超过待使用编码负载,则通道一和通道二的匹配编码负载设置为待使用编码负载,此时通道一和通道二为已匹配通道,分别消耗的编码负载为每秒15帧1080p视频帧、每秒30帧1080p视频帧,通道三和通道四为未分配通道,此时剩余可用编码负载为每秒15帧1080p视频帧,基于分配通道的动检占比对剩余可用编码负载进行分配,而通道四对应的动检占比为最低层级,通道四的匹配编码负载设置为下限编码负载也就是每秒1帧1080p视频帧,此时通道三所对应的可分配编码负载为每秒14帧1080p视频帧,小于待使用编码负载,因此,对通道三对应的可分配编码负载适应性取整得到匹配编码负载为每秒14帧1080p视频帧。
66.s205:基于各个通道对应的匹配编码负载,确定各个通道对应的编码帧率,并按各个通道对应的编码帧率对通道内的视频数据进行编码。
67.具体地,基于各个通道对应的匹配编码负载解析出各个通道对应的编码帧率,并按各个通道对应的编码帧率对通道内的视频数据进行编码。
68.在一应用方式中,基于各个通道对应的匹配编码负载确定各个通道对应的匹配编码参数,其中,匹配编码参数包括编码帧率和分辨率,匹配编码参数与匹配编码负载相对应。
69.在本实施例中,基于各个通道对应的动检占比可进行动检层级的划分,当包括动检层级为最低层级的通道时,为至少一个动检层级为最低层级的通道设置下限编码负载,在保持视频数据的时序的基础上,减少对应通道内的编码负载消耗并适配通道内静止的状态,基于动检占比对可用编码总负载进行划分得到各个通道对应的可分配编码负载,以使可分配编码负载与动检占比呈正比例关系,比对可分配编码负载与待使用编码负载的关系,从而确定各个通道对应的匹配编码负载,使得能够满足待使用编码负载的通道按照待使用负载满额进行编码,并释放超过待使用编码负载的部分作为剩余可用编码负载,增加未匹配通道对应的匹配编码负载的数值,从而整体上提高各个通道的编码帧率的合理性。
70.请参阅图3,图3是本技术视频编码方法又一实施方式的流程示意图,该方法包括:
71.s301:获得可用编码总负载和多个通道各自对应的待使用编码负载,待使用编码负载基于通道内视频数据的分辨率和帧率确定。
72.s302:获得各个通道对应的动检占比,动检占比基于各个通道内视频数据的当前帧中运动目标的占比确定。
73.具体地,步骤s301与s302与上述任一实施例中相同,请参阅上述任一实施例,本技术对此不再赘述。
74.s303:基于各个通道对应的动检占比,确定各个通道对应的动检层级,其中,动检层级与动检占比的数值相关,最高层级对应的动检占比的数值大于第一数值,最低层级对
应的动检占比的数值小于或等于第二数值。
75.具体地,动检占比对应有至少两个层级,其中最高层级对应的动检占比的数值大于第一数值,最低层级对应的动检占比的数值小于或等于第二数值,其中,第一数值大于第二数值,且第二数值的取值极小,当动检占比的数值小于第二数值时,表示对应通道内的视频数据中运动目标的变化幅度极小,当动检占比的数值大于第一数值时,表示对应通道内的视频数据中运动目标的变化幅度较大,为重要程度较高的视频数据。
76.s304:响应于获得动检层级为最低层级的通道,为至少一个动检层级为最低层级的通道设置下限编码负载,并将已设置下限编码负载的通道作为已划分通道,下限编码负载基于通道内视频数据的分辨率和一个视频帧确定。
77.具体地,当获得动检层级为最低层级的通道时,则表示存在至少一个通道内的视频数据为几乎静止或完全静止的状态,为至少一个动检层级为最低层级的通道设置下限编码负载,并将已设置下限编码负载的通道作为已划分通道。其中,下限编码负载基于通道内视频数据的分辨率和一个视频帧确定,也就是对应的通道内每秒只编码一个视频帧,在保持视频数据的时序的基础上,减少对应通道内的编码负载消耗并适配通道内静止的状态。
78.s305:基于各个通道对应的动检占比对可用编码总负载进行划分,得到各个通道对应的可分配编码负载,可分配编码负载与动检占比正相关。
79.具体地,获取所有通道对应的动检占比的总和,将每个通道对应的动检占比与总和相除后再与可用编码总负载相乘得到各个通道对应的可分配编码负载,以使可分配编码负载与动检占比呈正比例关系。
80.在一应用场景中,基于各个通道对应的动检占比对可用编码总负载进行划分,得到各个通道对应的可分配编码负载,包括:响应于获得已划分通道,将下限编码负载作为已划分通道的可分配编码负载,基于各个区别于已划分通道的未划分通道对应的动检占比,对剩余划分编码负载进行划分,得到各个未划分通道对应的可分配编码负载;其中,剩余划分编码负载基于可用编码总负载与所有已划分通道的下限编码负载的差值确定;响应于未获得已划分通道,基于各个通道对应的动检占比与所有通道对应的动检占比总和之间的比值,对可用编码总负载进行划分,得到各个通道对应的可分配编码负载。
81.具体地,当获得已划分通道时,则将下限编码负载作为已划分通道的可分配编码负载,计算可用编码总负载与所有已划分通道的下限编码负载的差值,作为剩余划分编码负载。进而,基于各个未划分通道对应的动检占比,对剩余划分编码负载进行划分,得到各个未划分通道对应的可分配编码负载,其中,未划分通道区别于已划分通道。
82.进一步地,当未获得已划分通道时,基于各个通道对应的动检占比与所有通道对应的动检占比总和之间的比值,对可用编码总负载进行划分,得到各个通道对应的可分配编码负载。
83.也就是说,如果不存在最低层级的动检占比,则不存在已划分通道,基于各个通道对应的动检占比与所有通道对应的动检占比总和之间的比值,对可用编码总负载进行划分即可,若存在最低层级的动检占比,则为至少一个动检层级为最低层级的通道设置下限编码负载,并将已设置下限编码负载的通道作为已划分通道,对剩余的未划分通道按动检占比对剩余划分编码负载进行划分,得到各个未划分通道对应的可分配编码负载。通过对最低层级的动检占比对应的通道指定下限编码负载,从而保持各个通道视频数据的连续性,
并减少最低层级的动检占比对应的通道对编码负载的消耗。
84.s306:响应于获得动检层级为最高层级的通道,将至少一个动检层级为最高层级的通道作为已指定通道,将已指定通道对应的待使用编码负载,作为已指定通道所对应的匹配编码负载,将区别于已指定通道的通道作为未指定通道。
85.具体地,当获得至少一个动检层级为最高层级的通道时,选择至少一个动检层级为最高层级的通道作为已指定通道,已指定通道对应的匹配编码负载直接设置为待使用编码负载,以使已指定通道按照待使用负载满额进行编码,从而在多个通道的动检占比均较高时,优先确保其中至少一个已指定通道能够以待使用编码负载进行编码。
86.在一应用场景中,多个通道的动检占比均达到最高层级,则基于所有动检占比为最高层级的通道对应的待使用编码负载和可用编码总负载,确定已指定通道的数量,以使所有已指定通道对应的待使用编码负载的总和,小于可用编码总负载与所有未指定通道对应的下限编码负载之间的差值,从而在尽可能满足较多的通道按待使用编码负载进行编码的同时,以使未指定通道仍有可进行分配的编码负载。
87.在另一应用场景中,多个通道的动检占比均达到最高层级,则指定其中一个通道作为已指定通道,其中,用户重点关注的通道预先设置有优先标志位,当包括优先标志位的通道的动检占比达到最高层级时,则选择包括优先标志位的通道作为已指定通道,提高重点关注的通道对应的编码帧率的合理性,从而在尽可能满足重点关注的某个通道按待使用编码负载进行编码的同时,以使未指定通道仍对应有较多的编码负载可进行分配。
88.s307:响应于未获得动检层级为最高层级的通道,将各个通道作为区别于已指定通道的未指定通道。
89.具体地,当未获得动检层级为最高层级的通道,则所有的通道均作为区别于已指定通道的未指定通道。
90.s308:基于未指定通道各自对应的可分配编码负载与待使用编码负载的大小关系,以及各个未指定通道对应的动检占比,对未指定编码负载进行分配,得到各个未指定通道对应的匹配编码负载,其中,未指定编码负载基于可用编码总负载与所有已指定通道的待使用编码负载的差值确定。
91.具体地,当对应有已指定通道时,可用编码总负载与所有已指定通道的待使用编码负载的差值即为未指定编码负载,当所有通道均为未指定通道时,则未指定编码负载即为可用编码总负载。
92.进一步地,比对未指定通道对应的可分配编码负载与待使用编码负载的大小关系,若所有通道对应的可分配编码负载均小于待使用编码负载,则对各个未指定通道的可分配编码负载进行适应性取整,为各个未指定通道设置匹配编码负载,若存在至少一个未指定通道对应的可分配编码负载大于或等于待使用编码负载,则将对应通道的待使用编码负载的数值作为匹配编码负载,其他未指定通道则基于动检占比对剩余的可用负载进行进一步分配,直至剩余的未指定通道对应的可分配编码负载均小于待使用编码负载,从而对剩余的未指定通道的可分配编码负载进行适应性取整,最终确定所有未指定通道对应的匹配编码负载,从而在满足已指定通道按待使用编码负载进行编码的同时,对于未指定通道的匹配编码负载进行合理分配,提高未指定通道对应的匹配编码负载的合理性。
93.s309:基于各个通道对应的匹配编码负载,确定各个通道对应的编码帧率,并按各
个通道对应的编码帧率对通道内的视频数据进行编码。
94.具体地,基于各个通道对应的匹配编码负载解析出各个通道对应的编码帧率,并按各个通道对应的编码帧率对通道内的视频数据进行编码。
95.在本实施例中,基于各个通道对应的动检占比可进行动检层级的划分,当包括动检层级为最高层级的通道时,将至少一个动检层级为最高层级的通道作为已指定通道,优先确保其中至少一个已指定通道能够以待使用编码负载进行编码,在满足已指定通道按待使用编码负载进行编码的同时,对于未指定通道的匹配编码负载进行合理分配,提高未指定通道对应的匹配编码负载的合理性,从而提高各个通道的编码帧率的合理性。
96.请参阅图4,图4是本技术电子设备一实施方式的结构示意图,该电子设备40包括相互耦接的存储器401和处理器402,其中,存储器401存储有程序数据(图未示),处理器402调用程序数据以实现上述任一实施例中的方法,相关内容的说明请参见上述方法实施例的详细描述,在此不再赘叙。
97.请参阅图5,图5是本技术计算机可读存储介质一实施方式的结构示意图,该计算机可读存储介质50存储有程序数据500,该程序数据500被处理器执行时实现上述任一实施例中的方法,相关内容的说明请参见上述方法实施例的详细描述,在此不再赘叙。
98.需要说明的是,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
99.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
100.集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施方式方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
101.以上所述仅为本技术的实施方式,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1