KR101637840B1 - 토큰 버킷 기법을 이용한 비디오 스트리밍 서비스 제공 시스템 및 방법 - Google Patents

토큰 버킷 기법을 이용한 비디오 스트리밍 서비스 제공 시스템 및 방법 Download PDF

Info

Publication number
KR101637840B1
KR101637840B1 KR1020150089237A KR20150089237A KR101637840B1 KR 101637840 B1 KR101637840 B1 KR 101637840B1 KR 1020150089237 A KR1020150089237 A KR 1020150089237A KR 20150089237 A KR20150089237 A KR 20150089237A KR 101637840 B1 KR101637840 B1 KR 101637840B1
Authority
KR
South Korea
Prior art keywords
video
value
packet
token bucket
transmitted
Prior art date
Application number
KR1020150089237A
Other languages
English (en)
Inventor
김동회
이현노
Original Assignee
강원대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 강원대학교산학협력단 filed Critical 강원대학교산학협력단
Priority to KR1020150089237A priority Critical patent/KR101637840B1/ko
Application granted granted Critical
Publication of KR101637840B1 publication Critical patent/KR101637840B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/215Flow control; Congestion control using token-bucket
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2416Real-time traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L65/4069
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명의 스트리밍 방식으로 비디오 패킷을 송신하는 송신단과, 상기 송신단에서 송신하는 비디오 패킷을 수신하는 수신단에서의 비디오 스트리밍 서비스 제공 방법에서, 상기 송신단에서 전송할 비디오의 각 프레임 크기 정보를, 전송할 수 있는 최대 패킷의 크기로 나누어 기록한 비디오 정보 파일을 생성하는 단계, 상기 수신단에서 상기 송신단에서 전송되는 비디오 패킷의 크기 정보를 수신하고, 이 정보를 기반으로 토큰 버킷(Token bucket) 파라미터를 적응적으로 설정하는 단계 및 상기 수신단에서 설정된 토큰 버킷 파라미터로 토큰 버킷 기법을 적용하여 비디오 패킷을 수신하는 단계를 포함한다.
본 발명에 의하면 토큰 버킷 기법을 적용한 비디오 스트리밍 서비스에서 자동으로 토큰 버킷 파라미터를 설정할 수 있으므로, 기존의 수동 설정 방식에 비하여 적절한 토큰 버킷 파라미터를 찾기 위한 시간 소모를 방지할 수 있다는 효과가 있다.

Description

