Real-Time Implementation of the G.729.1 Using ARM926EJ-S Processor Core

ARM926EJ-S 프로세서 코어를 이용한 G.729.1의 실시간 구현

  • 소운섭 (한국전자통신연구원 멀티미디어통신연구팀) ;
  • 김대영 (충남대학교 전자전파정보통신공학과)
  • Published : 2008.08.31

Abstract

In this paper we described the process and the results of real-time implementation of G.729.1 wideband speech codec which is standardized in SG15 of ITU-T. To apply the codec on ARM926EJ-S(R) processor core. we transformed some parts of the codec C program including basic operations and arithmetic functions into assembly language to operate the codec in real-time. G.729.1 is the standard wideband speech codec of ITU-T having variable bit rates of $8{\sim}32kbps$ and inputs quantized 16 bits PCM signal per sample at the rate of 8kHz or 16kHz sampling. This codec is interoperable with the G.729 and G.729A and the bandwidth extended wideband($50{\sim}7,000Hz$) version of existing narrowband($300{\sim}3,400Hz$) codec to enhance voice quality. The implemented G.729.1 wideband speech codec has the complexity of 31.2 MCPS for encoder and 22.8 MCPS for decoder and the execution time of the codec takes 11.5ms total on the target with 6.75ms and 4.76ms respectively. Also this codec was tested bit by bit exactly against all set of test vectors provided by ITU-T and passed all the test vectors. Besides the codec operated well on the Internet phone in real-time.

본 논문에서는 ITU-T의 SG15에서 채택된 G.729.1 광대역 음성 코덱을 ARM926EJ-S(R) 프로세서 코어에 적용하기 위해 기본연산자 및 산술기능 함수를 포함한 G.729.1 코덱 프로그램 일부를 어셈블리어로 변환하여 실시간으로 동작하도록 구현한 절차 및 결과를 기술하였다. G.729.1은 $8{\sim}32kbps$의 가변 전송률을 갖는 ITU-T 표준 광대역 음성 코덱이며, 입력신호는 8kHz 또는 16 kHz로 샘플링 되어 샘플 당 16 비트로 양자화된 PCM 신호를 입력받는다. 이 코덱은 앞서 표준화된 G.729 및 0.729A와 상호 호환이 가능하며 음질 향상을 위해 기존의 협대역($300{\sim}3,400Hz$)에 비해 대역폭을 광대역($50{\sim}7,000Hz$)으로 확장한 버전이다. 실시간으로 구현된 G.729.1 광대역 음성 코덱은 32kbps에서 인코더와 디코더 부분이 각각 약 31.2 MCPS 및 22.8 MCPS의 복잡도를 가지며, 실제 임베디드 시스템에서의 실행 시간은 인코더와 디코더 평균 6.75ms와 4.76ms로 총 11.5ms가 걸렸다. 또한 이 코덱은 ITU-T에서 제공하는 모든 테스트 벡터에 대해 비트 단위로 정확하게 시험하여 통과하였으며, 실제 인터넷 전화기에 적용한 실시간 음성통화에서 정상적으로 동작하였다.

Keywords

References

  1. ITU-T Rec. G.729.1, 'An 8-32kbit/s scalable wi-deband coder bitstream interoperable with G.729,' May 1995
  2. ITU-T Rec. G.729, 'Coding of speech at 8 kb/s using conjugate-structure algebraic code-excited linear prediction (CS- ACELP),' June 1995
  3. ITU-T Recommendation G.729 Annex A, 'Reduced complexity 8 kbit/s CS-ACELP speech codec,' Nov. 1996
  4. http://www.arm.com/products/CPUs/ARM926EJ-S.html
  5. http://www.freescale.com/
  6. Mithun Banerjee, G. Radhi Krishna, 'Optimal Real Time DSP implementation of ITU G.729 Speech Codec,' VTC 2004-Fall, Vol.6
  7. David H Crawford, Emmanuel Roy, 'Techniques for Real-Time DSP implementation of Speech Coding Algorithms,' Proc. DSP world, ICSPAT, pp.2-7, 1-4 November 1999
  8. Manish Arora, Suresh Babu P.V, Vinay M.K, 'RISC PROCESSOR BASED SPEECH CODEC IMPLEMENTATION FOR EMERGING MOBILE MULTIMEDIA MESSAGING SOLUTIONS,' DSP 2002, Vol.2, 1-3 July 2002, pp.831-834
  9. ITU-T Software Tool Library 2005 User's Manual, August 2005
  10. Ethan Bordeaux, 'Solving AMR Speech Codec Porting Challenges,' CommsDesign Technical Report, Aug. 2004
  11. GNU gprof, http://www.cs.utah.edu/dept/old/ textinfo/as/gprof.html
  12. Hedley Francis, 'ARM DSP-Enhanced Extensions,' ARM White Paper, May 2001
  13. ARM Ltd., ARM Developer Suite Version 1.2-CodeWarrior IDE Guide, March 2003
  14. Richard M. Stallman, GCC Developer Community, 'Using the GNU Compiler Collection,' Last updated 23 May 2004 for GCC 3.4.6
  15. http://www.dsprelated.com/groups/speechcoding/show/940.php