CN113747202B - 一种通过带宽估计发送数据的方法、装置、设备及介质 - Google Patents

一种通过带宽估计发送数据的方法、装置、设备及介质 Download PDF

Info

Publication number
CN113747202B
CN113747202B CN202110897926.5A CN202110897926A CN113747202B CN 113747202 B CN113747202 B CN 113747202B CN 202110897926 A CN202110897926 A CN 202110897926A CN 113747202 B CN113747202 B CN 113747202B
Authority
CN
China
Prior art keywords
band coefficient
estimated bandwidth
code rate
upper limit
data
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
CN202110897926.5A
Other languages
English (en)
Other versions
CN113747202A (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.)
Hangzhou Netease Zhiqi Technology Co Ltd
Original Assignee
Hangzhou Netease Zhiqi 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 Netease Zhiqi Technology Co Ltd filed Critical Hangzhou Netease Zhiqi Technology Co Ltd
Priority to CN202110897926.5A priority Critical patent/CN113747202B/zh
Publication of CN113747202A publication Critical patent/CN113747202A/zh
Application granted granted Critical
Publication of CN113747202B publication Critical patent/CN113747202B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2385Channel allocation; Bandwidth allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • H04N21/26216Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving the channel capacity, e.g. network bandwidth
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64723Monitoring of network processes or resources, e.g. monitoring of network load
    • H04N21/64738Monitoring network characteristics, e.g. bandwidth, congestion level

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开涉及一种通过带宽估计发送数据的方法、装置、设备及介质,该方法包括:到达调整周期时,根据待发送数据的推荐编码码率确定初始估计带宽上限;获取完成总码率分配的调整周期所计算的带外系数,其中,所述带外系数根据调整周期所分配的总码率中,发送数据被分配的编码码率的占比计算得到;响应于满足带外系数调整条件的指令,根据获取的带外系数调整第一带外系数,并根据调整后的第一带外系数及所述初始估计带宽上限,确定估计带宽上限;利用拥塞控制算法,确定不超过所述估计带宽上限的第一估计带宽;将所述第一估计带宽对应的总码率分配给待发送数据进行数据发送。本公开可以有效解决网页实时通信中的音视频质量下降或者流量浪费等问题。

Description

