KR20160106701A - 세그먼트들로 분할된 멀티미디어 콘텐츠를 수신하도록 구성된 클라이언트 단말에 의해 네트워크 정보를 획득하기 위한 방법 - Google Patents

세그먼트들로 분할된 멀티미디어 콘텐츠를 수신하도록 구성된 클라이언트 단말에 의해 네트워크 정보를 획득하기 위한 방법 Download PDF

Info

Publication number
KR20160106701A
KR20160106701A KR1020167021626A KR20167021626A KR20160106701A KR 20160106701 A KR20160106701 A KR 20160106701A KR 1020167021626 A KR1020167021626 A KR 1020167021626A KR 20167021626 A KR20167021626 A KR 20167021626A KR 20160106701 A KR20160106701 A KR 20160106701A
Authority
KR
South Korea
Prior art keywords
client terminal
server
representations
cache
caches
Prior art date
Application number
KR1020167021626A
Other languages
English (en)
Inventor
레미 우다이유
스테판느 구아쉬
샤를린느 떼비
Original Assignee
톰슨 라이센싱
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 톰슨 라이센싱 filed Critical 톰슨 라이센싱
Publication of KR20160106701A publication Critical patent/KR20160106701A/ko

Links

Images

Classifications

    • H04L65/4084
    • 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
    • H04L65/4092
    • 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/80Responding to QoS
    • H04L67/2842
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26258Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
    • 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/637Control signals issued by the client directed to the server or network components
    • H04N21/6373Control signals issued by the client directed to the server or network components for rate control, e.g. request to the server to modify its transmission rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

세그먼트들로 분할된 멀티미디어 콘텐츠를 수신하도록 구성된 클라이언트 단말에 의해 네트워크 정보를 획득하기 위한 방법이 개시되어 있다. 세그먼트들로 분할되고 적어도 하나의 원격 서버(SE)에 의해 제공되는 멀티미디어 콘텐츠를 수신하도록 구성된 클라이언트 단말(CT)은 - 각각의 세그먼트는 하나 이상의 표현들로 이용가능함 - 서버(SE)와 클라이언트 단말(CT) 사이의 경로를 따른 캐시들(DANE)의 순서 리스트를 포함하는 네트워크 정보를 수신하도록 구성된 통신 모듈(2)을 포함한다.

Description

