KR100750669B1 - 멀티미디어 스트리밍 방법 및 장치 - Google Patents

멀티미디어 스트리밍 방법 및 장치 Download PDF

Info

Publication number
KR100750669B1
KR100750669B1 KR1020057017602A KR20057017602A KR100750669B1 KR 100750669 B1 KR100750669 B1 KR 100750669B1 KR 1020057017602 A KR1020057017602 A KR 1020057017602A KR 20057017602 A KR20057017602 A KR 20057017602A KR 100750669 B1 KR100750669 B1 KR 100750669B1
Authority
KR
South Korea
Prior art keywords
packet
server
played
streaming
receiver
Prior art date
Application number
KR1020057017602A
Other languages
English (en)
Other versions
KR20060024351A (ko
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 노키아 코포레이션
Publication of KR20060024351A publication Critical patent/KR20060024351A/ko
Application granted granted Critical
Publication of KR100750669B1 publication Critical patent/KR100750669B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • 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/1066Session management
    • H04L65/1101Session protocols
    • 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)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Communication Control (AREA)

Abstract

RTP 패킷의 송신기에게 특정 시점에서의 RTP 패킷의 수신기 내의 실제 수신기 버퍼의 적합 레벨을 시간 단위의 잔여 재생 기간으로서 제공하기 위한 방법이 개시된다. 수신기는, RTCP 리포트 내에서, 수신기 버퍼 내의 선택된 RTP 패킷의 시퀀스 번호 및 해당 패킷의 스케줄링된 재생 시간 및 현 시간 간의 시간차를 전송한다. 이러한 타이밍 정보에 기반하여, 송신기는 수신기가 계속하여 보통 속도로 재생을 진행하고 다른 추가적인 RTP 패킷들이 수신기 버퍼에 수신되지 않을 경우에 수신기 버퍼가 비워질 때까지 어느 정도의 시간이 걸리는지를 연산한다. 이러한 수신기 버퍼의 적합 레벨 정보는 송신기측에서 사용되어, 목표 수신기 버퍼 적합 레벨을 유지하기 위하여 송신 속도를 조절하고 및/또는 RTP 패킷의 공칭 재생 속도를 조절하도록 하는데 이용될 수 있다.

Description

