码率分配的方法、装置、终端及存储介质与流程

文档序号:20040177发布日期:2020-02-28 11:48阅读:153来源:国知局
码率分配的方法、装置、终端及存储介质与流程

本申请涉及终端技术领域,特别涉及一种码率分配的方法、装置、终端及存储介质。



背景技术:

随着互联网和终端的发展,视频聊天、视频直播等视频业务得到了广泛的运用,而视频业务的广泛运用离不开视频编码技术的支持。其中,码率分配为视频编码技术中的重要环节。

目前,在视频采集过程中,通常需要对每帧视频画面进行编码,而在编码过程中需要为每帧视频画面分配码率。为了避免视频画面中出现大规模的马赛克,通常可以将每帧视频画面划分为roi(regionofinterest,感兴趣区域)和非roi区域,并按照一定的分配比例,为roi区域和非roi区域分配对应的码率,且为非roi区域分配的码率远远低于为roi区域分配的码率。

但是,如果在roi区域的面积较小的情况下,对roi区域进行编码需要使用的码率较少,这样,按照上述分配方式分配码率之后,对于roi区域来说,可能会导致码率的浪费。也即是,上述码率分配方式的灵活性较差。



技术实现要素:

本申请提供了一种码率分配的方法、装置、终端及存储介质,可以解决相关技术中码率分配存在浪费,导致码率分配不灵活的问题。所述技术方案如下:

一方面,提供了一种码率分配的方法,所述方法包括:

获取对当前帧视频画面进行编码所需使用的目标码率;

按照所述目标码率对应的区域划分需求,将所述当前帧视频画面划分为多个区域;

根据所述多个区域的编码优先级和所述目标码率,为所述多个区域分配对应的码率。

在一些实施例中,所述按照所述目标码率对应的区域划分需求,将所述当前帧视频画面划分为多个区域,包括:

从存储的多个码率区间中,确定所述目标码率所处的目标码率区间,所述多个码率区间与多个画面质量一一对应,所述画面质量是指编码后的视频画面的质量;

获取所述目标码率区间对应的区域划分需求;

根据所述目标码率区间对应的区域划分需求,将所述当前帧视频画面划分为所述多个区域。

在一些实施例中,所述根据所述多个区域的编码优先级和所述目标码率,为所述多个区域分配对应的码率之前,还包括:

接收优先级设置指令,所述优先级设置指令中携带优先级顺序和所述多个区域的描述信息;

按照所述优先级顺序,设置所述多个区域的编码优先级。

在一些实施例中,所述按照所述目标码率对应的区域划分需求,将所述当前帧视频画面划分为多个区域之前,还包括:

接收区域划分设置指令,所述区域划分设置指令中携带多个码率区间和每个码率区间对应的区域划分需求;

将所述每个码率区间与对应的区域划分需求进行对应存储。

在一些实施例中,所述当前帧视频画面不为第一帧视频画面;

所述获取对当前帧视频画面进行编码所需使用的目标码率,包括:

在编码所述当前帧视频画面之前的视频画面过程中,当网络带宽满足数据传输条件时,将第一码率确定为所述目标码率,所述第一码率为对所述当前帧视频画面之前且与所述当前帧视频画面相邻的视频画面进行编码的码率。

在一些实施例中,所述当前帧视频画面不为第一帧视频画面;

所述获取对当前帧视频画面进行编码所需使用的目标码率,包括:

在编码所述当前帧视频画面之前的视频画面过程中,如果所述网络带宽不满足数据条件,且第一码率大于码率阈值,则将所述第一码率降码为第二码率,并将所述第二码率确定为所述目标码率,所述第一码率为对所述当前帧视频画面之前且与所述当前帧视频画面相邻的视频画面进行编码的码率;

如果所述网络带宽不满足数据条件,且所述第一码率小于或等于所述码率阈值,则将所述第一码率确定为所述目标码率。

另一方面,提供了一种码率分配的装置,所述装置包括:

获取模块,用于获取对当前帧视频画面进行编码所需使用的目标码率;

划分模块,用于按照所述目标码率对应的区域划分需求,将所述当前帧视频画面划分为多个区域;

分配模块,用于根据所述多个区域的编码优先级和所述目标码率,为所述多个区域分配对应的码率。

在一些实施例中,所述划分模块包括:

确定子模块,用于从存储的多个码率区间中,确定所述目标码率所处的目标码率区间,所述多个码率区间与多个画面质量一一对应,所述画面质量是指编码后的视频画面的质量;

获取子模块,用于获取所述目标码率区间对应的区域划分需求;

