AN2261 Freescale Semiconductor / Motorola, AN2261 Datasheet - Page 8

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
l
2.3 Function-Level Optimizations
8
The following assembly functions were integrated from the ITU-T G.729A optimized implementation,
thus improving speed and program size:
• Get_lsp_pol()
• Pred_lt_3()
• Residu()
• Syn_filt()
• Post_Process()
• Autocorr()
• Az_lsp()
• Chebps()
• Cor_h()
• D4i40_17_fast()
• Dot_Product()
• Levinson()
• Pitch_fr3_fast()
• Pitch_ol_fast()
• Pre_Process()
• Qua_gain()
The function changes introduced by Annex B apply to the assembly versions of the Autocorr() and
Levinson() functions. The assembly version of Levinson() is based on [6]. Table 8 summarizes
performance results after application of the global project optimizations. The processing load value of
7.73 MCPS is the worst case introduced by Annex B.
1
The algorithmic changes applied to the functions ported from Annex B use both C and assembly
language. There are two types of C code transformations:
• Platform-independent. To avoid repeated computations or fetches of the same value and reduce the
• Platform-dependent. To perform non-dependent computation in parallel and reorder vectors to use
A few optimizations were made to a reduced number of functions from Annex B after a profiling session.
Six functions were optimized using C language, and only one function required optimization using
assembly language. Thus, the compiler proves to deliver highly-optimized generated code. The
optimizations increased performance.
Speed (MCPS)
N = number of channels
number of tests.
packed moves.
7.73
Table 8. Performance Results After Project-Level Optimizations
Freescale Semiconductor, Inc.
For More Information On This Product,
40.52
Program
(KB)
Go to: www.freescale.com
ROM
(Bytes)
Tables
5740
Channel Data
2544 x N
(Bytes)
1
RAM
(Bytes)
Stack
2824

Related parts for AN2261