freeswitch/libs/libg722_1/README

52 lines
3.0 KiB
Plaintext

libg722_1 0.0.1 - The ITU G.722.1 and G.722.1 Annex codecs, also known
as Siren 7 and Siren 14.
----------------------------------------------------------------------
The ITU G.722.1 specification, and its Annexes, define audio codecs targetted
for wideband speech applications. The variants in G.722.1 support 7kHz and
14kHz bandwidth (16k samples/second and 32k samples/second) audio. They also
cover fixed point and floating point realisations of these codecs.
PLEASE NOTE that patented techniques are used in G.722.1, and Polycom is the
owner of the relevant patents. However, Polycom offers royalty free licences
to use G.722.1 to anyone who complies with a few simple rules. Just contact them,
and you should have no problem using G.722.1 without any payment at all (at least
it was very straightforward for the initial user of this code). You should
check for any licence conflicts with other code in your application - for example,
use in a GPL'ed project might be problematic, unless you run the G.722.1 codec as
a separate process, and your application communicates with it through pipes or
sockets.
This implementation of G.722.1 is adapted from the reference source code
provided by Polycom. Polycom has given its consent for this library to be
distributed as source code, either on its own or as part of a larger package
which they have licenced under their royalty free licencing scheme.
This library has been modified to provide a cleaner API than the reference code,
and to permit many instances of the codec to be run in parallel within a single
process. It uses either fixed point or floating point processing, depending on
how the package is configured. No serious optimisation has been performed to
date. This especially affects the fixed point version of the codec, which uses
some slow and clumsy ways to achieve a bit exact result. Optimisation is planned.
The fixed point version of the codec passes the ITU test vectors. The floating
point version produces results which vary a little with the compiler and compiler
optimisation level chosen. This is normal variability for a codec of this type. On
the development machine disabling the "-O2" and "-ffast-math" optimisations
for the floating point version results in an exact match with the ITU test vectors.
By default, ./configure will configure the codec to used floating point
processing for processors with fast floating point hardware, or fixed point
processing for a selection of well know fixed point DSPs and embedded processors.
The command line option "--enable-fixed-point" will force ./configure to enable
fixed point processing.
To test the codec with the ITU test vectors, get the ITU package
T-REC-G.722.1-200505-I!!SOFT-ZST-E.zip and place it in top level directory
for this project. Then run unpack_g722_1_data.sh . This should uppack the
test vectors into test-data/itu/g722_1. Run configure with the "--enable-tests"
option, and build the software. Then run regression_tests.sh in the tests
directory.
Steve Underwood <steveu@coppice.org>