KR100865955B1 - 멀티미디어 스트리밍의 속도 적응을 위한 버퍼 레벨시그널링 - Google Patents

멀티미디어 스트리밍의 속도 적응을 위한 버퍼 레벨시그널링 Download PDF

Info

Publication number
KR100865955B1
KR100865955B1 KR1020067026043A KR20067026043A KR100865955B1 KR 100865955 B1 KR100865955 B1 KR 100865955B1 KR 1020067026043 A KR1020067026043 A KR 1020067026043A KR 20067026043 A KR20067026043 A KR 20067026043A KR 100865955 B1 KR100865955 B1 KR 100865955B1
Authority
KR
South Korea
Prior art keywords
decoded
subsequent
server
decoding order
packet
Prior art date
Application number
KR1020067026043A
Other languages
English (en)
Other versions
KR20070010200A (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
Priority claimed from US10/844,062 external-priority patent/US7542435B2/en
Application filed by 노키아 코포레이션 filed Critical 노키아 코포레이션
Publication of KR20070010200A publication Critical patent/KR20070010200A/ko
Application granted granted Critical
Publication of KR100865955B1 publication Critical patent/KR100865955B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • 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/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • 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/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • 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/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
    • 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/75Media network packet handling
    • H04L65/752Media network packet handling adapting media to network capabilities
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

클라이언트가 서버로부터 수신된 패킷들을 저장하고 서버에 의한 데이터 송신량 및 클라이언트에 의한 데이터 사용량 간의 차이를 보상하기 위한 수신기 버퍼를 가지는 멀티미디어 스트리밍 네트워크에서, 서버는 수신기 버퍼의 상태에 기반하여 데이터 송신률을 적응할 수 있어야 한다. 속도 적응 목적을 달성하기 위하여, 서버는 클라이언트에 의하여 제공된 정보에 기반하여 수신기 버퍼 내의 패킷들의 목록을 재구성한다. 서버로 시그널링된 정보는 디코딩될 후속 유닛 및 후속 유닛이 속하는 패킷의 시퀀스 번호, 후속 NAL 유닛의 DON 번호, 또는 디코딩될 후속 NAL 유닛을 운반하는 패킷의 시퀀스 번호, 및 후속 NAL 유닛의 디코딩 순서를 나타내는 DON을 나타낸다.

Description

멀티미디어 스트리밍의 속도 적응을 위한 버퍼 레벨 시그널링{Buffer level signaling for rate adaptation in multimedia streaming}
본 발명은 일반적으로 멀티미디어 스트리밍에 관한 것이고, 특히, 멀티미디어 스트리밍 서비스 내의 서버 및 클라이언트 간의 속도 적응에 관한 것이다.
멀티미디어 스트리밍 서비스에 관련된 참가자로는 세 가지가 있으며, 이들은 스트리밍 서버, 스트리밍 클라이언트 및 송신 채널 또는 내재하는 네트워크이다. 일반적으로, 전송률(throughput) 및 안정성 측면 모두에서 서비스의 병목 현상이 발생하는 곳은 송신 채널이지만(즉, 전송률 비트레이트가 보장될 수 없다), 전송률 제한 현상은 클라이언트 및/또는 서버에서도 발생할 수 있다.
실시간 스트리밍 시스템에서, 채널, 클라이언트 및 서버의 동적으로 변동하는 전송률 특성(throughput characteristics) 때문에, 사용자가 실시간 재생을 계속 경험하도록 하기 위하여는 스트리밍 배달 동작이 적응적(adaptive)이어야 한다. 서버는 송신 속도를 시스템의 변동하는 전송률에 적응시켜야 한다. 이와 같은 속도 적응 시스템은 Haskell 등의, 저서(미국 특허 번호 제 5,565,924호, "Encoder/decoder buffer control for Variable Channel")에 기술된다.
스트리밍 클라이언트는 수신되는 데이터를 저장하기 위한 수신기 버퍼링을 이들 데이터를 재생을 위하여 미디어 디코더로 전달하기 이전에 제공한다. 수신기 버퍼는 소스 인코딩 속도(샘플링 속도라고도 불린다) 및 송신 속도(프리-디코더 버퍼링이라고도 불린다) 간의 차이를 보상하기 위하여 이용된다. 이것은 채널 상에 나타나는 패킷 전달 지연(packet transfer delay)(지터 버퍼링)을 보상하기 위하여도 사용된다. 일반적으로, 이러한 두 개의 2 함수가 단일 수신기 버퍼 내에서 조합된다고 가정된다. 그러나, 이들은 수신기 내의 두 개의 개별 버퍼들을 이용하여 구현될 수도 있으며, 이것은 비록 이러한 구현예가 지연의 관점에서 볼 때에는 최적의 구현예가 아니지만 역시 가능하다. 수신기 버퍼링은 또한 적응 부정확성(즉, 시스템의 전송률이 서버 출력과 정확히 정합되지 않을 경우 발생하는 것)을 제거할 수도 있다.
만일 수신기 버퍼가 비어 있게 되면(즉, 버퍼 언더플로우), 이것은 디코더에 디코딩될 데이터가 없다는 것을 의미하는데, 이 경우 클라이언트는 재생을 일시 중지하고 다시 재생을 시작하기 이전에 수신되는 데이터를 재버퍼링하여야 한다. 반면에, 데이터 속도가 재생 속도보다 더 빨라지면, 수신기 버퍼 공간은 고갈될 수 있고(즉, 버퍼 오버플로우), 이러한 현상은 신규한 착신 패킷들을 위한 공간을 확보하기 위하여 버퍼로부터의 패킷들이 분실될 수 있다는 결과를 초래한다. 패킷이 분실(dropped)되면, 비디오 품질은 저하된다. 재생이 부드럽게 진행되고 문제점이 발생하지 않은 상태로 이루어지도록 보장하기 위하여, 클라이언트의 수신기 버퍼는 특정한 완전 범위(fullness range) 내에 유지되어야 한다. 수신기 버퍼가 언더플로우되지 않고 오버플로우되지도 않도록 보장하기 위하여는, 송신용 비트율 및 서 버에서의 샘플링 비트율 및 클라이언트에서의 수신 및 재생 속도가 적절하게 제어되어야만 한다.
3GPP TS 26.234에 설명된 바와 같은 3GPP 속도 적응 시그널링은 수신기부터 송신기까지 RTCP APP(Application-Defined Real Time Control Protocol) 패킷의 형태로서 전송된 궤환에 기반한다. 이러한 패킷은 수신기 버퍼에 가장 오래된 패킷의 시퀀스 번호(SN, sequence number)를 포함한다. 이러한 SN은 OBSN(oldest buffered sequence number)이라고도 불린다.
OBSN의 시그널링은 송신기로 하여금 필요한 적응 동작을 수행하도록 허용한다. 그러나, 디코딩 순서 및 디스플레이 순서가 다르다면, 송신기는 버퍼의 상태를 유도할 수 없을 수 있으며, 시그널링의 목적은 달성될 수 없을 수 있다. Release 5에서 지원되는 PSS(Packet Switched Streaming Service) 비디오 코덱에 대해서는, 이들의 패킷 송신 순서가 디코딩 순서와 동일하기 때문에 이러한 문제가 발생되지 않는다.
릴리즈 6에서, H.264(MPEG-4 AVC 라고도 불린다)가 PSS 코덱의 목록에 추가된다. H.264를 이용하면 송신 순서 및 디코딩 순서는 다를 수 있는데, 그 이유는 페이로드 레벨에서의 인터리빙된 패킷화(interleaved packetization) 때문이다(IETF H.264 RTP 페이로드 포맷 드래프트에 사양이 정해진 바와 같다).
동일한 속성이 다수의 오디오 및 음성 코덱들, 즉, AMR-NB, AMR-WB, AMR-WB+, AAC 및 AACPlus(이하, RFC 3640에서 정의된 인터리빙 방법이 사용된다)와 같은 코덱들의 프레임-인터리빙된 송신 방법에 대해서 존재하게 된다.
이하, 이러한 문제점이 본 명세서에서 서버가 RTP 시퀀스 번호들이 x, x+1, x+2, x+3, ... 이라고 표시되는 일련의 패킷들을 송신한다고 가정하여 예시된다. 또한, 이러한 RTP 패킷들 각각이 두 개의 유닛들을 운반한다고 가정한다. 디코딩 순서 y는 다음과 같이 정의된다. 만일 어느 패킷이 디코딩 순서 y를 가진다면, 디코딩되는 패킷은 y 번째 패킷이다. 즉, 현재 패킷이 디코딩 순서 y를 가진다면, (y-1) 개의 패킷들은 현재 패킷이 디코더에 제공되는 시점까지 이미 디코딩되었다는 것을 의미한다. 예를 들어, H.264의 경우에, H.264 RTP 페이로드 포맷에 의해 정의되는 디코딩 순서 번호(DON, Decoding order number)가 각 패킷 내에 수신된 NAL 유닛들의 디코딩 순서를 유도하기 위하여 이용될 수 있다.
후속되는 예시는 각 유닛에 대해서 그 유닛이 속하는 패킷의 시퀀스 번호가 제공되는 일련의 유닛, 그 유닛 번호(즉, 그것이 패킷 내의 첫 번째 또는 두 번째 유닛인지를 나타내는 번호), 및 그 디코딩 순서를 예시한다.
SN 유닛 번호 디코딩 순서
x 0 y
x 1 y+l
x+1 0 y+2
x+1 1 y+3
x+2 0 y+4
x+2 1 y+5
x+3 0 y+6
x+3 1 y+7
x+4 0 y+l00
x+4 1 y+8
x+5 0 y+9
x+5 1 y+10
x+6 0 y+11
x+6 1 y+12
... ... ...
x+49 0 y+97
x+49 1 y+98
x+50 0 y+99
x+50 1 y+101
x+51 0 y+l02
x+51 1 y+103
상기의 예시에서, x 내지 x+3의 시퀀스 번호를 가지는 패킷으로부터 수신된 각 유닛에 대하여 디코딩 순서는 1 만큼씩 증가된다. 그러나, 이러한 규칙은 패킷 x+4에 대해서는 적용되지 않는다. 예를 들면, 패킷 x+4의 첫번째 유닛은 장래에만 디코딩될 프레임에 속한다.
더욱이, H.26L 페이로드에 포맷에 의해 정의된 DON(디코딩 순서 번호)은 시퀀스 번호를 디코딩 순서 y로 매핑한다. 그러나, y 값이 DON 값으로부터 유도되지 만, 이러한 두 값들은 언제나 같은 것은 아니다.
이제, 수신기 버퍼가 변화되는 것을 살펴보며, 여기서 특정한 시점에서 수신기가 패킷들 x, x+1, x+2, x+3을 수신했다고 가정한다. 이러한 상황에서, 버퍼(OBSN) 내의 가장 오래된 시퀀스 번호는 x이며, RTCP RR 리포트 내에 시그널링된 가장 높은 수신 시퀀스 번호(HSN, highest received sequence number)는 x+3이다. 시간이 진행하는 바에 따라서, SN x를 가지는 패킷은 디코딩 되었으며, SN x+4를 가지는 패킷이 수신되었다. 따라서, 서버는 클라이언트로 OBSN=x+l(버퍼내의 신규한 "가장 오래된" 시퀀스 번호) 및 HSN=x+4(수신되는 신규한 "가장 최근의" SN)를 시그널링할 것이다.
시간이 더욱 진행하는 바에 따라, 패킷들 x+1, x+2 및 x+3의 유닛들은 재생되고, 예를 들면 패킷들 x+5, x+6 및 x+7이 수신되었다. 이러한 시점에서, 버퍼의 상태는 x+4, x+5, x+6 및 x+7이다. 따라서, 클라이언트는 서버로 OBSN=x+4 및 HSN=x+7을 시그널링할 것이다. 해당하는 문제점이 이러한 시점 근방에서 발생되는데, 그 이유는, x+5 이후에 후속하는 패킷들 x+6, x+7, 등에 대한 디코딩 순서 번호가 패킷 x+4의 첫번째 유닛의 디코딩 순서 번호보다 작기 때문이다. 따라서, 현재 속도 적응 시그널링(current rate adaptation signaling) OBSN은이 유닛이 재생되고 패킷 x+50이 수신될 때까지 x+4로 유지될 것이다. 따라서, 서버는 수신기 버퍼 상태를 추적할 수 없으며, 그 이유는 OBSN이 수신기 버퍼로부터의 패킷의 디코딩 및 제거에 상응하여 갱신되지 않기 때문이다.
수신기가 송신기에게 OBSN이 예를 들면 x+2라고 시그널링할 때, 단일 패킷 내에 다중 유닛들이 전송될 수 있다는 사실 때문에 또다른 제한이 발생되는데, 이 경우 송신기는 이러한 패킷 내의 첫 번째 유닛이 여전히 버퍼 내에 존재하는지 또는 패킷의 두 번째 유닛만이 버퍼 내에 존재하는지 여부를 결정할 수가 없다.
AMR-NB 및 AMR-WB의 경우에, RFC 3267은 어떻게 인터리빙이 이용될 수 있는지를 정의한다. AMR-WB+에 대하여, AMR-WB를 위해 정의된 규정과 동일한 인터리빙 규정이 적용된다. 페이로드 헤더 내부에 시그널링된 두 개의 관련되는 파라미터들이 존재하는데, 그들은 ILL 및 ILP이다. 더욱이, AMR 패킷 하나당 프레임의 개수는 특정한 개수로 고정된다(예를 들어 N 개로 고정된다). 이러한 세 개의 값들이 하나의 AMR RTP 패킷 내부에 존재하는 RTP 페이로드 내에 존재할 프레임들의 순서를 정의하기 위한 수학적인 결정 방법을 정의한다.
ARM 내의 하드-코딩된(hard-coded) DON과 같은 개념이 H.26L에서와 같이 존재하지 않는다는 것을 알 수 있는데, 그 이유는 각 프레임이 RTP 페이로드 헤더 내에 시그널링된 ILL, ILP 및 N 값들에 기반한 결정된 디코딩 순서를 가지기 때문이다. AMR에 따르는(ARM-wise) DON은 RTSP PLAY 응답 내에 시그널링된 첫 번째 RTP 시퀀스 번호 및 (ILL, ILP, N) 3중쌍을 이용함으로써 클라이언트 및 서버에 의하여 해석될 수 있다. H.26L 경우에 대해서 언급된 바와 같은 문제점이 AMR-NB, AMR-WB 및 AMR-WB+에 따른 인터리빙되는 스트리밍을 위하여도 여전히 유효하다.
요약하면, 종래 기술에 의한 속도 적응 시그널링 방법은 수신기 재생 버퍼 내에 현존하는 가장 오래된 패킷에 기반함으로써, 송신기로 하여금 수신기 버퍼 내의 바이트수 및 재생 버퍼의 듀레이션(duration) 모두를 예측하도록 허용한다. 이 러한 정보는 송신기에 의하여 적응 동작을 수행하는데 사용됨으로써, 수신기 언더플로두(재생 중지) 또는 수신기 오버플로두(패킷 손실)를 회피하도록 한다. 그러나, 몇 가지 경우에는 디코딩 순서 및 송신 순서가 동일하지 않고, 동일한 패킷 내에 다중 유닛들이 이용될 수 있기 때문에, 송신기는 수신기 버퍼에 대한 추적을 할 수 없을 수 있다.
전형적인 RTP 패킷은 도 1에 도시된다. RTP 패킷은 타입 MTAP 16의 다중-시간 어그리케이션 패킷(multi-time aggregation packet) 및 두 개의 다중-시간 어그리게이션 유닛(multi-time aggregation units)들을 포함한다. 해당 패킷의 제1 행 내의 RTP 헤더는 도 2에 도시된다. 도 2에 도시된 바와 같이, 패킷의 시퀀스 번호(SN)는 RTP 헤더의 제1행에서 도시된다. 도 1에 도시된 바와 같이, 어그리게이션 타입 패킷은 다중 NAL(Network Abstraction Layer) 유닛들을 어그리게이션하여 단일 RTP 페이로드로 만든다. 특히, MTAP 16s에서, NAL 유닛 페이로드는 16비트 무부호 디코딩 번호 순서(DON) 지수(base), 또는 DONB(패킷의 제2행을 참조한다)로 구성된다. DONB는 첫번째 NAL 유닛의 DON의 값을 포함함으로써, 모든 다른 NAL들의 DON의 값은 DOND, 또는 특정 NAL 내의 DON의 값 및 DONB 간의 차이로 표시될 수 있다.
H.264 코덱을 위한 RTP 페이로드 포맷은 IETF Audio Visual Transport Working Group Internet Draft-ietf-avt-rtp-h264-05(2004년 4월)에서 발견될 수 있다.
본 발명은 멀티미디어 스트리밍 네트워크 내의 서버 장치를 위한 메커니즘을 제공하며, 이것은 재생을 위하여 스트리밍 데이터 패킷을 클라이언트 장치로 전송하고, 클라이언트 장치 내의 수신기 버퍼 내에 저장되는 데이터 패킷들의 목록을 재구성한다. 재구성된 결과에 기반하여, 서버 장치는 클라이언트 장치로 제공되는 스트리밍 데이터량을 조절함으로써 수신기 버퍼의 레벨을 제어할 수 있다.
본 발명의 제1 측면은 멀티미디어 스트리밍 네트워크 내의 클라이언트 내의 수신기 버퍼의 레벨을 제어하기 위한 방법으로서, 상기 스트리밍 네트워크는 복수 개의 패킷들 내의 스트리밍 데이터를 상기 클라이언트로 제공하기 위한 서버를 포함하고, 데이터 패킷들 중 적어도 일부는 상기 수신기 버퍼 내에 저장됨으로써 상기 서버에 의한 데이터 송신량 및 상기 클라이언트에 의한 데이터 이용량(data usage) 간의 차이를 보상하며, 상기 패킷들은 상기 클라이언트로의 재생 순서에 관련된 복수 개의 디코딩 순서값들에 기반한 디코딩 순서로 디코딩되는 방법에 있어서,
상기 클라이언트 내에서 상기 디코딩 순서값들에 기반하여 상기 수신기 버퍼 내의 패킷들 중에 디코딩될 후속 패킷을 결정하는 단계; 및
디코딩될 상기 후속 패킷을 나타내는 정보를 상기 서버로 시그널링 함으로써, 상기 클라이언트로 하여금 상기 정보에 기반하여 상기 클라이언트로 제공되는 스트리밍 데이터량(streaming data amount)을 조절하도록 허용하는 단계를 포함하는 것을 특징으로 하는 방법을 제공한다.
본 발명에 따르면, 상기 패킷들은 디코딩될 후속 유닛을 포함하는 복수 개의 유닛들과 관련되고, 디코딩될 후속 패킷은 디코딩될 상기 후속 유닛이 속한 패킷인 것을 특징으로 한다. 상기 데이터 패킷들 각각은 상기 클라이언트 및 상기 서버 모두에게 알려진 시퀀스 번호를 가지고, 상기 서버로 시그널링되는 상기 정보는 디코딩될 상기 후속 패킷의 시퀀스 번호를 나타내는 것을 특징으로 한다.
본 발명에 따르면, 상기 서버는, 전송된 유닛들의 목록 및 유닛 번호들의 기록 및 전송된 상기 유닛들이 속하는 상기 패킷의 시퀀스 번호 및 상기 시퀀스 번호 및 유닛 번호로부터 상기 디코딩 순서로의 매핑을 유지하고, 상기 매핑에 기반하여 상기 수신기 버퍼 내의 데이터 유닛들을 결정함으로써, 상기 서버 내의 상기 결정에 기반하여 상기 클라이언트로 제공되는 상기 스트리밍 데이터량을 조절하는 것을 특징으로 한다.
본 발명에 따르면, 상기 서버로 시그널링되는 상기 정보는, 디코딩될 상기 후속 유닛의 스케줄링된 재생 시간 및 상기 후속 유닛의 디코딩 시간 간의 차이를 더욱 나타내는 것을 특징으로 한다.
본 발명에 따르면, 상기 서버로 시그널링된 상기 정보는 상기 클라이언트에 의하여 수신된 가장 높은 시퀀스 번호를 더욱 나타냄으로써 상기 서버로 하여금 상기 수신기 버퍼 내의 상기 데이터 패킷들을 결정하도록 허용하는 것을 특징으로 한다.
본 발명에 따르면, 상기 유닛들 각각은 타임스탬프를 가지고, 상기 데이터 패킷들 각각은 상기 클라이언트 및 서버 모두에게 알려진 시퀀스 번호를 가지며, 상기 서버로 시그널링된 상기 정보는 디코딩될 상기 후속 유닛의 타임스탬프 및 상기 후속 유닛이 속하는 상기 패킷의 시퀀스 번호를 나타내는 것을 특징으로 한다.
본 발명의 제2 측면은 멀티미디어 스트리밍 네트워크로서,
적어도 하나의 클라이언트; 및
복수 개의 패킷들 내의 스트리밍 데이터를 상기 클라이언트로 제공하기 위한 서버를 포함하며, 상기 클라이언트는,
디코딩될 데이터 패킷들 중 적어도 일부를 저장하여 상기 서버에 의한 데이터 송신량 및 상기 클라이언트에 의한 데이터 이용량 간의 차이를 보상하기 위한 수신기 버퍼로서, 상기 패킷들은 상기 클라이언트로의 재생 순서에 관련된 복수 개의 디코딩 순서값들에 기반한 디코딩 순서로 디코딩되는 수신기 버퍼; 및
상기 디코딩 순서값들에 기반하여 상기 버퍼 내의 패킷들 중 디코딩될 상기 후속 패킷을 나타내는 정보를 상기 서버로 시그널링 함으로써 상기 서버로 하여금 상기 클라이언트로 제공되는 스트리밍 데이터량을 조절하도록 허용하는 메커니즘을 포함하는 것을 특징으로 하는 멀티미디어 스트리밍 네트워크를 제공한다.
본 발명에 따르면, 상기 패킷들은 디코딩될 후속 유닛을 포함하는 복수 개의 유닛들과 관련되고, 디코딩될 후속 패킷은 디코딩될 상기 후속 유닛이 속한 패킷인 것을 특징으로 한다. 상기 유닛들 각각은 유닛 번호를 가지고, 상기 데이터 패킷들 각각은 상기 클라이언트 및 상기 서버 모두에게 알려진 시퀀스 번호를 가지며, 상기 서버로 시그널링되는 상기 정보는 디코딩될 상기 후속 유닛의 유닛 번호 및 상기 후속 유닛이 속하는 상기 패킷의 시퀀스 번호를 나타내는 것을 특징으로 한다.
본 발명에 따르면, 상기 서버는, 전송된 유닛들의 목록 및 유닛 번호들의 기록 및 전송된 상기 유닛들이 속하는 상기 패킷의 시퀀스 번호 및 상기 시퀀스 번호 및 유닛 번호로부터 상기 디코딩 순서로의 매핑을 유지하고, 상기 매핑에 기반하여 상기 수신기 버퍼 내의 데이터 유닛들을 결정함으로써, 상기 서버 내의 상기 결정에 기반하여 상기 클라이언트로 제공되는 상기 스트리밍 데이터량을 조절하는 것을 특징으로 한다.
본 발명의 제3 측면은 멀티미디어 스트리밍 네트워크 내의 클라이언트 장치로서, 상기 스트리밍 네트워크는 복수 개의 패킷들 내의 스트리밍 데이터를 상기 클라이언트 장치로 제공하기 위한 서버 장치를 포함하고, 상기 패킷들은 상기 클라이언트 장치 내의 재생 순서에 관련된 복수 개의 디코딩값들에 기반한 디코딩 순서로 디코딩되는 클라이언트 장치에 있어서,
디코딩될 데이터 패킷들 중 적어도 일부를 저장하여 상기 서버 장치에 의한 데이터 송신량 및 상기 클라이언트 장치에 의한 데이터 이용량 간의 차이를 보상하기 위한 수신기 버퍼; 및
상기 디코딩 순서값들에 기반하여 상기 수신기 버퍼 내의 패킷들 중 디코딩될 상기 후속 패킷을 나타내는 정보를 상기 서버 장치로 시그널링 함으로써 상기 서버 장치로 하여금 상기 클라이언트 장치로 제공되는 스트리밍 데이터량을 조절하도록 허용하는 메커니즘을 포함하는 것을 특징으로 하는 클라이언트 장치를 제공한다.
본 발명에 따르면, 상기 패킷들은 디코딩될 후속 유닛을 포함하는 복수 개의 유닛들과 관련되고, 디코딩될 후속 패킷은 디코딩될 상기 후속 유닛이 속한 패킷인 것을 특징으로 한다. 상기 유닛들 각각은 유닛 번호를 가지고, 상기 데이터 패킷들 각각은 상기 클라이언트 장치 및 상기 서버 장치 모두에게 알려진 시퀀스 번호를 가지며, 상기 서버 장치로 시그널링되는 상기 정보는 디코딩될 상기 후속 유닛의 유닛 번호 및 상기 후속 유닛이 속하는 상기 패킷의 시퀀스 번호를 나타내는 것을 특징으로 한다.
본 발명에 따르면, 상기 클라이언트 장치는, 상기 디코딩 순서값들에 기반하여 상기 수신기 버퍼 내의 상기 데이터 패킷들의 디코딩 순서 및
상기 디코딩 순서값들에 기반하여 상기 수신기 버퍼 내의 상기 데이터 패킷들 중 디코딩될 상기 후속 패킷을 결정하기 위한 실행가능한 코드들을 포함하는 소프트웨어 프로그램을 더 포함하는 것을 특징으로 한다.
본 발명의 제4 측면은 스트리밍 데이터를 제공하기 위한 멀티미디어 스트리밍 네트워크 내의 서버 장치로서, 상기 멀티미디어 스트리밍 네트워크는 복수 개의 패킷들 내의 스트리밍 데이터를 수신하고 상기 데이터 패킷들을 재생 순서에 관련된 복수 개의 디코딩 순서값에 기반한 디코딩 순서로 디코딩하기 위한 클라이언트 장치를 포함하고, 상기 클라이언트 장치는 데이터 패킷들 중 적어도 일부를 저장하여 상기 서버 장치에 의한 데이터 송신량 및 상기 클라이언트 장치에 의한 데이터 이용량 간의 차이를 보상하기 위한 수신기 버퍼를 포함하는 서버 장치에 있어서,
상기 클라이언트 장치 내의 상기 디코딩 순서값들에 기반하여 상기 수신기 버퍼 내의 패킷들 중 디코딩될 후속 패킷을 나타내는 정보를 상기 클라이언트 장치로부터 수신하기 위한 메커니즘; 및
상기 정보에 기반하여 상기 수신기 버퍼 내의 상기 패킷들을 결정함으로써, 상기 클라이언트 장치로 제공된 상기 스트리밍 데이터량을 조절하여 상기 수신기 버퍼의 레벨을 제어하기 위한 소프트웨어 프로그램을 포함하는 것을 특징으로 하는 서버 장치를 제공한다.
본 발명에 따르면, 상기 패킷들은 디코딩될 후속 유닛을 포함하는 복수 개의 유닛들과 관련되고, 디코딩될 후속 패킷은 디코딩될 상기 후속 유닛이 속한 패킷인 것을 특징으로 한다. 상기 유닛들 각각은 유닛 번호를 가지고, 상기 데이터 패킷들 각각은 상기 클라이언트 장치 및 상기 서버 장치 모두에게 알려진 시퀀스 번호를 가지며, 상기 서버 장치로 시그널링되는 상기 정보는 디코딩될 상기 후속 유닛의 유닛 번호 및 상기 후속 유닛이 속하는 상기 패킷의 시퀀스 번호를 나타내는 것을 특징으로 한다.
본 발명의 제5 측면은 또한 멀티미디어 스트리밍 네트워크 내의 클라이언트 장치 내에서 사용되기 위하여 컴퓨터에 의하여 독출될 수 있는 매체 내에 내장된 소프트웨어 생성물로서, 상기 스트리밍 네트워크는 복수 개의 패킷들 내의 스트리밍 데이터를 상기 클라이언트 장치로 제공하기 위한 서버 장치를 포함하고, 상기 패킷들은 상기 클라이언트 장치 내의 재생 순서에 관련된 복수 개의 디코딩값들에 기반한 디코딩 순서로 디코딩되고, 상기 클라이언트 장치는 디코딩될 데이터 패킷들 중 적어도 일부를 저장하여 데이터 송신 간의 차이를 보상하기 위한 수신기 버퍼를 포함하는 소프트웨어 생성물에 있어서,
상기 디코딩 순서값들에 기반하여 상기 수신기 버퍼 내의 데이터 패킷들의 디코딩 순서를 결정하기 위한 코드; 및
상기 디코딩 순서값들에 기반하여 상기 수신기 버퍼 내의 데이터 패킷들 중 디코딩될 후속 패킷을 결정하여, 디코딩될 상기 후속 패킷을 나타내는 정보를 상기 서버 장치로 제공하고, 상기 서버 장치로 하여금 수신기 버퍼의 레벨을 제어하기 위하여 상기 정보에 기반하여 상기 클라이언트 장치로 제공되는 스트리밍 데이터량을 조절하도록 허용하기 위한 코드를 포함하는 것을 특징으로 하는 소프트웨어 생성물을 제공한다.
본 발명에 따르면, 상기 패킷들은 디코딩될 후속 유닛을 포함하는 복수 개의 유닛들과 관련되고, 디코딩될 후속 패킷은 디코딩될 상기 후속 유닛이 속한 패킷인 것을 특징으로 한다. 상기 유닛들 각각은 유닛 번호를 가지고, 상기 데이터 패킷들 각각은 상기 클라이언트 장치 및 상기 서버 장치 모두에게 알려진 시퀀스 번호를 가지며, 상기 서버 장치로 시그널링되는 상기 정보는 디코딩될 상기 후속 유닛의 유닛 번호 및 상기 후속 유닛이 속하는 상기 패킷의 시퀀스 번호를 나타내는 것을 특징으로 한다.
본 발명의 제6 측면은 스트리밍 데이터를 제공하기 위한 멀티미디어 스트리밍 네트워크 내의 서버 장치 내에서 이용되기 위하여 컴퓨터에 의하여 독출될 수 있는 매체 내에 내장된 소프트웨어 생성물로서, 상기 멀티미디어 스트리밍 네트워크는 복수 개의 패킷들 내의 스트리밍 데이터를 수신하고 상기 데이터 패킷들을 재생 순서에 관련된 복수 개의 디코딩 순서값에 기반한 디코딩 순서로 디코딩하기 위한 클라이언트 장치를 포함하고, 상기 클라이언트 장치는 데이터 패킷들 중 적어도 일부를 저장하여 상기 서버 장치에 의한 데이터 송신량 및 상기 클라이언트 장치에 의한 데이터 이용량 간의 차이를 보상하기 위한 수신기 버퍼를 포함하는 소프트웨어 생성물에 있어서,
상기 디코딩 순서를 상기 클라이언트 장치로 전송된 상기 데이터 패킷들의 상기 시퀀스 번호들로 연관시키기 위한 코드; 및
상기 연관 및 상기 클라이언트 장치 내의 디코딩될 상기 후속 패킷을 나타내며 상기 클라이언트 장치에 의하여 제공된 정보에 기반하여 상기 수신기 버퍼 내의 상기 데이터 패킷들을 결정함으로써, 상기 서버 장치로 하여금 상기 수신기 버퍼의 레벨을 제어하기 위하여 상기 클라이언트 장치로 제공되는 상기 스트리밍 데이터량을 조절하도록 허용하기 위한 코드를 포함하는 것을 특징으로 하는 소프트웨어 생성물을 제공한다.
도 1은 전형적인 RTP 패킷을 도시하는 블록도이다.
도 2는 전형적인 RTP 헤더를 도시하는 블록도이다.
도 3은 본 발명에 따른 속도 적응 방법을 수행할 수 있는 서버 장치 및 클라이언트 장치를 포함하는 멀티미디어 스트리밍 시스템을 도시하는 블록도이다.
본 발명은 버퍼 레벨 시그널링을 위한 방법을 제공함으로써, 멀티미디어 스 트리밍 네트워크 내의 서버로 하여금 H.264와 같은 코덱(패킷 송신 순서가 디코딩 순서와 상이한 코덱)들 내의 속도 적응을 허용한다. 본 발명에 따른 버퍼 레벨 시그널링 방법은 디코딩될 후속 유닛에 대한 정보에 기반한다. 디코딩될 후속 유닛이 속하는 패킷의 시퀀스 번호(SN)는 본 명세서에서 NDSN이라고 불린다.
본 발명에 따른 버퍼 레벨 시그널링 방법에서, 수신기는 송신기에게 디코딩될 후속 유닛의 정보를 보고한다. 이 유닛은 RTP 페이로드 포맷에서 정의될 수 있는 식별 가능한(identifiable) 디코딩 유닛이다. 더 상세하게는, 식별 가능한 유닛은 NDSN 및 패킷 내의 유닛 번호(NDU)에 의해 식별될 수 있다. 음성 코덱의 경우, 식별 가능한 디코딩 유닛은 전형적으로 프레임이다. H.264 코덱의 경우, 식별 가능한 디코딩 유닛은 NAL(네트워크 요약 계층) 유닛이다. 예를 들면, 디코더로 전달될 후속 NAL 유닛이 SN=100인 패킷 내에서 발견되면, 수신기는 100 및 2의 값들을 송신기로 시그널링한다.
수신기는 가장 작은 y 값에 기반하여 디코딩될 후속 유닛의 정보를 송신기에 보고한다 수신된 NDSN 및 NDU에 기반하여, 서버는 다음에 디코딩될 유닛을 식별할 수 있다. 이같이, 송신기는 수신기 버퍼의 정확한 상태를 유도할 수 있다. 배경 섹션에 주어진 x 및 y 값의 집합을 이용하여, 이 실시예는 다음과 같이 예시될 수 있다.
패킷들 x+4, x+5, x+6 및 x+7이 수신되면, 이러한 패킷들 내에서 운반된 유닛들의 디코딩 순서는 y+100, y+8, y+9, y+10, y+11, y+12, y+13 및 y+14 이다. 그러므로, 패킷 x+4의 제2 유닛은 가장 작은 디코딩 순서값인 y+8을 가진다. 따라 서, 디코딩될 다음 유닛은 그것이 속하는 패킷의 시퀀스 번호(x+4) 및 상응하는 유닛 번호(NDU=1)를 통하여 송신기로 명확하게 시그널링될 수 있다. 수신기도 여전히 HSN=x+7 이라고 설정하는데, 그 이유는 이것이 가장 최신에 수신된 시퀀스 번호이기 때문이다. 전술된 상황은 표 I에 도시된다.
Figure 112006091544092-pct00001
주:
디코딩 순서값=y+6 이면, NDSN = x+3, 및 NDU = 0이다.
디코딩 순서값=y+7 이면, NDSN = x+3 및 NDU = 1이다.
주:
수신기 버퍼 내의 패킷들의 일부 데이터 유닛은 이미 디코딩되어 버퍼로부터 제거되었을 수 있다. 그러나, 버퍼 내의 각 패킷은 버퍼 내에 잔존하는 적어도 하나의 데이터 유닛을 가져야 한다.
수신된 NDSN 및 NDU에 기반하여, 송신기는 어떤 패킷들이 수신기 버퍼 내에 존재하는지에 대한 정확한 예측을 획득할 수 있으며, 수신기 버퍼 내의 각 패킷에 대하여, 어떠한 데이터 유닛들이 수신기 버퍼 내에 존재하는지를 알 수 있다.
수신기 측에서:
- 현재 버퍼 내에 존재하는 코딩된 유닛들의 디코딩 순서(y 값들)를 계산하고;
- 디코딩될 후속 유닛(가장 작은 y 값을 가지는 유닛)을 검색하고; 및
- 디코딩될 후속 유닛의 유닛 번호(NDU) 및 이 유닛이 속할 후속 패킷의 시퀀스 번호(이것을 NDSN이라고 부른다)를 시그널링한다.
송신기 측에서:
- 송신된 유닛들의 목록(L)을 유지한다. 각 유닛에 대하여 해당 유닛이 속하여 전송된 패킷의 시퀀스 번호의 기록, 해당 패킷 내의 유닛의 순서를 나타내는 유닛 번호, 및 유닛 번호 및 시퀀스 번호로부터 디코딩 순서값(즉, 그것의 y 값)으로의 매핑을 유지한다;
- 수신기에 의하여 시그널링된 NDU, NDSN 및 HSN을 RTCP RR 또는 SR 리포트로부터 검색한다;
- L 내에서 자신의 기록된 정보가 다음에 따르는 모든 유닛들을 검색함으로써 수신기 버퍼 내의 유닛들의 목록을 재구성한다:
1) 목록 내의 디코딩 번호가 시그널링된 NDSN 및 NDU로 매핑하는 디코딩 순서보다 더 클 것, 및
2) 시퀀스 번호가 수신된 가장 큰 시퀀스 번호(HSN)보다 작을 것.
디코딩 번호 및 시퀀스 번호를 비교할 때에 되돌이 현상(wrap around)을 고려하여야 한다는 것에 주의하여야 한다. 예를 들면, 시그널링되는 RTP 시퀀스 번호가 16 비트를 사용한다면, 시그널링될 수 있는 최대값은 65535이다. 그러면, 0의 후속 값은 실제로 65536의 시퀀스 번호를 나타낸다.
다르게는, 유닛 정보가 제공되지 않았다는 것을 시그널링하기 위한 특별한 값이 NDU 필드에 사용될 수 있다(예컨대 필드가 2 바이트라면 0xFFFF이 사용될 수 있다). 이러한 경우에, 유닛이 속하고 있는 패킷의 시퀀스 번호만이 공급된다. 서버는 어느 유닛들이 수신기 버퍼 내에 현재 존재하는지를 정확히 예측할 수 없을 것이다.
몇 가지 다른 구현예들은 다음과 같다.
구현예 I
수신기는 가장 작은 y 값에 기반하여. 디코딩될 후속 패킷의 정보를 송신기에 보고한다. 수신된 NDSN에 기반하여, 서버는 다음에 디코딩될 패킷을 식별할 수 있다. 이와 같이, 송신기는 수신기 버퍼의 정확한 상태를 유도할 수 있다. 배경 섹션에 주어진 x 및 y 값의 집합을 사용하여, 이 구현예는 다음과 같이 예시될 수 있다.
패킷들 x+4, x+5, x+6 및 x+7이 수신되면, 이들의 상응하는 디코딩 순서는 y+100, y+101, y+4 및 y+5 이다. 그래서, x+6은 가장 작은 디코딩 순서 y+4를 가진다. 따라서, 디코딩될 후속 패킷은 및 상응하는 NDSN은 x+6이다. 수신기도 언제나와 같이 HSN=x+7이라고 설정하는데, 그 이유는 이것이 가장 최근에 수신된 시퀀스 번호이기 때문이다. 전술된 상황은 표 2에 도시된다.
Figure 112006091544092-pct00002
주: 디코딩 순서값=y+3 이면, NDON=패킷 x+3에 의해 운반된 NAL 유닛의 DON 이다;
디코딩 순서값=y+4 이면, NDON=패킷 x+6에 의해 운반된 NAL 유닛의 DON 이다.
수신된 NDSN에 기반하여, 송신기는 어느 패킷들이 수신기 버퍼 내에 존재하는지에 대한 정확한 예측을 획득할 수 있는데, 그 이유는 송신기가 국지적으로 시퀀스 번호들을 그들의 디코딩 순서에 매핑할 수 있기 때문이다. 즉, 송신기는 시퀀스 번호들의 목록을 유지하고, 이러한 시퀀스 번호들은 디코딩 순서로 매핑된다. 이러한 예시에서, 송신기는 x+4가 x+7보다 높은 디코딩 순서를 가진다는 것을 알 고 있다. 송신기는 x+4가 버퍼 내에 존재한다고 결론을 내릴 수 있고, 그래서 어떤 다른 패킷이 현재 버퍼 내에 존재하는지 결정할 수 있다.
추가적으로, 송신기는 선택적인 재생 지연 파라미터의 시그널링을 통하여 수신기 버퍼 듀레이션에 대한 더욱 정확한 측정치를 획득할 수 있다. 재생 지연은 디코딩될 후속 패킷의 스케줄링된 재생 시간 및 이 패킷의 디코딩 시간(즉 시퀀스 번호 NDSN을 가지는 패킷) 간의 차이로서 정의될 수 있다.
구현예 I는 다음과 같이 요약될 수 있다.
수신기 측에서:
- 현재 버퍼 내에 존재하는 코딩된 패킷들의 디코딩 순서(y 값들)를 계산하고;
- 디코딩될 후속 패킷(가장 작은 y 값을 가지는 패킷)을 검색하고; 및
- 디코딩될 후속 유닛의 시퀀스 번호(이것을 NDSN이라고 부른다)를 시그널링한다.
송신기 측에서:
- 송신된 패킷들의 목록(L)을 유지하고 시퀀스 번호들로부터 디코딩 순서로의 매핑을 유지한다;
- 수신기에 의하여 시그널링된 NDSN 및 HSN을 RTCP RR 또는 SR 리포트로부터 검색한다;
- L 내에서 시퀀스 번호가 다음의 관계를 만족하는 모든 패킷들을 검색함으로써 수신기 버퍼 내의 패킷들의 목록을 재구성한다: 1) 목록 내의 시퀀스 번호에 관련된 디코딩 순서가 NDSN 시퀀스 번호로 매핑되는 디코딩 순서보다 더 높을 것 및 2) 시퀀스 번호가 수신된 가장 큰 시퀀스 번호(HSN)보다 작을 것.
구현예 II
구현예 I를 이용하면, 만일 MTAP들(H.264 페이로드 포맷에 정의된 바와 같은 다중-시간 어그리게이션 패킷들(Multi-Time Aggregation Packets))이 이용된다면, 여전히 모호성이 존재한다. 다중 NAL(Network Abstraction Layer)유닛들을 단일 RTP 페이로드로 어그리게이션하기 위하여 어그리게이션 패킷 타입이 이용된다. 모든 NAL 유닛들은 단일 NAL 유닛 타입 옥테트(octet)고 구성되는데, 이것 또한 RTP 페이로드 포맷의 페이로드 헤더로서 공동 동작한다. MTAP들에서, NAL 유닛 페이로드는 16비트 무부호 디코딩 번호 순서 지수(DONB, decoding number order base) 및 하나 또는 그 이상의 다중 시간 어그리게이션 유닛들로 구성된다. DONB는 MTAP의 NAL 유닛 중에서, NAL 유닛 디코딩 순서 내의 제1 NAL 유닛을 위한 DON의 값을 선택하여 포함해야만 한다. 상이한 프레임으로부터의 NAL들이 같은 RTP 패킷에 포함될 수 있고, 그래서 같은 SN을 가질 수 있다는 사실로부터 문제점이 기인한다. 계속하여, NDSN이 보고될 때, 패킷 NAL들 중 어느 쪽이 다음에 디코딩될 것인지는 아직 알려지지 않는다. 동일한 패킷에 속하는 상이한 NAL들 간의 샘플링 시간 차가 한정된다면, 구현예 I는 버퍼 예측 동작에 있어서 어느 정도의 부정확성을 나타낼 수 있다. 동일한 패킷 내의 NAL들의 샘플링 시간들 간에 높은 차이가 존재하는 방식으로 송신기 패킷화(packetization)가 수행되면, 구현예 I에 따른 예측 방법은 아예 동작 가능하지 않을 수 있다.
구현예 II에서, 시퀀스 번호 대신에 디코딩될 후속 NAL의 DON을 전송함으로써, 이러한 모호성 문제점이 해결될 수 있다.
구현예 I에서 설명된 바와 같은 동일한 송신기 및 수신기 알고리즘들이 이용될 수 있다. 구현예II 및 구현예I 간의 차이점은, NDON이 NDSN(표 2 아래의 주를 참조한다) 대신에 시그널링된다는 것이다. 그래서, 구현예 II는 다음과 같이 요약될 수 있다:
수신기 측에서:
- 현재 버퍼 내에 존재하는 NAL들의 디코딩 순서(y 값)를 계산한다;
- 디코딩될 후속 패킷을 검색한다(가장 작은 y 값을 가지는 패킷); 및
- 디코딩될 후속 패킷의 DON을 시그널링한다(이것을 NDON이라고 부른다).
송신기 측에서:
- 전송된 NAL들의 목록(L)을 유지한다. 각 NAL에 대하여, NAL이 포함되어 전송된 패킷의 시퀀스 번호, 이것의 DON 값 및 NAL로부터 디코딩 순서로의 매핑의 기록을 유지한다.
- 수신기에 의하여 시그널링될 NDON 및 HSN을 검색한다; 및
- L 내에서 기록된 정보가 다음의 관계를 만족하는 모든 NAL들을 검색함으로써 수신기 버퍼 내의 NAL들의 목록을 재구성한다: 1) L 내의 NAL에 관련된 디코딩 순서가 시그널링된 NDON으로 매핑되는 디코딩 순서보다 높을 것 및 2) 시퀀스 번호가 수신된 가장 높은 시퀀스 번호(HSN)보다 작을 것.
AMR(-NB-WB 및-WB+)에 대하여, DON의 계산이 다음과 같이 이루어진다.
연산을 위하여 다음과 같이 가정된다.
- 음성 프레임-블록 "n"에서 시작되는 인터리브 그룹(interleave group)에 대하여 ILL=L.
- 인터리브 그룹의 첫번째 페이로드 패킷은 "s"이고, n의 RTP 시퀀스 번호는 "SN"이다.
- 각 페이로드에서 운반되는 음성 프레임-블록의 개수는 N이다.
- 제1 AMR 오디오 패킷의 시퀀스 번호는 "SN0"이다.
AMR Payload들은(이 인터리브 그룹의 제1 패킷):
ILL=L, ILP=0,
프레임 블록들: n, n+(L+l), n+2*(L+l),...,n+(N-l)*(L+l)을 운반
페이로드 s+1은(이 인터리브 그룹의 제2 패킷):
ILL=L, ILP=1,
프레임-블록들: n+1, n+l+(L+l), n+l+2*(L+l),...,n+l+(N-l)*(L+l)
...
페이로드 s+L은(이 인터리브 그룹의 마지막 패킷):
ILL=L, ILP=L,
프레임-블록: n+L, n+L+(L+l), n+L+2*(L+l),..., n+L+(N-l)*(L+l)
후속 인터리브 그룹은 프레임-블록 n+N*(L+l)에서 시작될 것이다.
음성-프레임 블록 n에서 시작되는 인터리브 그룹에서, ILP=I를 가지는 AMR 페이로드의 i번째 AMR 프레임의 디코딩 순서는 다음과 같다.
DON(i)=(n+j)+i*(L+l)
여기서, i는 0 내지 N-1인 정수이고, j는 0 내지 L인 정수이며, n은 ILL, N, 최초 및 현재 AMR 페이로드의 시퀀스 번호에 기반하여 다음과 같이 계산될 수 있다.
n=(Floor[(SN-SN0)/(L+l)])*N*(L+1)
여기서 n은 정수이다.
수신되는 첫번째 AMR 패킷에 대하여, 첫번째 AMR 프레임의 DON은 0이다. 서버 및 클라이언트가 첫번째 RTP 시퀀스 번호를 알고 있기 때문에(서버는 그것을 전송하기 때문에 알고 있고, 클라이언트는 RTSP PLAY 응답 및 RTP-Info 헤더의 "seqnum" 필드를 확인하여 알 수 있다), 이와 같은 레이블링(labellig)을 수행하는 것은 직관적이고 명확하다. 그러면, 각 AMR 프레임의 DON은 ILL, ILP 및 N을 사용하는 것에 의해 계산될 수 있다.
구현예 III
H.264 코덱에서 정의되는 바와 같이, MTAP 내의 DON의 값을 시그널링할 때, 송신 순서의 제1 NAL 유닛의 DON 값은 임의의 값으로 설정될 수 있다. DON의 값은 0 내지 65535까지의 범위에 포함된다. 최대값에 도달하면, DON의 값은 다시 0으로 된다. 그래서, 구현예 II와 더불어, DON은 되돌이될 수 있으며, 이것은 서버에 모호성을 발생시킨다. 그 이유는 DON 필드가 SN 필드보다 더 적은 수의 비트를 가지고, DON이 희소할 수(sparse) 있기 때문이다(어떠한 이유에 의하여, 연속적인 NAL들에 대하여 DON이 더 크게 변화하도록 송신기가 만들 수 있다).
구현예 III에서, 수신기는 후속 NAL이 포함되는 패킷의 시퀀스 번호 및 DON 값을 이용하여 후속 NAL을 식별한다. 그러므로, 수신기는 서버로, 후속 NAL 유닛을 운반하는 패킷의 시퀀스 번호 및 후속 NAL 유닛의 디코딩 순서를 나타내는 DON 번호를 시그널링한다. 만일 패킷 내에 다른 NAL이 존재하지 않는다면, DON은 전송될 필요가 없다.
구현예 III는 다음과 같이 요약될 수 있다:
수신기 측에서:
- 현재 버퍼 내에 존재하는 NAL들의 디코딩 순서(y 값)를 계산한다;
- 디코딩될 후속 패킷을 검색한다(가장 작은 y 값을 가지는 패킷); 및
- 디코딩될 후속 패킷의 DON(이것을 NDON이라고 부른다) 및 디코딩될 후속 패킷의 시퀀스 번호(이것을 NDSN이라고 부른다)를 시그널링한다.
송신기 측에서:
- 전송된 NAL들의 목록(L)을 유지한다. 각 NAL에 대하여, NAL이 포함되어 전송된 패킷의 시퀀스 번호, 이것의 DON 값 및 NAL로부터 디코딩 순서로의 매핑의 기록을 유지한다.
- 수신기에 의하여 시그널링될 NDON 및 HSN을 검색한다; 및
- L 내에서 기록된 정보가 다음의 관계를 만족하는 모든 NAL들을 검색함으로써 수신기 버퍼 내의 NAL들의 목록을 재구성한다: 1) L 내의 NAL에 관련된 디코딩 순서가 시그널링된 NDON 및 시그널링된 NDSN으로 매핑되는 디코딩 순서보다 높을 것 및 2) 시퀀스 번호가 수신된 가장 높은 시퀀스 번호(HSN)보다 작을 것.
속도 적응을 위한 버퍼 레벨 시그널링 방법이 어떻게 수행되는지를 예시하기 위하여, 멀티미디어의 스트리밍 시스템이 도 3에 도시된다. 나타낸 바와 같이, 멀티미디어의 스트리밍 시스템(1)은 스트리밍 클라이언트(60)로부터 스트리밍 서버(10)까지의 버퍼 레벨 시그널링을 위한 수단을 포함한다.
스트리밍 서버(10)는 어플리케이션 레벨 시퀀스 엔진(20), 제어기(30) 및 서버 버퍼(40)를 포함한다. 스트리밍 클라이언트(60)는 스트리밍 서버(10) 내의 어플리케이션 레벨 시퀀스 엔진(20)에 상응하고 이와 통신하도록 적응되는 어플리케이션 레벨 시퀀스 엔진(70)을 포함한다. 이것은 클라이언트 버퍼(80)를 더 포함하는데, 클라이언트 버퍼(80)는 도 3에 예시된 바와 같이, 지터 버퍼(82) 및 프리-디코딩 버퍼(84)를 포함하고, 이들은 단일 유닛으로 집적된다. 본 발명의 다른 실시예들에서, 스트리밍 클라이언트(60)는 개별적으로 구현된 지터 버퍼(82) 및 프리-디코딩 버퍼(84)를 포함할 수도 있다. 스트리밍 클라이언트는 미디어 디코더(90), 포스트-디코더 버퍼(100), 버퍼 제어기(110) 및 디스플레이/재생 장치(120, display/play-out device)를 더 포함한다.
도 3에 도시되는 시스템은 스트리밍 서버(10) 및 스트리밍 클라이언트(60) 사이에 위치하는 "채널 버퍼(50)"을 더 포함하는 것으로 도시되는데, 채널 버퍼(50)는 스트리밍 서버로부터 클라이언트로의 데이터 패킷들의 송신 도중에 발생되는 가변 전달 지연(varying transfer delay)을 나타낸다.
서버의 속도 제어기(30)는 스트리밍 서버로부터 송신되는 미디어 데이터가 송신되는 속도를 적응하도록 동작한다. 서버는 클라이언트로 송신되는 패킷들에 타임스탬핑(timestamp)하기 위한 송신 클록(32)을 더 포함한다. 이것은 송신되는 데이터 속도를 송신 시간 천이(time-shift)에 대한 클라이언트의 요청을 고려하여 송신 채널 상의 가변하는 비트율에 따라서 조절함으로써, 프리-디코더 버퍼 언더플로우에 기인한 클라이언트에서의 재생 일시정지 현상 또는 버퍼 오버플로우에 기인한 클라이언트에서의 패킷 손실 현상을 방지하도록 모색한다.
서버 버퍼(40)는 데이터 패킷들이 송신 채널을 가로질러 스트리밍 서버로부터 스트리밍 클라이언트(60)에 송신되기 이전에 데이터 패킷들을 일시 저장한다. 데이터 패킷들이 실시간으로 샘플링되는 "실시간" 스트리밍 시나리오에서, 서버 버퍼는 데이터 패킷이 샘플링 시점에 놓여지고 송신 시간에는 추출되는 실지로 물리적인 버퍼이다. "프리-인코딩" 스트리밍 시나리오에서는, 데이터 패킷들이 실시간으로 샘플링되지 않고 사전-인코딩된 파일 내에 저장되며 이 파일로부터 송신 시간에 독출되는데, 이 경우 서버 버퍼는 샘플링 시간(프리-인코딩된 파일의 제1 데이터 패킷이 송신되면 스트리밍 서버에서 개시되는 샘플링 클록에 대하여 계산되는 시간) 및 데이터 패킷의 송신 시간 간의 차이를 나타낸다.
스트리밍 클라이언트에서, 미디어 데이터는 송신 채널로부터 수신되고, 클라이언트 버퍼(80)내에 버퍼링된다. 프리-디코더 버퍼(84) 및 지터 버퍼(82)의 파라미터들은 버퍼 제어기(110)에 의해 설정된다. 파라미터들은 서버가 추천한 프리-디코더 버퍼링 파라미터들 및 클라이언트에 의하여 예측된 바와 같이 요구되는 추가적인 버퍼링의 조합(aggregate)으로서 선택된다. 클라이언트는 이용 가능한 송신 채널 상의 예상되는 패킷 전달 지연 변화(즉, 지터)를 용인(tolerate)하려면 무엇이 필요한 지를 예측한다. 이와 같은 조합(aggregate)은 클라이언트의 최대 버퍼링 능력에 의하여 제한된다. 미디어 디코더(90)는 미디어 데이터를 클라이언트 버퍼로부터 추출하고, 해당하는 미디어 데이터를 문제가 되는 미디어 타입에 적합한 방법으로 디코딩한다. 일반적으로, 미디어 데이터는 복수 개의 상이한 미디어 타입들을 포함할 것이라는 점이 이해되어야 한다. 예를 들면, 만일 서버로부터 송신되는 미디어 데이터가 비디오 순서를 나타내면, 비디오 데이터에 추가하여 적어도 오디오 성분을 포함할 가능성이 높다. 그러므로, 미디어 디코더(90)가 도 1에 도시된 바와 같은 하나 만이 아니라 그 이상의 디코더를 포함할 수 있는데, 이러한 디코더에는 예를 들면 특정 비디오 코딩 표준에 따라서 구현된 비디오 디코더 및 이와 관련된 오디오 디코더를 포함할 수 있다. 미디어 데이터가 미디어 디코더(90)에 의해 디코딩되면, 미디어 데이터는 포스트-디코더 버퍼(100)로 출력되는데, 여기서 미디어 데이터는 스케줄링된 재생 시간까지 임시 저장되고, 이 시점에서 미디어 데이터는 버퍼 제어기(110)의 제어 하에 포스트-디코더 버퍼로부터 디스플레이/재생 장치(120)로 전달된다.
본 발명에 따르면, 버퍼 제어기(110)는 디코딩될 후속 유닛의 지시자(indication)를 어플리케이션 레벨 시그널링 엔진(70)으로 제공하도록 적응된다. 어플리케이션 레벨 시그널링 엔진은 또한 디코딩될 후속 유닛에 대한 정보를 스트리밍 서버로 송신하도록 적응되는데, 이는 도 3에서 부재 번호 300으로 표시된 바와 같다. 송신된 정보는 디코딩될 후속 유닛의 유닛 번호(NDU라고 불린다) 및 해당 유닛이 속하는 패킷의 시퀀스 번호(NDSN이라고 불린다)를 나타낸다. H.264 페이로드의 경우, 유닛은 NAL이다. 도 1에 도시된 바와 같이, 스트리밍 클라이언트(60)는 버퍼(80)내에 현재 존재하는 코딩된 유닛들의 디코딩 순서(y 값들)를 연산하고, 디코딩될 후속 유닛을 가장 작은 y 값에 기반하여 결정하기 위한 코드를 포함하는 소프트웨어 프로그램(112)을 가진다. 이러한 검색 결과에 기반하여, 어플리케이션 레벨 시그널링 엔진(70)은 후속 유닛의 유닛 번호 및 후속 유닛이 속하는 패킷의 시퀀스 번호를 스트리밍 서버(10)로 시그널링할 수 있다.
구현예 I, II 및 III을 수행하기 위하여, 버퍼 제어기(110)는 디코딩될 후속 패킷의 지시자를 어플리케이션 레벨 시그널링 엔진(70)으로 제공하도록 적응된다. 그러면, 어플리케이션 레벨 시그널링 엔진은 디코딩될 후속 유닛에 대한 정보를 스트리밍 서버로 송신하도록 적응되는데, 이는 도 3에서 부재 번호 300으로 표시된 바와 같다. 송신된 정보는 디코딩될 패킷의 시퀀스 번호를 나타낸다. H.264 페이로드의 경우, 패킷의 시퀀스 번호는 후속 NAL의 DON이다. 또는, 후속 NAL의 DON 및 후속 NAL을 운반하는 패키지의 시퀀스 번호가 서버로 시그널링 된다. 도 1에 도시된 바와 같이, 스트리밍 클라이언트(60)는 버퍼(80)내에 현재 존재하는 패킷들의 디코딩 순서(y 값들)를 연산하고, 디코딩될 후속 패킷을 가장 작은 y 값에 기반하여 결정하기 위한 코드를 포함하는 소프트웨어 프로그램(112)을 가진다. 이러한 검색 결과에 기반하여, 어플리케이션 레벨 시그널링 엔진(70)은 디코딩될 후속 패키지의 시퀀스 번호를 스트리밍 서버(10)로 시그널링할 수 있다.
서버(10)에서, 소프트웨어 프로그램(36)이 이용되어 유닛 시퀀스 번호 목록(34) 및 클라이언트(60)에 의하여 제공된 정보로부터 수신기 버퍼 내의 패킷들의 목록 또는 유닛들의 목록이 결정된다.
전술된 본 발명의 실시예들에서, 수신기는 디코딩될 후속 유닛이 속하는 패킷의 시퀀스 번호 및 유닛 번호를 시그널링한다는 점에 유의하여야 한다. 이와 다르게는, 수신기는 유닛 번호 대신에 디코딩될 후속 유닛의 타임스탬프를 시그널링할 수도 있다. 동일한 패킷 내의 각 유닛이 상이한 타임스탬프를 가지는 한, 송신기는 시그널링된 타임스탬프 및 시퀀스 번호로부터 명백하게 해당 유닛을 식별할 수 있다. 그러나, 동일한 패킷 내의 수 개의 유닛들이 동일한 타임스탬프를 가질 수도 있다. 이러한 경우에, 유닛 번호를 시그널링하는 경우에서와 같이 송신기가 수신기 버퍼 상태를 정확하게 유도하는 것은 힘들게 되고, 이 경우의 최대 예측 에러는 프레임의 데이터량이 된다.
더 나아가, 인터리빙되는 페이로드 포맷에 더하여, H.26L도 디코딩 순서 및 출력 순서를 디커플링(decouples)한다. 다시 말하면, 픽처의 디코딩 순서는 그들의 출력 순서와 같을 수 없다. 종래의 코딩 표준에서, 오직 소위 B-프레임에 대해서만 디코딩 순서 및 출력 순서가 다를 수 있었는데, B-프레임에 대해서는 상호-예측(inter-prediction)을 위하여 두 개의 기준 프레임들이 이용되고, 사전 프레임 및 사후 프레임은 출력 순서로 배열된다(즉, 두 개의 사전 프레임들이 디코딩 순서를 가진다). B 프레임들은 릴리즈 5 코덱의 모든 프로파일에서는 더 이상 사용되지 않았다. H.26L에서 디코딩 순서 및 출력 순서는 모든 프레임에 대해서 상이할 수 있다. 이러한 사실이 버퍼를 예측하는데 영향을 준다. 그럼에도 불구하고, 본 발명은 B-프레임들에 관련된 디코딩에도 적용될 수 있으며, 더욱 일반적으로 예측 경로가 역방향으로 진행하는 경우에도 적용될 수 있다. 이러한 상황에서, 어느 시점에서든 임의의 프레임은 사후 프레임(샘플링 도메인에서)으로부터 예측되고, 수신기 버퍼 듀레이션은 OBSN 및 재생 지연 시그널링으로부터 유도되는 것에 비하여 감소할 수 있다.
RFC 3640을 이용하여 송신된 AAC, AAC+, 및 다른 mpeg-4 오디오 스트림에 관하여는, AU-Index 및 AU-Index-Delta 파라미터가 각 오디오 액세스 유닛 또는 단편(fragments)을 위한 고유 인덱스 번호를 정의한다. DON은 단지 이러한 인덱스와 동일하다. 그러므로, 본 발명의 구현예 II는 RFC 3640을 사용하여 송신되는 이러한 음성 스트리밍 방법에도 역시 적용될 수 있다.
비록 발명이 하나 이상의 실시예에 관해서 그것에 관하여 기술되었지만, 당업자들에게는 본 발명의 기술적 사상에서 벗어나지 않는 범위에서 다양한 변화, 삭제, 및 회피 설계가 가능하다는 점을 이해할 수 있을 것이다.
본 발명은 일반적으로 멀티미디어 스트리밍에 적용될 수 있으며, 특히, 멀티미디어 스트리밍 서비스 내의 서버 및 클라이언트 간의 속도 적응을 위하여 적용될 수 있다.