멀티미디어 스트리밍 방법 및 장치{Method and device for multimedia streaming}
본 발명은 일반적으로 멀티미디어 스트리밍에 관한 것이고, 특히, 멀티미디어 스트리밍 클라이언트의 수신기 버퍼를 적합 상태로 관리하는데(fullness management)에 관한 것이다.
멀티미디어 스트리밍 서비스에서, 스트리밍 서비스에 관련된 세 가지 참여자(participants)가 존재하는데, 그들은 스트리밍 서버, 스트리밍 클라이언트, 및 송신 매체(transmission medium) 등이다. 송신 매체는 점-대-점 선로 요소(point-to-point line components)의 체인(chain)으로 이루어지는 경로인데, 송신 매체의 전체 동작은 일반적으로 해당 경로 내의 병목 링크(bottleneck link)에 의하여 제한된다. 이동 통신 네트워크에서, 이러한 병목 링크는 공중파 인터페이스(air interface)에 존재하는데, 이것은 다운링크 스트리밍 서비스 시나리오에서 해당 단말기로의 최후 홉(last hop)에 해당한다. 스트리밍 서버는 병목 링크의 변동하는 가용 대역폭(bandwidth)에 맞춰 송신 비트레이트(transmission bitrate)를 조절한다. 이러한 동작을 수행하는 동안에, 스트리밍 서버는 클라이언트의 수신기 버퍼의 적합 레벨(fullness level)도 제어함으로써 클라이언트에서 버퍼 언더플로우 (buffer underflow) 또는 오버플로우가 발생하는 것을 막아주는데, 여기서 버퍼 언더플로우는 재생 인터럽트(playout interrupt)에 해당하고, 오버플로우는 패킷 손실(packet drops)에 해당한다. 3GPP TS 26.234 V5.0.0 (2002-03) "Transparent end-to-end packet switched streaming service(PSS); Protocols and codecs" (Release 5) 문헌에서, 스트리밍 세션(streaming session)의 개시 단계에 있는 스트리밍 클라이언트는 실제 재생 동작이 개시되기 이전에 사전 협의된(negotiated) 선결된 양의 데이터를 버퍼링한다(최초 수신기 버퍼 지연이 발생된다). 최초 수신기 버퍼 지연을 알게 된 후, 서버는 클라이언트가 재생할 매체의 샘플링 타임스탬프(sampling timestamp)를 정확히 따르는 것으로 가정함으로써 수신기 버퍼의 적합 레벨을 예측한다. 클라이언트가 가정된 대로 동작하는지에 대해서는 서버는 알지 못한다. 예를 들어, 클라이언트의 클록이 서버의 클라이언트에 비하여 맞지 않을 수 있다. 또한, 클라이언트의 재생 속도는 점점 느려지거나 클라이언트는 추가적인 버퍼링을 수행할 수도 있다.
시스템 클록이 맞지 않는 현상(system clock drift)은 현대 전자 공학 시스템에서 25도의 동작 환경에서 한달에 1분이 느려지거나 빨라지거나 하는 정확도의 오차 및 60도의 동작 환경에서 1년당 40분의 오차가 발생하는 정도가 허용된다. 보상되지 않은 타이밍 크리스탈(timing crystal)은, 공업용 동작 온도 범위에서 동작할 때 시스템 클록이 1년에 100분 정도까지 느려지거나 빨라지도록 야기할 수 있다. 서버의 클록 및 클라이언트의 클록이 1년에 40분의 오차를 가지고 서버 및 클라이언트의 클록들이 서로 역으로 어긋난다면, 상대적인 시간 오차(relative drift)는 한 시간당 0.5479 초에 해당한다. 만일 그 오차가 1년에 100분에 해당하고, 서버 및 클라이언트의 클록들이 서로 역으로 어긋난다면 상대적인 시간 오차는 한 시간당 1.3699초에 해당한다.
클라이언트 시스템이 느려지는 현상이 발생하면, 많은 응용 프로그램들이 동시에 동작할 때 클라이언트의 운영 체제(operation system)는 느려질 수 있으므로, 재생도 느려지게 될 수 있다.
추가 버퍼링(extra buffering)에 대해 살펴보면, 서버로부터의 확인(acknowledgement)없이 클라이언트가 협상된 것보다 많은 양을 최초에 버퍼링하는 일이 가능하다. 그러면 추가 버퍼링이 발생된다. 또한, 클라이언트는 특별히 긴 패킷 지연(예를 들어, 이동 통신 핸드오버(handover)의 동작 시에 발생될 수 있는 패킷 지연)에 기인하여 수신기 버퍼가 언더플로우 된다면, 클라이언트는 재버퍼링(rebuffering)을 수행할 수 있는데, 여기서 재버퍼링이란 재생을 더 지연시키는 것이다).
전술된 상황에서, 수신기 버퍼의 적합 레벨에 대한 서버 측의 가정은 부정확할 수 있는데, 그 이유는 클라이언트는 서버가 가정하는 바와 완전 동일한 속도로 재생을 수행하지 않기 때문이다. 그러므로, 서버가 가정된 바와 같은 수신기 버퍼의 적합 레벨에 의존하여 속도 적응 동작(rate adaptation operation)을 실행하면, 수신기 버퍼 내의 언더플로우 또는 오버플로우 현상이 발생될 수 있다.
종래기술에 의한 PSS 스트리밍 시스템에서, 부정확한 가정이 발생되는 것을 방지하고, 수신기 버퍼내의 실제 적합 레벨 및 서버에 의하여 가정된 적합 레벨 간 의 차이를 제거하기 위한 매커니즘이 존재하지 않는다. 부정확한 가정 때문에 수신기 버퍼의 언더플로우 또는 오버플로우가 발생될 때마다, 스트리밍 클라이언트는 스스로 알아서 이와 같은 수신기 버퍼의 위반 현상(buffer violation)을 처리하여야만 한다(즉, 재버퍼링을 수행하거나 패킷을 버려야 한다). 대안적으로, 수신기 버퍼의 위반 현상이 발생할 경우에, 클라이언트는 스트리밍 서버로 하여금 신규한 RTSP(Real-time Streaming Protocol) PLAY 요청을 전송하고, 스트리밍 세션을 재개시함으로써, 이를 통하여 수신기 버퍼의 적합 레벨에 대한 서버의 정확한 가정을 재설정함으로써 스트리밍 세션을 재개시(re-initialize)하도록 요청할 수 있다.
유사한 문제점이 종래 기술에 의한 실시간 원격 카메라 신호 공급 응용 분야(remote live camera feed application)에도 동일하게 발생되는데, 이 분야에서는 실시간 비디오 신호들(예를 들어 뉴스 속보 및 스포츠 이벤트들과 같은 비디오 신호)이 복수 개의 카메라(비디오 소스들)로부터 IP(Internet Protocol) 연결망을 통하여 중앙 텔레비전 스튜디오로 스트리밍된다. 실시간 공급 동작은 중앙 스튜디오로부터 방송되기 위하여 하나 또는 그 이상의 방송국으로 전달(forward)된다. 두개 또는 그 이상의 비디오 소스들이 스트리밍에 관련된다면, 스트리밍 시스템은 모든 소스들 및 중앙 스튜디오 간의 시간 동기화가 유지되어야 한다는 것을 확인해 주어야 한다. 이러한 목적에서, 중앙 스튜디오는 마스터 싱크 발생기(master sync generator) 또는 마스터 클록("하우스 싱크(house sync)")를 유지하는데, 이러한 장치는 예를 들어 미국 표준에 따르면 초당 29,97 프레임 씩의 속도에서 동작하는데, 모든 장치들이 이러한 식도에 동기화된다. 만일 카메라들이 "자유 동작(free running)" 모드에서 동작한다면, 이들의 시간 베이스(time base)는 스튜디오의 하우스 싱크에 비하여 맞지 않게 되고, 비디오 프레임들은 재생동작의 실시간화(real-timeness)를 유지하기 위한 노력을 수행하는 과정에서 방송도중 분실되거나 중복되어야 하는 경우가 발생될 수 있다. IETF draft-harrision-avt-interlock-01.txt 로서, "Timebase Interlock in Real-time Transport Protocol(RTP) Conferences" 의 제목을 가지며, C. Harrison에 의한 제안서인 2001년 3월에 배포된 문서에 따르면 실시간 제어 프로토콜(RTCP, Real-time Control Protocol) 확장자(extension)를 통하여 "타임 베이스 관리(TBM, Timebase Management) 버퍼 상태 메시지"를 중앙 스튜디오로부터 원격 카메라들에 전송함으로써 스튜디오 수신기 버퍼 내의 "킬로바이트 단위로 표시된 버퍼 내 잔여 데이터량"을 보고하는 것이 가능하다. 이와 동일하게, 이와 같은 버퍼 상태 메시지에 기반하여 각각의 카메라들은 자신의 클록이 잘 맞는지 여부를 검출하고 자신의 클록을 조절하여 하우스 싱크와 동기화할 수 있다. 또는, 중앙 스튜디오는 "TBM 속도 제어 메시지"들을 전송함으로써 각각의 카메라들로 하여금 스튜디오에 의하여 예측된 클록 오차에 기반하여 각자의 클록을 조절하도록 요청할 수 있다.
본 발명의 제1 목적은 RTP 패킷의 송신기에게 특정 시점에서의 RTP 패킷의 수신기 내의 수신기 버퍼의 실제 적합 레벨로서, 시간 단위로의 잔여 재생 기간(remaining playout duration)으로서 표시되는 적합 레벨을 제공하는 것이다. 이러한 목적은 수신기 버퍼 내의 모든 RTP 패킷의 시퀀스 번호 및 해당 패킷의 스케줄링된 재생 시간 및 현 시간 간의 시간차를 제공함으로써 달성될 수 있다. 또는, 전술된 제1 목적은 송신기에게 수신된 최후 RTP 패킷의 시퀀스 번호 및 수신기에서 후속하여 재생될 RTP 패킷의 시퀀스 번호를 제공함으로써도 달성될 수 있는데, 이 방법은 전술된 방법에 비하여 정확도가 좀 저하될 수 있다.
송신기에 의하여 관찰되는 수신기 버퍼 정보는 시간 도메인에서 작성된 것으로서, 수신기 버퍼 내의 실제 잔여 재생 기간을 반영한다(즉, 신규한 RTP 패킷이 버퍼에 추가되지 않을 경우에 수신기 버퍼에 잔여 패킷이 존재하지 않게 되는데 까지 걸릴 시간의 양을 반영한다). 종래 기술에서 송신기는 단지 수신기 버퍼의 적합 레벨을 예측하거나 송신기가 수신기 버퍼 내에 존재하는 바이트들의 개수에 의하여 표시되는 수신기 버퍼의 적합 레벨만을 알고 있는 경우와 비교할 때, 본 발명은 송신기로 하여금 재생 속도 편차(playout rate deviation)로서, 예를 들어 클록의 시간 어긋남과 같은 현상을 정확하게 검출하도록 하기 위한 수단을 제공한다.
본 발명의 다른 목적은, RTP 패킷의 수신기 내의 수신기 버퍼의 실제 적합 레벨에 추가하여 수신기가 요청하는 목표 최소치 수신기 버퍼 적합 레벨(targeted minimum receiver buffer fullness level)도 RTP 패킷의 송신기에 제공하는 것이다.
이에 따르면, 본 발명의 제1 측면은 멀티미디어 스트리밍 시스템 내의 스트리밍 클라이언트내의 수신기 버퍼의 적합 레벨(fullness level)을 적응적으로 제어하기 위한 방법으로서, 상기 스트리밍 시스템은, 패킷들 내의 스트리밍 데이터를 소정 송신 속도(transmission rate)로 상기 스트리밍 클라이언트로 제공함으로써 상기 클라이언트로 하여금 소정 재생 속도(playout rate)로 상기 패킷들의 적어도 일부를 재생할 수 있도록 하고, 각 패킷은 시퀀스 번호(sequence number)를 가지며, 상기 수신기 버퍼는 상기 송신 속도 및 상기 재생 속도 간의 차이를 보상하기 위하여 상기 스트리밍 데이터의 적어도 일부를 저장하는데 사용됨으로써 상기 클라이언트가 단절이 없는 방식으로(non-disruptive manner) 재생할 수 있는 상기 스트리밍 데이터의 충분한 양을 저장하도록 하고, 상기 수신기 버퍼 내에 저장된 상기 스트리밍 데이터의 일부는 재생될 패킷들의 시퀀스를 포함하며, 상기 시퀀스는 재생될 최초 패킷 및 재생될 최후 패킷을 포함하는 수신기 버퍼의 적합 레벨의 적응 제어 방법에 있어서,
소정 시점에 상기 수신기의 잔여 재생 기간을 시간 단위로 나타내는 정보를 포함하는 메시지를 상기 서버로 제공하는 제공 단계 및
상기 서버의 송신 특성(transmission characteristic)으로서, 상기 스트리밍 데이터가 상기 클라이언트로 제공되는 송신 특성을 조절하는 조절 단계를 포함하는 것을 특징으로 하는 수신기 버퍼의 적합 레벨의 적응 제어 방법에 관한 것이다.
시간 단위로 표시되는 상기 잔여 재생 기간은, 재생될 패킷들의 상기 시퀀스 중 선택된 하나 및 상기 선택된 패킷의 스케줄링된 재생 시간(scheduled playout time) 및 현재 시간 간의 시간차의 아이덴티티(identity)의 형태로 제공되는 것을 특징으로 한다.
재생될 상기 선택된 패킷은, 재생될 패킷의 시퀀스 내의 최초 패킷에서의 재생될 최초 패킷이거나, 재생될 최후 패은 재생될 패킷들의 상기 시퀀스 내의 최후 패킷이거나, 또는 최초 및 최후 패킷 내의 다른 패킷일 수 있다.
선택된 패킷의 상기 아이덴티티는 상기 선택된 패킷의 시퀀스 번호이거나 각 패킷에 관련된 타임 스탬프(timestamp)이다.
본 발명에 따른 방법은 재생될 상기 최후 패킷의 시퀀스 번호 및 제공된 상기 정보에 기반하여, 상기 수신기 버퍼 내의 적합 레벨을 상기 서버 내에서 계산하는 단계를 더 포함하는 것을 특징으로 하는 한다.
바람직하게는, 상기 클라이언트는 상기 제공 단계와 더불어 수신기 리포트(RTCP RR)(receiver report)를 더 제공하며, 상기 수신기 리포트는 재생될 상기 최후 패킷을 나타내는 정보를 포함함으로서 상기 서버로 하여금 상기 선택된 패킷의 시퀀스 번호, 상기 선택된 패킷의 스케줄링된 재생 시간 및 현재 시간 간의 시간차, 및 재생될 상기 최후 패킷의 상기 시퀀스 번호에 기반하여 상기 수신기 버퍼 내의 적합 레벨을 상기 서버 내에서 계산하도록 하는 것을 특징으로 한다.
바람직하게는, 상기 메시지는 목표 최소치 버퍼 레벨(targeted minimum buffer level)을 나타내는 정보를 더 포함함으로써, 상기 서버가 상기 목표 최소치 버퍼 레벨에 기반하여 상기 송신 속도 및/또는 공칭 재생 속도를 조절할 수 있도록 하는 것을 특징으로 한다.
본 발명의 제2 측면은 멀티미디어 스트리밍 시스템용 적응형 제어 시스템(adaptive control system)으로서, 상기 스트리밍 시스템은, 적어도 스트리밍 클라이언트 및 스트리밍 데이터를 패킷 형태로 소정 송신 속도로 상기 스트리밍 클라이언트로 제공함으로써 상기 클라이언트로 하여금 소정 재생 속도로 상기 패킷들의 적어도 일부를 재생할 수 있도록 하는 스트리밍 서버를 포함하고, 각 패킷은 시퀀스 번호를 가지며, 상기 클라이언트에 포함되는 수신기 버퍼는 상기 송신 속도 및 상기 재생 속도 간의 차이를 보상하기 위하여 상기 스트리밍 데이터의 적어도 일부를 저장하는데 사용됨으로써 상기 클라이언트가 단절이 없는 방식으로 재생할 수 있는 상기 스트리밍 데이터의 충분한 양을 저장하도록 하고, 상기 수신기 버퍼 내에 저장된 상기 스트리밍 데이터의 일부는 재생될 패킷들의 시퀀스를 포함하며, 상기 시퀀스는 재생될 최초 패킷 및 재생될 최후 패킷을 포함하는 멀티미디어 스트리밍 시스템용 적응형 제어 시스템에 있어서,
상기 클라이언트는,
소정 시점에 상기 수신기의 잔여 재생 기간을 시간 단위로 나타내는 정보를 포함하는 메시지를 상기 서버로 제공하기 위한 수단을 포함하고,
상기 서버는,
상기 메시지에 응답하여, 제공된 상기 정보에 기반하여 상기 수신기 버퍼 내의 적합 레벨을 계산하고, 상기 서버의 송신 특성으로서, 상기 스트리밍 데이터가 상기 클라이언트로 제공되는 송신 특성을 조절하기 위한 수단을 포함하는 것을 특징으로 하는 멀티미디어 스트리밍 시스템용 적응형 제어 시스템에 관한 것이다.
상기와 같은 목적을 달성하기 위한 본 발명의 제3 측면은, 멀티미디어 스트리밍 시스템 내의 통신 장치(communication device)로서, 상기 스트리밍 시스템은, 패킷들 내의 스트리밍 데이터를 소정 송신 속도로 상기 스트리밍 클라이언트로 제공함으로써 상기 클라이언트로 하여금 소정 재생 속도로 상기 패킷들의 적어도 일부를 재생할 수 있도록 하는 스트리밍 서버를 포함하고, 각 패킷은 시퀀스 번호를 가지며, 상기 통신 장치는 상기 송신 속도 및 상기 재생 속도 간의 차이를 보상하기 위하여 상기 스트리밍 데이터의 적어도 일부를 저장함으로써 상기 통신 장치가 단절이 없는 방식으로 재생할 수 있는 상기 스트리밍 데이터의 충분한 양을 저장하도록 하는 수신기 버퍼를 포함하고, 상기 수신기 버퍼 내에 저장된 상기 스트리밍 데이터의 일부는 재생될 패킷들의 시퀀스를 포함하며, 상기 시퀀스는 재생될 최초 패킷 및 재생될 최후 패킷을 포함하는 상기 통신 장치에 있어서,
상기 수신기 버퍼 내의 상기 스트리밍 데이터의 저장된 부분에 기반하여 소정 시점에서의 잔여 재생 기간을 시간 단위로 계산하기 위한 수단 및
시간 단위로 표시되는 상기 잔여 재생 기간을 나타내는 정보를 포함하는 메시지를 상기 서버로 제공함으로써, 상기 서버로 하여금 제공된 상기 정보에 기반하여 상기 수신기 버퍼 내의 적합 레벨을 계산하도록 하기 위한 수단을 포함하는 것을 특징으로 하는 통신 장치에 관한 것이다.
본 발명은 도 2 및 도3에 관련하여 설명된 상세한 설명 및 이와 관련된 방법을 통하여 더욱 명백해 질 것이다.
도 1은 종래 기술에 의한 RTCP RR 패킷의 구조를 나타내는 도면이다.
도 2는 본 발명에 의하여 제안된 RTCP 리포트 패킷의 샘플 구조를 나타내는 도면이다.
도 3은 수신기 버퍼의 적합 레벨을 적응적으로 제어하기 위한 서버 및 클라이언트 내의 다양한 구성 요소들을 예시하는 블록도이다.
본 발명에 따른 수신기 버퍼의 적합 레벨에 대한 적응적 제어 방법은, 신규한 RTCP 패킷을 이용하는데, RTCP 패킷은 혼합 패킷(compound packet)의 형태로서 종래 기술에 의한 RTCP RR 리포트와 함께 전송될 수 있다. 종래 기술에 의한 RTCP RR 리포트는 도 1에 도시되어 있으며, 신규한 RTCP 패킷은 도 2에 도시된다. 신규한 RTCP 패킷의 패킷 타입은 RBI(수신기 버퍼 정보, Receiver Buffer Information)이라고 불릴 수 있으며 아직 결정되지 않은 신규한 패킷 타입 번호를 요구한다. 수신기 및 송신기 간의 시그널링 동작(singaling)은, 본 발명에 따르면 상이한 구조 포맷을 가지거나 프로파일에 특이성을 가지는 확장자 및 다른 형태의 RTCP 확장자의 일부일 수 있다.
본 발명에 따른 수신기 버퍼의 적합 레벨에 대한 적응적 제어 방법은, RTP 패킷의 송신기에서의 패킷 송신 주파수 및 수신기 측에서의 RTP 패킷 재생 주파수 간의 차이에 기반한다. 어느 시점에서나, 수신기 버퍼는 송신기로부터 수신된 복수 개의 RTP 패킷을 보유한다고 가정된다. 이러한 RTP 패킷에는 수신기 버퍼로부터 재생될 후속 RTP 패킷(최초 패킷) 및 수신기 버퍼로부터 재생될 최후 RTP 패킷(최후 패킷)이 포함된다. 각 RTP 패킷은 송신기에 알려진 시퀀스 번호 및 재생 타임 스탬프(playout timestamp)를 포함하기 때문에, 송신기가 어떤 시퀀스 번호를 가지는 RTP 패킷이 다른 시퀀스 번호의 RTP 패킷에 관한 재생 시간을 알아내는 것 이 가능하다. 그러므로, 만일 송신기가 수신기 버퍼에 저장된 어느 RTP 패킷의 스케줄링된 재생 시간을 나타내는 타이밍 정보(timing information)를 가지고 있다면, 송신기는 다른 모든 RTP 패킷의 스케줄링된 재생 시간을 연산할 수 있다. 최후 패킷의 스케줄링된 재생 시간 및 수신기의 현 시간(즉, RTCP RR 패킷의 송신 시간) 간의 시간차는 실제의 현재 수신기 버퍼의 적합 레벨을 제공하는데, 이 정보는 시간 단위인 잔여 재생 기간으로써 표시된다. 다음과 같이 정의한다.
SNx 수신기 버퍼 내의 패킷 x의 시퀀스 번호
TSx 수신기 버퍼 내의 패킷 x의 RTP 타임 스탬프. 여기서 x는 first ≤x≤ last 의 관계를 만족한다(즉, 수신기 버퍼내의 패킷들의 시퀀스에서 최초 및 최후 사이에 존재한다).
FTS RTP 타임 스탬프 해상도(RTP timestamp resolution)를 나타내며, 즉 1초당 틱수(ticks)의 단위를 가진다.
Tx는 현재 시간 및 패킷 x의 스케줄링된 재생 시간 간의 시간차
FT Tx의 해상도로서 즉, 1초당의 틱수에 해당하는 단위를 가진다.
Tlast는 현재의 실제 수신기 버퍼 적합 레벨과 등가이다. 수신기는 송신기에 Tlast를 연산하기에 필요한 정보를 다양한 형태로 제공할 수 있다. 이러한 시그널링의 일 예가 도 2에 도시되는데, 도 2에서 신규한 RTCP 패킷 타입(PT=RBI) 는 SNfirst 및 Tfirst를 포함하도록 정의되었다. 이러한 RTCP 패킷은 정규의 RTCP RR 패킷과 함께 혼합 패킷 내에 포함될 수 있다(도 1을 참조한다). SNlast 는 RTCP RR 패킷 내의 "수신된 시퀀스 번호의 확장된 최고치(extended highest sequence number received)" 필드 내에서 시그널링된다.
RTP 패킷의 수신기는 자신의 버퍼로부터 SNfirst 및 TSfirst를 상응하는 RTP 패킷의 일부로서 검색하고, TSfirst 및 재생 타이머의 현 위치로부터 Tfirst를 예측할 수 있다. RTP 타임 스탬프 레코드에 대해서는, 송신기는 SNfirst를 TSfirst 로 매핑하고 SNlast를 TSlast 로 매핑할 수 있고, 다음 수학식 1을 이용하여 수신기 버퍼의 적합 레벨(Tlast)을 연산할 수 있다.
Tlast=(TSlast-TSfirst)*FT/FTS+Tfirst
여기서 FRS는 RTP 패킷의 송신기에게 알려진다. 실무상, FT는 FTS와 동일하도록 설정되고 마찬가지로 송신기에게 알려질 수 있다. 그러나, 만일 FT가 FTS와 다르다면, RTP 패킷의 수신기는 FT를 송신기에 제공할 수 있다.
SNfirst 및 Tfirst 대신에 수신가 SNx 및 Tx(즉, 수신기 버퍼 내의 패킷들 중 어느 것이나)를 시그널링한다면 유사한 연산이 가능해진다. 특히, 직접적으로 SNlast(이미 정규의 RTCP RR 리포트에 포함되었다) 및 Tlast를 시그널링함으로써 전술된 수 학식 1을 아예 사용하지 않도록 하는 것 역시 가능하다. 그러나 수신기가 장래 재생될 패킷들의 재생 시간을 예측하는 것은 더 어렵기 때문에(예를 들어 예측된 재생 시간 이전에 예측되지 않은 이벤트가 재생을 방해할 확률이 상대적으로 높기 때문에), 일반적으로는 Tlast 예측치의 신뢰도(reliability)는 Tfirst 의 예측치 보다는 작다.
비록 본 발명의 바람직한 실시예는 SNx을 시그널링하고 이것을 송신기 측에서 TSx로 매핑하여야 하지만, 다른 실시예들에서는 SNx 대신에 TSx를 송신기 측으로 시그널링하도록 선택할 수 있다는 점에 주의하여야 한다. 두 실시예의 차이점은, 미디어 샘플(예를 들어 비디오 이미지와 같은 미디어 샘플)이 다수 개의 RTP 패킷들에 매핑될 수 있으며(즉, 상이한 SN을 가지는 다수 개의 RTP 패킷이 동일한 RTP 타임 스탬프를 가진다), 그러므로 TS는 단일 SN에 대하여 1대1 상관 관계를 가지지 않는다는 점이다.
실무상, 시그널링 지연(signaling delay)(즉, RTP 수신기로부터 전송된 시그널링 메시지가 RTP 패킷 송신기에 도달할 때 까지 걸리는 시간)은 절대로 0이 될 수 없으며, 송신기 측에 도달되는 정보는 언제는 다소 지연되므로(즉, 그 사이에 수신기의 재생 타이머는 진행된다), 수신기 버퍼의 적합 레벨 예측치로서 송신기측에서 연산된 Tlast 는 언제나 어느 정도의 에러를 포함한다. Tlast 가 송신기측에서 사용될 때에는 이러한 에러가 고려되어야 한다.
수신기 버퍼의 적합 레벨 정보에 첨가하여, 클라이언트는 시간 단위로 표시 되는 목표 수신기 버퍼의 최소 레벨을 송신기측에 시그널링할 수 있으며(예를 들어, 예시적인 RTCP RBI 패킷의 제2에 도시된 바와 같은 Tmin에 해당한다), 여기서 목표 최소 버퍼 레벨은 서버로 하여금 수신된 모든 패킷들이 그들이 재생되기 이전에 적어도 Tmin에 해당하는 시간동안을 수신기 버퍼 내에서 보낼 수 있도록 하는 방식으로 송신 속도 및 패킷들의 공칭 재생 속도를 적응시키도록 요구한다.
종래 기술에 의한 RTCP RR 리포트와 함께 혼합 패킷의 형태로 전송되는 RTCP RBI 패킷을 이용하면, 클라이언트는 어느 시점에서의 수신기 버퍼 내의 존재하는 잔여 재생 기간을 시간 단위로 나타내는 정보를 포함하는 메시지를 서버에 제공할 수 있으며, 이에 따라서 서버로 하여금 제공된 정보에 기반하여 송신 특성을 조절하도록 허용하도록 동작할 수 있다. 예를 들어, 서버가 비트스트림 스위칭(bitstream switching)을 이용하거나 송신 속도가 지정된 속도와 상이할 경우에는 송신 속도를 디커플링하여 송신 특성(transmission characteristic)을 변경시킴으로써 수신기 버퍼 레벨을 증가 또는 감소시키도록 하는 것이 가능하다. 또한, 서버는 비트 스트림의 재생 속도를 수정함으로써 수신기 버퍼의 적합 레벨에 영향을 미칠 수도 있다. 수신기 버퍼 내의 최후 패킷의 시퀀스 번호(SNlast)는 RTCP RR 리포트 내의 "수신된 시퀀스 번호의 확장된 최고치(extended highest sequence number received" 필드에서 발견될 수 있다. 수신기 버퍼 내의 시간 단위로 표시되는 잔여 재생 기간은 선택된 패킷(SNx)의 시퀀스 번호 및 선택된 패킷이 디코더로 패싱될 때까지의 시간(Tx)을 나타내는 타이밍 정보를 이용하여 계산될 수 있다. SNx 및 Tx는 RTCP RBI 패킷 내의 두 개의 필드에 포함될 수 있다. 여기서 x는 수신기 버퍼내의 패킷들의 시퀀스내의 최초 또는 최후 번호이거나, 이들 사이의 임의의 번호일 수 있다. RTCP RBI 패킷은 목표 최소 버퍼 레벨 필드를 포함하도록 구현될 수 있는데, 수신기는 이 필드를 이용하여 송신기로부터의 원하는 최소 수신기 버퍼 레벨을 요청할 수 있다. 더 나아가, "타이밍 정보" 필드(Tx)를 이용하지 않고 RTCP RBI 패킷을 구현하고 그 대신에 최초 패킷 시퀀스 번호(SNfirst) 만을 가지고 시그널링하는 것 역시 가능하다. 이와 같은 경우에, 서버는 단지 SNlast 및 SNfirst 에 기반하여 수신기 버퍼의 적합 레벨을 예측할 수 있다. 이러한 접근법은 Tfirst 도 서버에 제공되는 접근법에 비하여 정확도가 떨어진다. 하지만, 전달되는 정보는 수신기 버퍼의 적합 레벨을 예측하는데 있어서 서버에게 유용하다.
도 3은 서버 및 클라이언트 내에 포함되는 다양한 구성 요소들을 도시하는 블록도로서, 도시된 구성 요소는 수신기 버퍼의 적합 레벨을 정확히 예측하는데 필요하다. 도 3에 도시된 바와 같이, 멀티미디어 스트리밍 시스템(10)은 RTP 패킷에 대한 적어도 하나의 송신기(20) 및 수신기(50)를 포함한다. 수신기(50)에서, 디코더/플레이어(52)가 수신기 버퍼(54)로부터의 패킷을 처리하고, 처리된 패킷을 재생 장치들(미도시)에 제공하는데, RTP/RTCP 모듈(56)은 RTP/RTCP 패킷들을 수신하고 RTCP 패킷(26)을 송신기에 전송하는 동작을 담당한다. 송신기(20)는 수신기(50)로 부터 RTCP 리포트 패킷(26)들을 수신한다. 송신기(20) 내의 세션 QoS 관리자(22)가 클라이언트에 의하여 감지되는 전체 세션 품질을 관리하는 동작을 담당하는데, 이에 반하여 미디어 QoS 관리자(24)는 단일 미디어 타입의 품질 관리만을 담당한다. RTCP 리포트들(26)의 개별 세트들은 각 미디어 타입에 속하며, 따라서 개별 미디어 QoS 관리자(24)에 의하여 관리된다. 통계적 어레이(28)는 각 미디어 타입을 위한 통계적 정보(즉, 과거 RTCP 리포트들)를 저장하는데, 이러한 통계적 정보는 미디어 QoS 관리자(24) 내에서 속도 적응 동작을 수행하는데 요구되는 정보를 제공한다. 결정 블록(30)은 미디어 QoS 관리자(24)로부터 처리된 정보를 수신하고, 예를 들어 해당 적응 동작을 수행하기 위하여 송신 특성 내의 어떤 타입에 대한 조정이 필요한지에 대해서 결정한다. 송신기(20)(예를 들어, 스트리밍 서버, 원격 카메라와 같은)는 수신기(50)(예를 들어 스트리밍 클라이언트 또는 스튜디오)로부터 제공된 정보를 이용하여 상이한 미디어의 송신 속도 및/또는 공칭 재생 속도를 조절함으로써 수신기 버퍼의 적합 레벨을 유지하고 및/또는 "클록 오차 정정(clock drift correction)" 동작을 수행한다. 상이한 세션 QoS 관리자(22)들은 상이한 미디어 타입에 대해서 상이한 속도 적응 동작(rate adaptation)을 제공할 수 있다. 제안된 시그널링 동작은 오디오 또는 비디오 미디어 타입에 한정되는 것이 아니며, 이 동작은 모든 다른 미디어에 대해서도 이용될 수 있다.
예시적 응용 분야
Tlast 는 다음과 같은 응용 시나리오들 내에 존재하는 문제점을 해결하는데 사용될 수 있다.
A. 멀티미디어 스트리밍
스트리밍 서버는 Tlast를 이용함으로써 수신기 버퍼의 적합 레벨에 대한 자신의 가정을 정정할 수 있다. 가정된 값이 아닌 실제의 수신기 버퍼 적합 레벨 정보를 이용함으로써, 수신기 버퍼의 적합 레벨에 대한 부정확한 가정으로부터 야기되는 수신기 버퍼의 위반 현상(buffer violation)이 발생되는 것을 방지할 수 있다.
전술된 바와 같은 RTCP 패킷 타입(PT=RBI)에 더불어, 멀티미디어 스트리밍 응용 분야에서, Tlast를 계산하기 위하여 필요한 정보는 RTCP 응용에 특이성을 가지는 궤환 패킷(RTCP application specific feedback packet) 또는 RTCP 수단이 아닌 다른 수단인 RTSP(Real-time Streaming Protocol) 또는 다른 외장 수단들과 같은 수단 내에서 전달될 수 있다.
목표 최소 수신기 버퍼 적합 레벨(Tmin)은 멀티미디어 스트리밍 응용 분야에 유용하다. 예를 들어, 수신기는 수신기 버퍼를 완전히 비우지 않으면서(즉, 재생 동작의 중단을 야기하는 버퍼 언더플로우 현상이 발생되지 않으면서) 임시 패킷 전달률의 감소를 버텨낼 수 있기 위하여 수신기 버퍼의 최소 적합 레벨을 유지하는 것을 희망할 수 있는데, 이러한 임시 패킷 전달률의 감소 현상은 송신기가 제어할 수 있는 범위를 벗어나는 것이다(예를 들어, 이동국 핸드오버 현상에 기인한 네트워크 링크의 인터럽션 현상과 같은 제어 불가능한 현상이다).
B. 원격 실시간 카메라 공급(Remote Live Camera Feed)
충분히 오랜 시간이 지난 이후의 정규 Tlast 업데이트(즉, 모든 RTCP 리포트마다)를 이용하여, 원격 카메라는 자신의 클록 오차를 예측할 수 있으며 자신의 클록을 스튜디오의 시스템 클록과 동기화 할 수 있는데, 충분히 오랜 시간이 지나야 하는 이유는 일반적으로 클록 오차는 서서히 발생되므로 클록 오차가 효과를 나타내는데 까지는 5분 내지 10분이 걸리는 것이 보통이기 때문이다.
송신기는 패킷을 송신하는 동안에 버퍼 적합 레벨의 예측치의 레코드(record)를 보관하는데, 이 레코드는 STlast로 표시된다. 시간의 함수로서 표시되는 예측된 버퍼 적합 레벨 및 계산된 Tlast 간의 버퍼 적합 레벨 간의 편차는 다음 수학식 2와 같이 표시될 수 있다.
D(t)=(STlast(t)-Tlast(t))
D(t)가 일반적으로 시그널링 지연(signaling delay)에 의하여 영향받지만(여기서 시그널링 지연 그 자체가 또한 하나의 변수이다), 일반적으로 이 편차는 아직 전송 중인 패킷들이 더 존재한다는 사실 때문에 최초에 양의 오프셋(positive offset)을 가진다. 만일 수신기의 클록이 송신기의 클록보다 느리다면, 수신기 버퍼의 적합 레벨은 기대된 값보다 높은 값을 가지므로 D(t) 는 음수가 된다. 클록 오차를 예측하기 위하여, 첫 번째 단계로서 라인-분석(line-fitting), 메디안 필터링(median filtering) 및 최소 자승법(Least Median of Squares)과 같은 다른 예측 기법을 이용하여 편차인 D(t)를 처리함으로써 라인 함수인
Figure 112005052333915-pct00001
를 생성한다. 두 번째 단계에서는
Figure 112005052333915-pct00002
의 미분을 취하는데(
Figure 112005052333915-pct00003
), 그 결과로 실제 클록 오차를 구할 수 있으므로 송신기측에 정정 인자(correction factor)를 제공할 수 있다. 실무적으로, 클록 오차의 정도에 따라서 예측 동작은 적어도 수 분 이상의 긴 기간 동안에 이루어져야 한다.
본 발명은 바람직한 실시예에 대하여 설명되었으나, 당업자들은 전술된 변형예 및 다양한 변형예는 물론, 형태 및 구체적인 부분에서의 삭제 또는 회피 설계가 본 발명의 기술적 사상에서 벗어나지 않는 범위에서 구현될 수 있다는 점을 이해할 것이다.
본 발명은 멀티미디어 스트리밍에 적용될 수 있으며, 특히, 멀티미디어 스트리밍 클라이언트의 수신기 버퍼의 적합 레벨 제어 동작에 사용될 수 있다.

