This is a non-provisional application claiming the benefit of International Application Number PCT/FR2009/001342 filed Nov. 25, 2009.
The invention relates to a method for processing a digital audio signal as well as to a digital signal processor programmed for applying the method.
The invention will find a particular application for digital signal processors (DSP) having libraries for calculating Fourier Transforms from complex number space to complex number space.
The field of the invention is that of digital audio signal processing.
The calculation of a Fourier Transform of a real signal results in coefficient redundancy. This redundancy is used by certain algorithms for limiting the number of calculations and for carrying out this operation more rapidly. Such algorithms are notably known from documents WO-01/33411, US-2002/0083107 or further US-2006/0140291. Certain of these algorithms require function libraries with which very fast real calculations of Fourier Transforms may be performed while optimizing the calculations according to the hardware capacities of the machines. However, most present DSPs do not have such libraries and only have fast Fourier Transforms (FFTs) for complex numbers, i.e. from complex number space to complex number space.
The object of the present invention is to propose an alternative to the methods of the state of the art with which true computational burden may be reduced for filtering operations by convolution of fast Fourier Transforms.
Another object of the invention is to propose such a method, particularly suitable for DSPs having libraries for FFT calculations from complex number space to complex number space.
Other objects and advantages of the present invention will become apparent during the description which follows, which is only given as an indication and does not have the purpose of limiting it.
The invention first of all relates to a method for processing a digital audio signal, in order to achieve spatialization of sound, said method being applied by a digital signal processor (DSP) having libraries for calculating Fourier Transforms from complex number space to complex number space, for digital processing of P input signals, P being an integer greater than or equal to 2, for filtering said P input signals by the convolution of sampled Fast Fourier Transforms (FFTs), thereby obtaining Q output signals, Q being an integer greater than or equal to two.
According to the invention, the method comprises at least the following steps:
grouping said P input signals by twos, one representing the real portion, the other the imaginary portion of a complex number, thereby defining one or more input vectors,
carrying out the filtering on said input vector(s) by passing through Fourier space, thereby generating one or more complex output vectors, the real portion and the imaginary portion of said or each of said output vectors respectively representing one of said Q output signals.
The invention will be better understood upon reading the following description accompanied by the appended figures wherein:
First of all, we begin by describing filtering by convolution of Fourier Transforms, which is not optimized, according to the state of the art, more particularly the following cases:
a) an input signal towards one output,
b) an input signal towards two outputs,
c) two input signals towards two output signals (spatialization of two sources on a stereo output).
Case a): one input signal→one output signal (digital filtering)
This case is illustrated in the diagram of
Let e(t) be a signal which is desirably to be convolved with a signal a(t).
a(t) is the impulse response to be applied
let the filter be A(f)=FFT[(a(t))]
let E(f)=FFT [e(t)]
We therefore have the resulting signal from the outputs:
s(t)=e(t)a(t)=IFFT[E(f)·A(f)]=IFFT[FFT(e(t))·FFT(a(t))]
Wherein FFT is the Fast Fourier Transform and IFFT is the inverse Fast Fourier Transform.
This filtering may be used on a window of size N. By using standard overlap-add or overlap-save techniques, e(t) may be replaced with e(t)N corresponding to the samples taken on the window of size N and FFT with FFTN which is the Fast Fourier Transform on N samples.
The computing time depends for this type of operation essentially on the number of FFTs or IFFTs to be computed.
By taking the FFT as a time unit, and by assuming as a simplifying assumption that the computing time of an FFT is equivalent to that of an IFFT, the computing time is 3 FFT.
Case b): 1 input signal→two output signals (example: spatialization of a source on a stereo output).
This case is illustrated in the diagram of
Let us define the following filters:
The output signals are therefore s1 and s2 such that:
S1(f)=FFT[s1(t)]=E(f)·A(f)
S2(f)=FFT[s2(t)]=E(f)·B(f)
By taking FFT as a time unit, the computing time is 5 FFT.
Case c): two input signals→two output signals (application example: specialization of two sources on a stereo output)
This case is illustrated in the diagram of
Let e1 be an input signal and e2 an input signal.
Let us define the following filters a, b, d, c, such that:
The output signals are therefore s1 and s2 such that:
S1(t)=IFFT[A(f)·E1(f)]+IFFT[D(f)·E2(f)].
S2(t)=IFFT[B(f)·E1(f)]+IFFT[C(f)·E2(f)].
By taking FFT as a time unit, the computing time is here 10 FFT.
Certain digital signal processors which we call a DSP for “Digital Signal Processor” may have a large amount of memory on board. The filters A(f), B(f), D(f), C(f) may then be stored in phase space (further called Fourier space or frequency space), which takes up twice as much memory on the DSP than if they were stored in time space, i.e. in their form a(t), b(t), d(t), c (t). Thus 4 FFT are saved. The computing time may then be reduced to 6 FFT.
The invention relates to a method for processing a digital audio signal in order to produce spatialization of sound, said method being applied by a digital signal processor (DSP) having libraries for calculating Fourier transforms from complex number space to complex number space, for digital processing of P input signals, P being an integer greater or equal to 2, for the filtering of said P input signals by the convolution of sampled fast Fourier transforms (FFT), thereby obtaining Q output signals, Q being an integer greater than or equal to 2.
According to the invention, the method comprises at least the following steps:
Said or each of said output vectors may be obtained in the following way:
(1) a filtering operator is applied on said input vector, in the case when P=2, thereby giving a result or if necessary, according to another alternative, in the case when P>2, on each of said input vectors, thereby giving several intermediate results,
(2) in the case when P>2, said intermediate results obtained in the previous step are summed in Fourier space.
(3) the result of step (1) or (2) is subject to an output vector.
Various embodiments of the invention will be described subsequently, and more particularly the following cases:
1) two input signals→2 output signals (P=2, Q=2),
2) 2.L input signals→2 output signals (P=2.L, Q=2),
3) 2.L input signals→2.M output signals (P=2.L, Q=2.M),
4) 2.L+1 input signals→2.M+1 output signals (P=2.L+1, Q=2.M+1).
L and M are non-zero natural integers greater than or equal to 1.
The method thus consists of grouping the input signals by twos, one representing the real portion, the other one the imaginary portion of an input vector. Once it is in phase space, the input vector undergoes processing by a basic block referenced as 1.
With the method it is possible to considerably reduce the computing time as compared with non-optimized standard methods. The table below compares in FFT time units, the computing times between the method according to the invention and the non-optimized standard processing, and this for the different embodiments which will be developed subsequently.
For example, for spatialization of 64 input signals on quadraphony (L=32 and M=2), the method allows a reduction in the number of FFTs from 320 to 34.
We shall now develop the various aforementioned embodiments:
Case 1): 2 input signals→2 output signals (P=2, Q=2):
This case is illustrated in the diagram of
The following variables are defined:
e1(t) and e2(t) are said P input signals,
s1(t) and s2(t) are said Q output signals.
a(t), b(t), c(t) and d(t) are filters defined such that:
wherein is the convolution operator.
e0(t) is said input vector such that e0(t)=e1(t)+j·e2(t),
s0(t) is said output vector such that s0(t)=s1(t)+j·s2(t).
Said filtering operator further called “basic block” referenced as 1 in
wherein:
* is the conjugate complex operator such that (x+j·y)*=x−j·y,
˜ is the operator for inverting indices such that {tilde over (E)}(i)=E(N−i) and {tilde over (E)}(0)=E(0) and
E(f)=FFT(e0(t)),
S(f)=FFT(s0(t)),
F(f)=FFT[a(t)+j·b(t)],
H(f)=FFT[c(t)−j·d(t)],
The filtering diagram is illustrated in
are stored in phase space. The computing time is therefore equivalent to 2 FFTs.
Case 2): 2.L input signals→2 output signals (P=2.L, Q=2)
This embodiment is particularly illustrated in
P>2, an even integer such that P=2L, with L an integer, Q=2,
The following variables are defined:
e1(t), . . . , e2k−1(t), e2k(t), . . . , e2L(t), are said P input signals,
s1(t), s2(t) are said Q output signals.
{ak(t), bk(t), ck(t), dk(t)} is the set of filters defined such that kε[1 to L] and:
wherein is the convolution operator.
{e0k(t)}, such that kε[1 to L] and
e0k(t)=e2k−1(t)+j·e2k(t), is the set of input vectors,
s0(t) is said output vector such that
s0(t)=s1(t)+j·s2(t).
Said filtering operator associated with said source vector e0k(t) is such that:
wherein:
By using the basic block referenced as 1, it is possible to save on IFFTs by summing the sk in Fourier space (phase space). Once the summation is achieved, it is possible with a single IFFT to obtain the result s1 and s2 (
Finally with this method, only L FFTs and 1 IFFT are required. The computing time is equivalent to L+1 FFTs.
Case 3): 2L input signals→2.M output signals (P=2.L, Q=2.M):
This case is illustrated in
The following variables are defined:
e1(t), . . . , e2k−1(t), e2k(t), . . . , e2L(t), are said P input signals,
s1(t), . . . , s2m−1(t), s2m(t), . . . , s2M(t), are said Q output signals.
{am,k(t), bm,k(t), cm,k(t), dm,k(t)} is the set of filters defined such that mε[1 to M] and kε[1 to L] and
wherein is the convolution operator,
{e0k(t)}, such that kε[1 to L] and
e0k(t)=e2k−1(t)+j·e2k(t), is the set of input vectors,
{s0m(t)}, such that mε[1 to M] and
s0m(t)=s2m−1(t)+j·s2m(t), is the set of output vectors. Said filtering operator associated with said source vector e0k(t) and with said output vector s0m(t) is such that:
wherein:
* is the conjugate complex operator,
˜ is the operator for inverting indices as defined earlier,
and
This method amounts to applying M times the method applied in case 2, as illustrated in
By using the basic block referenced as 1, this method requires L FFTs for each Ek and M IFFTs for each S0k in the case when the filters are recorded in frequency form. The computing time is therefore equivalent to (L+M)FFTs.
Case 4: 2.L+1 signals→2.M+1 output signals (P=2.L+1, Q=2.M+1).
This case is processed by the method seen in case 3) by adding a zero input signal and a zero output signal. The computing time is therefore equivalent to L+M+2.
The generalization, P input signals, Q output signals, consists of reducing P and Q to the greater or equal even integer by adding a zero input signal and/or a zero output signal, depending on the case. For example, when P is an odd integer, a zero input signal is added so as to apply the method of case 2 or 3 on an even number of input signals. Also, when Q is an odd integer, a zero output signal is added so as to apply the method of case 3 on an even number of output signals.
Of course, the method is applied on sampled and windowed signals. These “overlap-save” or “overlap-add” methods known per se may be applied in order to avoid artefacts on the windowings. Cross-fade methods may be applied in order to avoid the artefacts upon changing a filter.
The invention will also relate to a digital signal processor (DSP) notably having libraries for calculating Fourier transforms from complex number space to complex number space and programmed for applying the method according to the invention.
Naturally, other embodiments might have been envisioned by the person skilled in the art without however departing from the scope of the invention as defined by the claims hereafter.
Number | Date | Country | Kind |
---|---|---|---|
08 06608 | Nov 2008 | FR | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/FR2009/001342 | 11/25/2009 | WO | 00 | 8/8/2011 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2010/061076 | 6/3/2010 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
6704438 | Alexandru | Mar 2004 | B1 |
8351525 | Wang et al. | Jan 2013 | B2 |
20060140291 | Thomas, Jr. | Jun 2006 | A1 |
Number | Date | Country |
---|---|---|
WO 2007110519 | Oct 2007 | WO |
Entry |
---|
J J Lopez et al., PC Based Real-Time Multichannel Convolver for Ambiophonic Reproduction, AES 19TH International Conference on Surround Sound, Schloss Elmau, Germany, Jun. 21-24, 2001, [Online] 2001, URL: http://www.aurora-plugins.com/Public/AES-19/Ambiovolver/Jos%C3%83%C2%A8—Papers/00037.pdf>. |
E O Brigham, The Fast Fourier Transform and its Applications, 1988, Prentice-Hall Inc. |
A Farina et al., Software Implentation of an MLS Analyzer, with Tools for Convolution, Auralization, and Inverse Filming, Pre-Prints of the 103rd AES Convention, New York, Sep. 26-29, 1997, [Online] 1997, URL: http://pcfarina.eng.unipr.it/Public/Papers/097-AES97.PDF>. |
U Meyer-Baese, Digital Signal Processing with Field Programmable Gate Arrays (Third Edition), 2007, pp. 347 and 349, Springer-Verlag. |
W H Press et al., Numerical Recipes in C (Second Edition), 1992, Cambridge University Press, pp. 510-514 and 542-544. |
Y P Que et al., Rendering Models for immersive Voice Communications within Distributed Virtual Environment, IEEE, International Region 10 Conference (Tencon 2005), Melbourne, Australia, Nov. 21-24, 2005, 2005. |
Number | Date | Country | |
---|---|---|---|
20120020443 A1 | Jan 2012 | US |