AN2261 Freescale Semiconductor / Motorola, AN2261 Datasheet - Page 4

no-image

AN2261

Manufacturer Part Number
AN2261
Description
ITU-T G.729AB Implementation on the StarCore SC140 Core
Manufacturer
Freescale Semiconductor / Motorola
Datasheet
Implementation Process
2.1.1 Integrating the New Functions
4
Porting Annex B to the SC140 core required use of the following elements:
• Defined data types (for example, Word16, Word32) as defined in ITU-T G.729A to comply with the
• Intrinsic functions defined by the compiler instead of their emulated versions.
• Overflow handling intrinsics instead of the boolean overflow and carry flags at the base of the
Integrating Annex B with the ITU-T G.729A optimized implementation requires the following steps:
1. Integrate the new functions in the ITU-T G.729A optimized implementation by adding the calls and
2. Add the modified code corresponding to the changed functions as they are implemented in the C refer-
3. Add/modify the data structures of the channel data with the new global and static variables from each
4. Add the new Annex B-defined tables (Section 2.1.3).
5. Make the G.729AB library interface comply with the Application Binary Interface (ABI) as described
Table 4 summarizes the results of the SC140 porting phase of the ITU-T G.729AB. The results were
obtained using only C versions of the functions:
• C optimized versions of the unchanged functions from ITU-T G.729A optimized implementation.
• C reference code of the functions implemented or modified by Annex B.
1
The C reference code of the ITU-T G.729A and ITU-T G.729AB recommendations was compared at the
function-level. Table 5 summarizes the results of the comparison. This analysis was used for integrating
the new functions in the ITU-T G.729A optimized implementation. The functions were integrated in
conjunction with the modification of the channel data and data tables. The new functions implement three
algorithms of the Annex B (VAD, DTX, and CNG) and the quantization algorithms for computing the
SID. As Table 5 shows, only a few functions differ, and most are identical. The differences consist of
new added computations:
• Autocorr() computes an exponent of the autocorrelation vector used by the VAD algorithm.
• Levinson() computes a residual energy used by the DTX algorithm.
• Post_Filter() calls the function that performs the harmonic postfilter based on the input VAD
• Random() returns a pointer to the generated seed.
Speed (MCPS)
N = number of channels
SC140 architecture.
emulated functions.
decision.
code of these functions (Section 2.1.1). Split these functions into files, one function per file, thus using
the code structure of the ITU-T G.729A optimized implementation.
ence code, optimizing them in the next project implementation phase (Section 2.2).
new/changed added function (Section 2.1.2);
in Section 2.1.5, and modify the initialization functions of the structures accordingly.
9.54
Freescale Semiconductor, Inc.
Table 4. Performance After Porting to the SC140 Core
For More Information On This Product,
Program
44.78
(KB)
Go to: www.freescale.com
ROM
(Bytes)
Tables
5640
Channel Data
2544 x N
(Bytes)
1
RAM
(Bytes)
Stack
3104

Related parts for AN2261