Claims (26)

  1. 멀티미디어 스트리밍 시스템 내의 스트리밍 클라이언트내의 수신기 버퍼의 적합 레벨(fullness level)을 적응적으로 제어하기 위한 방법으로서, 상기 스트리밍 시스템은 상기 스트리밍 클라이언트를 스트리밍 서버로 링크하는 통신 링크를 포함하고, 상기 스트리밍 서버는 패킷들 내의 스트리밍 데이터를 상기 통신 링크를 통하여 소정 송신 속도(transmission rate)로 상기 스트리밍 클라이언트로 제공함으로써 상기 클라이언트로 하여금 소정 재생 속도(playout rate)로 상기 패킷들의 적어도 일부를 재생할 수 있도록 하고, 각 패킷은 시퀀스 번호(sequence number)를 가지며, 상기 수신기 버퍼는 상기 송신 속도 및 상기 재생 속도 간의 차이를 보상하기 위하여 상기 스트리밍 데이터의 적어도 일부를 저장하는데 사용됨으로써 상기 클라이언트가 단절이 없는 방식으로(non-disruptive manner) 재생할 수 있는 상기 스트리밍 데이터의 충분한 양을 저장하도록 하고, 상기 수신기 버퍼 내에 저장된 상기 스트리밍 데이터의 일부는 재생될 패킷들의 시퀀스를 포함하며, 상기 시퀀스는 재생될 최초 패킷 및 재생될 최후 패킷을 포함하는 수신기 버퍼의 적합 레벨의 적응 제어 방법에 있어서,
    상기 재생될 패킷들의 시퀀스의 하나를 상기 리시버에서 선택하고, 그 선택된 패킷은 스케줄링된 재생 시간(scheduled playout time)을 가지고 있는 단계; 및
    상기 스트리밍 데이터가 상기 클라이언트로 제공되는 송신 특성을 상기 서버에서 조절하기 위한 정보에 적어도 일부분 기반하여 상기 서버가 수신기 버퍼의 적합 레벨을 결정하도록 허용하도록 상기 선택된 재생될 패킷의 스케줄된 재생 시간을 나타내는 정보를 포함하는 메시지를 상기 서버로 제공하는 단계;를 포함하는 것을 특징으로 하는 수신기 버퍼의 적합 레벨의 적응 제어 방법.
  2. 제1항에 있어서,
    상기 정보는 재생될 패킷들의 시퀀스 중의 선택된 하나의 아이덴티티(identity) 및 현재 시각의 형태로 제공되는 것을 특징으로 하는 수신기 버퍼의 적합 레벨의 적응 제어 방법.
  3. 제2항에 있어서,
    재생될 상기 선택된 패킷은, 재생될 패킷들의 상기 시퀀스 내의 최초 패킷인 것을 특징으로 하는 수신기 버퍼의 적합 레벨의 적응 제어 방법.
  4. 제2항에 있어서,
    재생될 상기 선택된 패킷은, 재생될 패킷들의 상기 시퀀스 내의 최후 패킷인 것을 특징으로 하는 수신기 버퍼의 적합 레벨의 적응 제어 방법.
  5. 제2항에 있어서,
    상기 선택된 패킷의 상기 아이덴티티는 상기 선택된 패킷의 시퀀스 번호인 것을 특징으로 하는 수신기 버퍼의 적합 레벨의 적응 제어 방법.
  6. 제2항에 있어서,
    각 패킷의 상기 시퀀스 번호는 각 패킷에 관련된 타임 스탬프(timestamp)를 포함하고, 상기 선택된 패킷의 상기 아이덴티티는 상기 선택된 패킷과 관련된 상기 타임 스탬프인 것을 특징으로 하는 수신기 버퍼의 적합 레벨의 적응 제어 방법.
  7. 제1항에 있어서,
    재생될 상기 최후 패킷의 시퀀스 번호 및 제공된 상기 정보에 기반하여, 상기 수신기 버퍼 내의 적합 레벨을 상기 서버 내에서 계산하는 단계를 더 포함하는 것을 특징으로 하는 수신기 버퍼의 적합 레벨의 적응 제어 방법.
  8. 제1항에 있어서,
    재생될 상기 최후 패킷에 관련된 타임 스탬프 및 제공된 상기 정보에 기반하여, 상기 수신기 버퍼 내의 적합 레벨을 상기 서버 내에서 계산하는 단계를 더 포함하는 것을 특징으로 하는 수신기 버퍼의 적합 레벨의 적응 제어 방법.
  9. 제7항에 있어서,
    상기 제공된 정보는 재생될 상기 최초 패킷의 시퀀스 번호를 나타내며 ,
    상기 방법은, 재생될 상기 최후 패킷의 시퀀스 번호 및 재생될 상기 최초 패킷의 시퀀스 번호에 기반하여, 상기 수신기 버퍼 내의 적합 레벨을 상기 서버 내에서 계산하는 단계를 더 포함하는 것을 특징으로 하는 수신기 버퍼의 적합 레벨의 적응 제어 방법.
  10. 제9항에 있어서,
    상기 클라이언트는 상기 제공 단계와 더불어 수신기 리포트(receiver report)를 더 제공하며, 상기 수신기 리포트는 재생될 상기 최후 패킷을 나타내는 정보를 포함하는 것을 특징으로 하는 수신기 버퍼의 적합 레벨의 적응 제어 방법.
  11. 제5항에 있어서,
    상기 선택된 패킷의 시퀀스 번호, 상기 선택된 패킷의 스케줄링된 재생 시간 및 현재 시간 간의 시간차, 및 재생될 상기 최후 패킷의 상기 시퀀스 번호에 기반하여 상기 수신기 버퍼 내의 적합 레벨을 상기 서버 내에서 계산하는 단계를 더 포함하는 것을 특징으로 하는 수신기 버퍼의 적합 레벨의 적응 제어 방법.
  12. 제11항에 있어서,
    상기 클라이언트는 상기 제공 단계와 더불어 수신기 리포트(receiver report)를 더 제공하며, 상기 수신기 리포트는 재생될 상기 최후 패킷을 나타내는 정보를 포함하는 것을 특징으로 하는 수신기 버퍼의 적합 레벨의 적응 제어 방법.
  13. 제1항에 있어서, 상기 메시지는,
    목표 최소치 버퍼 레벨(targeted minimum buffer level)을 시간 단위(in time)로 나타내는 정보를 더 포함함으로써, 상기 서버가 상기 목표 최소치 버퍼 레벨에 기반하여 상기 송신 속도 및/또는 공칭 재생 속도를 조절할 수 있도록 하는 것을 특징으로 하는 수신기 버퍼의 적합 레벨의 적응 제어 방법.
  14. 제13항에 있어서,
    상기 서버는 상기 목표 최소치 버퍼 레벨 및 재생될 상기 최후 패킷의 상기 시퀀스 번호에 기반하여 상기 송신 속도 및/또는 공칭 재생 속도를 조절하는 것을 특징으로 하는 수신기 버퍼의 적합 레벨의 적응 제어 방법.
  15. 제14항에 있어서,
    상기 클라이언트는 상기 제공 단계와 더불어 수신기 리포트를 더 제공하며, 상기 수신기 리포트는 재생될 상기 최후 패킷을 나타내는 정보를 포함하는 것을 특징으로 하는 수신기 버퍼의 적합 레벨의 적응 제어 방법.
  16. 멀티미디어 스트리밍 시스템용 적응형 제어 시스템(adaptive control system)으로서, 상기 스트리밍 시스템은, 적어도 스트리밍 클라이언트 및 스트리밍 데이터를 패킷 형태로 소정 송신 속도로 상기 스트리밍 클라이언트로 제공함으로써 상기 클라이언트로 하여금 소정 재생 속도로 상기 패킷들의 적어도 일부를 재생할 수 있도록 하는 스트리밍 서버를 포함하고, 각 패킷은 시퀀스 번호를 가지며, 상기 클라이언트에 포함되는 수신기 버퍼는 상기 송신 속도 및 상기 재생 속도 간의 차이를 보상하기 위하여 상기 스트리밍 데이터의 적어도 일부를 저장하는데 사용됨으로써 상기 클라이언트가 단절이 없는 방식으로 재생할 수 있는 상기 스트리밍 데이터의 충분한 양을 저장하도록 하고, 상기 수신기 버퍼 내에 저장된 상기 스트리밍 데이터의 일부는 재생될 패킷들의 시퀀스를 포함하며, 상기 시퀀스는 재생될 최초 패킷 및 재생될 최후 패킷을 포함하는 멀티미디어 스트리밍 시스템용 적응형 제어 시스템에 있어서,
    상기 클라이언트는,
    재생될 패킷들의 시퀀스 중의 선택된 하나의 스케줄링된 재생 시간을 나타내는 정보를 포함하는 메시지를 상기 서버로 제공하기 위한 수단을 포함하고,
    상기 서버는,
    상기 메시지에 응답하여, 제공된 상기 정보에 기반하여 상기 수신기 버퍼 내의 적합 레벨을 계산하고, 상기 서버의 송신 특성으로서, 상기 스트리밍 데이터가 상기 클라이언트로 제공되는 송신 특성을 조절하기 위한 수단을 포함하는 것을 특징으로 하는 멀티미디어 스트리밍 시스템용 적응형 제어 시스템.
  17. 제16항에 있어서, 상기 서버 내의 상기 계산 수단은,
    재생될 상기 최후 패킷의 시퀀스 번호 및 제공된 상기 정보에 기반하여, 상기 수신기 버퍼 내의 적합 레벨을 계산하는 것을 특징으로 하는 멀티미디어 스트리밍 시스템용 적응형 제어 시스템.
  18. 제16항에 있어서, 상기 서버 내의 상기 계산 수단은,
    재생될 상기 최후 패킷에 관련된 타임 스탬프 및 제공된 상기 정보에 기반하여, 상기 수신기 버퍼 내의 적합 레벨을 계산하는 것을 특징으로 하는 멀티미디어 스트리밍 시스템용 적응형 제어 시스템.
  19. 제16항에 있어서,
    상기 정보는 재생될 상기 최초 패킷의 시퀀스 번호를 나타내고,
    상기 서버 내의 상기 계산 수단은,
    재생될 상기 최후 패킷의 시퀀스 번호 및 재생될 상기 최초 패킷의 시퀀스 번호에 기반하여, 상기 수신기 버퍼 내의 적합 레벨을 연산하는 것을 특징으로 하는 멀티미디어 스트리밍 시스템용 적응형 제어 시스템.
  20. 제16항에 있어서,
    상기 클라이언트 내의 상기 제공 수단은,
    재생될 패킷들의 시퀀스 중의 선택된 하나를 나타내는 정보와 더불어 수신기 리포트를 더 제공하며, 상기 수신기 리포트는 재생될 상기 최후 패킷을 나타내는 정보를 포함하는 것을 특징으로 하는 멀티미디어 스트리밍 시스템용 적응형 제어 시스템.
  21. 멀티미디어 스트리밍 시스템 내의 통신 장치(communication device)로서, 상기 스트리밍 시스템은, 패킷들 내의 스트리밍 데이터를 소정 송신 속도로 상기 통신 장치로 제공함으로써 상기 통신 장치로 하여금 소정 재생 속도로 상기 패킷들의 적어도 일부를 재생할 수 있도록 하는 스트리밍 서버를 포함하고, 각 패킷은 시퀀스 번호를 가지며, 상기 통신 장치는 상기 송신 속도 및 상기 재생 속도 간의 차이를 보상하기 위하여 상기 스트리밍 데이터의 적어도 일부를 저장함으로써 상기 통신 장치가 단절이 없는 방식으로 재생할 수 있는 상기 스트리밍 데이터의 충분한 양을 저장하도록 하는 수신기 버퍼를 포함하고, 상기 수신기 버퍼 내에 저장된 상기 스트리밍 데이터의 일부는 재생될 패킷들의 시퀀스를 포함하며, 상기 시퀀스는 재생될 최초 패킷 및 재생될 최후 패킷을 포함하는 상기 통신 장치에 있어서,
    재생될 패킷들의 시퀀스 중의 하나를 상기 수신기 버퍼 내의 소정 시점의 상기 스트리밍 데이터의 저장된 부분으로부터 선택하며, 상기의 패킷들의 시퀀스 중의 선택된 하나는 스케줄링된 재생 시간을 가지는 메커니즘 및
    패킷들의 시퀀스 중에서 상기 선택된 하나의 스케줄링 된 재생 시간을 나타내는 정보를 포함하는 메시지를 상기 서버로 제공함으로써, 상기 서버로 하여금 제공된 상기 정보에 기반하여 상기 수신기 버퍼 내의 적합 레벨을 계산하도록 하기 위한 메커니즘을 포함하는 것을 특징으로 하는 통신 장치.
  22. 제21항에 있어서,
    상기 정보는 재생될 패킷들의 상기 시퀀스 중 선택된 하나의 아이덴티티(identity) 및 상기 선택된 패킷의 스케줄링된 재생 시간 및 현재 시간 간의 시간차이를 나타내는 것을 특징으로 하는 통신 장치.
  23. 제22항에 있어서,
    재생될 상기 선택된 패킷은, 재생될 패킷들의 상기 시퀀스 내의 최후 패킷인 것을 특징으로 하는 통신 장치.
  24. 제23항에 있어서,
    상기 정보는 재생될 상기 최초 패킷의 시퀀스 번호를 나타내어, 상기 서버로 하여금,
    재생될 상기 최후 패킷의 시퀀스 번호 및 재생될 상기 최초 패킷의 시퀀스 번호에 기반하여, 상기 수신기 버퍼 내의 적합 레벨을 계산하도록 하는 것을 특징으로 하는 통신 장치.
  25. 제23항에 있어서, 상기 서버는,
    상기 선택된 패킷의 시퀀스 번호, 상기 선택된 패킷의 스케줄링된 재생 시간 및 현재 시간 간의 시간차, 및 재생될 상기 최후 패킷의 상기 시퀀스 번호에 기반하여 상기 수신기 버퍼 내의 적합 레벨을 계산하는 것을 특징으로 하는 통신 장치.
  26. 제4항에 있어서,
    상기 서버는 상기 스트리밍 클라이언트에 의해 마지막으로 수신한 패킷의 시퀀스 번호와 재생될 첫 번째 패킷의 시퀀스 번호에 적어도 일부분 기반하여 상기 수신기 버퍼의 적합 레벨을 결정하는 것을 특징으로 하는 수신기 버퍼의 적합 레벨의 적응 제어 방법.
