KR20060011964A - 혁신적인 레이트 적응 시그널링을 위한 방법 및 장치 - Google Patents

혁신적인 레이트 적응 시그널링을 위한 방법 및 장치 Download PDF

Info

Publication number
KR20060011964A
KR20060011964A KR1020057020082A KR20057020082A KR20060011964A KR 20060011964 A KR20060011964 A KR 20060011964A KR 1020057020082 A KR1020057020082 A KR 1020057020082A KR 20057020082 A KR20057020082 A KR 20057020082A KR 20060011964 A KR20060011964 A KR 20060011964A
Authority
KR
South Korea
Prior art keywords
server
rate
client
adaptation
amount
Prior art date
Application number
KR1020057020082A
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 노키아 코포레이션
Publication of KR20060011964A publication Critical patent/KR20060011964A/ko

Links

Images

Classifications

    • 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/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L12/5602Bandwidth control in ATM Networks, e.g. leaky 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/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/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities

Abstract

멀티미디어 스트리밍 네트워크에서 클라이언트내의 수신기 버퍼의 레벨을 적응적으로 조정하기 위한 방법 및 시스템이 제공된다. 상기 멀티미디어 스트리밍 네트워크는 스트리밍 데이터를 상기 클라이언트에 제공하기 위한 서버를 구비한다. 상기 서버는 전송 레이트를 수신 레이트에 적응시키는 것 또는 정체 제어를 담당하고, 샘플링 레이트를 상기 전송 레이트에 적응시키는 것을 담당한다. 따라서, 상기 서버는 편이를 관리하고 그것을 레이트 적응 동작 범위내에서 유지시킨다. 상기 클라이언트는 또한 네트워크 지터로 알려져 있는, 패킷 전송 지연 편차를 보상하는 것을 담당한다. 상기 클라이언트는 또한 서버 레이트 적응 동작 범위의 매개 변수들을 설정하는 것을 담당한다. 상기 클라이언트는 편이 매개 변수들을 선택하고 상기 편이 매개 변수들을 상기 서버로 송신하지만, 상기 매개 변수들에 응답하는 경우 그것의 부호화 레이트 또는 전송 레이트를 적응시키는 것은 상기 서버에 달려있다.
레이트, 적응, 멀티미디어, 스트리밍, 서버, 클라이언트, 편이

Description