Claims (56)

  1. 멀티미디어 스트리밍 네트워크 내의 클라이언트 내의 수신기 버퍼의 레벨을 제어하기 위한 방법으로서, 상기 스트리밍 네트워크는 복수 개의 패킷들 내의 스트리밍 데이터를 상기 클라이언트로 제공하기 위한 서버를 포함하고, 데이터 패킷들 중 적어도 일부는 상기 수신기 버퍼 내에 저장됨으로써 상기 서버에 의한 데이터 송신량 및 상기 클라이언트에 의한 데이터 이용량(data usage) 간의 차이를 보상하며, 상기 패킷들은 상기 클라이언트로의 재생 순서에 관련된 복수 개의 디코딩 순서값들에 기반한 디코딩 순서로 디코딩되는 방법에 있어서,
    상기 클라이언트 내에서 상기 디코딩 순서값들에 기반하여 상기 수신기 버퍼 내의 패킷들 중에 디코딩될 후속 패킷을 결정하는 단계; 및
    디코딩될 상기 후속 패킷을 나타내는 정보를 상기 서버로 시그널링함으로써, 상기 클라이언트로 하여금 상기 정보에 기반하여 상기 클라이언트로 제공되는 스트리밍 데이터량(streaming data amount)을 조절하도록 허용하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 패킷들은 디코딩될 후속 유닛을 포함하는 복수 개의 유닛들과 관련되고,
    디코딩될 후속 패킷은 디코딩될 상기 후속 유닛이 속한 패킷인 것을 특징으 로 하는 방법.
  3. 제2항에 있어서,
    상기 데이터 패킷들 각각은 상기 클라이언트 및 상기 서버 모두에게 알려진 시퀀스 번호를 가지고,
    상기 서버로 시그널링되는 상기 정보는 디코딩될 상기 후속 패킷의 시퀀스 번호를 나타내는 것을 특징으로 하는 방법.
  4. 제2항에 있어서,
    상기 유닛들 각각은 유닛 번호를 가지고, 상기 데이터 패킷들 각각은 상기 클라이언트 및 상기 서버 모두에게 알려진 시퀀스 번호를 가지며,
    상기 서버로 시그널링되는 상기 정보는 디코딩될 상기 후속 유닛의 유닛 번호 및 상기 후속 유닛이 속하는 상기 패킷의 시퀀스 번호를 나타내는 것을 특징으로 하는 방법.
  5. 제4항에 있어서, 상기 서버는,
    전송된 유닛들의 목록 및 유닛 번호들 및 전송된 상기 유닛들이 속하는 상기 패킷의 시퀀스 번호 및 상기 시퀀스 번호 및 유닛 번호로부터 상기 디코딩 순서로의 매핑의 기록을 유지하고, 상기 매핑에 기반하여 상기 수신기 버퍼 내의 데이터 유닛들을 결정함으로써, 상기 서버 내의 상기 결정에 기반하여 상기 클라이언트로 제공되는 상기 스트리밍 데이터량을 조절하는 것을 특징으로 하는 방법.
  6. 제4항에 있어서,
    상기 서버로 시그널링되는 상기 정보는, 디코딩될 상기 후속 유닛의 스케줄링된 재생 시간 및 상기 후속 유닛의 디코딩 시간 간의 차이를 더욱 나타내는 것을 특징으로 하는 방법.
  7. 제3항에 있어서, 상기 서버는,
    전송된 패킷 시퀀스 번호들의 목록 및 상기 시퀀스 번호들 및 상기 디코딩 간의 매핑을 유지하고, 상기 매핑에 기반하여 상기 수신기 버퍼 내의 데이터 패킷들을 결정함으로써, 상기 서버 내의 상기 결정에 기반하여 상기 클라이언트로 제공되는 상기 스트리밍 데이터량을 조절하는 것을 특징으로 하는 방법.
  8. 제3항에 있어서,
    상기 서버로 시그널링된 상기 정보는 디코딩될 상기 후속 패킷의 스케줄링된 재생 시간 및 상기 후속 패킷의 디코딩 시간 간의 차이를 더욱 나타내는 것을 특징으로 하는 방법.
  9. 제6항 또는 제7항에 있어서,
    상기 서버로 시그널링된 상기 정보는 상기 클라이언트에 의하여 수신된 가장 높은 시퀀스 번호를 더욱 나타냄으로써 상기 서버로 하여금 상기 수신기 버퍼 내의 상기 데이터 패킷들을 결정하도록 허용하는 것을 특징으로 하는 방법.
  10. 제2항에 있어서,
    상기 유닛들 각각은 타임스탬프를 가지고, 상기 데이터 패킷들 각각은 상기 클라이언트 및 서버 모두에게 알려진 시퀀스 번호를 가지며,
    상기 서버로 시그널링된 상기 정보는 디코딩될 상기 후속 유닛의 타임스탬프 및 상기 후속 유닛이 속하는 상기 패킷의 시퀀스 번호를 나타내는 것을 특징으로 하는 방법.
  11. 제1항에 있어서,
    상기 데이터 패킷들은 복수 개의 네트워크 요약 계층(NAL, network abstraction layer) 유닛들을 운반하고,
    각 NAL 유닛들은 디코딩 순서 및 송신용 페이로드 구조 내의 NAL 유닛 디코딩 순서를 나타내는 디코딩 순서 번호(DON, decoding order number)를 포함하며,
    상기 서버로 시그널링되는 상기 정보는 디코딩될 상기 후속 NAL과 관련된 상기 DON을 나타내는 것을 특징으로 하는 방법.
  12. 제11항에 있어서, 상기 서버는,
    전송된 NAL 유닛들의 목록 및 상기 NAL 유닛들 및 디코딩 순서 간의 매핑을 유지하여, 상기 매핑에 기반하여 상기 수신기 버퍼 내의 상기 데이터 패킷들을 결정함으로써, 상기 서버 내의 상기 결정에 기반하여 상기 클라이언트로 제공되는 상기 스트리밍 데이터량을 조절하는 것을 특징으로 하는 방법.
  13. 제1항에 있어서,
    상기 데이터 패킷들은 복수 개의 네트워크 요약 계층(NAL) 유닛들을 운반하고,
    각 NAL 유닛들은 디코딩 순서 및 송신용 페이로드 구조 내의 NAL 유닛 디코딩 순서를 나타내는 디코딩 순서 번호(DON)를 포함하며,
    상기 서버로 시그널링되는 상기 정보는 디코딩될 상기 후속 NAL을 운반하는 상기 데이터 패킷의 시퀀스 번호 및 상기 후속 NAL의 상기 디코딩 순서와 관련되는 상기 DON을 나타내는 것을 특징으로 하는 방법.
  14. 멀티미디어 스트리밍 네트워크에 있어서,
    적어도 하나의 클라이언트; 및
    복수 개의 패킷들 내의 스트리밍 데이터를 상기 클라이언트로 제공하기 위한 서버를 포함하며, 상기 클라이언트는,
    디코딩될 데이터 패킷들 중 적어도 일부를 저장하여 상기 서버에 의한 데이터 송신량 및 상기 클라이언트에 의한 데이터 이용량 간의 차이를 보상하기 위한 수신기 버퍼로서, 상기 패킷들은 상기 클라이언트로의 재생 순서에 관련된 복수 개의 디코딩 순서값들에 기반한 디코딩 순서로 디코딩되는 수신기 버퍼; 및
    상기 디코딩 순서값들에 기반하여 상기 버퍼 내의 패킷들 중 디코딩될 상기 후속 패킷을 나타내는 정보를 상기 서버로 시그널링함으로써 상기 서버로 하여금 상기 클라이언트로 제공되는 스트리밍 데이터량을 조절하도록 허용하는 메커니즘을 포함하는 것을 특징으로 하는 멀티미디어 스트리밍 네트워크.
  15. 제14항에 있어서,
    상기 패킷들은 디코딩될 후속 유닛을 포함하는 복수 개의 유닛들과 관련되고,
    디코딩될 후속 패킷은 디코딩될 상기 후속 유닛이 속한 패킷인 것을 특징으로 하는 멀티미디어 스트리밍 네트워크.
  16. 제14항에 있어서,
    상기 데이터 패킷들 각각은 상기 클라이언트 및 상기 서버 모두에게 알려진 시퀀스 번호를 가지고,
    상기 서버로 시그널링되는 상기 정보는 디코딩될 상기 후속 패킷의 시퀀스 번호를 나타내는 것을 특징으로 하는 멀티미디어 스트리밍 네트워크.
  17. 제15항에 있어서,
    상기 유닛들 각각은 유닛 번호를 가지고, 상기 데이터 패킷들 각각은 상기 클라이언트 및 상기 서버 모두에게 알려진 시퀀스 번호를 가지며,
    상기 서버로 시그널링되는 상기 정보는 디코딩될 상기 후속 유닛의 유닛 번호 및 상기 후속 유닛이 속하는 상기 패킷의 시퀀스 번호를 나타내는 것을 특징으로 하는 멀티미디어 스트리밍 네트워크.
  18. 제17항에 있어서, 상기 서버는,
    전송된 유닛들의 목록 및 유닛 번호들 및 전송된 상기 유닛들이 속하는 상기 패킷의 시퀀스 번호 및 상기 시퀀스 번호 및 유닛 번호로부터 상기 디코딩 순서로의 매핑의 기록을 유지하고, 상기 매핑에 기반하여 상기 수신기 버퍼 내의 데이터 유닛들을 결정함으로써, 상기 서버 내의 상기 결정에 기반하여 상기 클라이언트로 제공되는 상기 스트리밍 데이터량을 조절하는 것을 특징으로 하는 멀티미디어 스트리밍 네트워크.
  19. 제17항에 있어서,
    상기 서버로 시그널링되는 상기 정보는, 디코딩될 상기 후속 유닛의 스케줄링된 재생 시간 및 상기 후속 유닛의 디코딩 시간 간의 차이를 더욱 나타내는 것을 특징으로 하는 멀티미디어 스트리밍 네트워크.
  20. 제17항에 있어서,
    상기 서버로 시그널링된 상기 정보는 상기 클라이언트에 의하여 수신된 가장 높은 시퀀스 번호를 더욱 나타냄으로써 상기 서버로 하여금 상기 수신기 버퍼 내의 상기 데이터 패킷들을 결정하도록 허용하는 것을 특징으로 하는 멀티미디어 스트리밍 네트워크.
  21. 제15항에 있어서,
    상기 유닛들 각각은 타임스탬프를 가지고, 상기 데이터 패킷들 각각은 상기 클라이언트 및 서버 모두에게 알려진 시퀀스 번호를 가지며,
    상기 서버로 시그널링된 상기 정보는 디코딩될 상기 후속 유닛의 타임스탬프 및 상기 후속 유닛이 속하는 상기 패킷의 시퀀스 번호를 나타내는 것을 특징으로 하는 멀티미디어 스트리밍 네트워크.
  22. 제16항에 있어서, 상기 서버는,
    전송된 패킷 시퀀스 번호들의 목록 및 상기 시퀀스 번호들 및 상기 디코딩 간의 매핑을 유지하고, 상기 매핑에 기반하여 상기 수신기 버퍼 내의 데이터 패킷들을 결정함으로써, 상기 서버 내의 상기 결정에 기반하여 상기 클라이언트로 제공되는 상기 스트리밍 데이터량을 조절하는 것을 특징으로 하는 멀티미디어 스트리밍 네트워크.
  23. 제16항에 있어서,
    상기 서버로 시그널링된 상기 정보는 디코딩될 상기 후속 패킷의 스케줄링된 재생 시간 및 상기 후속 패킷의 디코딩 시간 간의 차이를 더욱 나타내는 것을 특징으로 하는 멀티미디어 스트리밍 네트워크.
  24. 제22항에 있어서,
    상기 서버로 시그널링된 상기 정보는 상기 클라이언트에 의하여 수신된 가장 높은 시퀀스 번호를 더욱 나타냄으로써 상기 서버로 하여금 상기 수신기 버퍼 내의 상기 데이터 패킷들을 결정하도록 허용하는 것을 특징으로 하는 멀티미디어 스트리밍 네트워크.
  25. 제14항에 있어서,
    상기 데이터 패킷들은 복수 개의 네트워크 요약 계층(NAL) 유닛들을 운반하고,
    각 NAL 유닛들은 디코딩 순서 및 송신용 페이로드 구조 내의 NAL 유닛 디코딩 순서를 나타내는 디코딩 순서 번호(DON)를 포함하며,
    상기 서버로 시그널링되는 상기 정보는 디코딩될 상기 후속 NAL과 관련된 상기 DON을 나타내는 것을 특징으로 하는 멀티미디어 스트리밍 네트워크.
  26. 제25항에 있어서, 상기 서버는,
    전송된 NAL 유닛들의 목록 및 상기 NAL 유닛들 및 디코딩 순서 간의 매핑을 유지하여, 상기 매핑에 기반하여 상기 수신기 버퍼 내의 상기 데이터 패킷들을 결 정함으로써, 상기 서버 내의 상기 결정에 기반하여 상기 클라이언트로 제공되는 상기 스트리밍 데이터량을 조절하는 것을 특징으로 하는 멀티미디어 스트리밍 네트워크.
  27. 제24항에 있어서,
    상기 데이터 패킷들은 복수 개의 네트워크 요약 계층(NAL) 유닛들을 운반하고,
    각 NAL 유닛들은 디코딩 순서 및 송신용 페이로드 구조 내의 NAL 유닛 디코딩 순서를 나타내는 디코딩 순서 번호(DON)를 포함하며,
    상기 서버로 시그널링되는 상기 정보는 디코딩될 상기 후속 NAL을 운반하는 상기 데이터 패킷의 시퀀스 번호 및 상기 후속 NAL의 상기 디코딩 순서와 관련되는 상기 DON을 나타내는 것을 특징으로 하는 멀티미디어 스트리밍 네트워크.
  28. 멀티미디어 스트리밍 네트워크 내의 클라이언트 장치로서, 상기 스트리밍 네트워크는 복수 개의 패킷들 내의 스트리밍 데이터를 상기 클라이언트 장치로 제공하기 위한 서버 장치를 포함하고, 상기 패킷들은 상기 클라이언트 장치 내의 재생 순서에 관련된 복수 개의 디코딩값들에 기반한 디코딩 순서로 디코딩되는 클라이언트 장치에 있어서,
    디코딩될 데이터 패킷들 중 적어도 일부를 저장하여 상기 서버 장치에 의한 데이터 송신량 및 상기 클라이언트 장치에 의한 데이터 이용량 간의 차이를 보상하 기 위한 수신기 버퍼; 및
    상기 디코딩 순서값들에 기반하여 상기 수신기 버퍼 내의 패킷들 중 디코딩될 상기 후속 패킷을 나타내는 정보를 상기 서버 장치로 시그널링함으로써 상기 서버 장치로 하여금 상기 클라이언트 장치로 제공되는 스트리밍 데이터량을 조절하도록 허용하는 메커니즘을 포함하는 것을 특징으로 하는 클라이언트 장치.
  29. 제28에 있어서,
    상기 패킷들은 디코딩될 후속 유닛을 포함하는 복수 개의 유닛들과 관련되고,
    디코딩될 후속 패킷은 디코딩될 상기 후속 유닛이 속한 패킷인 것을 특징으로 하는 클라이언트 장치.
  30. 제29항에 있어서,
    상기 유닛들 각각은 유닛 번호를 가지고, 상기 데이터 패킷들 각각은 상기 클라이언트 장치 및 상기 서버 장치 모두에게 알려진 시퀀스 번호를 가지며,
    상기 서버 장치로 시그널링되는 상기 정보는 디코딩될 상기 후속 유닛의 유닛 번호 및 상기 후속 유닛이 속하는 상기 패킷의 시퀀스 번호를 나타내는 것을 특징으로 하는 클라이언트 장치.
  31. 제29항에 있어서,
    상기 유닛들 각각은 타임스탬프를 가지고, 상기 데이터 패킷들 각각은 상기 클라이언트 장치 및 서버 장치 모두에게 알려진 시퀀스 번호를 가지며,
    상기 서버 장치로 시그널링된 상기 정보는 디코딩될 상기 후속 유닛의 타임스탬프 및 상기 후속 유닛이 속하는 상기 패킷의 시퀀스 번호를 나타내는 것을 특징으로 하는 클라이언트 장치.
  32. 제28항에 있어서,
    상기 디코딩 순서값들에 기반하여 상기 수신기 버퍼 내의 상기 데이터 패킷들의 디코딩 순서 및
    상기 디코딩 순서값들에 기반하여 상기 수신기 버퍼 내의 상기 데이터 패킷들 중 디코딩될 상기 후속 패킷을 결정하기 위한 실행가능한 코드들을 포함하는 소프트웨어 프로그램을 더 포함하는 것을 특징으로 하는 클라이언트 장치.
  33. 제28항에 있어서,
    상기 데이터 패킷들 각각은 상기 클라이언트 장치 및 서버 장치 모두에게 알려진 시퀀스 번호를 가지며,
    상기 서버 장치로 시그널링된 상기 정보는 디코딩될 상기 후속 패킷의 시퀀스 번호를 나타내는 것을 특징으로 하는 클라이언트 장치.
  34. 제28항에 있어서,
    상기 데이터 패킷들은 복수 개의 네트워크 요약 계층(NAL) 유닛들을 운반하고,
    각 NAL 유닛들은 디코딩 순서 및 송신용 페이로드 구조 내의 NAL 유닛 디코딩 순서를 나타내는 디코딩 순서 번호(DON)를 포함하며,
    상기 서버 장치로 시그널링되는 상기 정보는 디코딩될 상기 후속 NAL과 관련된 상기 DON을 나타내는 것을 특징으로 하는 클라이언트 장치.
  35. 제28항에 있어서,
    상기 데이터 패킷들은 복수 개의 네트워크 요약 계층(NAL) 유닛들을 운반하고,
    각 NAL 유닛들은 디코딩 순서 및 송신용 페이로드 구조 내의 NAL 유닛 디코딩 순서를 나타내는 디코딩 순서 번호(DON)를 포함하며,
    상기 서버 장치로 시그널링되는 상기 정보는 디코딩될 상기 후속 NAL을 운반하는 상기 데이터 패킷의 시퀀스 번호 및 상기 후속 NAL의 상기 디코딩 순서와 관련되는 상기 DON을 나타내는 것을 특징으로 하는 클라이언트 장치.
  36. 스트리밍 데이터를 제공하기 위한 멀티미디어 스트리밍 네트워크 내의 서버 장치로서, 상기 멀티미디어 스트리밍 네트워크는 복수 개의 패킷들 내의 스트리밍 데이터를 수신하고 상기 데이터 패킷들을 재생 순서에 관련된 복수 개의 디코딩 순서값에 기반한 디코딩 순서로 디코딩하기 위한 클라이언트 장치를 포함하고, 상기 클라이언트 장치는 데이터 패킷들 중 적어도 일부를 저장하여 상기 서버 장치에 의한 데이터 송신량 및 상기 클라이언트 장치에 의한 데이터 이용량 간의 차이를 보상하기 위한 수신기 버퍼를 포함하는 서버 장치에 있어서,
    상기 클라이언트 장치 내의 상기 디코딩 순서값들에 기반하여 상기 수신기 버퍼 내의 패킷들 중 디코딩될 후속 패킷을 나타내는 정보를 상기 클라이언트 장치로부터 수신하기 위한 메커니즘; 및
    상기 정보에 기반하여 상기 수신기 버퍼 내의 상기 패킷들을 결정함으로써, 상기 클라이언트 장치로 제공된 상기 스트리밍 데이터량을 조절하여 상기 수신기 버퍼의 레벨을 제어하기 위한 소프트웨어 프로그램을 포함하는 것을 특징으로 하는 서버 장치.
  37. 제36항에 있어서,
    상기 패킷들은 디코딩될 후속 유닛을 포함하는 복수 개의 유닛들과 관련되고,
    디코딩될 후속 패킷은 디코딩될 상기 후속 유닛이 속한 패킷인 것을 특징으로 하는 서버 장치.
  38. 제37항에 있어서,
    상기 유닛들 각각은 유닛 번호를 가지고, 상기 데이터 패킷들 각각은 상기 클라이언트 장치 및 상기 서버 장치 모두에게 알려진 시퀀스 번호를 가지며,
    상기 서버 장치로 시그널링되는 상기 정보는 디코딩될 상기 후속 유닛의 유닛 번호 및 상기 후속 유닛이 속하는 상기 패킷의 시퀀스 번호를 나타내는 것을 특징으로 하는 서버 장치.
  39. 제37항에 있어서,
    상기 유닛들 각각은 타임스탬프를 가지고, 상기 데이터 패킷들 각각은 상기 클라이언트 장치 및 서버 장치 모두에게 알려진 시퀀스 번호를 가지며,
    상기 서버 장치로 시그널링된 상기 정보는 디코딩될 상기 후속 유닛의 타임스탬프 및 상기 후속 유닛이 속하는 상기 패킷의 시퀀스 번호를 나타내는 것을 특징으로 하는 서버 장치.
  40. 제36항에 있어서,
    상기 데이터 패킷들 각각은 상기 클라이언트 장치 및 서버 장치 모두에게 알려진 시퀀스 번호를 가지며,
    상기 클라이언트 장치로부터 수신된 상기 정보는 디코딩될 상기 후속 패킷의 시퀀스 번호를 나타내는 것을 특징으로 하는 서버 장치.
  41. 제36항에 있어서,
    상기 데이터 패킷들은 복수 개의 네트워크 요약 계층(NAL) 유닛들을 운반하고,
    각 NAL 유닛들은 디코딩 순서 및 송신용 페이로드 구조 내의 NAL 유닛 디코딩 순서를 나타내는 디코딩 순서 번호(DON)를 포함하며,
    상기 클라이언트 장치로부터 수신된 상기 정보는 디코딩될 상기 후속 NAL과 관련된 상기 DON을 나타내는 것을 특징으로 하는 서버 장치.
  42. 제36항에 있어서,
    상기 데이터 패킷들은 복수 개의 네트워크 요약 계층(NAL) 유닛들을 운반하고,
    각 NAL 유닛들은 디코딩 순서 및 송신용 페이로드 구조 내의 NAL 유닛 디코딩 순서를 나타내는 디코딩 순서 번호(DON)를 포함하며,
    상기 클라이언트 장치로부터 수신된 상기 정보는 디코딩될 상기 후속 NAL을 운반하는 상기 데이터 패킷의 시퀀스 번호 및 상기 후속 NAL의 상기 디코딩 순서와 관련되는 상기 DON을 나타내는 것을 특징으로 하는 서버 장치.
  43. 멀티미디어 스트리밍 네트워크 내의 클라이언트 장치 내에서 사용되는 소프트웨어 생성물을 내장한 컴퓨터 판독가능 저장 매체로서, 상기 스트리밍 네트워크는 복수 개의 패킷들 내의 스트리밍 데이터를 상기 클라이언트 장치로 제공하기 위한 서버 장치를 포함하고, 상기 패킷들은 상기 클라이언트 장치 내의 재생 순서에 관련된 복수 개의 디코딩값들에 기반한 디코딩 순서로 디코딩되고, 상기 클라이언트 장치는 디코딩될 데이터 패킷들 중 적어도 일부를 저장하여 데이터 송신 간의 차이를 보상하기 위한 수신기 버퍼를 포함하는 소프트웨어 생성물에 있어서,
    상기 디코딩 순서값들에 기반하여 상기 수신기 버퍼 내의 데이터 패킷들의 디코딩 순서를 결정하기 위한 코드; 및
    상기 디코딩 순서값들에 기반하여 상기 수신기 버퍼 내의 데이터 패킷들 중 디코딩될 후속 패킷을 결정하여, 디코딩될 상기 후속 패킷을 나타내는 정보를 상기 서버 장치로 제공하고, 상기 서버 장치로 하여금 수신기 버퍼의 레벨을 제어하기 위하여 상기 정보에 기반하여 상기 클라이언트 장치로 제공되는 스트리밍 데이터량을 조절하도록 허용하기 위한 코드를 포함하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  44. 제43에 있어서,
    상기 패킷들은 디코딩될 후속 유닛을 포함하는 복수 개의 유닛들과 관련되고,
    디코딩될 후속 패킷은 디코딩될 상기 후속 유닛이 속한 패킷인 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  45. 제44항에 있어서,
    상기 유닛들 각각은 유닛 번호를 가지고, 상기 데이터 패킷들 각각은 상기 클라이언트 장치 및 상기 서버 장치 모두에게 알려진 시퀀스 번호를 가지며,
    상기 서버 장치로 시그널링되는 상기 정보는 디코딩될 상기 후속 유닛의 유닛 번호 및 상기 후속 유닛이 속하는 상기 패킷의 시퀀스 번호를 나타내는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  46. 제44항에 있어서,
    상기 유닛들 각각은 타임스탬프를 가지고, 상기 데이터 패킷들 각각은 상기 클라이언트 장치 및 서버 장치 모두에게 알려진 시퀀스 번호를 가지며,
    상기 서버 장치로 시그널링된 상기 정보는 디코딩될 상기 후속 유닛의 타임스탬프 및 상기 후속 유닛이 속하는 상기 패킷의 시퀀스 번호를 나타내는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  47. 제43항에 있어서,
    상기 데이터 패킷들 각각은 상기 클라이언트 장치 및 서버 장치 모두에게 알려진 시퀀스 번호를 가지며,
    상기 서버 장치로 제공된 시그널링된 상기 정보는 디코딩될 상기 후속 패킷의 시퀀스 번호를 나타내는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  48. 제43항에 있어서,
    상기 데이터 패킷들은 복수 개의 네트워크 요약 계층(NAL) 유닛들을 운반하고,
    각 NAL 유닛들은 디코딩 순서 및 송신용 페이로드 구조 내의 NAL 유닛 디코딩 순서를 나타내는 디코딩 순서 번호(DON)를 포함하며,
    상기 서버 장치로 제공되는 상기 정보는 디코딩될 상기 후속 NAL과 관련된 상기 DON을 나타내는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  49. 제43항에 있어서,
    상기 데이터 패킷들은 복수 개의 네트워크 요약 계층(NAL) 유닛들을 운반하고,
    각 NAL 유닛들은 디코딩 순서 및 송신용 페이로드 구조 내의 NAL 유닛 디코딩 순서를 나타내는 디코딩 순서 번호(DON)를 포함하며,
    상기 서버 장치로 제공되는 상기 정보는 디코딩될 상기 후속 NAL을 운반하는 상기 데이터 패킷의 시퀀스 번호 및 상기 후속 NAL의 상기 디코딩 순서와 관련되는 상기 DON을 나타내는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  50. 스트리밍 데이터를 제공하기 위한 멀티미디어 스트리밍 네트워크 내의 서버 장치 내에서 이용되는 소프트웨어 생성물을 내장한 컴퓨터 판독가능 저장 매체로서, 상기 멀티미디어 스트리밍 네트워크는 복수 개의 패킷들 내의 스트리밍 데이터를 수신하고 상기 데이터 패킷들을 재생 순서에 관련된 복수 개의 디코딩 순서값에 기반한 디코딩 순서로 디코딩하기 위한 클라이언트 장치를 포함하고, 상기 클라이언트 장치는 데이터 패킷들 중 적어도 일부를 저장하여 상기 서버 장치에 의한 데이터 송신량 및 상기 클라이언트 장치에 의한 데이터 이용량 간의 차이를 보상하기 위한 수신기 버퍼를 포함하는 소프트웨어 생성물에 있어서,
    상기 디코딩 순서를 상기 클라이언트 장치로 전송된 상기 데이터 패킷들의 상기 시퀀스 번호들로 연관시키기 위한 코드; 및
    상기 연관 및 상기 클라이언트 장치 내의 디코딩될 상기 후속 패킷을 나타내며 상기 클라이언트 장치에 의하여 제공된 정보에 기반하여 상기 수신기 버퍼 내의 상기 데이터 패킷들을 결정함으로써, 상기 서버 장치로 하여금 상기 수신기 버퍼의 레벨을 제어하기 위하여 상기 클라이언트 장치로 제공되는 상기 스트리밍 데이터량을 조절하도록 허용하기 위한 코드를 포함하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  51. 제50항에 있어서,
    상기 패킷들은 디코딩될 후속 유닛을 포함하는 복수 개의 유닛들과 관련되고,
    디코딩될 후속 패킷은 디코딩될 상기 후속 유닛이 속한 패킷인 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  52. 제50항에 있어서,
    상기 유닛들 각각은 유닛 번호를 가지고, 상기 데이터 패킷들 각각은 상기 클라이언트 장치 및 상기 서버 장치 모두에게 알려진 시퀀스 번호를 가지며,
    상기 서버 장치로 시그널링되는 상기 정보는 디코딩될 상기 후속 유닛의 유닛 번호 및 상기 후속 유닛이 속하는 상기 패킷의 시퀀스 번호를 나타내는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  53. 제50항에 있어서,
    상기 유닛들 각각은 타임스탬프를 가지고, 상기 데이터 패킷들 각각은 상기 클라이언트 장치 및 서버 장치 모두에게 알려진 시퀀스 번호를 가지며,
    상기 서버 장치로 시그널링된 상기 정보는 디코딩될 상기 후속 유닛의 타임스탬프 및 상기 후속 유닛이 속하는 상기 패킷의 시퀀스 번호를 나타내는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  54. 제50항에 있어서,
    상기 데이터 패킷들 각각은 상기 클라이언트 장치 및 서버 장치 모두에게 알려진 시퀀스 번호를 가지며,
    상기 클라이언트 장치에 의하여 제공된 상기 정보는 디코딩될 상기 후속 패킷의 시퀀스 번호를 나타내는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  55. 제50항에 있어서,
    상기 데이터 패킷들은 복수 개의 네트워크 요약 계층(NAL) 유닛들을 운반하고,
    각 NAL 유닛들은 디코딩 순서 및 송신용 페이로드 구조 내의 NAL 유닛 디코딩 순서를 나타내는 디코딩 순서 번호(DON)를 포함하며,
    상기 클라이언트 장치에 의하여 제공된 상기 정보는 디코딩될 상기 후속 NAL과 관련된 상기 DON을 나타내는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  56. 제50항에 있어서,
    상기 데이터 패킷들은 복수 개의 네트워크 요약 계층(NAL) 유닛들을 운반하고,
    각 NAL 유닛들은 디코딩 순서 및 송신용 페이로드 구조 내의 NAL 유닛 디코딩 순서를 나타내는 디코딩 순서 번호(DON)를 포함하며,
    상기 클라이언트 장치에 의하여 제공된 상기 정보는 디코딩될 상기 후속 NAL을 운반하는 상기 데이터 패킷의 시퀀스 번호 및 상기 후속 NAL의 상기 디코딩 순서와 관련되는 상기 DON을 나타내는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