划分子模块,用于根据所述目标码率区间对应的区域划分需求,将所述当前帧视频画面划分为所述多个区域。

在一些实施例中,所述装置还包括:

第一接收模块,用于接收优先级设置指令,所述优先级设置指令中携带优先级顺序和所述多个区域的描述信息;

设置模块,用于按照所述优先级顺序,设置所述多个区域的编码优先级。

在一些实施例中,所述装置还包括:

第二接收模块,用于接收区域划分设置指令,所述区域划分设置指令中携带多个码率区间和每个码率区间对应的区域划分需求;

存储模块,用于将所述每个码率区间与对应的区域划分需求进行对应存储。

在一些实施例中,所述当前帧视频画面不为第一帧视频画面;

所述获取模块用于:

在编码所述当前帧视频画面之前的视频画面过程中,当网络带宽满足数据传输条件时,将第一码率确定为所述目标码率,所述第一码率为对所述当前帧视频画面之前且与所述当前帧视频画面相邻的视频画面进行编码的码率。

在一些实施例中,所述当前帧视频画面不为第一帧视频画面;

所述获取模块用于:

在编码所述当前帧视频画面之前的视频画面过程中,如果所述网络带宽不满足数据条件,且第一码率大于码率阈值,则将所述第一码率降码为第二码率,并将所述第二码率确定为所述目标码率,所述第一码率为对所述当前帧视频画面之前且与所述当前帧视频画面相邻的视频画面进行编码的码率;

如果所述网络带宽不满足数据条件,且所述第一码率小于或等于所述码率阈值,则将所述第一码率确定为所述目标码率。

另一方面,提供了一种终端,所述终端包括存储器和处理器,所述存储器用于存放计算机程序,所述处理器用于执行所述存储器上所存放的计算机程序,以实现上述所述的一种码率分配的方法的步骤。

另一方面,提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述所述种码率分配的方法的步骤。

另一方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述所述的种码率分配的方法的步骤。

本申请提供的技术方案至少可以带来以下有益效果:

在本申请中,可以按照目标码率对应的区域划分需求,将当前帧视频画面划分为多个区域,并根据多个区域的编码优先级为多个区域分别分配码率。由于划分的区域与目标码率的大小有关,且需要按照每个码率的编码优先级为每个区域分配对应的码率,从而保证每个区域可以按照编码优先级分配到合适的码率,减少了大部分码率集中分配给一个区域的情况,改善了码率浪费的情况,提高了码率分配的灵活性。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种实施环境的示意图;

图2是本申请实施例提供的一种码率分配的方法的流程图;

图3是本申请实施例提供的另一种码率分配的方法的流程图;

图4是本申请实施例提供的一种码率分配的装置的结构示意图;

图5是本申请实施例提供的一种划分模块的结构示意图;

图6是本申请实施例提供的另一种码率分配的装置的结构示意图;

图7是本申请实施例提供的另一种码率分配的装置的结构示意图;

图8是本申请实施例提供的一种终端的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

在对本申请实施例提供的码率分配的方法进行详细的解释说明之前,先对本申请实施例提供的应用场景和实施环境进行介绍。

首先,对本申请实施例涉及的应用场景进行介绍。

目前,终端在实现视频直播、视频聊天等视频功能过程中,均涉及到了对每帧视频画面的编码操作,而对每帧视频画面进行进行编码时,需要对每帧视频画面分配对应的码率。

为了避免视频画面中出现大规模的马赛克,目前,可以将每帧视频画面划分为roi区域和非roi区域。但是,在为roi区域和非roi区域分配对应的码率时,需要按照一定的分配比例进行码率分配,且为非roi区域分配的码率远远低于为roi区域分配的码率。一旦roi区域的面积较小,比如,roi区域为人脸区域,那么对roi区域进行编码时,实际上并不需要使用太多的码率就可以使roi区域非常清晰,但是由于需要按照分配比例进行码率分配,那么对roi区域将会分配大量的码率。对于roi区域来说,可能会导致码率的浪费。

基于这样的应用场景,本申请实施例提供了一种能够降低码率浪费,提高分配灵活性的码率分配的方法。

接下来,对本申请实施例涉及的实施环境进行介绍。

请参考图1,图1是根据一示例性实施例示出的一种实施环境的示意图。该实施环境包括至少一个终端101和服务器102,终端101可以与服务器102进行通信连接。该通信连接可以为有线或者无线连接,本申请对此不做限定。