혁신적인 레이트 적응 시그널링을 위한 방법 및 장치{Method and device for proactive rate adaptation signaling}
본 발명은 일반적으로 멀티미디어 스트리밍에 관한 것으로, 특히 멀티미디어 스트리밍 서비스에서 서버와 클라이언트 간의 레이트(rate) 적응에 관한 것이다.
멀티미디어 스트리밍 서비스에 있어서, 수반되는 세 참가자들이 존재한다: 스트리밍 서버, 스트리밍 클라이언트 및 전송 채널 또는 기본적인 네트워크. 처리율 및 신뢰성 양자의 관점에서(즉 아무런 처리율 비트레이트 보장도 가정되지 않는 경우), 서비스의 병목 현상이 발생하는 곳은 보통 전송 채널이지만, 처리율 제한이 또한 상기 클라이언트 및/또는 상기 서버에서 발생할 수 있다.
실시간 스트리밍 시스템에서, 상기 채널, 클라이언트 및 서버의 동적으로 변하는 처리율 특성으로 인하여, 상기 스트리밍 전달은 사용자에 대해 실시간 재생 경험을 유지하기 위하여 적응적일 필요가 있다. 상기 서버는 전송 레이트를 상기 시스템의 변하는 처리율에 적응시켜야 한다. 이러한 레이트 적응 시스템의 예는 하스켈 등(Haskell et al.)(미국 특허 번호 5,565,924, "가변 채널을 위한 부호기/복호기 버퍼 제어")에서 발견될 수 있다.
상기 스트리밍 클라이언트는 입력 데이터를 플레이아웃(playout)을 위해 미 디어 복호기로 전달하기 전에 입력 데이터를 저장하기 위한 수신기 버퍼를 제공한다. 상기 수신기 버퍼는 소스 부호화 레이트(또한 샘플링 레이트로 지칭됨) 및 전송 레이트(전치-복호기 버퍼링) 간의 차를 보상하는데 사용된다. 그것은 또한 상기 채널에 대한 패킷 전송 지연 편차를 보상하는데 사용된다(지터 버퍼링). 일반적으로, 이들 두개의 기능들은 단일 수신기 버퍼에 결합되는 것으로 가정된다. 하지만, 그들은 또한 수신기에서 두개의 개별 버퍼들로 구현될 수 있는데, 이러한 구현은 지연의 관점에서 최적은 아니다. 수신기 버퍼링은 또한 (즉 상기 시스템 처리율이 상기 서버 출력에 의해 정확히 매칭되지 않는 경우) 상기 적응 부정확성을 평탄화할 수 있다.
상기 복호기가 복호화할 데이터없이 동작하고 있다는 것을 의미하는, 상기 수신기 버퍼가 버워지는 경우(즉 버퍼 언더플로우), 상기 클라이언트는 재개하기 전에 플레이아웃을 중단하고 입력 데이터를 재버퍼링할 필요가 있다. 다른 한편, 입력 데이터 레이트가 플레이아웃 레이트보다 더 빠른 경우, 상기 수신기 버퍼 공간은 고갈될 수 있는데(즉 버퍼 오버플로우), 이것은 새로운 입력 패킷들에 대한 공간을 형성하기 위하여 상기 버퍼에서 패킷들을 버리는 것을 초래할 수 있다. 상기 패킷들이 버려지는 경우, 비디오 품질은 저하된다. 원활하고 결함없는 플레이아웃을 보증하기 위하여, 상기 클라이언트의 수신기 버퍼는 어떤 포만(fullness) 범위내에서 유지되어야 한다. 상기 수신기 버퍼가 언더플로우 또는 오버플로우되지 않을 것이라는 것을 보장하기 위하여, 상기 서버에서의 전송 및 샘플링에 대한 비트레이트 및 상기 클라이언트에서의 수신 및 플레이아웃에 대한 비트레이트는 적합 하게 제어되어야 한다.
하기의 논의에서, 다음 곡선들이 정의되는 (수평축상에 초로 나타낸 시간; 수직축상에, 바이트 또는 비트로 나타낸 누적 데이터량) 비트레이트 전개 도면들을 참조하여 비트레이트 제어가 설명될 것이다:
- 플레이아웃 곡선, P(t)는 복호기가 상기 수신기 버퍼로부터 주어진 시간까지 처리된 누적 데이터량을 보여준다;
- 샘플링 곡선, S(t)는 미디어 부호기가 실시간으로 동작된 것처럼 데이터 생성의 진행을 보여준다(그것은 플레이아웃 곡선의 상대물이고, 실제로 그것의 시간-편이된 버전이다);
- 전송 곡선, T(t)는 주어진 시간에 상기 서버에 의해 송신된 누적 데이터량을 보여준다; 그리고
- 수신 곡선, R(t)는 주어진 시간에 상기 클라이언트 버퍼에 수신되고 배치되는 누적 데이터량을 보여준다.
어떤 두 곡선들간의 차는 상기 두 곡선들간의 "버퍼 크기" 및 지연을 정의한다. 상기 비트레이트 제어는 두 곡선들간의 차에 대한 어떤 제한들(예를 들어, 최대 버퍼 크기 또는 최대 지연)에 의해 제약될 것이다. 전형적인 비트레이트 전개 도면이 도 1에 도시되어 있다.
비트레이트 제어에서 서버와 클라이언트 협력에 대한 최선의 배열을 결정하는 경우, 다음 사항이 고려될 것이다:
A. 샘플링 곡선 - 상기 제어(즉 전송에 대한 비트스트림의 선택)는 다음 이 유때문에 상기 서버에 완전하게 맡겨져야 한다:
1) 각 비트스트림의 정확한 특성들, 예를 들어 스위칭 위치들, 프레임들의 우선 순위, 미래의 프레임 크기에 대해 알고 있는 것은 단지 상기 서버이다, 그리고
2) 상기 네트워크 비트레이트와 일치하는 비트스트림 레이트가 존재하지 않을 수 있고, 상기 서버는 어떤 "트릭"(예를 들어, 세선화(thinning), 스위칭 업-앤-다운)을 수행할 수 있다.
B. 전송 곡선 - 상기 제어(즉 전송하는 레이트)는 또한 다음 이유 때문에 (상기 클라이언트로부터의 실시간 제어 프로토콜(RTCP: Real Time Control Protocol) 보고서(reports) 또는 다른 대역폭 정보를 사용하여) 상기 서버에 맡겨져야 한다:
1) 일반적으로, 유선으로 데이터량을 측정할 수 있는 것은 단지 상기 서버이다, 그리고
2) 상기 샘플링 곡선 제어가 제한된 융통성을 지니는 경우 상기 전송 레이트를 상기 샘플링 곡선에 적응시킬 필요가 있을 수 있다.
상기 서버는 그것의 샘플링 곡선(S(t))을 그것의 전송 곡선(T(t))에 적응시킴으로써 어떤 실시간 제약들을 유지해야 한다. 상기 샘플링 곡선을 상기 전송 곡선에 적응시키는 것은 적합한 버퍼링으로, 상기 수신기가 정확한 동기를 가지고 상기 미디어를 플레이아웃할 수 있다는 것을 보장한다. 매 순간 t에서, 상기 샘플링 곡선(S(t))은 너무 큰 바이트 양만큼 상기 전송 곡선(T(t))으로부터 벗어나지 않아 야 한다.
상기 서버가 실시간 제약에 의해 정의된 바와 같이 한계내에서 동작하는 경우, 상기 클라이언트는 상기 서버를 상기 한계내에서 따르기 위하여 어떤 필요한 버퍼링을 제공할 책임이 있다. 이 경우, 상기 클라이언트는 다음을 보상해야 한다:
1)
Figure 112005059822544-PCT00001
에 대한 전치-복호기 버퍼링 및
2) 전송 지연 편차{T(t)-R(t)}에 대한 지터 버퍼링.
더욱이, 상기 클라이언트는 상기 플레이아웃 곡선과 상기 샘플링 곡선간의 어떤 불일치도 견뎌야 한다(예를 들어, 클라이언트 플랫폼 운영 체제 문제로 인한 재생 감속 또는 클록 드리프트).
멀티미디어 스트리밍 시스템에서, 송신기 또는 서버는 각 순간에 그것이 송신할 다음 패킷을 (어떤 레이트로) 어떻게 부호화할지를 결정할 필요가 있고 어떤 시간에 그것을 송신할 것인지를 결정할 필요가 있다. 정상적인 동작에서, 상기 송신기는 단지 RTCP 보고서(reports)를 사용하여 상기 수신기에 의한 실시간 플레이아웃을 유지할 수 있다. 3세대 파트너십 프로젝트(3GPP) 패킷 교환 스트리밍 서비스(PSS: Packet Switched Streaming Service)는 표준적인 비디오 버퍼링 요건들을 정의하는데, 상기 요건들은 가변 비트 레이트(VBR: Variable Bit Rate) 비디오 압축 및 전송에서 고유한 서버-특정 지연 편차 및 부호화를 보상하는 것을 타깃으로 한다(2002년 6월, 3GPP TS 26.234 V5.1.0, "투과적인 종단-대-종단 패킷 교환 스트리밍 서비스(PSS); 프로토콜들 및 코덱들(릴리스 5)"을 참조하라, 이하 TS 26.234 라 함). 스트리밍 서버 및 클라이언트 양자가 상기 버퍼링 요건들을 준수하는 경우, 상기 서버로부터의 스트림이 일정-지연, 신뢰성있는 전송 채널을 통해 전송된다면, 상기 클라이언트가 클라이언트 버퍼 위반없이(즉 상기 클라이언트에서 아무런 버퍼 언더플로우 또는 오버플로우도 존재하지 않을 것이다) 상기 서버에 의해 전송된 스트림을 플레이아웃할 수 있다는 것이 보장된다. 하지만, 핸드오버, 재전송 또는 클록 드리프트와 같은 어떤 환경하에서 이것은 더 이상 가능하지 않다. 그 결과, 상기 송신기와 상기 수신기는 서로 충돌하는 동작을 취할 수 있고, 사용자 경험의 심각한 저하가 발생할 수 있다.
종래 기술에서, 수신기는 실시간 스트리밍 프로토콜(RTSP) 헤더 필드 속도(오디오 및/또는 비디오의 서브-샘플링) 및 스케일(상기 비트레이트의 곱셈적인 증가 또는 감소)의 사용을 통해 그것의 버퍼 레벨을 변경한다. 상기 헤더들은 IETF RFC2326에 정의되어 있다. 상기 수신기는 또한 "PSS를 위한 종단-대-종단 비트 레이트 적응", 3GPP SA4 doc S4-030024에 설명된 바와 같이, 상기 클라이언트에 의한 비트레이트 스위칭 명령들을 사용할 수 있다.
본 발명은 다음과 같이 송신기와 수신기 간에 레이트 적응의 책임을 분담한다:
상기 서버는 다음을 담당한다:
- 전송 레이트를 수신 레이트에 적응시키는 것(즉 정체 제어).
- 샘플링 레이트를 상기 전송 레이트에 적응시키는 것(즉 편이(shift)를 관리하고 그것을 상기 레이트 적응 동작 범위내에 유지시키는 것).
상기 수신기는 다음을 담당한다:
- 패킷 전송 지연 편차(즉 네트워크 지터)를 보상하는 것.
- 상기 서버 레이트 적응 동작 범위(편이의 범위)의 매개 변수들을 설정하는 것.
상기 서버 레이트 적응에 대한 동작 범위는 상기 송신기가 송신하는 어떤 패킷에 대한 허용가능한 최소 및 최대 편이를 지정함으로써 "상기 서버의 동적 스케줄링"의 한계를 정의한다. 상기 서버 레이트 적응 동작 범위의 매개 변수들은 핸드오버, 재전송 및 클록 드리프트와 같은 경우에 언더플로우, 오버플로우 및 품질 저하의 발생을 최소화하기 위하여 상기 서버와 수신기 간에 협상된다.
따라서, 본 발명의 제1 태양은 멀티미디어 스트리밍 네트워크에서 클라이언트내의 수신기 버퍼의 레벨을 적응적으로 제어하기 위한 방법으로서, 상기 스트리밍 네트워크는 스트리밍 데이터를 상기 클라이언트에 제공하기 위한 서버를 포함하고, 상기 수신기 버퍼는 상기 클라이언트가 비-중단 방식으로 플레이아웃할 충분한 양의 스트리밍 데이터를 가지도록 하기 위하여 상기 서버에 의한 데이터 전송량과 상기 클라이언트에 의한 데이터 사용량 간의 차를 보상하는데 사용되는 방법에 있어서,
상기 서버와 상기 클라이언트 간에 레이트 적응(rate adaptation)을 수행하기 위하여 레이트 적응 동작 범위를 결정하기 위한 적어도 하나의 매개 변수를 상기 클라이언트에서 정의하는 단계;
상기 서버에서 상기 적어도 하나의 매개 변수에 기초하여 상기 데이터 전송량을 수신 레이트에 적응시키는 단계; 및
상기 클라이언트에서 상기 적응에 기초하여 패킷 전송 지연 편차를 조정하는 단계를 포함하는 방법을 제공한다.
본 발명에 의하면, 상기 적어도 하나의 매개 변수는 상기 서버가 최소 편이량에 기초하여 상기 적응을 수행하도록 하기 위하여 상기 서버에서 패킷의 전송 시간과 샘플링 시간 간의 차를 나타내는 상기 최소 편이량을 포함한다.
본 발명에 의하면, 상기 적어도 하나의 매개 변수는 상기 서버가 타깃 편이량에 기초하여 상기 적응을 수행하도록 하기 위하여 상기 서버에서 패킷의 전송 시간 및 샘플링 시간 간의 차보다 큰 편이량을 나타내는 상기 타깃 편이량을 포함한다.
본 발명에 의하면, 상기 적어도 하나의 매개 변수는 상기 서버가 샘플링된 바이트들의 수와 송신된 바이트들의 수 간의 최대 차를 지정하는 수에 기초하여 상기 적응을 수행하도록 하기 위하여 상기 샘플링된 바이트들의 수와 송신된 바이트들의 수 간의 최대 차를 지정하는 수를 포함한다.
본 발명에 의하면, 상기 서버에서의 적응은 상기 전송 레이트 또는 상기 샘플링 레이트 또는 양자를 조정함으로써 수행된다.
본 발명에 의하면, 상기 적어도 하나의 매개 변수는 상기 클라이언트에서 플레이아웃 중단을 방지하기 위한 클록 편이량을 포함한다.
본 발명에 의하면, 상기 방법은 상기 적어도 하나의 매개 변수에 기초하여 상기 서버에서 샘플링 레이트를 상기 전송 레이트에 적응시키는 단계를 더 포함한다.
본 발명에 의하면, 상기 최소 편이량, 상기 타깃 편이량, 상기 지정된 수 및 상기 클록 중 두개 이상이 상기 서버로 함께 송신된다.
본 발명의 제2 태양은 멀티미디어 스트리밍 시스템을 제공한다. 상기 시스템은,
적어도 하나의 클라이언트; 및
상기 클라이언트에 스트리밍 데이터를 제공하기 위한 서버를 포함하며,
상기 클라이언트가 비-중단 방식으로 플레이아웃할 충분한 양의 스트리밍 데이터를 가지도록 하기 위하여 상기 클라이언트는 상기 서버에 의한 데이터 전송량 및 상기 클라이언트에 의한 데이터 사용량 간의 차를 보상하기 위한 수신기 버퍼를 포함하고, 상기 클라이언트는,
상기 서버가 적어도 하나의 매개 변수에 기초하여 상기 데이터 전송량을 수신 레이트에 적응시키도록 하기 위하여 레이트 적응 동작 범위를 결정하기 위한 상기 적어도 하나의 매개 변수를 정의하는 메커니즘; 및
상기 적응에 기초하여 패킷 전송 지연 편차를 조정하는 메커니즘을 포함한다.
본 발명에 의하면, 상기 적어도 하나의 매개 변수는 상기 서버가 최소 편이량에 기초하여 상기 적응을 수행하도록 하기 위하여 상기 서버에서 패킷의 전송 시간과 샘플링 시간 간의 차를 나타내는 상기 최소 편이량; 상기 서버가 타깃 편이량에 기초하여 상기 적응을 수행하도록 하기 위하여 상기 서버에서 패킷의 전송 시간 및 샘플링 시간 간의 차보다 큰 편이량을 나타내는 상기 타깃 편이량; 샘플링된 바이트들의 수와 송신된 바이트들의 수 간의 최대 차를 지정하는 수; 및 상기 클라이언트에서 플레이아웃 중단을 방지하기 위한 클록 편이량을 포함할 수 있다.
본 발명에 의하면, 상기 서버는 상기 적어도 하나의 매개 변수에 기초하여 샘플링 레이트를 상기 전송 레이트에 적응시키기 위한 적응 메커니즘을 포함한다.
본 발명의 제3 태양은 클라이언트내의 수신기 버퍼의 레벨을 적응적으로 제어하기 위하여 멀티미디어 스트리밍 네트워크에서의 클라이언트에서 사용하기 위한 소프트웨어 생성물로서, 상기 멀티미디어 스트리밍 네트워크는 스트리밍 데이터를 상기 클라이언트에 제공할 수 있는 서버를 포함하고, 상기 수신기 버퍼는 상기 클라이언트가 비-중단 방식으로 플레이아웃할 충분한 양의 스트리밍 데이터를 가지도록 하기 위하여 상기 서버에 의한 데이터 전송량 및 상기 클라이언트에 의한 데이터 사용량 간의 차를 보상하는데 사용되는 소프트웨어 생성물에 있어서, 상기 서버와 상기 클라이언트 간에 레이트 적응(rate adaptation)을 수행하기 위하여 상기 서버에서 레이트 적응 동작 범위를 결정하는 적어도 하나의 매개 변수를 정의하기 위한 코드; 및
상기 적응에 기초하여 패킷 전송 지연 편차를 조정하기 위한 코드를 포함하는 소프트웨어 생성물을 제공한다.
본 발명에 의하면, 상기 적어도 하나의 매개 변수는 상기 서버에서 패킷의 전송 시간과 샘플링 시간 간의 차를 나타내는 최소 편이량; 상기 서버에서 패킷의 전송 시간과 샘플링 시간 간의 차보다 큰 편이량을 나타내는 타깃 편이량; 샘플링된 바이트들의 수와 송신된 바이트들의 수 간의 최대 차를 지정하는 수; 및 상기 클라이언트에서 플레이아웃 중단을 방지하기 위한 클록 편이량을 포함할 수 있다.
본 발명의 제4 태양은 스트리밍 데이터를 단말기에 제공하기 위한 적어도 하나의 서버를 구비하는 멀티미디어 스트리밍 네트워크에서의 단말기로서, 상기 단말기가 비-중단 방식으로 플레이아웃할 충분한 양의 스트리밍 데이터를 가지도록 하기 위하여 상기 서버에 의한 데이터 전송량과 상기 단말기에 의한 데이터 사용량 간의 차를 보상하는 수신기 버퍼를 구비하는 단말기를 제공한다. 상기 단말기는,
상기 서버가 적어도 하나의 매개 변수에 기초하여 상기 데이터 전송량을 수신 레이트에 적응시키도록 하기 위하여 상기 서버에서 레이트 적응 동작 범위를 결정하는 상기 적어도 하나의 매개 변수를 정의하는 메커니즘; 및
상기 적응에 기초하여 패킷 전송 지연 편차를 조정하는 메커니즘을 포함한다.
본 발명에 의하면, 상기 정의하는 메커니즘은 상기 적어도 하나의 매개 변수를 정의하기 위한 적어도 하나의 코드를 지닌 소프트웨어 프로그램을 포함하고, 상기 조정하는 메커니즘은 상기 패킷 전송 지연 편차를 조정하기 위한 적어도 하나의 코드를 지닌 소프트웨어 프로그램을 포함한다.
본 발명의 제5 태양은 네트워크 요소로부터 스트리밍 데이터를 수신하는 적어도 하나의 단말기를 구비하는 멀티미디어 스트리밍 네트워크에서의 네트워크 요소로서, 상기 단말기는 상기 단말기가 비-중단 방식으로 플레이아웃할 충분한 양의 스트리밍 데이터를 가지도록 하기 위하여 상기 네트워크 요소에 의한 데이터 전송량 및 상기 단말기에 의한 데이터 사용량 간의 차를 보상하는 수신기 버퍼를 구비하는 네트워크 요소를 제공한다.
상기 네트워크 요소는,
상기 단말기로부터 요구를 수신하기 위한 수단으로서, 상기 요구는 상기 네트워크 요소에서 레이트 적응 동작 범위를 결정하는 적어도 하나의 매개 변수를 나타내는 수단; 및
상기 적어도 하나의 매개 변수에 기초하여 상기 데이터 전송량을 상기 단말기에 의한 수신 레이트에 적응시키기 위한 메커니즘으로서, 상기 단말기가 상기 적응에 기초하여 패킷 전송 지연 편차를 조정하도록 하기 위한 메커니즘을 포함한다.
본 발명에 의하면, 상기 적응 메커니즘은 상기 데이터 전송량을 적응시키기 위한 적어도 하나의 코드를 지닌 소프트웨어 프로그램을 포함한다.
본 발명에 의하면, 상기 소프트웨어 프로그램은 상기 전송 레이트 또는 상기 샘플링 레이트 또는 양자를 조정하기 위한 코드를 포함한다.
본 발명은 도 1 내지 도 3과 함께 취해지는 설명을 읽을 때 명백해질 것이다.
도 1은 샘플링 곡선 및 전송 곡선과 관련하여 매개 변수들을 정의하는 도면이다.
도 2는 핸드오버 및 어떤 편이 매개 변수들에 대한 수신기 버퍼 레벨에 대한 핸드오버의 영향을 도시한 도면이다.
도 3은 본 발명에 따라, 레이트 적응 방법을 수행할 수 있는 클라이언트 장치와 서버 장치를 지닌 멀티미디어 스트리밍 시스템을 도시한 블록도이다.
서버가 송신한 어떤 패킷에 대해 최소 및 최대 편이가 허용되는 것이 무엇인지를 설명하기 위하여, 본 발명은 레이터 적응 모델을 사용하여 "편이(shift)"를 다음과 같이 정의한다.
A. 협동 레이트 적응 모델
실시간 전송 프로토콜(RTP: Real-time Transport Protocol) 패킷에서의 미디어의 샘플링 시간(즉 타임스탬프)과 상기 패킷의 전송 시간(즉 상기 패킷이 서버에 의해 송신된 시간) 간의 시간 차(
Figure 112005059822544-PCT00002
)는 "편이(shift)"로서 정의된다. 상기 샘플링(S) 및 전송(T) 곡선들을 참조하면,
Figure 112005059822544-PCT00003
의 편이는
Figure 112005059822544-PCT00004
로 표현될 수 있다.
상기 편이는 상기 패킷 샘플링 시간이 상기 패킷 전송 시간보다 나중인 경우 포지티브 값이다. 상기 편이는 상기 패킷 샘플링 시간이 상기 패킷 전송 시간보다 앞선 경우 네거티브 값이다.
상기 "편이"의 정의가 설정됨으로써, 상기 최소 및 최대 편이 매개 변수들은 다음과 같이 정의된다.
B. 서버 레이트 적응 동작 범위 매개 변수들
상기 레이트 적응 동작 범위 매개 변수들은 다음과 같이 정의된다.
1) 최소 편이 - 이 매개 변수는 송신기가 사용할 수 있는 최소 편이를 정의한다. 그것은 전송 시간 t에서 송신될 수 있는 가장 오래된 허용가능한 샘플링 시간을 정의한다. 이 매개 변수가
Figure 112005059822544-PCT00005
인 경우, 송신기는 샘플링 시간이
Figure 112005059822544-PCT00006
보다 앞서지 않은 패킷을 시간 t에서 송신하고 있어야 한다.
상기 패킷들이 그들의 샘플링 시간과 비교하여 얼마나 늦게 송신될 수 있는지에 대한 상기 최대 한계를 가지고, 실시간 재생이 수신기에서 유지될 수 있다. 상기 수신기는 재생 지연을 회피하기 위하여(아무런 수신기 버퍼 언더플로우가 없도록) 그것이 패킷들을 대기하는 것을 허용해야 하는 최대량의 시간을 추정할 수 있다.
초기 수신기 버퍼링 지연(즉 프리-롤(pre-roll))은 최소 편이를 허용하도록 정해져야 하고 부가적으로 패킷 전송 지연 편차를 보상하도록 정해져야 한다. 예를 들어, 상기 최소 편이가 -2000ms라고 가정하자. 이것은 상기 송신기가 패킷을 송신하는 경우, 상기 패킷 샘플링 시간이 그것의 전송 시간에 비해 최대 2초 앞설 수 있지만, 더 이상은 앞서지 않는다는 것을 의미한다. 수신기 버퍼 언더플로우를 회피하기 위하여, 상기 수신기는 상기 최대 예상 패킷 전송 지연 플러스 2초동안 초기에 버퍼링할 것이다. 상기 (네거티브) 값이 작을수록, 상기 수신기에서 초기 버퍼링에 대한 요구가 더 높아진다.
상기 수신기가 클록 드리프트(상기 송신기에서 유지되는 상기 샘플링 곡선으 로부터 상기 수신기 플레이아웃 곡선의 편이)를 탐지하는 경우, 상기 최소 편이 매개 변수는 상기 서버가 상기 패킷 전송 시간을 지닌 플레이아웃 곡선을 따를 것을 강요하도록 변경될 수 있다. 예를 들어, 상기 수신기가 더 빠른 경우, 상기 수신기는 데이터가 샘플링되는 것보다 더 빠른 레이트로 데이터를 재생할 것이다. 이것은 궁극적으로 버퍼 언더플로우를 초래할 것이다. 상기 송신기에게 그것의 최소 편이를 증가시키도록 요구함으로써, 상기 언더플로우는 회피될 수 있다.
상기 수신기가 상기 송신기보다 느린 경우, 상기 최소 편이는 감소되어야 한다. 상기 수신기가 상기 송신기보다 빠른 경우, 상기 최소 편이는 증가되어야 한다.
상기 최소 편이의 초기 값은 전형적으로 네거티브일 것이지만, 상기 수신기는 또한 포지티브가 되도록 그것을 변경할 수 있다. 예를 들어, 더 빠른 수신기의 경우(즉 더 빠른 플레이아웃 클록의 경우) 상기 최소 편이는 증가하기 때문에, 그것은 결국 포지티브가 될 수 있다. 예를 들어, 초기 값이 -2초인 경우, 상기 송신기는 나중에 상기 편이가 -1.9초, 그다음 -1.7초 등이 되도록 요구할 수 있다.
2) 타깃 편이-이 매개 변수는 클라이언트가 상기 송신기가 달성해주기를 원하는 편이를 정의한다. 이 매개 변수가
Figure 112005059822544-PCT00007
인 경우, 상기 송신기는 샘플링 시간이
Figure 112005059822544-PCT00008
인 패킷을 시간 t에서 송신하고 있어야 한다.
상기 타깃 편이는 상기에 정의된 최소 편이보다 항상 커야 한다. 정의에 의해, 상기 송신기가 상기 타깃 편이에 따라 패킷을 송신하는 경우, 그것은 또한 명 백하게 상기 최소 편이를 준수한다.
상기 타깃 편이는 실시간 데드라인(즉 최소 편이)을 여전히 충족하는 동안 (예를 들어 핸드오버동안) 상기 전송 레이트가 갑자기 감소되어야 하는 경우 상기 샘플링 레이트를 감소시킬 필요를 감소시키도록 한다. 즉, 상기 타깃 편이는 상기 전송 레이트가 충분히 양호한 경우, 엄격히 실시간을 충족시킬 필요가 있는 것보다 더 일찍 상기 송신기가 패킷들을 송신하게 한다.
상기 두번째 매개 변수의 사용을 더 잘 설명하기 위하여, 상기 송신기가 상기 최소 편이에 근접하게 동작한다고 가정하자. 이제 상기 전송 레이트가 상당히 감소된다고 가정하자(이것은 예를 들어 원래의 스트림에 대해 이용가능한 비트레이트를 감소시킬 핸드오버 또는 RTP 재전송 때문일 수 있다). 상기 최소 편이(그리고 실시간)를 보장하기 위하여, 상기 송신기는 또한 그것의 샘플링 레이트를 급격히 감소시켜야 할 것이다. 이것은 상기 송신기가 예를 들어 상기 샘플링 레이트의 감소를 달성하기 위하여 프레임들을 스킵하도록 강요될 수 있기 때문에 품질의 감소를 야기할 것이다.
상기 서버가 상기 타깃 편이에 근접하게 동작하는 경우, 상기 전송 레이트가 감소될 때 상기 샘플링 레이트의 감소는 전송 레이트의 감소만큼 급격할 필요가 없다. 상기 샘플링 레이트를 저하시키지 않고 상기 전송 레이트를 저하시키는 상기 송신기는 상기 타깃 편이 미만으로 실제 편이를 감소시킬 것이지만, 상기 최소 편이는 전송 레이트의 관찰된 감소에서와 같이 극적으로 상기 샘플링 레이트를 감소시킬 필요없이 여전히 유지될 수 있다.
그것의 편이를 감소시키도록 강요된 후에, 상기 서버는 상기 전송 레이트가 다시 증가하는 경우 그것의 타깃 편이를 재형성해야 한다. 상기 수신기에 의해 시그널링된 상기 타깃 편이를 달성하기 위하여, 상기 송신기는 현재의 전송 레이트 제약에 따라 전송 레이트 증가 및 샘플링 레이트 감소(또는 전송 레이트 감소 및 샘플링 레이트 증가)의 조합을 사용할 수 있다.
이와 같이 정의된 타깃 편이를 가지는 것은 과격한 전송 레이트 감소를 처리하는 경우 상기 수신기가 상기 서버에게 우선 상기 편이를 감소시키고 다시 증가시키도록 "명령"할 필요가 없게 한다. 상기 송신기는 스스로 상기 수신기에 의해 이전에 시그널링된 상기 타깃 편이로부터 상기 편이를 감소시키도록 결정하지만, 다시 상기 편이를 상기 타깃 편이쪽으로 증가시킨다.
이러한 이유로 인하여, 이 방식은 혁신적인 것으로 불리울 수 있다. 아무런 (편이) 시그널링도 상기 전송 레이트가 감소될 때에 발생할 필요가 없다.
3) 송신-선행 바이트들의 최대 수 - 이 매개 변수는 시간 t에서 송신된 바이트들의 수와 샘플링 시간 t까지 샘플링된 바이트들의 수 간의 최대 차(즉 상기 전송 곡선과 상기 샘플링 곡선 간의 차: T(t)-S(t))를 정의한다. 이 매개 변수는 포지티브 편이의 결과로서 수신된 상기 패킷들을 유지하도록 상기 수신기에서 필요한 버퍼 크기를 제한하고 상기 버퍼 크기동안 상기 수신기는 그들의 플레이아웃 시간을 대기해야 한다. 이 매개 변수의 목표는 버퍼 오버플로우를 방지하는 것이다.
이들 매개 변수들은 전송 곡선 T(t)와 샘플링 곡선 S(t)의 예를 가지고 도 1에 도시된다.
C. 레이트 적응 동작 범위 매개 변수들에 대한 서버 준수 요건들
상기 "최소 편이" 및 상기 "송신-선행 바이트들의 최대 수" 매개 변수들은 엄격히 상기 서버에 의해 준수되어야 한다. 따라서, 상기 서버는 정상 전송 조건하에서 그것의 능력 및 이용가능한 미디어 부호화가 허용하는 만큼 상기 "타깃 편이"에 근접하게 동작하려고 할 것이다.
시간에 대한 가능한 미디어 부호화 레이트 편차로 인하여 상기 "타깃 편이"는 모든 송신된 패킷들에 대해 상기 서버에 의해 정확하게 준수될 수 없다. 상기 "타깃 편이"로부터의 이탈은 상기 "타깃 편이"에 대한 엄격한 집착이 불필요한 품질 저하를 초래할 것이라고 상기 서버가 판단하는 전송 조건하에서 상기 서버의 재량에 따라 허용된다(하기의 사용 경우 예들을 참조하라). 그것은 또한 상기 "타깃 편이"가 얼마나 신속히 이러한 이탈 이후에 회복되는지를 나타내는 서버 결정/능력에 달려 있다.
상기 "타깃 편이" 및 "송신-선행 바이트들의 최대 수" 매개 변수들이 충돌할 때마다(즉 상기 타깃 편이를 유지하는 것이 상기 송신-선행 바이트들의 최대 수를 초과하는 것을 초래하는 경우), 후자가 우선한다.
D. 서버와 클라이언트 간에 분담된 책임의 명료화
중단없는 플레이아웃을 유지하는 비결은 수신기 버퍼 레벨의 효율적인 관리이다. 이것은 상기 클라이언트에서의 상기 플레이아웃 곡선 및 수신 곡선 양자에 대해 최소한의 암시적이거나 추정된 제어를 가짐으로써 달성될 수 있다. 정의에 의해 상기 클라이언트는 복호화/플레이아웃 타임라인을 알고 있고 제어한다. 상기 송 신기에 의해 소개될 편이의 제어를 가능하게 함으로써, 상기 클라이언트에게는 상기 수신기 곡선 및 상기 샘플링 곡선에 대한 수신기 곡선의 관계의 적어도 추정된 제어가 제공되어, 상기 수신기 버퍼 레벨의 제어가 제공된다.
따라서, 상기 클라이언트는 그것의 절대 버퍼링 한계를 고려하는 편이 매개 변수들을 선택하고 요구한다. 이러한 협력적인 레이트 적응 모델에서, 상기 수신기는 단지 상기 편이 매개 변수들을 요구하고 상기 요구에 응답하는 경우 그것의 부호화 레이트 및/또는 전송 레이트를 적응시키는 방법은 상기 송신기에 달려 있다. 상기 전송 곡선 또는 상기 샘플링 곡선 또는 이들의 조합이 적응될 수 있다.
하지만, 샘플링 레이트 제어(즉 전송을 위한 비트스트림의 선택)는 다음과 같은 이유 때문에 서버 제어하에 있게 된다:
- 각 비트스트림의 정확한 특성들, 예를 들어, 스위칭 위치들, 프레임들의 우선 순위, 미래의 프레임 크기들에 대해 알고 있는 것은 단지 서버이다.
- 상기 네트워크 비트 레이트와 일치하는 비트스트림 레이트가 존재하지 않을 수 있어서, 상기 서버는 상기 비트스트림을 상기 네트워크 비트 레이트에 맞추기 위하여 어떤 "트릭"(예를 들어, 세선화(thinning), 스위칭 업-앤-다운)을 수행할 수 있다.
전송 레이트 제어(즉 전송할 레이트)는 또한 다음과 같은 이유로 인하여 서버 제어하에 있게 된다:
- 일반적인 경우 진행중인 데이터의 양을 측정할 수 있는 것은 단지 서버이다.
상기 샘플링 레이트 제어가 한정된 융통성을 가지는 경우 상기 전송 레이트를 상기 샘플링 레이트에 결부시킬 필요가 있을 수 있다.
상기 송신기는 상기 적응을 수행하려고 하는 경우 다음 사항에 의해 제한된다:
- 상기 전송 곡선의 변경: 상기 전송 곡선은 상기 수신 곡선에 의해 제약되므로 상기 송신기는 전송 레이트를 증가시킬 수 없다. 송신기가 송신기의 전체 이용가능한 대역폭을 이전에 사용하지 않은 경우에만 송신기는 전송 레이트를 증가시킬 수 있다. 예를 들어, 서버는 그것의 허용가능한 전송 레이트를 계산하기 위하여 전송 제어 프로토콜 친화적 레이트 제어(TFRC: Transmission Control Protocol Friendly Rate Control) 메커니즘을 사용하고 있을 수 있고(또는 수신기 시그널링을 통해 명백한 대역폭 정보를 수신하고 있을 수 있고) 그것의 레이트를 상기 레이트 TFRC(또는 실제 시그널링된 대역폭)를 넘어 증가시키지 않을 것이다.
- 상기 샘플링 곡선의 변경: 상기 송신기의 레이트 적응 능력에 의존한다. 예를 들어 상기 송신기가 비트스트림 스위칭을 구현하는 경우 그리고 상기 송신기가 그것의 최저(또는 최고) 비트스트림에서 전송하고 있는 경우, 상기 송신기는 상기 샘플링 레이트를 더 감소(또는 감소)시킬 수 없을 것이다.
E. 사용 경우들
본 발명에 의하면, 상기 서버 레이트 적응 동작 범위의 매개 변수들은 핸드오버, 재전송 및 클록 드리프트와 같은 경우에 언더 플로우, 오버플로우 및 품질 저하의 발생을 최소화하기 위하여 상기 서버와 상기 수신기 간에 협상된다.
RTP 패킷 전송의 경우, 상기 수신기는 상기 수신기가 수행하기를 원하는 패킷 재전송의 수 및 상기 수신기가 재전송을 위해 감내할 지연을 선택할 수 있다.
핸드오버의 경우, 상기 수신기는 상기 무선 네트워크 유형으로부터, 예를 들어 그것이 예상하는 핸드오버 길이 및 요구되는 타깃 편이를 획득할 수 있다. 상기 수신기는 무선 링크에 대해 더 잘 알고 있고 또한 시스템간 핸드오버를 탐지할 수 있어서 이에 따라 상기 클록 편이 매개 변수들을 적응시킬 필요를 탐지한다.
상기 수신기는 상기 클록 편이 매개 변수들을 갱신함으로써, 상기 송신기와 함께 상기 클록 편이를 보상할 수 있다.
RTP 재전송
재전송 요구를 하기 전에, 상기 수신기는 재전송된 패킷이 그것의 플레이아웃 시간 이전에 제시간에 도착하는지를 보통 추정할 필요가 있다. 상기 패킷이 제시간에 도착하지 않는 경우, 상기 재전송은 이용가능한 대역폭을 낭비한다.
상기 송신기는 상기 수신기에서 상기 실시간 제약을 충족시키기 위하여 적어도 상기 편이
Figure 112005059822544-PCT00009
을 가지고 스케줄링되어야 하는 패킷들의 샘플링 시간을 알고 있다.
재전송 패킷은 이와 관련하여 처음으로 송신된 패킷과 상이하지 않다. 상기 최소 편이는 상기 수신기에서의 언더플로우 임계값을 나타내기 때문에, 상기 송신기는 t가 현재 시간인 경우 패킷의 타임스탬프가
Figure 112005059822544-PCT00010
미만이라면 패킷을 재전송하지 않아야 한다.
따라서 상기 편이 매개 변수 시그널링은 패킷들의 복호화 시간 이전에 상기 수신기에서 제시간에 도착하지 않을 패킷들 그리고 재전송이 이용가능한 대역폭을 낭비할 패킷들을 상기 송신기가 재전송하지 않도록 함으로써 패킷 재전송을 더 효율적이 되도록 한다. 상기 수신기는 빠진 패킷이 그것의 플레이아웃 이전에 수신될 수 있는지에 대한 그것의 추정에 있어서 지나치게 보수적일 필요는 없다. 잘못된 추정은 상기 서버가 상기 패킷을 재전송하지 않을 것처럼 (쓸모없는 요구외에) 아무런 영향도 미치지 않을 것이다.
상기 수신기는 또한 그것이 상기 타깃 편이를 통해 수행하고 싶은 재전송들의 수를 흥정할 것이다. 상기 타깃 편이의 값이 높을 수록, 상기 네트워크 상태가 상태가 좋은 동안 더 많은 패킷들이 선행하여 송신될 것이다(그리고 상기 수신기 버퍼 레벨은 더 높아질 것이다). 차례로 이것은 상기 네트워크 상태가 악화되는 경우 재전송들을 위해 더 많은 시간을 제공할 것이다.
여기에서 다시 상기 클록 편이는 혁신적이다. 상기 수신기는 상기 편이 요구를 상기 RTCP 요구와 동기시킬 필요가 없다.
핸드오버
상기 클록 편이 시그널링은 핸드오버 때문에 상기 수신기에서 플레이아웃 중단을 방지하는 도구로 사용될 수 있다.
상기 수신기가 네트워크에 접속되고 상기 네트워크에 대한 예상되는 핸드오버 길이가 TH라는 것을 상기 수신기가 알고 있다고 가정하자. 상기 수신기가 그것의 타깃 편이를 상기 최소 편이보다 적어도 TH 만큼 크도록, 즉
Figure 112005059822544-PCT00011
이 되도록 설정한다고 가정하자.
핸드오버 이전에, 상기 송신기는 상기 패킷들을 초기에 송신함으로써 상기 타깃 편이를 충족시킨다. 상기 송신기가 핸드오버를 탐지하는 경우, 상기 송신기는 전송을 중단해야 한다(그리고 네트워크 버퍼 오버플로우 때문에 패킷 손실을 회피해야 한다). 상기 핸드오버 동안, 아무런 새로운 데이터도 송신되고 있지 않을지라도 상기 클록은 진행된다. 그 결과, (상기 핸드오버가 정확히 TH동안 지속된다고 가정하면) 상기 핸드오버는 상기 편이를 시간 TH의 양만큼 감소시킨다. 상기 송신기는 상기 핸드오버 이전에 상기 타깃 편이에서 동작하고 있었기 때문에, 상기 핸드오버 이후의 편이는
Figure 112005059822544-PCT00012
가 될 것이다.
이 값은 여전히 상기 최소 편이
Figure 112005059822544-PCT00013
보다 더 크다. 이것은 실시간이 여전히 충족되고 있고 상기 수신기에서 아무런 언더플로우도 존재하지 않았다는 것을 의미한다. 상기 핸드오버 동안, 상기 수신기는 중대한 품질 저하없이 상기 타깃 편이에 따라 상기 송신기에 의해 송신된 패킷들을 플레이아웃할 수 있다.
상기 핸드오버 이후에, 상기 송신기는 그것의 전송 레이트가 다시 증가하므로 상기 타깃 편이를 재형성할 것이다. 아무런 새로운 시그널링도 필요하지 않다.
상기 수신기는 상기 수신기가 감내할 수 있는 핸드오버 길이를 더 증가시키 기 위하여 그것의 타깃 편이를 증가시키고 싶은 경우에만 새로운 편이 매개 변수를 시그널링할 것이다. 이것은 특히 상이한 예상된 핸드오버 길이를 지닌 다른 유형의 네트워크로의 핸드오버가 존재하는 경우일 수 있다.
물론 상기 송신기는 상기 핸드오버를 탐지할 수 있을 필요가 있다. 상기 송신기는 몇몇 RTCP 간격들동안 RTCP 패킷을 수신하지 않음으로써 상기 핸드오버를 보통 탐지할 것이다. 상기 송신기가 가능한 한 빨리 상기 핸드오버를 탐지할 수 있기 위하여, 상기 수신기는 AVPF가 이용가능한 경우 초기 피드백 패킷을 송신해야 한다. AVPF는 RTCP 기반 피드백에 대한 확장된 프로파일이다.
상기 수신기가 RTSP를 통해 상기 매개 변수들을 송신하는 경우, 상기 수신기는 (동일한 매개 변수들 또는 갱신된 값을 가지고) 상기 핸드오버 이후에 새로운 요구를 송신할 수 있다. 이것은 빠른 RTCP 피드백이 이용가능하지 않은 경우 상기 핸드오버가 더 신속하게 끝난다는 것을 상기 송신기가 탐지하도록 도와줄 것이다.
상기 핸드오버 및 상기 버퍼 레벨에 대한 그것의 영향이 도 2에 도시된다. 이 예에서, 상기 핸드오버 동안, 상기 버퍼 레벨은 감소되지만 언더플로우되지 않았다. 상기 핸드오버 이후에, 상기 송신기는 스스로 상기 초기 타깃
Figure 112005059822544-PCT00014
을 재형성할 것이다. 하지만, 상기 버퍼는 상기 핸드오버동안 거의 비어있었기 때문에, 일단 상기 핸드오버가 끝나는 경우 상기 수신기는 상기 타깃의 더 큰 값을 시그널링하도록 선택할 수 있다. 이것은 상기 첫번째 핸드오버가 상기 수신기가 초기에 예상했던 것 그리고 미래에 상기 수신기가 더 큰 핸드오버들을 지원할 수 있 다고 확신하기를 원하는 것보다 더 크기 때문일 수 있다. 상기 새로운 타깃의 시그널링 및 상기 곡선들에 대한 그것의 영향이 도면에 도시되어 있다.
클록 드리프트(clock drift)
상기 송신기와 상기 수신기 간의 클록 드리프트 때문에 또는 (느린 클라이언트 플랫폼 운영 체제와 같은) 어떤 다른 이유로 인하여, 상기 송신기는 상기 수신기에게 너무 느리거나 너무 빠르게 보일 수 있다. 상기 드리프트는 새로운 편이 매개 변수들을 송신함으로써 보정될 수 있다.
예를 들어, 느린 수신기의 경우, 상기 수신기는 주기적으로 상기 최소 편이 값의 감소를 요구할 수 있다.
F. 메시지 포맷 및 전송
새로운 RTSP 헤더가 "3GPP-편이-매개 변수들(3GPP-Shift-Parameters)"로서 정의될 수 있다. 상기 헤더는 상기 클라이언트에 의해 요구된 상기 편이 매개 변수들을 시그널링하기 위하여 클라이언트 요구들에서 사용될 수 있다.
상기 요구가 세션 레벨 RTSP URL(균일 자원 위치기)에 적용되는 경우, 상기 편이는 상기 세션에서 모든 미디어에 적용되어야 한다. 상기 요구가 미디어 레벨 RTSP URL에 적용되는 경우, 상기 편이는 상기 미디어에만 적용되어야 한다. 상기 송신기는 또한 그것의 응답에서 상기 "3GPP-편이-매개 변수들"을 사용한다. 상기 매개 변수들은 상기 클라이언트에 의해 요구된 매개 변수들일 수 있다. 하지만, 상기 송신기는 (한정된 송신기 능력 때문에) 단지 상기 요구된 매개 변수들에 가능한 한 근접한 매개 변수들을 반환할 수 있다.
상기 새로운 헤더는 어떤 RTSP 방법을 사용하여 송신될 수 있다.
상기 RTP 헤더에 대한 ABNF가 하기에 표시된다:
Figure 112005059822544-PCT00015
처음에 상기 클라이언트는 모든 매개 변수들을 송신한다. 후속 요구시, 상기 클라이언트는 그것이 변경을 요구한 매개 변수(들)만을 송신할 수 있다.
상기 변경이 허용되는 경우, 상기 모든 매개 변수들이 상기 수신기에 의해 요구되는 바와 같이 설정되었다면 상기 서버는 상기 헤더를 송신할 필요가 없다.
이전의 요구가 완료되기 전에 새로운 요구가 상기 서버에 의해 수신되는 경우, 상기 서버는 마지막 요구를 준수해야 한다.
상기 송신기는 또한 상기 송신기가 사용하고 싶은 매개 변수들을 세션의 시작시 상기 수신기에 시그널링할 수 있다. 상기 수신기는 요구하기 위하여 상기 매개 변수들 중 어떤 값들을 선택하는 경우 상기 매개 변수들을 고려한다.
상기 매개 변수들을 시그널링하는 바람직한 방법이 RTSP를 사용하는 것일지라도, RTCP와 같은 신뢰성없는 전송 프로토콜이 사용될 수 있다.
도 3은 본 발명에 의한 스트리밍 네트워크에서의 멀티미디어 스트리밍 시스템(1)을 도시한 블록도로서, 단말기 또는 스트리밍 클라이언트(60)와 상기 스트리밍 서버(10) 간에 협상되는 바와 같이, 네트워크 요소 또는 스트리밍 서버(10)에 대한 레이트 적응 동작 범위를 결정하는 매개 변수들을 시그널링하기 위한 수단이 제공된다.
상기 스트리밍 서버(10)는 애플리케이션 레벨 시그널링 엔진(20), 레이트 제어기(30) 및 서버 버퍼(40)를 포함한다. 상기 스트리밍 클라이언트(60)는 상기 스트리밍 서버(10)내의 상기 애플리케이션 레벨 시그널링 엔진(20)에 대응하고, 상기 애플리케이션 레벨 시그널링 엔진(20)과 통신하기에 적합한 애플리케이션 레벨 시그널링 엔진(70)을 포함한다. 상기 스트리밍 클라이언트는 도 3에 도시된 본 발명의 실시예에서, 단일 유닛으로서 통합된, 지터 버퍼(82) 및 전치-복호화 버퍼(84)를 포함하는, 클라이언트 버퍼(80)를 더 포함한다. 본 발명의 다른 실시예들에서, 스트리밍 클라이언트(60)는 개별적으로 구현되는 지터 버퍼 및 전치-복호화 버퍼를 포함할 수 있다. 상기 스트리밍 클라이언트는 미디어 복호기(90), 후치-복호기 버퍼(100), 버퍼 제어기(110) 및 디스플레이/플레이아웃 장치(120)를 더 포함한다.
도 3에 도시된 시스템은 스트리밍 서버(10)와 스트리밍 클라이언트(60) 사이에 위치한 "채널 버퍼"(50)를 포함하는 것으로 더 도시되는데, 이것은 상기 스트리밍 서버로부터 상기 클라이언트로의 데이터 패킷들의 전송 중 발생하는 변하는 전송 지연을 나타낸다.
상기 스트리밍 서버(60)에서, 미디어 데이터는 상기 전송 채널로부터 수신되 고 클라이언트 버퍼(80)에서 버퍼링된다. 전치-복호기 버퍼(84) 및 지터 버퍼(82)의 매개 변수들은 상기 버퍼 제어기(110)에 의해 설정된다. 상기 매개 변수들은 상기 서버 권고 전치-복호기 버퍼링 매개 변수들 및 상기 클라이언트에 의해 추정된 바와 같이 요구되는 부가적인 버퍼링의 집합체로서 선택된다. 상기 클라이언트는 상기 이용가능한 전송 채널을 통해 예상되는 패킷 전송 지연 편차(즉 지터)를 감내하는데 무엇이 필요한지를 추정한다. 이러한 집합체는 상기 클라이언트의 최대 버퍼링 능력에 의해 제약된다. 미디어 복호기(90)는 상기 클라이언트 버퍼로부터 미디어 데이터를 추출하고 당해 미디어 유형에 적합한 방식으로 상기 미디어 데이터를 복호화한다. 상기 미디어 데이터가 일반적으로 다수의 상이한 미디어 유형들을 포함할 것이라는 것은 이해되어야 한다. 예를 들어, 상기 서버로부터 전송된 상기 미디어 데이터가 비디오 시퀀스를 나타내는 경우, 그것은 비디오 데이터에 부가하여 적어도 하나의 오디오 요소를 포함할 것 같다. 그러므로 도 3에 도시된 바와 같이 미디어 복호기(90)가 실제로 하나보다 많은 복호기, 예를 들어 특정 비디오 부호화 표준에 따라 구현된 비디오 복호기 및 관련된 오디오 복호기를 포함할 수 있다는 것은 이해되어야 한다. 상기 미디어 데이터는 상기 미디어 복호기(90)에서 복호화되기 때문에, 그것은 그것의 예정된 플레이아웃 시간까지 임시로 저장되는 후치-복호기 버퍼(100)로 출력되는데, 이 시점에 그것은 버퍼 제어기(110)의 제어하에서 상기 후치-복호기 버퍼로부터 디스플레이/플레이아웃 장치(120)로 전달된다.
본 발명에 의하면, 버퍼 제어기(110)는 상기 최소 편이, 상기 타깃 편이 및 송신-선행 바이트들의 최대 수의 표시를 상기 애플리케이션 레벨 시그널링 엔진 (70)에 제공하기에 적합하다. 상기 매개 변수들은 예를 들어 상기 클라이언트의 버퍼링 한계, 상기 복호화/플레이아웃 타임라인 등에 기반하여, 소프트웨어 프로그램(116)에 의해 결정된다. 상기 애플리케이션 레벨 시그널링 엔진은 차례로 상기 동작 범위 레이트 적응 매개 변수들을 나타내는 신호(300)를 상기 스트리밍 서버(10)로 전송하기에 적합하다. 상기 매개 변수들은 예를 들어 실시간 스트리밍 프로토콜(RTSP: Real Time Streaming Protocol)을 사용하여 클라이언트로부터 상기 서버로 전송된다. 상기 RTSP 헤더는 예를 들어 "3GPP-편이-매개 변수들"로서 정의될 수 있다.
상기 서버 사이트에서, 상기 서버의 레이트 제어기(30)는 상기 편이를 관리하고 그것을 상기 레이트 적응 범위내에 유지하면서 상기 전송 레이트를 상기 수신 레이트에 적응시키도록 동작하고, 상기 샘플링 레이트를 상기 전송 레이트에 적응시키도록 동작한다. 상기 서버는 또한 상기 클라이언트로 전송될 상기 패킷들을 타임스탬핑하기 위한 전송 클록(32)을 구비한다. 상기 서버는 소프트웨어 프로그램(36)을 사용하여, 상기 클라이언트에 의해 권고된 매개 변수들에 따라 전송된 데이터 레이트를 조정하고, 상기 전송 채널에 대한 비트레이트를 변경하며, 상기 클라이언트의 권고된 편이 매개 변수들을 고려함으로써 전치-복호기 버퍼 언더플로우로 인해 상기 클라이언트에서의 재생의 중단을 회피하려고 시도하고 버퍼 오버플로우로 인해 상기 클라이언트에서 패킷들을 버리도록 동작한다.
서버 버퍼(40)는 데이터 패킷들이 상기 전송 채널을 통해 상기 스트리밍 서버로부터 스트리밍 클라이언트(60)로 전송되기 전에 임시로 상기 데이터 패킷들을 저장한다. 데이터 패킷들이 실시간으로 샘플링되는 "라이브" 스트리밍 시나리오에서, 상기 서버 버퍼는 데이터 패킷들이 샘플링 시간에 배치되고 전송 시간에 추출되는 진정한 물리적인 버퍼이다. 데이터 패킷들이 실시간으로 샘플링되지 않지만 사전 부호화된 파일에 저장되고 전송 시간에 상기 파일로부터 읽혀지는 "사전-부호화된" 스트리밍 시나리오에서, 상기 서버 버퍼는 데이터 패킷들의 (상기 사전-부호화된 파일의 첫번째 데이터 패킷이 전송되는 경우 상기 스트리밍 서버에서 시작된 샘플링 클록을 참조하여) 샘플링 시간과 전송 시간 간의 차를 나타내는 가상 버퍼이다.
상기 서버는 또한 상기 애플리케이션 레벨 시그널링 엔진(20)을 사용하여 상기 서버가 사용하기를 원하는 매개 변수들을 나타내는 신호(300)를 상기 세션의 시작시 상기 수신기로 송신할 수 있다. 상기 신호(300)로 표시된 매개 변수들을 고려함으로써, 상기 수신기는 상기 서버 레이트 적응 동작 범위의 매개 변수들을 선택한다. 상기 서버 능력에 기반하여, 상기 서버는 상기 신호(300)를 사용하여 상기 서버가 레이트 적응을 위해 사용할 수 있는 매개 변수들을 반환함으로써 상기 클라이언트의 요구에 응답할 수 있다.
본 발명의 이점들
종래 기술의 방법들(RTSP 헤더들 및 비트레이트 스위칭)은 많은 제한들을 갖는다. 상기 제한들 중 하나의 제한은 속도(SPEED) 헤더가 RTSP 플레이(RTSP PLAY) 요구시에만 송신될 수 있다는 것이다.
- 플레이(PLAY)는 버퍼 제어를 위해 조작될 것임을 의미하지는 않고, 오히려 상기 클라이언트로부터 상기 서버로 사용자 요구들을 이동하는 것을 의미한다.
- 범위(Range) 요구를 지닌 새로운 플레이(PLAY)에 대한 응답은 상기 서버가 상기 요구를 획득하는 시간에 실제 플레이 위치와 동기되는 것이 예상될 수 없다(즉 데이터의 스킵 또는 재송신이 가능하다).
- RTSP SPEED를 통해 상기 클라이언트에 의해 요구되는 바와 같이, 상기 전송 레이트를 변경하는 것은 상기 전송 레이트가 이용가능한 비트레이트에 적응될 필요가 있기 때문에 종종 전혀 가능하지 않을 수 있다.
그것은 상기 수신기에 의해 직접 시간 도메인(즉 그것이 상기 수신기가 주어진 양의 데이터를 재생하는데 걸리는 시간의 양)으로 매핑될 수 없는 비트레이트 도메인에서 동작한다. 이것은 상기 샘플링 곡선이 보통 직선이 아니기 때문이다.
- 상기 NW 비트레이트와 일치하는 비트스트림 레이트가 존재하지 않을 수 있다.
- 상기 클라이언트는 상기 수신기 버퍼 레벨 감소/증가의 어느 정도가 주어진 비트스트림내의 상기 비트레이트의 변경에 기인하는지 또는 상기 비트스트림 평균 레이트 및 상기 전송 레이트 간의 차의 누적에 기인하는지를 알지 못한다.
- 상기 서버와 상기 클라이언트 태스크들의 분리가 존재하지 않기 때문에 샘플링 곡선 모양 형성 결정들 간의 충돌은 상기 송신기 및 상기 수신기에서 발생된다. 이것은 상기 송신기 및 수신기 책임의 명백한 분담이 존재하는, 상기 클록 편이 시그널링과 대조될 것이다. 상기 수신기는 단지 상기 곡선들에 대한 제약들을 변경하고 반면에 상기 송신기는 상기 제약들을 충족시키기 위하여 상기 곡선들의 실제 모양 형성을 행한다.
본 발명은 다음 이점들을 지닌다:
- 상기 방식은 더 혁신적인 방법으로 동작하도록 형성된다. 상기 아이디어는 상기 클라이언트가 엄격한 동작 포인트보다는 동작하는 범위를 요구하면서, 덜 제한적이고 더 융통성있는 방식으로 상기 서버가 상기 레이트 제어를 동작시키도록 하는 것이다.
- 상기 요구된 서버 레이트 적응 동작 범위는 순응하는 서버 구현을 단순화하면서, 이제 명백하게 그리고 모호하지 않게 정의된다.
- 상기 방식의 시그널링 오버헤드는 서버 시그널링에 대한 클라이언트의 (즉 RTP에 동기되는) 요구되는 주파수 및 속도를 감소시킴으로써 감소된다.
- 서버 레이트 적응 동작 범위 요구 메시지들에 대한 클라이언트의 전송 신뢰성 및 정확한 파이프라이닝은 RTSP 시그널링을 사용하여 해결될 수 있다. 이것은 시그널링의 속도 및 주파수에 대한 완화된 요건과 일치한다(즉 더 이상 모순되지 않는다).
요컨대, 본 발명은 멀티미디어 스트리밍 네트워크에서 단말기 또는 클라이언트내의 수신기 버퍼의 레벨을 적응적으로 제어하기 위한 방법 및 시스템을 제공한다. 상기 멀티미디어 스트리밍 네트워크는 스트리밍 데이터를 상기 클라이언트에 제공하기 위한 네트워크 요소 또는 서버를 구비한다. 상기 서버는 상기 전송 레이트를 수신 레이트에 적응시키는 것 또는 정체 제어를 담당하고, 상기 샘플링 레이트를 상기 전송 레이트에 적응시키는 것을 담당한다. 따라서, 상기 서버는 상기 편 이를 관리하고 그것을 상기 레이트 적응 동작 범위내에 유지시킨다. 상기 클라이언트는 또한 네트워크 지터로서 알려져 있는, 패킷 전송 지연 편차를 보상하는 것을 담당한다. 상기 클라이언트는 또한 상기 서버 레이트 적응 동작 범위의 매개 변수들을 설정하는 것을 담당한다. 상기 클라이언트는 상기 편이 매개 변수들을 선택하고 상기 편이 매개 변수들을 상기 서버로 송신하지만, 상기 매개 변수들에 응답하는 경우 그것의 부호화 레이트 또는 전송 레이트를 적응시키는 것은 상기 서버에 달려있다.
본 발명이 본 발명의 하나 이상의 실시예들에 관해 설명되었을지라도, 본 발명의 형태 및 상세에 있어서의 상기한 변경들과 다양한 다른 변경들, 생략들 및 변경들이 본 발명의 범위를 벗어나지 않고 행해질 수 있다는 것은 당업자에 의해 이해될 것이다.

