Tag: 加速框架

自动关联倒谱

我试图检测来自麦克风的声音中的一些回声。 回声将是周期性的,并有两种可能的偏移之一。 我听说我需要自动关联信号的倒频谱来检测这些回波的存在。 你能否使用Accelerate框架提供代码,显示如何检测audio数据中的回声?

希尔伯特变换(分析信号)使用苹果的加速框架?

我在使用Apple的Accelerate Framework与C++相当的Hilbert变换的问题。 我已经能够得到vDSP的FFTalgorithm,并且在Paul R的post的帮助下,得到了与Matlab相同的结果。 我已经阅读了这两个: 乔丹这个stackoverflow问题,并阅读了Matlabalgorithm(在“algorithm”子标题下) 。 总结algorithm分三个阶段: 进行input的FFT。 直stream和奈奎斯特之间的零reflection频率和双倍频率。 对修改的正向FFT输出进行逆FFT。 下面是每个阶段的Matlab和C ++的输出。 这些示例使用以下数组: Matlab: m = [1 2 3 4 5 6 7 8]; C ++: float m[] = {1,2,3,4,5,6,7,8}; Matlab示例 阶段1: 36.0000 + 0.0000i -4.0000 + 9.6569i -4.0000 + 4.0000i -4.0000 + 1.6569i -4.0000 + 0.0000i -4.0000 – 1.6569i -4.0000 – 4.0000i -4.0000 […]

在iOS上如何快速转换RGB24到BGR24?

我使用Accelerate.framework的vImageConvert_RGB888toPlanar8和vImageConvert_Planar8toRGB888将RGB24转换为vImageConvert_Planar8toRGB888 ,但是当数据需要转换的时候非常大,比如3M或者4M,那么花费在这个上的时间大约是10ms。 所以有人知道一些足够快的想法吗?我的代码是这样的: – (void)transformRGBToBGR:(const UInt8 *)pict{ rgb.data = (void *)pict; vImage_Error error = vImageConvert_RGB888toPlanar8(&rgb,&red,&green,&blue,kvImageNoFlags); if (error != kvImageNoError) { NSLog(@"vImageConvert_RGB888toARGB8888 error"); } error = vImageConvert_Planar8toRGB888(&blue,&green,&red,&bgr,kvImageNoFlags); if (error != kvImageNoError) { NSLog(@"vImagePermuteChannels_ARGB8888 error"); } free((void *)pict); }

使用加速框架32位与64位快速matrix乘法

我正在尝试使用Accelerate框架在Swift中进行matrix乘法。 使用了vDSP_mmulD。 这在iPhone6,6加iPad Air模拟器(所有64位体系结构)中都能很好地工作,但是在32位体系结构设备中没有任何作用。 它看起来像vDSP_mmulD不被32位体系结构识别,程序不会生成。 显示的错误信息是“使用未parsing的标识符'vDSP_mmulD'”有没有人看到这个错误? 请让我知道你的想法。 我正在使用Xcode 6.1。 谢谢。

使用加速框架的iOS FFT快速检测?

我已经读了一段时间的FFT和音高检测,但是我在拼接时遇到了麻烦。 我已经研究出加速框架可能是最好的方法,我已经阅读了苹果的示例代码,看看如何使用它的FFT。 如果我想要实时运行音高检测,那么FFT的input数据是多less? 我只是从麦克风传入audiostream? 我将如何做到这一点? 另外,在得到FFT输出后,我怎样才能从中得到频率? 我到处读书,找不到任何例子或解释呢? 谢谢你的帮助。

ios基本image processing提取红色通道

直接前进我需要从图像中提取颜色成分,通常在Matlab中,select红色的第一个matrix。 在加速框架领域,哪些文档是基于参考的,我无法find一个简单的方法来做到这一点,而不需要parsinggraphics上下文。 提前致谢!!

使用Accelerate框架对无符号8位整数进行求和

我可以使用Accelerate Framework将无符号的8位整数数组求和,而无需转换为浮点数组。 我目前的做法是: vDSP_vfltu8(intArray, 1, floatArray, 1, size); vDSP_sve(floatArray, 1, &result, size); 但vDSP_vfltu8相当慢。

来自AVAudioPCMBuffer的Spectrogram在Swift中使用Accelerate框架

我试图在Swift中从AVAudioPCMBuffer生成一个光谱图。 我在AVAudioMixerNode上安装一个tap,并用audio缓冲区接收一个callback。 我想将缓冲区中的信号转换为[Float:Float]字典,其中键表示频率,值表示相应频率上的audio大小。 我尝试使用苹果的加速框架,但我得到的结果似乎可疑。 我相信这只是我转换信号的方式。 我看了这篇博客文章以供参考。 这是我有什么: self.audioEngine.mainMixerNode.installTapOnBus(0, bufferSize: 1024, format: nil, block: { buffer, when in let bufferSize: Int = Int(buffer.frameLength) // Set up the transform let log2n = UInt(round(log2(Double(bufferSize)))) let fftSetup = vDSP_create_fftsetup(log2n, Int32(kFFTRadix2)) // Create the complex split value to hold the output of the transform var realp = [Float](count: bufferSize/2, repeatedValue: […]

如何在iOS平台上实现快速图像filter

我正在iOS应用程序中,用户可以应用一组照片filter。 每个filter基本上都是使用特定参数设置的Photoshop动作。 这一行动是: 级别调整 亮度/对比度 色相饱和度 单个和多个叠加 我在我的代码中重复了所有这些操作,使用循环遍历图像中所有像素的算术expression式。 但是,当我在iPhone 4上运行我的应用程序时,每个filter都需要大约3-4秒的时间才能应用,这是用户等待的时间。 图像大小为640 x 640像素,是我视图尺寸的2倍,因为它显示在视网膜显示屏上。 我发现我的主要问题是每次需要调整伽玛时调用pow()C函数的级别修改。 我使用浮动不当然,因为ARMv6和ARMv7双打慢。 试图启用和禁用拇指,并得到相同的结果。 在我的应用程序中最简单的filter的例子是运行相当快(2秒)。 其他filter包括更多的expression式和pow()调用,从而使它们变慢。 https://gist.github.com/1156760 我见过一些使用Accelerate Framework vDSPmatrix转换的解决scheme,以便快速修改图像。 我也看到了OpenGL ES解决scheme。 我不确定他们能否满足我的需求。 但可能这只是把我的变化集合转换成一个好的卷积matrix的问题? 任何意见将是有益的。 谢谢, 安德烈。