CN114338550B - 一种减低带宽的云电脑实时编码方法及系统 - Google Patents

一种减低带宽的云电脑实时编码方法及系统 Download PDF

Info

Publication number
CN114338550B
CN114338550B CN202210245605.1A CN202210245605A CN114338550B CN 114338550 B CN114338550 B CN 114338550B CN 202210245605 A CN202210245605 A CN 202210245605A CN 114338550 B CN114338550 B CN 114338550B
Authority
CN
China
Prior art keywords
frame rate
network
control module
image
time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210245605.1A
Other languages
English (en)
Other versions
CN114338550A (zh
Inventor
沈凌骏
陈浩杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Green Snow Co ltd
Original Assignee
Hangzhou Zimo Network Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Zimo Network Technology Co ltd filed Critical Hangzhou Zimo Network Technology Co ltd
Priority to CN202210245605.1A priority Critical patent/CN114338550B/zh
Publication of CN114338550A publication Critical patent/CN114338550A/zh
Application granted granted Critical
Publication of CN114338550B publication Critical patent/CN114338550B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明公开了一种减低带宽的云电脑实时编码方法及系统,桌面抓屏模块根据设置的最大帧率进行桌面抓屏;网络拥塞检测模块根据接收的数据包状态回复计算出当前的网络状态值传递给帧率控制模块;系统渲染表面检测模块计算出系统渲染帧率及鼠标光标刷新率;帧率控制模块根据系统渲染帧率及鼠标光标刷新率计算目标帧率,并根据网络最大可用帧率和平滑处理,最终计算出实际设置帧率设置到图像控制模块中;图像控制模块根据实际设置帧率对抓屏的图像数据进行重采样,并将图像发送到编码器进行编码,编码后发送给云盒端。本发明使用动态帧率的方式在保证视频图像质量与视频流畅性的前提下,有效降低云电脑在使用中的整体带宽流量。

Description

一种减低带宽的云电脑实时编码方法及系统
技术领域
本发明涉及网络信息处理领域,更具体的,涉及一种减低带宽的云电脑实时编码方法及系统。
背景技术
日常网络带宽是有限的,而有效降低使用带宽就变的很有必要,在无法提高编码压缩比的情况下当前常用减低带宽多使用动态码率的方式来实现,但在低码率时会导致视频图像质量无法保证的问题。
发明内容
鉴于上述问题,本发明的目的是提供一种减低带宽的云电脑实时编码方法及系统,使用动态帧率的方式在保证视频图像质量与视频流畅性的前提下,有效降低云电脑在
使用中的整体带宽流量。
本发明第一方面提供一种减低带宽的云电脑实时编码方法,所述方法包括以下步骤:
桌面抓屏模块根据设置的最大帧率
Figure DEST_PATH_IMAGE001
进行桌面抓屏,获取抓屏数据;
网络拥塞检测模块根据接收的数据包状态回复计算出当前的网络状态值传递给 帧率控制模块;帧率控制模块更新网络最大可用帧率
Figure DEST_PATH_IMAGE002
系统渲染表面检测模块计算出系统渲染帧率
Figure DEST_PATH_IMAGE003
及鼠标光标刷新率
Figure DEST_PATH_IMAGE004
帧率控制模块根据系统渲染帧率
Figure 746380DEST_PATH_IMAGE003
及鼠标光标刷新率
Figure 929100DEST_PATH_IMAGE004
计算出一个目 标帧率
Figure DEST_PATH_IMAGE005
,并根据网络最大可用帧率
Figure 239995DEST_PATH_IMAGE002
平滑处理,最终计算出实际设置帧率
Figure DEST_PATH_IMAGE006
设 置到图像控制模块中;
图像控制模块根据实际设置帧率
Figure 41729DEST_PATH_IMAGE006
对抓屏的图像数据进行重采样,并将图像发 送到编码器进行编码,编码完成后发送给云盒端。
本方案中,所述网络拥塞检测模块根据接收的数据包状态回复计算出当前的网络 状态值传递给帧率控制模块,并更新网络最大可用帧率
Figure 856101DEST_PATH_IMAGE002
,包括以下步骤:
根据接收的数据包状态回复获取每个包接收和发送的时延差即
Figure DEST_PATH_IMAGE007
每隔一段时间,计算该时间段内所有的
Figure 599935DEST_PATH_IMAGE007
值;
然后通过最小二乘法求出这段时间内
Figure 132548DEST_PATH_IMAGE007
值的变化直线的斜率
Figure DEST_PATH_IMAGE008
再根据
Figure 862607DEST_PATH_IMAGE008
计算网络的自适应阀值
Figure DEST_PATH_IMAGE009
根据网络的自适应阀值
Figure 938010DEST_PATH_IMAGE009
;判断出当前网络的拥塞状况;
根据当前网络的拥塞状况,更新网络最大可用帧率
Figure 931374DEST_PATH_IMAGE002
本方案中,所述斜率
Figure 951282DEST_PATH_IMAGE008
的计算公式为:
Figure DEST_PATH_IMAGE010
Figure DEST_PATH_IMAGE011
Figure DEST_PATH_IMAGE012
Figure DEST_PATH_IMAGE013
Figure DEST_PATH_IMAGE014
其中,t为时间包的个数,
Figure DEST_PATH_IMAGE015
Figure DEST_PATH_IMAGE016
的平均数,
Figure DEST_PATH_IMAGE017
Figure 100002_DEST_PATH_IMAGE018
的平均数,
Figure 100002_DEST_PATH_IMAGE019
为当前包的接 收时间,
Figure 100002_DEST_PATH_IMAGE020
为第一个包的接收时间;
Figure 100002_DEST_PATH_IMAGE021
为当前包到达延时,
Figure 100002_DEST_PATH_IMAGE022
为前一包到达延时;α=0.9。
本方案中,所述网络的自适应阀值
Figure 203141DEST_PATH_IMAGE009
的计算公式为:
Figure 100002_DEST_PATH_IMAGE023
其中,△
Figure 116739DEST_PATH_IMAGE021
表示接收数据包时延;
Figure 812163DEST_PATH_IMAGE008
表示增长系数当
Figure 100002_DEST_PATH_IMAGE024
时值为0.039,其 他时候为0.0087。
本方案中,所述前网络的拥塞状况的判断方法为:当
Figure 584947DEST_PATH_IMAGE008
大于
Figure 266595DEST_PATH_IMAGE009
时表示网络出现 拥塞,否则当前网络畅通。
本方案中,所述根据当前网络的拥塞状况,更新网络最大可用帧率
Figure 175645DEST_PATH_IMAGE002
,具体 为:
当网络拥塞时:
Figure 776391DEST_PATH_IMAGE002
=
Figure 895525DEST_PATH_IMAGE006
·0.85
当网络通畅时:
如果
Figure 239919DEST_PATH_IMAGE005
>
Figure 3476DEST_PATH_IMAGE002
,则
Figure 40702DEST_PATH_IMAGE002
=
Figure 132286DEST_PATH_IMAGE006
·1.15
其中,
Figure 545949DEST_PATH_IMAGE006
为当前实际帧率,初始值为30;
Figure 164013DEST_PATH_IMAGE005
为目标帧率。
本方案中,所述系统渲染表面检测模块计算出系统渲染帧率
Figure 496774DEST_PATH_IMAGE003
及鼠标光标刷 新率
Figure 200288DEST_PATH_IMAGE004
;具体包括以下步骤:
使用系统api接口统计特定时间周期
Figure 100002_DEST_PATH_IMAGE025
内产生的图像渲染次数N计算出当前系 统渲染的刷新率得到对应帧率:
Figure 152063DEST_PATH_IMAGE003
= N *(1000/
Figure 765578DEST_PATH_IMAGE025
)
通过调用系统api函数以
Figure 100002_DEST_PATH_IMAGE026
为周期进行鼠标移动事件的获取,并以
Figure 410186DEST_PATH_IMAGE025
为周期进 行统计获取到移动次数
Figure 100002_DEST_PATH_IMAGE027
根据公式计算出光标刷新率
Figure 991209DEST_PATH_IMAGE004
Figure 481096DEST_PATH_IMAGE027
>0时,
Figure 100002_DEST_PATH_IMAGE028
= (
Figure 73752DEST_PATH_IMAGE027
*
Figure 499048DEST_PATH_IMAGE026
/
Figure 177154DEST_PATH_IMAGE025
) * 90
Figure 470732DEST_PATH_IMAGE004
= max(30 ,
Figure 917894DEST_PATH_IMAGE028
)
Figure 497780DEST_PATH_IMAGE027
=0时,
Figure 663182DEST_PATH_IMAGE004
= 0
将当前获取的
Figure 166975DEST_PATH_IMAGE003
Figure 734223DEST_PATH_IMAGE004
通过函数调用帧率控制模块的实际帧率更新接口 进行传递。
本方案中,所述目标帧率
Figure 94797DEST_PATH_IMAGE005
的计算公式为:
目标帧率
Figure 137708DEST_PATH_IMAGE005
的计算公式为:
Figure 773089DEST_PATH_IMAGE005
= max((
Figure 194843DEST_PATH_IMAGE003
* b) ,
Figure 132843DEST_PATH_IMAGE004
)
Figure 538417DEST_PATH_IMAGE005
= min(
Figure 100002_DEST_PATH_IMAGE029
,
Figure 367702DEST_PATH_IMAGE005
)
其中
Figure 100002_DEST_PATH_IMAGE030
本方案中,所述实际设置帧率
Figure 909541DEST_PATH_IMAGE006
的计算公式为:
对帧率设置值
Figure 100002_DEST_PATH_IMAGE031
进行平滑处理:
Figure 284022DEST_PATH_IMAGE031
=(
Figure 645733DEST_PATH_IMAGE005
-
Figure 13129DEST_PATH_IMAGE006
)* 0.15 +
Figure 143897DEST_PATH_IMAGE006
对光标显示评估:
Figure 548333DEST_PATH_IMAGE031
= max(
Figure 397340DEST_PATH_IMAGE031
,
Figure 788002DEST_PATH_IMAGE004
)
根据网络拥塞状态控制,计算实际设置帧率
Figure 38854DEST_PATH_IMAGE006
Figure 614192DEST_PATH_IMAGE031
>
Figure 278392DEST_PATH_IMAGE002
Figure 597378DEST_PATH_IMAGE006
=
Figure 968316DEST_PATH_IMAGE002
否则,
Figure 839189DEST_PATH_IMAGE006
= max(
Figure 397209DEST_PATH_IMAGE031
,
Figure 100002_DEST_PATH_IMAGE032
)
其中,
Figure 785465DEST_PATH_IMAGE032
为设置的最小帧率。
本发明第二方面提供一种减低带宽的云电脑实时编码系统,所述系统包括:桌面抓屏模块、网络拥塞检测模块、帧率控制模块、系统渲染表面检测模块、图像控制模块、编码模块;
所述桌面抓屏模块用来根据设置的最大帧率
Figure 620697DEST_PATH_IMAGE001
进行桌面抓屏,获取抓屏数 据;并将抓屏数据传递给图像控制模块;
所述网络拥塞检测模块用来根据接收的数据包状态回复计算出当前的网络状态值传递给帧率控制模块;
所述帧率控制模块用来通过网络更新接口更新网络最大可用帧率
Figure 537838DEST_PATH_IMAGE002
所述系统渲染表面检测模块用来计算系统渲染帧率
Figure 707788DEST_PATH_IMAGE003
及鼠标光标刷新率
Figure 368576DEST_PATH_IMAGE004
所述帧率控制模块还用来根据系统渲染帧率
Figure 182949DEST_PATH_IMAGE003
及鼠标光标刷新率
Figure 661203DEST_PATH_IMAGE004
计 算出一个目标帧率
Figure 193816DEST_PATH_IMAGE005
,并根据网络最大可用帧率
Figure 658295DEST_PATH_IMAGE002
平滑处理,最终计算出实际设置 帧率
Figure 327174DEST_PATH_IMAGE006
设置到图像控制模块中;
所述图像控制模块用来根据实际设置帧率
Figure 727062DEST_PATH_IMAGE006
对抓屏的图像数据进行重采样,并 将图像发送到编码器进行编码。
所述编码模块用来对图像控制模块传递来的数据进行编码,并将编码后的数据发送给云盒端。
本发明公开了一种减低带宽的云电脑实时编码方法及系统,使用动态帧率的方式在保证视频图像质量与视频流畅性的前提下,有效降低云电脑在使用中的整体带宽流量。
达到画面变化小时低帧率,变化大时高帧率,并保证了光标的流畅性。在保证了视频及游戏享受到高刷体验时,又有效减少了云电脑整体带宽的消耗。
附图说明
图1示出了本申请一种减低带宽的云电脑实时编码方法的流程图;
图2示出了本申请一种减低带宽的云电脑实时编码系统的框图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
图1示出了本申请一种减低带宽的云电脑实时编码方法的流程图。
如图1所示,本发明提供了一种减低带宽的云电脑实时编码方法,所述方法包括以下步骤:
S102:桌面抓屏模块根据设置的最大帧率
Figure 746971DEST_PATH_IMAGE001
进行桌面抓屏,获取抓屏数据;
S104:网络拥塞检测模块根据接收的数据包状态回复计算出当前的网络状态值传
递给帧率控制模块;帧率控制模块更新网络最大可用帧率
Figure 749562DEST_PATH_IMAGE002
S106:系统渲染表面检测模块计算出系统渲染帧率
Figure 538526DEST_PATH_IMAGE003
及鼠标光标刷新率
Figure 635882DEST_PATH_IMAGE004
S108:帧率控制模块根据系统渲染帧率
Figure 877507DEST_PATH_IMAGE003
及鼠标光标刷新率
Figure 683789DEST_PATH_IMAGE004
计算出一 个目标帧率
Figure 468206DEST_PATH_IMAGE005
,并根据网络最大可用帧率
Figure 68951DEST_PATH_IMAGE002
平滑处理,最终计算出实际设置帧率
Figure 63452DEST_PATH_IMAGE006
设置到图像控制模块中;
S110:图像控制模块根据实际设置帧率
Figure 407846DEST_PATH_IMAGE006
对抓屏的图像数据进行重采样,可以 始终是最新的抓屏图像数据,并将图像发送到编码器进行编码,编码完成后发送给云盒端。
达到画面变化小时低帧率,变化大时高帧率,并保证了光标的流畅性。在保证了视频及游戏享受到高刷体验时,又有效减少了云电脑整体带宽的消耗。
需要说明的是,所述最大帧率
Figure 296036DEST_PATH_IMAGE001
由云盒端传递的最大解码帧率决定,本实 施例当前最大帧率
Figure 67683DEST_PATH_IMAGE001
为144。
根据本发明实施例,所述网络拥塞检测模块根据接收的数据包状态回复计算出当 前的网络状态值传递给帧率控制模块,并更新网络最大可用帧率
Figure 815059DEST_PATH_IMAGE002
,包括以下步骤:
根据接收的数据包状态回复获取每个包接收和发送的时延差即
Figure 838510DEST_PATH_IMAGE007
每隔一段时间,优先的,采用是20个数据包,计算该时间段内所有的
Figure 456573DEST_PATH_IMAGE007
值;
然后通过最小二乘法求出这段时间内
Figure 664701DEST_PATH_IMAGE007
值的变化直线的斜率
Figure 368214DEST_PATH_IMAGE008
再根据
Figure 179044DEST_PATH_IMAGE008
计算网络的自适应阀值
Figure 917193DEST_PATH_IMAGE009
根据网络的自适应阀值
Figure 30643DEST_PATH_IMAGE009
;判断出当前网络的拥塞状况;
根据当前网络的拥塞状况,更新网络最大可用帧率
Figure 923250DEST_PATH_IMAGE002
需要说明的是,作为一个具体的实施例,本实施例参考webRTC TCC方法进行网络 带宽估计,计算出当前网络的拥塞状况,再根据当前网络的拥塞状况,更新网络最大可用帧 率
Figure 413137DEST_PATH_IMAGE002
即根据接收的数据包状态回复获取每个包接收和发送的时延差即
Figure 68110DEST_PATH_IMAGE007
=
Figure 618040DEST_PATH_IMAGE021
-
Figure 420780DEST_PATH_IMAGE022
Figure 448778DEST_PATH_IMAGE021
为当前包到达延时,
Figure 895940DEST_PATH_IMAGE022
为前一包到达延时)。每隔一段时间(本实施例默认是20个包)就 计算一下这段时间内所有的
Figure 616772DEST_PATH_IMAGE007
值,然后通过最小二乘法求出直线(直线y=k*x+b)的斜率。 然后,再根据当前网络的拥塞状况,更新网络最大可用帧率
Figure 657540DEST_PATH_IMAGE002
根据本发明实施例,所述斜率
Figure 489230DEST_PATH_IMAGE008
的计算公式为:
Figure 790898DEST_PATH_IMAGE010
Figure 682631DEST_PATH_IMAGE011
Figure 100002_DEST_PATH_IMAGE033
Figure 725542DEST_PATH_IMAGE013
Figure 95343DEST_PATH_IMAGE014
其中,t为时间包的个数,
Figure 517097DEST_PATH_IMAGE015
Figure 455098DEST_PATH_IMAGE016
的平均数,
Figure 329513DEST_PATH_IMAGE017
Figure 768584DEST_PATH_IMAGE018
的平均数,
Figure 44845DEST_PATH_IMAGE019
为当前包的接 收时间,
Figure 403014DEST_PATH_IMAGE020
为第一个包的接收时间;
Figure 764725DEST_PATH_IMAGE021
为当前包到达延时,
Figure 476329DEST_PATH_IMAGE022
为前一包到达延时;α=0.9。
需要说明的是,作为一个具体的实施例,本实施例中t=20,所以,斜率
Figure 544779DEST_PATH_IMAGE008
的计算 过程为:
首先,根据计算公式直线
Figure 949216DEST_PATH_IMAGE018
=
Figure 922857DEST_PATH_IMAGE008
*
Figure 438152DEST_PATH_IMAGE016
+b,计算y值,
Figure 689005DEST_PATH_IMAGE013
Figure 264342DEST_PATH_IMAGE033
(α=0 .9)
Figure 476012DEST_PATH_IMAGE018
在网络好时该值不断下降,网络不好时该值不断增长。
然后,计算出
Figure 794998DEST_PATH_IMAGE016
值:
Figure 900357DEST_PATH_IMAGE011
其中,
Figure 646596DEST_PATH_IMAGE019
为当前包的接收时间,
Figure 329250DEST_PATH_IMAGE020
为第一个包的接收时间。
最后,计算出x ,y的平均值,再通过他们计算出一条误差平方和最小的直线,并求出斜率k(值越小网络状态越好)
Figure 451927DEST_PATH_IMAGE010
根据本发明实施例,所述网络的自适应阀值
Figure 411793DEST_PATH_IMAGE009
的计算公式为:
Figure 328933DEST_PATH_IMAGE023
Figure 515195DEST_PATH_IMAGE021
表示接收数据包时延;
Figure 175984DEST_PATH_IMAGE008
表示增长系数当
Figure 255935DEST_PATH_IMAGE024
时值为0 .039,其他时 候为0 .0087。
根据本发明实施例,所述前网络的拥塞状况的判断方法为:当
Figure 734190DEST_PATH_IMAGE008
大于
Figure 266802DEST_PATH_IMAGE009
时表示 网络出现拥塞,否则当前网络畅通。
需要说明的是,若设网络拥塞状态为
Figure 100002_DEST_PATH_IMAGE034
则当
Figure 731282DEST_PATH_IMAGE008
大于
Figure 541106DEST_PATH_IMAGE009
时表示网络出现拥塞,
Figure 65628DEST_PATH_IMAGE034
= true
否则当前网络畅通,
Figure 819958DEST_PATH_IMAGE034
= false
根据本发明实施例,所述根据当前网络的拥塞状况,更新网络最大可用帧率
Figure 88128DEST_PATH_IMAGE002
,具体为:
当网络拥塞时:
Figure 939409DEST_PATH_IMAGE002
=
Figure 369254DEST_PATH_IMAGE006
·0.85
当网络通畅时:
如果
Figure 142037DEST_PATH_IMAGE005
>
Figure 72953DEST_PATH_IMAGE002
,则
Figure 716424DEST_PATH_IMAGE002
=
Figure 582749DEST_PATH_IMAGE006
·1.15
其中,
Figure 311671DEST_PATH_IMAGE006
为当前实际帧率,初始值为30;
Figure 797010DEST_PATH_IMAGE005
为目标帧率。
根据本发明实施例,所述系统渲染表面检测模块计算出系统渲染帧率
Figure 560566DEST_PATH_IMAGE003
及鼠 标光标刷新率
Figure 332213DEST_PATH_IMAGE004
;具体包括以下步骤:
使用系统api(DXGI)接口统计特定时间周期
Figure 215942DEST_PATH_IMAGE025
,优选的,为250ms,内产生的图像 渲染次数,其中,窗口变化越频繁渲染次数越大,N计算出当前系统渲染的刷新率得到对应 帧率:
Figure 364027DEST_PATH_IMAGE003
= N *(1000/
Figure 982090DEST_PATH_IMAGE025
)
通过调用系统api函数以
Figure 924638DEST_PATH_IMAGE026
(本实施例为10ms)为周期进行鼠标移动事件的获取, 并以
Figure 503518DEST_PATH_IMAGE025
为周期进行统计获取到移动次数
Figure 455293DEST_PATH_IMAGE027
根据公式计算出光标刷新率
Figure 927863DEST_PATH_IMAGE004
当 Nm>0时,
Figure 306892DEST_PATH_IMAGE028
= (
Figure 887915DEST_PATH_IMAGE027
*
Figure 377802DEST_PATH_IMAGE026
/
Figure 970457DEST_PATH_IMAGE025
) * 90
Figure 395754DEST_PATH_IMAGE004
= max(30 ,
Figure 808280DEST_PATH_IMAGE028
)
Figure 101858DEST_PATH_IMAGE027
=0时,
Figure 549020DEST_PATH_IMAGE004
= 0
将当前获取的
Figure 394485DEST_PATH_IMAGE003
Figure 559887DEST_PATH_IMAGE004
通过函数调用帧率控制模块的实际帧率更新接口 进行传递。
根据本发明实施例,所述目标帧率
Figure 391577DEST_PATH_IMAGE005
的计算公式为:
目标帧率
Figure 693246DEST_PATH_IMAGE005
的计算公式为:
Figure 460344DEST_PATH_IMAGE005
= max((
Figure 113043DEST_PATH_IMAGE003
* b) ,
Figure 748423DEST_PATH_IMAGE004
)
Figure 294811DEST_PATH_IMAGE005
= min(
Figure 357445DEST_PATH_IMAGE029
,
Figure 231860DEST_PATH_IMAGE005
)
其中
Figure 405353DEST_PATH_IMAGE030
根据本发明实施例,所述实际设置帧率
Figure 556979DEST_PATH_IMAGE006
的计算公式为:
对帧率设置值
Figure 790515DEST_PATH_IMAGE031
进行平滑处理:
Figure 152226DEST_PATH_IMAGE031
=(
Figure 129409DEST_PATH_IMAGE005
-
Figure 650389DEST_PATH_IMAGE006
)* 0.15 +
Figure 54826DEST_PATH_IMAGE006
对光标显示评估:
Figure 638254DEST_PATH_IMAGE031
= max(
Figure 419128DEST_PATH_IMAGE031
,
Figure 545347DEST_PATH_IMAGE004
)
根据网络拥塞状态控制,计算实际设置帧率
Figure 386264DEST_PATH_IMAGE006
Figure 456988DEST_PATH_IMAGE031
>
Figure 900608DEST_PATH_IMAGE002
Figure 5967DEST_PATH_IMAGE006
=
Figure 752206DEST_PATH_IMAGE002
否则,
Figure 513489DEST_PATH_IMAGE006
= max(
Figure 495220DEST_PATH_IMAGE031
,
Figure 720665DEST_PATH_IMAGE032
)
其中,
Figure 637806DEST_PATH_IMAGE032
为设置的最小帧率。
图2示出了本申请一种减低带宽的云电脑实时编码系统的框图。
如图2所示,本发明提供了一种减低带宽的云电脑实时编码系统,所述减低带宽的云电脑实时编码系统2包括:桌面抓屏模块21、网络拥塞检测模块22、帧率控制模块23、系统渲染表面检测模块24、图像控制模块25、编码模块26;
所述桌面抓屏模块21用来根据设置的最大帧率
Figure 683122DEST_PATH_IMAGE001
进行桌面抓屏,获取抓屏 数据;并将抓屏数据传递给图像控制模块;
所述网络拥塞检测模块22用来根据接收的数据包状态回复计算出当前的网络状态值传递给帧率控制模块23;
所述帧率控制模块23用来通过网络更新接口更新网络最大可用帧率
Figure 219277DEST_PATH_IMAGE002
所述系统渲染表面检测模块24用来计算系统渲染帧率
Figure 299228DEST_PATH_IMAGE003
及鼠标光标刷新率
Figure 652849DEST_PATH_IMAGE004
所述帧率控制模块23还用来根据系统渲染帧率
Figure 310095DEST_PATH_IMAGE003
及鼠标光标刷新率
Figure 774575DEST_PATH_IMAGE004
计算出一个目标帧率
Figure 709033DEST_PATH_IMAGE005
,并根据网络最大可用帧率
Figure 967976DEST_PATH_IMAGE002
平滑处理,最终计算出实际设 置帧率
Figure 863251DEST_PATH_IMAGE006
设置到图像控制模块25中;
所述图像控制模块25用来根据实际设置帧率
Figure 131421DEST_PATH_IMAGE006
对抓屏的图像数据进行重采样, 可以始终是最新的抓屏图像数据,并将图像发送到编码器26进行编码。
所述编码模块26用来对图像控制模块传递来的数据进行编码,并将编码后的数据发送给云盒端。
本发明公开了一种减低带宽的云电脑实时编码方法及系统,使用动态帧率的方式在保证视频图像质量与视频流畅性的前提下,有效降低云电脑在使用中的整体带宽流量。
达到画面变化小时低帧率,变化大时高帧率,并保证了光标的流畅性。在保证了视频及游戏享受到高刷体验时,又有效减少了云电脑整体带宽的消耗。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。
而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (8)