Claims (36)

  1. 멀티미디어 스트리밍 네트워크에서 클라이언트내의 수신기 버퍼의 레벨을 적응적으로 제어하기 위한 방법으로, 상기 스트리밍 네트워크는 스트리밍 데이터를 상기 클라이언트에 제공하기 위한 서버를 포함하고, 상기 수신기 버퍼는 상기 클라이언트가 비-중단 방식으로 플레이아웃(play-out)할 충분한 양의 스트리밍 데이터를 가지도록 하기 위하여 상기 서버에 의한 데이터 전송량과 상기 클라이언트에 의한 데이터 사용량 간의 차를 보상하는데 사용되는 방법에 있어서,
    상기 서버와 상기 클라이언트간에 레이트 적응(rate adaptation)을 수행하기 위하여 레이트 적응 동작 범위를 결정하기 위한 적어도 하나의 매개 변수를 상기 클라이언트에서 정의하는 단계;
    상기 서버에서 상기 적어도 하나의 매개 변수에 기초하여 상기 데이터 전송량을 수신 레이트(reception rate)에 적응시키는 단계; 및
    상기 클라이언트에서 상기 적응에 기초하여 패킷 전송 지연 편차를 조정하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서, 상기 적어도 하나의 매개 변수는 상기 서버가 최소 편이량에 기초하여 상기 적응을 수행하도록 하기 위하여 상기 서버에서 패킷의 전송 시간과 샘플링 시간 간의 차를 나타내는 상기 최소 편이량을 포함하는 것을 특징으로 하는 방법.
  3. 제1항 또는 제2항에 있어서, 상기 적어도 하나의 매개 변수는 상기 서버가 타깃 편이량에 기초하여 상기 적응을 수행하도록 하기 위하여 상기 서버에서 패킷의 전송 시간과 샘플링 시간 간의 차보다 큰 편이량을 나타내는 상기 타깃 편이량을 포함하는 것을 특징으로 하는 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 적어도 하나의 매개 변수는 상기 서버가 샘플링된 바이트들의 수와 송신된 바이트들의 수 간의 최대 차를 지정하는 수에 기초하여 상기 적응을 수행하도록 하기 위하여 상기 샘플링된 바이트들의 수와 송신된 바이트들의 수 간의 최대 차를 지정하는 수를 포함하는 것을 특징으로 하는 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 적어도 하나의 매개 변수에 기초하여 상기 서버에서 샘플링 레이트(sampling rate)를 상기 전송 레이트(transmission rate)에 적응시키는 단계를 더 포함하는 것을 특징으로 하는 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 적어도 하나의 매개 변수는 상기 클라이언트에서 플레이아웃 중단을 방지하기 위한 클록 편이량을 포함하는 것을 특징으로 하는 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서, 상기 적응은 전송 레이트의 조정을 포함하는 것을 특징으로 하는 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서, 상기 적응은 샘플링 레이트의 조정을 포함하는 것을 특징으로 하는 방법.
  9. 제1항 내지 제6항 중 어느 한 항에 있어서, 상기 적응은 전송 레이트 및 샘플링 레이트 양자의 조정을 포함하는 것을 특징으로 하는 방법.
  10. 제1항에 있어서, 상기 적어도 하나의 매개 변수는,
    상기 서버에서 패킷의 전송 시간 및 샘플링 시간 간의 차를 나타내는 최소 편이량;
    상기 서버에서 패킷의 전송 시간 및 샘플링 시간 간의 차보다 큰 편이량을 나타내는 타깃 편이량;
    송신된 바이트들의 수와 샘플링된 바이트들의 수 간의 최대 차를 지정하는 수; 및
    클록 편이량을 포함하고, 상기 최소 편이량, 상기 타깃 편이량, 상기 지정된 수 및 상기 클록 중 두개 이상이 상기 서버로 함께 송신되는 것을 특징으로 하는 방법.
  11. 적어도 하나의 클라이언트; 및
    상기 클라이언트에 스트리밍 데이터를 제공하기 위한 서버를 포함하며,
    상기 클라이언트가 비-중단 방식으로 플레이아웃할 충분한 양의 스트리밍 데이터를 가지도록 하기 위하여 상기 클라이언트는 상기 서버에 의한 데이터 전송량 과 상기 클라이언트에 의한 데이터 사용량 간의 차를 보상하기 위한 수신기 버퍼를 포함하고, 상기 클라이언트는,
    상기 서버가 적어도 하나의 매개 변수에 기초하여 상기 데이터 전송량을 수신 레이트에 적응시키도록 하기 위하여 레이트 적응 동작 범위를 결정하기 위한 상기 적어도 하나의 매개 변수를 정의하는 메커니즘; 및
    상기 적응에 기초하여 패킷 전송 지연 편차를 조정하는 메커니즘을 포함하는 것을 특징으로 하는 멀티미디어 스트리밍 시스템.
  12. 제11항에 있어서, 상기 적어도 하나의 매개 변수는 상기 서버가 상기 적응을 수행하도록 하기 위하여 상기 서버에서 패킷의 전송 시간과 샘플링 시간 간의 차를 나타내는 최소 편이량을 포함하는 것을 특징으로 하는 멀티미디어 스트리밍 시스템.
  13. 제11항 또는 제12항에 있어서, 상기 적어도 하나의 매개 변수는 상기 서버가 상기 적응을 수행하도록 하기 위하여 상기 서버에서 패킷의 전송 시간 및 샘플링 시간 간의 차보다 큰 편이량을 나타내는 타깃 편이량을 포함하는 것을 특징으로 하 는 멀티미디어 스트리밍 시스템.
  14. 제11항 내지 제13항 중 어느 한 항에 있어서, 상기 적어도 하나의 매개 변수는 상기 서버가 상기 적응을 수행하도록 하기 위하여 샘플링된 바이트들의 수와 송신된 바이트들의 수 간의 최대 차를 지정하는 수를 포함하는 것을 특징으로 하는 멀티미디어 스트리밍 시스템.
  15. 제11항 내지 제14항 중 어느 한 항에 있어서, 상기 서버는 상기 적어도 하나의 매개 변수에 기초하여 샘플링 레이트를 전송 레이트에 적응시키기 위한 적응 메커니즘을 포함하는 것을 특징으로 하는 멀티미디어 스트리밍 시스템.
  16. 제11항 내지 제15항 중 어느 한 항에 있어서, 상기 적어도 하나의 매개 변수는 상기 클라이언트에서 플레이아웃 중단을 방지하기 위한 클록 편이량을 포함하는 것을 특징으로 하는 멀티미디어 스트리밍 시스템.
  17. 제11항 내지 제16항 중 어느 한 항에 있어서, 상기 서버는 전송 레이트를 조정하기 위한 적응 메커니즘을 포함하는 것을 특징으로 하는 멀티미디어 스트리밍 시스템.
  18. 제11항 내지 제17항 중 어느 한 항에 있어서, 상기 서버는 샘플링 레이트를 조정하기 위한 적응 메커니즘을 포함하는 것을 특징으로 하는 멀티미디어 스트리밍 시스템.
  19. 제11항 내지 제16항 중 어느 한 항에 있어서, 상기 서버는 전송 레이트 및 샘플링 레이트 양자를 조정하기 위한 적응 메커니즘을 포함하는 것을 특징으로 하는 멀티미디어 스트리밍 시스템.
  20. 제11항 내지 제19항 중 어느 한 항에 있어서, 상기 서버는 상기 적응을 수행하기 위한 적어도 하나의 코드를 지니는 소프트웨어 프로그램을 포함하는 것을 특징으로 하는 멀티미디어 스트리밍 시스템.
  21. 클라이언트내의 수신기 버퍼의 레벨을 적응적으로 제어하기 위하여 멀티미디어 스트리밍 네트워크에서의 클라이언트에서 사용하기 위한 소프트웨어 생성물로서, 상기 멀티미디어 스트리밍 네트워크는 스트리밍 데이터를 상기 클라이언트에 제공할 수 있는 서버를 포함하고, 상기 수신기 버퍼는 상기 클라이언트가 비-중단 방식으로 플레이아웃할 충분한 양의 스트리밍 데이터를 가지도록 하기 위하여 상기 서버에 의한 데이터 전송량과 상기 클라이언트에 의한 데이터 사용량 간의 차를 보상하는데 사용되는 소프트웨어 생성물에 있어서,
    상기 서버와 상기 클라이언트 간에 레이트 적응(rate adaptation)을 수행하기 위하여 상기 서버에서 레이트 적응 동작 범위를 결정하는 적어도 하나의 매개 변수를 정의하기 위한 코드; 및
    상기 적응에 기초하여 패킷 전송 지연 편차를 조정하기 위한 코드를 포함하는 것을 특징으로 하는 소프트웨어 생성물.
  22. 제21항에 있어서, 상기 적어도 하나의 매개 변수는 상기 서버가 상기 레이트 적응을 수행하도록 하기 위하여 상기 서버에서 패킷의 전송 시간과 샘플링 시간 간의 차를 나타내는 최소 편이량을 포함하는 것을 특징으로 하는 소프트웨어 생성물.
  23. 제21항 또는 제22항에 있어서, 상기 적어도 하나의 매개 변수는 상기 서버가 상기 레이트 적응을 수행하도록 하기 위하여 상기 서버에서 패킷의 전송 시간과 샘플링 시간 간의 차보다 큰 편이량을 나타내는 타깃 편이량을 포함하는 것을 특징으로 하는 소프트웨어 생성물.
  24. 제21항 내지 제23항 중 어느 한 항에 있어서, 상기 적어도 하나의 매개 변수는 상기 서버가 상기 레이트 적응을 수행하도록 하기 위하여 샘플링된 바이트들의 수와 송신된 바이트들의 수 간의 최대 차를 지정하는 수를 포함하는 것을 특징으로 하는 소프트웨어 생성물.
  25. 제21항 내지 제24항 중 어느 한 항에 있어서, 상기 적어도 하나의 매개 변수는 상기 클라이언트에서 플레이아웃 중단을 방지하기 위한 클록 편이량을 포함하는 것을 특징으로 하는 소프트웨어 생성물.
  26. 스트리밍 데이터를 단말기에 제공하기 위한 적어도 하나의 서버를 구비하는 멀티미디어 스트리밍 네트워크에서의 단말기로서, 상기 단말기가 비-중단 방식으로 플레이아웃할 충분한 양의 스트리밍 데이터를 가지도록 하기 위하여 상기 서버에 의한 데이터 전송량 및 상기 단말기에 의한 데이터 사용량 간의 차를 보상하는 수신기 버퍼를 구비하는 단말기에 있어서,
    상기 서버가 적어도 하나의 매개 변수에 기초하여 상기 데이터 전송량을 수신 레이트에 적응시킬 수 있도록 하기 위하여 상기 서버에서 레이트 적응 동작 범위를 결정하는 상기 적어도 하나의 매개 변수를 정의하는 메커니즘; 및
    상기 적응에 기초하여 패킷 전송 지연 편차를 조정하는 메커니즘을 포함하는 것을 특징으로 하는 단말기.
  27. 제26항에 있어서, 상기 정의하는 메커니즘은 상기 적어도 하나의 매개 변수를 정의하기 위한 적어도 하나의 코드를 지닌 소프트웨어 프로그램을 포함하는 것을 특징으로 하는 단말기.
  28. 제26항 또는 제27항에 있어서, 상기 조정하는 메커니즘은 상기 패킷 전송 지연 편차를 조정하기 위한 적어도 하나의 코드를 지닌 소프트웨어 프로그램을 포함하는 것을 특징으로 하는 단말기.
  29. 제26항 내지 제28항 중 어느 한 항에 있어서, 상기 적어도 하나의 매개 변수는 상기 서버가 최소 편이량에 기초하여 상기 적응을 수행하도록 하기 위하여 상기 서버에서 패킷의 전송 시간과 샘플링 시간 간의 차를 나타내는 상기 최소 편이량을 포함하는 것을 특징으로 하는 단말기.
  30. 제26항 내지 제29항 중 어느 한 항에 있어서, 상기 적어도 하나의 매개 변수는 상기 서버가 타깃 편이량에 기초하여 상기 적응을 수행하도록 하기 위하여 상기 서버에서 패킷의 전송 시간과 샘플링 시간 간의 차보다 큰 편이량을 나타내는 상기 타깃 편이량을 포함하는 것을 특징으로 하는 단말기.
  31. 제26항 내지 제30항 중 어느 한 항에 있어서, 상기 적어도 하나의 매개 변수는 상기 서버가 샘플링된 바이트들의 수와 송신된 바이트들의 수 간의 최대 차를 지정하는 수에 기초하여 상기 적응을 수행하도록 하기 위하여 상기 샘플링된 바이트들의 수와 송신된 바이트들의 수 간의 최대 차를 지정하는 수를 포함하는 것을 특징으로 하는 단말기.
  32. 네트워크 요소로부터 스트리밍 데이터를 수신하는 적어도 하나의 단말기를 구비하는 멀티미디어 스트리밍 네트워크에서의 네트워크 요소로서, 상기 단말기는 상기 단말기가 비-중단 방식으로 플레이아웃할 충분한 양의 스트리밍 데이터를 가 지도록 하기 위하여 상기 네트워크 요소에 의한 데이터 전송량과 상기 단말기에 의한 데이터 사용량 간의 차를 보상하는 수신기 버퍼를 구비하는 네트워크 요소에 있어서,
    상기 단말기로부터 요구를 수신하기 위한 수단으로서, 상기 요구는 상기 네트워크 요소에서 레이트 적응 동작 범위를 결정하는 적어도 하나의 매개 변수를 나타내는 수단; 및
    상기 적어도 하나의 매개 변수에 기초하여 상기 데이터 전송량을 상기 단말기에 의한 수신 레이트에 적응시키기 위한 메커니즘으로서, 상기 단말기가 상기 적응에 기초하여 패킷 전송 지연 편차를 조정하도록 하기 위한 메커니즘을 포함하는 것을 특징으로 하는 네트워크 요소.
  33. 제32항에 있어서, 상기 적응 메커니즘은 상기 데이터 전송량을 적응시키기 위한 적어도 하나의 코드를 지닌 소프트웨어 프로그램을 포함하는 것을 특징으로 하는 네트워크 요소.
  34. 제33항에 있어서, 상기 소프트웨어 프로그램은 상기 전송 레이트를 조정하기 위한 코드를 포함하는 것을 특징으로 하는 네트워크 요소.
  35. 제33항 또는 제34항에 있어서, 상기 소프트웨어 프로그램은 샘플링 레이트를 조정하기 위한 코드를 포함하는 것을 특징으로 하는 네트워크 요소.
  36. 제33항 내지 제35항 중 어느 한 항에 있어서, 상기 소프트웨어 프로그램은 전송 레이트 및 샘플링 레이트 양자를 조정하기 위한 코드를 포함하는 것을 특징으로 하는 네트워크 요소.