KR1020057017602A 2003-03-21 2004-02-25 멀티미디어 스트리밍 방법 및 장치 KR100750669B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/395,015 2003-03-21
US10/395,015 US7606928B2 (en) 2003-03-21 2003-03-21 Method and device for controlling receiver buffer fullness level in multimedia streaming
PCT/IB2004/000479 WO2004083992A2 (en) 2003-03-21 2004-02-25 Method and device for multimedia streaming

Publications (2)

Publication Number Publication Date
KR20060024351A KR20060024351A (ko) 2006-03-16
KR100750669B1 true KR100750669B1 (ko) 2007-08-20

Family

ID=32988523

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057017602A KR100750669B1 (ko) 2003-03-21 2004-02-25 멀티미디어 스트리밍 방법 및 장치

Country Status (12)

Country Link
US (1) US7606928B2 (ko)
EP (1) EP1606717B1 (ko)
JP (1) JP4430660B2 (ko)
KR (1) KR100750669B1 (ko)
CN (1) CN1791872B (ko)
AT (1) ATE505891T1 (ko)
BR (1) BRPI0408566B1 (ko)
CA (1) CA2517194C (ko)
DE (1) DE602004032221D1 (ko)
MY (1) MY141951A (ko)
TW (1) TWI242957B (ko)
WO (1) WO2004083992A2 (ko)

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3825416B2 (ja) * 2003-04-14 2006-09-27 国立大学法人北陸先端科学技術大学院大学 データ同期方法、データ同期システム及びデータ同期プログラム
WO2004112420A1 (ja) * 2003-06-11 2004-12-23 Nec Corporation メディア信号の受信装置、送信装置及び送受信システム
US7444419B2 (en) 2003-10-10 2008-10-28 Microsoft Corporation Media stream scheduling for hiccup-free fast-channel-change in the presence of network chokepoints
US20050102371A1 (en) * 2003-11-07 2005-05-12 Emre Aksu Streaming from a server to a client
CN100373862C (zh) * 2004-11-08 2008-03-05 上海贝尔阿尔卡特股份有限公司 流媒体业务的动态无线资源调度方法和设备
US7620137B2 (en) * 2004-11-13 2009-11-17 Microsoft Corporation System and method for clock drift correction for broadcast audio/video streaming
US8218439B2 (en) * 2004-11-24 2012-07-10 Sharp Laboratories Of America, Inc. Method and apparatus for adaptive buffering
US7796651B2 (en) * 2005-03-02 2010-09-14 Nokia Corporation See what you see (SWYS)
KR100619994B1 (ko) * 2005-03-23 2006-09-06 엘지전자 주식회사 이동통신 단말기의 멀티미디어 재생 방법
US20060221869A1 (en) * 2005-03-29 2006-10-05 Teck-Kuen Chua System and method for audio multicast
DE102005019105A1 (de) * 2005-04-25 2006-11-02 Siemens Ag Kommunikationssystem
WO2007024120A1 (en) * 2005-08-26 2007-03-01 Electronics And Telecommunications Research Institute Method for requesting resource and scheduling for uplink traffic in mobile communication and apparatus thereof
KR100942860B1 (ko) * 2005-12-16 2010-02-17 돌비 스웨덴 에이비 특정된 엔트리 포인트를 가진 세그먼트로 데이터 스트림을 생성하고 해석하는 장치, 방법 및 이들을 기록한 컴퓨터로 읽을 수 있는 매체
US7809018B2 (en) * 2005-12-16 2010-10-05 Coding Technologies Ab Apparatus for generating and interpreting a data stream with segments having specified entry points
WO2007106844A2 (en) 2006-03-14 2007-09-20 Divx, Inc. Federated digital rights management scheme including trusted systems
JP2007266875A (ja) * 2006-03-28 2007-10-11 Toshiba Corp 映像データの処理方法及び無線通信装置
CN100588249C (zh) * 2006-07-27 2010-02-03 腾讯科技(深圳)有限公司 调节视频质量的方法、系统及终端
US7733773B2 (en) * 2006-10-18 2010-06-08 Telefonaktiebolaget Lm Ericsson (Publ) Playout based delay scheduler
US7974299B1 (en) * 2006-11-27 2011-07-05 Marvell International Ltd. Methods and apparatus for switching transmission channels
US8667160B1 (en) * 2007-02-02 2014-03-04 Max Haot System and method for internet audio/video delivery
CN101731011B (zh) 2007-05-11 2014-05-28 奥迪耐特有限公司 用于设置接收器延迟时间的方法
KR100780396B1 (ko) * 2007-06-18 2007-11-28 주식회사 셀런 Iptv 방송 서비스의 트래픽 제어 방법
FI120284B (fi) * 2007-07-20 2009-08-31 Tellabs Oy Huojuntapuskurin täyttöasteen säätö
US8812712B2 (en) * 2007-08-24 2014-08-19 Alcatel Lucent Proxy-driven content rate selection for streaming media servers
US7895629B1 (en) * 2007-11-07 2011-02-22 At&T Mobility Ii Llc Video service buffer management in a mobile rate control enabled network
US20090135735A1 (en) * 2007-11-27 2009-05-28 Tellabs Operations, Inc. Method and apparatus of RTP control protocol (RTCP) processing in real-time transport protocol (RTP) intermediate systems
US20090135724A1 (en) * 2007-11-27 2009-05-28 Tellabs Operations, Inc. Method and apparatus of RTP control protocol (RTCP) processing in real-time transport protocol (RTP) intermediate systems
EP2075935A1 (en) * 2007-12-31 2009-07-01 Motorola, Inc. A method and apparatus for providing uninterrupted media to a user
US8411569B2 (en) * 2008-01-10 2013-04-02 Alcatel Lucent Method of splicing encoded multimedia data streams
US8639830B2 (en) * 2008-07-22 2014-01-28 Control4 Corporation System and method for streaming audio
KR101578723B1 (ko) * 2008-12-31 2015-12-21 엘지전자 주식회사 영상표시장치 및 영상표시장치의 동영상 스트리밍 방법
JP2010232832A (ja) * 2009-03-26 2010-10-14 Fujitsu Ltd コンテンツ配信サーバ装置
US8094556B2 (en) * 2009-04-27 2012-01-10 Avaya Inc. Dynamic buffering and synchronization of related media streams in packet networks
JP2011009904A (ja) * 2009-06-24 2011-01-13 Hitachi Ltd 無線映像配信システム、コンテンツビットレート制御方法及びコンテンツビットレート制御プログラムを記憶したコンピュータ読み取り可能な記録媒体
US8752101B2 (en) * 2009-11-05 2014-06-10 Nec Corporation Distribution system
US8516063B2 (en) 2010-02-12 2013-08-20 Mary Anne Fletcher Mobile device streaming media application
WO2011139305A1 (en) * 2010-05-04 2011-11-10 Azuki Systems, Inc. Method and apparatus for carrier controlled dynamic rate adaptation and client playout rate reduction
KR20120034550A (ko) * 2010-07-20 2012-04-12 한국전자통신연구원 스트리밍 컨텐츠 제공 장치 및 방법
US10044489B2 (en) 2010-10-22 2018-08-07 Nokia Solutions And Networks Oy Enhanced inter-network access node scheduling coordination and signaling support for advanced receiver algorithms
US9253105B2 (en) * 2010-12-30 2016-02-02 Nokia Technologies Oy Methods and apparatuses for facilitating determination of a state of a receiver buffer
US8914534B2 (en) 2011-01-05 2014-12-16 Sonic Ip, Inc. Systems and methods for adaptive bitrate streaming of media stored in matroska container files using hypertext transfer protocol
US8520080B2 (en) 2011-01-31 2013-08-27 Hand Held Products, Inc. Apparatus, system, and method of use of imaging assembly on mobile terminal
JP5284453B2 (ja) 2011-03-17 2013-09-11 株式会社東芝 ビデオサーバ装置及び同期制御方法
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
US8909922B2 (en) 2011-09-01 2014-12-09 Sonic Ip, Inc. Systems and methods for playing back alternative streams of protected content protected using common cryptographic information
US9479807B1 (en) * 2011-09-29 2016-10-25 Arris Enterprises, Inc. Gateway-based video client-proxy sub-system for managed delivery of A/V content using fragmented method in a stateful system
EP3968691A1 (en) 2011-10-21 2022-03-16 FRAUNHOFER-GESELLSCHAFT zur Förderung der angewandten Forschung e.V. Resource management concept
US20140344471A1 (en) * 2011-12-08 2014-11-20 Telefonaktiebolaget L M Ericsson (Publ) Progressive Download Prioritisation
CN102547449A (zh) * 2011-12-22 2012-07-04 华为技术有限公司 一种控制终端缓冲媒体流数据的方法、机顶盒及媒体服务器
US9591098B2 (en) * 2012-02-01 2017-03-07 Cisco Technology, Inc. System and method to reduce stream start-up delay for adaptive streaming
US9246842B2 (en) * 2012-04-27 2016-01-26 Intel Corporation QoE-aware radio access network architecture for http-based video streaming
IN2014DN09227A (ko) * 2012-05-06 2015-07-10 Citrix Online Llc
US9439100B2 (en) * 2012-06-27 2016-09-06 Aruba Networks, Inc. System and method for dynamic rate adaptation based on real-time call quality metrics
US9313510B2 (en) 2012-12-31 2016-04-12 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
CN103916414B (zh) * 2012-12-31 2017-09-05 华为技术有限公司 传输速率配置方法、终端设备、服务器及系统
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
CN105075276B (zh) * 2013-01-11 2019-04-16 瑞典爱立信有限公司 在广播通信网络中操作客户端设备和服务器设备的技术
US10440084B2 (en) 2013-02-06 2019-10-08 Telefonaktiebolaget Lm Ericsson (Publ) Technique for detecting an encoder functionality issue
WO2014124555A1 (zh) * 2013-02-17 2014-08-21 华为技术有限公司 流媒体数据传输的调节方法及装置
US9019858B2 (en) 2013-02-22 2015-04-28 Nokia Solutions And Networks Oy Generating short term base station utilization estimates for wireless networks
US9503491B2 (en) * 2013-03-15 2016-11-22 Echostar Technologies L.L.C. Playback stall avoidance in adaptive media streaming
US9906785B2 (en) 2013-03-15 2018-02-27 Sonic Ip, Inc. Systems, methods, and media for transcoding video data according to encoding parameters indicated by received metadata
US9148386B2 (en) 2013-04-30 2015-09-29 Cisco Technology, Inc. Managing bandwidth allocation among flows through assignment of drop priority
US9094737B2 (en) 2013-05-30 2015-07-28 Sonic Ip, Inc. Network video streaming with trick play based on separate trick play files
US20150039714A1 (en) * 2013-07-30 2015-02-05 Opera Software Asa Multimedia cache with dynamic segmenting
US9923945B2 (en) 2013-10-10 2018-03-20 Cisco Technology, Inc. Virtual assets for on-demand content generation
CN103647727B (zh) * 2013-11-29 2017-01-18 福建星网锐捷网络有限公司 音视频传输控制方法和装置
US9866878B2 (en) 2014-04-05 2018-01-09 Sonic Ip, Inc. Systems and methods for encoding and playing back video at different frame rates using enhancement layers
JP2017027196A (ja) * 2015-07-17 2017-02-02 株式会社リコー 通信装置、電力制御方法、及び電力制御プログラム
US20180288454A1 (en) * 2017-03-29 2018-10-04 Kamakshi Sridhar Techniques for estimating http adaptive streaming (has) video quality of experience
KR102527986B1 (ko) * 2022-11-23 2023-05-02 (주)뉴인 인공 지능 기반 버퍼 크기 조절을 통한 영상 스트리밍 시스템 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030016144A (ko) * 2001-11-22 2003-02-26 에스케이 텔레콤주식회사 비디오 데이터 스트리밍 서비스 방법

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5768527A (en) 1996-04-23 1998-06-16 Motorola, Inc. Device, system and method of real-time multimedia streaming
US6292834B1 (en) * 1997-03-14 2001-09-18 Microsoft Corporation Dynamic bandwidth selection for efficient transmission of multimedia streams in a computer network
US6701372B2 (en) 1997-08-22 2004-03-02 Canon Kabushiki Kaisha Data communication apparatus and method
JP3733784B2 (ja) 1999-05-21 2006-01-11 株式会社日立製作所 パケット中継装置
US6438630B1 (en) * 1999-10-06 2002-08-20 Sun Microsystems, Inc. Scheduling storage accesses for multiple continuous media streams
US6988144B1 (en) * 1999-11-18 2006-01-17 International Business Machines Corporation Packet scheduling system and method for multimedia data
EP1182875A3 (en) * 2000-07-06 2003-11-26 Matsushita Electric Industrial Co., Ltd. Streaming method and corresponding system
US7191246B2 (en) * 2001-07-18 2007-03-13 Sharp Laboratories Of America, Inc. Transmission rate selection for a network of receivers having heterogenous reception bandwidth
US7047308B2 (en) * 2001-08-31 2006-05-16 Sharp Laboratories Of America, Inc. System and method for simultaneous media playout
EP1428357A1 (en) * 2001-09-21 2004-06-16 British Telecommunications Public Limited Company Data communications method and system using receiving buffer size to calculate transmission rate for congestion control
US7237007B2 (en) * 2001-12-05 2007-06-26 Qualcomm Incorporated Method and system for flow control between a base station controller and a base transceiver station
US7257087B2 (en) * 2002-10-04 2007-08-14 Agilent Technologies, Inc. System and method to calculate round trip delay for real time protocol packet streams

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030016144A (ko) * 2001-11-22 2003-02-26 에스케이 텔레콤주식회사 비디오 데이터 스트리밍 서비스 방법