1.一种减低带宽的云电脑实时编码方法,其特征在于,所述方法包括以下步骤:
桌面抓屏模块根据设置的最大帧率
Figure 552132DEST_PATH_IMAGE001
进行桌面抓屏,获取抓屏数据;
网络拥塞检测模块根据接收的数据包状态回复计算出当前的网络状态值传递给帧率 控制模块;帧率控制模块更新网络最大可用帧率
Figure 248692DEST_PATH_IMAGE002
系统渲染表面检测模块计算出系统渲染帧率
Figure 299956DEST_PATH_IMAGE003
及鼠标光标刷新率
Figure 398362DEST_PATH_IMAGE004
帧率控制模块根据系统渲染帧率
Figure 555674DEST_PATH_IMAGE003
及鼠标光标刷新率
Figure 975416DEST_PATH_IMAGE004
计算出一个目标帧率
Figure 141955DEST_PATH_IMAGE005
,并根据网络最大可用帧率
Figure 829288DEST_PATH_IMAGE002
平滑处理,最终计算出实际设置帧率
Figure 423081DEST_PATH_IMAGE006
设置到图 像控制模块中;
图像控制模块根据实际设置帧率
Figure 828654DEST_PATH_IMAGE006
对抓屏的图像数据进行重采样,并将图像发送到 编码器进行编码,编码完成后发送给云盒端;
所述实际设置帧率
Figure 798884DEST_PATH_IMAGE006
的计算公式为:
对帧率设置值
Figure 842189DEST_PATH_IMAGE007
进行平滑处理:
Figure 403620DEST_PATH_IMAGE007
=(
Figure 296490DEST_PATH_IMAGE005
-
Figure 539253DEST_PATH_IMAGE006
)* 0.15 +
Figure 201178DEST_PATH_IMAGE006
对光标显示评估:
Figure 372659DEST_PATH_IMAGE007
= max(
Figure 752824DEST_PATH_IMAGE007
,
Figure 799278DEST_PATH_IMAGE004
)
根据网络拥塞状态控制,计算实际设置帧率
Figure 581289DEST_PATH_IMAGE006
Figure 517146DEST_PATH_IMAGE007
>
Figure 384608DEST_PATH_IMAGE002
Figure 500332DEST_PATH_IMAGE006
=
Figure 136849DEST_PATH_IMAGE002
否则,
Figure 414247DEST_PATH_IMAGE006
= max(
Figure 4891DEST_PATH_IMAGE007
,
Figure 658726DEST_PATH_IMAGE008
)
其中,
Figure 103745DEST_PATH_IMAGE008
为设置的最小帧率;
所述根据当前网络的拥塞状况,更新网络最大可用帧率
Figure 286464DEST_PATH_IMAGE002
,具体为:
当网络拥塞时:
Figure 128518DEST_PATH_IMAGE002
=
Figure 586045DEST_PATH_IMAGE006
·0.85
当网络通畅时:
如果
Figure 421321DEST_PATH_IMAGE005
>
Figure 306101DEST_PATH_IMAGE002
,则
Figure 369872DEST_PATH_IMAGE002
=
Figure 365510DEST_PATH_IMAGE006
·1.15
其中,
Figure 831126DEST_PATH_IMAGE006
为当前实际帧率,初始值为30;
Figure 388271DEST_PATH_IMAGE005
为目标帧率。
2.根据权利要求1所述的一种减低带宽的云电脑实时编码方法,其特征在于,所述网络 拥塞检测模块根据接收的数据包状态回复计算出当前的网络状态值传递给帧率控制模块, 并更新网络最大可用帧率
Figure 673759DEST_PATH_IMAGE002
,包括以下步骤:
根据接收的数据包状态回复获取每个包接收和发送的时延差即
Figure 473088DEST_PATH_IMAGE009
每隔一段时间,计算该时间段内所有的
Figure 793211DEST_PATH_IMAGE009
值;
然后通过最小二乘法求出这段时间内
Figure 550951DEST_PATH_IMAGE009
值的变化直线的斜率
Figure 559621DEST_PATH_IMAGE010
再根据
Figure 897061DEST_PATH_IMAGE010
计算网络的自适应阀值
Figure 337270DEST_PATH_IMAGE011
根据网络的自适应阀值
Figure 531491DEST_PATH_IMAGE011
;判断出当前网络的拥塞状况;
根据当前网络的拥塞状况,更新网络最大可用帧率
Figure 293036DEST_PATH_IMAGE002
3.根据权利要求2所述的一种减低带宽的云电脑实时编码方法,其特征在于,所述斜率
Figure 168588DEST_PATH_IMAGE010
的计算公式为:
Figure 463303DEST_PATH_IMAGE012
Figure 657786DEST_PATH_IMAGE013
Figure 670742DEST_PATH_IMAGE014
Figure 349985DEST_PATH_IMAGE015
Figure 499206DEST_PATH_IMAGE016
其中,t为时间包的个数,
Figure 238492DEST_PATH_IMAGE017
Figure DEST_PATH_IMAGE018
的平均数,
Figure DEST_PATH_IMAGE019
Figure DEST_PATH_IMAGE020
的平均数,
Figure DEST_PATH_IMAGE021
为当前包的接收时间,
Figure DEST_PATH_IMAGE022
为第一个包的接收时间;
Figure DEST_PATH_IMAGE023
为当前包到达延时,
Figure DEST_PATH_IMAGE024
为前一包到达延时;α=0.9。
4.根据权利要求2或3所述的一种减低带宽的云电脑实时编码方法,其特征在于,所述网络的自适应阀值γi的计算公式为:
Figure DEST_PATH_IMAGE025
其中,△
Figure 646733DEST_PATH_IMAGE023
表示接收数据包时延;
Figure 864088DEST_PATH_IMAGE010
表示增长系数当
Figure DEST_PATH_IMAGE026
时值为0.039,其他时候为0.0087。
5.根据权利要求4所述的一种减低带宽的云电脑实时编码方法,其特征在于,所述前网络的拥塞状况的判断方法为:当
Figure 166018DEST_PATH_IMAGE010
大于
Figure 810626DEST_PATH_IMAGE011
时表示网络出现拥塞,否则当前网络畅通。
6.根据权利要求1所述的一种减低带宽的云电脑实时编码方法,其特征在于,所述系统渲染表面检测模块计算出系统渲染帧率
Figure 267016DEST_PATH_IMAGE003
及鼠标光标刷新率
Figure 288061DEST_PATH_IMAGE004
;具体包括以下步骤:
使用系统api接口统计特定时间周期
Figure DEST_PATH_IMAGE027
内产生的图像渲染次数N计算出当前系统渲染的刷新率得到对应帧率:
Figure 721796DEST_PATH_IMAGE003
= N *(1000/
Figure 802885DEST_PATH_IMAGE027
)
通过调用系统api函数以
Figure DEST_PATH_IMAGE028
为周期进行鼠标移动事件的获取,并以
Figure 808887DEST_PATH_IMAGE027
为周期进行统计获取到移动次数
Figure DEST_PATH_IMAGE029
根据公式计算出光标刷新率
Figure 931826DEST_PATH_IMAGE004
Figure 598562DEST_PATH_IMAGE029
>0时,
Figure DEST_PATH_IMAGE030
= (
Figure 912868DEST_PATH_IMAGE029
*
Figure 609429DEST_PATH_IMAGE028
/
Figure 4900DEST_PATH_IMAGE027
) * 90
Figure 837727DEST_PATH_IMAGE004
= max(30 ,
Figure 526198DEST_PATH_IMAGE030
)
Figure 710054DEST_PATH_IMAGE029
=0时,
Figure 611014DEST_PATH_IMAGE004
= 0
将当前获取的
Figure 65391DEST_PATH_IMAGE003
Figure 659184DEST_PATH_IMAGE004
通过函数调用帧率控制模块的实际帧率更新接口进行传递。
7.根据权利要求6所述的一种减低带宽的云电脑实时编码方法,其特征在于,所述目标帧率
Figure 799178DEST_PATH_IMAGE005
的计算公式为:
Figure 503829DEST_PATH_IMAGE005
= max((
Figure 576827DEST_PATH_IMAGE003
* b) ,
Figure 341521DEST_PATH_IMAGE004
)
Figure 735855DEST_PATH_IMAGE005
= min(
Figure DEST_PATH_IMAGE031
,
Figure 775356DEST_PATH_IMAGE005
)
其中
Figure DEST_PATH_IMAGE032
8.一种减低带宽的云电脑实时编码系统,其特征在于,所述系统包括:桌面抓屏模块、网络拥塞检测模块、帧率控制模块、系统渲染表面检测模块、图像控制模块、编码模块;
所述桌面抓屏模块根据设置的最大帧率
Figure 499598DEST_PATH_IMAGE001
进行桌面抓屏,获取抓屏数据;并将抓屏数据传递给图像控制模块;
所述网络拥塞检测模块用来根据接收的数据包状态回复计算出当前的网络状态值传递给帧率控制模块;
所述帧率控制模块用来通过网络更新接口更新网络最大可用帧率
Figure 936658DEST_PATH_IMAGE002
所述系统渲染表面检测模块用来计算系统渲染帧率
Figure 51244DEST_PATH_IMAGE003
及鼠标光标刷新率
Figure 363277DEST_PATH_IMAGE004
所述帧率控制模块还用来根据系统渲染帧率
Figure 879709DEST_PATH_IMAGE003
及鼠标光标刷新率
Figure 986205DEST_PATH_IMAGE004
计算出一个目标帧率
Figure 588088DEST_PATH_IMAGE005
,并根据网络最大可用帧率
Figure 939697DEST_PATH_IMAGE002
平滑处理,最终计算出实际设置帧率
Figure 576215DEST_PATH_IMAGE006
设置到图像控制模块中;
所述图像控制模块用来根据实际设置帧率
Figure 853612DEST_PATH_IMAGE006
对抓屏的图像数据进行重采样,并将图像发送到编码器进行编码;
其中,所述实际设置帧率
Figure 677212DEST_PATH_IMAGE006
的计算公式为:
对帧率设置值
Figure 331047DEST_PATH_IMAGE007
进行平滑处理:
Figure DEST_PATH_IMAGE033
对光标显示评估:
Figure DEST_PATH_IMAGE034
根据网络拥塞状态控制,计算实际设置帧率
Figure 639713DEST_PATH_IMAGE006
Figure 88012DEST_PATH_IMAGE007
>
Figure 664487DEST_PATH_IMAGE002
Figure 590855DEST_PATH_IMAGE006
=
Figure 936386DEST_PATH_IMAGE002
否则,
Figure 322630DEST_PATH_IMAGE006
= max(
Figure 386401DEST_PATH_IMAGE007
,
Figure 116459DEST_PATH_IMAGE008
)
其中,
Figure 847655DEST_PATH_IMAGE008
为设置的最小帧率;
所述编码模块用来对图像控制模块传递来的数据进行编码,并将编码后的数据发送给云盒端;
所述根据当前网络的拥塞状况,更新网络最大可用帧率
Figure 903336DEST_PATH_IMAGE002
,具体为:
当网络拥塞时:
Figure 80501DEST_PATH_IMAGE002
=
Figure 879830DEST_PATH_IMAGE006
·0.85
当网络通畅时:
如果
Figure 199953DEST_PATH_IMAGE005
>
Figure 396841DEST_PATH_IMAGE002
,则
Figure 700784DEST_PATH_IMAGE002
=
Figure 772645DEST_PATH_IMAGE006
·1.15
其中,
Figure 947274DEST_PATH_IMAGE006
为当前实际帧率,初始值为30;
Figure 610337DEST_PATH_IMAGE005
为目标帧率。
CN202210245605.1A 2022-03-14 2022-03-14 一种减低带宽的云电脑实时编码方法及系统 Active CN114338550B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210245605.1A CN114338550B (zh) 2022-03-14 2022-03-14 一种减低带宽的云电脑实时编码方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210245605.1A CN114338550B (zh) 2022-03-14 2022-03-14 一种减低带宽的云电脑实时编码方法及系统

