问题标签 [jitter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
865 浏览

emulation - 如何为仿真提供正确的速度?

我想为运行在 600 左右千赫兹的特别慢的 CPU 编写一个模拟器。如果我以天真的方式为 CPU 编写一个仿真器(即一次仿真一条指令而没有其他任何东西),仿真将比 600 千赫兹快得多。

无论主机的速度如何,如何对模拟器进行编程以以正确的速度模拟 CPU?现实世界的模拟器通常使用什么技术来做到这一点?如何避免抖动减慢仿真速度?

0 投票
1 回答
1592 浏览

three.js - 我可以在 THREE.js 中提高矢量精度吗?

在 THREE.js 中,我偶尔会发现自己希望更好地控制矢量精度,尤其是在处理大型浮点数时,例如在太阳系中。有没有办法做到这一点?

在链接的示例中,我正在构建一个简单的太阳系,其中包含行星大小和距离的真实数字。为了模拟轨道,整个系统围绕位于行星位置的枢轴旋转。当相机靠近行星的地平线时,沿边缘的位置抖动很明显。

我可以提高应用于枢轴对象及其子对象的旋转精度,以使这种抖动不会那么明显吗?还是我只需要处理较小范围的数字?

http://jsfiddle.net/Angrypickle/5zs8eLoj/72/

当以下向量使用较小的数字时,抖动似乎减少了。

0 投票
2 回答
3024 浏览

unity3d - Unity3D 断断续续的相机运动

我尝试了许多不同的方法,但从未成功地制作出完美流畅的相机移动。即使在非常简单的场景中,相机跟随也不够好。运动中有尖峰。尖峰不会周期性地发生,而是随机发生的。如果我不知道一些统一制作的游戏(例如 Manuganu)并且有完美的相机跟随,我会认为这是不可能的。

到目前为止我所尝试的: - 在 LateUpdate/FixedUpdate 中更改相机位置。- 使我的目标内插/外推。-根据 Deltatime 移动相机。- 增加物理步骤。- 设置目标帧率 = 60。 - 使用所有质量设置、垂直同步等。 - 许多变化和其他东西......

最好的情况是,随机打嗝......发生在移动设备和编辑器中。Unity 的示例脚本也不能完美流畅地运行。由于这个打嗝问题,我无法继续开发 Sidescroll Runner 游戏。

问题是:有没有我没有提到的方法,网上有没有例子?我做了我能做的一切。

这就是我在 LateUpdate 中更新相机位置的方式。

PS:不存在 FPS 掉线问题。

0 投票
1 回答
2419 浏览

networking - 无丢包的自适应抖动缓冲

我关心的是自适应抖动缓冲器的设计,它随着抖动计算的增加和减少而增加和减少容量。

我认为没有理由对延迟或容量进行任何调整,除非存在缓冲区欠载,然后可能会出现超过容量的传入数据包突发(假设缓冲区容量首先等于缓冲区深度/延迟)。例如,如果我收到 20ms 的数据包,我可能会实现一个 100ms 深的缓冲区,因此可以容纳 5 个数据包。如果数据包之间经过 160 毫秒,那么我可能期望看到多达 8 个数据包几乎同时进入。此时我有两个选择:

  1. 根据溢出规则丢弃三个数据包
  2. 不丢弃任何数据包并增加缓冲区容量和延迟

假设选择 2 并且网络状况改善并且数据包传送再次变得正常(抖动值下降)。怎么办?同样,我认为我有两个选择:

  1. 什么都不做,忍受增加的延迟
  2. 减少延迟(和容量)

使用自适应缓冲区,我认为我应该做出选择 4,但这似乎不正确,因为它要求我在遇到更大的抖动时人为/任意丢弃在选择 2 时专门保存的音频数据包第一名。

在我看来,正确的做法是最初采取选择#1 来维持延迟,同时丢弃由于抖动增加而延迟交付的数据包(如有必要)。

类似的情况可能是,在 160 毫秒间隙后,我没有得到 8 个数据包的突发,而是只得到 5 个(也许刚刚丢失了 3 个数据包)。在这种情况下,增加缓冲区容量并没有什么好处,但确实有助于减少以后发生溢出的可能性。但如果溢出的想法是要避免的(从网络端),那么我会简单地将缓冲区容量设置为大于配置的“深度/延迟”的固定量。换句话说,如果溢出不是由于本地应用程序未能及时从缓冲区中取出数据包引起的,那么溢出只有两个原因:要么发送方撒谎并且以比约定的更快的速率发送数据包(或从未来发送数据包),或者,

显然,“自适应”缓冲区的全部意义在于识别后一种情况,增加缓冲区容量,并避免丢弃任何数据包。但这给我带来了正确的问题:当网络抖动清除时,我如何“适应”回到理想设置,同时仍然执行相同的“不丢弃数据包”理念?

想法?

0 投票
1 回答
2080 浏览

networking - 根据奇怪的网络状态,与抖动和丢包相关的 RTP 视频问题

我是一名开发 SIP/RTP Voip 软件的新手软件开发人员。当然,我使用的是 UDP 协议,这个视频的视频编解码器是 H264。

由于我是这个 Voip 领域的新手,所以我很困惑,并且遭受了很多痛苦的网络问题。

我想请教与网络相关的专家,专门处理关于抖动/丢包的 RTP/RTCP 问题。

在 SIP 成功创建媒体会话后,我遇到了一些 QoS 问题。

我面临的问题就像下面这样。

Wifi 网络(延迟:11.1m/s 下载速度:14.9mbps 上传速度:3.27mbps):
http ://www.youtube.com/watch?v=epm01c6IT5Q&feature=youtu.be

3G网络(延迟:26.4M/s 下载速度:1.94Mbps 上传速度:2.42Mbps): http ://www.youtube.com/watch?v=-iG156_wdQE&feature=youtu.be

如您所见,通过上传和下载低且延迟不稳定的3G,视频质量(包括视频问题颜色为绿色和视频延迟)优于Wifi。

使用比 Wifi 慢的 3G 网络,我总能获得比 Wifi 更好的用户体验。

我没有深入分析 RTP/RTCP 数据包,但我能说的是......

在问题情况下,当应用程序使用 Wi-fi 时,Jitter 异常高,丢包率也明显很高。

总结一下,

  1. 如您所见,当我使用比 Wifi 慢的 3G 网络时,视频质量更好。
  2. 当 Wifi 在那里工作时,抖动和丢包率显然很高,因为我可以在接收端使用wire-shark 分析数据包。
  3. 那天早上,视频问题(视频绿色像素,视频延迟)要严重得多,但随着时间的推移,下午和晚上,问题已经恢复了一点。

据我所知,这与网络带宽和网络拥塞有关。我不确定这是正确的诊断,也需要解决这个问题。很抱歉,我还没有足够的背景信息。

谢谢。

0 投票
0 回答
229 浏览

live555 - Live555 的抖动单元

我正在浏览一些使用 Live555 作为底层网络层的 voip 软件的文档。根据RTSP 的RFC - live555 似乎已经实现了它。但是我不清楚输出。从 Live555 here question 的档案看来,要获得以微秒或毫秒为单位的抖动,我必须将抖动值除以采样频率。但是网络比特率呢?我应该用它来划分抖动值以得出以微/毫秒为单位的抖动吗?

任何帮助表示赞赏

0 投票
1 回答
1057 浏览

r - ggplot2。如何在不同的图表上添加抖动

所以我有这个代码

并有这个图表:

第一的

我还想jitter在箱线图上添加 。但如果我只是添加

我在线条上有抖动geom_line,但在箱线图上没有。

第二

那可能吗?


PS:带有数据的整个代码块Google Drive, .csv, 25 kB

0 投票
1 回答
918 浏览

unity3d - 完美平滑统一运动的最佳设置

我想做的很简单。我有一个相机和场景中的一些物体。我需要移动相机并获得完美的平滑运动(没有滞后、没有抖动、没有尖峰、没有打嗝)。到目前为止我尝试了什么:

以任何更新功能(延迟、固定、预渲染等)移动相机。

为了移动相机,我尝试了两种方法。1) 将相机的 X 位置增加 deltaTime 2) 通过在每次更新中添加一个常数值来增加 X 位置