토큰 버킷 기법을 이용한 비디오 스트리밍 서비스 제공 시스템 및 방법 {System and method for providing video streaming service using token bucket scheme}
본 발명은 무선 통신 환경에서 비디오 스트리밍 서비스를 제공하는 시스템 및 방법에 관한 것으로서, 더욱 상세하게는 비디오 스트리밍 서비스 제공시 언더플로우(underflow)와 오버플로우(overflow) 문제를 개선하기 위한 기술에 관한 것이다.
비디오 스트리밍 서비스는 사용자에게 제공함에 있어서 만족스러운 품질의 서비스가 이루어져야 하며, 종단 간 품질에 있어 중요한 고려사항은 재생의 연속성이다.
네트워크의 혼잡으로 인해 패킷의 지연이 생기거나 군집적인 형태의 패킷이 재생 버퍼로 유입된다면 버퍼의 고갈 및 포화현상을 일으키게 된다. 이러한 현상들은 버퍼링으로 인한 영상의 멈춤 또는 패킷의 손실로 인한 프레임의 손실 및 화질열화, 스킵(skip) 현상으로 이어지게 된다.
지금까지 비디오 스트리밍 서비스에 있어 이러한 서비스 품질 저하를 막기 위한 여러 가지 연구들이 진행되어 왔다. 예를 들어, 무선 채널 상태를 인지하여 비디오의 전송률과 품질을 조절하는 네트워크 기반의 품질 적응 스트리밍 기법이 있었으며, 사용자 체감 품질을 만족시키기 위하여 최소 재생 버퍼 레벨을 보존하여 가변적인 무선 네트워크 환경에서도 재생의 끊김 현상, 재생 중 비디오 품질의 급격한 변화 등을 효율적으로 방지하는 비트율 적응 알고리즘도 제시된 바 있다.
또한 비디오 서비스 품질을 높이기 위한 기법으로 토큰 버킷(token bucket)을 이용한 연구들로 낮은 대역폭을 가지는 네트워크를 통해 비디오를 전송하기 위해 토큰버킷을 이용한 실시간 비트율 제어 기법이 있으며, 스트리밍 서비스와 같은 실시간 데이터 패킷의 요구 전송 지연과 요구 전송률의 보장을 지원하기 위한 TBS(Token Bucket-based Scheduling) 기법이 있다. 이 기법은 데이터 전송 큐의 HOL(Head of Line) 지연을 이용한 가중치 값과, 토큰 버킷의 HOL 지연을 이용한 가중치 값을 이용해 실시간 패킷의 전송 우선순위를 계산하여 성능을 개선시키는 방법이다. 이 외에도 토큰 버킷의 초당 토큰 재생률과 버킷의 최대 용량들을 조절하여 패킷 손실률을 감소시키기 위한 연구와, 멀티미디어 서비스에서 서비스 품질을 보장하기 위해 토큰 버킷을 이용한 대역폭 할당 방식을 사용한 연구가 있다.
무선통신 환경에서 수신측의 재생 버퍼에 있는 비디오 스트리밍의 패킷 정보량은 네트워크 상황에 따라 가변한다. 패킷 정보량이 특정 버퍼량보다 작아지면 버퍼 언더플로우(buffer underflow) 문제가 발생하고 반대로 패킷 정보량이 특정 버퍼량보다 많아지면 버퍼 오버플로우(buffer overflow) 문제가 발생한다. 따라서, 목적지 수신 버퍼에서 비디오 스트리밍을 재생할 때 이러한 버퍼 언더플로우와 오버플로우 문제는 멈춤 현상이나 스킵 현상을 유발하여 재생의 불연속성을 발생시키는 문제점이 있다.
대한민국 공개특허 10-2011-0086642
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 토큰 버킷 방식을 이용한 비디오 스트리밍 서비스에서 토큰 버킷의 파라미터를 자동으로 설정하는 방법을 제공하는데 그 목적이 있다.
본 발명의 목적은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
이와 같은 목적을 달성하기 위한 본 발명의 스트리밍 방식으로 비디오 패킷을 송신하는 송신단과, 상기 송신단에서 송신하는 비디오 패킷을 수신하는 수신단에서의 비디오 스트리밍 서비스 제공 방법에서, 상기 송신단에서 전송할 비디오의 각 프레임 크기 정보를, 전송할 수 있는 최대 패킷의 크기로 나누어 기록한 비디오 정보 파일을 생성하는 단계, 상기 수신단에서 상기 송신단에서 전송되는 비디오 패킷의 크기 정보를 수신하고, 이 정보를 기반으로 토큰 버킷(Token bucket) 파라미터를 적응적으로 설정하는 단계 및 상기 수신단에서 설정된 토큰 버킷 파라미터로 토큰 버킷 기법을 적용하여 비디오 패킷을 수신하는 단계를 포함한다.
초당 생성되는 토큰의 개수를 r이라 하고, 토큰이 저장될 수 있는 최대 버킷 용량을 c라고 하고, 수신단에서의 재생 버퍼의 최대값을 Bmax, 단위 시간당 재생량을 Lplayout, 패킷 최대 크기를 Ptxmax라고 할 때,
Figure 112015060879819-pat00001
(수학식 1)로 나타낼 수 있고, 상기 수학식 1을 r과 c를 더한 값을 구하기 위해 변경하면,
Figure 112015060879819-pat00002
(수학식 2)로 나타낼 수 있고, 최초로 r과 c를 더한 값을 Tsum이라고 할 때,
Figure 112015060879819-pat00003
(수학식 3)으로 나타낼 수 있으며, 상기 토큰 버킷 파라미터를 적응적으로 설정하는 단계는, 상기 수신단에서 수학식 3을 통해 최초로 r과 c를 더한 값 Tsum을 구하는 단계와, 상기 수신단에서 비디오 정보 파일을 바탕으로 연속적으로 전송되는 패킷들에 대해 패킷 크기의 합을 구하고, 그 합이 재생량을 넘지 않는 최대 구간만큼 분할하여 r값 테이블과 c값 테이블을 생성하는 단계와, 설정된 r값 만큼 패킷들이 토큰에 의해 임시 버퍼에서 재생 버퍼로 유입된 경우, 상기 r값 테이블에서 그 다음 r값으로 변경하여 설정하는 적응적 r값 설정 단계를 포함한다.
상기 r값 테이블과 c값 테이블을 생성하는 단계에서, 전송되는 패킷의 최대 개수를 n이라 할 때, 상기 비디오 정보파일은,
Figure 112015060879819-pat00004
(수학식 5)로 나타낼 수 있고, 상기 r값 테이블의 형태는,
Figure 112015060879819-pat00005
(수학식 6)으로 나타낼 수 있다.
본 발명에서 비디오 스트리밍 서비스 제공 시스템은 스트리밍 방식으로 비디오 패킷을 송신하는 서버로서, 전송할 비디오의 각 프레임 크기 정보를, 전송할 수 있는 최대 패킷의 크기로 나누어 기록한 비디오 정보 파일을 생성하는 비디오 서버 및 상기 비디오 서버에서 송신하는 비디오 패킷을 수신하며, 상기 비디오 정보 파일을 수신하고, 비디오 패킷의 크기 정보를 기반으로 토큰 버킷 파라미터를 적응적으로 설정하고, 설정된 토큰 버킷 파라미터로 토큰 버킷 기법을 적용하여 비디오 패킷을 수신하는 수신기를 포함한다.
초당 생성되는 토큰의 개수를 r이라 하고, 토큰이 저장될 수 있는 최대 버킷 용량을 c라고 하고, 수신단에서의 재생 버퍼의 최대값을 Bmax, 단위 시간당 재생량을 Lplayout, 패킷 최대 크기를 Ptxmax라고 할 때,
Figure 112015060879819-pat00006
(수학식 1)로 나타낼 수 있고, 상기 수학식 1을 r과 c를 더한 값을 구하기 위해 변경하면,
Figure 112015060879819-pat00007
(수학식 2)로 나타낼 수 있고, 최초로 r과 c를 더한 값을 Tsum이라고 할 때,
Figure 112015060879819-pat00008
(수학식 3)으로 나타낼 수 있으며, 상기 수신기에서 토큰 버킷 파라미터를 적응적으로 설정하는 것은, 상기 수신기에서 수학식 3을 통해 최초로 r과 c를 더한 값 Tsum을 구하고, 비디오 정보 파일을 바탕으로 연속적으로 전송되는 패킷들에 대해 패킷 크기의 합을 구하고, 그 합이 재생량을 넘지 않는 최대 구간만큼 분할하여 r값 테이블과 c값 테이블을 생성하고, 설정된 r값 만큼 패킷들이 토큰에 의해 임시 버퍼에서 재생 버퍼로 유입된 경우, 상기 r값 테이블에서 그 다음 r값으로 변경하여 설정할 수 있다.
상기 수신기에서 r값 테이블과 c값 테이블을 생성하는 것에서, 전송되는 패킷의 최대 개수를 n이라 할 때, 상기 비디오 정보파일은,
Figure 112015060879819-pat00009
(수학식 5)로 나타낼 수 있고, 상기 r값 테이블의 형태는,
Figure 112015060879819-pat00010
(수학식 6)으로 나타낼 수 있다.
본 발명에 의하면 토큰 버킷 기법을 적용한 비디오 스트리밍 서비스에서 자동으로 토큰 버킷 파라미터를 설정할 수 있으므로, 기존의 수동 설정 방식에 비하여 적절한 토큰 버킷 파라미터를 찾기 위한 시간 소모를 방지할 수 있다는 효과가 있다.
본 발명에 의하면 종래 수동 설정 기법에 비해, 오버플로우/언더플로우 횟수와 패킷 손실 비율 및 PSNR(Peak Signal to Noise Ratio) 측면에서 빠르면서도 우수한 성능을 나타낸다.
도 1은 토큰 버킷 기법이 적용된 비디오 스트리밍 수신기 구조를 보여주는 도면이다.
도 2는 본 발명의 일 실시예에 따른 토큰 버킷 파라미터를 자동으로 설정하기 위한 4 단계 동작을 보여주는 도면이다.
도 3은 본 발명의 일 실시예에 따른 r 테이블 생성 과정을 도시한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 시뮬레이션 절차를 보여주는 도면이다.
도 5는 본 발명의 일 실시예에 따른 시뮬레이션에 사용된 파라미터들을 나타내는 표이다.
도 6 내지 도 12는 본 발명의 일 실시예에 따른 시뮬레이션 결과를 도시한 그래프이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 갖는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 토큰 버킷 기법이 적용된 비디오 스트리밍 수신기 구조를 보여주는 도면이다.
도 1을 참조하면, 기존의 토큰 버킷 파라미터 수동 설정 기법에서는 수신 버퍼의 포화현상과 재생 품질 저하를 유발하는 버퍼 오버플로우를 해결하기 위해, 주 파라미터인 초당 생성되는 토큰의 개수(r)와 토큰이 저장될 수 있는 최대 버킷 용량(c)를 수동적으로 선택한다.
도 1에서 보는 바와 같이, 수신단으로 유입되는 패킷들은 네트워크의 영향을 받아 불규칙적인 패턴으로 임시 버퍼에 저장되고, 하나의 패킷에 한 개의 토큰을 할당하는 토큰 버킷 기법에 의해서 군집적인 패킷들을 규칙적인 패턴으로 변환하여 재생 버퍼의 포화현상을 방지할 수 있게 된다.
토큰 버킷 기법을 이용하여 포화 현상을 방지하기 위해서는 적절한 파라미터 값을 설정해 주어야 한다. 여기서 적절한 파라미터란 토큰버킷 기법으로 인해 재생 버퍼로 유입되는 패킷량이 오버플로우를 발생시키지 않는 설정값을 말한다. 그러기 위해 수신단에서는 재생 버퍼의 최대값(Bmax), 단위 시간당 재생량(Lplayout), 패킷 최대 크기(Ptxmax)를 고려하여 토큰 버킷의 파라미터를 정해주어야 한다.
임시 버퍼에 충분한 패킷이 있고, 재생 버퍼가 비어있다고 가정할 경우, 토큰 버킷에 의해 유입될 수 있는 최대 패킷량은 토큰 생성에 따라 유입될 수 있는 최대 패킷량(r×Ptxmax)과 버킷 안에 있는 토큰에 의해 유입되는 최대 패킷량(c×Ptxmax)의 합으로 볼 수 있다.
또한 토큰 버킷에 의해 재생 버퍼로 비디오 패킷이 들어온 후에 재생 버퍼에서는 일정 프레임이 재생된다. 즉, 버퍼의 포화상태를 방지하기 위해서는, 최소한 다음 수학식 1과 같이 토큰 버킷으로 인해 유입될 수 있는 패킷량은 재생 버퍼의 최대값과 단위 시간당 재생량을 합한 값과 같거나 작아야 할 것이다.
Figure 112015060879819-pat00011
여기서, 초당 생성되는 토큰의 개수를 r이라 하고, 토큰이 저장될 수 있는 최대 버킷 용량을 c라고 하고, 수신단에서의 재생 버퍼의 최대값을 Bmax, 단위 시간당 재생량을 Lplayout, 패킷 최대 크기를 Ptxmax라 한다.
수학식 1을 r과 c를 더한 값을 구하기 위해 변경하면, 다음 수학식 2와 같이 나타낼 수 있다.
Figure 112015060879819-pat00012
하지만 토큰버킷으로 인한 패킷 유입량이 과도하게 적을 경우에는 반대로 버퍼의 언더플로우 현상이 발생할 수 있다. 따라서 r과 c를 더한 값인 Tsum을 정할 경우 다음 수학식 3을 사용하여 결정한다.
Figure 112015060879819-pat00013
이 과정에서 구해진 Tsum은 처음에 한 번만 구하게 된다. 이후 토큰 버킷 파라미터를 수동으로 설정하여 시뮬레이션을 진행하게 되며, 이 경우 설정할 수 있는 값의 경우는 다음 수학식 4와 같다.
Figure 112015060879819-pat00014
r값을 1로 설정한 경우에는 c값을 Tsum-1로 설정해준다.
수학식 4에서 보는 바와 같이, 설정할 수 있는 파라미터 값의 경우의 수는 Tsum이 된다. 물론 r값을 너무 작은 값인 1이나 너무 큰 값인 Tsum까지 설정해준다면, r=1인 경우에는 토큰에 의한 지나친 패킷 제한으로 인해 언더플로우가 심하게 일어나 영상의 멈춤 현상이 심해질 것이며, r=Tsum으로 설정했을 경우에는 지나친 패킷의 유입 때문에 오버플로우로 인한 프레임의 손실 및 화질의 열화가 일어날 것이라고 예상할 수 있다.
하지만 최저 설정값과 최대 설정값을 제외하고도 많은 경우의 수가 존재할 수 있기 때문에 가장 적절한 파라미터를 찾는 것에는 많은 시간을 요구하게 된다. 게다가 비디오마다 다른 특성을 가지며, 그에 따라 전송되는 패킷의 개수나 크기는 다를 수밖에 없기 때문에, 특정 비디오에서 가장 적합한 r값과 c값을 찾았다고 해도, 다른 종류의 비디오가 전송될 때는 그 비디오에 가장 적합한 토큰버킷 파라미터를 수학식 1부터 수학식 4까지의 과정을 통해 또 다시 구해야 한다는 문제가 있다. 결과적으로 토큰 버킷 기법을 적용할 때 고정적인 파라미터를 사용하여 버퍼 오버플로우를 해결하기에는 많은 문제점들이 존재하며, 주어진 적은 시간 내에서 비디오의 종류에 따라 가장 적합한 파라미터를 자동적으로 설정해 줄 수 있는 기법이 절실히 요구된다. 따라서 본 발명에서는 이러한 비디오의 특성을 고려하여 자동적으로 토큰 버킷 파라미터를 설정해 줄 수 있는 방법을 제안한다.
도 2는 본 발명의 일 실시예에 따른 토큰 버킷 파라미터를 자동으로 설정하기 위한 4 단계 동작을 보여주는 도면이다.
본 발명에서 토큰 버킷 기법을 이용한 비디오 스트리밍 서비스 제공 시스템은 송신단(100)과 수신단(200)을 포함한다.
본 발명의 일 실시예에서 송신단(100)은 비디오 서버로 구현될 수 있고, 수신단(200)은 수신기(Receiver)로 구현될 수 있다.
도 2를 참조하면, 송신단(100)인 비디오 서버는 스트리밍 방식으로 비디오 패킷을 송신하는 서버로서, 전송할 비디오의 각 프레임 크기 정보를, 전송할 수 있는 최대 패킷의 크기로 나누어 기록한 비디오 정보 파일(Video information file)을 생성한다.
수신단(200)인 수신기는 비디오 서버에서 송신하는 비디오 패킷을 수신하며, 비디오 정보 파일을 수신하고, 비디오 패킷의 크기 정보를 기반으로 토큰 버킷 파라미터를 적응적으로 설정하고, 설정된 토큰 버킷 파라미터로 토큰 버킷 기법을 적용하여 비디오 패킷을 수신한다.
도 2에서 보는 바와 같이, 본 발명에서 제안하는 방법은 토큰 버킷 파라미터인 r값과 c값을 정할 때, 전송되는 비디오의 패킷 사이즈 정보를 전송받고 그 정보를 토대로 r값과 c값을 적응적으로 자동 설정하게 된다.
먼저 송신단(100)에서 전송할 비디오의 각 프레임 크기 정보를, 전송할 수 있는 최대 패킷의 크기로 나누어 기록한 비디오 정보 파일을 생성한다(①).
그리고, 수신단(200)에서 송신단(100)에서 전송되는 비디오 패킷의 크기 정보를 수신하고, 이 정보를 기반으로 토큰 버킷(Token bucket) 파라미터를 적응적으로 설정한다(②, ③, ④).
그리고, 수신단(200)에서 설정된 토큰 버킷 파라미터로 토큰 버킷 기법을 적용하여 비디오 패킷을 수신한다.
② 단계는 수신단(200)에서 수학식 3을 통해 최초로 r과 c를 더한 값 Tsum을 구하는 단계이다.
③ 단계는 수신단(200)에서 비디오 정보 파일을 바탕으로 연속적으로 전송되는 패킷들에 대해 패킷 크기의 합을 구하고, 그 합이 재생량을 넘지 않는 최대 구간만큼 분할하여 r값 테이블과 c값 테이블을 생성하는 단계이다.
④ 단계는 설정된 r값 만큼 패킷들이 토큰에 의해 임시 버퍼에서 재생 버퍼로 유입된 경우, r값 테이블에서 그 다음 r값으로 변경하여 설정하는 적응적 r값 설정 단계이다.
이제 ① 단계 과정에 대해 상세히 설명하면 다음과 같다.
도 2에서 보는 바와 같이, 먼저 첫 번째로 비디오 서버에서는 전송하려는 비디오의 각 프레임 크기 정보만을 바탕으로 보낼 수 있는 최대 패킷의 크기로 나누어 비디오 정보 파일에 기록하게 된다. 예를 들어, 전송되는 비디오의 프레임 사이즈 frame_size={3145, 3400, 1870, 1100, 1070, ……}일 경우, 비디오 정보 파일에 기록하는 프레임의 각 사이즈는 frame_size/(전송되는 패킷의 최대 크기)로 나누어 기록한다. 만일 전송되는 패킷의 최대 크기가 1500 byte라고 할 때, 3145 byte의 사이즈를 가지는 첫 번째 프레임의 경우 3145byte/1500byte로 계산하여 비디오 정보 파일에는 {1500, 1500, 145}로 기록하게 되고, 그 이후 비디오 프레임에 대해서도 마찬가지로 기록하게 된다.
비디오 정보 파일은 단순한 텍스트 파일이다. 이러한 비디오 정보 파일은 작은 크기를 가지며 전송 오버헤드는 매우 적다. 송신단(100)은 비디오 트래픽을 송신하기 전 미리 비디오 정보 파일을 수신단(200)에 전송하며 반드시 수신된다고 가정한다. 수신단(200)에서는 이 파일의 정보를 바탕으로 전송될 비디오 패킷들의 최대 패킷 크기 및 전송되는 각 패킷들의 크기를 알 수 있다.
이제 ② 단계 과정에 대해 상세히 설명하면 다음과 같다.
수신단(200)에서는 재생 버퍼의 최대값(Bmax), 단위 시간당 재생량(Lplayout), 패킷 최대 크기(Ptxmax) 정보를 바탕으로 수학식 3을 통해 처음에 한번 구한 r값과 c값을 더한 값인 Tsum을 구한다. 이후 r값은 시간에 따라 적응적으로 선택되며, 그에 따른 c값은 처음에 구한 Tsum값에서 해당 시점의 r값을 뺀 나머지 값을 사용하게 된다. 새로운 비디오 트래픽을 전송할 경우에는 그에 맞는 Tsum을 다시 구하게 된다.
이제 ③ 단계 과정에 대해 상세히 설명하면 다음과 같다.
수신단(200)에서는 비디오 정보 파일을 바탕으로 연속적으로 전송되는 패킷들에 대해 패킷 크기의 합을 구하고, 그 합이 재생량을 넘지 않는 최대 구간만큼 분할하여 r값 테이블을 생성한다. 먼저 비디오 정보 파일은 최대 패킷 크기로 나누어진 각 프레임의 크기가 기록되어 있으며 다음 수학식 5와 같다.
Figure 112015060879819-pat00015
여기서 전송되는 패킷의 최대 개수를 n이라 한다.
그리고, r값 테이블의 형태는 다음 수학식 6과 같이 나타낼 수 있다.
Figure 112015060879819-pat00016
도 3은 본 발명의 일 실시예에 따른 r 테이블 생성 과정을 도시한 흐름도이다.
전송되는 비디오의 r_table의 값은 도 3의 과정을 거쳐서 기록이 되며, 완성된 r_table을 가지고 시간이 흐름에 따라 파라미터 값을 설정하게 된다.
예를 들어, 비디오 정보 파일에 기록되어 있는 전송되는 패킷의 크기가 {1500, 1500, 145, 1500, 400, 1500, 370, 1100}이며, 단위시간 0.1초당 재생되는 평균 재생량이 5000 byte일 경우, 재생량을 넘지 않는 최대 구간, 즉, {1500, 1500, 145, 1500}, {1500, 400, 1500, 370, 1100}으로 분할한다. 그리고 분할된 각각의 구간에 있는 패킷의 개수를 r값 테이블에 기록하게 된다. 즉, 이러한 r값을 시간에 따라 적용했을 경우, 단위 시간 동안 생성되는 토큰에 의해 유입되는 패킷의 양이 단위 시간 동안의 재생량과 비슷하거나 보다 적은 현상을 보이기 때문에 버퍼의 오버플로우를 방지할 수 있다. 이런 과정을 거쳐 생성된 최종 테이블에는 구간 별 사용되어야 하는 r값과 그에 따른 c값이 기록되어 있다.
이제 ④ 단계 과정에 대해 상세히 설명하면 다음과 같다. ④ 단계에서 토큰 소비에 따른 r값의 변경이 이루어지며 동작은 다음과 같다.
설정된 r값만큼 패킷들이 토큰에 의해 임시버퍼에서 재생 버퍼로 유입된 경우 r값 테이블에서 그 다음 r값으로 변경하여 설정한다. 예를 들면, r_table = {4, 5, 4, 3, 6 ……} 이라고 하면, 첫 번째 패킷부터 네 번째 패킷이 임시 버퍼에서 재생 버퍼로 유입되는 동안은 토큰의 단위 시간당 생성량인 r값을 4로 설정하고, 그 이후 다섯 번째 패킷이 들어올 때부터 r값을 그 다음 값인 5로 설정한다. 마찬가지로 열 번째 패킷부터는 r값을 4로 설정하여 사용하게 된다. 이러한 기법을 통해 각기 다른 비디오 및 시간의 흐름에 따라 적응적으로 다른 r값을 사용할 수 있다. 또한 해당 r값에 의해 결정되는 c값이 각 구간별로 설정된다. 이로 인해 단위 시간당 재생되는 양에 근접한 비디오 패킷의 유입을 제어할 수 있으며, 언더플로우의 발생횟수를 최소화 시키면서 버퍼의 포화현상을 방지할 수 있다.
본 발명의 시뮬레이션을 수행하기 위하여, 본 발명에서는 NS-2와 JSVM을 사용하여 시뮬레이션을 진행하게 되며, 성능 분석으로는 오버플로우의 발생 빈도, 패킷 손실률, 시간에 따른 토큰 버킷 파라미터의 변화 및 수신 영상의 PSNR 등을 비교한다. 여기서 PSNR(Peak Signal to Noise Ratio)이란 동영상의 화질 정보를 수치적으로 표현한 값으로 두 영상에 대해 평균 수치를 확인함으로써 대략적인 화질의 차이를 알 수 있다. PSNR을 계산하는 식은 다음 수학식 7과 같다.
Figure 112015060879819-pat00017
여기서, 여기서 MAXI는 해당 영상의 최대 신호값이다. MSE(Mean squared error)는 오차 제곱의 평균이다. 원영상과 수신된 영상에 대해 PSNR을 구할 경우, 두 영상에 대한 오차가 크면 클수록 PSNR값은 낮아진다. 일반적으로 PSNR값이 30dB이 넘으면 두 영상의 차이를 눈으로 구분하기 어렵다.
도 4는 본 발명의 일 실시예에 따른 시뮬레이션 절차를 보여주는 도면이다.
도 4의 시뮬레이션은 NS-2에서의 트레이스(trace) 기반의 시뮬레이션으로 진행한다. 여기서 비디오 trace는 실제 비디오 시퀀스로부터 중요한 정보들을 추출하여 텍스트 파일의 형식으로 저장한 후 그 데이터를 바탕으로 NS-2를 통해 전송하여 시뮬레이션 한다. 이 비디오 trace 파일은 패킷의 전송간격, 프레임의 크기 및 프레임의 부호화 유형 등 실제 비디오 시퀀스로부터 추출되어 저장된 형태이다.
이러한 일련의 과정들은 MyEvalSVC를 참조하여 진행하였다. 이 시뮬레이션 방법은 SVEF(Scalable Video-Streaming Evaluation Framework)에 기반을 두어 NS-2 시뮬레이션 환경으로 프레임워크를 확장한 것이며 제안하는 네트워크 구조 또는 프로토콜을 SVC, H.264에 있어 평가할 수 있는 방법이다.
도 4와 같이 시뮬레이션의 대상이 될 원시 YUV 비디오 시퀀스를 JSVM을 이용하여 파라미터를 조정하여 인코딩을 하게 된다. 본 시뮬레이션에서 대상이 된 비디오 시퀀스는 해상도나 화질에 확장성을 가지는 SVC가 아닌 단일 계층으로 인코딩을 하여 진행한다. 인코딩 후 JSVM에서 제공하는 BitStreamExtractor와 SVEF에서 제공하는 F-N Stamp를 사용하여 비디오 trace 파일을 생성하게 되며, NS-2에서는 시뮬레이션 환경을 만들어 주게 된다. 이 환경에서 송신측 단말(myEvalSvc Agent)은 비디오 trace 파일을 기반으로 한 패킷들을 생성해 주고, 수신단측(myEvalSVC_Sink Agent)에서는 전송된 패킷들을 바탕으로 수신 trace 파일(Received Video trace file)을 만들게 된다.
수신 trace파일에는 패킷의 전송 시간 및 수신 시간, 패킷 사이즈, 프레임유형 등이 기록되어 있다. 이 수신 trace 파일 정보를 바탕으로 패킷의 손실 및 재생의 불연속성을 알 수 있으며 이후 NALUfilter 및 JSVM에서 디코딩 과정을 거치게 된다.
NALU filter에서는 프레임 종속성으로 인하여 디코딩 할 수 없는 프레임과 너무 늦게 도착한 프레임들을 폐기하는 역할을 하게 되며 이 필터링 된 데이터를 디코딩하였을 때 실질적으로 네트워크를 거쳐 최종적으로 수신된 비디오 시퀀스라고 할 수 있다. 이 비디오 시퀀스를 가지고 PSNR static툴을 이용하면 PSNR측정을 할 수 있으며 플레이어를 이용한 영상의 재생도 가능하다. NS-2를 이용한 시뮬레이션 시 송신측에서는 위에서 설명한 기법들을 이용하여 비디오 trace 파일을 바탕으로 한 패킷을 생성하고 네트워크의 혼잡과 불규칙한 지터의 영향을 가정하여 비디오 패킷을 불규칙하게 전송한다. 또한 비디오 패킷 전송 전 토큰 버킷의 적응적 파라미터 자동설정을 위한 비디오 정보 파일을 최초 1회 전송한다. 수신단에서는 자동으로 파라미터를 설정해주는 토큰버킷 기법을 수행하는 시스템을 구현하고 적용하게 된다.
본 발명의 시뮬레이션에 사용된 비디오 시퀀스는 YUV 형식으로 JSVM 인코더를 사용하였으며, 다음 도 5와 같은 시뮬레이션 파라미터를 사용하였다.
도 5는 본 발명의 일 실시예에 따른 시뮬레이션에 사용된 파라미터들을 나타내는 표이다.
사용된 세 개의 영상은 모두 단일 계층 비디오로 인코딩하였다. 즉 공간적 확장성과 화질적 확장성은 가지지 않으며, GOP사이즈는 모두 8로 설정하였다. foreman_cif 비디오 시퀀스와 foreman_2cif 비디오 시퀀스는 각기 다른 해상도를 가지는 영상이며, 하나는 cif 해상도를 가지고 다른 하나는 2cif 해상도를 가진다.
또한 foreman 비디오 시퀀스와는 영상 내 움직임 정보가 다른 soccer_cif 비디오 시퀀스를 가지고 시뮬레이션을 진행한다. 모든 비디오 시퀀스의 프레임 수는 300이며 30 fps의 재생 속도를 가진다. 따라서 재생 시 0.1 초당 3 frame에 해당하는 정보를 버퍼에서 꺼내 기록하도록 되어있다.
토큰버킷의 파라미터는 r과 c로 이루어져 있는데 적응적 토큰 버킷 기법 사용 시, 이 값들의 초기 설정을 위해 수신단에서는 수학식 3을 사용하여 각 비디오에 대한 r+c값을 자동으로 설정해준다. 그 이후 시간에 따른 r값 또한 자동으로 설정하며 c값은 처음에 구한 r+c값에 적응적으로 설정된 r값을 뺀 값을 사용한다. 또한 수동 설정 시뮬레이션을 위한 r값은 4/0.1 sec부터 7/0.1 sec까지 임의의 값들을 직접 설정하며 그에 따른 c값을 사용하여 성능을 분석한다.
직접적으로 추가적인 노드를 생성하여 혼잡의 영향을 주지 않고 단지 무선 네트워크의 혼잡이나 지터의 영향을 가정하여 송신단에서는 트래픽 발생을 불규칙적으로 스케줄링하도록 설정하였다. 한 패킷의 최대 사이즈는 1500 byte이며 수신측 재생 버퍼의 최대 용량은 30000 byte이다. 정해진 r값에 의해 들어오는 패킷의 양이 초당 재생되는 양보다 많이 들어오게 되면 오버플로우의 위험성이 커진다. 즉, 수신측 재생 버퍼 내에 있는 비디오 정보량이 30000 byte가 넘게 되면 그 이후 유입되는 패킷에 대해서는 손실 처리를 하게 된다.
도 6 내지 도 8은 사용된 3개의 비디오에 대해 토큰버킷 파라미터를 수동 설정한 경우와 자동 설정한 경우에 오버플로우 발생횟수 및 패킷 손실률을 나타낸 도면이다.
도 6은 foreman_cif 비디오 시퀀스에서 토큰 버킷 파라미터의 수동 및 자동 설정방식에 따른 패킷 손실율과 언더플로우/오버플로우 발생 횟수를 비교한 그래프이다.
도 6에서 foreman_cif 영상의 경우, r값을 각 4, 5로 수동 설정하였을 때 오버플로우가 0회로 나타나며, r값을 6이상 올렸을 경우에는 단위 시간당 재생량보다 패킷의 유입량이 더 많아 오버플로우가 발생한다는 것을 알 수 있다. r값이 4인 경우와 5인 경우를 보면 두 경우 모두 오버플로우는 0회이지만 언더플로우를 보면 4인 경우 31회, 5인 경우 5회를 보이고 있다. 즉, 단위 시간당 생성되는 토큰의 개수를 4로 한 경우 지나친 패킷 유입의 제한으로 인해 오히려 버퍼가 고갈되는 현상이 심하게 나타날 수 있다는 것을 알 수 있다. 또한 r값이 6과 7인 경우 중에 7로 설정하였을 때 6으로 설정했을 때 보다 더 많은 언더플로우 현상이 일어나는 것을 볼 수 있다.
패킷 손실율 그래프의 경우, 버퍼의 포화로 인해 매우 많은 패킷들이 손실되었기 때문에, 전체적인 비디오 패킷 정보량이 감소하여 발생하는 언더플로우 현상이라고 볼 수 있다.
foreman_cif 영상의 경우 평균적인 r값을 사용 했을 경우엔 5값을 설정하는 것이 가장 최선의 파라미터 설정이라고 할 수 있다. 또한, 초기 전송된 비디오 정보 파일을 기반으로 토큰 버킷 파라미터를 자동으로 설정할 경우, 오버플로우는 0회, 언더플로우는 5회를 나타내고 있다. 수동으로 설정했을 경우 가장 좋은 결과를 보였던 r=5와 동일한 결과를 보인다. 즉, 이런 자동 설정 기법을 사용하였을 경우에는 파일 정보를 바탕으로 적절한 값을 시간에 따라 적절히 설정해주기 때문에 모든 해당 r값들을 모두 적용한 후에 가장 적절한 r값을 찾아주는 수동 설정 기법보다 적은 시간이 소모된다.
도 7은 foreman_2cif 비디오 시퀀스에서 토큰 버킷 파라미터의 수동 및 자동 설정 방식에 따른 패킷 손실율과 언더플로우/오버플로우 발생 횟수 비교를 나타낸 그래프이다.
도 7에서 foreman_2cif 비디오 시퀀스와 같은 경우 4, 5, 6으로 수동 설정한 경우에 오버플로우가 모두 0회로 나타났지만 r값이 4, 5인 경우 언더플로우가 많이 발생한다. 이 비디오의 경우는 r값이 6으로 설정되었을 때 가장 토큰 버킷 기법의 효과가 나타난다. 물론 이 경우에도 자동으로 설정해주는 제안하는 기법을 사용했을 경우에 6으로 수동 설정한 경우와 동일하게 가장 좋은 결과를 얻을 수 있다.
도 8은 soccer_cif 비디오 시퀀스에서 토큰 버킷 파라미터의 수동 및 자동 설정방식에 따른 패킷 손실율과 언더플로우/오버플로우 발생 횟수를 비교한 그래프이다.
도 8에서 soccer_cif에서 r값을 5로 했을 경우에는 오버플로우가 1회이고 언더플로우는 10회가 발생되며, r값을 6으로 했을 경우 오버플로우가 8회 발생되고 언더플로우는 2회 발생된다. 토큰 버킷은 군집적인 패킷을 제어하기 위해 사용하기 때문에 이 목적을 기준으로 하기 때문에 오버플로우가 적게 발생하는 r=5로 설정하는 것이 가장 유리하다. 반면에 자동설정 기법을 사용하였을 때에는 오버플로우가 0회, 언더플로우가 6회로 모든 오버플로우를 해결하면서 언더플로우의 발생횟수를 최소화하고 있다. soccer_cif 영상에서 수동 설정 파라미터의 경우 토큰 버킷을 사용해도 오버플로우를 완전히 제어하지 못하는 이유는 r값을 전체 시간동안 고정된 값을 사용한 결과이다. 비디오마다 패킷들의 크기는 모두 일정하지 않으며 패턴 또한 불규칙하다. 따라서 r값을 하나의 비디오 스트리밍 서비스 동안 한 가지만 사용하기보다는 상황에 맞게 유동적으로 바꿔준다면 더 좋은 효과를 낼 수 있다.
도 9는 토큰 버킷 파라미터의 수동 설정과 자동 설정 사이의 r값의 변화를 나타낸 그래프이다.
도 9를 참조하면, 수동으로 r값을 설정 할 경우 모든 시간 동안 같은 r값을 사용하는데 비해 적응적인 토큰 버킷 파라미터를 사용할 때는 전체 비디오 스트리밍 시뮬레이션 시간 동안 들어오는 패킷에 따라 적응적인 r값을 설정하는 것을 볼 수 있다. 즉, 토큰 버킷 파라미터의 수동 설정 사용으로 발생하는 문제들을 토큰 버킷 파라미터의 자동 설정을 통해 해결할 수 있다는 것을 알 수 있다. 전체적인 결과에서 보듯이 비디오마다 적절한 r값이 다르게 나타난다. 또한, foreman_cif에서는 r=5를, foreman_2cif에서는 r=6을 설정해줘야 가장 좋은 효과를 볼 수 있었으며 soccer_cif 영상의 경우에는 고정적인 값을 사용하여 오버플로우를 방지하면서 언더플로우를 최소화하기에는 부족함이 있었다. 즉, 자동설정 파라미터를 가지는 토큰버킷 기법과 같이 비디오의 특성을 고려하여 각 비디오마다, 시간에 따라 적절한 파라미터를 사용해야 오버플로우를 방지하고 그에 따른 패킷 손실률을 줄일 수 있다는 것을 알 수 있다.
도 10 내지 도 12는 각 영상들에 대해 PSNR을 나타낸 그래프들이다. PSNR 계산 시 손실된 프레임 자리에는 이전 프레임 정보를 복사하여 모든 경우에 대해 300 frame에 대한 PSNR을 계산하였다. 즉, 손실된 프레임에 대해서는 낮은 PSNR값을 보이게 된다.
도 10은 foreman_cif 비디오 시퀀스에서 토큰버킷 파라미터의 수동 및 자동설정에 따른 PSNR 비교 그래프이고, 도 11은 foreman_2cif 비디오 시퀀스에서 토큰버킷 파라미터의 수동 및 자동설정에 따른 PSNR 비교 그래프이고, 도 12는 soccer_cif 비디오 시퀀스에서 토큰버킷 파라미터의 수동 및 자동설정에 따른 PSNR 비교 그래프이다.
도 10에 있는 foreman_cif의 PSNR그래프의 경우, 수동으로 설정했을 경우 r값이 4/0.1 sec, 5/0.1 sec, r값의 자동설정에서 오버플로우는 일어나지 않았다. 따라서 패킷의 손실은 없으며 이 모든 경우에 좋은 PSNR 수치를 보인다. 이런 경우의 그림은 자동설정에 따른 PSNR 그래프로 대표하여 나타낸다. 물론 4/0.1 sec의 경우에는 언더플로우 현상으로 인한 멈춤 현상이 많이 일어나는 문제점이 있다. 그 외의 경우를 보면 오버플로우로 인한 패킷의 손실로 인해 프레임들이 정상적으로 복호화되지 않는다는 것을 알 수 있다.
만일 토큰버킷 기법 사용 시 임의의 값 r=6을 사용하여 모든 비디오 시퀀스를 수신하였다고 가정해보자. 이럴 경우 foreman_2cif에서는 오버플로우로 인한 패킷 손실을 방지하여 좋은 PSNR을 보이겠지만, foreman_cif와 soccer_cif 비디오 시퀀스의 경우에는 프레임의 손실이 일어나고 특정 프레임에서 낮은 PSNR을 나타낼 수 있다는 것을 알 수 있다. 따라서 수동적으로 하나의 r값을 설정해주는 경우보다는 제안한 적응적 토큰버킷 기법 사용 시 모든 비디오에 대해 손실을 방지하여 좋은 PSNR 수치를 보이는 것을 알 수 있다.
이상 본 발명을 몇 가지 바람직한 실시예를 사용하여 설명하였으나, 이들 실시예는 예시적인 것이며 한정적인 것이 아니다. 본 발명이 속하는 기술분야에서 통상의 지식을 지닌 자라면 본 발명의 사상과 첨부된 특허청구범위에 제시된 권리범위에서 벗어나지 않으면서 다양한 변화와 수정을 가할 수 있음을 이해할 것이다.
100 송신단 200 수신단

