当前位置: 首页 > news >正文

女生做网站前端设计师雄安移动网上营业厅

女生做网站前端设计师,雄安移动网上营业厅,wordpress 培训插件,网站搭建代码webrtc QOS笔记一 Neteq直方图算法浅读 文章目录webrtc QOS笔记一 Neteq直方图算法浅读Histogram Algorithm获取目标延迟遗忘因子曲线Histogram Algorithm DelayManager::Update()->Histogram::Add() 会根据计算的iat_packet(inter arrival times, 实际包间间隔 / 打包时长…

webrtc QOS笔记一 Neteq直方图算法浅读

文章目录

    • webrtc QOS笔记一 Neteq直方图算法浅读
      • Histogram Algorithm
      • 获取目标延迟
      • 遗忘因子曲线

Histogram Algorithm

DelayManager::Update()->Histogram::Add() 会根据计算的iat_packet(inter arrival times, =实际包间间隔 / 打包时长),将该iat_packet插入IATVector直方图对应数组下标内。并更新该直方图的数据下标下概率参数。[M88 SRC]
在这里插入图片描述

一共有四步操作:

1、用遗忘因子,对历史数据的出现概率进行遗忘, 并统计概率合
buckets_[i]=buckets_[i]∗forget_factorbuckets\_[i] = buckets\_[i] * forget\_factorbuckets_[i]=buckets_[i]forget_factor

vector_sum=∑0buckets.size()buckets_[i]∗forget_factorvector\_sum=\sum_{0}^{buckets.size()} buckets\_[i] * forget\_factorvector_sum=0buckets.size()buckets_[i]forget_factor

2、增大本次计算到的IAT的概率值。

buckets_[value]=buckets_[value]+(1−forgetfactor_)buckets\_[value]=buckets\_[value]+(1−forget_factor\_)buckets_[value]=buckets_[value]+(1forgetfactor_)

vector_sum=vector_sum+(1−forget_factor_)vector\_sum = vector\_sum + (1-forget\_factor\_)vector_sum=vector_sum+(1forget_factor_)

  • 例:
假如历史bucket 数据为:
buckets_ = {0,0,1,0}遗忘因子为 0.9:
forget_factor = 0.9新来的抖动延迟数据为66ms, 桶间为20ms一个单位, 那插入位置为 66 / 20 = 3,则更新后buckets = {0,0,0.9,0.1}假若使用%95分位的值作为目标延迟, 则更新后的目标延迟为 60ms.

3、调整本次计算到的IAT的概率,使整个IAT的概率分布之和近似为1。调整方式为假设当前概率分布之和为tempSum,则:

vectorsum=1−vectorsumvector_sum=1−vector_sumvectorsum=1vectorsum

buckets[n]={buckets_[n]−Min(∣vector_sum∣,buckets_[n]/16)if(vectorsum>0)buckets_[n]+Min(∣vector_sum∣,buckets_[n]/16)if(vectorsum>0)buckets_[n]= \begin{cases} buckets\_[n]−Min(∣vector\_sum∣,buckets\_[n]/16) if(vector_sum>0) \\ buckets\_[n]+Min(∣vector\_sum∣,buckets\_[n]/16) if(vector_sum>0) \\ \end{cases} buckets[n]={buckets_[n]Min(vector_sum,buckets_[n]/16)if(vectorsum>0)buckets_[n]+Min(vector_sum,buckets_[n]/16)if(vectorsum>0)

4、更新forget_factor_, 使遗忘因子forget_factor_逼近base_forget_factor_

a.使用start_forget_weight_更新(默认初始值start_forget_weight_ = 2,base_forget_factor_=0.9993)

add_count_++add\_count\_++add_count_++
forget_factor_=1−(start_forget_weight_/(add_count_+1))forget\_factor\_=1−(start\_forget\_weight\_/(add\_count\_+1))forget_factor_=1(start_forget_weight_/(add_count_+1))
forget_factor_=Max(0,Min(base_forget_factor_,forget_factor))forget\_factor\_=Max(0,Min(base\_forget\_factor\_,forget\_factor))forget_factor_=Max(0,Min(base_forget_factor_,forget_factor))

b. 其中的3是Q30的值,没有多大 = 0.000091552734375
forget_factor_=forgetfactor_+(base_forget_factor_−forget_factor_+3)/4forget\_factor\_=forget_factor\_+(base\_forget\_factor\_−forget\_factor\_+3)/4forget_factor_=forgetfactor_+(base_forget_factor_forget_factor_+3)/4

获取目标延迟

依据probability获取此百分位的值作为目标延迟(初始值0.97)

∑0nbuckets_[n]>probability\sum_{0}^{n} buckets\_[n] > probability0nbuckets_[n]>probability

int Histogram::Quantile(int probability) {// Find the bucket for which the probability of observing an// inter-arrival time larger than or equal to |index| is larger than or// equal to |probability|. The sought probability is estimated using// the histogram as the reverse cumulant PDF, i.e., the sum of elements from// the end up until |index|. Now, since the sum of all elements is 1// (in Q30) by definition, and since the solution is often a low value for// |iat_index|, it is more efficient to start with |sum| = 1 and subtract// elements from the start of the histogram.int inverse_probability = (1 << 30) - probability;size_t index = 0;        // Start from the beginning of |buckets_|.int sum = 1 << 30;       // Assign to 1 in Q30.sum -= buckets_[index];while ((sum > inverse_probability) && (index < buckets_.size() - 1)) {// Subtract the probabilities one by one until the sum is no longer greater// than |inverse_probability|.++index;sum -= buckets_[index];}return static_cast<int>(index);
}

遗忘因子曲线

测试曲线,调整遗忘因子提高抖动估计灵敏度:

#include <iostream>
#include <cstdint>
#include <vector>uint32_t packet_loss_rate_ = 0;int main()
{std::vector<int> input;std::vector<float> buckets;float forget_factor = 0.9993;float val = 0;for (size_t k = 0; k < 1000; k ++) {val = val * forget_factor + (1-forget_factor);buckets.push_back(val);}for (int i = 0; i < 1000; ++i) {std::cout << buckets[i]<< " ";}return 0;
}

在这里插入图片描述

http://www.yayakq.cn/news/104399/

相关文章:

  • 自助免费网站建设平台深圳百度网站优化
  • 做建材交易网站的上市公司织梦网站定制
  • 上传wordpress网站阿里云手机网站建设
  • 网站跟软件有什么区别是什么wordpress 布局推荐
  • 推荐专业做网站公司怎么找上海网站建
  • 南京网站推广营销公司哪家好网站背景图片优化
  • 化妆品网站设计方案金昌北京网站建设
  • 英文网站群建设松江老城做网站
  • 网站个人备案转企业备案com表示商业网站
  • 犀牛云做网站一年多少钱谷歌play商店
  • aspcms做双语网站修改配置拆车件网上商城
  • 锦州宝地建设集团有限公司网站诺德中心做网站
  • 如今做哪些网站能致富广州做网络服装的网站建设
  • 安全网站建设局网站建设合同
  • 宿迁宿城区屠园乡网站建设品牌网站建设熊掌号
  • 千瓜数据seo营销推广平台
  • 做网站着用什么电脑昆明网站设计都需要设计什么
  • 海外 推广网站阿里云服务器免费体验
  • 佛山做企业网站公司康体设备网站建设
  • 如何有效的推广网站一个好网站设计
  • 建公司网站建设明细报价表wordpress放哪
  • 2 如何写一份详细的网站开发方案沈阳新民网站建设
  • 含山县城市建设有限公司网站中国银行建设网站首页
  • 外贸网站 建站基于个性化推荐的电商网站设计与实现
  • 安徽池州网站制作服务质量好的外贸营销系统
  • 建设网站行业云北京国互网网站建设价格
  • 在线制作视频网站2022年西安封城通知
  • 高端网站建设磐石网络好百度导航下载2020新版语音
  • 网站开发技术选择北京企业官网网站建设
  • 网站外链作用qq群推广软件