KR20130004567A - 적응형 스트리밍을 위한 다중 경로 전달 - Google Patents

적응형 스트리밍을 위한 다중 경로 전달 Download PDF

Info

Publication number
KR20130004567A
KR20130004567A KR1020127021648A KR20127021648A KR20130004567A KR 20130004567 A KR20130004567 A KR 20130004567A KR 1020127021648 A KR1020127021648 A KR 1020127021648A KR 20127021648 A KR20127021648 A KR 20127021648A KR 20130004567 A KR20130004567 A KR 20130004567A
Authority
KR
South Korea
Prior art keywords
bit rate
path
client device
communication interface
chunk
Prior art date
Application number
KR1020127021648A
Other languages
English (en)
Other versions
KR101709371B1 (ko
Inventor
기욤 비쇼
스떼판느 구아슈
Original Assignee
톰슨 라이센싱
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 톰슨 라이센싱 filed Critical 톰슨 라이센싱
Publication of KR20130004567A publication Critical patent/KR20130004567A/ko
Application granted granted Critical
Publication of KR101709371B1 publication Critical patent/KR101709371B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/631Multimode Transmission, e.g. transmitting basic layers and enhancement layers of the content over different transmission paths or transmitting with different error corrections, different keys or with different transmission protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • 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/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • 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/70Media network packetisation
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4621Controlling the complexity of the content stream or additional data, e.g. lowering the resolution or bit-rate of the video stream for a mobile client with a small screen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet

Abstract

본 발명은 일반적으로 적응형 스트리밍에 관한 것으로, 더 상세하게는 다수의 통신 경로를 통해 적응형 스트리밍 기법을 이용하여 컨텐츠를 전달하는 방법 및 이 방법을 구현한 장치에 관한 것이다. 이에 따라, 본 발명은, 적어도 제1 통신 인터페이스(CI1) 및 제2 통신 인터페이스(CI2)를 포함하는 클라이언트 장치(CD)에서 렌더링될 컨텐츠를 제공하는 방법에 관한 것이고, 상기 제1 통신 인터페이스(CI1) 및 상기 제2 통신 인터페이스(CI2)는 통신 주소를 갖고, 상기 컨텐츠는 통신 주소를 갖는 제1 서버 인터페이스(SI1) 및 제2 서버 인터페이스(SI2)를 통해 클라이언트 장치(CD)에 액세스가능하고, 제1 경로(P1)는 상기 제1 인터페이스(CI1)의 주소 및 제1 서버 인터페이스(SI1)의 주소에 의해 식별되며, 제2 경로(P2)는 상기 제2 인터페이스(CI2)의 주소 및 제2 서버 인터페이스(SI2)의 주소에 의해 식별되며, 상기 컨텐츠는 지원된 비트 레이트(BRA, BRB) 제약에 대응하는 인코딩 품질을 갖는 적어도 2개의 버전 하에서 이용가능하며, 적어도 2개의 버전 각각은 컨텐츠의 동일한 렌더링 기간에 대응하는 청크들로 일시적으로 분할되며, 청크는 시간 인덱스(i) 및 상기 지원된 비트 레이트(BRA, BRB) 중 하나에 의해 식별된다. 본 발명에 따른 방법은 제1 경로(P1) 상의 제1 이용가능 비트 레이트(BR1)를 측정하고, 제2 경로(P2) 상의 제2 이용가능 비트 레이트(BR2)를 측정하는 단계(S1); 측정된 제1 이용가능 비트 레이트(BR1) 및 제2 이용가능 비트 레이트(BR2)로부터 지원된 비트 레이트(BRA, BRB) 중 요청된 비트 레이트(RBR)를 결정하는 단계(S2); 시간 인덱스(i) 및 요청된 비트 레이트(RBR)에 의해 식별되는 청크의 제1 부분을 수신하기 위한 제1 요청을 제1 경로(P1)를 통해 송신하고, 청크의 제1 부분과 상보적인 청크의 제2 부분을 수신하기 위한 제2 요청을 제2 경로(P2)를 통해 송신하는 단계(S3); 및 제1 경로(P1)를 통해 요청된 제1 부분을 수신하고, 제2 경로(P2)를 통해 요청된 제2 부분을 수신하는 단계(S4)를 포함한다.

Description

적응형 스트리밍을 위한 다중 경로 전달{MULTIPATH DELIVERY FOR ADAPTIVE STREAMING}
본 발명은 일반적으로 적응형 스트리밍에 관한 것으로, 더 상세하게는 다수의 통신 경로를 통해 적응형 스트리밍 기법을 통해 컨텐츠를 전달하는 방법 및 이 방법을 구현한 장치에 관한 것이다.
이 섹션은 이하 설명되고/거나 청구된 본 발명의 다양한 측면에 관련된 것일 수 있는 다양한 기술의 양상을 독자에게 소개하기 위한 것이다. 확실히, 이러한 설명은 본 발명의 다양한 측면을 더 잘 이해하게 하기 위한 배경 정보를 독자에게 제공하는데 도움이 될 것이다. 따라서, 이들 내용은 이러한 측면에서 읽어야 하며, 종래 기술을 인정하는 것이 아니라는 점이 이해되어야 한다.
미디어 전달 스트리밍 솔루션(Media delivery streaming solution)은 IETF RFC 2326에 정의된 바와 같은 실시간 스트리밍 프로토콜(Real time streaming Protocol (RTSP)), 마이크로소프트(Microsoft) 사의 마이크로소프트 미디어 서버(Microsoft Media Server (MMS)) 독자 프로토콜, 또는 어도브 시스템즈(Adobe Systems) 사의 실시간 메시지 프로토콜(Real Time Messaging Protocol (RTMP)) 독자 프로토콜과 같은 프로토콜에 주로 기반한다.
최근에는, 무브 네트웍스(Move Networks) 사의 "이동 적응형 스트림(Move Adaptive Stream)", 애플(Apple Inc.) 사의 "HTTP 라이브 스트리밍", 및 마이크로소프트 사의 "인터넷 정보 서비스 스무드 스트리밍(IIS (Internet Information Services) Smooth Streaming)"와 같은 상이한 특색을 가진 HTTP 프로토콜에 기반한 적응형 스트리밍 기법이 부상하고 있다. 이들 스트리밍 솔루션에 HTTP 프로토콜을 사용하는 이점은 끊임없이 NAT 및 방화벽을 넘나드는 능력이다. HTTP 적응형 스트리밍 기술은 대역폭 제약에 맞추기 위해 비디오 품질을 계속적이고 적절하게 업그레이드하거나 다운그레이드함으로써 이용가능한 대역폭에 관한 불규칙한 네트워크 거동을 보상하는 방법을 제공한다.
더 상세히 말하면, 무브 네트웍스 사의 WO 2005/109224 A2호에는 각각이 낮거나 높은 비트 레이트로 인코딩되며, 청크(chunk)라고도 불리는 복수의 스트림릿(streamlet)들로 미디어-투-스트림이 미리 조직된다는 사실로 인해 변동 네트워크 대역폭에 적응할 수 있으며, 클라이언트 측에 호스팅되는 에이전트 제어기 모듈(Agent Controller Module)에서의 메커니즘을 설명한다. 유용한 네트워크 대역폭 및 일부 다른 추가적인 정보에 따르면, 에이전트 제어기 모듈에 통합된 모니터링 도구는 HTTP 프로토콜을 사용하여, TCP/IP 연결을 통해 스트리밍될 가장 적합한 청크를 송신하도록 서버에 요청한다. 기본 청크 별로, 에이전트 제어기 모듈에 따라 품질이 상향 시프트되거나 하향 시프트된다.
무브 네트웍스 사의 WO 2009/020552 A1호에는 클라이언트와 단일 서버 사이의 다중 연결을 사용하여 클라이언트가 한번에 하나보다 많은 스트림릿(streamlet) 또는 스트림릿의 일부를 "동시 검색(parallel retrieval)"하는 방법을 수행하는 시스템이 개시되어 있다.
마이크로소프트 사의 직원인 Alex Zambelli의 IIS 스무드 스트리밍 기술 개요(2009년 3월)에는 TCP/IP 연결을 통한 HTTP 프로토콜에 기반한 IIS 스무드 스트리밍 기법이 설명되어 있다. 서버에 의해 스트리밍될 미디어는, 예를 들어 1초 내지 10초의 기간을 나타내는 청크들로 미리 절단된다. 이들 청크들은 H. 264/MPEG-4 AVC 표준에 따라 상이한 비트로 인코딩되어 MP4 파일 포맷 컨테이너에 저장된다. 네트워크 대역폭 변동에 따라 비트 레이트를 선택하고 대응하는 청크들을 서버에 끊임없이 요청하는 메커니즘은 애플리케이션 코드, 실버라이트 애플리케이션(Silverlight application)을 통해 클라이언트 측에 전적으로 구현된다. HTTP 라이브 스트리밍은 연결 속도의 변화에 응답하여 상이한 데이터 레이트의 스트림들 사이의 동적 스위칭을 지원한다.
애플 사는 "HTTP 라이브 스트리밍 draft-pantos-http-live-streaming-02"라는 명칭의 HTTP 스트리밍 방법 규격에 대해 2009년 10월에 IETF에 인터넷 드래프트(Internet Draft)를 제출하였다. HTTP 스트리밍 아키텍처는 서버, 웹 서버 또는 웹 캐싱 시스템을 통한 유통, 및 클라이언트라는 3개의 축을 기반으로 한다. 스트리밍될 미디어는 H. 264로 인코딩되는 비디오 및 AAC로 인코딩되는 오디오이다. 서버에서, 이것은 MPEG-TS 컨테이너에 인캡슐화되고 애플 스트림 세그멘터(Apple stream segmenter)라는 명칭의 특정 수단에 의해 동일 기간의 청크들로 조각화된다. 이 도구는 *.ts 파일로 저장되는 청크들 및 청크 플레이리스트를 구성하는 인덱스 파일 *;m3u8을 생성한다. 그 후, 클라이언트는 URL 포인터 덕분에 먼저 인덱스 파일을 가져온다. 인덱스 파일은 차례로 이용가능 미디어 파일의 위치, 복호화 키, 및 임의의 이용가능 대체 스트림들을 특정한다. 선택된 스트림의 경우, 클라이언트는 각각의 이용가능 미디어 파일을 순차적으로 다운로드한다.
일반적으로, HTTP 적응형 스트리밍 방법은 네트워크 혼잡에 따른 최종 사용자의 미디어 관측 경험을 적응시키는 것을 지향한다. 실제로, 클라이언트 장치에 의해 측정된 네트워크 대역폭이 감소하자마자, 클라이언트 장치는 네트워크 대역폭 요구사항에 관해 덜 제한적인 청크들을 요청한다. 반대로, 혼잡 문제가 감소하는 경우, 클라이언트 장치는 네트워크 대역폭 요구사항에 관해 더 제한적인 청크들(높은 대역폭 청크들)을 요청한다.
도 1a는 종래 기술에 따른 적응형 스트리밍 방법의 주요 단계들을 예시한다. 도 1a는 점진적인 품질 증가를 암시하는 지원된 비트 레이트를 증가시킴에 따라 4개의 버전(버전 A, 버전 B, 버전 C, 및 버전 D)으로 (사전) 인코딩된 비디오 컨텐츠를 도시한다. 인코딩된 비디오 컨텐츠는 하나의 비트 레이트로부터 다른 비트 레이트로의 끊임없는 스위칭을 허용하는 청크들로 분할된다. 모든 비디오 청크들은 동일한 고정 기간에 대응한다. 이들 청크들은 더 크거나 작을 수 있는데, 이로 인해 지원된 비트 레이트에 따라 높거나/낮은 대역폭을 요구하고, 우수하거나/열악한 비디오 품질을 제공한다. 서버(CS1)에 저장된 컨텐츠의 모든 버전들(버전 A, 버전 B, 버전 C, 및 버전 D)이 고정된 개수의 청크들로 분할되는데, 도 1a에는 14개의 청크들이 도시되어 있다.
도 1a에는, 종래 기술에 따른 방법의 제1 단계가 도시되어 있는데, 클라이언트 장치(CD)는 클라이언트 장치(CD)를 서버(CS1)에 연결하는 경로(P1)의 비트 레이트(BR1)를 모니터링한다.
제2 단계에서, 클라이언트 장치(CD)는 요청된 비트 레이트(RBR)가 측정된 비트 레이트(BR1)에 따른다고 판단한다. 예를 들어, 요청된 비트 레이트(RBR)는 지원된 비트 레이트들(BRA, BRB, BRC, 및 BRD) 중 가장 큰 것이며, 측정된 비트 레이트(BR1)보다 낮거나 같다.
제3 단계에서, 클라이언트 장치는 요청된 비트 레이트(RBR) 및 시간 인덱스(i)(여기서, 1 < i < 14)에 의해 식별되는 청크를 경로(P1)를 통해 요청한다.
제4 단계에서, 클라이언트 장치(CD)는 서버(CS1)로부터 요청된 비트 레이트(RBR)로 상기 청크(i)를 경로(P1)로부터 계속 수신한다.
4개의 단계들은 청크가 필요할 때마다 반복된다.
도 1b는 앞서 설명한 종래 기술의 적응형 스트리밍 방법을 위한 비트 레이트의 시간적 진화를 도시한다.
도 1b에 있는 곡선은 모니터링 비트 레이트(BR1)를 도시한다. 곡선 아래에서, 서버로부터 다운로드되는 청크를 나타낸다. 통상적인 적응형 클라이언트는 이용가능한 비트 레이트(또는 대역폭)를 계속 모니터링하고 검색될 다음 청크들이 이용가능 비트 레이트(BR1)보다 낮거나 같은 요청된 비트 레이트를 선택할 것이다. 당연히, 구현예 및 환경(네트워크 기술, 애플리케이션)에 따라, 전략은 보수적이거나, 즉 클라이언트는 스무드 업그레이드 이행을 보장하는 일정 시간 후에만 높은 비트 레이트의 청크를 요청하고, 클라이언트는 급속한 다운그레이드 이행을 암시하는 대역폭 감소를 검출하자마자 낮은 비트 레이트 청크를 요청하거나, 더 진보적일 수 있다. 도 1b에서, 인코딩된 컨텐츠의 4개의 버전에 대응하는 것으로 설명된 4개의 상이한 비트 레이트들이 있다.
앞서 설명한 적응형 스트리밍 솔루션을 이용하여, 클라이언트(CD)에 의해 청크마다 획득된 비디오 스트림은 시간이 지남에 따라 일관된 품질을 갖는 것은 아니다. 대역폭이 낮아지는 경우, 사용자 경험은 손상될 수 있다는 점이 이해된다. 비디오가 전혀 또는 거의 인터럽트되지 않지만, 그 품질은 매우 좋지 않을 수 있다. 송신되는 컨텐츠의 품질을 저하시키는 것 이외에 이러한 상황을 막을 수 있는 다른 특별한 솔루션은 없다. 수신기 버퍼의 수를 증가시키는 것은 건조 효과를 방지할 것인데, 여기서 청크 전달은 예상보다 더 많은 시간이 걸리지만, 일시적으로 낮은 대역폭 이용성에 대해 아무 일도 할 수 없을 것이다.
본 발명의 목적 중에 하나는 클라이언트에 의해 제어되는 적어도 2개의 (독립) 전달 경로를 사용함으로써 대역폭의 일시적인 부족(또는 비트 레이트의 빠른 속도 저하)을 해결하는 것이다. 이들 전달 경로는 가능한 직교성 있는(orthogonal) 송신 특성을 나타내야 한다. 이는 적어도 2개의 상이한 액세스 네트워크(광대역 xDSL 및 셀룰러 3G/LTE)를 통해 서버에 연결되고/되거나 적어도 2개의 유사한 (가능하면 2개의 상이한 인터넷 사업자에 의해 관리되는) 액세스 네트워크들에 연결된 서버에 연결된 하나의 클라이언트(예를 들어, 단말기)를 가짐으로써 획득될 수 있으며, 또한 이는 각각이 상이한 액세스 네트워크에 연결된 적어도 2개의 서버에 연결된 하나의 클라이언트를 가짐으로써 실현될 수 있다. 후자가 더 구현하기 쉬울 수 있으며, 본 발명에서는 이 구현에 초점을 맞출 것이다. 문서의 나머지에서, 서버는 전용 경로/링크에 연결된 물리적 박스 또는 전용 경로/링크를 통해 연결된 논리 엔티티로서 여겨질 수 있다.
적어도 2개의 링크/경로를 가진 본 발명이 적용된다는 것이 이해된다. 하나의 기계 호스팅 논리 서버의 경우, 기계가 다중 호밍(multi homing)을 지원해야 한다(즉, 각각이 전용 네트워크 주소(예를 들어, IP)를 갖는 하나보다 많은 네트워크 인터페이스에 연결될 수 있음).
하나의 서버에 저장된 청크 파일들을 갖는 대신에, 2개의 상이한 통신 경로를 통해 접속 가능한 2개의 서버에 저장된다(각 서버는 자신의 네트워크 액세스 및 자신의 IP 주소를 가짐).
이용가능한 비트 레이트가 경로 중 하나에서 속도가 느리다는 것을 클라이언트가 검출한 경우, 다음 청크 또는 청크의 다음 부분이 대체 서버로부터 다운로드될 수 있다. 이는 (하나의 메인 경로를 사용하고, 메인 경로가 혼잡스러운 때 대체 경로를 사용하는) 페일오버 알고리즘(failover algorithm), (동시에 2개의 경로 전부를 사용하며, 청크는 서버의 하나로부터 부분적으로 전달되고, 다른 서버로부터 부분적으로 전달되는) 로드 공유 알고리즘(load sharing algorithm), (메인 경로(P1) 및 추가 비트 레이트가 글로벌 비트 레이트 목표를 달성하는데 필요한 경우의 추가 경로들(P2 및 P3)에 의해 최소 글로벌 비트 레이트를 보장하는) 대역폭 제한 알고리즘을 통해 구현될 수 있다.
본 발명이 해결하려 하는 기술적 문제는 통신 경로를 통해 일시적인 낮은 대역폭 이용성에 의해 발생하는 문제에 덜 민감하도록 렌더링을 위한 적응형 스트리밍 방법을 개선하는 것이다.
이에 따라, 본 발명은 제1 측면에 따라, 통신 주소를 갖는 적어도 제1 통신 인터페이스(CI1) 및 제2 통신 인터페이스(CI2)를 포함하는 클라이언트 장치(CD)에서 렌더링될 컨텐츠를 제공하는 방법에 관한 것이고, 상기 컨텐츠는 통신 주소를 갖는 적어도 제1 서버 통신 인터페이스(SI1) 및 제2 서버 통신 인터페이스(SI2)를 통해 클라이언트 장치(CD)에 액세스가능하고, 제1 경로(P1)는 제1 통신 인터페이스(CI1)의 통신 주소 및 제1 서버 통신 인터페이스(SI1)의 주소에 의해 식별되며, 제2 경로(P2)는 제2 통신 인터페이스(CI2)의 통신 주소 및 제2 서버 통신 인터페이스(SI2)의 주소에 의해 식별되며, 컨텐츠는 지원된 비트 레이트(BRA, BRB) 제약에 대응하는 인코딩 품질을 갖는 적어도 2개의 버전 하에서 이용가능하며, 적어도 2개의 버전 각각은 컨텐츠의 동일한 렌더링 기간에 대응하는 청크들로 일시적으로 분할되며, 청크는 시간 인덱스(i) 및 지원된 비트 레이트(BRA, BRB) 중 하나에 의해 식별되며, 컨텐츠는 제1 경로(P1) 및 제2 경로(P2)를 통해 클라이언트 장치(CD)에 의해 동시에 액세스가능하다.
본 발명에 따른 방법은 클라이언트 장치(CD)에서, 제1 경로(P1) 상의 제1 이용가능 비트 레이트(BR1)를 측정하고, 제2 경로(P2) 상의 제2 이용가능 비트 레이트(BR2)를 측정하는 단계(S1); 측정된 제1 이용가능 비트 레이트(BR1) 및 측정된 제2 이용가능 비트 레이트(BR2)로부터, 지원된 비트 레이트(BRA, BRB) 중에서 요청된 비트 레이트(RBR)를 결정하는 단계(S2); 시간 인덱스(i) 및 요청된 비트 레이트(RBR)에 의해 식별되는 청크의 제1 부분을 수신하기 위한 제1 요청을 제1 경로(P1)를 통해 송신하고 청크의 제1 부분과 상보적인 상기 청크의 제2 부분을 수신하기 위한 제2 요청을 제2 경로(P2)를 통해 송신하는 단계(S3); 및 제1 경로(P1)를 통해 요청된 제1 부분을 수신하고, 제2 경로(P2)를 통해 요청된 제2 부분을 수신하는 단계(S4)를 포함한다.
이에 따라, 본 발명은 제2 측면에 따라, 렌더링될 컨텐츠를 수신하는 클라이언트 장치(CD)에 관한 것이고, 상기 클라이언트 장치(CD)는 적어도 제1 통신 인터페이스(I1) 및 제2 통신 인터페이스(I2)를 포함하고, 상기 제1 및 제2 통신 인터페이스(CI1, CI2)는 통신 주소를 갖고, 상기 컨텐츠는 통신 주소를 갖는 적어도 제1 및 제2 서버 통신 인터페이스(SI1, SI2)를 통해 클라이언트 장치(CD)에 액세스가능하고, 제1 경로(P1)는 상기 제1 통신 인터페이스(CI1)의 통신 주소 및 제1 서버 통신 인터페이스(SI1)의 주소에 의해 식별되며, 제2 경로(P2)는 상기 제2 통신 인터페이스(CI2)의 통신 주소 및 제2 서버 통신 인터페이스(SI2)의 주소에 의해 식별되며, 상기 컨텐츠는 지원된 비트 레이트(BRA, BRB) 제약에 대응하는 인코딩 품질을 갖는 적어도 2개의 버전 하에서 이용가능하며, 적어도 2개의 버전 각각은 컨텐츠의 동일한 기간에 대응하는 청크들로 일시적으로 분할되며, 청크는 시간 인덱스(i) 및 지원된 비트 레이트(BRA, BRB)에 의해 식별되며, 상기 컨텐츠는 상기 제1 경로(P1) 및 상기 제2 경로(P2)를 통해 클라이언트 장치(CD)에 의해 동시에 액세스가능하다.
본 발명에 따른 클라이언트 장치(CD)는 제1 경로(P1) 상의 제1 이용가능 비트 레이트(BR1)를 측정하고, 제2 경로(P2) 상의 제2 이용가능 비트 레이트(BR2)를 측정하는 수단; 측정된 제1 이용가능 비트 레이트(BR1) 및 제2 이용가능 비트 레이트(BR2)로부터 지원된 비트 레이트(BRA, BRB) 중 요청된 비트 레이트(RBR)를 결정하는 수단; 시간 인덱스(i) 및 요청된 비트 레이트(RBR)에 의해 식별되는 청크의 제1 부분을 수신하기 위한 제1 요청을 제1 경로(P1)를 통해 송신하고 청크의 제1 부분과 상보적인 청크의 제2 부분을 수신하기 위한 제2 요청을 제2 경로(P2)를 통해 송신하는 수단; 및 제1 경로(P1)를 통해 요청된 제1 부분을 수신하고, 제2 경로(P2)를 통해 요청된 제2 부분을 수신하는 수단을 포함한다.
본 발명은 스위칭 방식 또는 동시 방식 중 어느 하나에 의해 하나보다 많은 서버의 사용에 기반한 종래 기술의 적응형 스트리밍 방법의 향상을 제안하며, 이는 전체적으로 더 우수한 품질, 클라이언트의 측면에서는 개선된 서비스 강인함, 청크들이 SVC에 따라 인코딩된 경우 서버 측면에서 개선된 서비스 확장성을 제공하게 한다.
본 발명의 다른 이점들은 공지된 스트리밍 장치들의 아키텍처와의 호환성에 있다. 본 발명에 따른 방법은 재생될 스트리밍을 수신하는 플레이어에 대한 어떠한 변형 없이 종래 기술에 따른 서버와 클라이언트 사이에 구현될 수 있다.
본 발명은 도면을 참조하여 제한적이지 않은 다음의 실시예 및 구현예에 의해 더 잘 이해되고 예시될 것이다.
도 1a는 앞서 설명한 바와 같이, 종래 기술에 따른 적응형 스트리밍 방법을 사용하여 서버에 컨텐츠를 요청하는 클라이언트 장치(CD)를 도시한다.
도 1b는 평가 비트 레이트에 관해 앞서 설명한 바와 같이, 종래 기술에 따른 적응형 스트리밍 방법에 대응하는 비트 레이트의 시간적 진화를 도시한다.
도 2는 실시예에 따른 다중 경로 적응형 스트리밍 방법의 구현을 도시한다.
도 3a는 실시예에 따른 클라이언트 장치의 블록도이다.
도 3b는 동시 접근법을 사용하여 실시예에 따른 적응형 스트리밍 방법에 관한 측정된 이용가능 비트 레이트의 시간적 진화를 도시한다.
도 4a는 실시예에 따른 적응형 스트리밍 방법에 관한 비트 레이트의 시간적 진화를 도시한다.
도 4b는 페일오버 접근법을 사용하여 실시예에 따른 적응형 스트리밍 방법에 관한 비트 레이트의 시간적 진화를 도시한다.
도 3b에서, 표현된 블록들은 순수 기능 엔티티이며, 반드시 물리적으로 별도의 엔티티에 대응하는 것은 아니다. 즉, 하드웨어 또는 소프트웨어의 형태로 개발되거나, 하나 이상의 집적 회로들에서 구현될 수 있다.
본 발명의 도면 및 설명들은 본 발명의 명확한 이해에 관련된 구성요소를 예시하기 위해 단순화되어 있으며, 명확화를 위해 통상적인 디지털 멀티미디어 컨텐츠 전달 방법 및 시스템들에서 발견되는 다른 많은 구성요소들이 제거되어 있다는 점이 이해되어야 한다. 그러나, 이러한 구성요소들은 당업계에 공지되어 있기 때문에, 이러한 구성요소의 상세한 논의는 여기에서 제공되지 않는다. 본 개시물은 당업자에게 공지된 이러한 모든 변경예 및 변형예에 관한 것이다.
실시예에 따라 컨텐츠를 클라이언트 장치(CD)에 전달하기 위한 다중 경로 적응형 스트리밍 방법이 본 섹션에 설명되어 있으며, 도 2를 참조하여 예시된다.
본 발명에 따른 클라이언트 장치가 도 2에 표현되어 있다. 클라이언트 장치(CD)는 제1 경로(P1) 및 제2 경로(P2)를 통해 컨텐츠에 액세스한다. 제1 경로(P1)는 클라이언트 장치(CD)의 제1 통신 인터페이스(CI1)의 통신 주소 및 제1 서버 통신 인터페이스(SI1)의 통신 주소에 의해 정의된다. 따라서, 제2 경로(P2)는 클라이언트 장치(CD)의 제2 통신 인터페이스(CI2)의 통신 주소 및 제2 서버 통신 인터페이스(SI2)의 통신 주소에 의해 정의된다.
유리하게, 하나의 서버(CS1)가 제1 통신 인터페이스(CI1) 및 제2 통신 인터페이스(CI2)를 포함한다.
유리하게, 제1 통신 인터페이스(CI1) 및 제2 통신 인터페이스(CI2)는 2개의 상이한 서버(CS1 및 CS2)에 포함된다. 이러한 상황은 도 2에 예시될 것이다.
유리하게, 서버들(CS1 및 CS2)은 HTTP 서버들이다.
클라이언트는 또한 플레이어(4)(미도시)에 연결된다. 서버 측에서, TCP/IP 연결을 통한 HTTP 프로토콜을 사용하여, 클라이언트 요청시 청크들이 스트리밍된다. 이하 설명되는 알고리즘에 따라 그리고 경로 비트 레이트 측정 결과에 기반하여 클라이언트는 청크들의 일부를 요청한다. 청크는 디코딩되거나 렌더링되기 전에 클라이언트에 의해 완전히 수신되어야 한다. 클라이언트 장치(CD)는 제1 통신 인터페이스(CI1) 및 제2 통신 인터페이스(CI2)를 통해 동시에 컨텐츠를 요청할 수 있다.
컨텐츠가 상기 경로들(P1 및 P2)을 따라 다운로드될 수 있다는 점이 이해되어야 한다. 다음의 경우, 상기 컨텐츠가 상이한 서버들(CS1 및 CS2)에서 복제되는 상황, 다시 말해 2개의 서버 통신 인터페이스들(SI1 및 SI2)이 2개의 상이한 서버들(CS1 및 CS2)에 위치하는 상황이 설명될 것이다. 이 상황은 서버 통신 인터페이스들(SI1 및 SI2)이 컨텐츠가 저장된 하나의 서버(CS1)에 위치하는 경우와 유사하며, 유일한 차이점은 컨텐츠가 2개의 상이한 서버에서 복제되지 않는다는 것이다. 이는 데이터 리던던시를 제공함으로써 보안성에 기여한다.
예를 들어, 컨텐츠는 클라이언트 측에서 렌더링되기 위해 다운로드된 비디오 컨텐츠 또는 오디오 컨텐츠이다. 예를 들어, 일단 다운로드되면, 클라이언트 장치(CD)는 재생될 청크 별로 플레이어(도 2에 미도시)에 컨텐츠를 송신한다.
예를 들어, 컨텐츠는 컨텐츠 준비 도구에 의해 생성된다. 이 도구는 압축 비디오 및 오디오 컨텐츠(예를 들어, 각각 H264 및 MP3)를 적어도 2개의 목표(또는 지원) 비트 레이트(예를 들어, BRA = 300 kbps, BRB = 600 kbps, BRC = 1000 kbps, BRD = 2000 kbps)로 생성한다. 컨텐츠 준비 도구는 이들을 다중화하여 지원된 비트 레이트당 MPEG 송신 스트림(Transport Stream(TS)) 청크 시리즈를 생성한다.
모든 청크들은 각 목표 비트 레이트에 관해 동일한 컨텐츠 기간(예를 들어, 2초)에 대응한다. 청크는, 예를 들어, 시간 인덱스(i)(본 예에서는 1 < i < 14) 및 지원된 비트 레이트(BRA, BRB, BRC, 및 BRD) 중 하나에 의해 식별된다.
다음의 모든 도면들에서, 청크들은 직사각형 박스로 표현되는데, 박스의 수평 사이즈는 동일하고 앞서 설명한 동일 기간에 대응한다. 직사각형 박스의 수직 사이즈는 사익 청크의 품질을 예시하며, 상기 지원된 비트 레이트(BRA, BRB, BRC, BRD) 중 하나에 대응한다. 청크 시리즈에 속한 모든 청크들은 수직 사이즈가 동일하다. 그러나, 청크 시리즈에 속한 청크들의 사이즈는 반드시 동일할 필요는 없다. 상이한 시간 인덱스에 의해 식별된 시리즈의 청크들의 사이즈는 컨텐츠의 시간적 진화에 따라 다르다.
청크 시리즈들은 도 2에 도시된 바와 같이 서버들(CS1 및 CS2)에 저장되며, "버전 A", "버전 B", "버전 C", 및 "버전 D"에 의해 식별된다. 선택된 표현에서, 서버(CS1 및 CS2)에 저장된 모든 청크들은 시간 인덱스(i)를 제외하고 동일하다.
2개의 서버들(CS1 및 CS2)은 2개의 독립 경로들(P1 및 P2)을 형성하는 2개의 상이한 액세스 네트워크를 통해 클라이언트 장치(CD)에 연결된다.
연결 설정 시에, 매니페스트 파일(manifest file)이 서버들(CS1 및 CS2) 중 적어도 하나로부터 클라이언트 장치(CD)에 의해 수신된다. 이러한 매니페스트 파일은 지원된 비트 레이트(BRA, BRB, BRC, BRD) 리스트를 포함하며, 각각의 지원된 비트 레이트(BRA, BRB, BRC, BRD)에 대해, 리스트에는 청크들의 전체 개수 및 청크 사이즈가 더 포함된다.
유리하게, 대체 서버(또는 대체 서버 통신 인터페이스 주소) 리스트는 상기 매니페스트 파일에 제안된다.
도 3a는 실시예에 따라 클라이언트 장치(CD)에 컨텐츠를 제공하는 방법의 4개의 주요 단계들을 도시한다.
제1 단계(S1)에서, 클라이언트 장치(CD)는 경로들(P1 및 P2)에서 이용가능한 비트 레이트를 모니터링하는데, 이용가능 비트 레이트(BR1)는 경로(P1)에서 계속 측정되며, 이용가능 비트 레이트(BR2)는 경로(P2)에서 측정된다.
유리하게, 비트 레이트(BR1 및 BR2)는 청크 기간보다 낮거나 같은 주기로 측정되는데, 설명한 예시에서 이 주기는 2초이다.
유리하게, 제1 이용가능 비트 레이트(BR1) 및 제2 이용가능 비트 레이트(BR2)를 측정하는 단계(S1)에서는 제1 경로(P1) 및 제2 경로(P2)를 통해 클라이언트 장치(CD)에 의해 송신된 요청 및 이 요청에 응답하여 제1 경로(P1) 및 제2 경로(P2)를 통해 서버들(CS1 및 CS2)에 의해 송신된 확인응답 메시지의 왕복 시간을 계산한다.
제2 단계(S2)에서, 클라이언트 장치(CD)는 제1 비트 레이트(BR1) 및 제2 비트 레이트(BR2)의 측정으로부터 지원된 비트 레이트(BRA, BRB, BRC, BRD) 중 요청된 비트 레이트(RBR)를 결정한다. 요청된 비트 레이트(RBR)는 매니페스트 파일에 정의된 바와 같은 지원된 비트 레이트(BRA, BRB, BRC, BRD) 중에 배타적으로 선택된다. 요청된 비트 레이트(RBR)는 요청 청크의 비트 레이트를 정의한다.
유리하게, 경로들(P1 및 P2) 중 적어도 하나를 통해 지원된 비트 레이트(BRA, BRB)의 리스트를 클라이언트 장치(CD)가 수신하는 단계 및 각각의 지원된 비트 레이트(BRA, BRB)를 위해 청크들의 사이즈를 수신하는 단계를 더 포함한다.
유리하게, 클라이언트 장치(CD)는 제1 경로(P1) 및 제2 경로(P2) 중 적어도 하나를 통해 지원된 비트 레이트(BRA, BRB)에 관한 정보를 수신하고 각각의 지원된 비트 레이트(BRA, BRB)를 위해 청크의 사이즈 관련 정보를 수신하는 수단을 더 포함한다.
유리하게, 요청된 비트 레이트(RBR)를 결정하는 단계(S2)에서는 측정된 제1 이용가능 비트 레이트(BR1)와 측정된 제2 이용가능 비트 레이트(BR2)의 합(SUM)에서 프로비전(provision)을 뺀 것보다 낮거나 같은 지원된 비트 레이트들(BRA, BRB, BRC, BRD) 중 가장 큰 비트 레이트를 선택한다.
유리하게, 요청된 비트 레이트(RBR)를 결정하는 수단은 측정된 제1 이용가능 비트 레이트(BR1)와 측정된 제2 이용가능 비트 레이트(BR2)의 합(SUM)을 평가하도록 조정되며, 측정된 제1 이용가능 비트 레이트(BR1)와 측정된 제2 이용가능 비트 레이트(BR2)의 합(SUM)에서 프로비전을 뺀 것보다 낮거나 같은 지원된 비트 레이트들(BRA, BRB) 중 가장 큰 비트 레이트를 선택하도록 조정된다.
제3 단계(S3)에서, 클라이언트 장치(CD)는 요청된 비트 레이트(RBR) 및 시간 인덱스(i)에 의해 식별되는 청크에 관한 요청을 경로들(P1 및 P2)을 통해 서버들(CS1 및 CS2)에 각각 송신한다. 더 상세히 말하면, 클라이언트 장치(CD)는 요청된 비트 레이트(RBR)로 청크의 제1 부분에 대한 요청을 경로(P1)를 통해 서버(CS1)에 송신하고, 청크의 제1 부분과 상보적인 청크의 제2 부분에 대한 요청을 경로(P2)를 통해 제2 서버(CS2)에 송신한다.
"상보적"이라는 용어를 사용함으로써, 제1 부분과 제2 부분 사이에 중첩부가 없으며, 제1 부분과 제2 부분 모두를 더하면 결과적으로 전체 청크가 된다는 점을 설명하려는 것이다.
제4 단계(S4)에서는 클라이언트 장치(CD)가 제1 경로(P1)를 통해 요청된 제1 부분 및 제2 경로(P2)를 통해 요청된 제2 부분을 동시에 수신한다. 경로들(P1 및 P2)은 청크를 제공하기 위해 동시에 사용된다.
"동시에"라는 용어를 사용함으로써, 전체적으로 단 하나의 청크를 동시에 다운로드하는데 평행한 경로들(P1 및 P2)이 사용된다는 점을 강조하려는 것이다: 청크의 어느 부분도 양쪽 모두의 경로들(P1 및 P2)에 의해 다운로드되지 않는다.
실시예에 따른 클라이언트 장치(CD)는 도 3b에 예시된다. 클라이언트 장치(CD)는 제1 네트워크를 통해 연결된 서버(CS1)의 제1 서버 통신 인터페이스와 통신하기 위한 프로토콜 스택들을 포함하는 제1 네트워크에 대한 제1 인터페이스(CI1) 및 제2 네트워크를 통해 연결된 서버(CS2)의 제2 서버 통신 인터페이스와 통신하기 위한 프로토콜 스택들을 포함하는 제2 네트워크에 대한 제2 인터페이스(CI2)를 포함한다. 특히, 제1 네트워크 및 제2 네트워크는 인터넷이다. 당연히, 클라이언트가 서버와 통신하게 할 수 있는 임의의 다른 타입의 네트워크일 수 있다.
클라이언트 장치(CD) 또한 컨텐츠를 디코딩하고 렌더링하도록 조정되는 플레이어에 연결된 제3 인터페이스(16)를 포함한다. 당연히, 제3 인터페이스는 하나보다 많은 플레이어에 연결하는 것이 가능할 수 있다. 그것은 하나 이상의 플레이어를 연결하게 할 수 있는 네트워크에 대한 인터페이스일 수 있다. 클라이언트 장치(CD)는 또한 클라이언트에 저장된 애플리케이션을 프로세싱하기 위한 프로세서(11)를 포함한다. 또한, 클라이언트 장치(CD)는 플레이어에 송신되기 전에 서버로부터 수신된 청크들 또는 청크들의 일부를 버퍼링하기 위한 메모리와 같은 저장 수단(12)을 더 포함한다. 특히, 메모리는 비휘발성 메모리이다. 당연히, 클라이언트는 클라이언트에서 실행되는 애플리케이션을 저장하기 위한 비휘발성 메모리(미도시)를 포함한다. 클라이언트는 게이트웨이 장치로 구현될 수 있는데, 클라이언트 장치는 소프트웨어 또는 하드웨어로 구현될 수 있다.
요청된 제1 부분은 제1 사이즈(NB1)를 가지며, 요청된 제2 부분은 제2 사이즈(NB2)를 갖는다.
유리하게, 제1 사이즈(NB1)와 제2 사이즈(NB2)의 비율은 측정된 제1 이용가능 비트 레이트(BR1)와 측정된 제2 이용가능 비트 레이트(BR2)의 비율과 동일하다.
유리하게, 요청된 비트 레이트(RBR)를 결정하는 단계(S2)는 측정된 제1 이용가능 비트 레이트(BR1)와 측정된 제2 이용가능 비트 레이트(BR2)의 합(SUM)을 평가하는 단계를 포함하며, 요청된 비트 레이트(RBR)는 합(SUM)으로부터 판단된다.
유리하게, 제1 사이즈(NB1)는 시간 인덱스(i) 및 요청된 비트 레이트(RBR)에 의해 식별된 청크의 사이즈, 및 측정된 제1 이용가능 비트 레이트(BR1)와 합(SUM) 사이의 비에 비례한다.
당연히, 평행한 경로들(P1, P2,..., Pn)을 통해 청크들의 일부를 요청하는 클라이언트 장치(CD)를 포함하는 실시예에 따른 방법의 다양한 구현예가 이용가능하다. 클라이언트 장치(CD)는 2개의 상이한 지원된 비트 레이트(BR1 및 BRB)에 각각 대응하는 적어도 2개의 버전 하에서 컨텐츠가 이용가능한 n개의 서버들(CS1, CS2,..., CSn)에 대한 연결을 오픈시킨다. 클라이언트 장치(CD)는 이들 서버(CS1, CS2,..., CSn)로부터 컨텐츠의 청크의 비-중첩부에 대한 요청을 동시에 병렬로 송신한다.
이 방법의 이점은 이용가능한 서버들(CS1, CS2,..., CSn)을 통해 트래픽 로드(traffic load)가 확산된다는 것이다. 로드의 재파티션은 청크마다 재계산된다. 각각의 서버(CS1, CS2,..., CSn)로부터 요청된 로드는 이 서버로부터 요청된 청크 부분의 사이즈에 의해 판단된다. 클라이언트 장치(CD)는 바이트 범위의 헤더를 포함함으로써 각각의 서버로부터 검색되기를 바라는 바이트들의 개수를 표시한다. 이러한 헤더는 다음과 같은 포맷을 갖는다.
유리하게, 클라이언트 장치에 의해 송신된 요청은 HTTP 요청이다.
Figure pct00001
상기 예시에서, 요청은 클라이언트 장치가 특정 리소스 "example.com"의 처음 1000 바이트에 대해 요청한다는 것을 의미한다. 주어진 청크의 주어진 범위에 관한 서버와의 각각의 요청/응답을 이용하여 클라이언트 장치(CD)는 현재의 이용가능한 비트 레이트들(BR1 , BR2, ..BRn)을 다음과 같이 계산한다.
Figure pct00002
여기서, nbytesCS1,i는 시간 인덱스(i)("반복 횟수"라고 지칭됨)를 갖는 청크에 관한 서버(CS1)로부터 요청된 바이트의 개수이고, timeCS1,i는 시간 인덱스(i)를 갖는 청크에 관해 서버(CS1)로부터 요청된 청크 부분을 다운로드하기 위해 요구되는 기간이다.
이러한 순간적인 이용가능 비트 레이트 측정은 더 나은 품질 개선 및 심각한 네트워크 저하에 대한 빠른 응답 모두를 보장하는 스무딩 알고리즘을 제공하는데 사용될 수 있다. 스무딩 알고리즘은 다음 청크를 요청하는데 사용될 수 있는 이용가능 비트 레이트 추정치를 부여한다.
Figure pct00003
이 경우, n개의 서버들이 이용가능하며, 다음 청크를 다운로드하기 위한 모든 이용가능 비트 레이트는 다음과 같다.
Figure pct00004
유리하게, 경로(P1)와 경로(P2)를 통해 측정된 제1 이용가능 비트 레이트(BR1) 및 제2 이용가능 비트 레이트(BR2)가 임계값(BRTH1)보다 큰지 여부를 판단하기 위한 단계(SA)(도 3a에 미도시)를 더 포함하는데, 측정된 이용가능 비트 레이트(BR1, BR2)가 임계값(BRTH1)보다 크다고 클라이언트 장치(CD)가 판단한 경로(P1, P2)에 대해 4개의 단계들(S1 , S2, S3, 및 S4)이 배타적으로 수행된다.
다른 실시예에서, 동시 동작 모드는 임계치(BRTH2)보다 크거나 같은 목표 비트 레이트에 도달하기 위해서만 수행된다. 이러한 동작 모드를 사용하는 경우는 주어진 비트 레이트(BRTH2)를 보장하게 하려는 것이지 모든 이용가능 경로들을 어떻게 해서라도 동원하려는 것이 아니다. 다시 말해, 요청된 비트 레이트(BRTH2)에 도달하는데 필요한 경우에만 제2 서버(CS2)를 사용한다
컨텐츠는 경로(P1)를 통해 단 하나의 서버(CS1)로부터 클라이언트 장치(CD)에게 청크 별로 다운로드된다. 경로(P1) 상의 제1 이용가능 비트 레이트(BR1)는 클라이언트 장치(CD)에 의해 측정된다. 클라이언트(CD)가 이용가능 비트 레이트(BR1)가 임계치(BRTH2)보다 낮다고 판단한 경우, 4개의 단계들(S1, S2, S3, 및 S4)이 배타적으로 수행되며, 이 경우 요청된 비트 레이트(RBR)를 결정하는 단계(S2)에서는 임계치(BRTH2)에서 프로비전을 뺀 값보다 낮거나 같은 지원된 비트 레이트(BRA 및 BRB) 중에서 가장 큰 비트 레이트를 선택한다.
다운로드할 다음 청크의 요청된 비트 레이트(RBR)는 전체 이용가능 비트 레이트(BR1+BR2)보다 낮거나 같은 (매니페스트 파일에 정의된 바와 같은 지원된 비트 레이트(BRA, BRB, BRC, BRD) 중에서) 가장 큰 지원된 비트 레이트이다. (바이트로 표현된) 청크 사이즈는 다음과 같이 근사화될 수 있다.
사이즈 = RBR·기간÷8
최소 비트 레이트 임계치를 사용하지 않고, 다음 반복 주기 동안 s번째 서버로부터 다운로드할 바이트의 개수는 전체 대역폭(SUM)으로부터 이용가능 비트 레이트(BR1)의 s번째 측정치의 몫에 정비례한다.
nbytess ,i+1 = 사이즈·Es ,i÷SUM
최소 비트 레이트 임계치(BRTH1)가 적용되기 시작하면, 승산기(ks)를 각각의 서버 기여도(contribution)에 할당하는데, 이는 비트 레이트가 임계치보다 낮은 서버들을 이용 불가능하게 한다. 클라이언트 장치(CD)와 서버(CSs) 사이의 경로(Ls)에 대응하는 비트 레이트(BRs)가 임계치보다 크거나 같으면, ks = 1이다. 비트 레이트(BRs)가 임계치보다 낮으면, ks = 0이다. 전체 비트 레이트 공식은 다음과 같이 된다.
Figure pct00005
이는 명백히 임계치 없이 계산된 전체 비트 레이트보다 낮다. s번째 서버로부터 다운로드될 바이트의 개수는 다음과 같다.
nbytess ,i+1 = 사이즈·ks·Es ,i÷SUM
바이트의 개수는 각각의 서버로부터 적절한 바이트 레인지를 요청하는데 사용되며, n개의 서버들이 있으면, 클라이언트는,
서버(CS1)로부터 범위
Figure pct00006
를 요청하고,
서버(CS2)로부터 범위
Figure pct00007
를 요청하고,
서버(CS3)로부터 범위
Figure pct00008
를 요청하고,
서버(CSk)(k<n)로부터 범위
Figure pct00009
를 요청하고,
서버(CSn)로부터 범위
Figure pct00010
를 요청한다.
마지막 범위는 청크들이 다른 사이즈일 수도 있다는 사실에 대처하는 특정 범위의 종료 표시를 사용한다. 이 경우, 마지막 범위는 클라이언트가 그의 정확한 사이즈를 알지 못하고 청크의 종료를 검색하게 한다.
모든 서버들로부터 바이트 범위를 수신하면, 클라이언트 장치(CD)는 오름 차순으로 바이트 범위를 단순히 연쇄시켜서 전체 청크를 재구성한다. 이 청크는 마치 단 하나의 서버로부터 기원한 것처럼 정상적으로 플레이어 모듈에 의해 소비된다.
유리하게, 청크가 서버들(CS1 및 CS2)로부터 다운로드될 때마다 4개의 단계들(S1 , S2, S3, 및 S4)이 수행된다.
본 발명의 일 실시예에 따른 방법은 또한 경로들 중 하나를 통한 비트 레이트의 갑작스런 감소를 극복하도록 조정된다.
유리하게, 클라이언트 장치(CD)는 경로(P1, P2, 및 P3) 중 하나를 통해 이용가능한 비트 레이트가 임계값(BRTH2 및 BRTH3)보다 낮은지 여부를 결정하는 수단을 포함한다.
예를 들어, 클라이언트 장치(CD)는 청크(i)의 요청 부분의 전달 기간이 임계값(DTH)보다 큰 지를 결정하도록 조정된다.
결과적으로, 클라이언트 장치(CD)는 반복 주기 동안 아웃고잉 요청(예를 들어, 바이트 범위)의 종료를 프로세싱하는 것을 중단하고(또는 무시하고), 범위의 남은 바이트들이 완료되게 하는 새로운 요청을 다음 서버에게 즉시 제출한다. 예를 들어, 다음 서버는 가장 높은 비트 레이트로 도달 가능한 서버 또는 서버 그룹이다. 이 경우, 클라이언트는 아직 수신되지 않은 청크의 부분의 조각을 수신하기 위한 요청을 송신한다.
컨텐츠가 3개의 독립 경로(P1, P2, P3)를 통해 클라이언트 장치(CD)에 접속가능하고, 예를 들어, 이들 컨텐츠는 3개의 서버(CS1, CS2, CS3)에서 복제되며, 요청된 비트 레이트(RBR)는 제1 경로(P1), 제2 경로(P2), 및 제3 경로(P3)를 통해 각각 측정된 제1 이용가능 비트 레이트(BR1), 제2 이용가능 비트 레이트(BR2), 및 제3 이용가능 비트 레이트(BR3)로부터 결정된 일례에서 방법을 예시한다. 클라이언트 장치(CD)는 제1 경로(P1)를 통해 요청된 비트 레이트(RBR) 및 시간 인덱스(i)에 의해 식별된 청크의 제1 부분, 제2 경로(P2)를 통해 청크의 제2 부분, 및 제3 경로(P3)를 통해 청크의 제3부분을 요청한다.
일 실시예에 따른 방법은 요청된 제1 부분 및 제2 부분이 상기 클라이언트 장치(CD)에 의해 완전히 수신되면, 제3 부분의 제1 조각이 클라이언트 장치(CD)에 의해 수신되고, 클라이언트 장치(CD)가 경로(P3)를 통한 이용가능 비트 레이트(BR3)가 임계값(BRTH3)보다 낮다고 판단하면, 시간 인덱스(i)에 의해 식별된 청크의 제3 부분의 제3 조각의 제1 부분을 수신하기 위한 요청을 경로(P1)를 통해 송신하고, 경로(P2)를 통해 시간 인덱스(i)에 의해 식별된 청크의 제3 부분의 제3 조각의 제2 부분을 수신하기 위한 요청을 경로(P2)를 통해 송신하는 단계(S5)를 포함하며, 제1 경로 및 제2 경로는 제3 부분의 상보적인 부분이다.
임계치(BRTH3)보다 낮은 비트 레이트를 갖는 경로(P2)의 경우, 클라이언트는 청크의 조각(예를 들어, 현재 청크)을 요청한다. 예를 들어, 사이즈가 임계치(BRTH3)의 절반인 조각은 청크 기간(예를 들어, 2초)만큼 곱해진다.
Figure pct00011
이 조각은 이러한 특정 경로를 위한 정확한 비트 레이트 평가를 유지하는데만 사용된다. 조각은 플레이어에 전달되지 않는다.
추가적인 실시예에서, 알고리즘은 단 하나의 청크의 기간 동안 로드를 재분배하도록 조정된다.
임계치(BRTH2)를 진화시키는 일 실시예에 대응하는 측정된 비트 레이트(BR1 및 BR2)의 시간적 진화는 도 4a에 도시된다.
제1 곡선(실선)은 제1 경로(P1) 상의 측정된 비트 레이트(BR1)의 시간적 진화를 도시한다. 제2 곡선(파선)은 제2 경로(P2) 상의 측정된 비트 레이트(BR2)의 시간적 진화를 도시한다. 제3 곡선(굵은 파선)은 측정된 전체 비트 레이트(BR1+BR2)의 변화를 도시하는데, 여기에서는 변화가 없다.
이는 앞서 설명한 종래 기술에 비해 유리한 점인데, 단일 경로 상의 측정된 비트 레이트의 시간적 변동이 약간 있는 경우에도, 이 변동은 합산된 비트 레이트(BR1+BR2)를 고려할 때 평균화된다. 상관적으로, 요청된 비트 레이트(BRB)가 상수이며, 클라이언트 장치에 의해 수신된 청크의 품질은 경로(P1 및 P2)에 비트 레이트 변동이 있는 경우에도 변함이 없다.
동일한 도면에는, 클라이언트 장치(CD)에 의해 경로(P1) 및 경로(P2)를 통해 각각 수신된 청크의 제1 부분 및 제2 부분이 도시되어 있다. 수평 줄무늬 박스는 제1 경로(P1)를 통해 수신된 청크의 제1 부분을 도시하며, 민무늬 박스는 제2 경로(P2)를 통해 수신된 청크의 제2 부분을 도시한다. 여기에서, 수신 청크들은 모두 동일한 요청된 비트 레이트(RBR)인데, 그 이유는 합산된 비트 레이트(BR1+BR2)가 상수이기 때문이다. 그러나, 측정된 비트 레이트(BR1 및 BR2)의 상대적인 변동에 따르면, 제1 부분의 사이즈와 제2 부분의 사이즈 사이의 관계는 측정 이용가능 비트 레이트의 시간적 변동으로 인해 시간적으로 변한다.
측정된 비트 레이트의 시간적 진화에 대한 유사한 가설로 시작하면, 도 4b는 임계치(BRTH2)를 고려할 때, 제1 경로(P1) 및 제2 경로(P2)를 통해 다운로드되는 청크들의 부분을 도시한다.
이러한 생각은, 예를 들어, 경로(P1)에서 측정된 이용가능 비트 레이트(BR1)가 임계치(BRTH2)보다 낮은 특정 조건에서만 동시 다운로드를 구현한다는 것이다. 정상 동작시, 단일 서버 상의 다운로드가 구현된다. 이러한 상황은 도 4&에 도시되어 있는데, 여기에서 실선의 곡선이 상기 임계치(BRTH2)보다 낮은 경우에만 클라이언트 장치(CD)는 단일 경로(P1)를 통해 청크를 요청 및 수신한다.
따라서, 측정된 비트 레이트(BR1)가 상기 임계치(BRTH2) 미만이면, 클라이언트 장치는 경로(P1) 상의 제2 이용가능 비트 레이트(BR2)를 측정하고 양쪽 모두의 경로를 통해 청크의 부분들을 요청한다.
명세서, 청구항, 및 도면에 개시된 참조들은 독립적이거나 임의의 적절한 조합으로 제공될 수 있다. 특징들은 적절하다면 하드웨어, 소프트웨어, 또는 이들의 조합으로 구현될 수도 있다.
"하나의 실시예" 또는 "일 실시예"에 대한 참조는 실시예들과 결합하여 설명되는 특정한 피처, 구조, 또는 특징이 본 발명의 적어도 하나의 구현예에 포함될 수 있다는 점을 의미한다. 본 명세서의 다양한 위치에서 "일 실시예에서"라는 구문이 나타나는 것은 반드시 동일한 실시예를 지칭하는 것이 아니고, 또한 별개의 또는 대안적인 실시예들이 다른 실시예들에 대해 반드시 상호 배타적인 것도 아니다.

Claims (15)

  1. 적어도 제1 통신 인터페이스(CI1) 및 제2 통신 인터페이스(CI2)를 포함하는 클라이언트 장치(CD)에서 렌더링될 컨텐츠를 제공하는 방법으로서, 상기 제1 통신 인터페이스(CI1) 및 제2 통신 인터페이스(CI2)는 통신 주소를 갖고, 상기 컨텐츠는 통신 주소를 갖는 적어도 제1 서버 통신 인터페이스(SI1) 및 제2 서버 통신 인터페이스(SI2)를 통해 상기 클라이언트 장치(CD)에 액세스가능하고, 제1 경로(P1)는 상기 제1 통신 인터페이스(CI1)의 통신 주소 및 상기 제1 서버 통신 인터페이스(SI1)의 주소에 의해 식별되며, 제2 경로(P2)는 상기 제2 통신 인터페이스(CI2)의 통신 주소 및 상기 제2 서버 통신 인터페이스(SI2)의 주소에 의해 식별되며, 상기 컨텐츠는 지원된 비트 레이트(BRA, BRB) 제약에 대응하는 인코딩 품질을 갖는 적어도 2개의 버전 하에서 이용가능하며, 상기 적어도 2개의 버전 각각은 상기 컨텐츠의 동일한 렌더링된 기간에 대응하는 청크(chunk)들로 일시적으로 분할되며, 청크는 시간 인덱스(i) 및 상기 지원된 비트 레이트(BRA, BRB) 중 하나에 의해 식별되며, 상기 컨텐츠는 상기 제1 경로(P1) 및 상기 제2 경로(P2)를 통해 상기 클라이언트 장치(CD)에 의해 동시에 액세스가능하며,
    상기 클라이언트 장치(CD)에서,
    상기 제1 경로(P1) 상의 제1 이용가능 비트 레이트(BR1)를 측정하고, 상기 제2 경로(P2) 상의 제2 이용가능 비트 레이트(BR2)를 측정하는 단계(S1);
    상기 측정된 제1 이용가능 비트 레이트(BR1) 및 상기 측정된 제2 이용가능 비트 레이트(BR2)로부터 상기 지원된 비트 레이트(BRA, BRB) 중 요청된 비트 레이트(RBR)를 결정하는 단계(S2);
    상기 시간 인덱스(i) 및 상기 요청된 비트 레이트(RBR)에 의해 식별되는 상기 청크의 제1 부분을 수신하기 위한 제1 요청을 상기 제1 경로(P1)를 통해 송신하고, 상기 청크의 제1 부분과 상보적인 상기 청크의 제2 부분을 수신하기 위한 제2 요청을 상기 제2 경로(P2)를 통해 송신하는 단계(S3); 및
    상기 제1 경로(P1)를 통해 상기 요청된 제1 부분을 수신하고, 상기 제2 경로(P2)를 통해 상기 요청된 제2 부분을 수신하는 단계(S4)를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서, 상기 요청된 제1 부분은 제1 사이즈(NB1)를 갖고, 상기 요청된 제2 부분은 제2 사이즈(NB2)를 가지며, 상기 제1 사이즈(NB1)와 상기 제2 사이즈(NB2) 사이의 비율은 상기 측정된 제1 이용가능 비트 레이트(BR1)와 상기 측정된 제2 이용가능 비트 레이트(BR2) 사이의 비율과 동일한 방법.
  3. 제1항 또는 제2항에 있어서, 상기 요청된 비트 레이트(RBR)를 결정하는 단계(S2)는 상기 측정된 제1 이용가능 비트 레이트(BR1)와 상기 측정된 제2 이용가능 비트 레이트(BR2)의 합(SUM)을 평가하는 단계를 포함하며, 상기 요청된 비트 레이트(RBR)는 상기 합(SUM)으로부터 결정되는 방법.
  4. 제3항에 있어서, 상기 요청된 비트 레이트(RBR)를 결정하는 단계(S2)는 상기 측정된 제1 이용가능 비트 레이트(BR1)와 상기 측정된 제2 이용가능 비트 레이트(BR2)의 합(SUM)에서 프로비전(provision)을 뺀 것보다 낮거나 같은 상기 지원된 비트 레이트들(BRA, BRB) 중 가장 큰 비트 레이트를 선택하는 단계를 포함하는 방법.
  5. 제4항에 있어서, 상기 제1 사이즈(NB1)는 상기 시간 인덱스(i) 및 상기 요청된 비트 레이트(RBR)에 의해 식별된 청크의 사이즈, 및 상기 측정된 제1 이용가능 비트 레이트(BR1)와 상기 합(SUM) 사이의 비율에 비례하는 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 4개의 단계들(S1, S2, S3, 및 S4)은 상기 클라이언트 장치(CD)에 의해 청크가 완전히 수신될 때마다 수행되는 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서, 단계(S1) 전에 상기 경로들(P1 및 P2)을 통해 측정된 상기 제1 이용가능 비트 레이트(BR1) 및 제2 이용가능 비트 레이트(BR2)가 임계값(BRTH1)보다 큰 지 여부를 결정하기 위해 수행되는 단계(SA)를 더 포함하며, 상기 4개의 단계들(S1, S2, S3, S4)은, 상기 측정된 이용가능 비트 레이트(BR1, BR2)가 상기 임계치(BRTH1)보다 크다고 상기 클라이언트 장치(CD)가 판단한 경로들(P1, P2)에 관해 배타적으로 수행되는 방법.
  8. 제1항 내지 제6항 중 어느 한 항에 있어서, 상기 단계(S1)는 상기 제1 경로(P1) 및 상기 제2 경로(P2)를 통해 상기 클라이언트 장치(CD)에 의해 송신된 요청 및 상기 제1 경로(P1) 및 상기 제2 경로(P2)를 통한 요청에 응답하는 확인 응답 메시지의 왕복 시간(round trip time)을 계산하는 단계를 포함하는 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서, 상기 클라이언트 장치(CD)에 의해 상기 경로들(P1 및 P2) 중 적어도 하나를 통해 상기 지원된 비트 레이트들(BRA, BRB)의 리스트를 수신하는 단계; 및 지원된 비트 레이트들(BRA, BRB)의 각각에 대해 청크들의 사이즈들을 수신하는 단계를 더 포함하는 방법.
  10. 제1항 내지 제7항 중 어느 한 항에 있어서, 상기 클라이언트 장치(CD)는 통신 주소를 갖는 제3 통신 인터페이스(CI3)를 포함하며, 상기 컨텐츠는 통신 주소를 갖는 제3 서버 통신 인터페이스(SI3)를 통해 상기 클라이언트 장치(CD)에 액세스가능하며, 제3 경로(P3)는 상기 제3 통신 인터페이스(CI3)의 통신 주소 및 상기 제3 서버 통신 인터페이스(SI3)의 주소에 의해 식별되며, 상기 요청된 비트 레이트(RBR)는 상기 제1 경로(P1), 상기 제2 경로(P2), 및 상기 제3 경로(P3) 상에서 각각 측정된 제1 이용가능 비트 레이트(BR1), 제2 이용가능 비트 레이트(BR2), 제3 이용가능 비트 레이트(BR3)로부터 결정되며, 상기 클라이언트 장치(CD)는 상기 제1 경로(P1)를 통해 상기 요청된 비트 레이트(RBR) 및 시간 인덱스(i)에 의해 식별된 청크의 제1 부분을 요청하고, 상기 제2 경로(P2)를 통해 상기 청크의 제2 부분을 요청하고, 상기 제3 경로(P3)를 통해 상기 청크의 제3 부분을 요청하며, 상기 컨텐츠는 상기 제1 경로(P1), 상기 제2 경로(P2), 및 상기 제3 경로(P3)를 통해 상기 클라이언트 장치(CD)에 의해 동시에 액세스가능하며,
    상기 클라이언트 장치(CD)에서,
    상기 요청된 제1 부분 및 제2 부분이 상기 클라이언트 장치(CD)에 의해 완전히 수신되면, 상기 제3 부분의 제1 조각(fragment)이 상기 클라이언트 장치(CD)에 의해 수신되고, 상기 제3 부분의 제2 조각은 상기 제1 조각에 상보적이며, 상기 클라이언트 장치(CD)가 상기 경로(P3)를 통한 이용가능 비트 레이트(BR3)가 임계값(BRTH3)보다 작다고 판단하면, 상기 제2 조각의 제1 상보 부분을 수신하기 위한 요청을 상기 경로(P1)를 통해 송신하고, 상기 제2 조각의 제2 상보 부분을 수신하기 위한 요청을 상기 경로(P2)를 통해 송신하는 단계(S5)를 더 포함하며, 상기 제1 및 제2 상보 부분은 중첩되지 않고, 상기 제1 및 제2 상보 부분의 합산은 결과적으로 상기 제2 조각 전체를 구성하는 것을 특징으로 하는 방법.
  11. 렌더링될 컨텐츠를 수신하기 위한 클라이언트 장치(CD)로서, 상기 클라이언트 장치(CD)는 적어도 제1 통신 인터페이스(I1) 및 제2 통신 인터페이스(I2)를 포함하고, 상기 제1 통신 인터페이스(CI1) 및 제2 통신 인터페이스(CI2)는 통신 주소를 갖고, 상기 컨텐츠는 통신 주소를 갖는 적어도 제1 서버 통신 인터페이스(SI1) 및 제2 서버 통신 인터페이스(SI2)를 통해 상기 클라이언트 장치(CD)에 액세스가능하고, 제1 경로(P1)는 상기 제1 통신 인터페이스(CI1)의 통신 주소 및 제1 서버 통신 인터페이스(SI1)의 주소에 의해 식별되며, 제2 경로(P2)는 상기 제2 통신 인터페이스(CI2)의 통신 주소 및 제2 서버 통신 인터페이스(SI2)의 주소에 의해 식별되며, 상기 컨텐츠는 지원된 비트 레이트(BRA, BRB) 제약에 대응하는 인코딩 품질을 갖는 적어도 2개의 버전 하에서 이용가능하며, 상기 적어도 2개의 버전의 각각은 상기 컨텐츠의 동일한 기간에 대응하는 청크들로 일시적으로 분할되며, 청크는 시간 인덱스(i) 및 상기 지원된 비트 레이트(BRA, BRB)에 의해 식별되고, 상기 컨텐츠는 상기 제1 경로(P1) 및 상기 제2 경로(P2)를 통해 상기 클라이언트 장치(CD)에 의해 동시에 액세스가능하며,
    상기 클라이언트 장치(CD)는,
    상기 제1 경로(P1) 상의 제1 이용가능 비트 레이트(BR1)를 측정하고, 상기 제2 경로(P2) 상의 제2 이용가능 비트 레이트(BR2)를 측정하는 수단;
    상기 측정된 제1 이용가능 비트 레이트(BR1) 및 상기 측정된 제2 이용가능 비트 레이트(BR2)로부터 상기 지원된 비트 레이트(BRA, BRB) 중 요청된 비트 레이트(RBR)를 결정하는 수단;
    상기 시간 인덱스(i) 및 상기 요청된 비트 레이트(RBR)에 의해 식별되는 상기 청크의 제1 부분을 수신하기 위한 제1 요청을 상기 제1 경로(P1)를 통해 송신하고 상기 청크의 제1 부분과 상보적인 상기 청크의 제2 부분을 수신하기 위한 제2 요청을 상기 제2 경로(P2)를 통해 송신하는 수단; 및
    상기 제1 경로(P1)를 통해 상기 요청된 제1 부분을 수신하고, 상기 제2 경로(P2)를 통해 상기 요청된 제2 부분을 수신하는 수단을 포함하는 것을 특징으로 하는 클라이언트 장치.
  12. 제11항에 있어서, 상기 제1 경로(P1) 및 상기 제2 경로(P2) 중 적어도 하나를 통해 상기 지원된 비트 레이트들(BRA, BRB)에 관한 정보를 수신하고 지원된 비트 레이트들(BRA, BRB) 각각에 대해 상기 청크들의 사이즈에 대한 정보를 수신하는 수단을 더 포함하는 클라이언트 장치.
  13. 제11항 또는 12항에 있어서, 상기 요청된 비트 레이트(RBR)를 결정하는 수단은 상기 측정된 제1 이용가능 비트 레이트(BR1)와 상기 측정된 제2 이용가능 비트 레이트(BR2)의 합(SUM)을 평가하도록 조정되며, 상기 수단은 상기 측정된 제1 이용가능 비트 레이트(BR1)와 상기 측정된 제2 이용가능 비트 레이트(BR2)의 합(SUM)에서 프로비전을 뺀 것보다 낮거나 같은 상기 지원된 비트 레이트들(BRA, BRB) 중 가장 큰 비트 레이트를 선택하도록 조정되는 클라이언트 장치.
  14. 제11항 내지 제13항 중 어느 한 항에 있어서, 상기 측정된 이용가능 비트 레이트들(BR1, BR2)이 임계값(BRTH1)을 초과하는지 여부를 결정하는 수단을 더 포함하는 클라이언트 장치.
  15. 제11항 내지 제14항 중 어느 한 항에 있어서, 상기 경로들(P1, P2, 및 P3) 중 하나를 통해 이용가능한 비트 레이트가 임계값(BRTH3)보다 낮은 지 여부를 결정하는 수단을 더 포함하는 클라이언트 장치.
KR1020127021648A 2010-02-19 2011-02-16 적응형 스트리밍을 위한 다중 경로 전달 KR101709371B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP10154153A EP2362651A1 (en) 2010-02-19 2010-02-19 Multipath delivery for adaptive streaming
EP10154153.0 2010-02-19
PCT/EP2011/052286 WO2011101371A1 (en) 2010-02-19 2011-02-16 Multipath delivery for adaptive streaming

Publications (2)

Publication Number Publication Date
KR20130004567A true KR20130004567A (ko) 2013-01-11
KR101709371B1 KR101709371B1 (ko) 2017-03-08

Family

ID=42077822

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127021648A KR101709371B1 (ko) 2010-02-19 2011-02-16 적응형 스트리밍을 위한 다중 경로 전달

Country Status (7)

Country Link
US (1) US10034048B2 (ko)
EP (2) EP2362651A1 (ko)
JP (2) JP2013520119A (ko)
KR (1) KR101709371B1 (ko)
CN (1) CN102763428B (ko)
IN (1) IN2012DN06327A (ko)
WO (1) WO2011101371A1 (ko)

Families Citing this family (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8472792B2 (en) 2003-12-08 2013-06-25 Divx, Llc Multimedia distribution system
US7519274B2 (en) 2003-12-08 2009-04-14 Divx, Inc. File format for multiple track digital data
US7515710B2 (en) 2006-03-14 2009-04-07 Divx, Inc. Federated digital rights management scheme including trusted systems
WO2008086313A1 (en) 2007-01-05 2008-07-17 Divx, Inc. Video distribution system including progressive playback
CN101861583B (zh) 2007-11-16 2014-06-04 索尼克Ip股份有限公司 用于多媒体文件的分级及简化索引结构
EP2507995A4 (en) 2009-12-04 2014-07-09 Sonic Ip Inc SYSTEMS AND METHODS FOR TRANSPORTING ELEMENTARY BIT TRAIN CRYPTOGRAPHIC MATERIAL
WO2011125041A2 (en) 2010-04-08 2011-10-13 Vasona Networks Managing streaming bandwidth for multiple clients
US9143838B2 (en) 2010-09-06 2015-09-22 Vasona Networks Inc. Device and method for quality assessment of encrypted streaming media flows
US20120079000A1 (en) * 2010-09-27 2012-03-29 Motorola-Mobility, Inc. Selectively receiving media content
US9247312B2 (en) 2011-01-05 2016-01-26 Sonic Ip, Inc. Systems and methods for encoding source media in matroska container files for adaptive bitrate streaming using hypertext transfer protocol
CN108366070A (zh) * 2011-03-16 2018-08-03 韩国电子通信研究院 用于提供媒体内容的方法和客户端
US20120278495A1 (en) * 2011-04-26 2012-11-01 Research In Motion Limited Representation grouping for http streaming
US20120324122A1 (en) * 2011-06-20 2012-12-20 David Miles Method and apparatus for server-side adaptive streaming
US8812662B2 (en) 2011-06-29 2014-08-19 Sonic Ip, Inc. Systems and methods for estimating available bandwidth and performing initial stream selection when streaming content
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
WO2013033458A2 (en) 2011-08-30 2013-03-07 Divx, Llc Systems and methods for encoding and streaming video encoded using a plurality of maximum bitrate levels
US8787570B2 (en) 2011-08-31 2014-07-22 Sonic Ip, Inc. Systems and methods for automatically genenrating top level index files
US8799647B2 (en) 2011-08-31 2014-08-05 Sonic Ip, Inc. Systems and methods for application identification
US8964977B2 (en) 2011-09-01 2015-02-24 Sonic Ip, Inc. Systems and methods for saving encoded media streamed using adaptive bitrate streaming
US8909922B2 (en) 2011-09-01 2014-12-09 Sonic Ip, Inc. Systems and methods for playing back alternative streams of protected content protected using common cryptographic information
US9591361B2 (en) * 2011-09-07 2017-03-07 Qualcomm Incorporated Streaming of multimedia data from multiple sources
EP2605469A1 (en) 2011-12-13 2013-06-19 Thomson Licensing Method and apparatus to control a multipath adaptive streaming session
EP2608558A1 (en) * 2011-12-22 2013-06-26 Thomson Licensing System and method for adaptive streaming in a multipath environment
US20130179199A1 (en) 2012-01-06 2013-07-11 Rovi Corp. Systems and methods for granting access to digital content using electronic tickets and ticket tokens
US10230566B1 (en) 2012-02-17 2019-03-12 F5 Networks, Inc. Methods for dynamically constructing a service principal name and devices thereof
US9392304B2 (en) 2012-02-29 2016-07-12 Hulu, LLC Encoding optimization using quality level of encoded segments
CN102665109A (zh) * 2012-04-19 2012-09-12 中兴通讯股份有限公司 一种多媒体视频数据的发送、接收方法及对应装置
EP2842311B1 (en) * 2012-04-25 2016-10-26 Huawei Technologies Co., Ltd. Systems and methods for segment integrity and authenticity for adaptive streaming
WO2013163648A2 (en) * 2012-04-27 2013-10-31 F5 Networks, Inc. Methods for optimizing service of content requests and devices thereof
US9060207B2 (en) * 2012-08-20 2015-06-16 Google Inc. Adaptive video streaming over a content delivery network
US9936267B2 (en) 2012-08-31 2018-04-03 Divx Cf Holdings Llc System and method for decreasing an initial buffering period of an adaptive streaming system
US9306860B2 (en) * 2012-10-18 2016-04-05 Giraffic Technologies Ltd. Congestion control method for dynamically maximizing communication link throughout
US9165006B2 (en) 2012-10-25 2015-10-20 Blackberry Limited Method and system for managing data storage and access on a client device
US8943110B2 (en) * 2012-10-25 2015-01-27 Blackberry Limited Method and system for managing data storage and access on a client device
US9313510B2 (en) 2012-12-31 2016-04-12 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
ES2744216T3 (es) * 2013-01-16 2020-02-24 Huawei Tech Co Ltd Inserción y adición de parámetros de URL en flujo continuo adaptativo
KR20140111859A (ko) * 2013-03-12 2014-09-22 삼성전자주식회사 콘텐트 공유 방법 및 이를 위한 디바이스
US10397292B2 (en) 2013-03-15 2019-08-27 Divx, Llc Systems, methods, and media for delivery of content
US9906785B2 (en) 2013-03-15 2018-02-27 Sonic Ip, Inc. Systems, methods, and media for transcoding video data according to encoding parameters indicated by received metadata
HUE043713T2 (hu) * 2013-03-29 2019-09-30 Intel Ip Corp Minõségtudatos sebességillesztési technikák DASH streameléshez
US9973559B2 (en) * 2013-05-29 2018-05-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for presenting content streams to a client device
US9094737B2 (en) 2013-05-30 2015-07-28 Sonic Ip, Inc. Network video streaming with trick play based on separate trick play files
US9380099B2 (en) 2013-05-31 2016-06-28 Sonic Ip, Inc. Synchronizing multiple over the top streaming clients
US9100687B2 (en) 2013-05-31 2015-08-04 Sonic Ip, Inc. Playback synchronization across playback devices
CN105379295A (zh) 2013-07-03 2016-03-02 皇家Kpn公司 分段内容的流送
US10187317B1 (en) 2013-11-15 2019-01-22 F5 Networks, Inc. Methods for traffic rate control and devices thereof
JP6315436B2 (ja) * 2013-11-18 2018-04-25 Kddi株式会社 通信装置、プログラムおよび通信方法
US9386067B2 (en) 2013-12-30 2016-07-05 Sonic Ip, Inc. Systems and methods for playing adaptive bitrate streaming content by multicast
EP2894870A1 (en) * 2014-01-10 2015-07-15 Thomson Licensing Method for downloading, at a client terminal, an upcoming sequence of segments of a multimedia content, and corresponding terminal
WO2015121342A1 (en) 2014-02-13 2015-08-20 Koninklijke Kpn N.V. Requesting multiple chunks from a network node on the basis of a single request message
US9794311B2 (en) 2014-03-18 2017-10-17 Qualcomm Incorporated Transport accelerator implementing extended transmission control functionality
US20150271226A1 (en) * 2014-03-18 2015-09-24 Qualcomm Incorporated Transport accelerator implementing a multiple interface architecture
US9596323B2 (en) 2014-03-18 2017-03-14 Qualcomm Incorporated Transport accelerator implementing client side transmission functionality
US9596281B2 (en) 2014-03-18 2017-03-14 Qualcomm Incorporated Transport accelerator implementing request manager and connection manager functionality
US9350484B2 (en) 2014-03-18 2016-05-24 Qualcomm Incorporated Transport accelerator implementing selective utilization of redundant encoded content data functionality
US20150281317A1 (en) * 2014-03-31 2015-10-01 Google Inc. Requesting media content segments via multiple network connections
US9866878B2 (en) 2014-04-05 2018-01-09 Sonic Ip, Inc. Systems and methods for encoding and playing back video at different frame rates using enhancement layers
US10523723B2 (en) * 2014-06-06 2019-12-31 Koninklijke Kpn N.V. Method, system and various components of such a system for selecting a chunk identifier
KR102426067B1 (ko) 2014-08-07 2022-07-28 디빅스, 엘엘씨 독립적으로 인코딩된 타일을 포함한 기본 비트스트림을 보호하는 시스템 및 방법
EP2993910A1 (en) * 2014-09-04 2016-03-09 Thomson Licensing Method and client terminal for receiving a multimedia content split into at least two successive segments, and corresponding computer program product and computer-readable medium.
US9722903B2 (en) * 2014-09-11 2017-08-01 At&T Intellectual Property I, L.P. Adaptive bit rate media streaming based on network conditions received via a network monitor
KR102270034B1 (ko) * 2014-09-30 2021-06-28 삼성전자주식회사 다수 개의 무선 억세스 인터페이스들을 지원하는 이동 통신 시스템에서 스트리밍 서비스 데이터 수신 장치 및 방법
US10225298B2 (en) 2015-01-06 2019-03-05 Divx, Llc Systems and methods for encoding and sharing content between devices
US9826016B2 (en) 2015-02-24 2017-11-21 Koninklijke Kpn N.V. Fair adaptive streaming
EP3262523B1 (en) 2015-02-27 2019-12-04 DivX, LLC System and method for frame duplication and frame extension in live video encoding and streaming
US9979765B2 (en) 2015-05-11 2018-05-22 Apple Inc. Adaptive connection switching
JP6601066B2 (ja) 2015-09-01 2019-11-06 富士通コネクテッドテクノロジーズ株式会社 通信方法、通信装置及び通信プログラム
JP6601068B2 (ja) * 2015-09-01 2019-11-06 富士通コネクテッドテクノロジーズ株式会社 通信方法、通信装置及び通信プログラム
EP3148144B1 (en) * 2015-09-25 2017-07-19 Sap Se Data transfer for a telecommunication device
CN105578211B (zh) * 2015-12-16 2018-09-07 深圳市网心科技有限公司 基于无限服务节点的直播加速网络卡顿优化方法及系统
US9866459B1 (en) * 2016-03-04 2018-01-09 Amazon Technologies, Inc. Origin failover for live streaming
US10075292B2 (en) 2016-03-30 2018-09-11 Divx, Llc Systems and methods for quick start-up of playback
US10231001B2 (en) 2016-05-24 2019-03-12 Divx, Llc Systems and methods for providing audio content during trick-play playback
US10129574B2 (en) 2016-05-24 2018-11-13 Divx, Llc Systems and methods for providing variable speeds in a trick-play mode
US10148989B2 (en) 2016-06-15 2018-12-04 Divx, Llc Systems and methods for encoding video content
WO2018021950A1 (en) * 2016-07-26 2018-02-01 Telefonaktiebolaget Lm Ericsson (Publ) Device and method for controlling media streaming from a server to a client
US10530683B2 (en) * 2016-08-31 2020-01-07 Citrix Systems, Inc. High-quality adaptive bitrate video through multiple links
US10348796B2 (en) * 2016-12-09 2019-07-09 At&T Intellectual Property I, L.P. Adaptive video streaming over preference-aware multipath
US10498795B2 (en) 2017-02-17 2019-12-03 Divx, Llc Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming
US11197044B2 (en) 2017-03-28 2021-12-07 Nec Corporation Communication apparatus, media distribution system, media distribution method, and non-transitory computer readable medium
FR3067544A1 (fr) * 2017-06-27 2018-12-14 Orange Procede et dispositif de telechargement de contenu audiovisuel
EP3522498B1 (en) 2018-02-01 2020-08-26 Broadpeak A method for streaming an audio video content
JP6471252B1 (ja) * 2018-03-20 2019-02-13 株式会社Jストリーム 再生装置及びプログラム
US10277924B1 (en) 2018-03-22 2019-04-30 Amazon Technologies, Inc. Stitching content streams together
BR112021018802A2 (pt) 2019-03-21 2021-11-23 Divx Llc Sistemas e métodos para enxames de multimídia
US10827181B1 (en) * 2019-05-03 2020-11-03 At&T Intellectual Property I, L.P. Differential adaptive bitrate streaming based on scene complexity
CN112969090A (zh) * 2019-12-03 2021-06-15 华为技术有限公司 一种http请求传输方法及设备
ES2940452T3 (es) * 2020-04-27 2023-05-08 Broadpeak Procedimiento y servidor para la distribución de contenido de audio y/o vídeo
US11570496B2 (en) * 2020-12-03 2023-01-31 Hulu, LLC Concurrent downloading of video
WO2023097264A1 (en) * 2021-11-23 2023-06-01 Google Llc Intelligent content control for connecting to multiple sources

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005091141A1 (en) * 2004-03-19 2005-09-29 Zakrytoe Aktsionernoe Obschestvo 'intel A/O' Failover and load balancing

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3865775B2 (ja) 1995-04-11 2007-01-10 キネテック インコーポレイテッド データ処理システムにおけるデータの識別
US6014694A (en) 1997-06-26 2000-01-11 Citrix Systems, Inc. System for adaptive video/audio transport over a network
US5928331A (en) 1997-10-30 1999-07-27 Matsushita Electric Industrial Co., Ltd. Distributed internet protocol-based real-time multimedia streaming architecture
US7406039B2 (en) 2002-02-26 2008-07-29 Dell Products L.P. System and method for a failover protocol in storage area network controllers
US7099954B2 (en) 2002-06-27 2006-08-29 Microsoft Corporation Congestion control mechanism for streaming media
KR100486713B1 (ko) * 2002-09-17 2005-05-03 삼성전자주식회사 멀티미디어 스트리밍 장치 및 방법
JPWO2004073269A1 (ja) 2003-02-13 2006-06-01 富士通株式会社 伝送システム,配信経路制御装置,負荷情報収集装置および配信経路制御方法
JP2004289627A (ja) 2003-03-24 2004-10-14 Nippon Telegraph & Telephone West Corp ストリーミングコンテンツ配信要求受付制御システム
US7941554B2 (en) * 2003-08-01 2011-05-10 Microsoft Corporation Sparse caching for streaming media
US8239446B2 (en) 2003-11-19 2012-08-07 Sony Computer Entertainment America Llc Content distribution architecture
US8868772B2 (en) 2004-04-30 2014-10-21 Echostar Technologies L.L.C. Apparatus, system, and method for adaptive-rate shifting of streaming content
US7631098B2 (en) * 2004-06-08 2009-12-08 International Business Machines Corporation Method, system and program product for optimized concurrent data download within a grid computing environment
JP2006244054A (ja) 2005-03-02 2006-09-14 Sony Corp 情報処理装置および方法、記録媒体、プログラム、並びに情報処理システム
US8683066B2 (en) * 2007-08-06 2014-03-25 DISH Digital L.L.C. Apparatus, system, and method for multi-bitrate content streaming
JP2007036666A (ja) 2005-07-27 2007-02-08 Onkyo Corp コンテンツ配信システム、クライアント及びクライアントプログラム
US7620710B2 (en) 2005-12-19 2009-11-17 Commvault Systems, Inc. System and method for performing multi-path storage operations
US8571215B2 (en) 2006-01-05 2013-10-29 Telefonaktiebolaget L M Ericsson (Publ) Combined storage and transmission of scalable media
US8976672B2 (en) * 2006-10-03 2015-03-10 Cisco Technology, Inc. Efficiently decoupling reservation and data forwarding of data flows in a computer network
US20080189429A1 (en) * 2007-02-02 2008-08-07 Sony Corporation Apparatus and method for peer-to-peer streaming
US8169916B1 (en) * 2007-11-23 2012-05-01 Media Melon, Inc. Multi-platform video delivery configuration
US8539092B2 (en) * 2008-07-09 2013-09-17 Apple Inc. Video streaming using multiple channels
JP2011087103A (ja) * 2009-10-15 2011-04-28 Sony Corp コンテンツ再生システム、コンテンツ再生装置、プログラム、コンテンツ再生方法、およびコンテンツサーバを提供
US8386621B2 (en) * 2010-03-12 2013-02-26 Netflix, Inc. Parallel streaming

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005091141A1 (en) * 2004-03-19 2005-09-29 Zakrytoe Aktsionernoe Obschestvo 'intel A/O' Failover and load balancing

Also Published As

Publication number Publication date
JP2013520119A (ja) 2013-05-30
US10034048B2 (en) 2018-07-24
EP2362651A1 (en) 2011-08-31
CN102763428B (zh) 2016-05-18
US20120311174A1 (en) 2012-12-06
WO2011101371A1 (en) 2011-08-25
EP2537340A1 (en) 2012-12-26
CN102763428A (zh) 2012-10-31
EP2537340B1 (en) 2016-12-07
KR101709371B1 (ko) 2017-03-08
IN2012DN06327A (ko) 2015-10-02
JP2016165134A (ja) 2016-09-08

Similar Documents

Publication Publication Date Title
KR101709371B1 (ko) 적응형 스트리밍을 위한 다중 경로 전달
US10320869B2 (en) Network-capacity optimized adaptive HTTP streaming
KR101981183B1 (ko) 다중경로 적응적 스트리밍 세션을 제어하는 방법 및 장치
CN109565501B (zh) 用于选择内容分发网络实体的方法和装置
CN107210993B (zh) 无线网络中的多媒体内容流的动态速率调整的方法与系统
US8942215B2 (en) System and method for transmission of data from a wireless mobile device over a multipath wireless router
EP2122941B1 (en) Method of providing feedback to a media server in a wireless communication system
EP2719144B1 (en) On-demand adaptive bitrate management for streaming media over packet networks
JP6268090B2 (ja) 帯域幅および対応する装置を制御する方法
JP2020511811A (ja) 適応ビットレートストリーミングの間の複数のコンテンツ配信ネットワーク間の適応切替のためのシステムおよび方法
KR102079155B1 (ko) 적응형 스트리밍 클라이언트의 동작을 원격으로 관리하는 방법
KR20130044218A (ko) 청크로 스트리밍된 컨텐츠를 복구하기 위한 방법
US20130185399A1 (en) Content delivery
KR20150079557A (ko) 클라이언트 장치에 시청각 컨텐츠를 전달하는 시스템 및 방법
KR20150067233A (ko) 하나 이상의 사용자 디바이스에의 콘텐츠의 스트리밍에 관한 장치 및 방법
KR102356621B1 (ko) 클라이언트 단말기들과 적어도 하나의 서버 사이의 전송 경로를 따라 배열된 캐시를 동작시키기 위한 방법, 및 대응하는 캐시
KR101438737B1 (ko) 멀티플 캐시 네트워크에서의 적응적 비디오 스트리밍 시스템 및 방법
US9131251B2 (en) 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
WO2016185998A1 (ja) Abr配信方式のコンテンツ配信の配信制御装置および配信制御方法
Zink et al. Scalable TCP-friendly video distribution for heterogeneous clients
WO2019120532A1 (en) Method and apparatus for adaptive bit rate control in a communication network

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