Also Published As

Publication number Publication date
CN1791872B (zh) 2010-10-20
JP2006521035A (ja) 2006-09-14
EP1606717A2 (en) 2005-12-21
KR20060024351A (ko) 2006-03-16
JP4430660B2 (ja) 2010-03-10
TWI242957B (en) 2005-11-01
WO2004083992A3 (en) 2004-11-25
WO2004083992A2 (en) 2004-09-30
DE602004032221D1 (de) 2011-05-26
TW200427271A (en) 2004-12-01
CA2517194A1 (en) 2004-09-30
EP1606717B1 (en) 2011-04-13
BRPI0408566B1 (pt) 2021-10-13
US7606928B2 (en) 2009-10-20
ATE505891T1 (de) 2011-04-15
MY141951A (en) 2010-07-30
CA2517194C (en) 2012-01-03
BRPI0408566A (pt) 2006-03-21
US20040186877A1 (en) 2004-09-23
CN1791872A (zh) 2006-06-21
EP1606717A4 (en) 2008-02-13

Similar Documents

Publication Publication Date Title
KR100750669B1 (ko) 멀티미디어 스트리밍 방법 및 장치
RU2367011C2 (ru) Устройство и способ передачи сигналов с упреждающей адаптацией скорости
US8750409B2 (en) Message synchronization over a stochastic network
KR100704134B1 (ko) 스트리밍 비디오 수신기용 복호기 버퍼
US7583666B2 (en) Protocol information processing system and method information processing device and method recording medium and program
JP4838273B2 (ja) メディア内同期化のための適応型メディア再生方法および装置
US9565482B1 (en) Adaptive profile switching system and method for media streaming over IP networks
US8208460B2 (en) Method and system for in-band signaling of multiple media streams
KR100982630B1 (ko) 콘텐츠의 스트림 비트율을 조정하기 위한 디바이스 및프로세스 그리고 관련 제품
JP4042396B2 (ja) データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム
TWI801835B (zh) 往返估算
JP3906678B2 (ja) データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム
ZA200508487B (en) Method and device for proactive rate adaptation signaling

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120727

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130723

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140722

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150716

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160720

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170719

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180718

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190718

Year of fee payment: 13