基于遗传算法的云游戏场景下推流编码动态参数调整方法与流程

文档序号:37111000发布日期:2024-02-22 21:10阅读:13来源:国知局
基于遗传算法的云游戏场景下推流编码动态参数调整方法与流程

本发明属于云游戏场景下推流编码优化,具体涉及基于遗传算法的云游戏场景下推流编码动态参数调整方法。


背景技术:

1、在云游戏场景下,视频推流技术的实现需要考虑多方面的问题,包括视频编码、网络传输、服务器部署等。为了实现高质量的视频推流,需要采用先进的视频编码算法,如h.264、h.265等,以及有效的网络传输协议,如rtmp、rtsp、http-flv等。同时,还需要考虑服务器的高效部署和负载均衡等问题,以保证视频推流的稳定和流畅,如视频参数的设置,视频参数包括视频比特率、视频编码格式和视频分辨率。

2、视频比特率(video bitrate):视频比特率指的是视频数据传输时每秒钟的比特数,也就是视频的码率。它通常用mbps或kbps表示。视频比特率越高,视频画质越清晰,但同时需要更高的网络带宽。

3、视频编码格式(video encoding format):视频编码格式指的是将视频数据压缩为可传输或存储格式的算法和技术。常见的视频编码格式有h.264、h.265、vp9等。不同的编码格式对视频数据的压缩效果和占用带宽不同,因此也会对视频的清晰度和流畅度产生影响。

4、视频分辨率(video resolution):视频分辨率指的是视频的水平和垂直像素数。例如,1080p表示视频有1920个像素的水平分辨率和1080个像素的垂直分辨率。视频分辨率越高,视频画面越清晰,但同时也需要更高的网络带宽和更强大的设备支持。

5、综上可得知在云游戏推拉流场景中,客户端往往会因为网络波动和其他视频参数设置导致在客户端体验较差的现象;因此我们需要提出基于遗传算法的云游戏场景下推流编码动态参数调整方法来提升用户体验效果。


技术实现思路

1、本发明的目的在于提供基于遗传算法的云游戏场景下推流编码动态参数调整方法,利用遗传算法获取各种固定参数下的最佳客户端视频参数设置,在用户网络波动时,可动态调整视频参数,使用户网络稳定,改善了用户的产品体验,以解决上述背景技术中提出的问题。

2、为实现上述目的,本发明采用了如下技术方案:

3、基于遗传算法的云游戏场景下推流编码动态参数调整方法,包括如下步骤:

4、s1、初始化种群个体:个体为视频编码参数,先定义一个初始化种群,再根据已有的庞大数据集合生成个体或生成指定数量的随机个体;

5、s2、议价适应度函数:将适应度函数定义为网络宽带和客户端延时的加权和,先对网络带宽和客户端延时进行归一化处理,再按照一定的权重分配进行加权求和,进行评价适应度函数;

6、s3、选择操作:选择具有适应度值高的个体,并保留作为下一代种群体的父代个体;

7、s4、交叉操作:将选出的父代个体进行配对,并产生新的子代个体,采用单点交叉的方式进行交叉;

8、s5、变异操作:在新的子代个体中引入一些随机性,以帮助算法跳出局部最优解;

9、s6、更新种群:在完成选择操作、交叉操作和变异操作后,将新的子代个体和父代个体组合成一个新的种群,并重新评价每个个体的适应度值;

10、s7、迭代过程:根据实际体验不断动态调整需求,重复s1到s6直至达到最优解的迭代次数。

11、优选的,步骤s1中,所述视频编码参数包括视频帧率、视频分辨率、视频比特率和视频编码格式;所述种群个体初始化时,先定义一个初始化种群,此初始化种群有一个初始化大小,再根据已有的庞大数据集合生成个体或生成指定数量的随机个体。

12、优选的,所述视频帧率使用framerate表示,视频分辨率使用resolution表示,视频编码格式使用encodingformat表示,将每一组视频编码参数打包成不同的个体,定义每个个体的格式如下:

13、{‘speed':speed,‘framerate':framerate,‘resolution':resolution,‘encodingformat':encodingformat,‘bitrate':bitrate}

14、通过此迭代过程可以生成指定数量的随机个体,并将相应数量的随机个体作为初始化种群的结果返回。

15、优选的,步骤2中,所述适应度函数定义的方式如下:

16、def fitnessfunction(individual,weight)

17、其中individual表示一个个体,weight是一个包含两个权重值的列表,用于指定网络带宽和客户端延时的权重,接下来在函数中计算出网络带宽和客户端延时bandwidth和latency,对bandwidth和latency进行归一化处理得到归化处理后的结果normbandwidth和normlatency,根据归化处理后的结果normbandwidth和normlatency以及权重weight计算适应度值。

18、优选的,步骤s3中,适应度高的所述个体在选择时,根据每个个体的适应度值计算该个体被选择的概率,然后根据此概率随机选择一些子代个体进行交叉和变异。

19、优选的,所述选择操作的定义函数如下:

20、def selectparents(population,fitness,numparents)

21、其中,population表示当前种群,fitness是一个包含每个个体适应度值的列表,numparents是需要选择的父代个体数量,记下来计算每个个体的适应度值totalfitness,根据totalfitness计算每个个体被选择的概率probabilities,并根据每个个体probabilities从当前种群中随机选择numparents个个体。

22、优选的,步骤s4中,在进行所述交叉操作时,先随机选择一个交叉点,再将两个父代个体在此交叉点处切割,并交换此交叉点之后的部分,定义交叉函数如下:

23、def crossover(parents,numoffsprings)

24、其中,parents是父代个体列表,numoffsprings是需要产生的子代个体数量。

25、优选的,步骤s5中,所述变异操作是采用随机突变的方式进行变异,先随机选择一些个体,并随机选择一些基因进行随机突变,具体流程为,先定义变异操作函数,变异操作函数表示如下:

26、def mutate(offsprings,mutationprob)

27、其中,offsprings是子代个体列表,mutationprob是变异概率,对于每一个子代个体生成一个随机数,并与变异概率mutationprob比较,如果这个随机数小于变异概率,就对当前基因进行变异,即将这个个体的码率值随机替换为一个新的码率值。

28、优选的,步骤s6中,所述更新种群时,先定义变更种群函数,变更种群函数表示如下:

29、def generatenewpopulation(parents,offsprings,populationsize,weight)

30、其中,parents是上一代的父代个体列表,offsprings是产生的新的子代个体列表,populationsize是新种群的大小,weight是权重参数,将父代个体和子代个体合并成一个种群,并重新计算每个个体的适应度值,按照适应度从大到小排序,选择最优的newpopulationsize个个体作为新的种群。

31、优选的,步骤s7中,s1-s6的步骤为一次迭代,在每一次迭代中,选择前一半的个体进行选择操作,随机选择另一半个体进行交叉操作,并对所有个体进行变异操作,最后,更新种群并进入下一代,在迭代结束后,种群个体集合population的第一个元素就是这个过程得到的最优解,同时,此最优解不一定是实际最佳的结果,还需要根据实际体验不断动态调整。

32、本发明提出的基于遗传算法的云游戏场景下推流编码动态参数调整方法,与现有技术相比,具有以下优点:

33、本发明通过先初始化种群个体,再评价适应度函数,评价适应度函数后依次进行选择操作、交叉操作和变异操作,最后进行更新种群,利用上述遗传算法获取各种固定参数下的最佳客户端视频参数设置,在用户网络波动时,可动态调整视频参数,使用户网络稳定,改善了用户的产品体验。

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