[VoIP 개요] G.729 음성코덱

개발 이야기/VoIP | 2009. 9. 18. 19:26
Posted by 시반

저번에 말씀 드린 바와 같이 오늘은 G.729 코덱에 대해 좀더 알아 보도록 하겠습니다.

G.729 코덱에 대해 별도로 지면을 할애 하는 것은 그만큼 코덱이 중요하다는 의미 이지.

 

G.729 코덱은 두가지 Annex 있습니다.Annex A B 있습니다.

무슨말 이냐면 G.729 코덱의 성능의 향상을 위하여 약간의 변화를 두가지 변형이 있다고 보시면 됩니다.

 

이중에 G.729a 코덱이 대부분의 VoIP 벤더들의 기본 코덱으로 사용되고 있습니다. 시스코도 마찬가지 입니다.

더불어 시스코의 IP 폰에서 지원되는 코덱도 G.711 G.729a 코덱 두가지만 지원이 됩니.

 

여러분들이 VoIP 대한 관심이 있다면  이들 두가지 G.729 Annex 대해 아셔야 합니다.

이들은 모두 ITU 표준(Standard) 코덱 입니다.

 

또한 모두 음성을 초당 8Kbps 압축 하고 인코딩 타임(Compression Delay) 동일하게 10ms 입니다.

여기까진 동일한데그런데 몇가지 성능상의 차이점이 있습니다.

 

첫째로 가장 차이라면 G.729a 코덱은 알고리즘이 보다 단순해서 DSP 대한 부하가 G.729 비해 절반 정도 적습니다.

 

, G.729 20MIPS 이고 G.729a 10MIPS 입니다.

 

차이 때문에 하나의 DSP 칩은 동시에 두개의 G.729a 통화를 처리 할수 있는 반면에 G.729 통화는 하나밖에 지원하지 못합니다DSP(Digital Signal Processor) 칩은 NM 보이스 모듈이나 카타리스트 6500 6608모듈 이나 AS5000 시리즈의 VoIP 모듈등에 존재하는 칩이고 앞서 말씀 드렸다 시피 음성을 압축하는 부분 이라고 했습니다. 장비마다 장착 할수 있는 DSP 칩의 갯수가 한정 되어 있기 때문에 DSP 대한 부하가 얼마 인지는 중요한 요소가 됩니다.

 

예를 들면 아래 그림은 AS 5300 VoIP 모듈의 그림 입니다.

 

<그림 1>

  

<그림 2>

<그림1> AS5300 하나의 T1 모듈과 두개의 VoIP 모듈이 장착되어져서 VoIP 게이트웨이로 성되어 있는  사진 입니다.(예전에는 VoIP 모듈 대신 MICA(Modem ISDN Channel Aggregation) 모듈을 통해 PC 통신 서비스나 PPP 인터넷 접속 서비스용도로 사용되었지요.)

 

<그림2> VoIP 모듈은 <그림1> 슬롯에 장착 됩니다.하나의 VoIP 모듈에는 최대 30개의 DSP 칩을 장착 할수 있습니다.

만약 두개의 모듈을 설치하면 60개의 DSP 칩을 이용할수 있습니다.

 

이때 게이트웨이에서 사용하는 코덱이 G.729 코덱 이라면 게이트웨이는 동시에 60개의 통화만 처리할수 있습니다.하지만 사용하는 코덱이 G.729a 코덱이라면 동시에 처리할수 있는 통화는 120 개가 됩니다.DSP 칩에 대한 부하(Load) 차이가 이해 되시죠?추가해서 만약 코덱이 G.711 이라면 240개의 동시 통화가 가능합니다.

 

두번째 차이점은 MOS 값은 G.729 코덱이 약간 좋습니다.

G729 코덱은 MOS 3.92 이고 G729a 코덱은 3.9 입니다. 하지만 아주 미미한 차이죠?

 

이번엔 G.729 Annex B 입니다.

 

Annex B VAD (Voice Activity Detection) CNG(Comport Noise Generation) 정의합니다.

VAD (Voice Activity Detection) Silence Suppression 이라고도 합니다.

 

사람의 전화 통화시에 거의 절반 정도는 침묵 입니다.