其中,终端101可以是任何一种可与用户通过键盘、触摸板、触摸屏、遥控器、语音交互或手写设备等一种或多种方式进行人机交互的电子产品,例如pc(personalcomputer,个人计算机)、手机、智能手机、pda(personaldigitalassistant,个人数字助手)、可穿戴设备、掌上电脑ppc(pocketpc)、平板电脑、智能车机、智能电视、智能音箱等。

服务器102可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。

需要说明的是,用户可以通过终端101进行视频聊天、视频直播等视频业务,终端101在实现视频聊天、视频直播等视频功能时,可以获取对当前帧视频画面进行编码所需使用的目标码率,按照目标码率对应的区域划分需求,将当前帧视频画面划分为多个区域,之后,根据多个区域的编码优先级和目标码率,为多个区域分配对应的码率,并按照多个区域对应的码率将多个区域进行编码,以完成对当前帧视频画面的编码。

另外,终端101为了实现视频聊天、视频直播等视频功能,在完成一帧视频画面的编码后,可以将编码后的视频画面发送至服务器102中,以便于服务器102将编码后的视频画面进行转发。

本领域技术人员应能理解上述终端101和服务器102仅为举例,其他现有的或今后可能出现的终端或服务器如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

接下来将结合附图对本申请实施例提供的码率分配的方法进行详细的解释说明。

图2是本申请实施例提供的一种码率分配的方法的流程图,该方法应用于终端中。请参考图2,该方法包括如下步骤。

步骤201:获取对当前帧视频画面进行编码所需使用的目标码率。

步骤202:按照该目标码率对应的区域划分需求,将该当前帧视频画面划分为多个区域。

步骤203:根据该多个区域的编码优先级和该目标码率,为该多个区域分配对应的码率。

在本申请实施例中,可以按照目标码率对应的区域划分需求,将当前帧视频画面划分为多个区域,并根据多个区域的编码优先级为多个区域分别分配码率。由于划分的区域与目标码率的大小有关,且需要按照每个码率的编码优先级为每个区域分配对应的码率,从而保证每个区域可以按照编码优先级分配到合适的码率,减少了大部分码率集中分配给一个区域的情况的发生,改善了码率浪费的情况,提高了码率分配的灵活性。

在一些实施例中,按照该目标码率对应的区域划分需求,将该当前帧视频画面划分为多个区域,包括:

从存储的多个码率区间中,确定该目标码率所处的目标码率区间,该多个码率区间与多个画面质量一一对应,该画面质量是指编码后的视频画面的质量;

获取该目标码率区间对应的区域划分需求;

根据该目标码率区间对应的区域划分需求,将该当前帧视频画面划分为该多个区域。

在一些实施例中,根据该多个区域的编码优先级和该目标码率,为该多个区域分配对应的码率之前,还包括:

接收优先级设置指令,该优先级设置指令中携带优先级顺序和该多个区域的描述信息;

按照该优先级顺序,设置该多个区域的编码优先级。

在一些实施例中,按照该目标码率对应的区域划分需求,将该当前帧视频画面划分为多个区域之前,还包括:

接收区域划分设置指令,该区域划分设置指令中携带多个码率区间和每个码率区间对应的区域划分需求;

将该每个码率区间与对应的区域划分需求进行对应存储。

在一些实施例中,该当前帧视频画面不为第一帧视频画面;

获取对当前帧视频画面进行编码所需使用的目标码率,包括:

在编码该当前帧视频画面之前的视频画面过程中,当网络带宽满足数据传输条件时,将第一码率确定为该目标码率,该第一码率为对该当前帧视频画面之前且与该当前帧视频画面相邻的视频画面进行编码的码率。

在一些实施例中,该当前帧视频画面不为第一帧视频画面;

获取对当前帧视频画面进行编码所需使用的目标码率,包括:

在编码该当前帧视频画面之前的视频画面过程中,如果该网络带宽不满足数据条件,且第一码率大于码率阈值,则将该第一码率降码为第二码率,并将该第二码率确定为该目标码率,该第一码率为对该当前帧视频画面之前且与该当前帧视频画面相邻的视频画面进行编码的码率;

如果该网络带宽不满足数据条件,且该第一码率小于或等于该码率阈值,则将该第一码率确定为该目标码率。

上述所有可选技术方案,均可按照任意结合形成本申请的可选实施例,本申请实施例对此不再一一赘述。

图3为本申请实施例提供的一种码率分配的方法的流程图,参见图3,该方法包括如下步骤。

步骤301:终端获取对当前帧视频画面进行编码所需使用的目标码率。

由于终端在对每帧视频画面进行编码时,为了能够使编码后的视频画面顺利进行传输,对不同的视频画面进行编码所需的码率可能相同也可能会不同,也即是,对视频画面进行编码的码率可能会发生变化。因此,终端需要获取对当前帧视频画面进行编码所需使用的目标码率。