一种通过带宽估计发送数据的方法、装置、设备及介质
技术领域
本公开涉及网络视频技术领域,尤其涉及一种通过带宽估计发送数据的方法、装置、设备及介质。
背景技术
WebRTC(Web Real-Time Communication,网页实时通信)应用中,相关技术一般会根据音视频的Profile(对应编码规格的推荐码率profile_target_bitrate)得到一个初始带宽估计值,利用初始带宽估计值乘以一个因子η(η取值范围>=1,一般为1)得到的乘积,来设置带宽估计值的上限。
利用GCC(Google Congestion Control,谷歌拥塞控制)算法,确定大于初始带宽估计值且不超过带宽估计值上限的带宽估计值,并根据带宽估计值分配码率。在没有丢包的情况下,分配码率大于编码数据的码率时,利用padding包补足对应码率;在发生丢包需要纠错的情况下,分配的码率包括重传编码码率+FEC(Forward Error Correction,前向纠错)+编码码率。
相关技术中上述因子η为固定值,则采用固定的因子η确定带宽估计值上限,会存在以下问题:
当因子η设置为较小值时,编码码率较低,会导致音视频质量下降;
当因子η设置的较大时,上述情况得到一定缓解。但当网络无丢包时,会发送大量的padding包,而padding包对提升媒体质量没有直接作用,浪费了带宽。
发明内容
本公开实施例提供一种通过带宽估计发送数据的方法、装置、设备及介质,可以兼顾有效解决了网页实时通信中的音视频质量下降、流量浪费等问题。
根据本公开实施例的第一方面,提供一种通过带宽估计发送数据的方法,该方法包括:
到达调整周期时,根据待发送数据的推荐编码码率确定初始估计带宽上限;
获取完成总码率分配的调整周期所计算的带外系数,其中,所述带外系数根据调整周期所分配的总码率中,发送数据被分配的编码码率的占比计算得到;
响应于满足带外系数调整条件的指令,根据获取的带外系数调整第一带外系数,并根据调整后的第一带外系数及所述初始估计带宽上限,确定估计带宽上限;
利用拥塞控制算法,确定不超过所述估计带宽上限的第一估计带宽;将所述第一估计带宽对应的总码率分配给待发送数据进行数据发送。
在一种可能的实现方式中,获取完成总码率分配的调整周期所计算的带外系数,包括:
获取完成总码率分配的上一个调整周期所计算的带外系数;
所述带外系数调整条件为上一个调整周期所计算的带外系数与第一带外系数不同,根据获取的带外系数调整第一带外系数,包括:
将第一带外系数调整为上一个调整周期所计算的带外系数。
本公开实施例提供的通过带宽估计发送数据的方法,在满足带外系数调整条件时,通过将完成总码率分配的上一个调整周期所计算的带外系数与第一带外系数的对比,可以按照调整周期实时调整第一带外系数,增加估计带宽上限的准确性。
在一种可能的实现方式中,获取完成总码率分配的调整周期所计算的带外系数,包括:
获取完成总码率分配的最近设定数量个调整周期所计算的带外系数;
所述带外系数调整条件为获取的带外系数中的带外系数最大值与第一带外系数不同,根据获取的带外系数调整第一带外系数,包括:
将第一带外系数调整为所述带外系数最大值。
本公开实施例提供的通过带宽估计发送数据的方法,在满足带外系数调整条件时,还通过将完成总码率分配的最近设定数量个调整周期所计算的带外系数与第一带外系数的对比,调整第一带外系数,可确保有需要时(带外系数突增),立即执行上限上调动作,而下调动作则需等待一段时间,防止网络变化时,频繁执行上调和下调的动作。
在一种可能的实现方式中,还包括:
响应于不满足带外系数调整条件的指令,保持第一带外系数不变;
根据所述第一带外系数及所述初始估计带宽上限,确定估计带宽上限。
本公开实施例提供的通过带宽估计发送数据的方法,在不满足带外系数调整条件时,保持第一带外系数不变。
在一种可能的实现方式中,所述带外系数采用如下方式计算得到:
m=total_bitrate/media_bitrate;
其中,m为完成总码率分配的调整周期所计算的带外系数,total_bitrate为调整周期所分配的总码率,media_bitrate为调整周期发送数据被分配的编码码率。
本公开实施例采用上述方式计算带外系数,可以根据总码率与编码码率的比值,确定上一调整周期发送数据中出错数据的情况,从而调整估计带宽,以在保证编码音视频质量的情况下不浪费带宽。
在一种可能的实现方式中,根据调整后的第一带外系数及所述初始估计带宽上限,确定估计带宽上限,包括:
计算max_bwe=m1*profile_target_bitrate;
其中,max_bwe为估计带宽上限,m1为所述调整后的第一带外系数,profile_target_bitrate为根据推荐编码码率确定的初始估计带宽上限。
本公开实施例采用上述方式计算估计带宽,实现估计带宽根据之前调整周期数据包出错情况进行估计带宽上限动态,具体的调整方向为估计带宽上限在数据包大量出错时向大的方向调整,以保证有足够的码率用于音视频数据编码,保证音视频质量,估计带宽上限在数据包出错很少时向小的方向调整,以减少带宽的浪费。
在一种可能的实现方式中,利用拥塞控制算法,确定不超过所述估计带宽上限的第一估计带宽,包括:
确定处于快速探测阶段时,基于前一次确定的估计带宽,利用第一探测系数向上探测,确定不超过所述估计带宽上限的第一估计带宽;
确定处于非快速探测阶段时,基于前一次确定的初始估计带宽,利用第二探测系数向上探测,确定不超过所述估计带宽上限的第一估计带宽;
其中,所述第一探测系数大于所述第二探测系数;
所述快速探测阶段以检测到估计带宽上限的增幅超过设定阈值为启动条件,以启动后在数据发送过程中检测到数据拥塞为结束条件;
所述非快速探测阶段为快速探测阶段结束后,检测估计带宽上限的增幅是否超过设定阈值的阶段。
本公开实施例提供的通过带宽估计发送数据的方法,在估计带宽上限突增时,通过判定是否处于快速探测阶段,使用不同的探测系数进行带宽探测,加快算法收敛速度。
在一种可能的实现方式中,将所述第一估计带宽对应的总码率分配给待发送数据进行数据发送,包括:
响应于对端反馈确定发生丢包的指令,将所述总码率分配给包括重传编码数据、前向纠错FEC数据及新传输的编码数据的RTP数据包;
响应于对端反馈确定未发生丢包的指令,将所述总码率分配给包括新传输的编码数据的RTP数据包;
对所述RTP数据包利用平滑系数处理后进行数据发送。本公开实施例提供的通过带宽估计发送数据的方法,通过判断是否丢包,将第一估计带宽对应的总码率分配给包含不同数据的RTP数据包,保证发送数据的准确性,对于RTP数据包利用平滑系数进行处理,并平滑发送数据,尽可能避免出现发送数据码率超过带宽。
在一种可能的实现方式中,将所述总码率分配给包括新传输的编码数据的RTP数据包,包括:
将所述总码率分配给包括新传输的编码数据的RTP数据包,并确定总码率大于新传输的编码数据所需码率时,将剩余码率分配给用于进行RTP数据包填充的填充数据。
本公开实施例提供的通过带宽估计发送数据的方法,当总码率大于新传输的编码数据所需码率时,为了保证发送码率等于第一估计带宽,将剩余码率分配给用于进行数据包填充的填充数据。
根据本公开实施例的第二方面,提供一种通过带宽估计发送数据的装置,该装置包括:
初始估计带宽上限确定模块,用于到达调整周期时,根据待发送数据的推荐编码码率确定初始估计带宽上限;
带外系数获取模块,用于获取完成总码率分配的调整周期所计算的带外系数,其中,所述带外系数根据调整周期所分配的总码率中,发送数据被分配的编码码率的占比计算得到;
估计带宽上限确定模块,用于响应于满足带外系数调整条件的指令,根据获取的带外系数调整第一带外系数,并根据调整后的第一带外系数及所述初始估计带宽上限,确定估计带宽上限;
第一估计带宽确定模块,用于利用拥塞控制算法,确定不超过所述估计带宽上限的第一估计带宽;
数据发送模块,用于将所述第一估计带宽对应的总码率分配给待发送数据进行数据发送。
在一种可能的实现方式中,所述带外系数获取模块用于获取完成总码率分配的调整周期所计算的带外系数,包括:
获取完成总码率分配的上一个调整周期所计算的带外系数;
所述带外系数调整条件为上一个调整周期所计算的带外系数与第一带外系数不同,根据获取的带外系数调整第一带外系数,包括:
将第一带外系数调整为上一个调整周期所计算的带外系数。
在一种可能的实现方式中,所述带外系数获取模块用于获取完成总码率分配的调整周期所计算的带外系数,包括:
获取完成总码率分配的最近设定数量个调整周期所计算的带外系数;
所述带外系数调整条件为获取的带外系数中的带外系数最大值与第一带外系数不同,根据获取的带外系数调整第一带外系数,包括:
将第一带外系数调整为所述带外系数最大值。
在一种可能的实现方式中,所述估计带宽上限确定模块还用于:
响应于不满足带外系数调整条件的指令,保持第一带外系数不变;
根据所述第一带外系数及所述初始估计带宽上限,确定估计带宽上限。
在一种可能的实现方式中,所述带外系数获取模块采用如下方式计算得到带外系数:
m=total_bitrate/media_bitrate;
其中,m为完成总码率分配的调整周期所计算的带外系数,total_bitrate为调整周期所分配的总码率,media_bitrate为调整周期发送数据被分配的编码码率。
在一种可能的实现方式中,所述估计带宽上限确定模块用于根据调整后的第一带外系数及所述初始估计带宽上限,确定估计带宽上限,包括:
计算max_bwe=m1*profile_target_bitrate;
其中,max_bwe为估计带宽上限,m1为所述调整后的第一带外系数,profile_target_bitrate为根据推荐编码码率确定的初始估计带宽上限。
在一种可能的实现方式中,所述第一估计带宽确定模块用于利用拥塞控制算法,确定不超过所述估计带宽上限的第一估计带宽,包括:
确定处于快速探测阶段时,基于前一次确定的估计带宽,利用第一探测系数向上探测,确定不超过所述估计带宽上限的第一估计带宽;
确定处于非快速探测阶段时,基于前一次确定的估计带宽,利用第二探测系数向上探测,确定不超过所述估计带宽上限的第一估计带宽;
其中,所述第一探测系数大于所述第二探测系数;
所述快速探测阶段以检测到估计带宽上限的增幅超过设定阈值为启动条件,以启动后在数据发送过程中检测到数据拥塞为结束条件;
所述非快速探测阶段为快速探测阶段结束后,检测估计带宽上限的增幅是否超过设定阈值的阶段。
在一种可能的实现方式中,所述数据发送模块用于将所述第一估计带宽对应的总码率分配给待发送数据进行数据发送,包括:
响应于对端反馈确定发生丢包的指令,将所述总码率分配给包括重传编码数据、前向纠错FEC数据及新传输的编码数据的RTP数据包;
响应于对端反馈确定未发生丢包的指令,将所述总码率分配给包括新传输的编码数据的RTP数据包;
对所述RTP数据包利用平滑系数处理后进行数据发送。
在一种可能的实现方式中,所述数据发送模块将所述总码率分配给包括新传输的编码数据的RTP数据包,包括:
将所述总码率分配给包括新传输的编码数据的RTP数据包,并确定总码率大于新传输的编码数据所需码率时,将剩余码率分配给用于进行RTP数据包填充的填充数据。
根据本公开实施例的第三方面,提供一种电子设备,该电子设备包括:存储器,用于存储程序指令;处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行上述通过带宽估计发送数据的方法的步骤。
根据本公开实施例的第四方面,提供一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述通过带宽估计发送数据的方法的步骤。
另外,第三方面至第四方面中任一种实现方式所带来的技术效果可参见第一方面中不同实现方式所带来的技术效果,此处不再赘述。
本公开实施例提供的通过带宽估计发送数据的方法,通过以上过程,周期性的获取带外系数,根据一定的带外系数调整条件对第一带外系数进行调整,获得估计带宽上限,确定第一估计带宽,从而确定分配的总码率以及实现数据发送。该方法实现了根据数据出错情况进行带外系数动态调整,解决了网络存在丢包时导致的音视频质量降低问题和网络无丢包时的流量浪费问题。
附图说明
为了更清楚地说明本公开实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本公开实施例提供的应用场景示意图;
图2是本公开实施例提供一种通过带宽估计发送数据的方法的流程图;
图3是本公开实施例提供的一种通过带宽估计发送数据的方法的总框图;
图4是本公开实施例提供的一种通过带宽估计发送数据的方法中真实链路带宽与带宽受限程度的关系图;
图5是本公开实施例提供的一种通过带宽估计发送数据的装置的模块图;
图6是本公开实施例提供的一种通过带宽估计发送数据的电子设备示意图;
图7是本公开实施例提供的一种通过带宽估计发送数据的程序产品示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本公开的实施方式可以实现一种通过带宽估计发送数据的方法、装置、设备及介质。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本公开的实施方式,提出了一种提供一种通过带宽估计发送数据的方法、装置、设备及介质。
在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本公开的若干代表性实施方式,详细阐释本公开的原理和精神。
发明概述
本公开人发现,WebRTC应用中,相关技术一般会根据音视频的Profile得到一个初始带宽估计值,利用初始带宽估计值乘以一个因子η(η取值范围>=1,一般为1)得到的乘积,来设置带宽估计值的上限。
通过GCC算法,确定大于初始带宽估计值且不超过带宽估计值上限的带宽估计值,并根据带宽估计值分配码率。在没有丢包的情况下,分配码率大于编码数据的码率时,利用padding包补足对应码率;在发生丢包需要纠错的情况下,分配的码率包括重传编码码率+FEC+编码码率。
相关技术中上述因子η为固定值,则采用固定的因子η确定带宽估计值上限,会存在因子η设置为较小值存着编码效率低、因子η设置的较大导致浪费带宽的问题。
有鉴于此,本公开实施例提供了一种通过带宽估计发送数据的方法。
该方法周期性的获取带外系数,根据一定的带外系数调整条件对其进行调整,以此获得估计带宽上限,从而实现估计带宽上限采用动态因子进行调整的方案,解决了相关技术中采用固定因子确定估计带宽上限,导致网络存在丢包时导致的音视频质量降低问题和网络无丢包时的流量浪费问题。
在介绍了本公开的基本原理之后,下面具体介绍本公开的各种非限制性实施方式。
应用场景总览
首先参考图1,其为本公开实施例的应用场景示意图。用户10通过用户设备11中安装的客户端登录网络服务器12,其中,客户端可以为网页的浏览器,也可以为安装于移动用户设备,如手机,平板电脑等中的应用客户端。
用户设备11与网络服务器12之间通过网络进行通信连接,该网络可以为局域网、广域网等。用户设备11可以为便捷设备(例如:手机、平板、笔记本电脑等),也可以为个人电脑(PC,Personal Computer),网络服务器12可以为任何能够提供互联网服务的设备。
用户设备11与网络服务器12通信的一种可能的形式为,用户可以登录到相应网络视频平台,网络服务器12需要向登录到相应网络视频平台的用户设备11发送音视频数据,例如实时音视频会议对应的音视频数据;网络服务器12中按照调整周期进行带宽估计并进行码率分配。
本公开实施例中,网络服务器12到达调整周期时,根据用户10待发送数据的推荐编码码率确定初始估计带宽上限;获取完成总码率分配的调整周期所计算的带外系数,其中,所述带外系数根据调整周期所分配的总码率中,发送数据被分配的编码码率的占比计算得到;响应于满足带外系数调整条件的指令,根据获取的带外系数调整第一带外系数,并根据调整后的第一带外系数及所述初始估计带宽上限,确定估计带宽上限;利用拥塞控制算法,确定不超过所述估计带宽上限的第一估计带宽;将所述第一估计带宽对应的总码率分配给用户10的待发送数据进行数据发送。
示例性方法
下面结合图1的应用场景,参考图2来描述根据本公开示例性实施方式的通过带宽估计发送数据的方法。需要注意的是,上述应用场景仅是为了便于理解本公开的精神和原理而示出的,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于使用的任何场景。
图2根据一示例性示出的通过带宽估计发送数据的方法,包括如下步骤:
步骤201,到达调整周期时,根据待发送数据的推荐编码码率确定初始估计带宽上限;
本公开实施例每到达一个调整周期,进行一次带宽估计并进行码率分配,调整周期的时长可以根据需要确定。
上述待发送数据为音视频数据,到达调整周期时,根据待发送音视频数据的Profile(对应编码规格的推荐码率profile_target_bitrate)得到一个初始估计带宽上限值,具体过程为现有技术,这里不再重述。
步骤202,获取完成总码率分配的调整周期所计算的带外系数,其中,所述带外系数根据调整周期所分配的总码率中,发送数据被分配的编码码率的占比计算得到;
每到一个调整周期,当前调整周期之前的调整周期为完成总码率分配的调整周期。本公开实施例可以获取完成总码率分配的调整周期所计算的带外系数,具体可以为获取最近至少一次完成总码率分配的调整周期所计算的带外系数。
所述带外系数根据调整周期所分配的总码率中,发送数据被分配的编码码率的占比计算得到,则在数据包出错率高时,带外系数偏大,数据包出错率低时,带外系数偏小。
步骤203,响应于满足带外系数调整条件的指令,根据获取的带外系数调整第一带外系数,并根据调整后的第一带外系数及所述初始估计带宽上限,确定估计带宽上限;
由于带外系数为动态变化的值,且反应了之前发送数据时数据包的出错情况,因此可以根据带外系数变化情况来设置带外系数调整条件,以使估计带宽上限随着数据包的出错情况进行调整,具体根据带外系数变化情况来设置带外系数调整条件,可以根据需要进行设定,可以设置带外系数发生变化或发生变化且变化设定幅度时进行调整。其中所述第一带外系数是在当前周期中用来计算估计带宽上限的带外系数。
步骤204,利用拥塞控制算法,确定不超过所述估计带宽上限的第一估计带宽;
利用拥塞控制算法,确定不超过所述估计带宽上限的第一估计带宽,具体的确定方式为现有过程,原则采用不超过估计带宽上限的第一估计带宽,详细过程这里不再重述。其中拥塞控制算法使用GCC,是WebRTC中默认的拥塞控制算法,一些常见的其它拥塞控制算法有Cubic、BBR等。
步骤205,将所述第一估计带宽对应的总码率分配给待发送数据进行数据发送。
在每个调整周期,会根据对端的收包反馈确定上一周期是否发生丢包,依据丢包情况确定待发送数据,将总码率分配给待发送数据。具体地,对于发生丢包的情况,将总码率分配给重传数据、FEC数据及编码数据。对于未发生丢包的情况,将数据分配给编码数据,且总码率大于编码数据时,利用填充数据包进行数据填充。
本公开实施例提供的通过带宽估计发送数据的方法,通过以上过程,周期性的获取带外系数,根据一定的带外系数调整条件对第一带外系数进行调整,获得估计带宽上限,确定第一估计带宽,从而确定分配的总码率以及实现数据发送。该方法实现了根据数据出错情况进行带外系数动态调整,解决了网络存在丢包时导致的音视频质量降低问题和网络无丢包时的流量浪费问题。
作为一种可选的实施方式,将所述第一估计带宽对应的总码率分配给待发送数据进行数据发送,包括:
响应于对端反馈确定发生丢包的指令,将所述总码率分配给包括重传编码数据、前向纠错FEC数据及新传输的编码数据的RTP数据包;
响应于对端反馈确定未发生丢包的指令,将所述总码率分配给包括新传输的编码数据的RTP数据包;
对所述RTP数据包利用平滑系数处理后进行数据发送。
对所述RTP数据包利用平滑系数处理后进行数据发送,其中,所述平滑系数是系统设定好的,取值大于等于1的数值(一般取值为1.25),选择适当的系数,可减少较大帧(编码器输出各帧大小存在差异)的发送时长,同时兼顾对网络的突发冲击。根据第一估计带宽和设定好的平滑系数平滑发送数据,能够尽可能避免出现瞬间数据发送码率超过带宽估计值。
作为一种可选的实施方式,将所述总码率分配给包括新传输的编码数据的RTP数据包,包括:
将所述总码率分配给包括新传输的编码数据的RTP数据包,并确定总码率大于新传输的编码数据所需码率时,将剩余码率分配给用于进行RTP数据包填充的填充数据。
本公开实施例所提供的通过带宽估计发送数据的方法具有如下的有益效果:
通过动态调整确定估计带宽上限的带外系数,在真实带宽足够(大于Profile)的网络中,逐渐把纠错冗余码率加到带外,有效提升了音视频质量;
避免或减少了填充数据包使用,降低了无丢包网络环境下的发送总码率,减少了流量浪费问题的发生。
如前所述,可以获取最近至少一次完成总码率分配的调整周期所计算的带外系数进行带宽估计,具体可以采用如下两种方式的任一方式:
方式1,根据最近一次完成总码率分配的调整周期所计算的带外系数进行带宽估计的方案。
每到达一个调整周期,获取完成总码率分配的上一个调整周期所计算的带外系数;判断是否满足带外系数调整条件,所述带外系数调整条件为上一个调整周期所计算的带外系数与第一带外系数不同;
确定获取的上一个调整周期所计算的带外系数与第一带外系数不同,将第一带外系数调整为上一个调整周期所计算的带外系数。
根据调整后的第一带外系数及所述初始估计带宽上限,确定估计带宽上限;利用拥塞控制算法,确定不超过所述估计带宽上限的第一估计带宽;将所述第一估计带宽对应的总码率分配给待发送数据进行数据发送,具体过程参见上述描述,这里不再重述。
方式2,根据观察窗口内完成总码率分配的调整周期所计算的带外系数进行带宽估计的方案。本公开实施例观察窗口为当前调整周期之前设定数量个调整周期,观察窗口内的调整周期动态更新,但数量保持不变。
获取完成总码率分配的调整周期所计算的带外系数,包括:
获取完成总码率分配的最近设定数量个调整周期所计算的带外系数;
所述带外系数调整条件为获取的带外系数中的带外系数最大值与第一带外系数不同,根据获取的带外系数调整第一带外系数,包括:
将第一带外系数调整为所述带外系数最大值。
根据观察窗口内的带外系数进行第一带外系数调整,可以实现估计带宽上限的“快升慢降”。
作为一种可选的实施方式,该方法还包括:
响应于不满足带外系数调整条件的指令,保持第一带外系数不变;
根据所述第一带外系数及所述初始估计带宽上限,确定估计带宽上限。
如图3所示,本公开实施例中网络服务器采用周期性采用上述方式1进行带宽估计并发送数据的过程如下:
步骤301,到达一个新的调整周期时,获取上一个完成码率分配的调整周期计算并保存的带外系数;
步骤302,根据客户端的收包反馈及上一个调整周期保存的带外系数确定是否调整第一带外系数,根据第一带外系数确定带宽估计上限;
本实施例中获得上一个周期所计算的带外系数m0;
然后将第一带外系数m1与上一个调整周期所计算的带外系数m0进行对比,若m1>m0或m1<m0,则将第一带外系数m1更新为上一个调整周期所计算的带外系数m0,若m1=m0,则第一带外系数m1保持不变;
然后根据调整后的第一带外系数m1和获得的初始估计带宽上限,通过以下公式计算估计带宽上限:
计算max_bwe=m1*profile_target_bitrate;
其中,max_bwe为估计带宽上限,m1为所述调整后的第一带外系数,profile_target_bitrate为根据推荐编码码率确定的初始估计带宽上限;
步骤303,利用拥塞控制算法,确定不超过所述估计带宽上限的第一估计带宽;
步骤304,根据所述第一估计带宽确定分配的总码率,将总码率分配给待发送数据,并行执行步骤305及步骤306;
步骤305,完成总码率分配时,按照上述方式计算带外系数;
作为一种可选的实施方式,根据调整周期所分配的总码率中,发送数据被分配的编码码率的占比计算带外系数,计算公式如下:
m=total_bitrate/media_bitrate;
其中,m为完成总码率分配的调整周期所计算的带外系数,total_bitrate为调整周期所分配的总码率,media_bitrate为调整周期发送数据被分配的编码码率。
当前调整周期所计算获得的带外系数会保存,留在下一调整周期使用。
步骤306,编码器输出数据,经RTP(Real-time Transport Protocol,实时传输协议)打包处理;
步骤307,在总码率有剩余码率时,则使用填充数据包补足;
步骤308,所有RTP数据,包括原始编码、重传编码数据和FEC数据,通过发送节拍器(paced sender)平滑发送到网络中。
本公开实施例采用上述方式2进行第一带外系数调整,可以实现估计带宽上限的“快升慢降”,具体的,当网络状态发生变化时,假设一个调整周期为1秒,观察窗口的长度为10,到达当前调整周期时,获取完成总码率分配的最近10个调整周期所计算的带外系数,并获得观察窗口内得到带外系数最大值mmax与第一外系数m1进行对比;
若m1>mmax,则第一带外系数m1等于获取的带外系数中的带外系数最大值mmax,执行估计带宽上限上调;
若m1<mmax,则第一带外系数m1等于获取的带外系数中的带外系数最大值mmax,执行估计带宽上限下调;
若m1=mmax,则第一带外系数m1保持不变。
上述策略,可确保有需要时(m值突增),立即执行上限上调动作;而下调动作则需等待观察时间窗口内大于第一带外系数m1的带外系数滑走不在观察窗口内时,再执行下调的更新动作。防止网络变化时,频繁执行上调和下调的动作。
利用拥塞控制算法,确定不超过所述估计带宽上限的第一估计带宽的过程中,可以引入探测机制向上探测带宽,在一种可能的实施方式中,利用拥塞控制算法,确定不超过所述估计带宽上限的第一估计带宽,包括:
确定处于快速探测阶段时,基于前一次确定的估计带宽,利用第一探测系数向上探测,确定不超过所述估计带宽上限的第一估计带宽;
确定处于非快速探测阶段时,基于前一次确定的估计带宽,利用第二探测系数向上探测,确定不超过所述估计带宽上限的第一估计带宽;
其中,所述第一探测系数大于所述第二探测系数。
本发明实施例中按照调整周期实时进行带宽估计,例如可以每100ms确定一次估计带宽,本实施例中的前一次确定的估计带宽具体为上一调整周期确定的第一估计带宽。
所述快速探测阶段以检测到估计带宽上限的增幅超过设定阈值为启动条件,以启动后在数据发送过程中检测到数据拥塞为结束条件;
所述非快速探测阶段为快速探测阶段结束后,检测估计带宽上限的增幅是否超过设定阈值的阶段。
本公开实施例中每个调整周期,在确定出估计带宽上限后,与上一调整周期的带宽估计上限进行对比,确定检测到估计带宽上限的增幅超过设定阈值时,说明发生估计带宽上限突增,启动快速探测进行快速探测阶段,即基于前一次确定的估计带宽,利用较大的探测系数向上探测,确定不超过所述估计带宽上限的第一估计带宽;在之后的调整周期继续利用较大的探测系数向上探测,直至在数据发送过程中检测到数据拥塞,结束快速探测,进入非快速探测阶段,之后的调整周期以较小的探测系数向上探测。
现有技术,一般是加入房间(入会)时执行一次较为激进的快速探测带宽动作(第一上探系数为2.0),其它时刻,都是采用较为保守的稳态估计策略(第二上探系数为1.08)。快速探测算法收敛速度快,但是有一定的风险(当实际带宽不够当前估计值的2倍时),出现短时间的码率超发,而稳态估计策略收敛速度较慢,但几乎没有超发风险,比较适合网络较为平稳的情况下的带宽估计。
而在本公开实施例中,如图3所示,在每个调整周期,在步骤302确定带宽估计上限后还执行:
步骤309,判断当前调整周期的估计带宽上限是否突增,或者之前调整周期突增进入快速探测阶段后未检测到拥塞,若是,执行步骤310,否则执行步骤311;
其中通过设定阈值来判定是否突增,设定的阈值为第一估计带宽上限为增加100%及以上。
步骤310,进入快速探测阶段进行快速探测,并执行步骤303;
假设第一探测系数为2,则在当前调整周期使用2探测不超过估计带宽上限的第一估计带宽。
步骤311,进入非快速探测阶段进行快速探测,并执行步骤303。
在此阶段利用第二探测系数向上探测,确定不超过所述估计带宽上限的第一估计带宽。假设第二探测系数为1.08,则在当前调整周期使用1.08探测不超过估计带宽上限的第一估计带宽。当进入下一个调整周期或下几个周期时,若估计带宽上限没有突增,则仍处于非快速探测阶段,使用第二探测系数向上探测,若估计带宽上限突增,则结束非快速探测阶段并进入快速探测阶段。
本公开实施例通过动态调整估计带宽上限,在真实带宽足够(大于Profile)的网络中,逐渐把纠错冗余码率加到带外,有效提升了媒体质量。
如图4所示,横坐标表示带宽受限程度,纵坐标表示真实的链路带宽,可以划分为三种网络,对应关系如下:
完全受限网络,对应低(Low)带宽(虚线所示),即链路带宽低于Profile。冗余码率只能加在带内,动态估计带宽上限没有带来额外的好处。
部分受限网络,对应中等(Medium)带宽,即链路带宽高于Profile,但低于Profile与冗余码率的和。第一估计带宽收敛后,冗余码率(柱条黑色部分)可最大限度地加在带外。
不受限网络,对应高(High)带宽,即链路带宽高于Profile与冗余码率的和,冗余码率可完全加在带外。
冗余码率跟丢包率和RTT强相关,即不同的丢包率和RTT,冗余码率与编码码率之比也不同。假设冗余码率与编码码率的比例为r:1(由给定网络状态和系统决定,本公开不修改这个比例),那么,当链路带宽大于Profile*(1+r),则属于不受限网络。一般来说,拥塞控制算法的带宽利用率要小于100%,GCC算法在90~95%左右,如上图所示,总码率(柱条总高度)总是等于第一估计带宽,但小于真实带宽(虚线高度)。
示例性设备
在介绍了本公开示例性实施方式的方式之后,接下来,参考图5对本公开示例性实施方式的通过带宽估计发送数据的装置。本公开实施例所提供的上述通过带宽估计发送数据的装置与本发明上述实施例1提供的通过带宽估计发送数据的方法属于同一发明构思,上述实施例1提供的通过带宽估计发送数据的方法的各种实施方式,可以应用到本实施例中的通过带宽估计发送数据的装置进行实施,这里不再重述。如图5所示,本公开实施例还提供了一种通过带宽估计发送数据的装置,包括:
初始估计带宽上限确定模块501,用于到达调整周期时,根据待发送数据的推荐编码码率确定初始估计带宽上限;
带外系数获取模块502,用于获取完成总码率分配的调整周期所计算的带外系数,其中,所述带外系数根据调整周期所分配的总码率中,发送数据被分配的编码码率的占比计算得到;
估计带宽上限确定模块503,用于响应于满足带外系数调整条件的指令,根据获取的带外系数调整第一带外系数,并根据调整后的第一带外系数及所述初始估计带宽上限,确定估计带宽上限;
第一估计带宽确定模块504,用于利用拥塞控制算法,确定不超过所述估计带宽上限的第一估计带宽;
数据发送模块505,用于将所述第一估计带宽对应的总码率分配给待发送数据进行数据发送。
作为一种可选的实施方式,所述带外系数获取模块用于获取完成总码率分配的调整周期所计算的带外系数,包括:
获取完成总码率分配的上一个调整周期所计算的带外系数;
所述带外系数调整条件为上一个调整周期所计算的带外系数与第一带外系数不同,根据获取的带外系数调整第一带外系数,包括:
将第一带外系数调整为上一个调整周期所计算的带外系数。
作为一种可选的实施方式,所述带外系数获取模块用于获取完成总码率分配的调整周期所计算的带外系数,还包括:
获取完成总码率分配的最近设定数量个调整周期所计算的带外系数;
所述带外系数调整条件为获取的带外系数中的带外系数最大值与第一带外系数不同,根据获取的带外系数调整第一带外系数,包括:
将第一带外系数调整为所述带外系数最大值。
作为一种可选的实施方式,所述估计带宽上限确定模块还用于:
响应于不满足带外系数调整条件的指令,保持第一带外系数不变;
根据所述第一带外系数及所述初始估计带宽上限,确定估计带宽上限。
作为一种可选的实施方式,所述带外系数获取模块采用如下方式计算得到带外系数:
m=total_bitrate/media_bitrate;
其中,m为完成总码率分配的调整周期所计算的带外系数,total_bitrate为调整周期所分配的总码率,media_bitrate为调整周期发送数据被分配的编码码率。
作为一种可选的实施方式,所述估计带宽上限确定模块根据调整后的第一带外系数及所述初始估计带宽上限,确定估计带宽上限,包括:
计算max_bwe=m1*profile_target_bitrate;
其中,max_bwe为估计带宽上限,m1为所述调整后的第一带外系数,profile_target_bitrate为根据推荐编码码率确定的初始估计带宽上限。
作为一种可选的实施方式,所述第一估计带宽确定模块用于利用拥塞控制算法,确定不超过所述估计带宽上限的第一估计带宽,包括:
确定处于快速探测阶段时,基于前一次确定的估计带宽,利用第一探测系数向上探测,确定不超过所述估计带宽上限的第一估计带宽;
确定处于非快速探测阶段时,基于前一次确定的估计带宽,利用第二探测系数向上探测,确定不超过所述估计带宽上限的第一估计带宽;
其中,所述第一探测系数大于所述第二探测系数;
所述快速探测阶段以检测到估计带宽上限的增幅超过设定阈值为启动条件,以启动后在数据发送过程中检测到数据拥塞为结束条件;
所述非快速探测阶段为快速探测阶段结束后,检测估计带宽上限的增幅是否超过设定阈值的阶段。
作为一种可选的实施方式,所述数据发送模块用于将所述第一估计带宽对应的总码率分配给待发送数据进行数据发送,包括:
响应于对端反馈确定发生丢包的指令,将所述总码率分配给包括重传编码数据、前向纠错FEC数据及新传输的编码数据的RTP数据包;
响应于对端反馈确定未发生丢包的指令,将所述总码率分配给包括新传输的编码数据的RTP数据包;
对所述RTP数据包利用平滑系数处理后进行数据发送。
作为一种可选的实施方式,所述数据发送模块将所述总码率分配给包括新传输的编码数据的RTP数据包,包括:
将所述总码率分配给包括新传输的编码数据的RTP数据包,并确定总码率大于新传输的编码数据所需码率时,将剩余码率分配给用于进行RTP数据包填充的填充数据。
下面参照图6来描述根据本公开的这种实施方式的通过带宽估计发送数据的电子设备60。图6显示的通过带宽估计发送数据的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,通过带宽估计发送数据的电子设备60可以以通用计算设备的形式表现,例如其可以为终端设备。通过带宽估计发送数据的电子设备60的组件可以包括但不限于:上述至少一个处理器61、上述至少一个存储器62、连接不同系统组件(包括存储器62和处理器61)的总线63。
总线63表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储器62可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)621和/或高速缓存存储器622,还可以进一步包括只读存储器(ROM)623。
存储器62还可以包括具有一组(至少一个)程序模块624的程序/实用工具625,这样的程序模块624包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
通过带宽估计发送数据的电子设备60也可以与一个或多个外部设备64(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与通过带宽估计发送数据的电子设备60交互的设备通信,和/或与使得通过带宽估计发送数据的电子设备60能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等)通信。这种通信可以通过输入/输出(I/O)接口65进行。并且,通过带宽估计发送数据的电子设备60还可以通过网络适配器66与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器66通过总线63与通过带宽估计发送数据的电子设备60的其它模块通信。应当明白,尽管图中未示出,可以结合通过带宽估计发送数据的电子设备60使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
上述存储器62,用于存储程序指令;处理器61,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行上述实施例提供的通过带宽估计发送数据的方法。
示例性程序产品
在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的通过带宽估计发送数据装置中各模块的步骤,例如,终端设备可以执行根据获取的带外系数调整第一带外系数,并根据调整后的第一带外系数及所述初始估计带宽上限,确定估计带宽上限等操作。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
如图7所示,描述了根据本公开的实施方式的用于通过带宽估计发送数据的程序产品70,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了系统的若干模块或子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
此外,尽管在附图中以特定顺序描述了本公开系统各模块的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些操作,将多个操作合并为一个操作执行,和/或将一个操作分解为多个操作执行。
虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