Publications (2)

Publication Number Publication Date
CN114338550A CN114338550A (zh) 2022-04-12
CN114338550B true CN114338550B (zh) 2022-06-21

Family

ID=81033121

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210245605.1A Active CN114338550B (zh) 2022-03-14 2022-03-14 一种减低带宽的云电脑实时编码方法及系统

Country Status (1)

Country Link
CN (1) CN114338550B (zh)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102780880A (zh) * 2011-06-29 2012-11-14 上海子鼠云计算技术有限公司 云计算终端及其编解码控制方法
US10616086B2 (en) * 2012-12-27 2020-04-07 Navidia Corporation Network adaptive latency reduction through frame rate control
CN109040792B (zh) * 2018-08-13 2021-04-09 中兴通讯股份有限公司 一种视频重定向的处理方法、云终端和云桌面服务器
CN109905326A (zh) * 2019-03-26 2019-06-18 武汉大学 一种基于拥塞程度因子的速率下降参数优化方法
CN111882626B (zh) * 2020-08-06 2023-07-14 腾讯科技(深圳)有限公司 图像处理方法、装置、服务器及介质
CN112104879B (zh) * 2020-11-13 2021-03-23 腾讯科技(深圳)有限公司 一种视频编码方法、装置、电子设备及存储介质
CN112995776B (zh) * 2021-01-26 2023-04-07 北京字跳网络技术有限公司 共享屏幕内容抓屏帧率确定方法、装置、设备和存储介质
CN113986064A (zh) * 2021-09-23 2022-01-28 新华三大数据技术有限公司 一种云桌面光标处理方法、装置及存储介质
CN113923485A (zh) * 2021-09-30 2022-01-11 杭州雾联科技有限公司 一种调整码率的方法、装置、及计算机可读存储介质

