http://www.paper.edu.cn
- 1 -
Implementation of iLBC Codec Algorithm on DSP
HUANG Sai
School of Telecommunication Engineering, Beijing University of Posts and Telecommunications,
Beijing (100876)
Abstract
This thesis is to investigate the ILBC codec algorithm and expects to implement ILBC codec on a
16-bit, fixed-point digital signal processor.Due to the limited resource of the DSP chip. The
implementation was in two steps, first make the floating point to fixed-point conversion in C with
optimization. Then translate the C to DSP assembly codes. In the process, three level of optimization
was made, the algrithrom level, the Fixed Pointed C level, and the assembly language level. Each Level
had made great contribution to improve the performance of the fixed point implementation of the codec.
Finally, the optimized assembly codes are successfully used in AR1688 based VOIP devices, satisfying
the real-time needs.
Keywords: iLBC ;Speech coding ;AR1688
0. Introduction:
With the increasing prevalence of the application of Internet voice communication, the
communicative quality of network telephones becomes an important factor that restricts its own
development. To reduce the effect of packet loss to voice in the packet switching network, the iLBC
Algorithm, which utilizes the technologies of Long Term Prediction and Packet Loss Concealment, was
brought up internationally, thus well solving the problem.
1. iLBC Codec Algorithm:
The full name of iLBC is Internet Low Bit Rate Codec, which is a new codec algorithm used in
IP voice technology brought up by Global IP Sound Company. In nature, iLBC is a frame-based LPC
(linear predictive coding) method and a kind of development to CELP (Code Excited Linear Predictive
Coding)
[1]
. In relation to previous Codec Algorithm, the unique dynamic codebook update technology,
enhancement algorithm and Packet Loss Concealment technology of iLBC give it better performance
in application of packet switching network.
1.1 Coding Process (See Figure 1)
Through pretreatment, the inputted voice signal uses high-pass filtering to filter the direct
component and the low-frequency noise, as well as the autocorrelation and Levinson-Durbin Recursion
Algorithm to get the LPC (Linear-Predictive Coding) Coefficient, and then translates it into LSF
(Line-Spectral Frequencies) that is easier to quantify and interpolate to make a linear predictive to the
analyzer and calculate the residual of each sub-frame.
Then select the start state, use the all-pass filter to make normalization and quantify with the
general 6-bit scalar quantizer. Firstly calculate the successive sub-block with the most energy in the
residual signal, then compare whether the start state is the former 57/58 sampling points or the latter
57/58 ones of two successive sub-block. The residual signal of the start state passes all-pass filter the
before quantization. All pass filtered blocks make searches with the minimum quantity of samplings
and choose the logarithm to the number and quantify with the general 6-bit scalar quantizer. Then in
the perceptive weighting voice field, x(n) is gotten by perceive weighting filtering; based on the current
predicted value y(n-1) to get the current predicted value y(n) of the single sampling point of the current
code; subtract the predicted value y(n) from x(n) and quantify the result with the 3-bit scalar quantizer;
based on the quantified u(n) to upgrade the current predicted value
[1]
.
The rest residual signals in the current frame use dynamic codebook to search for multilevel
评论0
最新资源