세그먼트들로 분할된 멀티미디어 콘텐츠를 수신하도록 구성된 클라이언트 단말에 의해 네트워크 정보를 획득하기 위한 방법{METHOD FOR OBTAINING NETWORK INFORMATION BY A CLIENT TERMINAL CONFIGURED FOR RECEIVING A MULTIMEDIA CONTENT DIVIDED INTO SEGMENTS}
본 개시내용은 일반적으로 전적으로는 아니지만 예를 들어 HTTP(HyperText Transfer Protocol)를 통한 적응형 스트리밍 기술의 분야에 관한 것이며, 구체적으로는 세그먼트들로 분할된 멀티미디어 콘텐츠를 수신하도록 구성된 클라이언트 단말에 의해 네트워크 정보를 획득하기 위한 방법에 관한 것이다.
본 절은 아래에 설명되고/되거나 청구되는 본 개시내용의 다양한 양태들과 관련될 수 있는 본 기술분야의 다양한 양태들을 독자에게 소개하도록 의도된다. 이러한 논의는 본 개시내용의 다양한 양태들의 양호한 이해를 용이하게 하기 위해 배경 정보를 독자에게 제공할 시에 유익한 것으로 생각된다. 따라서, 이러한 진술들은 이 관점에서 판독되고, 종래 기술의 허용들로서 판독되지 않는다는 점이 이해되어야 한다.
HTTP 적응형 스트리밍은 멀티미디어 콘텐츠 분배를 위한 주요 기술이 빠르게 되고 있다. 이미 사용되는 HTTP 적응형 스트리밍 프로토콜들 중에서, 애플로부터의 HTTP 라이브 스트리밍(HTTP Live Streaming)(HLS), 마이크로소프트로부터의 실버라이트 스무드 스트리밍(Silverlight Smooth Streaming)(SSS), 어도비로부터의 어도비 동적 스트리밍(Adobe Dynamic Streaming)(ADS) 및 3GPP에 의해 SA4 그룹 내에서 개발되는 HTTP 동적 적응형 스트리밍(Dynamic Adaptive Streaming over HTTP)(DASH)이 가장 유명하다.
클라이언트 단말이 시청각 콘텐츠(또는 A/V 콘텐츠)를 적응형 스트리밍에서 플레이하기를 원할 때, 그것은 우선 이러한 A/V 콘텐츠가 어떻게 획득될 수 있는지를 설명하는 파일을 얻어야 한다. 이것은 URL(Uniform Resource Locator)로부터, 설명 파일, 소위 매니페스트를 얻음으로써 HTTP 프로토콜을 통해 일반적으로 수행되지만, 또한 다른 수단(예를 들어 브로드캐스트, 이메일, SMS 등)에 의해 달성될 수 있다. 매니페스트는 그러한 A/V 콘텐츠의 이용가능한 표현들을 (비트 레이트, 해상도 및 다른 성질들의 점에서) 기본적으로 리스팅한다. 상기 매니페스트는 미리 발생되고 예를 들어 원격 서버에 의해 클라이언트 단말에 전달된다.
실제로, 상이한 품질들을 갖는 A/V 콘텐츠에 대응하는 데이터의 스트림은 HTTP 서버 상에 이용가능하다. 최고 품질은 높은 비트 레이트와 연관되고, 최저 품질은 낮은 비트 레이트와 연관된다. 이것은 매우 변화하는 네트워크 조건들을 받을 수 있는 많은 상이한 단말들에 분배를 허용한다.
전체 데이터 스트림은 클라이언트 단말이 2개의 세그먼트들 사이에서 하나의 품질 레벨로부터 다른 것으로 원활하게 스위칭될 수 있도록 이루어지는 세그먼트들로 분할된다. 그 결과, 비디오 품질은 플레이 동안에 변화할 수 있지만 좀처럼 중단들(또한 프리즈들(freezes)로 불려짐)을 겪지 않는다.
프로토콜에 따라, 매니페스트는 다양한 포맷들을 제시할 수 있다. 애플 HLS 프로토콜에 대해, 그것은 "마스터 플레이리스트"로 불려지는 M3U8 플레이리스트이다. 이러한 플레이리스트의 각각의 요소는 표현 당 하나인 다른 플레이리스트이다. 다른 프로토콜들(예를 들어 DASH)에 따르면, 매니페스트는 모든 표현들을 교대로 설명하는 하나 이상의 XML 파일들로 이루어진다. 임의의 경우에, 매니페스트를 생성하는 것은 결정론적인 문법에 따라 텍스트 파일을 생성하고 텍스트를 기록하는 것만큼 간단하다.
그것의 이용가능한 대역폭에 따르면, 클라이언트 단말은 네트워크 변화들에 대한 품질(예를 들어 비디오 품질)과 강건성 사이의 균형을 최적화하기 위해 최상의 표현을 주어진 시점에 선택하는 것은 널리 공지되어 있다. 이용가능한 대역폭은 모든 수신된 세그먼트에서 동적으로 결정된다. 실제로, 주어진 세그먼트에 대한 HTTP 요청의 방출과 대응하는 HTTP 응답(이하 HTTP RTT로 불려짐)의 수신 사이에 정의되는 왕복 시간은 송신 경로를 따라 이용가능한 대역폭을 추정하기 위해 통상 측정되고 사용된다.
캐시는 자주 발생하는 클라이언트 단말과 원격 서버 사이의 송신 경로를 따라 위치될 때, 하나의 세그먼트는 다른 클라이언트가 동일한 표현을 갖는 동일한 세그먼트를 이전에 요청한 경우에 또는 콘텐츠 전달 네트워크(Content Delivery Network)(CDN)가 캐시 내의 세그먼트를 이미 프로비저닝한 경우에, 상기 캐시에 이미 저장되어 있을 수 있다.
따라서, 상기 주어진 세그먼트를 위한 HTTP 요청에 대한 응답은 세그먼트가 원격 서버에서 나오는 경우보다 더 빠르다. 클라이언트 단말과 캐시 사이의 HTTP 요청의 HTTP RTT는 송신 경로가 더 짧으므로, 클라이언트 단말과 원격 서버 사이의 것보다 훨씬 더 작을 수 있다.
게다가, 송신 경로를 따른 캐시의 존재의 경우에(요청된 세그먼트가 캐시에 저장되는 경우에), 피크 레이트는 특히 캐시와 원격 서버 사이에 위치되는 상기 송신 경로 상에 정체가 있을 때, 더 양호할 수 있다.
클라이언트 단말은 통상 원격 서버 또는 중간 캐시에 의해 송신되는 응답들을 구별하지 못하므로, 클라이언트 단말은 대역폭 변화를 단 대 단 네트워크 조건들의 변화로서 잘못 해석하고 있는 반면에, 그것은 "클라이언트 단말 대 서버" 경로로부터 "클라이언트 단말 대 캐시" 경로로의 송신 경로의 스위치를 실제로 관찰하고 있다.
따라서, 클라이언트 단말에 의해 수행되는 대역폭 추정은 과대추정되고 예상대로 단 대 단 송신 경로 특성들을 정확히 반영하지 못한다.
그러한 과대추정은 일반적으로 최종 사용자에게 빈약한 경험을 초래한다. 실제로, 추정된 대역폭이 예상된 것보다 더 높으면, 적응형 스트리밍 클라이언트 단말은 통상 더 높은 품질 표현(예를 들어 더 높은 비트 레이트)으로부터 세그먼트를 요청한다. 따라서, 이러한 요청된 세그먼트는 표현이 변경됨에 따라 (이전 클라이언트 단말이 일정 비트 레이트로 동일한 멀티미디어 콘텐츠를 플레이하는 것에 의해 캐시가 채워진 것을 가정함으로써) 더 낮은 확률이 캐시에 있게 한다. 상기 요청된 세그먼트와 연관되는 다운로딩 시간은 예상된 것보다 훨씬 더 길어서, 요청된 세그먼트의 매우 늦은 도착을 야기한다. 그 다음, 클라이언트 단말은 캐시에서 다시 발견될 가능성이 있는 하위 품질 표현으로 다시 스위칭될 것이다.
그 결과, 클라이언트 단말은 - 캐시 미스들로 인해 일정하게 중단됨 - 높은 품질 세그먼트와 낮은 품질 세그먼트 사이를 스위칭하고 있는데 그것은 캐싱의 이득들을 완전히 위태롭게 한다.
더욱이, HAS 클라이언트 단말들이 캐시들의 콘텐츠를 인식하지 못하기 때문에, 이 단말들은 그들의 가속 능력의 이득들 및 네트워크 부하의 감소를 놓친다. 더욱이, 세그먼트의 각각의 다운로드에서의 개별 질의들이 가능하지만, 현재 HAS 클라이언트 단말들은 캐시에서 세그먼트 시퀀스들의 존재를 고려하는 레이트 적응 전략을 상세하게 할 수 없다.
본 개시내용은 최종 사용자 경험의 품질을 개선하는 상기 언급된 결점들의 적어도 일부를 해결하려고 시도한다.
본 개시내용은, 세그먼트들로 분할되고 적어도 하나의 원격 서버에 의해 제공되는 멀티미디어 콘텐츠를 수신하도록 구성된 클라이언트 단말에 의해 네트워크 정보를 획득하기 위한 방법에 관한 것이며, 각각의 세그먼트는 하나 이상의 표현들로 이용가능하고,
방법은 상기 네트워크 정보가 서버와 클라이언트 단말 사이의 경로를 따른 캐시들의 순서 리스트를 포함한다는 점에서 현저하다.
일 실시예에서, 상기 네트워크 정보는, 상기 순서 리스트 중의 적어도 일부 캐시들에 대해, 상기 캐시들에 의해 저장되는 세그먼트들의 표현들의 리스트를 더 포함할 수 있다.
일 실시예에서, 클라이언트 단말은 순서 리스트에 속하는 타겟 캐시에 요청을 송신하고 상기 타겟 캐시에 의해 저장되는 세그먼트들의 표현들의 리스트를 수신한다. 이러한 표현들의 리스트는 이전에 저장된 세그먼트들과 현재 저장된 세그먼트들 사이의 완전한 리스트 또는 차이들의 리스트이다.
일 실시예에서, 클라이언트 단말은 상기 타겟 캐시에 의해 저장되는 세그먼트들의 표현들의 리스트에 따라 상기 캐시들에 의해 저장되는 세그먼트들의 표현들의 리스트를 갱신한다.
추가 실시예에서, 상기 네트워크 정보는 클라이언트 단말에 의해 서버로부터 수신되는 매니페스트에 의해 제공될 수 있으며, 상기 매니페스트는 상기 서버에서 상기 멀티미디어 콘텐츠의 이용가능한 표현들을 리스팅한다.
게다가, 상기 매니페스트는 서버와 클라이언트 단말 사이의 경로를 따른 캐시들의 순서 리스트를 포함할 수 있다.
더욱이, 상기 매니페스트는 순서 리스트의 각각의 캐시에 대해, 상기 캐시에 의해 저장되는 상기 세그먼트들의 표현들을 식별할 수 있다. 상기 리스트는 로컬 캐싱된 표현들의 리스트의 매니페스트에의 추가를 통해 서버와 클라이언트 단말 사이의 경로를 따른 각각의 직면된 캐시에 의해 증가적으로 구성될 수 있다.
게다가, 상기 매니페스트는 순서 리스트를 구축하기 위해 자체의 식별자를 추가함으로써, 서버와 클라이언트 단말 사이의 경로를 따라 직면되는 캐시들에 의해 수정될 수 있다.
더욱이, 상기 캐시들은 연결 정보를 추가함으로써 매니페스트를 더 수정할 수 있다.
추가 양태에서, 클라이언트 단말은 각각 질의된 캐시에 의해 저장되는 세그먼트들의 표현들을 결정하기 위해, 데이터를 전달하는데 사용되는 데이터 경로와 상이한 보조 통신 경로를 사용함으로써 순서 리스트 중의 적어도 일부 캐시들에 질의할 수 있다.
다른 양태에서, 네트워크 정보는 클라이언트 단말에 의해 서버로부터 수신되는 메시지에 첨부될 수 있으며, 이는 상기 메시지를 수신하는 캐시들이 상기 메시지에서 그들의 존재를 보고하는 것을 허용하는 확장 헤더를 포함한다.
특히, 각각의 직면된 캐시들을 식별하는 순서 리스트는 상기 확장 헤더에 구축될 수 있다.
부가적으로, 연결 정보는 상기 순서 리스트의 각각의 캐시들과 연관될 수 있다.
일 실시예에서, 방법은 캐시들의 순서 리스트에 속하는 캐시들 중 적어도 하나로부터 세그먼트들의 다운로딩을 포함한다.
일 실시예에서, 네트워크 정보는 세그먼트들을 수신하기 위해 사용되는 인터페이스와 유사하거나 세그먼트들을 수신하기 위해 사용되는 인터페이스와 상이한 네트워크 인터페이스를 통해 수신된다.
상이한 실시예들에 따르면, 네트워크 정보(예를 들어 순서 리스트 및 리스트)를 수신하도록 되어 있는 네트워크 인터페이스는 Wifi, ADSL, 케이블, 모바일 및/또는 브로드캐스트(예를 들어 DVB, ATSC) 인터페이스이다.
상이한 실시예들에 따르면, 세그먼트들을 수신하도록 되어 있는 네트워크 인터페이스는 Wifi, ADSL, 케이블, 모바일 및/또는 브로드캐스트(예를 들어 DVB, ATSC) 인터페이스이다.
일 실시예에서, 클라이언트 단말은 세그먼트들(예를 들어 http, 플루트)을 수신하기 위해 사용되는 프로토콜과 유사하거나 상이한(세그먼트들: http, 플루트; 네트워크 정보: TR69 광대역 포럼 또는 브로드캐스트 프로토콜, xmpp IETF, DDS 객체 관리 그룹(Object Management Group)(OMG) 네트워크 정보를 수신하는 프로토콜을 사용하고 있다.
일 실시예에서, 네트워크 정보는 랜덤 액세스 메모리(random access memory)(RAM)에 저장되고;
일 실시예에서, 세그먼트들은 로컬 메모리(하드 디스크, 플래시 메모리) 상에 저장되고/되거나 디코더에 의해 디코딩되고/되거나 및/또는 디스플레이 상에 디스플레이된다.
본 개시내용은 또한 세그먼트들로 분할되고 적어도 하나의 원격 서버에 의해 제공되는 멀티미디어 콘텐츠를 수신하도록 구성된 클라이언트 단말을 포함하며, 각각의 세그먼트는 하나 이상의 표현들로 이용가능하다. 본 개시내용에 따르면, 상기 클라이언트 단말은 서버와 클라이언트 단말 사이의 경로를 따른 캐시들의 순서 리스트를 포함하는 네트워크 정보를 수신하도록 구성된 통신 모듈을 포함한다.
게다가, 상기 네트워크 정보는, 상기 순서 리스트 중의 적어도 일부 캐시들에 대해, 상기 캐시들에 의해 저장되는 세그먼트들의 표현들의 추가 리스트를 더 포함할 수 있다.
더욱이, 상기 통신 모듈은 각각 질의된 캐시에 의해 저장되는 세그먼트들의 표현들을 결정하기 위해, 데이터를 전달하는데 사용되는 데이터 경로와 상이한 보조 통신 경로를 사용함으로써 순서 리스트 중의 적어도 일부 캐시들에 질의하도록 더 구성될 수 있다.
본 개시내용은 또한 적어도 하나의 원격 서버에 의해 제공되는 멀티미디어 콘텐츠의 세그먼트들을 클라이언트 단말로 전달하도록 구성된 캐시에 의해 네트워크 정보를 송신하기 위한 방법에 관한 것이며, 각각의 세그먼트는 하나 이상의 표현들로 이용가능하다.
본 개시내용에 따르면, 상기 네트워크 정보는 서버와 클라이언트 단말 사이의 경로를 따른 캐시들의 순서 리스트를 포함한다.
일 실시예에서, 캐시는 순서 리스트를 수신하고 그것을 갱신하여 클라이언트 단말에 대한 최단 캐시로 간주되며, 이러한 최단 캐시는 네트워크 자원들의 액세스 속도 및 저장(예를 들어 클라이언트 단말 상에 세그먼트들을 업로드하는 네트워크 자원들의 저장, 및/또는 세그먼트들에의 가장 빠른 액세스를 위해) 가장 유리하다. 그 다음, 캐시는 갱신된 순서 리스트를 클라이언트로 하향으로 포워딩하며; 이러한 방식으로, 순서 리스트는 증가적으로 구성된다.
일 실시예에서, 캐시는 캐시에 연관되는 로컬 캐싱된 표현들의 리스트를, 캐시들의 수신된 순서 리스트에 연관되는 표현들의 수신된 리스트에 추가하며; 그 다음, 캐시는 표현들의 갱신된 리스트를 클라이언트로 하향으로 포워딩하며; 이러한 방식으로, 표현들의 리스트는 증가적으로 구성된다.
본 개시내용은 또한 네트워크 정보를 송신하도록 되어 있는 캐시에 관한 것이며, 캐시는 적어도 하나의 원격 서버에 의해 제공되는 멀티미디어 콘텐츠의 세그먼트들을 전달하도록 구성되고, 각각의 세그먼트는 클라이언트 단말에 대해 하나 이상의 표현들로 이용가능하다. 본 개시내용에 따르면, 상기 네트워크 정보는 서버와 클라이언트 단말 사이의 경로를 따른 캐시들의 순서 리스트를 포함한다.
일 실시예에서, 캐시는 이하를 포함하는 세트에 포함되는 네트워크 요소(또한 네트워크 캐시로 불려짐)이다: 거주지 게이트웨이, 공공 게이트웨이, 회사 게이트웨이, 핫 스폿, 전화, 차량, 인터넷 서비스 제공자(internet service provider)(ISP) 네트워크 요소 및 회사 프록시.
본 개시내용은 또한 상기 언급된 방법의 단계들을 구현하기 위한 프로그램 코드 명령어들을 포함하는, 통신 네트워크로부터 다운로딩가능하고/하거나 컴퓨터에 의해 판독가능한 매체 상에 기록되고/되거나 프로세서에 의해 실행가능한 컴퓨터 프로그램 제품에 관한 것이다.
게다가, 본 개시내용은 또한 이전에 설명된 방법의 단계들을 구현하기 위한 프로그램 코드 명령어들을 포함하는, 기록되고 프로세서에 의해 실행가능한 컴퓨터 프로그램 제품을 포함하는 비일시적인 컴퓨터 판독가능 매체에 관한 것이다.
특정 양태들은 개시된 실시예들이 아래에 진술되는 것과 범위에 있어서 상응한다. 이러한 양태들은 본 개시내용이 취할 수 있는 특정 형태들의 간단한 개요를 독자에게 제공하기 위해 단지 제공되고 이러한 양태들은 본 개시내용의 범위를 제한하도록 의도되지 않는다는 점이 이해되어야 한다. 실제로, 본 개시내용은 아래에 진술되지 않을 수 있는 다양한 양태들을 망라할 수 있다.
특정 양태들은 개시된 실시예들이 아래에 진술되는 것과 범위에 있어서 상응한다. 이러한 양태들은 본 개시내용이 취할 수 있는 특정 형태들의 간단한 개요를 독자에게 제공하기 위해 단지 제공되고 이러한 양태들은 본 개시내용의 범위를 제한하도록 의도되지 않는다는 점이 이해되어야 한다. 실제로, 본 개시내용은 아래에 진술되지 않을 수 있는 다양한 양태들을 망라할 수 있다.
본 개시내용은, 첨부 도면들을 참조하여, 결코 제한적이 아니라, 이하의 실시예 및 실행 예들에 의해 양호하게 이해되며 예시될 것이다.
도 1은 본 개시내용의 실시예가 구현될 수 있는 클라이언트-서버 네트워크 아키텍처의 개략도이다.
도 2는 본 개시내용의 실시예에 따른 클라이언트 단말의 일 예의 블록도이다.
도 3은 도 2의 클라이언트 단말에 의해 구현되는 멀티미디어 콘텐츠의 세그먼트들의 다음 시퀀스(upcoming sequence)를 다운로딩하기 위한 방법을 예시하는 흐름도이다.
도 1 및 도 2에서, 표현된 블록들은 전적으로 기능적 엔티티들이며, 기능 엔티티들은 반드시 물리적으로 개별적 엔티티들에 대응하는 것은 아니다. 즉, 그들은 소프트웨어, 하드웨어의 형태로 개발되거나, 하나 이상의 프로세서들을 포함하는 하나의 또는 수개의 집적 회로들로 구현될 수 있다.
가능한 경우에, 동일한 참조 번호들은 동일하거나 유사한 부분들을 지칭하기 위해 도면들 전체에 걸쳐 사용될 것이다.
본 개시내용의 도면들 및 설명들은 명료성의 목적들을 위해, 전형적인 디지털 멀티미디어 콘텐츠 전달 방법들 및 시스템들에서 발견되는 많은 다른 요소들을 제거하는 동안에, 본 개시내용의 분명한 이해에 적절한 요소들을 예시하기 위해 간략화되었다는 점이 이해되어야 한다. 그러나, 그러한 요소들이 본 기술분야에 널리 공지되어 있기 때문에, 그러한 요소들의 상세한 논의는 본원에 제공되지 않는다. 본 개시내용은 본원에서 본 기술분야의 통상의 기술자들에게 공지되어 있는 모든 그러한 변화들 및 수정들에 지향된다.
일 실시예에 따르면, 본 개시내용은 HTTP 적응형 스트리밍 프로토콜(HTTP adaptive streaming protocol)(또는 HAS)에 관해 서술된다. 물론, 본 개시내용은 그러한 특정 환경에 제한되지 않고 다른 적응형 스트리밍 프로토콜이 물론 고려되고 구현될 수 있다.
도 1에 도시된 바와 같이, 하나의 또는 수개의 네트워크들(N)(하나만이 도면들에 표현됨)에 의해 지원되며, 본 개시내용이 구현될 수 있는 클라이언트-서버 네트워크 아키텍처는 하나의 또는 수개의 클라이언트 단말들(CT), 하나 이상의 HTTP 서버들(SE), 복수의 스마트 캐시들(DANE) 및 하나 이상의 레거시 캐시들(RNE)을 포함한다. DASH에 따르면, 그러한 서버들(SE)은 또한 미디어 오리진(Media Origin)으로 명명된다. 그들은 예를 들어 미디어 프리젠테이션 디스크립션(media presentation description)(또는 MPD), 소위 매니페스트를 발생시킨다. 이것은 콘텐츠 분배의 소스이다: 멀티미디어 콘텐츠는 일부 외부 엔티티에서 나오고 미디어 오리진에서 HAS 포맷으로 변환될 수 있다.
스마트 캐시(DANE)는 HAS 콘텐츠가 전달되는 것을 이해하도록 구성되는 네트워크(N) 내의 캐싱 요소이다. MPEG-DASH 전문용어를 사용하면, 스마트 캐시는 DASH 인식 네트워크 요소(DASH Aware Network Element)(DANE)로 간주된다.
레거시 캐시(RNE)는 그것을 통과하는 데이터의 타입의 지식을 갖지 않는 네트워크(N) 내의 캐싱 요소이거나, 적어도 그것은 HAS 양태들을 이해하지 못한다. MPEG-DASH 전문용어에서, 레거시 캐시는 정규 네트워크 요소(Regular Network Element)(RNE)로 간주된다.
클라이언트 단말(CT)은 HTTP 서버들(SE) 중 하나로부터 멀티미디어 콘텐츠를 획득하기를 원한다. 상기 멀티미디어 콘텐츠는 복수의 세그먼트들(또한 청크들로 불려짐)로 분할된다. 멀티미디어 콘텐츠는 서버(SE)에서 상이한 표현들로 이용가능한 것으로 가정된다. HTTP 서버(SE)는 클라이언트 요청에 따라, HTTP 적응형 스트리밍 프로토콜을 사용하여 하나 이상의 TCP/IP 연결들을 통해, 세그먼트들을 클라이언트 단말(CT)에 스트리밍할 수 있다.
도 2에 설명된 바와 같은 실시예에 따르면, 클라이언트 단말(CT)은 적어도 이하를 포함한다:
- 제1 네트워크(N1)로의 연결 인터페이스(1)(예를 들어 Wi-Fi, 이더넷 등과 같은, 유선 및/또는 무선);
- HTTP 서버(SE)에 통신하기 위해 프로토콜 스택들을 포함하는 통신 모듈(2). 특히, 통신 모듈(2)은 본 기술분야에 널리 공지된 TCP/IP 스택을 포함한다. 물론, 그것은 클라이언트 단말(CT)이 HTTP 서버(SE)와 통신할 수 있게 하는 임의의 다른 타입의 네트워크 및/또는 통신 수단일 수 있다;
- HTTP 서버(SE)로부터 HTTP 스트리밍 멀티미디어 콘텐츠를 수신하는 적응형 스트리밍 모듈(3). 그것은 네트워크 제약들 및 그 자체의 제약들을 양호하게 매칭시키는 비트 레이트로 세그먼트를 연속적으로 선택한다;
- 멀티미디어 콘텐츠를 디코딩하고 렌더링하도록 되어 있는 비디오 플레이어(4);
- 클라이언트 단말(CT)의 비휘발성 메모리에 저장되는 애플리케이션들 및 프로그램들을 실행하는 하나 이상의 프로세서들(5);
- 비디오 플레이어(4)에의 송신 전에 HTTP 서버(SE)로부터 수신되는 세그먼트들을 버퍼링하는 휘발성 메모리와 같은 저장 수단(6);
- 일반적 클라이언트 단말 기능성들을 수행하기 위해 본 기술분야의 통상의 기술자에게 널리 공지되어 있는 다양한 모듈들 및 모든 수단에 연결하는 내부 버스(B).
실시예에서, 클라이언트 단말(CT)은 휴대용 미디어 디바이스, 모바일 전화, 태블릿 또는 랩톱, TV 세트, 셋톱 박스, 게임 디바이스 또는 집적 회로이다. 물론, 클라이언트 단말(CT)은 완전한 비디오 플레이어를 포함하는 것이 아니라, 미디어 콘텐츠를 디멀티플렉싱하고 디코딩하는 것들과 같은 일부 서브요소들만을 포함할 수 있고 디코딩된 콘텐츠를 최종 사용자에게 디스플레이하는 외부 수단에 의존할 수 있다. 이러한 경우에, 클라이언트 단말(CT)은 HTTP 적응형 스트리밍(HAS) 가능 비디오 디코더, 예컨대 셋톱 박스이다.
본 개시내용에 따르면, 각각의 클라이언트 단말(CT)은 원격 서버(SE)에 저장되는 멀티미디어 콘텐츠의 세그먼트들의 다음 시퀀스를 다운로딩하기 위한 방법(M)을 구현하도록 구성되며, 상기 시퀀스는 그것의 특징들이 이하에 설명되는 일부 품질 기준들을 최상으로 매칭하도록 선택된다.
방법(M)을 구현하기 위해, 클라이언트 단말(CT)은 네트워크 아키텍처(N)의 지식을 가질 필요가 있는 것이 바람직하다.
이 때문에, 매니페스트 - HTTP 응답을 통해, 서버(SE)에 의해 클라이언트 단말(CT)로 멀티미디어 콘텐츠의 요청에 따라 후자에 의해 전달되고 서버(SE)에서 상기 멀티미디어 콘텐츠의 이용가능한 표현들의 리스트를 포함함 - 는 서버(SE)와 클라이언트 단말(CT) 사이에 위치되는 스마트 캐시들(DANE)의 순서 리스트를 더 포함할 수 있다. 이러한 경우에, 서버(SE)는 네트워크 아키텍처를 (예를 들어 관리된 네트워크에서와 같이) 인식하고 그러한 순서 리스트를 사전 구축할 수 있다. 서버(SE)는 요청 클라이언트 단말(CT)에 의존하는 순서 리스트를 제공할 수 있다.
순서 리스트에서, 각각의 직면된 스마트 캐시(DANE)는 이하에 의해 식별될 수 있다:
- 고유 식별자;
- 상기 스마트 캐시에 도달하는 것을 허용하는 서비스 액세스 포인트와 같은 연결 정보(이하에 설명되는 바와 같음).
부가 연결 정보로 임의로 완료되는 이러한 스마트 캐시들(DANE)의 순서 리스트는 매니페스트가 클라이언트 단말(CT)에 의해 수신되는 바와 같이 매니페스트의 확장으로 제공된다.
순서 리스트에서, 스마트 캐시들(DANE)은 클라이언트 단말(CT)과의 그들의 근접을 고려함으로써 리스팅되는 것이 바람직하다: 순서 리스트의 제1 요소는 클라이언트 단말(CT)의 최단 스마트 캐시에 대응한다.
일 변형에서, 그것이 네트워크 아키텍처를 인식하지 못할 때, 서버(SE)는 그러한 순서 리스트를 사전 구축가능하지 않을 수 있다. 그러한 경우에, 각각의 스마트 캐시(DANE)는 그것이 매니페스트를 포함하는 것을 식별하기 위해 (전용 검사 모듈 때문에) 서버(SE)의 HTTP 응답의 콘텐츠 타입 헤더를 검사하고 그 다음 그 자체의 식별자를 순서 리스트에 추가함으로써 상기 매니페스트를, 예를 들어 그것의 대응하는 서비스 액세스 포인트로 갱신한다.
순서 리스트를 설정하는 방법들 둘 다가 공존할 수 있어, 서버(SE)에 의해 알려지지 않은 일부 스마트 캐시들(DANE)은 그들이 서버(SE)의 HTTP 응답을 수신했을 때 그들 자체를 이미 존재하는 순서 리스트에 추가할 수 있다. 명백하게, 그러한 경우에, 스마트 캐시들은 일부 정보를 추가하기 전에 순서 리스트에서 그들의 자체 존재를 체크하는 것이 바람직하다.
아래에는, MPEG-DASH 매니페스트(잘려짐)로의 스마트 캐시들(DANE)의 순서 리스트의 예시적이지만 비제한적인 예가 있다:
Figure pct00001
순서 리스트의 스마트 캐시 계층 정보에 더하여, 매니페스트는 예를 들어 대응하는 스마트 캐시 식별자와 연관되는 부가 리스트에서, 멀티미디어 콘텐츠의 각각의 세그먼트의 저장된 표현들(또는 그것의 일부)을 추가함으로써, 순서 리스트의 각각의 스마트 캐시(DANE)에 저장되는 멀티미디어 콘텐츠의 세그먼트들의 표현들을 더 표시할 수 있다. 상기 부가 리스트는 (예를 들어 관리된 네트워크의 경우에) 서버(SE) 또는 각각의 직면된 스마트 캐시(DANE)에 의해 구축될 수 있다.
다른 변형에서, 네트워크 아키텍처 및 특히 순서 리스트의 스마트 캐시 계층을 결정하기 위해, 서버(SE)는 HTTP 응답을 클라이언트 단말(CT)에 송신하며, 이는 상기 응답을 수신하는 각각의 스마트 캐시(DANE)가 그들의 존재를 클라이언트 단말(CT)에 보고하고 상기 캐시(DANE)와 클라이언트 단말(CT) 사이에 위치되는 다음 캐시들에 보고하는 것을 허용하는 확장 헤더를 포함한다. HTTP 확장 헤더는 이하와 같이 정의될 수 있다:
Figure pct00002
헤더 확장은 존재를 다운스트림 스마트 캐시들(DANE) 및/또는 클라이언트 단말(SE)에 표시하는 수단을 서버(SE) 및/또는 스마트 캐시들(DANE)에 제공할 수 있으며, 그러한 수단은 임의의 응답(특히 매니페스트를 포함하는 것)에 첨부된다.
서버(SE)는 다운스트림 스마트 캐시들(DANE)이 전용 수정 모듈 때문에, 그들의 자체 식별자 및 임의로 그들의 연결 정보를 첨부하게 하기 위해 HTTP 응답에 첨부되는 신택스 "X-SmartCache: required"를 사용할 수 있다. 이러한 헤더의 수신에 따라, 각각의 스마트 캐시(DANE)는 그들의 식별자 및 연결 정보를 갖는 순서 리스트를 추가한다. 유리하게, HTTP 응답을 수신하는 제1 스마트 캐시는 "요구된" 토큰을 폐기한다.
이러한 변형의 하나의 장점은 상기 HTTP 확장 헤더가 다른 응답 메시지들(예컨대 추가 콘텐츠 데이터 전송)에 첨부될 수 있다는 것이다. 그것은 또한 매니페스트를 포함하는 HTTP 응답의 차단에 따라, 그러나 후자의 수정 없이 사용될 수 있다.
예시적이지만, 비제한적 예에서, 캐시들의 순서 리스트의 스마트 캐시들 계층은 이하와 같이 HTTP 응답 헤더들을 사용하여 표시될 수 있다:
Figure pct00003
실시예의 추가 양태에서, 스마트 캐시들(DANE)에 질의하는 시그널링 메시지들은 데이터를 전달하기 위해 사용되는 메인 채널로부터 분리되는 보조 통신 채널(또는 경로)을 통해 교환될 수 있으며, 이러한 보조 채널은 데이터 메인 채널과 상관없이 동작된다. 그러한 시그널링 메커니즘은 대역외 시그널링으로 명명된다.
대역외 시그널링의 2개의 별개 메커니즘들이 개발될 수 있으며 제1 메커니즘에 대해서는, 특정 스마트 캐시(DANE)를 타겟팅하는 개별 프로토콜을 구현하고, 제2 메커니즘에 대해서는, HTTP의 요청들의 본래의 상향 라우팅으로부터 이득들을 시그널링하는 제2 TCP 연결을 갖는 HTTP 프로토콜을 구현한다(클라이언트 단말(CT)에 의해 서버(SE)를 향해 송신되는 시그널링 요청은 적절할 때 작용할 수 있는 직면된 스마트 캐시들(DANE) 및 레거시 캐시들(RNE)을 자연스럽게 가로지름). 임의의 경우에, 이러한 메커니즘들은 레거시 캐시들(RNE)에 영향을 미치지 않는다.
특정 프로토콜을 사용하는 제1 메커니즘에 따르면, 시그널링 오버레이는 순서 리스트의 스마트 캐시 계층 및 그것의 식별자들을 사용하는 것에 있다. 시그널링 오버레이가 이용가능하면, 상이한 네트워크 장비들은 서로 통신할 수 있다. 스마트 캐시 인터페이스는 캐시 관리 동작들을 교환하기 위해 사용될 수 있다. 상기 스마트 캐시 인터페이스는 매니페스트의 일부로서 제공되거나 HTTP 응답 헤더들에 포함되는 스마트 캐시 서비스 액세스 포인트를 통해 액세스될 수 있다. 그것은 DASH/HAS 클라이언트들이 스마트 캐시 인터페이스의 동작들을 호출하는 것을 허용한다. 각각의 동작은 동작 식별자 및 그것의 파라미터들을 포함하는 메시지를 구성하고 그것을 스마트 캐시 인터페이스에 송신함으로써 호출될 수 있다.
예시적이지만, 비제한적 예에서, 시그널링 메시지들은 JSON 스트링들로 구축될 수 있으며, 이 스트링들은 많은 서버 측 스크립팅 언어들로 용이하게 파싱된다. 시그널링 메시지들의 수신에 따라, 스마트 캐시들(DANE)은 요청된 동작을 실행할 수 있다.
특히, 클라이언트 단말(CT)과 스마트 캐시들(DANE) 사이의 시그널링 메시지들은 수개의 적절한 프로토콜들에 의해 송신될 수 있다.
제1 예시적 예에서, 클라이언트 단말(CT)과 주어진 스마트 캐시(DANE) 사이의 양방향 점 대 점 통신을 허용하는 웹소켓이 사용된다. 제2 예시적 예에서, XMPP는 정보의 점 대 다점 송신을 (예를 들어 스마트 캐시의 모든 클라이언트 단말들에의 캐시 갱신 통지를 위해) 허용하기 위해 사용될 수 있다. 물론, 다른 프로토콜들이 사용될 수 있다.
제1 메커니즘 때문에, 클라이언트 단말(CT)은 상기 스마트 캐시(DANE)에 저장되는 세그먼트들 및 그들의 표현들을 발견하기 위해 메시지들을 주어진 스마트 캐시(DANE)와 교환할 수 있다. 이하의 메시지가 사용될 수 있다:
Figure pct00004
이러한 시그널링 메시지의 수신에 따라, 스마트 캐시(DANE)는 캐싱된 세그먼트들의 식별자들을 포함하는 갱신된 리스트로써 응답할 수 있다. 이러한 메시지는 각각의 개별 스마트 캐시의 콘텐츠의 정확한 개요를 얻도록 클라이언트 단말에 의해 그것의 업스트림 스마트 캐시들(DANE) 중 임의의 것에 송신될 수 있다.
게다가, 스마트 캐시(DANE)는 등록된 클라이언트 단말들에 콜백을 사용하여 그것의 캐시 콘텐츠의 변경을 클라이언트에 통지할 수 있으며, 클라이언트 단말들은 예를 들어 그들이 감시하기를 원하는 세그먼트들을 미리 지정했다. 그러한 콜백 메커니즘들은 최근에 HTML5 웹소켓들, 서버 측 이벤트들로 용이하게 구현되지만 다른 기술들은 유사한 결과들을 달성하기 위해 이용될 수 있다.
Figure pct00005
제2 메커니즘에 따르면, 클라이언트 단말(CT)은 또한 캐싱된 콘텐츠를 발견하기 위해 캐시들(스마트 캐시들(DANE) 및 레거시 캐시들(RNE))의 체인에 질의하도록 시그널링 수단으로서 HTTP를 사용할 수 있다. 이러한 시그널링 HTTP 메시지들은 동일한 서버 어드레스를 향해 이차 TCP 세션에 송신되고 주요 데이터 전달 세션과 동일한 경로를 따른다. 시그널링 HTTP 요청들은 데이터 전송을 트리거링하는 것을 회피하기 위해 특히 구축된다.
이 때문에, HTTP HEAD 방법 또는 최소 바이트 범위 GET(예를 들어 데이터의 하나의 단일 바이트를 요청함)가 사용될 수 있다. 다음 세그먼트들의 상이한 표현들에 대한 다수의 HEAD(또는 1 바이트 범위 GET) 요청들을 송신하고, 제안된 확장들을 사용함으로써, 클라이언트 단말(CT)은 캐싱된 표현들의 위치의 맵을 구축할 수 있다.
특히, 캐시의 콘텐츠를 질의하기 위해, 클라이언트 단말(CT)은 최단 캐시의 콘텐츠를 요청하도록 "only-if-cached" 명령을 갖는 "Cache-control" HTTP 헤더를 사용할 수 있다. 그러나, 제1 메커니즘과 비교하여, HTTP 기반 메커니즘은 서버(SE)를 향해 경로 상의 제1 캐시에만 질의하는 것을 암시적으로 허용한다.
제1 캐시만에 질의하는 결점을 완화하는 확장으로서, 시그널링 요청의 "only-if-cached" 명령은 예를 들어 이하와 같은, 고려되어야 하는 캐시들의 깊이의 표시를 더 포함할 수 있다:
Figure pct00006
이러한 깊이 값은 스마트 캐시(DANE들)에 의해 해석되어, 세그먼트의 요청된 표현이 스마트 캐시(DANE)에 캐싱되지 않을 때, 상기 스마트 캐시는 깊이 값이 허용되면 시그널링 요청을 상향으로 포워딩한다. 스마트 캐시(DANE)는 요청된 표현을 저장시키지 않을 때마다, 깊이의 값은 감소되고 HTTP 헤더는 시그널링 요청을 포워딩하기 전에 적절히 수정된다. 스마트 캐시(DANE)는 1과 동일한 깊이 값을 갖는 시그널링 요청을 수신할 때, 상기 시그널링 요청은 캐시 미스의 경우에 더 이상 포워딩되지 않는다.
개선에서, 요청된 표현을 저장하는 스마트 캐시(DANE)는 예를 들어 도달된 깊이를 표시하는 부가 명령을 그것의 응답에 포함할 수 있다:
Figure pct00007
그 다음, 스마트 캐시(DANE)로부터 수신되는 값의 경우, 클라이언트 단말(CT)은 클라이언트 단말(CT)의 시그널링 요청의 초기 깊이 값에서 반환 값을 감산함으로써 고려된 스마트 캐시(DANE)에 대한(캐시들에 관한) 거리를 인식할 수 있다.
대안적으로, 클라이언트 단말(CT)은 주어진 캐시를 그것의 시그널링 요청으로 식별함으로써 질의 깊이를 주어진 캐시에 제한할 수 있다. 시그널링 요청이 상기 식별된 스마트 캐시(DANE)에 도달할 때 및 상기 스마트 캐시(DANE)가 세그먼트의 요청된 표현을 저장하지 않을 때, 상기 식별된 스마트 캐시(DANE)는 요청을 서버(SE)에 상향으로 포워딩하지 않고 부정적으로 응답한다. 이 때문에, 타겟 스마트 캐시 식별자를 지정하는 특정 확장은 이하와 같은 HTTP 시그널링 요청의 캐시 제어 "only-if-cached" 명령에 추가된다:
Figure pct00008
시그널링 요청에 사용되는 스마트 캐시 식별자는 스마트 캐시(DANE)의 공지된 SAP 또는 상기 스마트 캐시(DANE)에 고유한 임의의 식별자일 수 있다.
HAS 클라이언트 단말(CT)이 서버(SE)에 대한 경로 상에 배열되는 스마트 캐시들(DANE)을 인식하고 각각의 스마트 캐시(DANE)에 의해 유지되는 캐싱된 표현들의 리스트를 인식할 때, 클라이언트 단말(CT)은 방법(M)을 구현할 수 있다.
k 다음 세그먼트들(k 세그먼트들의 시퀀스를 정의함)에 대한 클라이언트 단말(CT)과 서버(SE) 사이의 스마트 캐시들(DANE)의 콘텐츠의 지식을 고려하면, 방법(M)은 상기 시퀀스의 세그먼트들의 k 표현들이 다운로딩되는 것을 결정할 수 있다. 방법(M)은 m 세그먼트들(1 <= m <= k를 가짐)만의 다운로드 후에 또는 캐시 갱신 메시지의 수신에 따라 주기적으로 수행되는 것이 바람직하다. 그러한 갱신들은 (m+k까지의 예측을 사용하여) m+1에서 m+m까지의 세그먼트들의 추가 다운로드들을 최적화하는 것을 허용한다.
실시예에 따르면, 및 도 3에 도시된 바와 같이, 클라이언트 단말(CT)에서, 서버(SE)에 저장되고 상이한 표현들로 이용가능한 멀티미디어 콘텐츠의 k 세그먼트들의 다음 시퀀스를 다운로딩하기 위한 방법은 이하를 포함한다:
- 클라이언트 단말(CT)과 서버(SE) 사이에 배열되는 식별된 캐시들(DANE)(이전에 설명된 바와 같음)에 저장되거나 저장되지 않는 상기 세그먼트들의 이용가능한 표현들의 일부 또는 모든 조합들에 대해:
■ 상기 k 표현들의 조합들 각각에 대한 품질의 효용 함수(U(k))의 값;
■ 상기 조합들 각각을 다운로딩하기 위한 예측된 시간(T(k))
을 계산하는 단계(S1);
계산 단계(S1)는 도 2에 표현되는 바와 같이 클라이언트 단말(CT)의 계산기(7)에 의해 수행된다. 일 변형에서, 계산기(7)는 프로세서 모듈(5)에 집적되거나 이의 일부일 수 있고;
- 효용 함수의 결정된 값들 중에서, 시간 임계값(예를 들어 세그먼트들의 시퀀스의 플레이아웃 시간에 대응함)보다 낮은 다운로딩 시간을 갖는 최고 효용 함수 값을 선택하는 단계(S2). 선택 단계(S2)는 클라이언트 단말(CT)의 선택 모듈(8)에 의해 수행되고;
- 클라이언트 단말(CT)에서, 선택된 조합과 연관되는 표현들의 적어도 초기 시퀀스를 다운로딩하는 단계(S3). 선택된 조합에 관한 정보의 수신에 따라, 선택된 표현들의 다운로딩은 통신 모듈(2) 및/또는 적응형 스트리밍 모듈(3)에 의해 관리된다.
물론, 단계들(S1 내지 S3)의 적어도 일부는 클라이언트 단말(CT)에서 수행되는 것이 아니라, 외부 네트워크 장비(예컨대 서버, 게이트웨이, 프록시 등)에서 수행될 수 있다.
특히, 주어진 조합에 대해, 효용 함수(U(k))는 이하에 의존한다:
- 상기 조합의 표현들의
Figure pct00009
의 전체 품질;
- 상기 조합의 표현들의 변동성(variability)(σ);
- 상기 조합의 표현들의 캐시 미스들의 비용(M(k)).
클라이언트 단말 상에서 최종 사용자에 의해 지각되는 바와 같은 전체 품질은 상기 조합 내의 표현들의 품질에 비례한다. 더 높은 비트 레이트들이 더 높은 품질을 제공하기 위해 사용되므로,
Figure pct00010
로 표시되는 표현들의 비트 레이트들의 합, 또는 그들의 평균은 이러한 전체 품질의 추정으로 사용될 수 있다.
변동성은 예를 들어 상기 조합에서 표현 값들의 분산에 의해 표현될 수 있다.
캐시 미스들의 비용은 네트워크 자원들에 영향을 주는 대역폭 비용, 및 데이터를 전달하는 서버 자원들에서의 비용이다. 둘 다는 서버로부터 다운로딩되는 세그먼트들의 비트 레이트에 비례하며, 따라서 이러한 비용은 예를 들어 캐시 미스를 갖는 세그먼트들에 대한 표현들의 비트 레이트들의 합에 의해 표현될 수 있다.
예시적이지만, 비제한적 예에서, 주어진 조합의 효용 함수(U(k))는 이하의 식으로부터 도출될 수 있다:
Figure pct00011
여기서:
-
Figure pct00012
는 상기 조합의 표현들의 평균 비트 레이트이며, k는 시퀀스의 세그먼트들의 수이고;
- σ는 상기 조합의 표현들의 분산이고(따라서 시퀀스의 불안정을 설명함);
- α는 분산의 가중 파라미터이고;
- M(k)는 상기 조합의 표현들의 캐시 미스들의 평균 비용이고;
- β는 캐시 미스들의 평균 비용에 대한 가중 파라미터이다.
특히, 주어진 조합의 표현들의 평균 비트 레이트는 이하의 식에 의해 결정될 수 있다:
Figure pct00013
Ri의 경우 세그먼트(i)의 주어진 표현의 비트 레이트는 상기 조합에 속한다.
게다가, 상기 주어진 조합의 표현들의 분산(σ)은 아래의 식에 의해 획득될 수 있다:
Figure pct00014
분산(σ)은 표현들 사이의 변경들의 수 및 평균 표현으로부터의 변경들의 크기 둘 다에 따라 증가한다.
분산(σ)은 표현들 사이의 변경들의 수 및 평균 표현으로부터의 변경들의 크기 둘 다에 따라 증가한다.
더욱이, 상기 주어진 조합의 표현들의 캐시 미스들의 평균 비용(M(k))은 예를 들어 이하의 식에 의해 설명된다:
Figure pct00015
여기서 세그먼트(i)의 표현이 서버(SE)로부터 검색될 때 Si = 1이고 다른 방법으로 Si = 0이다(표현은 식별된 스마트 캐시들(DANE) 중 하나에 캐싱됨).
시퀀스에 대한 효용 함수(U(k))를 최대화함으로써, 낮은 분산 및 소수의 캐시 미스들을 갖는 높은 비트 레이트들은 우선순위를 가질 것이다. 가중 파라미터들(α 및/또는 β)은 분산 및/또는 캐시 미스들의 공차를 정의하기 위해 조정될 수 있다. 명백하게, 분산 및/또는 캐시 미스들은 α 및/또는 β의 값들을 제로에 설정함으로써 배제될 수 있다.
효용 함수(U(k))는 이하의 기준들을 충족시키는 조합을 결정하기 위해 각각 고려된 후보 조합에 대해 계산된다:
- 높은 평균 비트 레이트(및 암시적으로 높은 품질)
- 일관된 비디오 품질을 의미하는, 적은 변동성을 갖는 안정된 비트 레이트
- 가능한 한 많이 서버(SE) 및 네트워크(N) 상에서 부하를 감소시키기 위해, 캐시로부터 검색되는 세그먼트들의 최대값.
게다가, 조합의 추정된 다운로드 시간(T(k))은 아래의 식 때문에 계산될 수 있다:
Figure pct00016
여기서:
-
Figure pct00017
는 서버로부터, 상기 조합의 주어진 표현을 다운로딩할 때 관찰되는 다운링크 대역폭이고;
-
Figure pct00018
는 상기 주어진 표현을 유지하는 최단 스마트 캐시(DANE)로부터 상기 조합의 세그먼트(i)의 주어진 표현을 다운로딩할 때 관찰되는 다운링크 대역폭이다. Ci는 조합의 각각의 표현을 이용함으로써 설정되는 벡터(C)의 요소에 대응하며, 최단 캐시의 인덱스는 상기 표현을 유지한다.
분모에서, Si는 0 또는 1이므로, 항(Si) 또는 항(1 - Si)) 중 하나만이 제로와 동일하지 않다. 따라서, 분모는 서버(SE)로부터의 링크의 대역폭(
Figure pct00019
) 또는 고려된 스마트 캐시(DANE)로부터의 대역폭(
Figure pct00020
)이다. 세그먼트의 각각의 선택된 표현의 비트 레이트들의 수를 대역폭(
Figure pct00021
)으로 나눔으로써, 각각의 표현을 다운로드하는데 필요한 시간이 획득된다.
조합의 이러한 다운로드 시간(T(k))은 시퀀스의 플레이아웃 시간보다 낮아야 하는 것이 바람직하며, 다른 방법으로 플레이백은 버퍼 드레인으로 인해 중단될 수 있어, 이하가 된다:
Figure pct00022
실시예에 따르면, 클라이언트 단말(CT)은 k 세그먼트들의 표현들의 각각의 이용가능한 조합에 대한 효용 함수(U(k)) 및 다운로드 시간(T(k))을 계산한다(단계(S1)). (서버(SE)로부터의) 이용가능한 표현들의 수(r)를 표시하면, U(k) 및 T(k)는 각각 계산된 rk 시간들이다.
따라서, 단계(S2)를 수행함으로써, 클라이언트 단말(CT)은 버퍼 드레인들을 회피하는 k 표현들의 최상의 시퀀스를 선택할 수 있다.
아래의 표는 1 내지 8의 범위인 8 세그먼트들의 시퀀스에 대한 스마트 캐시들(DANE)의 그룹의 콘텐츠의 예시적이지만 비제한적 예를 나타낸다(1은 다운로드되는 시퀀스의 제1 세그먼트임). 셀들의 값들은 고려된 세그먼트/표현을 유지하는 스마트 캐시들(DANE)의 인덱스들에 대응한다.
Figure pct00023
일정한 표현 2500kbps에서 k 세그먼트들의 시퀀스에 대응하는 이하의 비트 레이트 벡터 R = {R1=2500kbps, R2=2500kbps, R3=2500kbps, R4=2500kbps, R5=2500kbps, R6=2500kbps, R7=2500kbps, R8=2500kbps}을 고려함으로써, C 벡터는 각각의 세그먼트에 대해, 표현 2500kps를 유지하는 최단 스마트 캐시(DANE)의 인덱스를 취함으로써 구축된다. 상기 언급된 표에 주어지는 스마트 캐시들의 샘플 콘텐츠(C = {1, 1, 2, 1, 0, 0, 0, 1})의 경우, 표현 2500kps를 의미하는 0은 식별된 스마트 캐시(DANE)에 캐싱되지 않는다.
실시예의 일 변형에서, k 세그먼트들의 표현들의 각각의 이용가능한 조합에 대한 효용 함수(U(k)) 및 다운로드 시간(T(k))을 계산하는 대신에, 클라이언트 단말(CT)은 추가 단계(S21)에서, 또한 타겟 표현으로 불려지는 가장 자주 캐싱된 표현을 선택하기 위해 (단계(S20)에서) 평가 모듈(9)을 통해 - k 다음 세그먼트들에 대한 클라이언트 단말(CT)과 서버(SE) 사이의 스마트 캐시들(DANE)의 콘텐츠의 지식으로부터 - 각각의 가능한 표현에 대한 캐싱된 세그먼트들의 수를 미리 계산한다.
상기 예시적 표에 기초하여, k=8의 경우, 선택된 표현은 5 캐싱된 세그먼트들을 갖는, 2500kbps와 동일한 비트 레이트를 가진 표현이다. 대응하는 타겟 조합의 비트 레이트 벡터(R)는 타겟 표현 R = {R1=2500kbps, R2=2500kbps, R3=2500kbps, R4=2500kbps, R5=2500kbps, R6=2500kbps, R7=2500kbps, R8=2500kbps}의 비트 레이트와 동일한 균일한 값을 갖는다.
추가 단계(S22)에서, 클라이언트 단말(CT)은 그것의 계산기(7) 때문에, 타겟 조합의 다운로드 시간(T(k))을 계산한다.
추가 단계(S23)에서, 클라이언트 단말(CT)은 계산된 다운로드 시간(T(k))(또한 초기 T(k)로 불려짐)을 플레이아웃 시간과 비교한다.
초기 T(k)가 플레이아웃 시간(T(k) ≥ kㆍchunk_duration)과 적어도 동일할 때, 클라이언트 단말(CT)은 (단계(S24)에서) 타겟 표현이 스마트 캐시에 저장되지 않는 세그먼트들(예를 들어 상기 표의 예에서의 세그먼트들(5, 6 및 7))의 대안 캐싱된 표현들을 결정한다.
이 때문에, 클라이언트 단말(CT)은 단계(S25)에서, 상위 품질 캐싱된 대안 표현들이 오름 차순으로 리스팅된 다음, 하위 품질 캐싱된 대안 표현들이 내림 차순으로 이어지는 대안 표현들의 대안 순서 리스트를 구축한다.
단계(S26)에서, 클라이언트 단말(CT)은,
- 대안 순서 리스트의 제1 표현을 선택하고;
- 선택된 대안 표현이 대응하는 세그먼트에 대한 타겟 표현을 교체한 것을 제외하고 타겟 조합과 유사한 새로운 조합을 결정하고(상기 표의 예에 따르면, 새로운 조합의 벡터(R)는 {2500kbps, 2500kbps, 2500kbps, 2500kbps, 2500kbps, 4500kbps, 2500kbps, 2500kbps}임);
- 표현의 상기 새로운 조합에 대한 다운로드 시간을 계산한다.
새로운 조합의 T(k)가 타겟 조합의 T(k)에 비해 증가하는 경우에, 선택된 대안 표현이 단계(S27)에서 거절되고, 새로운 조합이 거부된다. 단계(S26)는 대안 순서 리스트의 다음 표현으로 반복되어, 타겟 조합은 추가의 새로운 조합을 설정하기 위해 상기 다음 표현으로 수정된다.
새로운 조합의 T(k)가 플레이아웃 시간 아래인 경우에, 클라이언트 단말(CT)은 상기 새로운 조합의 다운로딩을 시작한다(단계(S3)).
새로운 조합의 T(k)가 타겟 조합의 T(k)에 비해 감소하지만 플레이아웃 시간과 적어도 동일하게 잔존하는 경우에, 대안 리스트의 선택된 대안 표현이 유지되고(단계 28) 단계(S26)는 타겟 조합 대신에 새로운 조합을 고려함으로써 반복된다.
상기 예시적 표를 고려하면, 이것은 중간 해결법이 발견되지 않는 한, R6=4500kbps, R5=6500kbps, R7=6500kbps 및 R5=1200kbps, R7=1200kbps로 연속적으로 테스트될 것이다.
대안 순서 리스트의 모든 표현들이 시도되었을 때 및 마지막 새로운 조합에 대해 계산되는 T(k)가 플레이아웃 시간보다 낮지 않은 경우에, 클라이언트 단말(CT)은 단계(S29)에서, 내림 차순으로 배열되는, 타겟 표현보다 하위 품질 표현들을 포함하는 부가 대안 리스트를 설정한다. 단계들(26, 27 및 28)은 상기 부가 순서 리스트에 적용된다.
이러한 알고리즘의 끝에서, 어느 하나의 T(k)는 제약을 충족시키거나 T(k)에 비해 더 낮게 가능한 값이 없다.
초기 T(k)가 플레이아웃 시간 아래에 있을 때, 클라이언트 단말(CT)은 더 높은 레이트들을 갖는 캐싱된 표현들을 사용함으로써 효용 함수(U(k))를 증가시키려고 한다(단계(S241)). 제1 단계(S4)에서, 클라이언트 단말(CT)은 초기 타겟 표현보다 더 큰 표현들의 순서 리스트를 오름 차순으로 구축한다.
그 다음, 이러한 리스트의 각각의 표현에 대해, 클라이언트 단말(CT)은,
- 고려된 표현에 대한 대응하는 세그먼트가 캐시에 이용가능하도록 최고 i를 선택한다(단계(S41)).
- 고려된 표현으로 이전 R을 변경함으로써 획득되는 표현들의 조합에 대해 U(k) 및 T(k)를 계산한다(단계(S42)).
그 다음, T(k)가 제약을 여전히 충족하고 U(k)의 새로운 값이 이전 값보다 더 크면, 클라이언트 단말(CT)은 새로운 조합을 유지하고 단계(S41)를 다음(더 낮은) i로 반복한다. 어느 하나의 T(k)가 제약을 충족시키지 않거나 U(k)가 감소하면, 이때 클라이언트 단말(CT)은 이전 조합을 복원하기 위해 Ri의 새로운 값을 거절한다.
모든 인덱스들(i)이 고려되었을 때, 다음으로 더 높은 표현이 테스트된다.
명백하게, 다른 발견법은 실시예로부터 벗어나는 것 없이 U(k)를 개선하면서 T(k)에 관한 제약을 충족시키기 위해 사용될 수 있다.
물론, 단계들(S20 내지 S29)의 적어도 일부는 클라이언트 단말(CT)에서 수행되는 것이 아니라, 외부 네트워크 장비(예컨대 서버, 게이트웨이, 프록시 등)에서 수행될 수 있다.
원하는 조합, 즉 세그먼트들의 시퀀스가 결정되었다면, 클라이언트 단말(CT)은 그것이 m 세그먼트들(1≤m≤k를 가짐)에 도달하거나 스마트 캐시로부터 갱신 메시지를 수신하거나, 수신 레이트가 변경될 때까지 지연 없이 시퀀스로부터 이하의 세그먼트들을 다운로드한다. 이전 이벤트들 중 임의의 것에서, 클라이언트 단말(CT)은 방법(M)을 반복한다.
네트워크 정보는 서버(SE)와 클라이언트 단말(CT) 사이의 경로를 따른 캐시들(DANE)의 순서 리스트를 포함하고 선택적으로 네트워크 정보는 상기 계층의 적어도 일부 캐시들에 대해, 상기 캐시들(DANE)에 의해 저장되는 세그먼트들의 표현들의 리스트를 더 포함한다.
본 개시내용의 상이한 변형들에 따르면, 네트워크 정보는 세그먼트들을 수신하기 위해 사용되는 인터페이스와 유사하거나 세그먼트들을 수신하기 위해 사용되는 인터페이스와 상이한 네트워크 인터페이스를 통해 수신된다는 점이 주목되어야 한다.
특정 실시예들에 따르면, 클라이언트 단말의 네트워크 인터페이스는 Wifi, ADSL, 케이블, 모바일 및/또는 브로드캐스트(예를 들어 DVB, ATSC) 인터페이스로부터 네트워크 정보를 수신하도록 되어 있다.
상이한 실시예들에 따르면, 세그먼트들을 수신하도록 되어 있는 클라이언트 단말의 네트워크 인터페이스는 Wifi, ADSL, 케이블, 모바일 및/또는 브로드캐스트(예를 들어 DVB, ATSC) 인터페이스이다.
상이한 실시예들에 따르면, 클라이언트 단말은 세그먼트들(예를 들어 http, 플루트)을 수신하기 위해 사용되는 프로토콜과 유사한 네트워크 정보를 수신하는 프로토콜을 사용하고 있다. 상이한 실시예들에 따르면, 클라이언트 단말은 네트워크 정보를 수신하는 상이한 프로토콜을 사용하고 있다:
- 세그먼트들 송신 및 수신은 http 또는 플루트 프로토콜들을 사용할 수 있고;
- 네트워크 정보 송신 및 수신은 TR69 광대역 포럼 프로토콜 또는 브로드캐스트 프로토콜(예를 들어 xmpp IETF, DDS 객체 관리 그룹(OMG))을 사용할 수 있다.
상이한 실시예들에 따르면, 네트워크 정보는 랜덤 액세스 메모리(RAM)에 저장되고;
상이한 실시예들에 따르면, 세그먼트들은 로컬 메모리(예를 들어 하드 디스크 또는 플래시 메모리) 상에 저장되고/되거나 디코더에 의해 디코딩되고/되거나 디스플레이 상에 디스플레이된다.
상이한 실시예들에 따르면, 클라이언트 단말은 이하를 포함하는 세트에 속한다:
- 휴대용 미디어 디바이스;
- 모바일 전화;
- 게임 디바이스;
- 셋톱 박스;
- TV 세트;
- 태블릿;
- 랩톱; 및
- 집적 회로.
도면들 내의 흐름도 및/또는 블록도들은 본 개시내용의 다양한 실시예들에 따른 시스템들, 방법들 및 컴퓨터 프로그램 제품들의 가능한 구현들의 구성, 동작 및 기능성을 예시한다. 이와 관련하여, 흐름도 또는 블록도들 내의 각각의 블록은 모듈, 세그먼트, 또는 코드의 일부를 표현할 수 있으며, 이는 지정된 논리 기능(들)을 구현하기 위한 하나 이상의 실행가능 명령어들을 포함한다. 또한 일부 대안 구현들에서, 블록에 언급되는 기능들은 도면들에 언급되는 순서 밖에서 발생할 수 있다는 점이 주목되어야 한다. 예를 들어, 수반되는 기능성에 따라, 연속으로 도시되는 2개의 블록들은 실제로 실질적으로 동시에 실행될 수 있거나, 블록들은 때때로 역 순서로 실행될 수 있거나, 블록들은 대안 순서로 실행될 수 있다. 또한 블록도들 및/또는 흐름도 예시의 각각의 블록, 및 블록도들 및/또는 흐름도 예시 내의 블록들의 조합들은 지정된 기능들 또는 동작들, 또는 특수 목적 하드웨어 및 컴퓨터 명령어들의 조합들을 수행하는 특수 목적 하드웨어 기반 시스템들에 의해 구현될 수 있다는 점이 주목될 것이다. 명시적으로 설명되지 않지만, 본 실시예들은 임의의 조합 또는 서브조합에 이용될 수 있다.
본 기술분야의 통상의 기술자에 의해 이해되는 바와 같이, 본 원리들의 양태들은 시스템, 방법 또는 컴퓨터 판독가능 매체로 구체화될 수 있다. 따라서, 본 원리들의 양태들은 전체 하드웨어 실시예, 전체 소프트웨어 실시예(펌웨어, 상주 소프트웨어, 마이크로코드 등을 포함함), 또는 "회로," "모듈", 또는 "시스템"으로 본원에서 모두 일반적으로 지칭될 수 있는 소프트웨어 및 하드웨어 양태들을 조합하는 일 실시예의 형태를 취할 수 있다. 더욱이, 본 원리들의 양태들은 컴퓨터 판독가능 저장 매체의 형태를 취할 수 있다. 하나 이상의 컴퓨터 판독가능 저장 매체(들)의 임의의 조합이 이용될 수 있다.
컴퓨터 판독가능 저장 매체는 하나 이상의 컴퓨터 판독가능 매체(들)에 구체화되고 컴퓨터에 의해 실행가능한 컴퓨터 판독가능 프로그램 코드를 그 위에 구체화하는 컴퓨터 판독가능 프로그램 제품의 형태를 취할 수 있다. 본원에 사용되는 바와 같은 컴퓨터 판독가능 저장 매체는 정보를 그 안에 저장하는 고유 능력뿐만 아니라 그것으로부터 정보의 검색을 제공하는 고유 능력을 고려하면 비일시적인 저장 매체로 간주된다. 컴퓨터 판독가능 저장 매체는 예를 들어 전자, 자기, 광학, 전자기, 적외선, 또는 반도체 시스템, 장치, 또는 디바이스, 또는 전술한 것의 임의의 적절한 조합일 수 있지만, 이들에 제한되지 않는다. 이하는 본 원리들이 적용될 수 있는 컴퓨터 판독가능 저장 매체들의 더 특정한 예들을 제공하는 동안에, 본 기술분야의 통상의 기술자에 의해 용이하게 이해되는 바와 같이 단지 예시적이고 총망라한 리스팅이 아니라는 점이 이해되어야 한다: 휴대용 컴퓨터 디스켓; 하드 디스크; 랜덤 액세스 메모리(RAM); 판독 전용 메모리(ROM); 소거 및 프로그램가능 판독 전용 메모리)(EPROM 또는 플래시 메모리); 휴대용 콤팩트 디스크 판독 전용 메모리(CD-ROM); 광학 저장 디바이스; 자기 저장 디바이스; 또는 전술한 것의 임의의 적절한 조합.