, 저쪽에서 말을 하면 이쪽은 듣기만 하고 반면에 이쪽에서 말을 하면 저쪽은 듣기만 한다는 것이.

기존의 TDM 환경에서는 이렇게 말을 하지 않더라도 채널이 비어있는 채로 전송이 될뿐 채널을 다른 통화 시도자에게 할당 하지는 못합니다.

 

하지만 VoIP 환경에서는 이렇게 송화자가 침묵을 경우 IP 패킷을 생성하지 않는 입니다.

그렇게 되면 일시적으로 음성이 밴드위드를 사용하지 않게 되고 이렇게 남는 밴드위드를 다른 어플리케이션 (WEB 이나 FTP) 사용할 수가 있는 것이죠.

 

이렇게 음성의 진폭값이 일정 한도(Threshold) 도달 하는지를 감지해서 패킷의 생성 여부를 결정하는 것이 VAD 입니다.

다만 VAD 사용하게 되면 말의 시작부분이나 음성의 진폭이 떨어지는 말의 끝부분은 잘려 나갈수 있습니다. 이런것을 클리핑(Clipping) 이라고 합니다.

 

그래서 음질이 나빠질수가 있습니다.시스코 게이트웨이는 디폴트로 기능이 Enable 되어 있습니다.

 

CNG VAD 관련이 있습니다.VAD 사용하게 되면 말을 하지 않는 사람이 상대방에게 아무런 음성 패킷을 보내지 않으므로 하는 사람은 당연히 수화기에서 아무런 소리도 안들리게 됩니다.이럴경우 말을 혼자서 일방적으로 오랫동안 하는 사람은 간혹 전화가 끊어졌을까 염려해서여보세?”하고 상대의 존재 여부를 확인하게 됩니다.

 

이런 상황을 방지하고 통화자들에게 통화의 안정감을 주기 위해서 VAD 시에도 일정한 잡음을 발생시키게 되는데이걸 CNG(Comport Noise Generation) 라고 합니다.

 

이러한 G.729 Annex B G.729 코덱과 G.729a 코덱 둘다에 적용됩니다.

 

오늘은 내용이 길고 새로운 용어들이 소개 되었는데요이런 용어들은 VoIP 에서 일상적으로 사용되는 용어들이니 알아 두시고요

결론은 G.729a 코덱이 VoIP 환경에서 일반적으로 가장 많이 사용되는 코덱이고 이러한 기능들을 갖고 있다는 것을 알아 두시면 되겠습니다

[출처] VoIP 개요|작성자 스펀지밥

 

[VoIP 개요] 음성코덱의 종류

개발 이야기/VoIP | 2008. 9. 18. 19:18
Posted by 시반
이번장에서는 보이스 코덱의 종류와 각각의 특성을 알아 보겠습니다. 여기서 소개되는 코덱 들은 보이스 전용 코덱 입니다.

사람의 음성에 적합하게 설계된 알고리즘 들입니다.보이스 코덱도 비디오 처럼 압축률과 음성품질이 서로 Trade-Off 입니다.

압축률이 높으면 음성품질이 떨어지고 압축률이 낮으면 음성품질은 좋습니다.당연히 우리는 밴드위드의 요구가 낮으면서도( 압축효율은 높고) 품질은 좋은걸 원합니다.

 

보이스 코덱에 대해 소개 하기전에 몇가지 용어 개념에 대한 이해가 필요 합니다.

 

(1) MOS

MOS Mean Opinion Score 약어 입니다.이것은 여러 코덱을 통하여 음성을 압축했을 해당 음성의 품질을 점수화 입니다.

아래 <그림1> 보십시오.

 

 

<그림1>

 

<그림1> 에서 보듯이 특정 음성( 그림에서 Source) 특정 코덱X 통하여 품질의 저하(Impairment) 가하고 품질을 평가하는 표본집단의 구성원 들에게 들려줍니다.패널들은 Toll Quality(PSTN 통화품질) MOS = 4.0 값으로 기준을 잡고 각각의 코덱을 나온 음성의 퀄리티를 평가합니다.

 

