728x90

G.711 코덱

#########################################################

G.711

 

G.711은 초당 64Kbps 즉,8000 Byte 이므로 20ms는 160Byte이다.

 

64kbps

64000bps

8000byte

1000ms : 8000byte = 20 : x

x = 160byte

 

#########################################################

G.729

 

G.729는 초당 8kbps 즉 1000byte 이므로 20ms는 20byte이다.

 

8kbps

8000bps

1000byte

1000ms : 1000byte = 20 : x

x = 20byte
[출처] G711, G729 payload 계산 (21세기 IT 리더) |작성자 khmon

 


G.711

 

음성에 있어서의 ITU 표준 / H.323환경에서 음성전달 전송방식의 기본 오디오 코덱 표준안이다. G.711은 64Kbps에서 3KHz의 전화급 오디오 품질을 제공하기 위하여 PCM 오디오 엔코딩과 미국, 유럽에서 주로 이용하는 U-law 또는 A-law 방식을 사용한다. 펄스코드변조 (Pulse Code Modulation, PCM) 방식은 샘플들을 미국 방식인U-law 또는 유럽 방식인 A-law 양자화 방식을 이용하여 한정된 재구성 세트 중의 하나로 양자화를 시켜주는 파형 코딩 방식이다. G.711 표준은 전화 대화 코딩을 위한 표준 방식으로 8Bit PCM을 정의하고 있다.

 

G.711 aLaw 방식

 

16비트 PCM값을 8bit G.711데이터 값으로 압축한다. Sign bit와 마지막 3bit를 값 무시. 나머지 12bit값을 8bit로 변환한다.

 

G.711 uLaw 방식

 

16비트 PCM값을 8bit G.711데이터 값으로 압축한다. Sign bit와 마지막 2bit를 값 무시. 나머지 13bit값을 8bit로 변환한다.

 

G.711 Optimization

 

* 공개 Source 기반을 바탕 연산횟수 최소화 
   Binary Search

 

* Mapping Table 작성 
  장점 - 빠른 처리속도

  단점 - 좀 더 많은 메모리 사용

 

* 구현 방식 비교(단위 tic) 
(음수)-32768 ~ 32767의 16비트 음성 Data 값을 G.711코덱에 통과시켜 압축된 Data를 table[0]~table[65536]에 할당하여 table을 미리 만들고 이 table을 이용하여 아래와 같이 인덱싱을 하였다(이중 인덱싱) Ddata[i] = table[SrcData[i]+32768]; 실제구현은 다음과 같이 0~32767의 값(table[32767]~table[65536]) 을 table[0]~table[32766]에 할당하고 (음수)-32768~(음수)-1의 값( table[0] ~table[32768])을 table[32767]~table[65536]에 할당하여 table을 만들고 이table을 이용하여 아래와 같이 인덱싱을 한다. Ddata[i] = table[SrcData[i]]; (기존의 SrcData[i] 는 short로 받았으나unsigned short(-32768=32769)로 받는다.)


[출처] G.711 코덱|작성자 까미유


/////////////////////////////

 

 

G.XXX 개요?

 

 - G.(지닷) 계열은 보이스 전용 코덱이다

 - 음성 통신 서비스용 오디오 압축/부호화 처리 기술에 대한 규정. G.711, G.722, G.723, G.728, G.729 등이 이에 속한다.

     이중 G.723은 다른 규정에 비해 구현하기가 복잡하다는 단점에도 불구하고,5.3/6.3Kbps의 높은 압축률을 자랑하기

     때문에 인터넷 폰 음성 압축의 표준으로 자리잡고 있다.  

 -   사람의 음성에 적합하게 설계된 알고리즘들이다.

    보이스 코덱도 비디오 처럼 압축률과 음성품질이 서로 Trade-Off이다.

     압축률이 높으면 음성품질이 떨어지고 압축률이 낮으면 음성품질은 좋다.

 - 사람의 음성 주파수는 70~7000Hz의 대역을 가지지만, 요해도를 해치지 않는 300~3400Hz를 음성 대역으로

    하고, 보호대역 감안하여 8KHz로 표본화한다
 - 음성신호를 디지털 신호로 부호화하는 방법에는 파형 부호화, 음원 부호화, 혼합부호화 방식이 있다.
 - 주요 기술은 PCM, ADPCM, SB-ADPCM, LD-CELP, CS-ACELP등이 있다

 

  - 코덱을 선택시의 주요 관점은 빠른 압축처리높은 압축율좋은 통화 품질이 되겠다.

     이러한 관점으로 보자면 단연 G.729  눈에 띄인다.

     그래서 대부분의 VoIP 제품 벤더들은 자사 장비의 기본 코덱으로 G.729 사용한다.

       