Claims (20)

1.一种通过带宽估计发送数据的方法,其特征在于,该方法包括:
到达调整周期时,根据待发送数据的推荐编码码率确定初始估计带宽上限;
获取完成总码率分配的调整周期所计算的带外系数,其中,所述带外系数根据调整周期所分配的总码率中,发送数据被分配的编码码率的占比计算得到;
响应于满足带外系数调整条件的指令,根据获取的带外系数调整第一带外系数,并根据调整后的第一带外系数及所述初始估计带宽上限,确定估计带宽上限;
利用拥塞控制算法,确定不超过所述估计带宽上限的第一估计带宽;
将所述第一估计带宽对应的总码率分配给待发送数据进行数据发送。
2.根据权利要求1所述的方法,其特征在于,获取完成总码率分配的调整周期所计算的带外系数,包括:
获取完成总码率分配的上一个调整周期所计算的带外系数;
所述带外系数调整条件为上一个调整周期所计算的带外系数与第一带外系数不同,根据获取的带外系数调整第一带外系数,包括:
将第一带外系数调整为上一个调整周期所计算的带外系数。
3.根据权利要求1所述的方法,其特征在于,获取完成总码率分配的调整周期所计算的带外系数,包括:
获取完成总码率分配的最近设定数量个调整周期所计算的带外系数;
所述带外系数调整条件为获取的带外系数中的带外系数最大值与第一带外系数不同,根据获取的带外系数调整第一带外系数,包括:
将第一带外系数调整为所述带外系数最大值。
4.根据权利要求1~3任一所述的方法,其特征在于,还包括:
响应于不满足带外系数调整条件的指令,保持第一带外系数不变;
根据所述第一带外系数及所述初始估计带宽上限,确定估计带宽上限。
5.根据权利要求1~3任一所述的方法,其特征在于,所述带外系数采用如下方式计算得到:
m=total_bitrate/media_bitrate;
其中,m为完成总码率分配的调整周期所计算的带外系数,total_bitrate为调整周期所分配的总码率,media_bitrate为调整周期发送数据被分配的编码码率。
6.根据权利要求1~3任一所述的方法,其特征在于,根据调整后的第一带外系数及所述初始估计带宽上限,确定估计带宽上限,包括:
计算max_bwe=m1*profile_target_bitrate;
其中,max_bwe为估计带宽上限,m1为所述调整后的第一带外系数,profile_target_bitrate为根据推荐编码码率确定的初始估计带宽上限。
7.根据权利要求1所述的方法,其特征在于,利用拥塞控制算法,确定不超过所述估计带宽上限的第一估计带宽,包括:
确定处于快速探测阶段时,基于前一次确定的估计带宽,利用第一探测系数向上探测,确定不超过所述估计带宽上限的第一估计带宽;
确定处于非快速探测阶段时,基于前一次确定的估计带宽,利用第二探测系数向上探测,确定不超过所述估计带宽上限的第一估计带宽;
其中,所述第一探测系数大于所述第二探测系数;
所述快速探测阶段以检测到估计带宽上限的增幅超过设定阈值为启动条件,以启动后在数据发送过程中检测到数据拥塞为结束条件;
所述非快速探测阶段为快速探测阶段结束后,检测估计带宽上限的增幅是否超过设定阈值的阶段。
8.根据权利要求1所述的方法,其特征在于,将所述第一估计带宽对应的总码率分配给待发送数据进行数据发送,包括:
响应于对端反馈确定发生丢包的指令,将所述总码率分配给包括重传编码数据、前向纠错FEC数据及新传输的编码数据的RTP数据包;
响应于对端反馈确定未发生丢包的指令,将所述总码率分配给包括新传输的编码数据的RTP数据包;
对所述RTP数据包利用平滑系数处理后进行数据发送。
9.根据权利要求8所述的方法,其特征在于,将所述总码率分配给包括新传输的编码数据的RTP数据包,包括:
将所述总码率分配给包括新传输的编码数据的RTP数据包,并确定总码率大于新传输的编码数据所需码率时,将剩余码率分配给用于进行RTP数据包填充的填充数据。
10.一种通过带宽估计发送数据的装置,其特征在于,该装置包括:
初始估计带宽上限确定模块,用于到达调整周期时,根据待发送数据的推荐编码码率确定初始估计带宽上限;
带外系数获取模块,用于获取完成总码率分配的调整周期所计算的带外系数,其中,所述带外系数根据调整周期所分配的总码率中,发送数据被分配的编码码率的占比计算得到;
估计带宽上限确定模块,用于响应于满足带外系数调整条件的指令,根据获取的带外系数调整第一带外系数,并根据调整后的第一带外系数及所述初始估计带宽上限,确定估计带宽上限;
第一估计带宽确定模块,用于利用拥塞控制算法,确定不超过所述估计带宽上限的第一估计带宽;
数据发送模块,用于将所述第一估计带宽对应的总码率分配给待发送数据进行数据发送。
11.根据权利要求10所述的装置,其特征在于,所述带外系数获取模块用于获取完成总码率分配的调整周期所计算的带外系数,包括:
获取完成总码率分配的上一个调整周期所计算的带外系数;
所述带外系数调整条件为上一个调整周期所计算的带外系数与第一带外系数不同,根据获取的带外系数调整第一带外系数,包括:
将第一带外系数调整为上一个调整周期所计算的带外系数。
12.根据权利要求10所述的装置,其特征在于,所述带外系数获取模块用于获取完成总码率分配的调整周期所计算的带外系数,包括:
获取完成总码率分配的最近设定数量个调整周期所计算的带外系数;
所述带外系数调整条件为获取的带外系数中的带外系数最大值与第一带外系数不同,根据获取的带外系数调整第一带外系数,包括:
将第一带外系数调整为所述带外系数最大值。
13.根据权利要求10~12任一所述的装置,其特征在于,所述估计带宽上限确定模块还用于:
响应于不满足带外系数调整条件的指令,保持第一带外系数不变;
根据所述第一带外系数及所述初始估计带宽上限,确定估计带宽上限。
14.根据权利要求10~12任一所述的装置,其特征在于,所述带外系数获取模块采用如下方式计算得到带外系数:
m=total_bitrate/media_bitrate;
其中,m为完成总码率分配的调整周期所计算的带外系数,total_bitrate为调整周期所分配的总码率,media_bitrate为调整周期发送数据被分配的编码码率。
15.根据权利要求10~12任一所述的装置,其特征在于,所述估计带宽上限确定模块用于根据调整后的第一带外系数及所述初始估计带宽上限,确定估计带宽上限,包括:
计算max_bwe=m1*profile_target_bitrate;
其中,max_bwe为估计带宽上限,m1为所述调整后的第一带外系数,profile_target_bitrate为根据推荐编码码率确定的初始估计带宽上限。
16.根据权利要求10所述的装置,其特征在于,所述第一估计带宽确定模块用于利用拥塞控制算法,确定不超过所述估计带宽上限的第一估计带宽,包括:
确定处于快速探测阶段时,基于前一次确定的估计带宽,利用第一探测系数向上探测,确定不超过所述估计带宽上限的第一估计带宽;
确定处于非快速探测阶段时,基于前一次确定的估计带宽,利用第二探测系数向上探测,确定不超过所述估计带宽上限的第一估计带宽;
其中,所述第一探测系数大于所述第二探测系数;
所述快速探测阶段以检测到估计带宽上限的增幅超过设定阈值为启动条件,以启动后在数据发送过程中检测到数据拥塞为结束条件;
所述非快速探测阶段为快速探测阶段结束后,检测估计带宽上限的增幅是否超过设定阈值的阶段。
17.根据权利要求10所述的装置,其特征在于,所述数据发送模块用于将所述第一估计带宽对应的总码率分配给待发送数据进行数据发送,包括:响应于对端反馈确定发生丢包的指令,将所述总码率分配给包括重传编码数据、前向纠错FEC数据及新传输的编码数据的RTP数据包;
响应于对端反馈确定未发生丢包的指令,将所述总码率分配给包括新传输的编码数据的RTP数据包;
对所述RTP数据包利用平滑系数处理后进行数据发送。
18.根据权利要求17所述的装置,其特征在于,所述数据发送模块将所述总码率分配给包括新传输的编码数据的RTP数据包,包括:
将所述总码率分配给包括新传输的编码数据的RTP数据包,并确定总码率大于新传输的编码数据所需码率时,将剩余码率分配给用于进行RTP数据包填充的填充数据。
19.一种电子设备,其特征在于,包括:存储器,用于存储程序指令;处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行权利要求1至9任一项所述的方法。
20.一种计算机可读非易失性存储介质,其特征在于,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行权利要求1至9任一项所述的方法。
CN202110897926.5A 2021-08-05 2021-08-05 一种通过带宽估计发送数据的方法、装置、设备及介质 Active CN113747202B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110897926.5A CN113747202B (zh) 2021-08-05 2021-08-05 一种通过带宽估计发送数据的方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110897926.5A CN113747202B (zh) 2021-08-05 2021-08-05 一种通过带宽估计发送数据的方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN113747202A CN113747202A (zh) 2021-12-03
CN113747202B true CN113747202B (zh) 2023-09-15

