De-interleave und interleave buffer mit vDSP_ctoz () und vDSP_ztoz ()?

8

Wie entschalte ich das float *newAudio in float *channel1 und float* channel2 und verschachtle es wieder in newAudio ?

%Vor%

Wie würden diese beiden Codezeilen aussehen? Ich verstehe die Syntax von ctoz / ztoz nicht.

    
bartolsthoorn 28.04.2012, 08:42
quelle

3 Antworten

11

Was ich in Novocaines Zubehörklassen, wie dem Ringbuffer, zum Deinterleaving mache:

%Vor%

für Interleaving:

%Vor%

Der allgemeinere Weg, Dinge zu tun, ist ein Array von Arrays, wie

%Vor%

was ich intern viel in den RingBuffer Zubehörklassen für Novocaine verwende. Ich habe die Geschwindigkeit von vDSP_vsadd gegen memcpy gemessen, und (sehr, sehr überraschend) gibt es keine Geschwindigkeitsdifferenz.

Natürlich können Sie immer nur einen Ringpuffer verwenden und sich den Ärger ersparen

%Vor%

Ich hoffe, das hilft.

    
alexbw 29.04.2012, 16:58
quelle
8

Hier ist ein Beispiel:

%Vor%     
sbooth 28.04.2012 12:31
quelle
3

sbooth antwortet, wie man mit vDSP_ctoz entschachtelt. Hier ist die komplementäre Operation, nämlich Interleaving mit vDSP_ztoc.

%Vor%     
Gerry Beauregard 26.08.2013 13:25
quelle