Hello Vadim,
Thank you, you bit exact testing sound great. Thanks for explaining the
autotools issues. I tried "sh autogen.sh" but was told I need Autoconf
version 2.68. U will try to get that installed.
I'm testing the patch against svn 1045 and noticed a few things:
i) Thru hunting down a patch reject I noticed The fdmdv.c modem has been
modified - have you tested you test those changes? Some testing ideas
are in README_fdmdv.txt, for example comparing the demod performance to
the reference Octave simulation. I'm right in the middle of using the
combined modem/codec at present and must be sure no little problems
creep in.
ii) The patch has somehow reverse some recent changes I made to fifo.c,
not sure if I am doing something wrong in applying the patch.
Re using the codec for last resort VOIP yes I am getting interest from
several companies in that area. I think the quality of Codec 2 isn't
quite there yet (e.g. across all samples, speakers, recording
conditions). However there is still plenty of development we can do in
that area, and I anticipate we will hit the lower end of current g. VOIP
codec quality in future. At a much lower bit rate.
Cheers,
David
On Tue, 2012-11-20 at 13:11 +0400, Markovtsev Vadim wrote:
> Hello David,
>
>
>
> I will try to answer your comments.
>
>
>
> > 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?
>
>
>
> Basically, yes, and it is a best practice. You see, shipping
> configure, ltmain.sh, missing, libtool, etc. scripts together with the
> source code can result in confusion and problems if GNU autotools
> installed on the target computer are of a different version. For
> example, your autoconf version is 2.59 and mine is 2.68. 2.68
> generates different libtool script on Samsung Tizen OS, and simply
> building the project with
>
>
>
> ./configure
>
> make
>
>
>
> fails with “cannot find .Tpo” libtool auxiliary files. So
> pre-generated configure is not guaranteed to work on all the Linux
> systems zoo.
>
> Recommended way is to provide an “autogen.sh” (standard name) script
> which runs autotools to create “configure” and installs native scripts
> like libtool, missing or compile into the project directory.
>
>
>
> But, one can append call to “configure” at the end of autogen.sh,
> freeing the developer from executing it by hand. This approach is used
> in many Gstreamer projects, for example. Please note that configuring
> (that is, building) the project in the same source directory is a
> really bad practice. You should never mix source code and object
> files/binaries/libtool.
>
>
>
> > b) Do we still edit to Makefile.am to configure the build system
>
>
>
> Yep. This is almost untouched.
>
> Good-ol’ configure.in is now configure.ac with exactly the same
> syntax. I just modified it a little bit to enable package checking
> with pkg-config, remove autotools warnings and add some options
> (--enable-tizen, etc.) Here is the description of “configure” life
> cycle:
>
>
>
> configure.ac -> (aclocal) -> configure.in -> (autoconf) -> configure
>
>
>
> > 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?
>
>
>
> I used the most reliable verification method – bit exactness. I
> encoded/decoded a 20-minute radio broadcast with c2demo from vanilla
> codec2, then applied my patch to 947 revision, then
>
>
>
> 1) cd codec2/src
>
>
>
> We get to the src directory of codec2
>
>
>
> 2)find -name '*.c' -exec sed -i -e 's/sinf(/sin(/g' -e
> 's/cosf(/cos(/g' -e 's/tanf(/tan(/g' -e 's/atan2f(/atan2(/g' -e
> 's/powf(/pow(/g' -e 's/log10f(/log10(/g' -e 's/floorf(/floor(/g' -e
> 's/ceilf(/ceil(/g' -e 's/fabsf(/fabs(/g' -e 's/sqrtf(/sqrt(/g' -e
> 's/fmodf(/fmod(/g' {} \;
>
>
>
> This finds all *.c source files and reverts *f math functions to
> double-precision variants, e.g. sinf() becomes sin() again.
>
>
>
> 3)sed -i 's/-ffast-math//' Makefile.am
>
>
>
> This cancels “fast math” gcc option.
>
>
>
> 4)phase.c, near line 96, uncomment
>
>
>
> phi_ = -atan2(Pw[b].imag,Pw[b].real);
>
> H[m].real = Am*cos(phi_);
>
> H[m].imag = Am*sin(phi_);
>
>
>
> and comment the alternative calculations below.
>
>
>
> Now, after the complete codec2 rebuild we repeat c2demo
> encoding/decoding. The second file is bit to bit identical to the
> first one (checked with cmp [file_before] [file_after]).
>
>
>
> So the only changes which affect the sound are 2), 3) and 4). 2) and
> 3) are obvious, while 4) just works faster. Personally, with these
> changes off, I do not hear any difference.
>
>
>
> > Also I am curious - what is your (or your employers) application for
>
> > Codec 2?
>
>
>
> We are investigating the possibility of using codec2 as the last
> resort VoIP audio codec when the channel bandwidth becomes extremely
> narrow. In some application.
>
>
>
>
>
> Regards,
>
> Vadim Markovtsev,
>
> Engineer, Algorithmic Lab,
>
> Moscow R&D center, Samsung Electronics
>
>
>
> > 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
>
>
> ------------------------------------------------------------------------------
> 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