Family

ID=78730212

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110897926.5A Active CN113747202B (zh) 2021-08-05 2021-08-05 一种通过带宽估计发送数据的方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN113747202B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114466226B (zh) * 2022-01-28 2023-12-08 杭州灵伴科技有限公司 带宽时长占比确定方法、装置、设备和计算机可读介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017166487A1 (zh) * 2016-03-30 2017-10-05 乐视控股(北京)有限公司 实时码率调节方法、装置及服务端设备
CN107483401A (zh) * 2017-07-07 2017-12-15 广州市百果园网络科技有限公司 一种多媒体数据传输方法及其设备、存储介质、服务器
WO2018019102A1 (zh) * 2016-07-27 2018-02-01 华为技术有限公司 一种视频通信过程中的带宽调整方法、设备及系统
CN110290428A (zh) * 2019-06-26 2019-09-27 腾讯科技(深圳)有限公司 一种拥塞控制方法、装置、终端及存储介质
WO2019234338A1 (fr) * 2018-06-08 2019-12-12 Orange Adaptation de débit d'une session de communication en voix sur ip
CN111836079A (zh) * 2019-04-18 2020-10-27 杭州海康威视数字技术股份有限公司 一种视频码流的传输方法及装置
WO2021012869A1 (zh) * 2019-07-25 2021-01-28 广州市百果园信息技术有限公司 传输速率的确定方法、装置、设备和存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9609040B2 (en) * 2014-02-21 2017-03-28 Dialogic Corporation Efficient bitrate adaptation in video communications over IP networks

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017166487A1 (zh) * 2016-03-30 2017-10-05 乐视控股(北京)有限公司 实时码率调节方法、装置及服务端设备
WO2018019102A1 (zh) * 2016-07-27 2018-02-01 华为技术有限公司 一种视频通信过程中的带宽调整方法、设备及系统
CN107483401A (zh) * 2017-07-07 2017-12-15 广州市百果园网络科技有限公司 一种多媒体数据传输方法及其设备、存储介质、服务器
WO2019234338A1 (fr) * 2018-06-08 2019-12-12 Orange Adaptation de débit d'une session de communication en voix sur ip
CN111836079A (zh) * 2019-04-18 2020-10-27 杭州海康威视数字技术股份有限公司 一种视频码流的传输方法及装置
CN110290428A (zh) * 2019-06-26 2019-09-27 腾讯科技(深圳)有限公司 一种拥塞控制方法、装置、终端及存储介质
WO2021012869A1 (zh) * 2019-07-25 2021-01-28 广州市百果园信息技术有限公司 传输速率的确定方法、装置、设备和存储介质

