KR20050019880A - 멀티미디어 스트리밍에서 패킷 전달 지연 보상을 가능하게하기 위한 방법 - Google Patents

멀티미디어 스트리밍에서 패킷 전달 지연 보상을 가능하게하기 위한 방법 Download PDF

Info

Publication number
KR20050019880A
KR20050019880A KR10-2005-7000738A KR20057000738A KR20050019880A KR 20050019880 A KR20050019880 A KR 20050019880A KR 20057000738 A KR20057000738 A KR 20057000738A KR 20050019880 A KR20050019880 A KR 20050019880A
Authority
KR
South Korea
Prior art keywords
streaming
client
server
buffering
information
Prior art date
Application number
KR10-2005-7000738A
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 KR10-2005-7000738A priority Critical patent/KR20050019880A/ko
Publication of KR20050019880A publication Critical patent/KR20050019880A/ko

Links

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/28Flow control; Congestion control in relation to timing considerations
    • 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/38Flow control; Congestion control by adapting coding or compression rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/633Control signals issued by server directed to the network components or client
    • H04N21/6332Control signals issued by server directed to the network components or client directed to client

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

멀티미디어 스트리밍에서 패킷 전달 지연 보상을 수행하는 방법 및 장치가 개시된다. 스트리밍 서버가 자신의 속도-제어 및/또는 속도-쉐이핑 알고리즘을 최적화하여 패킷 전달 지연 변이를 보상하도록 하기 위하여, 스트리밍 클라이언트의 지터 버퍼링 기능을 지시하는 정보가 스트리밍 서버로 전달된다. 전달되는 정보는 클라이언트의 선택한 사전-디코딩 파라미터들을 포함함으로써, 클라이언트의 지터 버퍼링 기능이 클라이언트의 선택된 사전-디코딩 파라미터들 및 스트리밍 서버에 의하여 제공된 사전-디코딩 버퍼링 파라미터들 간의 차분치에 근거하여 결정될 수 있도록 한다.

Description