Claims (6)

  1. 세그먼트들로 분할되고 적어도 하나의 원격 서버(SE)에 의해 제공되는 멀티미디어 콘텐츠를 수신하도록 구성된 클라이언트 단말(CT)에 의해 네트워크 정보를 획득하기 위한 방법으로서 - 각각의 세그먼트는 하나 이상의 표현들로 이용가능함 -,
    상기 네트워크 정보는 서버(SE)와 상기 클라이언트 단말(CT) 사이의 경로를 따른 캐시들(DANE)의 순서 리스트(ordered list)를 포함하고;
    상기 네트워크 정보는, 상기 캐시들의 순서 리스트 중의 적어도 일부 캐시들에 대해, 상기 캐시들(DANE)에 의해 저장된 상기 세그먼트들의 표현들의 리스트를 더 포함하고;
    상기 네트워크 정보는 상기 클라이언트 단말(CT)에 의해 서버(SE)로부터 수신되는 매니페스트에 의해 제공되고, 상기 매니페스트는 상기 서버(SE)에서의 상기 멀티미디어 콘텐츠의 이용가능한 표현들을 리스팅하는 방법.
  2. 세그먼트들로 분할되고 적어도 하나의 원격 서버(SE)에 의해 제공되는 멀티미디어 콘텐츠를 수신하도록 구성된 클라이언트 단말로서 - 각각의 세그먼트는 하나 이상의 표현들로 이용가능함 -,
    상기 클라이언트 단말은, 상기 서버(SE)와 상기 클라이언트 단말(CT) 사이의 경로를 따른 캐시들(DANE)의 순서 리스트를 포함하는 네트워크 정보를 수신하도록 구성된 통신 모듈(2)을 포함하고;
    상기 네트워크 정보는, 상기 순서 리스트 중의 적어도 일부 캐시들(DANE)에 대해, 상기 캐시들(DANE)에 의해 저장된 상기 세그먼트들의 표현들의 추가 리스트를 더 포함하고;
    상기 네트워크 정보는 상기 클라이언트 단말(CT)에 의해 서버(SE)로부터 수신되는 매니페스트에 의해 제공되고, 상기 매니페스트는 상기 서버(SE)에서의 상기 멀티미디어 콘텐츠의 이용가능한 표현들을 리스팅하는 클라이언트 단말.
  3. 적어도 하나의 원격 서버(SE)에 의해 제공되는 멀티미디어 콘텐츠의 세그먼트들을 클라이언트 단말로 전달하도록 구성된 캐시에 의해 네트워크 정보를 송신하기 위한 방법으로서 - 각각의 세그먼트는 하나 이상의 표현들로 이용가능함 -,
    상기 네트워크 정보는 서버(SE)와 상기 클라이언트 단말(CT) 사이의 경로를 따른 캐시들(DANE)의 순서 리스트를 포함하고;
    상기 캐시는,
    상기 캐시와 연관되는 로컬 캐싱된 표현들의 리스트를, 캐시들의 수신된 순서 리스트와 연관되는 표현들의 수신된 리스트에 추가하고,
    표현들의 갱신된 리스트를 상기 클라이언트 단말로 하향으로 포워딩하고;
    상기 네트워크 정보는 상기 클라이언트 단말(CT)에 의해 서버(SE)로부터 수신되는 매니페스트에 의해 제공되고, 상기 매니페스트는 상기 서버(SE)에서의 상기 멀티미디어 콘텐츠의 이용가능한 표현들을 리스팅하는 방법.
  4. 네트워크 정보를 송신하도록 되어 있는 캐시로서 - 상기 캐시는 적어도 하나의 원격 서버(SE)에 의해 제공되는 멀티미디어 콘텐츠의 세그먼트들을 클라이언트 단말로 전달하도록 구성되고, 각각의 세그먼트는 하나 이상의 표현들로 이용가능함 -,
    상기 네트워크 정보는 서버(SE)와 상기 클라이언트 단말(CT) 사이의 경로를 따른 캐시들(DANE)의 순서 리스트를 포함하고;
    상기 캐시는,
    상기 캐시와 연관되는 로컬 캐싱된 표현들의 리스트를, 캐시들의 수신된 순서 리스트와 연관되는 표현들의 수신된 리스트에 추가하고,
    표현들의 갱신된 리스트를 상기 클라이언트 단말로 하향으로 포워딩하도록
    구성되고;
    상기 네트워크 정보는 상기 클라이언트 단말(CT)에 의해 서버(SE)로부터 수신되는 매니페스트에 의해 제공되고, 상기 매니페스트는 상기 서버(SE)에서의 상기 멀티미디어 콘텐츠의 이용가능한 표현들을 리스팅하는 캐시.
  5. 제1항 또는 제3항에 기재된 방법을 구현하기 위한 프로그램 코드 명령어들을 포함하는, 프로세서에 의해 실행가능하고/하거나 컴퓨터에 의해 판독가능한 매체 상에 기록되고/되거나 통신 네트워크로부터 다운로딩가능한 컴퓨터 프로그램 제품.
  6. 제1항 또는 제3항에 기재된 방법을 구현하기 위한 프로그램 코드 명령어들을 포함하는, 프로세서에 의해 실행될 수 있으며 기록된 컴퓨터 프로그램 제품을 포함하는 비일시적인 컴퓨터 판독가능 매체.