KR1020057020082A 2003-04-24 2004-04-23 혁신적인 레이트 적응 시그널링을 위한 방법 및 장치 KR20060011964A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US46512003P 2003-04-24 2003-04-24
US60/465,120 2003-04-24
US10/826,687 2004-04-16
US10/826,687 US7844727B2 (en) 2003-04-24 2004-04-16 Method and device for proactive rate adaptation signaling

Publications (1)

Publication Number Publication Date
KR20060011964A true KR20060011964A (ko) 2006-02-06

Family

ID=33423544

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057020082A KR20060011964A (ko) 2003-04-24 2004-04-23 혁신적인 레이트 적응 시그널링을 위한 방법 및 장치

Country Status (13)

Country Link
US (1) US7844727B2 (ko)
EP (1) EP1616267B1 (ko)
JP (1) JP4347883B2 (ko)
KR (1) KR20060011964A (ko)
AT (1) ATE446631T1 (ko)
DE (1) DE602004023710D1 (ko)
DK (1) DK1616267T3 (ko)
ES (1) ES2332315T3 (ko)
MX (1) MXPA05011247A (ko)
MY (1) MY140711A (ko)
RU (1) RU2367011C2 (ko)
TW (1) TWI266201B (ko)
WO (1) WO2004097660A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8208475B2 (en) 2006-12-01 2012-06-26 Electronics And Telecommunications Research Institute Packet scheduler and packet scheduling method

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040196852A1 (en) * 2003-02-13 2004-10-07 Nokia Corporation Method for signaling client rate capacity in multimedia streaming
FR2857198B1 (fr) * 2003-07-03 2005-08-26 Canon Kk Optimisation de qualite de service dans la distribution de flux de donnees numeriques
JP4183586B2 (ja) * 2003-09-12 2008-11-19 三洋電機株式会社 映像表示装置
US7818444B2 (en) 2004-04-30 2010-10-19 Move Networks, Inc. Apparatus, system, and method for multi-bitrate content streaming
US8868772B2 (en) * 2004-04-30 2014-10-21 Echostar Technologies L.L.C. Apparatus, system, and method for adaptive-rate shifting of streaming content
US7571246B2 (en) * 2004-07-29 2009-08-04 Microsoft Corporation Media transrating over a bandwidth-limited network
US20060143678A1 (en) * 2004-12-10 2006-06-29 Microsoft Corporation System and process for controlling the coding bit rate of streaming media data employing a linear quadratic control technique and leaky bucket model
US7543073B2 (en) * 2004-12-10 2009-06-02 Microsoft Corporation System and process for performing an exponentially weighted moving average on streaming data to establish a moving average bit rate
US7536469B2 (en) * 2004-12-10 2009-05-19 Microsoft Corporation System and process for controlling the coding bit rate of streaming media data employing a limited number of supported coding bit rates
KR20060065482A (ko) * 2004-12-10 2006-06-14 마이크로소프트 코포레이션 스트리밍 미디어 데이터의 코딩 비트 레이트의 제어 시스템및 프로세스
TWI401918B (zh) * 2005-02-03 2013-07-11 Nokia Corp 傳送指示接收器緩衝架構之緩衝參數信號的通訊方法
US20060184697A1 (en) * 2005-02-11 2006-08-17 Microsoft Corporation Detecting clock drift in networked devices through monitoring client buffer fullness
US8683066B2 (en) 2007-08-06 2014-03-25 DISH Digital L.L.C. Apparatus, system, and method for multi-bitrate content streaming
US8370514B2 (en) 2005-04-28 2013-02-05 DISH Digital L.L.C. System and method of minimizing network bandwidth retrieved from an external network
JP4274149B2 (ja) * 2005-05-19 2009-06-03 ソニー株式会社 コンテンツ再生装置及びコンテンツ再生方法
US7743183B2 (en) 2005-05-23 2010-06-22 Microsoft Corporation Flow control for media streaming
US8214516B2 (en) * 2006-01-06 2012-07-03 Google Inc. Dynamic media serving infrastructure
US7962637B2 (en) * 2006-11-03 2011-06-14 Apple Computer, Inc. Dynamic adjustments of video streams
FR2923118B1 (fr) * 2007-10-30 2016-04-01 Canon Kk Procede, dispositif et programme d'ordinateur pour la gestion de la quantite de donnees emises par un dispositif d'emission
US8370622B1 (en) * 2007-12-31 2013-02-05 Rockstar Consortium Us Lp Method and apparatus for increasing the output of a cryptographic system
US8305899B2 (en) * 2008-05-28 2012-11-06 Microsoft Corporation Pull-based data transmission approach
US9078182B2 (en) * 2008-08-28 2015-07-07 Kyocera Corporation Radio terminal and communication terminal
CA2759880C (en) * 2009-03-23 2013-09-24 Azuki Systems, Inc. Method and system for efficient streaming video dynamic rate adaptation
KR20110065100A (ko) * 2009-12-09 2011-06-15 삼성전자주식회사 멀티미디어 스트리밍 서비스를 지원하는 방법 및 장치
CN102763396B (zh) * 2010-02-19 2016-05-25 瑞典爱立信有限公司 用于在http流传输中进行表示切换的方法和装置
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
US9131251B2 (en) * 2012-09-20 2015-09-08 Google Technology Holdings LLC Use of a receive-window size advertised by a client to a content server to change a video stream bitrate streamed by the content server
US9462021B2 (en) 2012-09-24 2016-10-04 Google Technology Holdings LLC Methods and devices for efficient adaptive bitrate streaming
US9544344B2 (en) 2012-11-20 2017-01-10 Google Technology Holdings LLC Method and apparatus for streaming media content to client devices
US9137285B2 (en) 2013-10-21 2015-09-15 Broadcom Corporation Adaptive audio video (AV) stream processing
WO2017063189A1 (en) * 2015-10-16 2017-04-20 Qualcomm Incorporated Deadline signaling for streaming of media data
KR102532645B1 (ko) * 2016-09-20 2023-05-15 삼성전자 주식회사 적응적 스트리밍 서비스에서 스트리밍 어플리케이케이션으로 데이터를 제공하는 방법 및 장치
US10741143B2 (en) * 2017-11-28 2020-08-11 Nvidia Corporation Dynamic jitter and latency-tolerant rendering
US10691082B2 (en) * 2017-12-05 2020-06-23 Cisco Technology, Inc. Dynamically adjusting sample rates based on performance of a machine-learning based model for performing a network assurance function in a network assurance system
US11350268B2 (en) * 2018-05-18 2022-05-31 Qualcomm Incorporated End-to-end rate adaptation using RAN assisted rate adaptation
CN111246284B (zh) * 2020-03-09 2021-05-25 深圳创维-Rgb电子有限公司 视频流播放方法、系统、终端及存储介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5543853A (en) 1995-01-19 1996-08-06 At&T Corp. Encoder/decoder buffer control for variable bit-rate channel
KR0176806B1 (ko) * 1995-12-29 1999-05-01 구자홍 텔레비젼의 2화면 구성장치
US6175856B1 (en) * 1996-09-30 2001-01-16 Apple Computer, Inc. Method and apparatus for dynamic selection of compression processing during teleconference call initiation
EP0847171A1 (en) 1996-11-27 1998-06-10 Sony Europa B.V. Method and device for streaming data, including provision of write addresses
US6292834B1 (en) * 1997-03-14 2001-09-18 Microsoft Corporation Dynamic bandwidth selection for efficient transmission of multimedia streams in a computer network
US5903673A (en) * 1997-03-14 1999-05-11 Microsoft Corporation Digital video signal encoder and encoding method
JP3734946B2 (ja) 1997-12-15 2006-01-11 松下電器産業株式会社 データ送出装置、データ受信装置及びデータ伝送装置
JP3589851B2 (ja) * 1998-02-20 2004-11-17 株式会社日立製作所 パケット通信システム及びパケット通信装置
US6643259B1 (en) * 1999-11-12 2003-11-04 3Com Corporation Method for optimizing data transfer in a data network
US6700893B1 (en) 1999-11-15 2004-03-02 Koninklijke Philips Electronics N.V. System and method for controlling the delay budget of a decoder buffer in a streaming data receiver
US7016970B2 (en) * 2000-07-06 2006-03-21 Matsushita Electric Industrial Co., Ltd. System for transmitting stream data from server to client based on buffer and transmission capacities and delay time of the client
CN1466640A (zh) * 2000-08-01 2004-01-07 纺织品处理方法和产品
US7346698B2 (en) 2000-12-20 2008-03-18 G. W. Hannaway & Associates Webcasting method and system for time-based synchronization of multiple, independent media streams
DE10102154C2 (de) * 2001-01-18 2003-02-13 Fraunhofer Ges Forschung Verfahren und Vorrichtung zum Erzeugen eines skalierbaren Datenstroms und Verfahren und Vorrichtung zum Decodieren eines skalierbaren Datenstroms unter Berücksichtigung einer Bitsparkassenfunktion
JP2003158543A (ja) * 2001-11-22 2003-05-30 Anritsu Corp 中継装置及び中継方法
KR100420601B1 (ko) * 2001-11-22 2004-03-02 에스케이 텔레콤주식회사 비디오 데이터 스트리밍 서비스 방법
EP1359722A1 (en) * 2002-03-27 2003-11-05 BRITISH TELECOMMUNICATIONS public limited company Data streaming system and method
US7305483B2 (en) * 2002-04-25 2007-12-04 Yahoo! Inc. Method for the real-time distribution of streaming data on a network
US7133925B2 (en) * 2002-07-15 2006-11-07 Hewlett-Packard Development Company, L.P. System, method, and format thereof for scalable encoded media delivery
MXPA05000594A (es) * 2002-07-16 2005-04-19 Nokia Corp Metodo para permitir la compensacion del retardo de transferencia del paquete en emision en continua para multimedia.
SG111978A1 (en) * 2002-11-20 2005-06-29 Victor Company Of Japan An mpeg-4 live unicast video streaming system in wireless network with end-to-end bitrate-based congestion control
US6968387B2 (en) * 2003-01-10 2005-11-22 Realnetworks, Inc. Stochastic adaptive streaming of content

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8208475B2 (en) 2006-12-01 2012-06-26 Electronics And Telecommunications Research Institute Packet scheduler and packet scheduling method

