标签: accelerate-framework

加速框架VimageConversion库值Planar8,PlanarF,ARGB8888,ARGBFFFF,RGBA8888和RGBAFFFF - ?

全部,

我是图像处理的新手,我需要使用iphone4进行一些图像处理.仅支持Iphone 4 kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange/kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange/kCVPixelFormatType_420YpCbCr8BiPlanarfullRange .

但我需要YUV420,rgb24和其他一些.i计划使用Accelerate Framework VimageConversion库进行转换.但是框架使用Planar8, PlanarF, ARGB8888, ARGBFFFF, RGBA8888, and RGBAFFFFFormat 完成了所有处理 .如何将此格式与Iphone支持的格式相关联.我无法对Planar8, PlanarF, ARGB8888, ARGBFFFF, RGBA8888, and RGBAFFFF格式进行任何解释 .

任何人都可以解释一下Planar8,PlanarF,ARGB8888,ARGBFFFF,RGBA8888和RGBAFFFF - ?

iphone image-processing accelerate-framework

4
推荐指数
1
解决办法
1947
查看次数

二阶IIR滤波器,butterworth带通(EQ)的系数?

重要更新:我已经找到答案并将它们放在这个简单的开源库中:http://bartolsthoorn.github.com/NVDSP/检查一下,如果遇到问题,它可能会节省很多时间在IOS中使用音频过滤器!

^

我创建了一个(实时)音频缓冲区(float *data),它可以容纳几个sin(theta)不同频率的波.

下面的代码显示了我是如何创建缓冲区的,我试图做一个带通滤波器,但它只是将信号转换为噪声/闪烁:

    // Multiple signal generator
