首页 > 其他分享 >neteq的RELATIVE_ARRIVAL_DELAY,INTER_ARRIVAL_TIME的抖动计算区别

neteq的RELATIVE_ARRIVAL_DELAY,INTER_ARRIVAL_TIME的抖动计算区别

时间:2024-02-05 20:11:18浏览次数:17  
标签:ARRIVAL relative 100ms RELATIVE DELAY 抖动 delay

正文
neteq两种模式: RELATIVE_ARRIVAL_DELAY,INTER_ARRIVAL_TIME,两者计算抖动方式的存在区别

如上图所示:
RELATIVE_ARRIVAL_DELAY(简称relative_delay)的计算相邻两个点的iat_ms,然后从区间头进行累加到当前(数学展开的话,可以发现是每个包和第一个包求传输延时different)
INTER_ARRIVAL_TIME(简称iinter_delay)就只是单纯的计算当前包和前一个到达包的传输时延different
上图是一个拥塞发生的场景,随着拥塞上涨,rtt持续上涨,就不能单纯的用相邻的包间传输延时差去估计抖动了,需要综合整段区间的信息,所以relative_delay在该场景就更为准确,更能反应这段拥塞区间下的实际抖动 (在webrtc中这个区间大小被设置为100个样本点,webrtc opus 20ms为的话,大概就是2s)

而如果单纯的通过包间抖动去计算的话,如上图中的interval_delay, 算出来的抖动较小,取点4为例,relative_delay算出来的是100, 而interval_delay算出来的只有60
为什么点4的抖动100ms被认为更合理呢?
如果是60ms, 在第260ms减去多存的这60ms, 260ms - 60ms = 200ms,在200ms这个点是没有帧可以播的;
但如果是100ms, 260ms-100ms = 160ms,缓存的前三帧恰好能支撑到160ms,所以对于点4认为是100ms的抖动是合理的;总而言之,100ms是相对于区间的第一个点1计算出来的,充分的考虑到了拥塞+乱序带来的抖动;

relative_delay在上下波动的场景表现如何呢?

如上所示,对于抖动的点,relative_delay计算出来的抖动是10 是合理的;

relative_delay在第一个点就已经抖动的场景表现如何呢?

可以看到第一个点发生抖动后,jitter是从第50ms才开始播放的,这额外播空的10ms相当于撑大了jitter,所以在后续播放的时候计算出来的抖动为0,

标签:ARRIVAL,relative,100ms,RELATIVE,DELAY,抖动,delay
From: https://www.cnblogs.com/ishen/p/18008748

相关文章

  • CF1036F Relatively Prime Powers 题解
    题目分析对于一个不合法的数\(x(x\ge2)\),设\(x=\prodp_i^{r_i}\),令\(g=\gcd(r_1,r_2,\ldots,r_k)\),则\(x=\left(\prodp_i^{r_i/g}\right)^g\),所以\(x\)是一个正整数的\(g\)次方。所以可以枚举上文的\(g\),把每一类不合法方案排除掉,就是答案。设\(f(i)\)表示\(2\)......
  • Android RECYCLEVIEWscrollbarDefaultDelayBeforeFade 源码
    AndroidRecyclerViewscrollbarDefaultDelayBeforeFade源码实现简介在Android开发中,RecyclerView是一个常用的控件,用于展示大数据集合的列表或网格。RecyclerView提供了一些自定义的属性和方法,方便开发者根据需求进行定制。其中一个常用的属性是scrollbarDefaultDelayBefo......
  • RelativeSource
    RelativeSourceSelfTemplateParentAscsterTypeRelativeSource和ElementName的区别RelativeSource必须是父级控件,它是沿着可视化树向上查找。ElementName不需要,同一级控件也可以。具体原因学习NameScope就行了。Mode=Self数据源是作为目标依赖属性所属的实例。下面的例......
  • Farewell to Pika, Embracing the Arrival of PikiwiDB in 2024
    今年(2023年) 3 月份于某接手项目时,OpenAtom 基金会 Pika 项目( https://github.com/OpenAtomFoundation/pika )对接人告诉我,OpenAtom 基金会旗下的多个项目都面临了一个共同问题:项目名称被第三方注册为商标。出于合规要求,余三月份重点工作之一就是给项目重新申请一个全新......
  • Farewell to Pika, Embracing the Arrival of PikiwiDB in 2024
    今年(2023年) 3 月份于某接手项目时,OpenAtom 基金会 Pika 项目(https://github.com/OpenAtomFoundation/pika)对接人告诉我,OpenAtom 基金会旗下的多个项目都面临了一个共同问题:项目名称被第三方注册为商标。出于合规要求,余三月份重点工作之一就是给项目重新申请一个全新的......
  • Binding 中 Elementname,Source,RelativeSource 三种绑定的方式
    在WPF应用的开发过程中Binding是一个非常重要的部分。在实际开发过程中Binding的不同种写法达到的效果相同但事实是存在很大区别的。这里将实际中碰到过的问题做下汇总记录和理解。1. source= {binding}和source={bindingRelativeSource={RelativeSourceself},Path=Dat......
  • Rethinking and Improving Relative Position Encoding for Vision Transformer: ViT
    RethinkingandImprovingRelativePositionEncodingforVisionTransformer*Authors:[[KanWu]],[[HouwenPeng]],[[MinghaoChen]],[[JianlongFu]],[[HongyangChao]]初读印象comment::(iRPE)提出了专门用于图像的相对位置编码方法,code:Cream/iRPEatmain·mi......
  • unity Transform 的 Rotate(xAngle: float, yAngle: float, zAngle: float, relativeT
    publicclassdemoword2:MonoBehaviour{//StartiscalledbeforethefirstframeupdatevoidStart(){//transform.Rotate(60,70,80,Space.World);//eulerAngles.z度围绕z轴,eulerAngles.x度围绕x轴,eulerAngles.y度围绕y轴//......
  • vscode自动保存设置为afterDelay后prettier不生效
    "files.autoSave":"afterDelay""editor.formatOnSave":true这两个配置不能一起使用解决方法:1.将"afterDelay"修改为“onFocusChange"2.设置成onFocusChange或者onWindowChange3.关闭重启vscode 参考文件:files.autoSaveandeditor.formatOnSave  ......
  • C#.NET 使用Task.Run和Task.Delay 延时执行任务
    C#.NET使用Task.Run和Task.Delay延时执行任务(代码) 环境:.NET4.5.2.NETWEBMVC+WEBAPI。 示例代码:usingCommonUtils;usingSystem;usingSystem.Threading.Tasks;usingSystem.Web.Http;namespaceWebApiTaskDelay.ApiControllers{publicclassMyCont......