KR1020167021626A 2014-01-10 2014-12-16 세그먼트들로 분할된 멀티미디어 콘텐츠를 수신하도록 구성된 클라이언트 단말에 의해 네트워크 정보를 획득하기 위한 방법 KR20160106701A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP14305039.1 2014-01-10
EP14305039 2014-01-10
PCT/EP2014/077885 WO2015104148A1 (en) 2014-01-10 2014-12-16 Method for obtaining network information by a client terminal configured for receiving a multimedia content divided into segments

Publications (1)

Publication Number Publication Date
KR20160106701A true KR20160106701A (ko) 2016-09-12

Family

ID=49958404

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167021626A KR20160106701A (ko) 2014-01-10 2014-12-16 세그먼트들로 분할된 멀티미디어 콘텐츠를 수신하도록 구성된 클라이언트 단말에 의해 네트워크 정보를 획득하기 위한 방법

Country Status (6)

Country Link
US (1) US20160330500A1 (ko)
EP (1) EP3092816A1 (ko)
JP (1) JP6514217B2 (ko)
KR (1) KR20160106701A (ko)
CN (1) CN105981400A (ko)
WO (1) WO2015104148A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10033824B2 (en) * 2014-06-30 2018-07-24 Samsung Electronics Co., Ltd. Cache manifest for efficient peer assisted streaming
WO2016204815A1 (en) * 2015-06-16 2016-12-22 Intel IP Corporation Adaptive video streaming using dynamic radio access network information
US10462055B2 (en) * 2015-07-20 2019-10-29 Cisco Technology, Inc. Content distribution system cache management
CN108206847B (zh) 2016-12-19 2020-09-04 腾讯科技(深圳)有限公司 Cdn管理系统、方法及装置
US10432993B2 (en) * 2016-12-20 2019-10-01 Arris Enterprises Llc Output and playback control delivery for adaptive bitrate streaming
GB2563251A (en) * 2017-06-07 2018-12-12 Sony Mobile Communications Inc Terminal device, data processing apparatuses and methods
FR3067544A1 (fr) * 2017-06-27 2018-12-14 Orange Procede et dispositif de telechargement de contenu audiovisuel
US10292045B2 (en) * 2017-08-24 2019-05-14 Nanning Fugui Precision Industrial Co., Ltd. Information obtaining method and information obtaining device
WO2019148498A1 (en) * 2018-02-05 2019-08-08 Telefonaktiebolaget Lm Ericsson (Publ) A method, a user equipment and a computer program product for enabling a dynamic adaptive streaming over http, dash, player to fetch media segments from a network

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9237387B2 (en) * 2009-10-06 2016-01-12 Microsoft Technology Licensing, Llc Low latency cacheable media streaming
US8849950B2 (en) * 2011-04-07 2014-09-30 Qualcomm Incorporated Network streaming of video data using byte range requests
FR2973978A1 (fr) * 2011-04-08 2012-10-12 France Telecom Procede de communication entre des reseaux de distribution de contenus numeriques
US9445136B2 (en) * 2011-09-21 2016-09-13 Qualcomm Incorporated Signaling characteristics of segments for network streaming of media data
US9401968B2 (en) * 2012-01-20 2016-07-26 Nokia Techologies Oy Method and apparatus for enabling pre-fetching of media
JP5880139B2 (ja) * 2012-02-29 2016-03-08 富士通株式会社 配置サーバ、情報処理システム、キャッシュ配置方法、キャッシュ配置プログラム
US9526091B2 (en) * 2012-03-16 2016-12-20 Intel Corporation Method and apparatus for coordination of self-optimization functions in a wireless network
BR112014004057A2 (pt) * 2012-07-02 2017-03-07 Sony Corp dispositivo e método de transmissão, e, aparelho de rede