__block float *phases = nil;
[audioManager setOutputBlock:^(float *data, UInt32 numFrames, UInt32 numChannels)
{
    float samplingRate = audioManager.samplingRate;
    NSUInteger activeSignalCount = [tones count];

    // Initialize phases
    if (phases == nil) {
        phases = new float[10];
        for(int z = 0; z <= 10; z++) {
            phases[z] = 0.0;
        }
    }

    // Multiple signals
    NSEnumerator * enumerator = [tones objectEnumerator];
    id frequency;
    UInt32 c = …
Run Code Online (Sandbox Code Playgroud)

audio signal-processing objective-c core-audio accelerate-framework

4
推荐指数
1
解决办法
3836
查看次数

使用vDSP复制数组内容

我正在使用加速框架来优化我的DSP代码.有几次我想将一个数组(或数组的一部分)的内容复制到另一个数组.

我似乎无法找到合适的函数来执行此操作,因此我一直在做一些愚蠢的事情,即将数组乘以1(或加0)并以此方式获取副本.

float one = 1;

float sourceArray = new float[arrayLength];
/////....sourceArray is filled up with data

float destArray = new float[arrayLength];

vDSP_vsmul(sourceArray, 1, &one, destArray, 1, arrayLength);
Run Code Online (Sandbox Code Playgroud)

必须有一个更好的方法来做到这一点!?谢谢!

ios accelerate-framework

4
推荐指数
2
解决办法
1859
查看次数

使用vImageHistogramCalculation计算图像的直方图

我正在尝试使用vImage来计算图像的直方图vImageHistogramCalculation_ARGBFFFF,但我得到了一个vImage_Error类型kvImageNullPointerArgument(错误代码为-21772).

这是我的代码:

- (void)histogramForImage:(UIImage *)image {

    //setup inBuffer
    vImage_Buffer inBuffer;

    //Get CGImage from UIImage
    CGImageRef img = image.CGImage;

    //create vImage_Buffer with data from CGImageRef
    CGDataProviderRef inProvider = CGImageGetDataProvider(img);
    CFDataRef inBitmapData = CGDataProviderCopyData(inProvider);

    //The next three lines set up the inBuffer object
    inBuffer.width = CGImageGetWidth(img);
    inBuffer.height = CGImageGetHeight(img);
    inBuffer.rowBytes = CGImageGetBytesPerRow(img);

    //This sets the pointer to the data for the inBuffer object
    inBuffer.data = (void*)CFDataGetBytePtr(inBitmapData);

    //Prepare the parameters to pass to vImageHistogramCalculation_ARGBFFFF
    vImagePixelCount *histogram[4] = …
Run Code Online (Sandbox Code Playgroud)

iphone macos ios accelerate-framework vimage

4
推荐指数
1
解决办法
1187
查看次数

在Swift 3中绘制CGImage的直方图

vImageHistogramCalculation_ARGB8888尝试将库从Swift 2转换为Swift 3版本时,我遇到了方法问题.问题是该方法仅接受"histogram"参数

UnsafeMutablePointer<UnsafeMutablePointer<T>?> 
Run Code Online (Sandbox Code Playgroud)

但是Swift 3的构造

let histogram = UnsafeMutablePointer<UnsafeMutablePointer<vImagePixelCount>>(mutating: rgba)  
Run Code Online (Sandbox Code Playgroud)

返回unwrapped值,所以我无法将其强制转换为正确的类型.

编译器错误是:

:无法使用类型'(mutating:[UnsafeMutablePointer])'的参数列表调用类型'UnsafeMutablePointer?>'的初始值设定项

你有什么想法吗?我试着添加"?" 到直方图常数,但后来我收到错误:

'init'不可用:使用'withMemoryRebound(to:capacity:_)'临时查看内存作为另一种布局兼容类型.

有一些编译器建议,但我不知道如何使用它.

histogram cgimage ios accelerate-framework swift

4
推荐指数
1
解决办法
992
查看次数

使用vDSP_deq22(双二阶IIR滤波器)进行滤波后的噪声/失真

我正在研究Novocaine的DSP类(obj-c ++),但我的滤波器似乎只会对信号造成噪声/失真.

我在这里发布了我的完整代码和系数:https://gist.github.com/2702844 但它基本上归结为:

// Deinterleaving...
// DSP'ing one channel:
NVDSP *handleDSP = [[NVDSP alloc] init];
[handleDSP setSamplingRate:audioManager.samplingRate];
float cornerFrequency = 6000.0f;
float Q = 0.5f;
[handleDSP setHPF:cornerFrequency Q:Q];
[handleDSP applyFilter:audioData length:numFrames];

// DSP other channel in the same way
// Interleaving and sending to audio output (Novocaine block)
Run Code Online (Sandbox Code Playgroud)

请参阅要点以获取完整的代码/上下文.

系数:

2012-05-15 17:54:18.858 nvdsp[700:16703] b0: 0.472029
2012-05-15 17:54:18.859 nvdsp[700:16703] b1: -0.944059
2012-05-15 17:54:18.860 nvdsp[700:16703] b2: 0.472029
2012-05-15 17:54:18.861 nvdsp[700:16703] a1: -0.748175
2012-05-15 17:54:18.861 nvdsp[700:16703] a2: …
Run Code Online (Sandbox Code Playgroud)

c++ signal-processing objective-c accelerate-framework vdsp

3
推荐指数
1
解决办法
1930
查看次数

在OSX Yosemite上使用Accelerate Framework进行编译

我最近升级到优胜美地,但似乎在编译使用通过自制软件获得的gcc-4.9的Accelerate Framework的C++程序时出现问题.我想知道是否有人有任何解决方案吗?这在以前的OSX版本中不是问题.

例如,考虑编译以下代码.

#include<iostream>
#include<Accelerate/Accelerate.h>
using namespace std;
{
return 0;
}
Run Code Online (Sandbox Code Playgroud)

当使用clang进行编译时,每个东西都可以工作(Apple LLVM 6.0版(clang-600.0.54)):

clang++ -flax-vector-conversions -o main.out main.cpp -framework Accelerate
Run Code Online (Sandbox Code Playgroud)

但是用g ++ - 4.9编译时(g ++ - 4.9(Homebrew gcc49 4.9.1)4.9.1):

g++-4.9 -flax-vector-conversions -o main.out main.cpp -framework Accelerate
Run Code Online (Sandbox Code Playgroud)

我得到以下编译错误:

    > g++-4.9 -flax-vector-conversions -o main.out main.cpp -framework Accelerate
    In file included from /usr/include/os/object.h:27:0,
                     from /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/Headers/LinearAlgebra/base.h:6,
                     from /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/Headers/LinearAlgebra/LinearAlgebra.h:10,
                     from /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/Headers/vecLib.h:65,
                     from /System/Library/Frameworks/Accelerate.framework/Headers/Accelerate.h:20,
                     from main.cpp:2:
    /usr/include/os/base.h:113:20: error: missing binary operator before token "("
     #if __has_extension(attribute_overloadable)
                        ^
    /usr/include/os/base.h:119:54: error: missing binary operator before token …
Run Code Online (Sandbox Code Playgroud)

c++ homebrew accelerate-framework osx-yosemite

3
推荐指数
1
解决办法
4919
查看次数

在Swift中使用Accelerate框架

来自苹果文档

根据文件

    func vvlog10f(_ _: UnsafeMutablePointer<Float>,
                _ _: UnsafePointer<Float>,
                _ _: UnsafePointer<Int32>)
 /* y */ /* x */ /* n */
Run Code Online (Sandbox Code Playgroud)

那么我做错了什么?

这是我的代码

import Accelerate

var input:[Float] = [0.124,0.5,0.0056]
var output:[Float] = []
var i:Int32 = Int32(input.count)
vvlog10f(&output,&input,&i)

println("output is \(output)")
Run Code Online (Sandbox Code Playgroud)

输出是[]

ios accelerate-framework swift

3
推荐指数
1
解决办法
2686
查看次数

如何快速使用苹果的 Accelerate 框架来计算真实信号的 FFT?

我应该如何使用 Accelerate 框架在 iOS 上的 Swift 中计算真实信号的 FFT?

网络上的可用示例

Apple 的 Accelerate 框架似乎提供了有效计算信号 FFT 的功能。

不幸的是,Internet 上可用的大多数示例(如Swift-FFT-ExampleTempiFFT )在进行广泛测试并调用 Objective C API 时会崩溃。

苹果文档回答了许多问题,但也导致了一些人(这是一块强制?为什么我需要这个调用转换?)。

Stack Overflow 上的线程

很少有线程通过具体示例来解决 FFT 的各个方面。值得注意的是,在 Swift 中使用 Accelerate 的 FFT,Swift中的DFT 结果与 MATLABFFT 计算错误 - Swift 的结果不同。他们都没有直接解决“从 0 开始做这件事的正确方法是什么”的问题?

我花了一天时间才弄清楚如何正确地做到这一点,所以我希望这个帖子可以清楚地解释您应该如何使用 Apple 的 FFT,展示要避免的陷阱,并帮助开发人员节省宝贵的时间时间。

fft ios accelerate-framework vdsp swift

3
推荐指数
1
解决办法
1812
查看次数

Accelerate 框架在 Mac M1 上仅使用一个内核

下面的 C 程序 (dgesv_ex.c)

#include <stdlib.h>
#include <stdio.h>

/* DGESV prototype */
extern void dgesv( int* n, int* nrhs, double* a, int* lda, int* ipiv,
                double* b, int* ldb, int* info );

/* Main program */
int main() {
        /* Locals */
        int n = 10000, info;
        /* Local arrays */
        /* Initialization */
        double *a = malloc(n*n*sizeof(double));
        double *b = malloc(n*n*sizeof(double));
        int *ipiv = malloc(n*sizeof(int));
        for (int i = 0; i < n*n; i++ )
        {
                a[i] = ((double) …
Run Code Online (Sandbox Code Playgroud)

c macos lapack accelerate-framework apple-m1

3
推荐指数
2
解决办法
186
查看次数