Claims (6)

  1. 스트리밍 방식으로 비디오 패킷을 송신하는 송신단과, 상기 송신단에서 송신하는 비디오 패킷을 수신하는 수신단에서의 비디오 스트리밍 서비스 제공 방법에서,
    상기 송신단에서 전송할 비디오의 각 프레임 크기 정보를, 전송할 수 있는 최대 패킷의 크기로 나누어 기록한 비디오 정보 파일을 생성하는 단계;
    상기 수신단에서 상기 송신단에서 전송되는 비디오 패킷의 크기 정보를 수신하고, 이 정보를 기반으로 토큰 버킷(Token bucket) 파라미터를 적응적으로 설정하는 단계; 및
    상기 수신단에서 설정된 토큰 버킷 파라미터로 토큰 버킷 기법을 적용하여 비디오 패킷을 수신하는 단계를 포함하되,
    초당 생성되는 토큰의 개수를 r이라 하고, 토큰이 저장될 수 있는 최대 버킷 용량을 c라고 하고, 수신단에서의 재생 버퍼의 최대값을 Bmax, 단위 시간당 재생량을 Lplayout, 패킷 최대 크기를 Ptxmax라고 할 때,
    Figure 112016047206268-pat00018
    (수학식 1)로 나타낼 수 있고,
    상기 수학식 1을 r과 c를 더한 값을 구하기 위해 변경하면,
    Figure 112016047206268-pat00019
    (수학식 2)로 나타낼 수 있고,
    최초로 r과 c를 더한 값을 Tsum이라고 할 때,
    Figure 112016047206268-pat00020
    (수학식 3)으로 나타낼 수 있으며,
    상기 토큰 버킷 파라미터를 적응적으로 설정하는 단계는,
    상기 수신단에서 수학식 3을 통해 최초로 r과 c를 더한 값 Tsum을 구하는 단계와,
    상기 수신단에서 비디오 정보 파일을 바탕으로 연속적으로 전송되는 패킷들에 대해 패킷 크기의 합을 구하고, 그 합이 재생량을 넘지 않는 최대 구간만큼 분할하여 r값 테이블과 c값 테이블을 생성하는 단계와,
    설정된 r값 만큼 패킷들이 토큰에 의해 임시 버퍼에서 재생 버퍼로 유입된 경우, 상기 r값 테이블에서 그 다음 r값으로 변경하여 설정하는 적응적 r값 설정 단계를 포함하는 것을 특징으로 하는 비디오 스트리밍 서비스 제공 방법.
  2. 삭제
  3. 청구항 1에 있어서,
    상기 r값 테이블과 c값 테이블을 생성하는 단계에서,
    전송되는 패킷의 최대 개수를 n이라 할 때, 상기 비디오 정보파일은,
    Figure 112016047206268-pat00021
    (수학식 5)로 나타낼 수 있고,
    상기 r값 테이블의 형태는,
    Figure 112016047206268-pat00022
    (수학식 6)으로 나타낼 수 있는 것을 특징으로 하는 비디오 스트리밍 서비스 제공 방법.
  4. 스트리밍 방식으로 비디오 패킷을 송신하는 서버로서, 전송할 비디오의 각 프레임 크기 정보를, 전송할 수 있는 최대 패킷의 크기로 나누어 기록한 비디오 정보 파일을 생성하는 비디오 서버; 및
    상기 비디오 서버에서 송신하는 비디오 패킷을 수신하며, 상기 비디오 정보 파일을 수신하고, 비디오 패킷의 크기 정보를 기반으로 토큰 버킷 파라미터를 적응적으로 설정하고, 설정된 토큰 버킷 파라미터로 토큰 버킷 기법을 적용하여 비디오 패킷을 수신하는 수신기를 포함하되,
    초당 생성되는 토큰의 개수를 r이라 하고, 토큰이 저장될 수 있는 최대 버킷 용량을 c라고 하고, 수신단에서의 재생 버퍼의 최대값을 Bmax, 단위 시간당 재생량을 Lplayout, 패킷 최대 크기를 Ptxmax라고 할 때,
    Figure 112016047206268-pat00023
    (수학식 1)로 나타낼 수 있고,
    상기 수학식 1을 r과 c를 더한 값을 구하기 위해 변경하면,
    Figure 112016047206268-pat00024
    (수학식 2)로 나타낼 수 있고,
    최초로 r과 c를 더한 값을 Tsum이라고 할 때,
    Figure 112016047206268-pat00025
    (수학식 3)으로 나타낼 수 있으며,
    상기 수신기에서 토큰 버킷 파라미터를 적응적으로 설정하는 것은,
    상기 수신기에서 수학식 3을 통해 최초로 r과 c를 더한 값 Tsum을 구하고, 비디오 정보 파일을 바탕으로 연속적으로 전송되는 패킷들에 대해 패킷 크기의 합을 구하고, 그 합이 재생량을 넘지 않는 최대 구간만큼 분할하여 r값 테이블과 c값 테이블을 생성하고, 설정된 r값 만큼 패킷들이 토큰에 의해 임시 버퍼에서 재생 버퍼로 유입된 경우, 상기 r값 테이블에서 그 다음 r값으로 변경하여 설정하는 것을 특징으로 하는 비디오 스트리밍 서비스 제공 시스템.
  5. 삭제
  6. 청구항 4에 있어서,
    상기 수신기에서 r값 테이블과 c값 테이블을 생성하는 것에서,
    전송되는 패킷의 최대 개수를 n이라 할 때, 상기 비디오 정보파일은,
    Figure 112016047206268-pat00026
    (수학식 5)로 나타낼 수 있고,
    상기 r값 테이블의 형태는,
    Figure 112016047206268-pat00027
    (수학식 6)으로 나타낼 수 있는 것을 특징으로 하는 비디오 스트리밍 서비스 제공 시스템.
