The Journal of the Acoustical Society of Korea. 31 March 2014. 133-138
https://doi.org/10.7776/ASK.2014.33.2.133

ABSTRACT


MAIN

  • I. 서 론

  • II. VoIP 수신단 구조

  • III. 지터추정

  • IV. 플레이아웃 스케줄링

  • V. 실험 및 결과

  • VI. 결 론

I. 서  론

최근들어 IT기술의 발전과 인터넷통신망의 고도화, 스마트기기의 보급으로 VoIP를 이용한 영상 및 음성통화에 대한 기술개발 및 연구가 진행되어 오고 있다. 그러나 IP 네트워크 망을 이용하여 오디오 데이터를 실시간으로 전송하는 VoIP기반의 음성통화는 IP 네트워크 환경의 변동에 따른 지연, 지터, 패킷손실 등의 IP 네트워크 저해요소의 영향으로 통화음질저하가 발생한다.[1] IP 네트워크 지연변화인 지터에 의해 패킷들이 불규칙한 간격으로 수신단에 도착하게 되는데, 패킷이 갑자기 몰려오는 스파이크 상황과 패킷이 장시간 수신단에 도착하지 않는 상황을 발생시켜 버퍼링지연의 증가와 패킷손실을 발생시킨다. 이러한 문제를 해결하기 위하여 회귀적인 통계 수치를 통하여 지터를 추정하거나 고정된 지터분산 가중치를 사용하여 플레이아웃 스케줄링을 수행 하는 방법이 제안되어 오고 있다.[2-4] 플레이아웃 스케줄링이란, 수신단에 불규칙한 간격으로 도착한 패킷들로 인해 발생하는 버퍼링 지연이나 패킷손실들을 인지하지 못하도록 출력되는 시간의 길이를 조정하는 기술이다.

하지만 위의 방법들에서는 스파이크가 발생하는 불안정한 IP 네트워크 환경에서 정확한 지터를 추정하지 못하는 문제가 발생한다.

 본 논문에서는 이러한 문제를 해결하기 위하여 IP 네트워크 상황을 스파이크와 정상상태로 구분하고 IP 네트워크 상황에 적응적인 지터분산가중치를 사용하여 역동적으로 변화하는 IP 네트워크 상황에서도 지터추정에러를 최소화 할 수 있도록 하며, 이렇게 추정된 지터정보를 이용하여 플레이아웃 스케줄링을 수행함으로써 VoIP 통화 음질을 향상 시킨다.

본 논문은 다음과 같이 구성된다. 2장에서는 제안된 VoIP 수신단 구조를 설명하고, 3장과 4장에서는 제안된 지터추정과 플레이아웃 스케줄링 방법을 소개한다. 그리고 5장에서는 실험결과를 제시하고, 마지막으로 6장에서 결론을 맺는다.

II. VoIP 수신단 구조

본 논문에서 사용되는 VoIP의 시스템 구조는 먼저 송신단으로부터 전송된 20 ms 길이의 음성패킷[3,4]이 수신단에 도착하면, 지터버퍼에 음성패킷을 저장한다. 저장과 동시에 음성패킷의 시퀀스 번호를 이용하여 지터버퍼의 패킷들을 시퀀스번호에 맞게 정렬하며, 지터추정부에서는 수신된 패킷의 해더정보를 이용하여 IP 네트워크 지터를 추정한다. 지터버퍼에 저장된 음성패킷은 디코더를 통해 음성패킷을 요청받아 음성패킷이 존재한다면, 패킷을 디코더로 전달하여 패킷에 존재하는 음성프레임을 디코딩하여 음성분류기로 전달한다. 사용된 디코더는 패킷으로 전달된 데이터에서 음성프레임의 정보만을 추출하는 역할을 수행한다. 음성분류기는 전달 받은 음성프레임을 묵음, 무성음, 유성음으로 판별하여 음성프레임 저장부에 저장한다. 음성프레임 저장부에 저장된 음성프레임은 음성패킷이 존재하지 않거나 손실이 발생하였을 경우 손실은닉을 수행한다. 손실은닉 이후 정상 수신된 음성프레임 출력시에는 이전 손실은닉으로 생성된 음성프레임과의 불연속점을 제거하기위하여 병합과정을 수행한다.[5] 위의 손실은닉 및 병합이 아닌 경우에는 플레이아웃 스케줄링을 수행하여 버퍼링 지연과 패킷손실을 최소화하여 음질을 향상 시킬 수 있도록 음성프레임의 압축 및 정상출력 여부를 판단한다.

