基于场景变化的GOP调度方法、系统、终端设备及介质与流程


基于场景变化的gop调度方法、系统、终端设备及介质
技术领域
1.本发明涉及流媒体数据技术领域,尤其涉及一种基于场景变化的gop调度方法、系统、终端设备以及计算机存储介质。


背景技术:



2.现如今,针对视频直播业务中涉及到的流媒体数据进行转码都是通过编解码系统直接将流媒体数据整体投放到单一设备进行解码,并且在解码过程中,都采用了固定的长度和组成类型来针对流媒体数据进行了gop(group of pictures,画面组。一个gop就是一组连续的画面。gop可以基于一个被定为“i帧”的图像进行独立解码)划分。
3.然而,实际情况中不同场景下的gop的构成实际并不相同,例如,在停车场的监控视频中,除了存在汽车或乘客移动的画面场景之外,还有大量随着时间保持静止的画面场景。由于在gop中减少加入i帧而加入较多的p帧或b帧能够提升媒体数据的编码传输效率,但是,为了确保基本的图像质量又必须要在gop中插入信息更加丰富的i帧。
4.因此,如何在图像质量和编码效率之间取得平衡成为了针对流媒体数据进行编解码中的一个亟待解决的关键问题。


技术实现要素:



5.本发明的主要目的在于提供一种基于场景变化的gop调度方法、系统、终端设备以及计算机存储介质,旨在基于场景变化重构流媒体数据的gop结构,和在gop粒度下对重构的gop结构采用平衡调度进行流媒体数据的推送,以此取得视频图像质量和流媒体数据传输解码效率之间的平衡。
6.为实现上述目的,本发明提供一种基于场景变化的gop调度方法,所述基于场景变化的gop调度方法包括:
7.根据流媒体数据进行场景检测以确定视频画面场景是否发生变化;
8.在检测到所述视频画面场景发生变化时,重构所述流媒体数据中原gop的gop结构;
9.针对重构gop结构后的所述流媒体数据,调用预设的机器学习模型为各gop逐一分配对应的解码设备,以按照gop为单位调度所述流媒体数据进行解码。
10.优选地,所述根据流媒体数据进行场景检测以确定视频画面场景是否发生变化的步骤,包括:
11.检测所述流媒体数据中的连续两帧视频画面之间的第一场景变化率;
12.若所述第一场景变化率超过预设的第一场景变化率阈值,则确定所述视频画面场景发生剧烈变化;
13.或者,
14.检测所述流媒体数据中的连续多帧视频画面中,各连续两帧视频画面之间的第二场景变化率;
15.若各所述第二场景变化率均大于预设的第二场景变化率阈值,则确定所述视频画面场景发生平缓变化,其中,所述第二场景变化率阈值小于所述第一场景变化率阈值。
16.优选地,所述重构所述流媒体数据的gop结构的步骤,包括:
17.针对所述视频画面场景发生剧烈变化的所述流媒体数据,检测符合预设条件的连续视频画面,其中,所述预设条件为:所述连续视频画面的帧数超过预设帧数阈值,和,所述连续视频画面中,各连续两帧视频画面之间的第一场景变化率均超过预设的第一场景变化率阈值;
18.若确定所述连续视频画面所属的一个或者多个原gop中不存在i帧,则在所述连续视频画面的最后一帧视频画面之后插入所述i帧;
19.根据插入的所述i帧设置gop长度以对一个或者多个所述原gop进行重构。
20.优选地,所述根据插入的所述i帧设置gop长度的步骤,包括:
21.根据插入的所述i帧确定帧序列,并计算所述帧序列的累计误差;
22.将所述累计误差最小时所述帧序列的长度设置为gop长度。
23.优选地,所述重构所述流媒体数据的gop结构的步骤,包括:
24.针对所述视频画面场景发生平缓变化的所述流媒体数据,确定发生变化的连续多帧视频画面所属的一个或者多个原gop中是否存在i帧,其中,连续多帧视频画面中,各连续两帧视频画面之间的第二场景变化率均大于预设的第二场景变化率阈值;
25.若是,则对一个或者多个所述原gop中的所述i帧进行去除。
26.优选地,所述调用预设的机器学习模型为各gop逐一分配对应的解码设备的步骤,包括:
27.依次将所述流媒体数据中各gop的解码影响参数,和待分配的调度设备的实时资源状态转换为模型特征向量;
28.逐一将所述模型特征向量输入所述机器学习模型以得到对应的分类学习结果;
29.根据所述分类学习结果依次为各所述gop分配对应的解码设备。
30.优选地,所述解码设备包括中央处理器和图形处理器;
31.所述根据所述逻辑回归结果依次为各所述gop分配对应的解码设备的步骤,包括:
32.若所述分类学习结果为所述中央处理器映射的第一标识,则将各所述gop中所述模型特征向量映射的第一gop分配至所述中央处理器;
33.或者,
34.若所述分类学习结果为所述图形处理器映射的第二标识,则将各所述gop中所述模型特征向量映射的第二gop分配至所述图形处理器。
35.此外,为实现上述目的,本发明还提供一种基于场景变化的gop调度系统,所述基于场景变化的gop调度系统包括:
36.场景检测模块,用于根据流媒体数据进行场景检测以确定视频画面场景是否发生变化;
37.gop重构模块,用于在检测到所述视频画面场景发生变化时,重构所述流媒体数据中原gop的gop结构;
38.调度模块,用于针对重构gop结构后的所述流媒体数据,调用预设的机器学习模型为各gop逐一分配对应的解码设备,以按照gop为单位调度所述流媒体数据进行解码。
39.其中,本发明基于场景变化的gop调度系统的各功能模块在运行时实现如上所述的基于场景变化的gop调度方法的步骤。
40.此外,为实现上述目的,本发明还提供一种终端设备,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于场景变化的gop调度程序,所述基于场景变化的gop调度程序被所述处理器执行时实现如上所述的基于场景变化的gop调度方法的步骤。
41.此外,为实现上述目的,本发明还提供计算机存储介质,所述计算机存储介质上存储有基于场景变化的gop调度程序,所述基于场景变化的gop调度程序被处理器执行时实现如上所述的基于场景变化的gop调度方法的步骤。
42.此外,为实现上述目的,本发明还提供一种计算机存储介质,所述计算机存储介质上存储有基于场景变化的gop调度程序,所述基于场景变化的gop调度程序被处理器执行时实现如上所述的基于场景变化的gop调度方法的步骤。
43.本发明提供一种基于场景变化的gop调度方法、系统、终端设备、计算机存储介质以及计算机存储介质,通过根据流媒体数据进行场景检测以确定视频画面场景是否发生变化;在检测到所述视频画面场景发生变化时,重构所述流媒体数据中原gop的gop结构;针对重构gop结构后的所述流媒体数据,调用预设的机器学习模型为各gop逐一分配对应的解码设备,以按照gop为单位调度所述流媒体数据进行解码。
44.本发明在针对流媒体数据进行编解码的过程中,根据该流媒体数据针对视频画面场景进行检测,以确定该实时画面场景是否发生了变化,如此,在检测确定该视频画面场景发生变化时,针对该流媒体数据当中的原gop进行gop结构的重构操作,之后,进一步针对经过重构gop结构后的流媒体数据,调用预设的机器学习模型来逐一的为该流媒体数据当中的各个gop分配对应的解码设备,从而按照gop为调度的单位对该流媒体数据进行解码。
45.相比于传统基于固定gop结构进行划分以解码流媒体数据的方式,本发明通过流媒体数据中视频画面场景的具体变化情况动态重构gop,然后通过调用预先基于视频分辨率、帧率、码率、设备资源的实时信息等训练好的机器学习模型,在gop粒度下进行解码设备的分配以平衡gop调度进行数据推送,如此,实现了在流媒体数据在图像质量和传输解码效率之间取得良好平衡,不仅能够极大的提高流媒体数据的编码和传输效率,还能有效地减少数据编码时间和便于数据调度方案的部署实现。
附图说明
46.图1为本发明实施例方案涉及的终端设备硬件运行环境的设备结构示意图;
47.图2为本发明基于场景变化的gop调度方法一实施例的流程示意图;
48.图3为本发明基于场景变化的gop调度系统一实施例的应用场景示意图;
49.图4为本发明基于场景变化的gop调度系统一实施例的功能模块示意图。
50.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
51.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
52.参照图1,图1为本发明实施例方案涉及的终端设备硬件运行环境的设备结构示意
图。
53.本发明实施例终端设备可以是针对流媒体数据进行编解码处理的设备,该终端设备具体可以是服务器、智能手机、pc(personal computer,个人计算机)、平板电脑、便携计算机等等。
54.如图1所示,该终端设备可以包括:处理器1001,例如cpu,通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
55.本领域技术人员可以理解,图1中示出的终端设备结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
56.如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及基于场景变化的gop调度程序。
57.在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端,与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的基于场景变化的gop调度程序,并执行以下步骤:
58.根据流媒体数据进行场景检测以确定视频画面场景是否发生变化;
59.在检测到所述视频画面场景发生变化时,重构所述流媒体数据中原gop的gop结构;
60.针对重构gop结构后的所述流媒体数据,调用预设的机器学习模型为各gop逐一分配对应的解码设备,以按照gop为单位调度所述流媒体数据进行解码。
61.优选地,处理器1001可以用于调用存储器1005中存储的基于场景变化的gop调度程序,还执行以下步骤:
62.检测所述流媒体数据中的连续两帧视频画面之间的第一场景变化率;
63.若所述第一场景变化率超过预设的第一场景变化率阈值,则确定所述视频画面场景发生剧烈变化;
64.或者,
65.检测所述流媒体数据中的连续多帧视频画面中,各连续两帧视频画面之间的第二场景变化率;
66.若各所述第二场景变化率均大于预设的第二场景变化率阈值,则确定所述视频画面场景发生平缓变化,其中,所述第二场景变化率阈值小于所述第一场景变化率阈值。
67.优选地,处理器1001可以用于调用存储器1005中存储的基于场景变化的gop调度程序,还执行以下步骤:
68.针对所述视频画面场景发生剧烈变化的所述流媒体数据,检测符合预设条件的连续视频画面,其中,所述预设条件为:所述连续视频画面的帧数超过预设帧数阈值,和,所述连续视频画面中,各连续两帧视频画面之间的第一场景变化率均超过预设的第一场景变化率阈值;
69.若确定所述连续视频画面所属的一个或者多个原gop中不存在i帧,则在所述连续视频画面的最后一帧视频画面之后插入所述i帧;
70.根据插入的所述i帧设置gop长度以对一个或者多个所述原gop进行重构。
71.优选地,处理器1001可以用于调用存储器1005中存储的基于场景变化的gop调度程序,还执行以下步骤:
72.根据插入的所述i帧确定帧序列,并计算所述帧序列的累计误差;
73.将所述累计误差最小时所述帧序列的长度设置为gop长度。
74.优选地,处理器1001可以用于调用存储器1005中存储的基于场景变化的gop调度程序,还执行以下步骤:
75.针对所述视频画面场景发生平缓变化的所述流媒体数据,确定发生变化的连续多帧视频画面所属的一个或者多个原gop中是否存在i帧,其中,连续多帧视频画面中,各连续两帧视频画面之间的第二场景变化率均大于预设的第二场景变化率阈值;
76.若是,则对一个或者多个所述原gop中的所述i帧进行去除。
77.优选地,处理器1001可以用于调用存储器1005中存储的基于场景变化的gop调度程序,还执行以下步骤:
78.依次将所述流媒体数据中各gop的解码影响参数,和待分配的调度设备的实时资源状态转换为模型特征向量;
79.逐一将所述模型特征向量输入所述机器学习模型以得到对应的分类学习结果;
80.根据所述分类学习结果依次为各所述gop分配对应的解码设备。
81.优选地,所述解码设备包括中央处理器和图形处理器,处理器1001可以用于调用存储器1005中存储的基于场景变化的gop调度程序,还执行以下步骤:
82.若所述分类学习结果为所述中央处理器映射的第一标识,则将各所述gop中所述模型特征向量映射的第一gop分配至所述中央处理器;
83.或者,
84.若所述分类学习结果为所述图形处理器映射的第二标识,则将各所述gop中所述模型特征向量映射的第二gop分配至所述图形处理器。
85.基于上述硬件结构,提出本发明基于场景变化的gop调度方法的各实施例。
86.需要说明的是,在本发明基于场景变化的gop调度方法的各实施例中,由于现如今,针对视频直播业务中涉及到的流媒体数据进行转码都是通过编解码系统直接将流媒体数据整体投放到单一设备进行解码,并且在解码过程中,都采用了固定的长度和组成类型来针对流媒体数据进行了gop(group of pictures,画面组。一个gop就是一组连续的画面。gop可以基于一个被定为“i帧”的图像进行独立解码)划分。
87.然而,实际情况中不同场景下的gop的构成实际并不相同,例如,在停车场的监控视频中,除了存在汽车或乘客移动的画面场景之外,还有大量随着时间保持静止的画面场景。由于在gop中减少加入i帧而加入较多的p帧或b帧能够提升媒体数据的编码传输效率,但是,为了确保基本的图像质量又必须要在gop中插入信息更加丰富的i帧。
88.因此,如何在图像质量和编码效率之间取得平衡成为了针对流媒体数据进行编解码中的一个亟待解决的关键问题。
89.针对上述现象,本发明提供一种基于场景变化的gop调度方法。如图2所示的应用
场景,终端设备通过拉流器拉取到当前要进行编解码的流媒体数据之后,根据该流媒体数据针对视频画面场景进行检测,以确定该实时画面场景是否发生了变化,如此,在检测确定该视频画面场景发生变化时,针对该流媒体数据当中的原gop进行gop结构的重构操作,之后,进一步针对经过重构gop结构后的流媒体数据,调用预设的机器学习模型来逐一的为该流媒体数据当中的各个gop分配对应的解码设备,从而按照gop为调度的单位对该流媒体数据进行平衡调度进行解码,最后再通过推流器将解码的流媒体数据推送出去进行视频画面的播放显示。
90.相比于传统基于固定gop结构进行划分以解码流媒体数据的方式,本发明通过流媒体数据中视频画面场景的具体变化情况动态重构gop,然后通过调用预先基于视频分辨率、帧率、码率、设备资源的实时信息等训练好的机器学习模型,在gop粒度下进行解码设备的分配以平衡gop调度进行数据推送,如此,实现了在流媒体数据在图像质量和传输解码效率之间取得良好平衡,不仅能够极大的提高流媒体数据的编码和传输效率,还能有效地减少数据编码时间和便于数据调度方案的部署实现。
91.请参照图3,图3为本发明基于场景变化的gop调度方法第一实施例的流程示意图。在本实施例中,本发明基于场景变化的gop调度方法应用于上述终端设备。需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
92.在本实施例中,本发明基于场景变化的gop调度方法包括:
93.步骤s10,根据流媒体数据进行场景检测以确定视频画面场景是否发生变化;
94.在本实施例中,终端设备在针对拉取到的流媒体数据进行编解码的过程中,首先针对该流媒体数据中的视频画面场景进行检测,从而确定该视频画面场景是否发生变化。
95.作为一种可行的实施方式,终端设备具体可以通过检测流媒体数据当中第n帧视频画面和第n-1帧视频画面之间是否存在差异,来确定视频画面场景是否发生变化。
96.需要说明的是,在本实施例中,视频画面场景发生的变化可分为两类:剧烈变化和平缓变化,其中,剧烈变化具体可以为视频画面前后只花一帧的时间,速度较快的发生变化,而平缓变化则具体可以为视频画面通过几帧甚至是几十帧的时间来完成场景过渡,即缓慢、逐渐改变画面场景。
97.步骤s20,在检测到所述视频画面场景发生变化时,重构所述流媒体数据中原gop的gop结构;
98.在本实施例中,终端设备在进行场景检测确定当前流媒体数据的视频画面场景发生变化时,立即针对该流媒体数据中符合重构条件的一个或者多个原gop进行gop结构的重构处理。
99.需要说明的是,在本实施例中,重构条件包括:视频画面场景发生剧烈变化的连续多帧视频画面所处一个或者多个原gop中,不存在包含有丰富信息供该gop进行独立解码的i帧,和,视频画面场景发生平缓变化的连续多帧视频画面所处一个或者多个原gop中存在i帧。
100.此外,作为一种可行的实施方式,上述的重构条件还可以包括:视频画面场景未发生任何变化的连续多帧视频画面所处一个或者多个原gop中存在i帧。
101.步骤s30,针对重构gop结构后的所述流媒体数据,调用预设的机器学习模型为各
gop逐一分配对应的解码设备,以按照gop为单位调度所述流媒体数据进行解码。
102.在本实施例中,终端设备在针对流媒体数据中的原gop进行gop结构的重构处理之后,针对经过重构gop之后的流媒体数据,进一步调用预设的机器学习模型来逐一的为该流媒体数据中的各个gop,分配对应的解码设备,从而针对该流媒体数据在gop粒度上,以gop为调度的单位进行调度和解码。
103.需要说明的是,在本实施例中,预设的机器学习模型可以为终端设备预先训练好的卷积神经网络模型或者逻辑回归模型。终端设备具体可以通过该卷积神经网络模块或者该逻辑回归模型来为经过gop重构后的流媒体数据中的各个gop逐一分配gpu(graphics processing unit,图形处理器,又称显示核心、视觉处理器、显示芯片)或者cpu(central processing unit,中央处理器)作为对应的解码设备。
104.应当理解的是,基于实际应用的不同设计需要,在其它任意可行的实施方式当中,终端设备当然还可以将本地可用的其它设备资源作为上述的解码设备进行调度分配以对流媒体数据中的gop进行调度,本发明基于场景变化的gop调度方法并不针对具体采用的本地设备资源的种类进行限定。
105.在本实施例中,本发明基于场景变化的gop调度方法通过根据流媒体数据针对视频画面场景进行检测,以确定该实时画面场景是否发生了变化,如此,在检测确定该视频画面场景发生变化时,针对该流媒体数据当中的原gop进行gop结构的重构操作,之后,进一步针对经过重构gop结构后的流媒体数据,调用预设的机器学习模型来逐一的为该流媒体数据当中的各个gop分配对应的解码设备,从而按照gop为调度的单位对该流媒体数据进行解码。
106.相比于传统基于固定gop结构进行划分以解码流媒体数据的方式,本发明通过流媒体数据中视频画面场景的具体变化情况动态重构gop,然后通过调用预先基于视频分辨率、帧率、码率、设备资源的实时信息等训练好的机器学习模型,在gop粒度下进行调度设备的分配以平衡gop调度进行数据推送,如此,实现了在流媒体数据在图像质量和传输解码效率之间取得良好平衡,不仅能够极大的提高流媒体数据的编码和传输效率,还能有效地减少数据编码时间和便于数据调度方案的部署实现。
107.进一步地,基于上述本发明基于场景变化的gop调度方法的第一实施例,提出本发明基于场景变化的gop调度方法的第二实施例。
108.在本实施例中,上述的步骤10,根据流媒体数据进行场景检测以确定视频画面场景是否发生变化,可以包括:
109.检测所述流媒体数据中的连续两帧视频画面之间的第一场景变化率;
110.若所述第一场景变化率超过预设的第一场景变化率阈值,则确定所述视频画面场景发生剧烈变化。
111.在本实施例中,终端设备在针对流媒体数据中的视频画面场景进行检测的过程中,首先检测该流媒体数据中的连续两帧视频画面之间的第一场景变化率,然后,检测该第一场景变化率是否超过了预设的第一场景变化率阈值,从而,在检测到该第一场景变化率超过了该第一场景变化率阈值的情况下,确定该流媒体数据在该连续的两帧视频画面之间发生了视频画面场景的剧烈变化。
112.需要说明的是,在本实施例中,终端设备具体可以通过流媒体数据中连续两帧视
频画面各自的satd(视频残差信号大小的衡量标准)值的比值来定义该连续两帧视频画面之间的变化率。而为了降低复杂度,提高终端设备对流媒体数据进行编解码的时间效率,终端设备在一种可行的实时方式当中,具体可以使用对流媒体数据进行编码时对每帧视频画面进行计算的块来计算该每一帧视频画面的satd值。
113.此外,第一场景变化率阈值具体可以为终端设备基于实际应用的设计场景进行设置并存储在本地的变化率经验值。示例性地,终端设备在通过计算得出流媒体数据当中连续的两帧视频画面(如第n帧视频画面和第n-1帧视频画面)之间的第一场景变化率之后,立即从本地存储空间读取预先设置的第一场景变化率阈值来检测该第一场景变化率是否大于该第一场景变化率阈值,从而在检测到是时,确定该流媒体数据在该连续的两帧视频画面之间发生了视频画面场景的剧烈变化。
114.应当理解的是,基于实际应用的不同设计需要,在不同可行的实施方式当中,终端设备配置的第一场景变化率阈值当然可以为任意不同大小的变化率经验值,本发明基于场景变化的gop调度方法并不针对该第一场景变化率阈值的具体大小进行限定。
115.进一步地,在实施例中,上述的步骤10,根据流媒体数据进行场景检测以确定视频画面场景是否发生变化,还可以包括:
116.检测所述流媒体数据中的连续多帧视频画面中,各连续两帧视频画面之间的第二场景变化率;
117.若各所述第二场景变化率均大于预设的第二场景变化率阈值,则确定所述视频画面场景发生平缓变化。
118.在本实施例中,终端设备在针对流媒体数据中的视频画面场景进行检测的过程中,除了仅检测该流媒体数据中的连续两帧视频画面之间的第一场景变化率之外,还同步或者异步的检测该流媒体数据中的连续多帧视频画面中,各连续两帧视频画面之间的第二场景变化率;之后,终端设备进一步检测该多个第二场景变化率各自是否都超过了预设的第二场景变化率阈值,从而,在检测到该多个第二场景变化率各自都超过了该第二场景变化率阈值的情况下,终端设备即确定该流媒体数据在该连续的多帧视频画面之间发生了视频画面场景的平缓变化。
119.需要说明的是,在本实施例中,第二场景变化率阈值小于上述的第一场景变化率阈值。同样的道理,第二场景变化率阈值具体也可以为终端设备基于实际应用的设计场景进行设置并存储在本地的变化率经验值,并且,基于实际应用的不同设计需要,在不同可行的实施方式当中,终端设备配置的第二场景变化率阈值当然可以为任意不同大小的变化率经验值,因此,本发明基于场景变化的gop调度方法也并不针对该第二场景变化率阈值的具体大小进行限定。
120.示例性地,终端设备在通过计算得出流媒体数据当中连续的多帧视频画面(如第n帧视频画面至第m帧视频画面)中,每两个连续的视频画面之间的各第二场景变化率之后,立即从本地存储空间读取预先设置的第二场景变化率阈值来逐一的检测该第二场景变化率是否大于该第二场景变化率阈值,从而,终端设备在检测到该每一个第二场景变化率阈值均大于该第二场景变化率阈值时,确定该流媒体数据在该连续的多帧视频画面之间发生了视频画面场景的平缓变化。
121.需要说明的是,在本实施例中,流媒体数据中的视频画面场景发生的平缓变化具
体可分为两个阶段:渐变阶段和收敛阶段,其中,在渐变阶段,当前帧视频画面和最后一个场景发生了变化视频画面帧的变化率(两帧视频画面各自的satd值的比值)会发生变化,且,该变化率也是大于上述的第二场景变化率阈值的;而在收敛阶段,尽管视频画面的satd值会减缓增长趋势从而导致靠后的多种视频画面中连续两帧视频画面的第二场景变化率进入收敛阶段,但即便如此,该第二场景变化率也是大于上述的第二场景变化率阈值的。此外,由于视频画面场景的平缓变化是在收敛阶段完成的,因此终端设备在检测某两个连续的视频画面之间的第二场景变化率小于或者等于了上述的第二场景变化率阈值,则终端设备即确定该平缓变化已经结束。
122.进一步地,基于上述本发明基于场景变化的gop调度方法的第一实施例和/或者第二实施例,提出本发明基于场景变化的gop调度方法的第三实施例。
123.在本实施例中,上述步骤s20中“重构所述流媒体数据的gop结构”的步骤,可以包括:
124.针对所述视频画面场景发生剧烈变化的所述流媒体数据,检测符合预设条件的连续视频画面;
125.若确定所述连续视频画面所属的一个或者多个原gop中不存在i帧,则在所述连续视频画面的最后一帧视频画面之后插入所述i帧;
126.根据插入的所述i帧设置gop长度以对一个或者多个所述原gop进行重构。
127.在本实施例中,终端设备在检测确定流媒体数据中的视频画面场景发生了变化,从而针对该流媒体数据中的一个或者多个原gop进行重构时,若终端设备当前检测到该视频画面场景发生的是剧烈变化,则终端设备首先在该流媒体数据当中检测符合预设条件的连续视频画面,从而在进一步检测确定到该连续视频画面所属的一个或者多个原gop当中不存在i帧时,立即在该连续视频画面的最后一帧视频画面之后的位置处插入一个信息丰富的i帧。之后,终端设备还基于插入后的i帧来进行gop长度设置从而完成针对该一个或者多个原gop的重构处理。
128.需要说明的是,在本实施例中,预设条件为:连续视频画面的帧数超过预设帧数阈值,和,该连续视频画面中,各连续两帧视频画面之间的第一场景变化率均超过预设的第一场景变化率阈值。此外,预设帧数阈值为基于终端设备针对流媒体数据进行编解码时对应的视频帧率进行设置,例如,视频帧率一般是25fps,则终端设备可具体设置该预设帧数阈值为25。
129.示例性地,假设流媒体数据中一个视频画面场景的时长不少于25帧,且,终端设备在检测到该流媒体数据连续的25帧视频画面中,前后连续的两帧视频画面的第一场景变化率(两帧视频画面各自的satd值的比值)都大于上述的第一场景变化率阈值之后,终端设备即可在以在此处设置一个i帧。然后,终端设备进一步根据该插入的i帧与另一个i帧(可以是原gop中的i帧,也可以是同样为新插入的)之间的距离来设置gop长度,从而完成对当前该25帧视频画面所属的一个或者多个原gop进行gop结构的重构处理。
130.进一步地,在一种可行的实施例中,上述“根据插入的所述i帧设置gop长度”的步骤,可以包括:
131.根据插入的所述i帧确定帧序列,并计算所述帧序列的累计误差;
132.将所述累计误差最小时所述帧序列的长度设置为gop长度。
133.在本实施例中,终端设备在重构流媒体数据中的原gop的过程中,在基于i帧设置gop长度时,首先基于插入的i帧和另一个i帧之间的距离确定帧序列,然后计算该帧序列的累计误差,如此,终端设备在计算到该累计误差最小时该帧序列的长度设置为gop长度。
134.示例性地,在本实施例中,终端设备设置的gop长度具体可以为流媒体数据中相邻的两个i帧之间的距离。如此,终端设备对于流媒体数据中的任意一个帧序列都能够基于相邻两个帧之间的satd值的比值得到一个satd值序列{s1,...,sm}(该satd值序列可反应流媒体数据中视频画面场景的变化状态,即,该satd值序列中的s值超过上述的第一场景变化率阈值时,可确定该s值对应的前后两帧视频画面之间发生了剧烈变化,或者,该satd值序列中连续的多个s值均超过了上述的第二场景变化率阈值时,可确定该多个s值对应的多帧视频画面之间发生了平缓变化)。之后,终端设备即基于该satd值序列{s1,...,sm}进行计算以到一个令{s1,...,sm}的期望值最大的时刻n,以将该时刻n在帧序列中对应的帧序列累计误差最小的长度,确定为当前要设置的gop长度。
135.需要说明的是,在本实施例中,假定任意一个帧序列中每一帧视频画面的satd值是符合正态分布的,从而该satd值的概率密度函数已知,则终端设备定义该帧序列的累计误差yn为:
[0136][0137]
这其中,y为非负数,表示初始误差。并且,终端设备还定义t为帧序列的最大容忍误差,从而存在w(yn,t)以,使得:
[0138][0139]
因此,终端设备即可将上述计算问题转化为寻一个时刻t*,以使得在该t*时刻,期望值e{w(y
t*
)|y1}最大。而时刻t*则具体可以结合上述帧序列分布的概率密度函数求解得到。
[0140]
进一步地,在一种可行的实施例中,上述“根据插入的所述i帧设置gop长度”的步骤,还可以包括:
[0141]
针对所述视频画面场景发生平缓变化的所述流媒体数据,确定发生变化的连续多帧视频画面所属的一个或者多个原gop中是否存在i帧,其中,连续多帧视频画面中,各连续两帧视频画面之间的第二场景变化率均大于预设的第二场景变化率阈值;
[0142]
若是,则对一个或者多个所述原gop中的所述i帧进行去除。
[0143]
在本实施例中,终端设备在检测确定流媒体数据中的视频画面场景发生了变化,从而针对该流媒体数据中的一个或者多个原gop进行重构时,若终端设备当前检测到该视频画面场景发生的是平缓变化,则终端设备首先在该流媒体数据当中检测确定发生变化的连续多帧视频画面,即连续两帧视频画面之间的第二场景变化率均大于上述第二场景变化率阈值的连续多帧视频画面,从而在进一步检测确定到该连续视频画面所属的一个或者多个原gop当中存在i帧时,立即将该i帧进行去除以进行针对该一个或者多个原gop的重构处理。
[0144]
进一步地,基于上述本发明基于场景变化的gop调度方法的第一实施例、第二实施
例和/或者第三实施例,提出本发明基于场景变化的gop调度方法的第四实施例。
[0145]
在本实施例中,上述步骤s30中“调用预设的机器学习模型为各gop逐一分配对应的解码设备”的步骤,可以包括:
[0146]
依次将所述流媒体数据中各gop的解码影响参数,和待分配的调度设备的实时资源状态转换为模型特征向量;
[0147]
逐一将所述模型特征向量输入所述机器学习模型以得到对应的分类学习结果;
[0148]
根据所述分类学习结果依次为各所述gop分配对应的解码设备。
[0149]
在本实施例中,终端设备在调用预先训练好的机器学习模型为流媒体数据当中的一个gop分配可用的解码设备时,终端设备将针对该gop进行解码的各个解码影响参数,和终端设备当前可用的调度设备的实时资源状态,转换成为机器学习模型的模型特征向量,之后,终端设备将该gop对应的该模型特征向量输入到当前调用的机器学习模型当中,以通过该模型进行模型训练之后得到分类学习结果,从而,终端设备即可按照该分类学习结果的类型来为当前gop分配解码设备。基于此,终端设备即可依次针对流媒体数据当中的每一个gop逐一进行解码设备的分配。
[0150]
需要说明的是,在本实施例中,终端设备针对流媒体数据中的gop进行解码时的各个解码影响参数包括但不限于:视频分辨率、帧率、码率,而终端设备在当前可用的调度设备的实时资源状态包括但不限于:设备空闲率、占用率或者空闲状态。
[0151]
进一步地,在一种可行的实施例中,上述的解码设备包括中央处理器cpu和图形处理器gpu。基于此,上述“根据所述分类学习结果依次为各所述gop分配对应的解码设备”的步骤,具体可以包括:
[0152]
若所述分类学习结果为所述中央处理器映射的第一标识,则将各所述gop中所述模型特征向量映射的第一gop分配至所述中央处理器;
[0153]
或者,
[0154]
若所述分类学习结果为所述图形处理器映射的第二标识,则将各所述gop中所述模型特征向量映射的第二gop分配至所述图形处理器。
[0155]
在本实施例中,终端设备在调用预先训练好的机器学习模型逐一为流媒体数据中的各gop分配解码设备的过程中,在通过该机器学习模型进行模型训练得到分类学习结果之后,立即检测该机器学习结果是中央处理器cpu映射的第一标识还是图形处理器gpu映射的第二标识。如此,终端设备在检测到的该分类学习结果为中央处理器cpu映射的第一标识时,终端设备即可将流媒体数据的各gop中,由当前该机器学习模型进行模型训练的模型特征向量所映射的第一gop,分配至中央处理器cpu进行后续的解码处理;或者,终端设备在检测到的该分类学习结果为图形处理器gpu映射的第二标识时,终端设备即可将流媒体数据的各gop中,由当前该机器学习模型进行模型训练的模型特征向量所映射的第二gop,分配至图形处理器gpu进行后续的解码处理。
[0156]
示例性地,假定终端设备预先设定中央处理器cpu映射的第一标识为1,并设定图形处理器gpu映射的第二标识为0。如此,在终端设备调用机器学习模型针对上述的模型特征向量进行训练以预测该模型特征向量映射的gop应当被分配至中央处理器cpu进行解码还是被分配至图形处理器gpu进行解码的预测阶段,终端设备在当前需要进行调度分配的gop映射的模型特征向量输入机器学习模型,以得到该机器学习模型输出的分类学习结果
之后,若该分类学习结果为0,则终端设备即可将该gop调度分配至图形处理器gpu进行解码,反之,若该分类学习结果为1,则终端设备即可将该gop调度分配至中央处理器cpu进行解码。
[0157]
进一步地,在一种可行的实施例中,若终端设备采用的上述机器学习模型为逻辑回归模型,则终端设备预先可基于上述流媒体数据中各gop的解码影响参数、调度设备的实时资源状态和各所述gop对应的调度设备,来预先训练构建得到该逻辑回归模型。基于此,本发明基于场景变化的gop调度方法,还可以包括:
[0158]
根据流媒体数据中各gop的解码影响参数、调度设备的实时资源状态和各所述gop对应的调度设备构建样本数据;
[0159]
根据所述样本数据进行逻辑回归训练,以得到为所述流媒体数据中各gop分配对应调度设备的逻辑回归模型。
[0160]
在本实施例中,终端设备在为流媒体数据当中的各个gop分配可用的调度设备之前,可以通过读取终端设备预先采集的对流媒体数据中的gop进行解码时的视频分辨率、帧率、码率等解码影响参数、具体分配用于对该gop进行调度的调度设备的实时资源状态,如设备空闲率,和,该调度设备的设备标识信息,一起构建得到用于进行逻辑回归训练的样本数据,之后,终端设备即在本地基于该样本数据进行逻辑回归训练,以得到后续为流媒体数据中各gop分配对应调度设备的逻辑回归模型。
[0161]
此外,作为一种可行的实施方式,终端设备当然也可以直接调用其它终端基于相同性质的样本数据进行逻辑回归训练得到的逻辑回归模型,来为流媒体数据中的gop分配调度设备。
[0162]
此外,作为一种可行的实施方式,终端设备在调用逻辑回归模型为流媒体数据中的某一个gop分配调度设备之后,还可以联合终端设备针对该gop进行解码的视频分辨率、帧率、码率等解码影响参数,该调度设备的空闲率等实时资源状态,以及该调度设备的设备标识,构建形成新的样本数据以用于后续针对该逻辑回归模型进行更新,或者用于对其它新的逻辑回归模型进行训练。
[0163]
进一步地,本发明还提供一种基于场景变化的gop调度系统。请参照图4,图4为本发明基于场景变化的gop调度系统一实施例的功能模块示意图。如图4所示,本发明基于场景变化的gop调度系统包括:
[0164]
场景检测模块10,用于根据流媒体数据进行场景检测以确定视频画面场景是否发生变化;
[0165]
gop重构模块20,用于在检测到所述视频画面场景发生变化时,重构所述流媒体数据中原gop的gop结构;
[0166]
调度模块30,用于针对重构gop结构后的所述流媒体数据,调用预设的机器学习模型为各gop逐一分配对应的解码设备,以按照gop为单位调度所述流媒体数据进行解码。
[0167]
进一步地,场景检测模块10,包括:
[0168]
第一检测单元,用于检测所述流媒体数据中的连续两帧视频画面之间的第一场景变化率;
[0169]
第一变化确定单元,用于若所述第一场景变化率超过预设的第一场景变化率阈值,则确定所述视频画面场景发生剧烈变化;
[0170]
第二检测单元,用于检测所述流媒体数据中的连续多帧视频画面中,各连续两帧视频画面之间的第二场景变化率;
[0171]
第二变化确定单元,用于若各所述第二场景变化率均大于预设的第二场景变化率阈值,则确定所述视频画面场景发生平缓变化,其中,所述第二场景变化率阈值小于所述第一场景变化率阈值。
[0172]
进一步地,gop重构模块20,包括:
[0173]
第三检测单元,用于针对所述视频画面场景发生剧烈变化的所述流媒体数据,检测符合预设条件的连续视频画面,其中,所述预设条件为:所述连续视频画面的帧数超过预设帧数阈值,和,所述连续视频画面中,各连续两帧视频画面之间的第一场景变化率均超过预设的第一场景变化率阈值;
[0174]
i帧插入单元,用于若确定所述连续视频画面所属的一个或者多个原gop中不存在i帧,则在所述连续视频画面的最后一帧视频画面之后插入所述i帧;
[0175]
gop长度设置单元,用于根据插入的所述i帧设置gop长度以对一个或者多个所述原gop进行重构。
[0176]
进一步地,gop长度设置单元,包括:
[0177]
计算子单元,用于根据插入的所述i帧确定帧序列,并计算所述帧序列的累计误差;
[0178]
设置子单元,用于将所述累计误差最小时所述帧序列的长度设置为gop长度。
[0179]
进一步地,gop重构模块20,还包括:
[0180]
确定单元,用于针对所述视频画面场景发生平缓变化的所述流媒体数据,确定发生变化的连续多帧视频画面所属的一个或者多个原gop中是否存在i帧,其中,连续多帧视频画面中,各连续两帧视频画面之间的第二场景变化率均大于预设的第二场景变化率阈值;
[0181]
i帧去除单元,用于对一个或者多个所述原gop中的所述i帧进行去除。
[0182]
进一步地,调度模块30,包括:
[0183]
转换单元,用于依次将所述流媒体数据中各gop的解码影响参数,和待分配的调度设备的实时资源状态转换为模型特征向量;
[0184]
模型计算单元,用于逐一将所述模型特征向量输入所述机器学习模型以得到对应的分类学习结果;
[0185]
调度分配单元,用于根据所述分类学习结果依次为各所述gop分配对应的解码设备。
[0186]
进一步地,调度分配单元,还用于若所述分类学习结果为所述中央处理器映射的第一标识,则将各所述gop中所述模型特征向量映射的第一gop分配至所述中央处理器;或者,若所述分类学习结果为所述图形处理器映射的第二标识,则将各所述gop中所述模型特征向量映射的第二gop分配至所述图形处理器。
[0187]
进一步地,本发明基于场景变化的gop调度系统,还包括:
[0188]
样本构建模块,用于根据流媒体数据中各gop的解码影响参数、调度设备的实时资源状态和各所述gop对应的调度设备构建样本数据;
[0189]
模型训练模块,用于根据所述样本数据进行逻辑回归训练,以得到为所述流媒体
数据中各gop分配对应调度设备的逻辑回归模型。
[0190]
其中,上述基于场景变化的gop调度系统中各个模块的功能实现与上述基于场景变化的gop调度方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。
[0191]
本发明还提供一种计算机存储介质,所述计算机存储介质包括计算机程序,所述计算机程序被处理器执行时实现如以上任一项实施例所述的基于场景变化的gop调度方法的步骤。
[0192]
本发明计算机存储介质的具体实施例与上述基于场景变化的gop调度方法各实施例基本相同,在此不作赘述。
[0193]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
[0194]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0195]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0196]
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