由于当前帧视频画面可能是第一帧视频画面,也可能不是第一帧视频画面,对于第一帧视频画面和除第一帧视频画面之外的其他帧视频画面,终端确定目标码率的方式不相同。

作为一种示例,当当前帧视频画面为第一帧视频画面时,终端可以将默认码率确定为目标码率。

需要说明的是,该默认码率可以事先根据需求进行设置,比如,默认码率可以为任意一数值,比如,2000kbps(千比特每秒)、2500kbps等等。当然,该默认码率还可以为历史编码记录中的最高或最低码率。

作为一种示例,该当前帧视频画面不为第一帧视频画面时,终端获取对当前帧视频画面进行编码所需使用的目标码率的操作可以为:在编码该当前帧视频画面之前的视频画面过程中,当网络带宽满足数据传输条件时,将第一码率确定为该目标码率,该第一码率为对该当前帧视频画面之前且与该当前帧视频画面相邻的视频画面进行编码的码率。

由于在进行视频编码时,通常要求编码后的视频画面能够顺利进行传输,而视频画面能否顺利进行传输与网络带宽有关,当网络带宽不足时,编码后的视频画面可能无法顺利传输。因此,为了能够顺利将编码后的视频画面进行传输,终端可以根据当前帧视频画面之前的视频画面所对应的网络带宽,确定目标码率。而当网络带宽满足数据传输条件,说明编码后的视频画面可以顺利进行传输,因此,可以将第一码率确定为该目标码率。

需要说明的是,数据传输条件可以根据需求事先进行设置,比如,该数据传输条件可以以第一码率编码视频画面后不出现数据包阻塞、丢包等情况。由于还可以通过网络传输速度体现网络带宽是否充足,因此,该数据传输条件还可以为当前网络传输速度是否大于或等于网速阈值。该网速阈值可以事先根据需求进行设置,比如,该网速阈值可以为500kb/s(字节/秒)、1000kb/s等等。

由于在编码当前帧视频画面之前的视频画面过程中,该网络带宽可能会不满足数据传输条件,在这样的情况下,为了顺利将后续的视频画面进行传输,通常需要将第一码率进行降码处理。但是,为了保证编码后的视频画面的画面质量,终端进行降码之前的码率通常不能低于码率阈值。因此,终端在对第一码率进行降码处理之前,还可以确定第一码率是否小于码率阈值,在第一码率大于或等于码率阈值时,可以对该第一码率进行降码处理,并确定目标码率。也即是,终端在编码当前帧视频画面之前的视频画面过程中,如果该网络带宽不满足数据条件,且第一码率大于码率阈值,则可以将该第一码率降码为第二码率,并将该第二码率确定为该目标码率,该第一码率为对该当前帧视频画面之前且与该当前帧视频画面相邻的视频画面进行编码的码率;如果该网络带宽不满足数据条件,且该第一码率小于或等于该码率阈值,则将该第一码率确定为该目标码率。

需要说明的是,该码率阈值可以事先根据需求进行设置,比如,该码率阈值可以为400kbps、500kbps等等。

作为一种示例,终端将该第一码率降码为第二码率的操作可以为:可以确定将第一码率减去降码阈值后,得到的码率是否大于或等于码率阈值,如果得到的码率大于或等于码率阈值,则将得到的码率确定为第二码率;如果得到的码率小于码率阈值,则将码率阈值确定为第二码率。

需要说明的是,该该降码阈值为每一次进行降码时所下降的码率值。该降码阈值可以事先进行设置,比如,该降码阈值可以为400kbps、500kbps等等。

比如,当第一码率为2000kbps,降码阈值为400kbps,码率阈值为400kbps时,第二码率为1600kbps。当第一码率为700kbps,降码阈值为400kbps,码率阈值为400kbps时,则第二码率为400kbps。

在一些实施例中,为了保证编码后视频画面的顺利传输,终端可以允许降码后的码率低于该码率阈值,但是低于码率阈值的码率无法进行降码处理。

步骤302:终端按照该目标码率对应的区域划分需求,将该当前帧视频画面划分为多个区域。

由于采用不同码率对视频画面进行编码后,视频画面的画面质量是不相同的,对于不同的目标码率,终端分配码率的侧重点也应该是不同的。因此,为了提高用户粘度和码率分配的灵活性,终端可以按照该目标码率对应的区域划分需求,将该当前帧视频画面划分为多个区域。

