问题标签 [accelerate-framework]
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.
c++ - 指向不完整类型 'const std::complex 的指针的下标使用 c++11 时
我需要在 c++11 和 LLVM 中编译一个静态库。该库使用 Accelerated 框架,其中包括 veclib 框架。
由于我使用 c++11,我有一些错误,例如:
前向声明是在“/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/vecLib.framework/Headers/vForce.h “ 文件。
一切都用标准库编译得很好。
有人遇到过这个问题吗?
ios - iOS Accelerate 低通 FFT 滤波器镜像结果
我正在尝试使用 Accelerate vDSP 框架将现有的基于 FFT 的低通滤波器移植到 iOS。
FFT 似乎在样本的前 1/4 中按预期工作。但在那之后结果似乎是错误的,甚至更奇怪的是镜像(信号的后半部分反映了前半部分的大部分)。
您可以从下面的测试应用程序中看到结果。首先绘制原始采样数据,然后是预期过滤结果的示例(过滤掉高于 15Hz 的信号),最后是我当前 FFT 代码的结果(请注意,预期结果和示例 FFT 结果的比例不同于原始数据):
我的低通滤波器的实际代码如下:
在原始代码中,该库处理非二次幂大小的输入数据;在我的 Accelerate 代码中,我将输入填充到最接近的 2 次幂。在原始样本数据下方的样本测试的情况下,原始样本数据是 1000 个样本,因此它被填充到 1024。我认为这不会影响结果,但为了可能的差异,我将其包括在内。
如果您想尝试解决方案,可以在此处下载生成图表的示例项目(在 FFTTest 文件夹中):
感谢您提供任何见解,我以前没有使用过 FFT,所以我觉得我错过了一些关键的东西。
iphone - (iPhone) 来自 iPod 的实时 FFT
好的,我已经阅读了很多关于 FFT 的东西,但它似乎比构建 tableView 更复杂一些。
我正在寻找一种方法来分析三个范围(低、中、高)中正在播放的音频(来自 iPod 库)。我认为 FFT 正在完成这项工作,但我不确定我是否可以过滤(低通、带通和高通)正在播放的音频并分析峰值。因此,如果有人知道什么是最好的(最好的意思是最快的(CPU)方式,请帮助我。不会有前端,所以我不会在窗口中绘制 FFT(我猜绘图确实吃掉了很多cpu)。
然后我不知道如何分析音频。我发现的所有 FFT 示例代码都在使用麦克风。我不想使用麦克风。我看到了一些获取音频文件并将其导出到未压缩文件的内容,但我需要进行实时分析。我看过 aurioTouch2,但我不明白如何将输入从麦克风更改为 iPod 库。我想,我正在寻找的部分在这里:
但是我对所有这些 AudioUnits 都很陌生,所以我不明白输入的加载位置。然后,上面提到的代码使用了 AVAudioSession。一只小鸟告诉我,这将被弃用,那么有什么替代方案?
所以,基本上:
如何获取当前播放的音频以进行分析?我可以只使用 MPMusicPlayerController 并获取样本吗?还是我必须构建一个完整的 AudioUnit 来播放库?
分析低点、中点和高点的最快方法(CPU)是什么?过滤?快速傅里叶变换?还有什么?
我会在购买音乐的版权方面遇到麻烦吗?因为我试图将播放文件转换为 PCA 样本,有时我会遇到这个错误:
VTM_AViPodReader[7666:307] * 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“* -[AVAssetReader initWithAsset:error:] 无效参数不满足:资产!=((void *)0)”
如果整个 AVAudioSession 的东西将来都不起作用,那么做 FFT 的“新”方法是什么?
ios - 如何编译vImage浮雕效果示例代码?
以下是文档中的代码:
这就是问题所在:内核变量似乎指的是三种不同的类型:
- 形参列表中的 void * kernel
- 一个未定义的 unsigned int uint_8 内核,作为一个新变量,它可能会影响形参
- 调用 vImageConvolve_ARGB8888 时的 const signed int *kernel。
这是实际代码吗?我该如何编译这个函数?
ios - iOS 上的 Accelerate 框架可以用来画圆吗?
我正在尝试编写一个GPUImageFilter
子类,它可能会呈现数千个羽毛圆圈(是的,它是笔触)。我目前的方法包括一个glDrawArrays
绘制一吨正方形的调用,以及一个顶点属性,每个顶点属性通知片段着色器每个的质心在哪里,以便着色器可以绘制一个圆,其 alpha 值向边缘逐渐变细(最远质心)。
这在我的测试设备(iPad Mini)上非常快,除非有(a)超过 1,000 个圆圈或(b)圆圈真的很大。多边形很快,但着色器速度很快。
我想知道将圆圈直接渲染到字节缓冲区是否会更快,并让 GPUImage(使用GPUImageRawDataInput
)尽可能地抓取字节以渲染(通过其他过滤器)到屏幕。
Accelerate 框架是我知道如何在 iOS 上操作字节的最快方法。例如,我发现我可以使用以下方法非常快速地用 vDSP 填充 RGBA 缓冲区:
谁能建议我如何使用vDSP
orvImage
函数集将羽化圆渲染到我的字节缓冲区中?唯一能想到的方法涉及太多for
循环而无法执行。
ios - 使用 Apple 的 Accelerate 框架、FFT、Hann 窗口和重叠
我正在尝试FFT
为一个项目进行设置,但实际上并没有清楚地了解事情......基本上,我正在使用Audio Units
从设备的麦克风获取数据。然后我想FFT
对这些数据做些什么。这是我目前所理解的:我需要为我的数据设置一个循环缓冲区。在每个填充的缓冲区上,我应用 aHann window
然后执行FFT
. 但是,我仍然需要一些关于重叠的帮助。为了获得更精确的结果,我知道我需要特别使用它,因为我正在使用窗口。但是,我在这方面找不到任何东西......这是我到目前为止所拥有的(用于音高检测):
那么我将在哪里以及如何包含重叠?此外,任何代码片段都会更受欢迎。谢谢
更新:
这个项目的最终目标是对音频进行指纹识别,尽可能接近实时,所以我需要尽可能准确的结果——因此是重叠的。为此,我认为我实际上可以将所有部分从反向删除到清理。
ios - vDSP_desamp FIR 滤波器采样历史连续性
我正在尝试使用该vDSP_desamp()
例程对不断捕获的音频信号进行下采样。根据 Accelerate-framework 文档,该例程执行 FIR 滤波和抽取。
但是我有一个冲突,因为 API 没有为循环缓冲区提供输入参数,据我所知,需要保留样本历史记录以执行 FIR 过滤。这使我相信样本历史记录在每次函数调用期间都会被重置,或者可能正在应用与我所知道的算法不同的算法。
不幸的是,该功能是一个完整的黑匣子,没有给出关于如何执行滤波或如何确保信号连续性的提示。
你认为如果我用前一个缓冲区的最后 N 个样本(N 是滤波器抽头的数量)填充每一帧来获得滤波连续性就足够了吗? 我会在调用后丢弃那些填充样本输出vDSP_desamp()
,但我猜在处理填充样本后应该正确初始化样本历史记录行。
欢迎任何关于内脏的提示vDSP_desamp()
。
signal-processing - 加速框架 vDSP、FFT 成帧
我正在尝试使用 Apple 的 vDSP 在录制的音频文件上实现 FFT 计算(假设它是单声道 PCM)。
我在这里进行了研究,发现以下主题非常有用:
例如,我们为 FFT 配置了 frame_size N = 1024 个样本,log2n=10:
代码中的某处:
根据我对 FFT 使用的理解,我现在缺少的是如何获得大型音频文件的完整频谱,让我们假设总共 12800 个样本。
问: 我是否需要将原始数据分成大小为 1024 个样本的帧(~ 12800 / 1024 = 13 帧),然后分别对每个帧执行 FFT,然后以某种方式将 13 个 FFT 结果平均化为结果频谱?如果假设正确,那么如何进行平均?
我真的很感激任何帮助。
objective-c - 在 MATLAB 文件的 Objective-C 中执行 FFT
对于我正在进行的当前项目,我需要在修改 FFT 以读取实时数据之前,使用 Accelerate Framework 在 MATLAB 中生成的正弦波上测试我在 Objective-C 中实现的 FFT。但是,我对如何将 MATLAB 文件加载到我的 Xcode 项目中,然后用我的 FFT 测试文件有点迷失......有人知道从哪里开始吗?
ios - vImageBoxConvolve:内核大小 > 255 时出错
当内核大小> 255 时,还有其他人有任何问题吗?
我得到的错误看起来像颜色通道超载......但只有当内核大小> 255时。文档没有说明内核大小的限制。并且 vImage 没有返回错误。
顺便说一句,我正在使用 vImageBoxConvolve_ARGB8888。它发生在任何图像上,特别是在白色区域。
这是一个输出:
左上角的多色混乱实际上只是一个明亮的背景。
似乎很奇怪,随着这些天发生的所有模糊情况,没有其他人会得到这个。
谢谢。