MOS 값은 1~5 까지 이고 높을수록 퀄리티가 뛰어남을 의미 합니다.MOS 값은 코덱의 퀄리티를 표현하는 가장 보편적인 방법 입니다.

하지만 방식은 표본집단의 패널들에 의한 주관적인 평가가 강하기 때문에 보다 객관적인 평가를 위하여 ITU-T 에서 표준으로 정한 PSQM 방식을 이용하기도 합니다.

 

참고로 아래에 PSQM 방식의 이해를 돕는 그림을 첨부 합니다.

 


 

<그림2>
 

<그림 2> 에서 보이듯 방식은 사람에 의해서 평가가 되는 것이 아니라 PSQM 알고리즘에 기반한 서킷에 의해서 퀄리티가 평가 되므로 MOS 비해 객관적 입니다. PSQM 값은 0~6 까지 이고 MOS 달리 값이 낮을수록 퀄리티가 좋은 입니다.

 

 

(2) 인코딩 타임= 코덱 지연 시간

 

인코딩 타임이란 특정 코덱을 사용시 음성이 압축된 결과값을 얻는데 걸리는 시간을 말합니.

전화 통화시의 음성은 실시간 전송이 필요하므로 이러한 처리 지연 시간이 오래 걸리면 당연 정상적인 통화를 방해 합니다.

너무 지연이 심하면 무전기 통화가 되겠지요?따라서 값은 낮을수록(, 빠를수록) 좋은 입니다.

 

아래의 <1>에서 인코딩 타임 이란  DSP 칩에서 하나의 보이스 프레임 Output 내보내는 걸리는 프로세싱 타임 입니다.

결국 이것은 음성을 압축하는데 걸리는 시간이라고 이해 하시면 되겠습니다. 

참고로 음성의 수신측에서 음성의 재생(Play) 위해서는  압축된 음성을 동일한 코덱 으로 Decompress(압축해제) 해야 하는데 이때는 압축시의 지연 시간보다 1/5~1/10 정도의 시간 밖에 걸리지 않습니다.일반 데이터 압축툴도 그렇지만 압축보다는 압축해제가 빠릅니다

 

이제 여러 가지 코덱 들의 특징을 요약한  <1> 보도록 하지요.

 

코덱 종류

알고리즘

Bit Rate(B/W)

인코딩 타임

MOS

비고

G.711

PCM

64K

10ms

4.1

PSTN 통화 품질

G.726

ADPCM

16K,24K,32K

10ms

 

BW 많을수록 품질이 좋음

G.729

CS-ACELP

8K

10ms

3.9

VoIP 에서 가장 보편적인 코덱

G.728

LDCELP

16K

15ms

 

 

G.723

MLQ

6.3K,5.3K

30ms

3.9

MS 넷미팅의 기본 코덱

<1>
 

표에서 소개된 코덱 들은 ITU-T에서 표준으로 인정한 대표적인 보이스 코덱들입니다.코덱을 선택시의 주요 관점은 빠른 압축처리, 높은 압축율, 좋은 통화 품질이 되겠습니다.

이러한 관점으로 보자면 단연 G.729 눈에 띄지요?그래서 대부분의 VoIP 제품 벤더들은 자사 장비의 기본 코덱으로 G.729 사용합니다.

 

유저(User) 별도로 코덱을 지정하지 않았을땐 G.729 코덱으로 이용합니다.

 

그래서 다음 시간에는 G.729 코덱에 대하여 알아 보도록 하겠습니다.

[출처] VoIP 개요|작성자 스펀지밥

 

저번 칼럼에 이어서 오늘은 음성 코덱에 대해서 알아보겠습니다.

여러분들은 코덱 이란 용어가 익숙할 겁니다.

예로써 우리가 윈도 미디어 플레이어로 동영상을 재생할 해당 비디오의 압축 알고리즘에 맞는 코덱이 필요합니다.

원본 데이터의 압축 방식(인코딩) 대응되는 압축해제 (디코딩) 방식을 사용해서 영상을 재생하는 것이지요.

이렇듯 코덱 이란 코더과 디코더를 합성한 단어로 인코딩과 디코딩을 수행해 주는 알고리즘이나 그러한일을 수행하는 디바이스를 지칭합니다.

 

