📄 readme.txt
字号:
/* G.729 with ANNEX E Version 1.1 Last modified: February 1998 */
TITLE
-----
Explanation letter for the G.729 annex E software package
( Fixed-point description of Recommendation G.729 with ANNEX E)
(Recommendation G.729 + HIGHER BIT RATE EXTENSION AT 11.8 KB/S)
Coding of Speech using Conjugate-Structure
Algebraic-Code-Excited Linear-Prediction (CS-ACELP)
at 8 kbit/s and 11.8 kb/s
using a backward / forward lpc structure
SOFTWARE AND INTELLECTUAL PROPERTY
----------------------------------
This software package is provided as part of ITU-T Recommendation G.729E.
Original Copyright (c) 1995, AT&T, France Telecom, NTT,
Universite de Sherbrooke.
All rights reserved.
+
Copyright (c) 1997, France Telecom, Universite de Sherbrooke.
All rights reserved.
The copy of the source C code, version 1.1, is given under Copyright of the
authors, only for the purpose of establishing the specification of a codec.
For distribution of update software, please contact:
Mr Fabio BIGI, TSB
UIT
Place des Nations
CH-1211 Gen妚e 20
Suisse.
email: fabio.bigi@itu.int
For reporting problems, please contact:
Claude LAMBLIN
FT.BD/CNET/DIH/DIPS
Technopole Anticipa
2 av. Pierre Marzin
22307 Lannion Cedex
FRANCE
tel: +33 2 96 05 13 03
fax: +33 2 96 05 35 30
email: claude.lamblin@cnet.francetelecom.fr
VERSION
-------
This is version 1.1.
COMPILATION
-----------
Edit the file typedef.h to comply to your target platform
For UNIX systems the following makefiles are provided
codere.mak
decodere.mak
Edit the makefiles codere.mak and decodere.mak to set the proper options
for your system.
The command to compile and link all code on a UNIX system is
make -f codere.mak
make -f decodere.mak
For other platforms, the *.mak files can be used to work out the
compilation procedures.
This code has been successfully compiled and run on the following
platforms:
Platform Operating System Compiler
-----------------------------------------------------------------------------
DEC ALPHA OSF/1 DEC OSF/1 cc
PC DOS 6.21 Borland 3.1
Watcom 9.6
Microsoft 8
PC Window95 MS Visual C++ 5.0
SUN gcc
HP gcc
Note that some compilers output a few minor warnings on some files of the
G.729 main body recommendation software.
DESCRIPTION
-----------
This package includes the files needed to build the fixed point version
of the G.729 codec with higher bit rate extension 11.8 kbit/s as
described in ANNEX E.
It includes also the PC executable (codere.exe and decodere.exe), a batch
file (test.bat), input files (speech : m1s5.-26, m1s1.-26 and music:
mu3m2.-26), a bit rate selector file (sw10_rat.bin), associated bitstream
files (m1s5.bit, m1s1.bit and mu3m2.bit) and decoder output files (m1s5.118,
m1s1.swh and mu3m2.118) to verify the execution for the higher bit rate
or the switch rate condition. To verify the execution of the 8kbit/s,
the test sequences set designed for the G.729 main body can be used. The
binary reference files are in PC format.
USAGE
-----
The following files are used or generated
inputfile 8 kHz sampled data file 16 bit PCM (binary)
outputfile 8 kHz sampled data file 16 bit PCM (binary)
bitstreamfile binary file containing bitstream
The following parameter is used for the encoder
rate_option = 1 : higher rate (11.8 kb/s)
= 0 : G729 (8.0 kb/s)
= file_rate_name : a binary file of 16 bit word containing
either 0 or 1 to select the rate on a frame by frame
basis the default is 0 (8 kb/s)
codere inputfile bitstreamfile rate_option
decodere bitstreamfile outputfile
BITSTREAM FORMAT
----------------
The bitstream file contains for each 10 ms speech frame,
for rate 8 kbit/s, 82 16-bit words or for rate 11.8 kbit/s, 120 16-bit words.
The first word is the synchronization word SYNC_WORD
The second word contains the value serial_size which is 80 for rate 8 kbit/s
and 118 for rate 11.8 kbit/s.
For the rate 8 kbit/s, the next 80 words contain the parameters as described
in G729. For the rate 11.8 kbit/s the next 118 words are described in
bitstrea.txt.
Bitstream information - all parameters start with msb
The bits are defined as follows:
#define SYNC_WORD (short)0x6b21
#define BIT_0 (short)0x007f /* definition of zero-bit in bit-stream */
#define BIT_1 (short)0x0081 /* definition of one-bit in bit-stream */
A bad frame is indicated by setting all "serial_size" bits to zero.
SOFTWARE ORGANIZATION
----------------------
the files can be classified into four groups:
1) files identical to G729 software files, part of ITU-T G729
recommendation.
2) files similar to G729 software files, some minor modifications have
been introduced to cope with annex E .
The modications introduced are :
moda: list of arguments
modb: static variables and arrays formerly local are now passed
as parameters
modc: some temporary variables are now passed to the calling
routine
modd: former constants are now passed as variable parameters (LPC
order, weighting factors of postfiler)
Note that same type of modifications were used when developping annex A
of G723.1 and annex B of G729.
3) files adapted from G729 software files, some source code lines have
been introduced to existing G729 files to deal with annex E.
4) files specific to G729 annex E (new files)
For groups 2 and 3, the letter "e" has been added to the names of the
modified files and routines.
group 1 (files identical to G729 software) :
--------------------------------------------
typedef.h, basic_op.h, oper_32b.h, ld8k.h, tab_ld8k.h,
basic_op.c, oper_32b.c, dspfunc.c, gainpred.c, lpcfunc.c, pred_lt3.c,
pre_proc.c, p_parity.c, qua_gain.c, pwf.c, pitch.c, tab_ld8k.c, util.c,
acelp_co.c, post_pro.c, de_acelp.c, dec_lag3.c
group 2 (files similar to G729 software) :
------------------------------------------
qua_lspe.c (from qua_lsp.c) :
Qua_lsp -> Qua_lspe (moda , modb, modc)
Lsp_encw_reset ->Lsp_encw_resete (moda, modb)
Lsp_qua_cs -> Lsp_qua_cse (moda, modb)
Relspwed -> Relspwede (moda, modb)
filtere.c (from filter.c) :
Syn_filt -> Syn_filte (moda and modd (LPC order) )
Residu -> Residue (moda and modd (LPC order) )
group 3 (files adapted from G729 software):
------------------------------------------
codere.c (from coder.c),
cod_ld8e.c (from cod_ld8k.c)
Init_Coder_ld8k -> Init_Coder_ld8e, Coder_ld8k -> Coder_ld8e
decodere.c (from decoder.c),
dec_ld8e.c (from dec_ld8k.c):
Init_Decod_ld8k -> Init_Decod_ld8e, Decod_ld8k -> Decod_ld8e
bitse.c (from bits.c):
bits2prm_ld8k -> bits2prm_ld8e, prm2bits_ld8k-> prm2bits_ld8e
(bitstream operations for higher rate + moda)
decgaine.c (from dec_gain.c):
Dec_gain -> Dec_gaine (gains computation in case of erased frame
for higher rate+ moda and modb)
lspgetqe.c (from lspgetq.c)
Lsp_get_quant -> Lsp_get_quante (no call of Lsp_prev_udate, buf is
copied in freq_cur,routine argument + moda, modb, modc)
lpce.c (from lpc.c)
Levinson -> Levinsone (test added before division + moda, modb, modd)
The others routines are identical to G729 lpc.c routines.
pste.c (from pst.c) :
pst_ltp -> pst_ltpe (computation of gamma_harm * num_gltp with
gamma_harm variable, + moda and modd(harmonic weighting factor))
pst_ltpe is the only routine adapted from G729 pst.c file, the others
routines are either identical or similar to G729 pst.c routines.
calc_st_filt -> calc_st_filte (moda and modd(LPC order + impulse
response length))
calc_rc0_h -> calc_rc0_he (moda and modd(impulse response length))
Post -> Poste( moda and modd (postfilter parameters))
lspdece.c (from lspdec.c) :
Lsp_iqua_cs -> Lsp_iqua_cse (due to the suppression of Lsp_prev_update
in Lsp_get_quante, Lsp_prev_update is now called in both cases
(frame erased or not) +moda and modb)
Lsp_iqua_cse is the only routine adapted from G729 lspdec.c file,
the others routines are either identical or similar to G729 lspdec.c
routines.
Lsp_decw_reset -> Lsp_decw_resete (moda and modb)
D_lsp -> D_lspe (moda and modb)
group 4 (files specific to G729 annex E) :
------------------------------------------
bwfw.c, bwfwfunc.c, pwfe.c, acelp_e.c, deacelpe.c, tab_ld8e.c, track_pi.c
tab_ld8e.h, ld8e.h.
ld8e.h: contains new constants definitions and
prototypes of routines :
- similar to G729 routines :
Qua_lspe, Lsp_encw_resete, Lsp_qua_cse, Relspwede, Syn_filte, Residue,
Poste, D_lspe, Lsp_decw_resete.
- adapted from G729 routines :
Init_Coder_ld8e, Coder_ld8e, Init_Decod_ld8e, Decod_ld8e, bits2prm_ld8e,
prm2bits_ld8e, Levinsone, Dec_gaine, Lsp_get_quante, Lsp_iqua_cse.
- specific to G729 annex E:
Lag_window_bwd, Int_bwd, set_lpc_mode, ener_dB, tst_bwd_dominant,
perc_vare, ACELP_12i40_44bits, ACELP_10i40_35bits, Dec_ACELP_12i40_44bits,
Dec_ACELP_10i40_35bits, track_pit
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -