Hello Vadim,

Thank you for that patch, it's clear you have put a lot of work into
this.  

I have had a first look through the patch. It's a lot to absorb for me,
and I am currently working hard on the fdmdv2 project.  So it will be a
little while before I can work through it all.

Some questions/comments:

Re 1):

a) I am not very familiar or skilled with autotools et, so sorry of this
is an obvious question. Will everyone have to run autogen.sh every time
they check out Codec 2?

b) Do we still edit to Makefile.am to configure the build system?

Re (3) & (4) & (5) there are quite a lot of changes.  I am sensitive to
changes in these areas as a small error could introduce hard to find
errors in the codec output.

c) How have you verified that the changes (in particular to the default
x86 code) have no effect on the output speech quality?  For example are
the output speech samples identical to the output from rev 947 on x86?

Also I am curious - what is your (or your employers) application for
Codec 2?

Thanks,

David

On Mon, 2012-11-19 at 14:41 +0400, Markovtsev Vadim wrote:
> Hello,
> 
>  
> 
> the attached patch for revision 947 (November 8th) has the following
> changes:
> 
>  
> 
> 1)removes the autotools junk (configure, missing, compile, ltmain.sh,
> etc.) from repository as those files are automatically regenerated,
> configure.in was converted into configure.ac. autogen.sh script was
> added to produce the configure script. So, to build codec2 one has to:
> 
>   -checkout sources
> 
>   -run autogen.sh
> 
>   -mkdir build && cd build
> 
>   -../configure [options]
> 
>  
> 
> [options] can be any of –enable-neon (turns on ARM NEON accelerating
> code), --enable-libavcodec-fft (changes the FFT engine to libavcodec)
> and –enable-math-neon (dependent on –enable-neon, substitutes some
> heavy math functions with faster NEON versions). As usual, [options]
> can be checked with ../configure –help
> 
>  
> 
> 1.5)adds the last optional bitrate setting to c2demo.
> 
>  
> 
> 2)default optimization level of libcodec2 becomes O2 instead of O3,
> because from my experience using O3 by default may play tricks on the
> developer (gcc tends to miscompile). So only after checking that
> everything works fine with O2, O3 should be used. I measured the
> performance with O3 vs O2 and found out that there is no difference at
> all. But, I added –funroll-loops –ffast-math which in turn speed up
> codec2 by some 2-5%.
> 
>  
> 
> 3)adds src/fft.c, src/fft.h which are the FFT engine abstraction
> layer. All src and unittest files were updated. Currently, KISS_FFT
> and LIBAVCODEC_FFT are supported (default is KISS). 
> 
>  
> 
> 4)changes all double-precision functions from math.h to
> single-precision. E.g. sin() -> sinf(), atan2() -> atan2f(), etc.
> Since all floating point math in codec2 is done with float-s, there is
> no point in using double-precision math functions. Besides,
> double-precision functions introduce a substantial slowdown on ARM,
> where no hardware sin/cos/etc. exist.
> 
>  
> 
> 5)adds NEON symbol to use in #ifdef-s. ARM NEON improvements include:
> 
>   -src/comp.c for fast COMP* arrays filling with 0
> 
>   -nlp.c nlp() function was revised, memmove() was inserted where
> possible, some parts are using NEON
> 
>   -storing of phi tangent value in defines.h/struct MODEL, it is used
> in FFT_SYNTHESIS part of synthesise() in sine.c to avoid fair
> calculation of sin/cos. Since sin/cos calculation is slow on ARM, it
> does speed up the decoding.
> 
>   -other minor changes with NEON.
> 
>  
> 
> 6)adds math-neon directory with ARM NEON math functions from math-neon
> project. Those functions are fast but not precise, so simple drop-in
> replacement of standard libm results in poor sound quality. I found
> some places where the usage of such low-precision functions do not
> affect the quality much and applied them only there. Perhaps, such
> replacements need more time for careful trial-and-effort, but I do not
> have any J
> 
>  
> 
> Together, these measures give about 25% speedup on Exynos 4. x86
> speeds up, too.
> 
>  
> 
> Regards,
> 
> Vadim Markovtsev,
> 
> Engineer, Algorithmic Lab,
> 
> Moscow R&D center, Samsung Electronics
> 
>  
> 
> 
> ------------------------------------------------------------------------------
> Monitor your physical, virtual and cloud infrastructure from a single
> web console. Get in-depth insight into apps, servers, databases, vmware,
> SAP, cloud infrastructure, etc. Download 30-day Free Trial.
> Pricing starts from $795 for 25 servers or applications!
> http://p.sf.net/sfu/zoho_dev2dev_nov
> _______________________________________________ Freetel-codec2 mailing list 
> [email protected] 
> https://lists.sourceforge.net/lists/listinfo/freetel-codec2



------------------------------------------------------------------------------
Monitor your physical, virtual and cloud infrastructure from a single
web console. Get in-depth insight into apps, servers, databases, vmware,
SAP, cloud infrastructure, etc. Download 30-day Free Trial.
Pricing starts from $795 for 25 servers or applications!
http://p.sf.net/sfu/zoho_dev2dev_nov
_______________________________________________
Freetel-codec2 mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freetel-codec2

Reply via email to