Also Published As

Publication number Publication date
JP2017510873A (ja) 2017-04-13
EP3092816A1 (en) 2016-11-16
US20160330500A1 (en) 2016-11-10
WO2015104148A1 (en) 2015-07-16
JP6514217B2 (ja) 2019-05-15
CN105981400A (zh) 2016-09-28

Similar Documents

Publication Publication Date Title
EP2894869A1 (en) Method for downloading, at a client terminal, an upcoming sequence of segments of a multimedia content, and corresponding terminal
KR20160106701A (ko) 세그먼트들로 분할된 멀티미디어 콘텐츠를 수신하도록 구성된 클라이언트 단말에 의해 네트워크 정보를 획득하기 위한 방법
EP3014854B1 (en) Method for adapting the downloading behavior of a client terminal configured to receive multimedia content, and corresponding terminal.
Thomas et al. Enhancing MPEG DASH performance via server and network assistance
KR20160134802A (ko) 클라이언트 단말기들과 적어도 하나의 서버 사이의 전송 경로를 따라 배열된 캐시를 동작시키기 위한 방법, 및 대응하는 캐시
KR102212973B1 (ko) 멀티미디어 컨텐츠의 컨텐츠 부분을 클라이언트 단말기, 대응 캐시에 제공하는 방법
KR20170018333A (ko) 클라이언트 단말기와 적어도 하나의 서버 간의 송신 경로를 따라 배열된 네트워크 장비를 동작하기 위한 방법, 및 대응하는 네트워크 장비
KR102237900B1 (ko) 클라이언트 단말에 의해 멀티미디어 콘텐츠의 콘텐츠 부분을 검색하기 위한 방법
WO2015104149A1 (en) Method for obtaining network information by a client terminal configured for receiving a multimedia content divided into segments
EP2894871A1 (en) Method for obtaining a network information by a client terminal configured for receiving a multimedia content divided into segments
TW201532427A (zh) 用戶終端機配置成接收多段分割之多媒體內容以取得網路資訊之方法
WO2015104146A1 (en) Method for obtaining network information by a client terminal configured for receiving a multimedia content divided into segments
WO2015104147A1 (en) Method for obtaining network information by a client terminal configured for receiving a multimedia content divided into segments
TW201532425A (zh) 用戶終端機配置成接收多段分割之多媒體內容以取得網路資訊之方法

Legal Events

Date Code Title Description
WITB Written withdrawal of application