作为一种示例,终端按照该目标码率对应的区域划分需求,将该当前帧视频画面划分为多个区域的操作可以为:从存储的多个码率区间中,确定该目标码率所处的目标码率区间,该多个码率区间与多个画面质量一一对应,该画面质量是指编码后的视频画面的质量;获取该目标码率区间对应的区域划分需求;根据该目标码率区间对应的区域划分需求,将该当前帧视频画面划分为该多个区域。

需要说明的是,终端可以从码率区间与区域划分需求之间的对应关系中,获取目标码率区间对应的区域划分需求。

比如,当目标码率为4096kbps,也即为4m(兆)时,可以确定目标码率所处的目标码率区间为[3m-8m],此时,可以从该码率区间与区域划分需求之间的对应关系中获取目标码率区间对应的区域划分需求为:将视频画面划分为包括人脸的人体区域、第一动态背景区域、第二动态背景区域和静态背景区域。第一动态背景区域中物体移动速度大于第二动态背景区域内物体移动速度。当目标码率为2048kbps,也即为2m时,可以确定目标码率所处的码率区间为[1.6m-3m],此时,可以从该码率区间与区域划分需求之间的对应关系中获取目标码率区间对应的区域划分需求为:将视频画面划分为人脸区域、不包括人脸的人体区域、第一动态背景区域、第二动态背景区域和静态背景区域。当目标码率为1028kbps,也即为1m(兆)时,可以确定目标码率所处的码率区间为[0.4m-1.6m],此时,可以从该码率区间与区域划分需求之间的对应关系中获取目标码率区间对应的区域划分需求为:将视频画面划分为包括人脸区域、不包括人脸的人体区域、动态背景区域和静态背景区域。

作为一种示例,终端根据该目标码率区间对应的区域划分需求,将该当前帧视频画面划分为该多个区域的操作可以为:当区域划分需求中需要划分的区域包括人体区域时,通过人体识别算法,识别出视频画面中的人体所在区域,将人体所在区域确定为人体区域;当区域划分需求中需要划分的区域包括人脸区域时,通过人脸识别算法从视频画面中识别人脸所在区域。当区域划分需求中需要划分的区域包括静态背景区域、第一动态背景区域和第二动态背景区域时,通过运动估计算法,从视频画面中识别静态背景区域、第一动态背景区域和第二动态背景区域。

需要说明的是,区域划分需求可以事先根据需求进行设置,且该区域划分需求可以为终端默认的区域划分需求,也可以是用户在使用终端过程中,根据需求事先设置的。也即是,终端可以接收区域划分设置指令,该区域划分设置指令中携带多个码率区间和每个码率区间对应的区域划分需求;将该每个码率区间与对应的区域划分需求进行对应存储。

还需要说明的是,该区域划分设置指令用于对区域划分需求进行设置,该区域划分设置指令可以是用户通过指定操作作用在终端上时触发,该指定操作可以为语音操作、滑动操作、点击操作等等。

步骤303:终端根据该多个区域的编码优先级和该目标码率,为该多个区域分配对应的码率。

为了使视频画面中用户感兴趣的区域能够显示清晰,终端分配码率的侧重点应该是不同的,因此,为了能够清晰的显示视频画面中用户感兴趣的区域,每个区域均对应有编码优先级,终端可以根据该多个区域的编码优先级和该目标码率,为该多个区域分配对应的码率。

作为一种示例,终端可以根据该多个区域的编码优先级确定多个区域的qp(quantizerparameter,量化参数)值,根据多个区域的qp值和目标码率,计算每个区域对应的码率,从而为多个区域分配对应的码率,编码优先级越高分配的qp值越高。

需要说明的是,终端中编码器的qp值的区间可以为[0,51],qp值越小,对应分配的码率越多。

作为一种示例,终端可以将多个区域的qp值的比值,确定为对多个区域进行码率分配的分配比例,按照分配比例和目标码率,计算每个区域对应的码率。

在一些实施例中,由于编码后的视频画面通常需要满足用户观看需求,因此,为了提高用户粘度,提高用户感兴趣的区域的画面质量,终端还可以允许用户对多个区域中每个区域的编码优先级进行设置。也即是,终端在根据该多个区域的编码优先级和该目标码率,为该多个区域分配对应的码率之前,还可以接收优先级设置指令,该优先级设置指令中携带优先级顺序和该多个区域的描述信息;按照该优先级顺序,设置该多个区域的编码优先级。