1. G.711  PCM(Pulse Coded Modulation)

  아날로그 신호를 표본화하고 표본화된 값을 양자화한 후이를 부호화하는 방식으로 입력된 값

그대로를 기록하는 방법(헤더만 붙이면 WAV파일이 된다)이다.

PCM 통해 음성의 디지털 시그널로 변환이 가능하다압축을 하지 않기

때문에 파일의 크기가 커서 ADPCM 방식을 주로 사용한다. CD DAT(Digital Audio Tape) 등에서

사용한다.

- G.711은 64Kbps PCM 기술을 이용한 음성부호화 방식의 표준이며, 1972년 ITU-T에 의해 권고됨.
  - 파형 부호화 방식의 하나로, 아날로그 음성신호를 표본화, 양자화, 부호화하여 디지털로 전송하고, 
    수신측에서 복호화함으로써 아날로그 음성신호를 재생시키는 방식임.
  - 양자화 잡음을 줄이기 위해 양자화 전에  압축하고, 복호화 후 신장하는 비선형 양자화 기법을 사용하는데, 
    북미 μ-Law 방식과 유럽 A-Law 방식이 있음.

64Kbps PCM 음성 코딩 기법을 규정한다.

   G.711에서 엔코딩된 음성은 PSTN에서나 PBX를 통해 디지털 음성 전달을 할 수 있는 올바른 포맷으로 만들어졌다.

   G-시리즈 권고의 ITU-T 표준에서 규정됐다. 

 

2. G.721  (ADPCM(Adaptive Delta PCM))

  ADPCM(Adaptive Delta Pulse Code Modulation)는 오디오 데이터를 압축하는 방식 중 하나이다.

  비록 동일한 ADPCM 방식이라고는 하지만 여러 가지 형태로 응용되고 있기 때문에ADPCM 파일에는 많은 종류가 있다.

 ADPCM 방식은 PCM 방식으로 녹음한 데이터를 압축하는 방법의 일종으로써하나의 신호를

 처리 하는데 있어 PCM 방식이 8비트의 데이터 비트를 필요로 한다면 ADPCM 방식에서는 4비트

 만으로도 데이터를 표현할 수 있다이를 위해서 ADPCM에서는 현재의 신호와 이전의 신호를 비교

 하여 두 신호간의 증감분만을 기록하는 방법을 이용한다.

 이때 4비트의 데이터 중 첫 번째 비트는 신호의 증가 또는 감소 여부를 표시하게 하고나머지

 3비트에 증감분만을 기록한다. 1980년대 중반 CCITT 32Kbps ADPCM G.721로 표준화를 하였다

 - G.721은 32Kbps ADPCM 기술을 이용한 음성부호화 및 압축방식의 표준이며, 1984년 ITU-T에 의해 권고됨.
 - ADPCM은 음성신호의 시간 상관성이 큰 특성을 이용하여 입력신호와 예측 값과의 
    차이를 4비트 양자화 함으로써 전송 비트율 을 감소시킴.
 - 적응 양자화기, 적응 예측기를 사용하여 PCM과 거의 동등한 음질을 얻음.

 

