/* G.729 with ANNEX D Version 1.2 Last modified: 11 May 1998 */
TITLE
-----
Explanation letter for the G.729 annex D software package
( Fixed-point description of Recommendation G.729 with ANNEX D)
(Recommendation G.729 + LOWER BIT RATE EXTENSION AT 6.4 KB/S)
Coding of Speech using Conjugate-Structure
Algebraic-Code-Excited Linear-Prediction (CS-ACELP)
at 8 kbit/s and 6.4 kb/s
SOFTWARE AND INTELLECTUAL PROPERTY
----------------------------------
This software package is provided as part of ITU-T Recommendation G.729D.
Original Copyright (c) 1995, AT&T, France Telecom, NTT,
Universite de Sherbrooke.
All rights reserved.
+
Copyright (c) 1998, Ericsson, NTT.
All rights reserved.
The copy of the source C code, version 1.2, 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:
Sales Department
ITU
Place des Nations
CH-1211 Geneve 20
SUISSE
email: sales@itu.int
For reporting problems, please contact TSB helpdesk service at:
TSB Helpdesk service
ITU
Place des Nations
CH-1211 Geneve 20
SUISSE
fax: +41 22 730 5853
email: tsbedh@itu.int
VERSION
-------
This is version 1.2.
COMPILATION
-----------
Edit the file typedef.h to comply to your target platform
For UNIX systems the following makefiles are provided
coderd.mak
decoderd.mak
Edit the makefiles coderd.mak and decoderd.mak to set the proper options
for your system.
The command to compile and link all code on a UNIX system is
make -f coderd.mak
make -f decoderd.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
-----------------------------------------------------------------------------
SUN Solaris gcc
DESCRIPTION
-----------
This package includes the files needed to build the fixed point version
of the G.729 codec with the lower bit rate extensions 6.4 kbit/s as
described in ANNEX D.
It includes input files (testfile.raw), bitstream files (testmid.1,testmid.2, testmid.3) and decoder output files (testout.1, testout.2, testout.3) to verify the execution.
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 : lower rate (6.4 kb/s)
= 2 : G729 (8.0 kb/s)
= 3 : toggle mode every frame
coderd rate_option inputfile bitstreamfile
decoderd rate_option 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 6.4 kbit/s, 66 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 64 for rate 6.4 kbit/s.
For the rate 8 kbit/s, the next 80 words contain the parameters as described
in G729. For the rate 6.4 kbit/s the next 64 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 D.
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 D.
4) files specific to G729 annex D (new files)
For groups 2 and 3, the letter "d" has been added to the names of the
modified files and routines.
----------------------------------------------
group 1 (files identical to G729 software) :
----------------------------------------------
basic_op.h, ld8k.h, oper_32b.h, tab_ld8k.h, typedef.h,
basic_op.c, de_acelp.c, dec_gain.c, dspfunc.c, gainpred.c,
lpc.c, lpcfunc.c, lspdec.c, lspgetq.c, oper_32b.c, p_parity.c,
post_pro.c, pre_proc.c, pred_lt3.c, pst.c, pwf.c, qua_gain.c,
qua_lsp.c, tab_ld8k.c, util.c
----------------------------------------------
group 2 (files similar to G729 software) :
----------------------------------------------
----------------------------------------------
group 3 (files adapted from G729 software) :
----------------------------------------------
acelpcod.c (from acelp_co.c),
#ld8kd.h
#tabld8kd.h
ACELP_Codebook() -> ACELP_CodebookD()
Cor_h() -> Cor_h_D()
bitsd.c (from bits.c),
#ld8kd.h
#tabld8kd.h
bits2prm_ld8k() -> bits2prm_ld8kD()
prm2bits_ld8k() -> prm2bits_ld8kD()
codld8kd.c (from cod_ld8k.c),
#ld8kd.h
#tabld8kd.h
ACELP_Codebook() -> ACELP_CodebookD()
Enc_lag3() -> Enc_lag3D()
Coder_ld8k() -> Coder_ld8kD()
Pitch_fr3() -> Pitch_fr3D()
coderd.c (from coder.c),
#ld8kd.h
#tabld8kd.h
Coder_ld8k() -> Coder_ld8kD()
prm2bits_ld8k() -> prm2bits_ld8kD()
declag3d.c (from dec_lag3.c),
#ld8kd.h
#tabld8kd.h
Dec_lag3() -> Dec_lag3D()
decld8kd.c (from dec_ld8k.c),
#ld8kd.h
#tabld8kd.h
Dec_lag3() -> Dec_lag3D()
Decod_ld8k() -> Decod_ld8kD()
decoderd.c (from decoder.c),
#ld8kd.h
#tabld8kd.h
Decod_ld8k() -> Decod_ld8kD()
bits2prm_ld8k() -> bits2prm_ld8kD()
filterd.c (from filter.c),
#ld8kd.h
#tabld8kd.h
pitchd.c (from pitch.c),
#ld8kd.h
#tabld8kd.h
Enc_lag3() -> Enc_lag3D()
Pitch_fr3() -> Pitch_fr3D()
----------------------------------------------
group 4 (files specific to G729 annex D) :
----------------------------------------------
ld8kd.h, tabld8kd.h,
deacelpd.c, dec_g6k.c, qua_g6k.c, tabld8kd.c
ld8kd.h = ld8k.h(6.4k) - ld8k.h(G729)
tabld8kd.h = tab_ld8k.h(6.4k) - tab_ld8k.h(G729)
deacelpd.c = de_acelp.c(6.4k) - de_acelp.c(G729)
#ld8kd.h
tabld8kd.c = tab_ld8k.c(6.4k) - tab_ld8k.c(G729)
#ld8kd.h
#tabld8kd.h
dec_g6k.c = dec_g6k.c(6.4k)
qua_g6k.c = qua_g6k.c(6.4k)
ITU-T G.729 AnnexD C源码
需积分: 0 125 浏览量
2008-07-09
14:42:45
上传
评论
收藏 98KB RAR 举报
yeaisheng
- 粉丝: 2
- 资源: 1
最新资源
- 基于matlab实现车牌识别程序,和论文,自己做的,做毕业设计的可以看看 .rar
- Windows系统下安装与配置Neo4j的步骤
- 基于matlab实现潮流计算和最优潮流计算的程序1,对毕业设计有一定用处.rar
- 基于大数据学习资源推荐系统的设计与实现(部署视频)-kaic.mp4
- 哈工大形式语言和自动机2022期末含答案
- Windows系统下安装与配置Neo4j的步骤
- 哈希算法(Hash Algorithm)是一种将任意长度的二进制数据映射为较短的、固定长度的二进制值的函数.txt
- Windows系统下安装与配置Neo4j的步骤
- 在二叉树或更复杂的树形结构中,先序输出叶结点.txt
- 列出所有祖先结点的概念通常与树形结构或图论中的节点相关.txt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论0