比如,当目标码率所处的目标码率区间为[3m-8m]时,划分的多个区域为包括人脸的人体区域、第一动态背景区域、第二动态背景区域和静态背景区域,由于目标码率区间为[3m-8m]时,编码后视频画面的画面质量较好,且动态背景区域比静态背景区域在编码时需要消耗的码率较多。因此,如果为动态背景区域分配的码率较少,则动态背景区域中可能会出现马赛克,因此,为了避免出现马赛克,可以将动态背景区域的优先级设置的高于静态背景区域的优先级。因此,包括人脸的人体区域、第一动态背景区域、第二动态背景区域和静态背景区域的编码优先级从高到底的排序可以为:包括人脸的人体区域、第一动态背景区域、第二动态背景区域和静态背景区域,从在保证编码后,视频画面中人体区域能够信息显示的情况下,动态背景区域也能够较为清楚。

比如,当目标码率所处的目标码率区间为[1.6m-3m]时,划分的多个区域为人脸区域、不包括人脸的人体区域、第一动态背景区域、第二动态背景区域和静态背景区域。由于当目标所处的目标码率区间为[1.6m-3m]时,目标码率可能不足以支撑视频画面中的第一动态背景区域的画面清晰显示,且由于人眼对动态背景区域的模糊容忍度是高于静态背景区域的,因此,可以牺牲第一动态背景区域的视频质量,以节省码率给其他的区域。因此,人脸区域、不包括人脸的人体区域、第一动态背景区域、第二动态背景区域和静态背景区域的编码优先级从高到底的排序可以为:人脸区域、不包括人脸的人体区域、静态背景区域、第二动态背景区域和第一动态背景区域。

比如,当目标码率所处的码率区间为[0.4m-1.6m]时,划分的区域为人脸区域、不包括人脸的人体区域、动态背景区域和静态背景区域。由于当目标码率所处的码率区间为[0.4m-1.6m]时,说明目标码率严重不足,所有动态背景区域都可以牺牲,以保障人脸区域和不包括人脸区域的人体区域能够清晰显示。因此,人脸区域、不包括人脸的人体区域、动态背景区域和静态背景区域的编码优先级从高到底的排序可以为:人脸区域、不包括人脸的人体区域、静态背景区域和动态背景区域。

步骤304:终端按照多个区域对应的码率,对该多个区域进行编码。

在一些实施例中,终端在按照多个区域对应的码率,对该多个区域进行编码的过程中,还可以检测网络带宽是否满足数据传输条件;当网络带宽满足数据传输条件时,继续通过所述目标码率对当前帧视频画面之后的视频画面进行编码,并在预设时长后如果网络带宽依旧满足数据传输条件,则对目标码率进行升码处理。

作为一种示例,终端可以将目标码率与升码阈值进行相加,得到升码处理后的码率。该升码阈值可以事先根据需求进行设置,比如,该升码阈值可以为200kbps、100kbps,且升码阈值可以小于或等于降码阈值。

需要说明的是,预设时长可以根据需求进行设置,比如,该预设时长可为30秒、60秒等等。

在本申请实施例中,终端可以根据网络带宽来确定当前帧视频画面的目标码率,并按照目标码率对应的区域划分需求,将当前帧视频画面划分为多个区域,之后可以根据多个区域的编码优先级为该多个区域分别分配码率。由于目标码率与网络带宽相关,划分的区域与目标码率的大小有关,不同的目标码率对应不同的区域划分需求,按照不同区域划分需求进行划分后,每个区域对应的编码优先级将会发生变化,从而提高了视频画面中除用户感兴趣区域外,其他部分被划分为编码优先级较高的区域的可能性。且由于每个区域均可以按照编码优先级分配到合适的码率,减少了大部分码率集中分配给一个区域的情况的发生,改善了码率浪费的情况,保证了编码后视频画面的整体画面质量,减少了同一帧视频画面中出现一部分非常清晰,一部分模糊的情况的发生。同时,由于当多个区域包括人脸区域或人体区域时,人脸区域和人体区域的编码优先级均较高,且人脸区域和人体区域通常为用户感兴趣的区域,因此,按照编码优先级为多个区域分别分配码率,保证了用户感兴趣区域的画面质量的清晰度,提高了码率分配的灵活性。

在对本申请实施例提供的码率分配的方法进行解释说明之后,接下来,对本申请实施例提供的码率分配的装置进行介绍。

图4是本申请实施例提供的一种码率分配的装置的结构示意图,该码率分配的装置可以由软件、硬件或者两者的结合实现成为终端的部分或者全部,终端可以为图1所示的终端。请参考图4,该装置包括:获取模块401、划分模块402和分配模块403。

获取模块401,用于获取对当前帧视频画面进行编码所需使用的目标码率;

划分模块402,用于按照所述目标码率对应的区域划分需求,将所述当前帧视频画面划分为多个区域;