멀티미디어 스트리밍에서 패킷 전달 지연 보상을 가능하게 하기 위한 방법{Method for enabling packet transfer delay compensation in multimedia streaming}
본 발명은 일반적으로 멀티미디어 스트리밍에 관한 것이며, 특히 3GPP 패킷 절환 스트리밍 서비스(PSS, Packet Switched Streaming Service)에 관한 것이다.
3세대 파트너쉽 프로젝트(3GPP, 3rd Generation Partnership Project) 패킷 절환 스트리밍 서비스는 비디오 버퍼링 조건의 규격을 정의하는데, 이것은 인코딩 보상 및 가변 비트율(VBR, Variable Bit Rate) 비디오 압축 및 송신 기법에 의하여 발생되는 서버에 특유한 지연 변이(delay variation)를 보상하는 데 목적을 둔다. 이에 대해서는 3GPP TS 26.234 V5.1.0, "투명 단-대-단 패킷 절환 스트리밍 서비스(Transparent End-to-End Packet Switched Streaming Service); 프로토콜 및 코덱(5판)", 2002년 6월이며 본 명세서에서는 TS 26.234라고 언급되는 문헌; 및 노키아, "PSS 연속 매체를 위한 버퍼링 조건(PSS Buffering Requirements for Continuous Media)", 3GPP TSG-SA WG4 Meeting #18 contribution S4-010497, 2001년 9월을 참조한다. 유사한 규격인 "비디오 버퍼링 검증기(Video Buffering Verifier)" 가 MPEG-4에 대해 정의된다. 이에 대해서는 ISO/IEC IS 14496-2의 부록 D로서, "정보화 기술 - 음향 영상학적 개체들(MPEG-4), Part 2: Visual", 1998년 10월을 참조한다.
스트리밍 서버 및 클라이언트 모두가 버퍼링 규격을 만족한다면, 서버로부터의 스트림이 동일한 지연을 가지고, 신뢰성 있는 송신 채널에 의하여 전송될 때 클라이언트가 클라이언트 버퍼의 초과(buffer violation)없이 수신한 스트림을 재생할 수 있다는 것이 보장된다. 이 때 버퍼 초과가 없다는 것은 클라이언트 측에서의 버퍼 언더플로우 또는 오버플로우가 없다는 것이다. 그러나, 실시간 스트리밍 시스템에서는, 클라이언트측 역시 가변 패킷 전송 지연 및 송신 경로의 비트율 변이를 수용(accomodate)할 수 있어야 한다. 일반적으로, 패킷 전달의 변이는 스트리밍 클라이언트 측에서 지터 버퍼링(jitter buffering)을 통하여 보상될 수 있다.
3GPP 표준은 패킷 절환 스트리밍 서비스(PSSS, Packet Switched Streaming Service)를 3세대 무선 네트워크 상에서의 투명 서비스(transparent service)인 것으로 정의하고, 클라이언트가 트랜스포트 네트워크의 장애 및/또는 특성에 대응하도록 하기 위해 사용되는 특정한 알고리즘을 정의하지 않는다. 그러므로, 패킷 전달 지연 변이를 보상하기 위한 수단으로 사용되는 지터 버퍼링은 PSS 비디오 버퍼링 규격의 범위에 포함되지 않는다. PSS 버퍼링 규격들은 스트리밍 측에서 표시되는 "사전-디코더 버퍼(pre-decoder buffer)" 및 "사후-디코더 버퍼(post-decoder buffer)"에 관련된다.
시간에 따른 송신 경로에서 패킷을 전달하기 위한 가변 비트율의 변이가 바로 패킷 전달 지연 변이를 야기하는 실제 유인인데, 이의 예로는 3세대 무선 라디오 접근 네트워크 상의 보유자(bearer) 측의 비트율 변이와 같은 것이 있다. 시간에 따라 변화하는 송신 경로의 비트율 조건에 패킷 속도(packet rate) 및 미디어 속도(media rate)를 정합하는 것은 일반적으로 스트리밍 서버측에서 수행되는데, 그것은 실시간 패킷 송신을 유지하기 위한 것이다(즉, 사전-디코더 버퍼링 언더플로우에 기인한 불필요한 재생의 중단을 방지하기 위한 것이다). 이와 같은 속도 정합 시스템의 예는 Haskell 등에게 허여된 미국 특허 번호 제 5,565,924호, "가변 채널 용 인코더/디코더 버퍼 제어(Encoder/Decoder Buffer Control for Variable Channel)"에서 찾을 수 있다.
속도 정합의 목적은, 전송된 패킷이 재생 시간 이전에 도달하도록 보장하는 것이다. 이러한 재생 시간(play-out time)은 패킷의 샘플링 시간 더하기 주어진 상수인 "단-대-단 지연(end-to-end delay)"에 의하여 결정된다. 단-대-단 지연은 "서버 버퍼링 지연", "전달 지연"("채널 지연"이라고 불리기도 한다) 및 "클라이언트 버퍼링 지연"을 포함한다. 이것은 전달 지연을 예측하고 서버 버퍼링 지연을 거친 후에 전체 단-대-단 지연 내에 스트리밍 클라이언트에게 도달할 수 있는 송신을 위한 패킷을 선택하는 것은 서버측의 책임이다. 이러한 세션 동안에, 서버는 전달 지연을 모니터링하고 그 변화를 모니터링한 다음, 클라이언트 버퍼링 초과가 발생되지 않도록 자신의 서버 버퍼링 지연을 정합 하여야 한다. 스트리밍 클라이언트가 서비스의 버퍼링 규격 기준에 만족하여야 하지만, 클라이언트는 최대 클라이언트 버퍼링 지연을 선택할 수 있는 선택권을 가지고 있다.
패킷 절환 스트리밍(PSS)에서, 클라이언트 버퍼링에 권장되는 파라미터들이 스트리밍 서버로부터 스트리밍 클라이언트에게로 실시간 스트리밍 프로토콜(RTSP, Real Time Streaming Protocol)을 통하여 시그널링된다. 실시간 스트리밍 프로토콜(RTSP)에 대해서는 IETF RFC2326 "실시간 스트리밍 프로토콜(RTSP)", 1998년 4월)을 참조한다. MPEG-4에서는, 버퍼링 파라미터들이 비디오 비트스트림 구조 정보의 헤더의 일부로서 시그널링된다. 자신의 속도 제어 및/또는 속도 쉐이핑 알고리즘(rate shaping algorithm)을 선택할 때, 서버는 클라이언트가 서버에 의하여 권장된 바로 그 파라미터들을 이용할 것이라고 가정한다.
권장된 파라미터들은 패킷들이 동일한 지연을 가지는 신뢰성 있는 송신 채널을 통하여 송신된다는 가정에 기반하여 선택된다는 점에 주의해야 한다. 만일 채널이 신뢰성을 가지지 못하거나, 지연이 일정하지 않다면, 서버가 권장한 바로 그 버퍼링 파라미터를 사용하는 클라이언트가 버퍼 초과없이 스트림을 재생할 수 있는지 여부가 권장될 수 없다. 이러한 문제점을 극복하기 위하여, 스트리밍 클라이언트들은 몇 가지 추가적인 지터 버퍼링을 채택할 필요가 있다. 이러한 지터 버퍼링은 전형적으로는 사전-디코더 버퍼링으로서 동일한 물리적 클라이언트 버퍼에 채택된다. 이것은, 추가적인 지터 버퍼링이 스트리밍 서버에 의하여 권장되는 사전-디코더 버퍼링보다 유연한 클라이언트 버퍼링 파라미터들을 채택함으로써 구현될 수 있다는 것을 의미한다. 예를 들어, 클라이언트는 사전-디코더 버퍼링에 의하여 권장된 것보다 더 긴 초기 클라이언트 버퍼링 지연 및 더 큰 버퍼 크기를 가질 수 있다(버퍼 크기가 더 크면 더 많은 바이트를 저장할 수 있다). 또한, 클라이언트는 패킷 전달 지연을 보상하고자 하는 시도의 일환으로 버퍼링 파라미터들을 동적으로 조절할 수 있다.
전술된 바와 같은 Haskell 등에 허여된 미국 특허에서, 서버 및 클라이언트의 버퍼링 파라미터들(즉, 버퍼 크기 및 초기 버퍼링 지연 등과 같은)이 사전에 서버 및 클라이언트 모두에게 공지되며, 어떻게 이것이 공지될 수 있는지에 대해서는 아무런 고려도 하고 있지 않다.
Clark 등의 "IP 메트릭 리포팅 상의 보이스를 위한 RTCP의 확장(RTCP Extensions for Voice over IP Metric Reporting)"IETF draft-clark-avt-rtcpvoip-01.txt)에 보면, 소위 "단-시스템 간 지연(end-system delay)" 파라미터가 RTCP 보고(RTCP reports) 내에서 송신될 수 있다는 것이 제안되는데, 이는 RTCP 확장자를 정의함으로써 가능하다. 여기서 단-시스템간 지연은 보고측 말단(reporting end point)에서 결정되는 전체 인코딩, 디코딩 및 지터 버퍼 지연으로서 정의된다. 이것은 시간 지연이, 버퍼링 되고, 디코딩되고, "아날로그" 형태로 변환되고, 지역 "아날로그" 인터페이스에서 선회(looping back)되고, 인코딩 되고 RTP 프레임으로서 송신되기에 적합하도록 생성되는 수신되는 RTP 프레임의 결과로서 정의된다. 실무상, 멀티미디어 스트리밍 응용 분야에서 이러한 방식으로 정의된 메트릭(metric)을 사용하는 것은 불가능한 것으로 보인다.
인정한 지연을 가지는 신뢰성 있는 채널에 기반하여 권장된 파라미터들을 시그널링하는 것 대신에, 서버는 이보다 유연한 권장 사전-디코더 비디오 파라미터들을 클라이언트측에 시그널링함으로써 클라이언트가 사실은 일정 디스플레이 채널을 위해 요구됐던 버퍼링 파라미터보다 유연한 버퍼링 파라미터들을 이용하도록 보장한다. 얼마나 유연한 파라미터들이 시그널링되어야 하는지에 대해 예측하기 위하여, 서버는 추가적 버퍼링 지연 및 클라이언트가 일반적으로 패킷 전달 지연 및 채널 속도 변이 보상을 위해 사용하는 버퍼 크기와 같은 인자들을 고려한다. 그러나, 서버에 의하여 시그널링되는 파라미터들이 이미 조절되었으며 패킷 전달 지연 보상을 포함한다는 것을 알 수 없으며, 자신의 버퍼링 필요에 따라서 더 유연한 파라미터들을 이용할 수도 있다. 그러면, 너무 과다한 버퍼링이 발생하게 되는데, 그 이유는 추가적인 클라이언트 버퍼링이 서버 및 클라이언트에 의하여 두 번 수행되기 때문이다.
클라이언트 버퍼링이 클라이언트-서버 협력을 통하여 최적화되어 선택될 수 있고 사용될 수 있음으로써 클라이언트 버퍼가 오버플로우 또는 언더플로우되지 않도록 하는 해결책을 찾고자 하는 오래된 필요성이 존재한다. 현재까지는, 이러한 필요성은 달성된 바 없다.
도 1은 본 발명에 따른 멀티미디어 스트리밍 시스템을 예시하기 위한 블록도이다.
도 2는 멀티미디어 스트리밍 시스템 내의 상이한 버퍼들 내의 지연들의 예시를 도시하는 도면이다.
본 발명의 주된 목적은 스트리밍 서버로 하여금 자신의 속도-제어 및 속도-쉐이핑 알고리즘을 구동함으로써, 패킷 전달 지연의 변이를 주어진 패킷에 대한 단-대-단 지연의 분포를 모니터링하고 제어함으로써 보상하도록 하는 것이다. 여기서, 본 발명의 후술되는 상세한 설명에 따르면, "주어진 패킷을 위한 단-대-단 지연의 분포"라는 용어는 서버 버퍼링 지연, 전달 지연, 지터 버퍼링 지연 및 사전-디코딩 버퍼링 지연의 값들이 단-대-단 지연을 구성한다는 것을 나타낸다.
이러한 목적은, 스트리밍 서버에게 스트리밍 클라이언트의 버퍼링 기능(buffering capability)을 통보함으로써 획득될 수 있다. 스트리밍 클라이언트에서 서버로의 지터 버퍼링 기능의 지시자(indication)는 신규한 물리적 특징이다. 멀티미디어 스트리밍 시스템에서, 스트리밍 클라이언트로부터 스트리밍 서버로의 지터 버퍼링 기능에 대한 이러한 지시자는 서버가 패킷 전달 지연 및 채널 속도 변이를 보상하기 위하여 채택할 수 있는 서버의 속도-제어 및/또는 속도-쉐이핑 알고리즘을 보조하도록 사용될 수 있다. 예를 들어, 클라이언트의 최대 지터 버퍼링 지연에 대해 알고 있으면, 서버는 클라이언트 버퍼 초과의 발생을 감소시킬 수 있는 속도-제어 알고리즘을 선택할 수 있다.
그러므로, 본 발명의 제1 측면에 따르면, 멀티미디어 스트리밍 시스템에서 전달 지연 변이 보상을 가능하게 하기 위한 클라이언트-서버 합작 방법(collaboration method)으로서, 사전-디코딩(pre-decoding) 버퍼링 파라미터들을 나타내는 신호가 스트리밍 서버에 의하여 스트리밍 클라이언트에게 제공되고, 상기 서버에 의하여 표시된 상기 사전-디코딩 버퍼링 파라미터들은, 패킷 스트림이 일정한 지연을 가지는 신뢰 가능한(reliable) 채널로 송신된다면 클라이언트가 클라이언트의 버퍼 초과(buffer violation) 없이 스트림을 재생할 수 있도록 보장하도록 선택되는 클라이언트-서버 합작 방법에 있어서, 선택된 클라이언트의 버퍼링 파라미터들에 관한 정보를 서버에 전달하는 단계를 포함하며, 클라이언트의 지터 버퍼링 기능(jitter buffering capabilities)들은 클라이언트에 의하여 시그널링(signaled)된 사전-디코딩 버퍼링 파라미터들 및 스트리밍 서버에 의하여 제공된 사전-디코딩 버퍼링 파라미터들 간의 차분치에 의하여 표시되는 것을 특징으로 하는 전달 지연 변이 보상을 가능하게 하기 위한 클라이언트-서버 합작 방법이 제공된다.
바람직하게는, 서버에 의하여 클라이언트에게 표시되는 사전-디코딩 버퍼 파라미터들은 송신된 패킷 스트림의 가변 비트율 특성(variable bit-rate characteristics) 및 서버에 의하여 적용되는 버퍼링에 기반하여 선택되는 것을 특징으로 한다.
바람직하게는, 클라이언트는 자신의 선택된 버퍼링 파라미터들에 관한 정보를, 클라이언트가 특정 스트리밍 세션에 사용될 버퍼링 파라미터를 결정하는 즉시 서버에 제공하는 것을 특징으로 한다.
바람직하게는, 클라이언트는 자신의 선택된 버퍼링 파라미터들에 관한 정보를, 신규 스트리밍 세션을 개시할 때 서버에 제공하는 것을 특징으로 한다.
바람직하게는, 클라이언트는 한 스트리밍 세션 동안에 자신의 버퍼링 파라미터들을 동적으로 변경하고, 클라이언트는 변경된 자신의 버퍼링 파라미터들을 그 스트리밍 세션 동안에 서버로 제공하는 것을 특징으로 한다.
바람직하게는, 스트리밍 서버는, 클라이언트의 버퍼링 파라미터에 관한 정보를 이용하는 속도-제어(rate-control) 및/또는 속도 쉐이핑 알고리즘(rate shaping algorithm)을 적용하여 패킷 전달 지연 및 채널 속도 변이(channel rate variations)를 보상하는 것을 특징으로 한다.
바람직하게는, 스트리밍 서버는, 속도 제어 및/또는 속도 쉐이핑하는 동안 버퍼링 파라미터들에 관한 정보를 선택적으로 고려하는 것을 특징으로 한다.
바람직하게는, 클라이언트의 버퍼링 파라미터에 관한 정보는 클라이언트의 사전-디코더 버퍼의 크기에 관한 정보, 사전-디코더 버퍼링 주기에 관한 정보, 및 사후-디코더(post-decoder) 버퍼링 시간에 관한 정보 중 일부 또는 전부를 포함하는 것을 특징으로 한다.
바람직하게는, 스트리밍 클라이언트는 클라이언트의 버퍼링 파라미터들에 관한 정보를, 실시간 스트리밍 프로토콜(RTSP) OPTIONS 요청 메시지 내에 포함하여 클라이언트에 제공하는 것을 특징으로 한다.
바람직하게는, 스트리밍 클라이언트는 클라이언트의 버퍼링 파라미터들에 관한 정보를, RTSP PLAY 요청 메시지 내에 포함하여 클라이언트에 제공하는 것을 특징으로 한다.
바람직하게는, 스트리밍 클라이언트는, 클라이언트의 버퍼링 파라미터들에 관한 정보를, RTSP PING 요청 메시지 내에 포함하여 클라이언트에 제공하는 것을 특징으로 한다.
바람직하게는, 스트리밍 클라이언트는 스트리밍 서버가 클라이언트 버퍼링 파라미터들의 시그널링을 지원하는지 여부를 결정하는 것을 특징으로 한다.
특히, 스트리밍 클라이언트 버퍼링 파라미터들을 스트리밍 서버로 시그널링하는 동작은 TS 26.234 버퍼링 검증기(buffering verifier)의 관점에서 수행된다(TS 26.234의 부록 G를 참조한다).
본 발명의 제2 측면에 따르면, 적어도 하나의 버퍼를 포함하고, 스트리밍 서버로부터 패킷 스트림을 수신하여 패킷 스트림을 재생하도록 구현되는 스트리밍 클라이언트 장치에 있어서, 클라이언트 장치는 자신의 선택된 버퍼링 파라미터들에 관한 정보를 서버에 제공하도록 구현되는 것을 특징으로 하는 스트리밍 클라이언트 장치가 제공된다.
바람직하게는, 스트리밍 클라이언트 장치는 사전-디코더 버퍼 및 지연 지터 버퍼(delay jitter buffer)를 포함하는 것을 특징으로 한다.
바람직하게는, 스트리밍 클라이언트 장치는 사전-디코더 버퍼, 지연 지터 버퍼 및 사후-지연 버퍼를 포함하는 것을 특징으로 한다.
바람직하게는, 사전-디코더 버퍼 및 지연 지터 버퍼는 단일 유닛으로 집적되는 것을 특징으로 한다.
바람직하게는, 스트리밍 클라이언트 장치는 스트리밍 서버로부터 사전-디코더 버퍼링 파라미터들의 지시자(indication)를 수신하도록 구현되는 것을 특징으로 한다.
바람직하게는, 스트리밍 클라이언트 장치는 자신의 선택된 버퍼링 파라미터들에 관한 정보를, 클라이언트가 특정 스트리밍 세션에 사용될 버퍼링 파라미터를 결정하는 즉시 서버에 제공하는 것을 특징으로 하는 스트리밍 클라이언트 장치.
바람직하게는, 스트리밍 클라이언트 장치는 자신의 선택된 버퍼링 파라미터들에 관한 정보를, 신규 스트리밍 세션을 개시할 때 서버에 제공하는 것을 특징으로 한다.
바람직하게는, 스트리밍 클라이언트 장치는 한 스트리밍 세션 동안에 자신의 버퍼링 파라미터들을 동적으로 변경하고, 변경된 자신의 버퍼링 파라미터들을 그 스트리밍 세션 동안에 서버로 제공하도록 구현되는 것을 특징으로 한다.
바람직하게는, 클라이언트의 버퍼링 파라미터에 관한 정보는 클라이언트의 사전-디코더 버퍼의 크기에 관한 정보, 사전-디코더 버퍼링 주기에 관한 정보, 및 사후-디코더 버퍼링 시간에 관한 정보 중 일부 또는 전부를 포함하는 것을 특징으로 한다.
바람직하게는, 스트리밍 클라이언트는 클라이언트의 버퍼링 파라미터들에 관한 정보를, RTSP OPTIONS 요청 메시지 내에 포함하여 클라이언트에 제공하는 것을 특징으로 한다.
바람직하게는, 스트리밍 클라이언트는 클라이언트의 버퍼링 파라미터들에 관한 정보를, RTSP PLAY 요청 메시지 내에 포함하여 클라이언트에 제공하는 것을 특징으로 한다.
바람직하게는, 스트리밍 클라이언트는 클라이언트의 버퍼링 파라미터들에 관한 정보를, RTSP PING 요청 메시지 내에 포함하여 클라이언트에 제공하는 것을 특징으로 한다.
바람직하게는, 스트리밍 클라이언트는 스트리밍 서버가 클라이언트 버퍼링 파라미터들의 시그널링을 지원하는지 여부를 결정하는 것을 특징으로 한다.
본 발명의 제3 측면에 따르면, 스트리밍 클라이언트 장치로 패킷 스트림을 송신하도록 구현되는 스트리밍 서버 장치에 있어서, 스트리밍 클라이언트 장치의 선택된 버퍼링 파라미터들에 관한 정보를 수신하도록 구현되는 것을 특징으로 하는 스트리밍 서버가 제공된다.
바람직하게는, 스트리밍 서버는 스트리밍 클라이언트로 사전-디코딩 버퍼링 파라미터들을 나타내는 신호를 제공하고, 서버에 의하여 표시된 사전-디코딩 버퍼링 파라미터들은, 패킷 스트림이 일정한 지연을 가지는 신뢰 가능한 채널로 송신된다면 클라이언트가 클라이언트의 버퍼 초과 없이 스트림을 재생할 수 있도록 보장하도록 선택되는 것을 특징으로 한다.
바람직하게는, 스트리밍 서버는 클라이언트의 버퍼링 파라미터에 관한 정보를 이용하는 속도-제어 및/또는 속도 쉐이핑 알고리즘을 적용하여, 서버 장치로부터 스트리밍 클라이언트로 패킷 스트림을 송신하는 도중에 발생되는 패킷 전달 지연 및 채널 속도 변이를 보상하는 것을 특징으로 한다.
바람직하게는, 스트리밍 서버는 속도 제어 및/또는 속도 쉐이핑하는 동안 버퍼링 파라미터들에 관한 정보를 선택적으로 고려하는 것을 특징으로 한다.
바람직하게는, 서버에 의하여 수신되는 클라이언트의 버퍼링 파라미터들에 관한 정보는 클라이언트의 사전-디코더 버퍼의 크기에 관한 정보, 사전-디코더 버퍼링 주기에 관한 정보, 및 사후-디코더(post-decoder) 버퍼링 시간에 관한 정보 중 일부 또는 전부를 포함하는 것을 특징으로 한다.
본 발명의 제4 측면에 따르면, 스트리밍 클라이언트 장치 및 스트리밍 서버 장치를 포함하는 데이터 스트리밍 시스템이 제공되는데,
스트리밍 서버 장치는 패킷 스트림을 스트리밍 클라이언트 장치로 송신할 수 있도록 구현되고, 스트리밍 서버 장치는 스트리밍 클라이언트 장치의 선택된 버퍼링 파라미터들에 관한 정보를 수신하도록 구현되고,
스트리밍 클라이언트 장치는 적어도 하나의 버퍼를 포함하고, 스트리밍 서버로부터 패킷 스트림을 수신하고 수신된 패킷 스트림을 재생할 수 있도록 구현되고, 스트리밍 클라이언트 장치는 상기 클라이언트 장치가 자신의 버퍼링 파라미터로서 선택된 것들과 관련된 정보를 서버에 제공하도록 구현되는 것을 특징으로 한다.
도 1은 본 발명에 따른 멀티미디어 스트리밍 시스템(1)을 예시하는 블록도인데, 여기서 스트리밍 클라이언트(60)로부터 스트리밍 서버(10)로 버퍼링 파라미터들을 시그널링하기 위한 수단들이 제공된다.
스트리밍 서버(10)는 응용 레벨 시그널링 엔진(20), 속도 제어기(30), 및 서버 버퍼(40)를 포함한다. 스트리밍 클라이언트(60)는 응용 레벨 시그널링 엔진(70)으로서 스트리밍 서버(10) 내의 응용 레벨 시그널링 엔진(20)과 상응하고 응용 레벨 시그널링 엔진(20)과 통신하도록 구현되는 응용 레벨 시그널링 엔진(70)을 포함한다. 스트리밍 클라이언트(60)는 또한 클라이언트 버퍼(80)로서, 도 1에 도시된 본 발명의 실시예에서는 서로 결합되어 하나로 집적되는 지터 버퍼(82) 및 사전-디코딩 버퍼(84)를 포함하는 클라이언트 버퍼(80)를 포함한다. 본 발명의 다른 실시예에서는, 스트리밍 클라이언트(60)는 서로 분리되어 구현된 지터 버퍼 및 사전-디코딩 버퍼를 포함할 수도 있다. 스트리밍 클라이언트는 또한, 미디어 디코더(90), 사후-디코더 버퍼(100), 버퍼 제어기(110) 및 디스플레이/재생 장치(120)를 더 포함한다.
도 1에 도시된 시스템은 스트리밍 서버(10) 및 스트리밍 클라이언트(60) 간에 위치되는 "채널 버퍼(50)"을 더 포함하는 것으로 도시된다. 전술된 바와 같은 본 발명의 배경 기술에서, 이것은 스트리밍 서버로부터 스트리밍 클라이언트로의 데이터 패킷의 송신 도중에 발생되는 가변 전달 지연을 표시한다.
스트리밍 서버측의 응용 레벨 시그널링 엔진(20)은 권장된 버퍼링 파라미터들을 스트리밍 클라이언트로 송신하도록 구현되는데, 이는 도 1에서 부재번호 200으로 표시된다. 본 발명의 바람직한 실시예에서, 3세대 패킷 절환 스트리밍(PSS) 서비스를 정의하는 표준에 따르면, 예를 들어 초기 사전-디코더 버퍼링 시간 또는 사전-디코더 버퍼 크기를 포함하는 이러한 파라미터들은 멀티미디어 스트리밍 서버(10)로부터 스트리밍 클라이언트(60)로 송신되는데, 여기서 실시간 스트리밍 프로토콜(RTSP, Real Time Streaming Protocol)을 이용하여 송신된다. 본 발명의 다른 실시예에서, MPEG-4와 같은 다른 규격에 따라서 구현할 경우, 다른 매커니즘들도 사용될 수 있다.
서버의 속도 제어기(30)는 미디어 데이터가 스트리밍 서버로부터 송신되는 속도를 정합하도록 동작한다. 속도 제어기(30)는 송신 채널의 가변 비트율에 따라 클라이언트 버퍼링 파라미터들을 고려하고 송신 데이터 속도를 조절함으로써, 사전-디코더 버퍼 언더플로우에 기인한 클라이언트측에서의 재생 정지를 회피하도록 동작한다.
서버 버퍼(40)는 데이터 패킷들이 스트리밍 서버로부터 송신 채널을 거쳐 스트리밍 클라이언트(60)로 송신되기 이전에 임시적으로 데이터 패킷들을 저장한다. 데이터 패킷들이 실시간으로 샘플링되는 "실시간" 스트리밍 시나리오에서는, 서버 버퍼는 샘플링 시간에서 데이터 패킷들이 위치되고 송신 시간에 추출되는 실제 물리적인 버퍼들이다. 반면, 서버 버퍼는 샘플링 시간(사전-인코딩된 파일의 제1 데이터 패킷이 송신되는 스트리밍 서버에서 시작되는 샘플링 클록에 대하여) 및 데이터 패킷들의 송신 시간들 간의 차이를 나타낸다.
스트리밍 클라이언트에서, 미디어 데이터는 송신 채널로부터 수신되고 클라이언트 버퍼(80)에서 버퍼링된다. 사전-디코딩 버퍼(84) 및 지터 버퍼(82)의 파라미터들은 버퍼 제어기(110)에 의하여 설정된다. 파라미터들은 서버에 의하여 추천된 사전-디코더 버퍼링 파라미터들 및 클라이언트에 의하여 수행된 추가적인 버퍼링의 집합(aggregate)으로서 선택된다. 클라이언트는 사용 가능한 송신 채널 상에서 예측되는 패킷 전달 지연 변이(즉, 지터)의 오차를 수용(tolerate)하기 위하여 요구되는 것이 무엇인지 예측한다. 이러한 집합은 클라이언트 측의 최대 버퍼링 능력에 의하여 한정된다. 미디어 디코더(90)는 클라이언트 버퍼로부터 미디어 데이터를 추출하고 관심 대상인 미디어 타입에 적합한 방법으로 미디어 데이터를 디코딩한다. 일반적으로 미디어 데이터는 복수 개의 상이한 미디어 타입들을 가질 수 있다는 것이 이해되어야 한다. 예를 들어, 만일 서버에 의하여 송신된 미디어 데이터는 비디오 시퀀스(sequence)를 표시한다면, 그것은 적어도 비디오 데이터에 추가되는 오디오 성분을 포함하는 것으로 기대된다. 그러므로, 미디어 디코더(90)는 도 1에 도시된 바와 같이 하나 이상의 디코더를 포함할 수 있으며, 예를 들면 특정 비디오 코딩 표준 및 관련 오디오 디코더에 따라 구현된 비디오 디코더와 경우와 같다. 미디어 데이터가 미디어 디코더(90)에 의하여 디코딩되면, 그 결과는 사후-디코더 버퍼(100)로 출력되고, 거기서 그것의 예정된 재생 시간이 도래할 때까지 임시적으로 저장된다. 재생 시간에서, 저장된 미디어 데이터는 버퍼 제어기(110)의 제어 하에 사전-디코더 버퍼로부터 디스플레이/재생 장치(120)로 전달된다.
본 발명에 따르면, 버퍼 제어기(110)는 클라이언트의 버퍼링 파라미터들의 지시자를 응용 레벨 시그널링 엔진(70)으로 제공하도록 구현된다. 그러면, 응용 레벨 시그널링 엔진(70)은 클라이언트의 버퍼링 파라미터들을 스트리밍 서버로 송신하도록 구현되는데, 이는 도 1의 부재 번호 300으로 표시된 바와 같다. 본 발명의 바람직한 실시예에서, 클라이언트 측의 지터 버퍼링 기능은, 클라이언트에 의하여 사용되는 시그널링된 실제 버퍼링 파라미터들 및 스트리밍 서버로부터 제공되는 권장된 사전-디코딩 버퍼링 파라미터들 간의 차분치로서 간접적으로 표시된다. 바람직하게는, 이러한 지시자는 스트리밍 클라이언트 내의 응용 레벨 시그널링 엔진(70)으로부터 송신되는 시그널링 메시지를 이용하여 전달 채널을 통해 스트리밍 서버 내의 응용 레벨 시그널링 엔진(20)에 송신된다. 이러한 방법으로, 스트리밍 클라이언트 측의 버퍼링 기능에 대하여 스트리밍 서버측에 정보를 제공할 수 있는 매커니즘이 제공된다. 이러한 매커니즘은 클라이언트측의 버퍼링 기능에 대한 지시자를 제공하지 않는 시스템에 비교할 때, 다수의 중요한 기술적 장점들을 제공한다. 특히, 만일 스트리밍 서버(10)가 스트리밍이 일어나는 동안의 실제 클라이언트 버퍼링 파라미터들에 대해서 알고 있다면, 서버는 실제 클라이언트 버퍼링 파라미터들을 이용하여 패킷 전달 지연 및 채널 속도 변이를 보정할 수 있는 속도-제어 및/또는 속도-쉐이핑 알고리즘을 채택할 수 있다. 본 발명은 사전-디코더 버퍼링 및 지터 버퍼링의 조합을 이용하고, 버퍼링 파라미터들의 단일 집합에 대한 시그널링을 이용하여 클라이언트로부터 스트리밍 서버 측으로 패킷 전달 지연 보정 기능에 대해 지시할 수 있다.
스트리밍 클라이언트(60)가 선택하여 사용할 수 있는 실제 버퍼링 파라미터들을 시그널링할 것이라는 것을 알고 있는 스트리밍 서버(10)는, 최초에 일정-지연을 가지는 신뢰성있는 채널에 대한 실제 권장되는 파라미터들인 사전-디코더 버퍼링 파라미터들을 클라이언트측에 시그널링할 수 있다. 이와 같이, 서버측으로부터 클라이언트측으로 진행되는 사전-디코딩 버퍼링의 시그널링이 오용(misuse)되지 않음으로써, 멀티미디어 스트리밍 서버로 하여금 더 정확하고 명확한 속도 제어를 수행할 수 있도록 한다.
도 2는 멀티미디어 스트리밍 시스템의 상이한 버퍼들 내의 예시적인 지연들을 예시한다. 도 2에서, 수평축(x-축)은 초 단위의 시간을 나타내고, 수직축(y-축)은 바이트 단위의 데이터의 누적량이다. 샘플링 곡선(S)은 미디어 인코더가 실시간에서 동작할 경우의 데이터 발생의 과정을 나타낸다. 송신기 곡선(T)은 주어진 시간에서의 서버로부터 전송된 데이터의 누적량을 나타낸다. 직선이 일정한 비트율 송신을 나타낸다는 점에 주의한다. 수신기 곡선(R)은 주어진 시간에서의 수신되고 클라이언트 버퍼에 저장된 데이터의 누적량을 나타내는데, 재생 곡선(P)은 주어진 시간에서의, 사전-디코더 버퍼로부터 추출되어 디코더에 의하여 처리된 데이터의 누적량을 나타낸다. 샘플링 곡선(S)은 재생 곡선(P)에 대항하는 것이고 실제로 재생 곡선을 시간 이동시킨 것에 해당한다.
도 2에서, 상이한 버퍼들 내의 지연들은 용이하게 식별된다. "단-대-단" 지연은 샘플링 곡선(S) 및 재생 곡선(P) 간의 x-축 간 거리에 의하여 표시된다. 샘플링 곡선(S) 및 송신기 곡선(T) 간의 x-축상 거리는 "서버 버퍼링 지연"을 나타낸다. 변화하는 "전달 지연"은 수신기 곡선(R) 및 송신기 곡선(T) 간의 x-축 간 거리에 의하여 표시되고, "클라이언트 버퍼링 지연"은 재생 곡선(P) 및 수신기 곡선(R) 간의 x-축 간 거리에 의하여 표시된다. 그러므로, 재생 곡선(P) 및 샘플링 곡선(S) 간의 x-축간 거리로 나타나는 "단-대-단 지연"은 "서버 버퍼링 지연", "전달 지연", 및 "클라이언트 버퍼링 지연"의 합인 것이 이해되어야 한다.
누적 데이터 축인 y-축 상을 따라서 그래프를 관찰하면, 수신기 곡선(R) 및 재생 곡선(P) 간의 y-축 상 거리는 주어진 시간의 클라이언트 버퍼 내의 데이터 량을 나타낸다. 송신기 곡선(T) 및 수신기 곡선(R) 간의 y-축 상 거리는 주어진 시간에 이미 송신되었지만 아직 수신기(스트리밍 클라이언트)에 수신되지 않은 데이터의 량을 나타낸다.
이동된 송신기 곡선(ST)은 스트리밍 클라이언트에서의 사전-디코더 버퍼링 및 지터 버퍼링의 분리를 나타낸다. 누적된 데이터량이 0인 지점에서의 재생 곡선(P) 및 이동된 송신기 곡선(ST) 간의 x-축간 거리는 (t(P0)-t(ST 0)로 도 2에 표시되는데, 이것은 일정한 지연을 가지는 채널을 통하여 송신된 스트림을 디코딩하는데 적용되기 충분한 최초 사전-디코더 버퍼링 지연의 권장치를 나타난다. 누적된 데이터량이 0인 지점에서의 이동된 송신기 곡선(ST) 및 수신기 곡선(R) 간의 x-축간 거리는 (t(ST0)-t(R0)로 도 2에 표시되는데, 이것은 패킷 전달 지연 변이를 보상하기 위하여 클라이언트가 채택하는 최초 지터 버퍼링 지연에 해당한다.
클라이언트 버퍼 언더플로우를 야기하지 않은 채 수신기 곡선이 수차례 이동된 송신기 곡선과 교차한다는 사실은, 본 발명에 따라 사전-디코더 버퍼 지연을 지터 버퍼링 지연과 함께 집적시키는 것의 유용성을 나타낸다. 서버는 실시간 스트리밍 프로토콜(RTSP) 보고(reports)를 통하여 더 큰 패킷 전달 지연 변이를 감지할 수 있다고 가정되고, 서버가 더 큰 패킷 전달 지연 변이를 보상하기 위하여 속도-제어 및/또는 속도-쉐이핑 알고리즘을 채택할 수 있다고 가정된다. 도 2에 도시된 실시예에서, 서버는 속도 보상 정합 동작을 실제로 채택할 필요가 없는데, 그것은 클라이언트 버퍼링이 패킷 전달 지연 변이를 보상하기 충분하기 때문이다. 만일 서버가 클라이언트 버퍼링 파라미터들에 대해서 알고 있지 못한다면, 서버는 불필요한 속도-제어 및/또는 속도-쉐이핑 알고리즘을 적용하고 말았을 것이다.
클라이언트 버퍼링 파라미터 시그널링의 규칙
클라이언트 버퍼링 파라미터들을 포함하는 시그널링 메시지는 아무 때나 전송될 수 있으나, 클라이언트가 주어진 스트리밍 세션에서 자신이 실제로 사용할 수 있는 버퍼링 파라미터들을 알게된 때의 직후에 전송되는 것이 가장 유용하다. 이러한 시그널링 메시지는 지연이 발생할 때 치명적으로 영향을 받는 메시지(delay critical message)이거나 또는 서버 시간에 동기화되어야 하는 메시지가 아닌데, 그 이유는 클라이언트 버퍼링 파라미터들은 일반적으로 더 오랜 시간 주기 동안 일정하고 거의 변하지 않기 때문이다. 예를 들어, 신규 미디어 재생을 시작한 이후에만 신규 클라이언트 버퍼링 파라미터들을 한번 시그널링할 필요가 있을 뿐이다. 즉, 신규한 실시간 스트리밍 프로토콜(RTSP) PLAY 요청 이후에만 수행될 필요가 있다.
만일 스트리밍 클라이언트가 재생이 이루어지는 동안 버퍼링 파라미터들 중 어는 것을 동적으로 변경한다면(예를 들어, 클라이언트가 어느 시점에서 재생을 중지하였거나 재생을 느리게 수행할 경우), 스트리밍 클라이언트는 신규 버퍼링 파라미터 값을 포함한 시그널링 메시지를 스트리밍 서버에 전달할 수 있다.
구현
TS 26.234 "패킷 절환 스트리밍(PSS) 버퍼링 파라미터들의 부록 G.2"에 정의된 바와 같은 PLAY 요청에 대한 OK 응답 메시지를 위하여 스트리밍 서버로부터 전송되는 실시간 스트리밍 프로토콜(RTSP) 확장 파라미터들이 본 발명에 따른 시그널링 메시지를 전송하기 위하여 사용될 수 있다. TS 26.234에 정의된 바와 같은 실시간 스트리밍 프로토콜(RTSP) 확장 파라미터들은 다음과 같다.
-x-predecbufsize:<size of the hypothetical pre-decoder buffer>
(이것은 Annex G 가정적 사전-디코더 버퍼의 제안된 크기를 바이트 단위로 제공한다.)
x-initpredecbufperiod:<initial pre-decoder buffering period>
(이것은 Annex G에 따라서 한정된 최초 사전-디코더 버퍼링 주기의 요청을 제공한다. 값들은 90-kHz의 클록의 클록 단위(clock tick)인 것으로 해석된다. 즉, 이것의 값은 각 1/90000 초 단위당 하나씩 증가된다. 예를 들어, 180000 이라는 값은 2초의 최초 사전-디코더 버퍼링 주기에 상응한다.)
-x-initpostdecbufperiod:<initial post-decoder buffering period>
(이것은 Annex G에 따라서 한정된 최초 사후-디코더 버퍼링 주기의 요청을 제공한다. 값들은 90-kHz의 클록의 클록 단위인 것으로 해석된다.
파라미터들 전부 또는 일부가 클라이언트로부터 서버로 전송되는 시그널링 메시지 내에 포함될 수 있다. 또한, 클라이언트로부터 서버로 전달되는 시그널링 메시지와는 다른 상이한 파라미터들을 정의하는 것 역시 가능하다.
클라이언트는 실시간 스트리밍 프로토콜(RTSP) OPTIONS 요청 내에 이러한 실시간 스트리밍 프로토콜(RTSP) 파라미터들을 포함한다. 이와 같이, 서버는 이러한 요청에 대해 응답하여야 하고 세션 타임아웃 타이머를 리셋해야한다. 그렇지 않으면, 이와 같은 OPTIONS 요청이 서버 상태에 영향을 미치지 않는다.
예를 들어, 실제 클라이언트 버퍼링 주기가 1/2초라고 클라이언트가 시그널링하는 경우에, "최초 사전-디코더 버퍼링 주기" 파라미터는 재사용된다(다음과 같이 제공된 실시간 스트리밍 프로토콜(RTSP) OPTIONS 요청 및 OK 응답 메시지 쌍에서의 경우와 같다.)
C->S: OPTIONS *RTSP/1.0
CSeq: 833
Session: 12345678
x-initpredecbufperiod: 45000
S-C: RTSP/1.0 200 OK
Cseq: 833
Public: DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE
또한, 클라이언트는 이러한 실시간 스트리밍 프로토콜(RTSP) 파라미터들을 공란의 실시간 스트리밍 프로토콜(RTSP) PLAY 요청 내에서 전송할 수 있다(즉, "Range" 헤더가 필요없이). IETF RFC2326에 따른 스트리밍 서버는 액티브 PLAY 상태에 있는 동안(즉, 만일 서버가 요청된 PLAY 범위로부터 패킷들을 전송하는 것을 완료하지 않았다면), 수신되는 공란의 PLAY 요청들에 동작할 필요가 없고, PLAY 요청도 큐잉(queued)될 수 있는바와 같이 가능한 오해석(misinterpretations)에 대해 주의해야 하는데, 큐잉된 경우에 요청들은 스트리밍이 현재 PLAY 범위가 종결되자마자 중지된 지점으로부터 재시작되어야 한다는 것을 나타낸다. 후술되는 예시는 어떻게 실시간 스트리밍 프로토콜(RTSP) PLAY 요청이 본 발명에 따른 사전-디코더 버퍼링 파라미터들을 시그널링하기 위하여 사용될 수 있는지를 보여준다.
C->S : PLAY rtsp://audio.example.com/twister.en RTSP/1.0
CSeq: 833
Session: 12345678
x-initpredecbufperiod:45000
S_C : RTSP/1.0 200 OK
CSeq: 833
클라이언트는 이러한 실시간 스트리밍 프로토콜(RTSP) 파라미터들을 실시간 스트리밍 프로토콜(RTSP) PING 요청 내에 전송할 수도 있다.
만일 서버가 클라이언트 버퍼링 파라미터 확장(extensions)을 이해한다면, 서버는 현재 액티브 PLAY 상태 내의 실제 클라이언트 버퍼링 파라미터들을 고려해야 한다. 즉, 스트리밍 세션 내의 최후 요청된 PLAY 범위에만 적용한다.
본 발명은 스트리밍 클라이언트 및 서버 합작(collaborative algorithm) 알고리즘에 관련된다는 점에 주의해야 한다. 즉, 만일 클라이언트가 스트리밍 시간에 버퍼링 파라미터들을 전송한다면, 서버는 실제로 이 정보를 자신의 속도 제어에 사용한다. 스트리밍 서버 및 클라이언트가 시그널링 방법을 지원할 것을 보장하기 위하여 기능-교환(capability-exchange)이 사용될 수 있다. 이러한 특징을 명명하기 위한 여러 가지 가능성이 존재한다는 것에 주의해야 한다. 명명 방법 중 하나의 예를 들면 "클라이언트-버퍼링 파라미터들의 시그널링(Client-buffering-parameters-signaling)"일 수 있는데, 이 명칭은 다음과 같은 제1 SETUP 요청 내에서 시그널링될 수 있다.
C->S: SETUP rtsp://audio.example.com/twister.en/video RTSP/1.0
CSeq: 3
Require: Client-buffering-parameters-signaling
만일 서버가 이 특징을 지원하지 않는다면, 이것은 다음과 같은 예시 내의 "미지원(unsupported)" 필드를 반환해야 한다.
S->: RTSP/1.0 200 OK
CSeq: 3
Unsupported: client-buffering-parameters-signaling
<Other SETUP related params>
클라이언트가 이 특징이 지원되지 않는다는 것을 이해하면, 클라이언트는 그러한 파라미터들을 OPTIONS 요청 내에 전송한다. 만일 "미지원" 헤더가 존재하지 않는다면(서버가 이 특징을 지원한다는 것을 나타낸다), 클라이언트는 클라이언트 버퍼링 파라미터들을 스트리밍 서버로 안전하게 시그널링할 수 있다. 클라이언트는 클라이언트가 이 특징이 지원된다는 것을 이해했을 때 안전하게 클라이언트 버퍼링 파라미터들을 (범위 헤더 또는 PING 요청 없이 OPTIONS 요청, PLAY 요청중 하나 내에서) 안전하게 시그널링할 수 있다.
본 발명은 본 발명의 바람직한 실시예에 관련하여 설명되었으나, 당업자들에게는 전술된 바와 같은 실시예 및 다양한 다른 변형이 본 발명의 기술적 사상에서 벗어나지 않고 구현될 수 있는 것이 이해될 것이다. 따라서 본 발명의 기술적 사상은 예시된 실시예에 의하여 해석되어서는 안되고, 첨부되는 특허청구범위에 기재된 사항 및 이의 균등물에 해당하는 것으로 이해되어야 한다.
본 발명은 일반적으로 멀티미디어 스트리밍 분야로서, 특히 3GPP 패킷 절환 스트리밍 서비스(PSS, Packet Switched Streaming Service)에 적용될 수 있고, 본 발명에 의하여 클라이언트-서버간 스트리밍 서비스가 클라이언트 측의 버퍼 초과가 발생되지 않도록 안정적으로 확보될 수 있다.

Claims (31)

  1. 멀티미디어 스트리밍 시스템에서 전달 지연 변이 보상을 가능하게 하기 위한 클라이언트-서버 합작 방법(collaboration method)으로서,
    사전-디코딩(pre-decoding) 버퍼링 파라미터들을 나타내는 신호가 스트리밍 서버에 의하여 스트리밍 클라이언트에게 제공되고,
    상기 서버에 의하여 표시된 상기 사전-디코딩 버퍼링 파라미터들은, 패킷 스트림이 일정한 지연을 가지는 신뢰 가능한(reliable) 채널로 송신된다면 상기 클라이언트가 클라이언트의 버퍼 초과(buffer violation) 없이 상기 스트림을 재생할 수 있도록 보장하도록 선택되는 클라이언트-서버 합작 방법에 있어서,
    선택된 상기 클라이언트의 버퍼링 파라미터들에 관한 정보를 상기 서버에 전달하는 단계를 포함하며,
    상기 클라이언트의 지터 버퍼링 기능(jitter buffering capabilities)들은 상기 클라이언트에 의하여 시그널링(signaled)된 사전-디코딩 버퍼링 파라미터들 및 상기 스트리밍 서버에 의하여 제공된 상기 사전-디코딩 버퍼링 파라미터들 간의 차분치에 의하여 표시되는 것을 특징으로 하는 전달 지연 변이 보상을 가능하게 하기 위한 클라이언트-서버 합작 방법.
  2. 제1항에 있어서, 상기 서버에 의하여 상기 클라이언트에게 표시되는 상기 사전-디코딩 버퍼 파라미터들은,
    송신된 패킷 스트림의 가변 비트율 특성(variable bit-rate characteristics) 및 상기 서버에 의하여 적용되는 상기 버퍼링에 기반하여 선택되는 것을 특징으로 하는 전달 지연 변이 보상을 가능하게 하기 위한 클라이언트-서버 합작 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 클라이언트는 자신의 선택된 버퍼링 파라미터들에 관한 상기 정보를, 상기 클라이언트가 특정 스트리밍 세션에 사용될 버퍼링 파라미터를 결정하는 즉시 상기 서버에 제공하는 것을 특징으로 하는 전달 지연 변이 보상을 가능하게 하기 위한 클라이언트-서버 합작 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 클라이언트는 자신의 선택된 버퍼링 파라미터들에 관한 상기 정보를, 신규 스트리밍 세션을 개시할 때 상기 서버에 제공하는 것을 특징으로 하는 전달 지연 변이 보상을 가능하게 하기 위한 클라이언트-서버 합작 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 클라이언트는 한 스트리밍 세션 동안에 자신의 버퍼링 파라미터들을 동적으로 변경하고,
    상기 클라이언트는 변경된 자신의 버퍼링 파라미터들을 그 스트리밍 세션 동안에 상기 서버로 제공하는 것을 특징으로 하는 전달 지연 변이 보상을 가능하게 하기 위한 클라이언트-서버 합작 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 스트리밍 서버는,
    상기 클라이언트의 버퍼링 파라미터에 관한 상기 정보를 이용하는 속도-제어(rate-control) 및/또는 속도 쉐이핑 알고리즘(rate shaping algorithm)을 적용하여 패킷 전달 지연 및 채널 속도 변이(channel rate variations)를 보상하는 것을 특징으로 하는 전달 지연 변이 보상을 가능하게 하기 위한 클라이언트-서버 합작 방법.
  7. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 스트리밍 서버는,
    속도 제어 및/또는 속도 쉐이핑 동안 상기 버퍼링 파라미터들에 관한 정보를 선택적으로 고려하는 것을 특징으로 하는 전달 지연 변이 보상을 가능하게 하기 위한 클라이언트-서버 합작 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서, 상기 클라이언트의 버퍼링 파라미터에 관한 정보는,
    클라이언트의 사전-디코더 버퍼의 크기에 관한 정보, 사전-디코더 버퍼링 주기에 관한 정보, 및 사후-디코더(post-decoder) 버퍼링 시간에 관한 정보 중 일부 또는 전부를 포함하는 것을 특징으로 하는 전달 지연 변이 보상을 가능하게 하기 위한 클라이언트-서버 합작 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서, 상기 스트리밍 클라이언트는,
    상기 클라이언트의 버퍼링 파라미터들에 관한 상기 정보를, RTSP OPTIONS 요청 메시지를 통해 상기 스트리밍 서버에 제공하는 것을 특징으로 하는 전달 지연 변이 보상을 가능하게 하기 위한 클라이언트-서버 합작 방법.
  10. 제1항 내지 제8항 중 어느 한 항에 있어서, 상기 스트리밍 클라이언트는,
    상기 클라이언트의 버퍼링 파라미터들에 관한 상기 정보를, RTSP PLAY 요청 메시지를 통해 상기 스트리밍 서버에 제공하는 것을 특징으로 하는 전달 지연 변이 보상을 가능하게 하기 위한 클라이언트-서버 합작 방법.
  11. 제1항 내지 제8항 중 어느 한 항에 있어서, 상기 스트리밍 클라이언트는,
    상기 클라이언트의 버퍼링 파라미터들에 관한 상기 정보를, RTSP PING 요청 메시지를 통해 상기 스트리밍 서버에 제공하는 것을 특징으로 하는 전달 지연 변이 보상을 가능하게 하기 위한 클라이언트-서버 합작 방법.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서, 상기 스트리밍 클라이언트는,
    상기 스트리밍 서버가 클라이언트 버퍼링 파라미터들의 시그널링을 지원하는지 여부를 결정하는 것을 특징으로 하는 전달 지연 변이 보상을 가능하게 하기 위한 클라이언트-서버 합작 방법.
  13. 적어도 하나의 버퍼를 포함하고, 스트리밍 서버로부터 패킷 스트림을 수신하여 상기 패킷 스트림을 재생하도록 구현되는 스트리밍 클라이언트 장치에 있어서,
    상기 클라이언트 장치는 자신의 선택된 버퍼링 파라미터들에 관한 정보를 상기 서버에 제공하도록 구현되는 것을 특징으로 하는 스트리밍 클라이언트 장치.
  14. 제13항에 있어서, 상기 스트리밍 클라이언트 장치는,
    사전-디코더 버퍼 및 지연 지터 버퍼(delay jitter buffer)를 포함하는 것을 특징으로 하는 스트리밍 클라이언트 장치.
  15. 제13항에 있어서, 상기 스트리밍 클라이언트 장치는,
    사전-디코더 버퍼, 지연 지터 버퍼 및 사후-디코더 버퍼를 포함하는 것을 특징으로 하는 스트리밍 클라이언트 장치.
  16. 제14항 또는 제15항에 있어서,
    상기 사전-디코더 버퍼 및 지연 지터 버퍼는 단일 유닛으로 집적되는 것을 특징으로 하는 스트리밍 클라이언트 장치.
  17. 제13항 내지 제16항 중 어느 한 항에 있어서, 상기 스트리밍 클라이언트 장치는,
    상기 스트리밍 서버로부터 사전-디코더 버퍼링 파라미터들의 지시자(indication)를 수신하도록 구현되는 것을 특징으로 하는 스트리밍 클라이언트 장치.
  18. 제13항 내지 제17항 중 어느 한 항에 있어서, 상기 스트리밍 클라이언트 장치는,
    자신의 선택된 버퍼링 파라미터들에 관한 상기 정보를, 상기 클라이언트 장치가 특정 스트리밍 세션에 사용될 버퍼링 파라미터를 결정하는 즉시 상기 서버에 제공하는 것을 특징으로 하는 스트리밍 클라이언트 장치.
  19. 제13항 내지 제18항 중 어느 한 항에 있어서, 상기 스트리밍 클라이언트 장치는,
    자신의 선택된 버퍼링 파라미터들에 관한 상기 정보를, 신규 스트리밍 세션을 개시할 때 상기 서버에 제공하는 것을 특징으로 하는 스트리밍 클라이언트 장치.
  20. 제13항 내지 제19항 중 어느 한 항에 있어서, 상기 스트리밍 클라이언트 장치는,
    한 스트리밍 세션 동안에 자신의 버퍼링 파라미터들을 동적으로 변경하고,
    변경된 자신의 버퍼링 파라미터들에 관한 정보를 그 스트리밍 세션 동안에 상기 서버로 제공하도록 구현되는 것을 특징으로 하는 스트리밍 클라이언트 장치.
  21. 제13항 내지 제20항 중 어느 한 항에 있어서, 상기 클라이언트의 버퍼링 파라미터에 관한 정보는,
    클라이언트의 사전-디코더 버퍼의 크기에 관한 정보, 사전-디코더 버퍼링 주기에 관한 정보, 및 사후-디코더 버퍼링 시간에 관한 정보 중 일부 또는 전부를 포함하는 것을 특징으로 하는 스트리밍 클라이언트 장치.
  22. 제13항 내지 제21항 중 어느 한 항에 있어서, 상기 스트리밍 클라이언트 장치는,
    상기 클라이언트 장치의 선택된 버퍼링 파라미터들에 관한 상기 정보를, RTSP OPTIONS 요청 메시지를 통해 상기 스트리밍 서버에 제공하는 것을 특징으로 하는 스트리밍 클라이언트 장치.
  23. 제13항 내지 제22항 중 어느 한 항에 있어서, 상기 스트리밍 클라이언트 장치는,
    상기 클라이언트 장치의 선택된 버퍼링 파라미터들에 관한 상기 정보를, RTSP PLAY 요청 메시지를 통해 상기 스트리밍 서버에 제공하는 것을 특징으로 하는 스트리밍 클라이언트 장치.
  24. 제13항 내지 제23항 중 어느 한 항에 있어서, 상기 스트리밍 클라이언트 장치는,
    상기 클라이언트 장치의 선택된 버퍼링 파라미터들에 관한 상기 정보를, RTSP PING 요청 메시지를 통해 상기 스트리밍 서버에 제공하는 것을 특징으로 하는 스트리밍 클라이언트 장치.
  25. 제13항 내지 제24항 중 어느 한 항에 있어서, 상기 스트리밍 클라이언트 장치는,
    상기 스트리밍 서버가 클라이언트 버퍼링 파라미터들의 시그널링을 지원하는지 여부를 결정하는 것을 특징으로 하는 스트리밍 클라이언트 장치.
  26. 스트리밍 클라이언트 장치로 패킷 스트림을 송신하도록 구현되는 스트리밍 서버 장치에 있어서,
    상기 스트리밍 클라이언트 장치의 선택된 버퍼링 파라미터들에 관한 정보를 수신하도록 구현되는 것을 특징으로 하는 스트리밍 서버 장치.
  27. 제26항에 있어서, 상기 스트리밍 서버 장치는,
    상기 스트리밍 클라이언트 장치로 사전-디코딩 버퍼링 파라미터들을 나타내는 신호를 제공하도록 구현되고,
    상기 서버 장치에 의하여 표시된 상기 사전-디코딩 버퍼링 파라미터들은, 패킷 스트림이 일정한 지연을 가지는 신뢰 가능한 채널로 송신된다면 상기 클라이언트가 클라이언트의 버퍼 초과 없이 상기 스트림을 재생할 수 있도록 보장하도록 선택되는 것을 특징으로 하는 스트리밍 서버 장치.
  28. 제26항 또는 제27항에 있어서, 상기 스트리밍 서버 장치는,
    상기 클라이언트 장치의 선택된 버퍼링 파라미터에 관한 상기 정보를 이용하는 속도-제어 및/또는 속도 쉐이핑 알고리즘을 적용하여, 상기 서버 장치로부터 상기 스트리밍 클라이언트 장치로 상기 패킷 스트림을 송신하는 도중에 발생되는 패킷 전달 지연 및 채널 속도 변이를 보상하는 것을 특징으로 하는 스트리밍 서버 장치.
  29. 제26항 내지 제27항 중 어느 한 항에 있어서, 상기 스트리밍 서버 장치는,
    속도 제어 및/또는 속도 쉐이핑 동안 상기 클라이언트 장치의 선택된 버퍼링 파라미터들에 관한 정보를 선택적으로 고려하는 것을 특징으로 하는 스트리밍 서버 장치.
  30. 제26항 내지 제29항 중 어느 한 항에 있어서, 상기 서버 장치에 의하여 수신되는 상기 클라이언트 장치의 버퍼링 파라미터들에 관한 정보는,
    클라이언트 장치의 사전-디코더 버퍼의 크기에 관한 정보, 사전-디코더 버퍼링 주기에 관한 정보, 및 사후-디코더(post-decoder) 버퍼링 시간에 관한 정보 중 일부 또는 전부를 포함하는 것을 특징으로 하는 스트리밍 서버.
  31. 제13항에 따른 스트리밍 클라이언트 장치 및 제26항에 따른 스트리밍 서버 장치를 포함하는 데이터 스트리밍 시스템.
KR10-2005-7000738A 2002-07-16 2003-07-16 멀티미디어 스트리밍에서 패킷 전달 지연 보상을 가능하게하기 위한 방법 KR20050019880A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2005-7000738A KR20050019880A (ko) 2002-07-16 2003-07-16 멀티미디어 스트리밍에서 패킷 전달 지연 보상을 가능하게하기 위한 방법

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US60/396,920 2002-07-16
KR10-2005-7000738A KR20050019880A (ko) 2002-07-16 2003-07-16 멀티미디어 스트리밍에서 패킷 전달 지연 보상을 가능하게하기 위한 방법

Publications (1)

Publication Number Publication Date
KR20050019880A true KR20050019880A (ko) 2005-03-03

Family

ID=41784059

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2005-7000738A KR20050019880A (ko) 2002-07-16 2003-07-16 멀티미디어 스트리밍에서 패킷 전달 지연 보상을 가능하게하기 위한 방법

Country Status (1)

Country Link
KR (1) KR20050019880A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101507032B1 (ko) * 2014-08-26 2015-04-01 계명대학교 산학협력단 스트리밍 미디어의 실시간 동기화 재생 시스템 및 방법
KR20220076761A (ko) * 2020-12-01 2022-06-08 주식회사 마젠타컴퍼니 복수의 미디어 소스를 동기화하여 통합 전송하는 시스템 및 그 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101507032B1 (ko) * 2014-08-26 2015-04-01 계명대학교 산학협력단 스트리밍 미디어의 실시간 동기화 재생 시스템 및 방법
KR20220076761A (ko) * 2020-12-01 2022-06-08 주식회사 마젠타컴퍼니 복수의 미디어 소스를 동기화하여 통합 전송하는 시스템 및 그 방법

Similar Documents

Publication Publication Date Title
RU2332705C2 (ru) Способ предоставления возможности компенсации задержки передачи пакетов при потоковой передаче мультимедийных данных
US7421508B2 (en) Playback of streamed media
US20050254508A1 (en) Cooperation between packetized data bit-rate adaptation and data packet re-transmission
US9191664B2 (en) Adaptive bitrate management for streaming media over packet networks
JP4965059B2 (ja) ビデオストリームの切り替え
AU2002231829A1 (en) Method and system for buffering streamed data
US20090259756A1 (en) Transmitting media stream bursts
KR20060011964A (ko) 혁신적인 레이트 적응 시그널링을 위한 방법 및 장치
US7761901B2 (en) Data transmission
KR20050019880A (ko) 멀티미디어 스트리밍에서 패킷 전달 지연 보상을 가능하게하기 위한 방법
US20050175028A1 (en) Method for improving the quality of playback in the packet-oriented transmission of audio/video data
KR101094694B1 (ko) 스트리밍 시스템에서 초기 버퍼링 시간을 최소화하는 방법 및 그 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application