손실은닉, 병합, 플레이아웃 스케줄링을 거쳐 나온 음성프레임은 Digital-to-Analog 변환기를 통해 디지털 신호를 아날로그 신호로 변환 후, 음성출력장치를 통해 향상된 음질의 음성신호를 출력한다.

III. 지터추정

본 논문에서 제안한 지터추정은 네트워크 상태를 정상상태와 스파이크 상태로 구분하여 지터를 추정함으로써 스파이크 상태에서 정상상태로의 변화구간, 정상상태에서 스파이크 상태로의 변화구간에서 발생하는 지터 추정에러를 줄인다. 또한 네트워크 상황에 적응적인 지터분산 가중치를 사용하여 네트워크 변화에 빠르게 적응하는 장점을 가진다.

Fig. 1은 지터추정과정을 나타낸 블록도이다. 블록도에서 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICABFD.gif는 현재 추정된 네트워크 상황이다. 여기서 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICAC0D.gif는 송신부에서 생성된 패킷번호, http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICAC0E.gif는 수신부에 도착한 패킷번호이다.

http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICABCD.gif

Fig. 1. Block diagram of network jitter estimation.

제안된 방식에서는 현재 수신단에 도착한 패킷을 이용하여 현재 네트워크 지터를 계산하고, 스파이크와 정상상태 등의 현재 IP 네트워크 환경을 추정한다. 추정된 환경에 따라 IP 네트워크 지터 추정에 사용될 지터 분산 가중치를 조정하고, 계산된 네트워크 평균과 분산을 이용하여 다음 수신될 패킷의 네트워크 지터를 아래와 같은 4개의 단계로 추정한다.

(단계1) 현재 네트워크 지터 계산

현재 수신단에 도착한 패킷의 도착 및 생성시간을 비교하여, 패킷이 통과한 네트워크의 현재 지터 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICAC1F.gif를 식(1)과 같이 계산한다.

http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICAC6E.gif

(1)

수식에서 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICAC6F.gif는 송신부에서 전송된 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICAC8F.gif번째 패킷이 수신단에 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICAC90.gif번째로 도착하여 패킷이 겪은 IP 네트워크 지연시간, http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICACA1.gif는 송신부에서 전송된 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICACB2.gif번째 패킷이 수신단에 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICACB3.gif번째로 도착한 시간, http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICACC3.gifhttp://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICACD4.gif번째 도착한 패킷이 송신단에서 생성된 시간을 나타낸다.

(단계2) 현재 네트워크 상황 판단

정확한 지터를 추정하기 위해 현재 네트워크 상태를 지터의 변화범위가 크지 않은 안정적인 정상상태와 지터의 변화가 큰 불안정한 스파이크 상태로 구분하여 지터를 추정한다. 네트워크 상황이 정상상태라면, 식(2)를 통해 계산된 IP 네트워크 지연 변화를 스파이크 문턱값 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICAD33.gif과 비교함으로써 정상상태에서 스파이크상태로의 변화를 감지한다.

http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICAD91.gif,

(2)

http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICADE1.gif.

(3)

네트워크 상황이 스파이크 상태라고 판단되면, 우선적으로 스파이크 발생 이전의 정상상태 시점을 판단하고 스파이크 구간 설정 및 초기화를 통해 스파이크가 발생했음을 인지한다. 스파이크 발생이전의 정상상태 시점 판단에 있어서는 이전까지 수신된 패킷의 시퀀스번호 중 가장 큰 시퀀스 번호 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICADF1.gif를 정상상태의 끝으로 지정하고, http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICAE02.gif이상의 지연 후 도착한 현재 패킷의 시퀀스 번호 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICAE03.gif를 스파이크 상태의 끝으로 설정한다.

스파이크에서 정상상태로의 변화를 감지하기 위해서는 스파이크 구간에서 도착하지 않는 패킷의 수를 반영하는 정상상태 복원계수 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICAE33.gif 을 식(4)와 같이 설정하고, 설정된 정상상태 복원계수는 스파이크 끝점인 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICAE43.gif보다 작은 시퀀스 번호를 가지는 패킷이 수신단에 도착하면 정상상태 복원계수를 1만큼 차감한다.

http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICAE44.gif.

(4)

이는 스파이크 발생으로 인해 도착하지 못한 패킷 수가 줄었음을 나타내며, 정상복원계수가 0이 되면 스파이크 구간동안 도착하지 못한 패킷이 모두 도착하여 정상상태로 복원되었음을 나타낸다. 그리고 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICAE55.gif이후의 시퀀스 번호를 가지는 패킷이 들어온다면 스파이크 구간이 아직 진행 중이라 판단하여 스파이크검출 이후 들어온 패킷의 시퀀스 번호를 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICAE66.gif로 정의한다.