Also Published As

Publication number Publication date
MXPA05011247A (es) 2005-12-14
ES2332315T3 (es) 2010-02-02
WO2004097660A1 (en) 2004-11-11
EP1616267B1 (en) 2009-10-21
US7844727B2 (en) 2010-11-30
EP1616267A1 (en) 2006-01-18
MY140711A (en) 2010-01-15
RU2005136435A (ru) 2006-06-10
TWI266201B (en) 2006-11-11
JP2006524452A (ja) 2006-10-26
DE602004023710D1 (de) 2009-12-03
DK1616267T3 (da) 2010-01-04
EP1616267A4 (en) 2007-08-15
RU2367011C2 (ru) 2009-09-10
US20040267956A1 (en) 2004-12-30
ATE446631T1 (de) 2009-11-15
JP4347883B2 (ja) 2009-10-21
TW200508883A (en) 2005-03-01

Similar Documents

Publication Publication Date Title
US7844727B2 (en) Method and device for proactive rate adaptation signaling
US7558869B2 (en) Rate adaptation method and device in multimedia streaming
US9191664B2 (en) Adaptive bitrate management for streaming media over packet networks
JP4430660B2 (ja) マルチメディアストリーミングのための方法及び装置
EP2415234B1 (en) Adaptive bitrate management for streaming media over packet networks
US20040057446A1 (en) Method for enabling packet transfer delay compensation in multimedia streaming
EP2710778B1 (en) Method for dynamic adaptation of the reception bitrate and associated receiver
EP1623553B1 (en) Data transmission over a network having initiallly undetermined transmission capacity
ZA200508487B (en) Method and device for proactive rate adaptation signaling
KR20050019880A (ko) 멀티미디어 스트리밍에서 패킷 전달 지연 보상을 가능하게하기 위한 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20070907

Effective date: 20080618

J2X1 Appeal (before the patent court)

Free format text: APPEAL AGAINST DECISION TO DECLINE REFUSAL

J302 Written judgement (patent court)

Free format text: JUDGMENT (PATENT COURT) FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20080724

Effective date: 20090701

J2X2 Appeal (before the supreme court)

Free format text: APPEAL BEFORE THE SUPREME COURT FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL

J303 Written judgement (supreme court)

Free format text: JUDGMENT (SUPREME COURT) FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20090725

Effective date: 20091015