티스토리 뷰
G.711 코덱정보 및 소스(인코딩 & 디코딩)
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)로 받는다.)
[출처] http://bebop.emstone.com/research/codecs/g711_codec/
G.711은 초당 64Kbps 즉,8000 Byte 이므로 20ms는 160Byte이다.
64kbps
64000bps
8000byte
1000ms : 8000byte = 20 : x
x = 160byte
코덱 종류 | 알 고리즘(압축방식) | 속도 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 | 30 ms | 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 에서 가장 보편적인 코덱 |
G.711, G.721, G.723 인코딩, 디코딩 소스( C 로 짠 소스입니다)
[출처] http://blog.naver.com/appolon/80025280031
- Total
- Today
- Yesterday
- javascript강의
- java 인스턴스
- bruno mars marry you
- 스크린세이버
- 자바스크립트강의
- eclipse svn
- 체크박스
- This Android SDK requires An...e ADT to the latest version
- Mysql명령어
- 이클립스 단축키
- MySQL
- java파일복사
- eclipse 단축키
- java파일삭제
- 불독맨션 좋아요
- 자바정의
- 타루 예뻐할께
- Marry You
- 자바 객체
- 문자열자르기
- jason marz im yours
- 펌방지해제
- sax vs dom
- jason maraz
- 갈릴레오 svn
- lol 서포터
- dom vs sax
- Split
- marry you 프로포즈
- java 객체
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |