KR20160134802A - 클라이언트 단말기들과 적어도 하나의 서버 사이의 전송 경로를 따라 배열된 캐시를 동작시키기 위한 방법, 및 대응하는 캐시 - Google Patents

클라이언트 단말기들과 적어도 하나의 서버 사이의 전송 경로를 따라 배열된 캐시를 동작시키기 위한 방법, 및 대응하는 캐시 Download PDF

Info

Publication number
KR20160134802A
KR20160134802A KR1020167029006A KR20167029006A KR20160134802A KR 20160134802 A KR20160134802 A KR 20160134802A KR 1020167029006 A KR1020167029006 A KR 1020167029006A KR 20167029006 A KR20167029006 A KR 20167029006A KR 20160134802 A KR20160134802 A KR 20160134802A
Authority
KR
South Korea
Prior art keywords
cache
representation
request
dane
ongoing
Prior art date
Application number
KR1020167029006A
Other languages
English (en)
Other versions
KR102356621B1 (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 KR20160134802A publication Critical patent/KR20160134802A/ko
Application granted granted Critical
Publication of KR102356621B1 publication Critical patent/KR102356621B1/ko

Links

Images

Classifications

    • 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/4084
    • 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
    • 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/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/234345Processing 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 the reformatting operation being performed only on part of the stream, e.g. a region of the image or a time segment
    • 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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

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

Abstract

클라이언트 단말기들(CT)과 적어도 하나의 서버(SE) 사이의 전송 경로를 따라 배치되고, 여러 가지 표현으로 이용 가능한 멀티미디어 콘텐츠의 세그먼트들에 대한 요청들을 클라이언트 단말기들(CT)로부터 수신하도록 구성되는 캐시(DANE)로서, - 제1 클라이언트 단말기로부터 상기 멀티미디어 콘텐츠의 주어진 세그먼트의 바람직한 표현 및 적어도 하나의 대안 표현에 대한 제1 요청을 수신하기 위한 접속의 인터페이스(1); - 추가 클라이언트 단말기를 위해 서버로부터 상기 캐시에 의해 이미 요청된, 상기 주어진 세그먼트의 적어도 하나의 진행중인 표현이 상기 제1 요청의 상기 바람직한 표현 또는 대안 표현과 매칭되는지를 결정하도록 구성되는 매칭 모듈(5)을 포함한다.

Description

클라이언트 단말기들과 적어도 하나의 서버 사이의 전송 경로를 따라 배열된 캐시를 동작시키기 위한 방법, 및 대응하는 캐시{METHOD FOR OPERATING A CACHE ARRANGED ALONG A TRANSMISSION PATH BETWEEN CLIENT TERMINALS AND AT LEAST ONE SERVER, AND CORRESPONDING CACHE}
본 발명은 일반적으로 배타적이 아니라 예로서 HTTP(HyperText Transfer Protocol)를 통한 적응성 스트리밍 기술의 분야에 관한 것으로서, 구체적으로는 클라이언트 단말기들과 원격 서버들 사이의 전송 경로를 따라 배열된 캐시의 거동의 관리에 관한 것이다.
이 섹션은 아래에서 설명 및/또는 청구되는 본 발명의 다양한 양태와 관련될 수 있는 다양한 기술 양태를 독자에게 소개하는 것을 의도한다. 이러한 논의는 본 발명의 다양한 양태의 더 나은 이해를 촉진하기 위한 배경 정보를 독자에게 제공하는 데 도움이 될 것으로 생각된다. 따라서, 이러한 설명은 이를 고려하여 읽혀져야 하며, 종래 기술의 인정으로서 읽혀지지 않아야 한다는 것을 이해해야 한다.
(멀티-비트레이트 스위칭이라고도 하는) HTTP를 통한 적응성 스트리밍이 빠르게 멀티미디어 콘텐츠 배포를 위한 주요 기술이 되고 있다. 이미 사용되고 있는 HTTP 적응성 스트리밍 프로토콜들 중에서, 애플(Apple)의 HLS(HTTP Live Streaming), 마이크로소프트(Microsoft)의 SSS(Silverlight Smooth Streaming), 어도비(Adobe)의 ADS(Adobe Dynamic Streaming) 및 SA4 그룹 내의 3GPP에 의해 개발된 DASH(Dynamic Adaptive Streaming over HTTP)가 가장 유명하다.
클라이언트 단말기가 적응성 스트리밍에서 오디오비주얼 콘텐츠(또는 A/V 콘텐츠)를 재생하기를 원할 때, 먼저 이러한 A/V 콘텐츠를 획득할 수 있는 방법을 설명하는 파일을 입수해야 한다. 이것은 일반적으로 HTTP 프로토콜을 통해 URL(Uniform Resource Locator)로부터 설명 파일, 소위 매니페스트(manifest)를 입수함으로써 이루어지지만, 다른 수단(예로서, 방송, 이메일, SMS 등)에 의해서도 달성될 수 있다. 매니페스트는 기본적으로 (비트레이트, 해상도 및 다른 특성과 관련된) 그러한 A/V 콘텐츠의 (인스턴스 또는 버전이라고도 하는) 이용 가능 표현들: 품질 레벨(비트레이트)당 하나의 표현을 열거한다. 각각의 표현은 - 개별 URL에 의해 액세스 가능한 - 동일한 지속기간의 (청크라고도 하는) 일련의 세그먼트로 구성되며, 클라이언트에 의한 선택을 위해 첨부된 한 세트의 설명 요소를 갖는다. 상기 매니페스트는 예로서 원격 서버에 의해 미리 생성되고 클라이언트 단말기로 전달된다.
실제로, A/V 콘텐츠에 대응하는 데이터의 스트림은 HTTP 서버 상에서 상이한 품질로 이용 가능하다. 최고 품질은 높은 비트레이트와 연관되며; 최저 품질은 낮은 비트레이트와 연관된다. 이것은 매우 다양한 네트워크 조건에 처할 수 있는 많은 상이한 단말기로의 배포를 허용한다.
각각의 표현의 전체 데이터 스트림은 클라이언트 단말기가 2개의 세그먼트 사이에서 하나의 품질 레벨에서 다른 품질 레벨로 매끄럽게 스위칭할 수 있도록 형성되는 동일 지속기간의 세그먼트들로 분할된다. 결과적으로, 재생 동안 비디오 품질이 변할 수 있지만, (프리즈(freeze)라고도 하는) 인터럽션을 거의 겪지 않는다.
클라이언트 측에서, 세그먼트들은 전송 경로의 이용 가능 대역폭의 크기에 기초하여 선택된다. 구체적으로, 클라이언트 단말기는 통상적으로 비트레이트 인코딩 및 따라서 측정된 대역폭에 맞는 품질에 대응하는 세그먼트의 표현을 요청한다.
캐시가 자주 발생하는 클라이언트 단말기와 원격 서버 간의 전송 경로를 따라 존재할 때, 주어진 세그먼트의 하나의 표현은 다른 클라이언트가 동일한 표현을 갖는 동일한 세그먼트를 이전에 요청했던 경우에 또는 콘텐츠 전달 네트워크(Content Delivery Network)(CDN)가 캐시 내에 세그먼트를 이미 제공한 경우에 상기 캐시 내에 이미 저장되었을 수 있다. 따라서, 상기 주어진 세그먼트에 대한 HTTP 요청에 대한 응답은 세그먼트가 원격 서버로부터 오는 경우보다 빠르며, 중복 전송이 방지될 수 있어서, 네트워크 자원이 효과적으로 절약될 수 있다.
통상적인 HTTP 캐시들은 임의의 클라이언트로 전달되는 콘텐츠가 서버로부터 직접 콘텐츠가 오는 경우와 동일할 것을 보증하도록 노력함으로써 콘텐츠를 투명하게 서빙하도록 설계된다.
HAS 콘텐츠(예로서, DASH 콘텐츠)의 전달의 경우, 주어진 타임 슬롯의 모든 비디오 표현들은 최종 사용자에 대해 동등하지만(즉, 그들은 동일한 오디오 및 비디오 콘텐츠에 대응하지만), 비디오(및 아마도 오디오) 품질 면에서는 상이하다. DASH 시스템에서, 네트워크의 기술적 한계는 최상의 품질을 유지하는 것을 허용하지 않으며, 따라서 다양한 품질 레벨의 세그먼트 표현들을 사용하는 것이 통상적인 것으로 간주된다. DASH의 초기 목표가 클라이언트들이 표현을 선택하는 것인 반면, (스마트 캐시들이라고도 하는) 진보된 캐시들은, 본 출원인에 의해 출원된 유럽 특허 출원 EP13305908.9 및 EP13305909.7에서 설명되는 바와 같이, 요구된 표현이 캐시 내에서 이용 가능하지 않을 때 상기 캐시로부터 대안 표현들(alternative representations)이 반환되는 것을 허용함으로써 클라이언트가 선택을 넓히는 것을 허용한다.
그럼에도 불구하고, 다수의 클라이언트가 캐시를 히트하여 중복 표현들의 상이한 선택들로 (예로서, 동일 프로그램으로 조정되는) 동일 자원들을 동시에 요청할 때 문제가 발생한다. "동시에"라는 표현은 요청들이 세그먼트 지속기간보다 짧은 간격으로 발생하는 것으로 이해되어야 한다. 그러한 상황은 자주 발생하며, 전체 전달 체인에 유해하다.
실제로, 공지된 캐시들(소위 레거시 캐시)의 일반 기능은 다음과 같다. 주어진 자원(X라고 함, X는 URL임)에 대한 (Ra라고 하는) 요청의 수신 시에, 요청된 콘텐츠가 캐싱(예로서, 미래의 재사용을 위해 미리 다운로드 및 저장)되지 않은 경우, 캐시는 원격 서버에 대해 요청을 개시하고, 서버로부터 응답이 수신되기 시작하자마자 응답을 클라이언트로 전송하기 시작한다. 동일 자원(X)에 대한 - 현재 요청(Ra)의 종료 전의 - 제2 요청(Rb라고 함)의 도달 시에, 서버와의 응답 콘텐츠의 임의적인 재검증 단계 후에, 동일 응답 콘텐츠가 제2 클라이언트로 전송되기 시작할 것이다. 캐싱되지 않고 X와는 별개의 다른 자원(Y라고 함, Y는 URL임)에 대한 다른 요청(Rc라고 함)의 도달 시에(예로서, 요청이 DASH 세그먼트에 대해 발행되는 경우, X = {rep4} 및 Y = {rep6}은 동일 콘텐츠 내의 동일 시간 오프셋을 지칭함), 캐시는 요청을 이전의 요청들과 병렬로 처리하는데, 이는 그들이 관계없기 때문이다.
즉, 공지된 캐시는 동일 자원(X)에 대한 요청들(Ra, Rb)을 대기열화하는 반면, 관계없는 요청들을 완전 병렬 방식(Rc 대 Ra, Rb)으로 처리한다. 이것은 분명한 성능 및 대역폭 효율의 이유로 매우 바람직하다.
DASH 세그먼트를 검색하기 위해 위의 요청들(Ra, Rb, Rc)이 발행되는 경우 - 여기서 (유럽 특허 출원 EP13305908.9 및 EP13305909.7에서 설명되는 바와 같이) 바람직한 표현(preferred representation)이 허용 가능한 대안들의 리스트와 함께 지시됨 -, 캐시(스마트 캐시) 거동은 다음과 같다. X = {preferred = rep4, alternatives = [rep6, rep5]} 및 Y = {preferred = rep6, alternatives = [rep5, rep4]}일 경우, 동일 콘텐츠 내의 동일 시간 오프셋을 지칭하는 것으로 가정된다. 공지된 캐시들에 대해 설명된 전술한 시나리오를 고려함으로써 그리고 바람직한 그리고 대안 표현들 중 어느 것도 캐싱되지 않은 것으로 가정함으로써, 캐시는 요청들(Ra, Rb)에 응답하여 rep4를 그리고 (Rc)에 응답하여 rep6을 서빙했을 것이다.
그럼에도 불구하고, 그러한 거동은 다음의 2개의 문제를 유발하는데:
- 캐시는 요청들 간의 잠재적 링크를 생성하는 대안 리스트를 무시하였으므로 그들을 관계없는 것으로 간주하며;
- 캐시는 서버로부터 둘 모두의 표현을 다운로드 하였으므로, 아마도 서버와 캐시 간의 경로 상의 혼잡을 유발한다.
게다가, 주거 네트워크에서는, 소수의 디바이스가 존재하는 경우에도, 액세스 대역폭의 부족은 주어진 세그먼트에 대한 중복 요청들의 회피를 중요하게 한다. 액세스 네트워크에서의 캐시를 고려하면, 많은 수의 동시 세션은 많은 가능한 대안에 대해 콘텐츠가 요청되는 것을 매우 가능성 있게 한다. 캐시가 이러한 동시 요청들을 최적으로 처리하지 못할 경우, 네트워크는 혼잡해질 것이다.
본 발명은 전술한 단점들 중 적어도 일부를 극복한다.
본 발명은 클라이언트 단말기들과 적어도 하나의 서버 사이의 전송 경로를 따라 배열된 캐시를 동작시키기 위한 방법으로서, 상기 캐시는 여러 가지 표현으로 이용 가능한 멀티미디어 콘텐츠의 세그먼트들에 대한 요청들을 클라이언트 단말기들로부터 수신하도록 구성되고,
상기 방법은
- 제1 클라이언트 단말기로부터 상기 멀티미디어 콘텐츠의 주어진 세그먼트의 바람직한 표현 및 적어도 하나의 대안 표현에 대한 제1 요청을 수신하는 단계;
- 추가 클라이언트 단말기를 위해 상기 서버로부터 상기 캐시에 의해 이미 요청된, 상기 제1 요청의 상기 바람직한 표현 또는 대안 표현과 매칭되는, 상기 주어진 세그먼트의 진행중인 표현(ongoing representation)을 결정하는 단계
를 포함하는 것을 특징으로 하는 방법과 관련된다.
본 발명에 따른 일 실시예에서, 상기 방법은
- 추가 클라이언트 단말기를 위해 상기 캐시에 의해 이미 요청된 상기 주어진 세그먼트의 매칭된 진행중인 표현과 연관된 유용성 함수(usefulness function)의 값을 결정하는 단계;
- 상기 유용성 함수의 대응하는 결정된 값이 성능 기준을 충족시킬 때, 상기 캐시에 의해 이미 요청된 상기 매칭된 진행중인 표현을 상기 제1 클라이언트 단말기로 전송하는 단계
를 더 포함할 수 있다.
본 발명에 따르면, 캐시는 매칭된 바람직한 표현 및/또는 대안 표현들을 갖는 요청들의 상호 의존성을 인식하게 될 수 있다. 이것은 요청들을 매칭시키고 그들을 직렬화하기 위한 더 많은 기회를 생성하여, 서버들과 관련된 트래픽의 양을 줄일 수 있다.
게다가, 상기 제1 요청의 2개의 별개의 표현과 매칭되는 적어도 2개의 진행중인 표현이 추가 클라이언트 단말기들을 위해 상기 캐시에 의해 이미 요청된 경우, 최고 유용성 값과 연관된 상기 매칭된 진행중인 표현은 상기 유용성 값이 상기 성능 기준을 충족시킬 때 전송될 수 있다.
더욱이, 상기 제1 요청의 2개의 별개의 표현과 매칭되는 적어도 2개의 진행중인 표현이 추가 클라이언트 단말기들을 위해 상기 캐시에 의해 이미 요청된 경우, 상기 제1 요청의 상기 바람직한 표현은 상기 매칭된 진행중인 표현들 중 어느 것도 상기 성능 기준을 충족시키는 유용성 값을 갖지 않을 때 상기 캐시에 의해 상기 서버로 요청될 수 있다.
다른 실시예에서, 상기 성능 기준은 상기 유용성 함수의 값이 0을 초과할 때 충족될 수 있다.
추가 실시예에서, 상기 유용성 함수는 적어도:
- 유용성 함수의 값이 상수와 동일한 적극 모드;
- 상기 유용성 함수가 상기 제1 요청의 상기 바람직한 표현의 상기 서버로부터의 전달 시간 및 상기 캐시에 의해 이미 요청된 매칭된 진행중인 표현의 전달 시간에 의존하는 고속 모드;
- 상기 유용성 함수가 상기 제1 요청의 상기 바람직한 표현의 품질 및 상기 캐시에 의해 이미 요청된 매칭된 진행중인 표현의 품질에 의존하는 품질 모드
를 포함하는 모드들의 그룹에 속하는 동작 모드에 의존할 수 있다.
게다가, 상기 동작 모드는 (예로서, 캐시에서) 적어도 하나의 네트워크 파라미터의 함수로 결정되거나, 상기 제1 클라이언트 단말기에 의해, 추가 네트워크 장비에 의해, 상기 캐시의 소유자에 의해 또는 제삼자에 의해 선택될 수 있다.
상기 동작 모드가 (예로서, 사용자의 선호에 따라) 상기 제1 클라이언트 단말기에 의해 선택되는 경우, 상기 선택된 동작 모드는 상기 제1 요청 내에서 지시될 수 있다.
다른 양태에서, 상기 고속 모드의 상기 유용성 함수는 상기 제1 요청의 상기 바람직한 표현의 상기 서버로부터의 전달 시간과 상기 캐시에 의해 이미 요청된 매칭된 진행중인 표현의 전달 시간 간의 차이에 의해 정의될 수 있다.
추가 양태에서, 상기 품질 모드의 상기 유용성 함수는 상기 바람직한 표현의 품질과 상기 캐시에 의해 이미 요청된 매칭된 진행중인 표현의 품질 간의 차이에 의해 정의된다.
본 발명은 클라이언트 단말기들과 적어도 하나의 서버 사이의 전송 경로를 따라 배치되고, 여러 가지 표현으로 이용 가능한 멀티미디어 콘텐츠의 세그먼트들에 대한 요청들을 클라이언트 단말기들로부터 수신하도록 구성되는 캐시와도 관련된다. 상기 캐시는
- 제1 클라이언트 단말기로부터 상기 멀티미디어 콘텐츠의 주어진 세그먼트의 바람직한 표현 및 적어도 하나의 대안 표현에 대한 제1 요청을 수신하기 위한 접속의 인터페이스;
- 추가 클라이언트 단말기를 위해 서버로부터 상기 캐시에 의해 이미 요청된, 상기 주어진 세그먼트의 적어도 하나의 진행중인 표현이 상기 제1 요청의 상기 바람직한 표현 또는 대안 표현과 매칭되는지를 결정하도록 구성되는 매칭 모듈
을 포함한다.
게다가, 상기 캐시는 상기 매칭 모듈에 의해 식별된 상기 주어진 세그먼트의 매칭된 진행중인 표현과 연관된 유용성 함수의 값을 결정하도록 적응되는 계산기를 더 포함할 수 있다.
더욱이, 상기 캐시는 여러 가지 진행중인 표현이 상기 제1 요청의 상기 바람직한 표현 및 대안 표현들과 매칭되는 경우에 상기 유용성 함수의 최고 값을 갖는, 상기 스마트 캐시에 의해 이미 요청된 상기 매칭된 진행중인 표현을 결정하도록 구성되는 비교기를 더 포함할 수 있다. 상기 비교기는 매칭된 진행중인 표현의 상기 유용성 함수의 상기 결정된 값이 성능 기준을 충족시키는지의 여부를 체크하도록 더 구성될 수 있다.
더욱이, 상기 유용성 함수는 적어도:
- 유용성 함수의 값이 상수와 동일한 적극 모드;
- 상기 유용성 함수가 상기 제1 요청의 상기 바람직한 표현의 상기 서버(SE)로부터의 전달 시간 및 상기 캐시(DANE)에 의해 이미 요청된 매칭된 진행중인 표현의 전달 시간에 의존하는 고속 모드;
- 상기 유용성 함수가 상기 제1 요청의 상기 바람직한 표현의 품질 및 상기 캐시(DANE)에 의해 이미 요청된 매칭된 진행중인 표현의 품질에 의존하는 품질 모드
를 포함하는 모드들의 그룹에 속하는 동작 모드에 의존할 수 있다.
게다가, 상기 제1 요청은 상기 동작 모드의 지시를 포함할 수 있다.
본 발명은 세그먼트들로 분할되고 적어도 하나의 원격 서버에 의해 제공되는 멀티미디어 콘텐츠를 수신하도록 구성되는 클라이언트 단말기와 또한 관련되며, 각각의 세그먼트는 하나 이상의 표현으로 이용 가능하다. 상기 클라이언트 단말기는 상기 클라이언트 단말기와 하나의 서버 사이의 전송 경로를 따라 배열된 캐시에 의해 적용될 선택된 동작 모드를 지시하는 표현에 대한 요청을 전송하도록 구성되는 통신 모듈을 포함한다.
게다가, 상기 클라이언트는
- 휴대용 미디어 디바이스;
- 이동 전화;
- 게임 디바이스;
- 셋톱 박스;
- TV 세트;
- 태블릿;
- 랩탑; 및
- 집적 회로
를 포함하는 세트에 속할 수 있다.
본 발명은 하나 이상의 표현으로 이용 가능한 세그먼트들로 분할된 멀티미디어 콘텐츠의 세그먼트의 표현에 대한 요청을 클라이언트 단말기에 의해 전송하기 위한 방법과도 관련되며, 상기 멀티미디어 콘텐츠는 적어도 하나의 원격 서버에 의해 제공된다. 상기 요청은 상기 클라이언트 단말기와 하나의 서버 사이의 전송 경로를 따라 배열된 캐시에 의해 적용될 선택된 동작 모드의 지시를 포함한다.
본 발명은 통신 네트워크로부터 다운로드될 수 있고/있거나 컴퓨터에 의해 판독 가능한 매체 상에 기록되고/되거나 프로세서에 의해 실행될 수 있고, 전술한 방법의 단계들을 구현하기 위한 프로그램 코드 명령어들을 포함하는 컴퓨터 프로그램 제품과 또한 관련된다.
게다가, 본 발명은 그에 기록되고, 프로세서에 의해 실행될 수 있고, 전술한 방법의 단계들을 구현하기 위한 프로그램 코드 명령어들을 포함하는 컴퓨터 프로그램 제품을 포함하는 비일시적 컴퓨터 판독 가능 매체와도 관련된다.
개시되는 실시예들과 범위 면에서 동등한 소정 양태들이 아래에서 설명된다. 이러한 양태들은 본 발명이 취할 수 있는 소정 형태들의 간단한 요약을 독자에게 제공하기 위해 제공될 뿐이며, 이러한 양태들은 본 발명의 범위를 한정하는 것을 의도하지 않는다는 것을 이해해야 한다. 실제로, 본 발명은 아래에서 설명되지 않을 수 있는 다양한 양태를 포함할 수 있다.
본 발명은 첨부 도면들과 관련된, 한정적이 아닌 아래의 실시 및 실행 예들에 의해 더 잘 이해되고 설명될 것이다. 도면들에서:
도 1은 본 발명이 구현될 수 있는 클라이언트-서버 네트워크 아키텍처의 개략도이다.
도 2a는 본 발명의 바람직한 실시예에 따른 스마트 캐시 클라이언트의 일례의 블록도이다.
도 2b는 본 발명의 바람직한 실시예에 따른 클라이언트 단말기의 일례의 블록도이다.
도 3은 바람직한 실시예에 따른, 도 2a의 스마트 캐시를 동작시키기 위한 방법을 나타내는 흐름도이다.
도 4 내지 6은 적극 모드, 고속 모드 및 품질 모드 각각에 대한 도 3의 방법의 구현의 3개의 설명 예를 나타낸다.
도 1, 2a 및 2b에서, 표현된 블록들은 반드시 물리적 개별 엔티티들에 대응할 필요는 없는 순수 기능 엔티티들이다. 즉, 그들은 소프트웨어, 하드웨어의 형태로 개발될 수 있거나, 하나 이상의 프로세서를 포함하는 하나의 또는 여러 개의 집적 회로 내에 구현될 수 있다.
가능할 경우마다, 도면들 전반에서 동일하거나 유사한 요소들을 지시하기 위해 동일한 참조 번호들이 사용될 것이다.
본 발명의 도면들 및 설명들은 본 발명의 명료한 이해에 적합한 요소들을 설명하는 반면에 명료화를 위해 통상적인 디지털 멀티미디어 콘텐츠 전달 방법들 및 시스템들에서 발견되는 많은 다른 요소들을 배제하도록 간소화되었다는 것을 이해해야 한다. 그러나, 그러한 요소들은 본 기술분야에 널리 공지되어 있으므로, 그러한 요소들의 상세한 논의는 본 명세서에서 제공되지 않는다. 본 명세서의 개시내용은 본 기술분야의 통상의 기술자들에게 알려진 모든 그러한 변경들 및 수정들과 관련된다.
바람직한 실시예에 따르면, 본 발명은 HTTP 적응성 스트리밍 프로토콜(또는 HAS)과 관련하여 설명된다. 물론, 본 발명은 그러한 특정 환경으로 제한되지 않으며, 다른 적응성 스트리밍 프로토콜이 물론 고려되고 구현될 수 있다.
도 1에 도시된 바와 같이, 본 발명이 구현될 수 있는, 하나 또는 여러 개의 네트워크(N)(도면들에는 하나의 네트워크만이 표현됨)에 의해 지원되는 클라이언트-서버 네트워크 아키텍처는 하나 또는 여러 개의 클라이언트 단말기(CT), 하나 이상의 HTTP 서버(SE), 복수의 스마트 캐시(DANE) 및 하나 이상의 레거시 캐시(RNE)를 포함한다. DASH에 따르면, 그러한 서버들(SE)은 미디어 오리진(Media Origin)으로도 지칭된다. 그들은 예로서 미디어 프레젠테이션 설명(또는 MPD), 소위 매니페스트를 생성한다. 이것은 콘텐츠 배포의 소스이며: 멀티미디어 콘텐츠는 소정의 외부 엔티티로부터 올 수 있고, 미디어 오리진에서 HAS 포맷으로 변환될 수 있다.
스마트 캐시(DANE)는 HAS 콘텐츠가 전달된다는 것을 이해하도록 구성되는 네트워크(N) 내의 캐싱 요소이다. MPEG-DASH 용어를 이용하면, 스마트 캐시는 DASH 인식 네트워크 요소(DANE)로서 간주된다.
레거시 캐시(RNE)는 그를 통과하는 데이터의 타입을 알지 못하는 네트워크(N) 내의 캐싱 요소이거나, 적어도 HAS 양태들을 이해하지 못한다. MPEG-DASH 용어에서, 레거시 캐시는 정규 네트워크 요소(RNE)로서 간주된다.
클라이언트 단말기(CT)는 HTTP 서버들(SE) 중 하나로부터 멀티미디어 콘텐츠를 획득하기를 원한다. 상기 멀티미디어 콘텐츠는 복수의 세그먼트로 분할된다. 멀티미디어 콘텐츠는 서버(SE)에서 상이한 표현들로 이용 가능한 것으로 가정된다. HTTP 서버(SE)는 클라이언트 요청 시에 하나 이상의 TCP/IP 접속을 통해 HTTP 적응성 스트리밍 프로토콜을 이용하여 세그먼트들을 클라이언트 단말기(CT)로 스트리밍할 수 있다.
바람직한 실시예에서, 클라이언트 단말기(CT)는 휴대용 미디어 디바이스, 이동 전화, 태블릿 또는 랩탑, TV 세트, 셋톱 박스, 게임 디바이스 또는 집적 회로이다. 물론, 클라이언트 단말기(CT)는 완전한 비디오 플레이어를 포함하는 것이 아니라, 미디어 콘텐츠를 역다중화 및 디코딩하기 위한 것들과 같은 일부 하위 요소들만을 포함할 수 있으며, 디코딩된 콘텐츠를 최종 사용자에게 디스플레이하기 위해 외부 수단에 의존할 수 있다. 이 경우, 클라이언트 단말기(CT)는 셋톱 박스와 같은 HTTP 적응성 스트리밍(HAS) 가능 비디오 디코더이다.
도 2a에 도시된 바와 같이, 스마트 캐시(DANE)는
- 접속의 하나 이상의 인터페이스(1)(유선 및/또는 무선);
- 접속의 인터페이스들(1)을 통해 통신하기 위한 프로토콜 스택들을 포함하는 통신 모듈(2). 구체적으로, 통신 모듈은 IP 스택으로 지시되는 인터넷 프로토콜 스택을 포함할 수 있음;
- 하나 이상의 서버(SE)로부터 수신된 멀티미디어 콘텐츠들의 세그먼트들을 그러한 멀티미디어 콘텐츠들을 요청하는 클라이언트 단말기들(CT)로 전송하기 위해 그들을 저장하기 위한 휘발성 메모리 및/또는 영구 메모리와 같은 저장 모듈(3);
- 저장 모듈(3)에 저장된 애플리케이션들 및 프로그램들을 실행하기 위한 하나 이상의 프로세서(4);
- 일반 주거 게이트웨이 기능들을 수행하기 위해 다양한 모듈, 처리 수단 및 본 기술분야의 통상의 기술자에게 널리 공지된 모든 수단을 접속하기 위한 내부 버스(B)
를 포함한다.
도 2b에 도시된 바와 같이, 클라이언트 단말기(CT)는 적어도:
- 접속의 인터페이스(1A)(유선 및/또는 무선, 예로서, 와이파이, 이더넷, ADSL, 케이블, 이동 및/또는 방송(예로서, DVB, ATSC) 인터페이스);
- HTTP 서버(SE)와 통신하기 위한 프로토콜 스택들을 포함하는 통신 모듈(2A). 구체적으로, 통신 모듈(2A)는 본 기술분야에 널리 공지된 TCP/IP 스택을 포함함. 물론, 이것은 클라이언트 단말기(CT)가 HTTP 서버(SE)와 통신하는 것을 가능하게 하는 임의의 다른 타입의 네트워크 및/또는 통신 수단일 수 있음;
- HTTP 서버(SE)로부터 HTTP 스트리밍 멀티미디어 콘텐츠를 수신하는 적응성 스트리밍 모듈(3A). 이것은 네트워크 제약 및 그 자신의 제약과 더 양호하게 매칭되는 비트 레이트로 세그먼트를 계속 선택함;
- 멀티미디어 콘텐츠를 디코딩 및 렌더링하도록 적응되는 비디오 플레이어(4A);
- 클라이언트 단말기(CT)의 비휘발성 메모리에 저장된 애플리케이션들 및 프로그램들을 실행하기 위한 하나 이상의 프로세서(5A);
- HTTP 서버(SE)로부터 수신된 세그먼트들을 비디오 플레이어(4A)로의 그들의 전송 전에 버퍼링하기 위한, 휘발성 메모리와 같은, 저장 수단(6A);
- 일반 클라이언트 단말기 기능들을 수행하기 위해 다양한 모듈 및 본 기술분야의 통상의 기술자에게 널리 공지된 모든 수단을 접속하기 위한 내부 버스(B1)
를 포함한다.
아래에서는, 주어진 클라이언트 단말기(CT)가 네트워크(N) 상에서 멀티미디어 콘텐츠의 주어진 세그먼트를 획득하기 위한 제1 요청을 전송하는 것으로 가정한다. 상기 제1 요청은 바람직한 요청된 표현 및 하나 이상의 대안적인 요청된 표현을 포함한다. 그러한 타입의 요청은 예로서 본 출원인에 의해 출원되고 본원에 참조로 포함되는 유럽 특허 출원 EP13305909.7에서 설명되며, 여기서 상기 요청은 하나의 "altlist" 추가 지령을 이용하여 대안 표현들을 열거할 수 있다.
바람직한 실시예에 따르면, 스마트 캐시(DANE)는
- 추가 클라이언트 단말기(CT)를 위해 스마트 캐시(DANE)에 의해 서버(SE)에서 이미 요청된 주어진 세그먼트의 적어도 하나의 진행중인 표현이 (주어진 클라이언트 단말기(CT)에 의해 전송된) 제1 요청의 바람직한 또는 대안 표현과 매칭되는지를 결정하도록 구성되는 매칭 모듈(5). 상기 매칭된 진행중인 표현은 스마트 캐시(DANE) 내에 이미 저장되었을 수 있거나, 현재 다운로드되고 있을 수 있음. 이를 위해, 매칭 모듈(5)은 제1 요청에서 요청된 표현들과 연관된 URL들(Uniform Resource Locator)(요청 URL, altlist 확장 헤더)을 이용할 수 있음;
- 매칭 모듈(5)에 의해 식별된 주어진 세그먼트의 매칭된 진행중인 표현의 유용성 함수(U)의 값을 결정하도록 적응되는 계산기(6). 아래에서 설명되는 바와 같이, 유용성 함수(U)는 스마트 캐시(DANE) 또는 클라이언트 단말기(CT)와 연관된 동작 모드에 의존할 수 있음;
- 여러 가지 진행중인 표현이 제1 요청의 표현과 매칭되는 경우에 유용성 함수(U)의 최고 값을 갖는, 상기 스마트 캐시에 의해 이미 요청된 매칭된 진행중인 표현을 결정하도록 적응되는 비교기(7)
도 포함한다. 게다가, 상기 비교기(7)는 진행중인 표현의 유용성 함수(U)의 결정된 값이 성능 기준을 충족시키는지의 여부를 체크하도록 더 구성될 수 있다. 설명적인, 그러나 비한정적인 예에서, 성능 기준은 유용성 함수의 값이 0을 초과(즉, U>0)할 때 충족된다.
게다가, 스마트 캐시(DANE)는 스마트 캐시(DANE)와 서버(SE) 사이의 전송 경로를 따른 대역폭을 결정하도록 구성되는 대역폭 추정기(8)도 포함할 수 있다. 이를 위해, 대역폭 추정기(8)는 예로서 경로 상에서 수신된 바이트들의 수를 카운트할 수 있다. 이어서, 대역폭은 소정 기간에 걸쳐 수신된 바이트들의 수를 분할함으로써 추정된다. 물론, 그러한 대역폭을 추정하기 위해 임의의 다른 메커니즘들이 이용될 수 있다. 대역폭 추정기(8)는 계산기(6) 내에 통합될 수 있다.
바람직한 실시예에 따르면, 유용성 함수(U)는 스마트 캐시(DANE) 또는 클라이언트 단말기(CT)와 연관된 동작 모드에 의존한다. 모드는 스마트 캐시(DANE)의 소유자에 의해 또는 일 변형에서 (스마트 캐시와 주어진 서버 사이의 경로를 따른 대역폭과 같은) 하나 또는 여러 개의 네트워크 파라미터의 함수로 결정될 수 있다. 추가 변형에서, 클라이언트 단말기는 최종 사용자 개인 선호에 따라 또는 개선된 서비스를 허가하는 가입 요금의 지불 후에 (예로서, 요청의 altlist 헤더에 추가 정보를 제공함으로써) 세그먼트에 대한 그의 요청 내에서 원하는 동작 모드를 지시할 수 있다.
스마트 캐시(DANE)의 동작 모드는 저장 모듈(3)(예로서, 랜덤 액세스 메모리(RAM), 로컬 메모리(예로서, 하드 디스크 또는 플래시 메모리)) 내에 저장될 수 있다.
구체적으로, 동작 모드는 적극 모드, 고속 모드 또는 품질 모드 중에서 선택된다. 분명히, 모드들의 수는 제한되지 않으며, 본 발명으로부터 벗어나지 않고서 3개와는 상이할 수 있다.
적극 모드에서, 유용성 함수(U)의 값은 상수와 동일하다. 이 동작 모드에서, 스마트 캐시(DANE)로부터의 원하는 효과는 제1 요청의 바람직한 그리고 대안 표현들을 진행중인 표현들과 매칭시킴으로써 캐시 히트 레이트를 최대화하고, 서버로부터 캐시로의 트래픽을 그의 최소치로 줄이는 것이다. 이러한 표현들 중 임의의 표현이 현재 다운로드되고 있을 때, 제1 요청은 매칭된 진행중인 표현의 수신 시에 서빙되도록 스케줄링될 것이다. 따라서, 가능할 때마다, 서버(SE)로부터 하나의 표현만이 유리하게 다운로드될 수 있다.
고속 모드에서, 유용성 함수(U)는 상기 제1 요청의 바람직한 표현의 서버(SE)로부터의 전달 시간 및 스마트 캐시(DANE)에 의해 이미 요청된 매칭된 진행중인 표현의 전달 시간에 의존한다. 전달 시간은 스마트 캐시(DANE)와 서버(SE) 간의 추정 대역폭으로 요청의 바이트들의 수를 나눔으로써 쉽게 계산될 수 있다. 매칭된 진행중인 표현들과 연관된 요청들의 경우, 전달 시간은 스마트 캐시(DANE)와 서버(SE) 간의 대역폭으로 전송될 남은 바이트들의 수를 나눔으로써 계산될 수 있다. 구체적으로, 유용성 함수(U)는 제1 요청의 바람직한 표현의 서버(SE)로부터의 전달 시간과 스마트 캐시(DANE)에 의해 이미 요청된 매칭된 진행중인 표현의 전달 시간 간의 차이에 의해 정의된다. 고속 모드가 선택될 때, 계산기(6)는 주어진 세그먼트의 표현들의 예상 도달 시간들을 계산할 수 있다. 고속 모드는 매칭된 진행중인 표현의 다운로딩이 제1 요청의 바람직한 표현의 요청 및 다운로딩보다 오래 지속되는 것을 방지한다. 따라서, 긴 처리 요청들은 추가적인 더 짧은 요청보다 후순위가 될 것이다. 그럼에도 불구하고, 매칭된 진행중인 표현과 연관된 큰 요청이 거의 끝날 때, 스마트 캐시(DANE)는 예로서 제1 요청의 바람직한 표현을 검색하기 위한 다른 고속 요청을 트리거링하는 대신에 그의 완료를 기다릴 것이다.
품질 모드에서, 유용성 함수(U)는 바람직한 표현의 품질 및 상기 캐시에 의해 이미 요청된 매칭된 진행중인 표현의 품질에 의존한다. 더 구체적으로, 품질 모드의 유용성 함수(U)는 제1 요청의 바람직한 표현의 품질(예로서, 비트 레이트)과 스마트 캐시(DANE)에 의해 이미 요청된 고려된 진행중인 표현의 품질 간의 차이에 의해 정의된다. 품질 모드는 품질에 의존하는데, 이는 클라이언트 단말기(CT)의 제1 요청의 표현과 매칭되는 진행중인 표현이 이러한 진행중인 표현의 품질이 제1 요청의 바람직한 표현의 품질 이상일 때만 서빙된다는 것을 의미한다.
품질 모드의 경우, 스마트 캐시(DANE)는 표현들의 상대적 품질을 아는 것이 필요하다. DASH 콘텐츠의 경우, 통상적으로 더 높은 비트 레이트들은 더 높은 품질에 대응하지만, 분명히 개별 시그널링 수단(예로서, 표현들에 추가된 메타데이터)도 이용될 수 있다. 이어서, 표현들을 비교하기 위한 품질 규준의 사용이 가정된다.
도 3에 도시된 바와 같이, 스마트 캐시(DANE)는 클라이언트 단말기(CT)의 요청 및 결정된 동작 모드에 따라 그에게 전달할 멀티미디어 콘텐츠의 주어진 세그먼트의 표현을 선택하도록 구성된다. 이를 위해, 스마트 캐시(DANE)는 다음을 포함하는 하기의 메커니즘(M)을 구현할 수 있다:
- 제1 클라이언트 단말기로부터 멀티미디어 콘텐츠의 주어진 세그먼트의 바람직한 그리고 대안 표현들에 대한 제1 요청을 수신하는 단계(단계 S1);
- 추가 클라이언트 단말기(CT)를 위해 스마트 캐시(DANE)에 의해 서버(SE)에서 이미 요청된 주어진 세그먼트의 적어도 하나의 진행중인 표현이 제1 요청의 바람직한 또는 대안 표현들과 매칭되는지를 결정하는 단계(단계 S2);
- 주어진 세그먼트의 각각의 매칭된 진행중인 표현(상기 캐시에 의해 이미 요청된 상기 진행중인 표현)에 대한 유용성 함수의 값을 결정하는 단계(단계 S3). 구체적으로,
■ 적극 동작 모드가 선택된 때, 유용성 함수의 값은 상수(예로서, U=1)이고;
■ 고속 동작 모드가 선택된 때, 유용성 함수는
U=deliverytime(preferred_rep)-deliverytime(matched_ongoing_rep)
에 의해 정의되고;
■ 품질 동작 모드가 선택된 때, 유용성 함수는
U=quality(matched_ongoing_rep)+ε-quality(preferred_rep)
에 의해 정의되고, 여기서 ε은 충분히 상이한 품질들을 구별하는 데 사용되는 상수임. 표현 품질들을 비교할 때, 품질들의 차이(절대값)가 ε보다 낮은 경우, 표현들은 동등한 품질로 간주된다. ε은 0과 동일하도록 선택될 수 있다.
- 성능 기준을 충족시키는, 유용성 함수의 최고 값을 갖는 매칭된 진행중인 표현을 선택하는 단계(단계 S4). 구체적으로, 적극 모드의 경우, 여러 매칭된 진행중인 표현이 존재할 때 그리고 유용성 함수의 값이 일정하므로, 선택된 매칭된 진행중인 표현은 선호 순서(바람직한 표현, 제1 대안, 제2 대안 등)에 의해 제1 요청의 표현들 중 하나에 대응함. 적극 모드의 추가 변형에서, 선택된 매칭된 진행중인 표현은 최단 전달 시간을 갖는 표현에 대응함;
- 캐시에 의해 이미 요청된(그리고 아마도 서버(SE)로부터 현재 다운로드되고 있는) 선택된 진행중인 표현을 상기 캐시에 의해 제1 클라이언트 단말기(CT)로 전송하는 단계(단계 S5). 매칭된 진행중인 표현들 중 어느 것도 성능 기준을 충족시키는 유용성 값을 갖지 않을 때(즉, 어떠한 매칭된 진행중인 표현도 선택되지 않은 때), 제1 요청의 바람직한 표현이 이에 따라 스마트 캐시(DANE)에 의해 서버(SE)로 요청된다(단계 S6).
단계 S1 내지 S6의 순서는 본 발명으로부터 벗어나지 않고서 변경될 수 있다는 것을 이해해야 한다.
바람직한 실시예에 따른 적극 모드의 제1의 설명적인 그러나 비한정적인 예에서, 도 4에 도시된 시간 도면은 세그먼트에 대해 클라이언트 단말기들(CT1, CT2)에 의해 전송된 요청들(Get rep4, alt [rep6, rep5], Get rep6, alt [rep5, rep4]), 진행중인 표현에 대해 스마트 캐시(DANE)에 의해 전송된 요청(Get rep4), 서버(SE)에 의해 전송된 응답(rep4) 및 캐시(DANE)에 의해 클라이언트 단말기들(CT1, CT2)로 전송된 응답들(rep4)을 나타낸다.
적극 모드에서 유용성 및 성능 파라미터는 본 발명으로부터 벗어나지 않고서 무시되고, 계산 또는 체크되지 않을 수 있다는 점에 주목할 수 있다.
구체적으로, 전술한 바와 같은 제1 단말기에 대응하는 것으로 가정되는 클라이언트 단말기(CT2)는 바람직한 표현(rep6) 및 대안 표현들(rep5, rep4)에 대한 요청을 전송한다. 표현 6(rep6)은 또한 표현 4(rep4)보다 양호한 품질을 갖는 것으로 가정된다.
적극 모드에 따르면, 클라이언트 단말기(CT2)는 그의 제1 요청에 응답하여 대안 표현 "rep4"를 수신하는데, 이는 그의 요청이 스마트 캐시(DANE)에 도달한 때 상기 대안 표현이 (추가 클라이언트 단말기(CT1)의 이전의 요청에 응답하여) 다운로드 중이거나 다운로드되었기 때문이다.
바람직한 실시예에 따른 고속 모드의 제2의 설명적인 그러나 비한정적이 예에서, 도 5에 도시된 시간 도면은 클라이언트 단말기들(CT1, CT2), 스마트 캐시(DANE) 및 서버(SE) 사이에서 교환되는 요청들 및 응답들을 나타낸다.
구체적으로, 클라이언트 단말기(CT2)는 바람직한 표현(rep2) 및 대안 표현들(rep4, rep3)에 대한 요청을 전송한다. 클라이언트 단말기(CT2)의 요청의 대안 표현과 매칭되는 - 스마트 캐시(DANE)에 의해 이미 요청된 - 하나의 진행중인 표현(rep4)이 존재한다.
그럼에도 불구하고, 클라이언트 단말기(CT2)에 의해 요청된 바람직한 표현(rep2)의 예상 전달 시간은 이미 요청된 매칭된 진행중인 표현(rep4)의 전달 시간보다 빠르며, 따라서 스마트 캐시(DANE)는 클라이언트 단말기(CT2)를 위해 상기 바람직한 표현(rep2)을 요청할 것이다.
바람직한 실시예에 따른 품질 모드의 제3의 설명적인 그러나 비한정적인 예에서, 도 6의 시간 도면은 또한 클라이언트 단말기들(CT1, CT2), 스마트 캐시(DANE) 및 서버(SE) 사이에 교환되는 요청들 및 응답들을 나타낸다.
이 예에서, 클라이언트 단말기(CT2)는 바람직한 표현(rep6) 및 대안 표현들(rep5, rep4)에 대한 요청을 전송한다. 제1 예와 관련하여, 표현 6(rep6)은 표현 4(rep4)보다 양호한 품질을 갖는 것으로 가정된다. 클라이언트 단말기(CT2)의 요청의 대안 표현과 매칭되는 - 스마트 캐시(DANE)에 의해 이미 요청된 - 하나의 진행중인 표현(rep4)이 존재한다.
(클라이언트 단말기(CT1)를 위해 스마트 캐시(DANE)에 의해 이미 요청된) 매칭된 진행중인 표현(rep4)의 품질이 바람직한 표현 6의 품질보다 낮은 것으로 결정된다고 가정하면, 스마트 캐시(DANE)는 클라이언트 단말기(CT2)를 위해 상기 바람직한 표현(rep6)을 요청할 것이다.
따라서, 바람직한 실시예는 서버(SE)를 향한 다른 요청의 발행의 유용성을 결정하기 위해 이미 진행 중인 동작들에 대해 매칭될, 바람직한 표현 및 그의 대안들 전체를 포함하는 클라이언트 단말기(CT)로부터의 요청을 고려하는 것에 있다. 매치가 발견될 때, 스마트 캐시(DANE)는 서버들과 관련된 트래픽의 양을 줄이기 위해 요청이 서버(SE)를 향해 새로운 요청을 발행함으로써 처리될지 또는 진행중인 요청 뒤에 직렬화될지(예로서, 진행중인 요청의 결과를 이용하여 서빙될지)를 결정하기 위한 계산을 수행한다.
스마트 캐시(DANE)는 프록시 내에, 게이트웨이 내에 또는 임의의 다른 적절한 네트워크 장비 내에 통합될 수 있다는 점에 유의해야 한다.
도면들 내의 흐름도 및/또는 블록도들은 본 발명의 다양한 실시예에 따른 시스템들, 방법들 및 컴퓨터 프로그램 제품들의 가능한 구현들의 구성, 동작 및 기능을 나타낸다. 이와 관련하여, 흐름도 또는 블록도들 내의 각각의 블록은 지정된 논리적 기능(들)을 구현하기 위한 하나 이상의 실행 가능 명령어를 포함하는 코드의 모듈, 세그먼트 또는 부분을 나타낼 수 있다. 일부 대안 구현들에서, 블록 내에 지시되는 기능들은 도면들에 지시된 순서와는 상이한 순서로 발생할 수 있다는 점에도 유의해야 한다. 예로서, 관련 기능에 따라, 연속적으로 도시된 2개의 블록이 실제로는 실질적으로 동시에 실행될 수 있거나, 블록들은 때때로 역순으로 실행될 수 있거나, 블록들은 대안적인 순서로 실행될 수 있다. 블록도들 및/또는 순서도의 각각의 블록 및 블록도들 및/또는 순서도 내의 블록들의 조합들은 지정된 기능들 또는 동작들을 수행하는 특수 목적 하드웨어 기반 시스템들 또는 특수 목적 하드웨어 및 컴퓨터 명령어들의 조합들에 의해 구현될 수 있다는 점에도 주목할 것이다. 명확히 설명되지 않지만, 본 실시예들은 임의의 조합 또는 하위 조합으로 이용될 수 있다.
본 기술분야의 통상의 기술자가 인식하듯이, 본 발명의 원리들의 양태들은 시스템, 방법 또는 컴퓨터 판독 가능 매체로서 구현될 수 있다. 따라서, 본 발명의 원리들의 양태들은 완전 하드웨어 실시예, (펌웨어, 상주 소프트웨어, 마이크로코드 등을 포함하는) 완전 소프트웨어 실시예 또는 모두가 일반적으로 본 명세서에서 "회로", "모듈" 또는 "시스템"으로서 지칭될 수 있는 소프트웨어 및 하드웨어 양태들을 결합하는 실시예의 형태를 취할 수 있다. 더구나, 본 발명의 원리들의 양태들은 컴퓨터 판독 가능 저장 매체의 형태를 취할 수 있다. 하나 이상의 컴퓨터 판독 가능 저장 매체(들)의 임의 조합이 이용될 수 있다.
컴퓨터 판독 가능 저장 매체는 하나 이상의 컴퓨터 판독 가능 매체(들) 내에 구현되고 컴퓨터에 의해 실행 가능한 컴퓨터 판독 가능 프로그램 코드가 구현된 컴퓨터 판독 가능 프로그램 제품의 형태를 취할 수 있다. 본 명세서에서 사용되는 바와 같은 컴퓨터 판독 가능 저장 매체는 그 안에 정보를 저장하는 고유 능력뿐만 아니라 그로부터 정보의 검색을 제공하는 고유 능력을 고려하면 비일시적 저장 매체로 간주된다. 컴퓨터 판독 가능 저장 매체는 예로서 전자, 자기, 광학, 전자기, 적외선 또는 반도체 시스템, 장치 또는 디바이스, 또는 이들의 임의의 적절한 조합일 수 있지만 이에 한정되지 않는다. 휴대용 컴퓨터 디스켓; 하드 디스크; 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM); 소거 및 프로그래밍 가능 판독 전용 메모리(EPROM 또는 플래시 메모리); 휴대용 컴팩트 디스크 판독 전용 메모리(CD-ROM); 광학 저장 디바이스; 자기 저장 디바이스; 또는 이들의 임의의 적절한 조합은 본 발명의 원리들이 적용될 수 있는 컴퓨터 판독 가능 저장 매체들의 더 구체적인 예들을 제공하지만, 본 기술분야의 통상의 기술자에 의해 쉽게 인식되는 바와 같이 설명적이고 비포괄적인 리스팅일 뿐이라는 것을 알아야 한다.

Claims (15)

  1. 클라이언트 단말기들(CT)과 적어도 하나의 서버(SE) 사이의 전송 경로를 따라 배열된 캐시(DANE)를 동작시키기 위한 방법으로서, 상기 캐시(DANE)는 여러 가지 표현들로 이용 가능한 멀티미디어 콘텐츠의 세그먼트들에 대한 요청들을 클라이언트 단말기들(CT)로부터 수신하도록 구성되고,
    상기 방법은
    - 제1 클라이언트 단말기(CT)로부터 상기 멀티미디어 콘텐츠의 주어진 세그먼트의 바람직한 표현 및 적어도 하나의 대안 표현에 대한 제1 요청을 수신하는 단계(S1);
    - 추가 클라이언트 단말기(CT)를 위해 상기 서버(SE)로부터 상기 캐시에 의해 이미 요청된, 상기 제1 요청의 상기 바람직한 표현 또는 대안 표현과 매칭되는, 상기 주어진 세그먼트의 진행중인 표현(ongoing representation)을 결정하는 단계(S2)
    를 포함하는 것을 특징으로 하는, 방법.
  2. 제1항에 있어서,
    - 추가 클라이언트 단말기(CT)를 위해 상기 캐시(DANE)에 의해 이미 요청된 상기 주어진 세그먼트의 매칭된 진행중인 표현과 연관된 유용성 함수(usefulness function)의 값을 결정하는 단계(S3);
    - 상기 유용성 함수의 대응하는 상기 결정된 값이 성능 기준을 충족시킬 때, 상기 캐시(DANE)에 의해 이미 요청된 상기 매칭된 진행중인 표현을 상기 제1 클라이언트 단말기(CT)로 전송하는 단계(S5)
    를 더 포함하는, 방법.
  3. 제2항에 있어서,
    상기 제1 요청의 2개의 별개의 표현들과 매칭되는 적어도 2개의 진행중인 표현들이 추가 클라이언트 단말기들(CT)을 위해 상기 캐시(DANE)에 의해 이미 요청된 경우, 최고 유용성 값과 연관된 상기 매칭된 진행중인 표현은 상기 유용성 값이 상기 성능 기준을 충족시킬 때 전송되는, 방법.
  4. 제2항 또는 제3항에 있어서,
    상기 제1 요청의 2개의 별개의 표현들과 매칭되는 적어도 2개의 진행중인 표현들이 추가 클라이언트 단말기들(CT)을 위해 상기 캐시(DANE)에 의해 이미 요청된 경우, 상기 제1 요청의 상기 바람직한 표현은 상기 매칭된 진행중인 표현들 중 어느 것도 상기 성능 기준을 충족시키는 유용성 값을 갖지 않을 때 상기 캐시(DANE)에 의해 상기 서버(SE)로 요청되는, 방법.
  5. 제2항 내지 제4항 중 어느 한 항에 있어서,
    상기 성능 기준은 상기 유용성 함수의 값이 0을 초과할 때 충족되는, 방법.
  6. 제2항 내지 제5항 중 어느 한 항에 있어서,
    상기 유용성 함수는 적어도:
    - 유용성 함수의 값이 상수와 동일한 적극 모드;
    - 상기 유용성 함수가 상기 제1 요청의 상기 바람직한 표현의 상기 서버(SE)로부터의 전달 시간 및 상기 캐시(DANE)에 의해 이미 요청된 매칭된 진행중인 표현의 전달 시간에 의존하는 고속 모드;
    - 상기 유용성 함수가 상기 제1 요청의 상기 바람직한 표현의 품질 및 상기 캐시(DANE)에 의해 이미 요청된 매칭된 진행중인 표현의 품질에 의존하는 품질 모드
    를 포함하는 모드들의 그룹에 속하는 동작 모드에 의존하는, 방법.
  7. 제6항에 있어서,
    상기 동작 모드는 적어도 하나의 네트워크 파라미터의 함수로 결정되는, 방법.
  8. 제6항에 있어서,
    상기 동작 모드는 상기 제1 클라이언트 단말기에 의해 선택되고, 상기 제1 요청 내에서 지시되는, 방법.
  9. 클라이언트 단말기들(CT)과 적어도 하나의 서버(SE) 사이의 전송 경로를 따라 배치되고, 여러 가지 표현들로 이용 가능한 멀티미디어 콘텐츠의 세그먼트들에 대한 요청들을 클라이언트 단말기들(CT)로부터 수신하도록 구성되는 캐시로서,
    - 제1 클라이언트 단말기(CT)로부터 상기 멀티미디어 콘텐츠의 주어진 세그먼트의 바람직한 표현 및 적어도 하나의 대안 표현에 대한 제1 요청을 수신하기 위한 접속의 인터페이스(1);
    - 추가 클라이언트 단말기(CT)를 위해 서버(SE)로부터 상기 캐시(DANE)에 의해 이미 요청된, 상기 주어진 세그먼트의 적어도 하나의 진행중인 표현이 상기 제1 요청의 상기 바람직한 표현 또는 대안 표현과 매칭되는지를 결정하도록 구성되는 매칭 모듈(5)
    을 포함하는 것을 특징으로 하는, 캐시.
  10. 제9항에 있어서,
    상기 매칭 모듈(5)에 의해 식별된 상기 주어진 세그먼트의 매칭된 진행중인 표현과 연관된 유용성 함수의 값을 결정하도록 적응되는 계산기(6)를 더 포함하는, 캐시.
  11. 제9항 또는 제10항에 있어서,
    여러 가지 진행중인 표현들이 상기 제1 요청의 상기 바람직한 표현 및 대안 표현들과 매칭되는 경우에 상기 유용성 함수의 최고 값을 갖는, 상기 스마트 캐시(DANE)에 의해 이미 요청된 상기 매칭된 진행중인 표현을 결정하도록 구성되는 비교기(7)를 더 포함하는, 캐시.
  12. 제11항에 있어서,
    상기 비교기(7)는 매칭된 진행중인 표현의 상기 유용성 함수의 상기 결정된 값이 성능 기준을 충족시키는지의 여부를 체크하도록 더 구성되는, 캐시.
  13. 제11항 또는 제12항에 있어서,
    상기 유용성 함수는 적어도:
    - 유용성 함수의 값이 상수와 동일한 적극 모드;
    - 상기 유용성 함수가 상기 제1 요청의 상기 바람직한 표현의 상기 서버(SE)로부터의 전달 시간 및 상기 캐시(DANE)에 의해 이미 요청된 매칭된 진행중인 표현의 전달 시간에 의존하는 고속 모드;
    - 상기 유용성 함수가 상기 제1 요청의 상기 바람직한 표현의 품질 및 상기 캐시(DANE)에 의해 이미 요청된 매칭된 진행중인 표현의 품질에 의존하는 품질 모드
    를 포함하는 모드들의 그룹에 속하는 동작 모드에 의존하는, 캐시.
  14. 하나 이상의 표현들로 이용 가능한 세그먼트들로 분할된 멀티미디어 콘텐츠의 세그먼트의 표현에 대한 요청을 클라이언트 단말기(CT)에 의해 전송하기 위한 방법으로서, 상기 멀티미디어 콘텐츠는 적어도 하나의 원격 서버(SE)에 의해 제공되고,
    상기 요청은 상기 클라이언트 단말기(CT)와 하나의 서버(SE) 사이의 전송 경로를 따라 배열된 캐시(DANE)에 의해 적용될 선택된 동작 모드의 지시를 포함하는 것을 특징으로 하는, 방법.
  15. 세그먼트들로 분할되고 적어도 하나의 원격 서버(SE)에 의해 제공되는 멀티미디어 콘텐츠를 수신하도록 구성되는 클라이언트 단말기로서, 각각의 세그먼트는 하나 이상의 표현들로 이용 가능하고,
    상기 클라이언트 단말기는 상기 클라이언트 단말기(CT)와 하나의 서버(SE) 사이의 전송 경로를 따라 배열된 캐시(DANE)에 의해 적용될 선택된 동작 모드를 지시하는 표현에 대한 요청을 전송하도록 구성되는 통신 모듈(2A)을 포함하는 것을 특징으로 하는, 클라이언트 단말기.
KR1020167029006A 2014-03-20 2015-03-12 클라이언트 단말기들과 적어도 하나의 서버 사이의 전송 경로를 따라 배열된 캐시를 동작시키기 위한 방법, 및 대응하는 캐시 KR102356621B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP14305393.2 2014-03-20
EP14305393.2A EP2922266A1 (en) 2014-03-20 2014-03-20 Method for operating a cache arranged along a transmission path between client terminals and at least one server, and corresponding cache.
PCT/EP2015/055221 WO2015140050A1 (en) 2014-03-20 2015-03-12 Method for operating a cache arranged along a transmission path between client terminals and at least one server, and corresponding cache

Publications (2)

Publication Number Publication Date
KR20160134802A true KR20160134802A (ko) 2016-11-23
KR102356621B1 KR102356621B1 (ko) 2022-01-28

Family

ID=50439302

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167029006A KR102356621B1 (ko) 2014-03-20 2015-03-12 클라이언트 단말기들과 적어도 하나의 서버 사이의 전송 경로를 따라 배열된 캐시를 동작시키기 위한 방법, 및 대응하는 캐시

Country Status (7)

Country Link
US (1) US10856015B2 (ko)
EP (2) EP2922266A1 (ko)
JP (1) JP6542346B2 (ko)
KR (1) KR102356621B1 (ko)
CN (1) CN106105145B (ko)
TW (1) TW201537934A (ko)
WO (1) WO2015140050A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107637045B (zh) * 2015-06-16 2020-11-27 苹果公司 使用动态无线接入网信息的自适应视频流送
EP3485646B1 (en) 2016-07-15 2022-09-07 Koninklijke KPN N.V. Streaming virtual reality video
JP6663082B2 (ja) * 2016-11-10 2020-03-11 ソニーモバイルコミュニケーションズ株式会社 ノードタイプに基づくデータストリーミングの支援制御
EP3687176A1 (en) * 2019-01-22 2020-07-29 InterDigital CE Patent Holdings A client and a method for managing, at the client, a streaming session of a multimedia content
WO2021009597A1 (en) 2019-07-12 2021-01-21 Carrier Corporation A system and a method for streaming videos by creating object urls at client
JP2024514060A (ja) * 2021-04-08 2024-03-28 インターディジタル・シーイー・パテント・ホールディングス・ソシエテ・パ・アクシオンス・シンプリフィエ ストリーミングアプリケーションにおけるビデオデータの微調整

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120284371A1 (en) * 2011-05-03 2012-11-08 Cisco Technology, Inc. Reducing Fetching Load on Cache Servers in Adaptive Streaming
US20130173737A1 (en) * 2011-12-29 2013-07-04 Nokia Corporation Method and apparatus for flexible caching of delivered media

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7171469B2 (en) 2002-09-16 2007-01-30 Network Appliance, Inc. Apparatus and method for storing data in a proxy cache in a network
KR20070104566A (ko) * 2005-01-24 2007-10-26 사이트릭스 시스템스, 인크. 네트워크에서 동적으로 발생된 객체들의 캐싱을 수행하는시스템 및 방법
WO2011139305A1 (en) * 2010-05-04 2011-11-10 Azuki Systems, Inc. Method and apparatus for carrier controlled dynamic rate adaptation and client playout rate reduction
JP5837621B2 (ja) 2011-02-11 2015-12-24 インターデイジタル パテント ホールディングス インコーポレイテッド コンテンツの配信および受信の方法および装置
EP2819368A1 (en) 2013-06-28 2014-12-31 Thomson Licensing Method for providing a content part of a multimedia content to a client terminal, corresponding cache
EP2819367A1 (en) 2013-06-28 2014-12-31 Thomson Licensing Method for retrieving, by a client terminal, a content part of a multimedia content
US9716668B2 (en) * 2013-12-31 2017-07-25 Echostar Technologies L.L.C. Aggregated adaptive bit rate streaming

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120284371A1 (en) * 2011-05-03 2012-11-08 Cisco Technology, Inc. Reducing Fetching Load on Cache Servers in Adaptive Streaming
US20130173737A1 (en) * 2011-12-29 2013-07-04 Nokia Corporation Method and apparatus for flexible caching of delivered media

Also Published As

Publication number Publication date
EP2922266A1 (en) 2015-09-23
US20180176613A1 (en) 2018-06-21
EP3120519A1 (en) 2017-01-25
CN106105145A (zh) 2016-11-09
US10856015B2 (en) 2020-12-01
JP2017514416A (ja) 2017-06-01
KR102356621B1 (ko) 2022-01-28
TW201537934A (zh) 2015-10-01
CN106105145B (zh) 2020-04-07
WO2015140050A1 (en) 2015-09-24
EP3120519B1 (en) 2021-05-05
JP6542346B2 (ja) 2019-07-10

Similar Documents

Publication Publication Date Title
EP2999187B1 (en) Method, computer program product and server for streaming media content from a server to a client
US20150200992A1 (en) Method for downloading, at a client terminal, an upcoming sequence of segments of a multimedia content, and corresponding terminal
EP3014854B1 (en) Method for adapting the downloading behavior of a client terminal configured to receive multimedia content, and corresponding terminal.
KR20160134802A (ko) 클라이언트 단말기들과 적어도 하나의 서버 사이의 전송 경로를 따라 배열된 캐시를 동작시키기 위한 방법, 및 대응하는 캐시
US20160330500A1 (en) Method for obtaining network information by a client terminal configured for receiving a multimedia content divided into segments
EP2963896B1 (en) Method for operating a cache arranged along a transmission path between client terminals and at least one server, and corresponding cache
KR20170018333A (ko) 클라이언트 단말기와 적어도 하나의 서버 간의 송신 경로를 따라 배열된 네트워크 장비를 동작하기 위한 방법, 및 대응하는 네트워크 장비
JP2017510120A (ja) クライアント端末にマルチメディアコンテンツのコンテンツ部分を提供する方法及び対応するキャッシュ
EP3014835B1 (en) Method for retrieving, by a client terminal, a content part of a multimedia content
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
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

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