스파이크에서 패킷이 손실되었을 때, 정상상태 복원계수가 0이 되지 않아 정상상태를 검출하지 못하는 경우를 방지하기 위해 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICAE76.gif에서 패킷 1개의 길이인 20 ms로 나누어 스파이크에서 수신될 패킷개수의 최대값 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICAE87.gif를 설정하고, 스파이크 감지이후 수신단에 도착한 패킷의 수 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICAE97.gif를 카운팅하여 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICAEB8.gifhttp://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICAEC8.gif보다 커지면 스파이크상태에서 정상상태로 복원되었다고 판단한다.

(단계3) 지터분산가중치 조절

위 과정에서 판단된 네트워크 상태에 따른 지터분산 가중치 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICAED9.gif결정은 식(5)와 같다. 여기서  http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICAEF9.gifhttp://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICAF0A.gif는 각각 0~1의 값과 0.5~1.5을 가지는 가중치 변화 상수이며, 이전 추정된 지터와 실제 측정된 지터와의 오차를 구해 이를 0으로 하는 최적의 지터분산가중치 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICAF2A.gif에 따라 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICAF3B.gif를 조절한다.

스파이크 상황은 네트워크 상태를 예측할 수 없는 비정상 상태이며, 여기서 분산가중치의 조절은 정상상태로 변화하였을 때, 빠르게 정상상태의 네트워크 상태를 반영하기 어렵다. 따라서 스파이크 상태에서는 분산가중치를 갱신시키지 않는다.

http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICAF7A.gif

http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICAFE9.gif

http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICAFF9.gif

http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB029.gif

(5)

여기서 최적의 지터분산가중치 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB069.gif는 다음 식(6)과 같이 계산한다.

http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB089.gif,

(6)

여기서 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB099.gif는 지터의 평균, http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB09A.gif는 지터의 분산이며, 스파이크 상태에서는 패킷이 순서가 뒤바뀌어 수신되고 있는 상황이다. 이런 상황에서의 지터의 평균 및 분산 그리고 추정된 지터값은 비정상적인 스파이크상태에 따른 값으로 정상상태로 복원되었을 때, 정상상태에서의 지터추정에 대해 오류의 원인이 된다. 따라서 정상상태에서 스파이크상태로 변화 시, 지터의 평균과 분산 그리고 분산가중치 값을 저장하고 스파이크 상태에서는 이를 갱신하지 않으며, 스파이크에서 정상상태로 복원 시 저장된 지터의 평균과 분산 그리고 분산가중치값을 바로 사용하여 스파이크에서 발생하는 지터추정 오류를 최소화 한다.

(단계4) 지터 추정

마지막으로 위에서 계산된 지터의 평균과 분산 그리고 지터분산가중치를 이용하여 다음 식(7)과 같이 지터를 추정한다.

http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB0CA.gif.

(7)

IV. 플레이아웃 스케줄링

본 논문에서 제안하는 플레이아웃 스케줄링은 추정된 지터와 현재 수신단에 존재하는 음성프레임의 길이를 비교하여 네트워크 상황에 맞게 압축 및 정상출력을 판단함으로써 버퍼링 지연을 줄이고, 음성분류 결과를 이용해 묵음구간에서만 음성의 압축을 수행함으로써, 음성의 변형을 막아 음질을 향상 시킨다. 또한 묵음구간에서만의 압축수행이 효율적으로 버퍼링 지연을 줄이지 못하는 것을 해결하기 위해 연속된 묵음을 검색, 제거함으로써 효과적으로 버퍼링 지연을 줄이고 음질을 향상시킨다.

Fig. 2는 본 논문에서 제안하는 적응적 지터추정을 이용한 플레이아웃 스케줄링 블록도이다.

http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB129.gif

Fig. 2. Block diagram of playout scheduling.

블록도의 플레이아웃 스케줄링은 다음단계를 통해 압축수행과 정상출력을 판단한다.

(단계1 ) 1차 압축 및 정상출력 판단

http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB12A.gif번째 음성프레임이 플레이아웃 스케줄링에 입력되면 압축이 가능한 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB15A.gif번째 음성프레임이 존재하는지 확인하며, 압축 가능한 음성프레임이 존재하지 않는다면 정상출력을 수행한다.

(단계 2) 2차 압축 및 정상출력 판단

http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB17A.gif번째 음성프레임이 음성분류기를 통해 묵음으로 판별되었는지 확인하고, 묵음이 아니라면 정상출력을 수행한다.

(단계 3) 버퍼링 지연 최정화 수행 판단

단계 2에서 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB1AA.gif번째 음성프레임이 묵음이라면 버퍼링지연 최적화를 수행할 것인지, 압축 및 정상출력을 수행할 것인지 판단한다. http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB1CA.gif번째 음성프레임이전 묵음 구간 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB1EB.gif이 버퍼링지연 최적화 문턱값 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB1FB.gif보다 작고, 현재 수신단에서 활용할 수 있는 음성프레임의 길이 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB21B.gifhttp://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB24B.gif보다 크다면 버퍼링 지연을 압축만으로 줄일 수 있다고 판단되어 압축 및 정상출력 판단을 수행한다. 여기서 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB25C.gif은 추정된 지터, http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB26D.gifhttp://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB28D.gif의 범위설정을 위한 상수로 3~7의 값을 가진다. 반대로 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB29D.gifhttp://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB2AE.gif보다 크고, http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB2BF.gifhttp://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB2CF.gif보다 작다면 버퍼링지연 최적화를 수행한다.

(단계 4) 버퍼링 지연 최적화

버퍼링 지연 최적화를 위하여 현재 수신단의 음성프레임버퍼와 지터버퍼에서 연속된 묵음구간을 계산하고, 계산된 묵음구간이 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB2FF.gif번째 음성프레임까지라 면, http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB310.gif번째 음성프레임과 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB330.gif번째 음성프레임과 압축을 수행하여 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB350.gif에서 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB380.gif번째 음성프레임을 삭제시켜 버퍼링 지연을 효과적으로 줄인다. 버퍼링 지연 최적화 이후 최종 정상출력 및 압축을 판단한다.

(단계 5) 압축 및 정산출력 판단

압축 및 정상출력 판단에 있어서는 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB391.gifhttp://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB3C1.gif 보다 크다면 네트워크에서 비정상적으로 갑자기 패킷이 들어왔다는 것이며, 정상적인 네트워크 정보를 플레이아웃에 반영하지 못한다고 판단하여 정상출력을 수행한다. 여기서 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB3D1.gif는 이전 음성프레임의 길이, http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB3E2.gifhttp://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB3F3.gifhttp://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB403.gif의 비율값 설정을 위한 상수로 1~4의 값을 가진다. 반대로, http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB404.gifhttp://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB424.gif 보다 작고, http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB435.gifhttp://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB446.gif보다 작다면, 현재 네트워크 상황에 따라 수신단에 패킷이 쌓여 버퍼링 지연이 증가할 것이라 판단하여 압축을 수행한다. 여기서 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB456.gifhttp://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB467.gif의 범위 설정을 위한 상수로 2~6의 값을 가진다. 반대로 http://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB478.gifhttp://static.apub.kr/journalsite/sites/ask/2014-033-02/N0660330207/images/PICB498.gif보다 크다면, 수신단에 패킷이 원활하게 입출력될 것이라 판단하여 정상출력을 수행한다.

V. 실험 및 결과

Table 1. Statistics of network trace.

Test

Group

Average of Network Delay

(ms)

Variance of Network Delay (ms)

Network Packet Loss (%)

A

36.27

11.48

0

B

25.38

7.46

1.93

C

79.98

29.62

1.96

D

78.22

31.22

3.97

Table 2. The performance of the proposed algorithm.

Test

Group

Method

Total Buffering Delay (ms)

Packet Loss Rate (%)

PESQ

A

M1

36.37

3.08

2.803

M2

40.75

2.98

3.177

M3

57.94

1.82

3.927

PM

53.41

0.51

4.052

B

M1

28.87

1.38

2.857

M2

41.72

0.69

2.975

M3

34.11

0.10

3.703

PM

27.81

0.05

3.859

C

M1

53.74

14.01

2.312

M2

51.62

8.45

3.002

M3

84.46

6.97

3.157

PM

61.45

2.34

3.369

D

M1

53.61

15.29

2.241

M2

54.79

8.58

2.788

M3

84.46

7.41

2.717

PM

53.36

2.69

3.075

제안한 적응적 지터추정기반의 플레이아웃 스케줄링방법의 성능을 측정하기 위하여 실제 Wifi망에서 획득한 패킷의 지연 및 손실정보를 이용하여 총 4개의 실험군을 구성하였으며, 4개의 네트워크 환경에 대한 정보는 Table 1과 같다. 실험에는 각각 5명의 화자가 발성하는 10시간 길이의 음성신호를 16 Khz로 샘플링된 음성샘플을 사용하였으며, 성능 비교를 위해 Table 1의 각기 다른 4가지의 네트워크 환경에서 M1, M2, M3와 본 논문에서 제안한 알고리즘 PM의 평균 버퍼링 지연, 패킷손실률, PESQ[5]를 측정하여 Table 2에 나타내었다. PESQ는 ITU-T에서 지정한 객관적인 음질평가 지표이며, 1에서부터 5까지의 점수를 제공한다. 여기서 1은 들을 수 없을 정도로 낮은 품질을 의미하고 5는 매우 좋은 품질을 의미한다.

여기서 M1은 패킷의 도착시간과 출력시간의 차이를 이용한 플레이아웃 스케줄링 방법과 스파이크 감지 알고리즘을 결합한 방법,[2] M2는 Normalized mean square 기반의 플레이아웃 스케줄링과 스파이크 감지알고리즘을 결합한 방법,[3] M3는 K-Erlang분포를 따르는 지터 추정방법을 사용한 음성출력제어와 손실은닉방법을 사용하였다.[4]

Table 2의 실험결과에 따르면 실험군 A와 C에서 M1과 M2의 버퍼링 지연이 PM보다 낮은 반면에 PM보다 높은 패킷손실률과 낮은 PESQ를 보인다. 이는 M1, M2는 패킷의 빠른 출력에 치중되어 버퍼링 지연은 낮게 나오나 높은 음질을 제공하지 못함을 나타낸다. 반면, PM은 음질및 패킷손실률면에서 기존의 방식들보다 좋은 성능을 보이고 있다. 실험군 B에서 기존의 방식들과 PM에서 네트워트환경을 정확하게 추정하고 패킷이 손실되는 것을 방지하여 원래보다 낮은 패킷손실률을 보이며, 그중 PM이 가장 낮은 패킷손실률을 보이며, 버퍼링 딜레이도 가장 낮다. 그리고 PESQ가 가장 높은 수치를 보이므로 좋은 음질을 제공하는것을 알 수 있다. 실험군 D에서는 PM이 M1, M2, M3 방식들 보다 낮은 버퍼링 지연, 낮은 패킷손실과 높은 PESQ결과가 측정되어 더 좋은 성능을 보이고 있다. 실험군 전체 평균에서는 M1이 버퍼링지연 43.14 ms로 가장 낮게 나왔으나, PESQ는 2.55로 통화품질에서는 가장 낮은 결과를 보였다. 반면에 PM 방식은 버퍼링 지연은 49 ms이지만 가장 낮은 패킷손실률과 가장 높은 PESQ값으로 우수한 통화품질을 제공함을 보여준다.

VI. 결  론

본 논문에서는 VoIP 음질향상을 위한 적응적 지터추정 기반의 플레이아웃 스케줄링 방법을 제안하였다. 제안된 알고리즘은 총 4개의 실험군에 대해 평균 버퍼링 지연과 비교하여 가장 높은 PESQ 값과 낮은 패킷손실률을 보여주었다.

본 연구 및 실험 결과로 제안된 시스템은 불안정한 네트워크 환경에서 정확하게 지터를 추정하고 추정된 지터를 이용하여 플레이아웃 스케줄링을 수행함으로써 패킷손실과 버퍼링 지연을 최소화하고 높은 음질의 VoIP 서비스를 제공할 수 있다고 판단된다. 향후에는 스마트 TV와 모바일 폰으로 운영되는 다자간 화상회의 및 영상통화에 제안된 방식을 적용하고자 한다.

Acknowledgements

본 연구는 미래창조과학부 및 정보통신산업진흥원의 대학 IT연구센터 지원사업의 연구결과로 수행되었음(NIPA-2013-H0301-13-4005).

References

1
1.B. Sat and B. W. Wah, “Analyzing  voice quality in popular VoIP applications,” IEEE Computer Soc. IEEE Multimedia, 16, 46-59, (2009).
2
2.J. Pinto and K. J. Christensen, “An algorithm for playout of packet voice based on adaptive adjustment of talkspurt silence periods,” in Proc. of Conf. on LCN’99, 224-231 (1999).
3
3.A. Shallwani and P. Kabal, “An adaptive playout algorithm with delay spike detection for real-time VoIP,” in Proc. of IEEE CCECE 2003, 2, 997- 1000 (2003).
4
4.H. Li, G. Zhang and W. Kleijn, “Adaptive playout scheduling for VoIP using the K-Erlang distribution,” in Proc. of EUSIPCO, 1494-1498 (2010).
5
5.D. Dorran, Audio time-scale modification, (Ph.D. thesis, Dublin Institute of Technology, 2005).
페이지 상단으로 이동하기