KR1020067026043A 2004-05-12 2005-05-11 멀티미디어 스트리밍의 속도 적응을 위한 버퍼 레벨시그널링 KR100865955B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US10/844,062 2004-05-12
US10/844,062 US7542435B2 (en) 2004-05-12 2004-05-12 Buffer level signaling for rate adaptation in multimedia streaming
US10/901,015 2004-07-28
US10/901,015 US20050254499A1 (en) 2004-05-12 2004-07-28 Buffer level signaling for rate adaptation in multimedia streaming

Publications (2)

Publication Number Publication Date
KR20070010200A KR20070010200A (ko) 2007-01-22
KR100865955B1 true KR100865955B1 (ko) 2008-10-30

Family

ID=35394505

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067026043A KR100865955B1 (ko) 2004-05-12 2005-05-11 멀티미디어 스트리밍의 속도 적응을 위한 버퍼 레벨시그널링

Country Status (3)

Country Link
EP (1) EP1745609B1 (ko)
KR (1) KR100865955B1 (ko)
WO (1) WO2005112367A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140055019A (ko) 2012-10-30 2014-05-09 에스케이플래닛 주식회사 무선 데이터 네트워크의 스트리밍 서비스 장치 및 제어 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3350972B1 (en) * 2015-09-18 2019-07-31 Sony Mobile Communications Inc. Methods and devices for controlling streaming over a radio network
US11153359B2 (en) 2015-09-29 2021-10-19 Sony Group Corporation User equipment and media streaming network assistance node

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004008673A2 (en) 2002-07-16 2004-01-22 Nokia Corporation Method for enabling packet transfer delay compensation in multimedia streaming
US20040057420A1 (en) 2002-09-23 2004-03-25 Nokia Corporation Bandwidth adaptation
US20040066742A1 (en) 2002-10-04 2004-04-08 Victor Varsa Method and apparatus for multimedia streaming in a limited bandwidth network with a bottleneck link
US20040193762A1 (en) 2003-02-13 2004-09-30 Nokia Corporation Rate adaptation method and device in multimedia streaming

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004008673A2 (en) 2002-07-16 2004-01-22 Nokia Corporation Method for enabling packet transfer delay compensation in multimedia streaming
US20040057420A1 (en) 2002-09-23 2004-03-25 Nokia Corporation Bandwidth adaptation
US20040066742A1 (en) 2002-10-04 2004-04-08 Victor Varsa Method and apparatus for multimedia streaming in a limited bandwidth network with a bottleneck link
US20040193762A1 (en) 2003-02-13 2004-09-30 Nokia Corporation Rate adaptation method and device in multimedia streaming

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Adaptive multimedia stream presentation in mobile computingenvironment(IEEE, 1999)
Optimal patching schemes for efficient multimedia streaming (1999)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140055019A (ko) 2012-10-30 2014-05-09 에스케이플래닛 주식회사 무선 데이터 네트워크의 스트리밍 서비스 장치 및 제어 방법