Also Published As

Publication number Publication date
CN113747202A (zh) 2021-12-03

Similar Documents

Publication Publication Date Title
US11228630B2 (en) Adaptive bit rate media streaming based on network conditions received via a network monitor
US10374928B1 (en) Efficient bandwidth estimation
US11064230B2 (en) Optimizing adaptive bit rate streaming for content delivery
US20090010155A1 (en) Network communication control methods and systems
US20150039744A1 (en) Elastic wan optimization cloud services
US9344340B2 (en) System and method for notification of QoE issues
CN111010739B (zh) 物理资源块配置方法、装置、5g基站和可读存储介质
US20150134771A1 (en) Adaptive content transmission
JP2017508372A (ja) 輻輳制御ビットレート・アルゴリズム
US9596311B2 (en) Dynamic data compression
KR20230017335A (ko) 버퍼 처리 방법, 장치, 기기 및 컴퓨터 저장 매체
CN113747202B (zh) 一种通过带宽估计发送数据的方法、装置、设备及介质
CN109660467B (zh) 用于控制流量的方法和装置
CN107483401B (zh) 一种多媒体数据传输方法及其设备、存储介质、服务器
KR20150070568A (ko) Http 기반의 멀티미디어 스트리밍 서비스를 위한 네트워크 대역폭 적응적 콘텐츠 생성 방법 및 시스템
CN109495660B (zh) 一种音频数据的编码方法、装置、设备和存储介质
CN113453045A (zh) 网络带宽预测方法、系统、设备及存储介质
CN113450808B (zh) 音频码率确定方法、装置、存储介质及电子设备
CN111385574B (zh) 视频编码中的码率控制方法、装置、移动终端及存储介质
CN109361494B (zh) 一种音频数据的处理方法、装置、设备和存储介质
KR20140124415A (ko) 다층 레이트 제어 기법
JP2014127969A (ja) プログラム、情報処理装置、及び通信方法
US20120120814A1 (en) Systems and methods for estimating processing workloads
CN114401208B (zh) 数据传输方法、装置、电子设备和存储介质
CN115767149A (zh) 一种视频数据的传输方法和装置

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