Also Published As

Publication number Publication date
CN114338550A (zh) 2022-04-12

Similar Documents

Publication Publication Date Title
US9904503B1 (en) Method and system for application broadcast
CN113747194B (zh) 远程视频传输方法、传输装置、存储介质及电子设备
US6292834B1 (en) Dynamic bandwidth selection for efficient transmission of multimedia streams in a computer network
CN111010582B (zh) 一种云桌面图像处理方法、装置、设备及可读存储介质
JP5920006B2 (ja) 画面更新制御プログラム、画面更新制御方法、および情報処理装置
CN106488265A (zh) 一种发送媒体流的方法和装置
CN113992967B (zh) 一种投屏数据传输方法、装置、电子设备及存储介质
CN111935441B (zh) 一种网络状态检测方法及装置
CN113037697B (zh) 一种视频帧处理方法、装置和电子设备及可读存储介质
CN111741249B (zh) 一种网络拥塞检测方法及装置
CN111225209B (zh) 视频数据推流方法、装置、终端及存储介质
WO2021164670A1 (zh) 视频编码方法、装置、设备及存储介质
CN114389959B (zh) 网络拥塞控制方法、装置、电子设备及存储介质
CN114338550B (zh) 一种减低带宽的云电脑实时编码方法及系统
KR100589725B1 (ko) 무선 휴대 장치를 위한 멀티미디어 스트리밍 시스템
CN116546276A (zh) 链路带宽估计方法、装置、设备、存储介质以及程序产品
CN115278289B (zh) 一种云应用渲染视频帧处理方法与装置
CN114302142A (zh) 视频编码方法、图像发送设备及存储介质
CN109982080A (zh) 一种视频传输的方法、存储介质、机器人及控制系统
CN113194340B (zh) 视频传输调整方法及装置
JP6711120B2 (ja) 映像再生装置、映像再生方法および映像再生プログラム
CN113573142A (zh) 分辨率调整方法与装置
JP7377345B2 (ja) 送信装置、送信方法及びプログラム
CN114363645B (zh) 超高清视频直播的码率控制方法、装置、设备及存储介质
JP2003009117A (ja) 動画像のリアルタイム配信方法及び配信システム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240318

Address after: PO Box 2221, Wickham Sands II, Tortolarod City, British Virgin Islands

Patentee after: Green Snow Co.,Ltd.

Country or region after: Virgin Islands (British)

Address before: Room 333, podium building, 36-1 Huzhou street, Gongshu District, Hangzhou City, Zhejiang Province, 310015

Patentee before: Hangzhou Zimo Network Technology Co.,Ltd.

Country or region before: China