Also Published As

Publication number Publication date
KR20070010200A (ko) 2007-01-22
EP1745609B1 (en) 2013-06-26
EP1745609A1 (en) 2007-01-24
WO2005112367A1 (en) 2005-11-24

Similar Documents

Publication Publication Date Title
US7542435B2 (en) Buffer level signaling for rate adaptation in multimedia streaming
US7421508B2 (en) Playback of streamed media
US7111058B1 (en) Server and method for transmitting streaming media to client through a congested network
JP5068947B2 (ja) ピクチャの符号化方法
CN103828324B (zh) 用于自适应比特率管理的方法、设备和系统
US7920492B1 (en) Devices, softwares and methods for redundantly encoding a data stream for network transmission with adjustable redundant-coding delay
MXPA05000594A (es) Metodo para permitir la compensacion del retardo de transferencia del paquete en emision en continua para multimedia.
AU2002231829A1 (en) Method and system for buffering streamed data
KR20070085403A (ko) 단 대 단 VoIP 매체 지연을 관리하는 방법 및 장치
GB2525948A (en) Packet loss and bandwidth coordination
Kalman et al. Adaptive playout for real-time media streaming
KR20080108457A (ko) 비디오 신호 전송 방법 및 비디오 코더
CN101584188A (zh) 在复合与非复合rtcp分组之间划分rtcp带宽
KR100865955B1 (ko) 멀티미디어 스트리밍의 속도 적응을 위한 버퍼 레벨시그널링
GB2432995A (en) Processing packets in a voice and data integration system
US9313338B2 (en) System, device, and method of voice-over-IP communication
WO2004086721A2 (en) Transmitting over a network
KR102118678B1 (ko) 부호화된 비디오 스트림 전송 장치 및 방법
KR100601934B1 (ko) 적응적 스트리밍 장치 및 방법
US7477598B2 (en) Adaptive stream switching with minimized switching delay
US9812144B2 (en) Speech transcoding in packet networks
US20050175028A1 (en) Method for improving the quality of playback in the packet-oriented transmission of audio/video data
KR20050019880A (ko) 멀티미디어 스트리밍에서 패킷 전달 지연 보상을 가능하게하기 위한 방법
Balaouras et al. Multimedia transport protocols for wireless networks
Prasad et al. Congestion controlling for streaming media through buffer management and jitter control

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: 20121009

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20131001

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20141006

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150918

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160921

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170919

Year of fee payment: 10