3. G.722  (SB- ADPCM)

  - Sub-Band ADPCM은 고품질의 현장감있는 음성통신을 위해 50Hz~7KHz 광대역을 64Kbps 이하의 고품질로
    부호화하는 기술로서 1986년 ITU-T에 의해 G.722로 권고됨.
  - 디지털 필터에 의해 저역(0~4 KHz)과 고역 (4~8kHz)으로 분할하여 처리(ADPCM)한 후 다중화시켜
    전송(64kbps로) 함
  - 음성 회의를 보완하는 멀티미디어 통신회의에 응용함.

 

4. G.728 (LD-CELP)

  - G.728은, 저속의 이동 통신을 위해 16Kbps로 부호화하면서도 G.721과 동등이상의 음질을 얻을 수 있다.
  - LD-CELP (Low Delay - Code Excited Linear Prediction) 기술을 이용한 음성 부호화의 표준이며, 
    1992년 ITU-T에 의해 권고 됨.
  - 인간의 청각 특성을 고려, 음성신호의 5샘플을 1 프레임으로 하는 10바이트만 전송함으로써 
    부호화 지연 2ms내에서 높은 음질을 구현함 (벡터 단위처리)

 

5. G.729 (CS-ACELP)

   - Conjugate Structure - Algebraic Code Excited Linear Prediction
   - 8kbps 로 G.721 보다 음질이 좋음.

 

6. G.723.1  (MP-MLQ (Multi Pulse - Mucti Level Quantization))

  - 6.3 Kbps로 G.721 보다 음질이 좋음
  - 5.3 Kbps ACELP 방식도 있으나 음질은 떨어짐.

  - H.324 계열 표준의 일부로 음성 신호나 오디오 신호 요소를 아주 낮은 비트 전송 속도로 압축하는데

    사용할 수 있는 압축 기법을 규정한다. 이 CODEC에는 두 가지 비트 전송 속도,

    즉 5.3Kpbs와 6.3Kpbs가 관련되어 있다.

    높은 비트 전송 속도는 MLMLQ 테크놀로지를 기초로 하며 다소 높은 품질의 사운드를 제공한다.

    낮은 비트 전송 속도는 CELP를 기초로 하고 있으며 시스템 설계자들이 좀더 융통성을 사용할 수 있다.

    G-시리즈 ITU-T 표준에서 규정됐다.

 

7. G.726 
  - 40Kbps, 32Kbps, 24Kbps, 16Kbps 등의 속도에서 이루어지는 ADPCM 코딩을 규정한다.

    PBX 네트워크가 ADPCM을 지원하도록 구성돼 있다면 ADPCM 엔코딩 음성을 패킷 음성 네트워크,

    PSTN 네트워크, PBX 네트워크 등의 사이에서 교환할 수 있다. G-시리즈 권고의 ITU-T 표준에서 규정됐다.

 

8. G.728 
  - 16Kbps로 진행되는 CELP 음성 압축의 시간 지연이 낮은 변이형을 규정한다.

    CELP 음성 코딩은 PSTN으로 또는 PSTN을 통해서 전달할 수있도록 공공 텔레포니 포맷으로 변환해야 한다.

    G-시리즈 권고의 ITU-T 표준에서 규정됐다. G.729 음성을 8Kbps 스트림으로 코딩하는 CELP 압축을 규정한다.

    이 표준에는 두 가지 변이형(G.729와 G.729 Annex A)이 있으며, 주로 계산상의 복잡성에서 차이가 있다.

    두 가지 변이형 모두 32Kbps ADPCM과 비슷한 음성 품질을 지니고 있다.

    G-시리즈 권고의 ITU-T 표준에서 규정됐다.

 

 

G.계열의 코덱

G.711 · G.718 · G.719 · G.722 · G.722.1 · G.722.2 · G.723 · G.723.1 ·G.726 · G.728 · G.729 · G.729.1 · G.729a )

 코덱 종류

 알고리즘(압축방식)

 속도 Bit Rate(B/W)

 인코딩 타임

 MOS

 비고

 G.711

 PCM

 64 Kbps

 10ms

 4.1

 PSTN 통화 품질

 G.726

 ADPCM

 16K,24K,32K

 10ms

 3.85

