Architecture
- 앱 개발자의 경우에는 보라색 API를 공부해야 한다. 우리가 다룰 것은 이 부분이다.
- 브라우저 개발자의 경우 하늘색 API를 공부해야 한다.
기본 용어들
많이 사용되는 용어들에 대한 설명.
각각을 깊게 배울 필요는 없으나 무엇을 뜻하는지는 알아야한다.
framework
설계의 기반이 되는 부분을 기술한 확장 가능한 기반 코드와, 사용자가 이 코드를 자기 입맛대로 확장하는 데 필요한 라이브러리가 통합되어 제공되는 형태
Codec
코덱(Codec)이란 컴프레져/디컴들프레져(Compressor/Decompressor), 코더/디코더(Coder/Decoder) 등의 용어로 풀이될 수 있다. 동영상이나 소리 등을 인코딩 또는 디코딩 할 수 있는 하드웨어나 소프트웨어를 일컫는다. 또 그 알고리즘을 가리키는 용어로 자주 쓰인다.
VolP
Voice over Internet Protocol의 약자로,
인터넷 프로토콜을 이용하여 소비자에게 음성 통신을 제공하는 시스템.
Jitter
패킷 지연(Delay)이 일정하지 않고, 수시로 변하고, 패킷 간의 간격이 일정하지 않는 현상.
진폭과 주파수를 갖는 10 Hz 이상의 비누적적인 단기적인 위상변동.
Latency
하나의 데이터 패킷을 한 지점에서 다른 지점으로 보내는데 소요되는 시간을 표현한 것.
VoiceEngine
다음은 음성에 관한 작업에 사용되는 webRTC 엔진이다.
iSAC / iLBC / Opus
iSAC:
음성 코덱.
A wideband and super wideband audio codec for VoIP and streaming audio.
iSAC uses 16 kHz or 32 kHz sampling frequency with an adaptive and variable bit rate of 12 to 52 kbps.
iLBC:
음성 코덱.
A narrowband speech codec for VoIP and streaming audio. Uses 8 kHz sampling frequency with a bitrate of 15.2 kbps for 20ms frames and 13.33 kbps for 30ms frames. Defined by IETF RFCs 3951 and 3952.
Opus:
다양한 범위의 bitrate encoding, frame size, sampling rate를 지원한다.
Supports constant and variable bitrate encoding from 6 kbit/s to 510 kbit/s, frame sizes from 2.5 ms to 60 ms, and various sampling rates from 8 kHz (with 4 kHz bandwidth) to 48 kHz (with 20 kHz bandwidth, where the entire hearing range of the human auditory system can be reproduced). Defined by IETF RFC 6176. NetEQ for Voice
다양한 jitter buffer와 error concealment 알고리즘은 jitter와 packet loss일 때도 latency를 최대한 줄이며, 높은 음성 품질을 유지하기 위해 사용된다.
Acoustic Echo Canceler (AEC)
에코제거를 위한 소프트웨어
The Acoustic Echo Canceler is a software based signal processing component that removes, in real time, the acoustic echo resulting from the voice being played out coming into the active microphone.
Noise Reduction (NR)
배경 잡음 제거
The Noise Reduction component is a software based signal processing component that removes certain types of background noise usually associated with VoIP. (Hiss, fan noise, etc…)
VideoEngine
카메라에서 네트워크를 걸쳐 스크린에 보이기까지 영상에 관한 작업을 진행하는 WebRTC 엔진이다.
VP8
영상 코덱
Video codec from the WebM Project. Well suited for RTC as it is designed for low latency.
Video Jitter Buffer
jitter, packet loss가 없어보이도록 하기 위한 버퍼
Dynamic Jitter Buffer for video. Helps conceal the effects of jitter and packet loss on overall video quality.
Image enhancements
이미지 성능 향상
For example, removes video noise from the image capture by the webcam.
Transport / Session
The session components are built by re-using components from libjingle, without using or requiring the xmpp/jingle protocol.
RTP Stack
A network stack for RTP, the Real Time Protocol.
특징: http://www.ktword.co.kr/abbr_view.php?m_temp1=1381
STUN/ICE 기기들의 연결을 위해, 커넥션을 연결하기 위한 방법들이다. IP, port 등.
A component allowing calls to use the STUN and ICE mechanisms to establish connections across various types of networks.
Session Management
An abstracted session layer, allowing for call setup and management layer. This leaves the protocol implementation decision to the application developer.