视频编码速率调节方法、系统、设备及存储介质与流程

文档序号:26808688发布日期:2021-09-29 02:53阅读:129来源:国知局
视频编码速率调节方法、系统、设备及存储介质与流程

1.本发明涉及数据处理技术领域,尤其涉及一种视频编码速率调节方法、系统、设备及存储介质。


背景技术:

2.在网络视频传输中,一般需要发送端首先利用视频编码器进行视频编码,然后通过网络将编码后的视频数据发送给接收端。接收端接收到视频数据后进行解码,然后播放。网络发送以预测的速度向接收端发送数据,这个速度的准确性是可以保证的。但是视频编码器编出的速率是随着场景不断的变化的,一般编码出来的速率要比实际的带宽大。这样就导致视频编码器的编码速率与网络发送速率不能匹配,在视频编码器的编码速率大于网络发送速率时,会将编码后的视频数据首先存储在发送缓存队列中进行缓存,如果持续下去,会导致发送缓存队列缓存很多数据,达到发送缓存队列缓存的极限后,会有部分视频数据被丢弃。


技术实现要素:

3.针对现有技术中的问题,本发明的目的在于提供一种视频编码速率调节方法、系统、设备及存储介质,根据检测到的视频编码器的实际速率和目标编码速率的比较,修正视频编码器的实际速率,使得视频编码速率和视频发送速率更好地匹配。
4.本发明实施例提供一种视频编码速率调节方法,包括如下步骤:
5.获取视频编码器的目标编码速率;
6.检测所述视频编码器的当前编码速率;
7.计算所述视频编码器的当前编码速率和所述视频编码器的目标编码速率之间的速率偏差值;
8.根据所述速率偏差值得到所述视频编码器的更新编码速率,基于所述更新编码速率控制所述视频编码器的编码速率。
9.本发明的视频编码速率调节方法首先获取视频编码器的目标编码速率,并检测视频编码器的当前编码速率,计算两者之间的差值后,基于当前编码速率和目标编码速率之间的差值来更新视频编码器的编码速率,从而解决了视频编码器的实时编码速率实际无法达到目标编码速率的问题,提高了视频编码器的编码速率与后续发送视频数据的速率之间的适配性,避免发送缓存队列缓存过多数据,也避免数据包丢失的情况,提高视频数据发送的准确性和有效性。
10.在一些实施例中,所述获取视频编码器的目标编码速率,包括如下步骤:
11.获取当前的网络带宽预测值;
12.根据所述网络带宽预测值确定发送视频数据的目标发送速率和所述视频编码器的目标编码速率,所述发送视频的目标编码速率与所述视频编码器的目标编码速率相同。
13.在一些实施例中,所述获取当前的网络带宽预测值,包括如下步骤:
14.发送端接收到接收端的应答包;
15.所述发送端根据接收到的所述应答包计算第一网络带宽预测值;
16.所述发送端从所述应答包中提取所述接收端计算的第二网络带宽预测值;
17.所述发送端根据所述第一网络带宽预测值和所述第二网络带宽预测值,确定当前的网络带宽预测值。
18.在一些实施例中,所述视频编码器配置为对视频数据进行编码后,将已编码的视频数据存储于发送缓存队列;
19.所述检测视频编码器的当前编码速率,包括如下步骤:
20.检测于第二预设时间范围内,所述发送缓存队列存储已编码的视频数据的速率,作为所述视频编码器的当前编码速率。
21.在一些实施例中,根据所述速率偏差值得到所述视频编码器的更新编码速率,包括如下步骤:
22.根据所述速率偏差值确定速率调整值;
23.如果所述视频编码器的当前编码速率大于所述视频编码器的目标编码速率,则将所述视频编码器的目标编码速率减去所述速率调整值,得到所述视频编码器的更新编码速率;
24.如果所述视频编码器的当前编码速率小于所述视频编码器的目标编码速率,则将所述视频编码器的目标编码速率加上所述速率调整值,得到所述视频编码器的更新编码速率。
25.在一些实施例中,根据所述速率偏差值确定速率调整值,包括如下步骤:
26.查询编码速率与预设系数的映射表,获取所述视频编码器的目标编码速率所对应的预设系数;
27.将所述速率偏差值乘以所述预设系数,得到所述速率调整值。
28.本发明实施例还提供一种视频编码速率调节系统,应用于所述的视频编码速率调节方法,所述系统包括:
29.目标编码速率获取模块,用于获取视频编码器的目标编码速率;
30.编码速率检测模块,用于检测所述视频编码器的当前编码速率;
31.偏差值计算模块,用于计算所述视频编码器的当前编码速率和所述视频编码器的目标编码速率之间的速率偏差值;
32.编码速率调节模块,用于根据所述速率偏差值得到所述视频编码器的更新编码速率,基于所述更新编码速率控制所述视频编码器的编码速率。
33.本发明的视频编码速率调节系统首先通过目标编码速率获取模块获取视频编码器的目标编码速率,并通过编码速率检测模块检测视频编码器的当前编码速率,通过偏差值计算模块计算两者之间的差值后,通过编码速率调节模块基于当前编码速率和目标编码速率之间的差值来更新视频编码器的编码速率,从而解决了视频编码器的实时编码速率实际无法达到目标编码速率的问题,提高了视频编码器的编码速率与后续发送视频数据的速率之间的适配性,避免发送缓存队列缓存过多数据,也避免数据包丢失的情况,提高视频数据发送的准确性和有效性。
34.在一些实施例中,所述视频编码器配置为对视频数据进行编码后,将已编码的视
频数据存储于发送缓存队列;
35.所述编码速率检测模块采用如下步骤检测视频编码器的当前编码速率:
36.所述编码速率检测模块检测于第二预设时间范围内,所述发送缓存队列存储编码的视频数据的速率,作为所述视频编码器的当前编码速率。
37.本发明实施例还提供一种视频编码速率调节设备,包括:
38.处理器;
39.存储器,其中存储有所述处理器的可执行指令;
40.其中,所述处理器配置为经由执行所述可执行指令来执行所述的视频编码速率调节方法的步骤。
41.通过采用本发明所提供的视频编码速率调节设备,所述处理器在执行所述可执行指令时执行所述的视频编码速率调节方法,由此可以获得上述视频编码速率调节方法的有益效果。
42.本发明实施例还提供一种计算机可读存储介质,用于存储程序,所述程序被处理器执行时实现所述的视频编码速率调节方法的步骤。
43.通过采用本发明所提供的计算机可读存储介质,其中存储的程序在被执行时实现所述的视频编码速率调节方法的步骤,由此可以获得上述视频编码速率调节方法的有益效果。
附图说明
44.通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显。
45.图1是本发明一实施例的视频编码速率调节方法的流程图;
46.图2是本发明一实施例的获取视频编码器的目标编码速率的流程图;
47.图3是本发明一实施例的根据所述速率偏差值得到视频编码器的更新编码速率的流程图;
48.图4是本发明一实施例的视频编码速率调节系统的示意图;
49.图5是本发明一实施例的视频编码速率调节设备的结构示意图;
50.图6是本发明一实施例的计算机存储介质的结构示意图。
具体实施方式
51.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式;相反,提供这些实施方式使得本发明将全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的结构,因而将省略对它们的重复描述。
52.如图1所示,在一实施例中,本发明提供了一种视频编码速率调节方法,包括如下步骤:
53.s100:获取视频编码器的目标编码速率;
54.s200:检测所述视频编码器的当前编码速率;
55.s300:计算所述视频编码器的当前编码速率和所述视频编码器的目标编码速率之
间的速率偏差值;
56.s400:根据所述速率偏差值得到所述视频编码器的更新编码速率,基于所述更新编码速率控制所述视频编码器的编码速率。
57.本发明的视频编码速率调节方法首先通过上述步骤s100获取视频编码器的目标编码速率,并通过步骤s200检测视频编码器的当前编码速率,通过步骤s300计算两者之间的差值后,通过步骤s400基于当前编码速率和目标编码速率之间的差值来更新视频编码器的编码速率,从而解决了视频编码器的实时编码速率实际无法达到目标编码速率的问题,提高了视频编码器的编码速率与后续发送视频数据的速率之间的适配性,避免发送缓存队列缓存过多数据,也避免数据包丢失的情况,提高视频数据发送的准确性和有效性。
58.上述步骤s100~s400是一个视频编码速率调节循环的过程。在实际应用中,视频编码速率调节是一个不断地修正、不停地迭代调整的过程,即在各个时刻重复执行步骤s100~s400。
59.如图2所示,在该实施例中,所述步骤s100:获取视频编码器的目标编码速率,包括如下步骤:
60.s110:获取当前的网络带宽预测值;
61.s120:根据所述网络带宽预测值确定发送视频数据的目标发送速率和所述视频编码器的目标编码速率,所述发送视频的目标编码速率与所述视频编码器的目标编码速率相同,从而使得所述视频编码器的目标编码速率和发送视频数据的目标发送速率相互适配,在视频从发送端发送给接收端时,发送端首先采用视频编码器根据目标编码速率进行视频编码,得到已编码的视频数据,然后根据所述目标发送速率发送给接收端,接收端接收到已编码的视频数据后,进行解码,然后进行播放或存储。
62.具体地,根据所述网络带宽预测值确定发送视频数据的目标发送速率和所述视频编码器的目标编码速率时,可以使得所述发送视频数据的目标发送速率和所述视频编码器的目标编码速率均等于所述当前的网络带宽预测值,或者等于所述当前的网络带宽预测值乘以一小于1的系数,从而使得所述目标发送速率与当前的网络带宽相适配,保证网络带宽满足当前视频数据传输的需求。
63.如图2所示,在该实施例中,所述步骤s110:获取当前的网络带宽预测值,包括如下步骤:
64.s111:发送端接收到接收端的应答包;
65.s112:所述发送端根据接收到的所述应答包计算第一网络带宽预测值;
66.s113:所述发送端从所述应答包中提取所述接收端计算的第二网络带宽预测值;
67.s114:所述发送端根据所述第一网络带宽预测值和所述第二网络带宽预测值,确定当前的网络带宽预测值。具体地,所述发送端计算所述第一网络带宽预测值和所述第二网络带宽预测值的平均值作为当前的网络带宽预测值。
68.具体地,所述发送端可以根据接收到的所述应答包统计第一预设时间范围内的接收端的重传请求次数和/或第一预设时间范围内的接收端接收到的数据包数量,计算第一预设时间范围内发送数据的丢包率,然后根据丢包率计算第一网络带宽预测值。例如,在所述丢包率为0时,需要增大所述网络带宽预测值,根据网络带宽与第一系数的映射表,查找前一时刻的网络带宽预测值所对应的第一系数,然后将前一时刻的网络带宽预测值乘以第
一系数得到网络带宽调整值,将前一时刻的网络带宽预测值加上网络带宽调整值,得到当前的第一网络带宽预测值。在所述丢包率大于0且小于等于第一阈值时,保持前一时刻的网络带宽预测值不变,即网络带宽调整值为0,在所述丢包率大于第一阈值时,需要减小所述网络带宽预测值,然后将前一时刻的网络带宽预测值乘以丢包率得到网络带宽调整值,然后将前一时刻的网络带宽预测值减去网络带宽调整值,得到当前的第一网络带宽预测值。
69.所述接收端根据接收到的数据包来计算第二网络带宽预测值,具体地,所述接收端接收到发送端的数据包,确定所述数据包的发送时间和到达时间;所述接收端根据前后两组数据包的发送时间和到达时间计算前后两组数据包的数据延迟时间,根据前后两组数据包的大小计算数据包大小差;所述接收端根据前后两组数据包的数据延迟时间和数据包大小差判断是否需要调整第二网络带宽预测值;如果是,则所述接收端根据前一时刻的网络带宽预测值计算第二网络带宽预测值;如果否,则所述接收端将前一时刻的网络带宽预测值作为第二网络带宽预测值。所述接收端根据前一时刻的网络带宽预测值计算第二网络带宽预测值,包括如下步骤:如果需要调高所述网络带宽预测值,则所述接收端基于前一时刻的所述网络带宽预测值查询网络带宽与第一系数的映射表,得到对应的第一系数,将当前的所述网络带宽预测值乘以所述第一系数,得到网络带宽调整值,将前一时刻的所述网络带宽预测值加上所述网络带宽调整值,得到第二网络带宽预测值;如果需要调低所述网络带宽预测值,则所述接收端基于前一时刻的所述网络带宽预测值查询网络带宽与第二系数的映射表,得到对应的第二系数,将当前的所述网络带宽预测值乘以所述第二系数,得到网络带宽调整值,将前一时刻的所述网络带宽预测值减去所述网络带宽调整值,得到第二网络带宽预测值。
70.在该实施例中,所述视频编码器配置为对视频数据进行编码后,将已编码的视频数据存储于发送缓存队列,发送缓存队列可以是一个先入先出队列,在向接收端发送数据时,依次从发送缓存队列获取已编码的视频数据,发送到所述接收端。由于采用本发明中,发送视频数据的目标发送速率和所述视频编码器的目标编码速率相适配,保证发送缓存队列中不会缓存过多视频数据。并且,由于所述目标发送速率与当前的网络带宽相适配,保证视频数据可以完整发送到接收端。
71.因此,可以根据所述发送缓存队列进行数据缓存的速率来确定视频编码器的编码速率。具体地,所述步骤s200:检测视频编码器的当前编码速率,包括如下步骤:
72.检测于第二预设时间范围内,所述发送缓存队列存储已编码的视频数据的速率,作为所述视频编码器的当前编码速率。
73.如图3所示,在该实施例中,所述步骤s400:根据所述速率偏差值得到所述视频编码器的更新编码速率,包括如下步骤:
74.s410:根据所述速率偏差值确定速率调整值;
75.s420:判断当前编码速率是否大于目标编码速率;
76.s430:如果所述视频编码器的当前编码速率大于所述视频编码器的目标编码速率,则将所述视频编码器的目标编码速率减去所述速率调整值,得到所述视频编码器的更新编码速率,即进一步减小所述目标编码速率,使得所述视频编码器的实际编码速率更趋向于与目标发送速率适配;
77.s440:如果所述视频编码器的当前编码速率小于所述视频编码器的目标编码速
率,则将所述视频编码器的目标编码速率加上所述速率调整值,得到所述视频编码器的更新编码速率,即进一步增大所述目标编码速率,使得所述视频编码器的实际编码速率更趋向于与目标发送速率适配。
78.在该实施例中,所述步骤s410:根据所述速率偏差值确定速率调整值,包括如下步骤:
79.s411:查询编码速率与预设系数的映射表,获取所述视频编码器的目标编码速率所对应的预设系数;
80.具体地,所述编码速率与预设系数的映射表可以包括各个编码速率数值范围所对应的预设系数,目标编码速率落入一编码速率数值范围时,将其所对应的预设系数作为当前选择的预设系数;
81.s412:将所述速率偏差值乘以所述预设系数,得到所述速率调整值。
82.如图4所示,本发明实施例还提供一种视频编码速率调节系统,应用于所述的视频编码速率调节方法,所述系统包括:
83.目标编码速率获取模块m100,用于获取视频编码器的目标编码速率;具体地,所述目标编码速率获取模块m100可以采用上述步骤s110和s120获取目标编码速率,使得所述视频编码器的目标编码速率与发送视频数据的目标发送速率适配,并且使得发送视频数据的目标发送速率与网络带宽相适配;
84.编码速率检测模块m200,用于检测所述视频编码器的当前编码速率;
85.偏差值计算模块m300,用于计算所述视频编码器的当前编码速率和所述视频编码器的目标编码速率之间的速率偏差值;
86.编码速率调节模块m400,用于根据所述速率偏差值得到所述视频编码器的更新编码速率,基于所述更新编码速率控制所述视频编码器的编码速率;具体地,所述编码速率调节模块m400可以采用上述步骤s410~s440的方式来获取所述视频编码器的更新编码速率,使得所述视频编码器的实际编码速率更趋向于与目标发送速率适配。
87.本发明的视频编码速率调节系统首先通过目标编码速率获取模块m100获取视频编码器的目标编码速率,并通过编码速率检测模块m200检测视频编码器的当前编码速率,通过偏差值计算模块m300计算两者之间的差值后,通过编码速率调节模块m400基于当前编码速率和目标编码速率之间的差值来更新视频编码器的编码速率,从而解决了视频编码器的实时编码速率实际无法达到目标编码速率的问题,提高了视频编码器的编码速率与后续发送视频数据的速率之间的适配性,避免发送缓存队列缓存过多数据,也避免数据包丢失的情况,提高视频数据发送的准确性和有效性。
88.在该实施例中,所述视频编码器配置为对视频数据进行编码后,将已编码的视频数据存储于发送缓存队列。所述编码速率检测模块m200采用如下步骤检测视频编码器的当前编码速率:所述编码速率检测模块m200检测于第二预设时间范围内,所述发送缓存队列存储编码的视频数据的速率,作为所述视频编码器的当前编码速率。
89.本发明实施例还提供一种视频编码速率调节设备,包括处理器;存储器,其中存储有所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行所述的视频编码速率调节方法的步骤。
90.所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或
程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
91.下面参照图5来描述根据本发明的这种实施方式的电子设备600。图5显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
92.如图5所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同系统组件(包括存储单元620和处理单元610)的总线630、显示单元640等。
93.其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述电子处方流转处理方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元610可以执行如图1中所示的步骤。
94.所述存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(rom)6203。
95.所述存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
96.总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
97.电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
98.通过采用本发明所提供的视频编码速率调节设备,所述处理器在执行所述可执行指令时执行所述的视频编码速率调节方法,由此可以获得上述视频编码速率调节方法的有益效果。
99.本发明实施例还提供一种计算机可读存储介质,用于存储程序,所述程序被处理器执行时实现所述的视频编码速率调节方法的步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述电子处方流转处理方法部分中描述的根据本发明各种示例性实施方式的步骤。
100.参考图6所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(cd

rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以
是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
101.所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
102.所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
103.可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或集群上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
104.通过采用本发明所提供的计算机可读存储介质,其中存储的程序在被执行时实现所述的视频编码速率调节方法的步骤,由此可以获得上述视频编码速率调节方法的有益效果。
105.以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1