CN116805938A - 流媒体传输的抖动缓冲区控制方法、系统、介质和设备 - Google Patents
流媒体传输的抖动缓冲区控制方法、系统、介质和设备 Download PDFInfo
- Publication number
- CN116805938A CN116805938A CN202311067068.7A CN202311067068A CN116805938A CN 116805938 A CN116805938 A CN 116805938A CN 202311067068 A CN202311067068 A CN 202311067068A CN 116805938 A CN116805938 A CN 116805938A
- Authority
- CN
- China
- Prior art keywords
- audio
- frame
- frame number
- fade
- emergency degree
- 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.)
- Granted
Links
- 239000000872 buffer Substances 0.000 title claims abstract description 135
- 238000000034 method Methods 0.000 title claims abstract description 77
- 230000005540 biological transmission Effects 0.000 title claims abstract description 47
- 230000008859 change Effects 0.000 claims abstract description 71
- 238000012545 processing Methods 0.000 claims abstract description 35
- 238000004590 computer program Methods 0.000 claims abstract description 18
- 230000000295 complement effect Effects 0.000 claims abstract description 13
- 230000001502 supplementing effect Effects 0.000 claims abstract description 13
- 238000011156 evaluation Methods 0.000 claims abstract description 9
- 230000006870 function Effects 0.000 claims description 23
- 230000008569 process Effects 0.000 claims description 18
- 238000013507 mapping Methods 0.000 claims description 14
- 230000005484 gravity Effects 0.000 claims description 6
- 238000003860 storage Methods 0.000 claims description 6
- 230000009471 action Effects 0.000 claims description 3
- 239000012634 fragment Substances 0.000 claims description 3
- 238000001914 filtration Methods 0.000 claims description 2
- 230000004044 response Effects 0.000 abstract description 8
- 230000006872 improvement Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 9
- 238000002474 experimental method Methods 0.000 description 8
- 230000000903 blocking effect Effects 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000011217 control strategy Methods 0.000 description 3
- 238000005429 filling process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 230000009469 supplementation Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000012912 buffer supplement Substances 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000013215 result calculation Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/765—Media network packet handling intermediate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
Abstract
本发明涉及音频数据传输领域,公开一种流媒体传输的抖动缓冲区控制方法、系统、介质和设备,方法包括:实时获取流媒体音频数据传输过程中音频缓冲区的音频帧数和音频帧数变化率,根据音频帧数和音频帧数变化率评估音频缓冲区发生断流的紧急程度;KCP协议接收音频数据时,根据音频缓冲区的断流的紧急程度对音频数据进行跳帧处理;储存音频数据到音频缓冲区之前,对跳帧后的音频数据进行补帧处理和淡入淡出处理;系统包括断流评估模块、跳帧模块和补帧模块,介质和设备包括执行方法的计算机程序。本发明可以在不影响用户操作的响应速度的前提下提升高负载纯音频场景下的播放质量。
Description
技术领域
本发明涉及音频数据传输领域,尤其是指一种流媒体传输的抖动缓冲区控制方法、系统、介质和设备。
背景技术
针对流媒体传输的抖动缓冲区控制技术主要分为基于发送端码率调整的策略,以及基于接收端缓冲区容量调整的策略。基于发送端传输速率调整的缓冲区控制策略适用于音视频传输场景,但是,由于纯音频的传输速率是固定的,这类方法难以适配于纯音频传输的场景。基于接收端缓冲区容量调整的缓冲区控制策略虽然适用于纯音频传输场景,但是由于在播放中调整了接收端缓冲区大小,相应地就会影响用户操作的响应速度,造成网络时延,影响用户体验。
为了补偿网络时延抖动,现有技术中有针对流媒体传输的动态自适应缓冲机制,该方法在连续负反馈控制的过程中,在尽快接收视频帧并将其放入视频缓冲队列的同时,如果视频缓冲队列中的视频帧数超过上限,可以提高视频播放速度;如果视频帧数低于下限,就会降低视频播放速度;否则,保持视频播放速度。现有技术中还有基于网络流量预测的自适应抖动缓冲控制方法,该方法首先计算Elman神经网络的权值,并通过粒子群优化算法对该网络的权值和阈值进行动态优化,从而避免陷入局部最小值;再通过该模型的输出动态调整缓冲区的大小,从而提升缓冲区大小设置时的合理性。但是,这些现有技术都无法在不影响用户操作的响应速度的同时,保证高负载纯音频场景下的播放质量。
发明内容
为此,本发明所要解决的技术问题在于克服现有技术无法在不影响用户操作的响应速度的同时,保证高负载纯音频场景下的播放质量的不足,提供一种流媒体传输的抖动缓冲区控制方法、系统、介质和设备,可以在不影响用户操作的响应速度的前提下提升高负载纯音频场景下的播放质量。
为解决上述现有技术中的问题,本发明提供了一种流媒体传输的抖动缓冲区控制方法,包括:
实时获取流媒体音频数据传输过程中音频缓冲区的音频帧数和音频帧数变化率,根据音频帧数和音频帧数变化率评估音频缓冲区发生断流的紧急程度;
KCP协议接收音频数据时,根据音频缓冲区的断流的紧急程度对音频数据进行跳帧处理;
储存音频数据到音频缓冲区之前,对跳帧后的音频数据进行补帧处理和淡入淡出处理。
在本发明的一个实施例中,所述根据音频帧数和音频帧数变化率评估音频缓冲区发生断流的紧急程度时,使用Mamdani模糊系统预测断流的紧急程度。
在本发明的一个实施例中,所述使用Mamdani模糊系统预测断流的紧急程度,具体为:
将音频缓冲区的当前音频帧数和音频帧数变化率作为输入变量输入Mamdani模糊系统,输出变量作为断流的紧急程度;
按音频帧数或音频帧数变化率的由高到低划分多个等级,建立当前音频帧数和音频帧数变化率对应的模糊子集;按断流的紧急程度的由高到低划分多个等级,建立断流的紧急程度对应的模糊子集,断流的紧急程度高表示当前发生断流的可能性高,断流的紧急程度低表示当前发生断流的可能性低;
结合三角形隶属度函数与梯形隶属度函数建立从真实输入到模糊集合的映射,根据映射关系预测断流的紧急程度。
在本发明的一个实施例中,所述将音频缓冲区的当前音频帧数和音频帧数变化率作为输入变量输入Mamdani模糊系统时,使用移动平均模型对音频缓冲区的音频帧数和音频帧数变化率进行滤波处理。
在本发明的一个实施例中,所述结合三角形隶属度函数与梯形隶属度函数建立从真实输入到模糊集合的映射时,建立的模糊控制规则为:
若当前音频帧数的数值高,此时音频帧数的高低是导致断流的直接影响因素,则将对应的断流的紧急程度的隶属度映射为低;
若当前音频帧数的数值不高,此时音频帧数变化率是导致断流的直接影响因素,若音频帧数变化率为负数,则将对应的断流的紧急程度的隶属度映射为高。
在本发明的一个实施例中,使用所述模糊控制规则时,模糊逻辑控制器的模糊化结果使用最大最小准则法进行评估;
对于映射到断流的紧急程度上的音频帧数或音频帧数变化率的不同对应结果,选择其中的最小值作为最终的音频帧数或音频帧数变化率的对应结果;对于根据每个音频帧数或音频帧数变化率输出得到的断流的紧急程度,选择其中的最大值作为最终的每个音频帧数或音频帧数变化率对应的断流的紧急程度。
在本发明的一个实施例中,所述根据映射关系预测断流的紧急程度,包括:
将最终的每个音频帧数或音频帧数变化率对应的断流的紧急程度作为断流的紧急程度的隶属度集合,解模糊过程使用重心法进行结果计算,断流的紧急程度的输出值为断流的紧急程度的隶属度集合的图形的重心横坐标。
在本发明的一个实施例中,所述跳帧处理,具体为:
使用KCP协议接收端的数据接收流程接收音频数据,将KCP在协议层缓冲区中接收数据的行为分为顺序接收、乱序接收、重传接收;若为顺序接收,不做跳帧处理;当乱序接收发生时,将小于当前数据包的序列号和大于接收窗口当前偏移的序列号保存到乱序队列中;当重传接收发生时,删除乱序队列中和重传数据包具有相同包分片序号的序列号;
KCP协议接收音频数据时,根据实时的断流的紧急程度以不同概率执行跳帧操作。
在本发明的一个实施例中,所述补帧处理和淡入淡出处理,具体为:
将缺失的音频PCM帧作为补帧序列,在补帧序列插入空白帧,对补帧序列的前一帧执行淡出缓动操作,对补帧序列的下一帧执行淡入缓动操作;
所述淡出缓动操作的公式为:
(1),
所述淡入缓动操作的公式为:
(2),
其中,表示淡出音频序列中的第i个采样的淡出缓动操作,/>表示淡入音频序列中的第i个采样的淡入缓动操作,i表示淡入或淡出音频序列的第i个采样,N表示淡入或淡出的总采样数;
若音频PCM帧执行淡出缓动操作,则音频PCM帧的第i个值X(i)’为:X(i)’=X(i)×R1(i),X(i)表示音频PCM帧的第i个采样值;若音频PCM帧执行淡入缓动操作,则音频PCM帧的第i个值X(i)’为:X(i)’=X(i)×R2(i)。
本发明还提供了一种流媒体传输的抖动缓冲区控制系统,包括:
断流评估模块,用于实时获取流媒体音频数据传输过程中音频缓冲区的音频帧数和音频帧数变化率,根据音频帧数和音频帧数变化率评估音频缓冲区发生断流的紧急程度;
跳帧模块,用于在KCP协议接收音频数据时,根据音频缓冲区的断流的紧急程度对音频数据进行跳帧处理;
补帧模块,用于在储存音频数据到音频缓冲区之前,对跳帧后的音频数据进行补帧处理和淡入淡出处理。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,其该计算机程序被处理器执行时实现所述流媒体传输的抖动缓冲区控制方法。
本发明还提供了一种流媒体传输的抖动缓冲区控制设备,包括存储器、处理器和存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述流媒体传输的抖动缓冲区控制方法。
本发明的上述技术方案相比现有技术具有以下优点:
本发明通过在综合考虑音频帧数和音频帧数变化率的基础上,对KCP协议的接收流程进行了改进,根据断流的紧急程度进行相应地跳帧和补帧操作,实现了在不影响用户操作的响应速度的前提下提升了高负载纯音频场景下的播放质量。
附图说明
为了使本发明的内容更容易被清楚的理解,下面根据本发明的具体实施例并结合附图,对本发明作进一步详细的说明,其中:
图1是本发明方法的流程图。
图2是本发明的框架图。
图3是本发明中的音频缓冲区帧数的隶属度函数的示意图。
图4是本发明中的帧数变化率的隶属度函数的示意图。
图5是本发明中的断流的紧急程度的隶属度函数的示意图。
图6是本发明实施例中的断流的紧急程度预测模型的三维曲面图。
图7是本发明的补帧流程的示意图。
图8是本发明实施例中举例的推理过程图。
图9是本发明实施例中举例对应的隶属度图形。
图10是本发明实施例中使用传统KCP协议时干扰负载为40Mb/s时的音频缓冲区占用情况。
图11是本发明实施例中使用本发明方法时干扰负载为40Mb/s时的音频缓冲区占用情况。
图12是本发明实施例中使用传统KCP协议时干扰负载为60Mb/s时的音频缓冲区占用情况。
图13是本发明实施例中使用本发明方法时干扰负载为60Mb/s时的音频缓冲区占用情况。
图14是本发明实施例中使用传统KCP协议时干扰负载为80Mb/s时的音频缓冲区占用情况。
图15是本发明实施例中使用本发明方法时干扰负载为80Mb/s时的音频缓冲区占用情况。
图16是本发明实施例中分别使用传统KCP协议和本发明后的断流时长的对比图。
图17是本发明实施例中分别使用传统KCP协议和本发明后的卡顿次数的对比图。
图18是本发明实施例中分别使用传统KCP协议和本发明后的PESQ对比图。
图19是本发明实施例中分别使用传统KCP协议和本发明后的STOI的对比图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
参照图1和图2所示,本发明公开了一种流媒体传输的抖动缓冲区控制方法,图2中KCP协议层缓冲区中存储收到的音频数据,KCP应用层缓冲区中有接收队列。包括以下步骤:
S1:实时获取流媒体音频数据传输过程中音频缓冲区的音频帧数和音频帧数变化率,根据音频帧数和音频帧数变化率评估音频缓冲区发生断流的紧急程度。
S1-1:实时获取流媒体音频数据传输过程中音频缓冲区的音频帧数和音频帧数变化率。
S1-2:根据音频帧数和音频帧数变化率评估音频缓冲区发生断流的紧急程度时,使用Mamdani模糊系统建立断流的紧急程度预测模型,预测断流的紧急程度。Mamdani模糊系统是一种可以通过事先掌握的一组推理规则实现从输入到输出的推理计算,从而建立准确的辨识的系统。Mamdani模糊系统由模糊化处理算子,模糊推理机制和非模糊化处理算子三个部分组成。具体为:
S1-2-1:本实施例中的Mamdani模糊系统为双输入,单输出的Mamdani结构。将音频缓冲区的当前音频帧数(OR)和音频帧数变化率(COR)作为输入变量输入Mamdani模糊系统,输出变量作为断流的紧急程度(CD);其中,音频缓冲区当前帧数OR的论域为[0,50],帧数变化率COR的论域为[-1.0,1.0],输出的断流的紧急程度CD的论域为[0,100]。本实施例中,播放线程每10ms从音频缓冲区读取一帧音频数据,且一帧音频的时长为10ms,即缓冲区的音频帧数变化率的下界为-1.0,而KCP协议接收数据时会将多个数据包一次性迁移到应用层缓冲区,此时音频缓冲区的帧输入速率大于1。为了平衡缓冲区帧数变化率的论域区间范围,本发明将速率超过1的部分当做1看待,表示为正向增长。
将音频缓冲区的当前音频帧数和音频帧数变化率作为输入变量输入Mamdani模糊系统时,为了平滑输入的抖动性,使用移动平均模型(Moving Average,MA)对音频缓冲区的音频帧数和音频帧数变化率进行滤波处理。
按音频帧数或音频帧数变化率的由高到低划分多个等级,建立当前音频帧数和音频帧数变化率对应的模糊子集,本实施例中设置的当前音频帧数对应的模糊子集为{bad,middle,good},音频帧数变化率对应的模糊子集为{ bad,poor,middle,good},bad表示音频帧数或音频变化率最低,good表示音频帧数或音频变化率最高,middle、poor分别表示在bad和good之间平均划分的各个等级;按断流的紧急程度的由高到低划分多个等级,建立断流的紧急程度对应的模糊子集,断流的紧急程度高表示当前发生断流的可能性高,断流的紧急程度低表示当前发生断流的可能性低,本实施例中设置的断流的紧急程度对应的模糊子集为{very_bad,bad,poor,middle,good},very_bad表示断流的紧急程度最高,good表示断流紧的急程度最低,bad、poor、middle分别表示在very_bad和good之间平均划分的各个等级;
结合三角形隶属度函数与梯形隶属度函数建立从真实输入到模糊集合的映射,根据映射关系预测断流的紧急程度。图3为音频帧数的隶属度函数、图4为音频帧数变化率的隶属度函数,图5为断流的紧急程度的隶属度函数。
S1-2-2:建立模糊控制规则为:
若当前音频帧数的数值高,此时音频帧数的高低是导致断流的直接影响因素,则将对应的断流的紧急程度的隶属度映射为低,具体即若、则,其中,/>表示音频缓冲区音频帧数OR的隶属度,/>表示断流的紧急程度CD的隶属度。本实施例中利用图3中真实输入和音频缓冲区帧数OR的各隶属函数计算方法,算出good的数值x(x>0),即/>,音频帧数的数值高需要的条件是真实输入音频帧数的取值范围为(20,50]。
若当前音频帧数的数值不高,此时音频帧数变化率是是导致断流的直接影响因素,若经过移动平均模型处理后的音频帧数变化率为负数,此时缓冲区处于一个较为危险的情况,则将对应的断流的紧急程度的隶属度映射为高,具体即若{middle, bad}且/>{middle, poor, bad}、则/>{middle,poor, bad, very_bad},/>表示音频帧数变化率COR的隶属度。本实施例中当前音频帧数的数值不高代表利用真实输入和音频缓冲区帧数OR的good函数算出的数值x=0,如图3所示,需要的条件是真实输入音频帧数的取值范围为[0,20] 。
S1-2-3:模糊逻辑控制器的模糊化结果使用Mamdani模糊系统的最大最小准则法进行评估,即Max-Min准则、又叫瓦尔德准则或悲观准则,其决策原则是“小中取大”。对于映射到断流的紧急程度上的音频帧数或音频帧数变化率的不同对应结果,选择其中的最小值作为最终的音频帧数或音频帧数变化率的对应结果;对于根据每个音频帧数或音频帧数变化率输出得到的断流的紧急程度,选择其中的最大值作为最终的每个音频帧数或音频帧数变化率对应的断流的紧急程度。
本实施例中具体的模糊控制规则如表1所示:
表1是模糊控制规则表
S1-2-4:根据映射关系预测断流的紧急程度。具体为:
将最终的每个音频帧数或音频帧数变化率对应的断流的紧急程度作为断流的紧急程度的隶属度集合,解模糊过程使用重心法进行结果计算,断流的紧急程度的输出值为断流的紧急程度的隶属度集合的图形的重心横坐标,最终将映射为一个值域为[0,100]的断流的紧急程度值CD。
S1-2-5:完成以上步骤后,本实施例中得到的断流的紧急程度预测模型的三维曲面如图6所示。将该预测模型的三维曲面以文件的形式存储在从设备的磁盘中,并在启动时读取文件,以二维数组的形式构建模型。
进一步地,本实施例中对断流的紧急程度的预测过程进行举例说明。假设音频缓冲区帧数(OR)的模糊集合为={good=0, middle=0.7, bad=0.3},帧数变化率(COR)的模糊集合为/>={ good=0, middle=0.6,poor=0.4, bad=0}。根据表1的模糊控制规则表可得,此时这两个模糊集合匹配的规则为规则6、规则7、规则10和规则11。对于规则6,OR的middle=0.7,COR的middle=0.6,根据最大最小准则法中的最小原则,此时规则6的结果取值为0.6,即poor=Min{0.7, 0.6}=0.6。同理,规则7、规则10、规则11的结果取值分别为0.4、0.3、0.3。计算输出时,由于规则7和规则10的结果等级都为bad,其中规则7的bad=0.4,规则10的bad=0.3,因根据最大最小准则法中的最大原则,此时输出结果的bad=0.4,即bad=Max{=0.4, 0.3}=0.4。以同样的方式计算所有由多个组合形成的规则结果,得到模糊控制器(CD)的模糊结果/>={ good=0, middle=0,poor=0.6, bad=0.4, very_bad=0.3}。推理过程如图8所示。
解模糊过程采用重心法(COG)进行结果计算。断流的紧急程度的输出值为断流的紧急程度CD隶属度集合的图形的重心横坐标,结合最大最小准则法得到的断流的紧急程度值CD的隶属度集合如图9中的斜线部分所示。
假设表示结果图形的函数表示,x表示横坐标,则重心COG的计算公式如下:
(3),
举例中推理得出的CD隶属度集合对应的图形如图9所示,图9中斜线部分图形的重心横坐标即为断流的紧急程度的预测值。
接下来,通过对KCP协议接收端的数据接收流程进行改进,结合断流的紧急程度预测模型所提供的预测信息,实现相应的跳帧与补帧模块,跳帧操作和补帧操作均为在存入音频缓冲区之前的修改。
S2:KCP协议接收音频数据时,根据音频缓冲区的断流的紧急程度对音频数据进行跳帧处理,从而解决协议层缓冲区的队头阻塞问题,加快响应速度。
使用KCP协议接收端的数据接收流程接收音频数据,将KCP在协议层缓冲区中接收数据的行为分为顺序接收、乱序接收、重传接收三种情况;若为顺序接收,不做跳帧处理;当乱序接收发生时,将小于当前数据包的序列号和大于接收窗口当前偏移(即rcv_nxt字段)的序列号保存到乱序队列中;当重传接收发生时,删除乱序队列中和重传数据包具有相同包分片序号(即sn字段)的序列号;
KCP协议接收音频数据时,断流的紧急程度预测模型周期性地输出实时的断流的紧急程度,每次调用ikcp_input( )函数前获取当前的断流的紧急程度,根据实时的断流的紧急程度以不同概率执行跳帧操作。跳帧操作通过对接收窗口当前偏移(即rcv_nxt字段)进行主动加一并删除队列中对应的序列号实现。
断流紧急预测模型的输出是一个值域为[0,100]的数值结果,该数值越高,表明断流程度越紧急。本发明将断流的紧急程度设置为三个等级,分别为低等级(lowLevel)、中等级(midLevel)、高等级(highLevel)。当模型输出结果位于为(50,65]区间时,对应低等级,此时以30%的概率执行跳帧操作;当模型输出结果位于(65,80]区间时,对应中等级,此时以60%的概率执行跳帧操作;当模型输出结果位于(80,100]区间时,对应高等级,此时以90%的概率执行跳帧操作。
S3:储存音频数据到音频缓冲区之前,对跳帧后的音频数据进行补帧处理和淡入淡出处理,从而提高音频播放的流畅度,保证播放质量。补帧处理和淡入淡出处理的过程如图7所示,具体为:
当发生跳帧处理时,应用层接收到的音频PCM(Pulse Code Modulation,脉码编码调制)帧的index序号将不连续,将缺失的音频PCM帧作为补帧序列,在补帧序列插入空白帧,对补帧序列的前一帧执行淡出缓动操作,对补帧序列的下一帧执行淡入缓动操作,处理完成后将所有音频PCM帧放入音频缓冲区;
所述淡出缓动操作的公式为:
(1),
所述淡入缓动操作的公式为:
(2),
其中,表示淡出音频序列中的第i个采样的淡出缓动操作,/>表示淡入音频序列中的第i个采样的淡入缓动操作,i表示淡入或淡出音频序列的第i个采样,N表示淡入或淡出的总采样数;
若音频PCM帧执行淡出缓动操作,则音频PCM帧的第i个值X(i)’为:X(i)’=X(i)×R1(i),X(i)表示音频PCM帧的第i个采样值;若音频PCM帧执行淡入缓动操作,则音频PCM帧的第i个值X(i)’为:X(i)’=X(i)×R2(i)。
本发明还公开了一种流媒体传输的抖动缓冲区控制系统,包括断流评估模块、跳帧模块和补帧模块。断流评估模块用于实时获取流媒体音频数据传输过程中音频缓冲区的音频帧数和音频帧数变化率,根据音频帧数和音频帧数变化率评估音频缓冲区发生断流的紧急程度。跳帧模块用于在KCP协议接收音频数据时,根据音频缓冲区的断流的紧急程度对音频数据进行跳帧处理。补帧模块用于在储存音频数据到音频缓冲区之前,对跳帧后的音频数据进行补帧处理和淡入淡出处理。
本发明还公开了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的流媒体传输的抖动缓冲区控制方法。
本发明还公开了一种流媒体传输的抖动缓冲区控制设备,包括存储器、处理器和存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述的流媒体传输的抖动缓冲区控制方法。
本发明针对的是高负载场景下流媒体音频传输,以音频缓冲区的阻塞程度、即断流的紧急程度来表征因网络干扰导致的KCP协议有序传输过程中的阻塞程度;利用一个断流的紧急程度预测模型周期性观察音频缓冲区帧数与帧数变化率,包括缓冲区当前帧数以及帧数的变化率,采用滑动平均模型进行平滑处理后,作为模糊控制器的输入,最后由模糊控制器输出断流的紧急程度;结合断流的紧急程度改进原KCP协议的音频数据接收逻辑,根据不同断流的紧急程度以不同概率执行跳帧算法,并在后续执行补帧与淡入淡出处理。
由于断流、卡顿的原因是网络干扰导致音频丢帧,且重传时延超出接收端缓冲区的抗抖动能力,因此本发明通过在综合考虑音频帧数和音频帧数变化率预测音频区断流的紧急程度的基础上,根据断流的紧急程度进行相应地跳帧和补帧操作,对KCP协议的接收流程进行了改进,实现了在不影响用户操作的响应速度的前提下提升了高负载纯音频场景下的播放质量,同时有效提升了在高负载场景下音频缓冲区的帧数平均值、占用情况平稳性、断流时长、卡顿次数等播放质量指标。
为了进一步证明本发明的有益效果,本实施例中分别使用传统的KCP协议和本发明方法进行仿真实验,并从抗抖动能力和播放质量两个角度对实验效果进行对比,具体为:
(1)抗抖动能力的评价实验
本轮实验使用一段4s的音频作为输入,并分别在第1s使用iperf3软件设置持续时长为2s、负载为40Mb/s、60Mb/s、80Mb/s的干扰流,通过实时观察改进后的音频缓冲区占用情况以验证抗抖动能力。由于日志中记录了改进后缓冲区跳帧的时机,以及跳帧后缓冲区补充的帧数信息,因此,基于实验结果的日志信息进行反推分析得到改进前的音频缓冲区占用情况。
改进前后音频缓冲区占用结果如图10-图15所示,其中:图10为使用传统KCP协议时干扰负载为40Mb/s时的音频缓冲区占用情况,图11为使用本发明方法时干扰负载为40Mb/s时的音频缓冲区占用情况;图12为使用传统KCP协议时干扰负载为60Mb/s时的音频缓冲区占用情况,图13为使用本发明方法时干扰负载为60Mb/s时的音频缓冲区占用情况;图14为使用传统KCP协议时干扰负载为80Mb/s时的音频缓冲区占用情况,图15为使用本发明方法时干扰负载为80Mb/s时的音频缓冲区占用情况。
从图10-图15的对比中可以看出,使用本发明方法后音频缓冲区的占用情况相比改进前更平稳,且在不同的网络干扰负载下,改进后音频缓冲区帧数一直处于0以上。这是由于本发明的抖动缓冲区控制策略会依据断流的紧急程度概率性地通过主动跳帧的方式将阻塞在KCP协议缓存中的后续音频帧释放出来,从而在缓冲区帧数较低时得到迅速补充。
缓冲区帧数平均值(AVG)以及占用情况平稳性(STD)的结果如表2所示:
表2 抗抖动能力性能验证结果对比表
从表2可以看出,使用本发明改进后,缓冲区帧数平均值在干扰流负载为40Mb/s、60Mb/s、80Mb/s时分别提升了10%、30%、31%,平均提升20%;改进后占用情况平稳性分别提升了35%、29%、23%,平均提升28%。一方面,由于本文主动跳帧的机制使得在缓冲区占用较低时及时补充音频帧,因此改进后帧数平均值高于改进前;另一方面,相比于改进前KCP协议盲目等待丢失帧到来后一次性补充音频帧,本文通过主动预测断流的紧急程度以指导KCP协议跳帧接收,从而实现短时多次数的音频帧补充,因此改进后缓冲区占用情况的抖动程度更低。
(2)播放质量效果的评价实验
本实验中将一段时长为60s的音频作为本次实验的输入音频,通过iperf3软件在每轮实验的第10s、20s、30s、40s、50s分别设置时长为2s、负载为40Mb/s、60Mb/s、80Mb/s的干扰流,实验结束后统计与计算断流时长、卡顿次数、音频质量感知评价(PESQ)和短时客观可懂(STOI)四项指标。实验一共进行10轮,取10轮实验结果的平均值作为最终结果。
不同干扰负载下播放质量的结果如图16-图19所示,其中:图16为分别使用传统KCP协议和本发明后的断流时长的对比图,图17为分别使用传统KCP协议和本发明后的卡顿次数的对比图,图18为分别使用传统KCP协议和本发明后的PESQ对比图,图19为分别使用传统KCP协议和本发明后的STOI的对比图。
从图16-图19可以看出,使用本发明方法改进后的播放质量在不同网络干扰负载下均得到了提升,且网络干扰越大,提升程度越高。其中,断流时长和卡顿次数的改进是由于主动跳帧机制能有效改善原KCP协议中盲目等待顺序帧的行为,且随着网络干扰的加重,顺序帧丢失重传的概率加大,在这种情况下断流的紧急程度升高,跳帧补帧的概率相应增大,因此提升程度更大。音频质量感知评价(PESQ)和短时客观可懂(STOI)两项指标的提升是由于跳帧补帧后结合了淡入淡出算法的处理,且断流时长、卡顿次数也相应在减少,因此音频质量得到改善。
综上仿真实验结果,使用本发明方法后,在高负载场景下音频缓冲区的帧数平均值平均提升了20%,占用情况平稳性平均提升了28%,立体声同步播放的播放质量也得到了提升,从而证明了本发明的有益效果。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,上述实施例仅仅是为清楚地说明所作的举例,并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引申出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
Claims (12)
1.一种流媒体传输的抖动缓冲区控制方法,其特征在于,包括:
实时获取流媒体音频数据传输过程中音频缓冲区的音频帧数和音频帧数变化率,根据音频帧数和音频帧数变化率评估音频缓冲区发生断流的紧急程度;
KCP协议接收音频数据时,根据音频缓冲区的断流的紧急程度对音频数据进行跳帧处理;
储存音频数据到音频缓冲区之前,对跳帧后的音频数据进行补帧处理和淡入淡出处理。
2.根据权利要求1所述的流媒体传输的抖动缓冲区控制方法,其特征在于:所述根据音频帧数和音频帧数变化率评估音频缓冲区发生断流的紧急程度时,使用Mamdani模糊系统预测断流的紧急程度。
3.根据权利要求2所述的流媒体传输的抖动缓冲区控制方法,其特征在于:所述使用Mamdani模糊系统预测断流的紧急程度,具体为:
将音频缓冲区的当前音频帧数和音频帧数变化率作为输入变量输入Mamdani模糊系统,输出变量作为断流的紧急程度;
按音频帧数或音频帧数变化率的由高到低划分多个等级,建立当前音频帧数和音频帧数变化率对应的模糊子集;按断流的紧急程度的由高到低划分多个等级,建立断流的紧急程度对应的模糊子集,断流的紧急程度高表示当前发生断流的可能性高,断流的紧急程度低表示当前发生断流的可能性低;
结合三角形隶属度函数与梯形隶属度函数建立从真实输入到模糊集合的映射,根据映射关系预测断流的紧急程度。
4.根据权利要求3所述的流媒体传输的抖动缓冲区控制方法,其特征在于:所述将音频缓冲区的当前音频帧数和音频帧数变化率作为输入变量输入Mamdani模糊系统时,使用移动平均模型对音频缓冲区的音频帧数和音频帧数变化率进行滤波处理。
5.根据权利要求3所述的流媒体传输的抖动缓冲区控制方法,其特征在于:所述结合三角形隶属度函数与梯形隶属度函数建立从真实输入到模糊集合的映射时,建立的模糊控制规则为:
若当前音频帧数的数值高,此时音频帧数的高低是导致断流的直接影响因素,则将对应的断流的紧急程度的隶属度映射为低;
若当前音频帧数的数值不高,此时音频帧数变化率是导致断流的直接影响因素,若音频帧数变化率为负数,则将对应的断流的紧急程度的隶属度映射为高。
6.根据权利要求5所述的流媒体传输的抖动缓冲区控制方法,其特征在于:使用所述模糊控制规则时,模糊逻辑控制器的模糊化结果使用最大最小准则法进行评估;
对于映射到断流的紧急程度上的音频帧数或音频帧数变化率的不同对应结果,选择其中的最小值作为最终的音频帧数或音频帧数变化率的对应结果;对于根据每个音频帧数或音频帧数变化率输出得到的断流的紧急程度,选择其中的最大值作为最终的每个音频帧数或音频帧数变化率对应的断流的紧急程度。
7.根据权利要求6所述的流媒体传输的抖动缓冲区控制方法,其特征在于:所述根据映射关系预测断流的紧急程度,包括:
将最终的每个音频帧数或音频帧数变化率对应的断流的紧急程度作为断流的紧急程度的隶属度集合,解模糊过程使用重心法进行结果计算,断流的紧急程度的输出值为断流的紧急程度的隶属度集合的图形的重心横坐标。
8.根据权利要求1所述的流媒体传输的抖动缓冲区控制方法,其特征在于:所述跳帧处理,具体为:
使用KCP协议接收端的数据接收流程接收音频数据,将KCP在协议层缓冲区中接收数据的行为分为顺序接收、乱序接收、重传接收;若为顺序接收,不做跳帧处理;当乱序接收发生时,将小于当前数据包的序列号和大于接收窗口当前偏移的序列号保存到乱序队列中;当重传接收发生时,删除乱序队列中和重传数据包具有相同包分片序号的序列号;
KCP协议接收音频数据时,根据实时的断流的紧急程度以不同概率执行跳帧操作。
9.根据权利要求1-8任一项所述的流媒体传输的抖动缓冲区控制方法,其特征在于:所述补帧处理和淡入淡出处理,具体为:
将缺失的音频PCM帧作为补帧序列,在补帧序列插入空白帧,对补帧序列的前一帧执行淡出缓动操作,对补帧序列的下一帧执行淡入缓动操作;
所述淡出缓动操作的公式为:
(1),
所述淡入缓动操作的公式为:
(2),
其中,表示淡出音频序列中的第i个采样的淡出缓动操作,/>表示淡入音频序列中的第i个采样的淡入缓动操作,i表示淡入或淡出音频序列的第i个采样,N表示淡入或淡出的总采样数;
若音频PCM帧执行淡出缓动操作,则音频PCM帧的第i个值X(i)’为:X(i)’=X(i)×R1(i),X(i)表示音频PCM帧的第i个采样值;若音频PCM帧执行淡入缓动操作,则音频PCM帧的第i个值X(i)’为:X(i)’=X(i)×R2(i)。
10.一种流媒体传输的抖动缓冲区控制系统,其特征在于,包括:
断流评估模块,用于实时获取流媒体音频数据传输过程中音频缓冲区的音频帧数和音频帧数变化率,根据音频帧数和音频帧数变化率评估音频缓冲区发生断流的紧急程度;
跳帧模块,用于在KCP协议接收音频数据时,根据音频缓冲区的断流的紧急程度对音频数据进行跳帧处理;
补帧模块,用于在储存音频数据到音频缓冲区之前,对跳帧后的音频数据进行补帧处理和淡入淡出处理。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:该计算机程序被处理器执行时实现如权利要求1-9任一项所述的流媒体传输的抖动缓冲区控制方法。
12.一种流媒体传输的抖动缓冲区控制设备,其特征在于:包括存储器、处理器和存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-9任一项所述的流媒体传输的抖动缓冲区控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311067068.7A CN116805938B (zh) | 2023-08-23 | 2023-08-23 | 流媒体传输的抖动缓冲区控制方法、系统、介质和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311067068.7A CN116805938B (zh) | 2023-08-23 | 2023-08-23 | 流媒体传输的抖动缓冲区控制方法、系统、介质和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116805938A true CN116805938A (zh) | 2023-09-26 |
CN116805938B CN116805938B (zh) | 2023-11-24 |
Family
ID=88079711
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311067068.7A Active CN116805938B (zh) | 2023-08-23 | 2023-08-23 | 流媒体传输的抖动缓冲区控制方法、系统、介质和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116805938B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1501703A (zh) * | 2002-11-12 | 2004-06-02 | 松下电器产业株式会社 | 数据流重放设备和方法、数字广播接收器和相关的计算机程序 |
CN105991477A (zh) * | 2015-02-11 | 2016-10-05 | 腾讯科技(深圳)有限公司 | 一种语音抖动缓冲区的调整方法及装置 |
-
2023
- 2023-08-23 CN CN202311067068.7A patent/CN116805938B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1501703A (zh) * | 2002-11-12 | 2004-06-02 | 松下电器产业株式会社 | 数据流重放设备和方法、数字广播接收器和相关的计算机程序 |
CN105991477A (zh) * | 2015-02-11 | 2016-10-05 | 腾讯科技(深圳)有限公司 | 一种语音抖动缓冲区的调整方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN116805938B (zh) | 2023-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109996087B (zh) | 一种基于有限状态机的面向视频直播的码率自适应方法及装置 | |
US8817645B2 (en) | Methods and systems for estimating network available bandwidth using packet pairs and spatial filtering | |
CN104202261B (zh) | 一种业务请求处理方法及装置 | |
CN111399989B (zh) | 一种面向容器云的任务抢占调度方法及系统 | |
CN113763723B (zh) | 基于强化学习与动态配时的交通信号灯控制系统及方法 | |
TWI739739B (zh) | 傳輸裝置,傳輸方法,及非暫態之電腦可讀取儲存媒體 | |
WO2001005107A1 (en) | Apparatus and method to minimize congestion in an output queuing switch | |
US20050050557A1 (en) | Adaptive multiple concurrent CD/DVD streaming algorithms | |
CN102984077B (zh) | 网络拥塞的控制方法及系统 | |
CN112954385A (zh) | 一种基于控制论和数据驱动的自适应分流决策方法 | |
CN108989880A (zh) | 一种码率自适应切换方法及系统 | |
CN104661088A (zh) | 一种视频源切换方法及装置 | |
WO2021164670A1 (zh) | 视频编码方法、装置、设备及存储介质 | |
US20090213734A1 (en) | Packet transmission device | |
CN111884947B (zh) | 一种在接收端基于信息年龄的数据包管理方法 | |
CN111447471A (zh) | 模型生成方法、播放控制方法、装置、设备及存储介质 | |
CN116805938B (zh) | 流媒体传输的抖动缓冲区控制方法、系统、介质和设备 | |
US10659364B2 (en) | Hybrid AQM controller using RBF for queue utilization approximation as a non-linear system | |
CN110708578A (zh) | 一种视频码率自适应调整方法 | |
US7321555B2 (en) | Multilevel analysis of self-similar network traffic | |
CN108243506B (zh) | Lte系统中的业务调度方法及装置 | |
CN112213956B (zh) | 一种自动驾驶仿真任务调度方法、装置、设备及可读介质 | |
CN106603215B (zh) | 一种基于ZigBee非公平网络信道资源共享方法 | |
CN107247574A (zh) | 一种音频输出控制方法及装置 | |
CN108900804B (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 |