iOS 是否内置了时间序列平滑,比如内核或高斯? (也许在 CoreImage 或 CoreAudio 中?)
Does iOS have time-series smoothing, say kernel or gaussian, built in? (Perhaps in CoreImage or CoreAudio?)
假设你有一个 1000 CGFloat
s
的数组
...
at 13.0: 1000.001
at 14.0: 1152.934
at 15.0: 1000.909
at 16.0: 1200.666
...
而且您需要一个任意值的值
平滑(13.40)== 大约 1085,比方说
所以,我们正在谈论类似 内核平滑 - 一个 window 函数。比如
- 高斯核平滑器
- 内核平均更平滑
- 局部线性回归更平滑
优秀文章:https://en.wikipedia.org/wiki/Kernel_smoother
iOS GPU 框架之一是否内置了类似的东西?
计算机经常做这种事情是很常见的,尤其是在图形子系统中。
如何在 GPU 上 iOS 中执行此操作...也许在核心音频或 Compute
堆栈中? (当然在Swift中手工操作很容易)
iOS 设备上的 Accelerate Framework 中有 vDSP 函数,其中包括函数,例如 vDSP_biquad() 和 vDSP_deq22()(以及 Swift 等价物),可用于构建 IIR 低通滤波器。
您还可以使用 vDSP 函数进行卷积,例如 vDSP_conv() 和 Swift 等效的 convolve(),以及它们的 2D 版本,用于卷积 FIR 滤波。
低通滤波器可用于非常高质量的平滑,只要要平滑的数据比低通滤波器的脉冲响应的重要部分长得多,或者是整数周期的。
Apple 声称通过使用 arm64 上可用的 VLIW 功能单元,他们的 vDSP 功能得到了高度加速 CPU。
对于任何在这里谷歌搜索的人来说,一个接近解决方案的问题 - 基本上 "get smooth values between array points" - 就是使用苹果自己的系统,苹果在 [=34] =](每个动画、淡入淡出等)。
幸运的是,这里有一篇来自 Apple 的优秀初学者文章:
有点相关,总是有机会提醒真正令人惊叹的 "best friend of every iOS/droid engineer":
https://cubic-bezier.com/#.17,.67,.81,1.2
使用方法:
假设你有一个 1000 CGFloat
s
...
at 13.0: 1000.001
at 14.0: 1152.934
at 15.0: 1000.909
at 16.0: 1200.666
...
而且您需要一个任意值的值
平滑(13.40)== 大约 1085,比方说
所以,我们正在谈论类似 内核平滑 - 一个 window 函数。比如
- 高斯核平滑器
- 内核平均更平滑
- 局部线性回归更平滑
优秀文章:https://en.wikipedia.org/wiki/Kernel_smoother
iOS GPU 框架之一是否内置了类似的东西?
计算机经常做这种事情是很常见的,尤其是在图形子系统中。
如何在 GPU 上 iOS 中执行此操作...也许在核心音频或 Compute
堆栈中? (当然在Swift中手工操作很容易)
iOS 设备上的 Accelerate Framework 中有 vDSP 函数,其中包括函数,例如 vDSP_biquad() 和 vDSP_deq22()(以及 Swift 等价物),可用于构建 IIR 低通滤波器。
您还可以使用 vDSP 函数进行卷积,例如 vDSP_conv() 和 Swift 等效的 convolve(),以及它们的 2D 版本,用于卷积 FIR 滤波。
低通滤波器可用于非常高质量的平滑,只要要平滑的数据比低通滤波器的脉冲响应的重要部分长得多,或者是整数周期的。
Apple 声称通过使用 arm64 上可用的 VLIW 功能单元,他们的 vDSP 功能得到了高度加速 CPU。
对于任何在这里谷歌搜索的人来说,一个接近解决方案的问题 - 基本上 "get smooth values between array points" - 就是使用苹果自己的系统,苹果在 [=34] =](每个动画、淡入淡出等)。
幸运的是,这里有一篇来自 Apple 的优秀初学者文章:
有点相关,总是有机会提醒真正令人惊叹的 "best friend of every iOS/droid engineer":
https://cubic-bezier.com/#.17,.67,.81,1.2
使用方法: