이하 첨부된 도면을 참조하여 본 발명을 구성하는 장치 및 동작 방법을 본 발명의 실시 예를 참조하여 상세히 설명한다.
네트워크 정체(congestion)로 인해 유발되는 지연(delay)은 실시간 비디오 데이터 전송시에 비디오 품질에 영향을 미친다. 이에 대한 적절한 조치를 위해 네트워크의 망 상황을 파악하는 것이 필요하다. 이에 종래에는 PHY 계층의 정보를 이용하여 무선망의 상황을 파악하는 방법을 사용하였으나 종래기술에 설명한 대로 문제점이 발생할 수 있다. 따라서 본 발명은 본 발명의 특징에 따라 무선망의 물리적인 상황은 물론 정체 상황도 파악하기 위해 MAC(Media Access Control) 계층의 정보를 활용한다.
와이브로(WiBro: Wireless Broadband) 모뎀(Modem)은 기지국(BS: Base Station)으로부터 승인(grant) 받은 데이터 레이트(data rate)를 제공할 수 있다. 업링크 데이터 레이트(Uplink data rate)는 기지국(BS: Base Station)의 업링크 MAC 스케줄링(scheduling)에 의해 정해진다. 이 경우 PHY 계층의 CQI(Channel Quality Indicator)를 통한 AMC(Adaptive Modulation and Coding)레벨 정보도 활용된다. MAC 스케줄링은 표준에 명시되어 있지 않아 구현상의 이슈(implementation issue)로 남겨져 있다. 이에 대하여 지금까지 몇몇의 관련 연구가 진행되었는데 요 약하면 다음과 같다.
- 서비스별 각각의 큐(queue) 존재
- 같은 QoS(Quality of Service) 서비스별 공평(fair)하게 큐잉(queuing)
- 다른 QoS 서비스별 가중치(weight)를 가미하여 큐잉
즉, 와이브로는 여러 QoS 서비스를 지원하기 위해 WFQ(weighted fair queuing)와 같은 공평 큐잉(fair queuing) 방식으로 MAC 스케줄링을 수행한다. 상기 공평 큐잉은 처리해야 할 서비스 개수가 늘어날수록, 또한 서비스 트래픽(traffic)이 클수록, 해당 서비스의 전송에 필요한 시간이 늘어난다. 비트율 제어를 수행하는 비디오 인코딩 출력 비트율은 고정적이라 볼 수 있으므로 설정된 비트율보다 승인된(granted) 업링크 데이터 레이트가 적다면 해당 단말(MS: Mobile Station) 입장에서는 네트워크 정체(congestion) 상황으로 판단할 수 있다. 본 발명은 이러한 분석 아래 업링크 데이터 레이트 만을 활용하여 네트워크의 상황을 판단하고 적절한 비디오 인코딩 비트율을 설정한다.
비디오 품질은 인코딩시 주어진 비트율이 높을수록 좋다. 하지만 네트워크 정체 상황에서는 비트율이 높을수록 PLR(Packet Loss Ratio)이 높아지게 되고 결과적으로 비디오 품질이 떨어진다. 따라서 높은 비디오 품질을 위해 네트워크 상황에 따라 비트율을 적절히 조절해야 한다. 본 발명에서는 와이브로 단말기 사이즈를 고려해 비디오 사이즈를 QVGA(320*240)로 정했으며 비트율 설정범위를 64kbps, 128kbps, 192kbps, 256kbps와 같이 4단계로 구분한다. 상기의 비트율 설정범위는 목표로 하는 비디오 사이즈와 서비스 망의 접속 속도를 감안하여 적절하게 설정될 수 있다.
도 1은 본 발명의 일 실시 예에 따른 와이브로 시스템에서 영상 데이터 전송을 위한 출력 비트 레이트 설정 동작 흐름도이다. 도 1을 참조하여 본 발명의 일 실시 예에 따른 와이브로 시스템에서 영상 데이터 전송을 취한 출력 비트 레이트 설정 동작을 설명하기로 한다.
도 1을 참조하면, 처음 210단계에서 UL value 값을 계산한다. 상기 UL value 값은 업링크 상태 값으로서, 본 발명의 일 실시 예에서 네트워크의 상황을 파악하기 위해 제안하는 단위 시간 동안의 업링크의 망 상태를 나타내는 값이다. 이는 기본적으로 업링크 데이터 레이트로 계산한다. 와이브로 업링크 데이터 레이트는 패킷화(Packetization)와 HARQ 때문에 인코딩시 설정하는 비디오 비트율보다 크다.
도 2는 본 발명의 일 실시 예에 따른 와이브로 시스템에서 영상 데이터 전송을 위한 출력 비트 레이트 설정 방법에서 전송되는 비디오 스트림(Video stream)의 스택 구성도이다. 상기 비디오 스트림은 네트워크 전송을 위해 도 2에 도시한 바와 같이, RTP(Real-time Transport Protocol), UDP(User Datagram Protocol), IP(Internet Protocol), MAC(Media Access Control), HARQ(Hybrid Automatic Repeat reQuest), PHY(Physical)로 패킷화된다. 상기 비디오 스트림은 IPv4 사용시 RTP/UDP/IP 에 부가적으로 40 바이트가 추가되며, IPv6 사용시에는 60 바이트가 추가된다. 또한 HARQ를 사용하게 되면 무선 채널의 상황에 따라 재전송해야 할 비디오 스트림이 부가적으로 늘어난다.
도 1에 도시된 바와 같이 최종적으로 비디오 인코딩 비트율을 올릴지 내릴지를 결정하기 위해 특정 임계값(Thup, Thdown)들을 미리 설정하기 때문에 업링크 데이터 레이트는 이러한 부가적인 바이트 추가분을 고려하여 정규화시켜야 한다. 또한 업링크 데이터 레이트는 비디오 인코딩시 설정한 비트율에 따라 비례하므로 상기 비디오 인코딩시 설정한 비트율로 나눠준다. 따라서 상기 업링크 상태 값(UL value )은 하기의 수학식 1과 같다.
상기 수학식 1에서 UL value (t) 단위 시간당 업링크 상태 값이고, UL bits (t)는 단위 시간당 업링크로 보내진 데이터의 비트 수를 의미하고, α는 상위 비트레이트로 갈 수 있도록 유도하는 값이며, 상기 T s 는 단위 시간을 의미하며, 상기 V BitRate 는 설정된 비디오 인코딩 비트율을 나타내고, R norm 은 비디오 스트림에 부가적으로 추가된 바이트에 대한 정규화 값을 나타낸다.
계속해서 도 1을 참조하면, 상기 210단계에서 업링크 상태 값(UL value )을 계산한 다음 215단계에서는 일정 구간 동안 업링크 상태 값의 평균값인 AvgUL value 값을 계산한다.
단위 시간당 계산된 업링크 상태 값은 변화가 심하다. 이러한 잦은 변화는 네트워크 상황을 반영하기보다는 MAC 스케줄링과 HARQ 에 의한 국소적인 변화로 기인할 가능성이 높다. 따라서 본 발명에서는 이러한 문제를 해결하기 위해 일정 구간 동안 업링크 상태 값의 평균값(AvgUL value )을 계산한다. 평균을 취하는 구간이 길수록 변화의 폭은 줄어들지만 반대로 네트워크 상황에 대한 즉각적인 반응은 둔해진다. 따라서 적절한 크기의 버퍼(buffer)가 필요하다. 예를 들어 UL value 의 최근 10개까지 평균을 취할 수 있도록 버퍼의 크기를 설정할 수 있다. 버퍼 내의 업링크 상태 값의 평균값은 하기의 수학식 2와 같다.
상기의 수학식 2에서 상기 AvgUL value 는 업링크 상태 값들의 평균값이고, 상기 N avg 는 버퍼 내의 평균을 취할 유효한 업링크 상태 값들의 개수를 나타내는데 이는 하기의 수학식 3과 같다.
상기 수학식 3에서 상기 N avg 는 버퍼 내의 평균을 취할 유효한 업링크 상태 값들의 개수이고, 상기 N B 는 버퍼의 크기를 의미하며, N VL 은 비디오 비트율이 바뀌지 않고 유지되면서 계산된 업링크 상태 값들의 개수를 나타낸다.
상기 수학식 2에 의해 구해진 AvgUL value 는 네트워크의 상황을 나타낸다. 만약 정체(congestion)없이 네트워크 상황이 좋다면 AvgUL value 값은 1 근처에 머무르게 되고 반대로 네트워크 상황이 나쁘면 1 보다 작은 값을 갖게 된다.
다음 220단계에서는 업링크 상태 값들의 평균을 취한 총 시간이 미리 설정된 안정된 시간(stable time)만큼 소요됐는지 판단한다. 버퍼에 UL value 의 개수가 작을수록 AvgUL value 의 변화는 심하여 새로운 비트율 설정을 위한 파라미터로 신뢰할 수 없으므로, 안정화되기까지 일정 시간 동안 새로운 비트율 설정을 유보해야 한다. 따라서 네트워크 상황 파악의 정확성을 위해 적절한 시간을 stable time으로 미리 설정한다.
상기 220단계에서 판단 결과 UL value 의 평균을 취한 총 시간이 안정된 AvgUL value 값을 얻을 수 없는 짧은 시간이면 225단계로 진행하여 충분한 시간만큼 UL value 값을 더 얻을 수 있도록 버퍼를 업데이트 하고 210단계로 진행하여 210, 215단계를 반복 수행한다.
상기 220단계에서 UL value 의 평균을 취한 총 시간이 미리 설정된 안정된 시간 만큼 소요됐다면, 230단계로 진행하여 상기 215단계에서 계산된 AvgUL value 값을 제1 임계값 Thup과 비교한다. 상기 판단 결과 AvgUL value 값이 제1임계값 Thup보다 크면 무선망의 상태가 좋다고 판단한다. 따라서 240단계로 진행하여 비디오 비트율인 VBitRate 값을 높이고, 250단계에서 VBitRate 값의 최대값을 제한한다. 상기 230단계에서 AvgUL value 값이 제1임계값 Thup보다 크지 않으면 235단계로 진행하여 AvgUL value 값이 제2임계값 Thdown보다 작은지 판단한다. 상기 판단 결과 AvgUL value 값이 Thdown보다 작지 않으면 225단계로 진행한다. 상기 235단계에서 225단계로 진행하게 되면 비디오 비트율이 바뀌지 않고 유지하게 된다. 따라서 버퍼를 업데이트하여 새로운 UL value 를 받을 수 있도록 공간을 확보한다.
상기 235단계에서 AvgUL value 값이 Thdown보다 작으면 무선망의 상태가 좋지 않다고 판단하여 245단계로 진행하여 비디오 비트율인 VBitRate 값을 줄이고 250단계에서 VBitRate 값의 최소값을 제한한다.
상기 230단계 및 235단계에서 사용되는 비트율 설정을 판단하게 되는 임계값 Thup과, Thdown은 N avg 에 의해 정해지는데, 제1임계값은 하기의 수학식 4와 같고 제2임계값은 하기의 수학식 5과 같다.
또한 상기 240단계 및 245단계에서 수행하는 비트율 설정은 하기의 수학식 6를 사용하여 설정된다.
상기 수학식 6에서 64k, 256k의 k는 1000배를 뜻한다.
상기 240단계 및 245단계에서 비트율을 조절할 경우, 250단계에서 비트율을 제한하는 것은 상기 수학식 6에서 비트율을 낮추거나 높일 경우에 min{}과 max{}를 사용하여 한계를 설정하는 것을 의미한다. 따라서 비트율을 높일 경우에는 250단계에서 비트율을 최대 256k까지 높일 수 있도록 제한하고, 비트율을 낮출 경우에는 250단계에서 비트율을 최소 64k까지 낮출 수 있도록 제한한다.
상기 240단계 및 245단계를 수행하여 비디오 비트율 VBitRate 값이 바뀌게 되면 버퍼에 저장되어 있는 업링크 상태 값(UL value )을 모두 삭제하고 새롭게 저장한다. 이는 상기 수학식 1에서 보듯이 V BitRate 이 바뀌면 업링크 상태 값이 크게 변하기 때문이다.
다음 255단계에서는 상기의 과정으로 설정된 VBitRate 값을 사용하여 비디오 인코더를 설정한다.
덧붙여, 상기의 방법으로 비디오 비트율을 설정할 경우, 네트워크 상황이 좋으면 AvgUL value 은 1 근처의 값을 유지하므로 비트율을 상향 조정하는 것이 어렵게 된다. 예를 들어 초기에 설정된 비디오 비트율이 128kbps라 할 때, 네트워크 상황이 좋으면 비디오 품질 향상을 위해 192kbps, 256kbps로 상향 조정하는 것이 필요한데, 이러한 것이 어렵게 된다. 이러한 문제를 해결하기 위해 본 발명은 본 발명의 특징에 따라 UL value 값을 Th up 수준을 유지하게끔 α값을 조정한다. 이렇게 함으로서 네트워크 상황이 좋으면 비디오 비트율은 최대치까지 커질 것이고, 반대로 네트워크 상황이 안 좋아지면 수학식 6에 의해 비디오 비트율은 최소치까지 낮아질 것이다.
- 네트워크 시뮬레이터를 이용한 비디오 전송 품질 테스트
상기에 설명한 본 발명의 일 실시 예를 네트워크 시뮬레이터를 활용하여 실험하여 본 발명의 성능을 검증하고자 한다. 네트워크 정체 유무에 따른 본 발명의 실시간 비디오 전송 품질을 실험하기 위해 네트워크 시뮬레이터 'QualNet version 3.9.5'를 사용하고, 네트워크 정체 유무에 합당한 가상 와이브로 망을 구성한다. 본 발명의 실험을 위해 사용한 변수 값은 하기의 표 1과 같다.
| 변수 |
설정 값 |
|
T
s
|
0.5
sec
|
|
R
norm
|
1.27
|
|
α
|
1.15
|
|
N
B
|
10
|
|
Stable
time
|
5
sec
|
|
Th
up
|
1.1
|
|
Th
down
|
0.9
|
|
Initial
V
BitRate
|
192
kbps
|
상기 표 1에서 Stable time은 비디오 비트율이 바뀐 후 AvgUL value 이 안정화되는데 필요한 시간을 뜻한다. T s 는 0.5초임을 감안할 때 버퍼의 크기(N B )인 10만큼을 채워야 Stable time인 5초가 되기 때문에, 수학식 4는 항상 버퍼가 N B 만큼 가득 채워진 상황에서 계산된다.
상기 수학식 3에 의하여 N avg 는 N B 가 되고, 상기 수학식 4, 5에 의하여 Th up 은 1.1, Th down 은 0.9가 된다.
이러한 변수값으로 하기에 기술하는 3가지의 가상 와이브로 망 시나리오에서 제안한 알고리즘이 고정 비디오 비트율 대비 어느 정도 향상되는지를 알아본다. 이때 모든 시나리오 내의 단말은 BE(best-effort) QoS 서비스이다. 같은 QoS 서비스 내 MAC 스케줄링은 공평(fair)함으로 가장 열악한 QoS 서비스인 BE에서 실험을 수행하였다.
1)와이브로 시나리오 1: 낮은 정체(Low congestion), 이동성 없음(No mobility)
도 3은 본 발명에 따른 첫 번째 비디오 데이터 전송 품질 테스트를 위한 시뮬레이터 환경을 개략적으로 도시한 도면이다. 첫 번째 실험에서 사용한 시나리오에 대한 시뮬레이터 환경은 도 3에 도시한 바와 같다. 도 3을 참조하면, 시스템 대역폭(System Bandwidch)은 8.75MHz이고, TDD 프레임 길이(frame length)는 5ms, FFT 포인트(points)는 1024, TTG(Tx/Rx Transition Gap)는 87.2us,74.4us이고, 사이클릭 프리픽스의 비(Ratio of cyclic prefix)는 1/8, DL:UL 비(Ratio)는 27:15이다. 단말은 총 8개이고 배경 트래픽(background traffic) 및 실험 조건은 하기의 표 2와 같고 그에 대한 결과는 하기의 표 3에 나타나 있다.
| 실험 조건 |
설정 값 |
| Simulation time |
100 sec |
| MS1-MS2, MS3-MS4 |
10~100 sec 동안 각각 양방향 CBR 500kbps |
| MS3-MS4 |
20~60 sec and 80~100 sec 동안 양방향 CBR 500kbps |
| MS5-MS6 |
10~100 sec 동안 실시간 비디오 스트림 @ fixed 256kbps |
| MS7-MS8 |
10~100 sec 동안 제안 알고리즘 및 4가지 fixed 비디오 비트율을 적용한 실시간 비디오 스트림 |
| MS7-MS8 |
PSNR (dB) |
PLR |
| 평균값 |
향상정도 |
평균값 |
향상정도 |
| Proposed algorithm |
30.721 |
- |
0.0105 |
- |
| Fixed video bit rate |
64kbps |
24.589 |
6.1 |
0.0098 |
-0.1% |
| 128kbps |
27.830 |
2.9 |
0.0099 |
-0.1% |
| 192kbps |
29.917 |
0.8 |
0.0084 |
-0.2% |
| 256kbps |
30.796 |
-0.1 |
0.0088 |
-0.2% |
사용된 와이브로 시나리오의 정체(congestion)가 낮아서 상기 표 3의 결과에서 나타나듯이 Fixed video bit rate 의 경우, 비트 레이트(bit rate)가 높을수록 비디오 품질 척도인 PSNR(Peak Signal to Noise Ratio)값은 증가함을 알 수 있다. Fixed video bit rate 대비 제안한 알고리즘은 거의 모든 경우에서 향상된 결과를 나타낸다. 이때 제안된 알고리즘의 초기 V BitRate 가 192kbps인 관계로 fixed video bit rate가 256kbps일 때보다는 낮은 PSNR을 나타낸다. 또한 PLR 결과는 1% 미만으로 거의 비슷했다.
2) 와이브로 시나리오 2: 낮은 정체(Low congestion), 이동성(Mobility)
도 4는 본 발명에 따른 두 번째 비디오 데이터 전송 품질 테스트를 위한 시뮬레이터 환경을 개략적으로 도시한 도면이다. 두 번째 실험에서 사용한 시나리오에 대한 시뮬레이터 환경은 도 4에 도시한 바와 같다. 도 4를 참조하면, 시스템 대역폭(System Bandwidch)은 8.75MHz이고, TDD 프레임 길이(frame length)는 5ms, FFT 포인트(points)는 1024, TTG(Tx/Rx Transition Gap)는 87.2us,74.4us이고, 사이클릭 프리픽스의 비(Ratio of cyclic prefix)는 1/8, DL:UL 비(Ratio)는 27:15이다. 단말은 총 8개이고 배경 트래픽(background traffic) 및 실험 조건은 하기의 표 4와 같고 그에 대한 결과는 하기의 표 5에 나타나 있다.
| 실험 조건 |
설정 값 |
| Simulation time |
200 sec |
| MS1-MS2, MS3-MS4 |
10~200 sec 동안 각각 양방향 CBR 500kbps |
| MS3-MS4 |
20~60 sec and 80~120 sec 동안 양방향 CBR 500kbps |
| MS5-MS6 |
10~200 sec 동안 실시간 비디오 스트림 @ fixed 256kbps |
| MS7-MS8 |
10~200 sec 동안 제안 알고리즘 및 4가지 fixed 비디오 비트율을 적용한 실시간 비디오 스트림 |
| MS5, MS7 |
40 km/h 이동, No handover |
| MS6, MS8 |
40 km/h 이동, handover 발생 |
| MS7-MS8 |
PSNR (dB) |
PLR |
| 평균값 |
향상정도 |
평균값 |
향상정도 |
| Proposed algorithm |
30.114 |
- |
0.0104 |
- |
| Fixed video bit rate |
64kbps |
24.601 |
5.5 |
0.0120 |
0.2% |
| 128kbps |
27.917 |
2.2 |
0.0097 |
-0.1% |
| 192kbps |
29.475 |
0.6 |
0.0127 |
0.2% |
| 256kbps |
30.326 |
-0.2 |
0.0176 |
0.7% |
두 번째 실험에서 사용된 와이브로 시나리오에서는 무선망의 정체가 낮아 상기 표 5에 나타난 바와 같이 Fixed video bit rate의 경우, 비트 레이트가 높을수록 PSNR 값은 증가함을 알 수 있다. Fixed video bit rate 대비 제안한 알고리즘은 거의 모든 경우에서 향상된 결과를 나타낸다. 이때 제안된 알고리즘의 초기 V BitRate 가 192 kbps인 관계로 Fixed video bit rate이 256 kbps 일때 보다는 낮은 PSNR을 나타낸다. 또한 PLR결과는 1% 미만으로 거의 비슷했다.
3) 와이브로 시나리오 3: 높은 정체(High congestion), 이동성(Mobility)
도 5는 본 발명에 따른 세 번째 비디오 데이터 전송 품질 테스트를 위한 시뮬레이터 환경을 개략적으로 도시한 도면이다. 세 번째 실험에서 사용한 시나리오에 대한 시뮬레이터 환경은 도 5에 도시한 바와 같다. 도 5를 참조하면, 시스템 대역폭(System Bandwidch)은 8.75MHz이고, TDD 프레임 길이(frame length)는 5ms, FFT 포인트(points)는 1024, TTG(Tx/Rx Transition Gap)는 87.2us,74.4us이고, 사이클릭 프리픽스의 비(Ratio of cyclic prefix)는 1/8, DL:UL 비(Ratio)는 27:15이다. 단말은 총 32개이고 배경 트래픽(background traffic) 및 실험 조건은 하기의 표 6과 같고 그에 대한 결과는 하기의 표 7에 나타나 있다.
| 실험 조건 |
설정 값 |
| Simulation time |
200 sec |
| MS1a→MS1b, ..., MS13a→MS13b |
10~200 sec 동안 각각 CBR 130kbps |
| MS1a←MS1b, ..., MS13a←MS13b |
10~200 sec 동안 각각 CBR 130kbps |
| MS14a-MS14b |
20~70 sec and 130~170 sec 동안 양방향 CBR 500kbps |
| MS15a-MS15b |
10~200 sec 동안 실시간 비디오 스트림 @ fixed 256kbps |
| MS16a-MS16b |
10~200 sec 동안 제안 알고리즘 및 4가지 fixed 비디오 비트율을 적용한 실시간 비디오 스트림 |
| MS15a, MS16a |
60 km/h 이동, handover 발생 |
| MS16a-MS16b |
PSNR (dB) |
PLR |
| 평균값 |
향상정도 |
평균값 |
향상정도 |
| Proposed algorithm |
27.768 |
- |
0.0645 |
- |
| Fixed video bit rate |
64kbps |
24.542 |
3.2 |
0.0140 |
-5.1% |
| 128kbps |
27.119 |
0.6 |
0.0327 |
-3.2% |
| 192kbps |
25.656 |
2.1 |
0.1660 |
10.2% |
| 256kbps |
22.400 |
5.4 |
0.2828 |
21.8% |
세 번째 실험에서 사용된 와이브로 시나리오에서는 무선망의 정체(congestion)가 크다. 따라서 표 7의 결과에서 PLR이 모두 수 퍼센트에서 수십 퍼센트 사이의 값을 가지는 것을 알 수 있다. Fixed video bit rate의 경우, 비디오 비트율이 128bkps일때, 비디오 비트율과 PLR의 trade-off 관계에서 최적의 비디오 품질을 나타냄을 알 수 있다.
본 발명의 일 실시 예에 따른 알고리즘은 모든 경우에 있어서, Fixed video bit rate 보다 향상된 결과를 나타낸다. 이는 네트워크 상황이 나빠지면 적응적으로 비디오 비트율을 낮추고 네트워크 상황이 호전되면 비디오 비트율을 높여서 최상의 비디오 품질을 얻게 된 것이다.
결론적으로 제안된 알고리즘을 통한 적응적 비디오 비트율 설정은, 네트워크 정체가 발생한 경우 및 발생하지 않은 경우 모두에 대해, Fixed video bit rate의 4가지 경우보다 더욱 향상된 성능을 보인다.
덧붙여 본 발명에서 제안한 알고리즘은 와이브로에서 단말이 개인 방송, 화상 통화 등, 실시간 비디오 스트리밍을 전송하고자 할 때 적용할 수 있다. 또한 본 발명의 일 실시 예에서는 송신 측의 망 상황만을 고려한다. 그것은 네트워크 정체가 심화 될수록 수신 측으로부터 오는 망 관련 정보가 느리게 되기 때문이다. 하지만 필요시에는 송신 측과 같은 방식을 수신 측에 적용하여 수신 측의 정보를 함께 고려할 수도 있다.