分配模块403,用于根据所述多个区域的编码优先级和所述目标码率,为所述多个区域分配对应的码率。

在一些实施例中,参见图5,所述划分模块402包括:

确定子模块4021,用于从存储的多个码率区间中,确定所述目标码率所处的目标码率区间,所述多个码率区间与多个画面质量一一对应,所述画面质量是指编码后的视频画面的质量;

获取子模块4022,用于获取所述目标码率区间对应的区域划分需求;

划分子模块4023,用于根据所述目标码率区间对应的区域划分需求,将所述当前帧视频画面划分为所述多个区域。

在一些实施例中,参见图6,所述装置还包括:

第一接收模块404,用于接收优先级设置指令,所述优先级设置指令中携带优先级顺序和所述多个区域的描述信息;

设置模块405,用于按照所述优先级顺序,设置所述多个区域的编码优先级。

在一些实施例中,参见图7,所述装置还包括:

第二接收模块406,用于接收区域划分设置指令,所述区域划分设置指令中携带多个码率区间和每个码率区间对应的区域划分需求;

存储模块407,用于将所述每个码率区间与对应的区域划分需求进行对应存储。

在一些实施例中,所述当前帧视频画面不为第一帧视频画面;

所述获取模块401用于:

在编码所述当前帧视频画面之前的视频画面过程中,当网络带宽满足数据传输条件时,将第一码率确定为所述目标码率,所述第一码率为对所述当前帧视频画面之前且与所述当前帧视频画面相邻的视频画面进行编码的码率。

在一些实施例中,所述当前帧视频画面不为第一帧视频画面;

所述获取模块401用于:

在编码所述当前帧视频画面之前的视频画面过程中,如果所述网络带宽不满足数据条件,且第一码率大于码率阈值,则将所述第一码率降码为第二码率,并将所述第二码率确定为所述目标码率,所述第一码率为对所述当前帧视频画面之前且与所述当前帧视频画面相邻的视频画面进行编码的码率;

如果所述网络带宽不满足数据条件,且所述第一码率小于或等于所述码率阈值,则将所述第一码率确定为所述目标码率。

在本申请实施例中,终端可以根据网络带宽来确定当前帧视频画面的目标码率,并按照目标码率对应的区域划分需求,将当前帧视频画面划分为多个区域,之后可以根据多个区域的编码优先级为该多个区域分别分配码率。由于目标码率与网络带宽相关,划分的区域与目标码率的大小有关,不同的目标码率对应不同的区域划分需求,按照不同区域划分需求进行划分后,每个区域对应的编码优先级将会发生变化,从而提高了视频画面中除用户感兴趣区域外,其他部分被划分为编码优先级较高的区域的可能性。且由于每个区域均可以按照编码优先级分配到合适的码率,减少了大部分码率集中分配给一个区域的情况的发生,改善了码率浪费的情况,保证了编码后视频画面的整体画面质量,减少了同一帧视频画面中出现一部分非常清晰,一部分模糊的情况的发生。同时,由于当多个区域包括人脸区域或人体区域时,人脸区域和人体区域的编码优先级均较高,且人脸区域和人体区域通常为用户感兴趣的区域,因此,按照编码优先级为多个区域分别分配码率,保证了用户感兴趣区域的画面质量的清晰度,提高了码率分配的灵活性。

需要说明的是:上述实施例提供的码率分配的装置在分配码率时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的码率分配的装置与码率分配的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图8是本申请实施例提供的一种终端800的结构框图。该终端800可以是便携式移动终端,比如:智能手机、平板电脑、笔记本电脑或台式电脑。终端800还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。

通常,终端800包括有:处理器801和存储器802。

处理器801可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器801可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器801也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器801可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器801还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。

存储器802可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器802还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器802中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器801所执行以实现本申请中方法实施例提供的码率分配的方法。

在一些实施例中,终端800还可选包括有:外围设备接口803和至少一个外围设备。处理器801、存储器802和外围设备接口803之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口803相连。具体地,外围设备包括:射频电路804、显示屏805、摄像头组件806、音频电路807、定位组件808和电源809中的至少一种。

外围设备接口803可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器801和存储器802。在一些实施例中,处理器801、存储器802和外围设备接口803被集成在同一芯片或电路板上;在一些其他实施例中,处理器801、存储器802和外围设备接口803中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。

射频电路804用于接收和发射rf(radiofrequency,射频)信号,也称电磁信号。射频电路804通过电磁信号与通信网络以及其他通信设备进行通信。射频电路804将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路804包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路804可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或wifi(wirelessfidelity,无线保真)网络。在一些实施例中,射频电路804还可以包括nfc(nearfieldcommunication,近距离无线通信)有关的电路,本申请对此不加以限定。

