2. VoIP 품질지표 - MOS (Mean Opinion Score)
- 청취자들의 주관적인 음성품질의 1-5단계
측정법
- PESQ (Perceptual Evaluation of Speech
Quality)
- 원래 신호 대비 수신 신호의 패킷 손실율 기반
측정법
- E-Model
- 신호대 잡음비에서 음성신호,지연,코덱등의
손상값을 차감하여 종합음성 전송품질 R 계산
- PESQ에 지연시간이 추가되고 MOS의 장점을
흡수한 형태
3. Mobile
VoIP의 품질 환경
- 단말기의 다양한 하드웨어적 특성
- 통신 환경의 다양성
- 이동중의 환경 변화의 불확실성
- 모바일 UX의 다양성
4. WebRTC 품질관리의 범위
품질 요인 품질 기준
A BS S C E
단말기 성능
네트워크 종류
단말기간 지역적 거리
단말기와 서버간 지역적 거리
TURN 가용력 대 부하량
MOS, PESQ, E-Model
접속율 혹은 접속 실패율
Setup time
Latency or delay
통신 유지율
그리고 통화 품질(QOS or QOE)
5. WebRTC 품질
요소 -
Bandwidth
- 대역폭
- 네트워크상 가용한 최대 전송속도(Mbps
or Kbps)
- WebRTC엔진은 기본적으로
BWE(BandWidth Estimation) 엔진 탑재
-
6. WebRTC 품질
요소 - Packet
loss
- 실제 전송한 패킷수 대비 수신측에서 받지
못한 패킷의 수(퍼센트)
- WebRTC에서 number of packets lost =
기대했던 패킷 수 - 수신한 패킷 수
- 단일 packet loss도 중요하나 burst packet
loss도 중요
- MLBS (Mean Loss Burst Size): 연달아
발생하는 packet loss 크기의 평균값
- 01010101 = 1
- 11110000 = 4
7. WebRTC 품질
요소 - Delay
- 패킷을 보낸 시간과 받은 시간의 차이
- RTT (Round Trip Time)으로 측정
- delay와 latency는 동일하게 사용
8. WebRTC 품질
요소 - jitter
- 연속적인 패킷을 받은 시간(delay)의
변동폭
- WebRTC에서 정의하는 jitter 계산법
- D(i, j) = (Rj − Sj ) − (Ri − Si)
- J(i) = J(i − 1) + (|D(i − 1, i)| − J(i −
1))/16
- webrtc엔진은 음성/영상 엔진 각각 jitter
buffer를 갖고 있으며, 오류 보정과 packet
loss등 다양한 품질에서 품질을 보정하기
위한 용도로 사용
https://w3c.github.io/webrtc-stats/
9. WebRTC 품질
요소 - CPU
사용율 혹은 온도
- 다양한 사용자 경험에 영향을 미침
- 모바일에서 WebRTC사용의 최소 사양은
2.5Ghz, 2MB RAM이지만 장시간 사용시
CPU의 성능이 매우 중요
- 온도는 디바이스를 쥐는 경험에서도
중요하지만 더욱 중요한 것은 장시간
사용시 온도가 높아지고 결국
CPU스로틀링을 감지할 수 있는 수단이기
때문
http://ieeexplore.ieee.org/document/7231206/
13. WebRTC-
chrome stats
- googCertificate: local에서 사용하고 certificate 자체
용도로도 사용하는 DTLS certificate 정보
- googComponent: certificate 통계와 connection간의 접착제
역할을 수행합니다. 즉, 현재 active한 candidate 쌍들에 대한
링크를 가짐
- googCandidatePair: ICE Candidate 쌍
- 송수신된 패킷과 bytes의 전체 수(bytesSent,
bytesReceived, packetsSent; packetsReceived는
알수없는 이유로 missing)
- 현재 active한 connection인지 여부
- 송수신된 STUN 요청 및 수신의 수(requestsSent,
responsesReceived, requestsReceived,
responsesSent)
- googRtt: 마지막 STUN요청의 RTT
- googTransportType: 전송 type
- localCandidate/remoteCandidate
14. WebRTC-
chrome stats
- SSRC:peerconnection을 통해서 송수신되는 음성 혹은
영상 트랙 하나를 담당
- SSRC의 공통 값
- media: 음성인지 영상인지
- googTrackId: 대상 트랙 id
- googRTT: RTCP통해 측정된 RTT
- googCodecName: 코덱의 이름
- bytesSent, bytesReceived, packetsSent,
packetsReceived(송신인지 수신인지에 따라): 누적값.
이전값과 함께 적절한 계산 필요
- packetsLost: 잃어버린 패킷수
- SSRC- Voice
- audioInputLeve, audioOutputLevel(표준= audioLevel):
음성신호가 마이크 혹은 스피커에서 오는지 여부
- googJitterReceived/googJitterBufferReceived: 수신된
Jitter의 양 정보, jitter buffer state에 대한 정보
15. WebRTC-
chrome stats
SSRC video
- googNacksSent
- googPLIsSent
- googFIRsSent
- googFrameWidthInput, googFrameHeightInput,
googFrameRateInput: 입력된 frame size와 frame rate
- googFrameWidthSent, googFrameHeightSent,
googFrameRateSent: 실제 전송된 frame 정보
VideoBWE: bandwidth 예측값
- googAvailableReceiveBandwidth: 수신중인 영상을 위해
가용한 bandwidth
- googAvailableSendBandwidth: 송신중인 영상을 위한 가용한
bandwidth
- googTargetEncBitrate: 영상 인코더가 목표로 하는 bitrate
- googActualEncBitrate: 영상 인코더의 실제 초기 bitrate
- googTransmitBitrate: 실제 전송하는 bitrate