앞서 말한 PCM 이러한 음성 코덱 방식중 하나입니다.

이러한 게이트웨이의 음성 코덱의 실제적인 처리는 DSP 칩에서 이루어 집니다.

 

아래 사진을 보시죠.

 



                                                             <사진1>



                                                                <사진2>



                                                               <사진3>

 

그림 1 시스코 2600 라우터에 NM-2V 모듈이 설치되어 있는 사진 입니다.

그림 2 3 시스코의 NM-2V 모듈에 FXS,FXO 카드가 탑재된 모습의 사진 입니다.

모듈에서 반쯤 빠져나온 카드가 FXS 이고 완전히 들어가있는 카드는 FXO 카드 입니다.

CISCO 2600,3600,3700 라우터에 설치 할수 있는 보이스 모듈입니다.

그림상의 두장의 카드의 용도는 다음 기회에 설명 드리도록 하고

그림2 화살표가 가리키는 FXS 카드 위의 LUCENT 라고 프린트 되어있는 칩이 PCM 수행하는 칩입니다.

아래 그림3 NM 모듈상의 화살표가 가리키는 칩은 DSP 라고 프린트 되어있는 DSP 칩입니다. (림상으로는 글씨들이 안보이지만 실제로 그렇게 프린트 되어 있습니다.^^)

 

칩에서는 여러 가지 코덱 알고리즘에 따라 음성을 압축 합니다.

PCM 통해 음성을 디지털 시그널로 훌륭하게 변환할수 있는데 그밖의 코덱이 필요할까요?

 

한가지 문제를 극복하기 위함입니다바로 밴드위드죠.

 

비디오도 여러분이 아시는 MPEG2 MPEG4 코덱 이냐에 따라 화질과 밴드위드가 달라집니.

예를 들면 MPEG2 DVD급의 화질을 제공하지만 밴드위드는 1.5M~10M 정도가 필요하구요.

 

MPEG4 인터넷상의 스트리밍 파일을 위해 디자인 되어서 화질은 별로지만 밴드위드는 28.8Kbps~400Kbps 정도만 요구 됩니다.보이스도 앞서 말한대로 PCM에서 발생된 디지털 시그널의 요구 밴드위드는 통화당 64Kbps니다.

이것은 LAN 구간에서는 문제가 안되지만 WAN 구간에서는 무시할수 없는 밴드위드 입니다.

 

예를 들면 256K bps 전용회선에서 PCM (Call) 4 밖에 수용할수 없습니다.

이것은 음성 데이터만을 고려한 것으로 이러한 음성을 전달하기 위해서는 프레임 헤더, 패킷 헤더 부분이나 세그먼트 헤더와 같은 오버헤드가 필요하니(이런 작업을 인캡슐레이션 이라고 하지요) 제로는 4개의 통화 수용을 못합니다.

 

그러기에 제한된 밴드위드 상에 보다 많은 통화를 지원하기 위해서는 적절한 코덱을 사용하여 음성 압축하여야만 합니다.

 

예를 들면 G.729 코덱을 사용하면 64Kbps 음성을 8Kbps 압축 할수 있습니다.

 

오늘은 음성 코덱의 필요성에 대하여 알아 보았습니다.

다음시간에는 실제적인 음성 코덱의 종류와 특징을 알아보도록 하겠습니다.

 

[출처] VoIP 개요|작성자 스펀지밥

'개발 이야기 > VoIP' 카테고리의 다른 글

[VoIP개요] 음성의 패킷화(Packetization) 1  (0) 2008.09.18
[VoIP 개요] 음성코덱의 종류  (0) 2008.09.18
[VoIP의 개요] 음성변조  (0) 2008.09.18
VoIP의 필요성  (0) 2008.09.18
VoIP의 활용사례  (0) 2008.09.18
 
블로그 이미지

시반

시반(詩伴)이란 함께 시를 짓는 벗이란 뜻을 가지고 있습니다. 함께 나눌수 있는 그런 공간이길 바라며...

카테고리

분류 전체보기 (233)
개발 이야기 (73)
WEB2.0 (57)
DB2 (24)
MySQL (6)
오라클 (26)
기타 (44)
취미 (0)
잡담 (2)