KR1020150089237A 2015-06-23 2015-06-23 토큰 버킷 기법을 이용한 비디오 스트리밍 서비스 제공 시스템 및 방법 KR101637840B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150089237A KR101637840B1 (ko) 2015-06-23 2015-06-23 토큰 버킷 기법을 이용한 비디오 스트리밍 서비스 제공 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150089237A KR101637840B1 (ko) 2015-06-23 2015-06-23 토큰 버킷 기법을 이용한 비디오 스트리밍 서비스 제공 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR101637840B1 true KR101637840B1 (ko) 2016-07-07

Family

ID=56500183

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150089237A KR101637840B1 (ko) 2015-06-23 2015-06-23 토큰 버킷 기법을 이용한 비디오 스트리밍 서비스 제공 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101637840B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009147833A (ja) * 2007-12-17 2009-07-02 Kddi Corp トークンバケットを用いたバッファ装置及びプログラム
KR20110086642A (ko) 2008-02-01 2011-07-28 인터디지탈 패튼 홀딩스, 인크 토큰 버킷들을 초기화, 유지 및 재구성하는 방법 및 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009147833A (ja) * 2007-12-17 2009-07-02 Kddi Corp トークンバケットを用いたバッファ装置及びプログラム
KR20110086642A (ko) 2008-02-01 2011-07-28 인터디지탈 패튼 홀딩스, 인크 토큰 버킷들을 초기화, 유지 및 재구성하는 방법 및 장치