使用 Application.targetFrameRate

使用 TimeManager 设置,尝试了许多不同的设置。

我阅读了我在实习生上找到的与我的问题相关的任何内容

我最小化了质量设置,一切都在最低,垂直同步关闭

重要提示:我的相机不跟随任何物体,也不涉及物理。许多开发者并没有意识到这个问题,但大多数统一游戏都涉及到它,玩家很不舒服。

我认为问题在于位置更新和屏幕渲染更新没有很好地同步。TimeManager 和 targetFrameRate 可能有解决方案。

我需要有经验的人的帮助,因为这似乎是计算问题。

0 投票
1 回答
3771 浏览

r - ggplot 为分类 xr 指定垂直段的位置

我正在绘制行数据,并为统计计算的拟合值添加了一段可信区间和一个黑点。

我的问题是我想让这些线(和黑点)相对于行数据稍微移动(水平)。

我尝试了 jitter 及其所有可能的组合,结果很糟糕,因为我从不同的列中获取了 y start 和 end 的值……因此,随着 jitter 的出现,线条不再是水平的。

我试图向 x (pb_values) 添加一个固定值,但是它给了我一个错误,因为我的 x 是一个因素。

dat_stack1(我的数据集):

不幸的是,我的声誉太低,无法发布图片!但代码现在可以重现了

知道如何移动这些垂直线吗?

我尝试了什么:

以及所有可能的括号组合。

当然,我在网上查找了类似的图表,但找不到任何-> 通常垂直线是直接从数据点计算出来的,而不是添加到不同列的行数据中!

0 投票
1 回答
47 浏览

swing - Scala JPanel 渲染同步

我正在Scala中做一个模拟程序,我试图通过覆盖paintComponent来在JPanel中渲染模拟:

我让模拟本身在不同的线程上运行:

GetVehicles 返回所有模拟车辆的 Buffer[Vehicle]。

我的问题是渲染中有抖动。我的意思是,有时某些车辆的渲染时间比其他车辆晚。我认为发生这种情况是因为模拟循环在渲染循环获取位置的同时更新了位置,并且存在一些重叠。即,当在时间步长 n 开始渲染时,一半的车辆被渲染,然后发生时间步长 n+1,其余的车辆进一步渲染一个时间步长。首先,我认为这是一个需要通过双缓冲来解决的问题,但由于paintComponent 已经这样做了,我认为情况并非如此。任何想法如何解决这一问题?我尝试简单地渲染 getVehicles.clone 但这并没有帮助,因为对车辆的引用仍然相同。

谢谢!