KR101803621B1 - 저 지연 스트리밍 - Google Patents

저 지연 스트리밍 Download PDF

Info

Publication number
KR101803621B1
KR101803621B1 KR1020157019480A KR20157019480A KR101803621B1 KR 101803621 B1 KR101803621 B1 KR 101803621B1 KR 1020157019480 A KR1020157019480 A KR 1020157019480A KR 20157019480 A KR20157019480 A KR 20157019480A KR 101803621 B1 KR101803621 B1 KR 101803621B1
Authority
KR
South Korea
Prior art keywords
quality
client
streaming
segment
content processing
Prior art date
Application number
KR1020157019480A
Other languages
English (en)
Other versions
KR20150120951A (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 KR20150120951A publication Critical patent/KR20150120951A/ko
Application granted granted Critical
Publication of KR101803621B1 publication Critical patent/KR101803621B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • H04L65/4069
    • H04L65/604
    • H04L65/608
    • 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
    • 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/75Media network packet handling
    • H04L65/764Media network packet handling at 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/80Responding to QoS
    • 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/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • 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/10Architectures or entities
    • H04L65/1059End-user terminal functionalities specially adapted for real-time communication

Abstract

클라이언트에게 적어도 하나의 네트워크를 통해서 세그먼트의 저-지연 스트리밍을 가능하게 하기 위한 방법 및 시스템이 기술되었으며 상기 클라이언트는 매니페스트 파일에 기초하여 적어도 하나의 서버에서 세그먼트를 요청하고 수신하도록 설정되어 있다. 상기 방법은: 상기 네트워크의 적어도 일부에서 상기 클라이언트에 의하여 경험되는 서비스 정보의 품질을 수집하는 단계와 상기 네트워크의 품질 데이터베이스에서 서비스 정보의 품질을 저장하는 단계; 상기 콘텐츠 처리 장치로 서비스 정보의 상기 품질의 적어도 일부를 전송하는 단계; 상기 서비스 정보 품질의 상기 적어도 일부에 기초하여 버퍼, 바람직하게는 플레이아웃 버퍼:; 및/또는 콘텐츠 처리 장치의 세그먼트 요구 기능; 및 상기 구성(환경설정) 파라미터에 따른 버퍼 및/또는 상기 세그먼트 요청 기능에 대한 하나 이상의 환경설정 파라미터를 결정하는 단계를 포함한다.

Description

저 지연 스트리밍{Low-latency streaming}
본 발명은 저-지연(low-latency) 스트리밍에 관한 것이며, 특히, 그러나 배타적이지는 않게, 클라이언트에게 세그먼트의 저-지연 스트리밍을 가능하게 하는 방법과 시스템, 클라이언트에게 저-지연 스트리밍을 가능하게 하는 환경설정(configuration), 그러한 시스템에 사용하기 위한 클라이언트와 데이터베이스 구조 및 그러한 방법을 사용하기 위한 컴퓨터 프로그램 제품에 관한 것이다.
인터넷 비디오 및 인터넷 TV의 인기가 증가하고 있으므로, 연속 재생 및 다양한 네트워크 조건 하에서 최상의 사용자 경험을 허용하는 어댑티브(adaptive) 스트리밍 솔루션에 대한 필요성이 증대되고 있다. 어댑티브 스트리밍의 개념은 비디오 스트림에 의해 요구되는 대역폭을 스트리밍 소스와 클라이언트 사이의 네트워크 경로에서 이용할 수 있는 대역폭에 적합하게 하는 아이디어에 기초하며, 여기서 대역폭은 비디오 스트림의 비트-레이트(즉, 품질)를 변경하여 적합하게 된다.
현재, 다수의 HTTP 기반의 어댑티브 스트리밍(HAS) 프로토콜이 개발되었으며, 이러한 솔루션의 가장 좋은 예(practises)는 HTTP(MPEG DASH)를 통한 MPEG 다이나믹 어댑티브 스트리밍이라고 언급되는 최근의 ISO 표준 ISO/IEC 23001-6으로 현재 압축된다. HAS 솔루션에서 콘텐츠 스트림은 일반적으로 세그먼트들로 분할되며(또한, "청크"라 한다) 여기서 이러한 세그먼트들 각각은 상이한 품질 레벨로 부호화될 수 있다(representations). 콘텐츠 전달 네트워크(CDN)는 일반적으로 다수의 콘텐츠 처리 장치로 효율적으로 세그먼트(segment)를 전달하는데 사용된다.
세그먼트들과 그것들의 다른 표현(representation)들은 소위 매니페스트 파일에 기재되며, 그것은 스트림 내의 세그먼트에 관한 정보(세그먼트 식별자, 위치, 플레이-아웃 시간, 등) 및 스트림에서 다른 세그먼트들 사이의 시간적 관계에 대한 정보를 포함 할 수 있다. 콘텐츠 처리 장치에서 클라이언트는 매니패스트 파일을 사용하여 네트워크로부터 세그먼트를 요청하고 플레이-아웃을 위해 세그먼트를 처리한다. 클라이언트는 네트워크 상태(condition)에 따라 다른 표현(representation)들 사이에서 전환하도록 설정 (configured) 될 수 있다.
MPEG DASH와 다른 어댑티브 스트리밍 솔루션이 비-관리(최선형=best effort) 네트워크와 인터넷을 통한 전달을 위해 개발되어 왔다. 예기치 않은 지터(jitter)와 정체(congestion)에 대처하기 위하여, 및 버퍼 언더런(underrun)의 위험을 감소시키기 위하여, 클라이언트에서 수행되는 버퍼링은 소스와 콘텐츠 처리 장치의 플레이-아웃 사이의 총 단-대-단(end-to-end) 지연에 비해 상당하다.
HAS 클라이언트는 플레이-아웃이 시작되기 전에 일반적으로 적어도 세 개의 완전한 세그먼트에 대하여 (사전 설정된) 플레이-아웃 버퍼를 사용한다. 버퍼는 세그먼트 크기와 함께 선형적으로 증가하고, 따라서 쉽게 30 초 또는 그 이상에 도달한다.
게다가, 플레이-아웃 버퍼를 채우는데 이용할 수 있는 세그먼트들이 충분하지 않을 위험을 감소시키기 위해, 클라이언트는 스트리밍 이벤트에 참여하는 즉시 스트리밍 소스에 의해 이용할 수 있는 세그먼트보다 스트리밍 소스에 의해 더 먼저(earlier) 이용할 수 있는 세그먼트(일반적으로 3 개의 세그먼트 더 먼저)가 (스트리밍 이벤트에 참여하는 (즉시)) 클라이언트에 의해 요청될 예정인 제1 세그먼트가 되도록 설정된다.
따라서, HAS 클라이언트에 의한 라이브 스트리밍 이벤트의 플레이-아웃과 종래의 방송 또는 멀티 캐스트 스트리밍과 같은 다른 전송 메커니즘을 기반으로 하는 다른 콘텐츠 처리 장치에 의한 라이브 스트림의 플레이-아웃 사이에 상당한 지연(latency(delay)이 존재한다.
관리되는 네트워크(예를 들어, TV 채널)를 통해, 콘텐츠 특히 라이브 콘텐츠를 전달하기 위해, 그러나, 다른 전송 메커니즘(예를 들면, DVB-S, DVB-C, 라디오 및 MPEG DASH)을 통해 상기 콘텐츠를 수신 할 수 있는 다른 콘텐츠 처리 장치(예를 들어, 텔레비전, 셋톱 박스, 테블릿, 스마트 폰 등)에서 대략 동일한 콘텐츠의 플레이-아웃 시간을 가질 것이 요망된다.
전형적으로, 다른 콘텐츠 처리 장치들 사이의 동기화(synchronized)된 플레이-아웃은 인터-데스티네이션 미디어 동기화(IDMS) 기술에 의해 달성 될 수 있다. IDMS는 동기화된 플레이-아웃이 달성되도록 모든 수신기의 플레이-아웃 지연을 가장 지연된 수신기를 기초로 한다.
모든 다른 수신기들을 HAS 스트리밍 장치와 일치하게 지연시키는 문제점은 현재의 HAS 실행에서 플레이-아웃 지연은 대략 수 십초일 수 있다는 점이다. 따라서, 동기화된 플레이-아웃을 달성하는 것은 다른 모든 장치가 동일한 양만큼 지연될 필요가 있다는 것을 의미한다. 그러나 다양한 장치에서 수십 초 동안 미디어 신호를 지연하는 것은 예상치 못한 문제를 일으킬 수 있다. 예를 들어, DVB 신호를 수신하고 디코딩하도록 설정된 통상의 셋톱 박스(STB)는 30 초 동안 DVB 스트림을 저장하기에 불충분한 메모리를 가질 수 있다. 따라서, IDMS-동기화된 소셜 TV 서비스(즉,"떨어져 함께 시청하기")는 통상의 셋톱 박스와 HAS 클라이언트 사이에서는 적합하지 않을 것이다.
또한, 사용자 대화(user interaction)를 허용하는 라이브 스트리밍 어플리케이션과 스트리밍 어플리케이션에서, 미디어 신호의 전달과 제공을 위해 엔드-투-엔드 지연이 허용되는 최대 값을 갖는 것이 요구되며 -일부 경우에- 심지어 법으로 규정된다,
이상의 사실에서 HAS스트리밍에 의해 도입된 플레이-아웃 지연은 심각하게 사용자 경험을 저하시키고 HAS스트리밍의 대규모 상업적 적용을 막는다.
따라서, 높은 사용자 경험을 제공하는 한편 최적의 저-지연 플레이-아웃을 허용하는 저- 지연 어댑티브 스트리밍을 위한 개선된 방법 및 시스템에 대한 기술의 필요성이 존재한다. 특히, 이종의 장치들과 전송 체계로 콘텐츠의 저-지연 어댑티브 스트리밍을 허용하는 방법 및 시스템에 대한 기술의 필요성이 존재한다.
본 발명이 해결하려는 과제는 클라이언트에게 세그먼트의 저-지연 스트리밍을 가능하게 하는 방법과 시스템, 클라이언트에게 저-지연 스트리밍을 가능하게 하는 환경설정, 그러한 시스템에 사용하기 위한 클라이언트와 데이터베이스 구조 및 그러한 방법을 사용하기 위한 컴퓨터 프로그램 제품을 제공하는데 있다.
본 발명 과제의 해결 수단은 콘텐츠 처리 장치에서 네트워크를 경유하여 클라이언트, 바람직하게는 HAS 클라이언트에게로 세그먼트의 저-지연 스트리밍을 가능하게 하는 방법에 있어서, 상기 클라이언트는 매니페스트 파일에 기초하여 서버 시스템으로부터 세그먼트를 요청하고 수신하도록 설정되고(configurated), 상기 방법은: 상기 클라이언트와 상기 서버 시스템의 하나 이상의 스트리밍 서버 사이의 하나 이상의 스트림 경로와 관련된 품질 매트릭스를 수집하고 상기 네트워크의 품질 데이터베이스에 상기 품질 매트릭스를 저장하고; 및 콘텐츠 처리 장치에 적어도 상기 저장된 품질 매트릭스의 일부 및/또는 하나 이상의 구성(configuration) 파라미터를 기초로 결정된 서비스 정보의 품질을 제공하는 상기 네트워크에서의 모니터링 시스템; 적어도 상기 품질 매트릭스의 일부 또는 상기 서비스 정보의 품질 또는 또는 상기 구성 파라미터들을 기초로 버퍼, 바람직하게는, 상기 콘텐츠 처리 장치의 플레이-아웃 버퍼를 설정하는 상기 콘텐츠 처리 장치의 구성 모듈; 및/또는 상기 콘텐츠 처리 장치의 세그먼트 요청 기능을 포함함을 특징으로 하는 저-지연 스트리밍을 가능하게 하는 방법을 제공하는데 있다.
본 발명의 또 다른 과제의 해결 수단은 적어도 하나의 네트워크를 통해서 콘텐츠 처리 장치로 낮은 지연 스트리밍을 가능하게 하는 콘텐츠 전달 시스템에 있어서, 상기 시스템은: 매니페스트 파일에 기초하여 하나 이상의 스트리밍 서버로부터 세그먼트를 요청하고 수신하도록 구성된 클라이언트, 바람직하게는 HAS 클라이언트를 포함하는 콘텐츠 처리 장치; 상기 저장된 품질 매트릭스의 적어도 일부 또는 상기 저장된 품질 매트릭스의 적어도 일부 및/또는 하나 이상의 구성 파라미터에 기초하여 결정된 서비스 정보의 품질을 제공받도록 추가로 설정된 상기 콘텐츠 처리 장치, 상기 클라이언트와 상기 하나 이상의 스트리밍 서버 사이의 하나 이상의 경로와 관련된 품질 매트릭스를 수집하고 상기 네트워크의 품질 데이터 베이스에 품질 매트릭스를 저장하도록 설정된 모니터링 시스템; 및 상기 콘텐츠 처리 장치에서 버퍼, 바람직하게는 플레이-아웃 버퍼를 설정하고; 및/또는 상기 품질 매트릭스의 적어도 일부, 및/또는 상기 서비스 정보의 품질, 및/또는 상기 구성 파라미터에 기초하여 상기 콘텐츠 처리 장치에서 세그먼트 요청 기능을 설정하기 위한 상기 콘텐츠 처리 장치에서의 구성 모듈을 포함함을 특징으로 하는 저-지연 스트리밍을 가능하게 하는 콘텐츠 전달 시스템을 제공하는데 있다.
본 발명의 또 다른 과제의 해결 수단은 콘텐츠 처리 장치에서 사용하기 위한 구성 모듈에 있어서, 상기 구성 모듈은 상기 콘텐츠 처리 장치에서 클라이언트, 바람직하게는 HAS 클라이언트에게 저-지연 스트리밍을 가능하게 하기 위해 설정되고, 여기서 상기 클라이언트는 매니페스트 파일에 기초하여 서버 시스템에서 하나 이상의 스트리밍 서버로부터 세그먼트를 요청하고 수신하도록 설정되며, 상기 구성 모듈은 추가로: 상기 콘텐츠 처리 장치에서 버퍼, 바람직하게는 플레이아웃 버퍼; 및/또는, 품질 매트릭스에 기초한 및/또는 상기 저장된 품질 매트릭스의 적어도 일부에 기초하여 및/또는 하나 이상의 구성 파라미터에 기초하여 결정된 서비스 정보의 품질에 기초한 상기 콘텐츠 처리 장치에서 세그먼트 요청 기능을 설정하도록 구성되며, 여기서 상기 품질 매트릭스는 서버 시스템에서 상기 클라이언트와 하나 이상의 스트리밍 서버 사이의 하나 이상의 스트리밍 경로와 관련되고, 상기 품질 매트릭스는 상기 네트워크에서 모니터링 시스템에서 수집되고 상기 네트워크의 품질 매트릭스에 저장됨을 특징으로 하는 콘텐츠 처리 장치에서 사용하기 위한 구성 모듈을 제공하는데 있다.
본 발명의 또 다른 과제의 해결 수단은 콘텐츠 처리 장치에서 HAS 클라이언트와 스트리밍 서버 사이의 네트워크에서 스트리밍과 관련된 품질 매트릭스를 모니터링 하기 위한 모니터링 시스템에 있어서, 모니터링 시스템은; 상기 콘텐츠 처리 장치와 관련된 장치 매트릭스와 하나 이상 모니터링 에이전트로부터 상기 네트워크의 적어도 일부와 관련된 네트워크 매트릭스를 수집하기 위한 수단; 상기 장치와 네트워크 매트릭스에 기초하여 스트리밍 경로와 관련된 품질 매트릭스를 결정하기 위한 수단; 상기 품질 매트릭스 적어도 일부에 기초한 상기 콘텐츠 프로세스 장치에서 구성 모듈에 대한 하나 이상의 구성 파라미터를 결정하기 위한 수단을 포함하며, 상기 하나 이상의 구성 파라미터는: 상기 버퍼에서 데이터의 플레이-아웃이 개시되기 전에 버퍼 사이즈를 결정하기 위한 적어도 하나의 버퍼 사이즈 파라미터, 바람직하게는 파라미터(minBufferTime); 및/또는 세그먼트 요청 기능이 상기 스트리밍 서버로부터 요청할 상기 매니페스트 파일에서 식별된 세그먼트로부터 선택된 제1 세그먼트를 결정하기 위한 적어도 하나의 세그먼트 요청 파라미터, 바람직하게는 파라미터(asegmentStartOffset)를 포함함을 특징으로 하는 품질 매트릭스를 모니터링 하기 위한 모니터링 시스템을 제공하는데 있다.
본 발명의 또 다른 과제의 해결 수단은 바람직하게는 상기 클라이언트가 상기 매니페스트 파일에 기초하여 적어도 하나의 서버로부터 세그먼트들을 요청하고 수신하도록 구성된 콘텐츠 처리 장치에서 클라이언트가 사용하기 위한 매니페스트 파일의 적어도 일부인, 데이터 구조는 상기 클라이언트에게 저-지연 스트리밍을 가능하게 하며, 상기 데이터 구조는 하나 이상의 세그먼트 식별자와 세그먼트 플레이아웃 정보를 포함하되, 여기서 상기 데이터 구조는 추가로: 품질 매트릭스, 및/또는 상기 클라이언트와 스트리밍 서버 사이의 스트리밍 경로와 관련된 하나 이상 QoS 레벨을 포함하는 서비스 정보의 품질을 포함하고, 상기 품질 매트릭스 및/또는 서비스 정보의 상기 품질은 구성 모듈이 버퍼, 바람직하게는 플레이아웃 버퍼에 대한; 및/또는, 상기 콘텐츠 처리 장치에서 세그먼트 요청 기능에 대한 하나 이상의 구성 파라미터를 결정하게 할 수 있고 및/또는 상기 데이터 구조는 추가로 상기 클라이언트와 스트리밍 서버 사이ㅢ 스트리밍 경로와 관련된 하나 이사의 구성 파라미터를 포함할 수 있으며, 상기 하나 이상의 구성 파라미터는 상기 클라이언트와 관련된 구성 모듈이 상기 컨텐츠 처리 장치에서 버퍼, 바람직하게는 플레이-아웃 버퍼; 및/또는 세그먼트 요청 기능을 설정할 수 있게함을 특징으로 하는 데이터 구조를 제공하는데 있다.
본 발명의 또 다른 과제의 해결 수단은 컴퓨터 프로그램 제품에 있어서, 포함하는 컴퓨터 프로그램 제품은 컴퓨터의 메모리에서 실행되면, 청구항 1 내지 9에 따른 방법 단계를 실행하도록 설정된 소프트웨어 코드 부분을. 포함함을 특징으로 하는 컴퓨터 프로그램 제품을 제공하는데 있다.
본 발명은 클라이언트에게 세그먼트의 저-지연 스트리밍을 가능하게 하는 방법과 시스템, 클라이언트에게 저-지연 스트리밍을 가능하게 하는 환경설정, 그러한 시스템에 사용하기 위한 클라이언트와 데이터베이스 구조 및 그러한 방법을 사용하기 위한 컴퓨터 프로그램 제품을 제공하여 클라이언트에게 세그먼트의 저-지연 스트리밍을 가능하게 하는 유리한 효과가 있다.
도 1은 본 발명의 일 실시 예에 따른 콘텐츠 전달 시스템을 개략적으로 도시한 것이다.
도 2는 본 발명의 일 실시 예에 따른 매니페스트 파일을 개략적으로 도시한 것이다.
도 3은 본 발명의 일 실시 예에 따른 매니페스트 파일 업데이트를 위한 프로세스를 도시한 것이다.
도 4는 본 발명의 일 실시 예에 따른 클라이언트에게 세그먼트를 전달하기 위한 프로세스를 도시한 것이다.
도 5은 본 발명의 다른 실시 예에 따른 콘텐츠 전달 시스템을 개략적으로 도시한 것이다.
도 6은 본 발명의 부가 실시 예에 따른 매니페스트 파일을 개략적으로 도시한 것이다.
도 7은 본 발명의 다른 실시 예에 따른 세그먼트를 전달하기 위한 프로세스를 도시한 것이다.
도 8은 본 발명의 일 실시 예에 따른 매트릭스를 수집하기 위한 프로세스를 도시한 것이다.
도 9는 본 발명의 일 실시 예에 따른 콘텐츠 처리 장치와 서버 사이의 프로토콜 흐름을 도시한 것이다.
도 10은 본 발명의 일 실시 예에 따른 매트릭스 리포팅을 위한 지금까지의 추가 프로토콜 포맷을 도시한 것이다.
도 11은 본 발명의 다른 실시 예에 따른 매트릭스 리포팅을 위한 지금까지의 추가 프로토콜 포맷을 도시한 것이다.
도 12는 본 발명의 일 실시 예에 따른 매트릭스 리포팅을 위한 지금까지의 추가 포맷을 도시한 것이다.
도 13은 본 발명의 추가 실시 예에 따른 서비스 정보의 품질을 포함하는 매니페스트 파일을 개략적으로 도시한 것이다.
도 14는 본 발명의 일 실시 예에 따른, ALTO 프로토콜 기반의 서비스 정보의 품질을 요청하기 위한 프로토콜 흐름을 도시한 것이다.
종래 기술에 알려진 단점들 중 적어도 하나를 감소 또는 제거하는 것이 본 발명의 목적이다.
일 측면에 있어서 본 발명은 네트워크를 통해 클라이언트에게로, 바람직하게는 HAS(HTTP 기반 어댑티브 스트리밍) 클라이언트에게로 세그먼트의 저-지연 스트리밍을 가능하게 하는 방법에 관련될 수 있으며, 콘텐츠 처리 장치에서, 상기 클라이언트는 매니페스트 파일에 기초하여 서버 시스템으로부터 세그먼트를 요청 및 수신하도록 설정되며, 여기서 상기 방법은: 상기 네트워크에서 상기 클라이언트와 하나 이상의 스트리밍 서버 사이의 하나 이상의 경로와 연관된 품질 매트릭스를 상기 서버 시스템에서 수집하고, 상기 네트워크의 품질 데이터베이스, 바람직하게는 클라이언트 액세스-라인 품질 데이터베이스(CAQD)에 상기 품질 매트릭스를 저장하고, 및/또는 상기 저장된 품질 매트릭스 및/또는 상기 저장된 품질 매트릭스의 적어도 일부분 또는 상기 저장된 품질 매트릭스의 적어도 일부와 하나 이상의 구성 파라미터들에 기초하여 결정된 서비스 정보의 품질을 콘텐츠 처리 장치에 제공하는 모니터링 시스템, 및/또는; 상기 품질 매트릭스의 적어도 일부, 또는 상기 서비스 정보의 품질 또는 구성 파라미터들에 기초하여, 버퍼, 바람직하게는 상기 콘텐츠 처리 장치의 플레이-아웃 버퍼를 설정하는(configuring) 상기 콘텐츠 처리 장치의 구성 모듈(configuration module); 및/또는, 상기 콘텐츠 처리 장치에서의 세그먼트 요청 기능을 포함한다.
본 발명은 클라이언트(콘텐츠 처리 장치에 포함된)에게 상기 클라이언트와 상기 서버 시스템의 하나 이상의 스트리밍 서버 사이의 하나 이상의 스트리밍 경로와 연관된 품질 매트릭스를 포함하고 있는 품질 데이터베이스에 액세스하도록 허용한다. 품질 메트릭스는 가정 또는 주택의 네트워크 파라미터를 포함하여, 네트워크 파라미터를 측정하고, 모니터링 시스템에 의해 수집되어 품질 데이터베이스에 저장된 장치 파라미터를 측정한다. 품질 매트릭스는 콘텐츠 처리 장치(예를 들어, 콘텐트 처리 장치로 제공/전송된)에 의해 직접 액세스 될 수 있으며 구성 모듈(configuration module)에 의해 사용 될 수 있다. 대안적으로, 수집된 품질 매트릭스의 이력(적어도 일부)에 기초하여, 바람직하게는 예상 서비스 품질(Qos) 레벨이 결정 될 수 있다. 이 QoS 레벨은 바람직하게는 모니터링 시스템 또는 품질 매트릭스에 액세스 할 수 있는 다른 네트워크 엔티티(entity)에 의해, 네트워크에서 결정될 수 있다. 이어서 상기 QoS 레벨은 콘텐트 처리 장치로 전송 될 수 있다. 대안적으로 품질 매트릭스는 네트워크에서 클라이언트에게 제공될(전송) 수 있으며, 이 경우 QoS 레벨은 수신된 품질 매트릭스에 기초하여 클라이언트에 의하여 결정될 수 있다. 이러한 정보(즉, QoS 레벨)는 그것이 (라이브) 스트리밍 이벤트에 참여하기(join)를 원할 때 버퍼 및/또는 세그먼트 요청 기능을 설정하기(configure) 위하여 HAS 클라이언트(구성 모듈(configuration module)을 통해)에 의하여 사용될 수 있다. 대안적으로 품질 매트릭스는, 예상 QoS 레벨을 결정하는 중간 단계 없이, 버퍼 및/또는 세그먼트 요청 기능을 설정하기 위하여 구성 모듈(configuration module)에 의해 직접 사용될 수 있다.
콘텐츠가 관리된 네트워크(즉 보장된 대역폭)를 통해 스트리밍되는 경우에, 콘텐츠가 비-관리 네트워크(공용 인터넷 같은)를 통해 스트리밍되는 상황과 비교할 때 존재하는 지연 에 정체 및 변동이 더 적을 것이다. 관리된 네트워크를 통해 컨텐츠를 스트리밍할 경우, 버퍼 언더런(underrun)을 피하기 위한 큰 버퍼 사이즈 설정은 따라서 더 이상 필요하지 않다. 따라서 서비스 품질(QoS) 레벨은 세그멘트된(segmented) 콘텐츠를 스트리밍하는데 사용되는 스트리밍 경로의 품질(즉, 안정도)의 표시이다.
따라서, 스트리밍 경로의 품질 매트릭스가 소정의 QoS 레벨이 예상 될 수 있음을 나타내는 경우에, 상기 콘텐츠 처리 장치에서의 버퍼 사이즈는 감소(또는 증가) 될 수 있고, HAS 클라이언트가 스트리밍 세션에 참여하는 순간 이용 가능한 세그먼트에(에서) 상대적으로 가까운(또는 상대적으로 먼) 제1세그먼트를 플레이-아웃하기 위하여 요청할 수 있을 것이다. 이 방식으로, HAS 클라이언트를 사용하는 콘텐츠 처리 장치와 다른 스트리밍 클라이언트를 사용하는 콘텐츠 처리 장치, 예를 들어, 높은 QoS 레벨을 가진 네트워크에서, DVB, 사이의 플레이-아웃 지연에서의 차이는 상당히 감소될 수 있다
실시 예에 있어서, 상기 방법은 상기 품질 매트릭스의 상기 적어도 일부에 기초하여 상기 구성 모듈에 대해 하나 이상의 구성 파라미터들을 결정하는 것을 포함 할 수 있다.
실시 예에 있어서, 상기 하나 이상의 구성 파라미터는 상기 버퍼에서 데이터의 플레이-아웃이 시작되기 전에 버퍼의 사이즈를 결정하기 위해 적어도 하나의 버퍼 사이즈 파라미터를 포함할 수 있다. 하나의 실시 예에서, MPEG DASH 표준에서 정의된 파라미터(minBufferTime)는 버퍼의 사이즈를 결정하기 위하여 사용될 수 있다.
실시 예에서, 하나 이상의 구성 파라미터는 상기 세그먼트 요청 기능이 상기 스트리밍 서버에서 요청할 상기 매니페스트 파일에서 식별된 세그먼트로부터 선택된 제1 세그먼트를 결정하기 위해 적어도 하나의 세그먼트 요청 파라미터, 바람직하게는 파라미터(segmentStartOffset)를 포함할 수 있다.
스트리밍 경로와 관련된 품질 매트릭스는 스트림 경로의 특정 QoS 레벨을 나타낼 수 있고(또는 표시할 수 있고), 버퍼 사이즈 및/또는 세그먼트 요청 기능을 설정을 하기 위해 클라이언트 장치(즉 콘텐츠 처리 장치)에서 구성 모듈에 의해 사용될 수 있는 (구성) 파라미터를 결정하는데 사용될 수 있다. 파라미터(minBufferTime) MPEG DASH에서 알려진 파라미터이고 그래서 본 발명은 기존의 HAS 클라이언트(장치)에 기초하여 쉽게 구현될 수 있다.
실시 예에서, 방법은 상기 품질 매트릭스, 하나 이상의 QoS 레벨을 정의하는 상기 서비스 정보의 품질에 기초한 서비스 정보의 품질 결정을 포함할 수 있으며, 여기서 QoS 레벨은 상기 구성 모듈(환경설정 모듈에 의한 사용)을 위한 하나 이상의 미리 결정된 환경설정 파라미터와 관련되어 있다. 일 실시 예에서, 하나 이상의 QoS 레벨은 적어도 저-지연 모드(즉, 작은 버퍼 사이즈, 작은 세그먼트 오프세트 스타트)에서 HAS 클라이언트를 설정하기 위한(미리 설정된, preconfigured) 환경설정 파라미터와 관련된 저-지연 레벨 및 고-지연['정상'] 모드(즉, 큰 버퍼 사이즈, 큰 세그먼트 오프세트 스타트)에서 클라이언트를 설정하기 위한 하나 이상의 (미리 설정된) 환경설정 파라미터와 관련된 고-지연 레벨을 포함할 수 있다. 따라서, 서비스 정보의 품질은 클라이언트에서 미리 설정(preconfigured)될 수 있는 다른 세트의 환경설정 파라미터와 관련될 수 있다.
이 방법으로, HAS 클라이언트의 특정(저, 중간, 고) 지연 모드는 예상 QoS 레벨(모드)을 포함하는 메시지를 구성 모듈로 전송함에 의하여 선택될 수 있다.
실시 예에서, 상기 하나 이상의 구성 파라미터의 적어도 일부는 상기 모니터링 시스템에 의하여 결정될 수 있고 상기 품질 데이터베이스에 저장될 수 있다.
다른 실시 예에서, 상기 서비스 정보의 품질은 상기 모니터링 시스템에 의하여 결정될 수 있고 상기 품질 데이터베이스에 저장될 수 있다. 다른 실시 예에서, 상기 품질 매트릭스의 적어도 일부, 상기 하나 이상의 구성 파라미터 및/또는 서비스 정보의 상기 품질은 상기 콘텐츠 처리 장치로 전송될 수 있다. 이러한 실시 예에서, 모니터링 시스템은 품질 매트릭스에 기초하여 하나 이상의 구성 파라미터 또는 서비스 정보의 품질을 결정하도록 구성될 수 있다. 대안적으로 모니터링 시스템에서 분리된 엔티티(entity)일 수 있는 다른 네트워크 엔티티(예를 들어, 스트리밍 서버, 요청 라우팅 기능을 포함하는 네트워크 노드, 매니페스트 파일을 생산과 업데이트 및/또는 콘텐츠 처리 장치에 HAS 제어 채널 설정을 책임지는 네트워크 노드)는, 데이터베이스에 저장된 품질 매트릭스를 기초로 이러한 파라미터들을 결정할 수 있다. 이러한 구성 파라미터는 클라이언트에게 전송될 수 있다. 네트워크(즉, 모니터링 서버)에서 품질 매트릭스(의 일부)를 처리함은 그로써 클라이언트 측면에서 처리 전력을 절약함에 의하여 클라이언트 측면에서 처리 시간을 절약할 수 있다.
일 실시 예에서, 방법은: 상기 서버 시스템으로부터 적어도 매니페스트 파일의 일부 또는 매니페스트 파일 업데이터를 요청하는 클라이언트; 상기 품질 매트릭스의 상기 적어도 일부, 상기 하나 이상의 구성 파라미터 및/또는 상기 품질 데이터베이스로부터 상기 서비스 정보의 품질을 검색하는(retrieving) 상기 서버 시스템; 및 상기 품질 매트릭스의 상기 적어도 일부, 및/또는 상기 하나 이상의 구성 파라미터 및/또는 서비스 정보의 상기 품질을 포함하는 매니페스트 파일의 적어도 일부를 상기 클라이언트에게 전송하는 상기 서버 시스템 중 적어도 하나를 포함할 수 있다. 따라서, 품질 매트릭스, 상기 QoS 정보 및/또는 구성 파라미터는 매니페스트 파일로 클라이언트에게 전송될 수 있다. 이러한 방법으로, 상기 정보는 HAS클라이언트가 설정되어야 하는 즉시, 즉, 클라이언트가 스트리밍 세션에 참가하고자 하는 즉시, 클라이언트에게 전송된다.
실시 예에서, 적어도 상기 품질 매트릭스의 일부, 상기 하나 이상의 구성 파라미터 및/또는 상기 서비스 정보의 품질은 분리된 통신 채널을 통해서 클라이언트 또는 구성 모듈로 전송된다. 실시 예에서, 통신 채널은 매니페스트 파일에서 모니터링 시스템과 관련된 위치 정보, 즉 URL or URI, 를 바탕으로 모니터링 시스템(또는 모니터링 시스템과 관련된 품질 데이터베이스) 사이에 개설 될 수 있다. 대안적으로, 그러한 통신 채널은 콘텐츠 처리 장치와 통신하도록 설정된 다른 네트워크 엔티티(노드)와 콘텐츠 처리 장치 사이에 설치할 수 있다.
실시 예에서, 통신 채널은 (HAS) 스트리밍 제어 채널, 바람직하게는 웹소켓-기반 스트리밍 제어 채널일 수 있다. 실시 예에서, 상기 방법은: 상기 클라이언트에게 상기 서버 시스템과 상기 클라이언트 사이에, 바람직하게는 웹소켓 스트리밍 제어 채널인, 스트리밍 제어 채널(양-방향성의)을 설정하기 위한 채널 설정 정보를 제공하는 단계; 상기 채널 설정 정보에 기초하여 상기 (양-방향) 스트리밍 제어 채널을 설정하는 단계를 포함할 수 있다. HTTP-기반(웹소켓) 스트리밍 제어 채널은 네트워크에서 서버에게 스트리밍 경로를 통해서 세그먼트를 스트리밍하는 동안 HAS 클라이언트 메시지, 즉, 매니페스트 업데이트 요청 또는 서비스 요청의 품질을 전송하도록 허용한다. 또한, 실시 예에서, HAS 스트리밍 제어 채널은 매니테스트 파일을 통해서 클라이언트에게 전송되는 채널 설정(set-up) 정보에 기초하여 설정될 수 있다.
실시 예에서 상기 방법은: 상기 콘텐츠 처리 장치와 관련된 제1 매트릭스를 수집하는 상기 콘텐츠 처리 장치의 적어도 제1 모니터링 에이전트; 및/또는 상기 네트워크의 적어도 일부와 관련된 제2 매트릭스를 수집하는 상기 네트워크에서의 적어도 제2 모니터링 에이전트; 상기 제1 및/또는 제2 매트릭스를 기초로 상기 모니터링 시스템이 상기 서버 시스템에서 상기 하나 이상의 스트리밍 서버와 상기 클라이언트 사이의 하나 이상의 경로와 관련된 품질 매트릭스를 결정하는 단계; 및 상기 품질 데이터베이스에서 상기 품질 매트릭스를 저장하는 단계를 포함 할 수 있다.
따라서, 앤드-투-앤드(end-to-end) 모니터링 시스템은 클라이언트 및 네트워크로부터 실시간으로 QoS (서비스 품질)과 QoE (경험의 품질) 매트릭스(이하 품질 매트릭스라 함)를 수집하도록 설정되어 사용될 수 있다. 인터넷 서비스 프로바이더(ISP) 네트워크에 모니터링 시스템을 위치시키면, 품질 매트릭스는 클라이언트와 하나 이상의 스트리밍 서버 사이의 하나 이상의 스트리밍 경로와 연관된 서비스 정보의 품질을 결정하는데 사용될 수 있다.
모니터링 시스템은, 그리하여 또한 홈-네트워크에서의 소스 패킷 손실, het 홈 네트워크의 부하 변동, 단말기 성능, 홈 네트워크 내의 이용 가능한 대역폭을 고려하여, 홈 네트워크에 사용된 다른 장치들을 구별하도록 설정될 수 있다. 이 방법으로, 다른 HAS 스트리밍 장치는, 예를 들어 전자 태블릿과 같은 동일한 홈 게이트웨이에 연결된, 텔레비젼과 무선 모바일 장치는 다른 품질 매트릭스에 기초하여 설정될 수 있다.
실시 예에서, 매니페스트 파일은 클라이언트가 이용 가능한 하나 이상의 지연 모드(예를 들어 낮은, 중간 및/또는 높은, 또는 대안적으로 '낮은' 및 '정상(regular)'에 관한 정보를 포함할 수 있다. 실시 예에서 각 지연 모드는 한 세트의 구성 파라미터의 설정과 관련될 수 있다.
다른 측면에서, 본 발명은 적어도 하나의 네트워크를 통해 상기 콘텐츠 처리 장치로 세그먼트의 저-지연 스트리밍을 가능하게 하는 콘텐츠 전달 시스템에 관련 될 수 있으며, 여기서 상기 시스템은: 클라이언트, 바람직하게는 HAS클라이언트를 포함하는 콘텐츠 처리 장치를 포함할 수 있고, 여기서 상기 클라이언트는 매니페스트 파일에 기초하여 하나 이상의 스트리밍 서버로부터 세그먼트를 요청하고 수신하도록 설정되어 있으며;
적어도 상기 저장된 품질 매트릭스의 일부 또는 적어도 상기 저장된 품질 매트릭스의 일부 및/또는 하나 이상의 구성 파라미터를 기초로 결정되는 서비스 정보 품질을 제공받도록 또한 설정된 상기 콘텐츠 처리 장치, 바람직하게는 컨텐츠 처리 장치에서의 클라이언트,
상기 클라이언트와 상기 하나 이상의 스트리밍 서버 사이의 하나 이상의 경로와 관련된 품질 매트릭스를 수집하고 상기 네트워크의 품질 데이터베이스에 상기 품질 매트릭스를 저장하도록 설정된 모니터링 시스템; 및
상기 콘텐츠 처리 장치에서의 버퍼, 바람직하게는 플레이-아웃 버퍼를 설정하기 위한 상기 콘텐츠 처리 장치에서의 구성 모듈; 및/또는, 적어도 상기 품질 매트릭스의 일부, 및/또는 상기 서비스 정보의 품질, 및/또는 구성 파라미터에 기초하여 상기 콘텐츠 처리 장치에서의 세그먼트 요청 기능을 포함할 수 있다.
그러나 다른 측면에서, 본 발명은 콘텐츠 처리 장치에 사용하기 위한 구성 모듈과 관련될 수 있으며, 상기 콘텐츠 처리 장치에서 클라이언트, 바람직하게는 HAS 클라이언트에게 저-지연 스트리밍을 가능하게 하도록 설정되며, 여기서, 상기 클라이언트는 매니페스트 파일에 기초하여 서버 시스템의 하나 이상의 스트리밍 서버로부터 세그먼트를 요청하고 수신하도록 설정되고, 상기 구성 모듈은 또한: 상기 콘텐츠 처리 장치에서 버퍼, 바람직하게는 플레이-아웃 버퍼; 및/또는 품질 매트릭스, 및/또는 상기 저장된 품질 매트릭스의 적어도 일부 및/또는 하나 이상의 구성 파라미터에 기초한 상기 콘텐츠 처리 장치의 세그먼트 요청 기능을 설정하도록 설정되며, 여기서 상기 품질 매트릭스는 상기 클라이언트와 상기 서버 시스템의 하나 이상 스트리밍 서버 사이의 하나 이상의 경로와 관련되며 상기 품질 매트릭스는 상기 네트워크의 모니터링 시스템에 의하여 수집되고 상기 네트워크의 품질 데이터베이스에 저장된다.
실시 예에서 상기 버퍼는 상기 버퍼에서 데이터의 플레이-아웃이 개시되기(stated) 전에 버퍼의 사이즈를 결정하기 위해 하나 이상의 구성 파라미터, 바람직하게는 파라미터(minBufferTime)에 기초하여 구성될 수 있으며; 및/또는 여기서 세그먼트 요청 기능(function)은 세그먼트 요청 기능이 상기 스트리밍 서버로부터 요청할 상기 매니페스트 파일에 식별된 세그먼트로부터 선택된 제1 세그먼트를 결정하기 위하여 하나 이상의 구성 파라미터, 바람직하게는 파라미터(segmentStartOffset)에 기초하여 설정된다.
일 측면에서, 본 발명은 콘텐츠 처리 장치의 HAS 클라이언트와 스트리밍 서버 사이의 네트워크의 스트리밍 경로와 관련된 품질 매트릭스를 모니터링 하기 위한 모니터링 시스템에 관한 것일 수 있으며, 상기 모니터링 시스템은: 콘텐츠 처리 장치와 관련된 장치 매트릭스 및 하나 이상의 모니터링 에이전트로부터 적어도 상기 네트워크의 일부와 관련된 네트워크 매트릭스를 수집하기 위한 수단; 상기 장치 및 네트워크 매트릭스에 기초하여 스트리밍 경로와 관련된 품질 매트릭스를 결정하기 위한 수단; 상기 품질 매트릭스의 적어도 일부에 기초하여 상기 콘텐츠 처리 장치의 구성 모듈에 대한 하나 이상의 구성 파라미터를 결정하기 위한 수단을 포함하며, 상기 하나 이상의 구성 파라미터는: 상기 버퍼에서 데이터의 플레이-아웃이 정해지기(stated) 전에 버퍼의 사이즈를 결정하기 위하여 적어도 하나의 버퍼 사이즈 파라미터, 바람직하게는 minBufferTime 파라미터; 및/또는 세그먼트 요청 기능이 상기 스트리밍 서버로부터 요청할 상기 매니페스트 파일에 식별된 세그먼트로부터 선택된 제1 세그먼트를 결정하기 위한 적어도 하나의 세그먼트 요청 파라미터, 바람직하게는 segmentStartOffset 파라미터를 포함한다.
일 측면에서, 본 발명은 데이터 구조, 바람직하게는 콘텐츠 처리 장치에서 클라이언트에 의해 사용될 매니페스트 파일의 적어도 일부에 관한 것일 수 있으며, 여기서 상기 클라이언트는 상기 매니페스트 파일에 기초하여 적어도 하나 이상의 서버로부터 세그먼트를 요청 및 수신하도록 설정되며, 상기 데이터 구조는 상기 클라이언트에게 저-지연 스트리밍을 가능하게 할 수 있고, 상기 데이터 구조는 하나 이상의 세그먼트 식별자 및 세그먼트 플레이-아웃 정보를 포함하고; 여기서 상기 데이터 구조는 또한:
상기 클라이언트와 스트리밍 서버 사이의 스트리밍 경로와 관련된 하나 이상의 QoS 레벨을 포함하는 품질 매트릭스 및/또는 서비스 정보의 품질을 포함하며, 상기 품질 매트릭스 및/또는 서비스 정보의 품질은 상기 클라이언트와 관련된 구성 모듈이 버퍼, 바람직하게는 플레이-아웃; 및/또는 상기 콘텐츠 처리 장치에서 세그먼트 요청 기능에 대하여 하나 이상의 구성 파라미터를 결정하게 할 수 있고; 및/또는 상기 데이터 구조는 상기 클라이언트와 스트리밍 서버 사이의 스트리밍 경로와 관련된 하나 이상의 구성 파라미터를 더 포함하고, 상기 하나 이상의 구성 파라미터는 상기 클라이언트와 관련된 구성 모듈이 상기 콘텐츠 처리 장치에서 버퍼, 바람직하게는 플레이-아웃 버퍼 및/또는 세그먼트 요청 기능을 설정하는 것을 가능하게 한다.
본 발명은 프로그램 제품, 컴퓨터 메모리에서 실행될 때, 앞서 기술된 바와 같은 방법 단계를 수행하도록 설정된 소프트웨어 코드 부분을 포함하는 컴퓨터 프로그램 제품에 관한 것일 수 있다. 본 발명은 본 발명에 따른 실시 예를 조직적으로 나타낼 첨부된 도면을 참조하여 더 설명될 것이다. 본 발명은 이들 특정 실시 예들에 의해 어떤 방식으로든 제한되지 않는 것으로 이해해야 할 것이다.
통상의 기술자는 이해할 수 있는 바와 같이, 본 발명의 측면들은 시스템, 방법 또는 컴퓨터 프로그램 제품으로서 구현 될 수 있다. 따라서, 본 발명의 측면은 전적으로 하드웨어 실시 예, 전적으로 소프트웨어 실시 예(펌웨어, 상주 소프트웨어, 마이크로-코드 등을 포함하여)의 형태를 취할 수 있고 또는 여기에서 "회로", "모듈" 또는 "시스템", "노드"로 모두 일반적으로 언급 될 수 있는 소프트웨어와 하드웨어 측면을 조합한 실시 예의 형태를 취할 수 있다. 또한, 본 발명의 측면들은 컴퓨터 판독 가능 프로그램 코드를 갖는 하나 이상의 컴퓨터 판독 가능 매체(들)에 구현된 컴퓨터 프로그램 제품의 형태를 취할 수 있다.
본 명세서에서 설명된 많은 기능적 유닛들은 그들의 구현 독립성을 보다 특히 강조하기 위해서, 모듈로 라벨(label)되었다. 예를 들어, 어떤 모듈은 커스텀 VLSI 회로 또는 게이트 어레이, 논리 칩, 트랜지스터, 또는 다른 이산 소자(discrete components)와 같은 상용 반도체를 포함하는 하드웨어 회로로 구현 될 수 있다. 어떤 모듈은 또한 필드 프로그래머블 게이트 어레이, 프로그래머블 어레이 로직, 프로그래머블 로직 장치 등과 같은 프로그램 가능한 하드웨어 장치로 구현 될 수 있다.
모듈들은 또한 다양한 형태의 프로세서에 의한 실행을 위해 소프트웨어로 구현될 수 있다. 예를 들어, 컴퓨터 판독 가능 프로그램 코드의 식별된 모듈은, 예를 들어, 객체, 절차, 또는 함수로 정리될(organized) 수 있는 컴퓨터 명령어들(instructions)의 하나 이상의 물리적 또는 논리적 블록을 포함 할 수 있다. 그럼에도 불구하고, 식별된 모듈의 실행(executables)은 물리적으로 함께 위치될 필요는 없지만, 논리적으로 함께 결합되면 그 모듈을 포함하는 상이한 위치에 저장된 이질적인 명령어(instruction)를 포함 할 수 있고 모듈에 명시된 목적을 달성할 수 있다.
실제로, 컴퓨터 판독 가능 프로그램 코드의 모듈은 단일 명령, 또는 다수의 명령 일 수 있고, 및 심지어 상이한 프로그램 사이에 및 다수의 기억 장치 전체에, 다수의 다른 코드 세그먼트에 걸쳐 분산될 수 있다. 유사하게, 운용 데이터는 여기서 모듈 내에서 식별되고 설명 될 수 있으며, 임의의 적절한 형태로 내장되고 데이터 구조의 임의의 적합한 형태로 정리(organized)될 수 있다. 운영 데이터는 단일 데이터 세트로서 수집되거나, 또는 상이한 저장 장치를 포함하여 상이한 위치에 걸쳐 분산 될 수 있고, 단지 시스템 또는 네트워크 상의 전자 신호로서 적어도 부분적으로 존재할 수 있다. 모듈 또는 모듈의 일부가 소프트웨어로 구현되는 경우, 컴퓨터 판독 가능 프로그램 코드는 하나 이상의 컴퓨터 판독 가능 매체(들)에 저장 될 수 있고 및/또는 계속 전파될 수 있다.
컴퓨터 판독 가능 매체는 컴퓨터 판독 가능 프로그램 코드를 저장하는 실재하는(tangible) 컴퓨터 판독 가능 매체 일 수 있다. 컴퓨터 판독 가능 매체는, 예를 들어, 전자, 자기, 광, 전기자기, 적외선, 홀로그래픽, 마이크로미케니컬, 또는 반도체 시스템, 장치, 또는 장치, 또는 앞의 것들의 임의의 조합 일 수 있으나. 그에 국한되지는 않는다.
컴퓨터 판독 가능 매체의 보다 구체적인 예는 제한 없이 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리("RAM"), 판독 전용 메모리("ROM"), 소거 가능 프로그래머블 판독 전용 메모리("EPROM" 또는 "플래시 메모리"), 휴대용 컴팩트 디스크 판독 전용 메모리("CD-ROM"), 디지털 다기능 디스크("DVD"), 광 저장 장치, 마그네틱 저장 장치, 홀로그래픽 저장 매체, 마이크로미케니컬 저장 장치 또는 앞의 것들의 임의의 조합 일 수 있으나. 그것에 국한되지는 않는다. 본 문서의 문맥에서, 컴퓨터 판독 가능 저장 매체는 명령어 실행 시스템, 장치, 또는 장치에 의해 및/또는 관련하여 사용하기 위한 컴퓨터 판독 가능 프로그램 코드를 포함 및/또는 저장할 수 있는 임의의 실재하는 매체 일 수 있다.
컴퓨터 판독 가능 매체는 또한 컴퓨터 판독 가능 신호 매체 일 수 있다. 컴퓨터 판독 가능 신호 매체는 예를 들면, 기저 대역에 또는 반송파의 일부로서, 내부에 구현된 컴퓨터 판독 가능 프로그램 코드와 함께 전파된 데이터 신호를 포함 할 수 있다. 이러한 전파된 신호는 전기, 전자자기, 자기, 광학, 또는 이들의 임의의 적절한 조합을 포함하여, 임의의 다양한 형태를 취할 수 있으나 그에 국한되지는 않는다. 컴퓨터 판독 가능 신호 매체는 컴퓨터 판독 가능 저장 매체는 아니며 명령 실행 시스템, 장치, 또는 장치에 의해 또는 관련하여 사용하기 위한 컴퓨터 판독 가능 프로그램 코드를 통신, 전파, 또는 전송할 수 있는 임의의 컴퓨터 판독 가능 매체일 수 있다. 컴퓨터 판독 가능 신호 매체에 구현된 컴퓨터 판독 가능 프로그램 코드는 무선, 유선, 광섬유 케이블, 무선 주파수("RF"), 또는 유사물 또는 앞의 것들의 임의의 적절한 조합을 포함하여, 임의의 적절한 매체를 사용하여 송신 할 수 있지만, 그에 국한되지는 않는다.
일 실시 예에서, 컴퓨터 판독 가능 매체는 하나 이상의 컴퓨터 판독 가능 저장 매체 또는 하나 이상의 컴퓨터 판독 가능 신호 매체를 포함할 수 있다. 예를 들면, 컴퓨터 판독 가능 프로그램 코드는 프로세서에 의한 실행을 위하여 광섬유 케이블을 통해 전파하는 전자기 신호로서 전파될 수 있고 상기 프로세서에 의한 실행을 위하여 RAM 저장 장치에 저장 될 수도 있다.
본 명세서 내내 "일 실시 예", "실시 예" 또는 유사한 용어에 대한 언급은 특정한 특징, 구조 또는 실시 예와 관련하여 기술된 특성이 적어도 하나의 실시 예에 포함된 것을 의미한다. 따라서, "일 실시 예에서", "실시 예에서"라는 어구와 본 명세서 내내 유사한 언어가 나타나면 반드시는 아니지만 모두 동일한 실시 예를 언급하며, 그러나 달리 별도의 구체적인 명시가 없으면 "하나 이상의 그러나 모든 실시 예는 아닌 "을 의미한다. 용어 "포함하는(including)", "포함하는(comprising)", "갖는(having)", 및 그들의 변형은 달리 별도의 구체적인 명시가 없으면 "포함하나(including) 그에 국한되지는 않는"을 의미한다. 아이템의 열거된 리스트는 별도의 구체적인 명시가 없으면 아이템 중 일부 또는 전부가 상호 배타적임을 함축하는 것은 아니다. 용어 "a" "an" 및 "the"는 또한 달리 별도의 구체적인 명시가 없으면 "하나 또는 그 이상"을 말한다.
또한, 설명된 특징, 구조, 또는 실시 예들의 특성들은 임의의 적절한 방식으로 결합될 수 있다. 다음의 설명에서, 실시 예의 완전한 이해를 제공하기 위하여, 다수의 특정 세부 사항은, 프로그래밍의 예로서, 소프트웨어 모듈, 사용자 선택, 네트워크 트랜잭션, 데이터베이스 조회(queries), 데이터베이스 구조, 하드웨어 모듈, 하드웨어 회로, 하드웨어 칩 등에 제공된다. 그러나 관련 기술의 통상의 기술자라면, 실시 예들은 하나 이상의 특정 세부 사항 없이 또는 다른 방법, 구성요소, 재료 등으로 실시 될 수 있다는 것을 알 것이다. 다른 예에서, 잘 알려진 구조, 재료, 또는 동작들은 실시 예의 측면을 모호하게 하는 것을 피하기 위해 도시되지 않거나 상세히 설명되지 않았다.
실시 예들의 측면들은 개략적인 흐름도 및/또는 본 발명의 실시 예에 따른 방법, 장치, 시스템 및 컴퓨터 프로그램 제품의 개략적인 블록도를 참조하여 설명한다. 개략적인 플로우차트 다이어그램 및/또는 개략적인 블록 다이애그램의 각각의 블록, 및 개략적인 플로우차트 다이애그램 및/또는 개략적인 블록 다이애그램에서 블록들의 조합은 컴퓨터 판독 가능한 프로그램 코드에 의해 구현될 수 있는 것으로 이해해야 할 것이다. 이러한 컴퓨터 판독 가능한 프로그램 코드는 기계를 생산하기 위한 범용 컴퓨터, 특정 목적 컴퓨터, 시퀀서(sequencer), 또는 다른 프로그램 가능한 데이터 처리 장치의 프로세서에 제공될 수 있으며, 그래서 컴퓨터 또는 기타 프로그램 가능한 데이터 처리 장치(apparatus)의 프로세서를 통해 수행되는 명령어들(instructions)은 개략적인 플로우차트 다이애그램 및/또는 개략적인 블록 다이어그램 또는 블록에서 지정된 기능/동작을 구현하기 위한 수단을 생성한다.
도 1은 본 발명의 하나의 실시 예에 따른 콘텐츠 전달 시스템을 개략적으로 도시한 것이다. 특히 도 1은 콘텐츠 처리 장치(106)에서 적어도 하나의 클라이언트(104)에게 콘텐츠를 스트리밍하기 위해 설정된 서버 시스템(102)을 포함하는 콘텐츠 전달 시스템을 개략적으로 도시한 것이다. 서버 시스템(102)은 하나 이상의 콘텐츠 신호(108), 즉 (라이브) 비디오 및/또는 멀티미디어 신호를 수신하고 세그먼트된(segmented) 콘텐츠 스트림을 발생하기 위해 콘텐츠 신호를 처리하도록 설정된 하나 이상의 스트리밍 서버를 포함할 수 있다.
보다 상세하게 후술될 것이지만, 세그먼트된 콘텐츠 스트림의 발생은 콘텐츠 신호를 미리 설정된 사이즈의 분리된 세그먼트로 나누는 단계를 포함 할 수 있으며, 여기서 각각의 세그먼트는 다수의 다른 표현으로 부호화(encoded)될 수 있다. 여기서, 표현은: 2D 및 3D 포맷, 다른 비디오 및/또는 오디오 품질(예를 들어, SD/HD, 비트레이트, 등), 상이한 공간 해상도 등을 포함하여, 컨텐츠 신호의 다른 변형과 관련 될 수 있다.
세그먼트된 콘텐츠 스트림의 발생 동안에, 하나 이상의 매니페스트 파일(애플의 HTTP 라이브 스트리밍을 위한 MPEG-DASH 또는 M3U8 재생 목록에 대한 미디어 프리젠 테이션 설명 또는 MPD로 알려진)이 생성될 수 있다. 여기서, 용어 "매니페스트 파일"은 일반적으로 콘텐츠 아이템, 즉, 비디오 타이틀을 형성하는 세그먼트를 식별하는 세그먼트 식별자(기술자)를 포함 할 수 있는 특별한 데이터 구조를 가리킬 수 있다. 그것은 클라이언트에게 세그먼트를 전달하거나 또는 클라이언트에게 세그먼트를 검색할 수 있는 위치 정보를 제공하도록 설정될 수 있는 (한 세트의) 네트워크 노드, 즉, (미디어) 스트리밍 서버(들)의 위치 정보를 더 포함 할 수 있다. 매니페스트 파일은 비디오 해상도, 비트 레이트 등과 같은 매체의 특성에 관한 정보를 포함하는 미디어 메타 데이터와 세그먼트 사이의 (시간) 관계를 결정하기 위한 세그먼트 플레이-아웃 정보를 더 포함 할 수 있다.
다른 표현(representations)과 관련된 매니페스트 파일과 세그먼트는 서버 시스템에서, 즉 세그먼트 저장 노드(110)와 매니페스트 저장 노드(112)에서 미리 결정된 위치에 저장될 수 있다. 실시 예에서, 매니페스트 파일의 위치는 URL 또는 URI로 저장될 수 있다. 특정 콘텐츠 아이템을 요청할 때, 서버 시스템은 클라이언트에게 URL 또는 매니페스트 파일의 URI를 제공할 수 있다.
사용자가 (라이브)스트리밍 이벤트에 참여하거나 또는 스트리밍 서비스를 시작하고자 할 때, 웹 페이지로부터 이벤트나 또는 서비스를 선택할 수 있다. 선택 후, 서버 시스템의 (HTTP) 스트리밍 기능(116)은 클라이언트에게 네트워크 연결(114)을 통해서 스트리밍 이벤트 또는 서비스와 관련된 매니페스트 파일을 전송할 수 있다. 실시 예에서, 스트리밍 기능은 서버 시스템의 HTTP 서버에서 구현될 수 있다.
클라이언트는 매니페스트 파일을 해석(parse)하고 서버 스트림의 스트리밍 서버로부터 세그먼트된 스트림을 요청하기 위해 매니페스트 파일의 정보를 이용하도록 설정되고, 네트워크를 통해 클라이언트에게 전송된 세그먼트를 수신하도록 설정될 수 있다. 세그먼트와 연관된 패킷을 스트리밍하는 동안 네트워크에서 하나 이상의 경로를 따를 수 있다. 이러한 경로는 이하 스트리밍 경로로 지칭 될 수 있다. 클라이언트와 스트리밍 서버 사이의 스트리밍 경로는 HTTP/TCP 프로토콜에 기초하여 개설될(established) 수 있다.
이를 달성하기 위해, 서버 시스템은 HTTP 어댑티브 스트리밍 (HAS) 프로토콜에 기초하여 클라이언트에게 세그먼트를 송신하도록 구성된, HTTP 서버를 포함 할 수 있다. 이러한 방식에서, 클라이언트(HAS클라이언트)는 세그먼트에 대한 HTTP요청을 HTTP 서버에 전송할 수 있고, 그것은 - 응답으로 - HTTP 응답 메시지로 하나 이상의 특정 표현의 세그먼트를 클라이언트에게 전송한다. 클라이언트에게 세그먼트 스트리밍을 하는 동안, 세그먼트는 클라이언트의 수신 버퍼(118)에서 버퍼된다(buffered). 세그먼트 내의 부호화된 캡슐화 세그먼트 데이터(프레임)는 플레이-아웃 버퍼(120)에서 언팩되고(unpacked), 디코딩(decoded)되고 배열(arranged)될 수 있다. 플레이-아웃 버퍼에서 데이터는 콘텐츠 스트림의 프레젠테이션 스케쥴(timeline)에 따라 배열될 수 있다. 미디어 엔진 (122)은 계속해서 사용자에게 플레이-아웃 버퍼에 데이터를 표시 할 수 있다. 플레이-아웃 버퍼의 데이터는 콘텐츠 스트림의 표현 스케쥴(timeline)에 따라 구성될 수 있다. 미디어 엔진(122)은 이어서 플레이-아웃 버퍼에서 사용자에게 표시할 수 있다.
어댑티브 스트리밍 프로토콜의 예에는 애플 HTTP 라이브 스트리밍[http://tools.ietf.org/html/ draft-pantos-http-live-streaming-07], 마이크로소프트 스무드 스트리밍[http://www.iis.net/download/ SmoothStreaming], 아도베 HTTP 다이나믹 스트리밍[http://www.adobe.com/products/ httpdynamicstreaming], 3GPP-DASH [TS 26.247 Transparent end-to-end Packet-switched Streaming Service (PSS); Progressive Download and Dynamic Adaptive Streaming over HTTP] 및 HTTP [MPEG DASH ISO/IEC 23001-6]를 통한MPEG 다이나믹 어댑티브 스트리밍을 포함한다. HTTP는 클라이언트에게 세그먼트를 전달하기 위한 효율적이고, 방화벽-친화적이며 확장.축소 가능한 방식을 허용한다.
콘텐츠 처리 장치는 일반적으로 (모바일) 컨텐츠 플레이-아웃 장치, 예를 들어, 전자 태블릿, 스마트 폰, 노트북, 미디어 플레이어, 홈 게이트웨이 또는 DASH-구동의 HbbTV 디스플레이 장치와 같은 DASH 구동의 장치에 관련 될 수 있다. 대안적으로, 콘텐츠 처리 장치는 저장된 콘텐츠에 액세스하는 콘텐츠 플레이-아웃 장치에 의한 미래의 소비를 위한 처리 및 일시적으로 저장을 위해 설정된 셋톱 박스 또는 콘텐츠 저장 장치 일 수 있다.
유사하게, 서버 시스템은 하나 이상의 HTTP 스트리밍 서버를 포함하여, 하나 이상의 스트리밍 서버를 포함한다. 대안적으로 서버 시스템은 하나 이상의 콘텐츠 전달 네트워크(CDN)(또는 일부)를 포함할 수 있다. CDN(미도시)은 하나 이상의 엣지 노드(전달 노드와 대리 노드로 언급되는)와 적어도 하나의 중앙 CDN 노드를 포함할 수 있다. 중앙 CDN 노드는 외부 소스(즉, 콘텐트 제공자 또는 다른 CDN)로부터 CDN으로 콘텐츠의 섭취(ingestion)를 조절하는 컨텐츠 오리진 기능(COF) 과 하나 이상의 세그먼트의 카피를 전달 노드로 분배하는 것을 제어하고 클라이언트를 적절한 전달 노드(요청 라우팅으로 또한 알려진 프로세스)로 재-안내(redirecting)하기 위한 CDN 제어 기능(CDNCF)을 포함할 수 있다. 컨텐츠 위치 데이터베이스는 세그먼트가 CDN 내에 저장되는 장소에 관한 정보(예를 들어, 어느 전달 노드 및 전달 노드의 어느 폴드)를 저장하기 위하여 사용될 수 있다.
일 실시 예에서, CDN은 그것이 CDN에 의하여 섭취(ingested)된 후 (라이브) 미디어 스트림을 처리하도록 설정된 콘텐츠 처리 기능을 포함할 수 있다. 콘텐츠 처리 기능은 콘텐츠 신호의 (실-시간)상이한 버전을 생성하기 위한 부호기(encoder)를 포함할 수 있다. 그 후에, 콘텐츠 신호는 상기 미리 설정된 크기의 세그먼트들로 분할 될 수 있으며, 여기서 각각의 세그먼트는 특정의 표현(representation)과 관련 될 수 있다. 예를 들어, 콘텐츠 신호의 하나의 표현은 미리 설정된 품질(즉 높은, 평균의 및 낮은 비트레이트)의 세그먼트를 포함할 수 있다. 이러한 세그먼트들은 적절한 전송 프로토콜 포멧, 즉 MPEG-기반 방법에 따라 캡슐화 될 수 있다. 실시 예에서, 세그먼트들은 그들이 세그먼트로 분할되기 전에 부호화 및/또는 스크램블드(scrambled) 될 수 있다. 라이브 스트림과 관련된 세그먼트는 콘텐츠 소비 장치가 그들에게 액세스하기 전에 CDN 의 하나 이상의 전달 노드 서버에서 일시적으로 저장(버퍼) 될 수 있다.
변화하는 네트워크 상태(condition)에 응하여, (예를 들어, 스트리밍 경로를 통해 클라이언트에게 전송되는 데이터(세그먼트들)에 의해 경험되는 지연 변화), 스트리밍 프로토콜은 버퍼 상태(status)를 어댑테이션 파라미터로 사용할 수 있는 어댑테이션 알고리즘에 따라 클라이언트에게 세그먼트를 스트리밍하는 동안(즉, 높은 품질 표현으로 부터 낮은 품질의 표현으로 또는 그 반대로 스위칭함) 표현(representation)의 다이나믹 어댑테이션을 허용 할 수 있다. 플레이-아웃 버퍼가 언더런 상태에 접근하는 경우, 클라이언트는 제1 표현으로부터 제 2((더)낮은 품질) 표현으로 변경(어댑터) 할 수 있다.
그런 경우에, 클라이언트에서의 세그먼트 요청 기능(125)은 요청된 표현과 관련된 매니페스트 파일로부터 선택할 수 있고 이러한 세그먼트를 바탕으로 스트리밍 프로세서를 계속 할 수 있다. 이 방법으로, 클라이언트는 콘텐츠가 인터넷과 같은 비-관리 네트워크를 통해서 스트리밍될 때 실질적으로 있을 수 있는 네트워크 상태의 변화(버퍼 상태에 반영된 바와 같이)에 대응하여 스트리밍 프로세서를 어댑터할 수 있다.
기존의 HAS 클라이언트 구성에서, 플레이-아웃 버퍼의 사이즈는 미리 설정되며 일반적으로 비교적 크다(즉, 대략 세 개 이상의 세그먼트 사이즈). 예기치 않은 지터(jitter) 및 정체에 대처하기 위하여, 및 버퍼 언더런(underrun) 발생의 가능성을 감소시키기 위해, 클라이언트에서 수행되는 버퍼링은 소스와 콘텐츠 처리 장치의 플레이-아웃 사이의 전체 앤드-투-앤드 지연에 비해 상당하다. 따라서, 종래 HAS 클라이언트는 인터넷과 같은 비- 관리 네트워크에서 발생할 수 있는 변동 상황을 처리하도록 설정된다.
앤드-투-앤드 지연은: 세그먼트의 생성 및 부호화와 관련된 지연; 콘텐츠 전달 네트워크(CDN)로 세그먼트를 분배하는 것과 관련된 지연 및 CDN 내에서 그것의 가장자리 노드로 세그먼트를 내부 분배하는 것과 관련된 지연; CDN으로부터의 세그먼트 요청과 클라이언트(네트워크와 홈 네트워크를 통해)에게 세그먼트를 전달 하는 것과 관련된 지연; 및, 콘텐츠 처리 장치에서 세그먼트를 처리하는 것과 관련된 지연을 포함할 수 있다. 이러한 지연들은, 예를 들어, 버퍼링과 디코딩 프로세서로 인한 지연을 포함할 수 있다.
버퍼를 채우기 위해 사용될 수 있는 세그먼트들이 충분하지 않을 위험을 줄이기 위해, 종래의 클라이언트는 또한 스트리밍 이벤트에 참여하는 즉시 스트리밍 소스에 의해 사용 가능하게 될 세그먼트보다 스트리밍 소스에 의해 더 먼저(일반적으로 3 세그먼트 더 먼저) 사용 가능하게 된 세그먼트가 (스트리밍 이벤트에 참여하는 즉시) 클라이언트 의해 요청 될 예정인 제1 세그먼트가 되도록 또한 설정된다.
따라서, 스트리밍을 시작할 때, 그것이 플레이-아웃 버퍼에서 데이터의 디코딩 및 프레이-아웃을 시작하기 전에, 그것은 세그먼트 "백-인-타임"을 요청할 것이고 플레이-아웃 버퍼는 세그먼트로 설정된 크기까지 채워지게 것이다. 버퍼와 세그먼트 요청 기능 구성으로 인해, 심지어 큰 플레이-아웃 버퍼가 필요하지 않을 경우에도, HAS 클라이언트에 의한 라이브 스트리밍 이벤트의 플레이-아웃과 기존의 브로드캐스트 또는 다중캐스트 스트리밍과 같은 다른 전송 메카니즘을 바탕으로 하는 다른 콘텐츠 처리 장치에 의한 라이브 스트리밍의 플레이-아웃 사이에 상당한 지연이 존재한다. 이러한 지연은 알려진 IDMS 기술로 해결될 수 없다.
예를 들어, 일부의 경우에, 스트리밍 이벤트와 스트리밍 서비스는 관리된 네트워크, 즉 미리 설정된 서비스 품질(QoS)에 따라 관리되는 네트워크 운영자의 IP 네트워크를 통해 전달(또는 적어도 부분적으로 전달) 될 수 있다. 그러한 네트워크에서 지연 변동은 비-관리 네트워크의 네트워크 지연에 비해 더 작고 훨씬 더 예측 가능하고 안정적 일 수 있다.
이러한 원하지 않는 결과에 대처하기 위하여, 일 실시 예에서, 콘텐츠 프로세싱 모듈은 서버 시스템과 콘텐츠 처리 장치 사이의 스트리밍 통로(114)와 관련된 품질 매트릭스에 기초한 플레이-아웃 버퍼의 사이즈에 어댑트하도록 설정된, 구성 모듈(126)을 포함할 수 있다. 다른 실시 예에서, 구성 모듈은 품질 매트릭스를 기초로 클라이언트에 세그먼트 요청 기능(125)을 설정할 수 있고 그렇게 함으로써 클라이언트가 (라이브) 스트리밍 이벤트에 참여할 때 클라이언트에 의하여 어느 세그먼트가 먼저 요청되어야 하는지를 세그먼트 요청 기능이 결정하게 할 수 있다.
스트리밍 경로의 품질 매트릭스는 하나 이상의 모니터링 에이전트(124,130)로부터 품질 매트릭스를 수신할 수 있는 모니터링 시스템(128)에 의하여 결정될 수 있다. 일 실시 예에서, 모니터링 시스템은 콘텐츠 처리 장치의 모니터링 에이전트(124)로부터 장치 품질 매트릭스를 수신할 수 있다. 장치 모니터링 에이전트(124)는 장치 품질 매트릭스(즉, 이러한 세그먼트 수신 타임, 버퍼 오버로드 및 수신 버퍼의 언더런 및/또는 플레이-아웃 버퍼, 세그먼트 플레이-아웃 타임 등과 같이 콘텐트 처리 장치 상에서 실행되는 세그먼트 검색 및 플레이-아웃 프로세스와 관련된 측정된 파라미터)를 수집하도록 설정될 수 있다. 장치 모니터링 에이전트는 클라이언트(104), 수신 버퍼(118), 플레이-아웃 버퍼(120) 및 미디어 엔진(122)으로부터 이러한 파라미터를 검색할 수 있으며, 이러한 장치 품질 매트릭스를 서버 시스템과 관련된 모니터링 시스템(128)에 전송할 수 있다. 품질 매트릭스를 수집하고 처리하는 프로세스는 도 2를 참조하여 더 자세하게 후술될 것이다.
다른 실시 예에서, 모니터링 시스템은 네트워크의 하나 이상의 네트워크 모니터링 에이전트(130)으로부터 네트워크 품질 매트릭스를 수신할 수 있다. 네트워크 모니터링 에이전트는 네트워크로부터 네트워크의 실시간 서비스의 품질(QoS) 및/또는 경험의 품질(QoE) 매트릭스(네트워크 품질 매트릭스)를 측정 및 수집하고 네트워크 품질 매트릭스의 적어도 일부를 클라이언트와 서버 시스템의 하나 이상의 스트리밍 서버 사이의 하나 이상의 스트리밍 경로와 연관되도록 설정될 수 있다.
모니터링 에이전트는 앤드-투-앤드, 즉. 홈 네트워크와 홈 네트워크에 연결된 장치의 타입과 관련된 매트릭스를 포함하여, 그것에 의하여 또한 홈 네트워크에서의 소스 패킷 손실, het 홈 네트워크의 부하 변동, 터미널 용량, 홈 네트워크 내 가용 대역폭을 고려하는 정도로까지 매트릭스를 수집할 수 있다. 모니터링 에이전트는 기본 IP 주소 및/또는 네트워크 식별자를 기초로 품질 매트릭스를 수집할 수 있고, 그래서 다른 액세스 네트워크 즉 WLAN 또는 Wi-Fi 네트워크를 통해서 서버 시스템과 연결된 다른 장치를 구별할 수 있다. 일 실시 예에서, 모니터링 에이전트는 HTTP-기반 통신 채널(131)을 통해서 모니터링 시스템과 통신할 수 있다.
클라이언트에게 컨텐츠를 스트리밍하는 동안, 모니터링 시스템은 클라이언트와 서버 시스템 사이의 스트리밍 경로와 연관된 품질 매트릭스를 수집 할 수 있고, 품질 매트릭스를 품질 데이터베이스(132)에 저장할 수 있다. 실시 예에서, 품질 매트릭스는 QoS 클라이언트 프로파일로 저장 될 수 있다. 충분한 데이터가 수집 되면, 품질 데이터베이스에서 QoS 클라이언트 프로파일은 HAS 클라이언트가 (라이브) 스트리밍 이벤트에 참여할 때 클라이언트에 의하여 어느 세그먼트가 먼저 요청되어야 하는지를 결정하기 위하여 플레이-아웃 버퍼 및/또는 세그먼트 요청 기능을 설정하는데 사용 될 수 있는 충분히 믿을만한 품질 매트릭스를 포함할 수 있다.
클라이언트가 서버 시스템에게 스트리밍 이벤트에 참여하라고 요청할 때, 즉, 스트리밍 이벤트와 관련된 매니페스트를 요청하고 수신하는 즉시, 그것은 요청 클라이언트의 QoS 클라이언트 프로파일에 액세스하여, 품질 매트릭스를 검색하고 그것을 처리할 수 있으며 그래서 그것은 구성 모듈(126)에 의하여 사용될 수 있다. 구성 모듈에서 다양한 방법으로 처리하고 지시하는 것은 더 자세하게 후술된다.
실시 예에서, 품질 매트릭스의 적어도 일부는 상기 버퍼에서 데이터의 플레이-아웃이 시작되기 전에 버퍼의 사이즈를 결정하고 및/또는 세그먼트 요청 기능이 스트리밍 서버로부터 요청할 매니페스트 파일에 식별된 세그먼트들로부터 제1 세그먼트를 결정하기 위해 하나 이상의 구성 파라미터(134, 135)를 결정할 수 있는 콘텐츠 처리 장치의 구성 모듈로 전송된다. 대안적으로, 모니터링 시스템은 상기 하나 이상의 구성 모듈을 결정할 수 있고 구성 모듈에 상기 파라미터들을 전송할 수 있다.
대안적으로 및/또는 부가적으로, 다른 실시 예에서, 모니터 시스템은 품질 매트릭스에 기초하여 QoS 정보 및/또는 하나 이상의 구성 파라미터를 결정할 수 있고 이 정보를 QoS 클라이언트에 저장할 수 있다.
QoS 정보는 하나 이상의 QoS 레벨을 정의할 수 있으며, 여기서 QoS 레벨은 상기 구성 모듈에 대한 하나 이상의 미리 설정된 구성 파라미터와 관련될 수 있다.
예를 들어, 하나 이상의 QoS 레벨은 적어도 저-지연 모드(즉, 작은 버퍼 사이즈, 작은 세그먼트 오프셋 시작)로 클라이언트를 설정하기 위한 하나 이상의 (미리 구성된) 구성 파라미터를 정의하는 QoS(저 지연) 레벨과 고-지연 모드(즉, 큰 버퍼 사이즈, 큰 세그먼트 오프셋 시작)로 클라이언트를 설정하기 위한 하나 이상의 (미리 구성된) 구성 파라미터를 정의하는 QoS(고 지연) 레벨을 포함할 수 있다. 고 지연 모드 또는 레벨은 때때로 또한 '정상' 지연 레벨 또는 모드로 언급 될 수 있고, 그런 경우에 인터넷과 같은 비-관리 네트워크를 통해 세그먼트된 콘텐츠를 검색할 때 흔히 사용하는 기본(default) 레벨 또는 모드와 관련될 수 있다
따라서, 서비스 정보의 질은 모니터링 시스템 또는 클라이언트에서 미리 설정될 수 있는 다른 세트의 구성 파라미터와 관련될 수 있다. 이러한 방법으로, HAS 클라이언트의 특정(저, 중간, 고) 지연 모드는 구성 모듈로 예측되는 QoS 레벨(저, 중간, 고)과 관련된 QoS 정보를 포함하는 메시지를 전송함에 의하여 선택될 수 있다. QoS정보에 기초하여 구성 모듈은 미리 설정된 구성 파라미터의 세트를 선택할 수 있고 클라이언트를 구성하기 위하여 이것들을 사용 할 수 있다.
이 방식으로 과도하게 큰(over-dimensioned) 플레이-아웃 버퍼로 인한 플레이-아웃 지연은 감소될 수 있다. 일부 실시 예에서, 서버 시스템은 그것이 구성 모듈로 전송되기 전에 QoS 정보를 처리할 수 있다. QoS 정보와 QoS 정보의 처리의 보다 상세한 예는 후술된다.
스트리밍 동안에, 모니터링 시스템은 스트리밍 경로의 품질 매트릭스를 수집하고 품질 데이터베이스에서 QoS 클라이언트 프로파일을 업데이트할 수 있다. 매트릭스는 연속적으로, 주기적으로 또는 미리 설정된 포인트(points)에서 제때에 수집될 수 있다.
스트리밍 경로의 QoS 레벨이 미리 설정된 값에 의하여 감소하거나 또는 증가하면, 클라이언트는 새로운 품질 매트릭스에 기초한 구성 모듈에 의하여 재설정될 수 있다. 이를 위해, 일 실시 예에서, 클라이언트는 정기적으로(주기적으로), 서버 시스템이나 모니터링 시스템에 품질 매트릭스에 대한 업데이트 요청을 전송하도록 설정될 수 있다. 일 실시 예에서 업데이트 요청은 매니페스트 파일에 관한 것일 수 있으며, 여기서 매니페스트 파일은 현재의 품질 매트릭스, QoS정보 및/또는 스트리밍 경로와 관련된 구성 파라미터를 포함할 수 있다.
다른 실시 예에서, 모니터링 시스템은 스트리밍 경로의 QoS 레벨에서의 변화를 모니터 할 수 있다. 그러한 변화가 검출되면, 모니터링 시스템은 품질 매트릭스의 업데이트를 촉발(trigger)할 수 있고 분리된 통신 채널(즉, HTTP 기반 통신 채널)을 통해 콘텐츠 처리 장치로 스트리밍 경로와 관련된 품질 매트릭스, QoS 정보 및/또는 구성 파라미터를 전송할 수 있다. 일 실시 예에서, 통신 채널은 스트리밍 경로와 관련된 (양 방향) HAS 제어 채널과 관련될 수 있다. HAS 제어 채널에 관한 세부사항은 도 9를 참조하여 보다 구체적으로 후술된다. 이 방식으로, 버퍼 및/또는 세그먼트 요청 기능은 네트워크 상태 변화(및 QoS 레벨에서의 관련된 변화)에 대응하여 다이나믹하게 조정될 수 있다.
구성 모듈이 플레이-아웃 버퍼를 설정하도록 하기 위하여, 일 실시 예에서, QoS 정보는 매니페스트 파일로 클라이언트에게 전송 될 수 있다. 그러한 경우에, 바람직한 구성 모듈은 HAS 클라이언트의 일부 일 수 있다. 클라이언트가 서버 시스템에게 (라이브) 스트리밍 이벤트에 참여하라고 요청할 때, 스트리밍 경로가 개설될 수 있고 요청에 응하여 스트리밍 경로와 관련된 QoS 정보를 포함하는 매니페스트 파일은 클라이언트에게로 전송 될 수 있다. 다른 실시 예에서, QoS 정보는 HTTP/TCP 연결을 통해서 매니페스트 파일로부터 클라이언트에게 분리되어 전송될 수 있다.
도 2는 본 발명 실시 예에 따른 매트릭스를 수집하기 위한 프로세스를 도시한 것이다. 특히, 도 2는 HAS 클라이언트에게로 세그먼트를 스트리밍하는 프로세스의 적어도 일부를 도시한 것이며, 여기서 클라이언트는 서버 시스템으로부터 세그먼트를 검색하기 위해 매니페스트 파일을 사용할 수 있고 하나 이상의 모니터링 에이전트는 HAS 클라이언트와 스트리밍 서버 사이의 스트리밍 경로와 관련된 품질 매트릭스를 수집할 수 있다. 스트리밍 프로세서는 서버 시스템으로 미리 설정된 세그먼트(이 경우 세그먼트-고-1, mp4)에 대한 (HTTP)요청을 전송하는HAS 클라이언트를 포함할 수 있고(단계 202) 서버 시스템은 요청된 (일부) 세그먼트를 포함하는 (HTTP) 응답을 클라이언트에게 전송함에 의하여 요청에 대하여 응답할 수 있으며(단계204), 클라이언트는 수신된 데이터를 처리하여 그것들이 디코드되어 사용자에게 제공되기 전에 상기 데이터를 미디어 플레이어와 관련된 플레이-아웃 버퍼로 전송할 수 있다(단계206).
이러한 프로세스 동안, 콘텐츠 처리 장치의 모니터링 에이전트는 HAS 클라이언트, 플레이-아웃 버퍼 및 미디어 에이전트로부터 장치 품질 매트릭스를 수집하고(단계208) QoS 리포트에서 이 정보를 모니터링 서버로 전송할 수 있으며(단계210), 모니터링 서버는 상기 리포트를 사용하여 품질 데이터베이스에서 QoS 클라이언트 프로파일을 업데이트할 수 있다(단계211). 이러한 프로세스는 모니터링 서버가 콘텐츠 처리 장치에서 버퍼 및 세그먼트 요청 기능의 설정(setting)을 결정하는데 사용될 수 있는 (히스토리컬) 품질 매트릭스를 포함하는 스트리밍 경로의 QoS 클라이언트 프로파일을 수집하고 만들어 낼 수 있도록 스트리밍 프로세스 내내 반복될 수 있다(즉, 단계 212-224 참조). 일 실시 예에서, 모니터링 에이전트는 그것이 모니터링 시스템으로 장치 매트릭스를 전송하기 전에 다수의 요청된 세그먼트에 관한 장치 품질 매트릭스를 수집할 수 있다.
모니터링 에이전트는 다른 유형의 매트릭스를 수집하고 측정할 수 있으며, 여기서 매트릭스는 품질 장치 유형, 데이터 유형, 프로토콜/코덱 유형, 네트워크 유형, 액세스 기술 유형, 등에 대한 매트릭스를 데이터베이스 내에 분류하기 위하여 모니터링 시스템에 의하여 사용될 수 있는 메타데이터를 포함할 수 있다. 일 실시 예에서, 품질 매트릭스는 어댑티브 스트리밍 프로세스와 관련된 매트릭스, 즉: 매니페스트 파일 번호, 콘텐츠 프로파일, 콘텐츠 타이틀, 콘텐츠 설명(description), 지정된 플레이-아웃 지속기간, 초기 프로파일, 원래(originating) 서버 매니페스트, 원래 서버 세그먼트, 리디렉션의 수, 비트레이트 업 변경, 비트레이트 다운 변경, 버퍼된 세그먼트의 수, 수신된 세그먼트, 요청된 세그먼트, 버퍼 언더런, 세그먼트의 수신된 바이트, 세그먼트 프로파일 비트레이트, 세그먼트 리드 비트레이트, 프로파일 아래 세그먼트 nr리드 비트레이트, 세그먼트 타임아웃의 수, 세그먼트 실패의 수, 수신 버퍼 및/또는 플레이아웃 버퍼에서의 세그먼트 수를 포함할 수 있다.
다른 실시 예에서, 품질 매트릭스는 액세스 기술, 즉 액세스 기술의 유형(Cable, DSL, fiber, 등), 액세스 라인의 유형(VDSL, ADSL, 등), 이러한 액세스 라인과 관련된 전형적인 지연 및/또는 대역폭과 관련된 정보를 포함할 수 있다.
다른 실시 예에서, 품질 매트릭스는 콘텐츠 처리 장치와 관련된 정보, 즉, 일련번호, 콘텐츠 처리 장치의 제조사 및/또는 칩세트 식별자를 포함할 수 있다. 다른 실시 예에서, 매트릭스는 콘텐츠 처리 장치의 하드웨어의 이용과 관련된 정보, 예를 들어, 무료 이용 가능한 메모리, CPU 이용 및/또는 신호 강도를 포함할 수 있다. 또 다른 실시 예에서, 매트릭스는 액세스 네트워크 및/또는 플랫폼을 식별하기 위한 식별자를 포함할 수 있다.
실시 예에서, 품질 매트릭스는, 동일한 네트워크 리소스를 공유하는 사용자의 수로 인한 부하와 관련된 처리량, 탈락된 패킷, 비트 에러, 큐(queue) 또는 정체(congestion)로 인한 지연, 지터 및 다른 패킷들이 목적지에 다른 순서로 도달 할 수 있다는 사실로 인한 비순차(out-of-drder) 지연을 포함하여, 네트워크와 관련된 정보를 포함할 수 있다.
또 다른 실시 예에서, 모니터링 에이전트는 MPEG DASH ISO/IEC 23001-6에 정의된DASH(품질) 매트릭스에 따라(적어도 부분적으로) 스트리밍 프로세스와 관련된 장치 품질 매트릭스를 모니터하고 수집할 수 있다. "DASH Metrics" 라는 제목의 이 문헌에서 Annex D는 다양한 DASH(품질) 매트릭스: TCP 연결, HTTP 요청/응답 트랜잭션, 표현 스위치 이벤트, 버퍼 레벨 및 재생 리스트를 명시하고 있다.
예를 들어, 일 실시 예에서, HAS 클라이언트 입력에서, 모니터링 에이전트는 TCP 연결의 세트들(IP 주소, 시작, 연결 및 클로징 타임), 세그먼트에 대한 하나 이상의 송신된 HTTP 요청들(각각 송신 시간, 콘텐츠 및 TCP 연결에 의하여 정의됨) 및 요청된 세그먼트를 포함하는 하나 이상의 수신된 HTTP 응답(각각 응답 메시지의 수신 시간, 응답 헤드의 콘텐츠 및 응답 바디(body)의 각 바이트의 수신 시간에 의해 정의됨) 콘텐츠)를 모니터 할 수 있다.
다른 실시 예에서, 모니터링 에이전트는 HAS 클라이언트의 출력에서 하나 이상의 부호화된 (MPEG) 프레임을 모니터 할 수 있다(여기서 부호화된 프레임은 미디어 유형, 식별자, 디코딩 시간, 프레젠테이션 타임 및/또는 전달 시간에 의해 정의될 수 있다). 유사하게, 미디어 엔진에서, 모니터링 에이전트는 하나 이상의 디코드된 (MPEG) 프레임을 모니터 할 수 있다(각각 미디어 유형, 프레임의 프레젠테이션 타임스탬프와 디코드된 프레임의 실제 프레젠테이션 타임(또는 그들의 일부)에 의해 정의됨).
일단 매트릭스가 모니터링 에이전트에 의해 수집되면, 리포팅 프로세스가 발생하며 여기서 모니터링 에이전트는 수집된 매트릭스를 서버로 전송한다.
본 발명의 실시 예에서, 이러한 수집된 매트릭스들은 HTTP GET의 URI 또는 HTTP POST 요청 내에 파라미터로서 삽입된다. HTTP GET 또는 HTTP POST 요청은 수집된 매트릭스를 보고하기 위하여 사용될 수 있다. 도 10은 버퍼 레벨 매트릭스에 관한 그러한 요청의 예(1001, 1002)를 제공한다.
본 발명에 따른 대안적인 실시 예에서, 매트릭스들은 HTTP POST 또는 HTTP PUT 요청에서 모니터링 에이전트에 의하여 보고될 수 있다. 도 11은 버퍼 레벨 매트릭스에 관한 그러한 요청의 예(1103, 1104)를 제공한다.
일 실시 예에서, JSON 포맷은 매트릭스를 기술하기 위해 사용되고, 다른 실시 예에서, 매트릭스는 XML 포맷에 따라 기록(write)된다. 도 12는 버퍼 레벨 매트릭스를 포함하는 그러한 요청의 예(1205, 1206)를 제공한다.
도 11의 바람직한 요청에서, 요청의 제1 라인에서 URI는 서버에서 생성되는 파일의 이름을 나타낸다. 따라서, 예를 들어 도 12의 상세한 포맷에 따라 적절한 확장자 .xml 또는 .Json 이 제공된다.
다른 실시 예에서, 수집된 매트릭스는 웹소켓을 통해서 다시 보고된다. 일단 웹소켓을 통한 연결이 모니터링 에이전트와 서버 사이에 개설되면, 수집된 매트릭스는 모니터링 에이전트에 의하여 서버로 송신된다.
다른 실시 예에서 수집된 매트릭스는 모니터링 에이전트에 의하여 파일에 대해 기록(wtitten)되고 그리고 나서 서버로 전송된다. 파일의 전송은 예를 들어 FTP, FTPS, Peer-to-Peer(즉, Bittorent), SFTP, SCP에 의해 달성 될 수 있다. 파일은 도 12에 도시된 바와 같이, 예를 들어 XML 또는 JSON 포맷으로로 기록될 수 있다. 웹소켓이 사용되는 경우에, 파일은 베이스64에서 부호화 될 수 있고 HTTP 메시지의 바디(body)에 삽입되며, 모니터링 에이전트에 의하여 웹소켓 연결을 통해서 서버(시스템)로 전송될 수 있다.
도 3은 본 발명의 일 실시 예에 따른 매니페스트 파일의 적어도 일부를 개략적으로 도시한 것이다. 특히 도3 은 플레이-아웃 버퍼와 세그먼트 요청 기능을 설정하기 위하여 콘텐츠 처리 장치에서 구성 모듈에 의하여 사용될 수 있는 QoS 정보와 구성 파라미터를 포함하는 매니페스트 파일의 적어도 일부(이 예에서MPEG DASH MPD의 일부)를 도시한 것이다.
이러한 특별한 실시 예에서, 매니페스트 파일은 제1 QoS 레벨(즉 "고-지연" 또는 "정상(regular)" 모드)(310) 및 제2 QoS 레벨("저-지연" 모드)(312)를 포함하는 QoS 정보를 포함할 수 있다. 제1 QoS 레벨은 비-관리 네트워크로 스트리밍 할 때 적절한 HAS 클라이언트의 기존 설정과 관련된 구성 파라미터를 포함하는 정상 모드(310)를 정의할 수 있다. 제2 QoS 레벨은 관리된 네트워크로 스트리밍 할 때 적절한 HAS 클라이언트의 저-지연 설정과 관련된 구성 파라미터를 포함하는 저-지연 모드(312)를 정의할 수 있다.
QoS 정보 및 관련된 구성 파라미터를 포함하는 매니페스트 파일은 매니페스트 파일을 해석(parse)할 수 있고 QoS 정보와 구성 파라미터를 구성 모듈로 전송할 수 있는HAS 클라이언트에게 매니페스트 파일로 송신될 수 있고, 그것은 상기 정보와 파라미터들을 저장한다. 스트리밍 경로의 현재의 품질 매트릭스에 기초하여, 모니터링 시스템 또는 구성 모듈은 예를 들어 정상 또는 저-지연 모드를 선택할 수 있다. 품질 매트릭스, QoS 정보, 및/또는 구성 파라미터의 사용에 대한 다양한 변형들은 본 발명으로부터 벗어나지 않고 가능함을 제시하였다. 예를 들어, 일 실시 예에서, 매니페스트 파일은 오직 버퍼 및/또는 세그먼트 요청 기능을 설정하기 위하여 구성 모듈에 의해 사용되는 현재의 품질 매트릭스와 관련된 구성 파라미터를 포함 할 수 있다. 다른 실시 예에서, 매니페스트 파일은 오직 어떠한 구성 파라미터도 없이 (예측된) QoS 레벨(즉 정상 모드 또는 저-지연 모드) 신호를 보내기 위한 QoS 정보를 포함할 수 있다. QoS 레벨은 콘텐츠 프로세서 장치의 메모리에 국부적으로 저장된 구성 파라미터의 미리 설정된 세트를 선택하도록 구성 모듈에 의해 사용될 수 있다. 또 다른 실시 예에서, 매니페스트 파일은 스트리밍 경로와 관련된 품질 매트릭스를 포함할 수 있다.
품질 매트릭스는 구성 모듈에 의해 QoS 레벨을 결정하고, 상기 QoS 레벨에 기초하여 미리 구성 파라미터를 선택하거나 품질 매트릭스에 기초하여 하나 이상의 구성 파라미터를 직접 결정하는데 사용 될 수 있다. 본 발명의 실시 예에서, 그러한 품질 매트릭스는 또한 QoS 파라미터로 언급되는 서비스 품질과 관련된 하나 이상의 파라미터 일 수 있다. 그러한 QoS 파라미터는 예를 들어: 보장된 대역폭, 패킷 손실 비, 지연, 지터에 관한 것일 수 있으나, 그에 국한되지는 않는다. 도 13은 QoS 파라미터의 형태로 품질 매트릭스를 포함하는 바람직한 MPD를 제공한다. MPD에서 이러한 QoS 파라미터의 예는: MinGuaranteedBandwidth : 클라이언트가 기대할 수 있는 최소 대역폭(예에서bits/s로); MaxGuaranteedBandwidth : 클라이언트가 기대할 수 있는 최대 대역폭(예에서bits/s로); PacketLossRatelnPercent :트래픽 히스토리에 기초한 패킷 손실의 퍼센트; 지연: 클라이언트와 콘텐츠 검색 노드 사이의 지연(즉, 스트리밍 서버/캐쉬)이다. milliseconds로 제공되는 이러한 예에서 지연은; 지터: 클라이언트와 콘텐츠 검색 노드(즉, 스트리밍 서버/캐쉬) 사이에서 milliseconds 제공되는 지터이다.
일 실시 예에서, 구성 파라미터는 원하는 플레이-아웃 버퍼 구성(configuration)을 달성하기 위하여 ISO 표준 ISO/IEC 23001-6 에 정의된 MDP 파라미터 또는 MDP 파라미터들의 조합을 포함할 수 있다. 예를 들어, 최소 버퍼 사이즈 파라미터 "minBufferTime"(314, 318)은 버퍼에서 데이터의 플레이-아웃이 시작되기 전에 버퍼의 최소 사이즈(즉, 정상(regular) 모드에서 5초의 사이즈이고 저-지연 모드에서 1초 사이즈)를 설정하기 위한 구성 파라미터로 사용될 수 있다.
다른 실시 예에서, 구성 파라미터는 제안된 프레젠테이션 지연 파라미터(suggestedPresentationDelay)(316,320)를 포함할 수 있다. 이러한 파라미터는 매니페스트 파일에 표시된 대로 미리 설정된 세그먼트의 플레이-아웃 시간의 정점(top)에서 플레이-아웃 지연을 유도하도록 HAS 클라이언트를 구성하기 위해 사용될 수 있다. 예를 들어, 매니페스트 파일에서의 정보가 세그먼트는 12: 10 에 플레이-아웃 되어야 하고 제안된 프레젠테이션 파라미터(suggestedPresentationDelay)는 00:10 로 설정될 경우, 세그먼트는 10 초 후, 즉12:20 에 플레이-아웃 될 것이다.
또 다른 실시 예에서, 구성 파라미터는 세그먼트 요청 기능이 스트리밍 서버로부터 요청할 매니페스트 파일에서 식별된 세그먼트로부터 제1 세그먼트를 결정하기 위하여 세그먼트 시작 파라미터(segmentStartOffset)(324,326)를 포함할 수 있다.
이 파라미터는 클라이언트가 라이브 스트리밍 이벤트에 참여할 때 콘텐츠 소스에 의하여 이용 가능하게 되는 현재의 세그먼트에 대하여 오프셋(offset)을 정의할 수 있다. 예를 들면, 서버 시스템에서 스트리밍 서버가 현재 세그먼트(1000)를 생성했을 것이다. 그러나, 클라이언트가 현재 세그먼트(1000)에 기초하여 플레이-아웃을 시작하면, 세그먼트(1001는 아직 이용할 수 없으므로 충분한 사이즈의 버퍼를 만들 수 없다. 이것은 클라이언트가 제때에 세그먼트(1001)를 수신할 것이라고 보장받을 수 없는 그런 경우에 이것은 낮은 또는 중간 정도의 QoS 레벨을 가진 네트워크에서 문제를 야기시킬 수 있다.
그러한 문제에 대처하기 위하여, 파라미터(segmentStartOffset)를 설정할 수 있다. 이 파라미터를 1, 2또는 3에 각각 설정하면, 세그먼트 요청 기능은 세그먼트(999, 998 또는 997)에 기초하여 즉, 사용자가 라이브 스트리밍 이벤트에 참여했을 때 소스에서 이용할 수 있었던 현재의 세그먼트(1000)보다 더 먼저 발생된 세그먼트에 기초하여 플레이-아웃을 시작할 것을 결정할 것이다.
예를 들어, 도3에서 일반(regular) 모드는 HAS클라이언트가 스트리밍 세션에 참여하는 즉시 스트리밍 서버에 의해 이용 가능하게 되는 세그먼트 보다 3 개의 세그먼트가 지연되는 제 1 세그먼트와 연관되고, 저-지연 모드는 HAS 클라이언트가 스트리밍 이벤트에 참여하는 즉시 스트리밍 소스에 의해 이용 가능하게 되는 세그먼트보다 1개의 세그먼트가 지연되는 제 1 세그먼트와 연관된다. 품질 매트릭스가 스트리밍 경로가 낮은 QoS(비-관리) 네트워크와 관련된 것으로 표시할 때, 충분하지 않은 데이터(세그먼트)가 플레이-아웃 버퍼에 의하여 버퍼 될 수 있는 위험을 감소시키기 위하여 일반 모드가 선택될 수 있다. 품질 매트릭스가 스트리밍 경로가 높은 QoS(관리되는) 네트워크와 관련된 것으로 표시할 때, 스트리밍에서 지연을 가능한한 한 많이 감소시키기 위하여 저-지연 모드가 선택될 수 있다.
매니페스트 파일로 클라이언트에게 품질 매트릭스, QoS 정보 및/또는 구성 파라미터를 제공하는 대신에, 이 정보의 적어도 일부는 매니페스트 파일의 일부 대신에 분리된 통신 채널을 통해서 클라이언트에게 제공될 수 있다. 이러한 실시 예는 도 6-8을 참조하여 더 자세하게 후술될 것이다.
매니페스트 파일은 추가 정보를 포함할 수 있다. 예를 들어, 매니페스트 파일이 제때에 변화하지 않는 정적(static) 매니페스트 파일인지 또는 제때에 변화하는 동적(dynamic) 매니페스트 파일인지 여부를 표시하기 위한 매니페스트 유형 표시자(indicator, 302)를 포함할 수 있다. 예를 들어, 실시 예에서, 클라이언트는 미리 설정된 시간에, 즉 주기적으로, 새로이 업데이트된 매니페스트 파일 또는 스트리밍 경로와 관련된 새롭게 업데이트된 정보를 포함하는 클라이언트의 매니페스트 파일을 업데이트 하기 위한 매니페스트 파일 업데이트를 수신할 수 있다. 이 방법으로, HAS 클라이언트는 스트리밍 경로의 QoS 레벨에서의 변화에 대응하도록 설정될 수 있다.
매니페스트 파일은 또한 세그먼트 프레젠테이션 듀레이션 파라미터 (mediaPresentationDuriation)(304), 즉, 콘텐츠 스트림의 길이(초로=in seconds), 세그먼트 위치 정보(322), 즉, 콘텐츠가 검색 될 수 있는 장소를 표시하는 하나 이상의 URLs, 및 미디어 메터데이터, 즉, HAS 파일의 유형, 즉, MPEG-DASH 및/또는 서비스의 유형, 즉, VoD 서비스의 2011 버전을 표시하는 프로파일 파라미터(308)를 포함할 수 있다.
도 4는 본 발명 실시 예에 따른 매니페스트 파일을 업데이트하기 위한 프로세스를 도시한 것이다. 프로세스는 콘텐츠 제공자의 웹사이트를 통해서 라이브 스트리밍 이벤트에 참여하기 위하여 소비자가 돈을 지불하는 것으로 시작할 수 있다. 액세스 권리를 얻은 후, 소비자는 -제때에 어떤 지점에서- 사용자 인터페이스를 통해 클라이언트에게 라이브 스트리밍 이벤트에 참여하라고 지시할 수(즉, 플레이 버튼을 누름으로)있다. 이 경우에, 클라이언트는 서버 시스템으로부터 매니페스트 파일을 요구할 수 있다. 예를 들어, 그것은 스트리밍 이벤트, 즉 HTTP GET 메시지와 관련된 매니페스트 파일에 대한 요청 메시지를 서버 시스템으로 전송할 수 있다(단계 402). 이 경우, 요청 메시지는 스트리밍 서비스를 요청하는 클라이언트를 식별하기 위해, 예를 들어, 매니페스트 파일의 이름과 클라이언트 식별자(즉, IP주소및/또는 장치 식별자 및/또는 HTTP, TCP 또는 IP 헤더로부터의 임의의 다른 정보)를 사용할 수 있다.
요청 메시지를 수신한 후, 서버 시스템은 스트리밍 경로와 관련된 QOS 정보에 대해 클라이언트 식별자에 기초하여 조회할 수 있다(단계 404). 데이터 베이스는 QoS 클라이언트 프로파일을 찾을 수 있고(단계406)-프로파일을 찾을 경우- 품질 매트릭스에 기초하여 QoS정보를 결정하고 정보를 서버 시스템에 보낼 수 있다(단계 408). 서버 시스템은 매니페스트 저장소로부터 (라이브) 스트리밍 이벤트와 관련된 매니페스트 파일을 검색할 수 있고 파일 QoS 정보를 매니페스트 파일에 삽입함에 의하여 그것을 변경할 수 있다. 이러한 방식으로 클라이언트에 대해 특정된 QoS 정보를 포함하고 콘텐츠 처리 장치의 최적 환경설정을 제공하는 클라이언트에 국한된(client-specific) 매니페스트 파일이 생성된다(단계410).
도 1-3을 참조하여 자세하게 이미 기술된 바와 같이, 다양한 유형의 정보(품질 매트릭스, QoS 정보 및/또는 구성 파라미터)는 스트리밍 경로와 관련된 품질 매트릭스에 기초하여 그것을 설정하기 위하여 콘텐츠 처리 장치로 전송된다. 따라서, 도4-9를 참조하여 기술된 실시 예들이 QoS 정보의 사용에 기초하여 기술되었지만, 이러한 예들도 또한 품질 메트릭스, 서비스 품질 정보 및/구성 파라미터의 사용을 포함할 것을 제안하였다.
QoS 정보를 포함하는 매니페스트 파일은 클라이언트에게 전송된다(단계412). 일 실시 예에서, 매니페스트 파일은 HTTP응답 메시지로 클라이언트에게 전송될 수 있으며, 그것은 매니페스트 파일의 정보를 해석(parse)할 수 있고(단계414), 구성 모듈로(클라이언트 일 수 있는) QoS정보를 보낼 수 있다(단계416). 게다가, 반드시는 아니지만, 매니페스트 파일은 구성 파라미터들을 포함할 수 있고, 이것들은 또한 (예를 들어, 구성 모듈이 아직 이것들을 갖고 있지 않은 경우) 구성 모듈로 보내질 수 있다. 구성 모듈은 플레이-아웃 버퍼를 설정하기 위하여 QoS 정보를 사용할 수 있다(단계 418). 따라서, 매니페스트 파일의 스트리밍 경로 및/또는 콘텐츠 및/또는 클라이언트에 국한된(client-specific) QoS 정보는 플레이-아웃 버퍼 사이즈를 스타트-업 지연이 최소화되는 사이즈로 설정하는데 사용될 수 있다.
이 방식으로 (라이브) 스트리밍 이벤트에 참여하는 HAS 클라이언트는 스트리밍 이벤트에서 다른 콘텐츠 처리 장치와 더 쉽게 동기화 될 수 있다.
도 5는 본 발명의 하나의 실시 예에 따른 클라이언트에게로 세그먼트의 저-지연 스트리밍을 가능하게 하기 위한 프로토콜 흐름도를 도시한 것이다. 프로세스는 도 4를 참조하여 기술된 유사한 방법으로 시작할 수 있다: 클라이언트가 라이브 스트리밍 이벤트에 참여하라는 명령을 받으면, 그것은 서버 시스템으로부터 매니페스트 파일을 요청할 수 있다(단계502). 요청을 수신하면, 서버 시스템은 스트리밍 경로와 관련된 QoS 정보를 포함하는 클라이언트에 국한된(client-specific) 매니페스트 파일을 생성할 수 있다(단계 504). 매니페스트 파일은 도 4를 참조하여 기술된 프로세스에 따라 생성될 수 있다.
QoS 정보를 포함하는 클라이언트에 국한된(client-specific) 매니페스트 파일은 클라이언트에게 전송될 수 있으며(단계 506), 그것은 매니페스트 파일의 정보(즉, QoS정보, 세그먼트 식별자, 세그먼트 위치 정보 및 세그먼트 플레이-아웃 정보)를 해석(parse)할 수 있다(단계508).
QoS 정보에 기초하여, 구성 모듈(클라이언트의 일부 일 수 있는)은 플레이-아웃 지연을 최소화하기 위하여 콘텐츠 처리 장치를 설정할 수 있다. 이를 위해, 구성 모듈은 미리 설정된 파라미터(segmentStartOffset)와 관련 될 수 있는 QoS 정보에 기초하여 클라이언트에 세그먼트 요청 기능을 설정할 수 있다(510 단계). 이러한 방식으로, 세그먼트 요구 기능은 스트리밍을 시작할 때 요청되어야 하는 제1 세그먼트를 결정할 수 있다. 대안적으로 또는 부가적으로, 구성 모듈은 미리 설정된 파라미터(minBufferTime)와 관련될 수 있는 QoS 정보를 사용하여 플레이-아웃 버퍼의 사이즈를 설정할 수 있다. 이 파라미터는 버퍼에 전송될 수 있고(단계 512), 그에 따라 버퍼를 설정할 수 있다(단계 514).
한편, 클라이언트는 서버 시스템으로부터 세그먼트를 요청하는 프로세스를 시작할 수 있다. 특히, 클라이언트는 위치 정보를 검색해야 할 제1 세그먼트(즉, segment_high-2.mp4)를 식별한 후, 즉, 제1 세그먼트와 관련된 URL이 검색 될 수 있고 HTTP 요청 메시지, 즉, HTTP GET 메시지는 그 위치(즉, HTTP 서버의 네트워크 주소)로 전송될 수 있다)(단계516). HTTP 서버는 요청된 세그먼트를 포함하는 HTTP 응답 메시지를 클라이언트에게 전송함으로써 요청에 응답 할 수 있고(단계 518), 그것은 세그먼트 데이터를 언팩(unpack)하고 디코딩하여 미디어 엔진과 연관된 플레이-버퍼에 디코딩된 데이터를 전송할 수 있다(단계520)
도 6은 본 발명의 다른 실시 예에 따른 콘텐츠 전달 시스템의 개략도를 도시한 것이다. 전달 시스템은 도1을 참조하여 기술된 콘텐츠 전달 시스템과 유사한 구성요소, 즉: 콘텐츠 처리 장치(606)의 적어도 하나의 (HAS) 클라이언트(604)에게 콘텐츠를 스트리밍하도록 구성된 서버 시스템(602)을 포함할 수 있다. 서버 시스템은 하나 이상의 콘텐츠 신호(608), 즉, (라이브) 비디오 및/또는 멀티미디어 신호를 수신하고, 세그먼트된 콘텐츠 스트림과 관련된 매니페스트 파일을 발생하기 위하여 콘텐츠 신호를 처리하도록 설정될 수 있으며, 그것들은 세그먼트 저장소(610)와 매니페스트 저장소(612)에 각각 저장될 수 있다.
(라이브) 스트리밍 이벤트에 참여할 때, 서버 시스템에서 (HTTP) 스트리밍 기능은 (HTTP) 네트워크 연결(614)을 통해서 클라이언트에게 스트리밍 이벤트와 관련된 매니페스트 파일을 전송할 수 있다. 매니페스트 파일은 클라이언트에게 (HTTP)네트워크 연결(스트리밍 경로)을 통해 세그먼트를 송신할 HTTP 스트리밍 기능으로부터 세그먼트를 요청하기 위하여 클라이언트에 의하여 사용될 수 있으며, 여기서 HTTP 스트리밍 기능은 HAS 프로토콜에 기초하여 클라이언트에게 세그먼트를 전달하도록 설정되어 있다. 스트리밍 동안에, 세그먼트들은 클라이언트의 수신 버퍼(618)에서 버퍼되며, 그것은 캡슐화(encapsulated)된 세그먼트(프레임)를 언팩(unpack)하고 디코딩을 위해 플레이-아웃 버퍼(620)에 언팩된(MPEG부호화된) 데이터를 배치하여 미디어 엔진(622)에 의해 플레이-아웃 할 수 있다.
변화하는 네트워크 상태(예를 들어, 스트리밍 경로를 통해 클라이언트에게 전송되는 데이터(세그먼트)에 의해 경험되는 지연)에 대응하여, 스트리밍 프로토콜은 클라이언트에게 세그먼트를 스트리밍 하는 동안 표현(rerpresentation)에 대한 다이나믹한 어댑테이션(dynamic adaptation)을 허용 할 수 있다.
콘텐츠 처리 장치는 QoS 정보에 기초하여 하나 이상의 환경 설정 파라미터(634,635)를 결정하기 위해 설정된 구성 모듈(626)을 포함한다. 일 실시 예에서, 하나 이상의 구성 파라미터는 플레이-아웃 버퍼의 사이즈 어댑팅에 사용될 수 있다. 이 방식으로 버퍼 사이즈는 스트리밍 경로(616)와 관련된 품질 매트릭스에 기초하여 제어할 수 있다. 또한 다른 실시 예에서, 하나 이상의 구성 파라미터(635)는 라이브 스트리밍 이벤트에 참여할 때 요청 되어야 할 제1 세그먼트를 결정하기 위하여 클라이언트의 세그먼트 요청 기능(625)에 의하여 사용 될 수 있다. 모니터링 시스템(628)은 하나 이상의 모니터링 에이전트로부터 품질 매트릭스를 수신할 수 있다. 장치 모니터링 에이전트(624)는 클라이언트(604), 수신 버퍼(618), 플레이아웃 버퍼(520) 및 미디어 엔진(622)으로부터 장치 품질 매트릭스를 수집하도록 설정될 수 있고 서버 시스템과 관련된 모니터링 시스템(628)으로 이러한 장치 품질 매트릭스를 전송하도록 설정될 수 있다.
네트워크 모니터링 에이전트는 네트워크로부터 품질 매트릭스를 수집하고 매트릭스와 특정 스트리밍 경로를 서로 관련시키도록 설정될 수 있다. 품질 매트릭스에 기초하여, 모니터링 시스템은 클라이언트와 스트리밍 서버 사이의 스트리밍 경로와 관련된 서비스 정보의 품질을 결정하고 품질 데이터베이스(632)(도1을 참조하여 기술된 유사한 방법으로)에 상기 품질 매트릭스를 저장할 수 있다. 충분한 데이터가 수집되면, 믿을 만한 품질 매트릭스는 데이터베이스의 QoS 클라이언트 프로파일에서 수집될 수 있다.
QoS 클라이언트 프로파일에서 품질 매트릭스는 플레이-아웃 버퍼를 특정 사이즈로 설정하기 위하여 및/또는 세그먼트 요청 기능을 설정하기 위하여 콘텐츠 처리 장치의 구성 모듈에 의하여 사용될 수 있고 그래서 플레이-아웃 지연이 감소된다.
이러한 특정 실시 예에서, QoS 정보(및/또는 품질 매트릭스 및/또는 구성 파라미터)는 매니페스트 파일에 기초하여 클라이언트에게 전송되지 않는다(도 3-5를 참조하여 상세하게 기술된 바와 같이). 대신에, 품질 데이터베이스(또는 품질 데이터베이스와 관련된 모니터 시스템)과 구성 모듈(또는 구성 모듈과 관련된 클라이언트) 사이에 분리된(양 방향) 통신 채널(636)이 설치되어 적어도 QoS 정보의 일부를 구성 모듈로 송신하는데 사용될 수 있다. 일 실시 예에서, 통신 채널은 클라이언트가 특정(라이브) 스트리밍 이벤트에 참여할 때 설정될 수 있다.
실시 예에서, (라이브) 스트리밍 이벤트에 참여할 때, 클라이언트는 위치 정보, 즉, 품질 데이터베이스의, 예를 들어 품질 매트릭스, QoS 정보 및/또는 스트리밍 경로와 관련된 구성 파라미터를 포함하는 QoS 클라이언트 프로파일을 포함할 수 있는 클라이언트 액세스-라인 품질 데이터베이스(CAQD)의, URL cacq.example.com/을 포함하는 매니페스트 파일을 수신할 수 있다.
그러한 매니페스트 파일의 실시 예는 도 7에 도시되어 있으며, 여기서 매니페스트 파일의 적어도 일부는 도 3을 참조하여 기술한 바와 같은 유사한 정보: 매니페스트 파일이 제때에 변화하지 않는 정적(static) 매니페스트 파일인지, 제때에 변화할 수 있는 다이나믹 매니페스트 파일 인지를 표시하기 위한 매니페스트 유형 표시자(702); 세그먼트 프리젠테이션 듀레이션 파라미터(mediaPresentationDuriation)(704), 세그먼트 위치 정보(720), 및 미디어 메타데이터, 예를 들어, 프로파일 파라미터(708)를 포함할 수 있다.
부가적으로, 매니페스트 파일은 위치 정보, 즉, QoS 정보 및/또는 품질 매트릭스 및/또는 구성 파라미터를 품질 데이터베이스로부터 요청하기 위하여 콘텐츠 처리 장치의 구성 모듈에 의해 사용될 수 있는 품질 데이터베이스의 URL caqd.example.com/ </CAQDLocation>를 포함할 수 있다.
다른 실시 예에서, 매니페스트 파일은 스트리밍 경로와 관련된 통신 채널, 특히 HAS 제어 채널을 설정하기 위한 채널 설정 정보(724,726)을 포함할 수 있다. 일 실시 예에서, 채널 설정 정보는 스트리밍 제어 기능을 포함하는 네트워크 노드에 관한 참조를 제공하는 채널 타겟 파라미터(724)를 포함할 수 있다. 또한 다른 실시 예에서, 채널 설정 정보는 채널 설정 파라미터(1402), 즉 스트리밍 제어 기능/제어 채널 서버 기능에 의해 사용되는 파라미터를 포함할 수 있다. 예를 들어, 웹 소켓(WebSocket) 파라미터의 경우에는 웹 소켓(WebSocket) 서브-프로토콜, 웹 소켓(WebSocket) 버전 등의 사용을 참조할 수 있다. HAS 제어 채널의 설정과 사용은 도 9를 참조하여 더 자세하게 기술된다.
도 8은 본 발명의 다른 실시 예에 따라 클라이언트에게 세그먼트를 전달하기 위한 프로세스를 도시한 것이다. 특히, 도 8은 도6과 도 7을 참조하여 기술한 바와 같이 콘텐츠 전달 시스템을 사용하여 클라이언트에게 세그먼트를 전달하기 위한 프로세스를 도시한 것이다. 프로세스는 클라이언트가 (라이브) 스트리밍 이벤트에 참여하는 것으로 시작할 수 있으며, 여기서 클라이언트는 즉, HTTP 응답 메시지를 사용하여, 서버 시스템으로부터 매니페스트 파일을 요청할 수 있고 및 -응답으로- 예를 들어, HTTP 응답 메시지(단계802,804)로 매니페스트 파일을 수신할 수 있다.
클라이언트는 매니페스트 파일을 해석(parse)하고 매니페스트 파일로부터 품질 데이터베이스와 관련된 위치 정보를 추출할 수 있다(단계 806). 위치 정보, 품질 데이터베이스의 URL은, 품질 데이터베이스와 구성 모듈(또는 구성모듈과 관련된 HAS 클라이언트) 사이에 (양-방향의) 통신 채널을 설정하기 위해 위치 정보를 사용할 수 있는 구성 모듈로 전달 될 수 있다(단계808). 통신 채널 개설 후, 구성 모듈은 QoS 정보, 특히 스트리밍 경로의 예상되는 QoS에 관한 정보를 위해 품질 데이터베이스에 조회할 수 있다(단계810). 구성 모듈은 응답으로 QoS 정보를 수신하고 구성 파라미터, 즉 미리 설정된 QoS 레벨, 즉 저- 지연 모드를 포함하는 QoS 에 기초하여, 구성 모듈에서 미리 설정된 구성 파라미터 를 결정하기 위하여 QoS 정보를 사용할 수 있다.
구성 모듈은 미디어 엔진과 관련된 플레이-아웃 버퍼를 설정하기 위한 하나 이상의 파라미터를 전송할 수 있다(단계 814). 또한 구성 모듈은 하나 이상의 구성 파라미터를 클라이언트의 세그먼트 요청 기능에 전송할 수 있으며(단계815), 그것은 파라미터를 사용하여 라이브 스트리밍 이벤트에 참여하는 즉시 어느(제 1) 세그먼트가 요청되어야 하는지 결정할 수 있다(단계816).
그런 후, HAS 클라이언트는 하나 이상의 제2 구성 파라미터에 기초하여 결정되는 제1 세그먼트를 요청하고 응답으로 요청된 세그먼트를 수신함에 의하여 스트리밍 프로세스를 시작할 수 있다(각각 단계 818 및 820).
도 9는 본 발명의 실시 예에 따른 콘텐츠 처리 장치(930)와 양방향 HAS 제어 채널을 설정하기 위한 서버 시스템(932) 사이의 프로토콜 흐름도를 도시한 것이다. 콘텐츠 처리 장치는 HAS 클라이언트(948)와 미디어 엔진(946)(도 1 및 도 6을 참조하여 기술된 것들과 유사하거나 또는 동일한)을 포함할 수 있다. 유사하게, 서버 시스템은 HAS 클라이언트로 콘텐츠를 스트리밍하기 위한 HTTP 스트리밍 기능(942)을 포함할 수 있고 클라이언트 QoS 프로파일(도 1 및 도 6을 참조하여 기술된 것들과 유사하거나 또는 동일한)을 포함하는 품질 데이터베이스와 연결된 모니터링 시스템(940)을 포함할 수 있다.
콘텐츠 처리 장치와 서버 시스템은 제어 채널 클라이언트 기능(CCCF)(944)와 제어 채널 서버 기능(CCSF), 예를 들어 CCSF 와 CCCF 사이에 스트리밍 제어 채널(936)을 설치하도록 설정된 HAS 제어 채널 서버 기능(934)을 각각 더 포함할 수 있다. 여기서, 스트리밍 제어 채널은 클라이언트와 서버 사이 스트리밍 제어 정보를 교환하기 위해 사용될 수 있다. 특히, 스트리밍 제어 채널은 클라이언트에게 세그먼트된 콘텐츠(938)를 스트리밍하는 동안 서버 시스템으로부터 비롯된 스트리밍 제어 정보를 클라이언트에게 전송하기 위해 사용 될 수 있다. 예를 들어, 일 실시 예에서, 스트리밍 제어 채널은 서버 시스템으로부터 CCCF로 업데이트 매니페스트 트리거를 전송하기 위해 사용될 수 있어서 클라이언트는 매니페스트 파일의 요청을 서버 시스템으로 전송할 것이다.
여기서, 프로세서는 다른 프로세스, 즉 라이브 스트리밍 이벤트(단계 900)를 참조하여 앞서 기술된 바와 유사하게 시작할 수 있다. 클라이언트는 서버 시스템으로부터 매니페스트 파일을 얻기 위하여 HTTP GET 요청을 전송할 수 있고, 그것은 클라이언트에게 매니페스트 파일을 전송함으로써 요청에 응답할 수 있다(단계 902,904).
서버에서 CCSF는 클라이언트의 CCFT와 서버의 CCSF에 스트리밍 제어 채널을 설정하도록 허용하는 채널 설정 정보를 매니페스트 파일에 삽입하도록 설정된다. 따라서, 매니페스트 파일을 해석하는 동안(단계 906), 채널 설정 정보는 매니페스트 파일에서 추출 될 수 있으며(즉, 도 7 참조) 서버-투-클라이언트 스트리밍 제어 채널을 설정하기 위해 서버의 CCSF로 채널 설정 요청을 전송하기 위해 콘텐츠 처리 장치의 CCCF에 의해 사용될 수 있다(단계908).
일 실시 예에서, CCCF 와 CCSF는 클라이언트와 서버 사이에 스트리밍 제어 채널을 설정하기 위해 웹 소켓 프로토콜 및 채널 설정 정보를 사용하도록 구성된 HTTP 웹소켓 API를 포함한다. 웹소켓 연결은 데이터가 방화벽과 NATs를 쉽게 전송할 수 있도록 일반적으로 표준 HTTP 포트(80 및 443)을 사용하나, 또한 다른 포트들도 사용될 수 있다.
웹소켓 프로토콜의 사용은 CDN과 HAS의 컨텍스트(context) 내에서, 예를 들어 확장성을 위한 낮은 메시지 오버 헤드, 프로토콜 수렴 및 방화벽의 통과를 위한 HTTP의 사용, 및 다른 프로토콜의 터널링에 대한 가능성등과 같은 여러 가지 장점을 가진다. 다른 실시 예에서, 세션 개시 프로토콜(SIP)(http://tools.ietf.org/html/rfc3261)이 사용될 수 있고, 여기서 클라이언트는 SIP 사용자 에이전트를 포함 할 수 있으며 서버는 SIP 애플리케이션 서버이다.
또 다른 실시 예에서, 확장 가능한 메시징(Extensible Messaging) 및 프레젠스 프로토콜 (XMPP)(http://www.ietf.org/rfc/ rfc3920.txt)이 사용되고, 여기서 클라이언트는 XMPP 클라이언트를 포함 할 수 있으며 서버는 XMPP 서버이다. SIP 및 XMPP 프로토콜 메시지는 둘 다 draft-ibc-rtcweb-sip-websocket-00 및 draft-moffitt-xmpp-over-websocket-00를 따라 웹 소켓을 통해 터널링 될 수 있다.
스트리밍 제어 채널을 설정하는 동안, 채널 파라미터는 CCCF 와 CCSF사이에 교환될 수 있다(단계910). 또한, 클라이언트로부터 비롯되는 메시지를 취급하기 위하여, CCSF는 전용 채널 처리 프로세스(스래드) 를 생성할 수 있다(단계 912). 일단 스트리밍 제어 채널이 설치되면(단계914), 클라이언트는 매니페스트 파일에서 식별된 스트리밍 세그먼트의 처리를 시작할 수 있다. 스트리밍 프로세스는 HAS 유형 스트리밍 프로토콜에 기초할 수 있고, 제1 세그먼트(segment_low-1.avi와 관련된 URL을 포함하는 HTTP GET 요청으로 시작할 수 있다)(단계 916). 일단 제1 세그먼트의 전달이 HTTP 200 OK 응답에 의하여 확인되면(단계918), 클라이언트는 후속 세그먼트(segment_high-2.avi를 요청할 수 있다)(단계 920,922).
그리고 나서, 서버 시스템에서 CCSF는 클라이언트가 그것의 매니페스트 파일을 갱신하는 것이 필요하다는 것을 결정할 수 있다. 예를 들어, CCSF는 모니터링 시스템으로부터 스트리밍 경로의 QoS 레벨이 상당히 변경되어서 플레이-아웃 버퍼의 사이즈의 변경이 요구 될 수 있다는 메시지를 수신했을 수 있다. 그것은 그러므로 스트리밍 제어 채널을 통해 매니페스트 업데이트 신호를 전송할 수 있다(단계 924). 일 실시 예에서, 업데이터 신호는 새로운 QoS 정보를 포함하는 새로운 매니페스트 파일을 가리키는 URL을 포함할 수 있다. 일단 매니페스트 파일 업데이트 신호를 수신하면, CCCF는 새로운 매니페스트 파일을 요청할 수 있다. 새로운 QoS 정보를 포함하는 새로운 매니페스트 파일을 수신하는 즉시, 클라이언트는 구성 모듈로 QoS 정보를 전송할 수 있고, 그것은 이어서 수신된 QoS 정보에 기초하여 플레이-아웃 버퍼를 재설정한다. 재설정된 플레이-아웃 버퍼를 기초로 클라이언트에게로 세그먼트의 스트리밍은 계속된다. 동일한 방법으로, 세그먼트 요청 기능은 QoS 정보에 기초하여 재설정될 수 있다.
다른 실시 예에서, 매니페스트 파일로 QoS 정보를 클라이언트에게 전송하는 대신에, (적어도 일부의) QoS 정보는 HAS 컨트롤 체널을 통해서 클라이언트에게로 전송될 수 있다.
일 실시 예에서, 매니페스트 파일로 채널 설정 정보를 전달하는 대신에, 채널 설정 정보는 터미널에 미리 설정될 수 있거나 다른 (네트워크) 소스로부터 분리된 통신 채널을 통해서 검색될 수 있다. 그러한 경우에, 클라이언트가 매니페스트 파일을 수신하면, 그것은 도 9를 참조하여 설명한 바와 같이 스트리밍 컨트롤 채널을 설정하기 위해 상기 채널 설정 정보를 검색하는 제어 채널 스트리밍 클라이언트 기능을 트리거한다(단계908-914).
다른 실시 예에서, 서버 시스템은 다수의 클라이언트에게 세그먼트를 스트림하도록 설정될 수 있으며, 여기서 각 클라이언트는 도 9를 참조하여 기술된 바와 같이 네트워크-개시(network-initiated) - 즉, 서버-개시(server-initiated) - 를 동작시키기 위하여 자체 스트리밍 컨트롤 채널과 연관되어 있다. 이러한 방식으로, 서버 시스템은 품질 데이터베이스에 저장된 품질 매트릭스에 기초하여 다수의 클라이언트에게 세그먼트된 콘텐츠의 스트리밍을 제어할 수 있다. 서버 시스템과 관련된 모니터링 시스템(940)이 네트워크의 QoS에서 변화를 검출하면, 그것은 CCSF에게 매니페스트 파일 업데이트를 개시하도록 신호를 보낼 수 있고 여기서 (적어도 일부의) HAS 클라이언트에게 플레이-아웃 버퍼를 적절한 사이즈로 재설정하는데 사용될 수 있는 새로운 QoS 정보를 포함하는 새로운 매니페스트 파일이 제공된다.
도면은 본 발명의 비-제한적 예를 도시하고 이 도면들을 참조하여 설명된 실시 예들은 본 발명을 벗어나지 않고 서로 결합될 수 있음을 제시하였다. 예를 들어, 실시 예에서, QoS 정보의 제1 부분, 품질 메트릭스 및/또는 구성 파라미터는 매니페스트 파일을 사용하여(도 1-4에서 기술된 바와 같이) 콘텐츠 처리 장치로 전송될 수 있고 QoS 정보의 다른 부분, 품질 메트릭스 및/또는 구성 파라미터는 분리된 통신 채널(도6-9를 참조하여 기술된)을 통해서 전송될 수 있다. 따라서, 그러한 경우에, 매니페스트 파일은 두 QoS 정보, 품질 매트릭스 및/또는 구성 파라미터(도 3을 참조하여 기술된), 위치 정보, 즉 스트림 경로의 QoS클라이언트 프로파일을 포함하는 품질 데이터베이스와 관련된 URL; 및/또는 HAS 컨트롤 채널을 설정하기 위한 채널 설정 정보(도7을 참조하여 기술된) 를 포함할 수 있다.
도 14는 실시 예를 기술한 것이며 여기서 HAS 클라이언트, 바람직하게는 HAS 클라이언트(장치)의 구성 모듈은 ALTO 클라이언트 기능을 포함하고 QoS 정보에 대해 네트워크의 ALTO 서버/데이터베이스에 조회하기 위하여(1410) ALTO 프로토콜을 사용한다. ALTO 서버 기능성(functionality)을 포함하는 ALTO 서버/데이터베이스는 상기 QoS 정보를 포함하여, 응답(1412)을 제공할 수 있다. 수신된 QoS 정보에 기초하여, 플레이-아웃 버퍼(파라미터)는 (재) 설정될 수 있다.
또한, 도면에서 실시 예들은 플레이-아웃 버퍼의 환경설정을 참조하여 기술된 반면에, 본 발명은 플레이-아웃 지연에 기여하는 콘텐츠 처리 장치(즉, 수신 버퍼, 디코딩 버퍼 등)에서 임의의 유형의 버퍼에 적용될 수 있다.
임의의 일 실시 예와 관련하여 설명된 임의의 특징은 단독으로, 또는 기술된 다른 특징들과의 조합으로 사용될 수 있고, 및 임의의 다른 실시 예들의 하나 이상의 특징과의 조합으로, 또는 임의의 다른 실시 예들의 임의의 조합으로 사용될 수 있음을 이해해야 한다. 본 발명의 일 실시 예는 컴퓨터 시스템과 함께 사용하기 위한 프로그램 제품으로 구현될 수 있다.
프로그램 제품의 프로그램은 실시 예의 기능(여기서 기술된 방법을 포함하여)을 정의하고 컴퓨터 판독 가능한 다양한 저장 매체에 포함될 수 있다. 예시적 컴퓨터 판독 가능 저장 매체는 다음을 포함할 수 있으나, 그에 국한되지는 않는다: (ⅰ)정보가 영구적으로 저장되는 기록 불가능한 저장 매체(즉, CD-ROM 드라이브에 의해 판독 가능한 CD-ROM 디스크 같은 컴퓨터 내의 판독 전용 메모리 장치, 플래시 메모리, ROM 칩 또는 임의의 유형의 고체-상태 비-휘발성 반도체 메모리) ; (ii) 변경 가능한 정보가 저장되는 기록 가능한 저장 매체(즉, 디스켓 드라이브 내의 플로피 디스크 또는 하드 디스크 드라이브 또는 임의의 유형의 고체-상태 랜덤-액세스 반도체 메모리)를 포함한다. 본 발명은 위에서 설명한 실시 예에 한정되지 않으며, 첨부된 청구 범위 내에서 변경 될 수 있다.

Claims (16)

  1. 콘텐츠 처리 장치(106)에서 네트워크를 경유하여 HTTP-기반 적응형 클라이언트(104)에게 세그먼트의 저-지연 스트리밍을 가능하게 하는 방법에 있어서,
    클라이언트는 매니페스트 파일에 기초하여 서버 시스템으로부터 세그먼트를 요청하고 수신하도록 설정되고(configurated), 상기 방법은:
    상기 네트워크에서 모니터링 시스템(128)이 상기 클라이언트와 상기 서버 시스템에서 하나 이상의 스트리밍 서버들 사이의 하나 이상의 스트림 경로와 관련된 품질 매트릭스를 수집하고 상기 네트워크의 품질 데이터베이스(132)에 상기 품질 매트릭스를 저장하는 단계; 및
    저장된 품질 매트릭스의 적어도 일부 또는 상기 저장된 품질 매트릭스의 적어도 일부에 기초하여 결정된 서비스 정보의 품질을 가진 콘텐츠 처리 장치를 제공하는 단계, 및
    상기 콘텐츠 처리 장치에서의 구성 모듈이 상기 품질 매트릭스 또는 상기 서비스 정보 품질의 적어도 일부에 기초하여, 버퍼와 상기 콘텐츠 처리 장치에서 세그먼트 요청 기능 중 적어도 하나를 구성하는 단계를 포함함을 특징으로 하는 저-지연 스트리밍을 가능하게 하는 방법.
  2. 청구항 1에 있어서,
    품질 매트릭스의 상기 적어도 일부에 기초하여, 상기 구성 모듈에 대한 상기 하나 이상의 구성(configuration) 파라미터를 결정하는 단계를 포함하고, 상기 하나 이상의 구성 파라미터들은:
    상기 버퍼에서 데이터의 플레이-아웃이 개시되기 전에 버퍼의 사이즈를 결정하기 위한, 적어도 하나의 버퍼 사이즈 파라미터 및 세그먼트 요청 기능이 상기 스트리밍 서버로부터 요청할 상기 매니페스트 파일에서 식별된 세그먼트들로부터 선택된 제1 세그먼트를 결정하기 위한 적어도 하나의 세그먼트 요청 파라미터 중 하나를 포함함을 특징으로 하는 저-지연 스트리밍을 가능하게 하는 방법.
  3. 청구항 1 또는 청구항 2에 있어서,
    상기 품질 매트릭스를 기초로 상기 서비스 정보의 품질을 결정하는 단계와 상기 서비스 정보의 품질은 하나 이상의 QoS 레벨을 정의하는 단계를 포함하되, 상기 하나 이상의 QoS 레벨은 적어도 저-지연 모드에서 클라이언트를 설정하기 위한 하나 이상의 (미리 설정된) 구성 파라미터와 관련된 저-지연 레벨과 고-지연 모드에서 클라이언트를 설정하기 위한 하나 이상의 구성 파라미터와 관련된 고-지연 레벨을 포함함을 특징으로 하는 저-지연 스트리밍을 가능하게 하는 방법.
  4. 청구항 1 또는 청구항 2에 있어서,
    상기 서비스 정보의 품질의 적어도 일부는 상기 모니터링 시스템에 의해 결정되고 상기 품질 데이터베이스에 저장됨을 특징으로 하는 저-지연 스트리밍을 가능하게 하는 방법.
  5. 청구항 1 또는 청구항 2에 있어서,
    상기 제공 단계는 상기 품질 매트릭스의 적어도 일부와 상기 서비스 정보의 품질 중 적어도 하나를 상기 콘텐츠 처리 장치로 전송하는 단계를 포함함을 특징으로 하는 저-지연 스트리밍을 가능하게 하는 방법.
  6. 청구항 5에 있어서,
    상기 제공 단계는:
    상기 서버 시스템으로부터 매니페스트 파일의 적어도 일부 또는 매니페스트 파일 업데이트를 클라이언트에게 요청하는 단계;
    상기 품질 데이터베이스로부터 상기 품질 매트릭스의 적어도 일부 또는 상기 서비스 정보의 품질을 상기 서버 시스템에서 검색하고 상기 품질 매트릭스의 적어도 일부 또는 상기 서비스 정보의 품질을 포함하는 매니페스트 파일을 클라이언트에게 전송하는 단계를 포함함을 특징으로 하는 저-지연 스트리밍을 가능하게 하는 방법.
  7. 청구항 5에 있어서,
    상기 품질 매트릭스의 적어도 일부 또는 상기 서비스 정보의 품질은 HTTP 기반 적응형 스트리밍(HAS) 제어 채널을 통해서 상기 클라이언트에게 전송됨을 특징으로 하는 저-지연 스트리밍을 가능하게 하는 방법.
  8. 청구항 7에 있어서,
    상기 서버 시스템과 상기 클라이언트 사이의 양 방향 스트리밍 제어 채널, 웹 소켓-기반 스트리밍 제어 채널인 상기 스트리밍 제어 채널을 설정하기 위한 채널 설정 정보를 상기 클라이언트에게 제공하는 단계:
    상기 채널 설정 정보에 기초하여 양 방향 스트리밍 제어 채널을 설정하는 단계를 포함함을 특징으로 하는 저- 지연 스트리밍을 가능하게 하는 방법.
  9. 청구항 1 또는 청구항 2에 있어서,
    상기 콘텐츠 처리 장치와 관련된 제1 매트릭스를 수집하는 상기 콘텐츠 처리 장치에서 제1 모니터링 에이전트 및 상기 네트워크의 적어도 일부와 관련된 제2 매트릭스를 수집하는 상기 네트워크에서 제2 모니터링 에이전트 중 적어도 하나를 포함하며;
    상기 제1 및 제2 매트릭스 중 적어도 하나에 기초하여 상기 모니터링 시스템이 상기 서버 시스템에서 하나 이상 스트리밍 서버와 상기 클라이언트 사이의 하나 이상 스트리밍 경로와 관련된 품질 매트릭스를 결정하는 단계; 및 상기 품질 데이터베이스에 상기 품질 매트릭스를 저장하는 단계를 포함함을 특징으로 하는 저-지연 스트리밍을 가능하게 하는 방법.
  10. 적어도 하나의 네트워크를 통해서 콘텐츠 처리 장치로 저-지연 스트리밍을 가능하게 하는 콘텐츠 전달 시스템에 있어서,
    상기 콘텐츠 전달 시스템은:
    HTTP-기반 적응형 스트리밍 클라이언트를 포함하는 콘텐츠 처리 장치를 포함하고, 클라이언트는 매니페스트 파일에 기초하여 하나 이상의 스트리밍 서버로부터 세그먼트를 요청하고 수신하도록 구성되며;
    저장된 품질 매트릭스의 적어도 일부 또는 상기 저장된 품질 매트릭스의 적어도 일부에 기초하여 결정된 서비스 정보의 품질을 제공받도록 추가로 구성된 상기 콘텐츠 처리 장치와,
    상기 클라이언트와 상기 하나 이상의 스트리밍 서버 사이의 하나 이상의 경로와 관련된 품질 매트릭스를 수집하고 상기 네트워크의 품질 데이터 베이스에 품질 매트릭스를 저장하도록 구성된 모니터링 시스템; 및
    상기 콘텐츠 처리 장치에서 버퍼를 구성하고; 및 상기 품질 매트릭스의 적어도 일부 또는 상기 서비스 정보의 품질에 기초하여 상기 콘텐츠 처리 장치에서 세그먼트 요청 기능을 구성하기 위한 상기 콘텐츠 처리 장치에서의 구성 모듈을 포함함을 특징으로 하는 저-지연 스트리밍을 가능하게 하는 콘텐츠 전달 시스템.
  11. 구성 모듈을 포함하는 콘텐츠 처리 장치에 있어서,
    상기 콘텐츠 처리 장치에서 HTTP-기반 적응형 스트리밍 클라이언트에게 저-지연 스트리밍을 가능하도록 하는 구성 모듈을 포함하며, 클라이언트는 매니페스트 파일에 기초하여 서버 시스템에서 하나 이상의 스트리밍 서버로부터 세그먼트들을 요청하고 수신하도록 구성되며(configured), 상기 구성 모듈은 추가로:
    상기 콘텐츠 처리 장치에서 버퍼와, 품질 매트릭스와 상기 품질 매트릭스의 적어도 일부에 기초하여 결정된 서비스 정보의 품질 중 적어도 하나에 기초한 상기 콘텐츠 처리 장치에서 세그먼트 요청 기능 중 적어도 하나를 구성하며, 상기 품질 매트릭스는 상기 클라이언트와 상기 서버 시스템에서 하나 이상의 스트리밍 서버 사이의 하나 이상의 스트리밍 경로와 관련되고, 상기 품질 매트릭스는 네트워크 상의 모니터링 시스템에서 수집되고 상기 네트워크의 품질 데이터베이스에 저장되는 구성 모듈을 포함하는 콘텐츠 처리 장치.
  12. 청구항 11에 있어서,
    상기 버퍼는 상기 버퍼에서 데이터의 플레이-아웃이 개시되기(stated) 전에 버퍼의 사이즈를 결정하기 위해 하나 이상의 구성 파라미터에 기초하여 구성되며; 및
    상기 세그먼트 요청 기능은 세그먼트 요청 기능이 상기 스트리밍 서버로부터 요청할 상기 매니페스트 파일에서 식별된 세그먼트로부터 선택된 제1 세그먼트를 결정하기 위한 하나 이상의 구성 파라미터에 기초하여 구성되는 구성 모듈을 포함하는 콘텐츠 처리 장치.
  13. 청구항 11에 있어서,
    상기 세그먼트 요청 기능은 세그먼트 요청 기능이 상기 스트리밍 서버로부터 요청할 상기 매니페스트 파일에서 식별된 세그먼트로부터 선택된 제1 세그먼트를 결정하기 위한 하나 이상의 구성 파라미터에 기초하여 구성되는 구성 모듈을 포함하는 콘텐츠 처리 장치.
  14. 콘텐츠 처리 장치에서 HTTP-기반 스트리밍 클라이언트와 스트리밍 서버 사이의 네트워크에서 스트리밍 경로와 관련된 품질 매트릭스를 모니터링 하기 위한 모니터링 시스템에 있어서, 상기 모니터링 시스템은;
    상기 콘텐츠 처리 장치와 관련된 장치 매트릭스와 하나 이상 모니터링 에이전트로부터 네트워크의 적어도 일부와 관련된 네트워크 매트릭스를 수집하기 위한 수단;
    상기 콘텐츠 처리 장치와 네트워크 매트릭스에 기초하여 스트리밍 경로와 관련된 품질 매트릭스를 결정하기 위한 수단;
    품질 매트릭스 적어도 일부에 기초한 상기 콘텐츠 처리 장치에서 구성 모듈에 대한 하나 이상의 구성 파라미터를 결정하기 위한 수단을 포함하며, 상기 하나 이상의 구성 파라미터는: 버퍼에서 데이터의 플레이-아웃이 개시되기 전에 버퍼 사이즈를 결정하기 위한 적어도 하나의 버퍼 사이즈 파라미터 및 세그먼트 요청 기능이 상기 스트리밍 서버로부터 요청할 매니페스트 파일에서 식별된 세그먼트로부터 선택된 제1 세그먼트를 결정하기 위한 적어도 하나의 세그먼트 요청 파라미터 중 하나를 포함함을 특징으로 하는 품질 매트릭스를 모니터링 하기 위한 모니터링 시스템.
  15. 콘텐츠 처리 장치에서 클라이언트가 사용하기 위한 매니페스트 파일이 존재하는 데이터 구조를 가진 컴퓨터 프로그램이 저장된 기록 매체에 있어서, 클라이언트는 상기 매니페스트 파일에 기초하여 적어도 하나의 서버로부터 세그먼트들을 요청하고 수신하도록 구성되며, 상기 데이터 구조는 상기 클라이언트에게 저-지연 스트리밍을 가능하게 하며, 또한 상기 데이터 구조는 하나 이상의 세그먼트 식별자와 세그먼트 플레이-아웃 정보를 포함하고; 및 상기 데이터 구조는 추가로: 품질 매트릭스 및 상기 클라이언트와 스트리밍 서버 사이의 스트리밍 경로와 관련된 하나 이상 QoS 레벨을 포함하는 서비스 정보의 품질 중 적어도 하나, 상기 품질 매트릭스 및 버퍼와 상기 콘텐츠 처리 장치에서 세그먼트 요청 기능 중 적어도 하나에 대한 하나 이상의 구성 파라미터를 결정하기 위하여 상기 클라이언트와 관련된 구성 모듈을 가능하게 하는 상기 서비스 정보의 품질 중 적어도 하나를 포함하는 데이터 구조를 가진 컴퓨터 프로그램을 저장하는 기록 매체.
  16. 컴퓨터 판독 가능한 기록 매체에 있어서,
    상기 컴퓨터 판독 가능한 기록 매체는 컴퓨터의 메모리 상에서 실행되면, 청구항 1 또는 청구항 2에 따른 방법의 단계를 실행하도록 설정된 소프트웨어 코드를 포함함을 특징으로 하는 컴퓨터 판독 가능한 기록 매체.
KR1020157019480A 2012-12-21 2013-12-30 저 지연 스트리밍 KR101803621B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP12198896 2012-12-21
EP12198896.8 2012-12-21
EP13177087.7 2013-07-18
EP13177087 2013-07-18
PCT/EP2013/078126 WO2014096463A1 (en) 2012-12-21 2013-12-30 Low-latency streaming

Publications (2)

Publication Number Publication Date
KR20150120951A KR20150120951A (ko) 2015-10-28
KR101803621B1 true KR101803621B1 (ko) 2017-12-28

Family

ID=49885290

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157019480A KR101803621B1 (ko) 2012-12-21 2013-12-30 저 지연 스트리밍

Country Status (5)

Country Link
US (1) US10439910B2 (ko)
EP (1) EP2936742B1 (ko)
KR (1) KR101803621B1 (ko)
CN (1) CN105264826B (ko)
WO (1) WO2014096463A1 (ko)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9613042B1 (en) 2012-04-09 2017-04-04 Conviva Inc. Dynamic generation of video manifest files
US10182096B1 (en) 2012-09-05 2019-01-15 Conviva Inc. Virtual resource locator
US9246965B1 (en) 2012-09-05 2016-01-26 Conviva Inc. Source assignment based on network partitioning
US9565139B2 (en) * 2013-03-15 2017-02-07 Comcast Cable Communications, Llc Remote latency adjustment
JP6354153B2 (ja) * 2013-12-24 2018-07-11 株式会社リコー 情報処理システム、画像形成装置、情報処理方法および情報処理プログラム
KR102154800B1 (ko) * 2014-01-10 2020-09-10 삼성전자주식회사 전자 장치의 데이터 스트리밍 방법 및 그 전자 장치
US20150350289A1 (en) * 2014-05-30 2015-12-03 Paladin Innovators Methods & Systems for Transmission of High Resolution & Low Latency Data
US9712584B2 (en) * 2014-06-02 2017-07-18 Sony Corporation Context-based adaptive streaming algorithm for a user device
US9704477B2 (en) * 2014-09-05 2017-07-11 General Motors Llc Text-to-speech processing based on network quality
US10148713B2 (en) * 2014-10-21 2018-12-04 Adobe Systems Incorporated Live manifest update
FR3029376B1 (fr) * 2014-11-28 2016-12-30 B<>Com Procede de traitement d'une requete de livraison de donnees, dispositif, module proxy, terminal client et programme d'ordinateur associes
US10178043B1 (en) * 2014-12-08 2019-01-08 Conviva Inc. Dynamic bitrate range selection in the cloud for optimized video streaming
US10305955B1 (en) 2014-12-08 2019-05-28 Conviva Inc. Streaming decision in the cloud
CN107211193B (zh) * 2015-02-07 2021-04-13 视觉波公司 感知体验质量估计驱动的智能适应视频流传输方法和系统
EP3846480A1 (en) * 2015-02-09 2021-07-07 bitmovin GmbH Client, live-streaming server and data stream using an information on a current segment of a sequence of segments
KR101638509B1 (ko) * 2015-04-14 2016-07-12 고려대학교 산학협력단 모바일 멀티미디어 스트리밍 서비스를 위한 비디오 품질 제어 장치 및 방법
US10425453B2 (en) * 2015-04-17 2019-09-24 Telefonaktiebolaget Lm Ericsson (Publ) Dynamic packager network based ABR media distribution and delivery
US9787560B2 (en) * 2015-06-04 2017-10-10 Microsoft Technology Licensing Llc Effective service node traffic routing
US10362508B2 (en) 2015-06-05 2019-07-23 Apple Inc. Communication adaptation based on link-performance characteristics
US11153359B2 (en) 2015-09-29 2021-10-19 Sony Group Corporation User equipment and media streaming network assistance node
WO2017063189A1 (en) * 2015-10-16 2017-04-20 Qualcomm Incorporated Deadline signaling for streaming of media data
US9942577B1 (en) * 2016-02-23 2018-04-10 Amazon Technologies, Inc. Dynamic objects caching for media content playback
CN109618565B (zh) 2016-03-06 2022-04-05 王舟 流式视频用户体验质量的自动测量方法和系统
US10666529B2 (en) * 2016-03-07 2020-05-26 Telefonaktiebolaget Lm Ericsson (Publ) Method and scoring node for estimating a user's quality of experience for a delivered service
CN109219969A (zh) * 2016-06-03 2019-01-15 华为技术有限公司 质量参数的传输方法、终端和网络侧设备
US10277929B1 (en) 2016-06-22 2019-04-30 Amazon Technologies, Inc. Live streaming media content using on-demand manifests
US10313721B1 (en) * 2016-06-22 2019-06-04 Amazon Technologies, Inc. Live streaming media content using on-demand manifests
US10567461B2 (en) * 2016-08-04 2020-02-18 Twitter, Inc. Low-latency HTTP live streaming
EP3497909B1 (en) * 2016-08-11 2022-06-01 Telefonaktiebolaget LM Ericsson (publ) Improved adaptive bit rate streaming of live content with manifest update push notification or long poll
DK3497831T3 (da) 2016-08-11 2021-10-04 Ericsson Telefon Ab L M Forbedret adaptiv bithastighedsstreaming af live indhold
US20180069909A1 (en) * 2016-09-08 2018-03-08 Sonic Ip, Inc. Systems and Methods for Adaptive Buffering for Digital Video Streaming
CN110178377B (zh) * 2016-11-14 2022-01-28 瑞典爱立信有限公司 用于视频传送会话的初始比特率选择
US20190342356A1 (en) * 2017-01-02 2019-11-07 Koninklijke Kpn N.V. Selectively updating a dynamic manifest file
WO2018152222A1 (en) 2017-02-14 2018-08-23 Level 3 Communications, Llc Systems and methods for resolving manifest file discontinuities
EP3753229B1 (en) * 2018-03-02 2023-08-02 Huawei Technologies Co., Ltd. Devices and methods for coded caching
WO2019172943A1 (en) 2018-03-08 2019-09-12 Google Llc Mitigation of client device latency in rendering of remotely generated automated assistant content
US11201901B2 (en) 2018-04-30 2021-12-14 Dolby International Ab Methods and systems for streaming media data over a content delivery network
WO2020040775A1 (en) * 2018-08-23 2020-02-27 Google Llc Regulating assistant responsiveness according to characteristics of a multi-assistant environment
US11184665B2 (en) 2018-10-03 2021-11-23 Qualcomm Incorporated Initialization set for network streaming of media data
US20200112753A1 (en) * 2018-10-03 2020-04-09 Qualcomm Incorporated Service description for streaming media data
EP3633999A1 (en) 2018-10-05 2020-04-08 InterDigital CE Patent Holdings Method to be implemented at a device able to run one adaptive streaming session, and corresponding device
US10779017B2 (en) * 2018-12-10 2020-09-15 Warner Bros. Entertainment Inc. Method and system for reducing drop-outs during video stream playback
CN109828836B (zh) * 2019-01-20 2021-04-30 北京工业大学 一种批量流式计算系统参数动态配置方法
FR3094164B1 (fr) * 2019-03-22 2021-10-29 Streamroot Procédé d’obtention d’un segment de données par un dispositif client apte à communiquer avec une pluralité de réseaux de diffusion de contenu
MX2021012095A (es) 2019-04-04 2022-01-04 Arris Entpr Llc Entrega de múltiplexores cifrados a través del protocolo de transferencia de hipertexto.
US20220174521A1 (en) * 2019-05-31 2022-06-02 Apple Inc. Systems and methods for performance data streaming, performance data file reporting, and performance threshold monitoring
US11751090B2 (en) * 2019-09-06 2023-09-05 Qualcomm Incorporated Reporting mechanisms for wireless communications
GB2588930A (en) * 2019-11-14 2021-05-19 British Broadcasting Corp Multimedia system & method
US11722925B2 (en) * 2020-01-24 2023-08-08 Vmware, Inc. Performing service class aware load balancing to distribute packets of a flow among multiple network links
WO2021197832A1 (en) * 2020-03-30 2021-10-07 British Telecommunications Public Limited Company Low latency content delivery
US11206295B1 (en) 2020-07-16 2021-12-21 CodeShop, B.V. System and method for streaming content selection
CN113347286A (zh) * 2021-06-17 2021-09-03 深圳前海微众银行股份有限公司 确定域名服务器的方法、装置、设备及存储介质
US11665215B1 (en) * 2022-05-05 2023-05-30 At&T Intellectual Property I, L.P. Content delivery system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008527765A (ja) 2004-11-24 2008-07-24 シャープ株式会社 アダプティブバッファリングのための方法と装置
US20120265856A1 (en) * 2011-04-18 2012-10-18 Cisco Technology, Inc. System and method for data streaming in a computer network

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7380028B2 (en) * 2003-06-13 2008-05-27 Microsoft Corporation Robust delivery of video data
US7783773B2 (en) * 2006-07-24 2010-08-24 Microsoft Corporation Glitch-free media streaming
US8392600B2 (en) 2009-09-14 2013-03-05 Adobe Systems Incorporated Dynamic stream switch control
US9124642B2 (en) 2009-10-16 2015-09-01 Qualcomm Incorporated Adaptively streaming multimedia
US9191284B2 (en) * 2010-10-28 2015-11-17 Avvasi Inc. Methods and apparatus for providing a media stream quality signal
WO2012134530A1 (en) * 2011-04-01 2012-10-04 Intel Corporation Cross-layer optimized adaptive http streaming
EP2525587B1 (en) * 2011-05-17 2017-07-05 Alcatel Lucent Method for streaming video content, node in a network for monitoring video content streaming
EP2530885A1 (en) 2011-06-01 2012-12-05 Alcatel Lucent Shaping component and method for transporting a data stream offered at different qualities
US10320869B2 (en) 2011-07-07 2019-06-11 Telefonaktiebolaget Lm Ericsson (Publ) Network-capacity optimized adaptive HTTP streaming
US20130067109A1 (en) * 2011-09-12 2013-03-14 Tektronix, Inc. Monitoring Over-the-Top Adaptive Video Streaming
EP2605469A1 (en) * 2011-12-13 2013-06-19 Thomson Licensing Method and apparatus to control a multipath adaptive streaming session
US9479562B2 (en) * 2011-12-16 2016-10-25 Netflix, Inc. Measuring user quality of experience for a streaming media service
US9723047B2 (en) * 2011-12-29 2017-08-01 Koninklijke Kpn N.V. Network-initiated content streaming control
US9246842B2 (en) * 2012-04-27 2016-01-26 Intel Corporation QoE-aware radio access network architecture for http-based video streaming
EP2665239B1 (en) * 2012-05-14 2016-08-31 Alcatel Lucent An adaptive streaming aware networks node, client and method with priority marking

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008527765A (ja) 2004-11-24 2008-07-24 シャープ株式会社 アダプティブバッファリングのための方法と装置
US20120265856A1 (en) * 2011-04-18 2012-10-18 Cisco Technology, Inc. System and method for data streaming in a computer network

Also Published As

Publication number Publication date
US10439910B2 (en) 2019-10-08
US20150334153A1 (en) 2015-11-19
CN105264826A (zh) 2016-01-20
CN105264826B (zh) 2019-12-20
EP2936742B1 (en) 2019-10-09
KR20150120951A (ko) 2015-10-28
EP2936742A1 (en) 2015-10-28
WO2014096463A1 (en) 2014-06-26

Similar Documents

Publication Publication Date Title
KR101803621B1 (ko) 저 지연 스트리밍
US20210352125A1 (en) Devices, systems, and methods for converting or translating dynamic adaptive streaming over http (dash) to http live streaming (hls)
KR101924703B1 (ko) 단일 메세지 요청에 기초하여 네트워크 노드로부터 다수의 청크 요청
US10263875B2 (en) Real-time processing capability based quality adaptation
KR102299233B1 (ko) 콘텐츠 전달
US8874778B2 (en) Live streaming media delivery for mobile audiences
EP3017605B1 (en) Streaming of segmented content
KR101826916B1 (ko) 하이퍼텍스트 전송 프로토콜을 통한 품질 인식 적응 스트리밍을 위한 방법
US20110066703A1 (en) Methods and systems for delivering media to client device
US20120265892A1 (en) Method and system for secure and reliable video streaming with rate adaptation
JP2014230055A (ja) コンテンツ供給装置、コンテンツ供給方法、プログラム、およびコンテンツ供給システム
JP6059820B2 (ja) 低レイテンシ・ストリーミング
Peltotalo et al. RTSP-based mobile peer-to-peer streaming system
Li et al. Internet multimedia content distribution
Rubio Romero A dynamic adaptive HTTP streaming video service for Google Android
Sajid Mushtaq et al. QoE Approaches for Adaptive Transport of Video Streaming Media

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