BW크면 품질 좋음

 G.722

 SB-ADPCM

 64 Kbps

 

 (오디오신호)

 멀티미디어 음성회의. AM 방송 품질

 G.723

 MLQ

 6.3K, 5.3K

 30ms

 3.9

 MS 넷미팅의 기본코덱

 G.723.1

 MPC-MLQ

 ACELP

 6.3 Kbps

 5.3 Kbps

 37.5 ms

 3.9

3.62

 이동통신, H.324 등 영상회의 단말
VOIP 포럼 추천

G.728

 LD-CELP

 16 Kbps

 15ms

 3.61

 디지털 이동통신, ISDN, FR망 음성용

 G.729

 CS-ACELP

 8 Kbps

 10ms

 3.9

 VoIP 에서 가장 보편적인 코덱

 

 

 

 

 

 

 

용어  개념에   

 

1. MOS

 

  - MOS Mean Opinion Score 약어이다.

    이것은 여러 코덱을 통하여 음성을 압축했을  해당 음성의 품질을 점수화  것이다.

 

<그림 1>

 

  <그림1>에서 보듯이 특정 음성(위 그림에서 Source)을 특정 코덱를 통하여 품질의 저하(Impairment)를 가하고

  품질을 평가하는 표본집단의 구성원들에게 들려준다.

  패널들은 Toll Quality(PSTN 통화품질) MOS = 4.0 값으로 기준을 잡고 각각의 코덱을통해 나온 음성의 퀄리티를 평가한다.

  MOS 값은 1~5 까지 이고 높을수록 퀄리티가 뛰어남을 의미한다.

 

 MOS 값은 코덱의 퀄리티를 표현하는 가장 보편적인 방법이다. 하지만 이 방식은 표본집단의 패널들에 의한 주관적인 평가가

 강하기 때문에 보다 객관적인 평가를 위하여 ITU-T에서 표준으로 정한 PSQM 방식을 이용하기도 한다.

 

 2. PSQM

 

<그림 2>

 

 <그림 2>에서 보이듯 이 방식은 사람에 의해서 평가가 되는 것이 아니라 PSQM 알고리즘에 기반한 서킷에 의해서 퀄리티가

  평가 되므로 MOS에 비해 객관적이다. PSQM 값은 0~6 까지 이고 MOS와 달리 값이 낮을수록 퀄리티가 좋은 이다.

 

 

3. 인코딩 타임코덱 지연 시간

 

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

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

   너무 지연이 심하면 무전기 통화가 될 것이다.? 따라서 이 값은 낮을수록(빠를수록)좋은 것이다.

 

  위 표에서 보듯, 인코딩 타임이란  DSP 칩에서 하나의 보이스 프레임 Output을 내보내는 데 걸리는 프로세싱 타임이다.

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

 

  참고로 음성의 수신측에서 음성의 재생(Play)을 위해서는  압축된 음성을 동일한 코덱으로 Decompress(압축해제해야

  하는데 이때는 압축시의 지연 시간보다 1/5~1/10 정도의 시간 밖에 걸리지 않는다.

  일반 데이터 압축툴도 그렇지만 압축보다는 압축해제가 더 빠르다.

 

출처: 각종 네이버 플로그 & 위키 자료 & 주변인물들

http://blog.naver.com/ppusarida/40060736075

 

 

/// http://blog.naver.com/appolon?Redirect=Log&logNo=80025280031 //인코딩 // 디코딩소스

 

 

//// http://cafe.naver.com/voipbcn.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=2606

도움되실것 같습니다...

 

g.711 코덱을 사용하는데 용량이 너무 큽니다.

 

솔루션을 바라지는 않습니다.

 

그냥 가는 방향좀 잡아 주세요.

 

729는 라이센스 때문에 쓰지를 못합니다.

 

그래서 711 을 용량을 줄여야 하는데, 엠펙으로 줄여 봤더니, 줄일수록 용량은 줄지만  음질이 나빠 지더라구요.

 

혹시 speex 라는 무료 코덱이 있던데  g.711 -> speex  뭐 이런식으로 하는건 불가능 한건가요??


728x90

+ Recent posts