Similar Documents

Publication Publication Date Title
US9398488B2 (en) Video service buffer management in a mobile rate control enabled network
US9225980B2 (en) Video quality of sevice management and constrained fidelity constant bit rate video encoding systems and methods
US8467457B2 (en) System and a method for controlling one or more signal sequences characteristics
KR100787314B1 (ko) 미디어내 동기화를 위한 적응형 미디어 재생 방법 및 장치
US8955024B2 (en) Video streaming
US20140181266A1 (en) System, streaming media optimizer and methods for use therewith
US8599919B2 (en) Moving image coding/decoding system and moving image coding apparatus and moving image decoding apparatus used therein
KR100592547B1 (ko) 스트리밍을 위한 패킷 스케줄링 방법
JP2007184913A (ja) 無線ビデオ送信システム
KR20040053145A (ko) 소스로부터 목적지까지의 전송을 위한 통신 시스템 및 기술
WO2015138993A1 (en) System and method for dynamic effective rate estimation for real-time video traffic
KR100924309B1 (ko) 시간확장성과 버퍼상태판단을 통한 품질 적응적 멀티미디어 데이터 스트리밍 방법 및 시스템
KR100652574B1 (ko) 스트리밍 시스템 및 적응적 대역 할당 방법
Vishwanath et al. Perspectives on quality of experience for video streaming over WiMAX
Zhang et al. Network-adaptive rate control with TCP-friendly protocol for multiple video objects
Singh et al. Optimising QoE for scalable video multicast over WLAN
US20100027428A1 (en) Scheduling method of providing multimedia service
KR101637840B1 (ko) 토큰 버킷 기법을 이용한 비디오 스트리밍 서비스 제공 시스템 및 방법
Jiang et al. A packet selection algorithm for adaptive transmission of smoothed video over a wireless channel
KR101636198B1 (ko) 무선 통신 환경에서 비디오 스트리밍의 트래픽 제어 방법 및 이를 구현하는 수신기 장치
Liebl et al. Joint buffer management and scheduling for wireless video streaming
CN105306970B (zh) 一种流媒体直播发送速度的控制方法及装置
JP4227438B2 (ja) 映像伝送システム
Dhamodaran et al. Adaptive bitstream prioritization for dual TCP/UDP streaming of HD video
Ozcelebi et al. Minimum delay content adaptive video streaming over variable bitrate channels with a novel stream switching solution

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190701

Year of fee payment: 4