显示屏805用于显示ui(userinterface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏805是显示屏时,显示屏805还具有采集在显示屏805的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器801进行处理。此时,显示屏805还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏805可以为一个,设置终端800的前面板;在另一些实施例中,显示屏805可以为至少两个,分别设置在终端800的不同表面或呈折叠设计;在再一些实施例中,显示屏805可以是柔性显示屏,设置在终端800的弯曲表面上或折叠面上。甚至,显示屏805还可以设置成非矩形的不规则图形,也即异形屏。显示屏805可以采用lcd(liquidcrystaldisplay,液晶显示屏)、oled(organiclight-emittingdiode,有机发光二极管)等材质制备。

摄像头组件806用于采集图像或视频。可选地,摄像头组件806包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及vr(virtualreality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件806还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。

音频电路807可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器801进行处理,或者输入至射频电路804以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端800的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器801或射频电路804的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路807还可以包括耳机插孔。

定位组件808用于定位终端800的当前地理位置,以实现导航或lbs(locationbasedservice,基于位置的服务)。定位组件808可以是基于美国的gps(globalpositioningsystem,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。

电源809用于为终端800中的各个组件进行供电。电源809可以是交流电、直流电、一次性电池或可充电电池。当电源809包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。

在一些实施例中,终端800还包括有一个或多个传感器810。该一个或多个传感器810包括但不限于:加速度传感器811、陀螺仪传感器812、压力传感器813、指纹传感器814、光学传感器815以及接近传感器816。

加速度传感器811可以检测以终端800建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器811可以用于检测重力加速度在三个坐标轴上的分量。处理器801可以根据加速度传感器811采集的重力加速度信号,控制显示屏805以横向视图或纵向视图进行用户界面的显示。加速度传感器811还可以用于游戏或者用户的运动数据的采集。

陀螺仪传感器812可以检测终端800的机体方向及转动角度,陀螺仪传感器812可以与加速度传感器811协同采集用户对终端800的3d动作。处理器801根据陀螺仪传感器812采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变ui)、拍摄时的图像稳定、游戏控制以及惯性导航。

压力传感器813可以设置在终端800的侧边框和/或显示屏805的下层。当压力传感器813设置在终端800的侧边框时,可以检测用户对终端800的握持信号,由处理器801根据压力传感器813采集的握持信号进行左右手识别或快捷操作。当压力传感器813设置在显示屏805的下层时,由处理器801根据用户对显示屏805的压力操作,实现对ui界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。

指纹传感器814用于采集用户的指纹,由处理器801根据指纹传感器814采集到的指纹识别用户的身份,或者,由指纹传感器814根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器801授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器814可以被设置终端800的正面、背面或侧面。当终端800上设置有物理按键或厂商logo时,指纹传感器814可以与物理按键或厂商logo集成在一起。

光学传感器815用于采集环境光强度。在一个实施例中,处理器801可以根据光学传感器815采集的环境光强度,控制显示屏805的显示亮度。具体地,当环境光强度较高时,调高显示屏805的显示亮度;当环境光强度较低时,调低显示屏805的显示亮度。在另一个实施例中,处理器801还可以根据光学传感器815采集的环境光强度,动态调整摄像头组件806的拍摄参数。

接近传感器816,也称距离传感器,通常设置在终端800的前面板。接近传感器816用于采集用户与终端800的正面之间的距离。在一个实施例中,当接近传感器816检测到用户与终端800的正面之间的距离逐渐变小时,由处理器801控制显示屏805从亮屏状态切换为息屏状态;当接近传感器816检测到用户与终端800的正面之间的距离逐渐变大时,由处理器801控制显示屏805从息屏状态切换为亮屏状态。

本领域技术人员可以理解,图8中示出的结构并不构成对终端800的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。

在一些实施例中,还提供了一种计算机可读存储介质,该存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中码率分配的方法的步骤。例如,所述计算机可读存储介质可以是rom(read-onlymemory,只读存储器)、ram(randomaccessmemory,随机存取存储器)、cd-rom、磁带、软盘和光数据存储设备等。

值得注意的是,本申请提到的计算机可读存储介质可以为非易失性存储介质,换句话说,可以是非瞬时性存储介质。

应当理解的是,实现上述实施例的全部或部分步骤可以通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。所述计算机指令可以存储在上述计算机可读存储介质中。

也即是,在一些实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述所述的码率分配的方法的步骤。

以上所述为本申请提供的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1