技术特征:


1.一种基于场景变化的gop调度方法,其特征在于,所述基于场景变化的gop调度方法包括:根据流媒体数据进行场景检测以确定视频画面场景是否发生变化;在检测到所述视频画面场景发生变化时,重构所述流媒体数据中原gop的gop结构;针对重构gop结构后的所述流媒体数据,调用预设的机器学习模型为各gop逐一分配对应的解码设备,以按照gop为单位调度所述流媒体数据进行解码。2.如权利要求1所述的基于场景变化的gop调度方法,其特征在于,所述根据流媒体数据进行场景检测以确定视频画面场景是否发生变化的步骤,包括:检测所述流媒体数据中的连续两帧视频画面之间的第一场景变化率;若所述第一场景变化率超过预设的第一场景变化率阈值,则确定所述视频画面场景发生剧烈变化;或者,检测所述流媒体数据中的连续多帧视频画面中,各连续两帧视频画面之间的第二场景变化率;若各所述第二场景变化率均大于预设的第二场景变化率阈值,则确定所述视频画面场景发生平缓变化,其中,所述第二场景变化率阈值小于所述第一场景变化率阈值。3.如权利要求1或者2所述的基于场景变化的gop调度方法,其特征在于,所述重构所述流媒体数据的gop结构的步骤,包括:针对所述视频画面场景发生剧烈变化的所述流媒体数据,检测符合预设条件的连续视频画面,其中,所述预设条件为:所述连续视频画面的帧数超过预设帧数阈值,和,所述连续视频画面中,各连续两帧视频画面之间的第一场景变化率均超过预设的第一场景变化率阈值;若确定所述连续视频画面所属的一个或者多个原gop中不存在i帧,则在所述连续视频画面的最后一帧视频画面之后插入所述i帧;根据插入的所述i帧设置gop长度以对一个或者多个所述原gop进行重构。4.如权利要求3所述的基于场景变化的gop调度方法,其特征在于,所述根据插入的所述i帧设置gop长度的步骤,包括:根据插入的所述i帧确定帧序列,并计算所述帧序列的累计误差;将所述累计误差最小时所述帧序列的长度设置为gop长度。5.如权利要求1或者2所述的基于场景变化的gop调度方法,其特征在于,所述重构所述流媒体数据的gop结构的步骤,包括:针对所述视频画面场景发生平缓变化的所述流媒体数据,确定发生变化的连续多帧视频画面所属的一个或者多个原gop中是否存在i帧,其中,连续多帧视频画面中,各连续两帧视频画面之间的第二场景变化率均大于预设的第二场景变化率阈值;若是,则对一个或者多个所述原gop中的所述i帧进行去除。6.如权利要求1所述的基于场景变化的gop调度方法,其特征在于,所述调用预设的机器学习模型为各gop逐一分配对应的解码设备的步骤,包括:依次将所述流媒体数据中各gop的解码影响参数,和待分配的调度设备的实时资源状态转换为模型特征向量;
逐一将所述模型特征向量输入所述机器学习模型以得到对应的分类学习结果;根据所述分类学习结果依次为各所述gop分配对应的解码设备。7.如权利要求6所述的基于场景变化的gop调度方法,其特征在于,所述解码设备包括中央处理器和图形处理器;所述根据所述逻辑回归结果依次为各所述gop分配对应的解码设备的步骤,包括:若所述分类学习结果为所述中央处理器映射的第一标识,则将各所述gop中所述模型特征向量映射的第一gop分配至所述中央处理器;或者,若所述分类学习结果为所述图形处理器映射的第二标识,则将各所述gop中所述模型特征向量映射的第二gop分配至所述图形处理器。8.一种基于场景变化的gop调度系统,其特征在于,所述基于场景变化的gop调度系统包括:场景检测模块,用于根据流媒体数据进行场景检测以确定视频画面场景是否发生变化;gop重构模块,用于在检测到所述视频画面场景发生变化时,重构所述流媒体数据中原gop的gop结构;调度模块,用于针对重构gop结构后的所述流媒体数据,调用预设的机器学习模型为各gop逐一分配对应的解码设备,以按照gop为单位调度所述流媒体数据进行解码。9.一种终端设备,其特征在于,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于场景变化的gop调度程序,所述被所述处理器执行时实现如权利要求1至7中任一项所述的基于场景变化的gop调度方法的步骤。10.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有基于场景变化的gop调度程序,所述基于场景变化的gop调度程序被处理器执行时实现如权利要求1至7中任一项所述的基于场景变化的gop调度方法的步骤。

技术总结


本发明公开了一种基于场景变化的GOP调度方法、系统、终端设备以及计算机存储介质。该基于场景变化的GOP调度方法根据流媒体数据进行场景检测以确定视频画面场景是否发生变化;在检测到所述视频画面场景发生变化时,重构所述流媒体数据中原GOP的GOP结构;针对重构GOP结构后的所述流媒体数据,调用预设的机器学习模型为各GOP逐一分配对应的解码设备,以按照GOP为单位调度所述流媒体数据进行解码。采用本发明技术方案能够实现在流媒体数据在图像质量和传输解码效率之间取得良好平衡,从而提高流媒体数据的编码和传输效率。媒体数据的编码和传输效率。媒体数据的编码和传输效率。


技术研发人员:

闫伟 张毅辉 李怀德 张展 谢于贵

受保护的技术使用者:

咪咕文化科技有限公司 中国移动通信集团有限公司

技术研发日:

2022.11.08

技术公布日:

2022/12/23

本文发布于:2024-09-20 12:24:42,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/47834.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:所述   场景   流媒体   画面
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议