READ.ME
上传用户:meifeng08
上传日期:2013-06-18
资源大小:5304k
文件大小:7k
源码类别:

语音压缩

开发平台:

C/C++

  1. /* Version 3.3    Last modified: December 26, 1995 */
  2. TITLE
  3. -----
  4. Explanation letter for the G.729 software package
  5. Coding of Speech at 8 kbit/s using Conjugate-Structure
  6. Algebraic-Code-Excited Linear-Prediction (CS-ACELP)
  7. SOFTWARE AND INTELLECTUAL PROPERTY
  8. ----------------------------------
  9. This software package is provided as part of ITU-T Recommendation G.729.
  10.  Copyright (c) 1995, AT&T, France Telecom, NTT, Universite de Sherbrooke.
  11.  All rights reserved.
  12. VERSION
  13. -------
  14. This version is a 16 bit fixed-point implementation of the floating
  15. point version that was tested in January 1995. Version 2.1 of the
  16. fixed point software was tested in October 1995. This is version 3.3.
  17. COMPILATION
  18. -----------
  19. Edit the file typedef.h to comply to your target platform
  20. For UNIX systems the following makefiles are provided
  21.    coder.mak
  22.    decoder.mak
  23. Edit the makefiles coder.mak and decoder.mak to set the proper options
  24. for your system.
  25. The command to compile and link all code on a UNIX system is
  26.      make -f coder.mak
  27.      make -f decoder.mak
  28. For other platforms, the *.mak files can be used to work out the
  29. compilation procedures.
  30. This code has been successfully compiled and run on the following
  31. platforms:
  32. Platform                   Operating System      Compiler
  33. -----------------------------------------------------------------------------
  34. Silicon Graphics R4400     Unix 5.2              cc
  35. Silicon Graphics R4400     Unix 5.2              gcc 2.6.3
  36. SUN Sparc2                 Unix 5.1              gcc 2.6.3
  37. DEC ALPHA                  OSF/1                 DEC OSF/1 cc
  38. HP                         Unix                  c89
  39. PC                         DOS 6.21              Microsoft QuickC
  40.                                                  Borland 3.1
  41.                                                  Watcom 9.6
  42.                                                  Zortec 3.1
  43.                                                  Microsoft 8
  44.                                                  MS Visual C++ 1.5
  45. Additional flags:
  46. All ITU tests were done using 13 bit input and output. This mode can
  47. be set by defining the HARDW flag.
  48. By setting the flag SYNC the input and output files are
  49. aligned. Otherwise there will be a 40 sample delay between input and
  50. output. All test files were generated without these flags defined.
  51. USAGE
  52. -----
  53. The following files are used or generated
  54.   inputfile    8 kHz sampled data file 16 bit PCM  (binary)
  55.   outputfile   8 kHz sampled data file 16 bit PCM (binary)
  56.   bitstreamfile  binary file containing bitstream
  57. coder  inputfile bitstreamfile
  58. decoder bitstreamfile outputfile
  59. VERIFICATION
  60. ------------
  61. To verify correct compilation and execution on your target machine
  62. the following test files can be obtained (temporarily) from
  63. ftp.research.att.com
  64. speech.in    - speech signal
  65. algthm.in    - artificial signal to test certain parts of the code
  66. fixed.in     - artificial signal to test codebook search
  67. lsp.in       - artificial signal to test lsp quantization
  68. pitch.in     - artificial signal to test long-term predictor
  69. tame.in      - sinewave to test the taming procedure
  70. The corresponding bitstream files and output files have the same name
  71. but extentions *.bit and *.pst, respectively.
  72. In addition, the following bitstream and output files are provided:
  73. parity.bit   - test file for parity errors
  74. erasure.bit  - test file for frame erasures
  75. overflow.bit - test file to excercise the overflow detection
  76. The files are stored in 2 formats:
  77. g729tv.tar.Z - compressed tar file (uncompress followed by tar xf g729tv.tar)
  78. g729tv1.zip   - zip file part1 (pkzip compatible) FILES ARE IN PC FORMAT.
  79. g729tv2.zip   - zip file part2 (pkzip compatible) FILES ARE IN PC FORMAT.
  80. NOTE:
  81. The files in g729tv.tar.Z need byte swapping for some platforms (such as
  82. DEC machines or PC's). This can be done with for example the unix dd command:
  83.  dd if=inputfile of=outputfile conv=swab
  84. The files are in the directory dist/g729.
  85. Make sure that you copy these files in binary mode.
  86. The session might look like this:
  87. ftp ftp.research.att.com
  88. Name: anonymous
  89. Password:
  90. cd dist/g729
  91. binary
  92. prompt
  93. get g729tv1.zip
  94. get g729tv2.zip
  95. bye
  96. WARNING: These testvectors are provided to verify correct execution of
  97. the software on the target platform. They cannot be used to verify
  98. compliance to the standard.
  99. BITSTREAM FORMAT
  100. ----------------
  101. The bitstreamfile contains for each 10 ms speech frame,
  102. 82 16-bit words.
  103. The first word is the syncword SYNC_WORD
  104. The second word is the framesize and contains the fixed value 80
  105. The next 80 words contain the following parameters:
  106. 01      LPC1-   MA predictor switch
  107. 02      LPC1-   1st codebook           7 bit
  108. 03      LPC1-
  109. 04      LPC1-
  110. 05      LPC1-
  111. 06      LPC1-
  112. 07      LPC1-
  113. 08      LPC1-
  114. 09      LPC2-   2nd codebook  low         5 bit
  115. 10      LPC2-
  116. 11      LPC2-
  117. 12      LPC2-
  118. 13      LPC2-
  119. 14      LPC2-   2nd codebook  high         5 bit
  120. 15      LPC2-
  121. 16      LPC2-
  122. 17      LPC2-
  123. 18      LPC2-
  124. 19      M_1     pitch period                8 bit
  125. 20      M_1
  126. 21      M_1
  127. 22      M_1
  128. 23      M_1
  129. 24      M_1
  130. 25      M_1
  131. 26      M_1
  132. 27              parity check on 1st period  1 bit
  133. 28      CB_1    codebook pulse positions    13 bit
  134. 29      CB_1
  135. 30      CB_1
  136. 31      CB_1
  137. 32      CB_1
  138. 33      CB_1
  139. 34      CB_1
  140. 35      CB_1
  141. 36      CB_1
  142. 37      CB_1
  143. 38      CB_1
  144. 39      CB_1
  145. 40      CB_1
  146. 41      S_1     codebook pulse signs       4 bit
  147. 42      S_1
  148. 43      S_1
  149. 44      S_1
  150. 45      G_1     pitch and codebook gains  3 bit stage 1
  151. 46      G_1
  152. 47      G_1
  153. 48      G_1     pitch and codebook gains  4 bit stage 2
  154. 49      G_1
  155. 50      G_1
  156. 51      G_1
  157. 52      M_2     pitch period (relative)     5 bit
  158. 53      M_2
  159. 54      M_2
  160. 55      M_2
  161. 56      M_2
  162. 57      CB_2    codebook pulse positions    13 bit
  163. 58      CB_2
  164. 59      CB_2
  165. 60      CB_2
  166. 61      CB_2
  167. 62      CB_2
  168. 63      CB_2
  169. 64      CB_2
  170. 65      CB_2
  171. 66      CB_2
  172. 67      CB_2
  173. 68      CB_2
  174. 69      CB_2
  175. 70      S_2     codebook pulse signs       4 bit
  176. 71      S_2
  177. 72      S_2
  178. 73      S_2
  179. 74      G_2     pitch and codebook gains  3 bit stage 1
  180. 75      G_2
  181. 76      G_2
  182. 77      G_2     pitch and codebook gains  4 bit stage 2
  183. 78      G_2
  184. 79      G_2
  185. 80      G_2
  186. Bitstream information - all parameters start with msb
  187. The bits are defined as follows:
  188. #define SYNC_WORD (short)0x6b21
  189. #define BIT_0     (short)0x007f /* definition of zero-bit in bit-stream     */
  190. #define BIT_1     (short)0x0081 /* definition of one-bit in bit-stream      */
  191. A bad frame is indicated by setting all 80 bits to zero.