KR102299004B1 - 메시지들을 대쉬 클라이언트로 송신하는 방법 및 장치 - Google Patents

메시지들을 대쉬 클라이언트로 송신하는 방법 및 장치 Download PDF

Info

Publication number
KR102299004B1
KR102299004B1 KR1020167028120A KR20167028120A KR102299004B1 KR 102299004 B1 KR102299004 B1 KR 102299004B1 KR 1020167028120 A KR1020167028120 A KR 1020167028120A KR 20167028120 A KR20167028120 A KR 20167028120A KR 102299004 B1 KR102299004 B1 KR 102299004B1
Authority
KR
South Korea
Prior art keywords
server
client device
http
trigger
request
Prior art date
Application number
KR1020167028120A
Other languages
English (en)
Other versions
KR20160132081A (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 KR20160132081A publication Critical patent/KR20160132081A/ko
Application granted granted Critical
Publication of KR102299004B1 publication Critical patent/KR102299004B1/ko

Links

Images

Classifications

    • H04L65/4084
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • H04L65/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/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • H04L67/32
    • 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
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

클라이언트 서버는 서버와 통신하여 미디어 스트리밍을 수신한다. 상기 서버는 상기 클라이언트 디바이스와 현재의 미디어 스트리밍 세션을 검출하고, 상기 현재의 미디어 스트리밍 세션에 관한 정보를 상기 클라이언트 디바이스로 전달할 필요성을 결정한다. 상기 서버는 클라이언트 디바이스에 대한 하이퍼텍스트 전송 프로토콜(hypertext transfer protocol: HTTP) 응답에 트리거를 삽입한다. 상기 트리거는 상기 서버와의 연결이 요청된다는 것을 지시하도록 구성된다. 상기 클라이언트 디바이스는 상기 트리거를 검출하고, 상기 서버가 신뢰성있는 서버인지 여부를 인증한다. 상기 서버가 신뢰성 있다는 것을 인증한 후, 상기 요청이 적법해진다. 상기 클라이언트 디바이스는 상기 서버와 연결을 설정하고, 상기 진행중인 미디어 스트리밍 세션에 대한 정보를 포함하는 메시지를 요청한다. 응답으로, 상기 서버는 상기 클라이언트 디바이스로 DASH(dynamic adaptive streaming over HTTP) 메시지를 송신한다.

Description

메시지들을 대쉬 클라이언트로 송신하는 방법 및 장치{METHOD AND APPARATUS FOR TRANSMITTING MESSAGES TO A DASH CLIENT}
본 출원은 송신 시스템에서 미디어 데이터 전달에 관한 것으로서, 특히 대쉬 클라이언트(DASH client)로 메시지들을 송신하는 것에 관한 것이다.
일반적으로, 상기 송신 제어 프로토콜(Transmission Control Protocol: TCP)은 오디오 및 비디오 컨텐트와 같은 실시간 미디어의 전달에 대해 부적합하다고 고려되고 있다. 이는 주로 TCP가 구현하는 공격적 혼잡 제어 알고리즘(aggressive congestion control algorithm) 및 재송신 절차로 인한 것이다. TCP에서, 상기 송신기는 일반적으로 패킷 손실 또는 과도한 송신 지연들을 통해 인식되는, 혼잡 이벤트(event)의 검출시, 상기 송신 레이트를 현저하게 (일반적으로 1/2 정도로) 감소시킨다. 결과적으로, 상기 TCP의 송신 처리량은 일반적으로 널리 알려져 있는 saw-tooth shape에 의해 특징화된다. 이런 동작은, 어플리케이션(application)들이 지연에는 민감하지만 비교적 손실에 강인할 경우, 상기 어플리케이션들을 송신하는 하는 것에는 해롭게 되며, 이에 반해 TCP는 신뢰성 있는 전달 지연 및 혼잡-인식 송신을 희생하게 된다.
최근에는, 그 경향이 상기 인터넷을 통한 멀티미디어 컨텐트의 전달에 대해 바람직한 프로토콜인 하이퍼텍스트 전송 프로토콜(Hypertext Transport Protocol: HTTP)의 개발로 이동해가고 있다. HTTP는 TCP 상에서 실행되고, 텍스트 프로토콜(textual protocol)이다. 이런 이동의 이유는 상기 프로토콜의 개발의 용이함에 있다. 상기 컨텐트를 전달하기 위해 전용 서버를 배치할 필요가 없다. 또한, HTTP는 일반적으로 방화벽들 및 NAT들을 통한 승인된 억세스이고, 이는 상기 배치를 현저하게 간략화시킨다.
제1 실시예에서, 서버가 제공된다. 상기 서버는 적어도 하나의 클라이언트 디바이스에 연결하도록 구성되는 인터페이스를 포함한다. 상기 서버는 또한 프로세싱 회로를 포함한다. 상기 프로세싱 회로는 상기 적어도 하나의 클라이언트 디바이스와 현재의 미디어 스트리밍 세션을 검출하도록 구성된다. 상기 프로세싱 회로는 상기 현재의 미디어 스트리밍 세션에 관한 정보를 상기 적어도 하나의 클라이언트 디바이스로 전달할 필요성을 결정하도록 구성된다. 상기 프로세싱 회로는 상기 적어도 하나의 클라이언트 디바이스로 트리거를 송신하도록 구성되며, 상기 트리거는 상기 적어도 하나의 클라이언트 디바이스가 상기 서버와 연결을 설정하고, 상기 정보를 포함하는 메시지를 요청하도록 구성된다.
제2 실시예에서, 디바이스가 제공된다. 상기 디바이스는 서버와 통신 연결을 설정하도록 구성되는 안테나를 포함한다. 상기 디바이스는 또한 프로세싱 회로를 포함한다. 상기 프로세싱 회로는 상기 서버와의 통신 연결을 요청하는 트리거를 검출하도록 구성된다. 상기 프로세싱 회로는 또한 상기 서버가 신뢰성 있는 서버인지를 인증하고, 상기 서버에 연결하도록 구성된다.
제3 실시예에서, 클라이언트 디바이스에 대한 방법이 제공된다. 상기 방법은 적어도 하나의 클라이언트 디바이스와 현재의 미디어 스트리밍 세션을 검출하는 과정을 포함한다. 상기 방법은 상기 현재의 미디어 스트리밍 세션에 관한 정보를 상기 적어도 하나의 클라이언트 디바이스로 전달할 필요성을 결정하는 과정을 포함한다. 상기 방법은 상기 적어도 하나의 클라이언트 디바이스로 트리거를 송신하는 과정을 포함하며, 상기 트리거는 상기 적어도 하나의 클라이언트 디바이스가 상기 서버와 연결을 설정하고, 상기 정보를 포함하는 메시지를 요청하도록 한다.
다른 기술적 특징들이 다음과 같은 도면들과, 설명들 및 청구항들로부터 해당 기술 분야의 당업자에게는 용이하게 자명할 것이다.
하기의 본 개시의 구체적인 설명 부분을 처리하기 전에, 이 특허 문서를 통해 사용되는 특정 단어들 및 구문들에 대한 정의들을 설정하는 것이 효과적일 수 있다: 상기 용어들 "포함하다(include)" 및 "포함하다(comprise)"와 그 파생어들은 한정없는 포함을 의미하며; 상기 용어 "또는(or)"은 포괄적이고, "및/또는"을 의미하고; 상기 구문들 "~와 연관되는(associated with)" 및 "~와 연관되는(associated therewith)"과 그 파생어들은 포함하고(include), ~내에 포함되고(be included within), ~와 서로 연결되고(interconnect with), 포함하고(contain), ~내에 포함되고(be contained within), ~에 연결하거나 또는 ~와 연결하고(connect to or with), ~에 연결하거나 또는 ~와 연결하고(couple to or with), ~와 통신 가능하고(be communicable with), ~와 협조하고(cooperate with), 인터리빙하고(interleave), 병치하고(juxtapose), ~로 가장 근접하고(be proximate to), ~로 ~할 가능성이 크거나 또는 ~와 ~할 가능성이 크고(be bound to or with), 가지고(have), 소유하고(have a property of) 등과 같은 내용을 의미하고; 상기 용어 "제어기"는 적어도 하나의 동작을 제어하는 임의의 디바이스, 시스템, 또는 그 부분을 의미하고, 상기와 같은 디바이스는 하드웨어, 펌웨어 또는 소프트웨어, 또는 상기 하드웨어, 펌웨어 또는 소프트웨어 중 적어도 2개의 몇몇 조합에서 구현될 수 있다. 어떤 특정 제어기와 연관되는 기능성이라도 집중화되거나 또는 분산될 수 있으며, 국부적이거나 원격적일 수도 있다는 것에 주의해야만 할 것이다. 특정 단어들 및 구문들에 대한 정의들은 이 특허 문서에 걸쳐 제공되고, 해당 기술 분야의 당업자는 많은 경우, 대부분의 경우가 아니라고 해도, 상기와 같은 정의들이 종래 뿐만 아니라 상기와 같이 정의된 단어들 및 구문들의 미래의 사용들에도 적용된다는 것을 이해해야만 할 것이다.
본 개시 및 본 개시의 이점들에 대한 보다 완전한 이해를 위해서, 유사한 참조 번호들이 유사한 파트들을 나타내는 첨부 도면들을 참조하여 다음과 같은 설명이 이루어질 것이다:
도 1은 본 개시에 따른 예제 컴퓨팅 시스템을 도시한다;
도 2 및 도 3은 본 개시에 따른 컴퓨팅 시스템에서 예제 디바이스들을 도시한다;
도 4는 본 개시의 실시예들에 따른 적응적 HTTP 스트리밍 아키텍쳐를 개시한다;
도 5는 본 개시의 실시예들에 따른 MPD 구조를 도시한다;
도 6은 본 개시의 실시예들에 따른, 서버가 클라이언트 디바이스로 메시지들을 송신하는 프로세스를 도시한다; 및
도 7은 본 개시의 실시예들에 따른, 클라이언트 디바이스가 서버로부터 메시지들을 수신하는 프로세스를 도시한다.
하기에서 설명되는 도 1 내지 도 7과 이 특허 문서에서 본 개시의 기본 원칙들을 설명하기 위해 사용되는 다양한 실시예들은 오직 설명만을 위한 것이며, 본 개시의 범위를 제한하는 방식으로 이해되어서는 안 된다. 해당 기술 분야의 당업자들은 본 개시의 기본 원칙들이 적합하게 배열된 디바이스 또는 시스템에서 구현될 수 있다는 것을 이해할 것이다.
도 1은 본 개시에 따른 컴퓨팅 시스템(computing system)(100)을 도시하고 있다. 도 1에 도시되어 있는 상기 컴퓨팅 시스템(100)의 실시예는 오직 도시만을 위한 것이다. 상기 컴퓨팅 시스템(100)의 다른 실시예들은 본 개시의 범위로부터 벗어남이 없이 사용될 수 있다.
도 1에 도시되어 있는 바와 같이, 상기 시스템(100)은 상기 시스템(100)에서 다양한 컴포넌트들간의 통신을 가능하게 하는 네트워크(102)를 포함한다. 일 예로, 상기 네트워크(102)는 네트워크 어드레스들간에서 인터넷 프로토콜(Internet Protocol: IP) 패킷들, 프레임 릴레이 프레임들, 비동기 전송 모드(Asynchronous Transfer Mode: ATM) 셀들, 또는 다른 정보를 통신할 수 있다. 상기 네트워크(102)는 하나 또는 그 이상의 근거리 통신 네트워크(local area network: LAN)들, 도시권 통신 네트워크(metropolitan area network: MAN)들, 광대역 통신 네트워크(wide area network: WAN)들, 상기 인터넷과 같은 글로벌 네트워크(global network)의 전체 또는 일부, 또는 하나 또는 그 이상의 위치들에서의 다른 어떤 통신 시스템 또는 시스템들이라도 포함할 수 있다.
상기 네트워크(102)는 적어도 하나의 서버(104) 및 다양한 클라이언트 디바이스들(106-114)간의 통신들을 가능하게 한다. 각 서버(104)는 하나 또는 그 이상의 클라이언트 디바이스들에 대한 컴퓨팅 서비스들을 제공할 수 있는 어던 적합한 컴퓨팅 또는 프로세싱 디바이스라도 포함할 수 있다. 각 서버(104)는, 일 예로, 하나 또는 그 이상의 프로세싱 디바이슬, 명령들 및 데이터를 저장하는 하나 또는 그 이상의 메모리들, 상기 네트워크(102)를 통한 통신을 가능하게 하는, 하나 또는 그 이상의 네트워크 인터페이스들을 포함할 수 있다.
각 클라이언트 디바이스(106-114)는 상기 네트워크(102)를 통해 적어도 하나의 서버 또는 다른 컴퓨팅 디바이스(들)과 상호 작용하는, 적합한 컴퓨팅 또는 프로세싱 디바이스를 나타낸다. 이 예제에서, 상기 클라이언트 디바이스들(106-114)은 데스크탑 컴퓨터(106), 이동 전화기 또는 스마트폰(108), 개인용 휴대 정보 단말기(personal digital assistant: PDA)(110), 랩탑 컴퓨터(112), 및 태블릿 컴퓨터(114)를 포함한다. 하지만, 다른 또는 추가적인 어떤 클라이언트 디바이스들이라도 상기 컴퓨팅 시스템(100)에서 사용될 수 있다.
이 예제에서, 일부 클라이언트 디바이스들(108-114)은 상기 네트워크(102)와 간접적으로 통신한다. 일 예로, 상기 클라이언트 디바이스들(108-110)은 셀룰라 기지국들 또는 eNodeB들과 같은, 하나 또는 그 이상의 기지국들(116)을 통해 통신한다. 또한, 상기 클라이언트 디바이스들(112-114)은 IEEE 802.11 무선 억세스 포인트들과 같은, 하나 또는 그 이상의 무선 억세스 포인트들(118)을 통해 통신한다. 이들은 오직 도시만을 위한 것이고, 각 클라이언트 디바이스는 상기 네트워크(102)와 직접적으로 통신할 수 있거나, 또는 적합한 중개 디바이스(들) 또는 네트워크(들)을 통해 상기 네트워크(102)와 간접적으로 통신할 수 있다는 것에 유의하여야만 할 것이다.
하기에서 보다 구체적으로 설명되는 바와 같이, 네트워크(102)는 DASH 관련 메시징을 가능하게 한다. 하나 또는 그 이상의 서버들(104)은 DASH 관련 메시지들을 송신하기 위해 수신기가 상기 서버로 연결을 설정하는 것을 트리거할 수 있다. 상기 각 클라이언트 디바이스들(106-114)은 상기 서버(104)로 연결하고, DASH 관련 메시지들이 상기 서버(104)에 의해 푸쉬(push)될 때 상기 DASH 관련 메시지들을 수신한다.
도 1이 컴퓨팅 시스템(100)의 일 예를 도시하고 있다고 할지라도, 다양한 변경들이 도 1에 대해서 이루어질 수 있다. 일 예로, 상기 시스템(100)은 적합한 배열로 어떤 개수의 컴포넌트라도 포함할 수 있다. 일반적으로, 컴퓨팅 또는 통신 시스템들은 매우 다양한 구성들에 참여하게 되고, 도 1은 본 개시의 범위를 특정한 구성으로 한정시키지는 않는다. 도 1이 본 문서에 개시되어 있는 다양한 특징들이 사용될 수 있는 하나의 운영 환경을 도시하고 있을 지라도, 이런 특징들은 다른 적합한 시스템에서도 사용될 수 있다.
도 2 및 도 3은 본 개시에 따른 컴퓨팅 시스템에서 예제 디바이스들을 도시하고 있다. 특히, 도 2는 예제 서버(200)을 도시하고 있고, 도 3은 예제 클라이언트 디바이스(300)를 도시하고 있다. 상기 서버(200)는 도 1에서의 상기 서버(104)를 나타낼 수 있고, 상기 클라이언트 디바이스(300)는 도 1에서의 클라이언트 디바이스들(106-114)들 중 하나 또는 그 이상을 나타낼 수 있다.
도 2에 도시되어 있는 바와 같이, 상기 서버(200)는 적어도 하나의 프로세싱 디바이스(210), 적어도 하나의 저장 디바이스(215), 적어도 하나의 통신 유닛(220), 및 적어도 하나의 입/출력(input/output: I/O) 유닛(225)간의 통신을 지원하는 버스 시스템(205)을 포함한다. 상기 서버(104)는 서버(200)과 동일하게 또는 유사하게 구성될 수 있다. 상기 서버(200)는 DASH 관련 메시지를 전송하기 위해 서버로 연결을 설정하기 위해 수신기를 트리거링 가능하다.
상기 프로세싱 디바이스(210)는 메모리(230)로 로딩될 수 있는 명령들을 실행한다. 상기 프로세싱 디바이스(210)는 적합한 수(들) 및 타입(들)의 프로세서들 또는 다른 디바이스들을 적합한 배열에 따라 포함할 수 있다. 예제 타입들의 프로세싱 디바이스들(210)은 마이크로 프로세서들, 마이크로 제어기들, 디지털 신호 프로세서들, 필드 프로그램 가능 게이트 어레이(field programmable gate array)들, 주문형 반도체(application specific integrated circuit), 및 discreet circuitry를 포함한다.
상기 메모리(230) 및 영구 저장 장치(235)는 저장 디바이스들(215)의 예들이며, (일시 기반으로 또는 영구 기반의 데이터, 프로그램 코드, 및/또는 다른 적합한 정보와 같은) 정보의 저장을 가능하게 하고, 정보의 검색을 가능하게 하는 구조(들)을 나타낸다. 상기 메모리(230)는 랜덤 억세스 메모리 또는 다른 적합한 휘발성 또는 비휘발성 저장 디바이스(들)을 나타낼 수 있다. 상기 영구 저장 장치(235)는 리드 온니 메모리(read only memory), 하드 드라이브, 플래시 메모리, 또는 광 디스크와 같은, 데이터의 비교적 긴 저장을 지원하는, 하나 또는 그 이상의 컴포넌트들 또는 디바이스들을 포함할 수 있다.
상기 통신 유닛(220)은 다른 시스템들 또는 디바이스들과의 통신들을 지원한다. 일 예로, 상기 통신 유닛(220)은 상기 네트워크(102)를 통한 통신들을 가능하게 하는 프로세싱 회로, 네트워크 인터페이스 카드, 또는 무선 송수신기를 포함할 수 있다. 상기 통신 유닛(220)은 적합한 물리 또는 무선 통신 링크(들)를 통해 통신들을 지원할 수 있다. 상기 통신 유닛(220)은 하나 또는 그 이상의 디바이스들로의 연결을 가능하게 한다. 즉, 상기 통신 유닛(220)은 적어도 하나의 클라이언트 디바이스에 연결하도록 구성되는 인터페이스를 제공한다.
상기 I/O 유닛(225)은 데이터의 입력 및 출력을 고려한다. 일 예로, 상기 I/O 유닛(225)은 키보드, 마우스, 키패드, 터치스크린, 또는 다른 적합한 입력 디바이스들 통해 사용자 입력에 대한 연결을 제공할 수 있다. 상기 I/O 유닛(225)은 또한 디스플레이, 프린터, 또는 다른 적합한 출력 디바이스로 출력을 송신할 수 있다.
도 2는 도 1의 서버(104)를 나타낼 경우에 대해서 설명되었지만, 동일한 또는 유사한 구조가 상기 클라이언트 디바이스들(106-114) 중 하나 또는 그 이상에서 사용될 수 있다는 것에 유의하여야만 할 것이다. 일 예로, 랩탑 또는 데스크탑 컴퓨터는 도 2에 도시되어 있는 구조와 동일한 또는 유사한 구조를 가질 수 있다.
도 3은 본 개시에 따른 예제 STA(300)를 도시하고 있다. 도 2에 도시되어 있는 상기 STA(300)의 실시예는 오직 도시만을 위한 것이며, 도 1에서의 상기 STA들(104-112)은 동일하거나 또는 유사한 구성을 가질 수 있다. 하지만, STA들에는 다양한 구성들이 도입되며, 따라서 도 3은 본 개시의 범위를 STA의 특정한 구현으로 제한하지는 않는다.
상기 STA(300)는 다수의 안테나들(305a-305n) 다수의 무선 주파수(radio frequency: RF) 송수신기들(310a-310n), 송신(transmit: TX) 프로세싱 회로(315), 마이크로폰(microphone)(320) 및 수신(receive: RX) 프로세싱 회로(325)를 포함한다. 상기 TX 프로세싱 회로(315) 및 RX 프로세싱 회로(325)는 각각 상기 RF 송수신기들(310a-310n)들 각각에 연결되고, 일 예로, 각각 안테나(305a), 안테나(305b) 및 N번째 안테나(305n)에 연결되는, RF 송수신기(310a), RF 송수신기(2310b) 내지 N번째 RF 송수신기(310n)에 연결된다. 특정 실시예들에서, 상기 STA(104)는 단일 안테나(305a) 및 단일 RF 송수신기(310a)를 포함한다. 상기 STA(104)는 또한 스피커(330), 메인 프로세서(main processor)(340), 입/출력(input/output: I/O) 인터페이스(interface: IF)(345), 키패드(keypad)(350), 디스플레이(display)(355) 및 메모리(360)를 포함한다. 상기 메모리(260)는 기본 운영 시스템(operating system: OS) 프로그램(261) 및 하나 또는 그 이상의 어플리케이션(application)들(262)을 포함한다.
상기 RF 송수신기들(310a-310n)은 각 안테나들(305a-305n)로부터 상기 네트워크(100)의 AP(102)에 의해 송신된 입력 RF 신호를 수신한다. 상기 RF 송수신기들(310a-310n)은 상기 입력 RF 신호를 다운 컨버팅하여 중간 주파수(intermediate frequency: IF) 또는 기저대역 신호로 생성한다. 상기 IF 또는 기저 대역 신호는 상기 RX 프로세싱 회로(325)로 송신되고, 상기 RX 프로세싱 회로(325)는 상기 기저대역 또는 IF 신호를 필터링, 디코딩, 및/또는 디지털화하여 프로세싱된 기저대역 신호를 생성한다. 상기 RX 프로세싱 회로(325)는 추가적인 프로세싱을 위해 상기 프로세싱된 기저대역 신호를 상기 스피커(330)(음성 데이터를 위해서와 같이) 또는 상기 메인 프로세서(340)(웹 브라우징 데이터(web browsing data)를 위해서와 같이)로 송신한다.
상기 TX 프로세싱 회로(315)는 상기 마이크로폰(320)으로부터의 아날로그 또는 디지털 음성 데이터 또는 상기 메인 프로세서(340)로부터의 다른 출력 기저 대역 데이터(웹 데이터, 이메일, 또는 양방향 비디오 게임 데이터(interactive video game data)와 같은)를 수신한다. 상기 TX 프로세싱 회로(315)는 상기 출력 기저 대역 데이터를 인코딩, 멀티플렉싱 및/또는 디지털화하여 프로세싱된 기저대역 또는 IF 신호로 생성한다. 상기 RF 송수신기들(310a-310n)은 상기 TX 프로세싱 회로(215)로부터 상기 출력 프로세싱된 기저대역 또는 IF 신호를 수신하고, 상기 기저대역 또는 IF 신호를 상기 안테나들(305a-305n) 중 하나 또는 그 이상을 통해 송신되는 RF 신호로 업 컨버팅한다.
상기 메인 프로세서(340)는 하나 또는 그 이상의 프로세서들 또는 다른 프로세싱 디바이스들을 포함할 수 있으며, 상기 STA(300)의 전반적인 동작을 제어하기 위해 상기 메모리(360)에 저장되어 있는 상기 기본 OS 프로그램(361)을 실행할 수 있다. 일 예로, 상기 메인 프로세서(340)는 공지의 원칙들에 따라 상기 RF 송수신기들(310a-310n), 상기 RX 프로세싱 회로(325) 및 상기 TX 프로세싱 회로(315)에 의한 순방향 채널 신호들의 수신 및 역방향 채널 신호들의 송신을 제어할 수 있다. 일부 실시예들에서, 상기 메인 프로세서(340)는 적어도 하나의 마이크로 프로세서 또는 마이크로 제어기를 포함한다.
상기 메인 프로세서(340)는 서버로부터 DASH 관련 메시지들을 수신하는 동작들과 같은, 상기 메모리(360)에 내재되어 있는 다른 프로세스들 및 프로그램들을 실행할 수 있다. 상기 메인 프로세서(340)는 데이터를 실행중인 프로세스에 의해 요구될 경우 상기 메모리(360) 내로 또는 상기 메모리(360)로부터 이동시킬 수 있다. 일부 실시예들에서, 상기 메인 프로세서(340)는 상기 OS 프로그램(261)을 기반으로 또는 AP(102), 또는 운영자로부터 수신되는 신호들에 응답하여 상기 어플리케이션들(362)을 실행하도록 구성된다. 또한, 상기 메인 프로세서(340)는 상기 I/O 인터페이스(345)에 연결되고, 상기 I/O 인터페이스(345)는 상기 STA(300)에게 랩탑 컴퓨터들 및 핸드헬드(handheld) 컴퓨터들과 같은 다른 디바이스들에 대한 연결 능력을 제공한다. 상기 I/O 인터페이스(345)는 이런 악세사리들과 상기 메인 제어기(340)간의 통신 경로이다.
또한, 상기 메인 프로세서(340)는 상기 키패드(350) 및 상기 디스플레이 유닛(355)에 연결된다. 상기 STA(300)의 운영자는 상기 키패드(350)를 사용하여 상기 STA(300)에 데이터를 입력할 수 있다. 상기 디스플레이(355)는 웹 사이트(web site)들에서와 같은 텍스트 및/또는 적어도 제한된 그래픽들을 렌더링(rendering)할 수 있는 액정 크리스탈 디스플레이 또는 다른 디스플레이가 될 수 있다.
상기 메모리(360)는 상기 메인 프로세서(340)에 연결된다. 상기 메모리(360)의 일부는 랜덤 억세스 메모리(random access memory: RAM)를 포함할 수 있으며, 상기 메모리(360)의 나머지는 부분은 플래시 메모리 또는 다른 리드 온니 메모리(read-only memory: ROM)를 포함할 수 있다.
도 2 및 도 3이 컴퓨팅 시스템에서 디바이스들의 예들을 도시하고 있다고 할지라도, 다양한 변경들이 도 2 및 도 3에 대해서 이루어질 수 있다. 일 예로, 도 2 및 도 3에서의 다양한 컴포넌트들은 조합되거나, 추가적으로 서브 분할 되거나, 또는 생략될 수 있으며, 다른 컴포넌트들이 특별한 필요들에 따라서 추가될 수 있다. 또한, 특별한 예로서, 상기 메인 프로세서(340)는 하나 또는 그 이상의 중앙 프로세싱 유닛(central processing unit: CPU)들 및 하나 또는 그 이상의 그래픽 프로세싱 유닛(graphics processing unit: GPU)들과 같은 다수의 프로세서들로 분할될 수 있다. 또한, 도 3이 이동 전화기 또는 스마트폰으로 구성된 클라이언트 디바이스(300)를 도시하고 있다고 할지라도, 클라이언트 디바이스들은 다른 타입들의 이동 또는 고정 디바이스들로서 동작하도록 구성될 수 있다. 또한, 컴퓨팅 및 통신 네트워크들에서와 같이, 클라이언트 디바이스들 및 서버들은 매우 다양한 구성들에 참여할 수 있고, 도 2 및 도 3은 본 개시를 어떤 특정한 클라이언트 디바이스 또는 서버로 한정시키지는 않는다.
DASH(Dynamic Adaptive Streaming over HTTP)는 최근에 3GPP 및 MPEG에 의해 표준화되고 있다. 요즘에는 APPLE사에 의한 HLS(HTTP Live Streaming) 및 MICROSOFT 사에 의한 Smooth Streaming과 같은 적응적 HTTP 스트리밍에 대한 몇몇 독점 해결 방식(proprietary solution)들이 상업적으로 개발중에 있다. 이와는 달리, DASH는 완전 공개된, 규격화된 미디어 스트리밍 해결 방식이며, 다른 구현들과의 상호 운영성을 제공한다.
도 4는 본 개시의 실시예들에 따른 적응적 HTTP 스트리밍 아키텍쳐를 도시하고 있다. 도 4에 도시되어 있는 상기 HTTP 스트리밍 아키텍쳐(400)의 실시예는 오직 도시만을 위한 것이다. 다른 실시예들이 본 개시의 범위로부터 벗어남이 없이 사용될 수 있다.
상기 HTTP 스트리밍 아키텍쳐(400)에서, 컨텐트(content)는 컨텐트 준비(405) 단계에서 준비된다. 상기 컨텐트는 HTTP 스트리밍 서버(410)에 의해 전달된다. 상기 HTTP 스트리밍 서버(410)는 상기 서버(104)와 동일하게, 또는 유사하게 구성될 수 있다. 스트리밍시, 상기 컨텐트는 HTTP 캐시(415)에서 캐시되거나, 또는 버퍼링되고, 추가적으로 HTTP 스트리밍 클라이언트(420)로 스트림된다. 상기 HTTP 스트리밍 클라이언트(420)는 상기 클라이언트들(106-114) 중 하나가 될 수 있다.
DASH에서, 컨텐트 준비(405) 단계가 수행될 필요가 있고, 상기 컨텐트 준비(405) 단계에서 상기 컨텐트가 다수의 세그먼트(segment)들로 세그먼트된다. 초기화 세그먼트는 상기 미디어 계층을 구성하는데 필요한 정보를 전달하기 위해 생성된다. 그리고 나서야 미디어 세그먼트들이 소비될 수 있다. 상기 컨텐트는 일반적으로 다수의 변형들로, 일반적으로 몇몇 비트레이트(bitrate)들로 인코딩된다. 각 변형은 상기 컨텐트의 리프리젠테이션(representation)에 상응한다. 상기 컨텐트 리프리젠테이션들은 서로에 대해 대안적이거나, 또는 상기 컨텐트 리프리젠테이션들은 서로 보완적 일 수 있다. 이전의 경우에서는, 상기 클라이언트는 대안 리프리젠테이션들의 그룹 중 한 대안만을 선택한다. 대안 리프리젠테이션들은 적응 집합(adaptation set)으로 함께 그룹화된다. 상기 클라이언트는 추가적인 미디어 컴포넌트들을 포함하는 상보 리프리젠테이션들을 지속적으로 추가할 수 있다.
DASH 스트리밍을 위해 제공되는 컨텐트는 상기 클라이언트(420)로 설명될 필요가 있다. 이는 미디어 프리젠테이션 디스크립션(Media Presentation Description: MPD) 파일을 사용하여 수행된다. 상기 MPD는 상기 컨텐트의 디스크립션과, 상기 컨텐트의 주기들과, 상기 적응 집합들과, 상기 컨텐트의 리프리젠테이션들과, 가장 중요하게는, 상기 컨텐트의 각 피스(piece)에 어떻게 억세스하는지를 포함하는 XML 파일이다. 상기 MPD 엘리먼트는 상기 MPD 파일에 포함되는 메인 엘리먼트이다. 상기 MPD 엘리먼트는 상기 컨텐트의 타입과, 상기 컨텐트가 유용한 시간 윈도우와 같은, 상기 컨텐트에 대한 일반적인 정보를 포함한다. 상기 MPD는 하나 또는 그 이상의 주기들을 포함하고, 상기 하나 또는 그 이상의 주기들 각각은 상기 컨텐트의 시간 세그먼트(time segment)를 설명한다. 각 주기는 하나 또는 그 이상의 적응 집합들로 그룹화되는 상기 컨텐트의 하나 또는 그 이상의 리프리젠테이션들을 포함할 수 있다. 각 리프리젠테이션은 하나 또는 그 이상의 컨텐트 컴포넌트들의, 그리고 특정 구성을 사용하는 인코딩이다. 리프리젠테이션들은 주로 상기 리프리젠테이션들의 대역폭 요구 사항들, 상기 리프리젠테이션들이 포함하는 상기 미디어 컴포넌트들, 상기 사용되는 코덱(codec)들, 상기 언어들, 등에서 다르다.
도 5는 본 개시의 실시예들에 따른 MPD 구조를 도시하고 있다. 도 5에 도시되어 있는 상기 MPD 구조(500)의 실시예는 오직 도시만을 위한 것이다. 다른 실시예들이 본 개시의 범위로부터 벗어남이 없이 사용될 수 있다.
도 5에 도시되어 있는 바와 같은 예제에서, 상기 MPD 구조(500)는 다수의 주기들(510)을 가지는 미디어 프리젠테이션(505)을 포함한다. 각 주기(510)는 다수의 적응 집합들(515)을 포함한다. 각 적응 집합(515)은 다수의 리프리젠테이션들(520)을 포함한다. 각 리프리젠테이션(520)은 세그먼트 정보(525)를 포함한다. 상기 세그먼트 정보(525)는 초기 세그먼트(530) 및 다수의 미디어 세그먼트들(535)을 포함한다.
DASH의 한 배치 시나리오에서, 상기 ISO-기반 파일 포맷 및 그 derivative들(상기 MP4 및 상기 3GP 파일 포맷들)이 사용된다. 상기 컨텐트는 소위 무비(movie) 프래그먼트들에 저장된다. 각 무비 프래그먼트는 상기 미디어 데이터 및 그 상응하는 메타 데이터(meta data)를 포함한다. 상기 메타 데이터는 일반적으로 상기 리프리젠테이션의 모든 미디어 컴포넌트들(media component)로부터의 미디어 샘플(media sample)들의 집합이다. 각 미디어 컴포넌트는 상기 파일의 트랙(track)으로서 설명된다.
서버-송신 이벤트들(Server-Sent Events)
Server-Sent Events은 서버(200)와 같은 웹 서버가 푸시 모드(push mode)에서 상기 브라우저(browser)로 이벤트들을 송신하는 것을 가능하게 한다. 이는 새로운 엘리먼트 EventSource의 사용을 통해 성취된다. 상기 웹 어플리케이션은 long-held HTTP 요청(long-held HTTP request)을 사용하여 클라이언트 디바이스(300)와 같은 상기 수신기로 상기 이벤트들을 푸시할 수 있다. 상기 이벤트는 텍스트 블록(text block)들의 집합이고, 각 블록은 필드(field)들의 집합이다. 상기 텍스트 블록들은 empty line에 의해 구분된다.
상기 Server-Sent Events는 비동기 이벤트들을 상기 클라이언트 디바이스들(300)로 송신하기 위해 사용될 수 있다. 하지만, 상기 이벤트들은 텍스트 포맷이고, 결과적으로 사이즈가 제한된다.
서버 및 네트워크 어시스턴스(Server and Network Assistance)
DASH에서, 상기 DASH 클라이언트는 상기 MPD에 포함되어 있는 정보를 기반으로 상기 레이트 적응을 수행한다. 상기 MPD가 상기 컨텐트 제공자에 의해 생성 및 업데이트되기 때문에, HTTP 프록시 서버들 또는 CDN 노드들과 같은 중개 노드들이 상기 클라이언트에서 상기 레이트 적응시 영향을 줄 가능성은 없다. 하지만, 상기 네트워크 또는 중간 노드들이 엔드-투-엔드 사용자 경험(end to end user experience)을 개선시킬 상기 DASH 클라이언트에 대한 정보를 가지고 있는 많은 경우들이 존재한다. 일 예는 특정 리프리젠테이션이 컨텐트 전달 네트워크(content delivery network: CDN)에 의해 이미 캐시되어 있는 상기 CDN을 통한 컨텐트의 분산(distribution)이다. 상기 클라이언트 디바이스(300)가 상기 리프리젠테이션을 소비할 경우, 상기 엔드-투-엔드 지연은 최소화될 것이고, 전반적인 품질은 따라서 훨씬 좋아질 수 있다. 이는 상기 캐시된 리프리젠테이션이 상기 리프리젠테이션보다 더 높은 대역폭 요구 사항을 가질지라도, 상기 DASH 클라이언트가 상기 코어 네트워크에서 상기 병목이 존재할 수 있을 때 소비되는 케이스(case)가 될 수 있다.
다른 사용 케이스에서, 컨텐트는 브로드캐스트 및 브로드밴드를 통해 하이브리드 방식으로 분산될 수 있다. 하지만, 브로드캐스트 스펙트럼이 비용이 많이 들고 효율적으로 사용되어야만 한다는 사실 때문에 리프리젠테이션들 중 선택된 집합만이 브로드캐스트를 통해 분산될 것이다. 상기 엔드-투-엔드 사용자 경험을 향상시키기 위해, 상기 브로드캐스트 수신기는 상기 DASH 클라이언트 디바이스(300)에게 특정 리프리젠테이션이 브로드캐스트를 통해 전달될 때 상기 특정 리프리젠테이션을 소비하기를 원한다고 알려주기를 원할 수 있다. 브로드캐스트 채널들이 일반적으로 보장된 대역폭을 가지기 때문에, 이는 상기 유용한 대역폭을 추정하고 리프리젠테이션들을 스위칭하는 부담없이 상기 DASH 클라이언트에게 잠재적으로 높은 품질의 리프리젠테이션을 수신할 기회를 제공할 것이다.
현재는, 중개 네트워크 노드들이 상기 DASH 클라이언트 디바이스(300)와 안전하게 통신하는 것을 가능하게 하는 채널이 존재하지 않는다. HTTP는 상기 서버(200)로부터 상기 클라이언트 디바이스(300)로 메시지를 송신하기 위해 상기 클라이언트 디바이스(300)로부터의 요청을 필요로 한다. 하지만, 상기 클라이언트 디바이스(300)는 상기 중개 노드를 알지 못하거나 또는 신뢰하지 않고, 따라서 상기 중개 노드로 연결을 설정하지 않을 경우, 상기 메시지는 상기 DASH 클라이언트 디바이스(300)로 전달될 수 없다.
서버 송신 이벤트들(Server Sent Events: SSE)의 케이스에서, 상기 클라이언트 디바이스(300)가 상기 서버(200)로 연결하는 것에 대한 요청은 상기 HTML5 페이지의 일부인 자바스크립트(Javascript)로 하드 코딩된다(hard coded). 상기와 같은 요청의 일 예는 다음에서와 같이 제공된다:
var source = new EventSource("http://www.example.com/sse.php");
source.onmessage = function(event) {
// process event
}
이 예제에서, 상기 EventSource는 메시지들을 상기 웹 클라이언트로 송신할 웹 서버에 상기 URL로 초기화된다.
이전에 설명한 바와 같이, 이 해결 방식은 상기 중개 서버들이 일반적으로 상기 컨텐트 제공자(또는 원래의 서버)에게 알려져 있지 않기 때문에 메시지들을 상기 DASH 클라이언트 디바이스(300)로 통신하는 것에는 적합하지 않다.
상기 해결 방식은 어떤 신뢰성 있는 중개 노드라도 메시지들을 상기 DASH 클라이언트 디바이스(300)로 송신할 수 있도록 해야만 한다.
도 6은 본 개시의 실시예들에 따른 서버(200)가 메시지들을 클라이언트 디바이스(300)로 메시지들을 송신하는 프로세스(600)를 도시하고 있다. 상기 플로우 차트가 일련의 연속적인 단계들을 도시하고 있다고 할지라도, 별도로 명백하게 언급되지 않는 한, 특정 순서의 성능, 동시에 또는 오버랩 방식 이외의 그 직렬적인 단계들 또는 부분들의 성능, 또는 매개 또는 중개 단계들의 발생 없이 배타적으로 도시되는 단계들의 성능의 시퀀스로부터 어떤 추론도 도출되어서는 안 된다. 도시되어 있는 예제에 도시되어 있는 프로세스는 일 예로 서버에 포함되어 있는 프로세싱 회로에서 구현된다.
본 개시의 실시예들은 수신기로 DASH 관련 메시지들을 송신하기 위해 서버(200)가 클라이언트 디바이스(300)와 같은 상기 수신기를 트리거하여 상기 서버(200)로 연결을 설정하는 것을 가능하게 하는 방법 및 장치를 제공한다. 특정 실시예들에서, 상기 서버(200)는 상기 클라이언트 디바이스(300)에게 반드시 미리 알려져 있을 필요는 없다. 즉, 상기 서버(200)는 최초에는 트랜스페어런트 프록시 서버(transparent proxy server)가 될 수 있다.
블록 605에서, 상기 서버(200)는 하나 또는 그 이상의 메시지들이 송신될 필요가 있는지 여부와 어떤 수신기들이 상기 메시지들을 수신해야 하는지 결정한다. 블록 610에서, 상기 서버(200)는 "트리거"를 상기 타겟 클라이언트 디바이스(300)에 대한 HTTP 응답에 삽입한다. 특정 실시예들에서, 상기 서버(200)는 상기 DASH 클라이언트 디바이스(300)가 상기 서버(200)로 연결하는 것을 요청하기 위해 상기 MPD에 트리거를 삽입한다. 특정 실시예들에서, 상기 서버(200)는 상기 DASH 클라이언트 디바이스(300)가 상기 서버(200)로 연결하는 것을 요청하기 위해 상기 DASH 세그먼트에 트리거를 삽입한다. 특정 실시예들에서, 상기 서버(200)는 상기 DASH 클라이언트 디바이스(300)가 상기 서버(200)로 연결하는 것을 요청하기 위해 HTTP 응답에 포함되어 있는 전용 HTTP 헤더 필드를 사용하여 상기 클라이언트 디바이스(300)로 시그널한다. 특정 실시예들에서, 상기 서버(200)는 상기 DASH 클라이언트 디바이스(300)가 상기 서버(200)로 연결하는 것을 요청하기 위해 전용 HTTP 헤더 필드를 사용하여 상기 DASH 클라이언트 디바이스(300)로 트리거를 송신한다. 특정 실시예들에서, 상기 서버(200)는 상기 클라이언트 디바이스(300)가 상기 중개 서버로 연결되는 것이 요청된다는 것을 시그널하기 위해 상기 MPD에 엘리먼트를 추가한다. 특정 실시예들에서, 상기 서버(200)는 DASH 세그먼트 요청에 대한 응답 바디(response body)의 일부로서 상기 트리거를 포함한다. 상기 트리거는 상기 이벤트 메시징 프레임워크(event messaging framework)를 사용하는 것과 같이 상기 세그먼트 내부에 삽입되거나, 또는 이와는 달리, 상기 트리거는 전용 MIME(Multi-purpose Internet Mail Extensions) 타입을 가지는 다중-파트 MIME의 일부로서 제공된다.
상기 클라이언트 디바이스(300)가 상기 트리거를 선택하거나, 또는 활성화시키거나, 또는 실행시키는 것에 대한 응답으로, 블록 615에서, 상기 서버(200)는 상기 타겟 클라이언트 디바이스(300)로부터 연결들을 수신한다. 블록 620에서, 상기 서버(200)는 상기 메시지들을 상기 타겟 클라이언트 디바이스(300)로 송신한다. 블록 610에서, 상기 서버(200)는 각 다수의 타겟 클라이언트 디바이스들(300)에 대한 다수의 트리거들을 삽입할 수 있고, 블록 615에서, 상기 서버(200)는 상기 각 트리거들의 활성화에 대한 응답으로 상기 다수의 클라이언트 디바이스들 중 하나 또는 그 이상으로부터 연결들을 수신할 수 있고, 블록 620에서 각 타겟 클라이언트 디바이스(300)로 각 메시지들을 송신할 수 있다는 것에 유의하여야 할 것이다.
도 7은 본 개시의 실시예에 따른 클라이언트 디바이스(300)가 서버(200)로부터 메시지들을 수신하는 프로세스(700)를 도시하고 있다. 상기 플로우 차트가 일련의 연속적인 단계들을 도시하고 있다고 할지라도, 별도로 명백하게 언급되지 않는 한, 특정 순서의 성능, 동시에 또는 오버랩 방식 이외의 그 직렬적인 단계들 또는 부분들의 성능, 또는 매개 또는 중개 단계들의 발생 없이 배타적으로 도시되는 단계들의 성능의 시퀀스로부터 어떤 추론도 도출되어서는 안 된다. 도시되어 있는 예제에 도시되어 있는 프로세스는 일 예로 클라이언트 디바이스에 포함되어 있는 프로세싱 회로에서 구현된다.
블록 705에서, 상기 클라이언트 디바이스(300)는 서버(200)로의 연결에 대한 트리거를 검출한다. 특정 실시예들에서, 상기 트리거는 상기 클라이언트 디바이스(300)에 대한 HTTP 응답에 포함된다. 특정 실시예들에서, 상기 서버(200)는 상기 DASH 클라이언트 디바이스(300)가 상기 서버(200)로 연결하는 것을 요청하기 위해 상기 MPD에 트리거를 삽입한다. 특정 실시예들에서, 상기 서버(200)는 상기 DASH 클라이언트 디바이스(300)가 상기 서버(200)로 연결하는 것을 요청하기 위해 상기 DASH 세그먼트에 트리거를 삽입한다. 특정 실시예들에서, 상기 서버(200)는 상기 DASH 클라이언트 디바이스(300)가 상기 서버(200)로 연결하는 것을 요청하기 위해 HTTP 응답에 포함되어 있는 전용 HTTP 헤더 필드를 사용하여 상기 클라이언트 디바이스(300)로 시그널한다. 특정 실시예들에서, 상기 서버(200)는 상기 DASH 클라이언트 디바이스(300)가 상기 서버(200)로 연결하는 것을 요청하기 위해 전용 HTTP 헤더 필드를 사용하여 상기 DASH 클라이언트 디바이스(300)로 트리거를 송신한다. 특정 실시예들에서, 상기 서버(200)는 상기 클라이언트 디바이스(300)가 상기 중개 서버로 연결하는 것이 요청된다는 것을 시그널하기 위해 엘리먼트를 상기 MPD에 삽입한다. 특정 실시예들에서, 상기 서버(200)는 상기 트리거를 DASH 세그먼트 요청에 대한 응답 바디의 일부로 포함한다. 상기 트리거는 상기 이벤트 메시징 프레임워크를 사용하는 것과 같이 상기 세그먼트 내부에 삽입되거나, 또는 이와는 달리, 상기 트리거는 전용 MIME 타입을 가지는 다중-파트 MIME의 일부로서 제공된다.
블록 710에서, 상기 클라이언트 디바이스(300)는 상기 서버(200)가 신뢰성있는 서버인지 알기 위해서 체크한다. 특정 실시예들에서, 상기 중개 서버로 연결하는 요청을 수신할 경우, DASH 클라이언트 디바이스(300)는 상기 서버가 신뢰성있는 서버인지, 그리고 상기 요청이 적법한 요청인지 여부를 인증한다.
상기 클라이언트 디바이스들이 블록 715에서 상기 서버(200)가 신뢰할 수 있다고 결정할 때, 상기 클라이언트 디바이스(300)는 블록 720에서 서버 URL(uniform resource locator)로 연결한다. 상기 클라이언트 디바이스가 블록 715에서 상기 서버(200)가 신뢰성 있지 않다고 결정할 때, 상기 클라이언트 디바이스(300)는 블록 725에서 상기 트리거를 무시하는 것과 같이 상기 요청을 무시한다.
특정 실시예들에서, 상기 서버(200)는 상기 DASH 클라이언트 디바이스(300)가 상기 서버(200)에 연결하는 것을 요청하기 위해 상기 MPD에 트리거를 삽입한다. 특정 실시예들에서, 상기 서버(200)는 상기 DASH 클라이언트 디바이스(300)가 상기 서버(200)에 연결하는 것을 요청하기 위해 상기 DASH 세그먼트에 트리거를 삽입한다. 특정 실시예들에서, 상기 서버(200)는 상기 DASH 클라이언트 디바이스(300)가 상기 서버(200)에 연결하는 것을 요청하기 위해 HTTP 응답에 포함되어 있는 전용 HTTP 헤더 필드를 사용하여 상기 클라이언트 디바이스(300)로 시그널한다.
HTTP 헤더 필드
특정 실시예들에서, 상기 서버(200)는 상기 DASH 클라이언트 디바이스(300)가 상기 서버(200)에 연결하는 것을 요청하기 위해 전용 HTTP 헤더 필드를 사용하여 상기 DASH 클라이언트 디바이스(300)로 트리거를 송신한다. 상기 HTTP 헤더 필드는 ABNF(Augmented Backus-Naur Form) 신택스(syntax)로 다음과 같이 정의될 수 있다:
X-Server-Event-Request = "X-Server-Event-Request" ":" absolute-url CRLF
예제 HTTP 요청은 다음과 같이 보여질 수 있다:
HTTP/1.1 200 OK
Date: Tue, 25 Feb 2014 10:00:00 GMT
Content-Type: video/mp4s
Content-Length: 135465564
X-Server-Event-Request: http://www.example.com/serverevent.php
상기 헤더 필드에 대한 다른 예제 ABNF 신택스는 다음과 같을 수 있다:
SAND-header-field = "X-MPEG-SAND" ":" element-address
element-address = absolute-URI
상기 SAND 헤더 필드는 HTTP GET 방법을 사용하여 상기 DASH 클라이언트 디바이스(300)에 의해 검색될 상기 SAND 메시지에 상기 URI를 제공한다.
MPD
특정 실시예들에서, 상기 서버(200)는 상기 클라이언트 디바이스(300)가 상기 중개 서버로 연결되는 것이 요청되는 것을 시그널하기 위해 상기 MPD에 엘리먼트를 추가한다.
DASH 세그먼트
특정 실시예들에서, 상기 서버(200)는 상기 트리거를 DASH 세그먼트 요청에 대한 응답 바디의 일부로서 포함한다. 상기 트리거는 상기 이벤트 메시징 프레임워크를 사용하는 것과 같이 상기 세그먼트 내부에 삽입되거나, 또는 이와는 달리, 상기 트리거는 전용 MIME 타입을 가지는 다중-파트 MIME 응답의 일부로서 제공된다.
신뢰성 있는 서버
특정 실시예들에서, 상기 중개 서버로 연결하는 것에 대한 요청을 수신할 경우, DASH 클라이언트 디바이스(300)는 상기 서버가 신뢰성 있는 서버인지 및 상기 요청이 적법한 요청인지를 인증한다.
이는 다음과 같은 방식들 중 하나로 수행될 수 있다:
(a) IP 어드레스: 상기 서버(200)의 IP 어드레스는 상기 클라이언트 디바이스들(300) 중 하나와 동일한 도메인에 존재한다;
(b) 기저 URL(Base URL): 상기 서버(200)에 대한 URL은 상기 MPD에 의해 제공되는 기저 URL들 중 하나와 동일한 도메인 네임(domain name)을 공유한다;
(c) 인증서(Certificate): SSL/TLS를 사용하여 상기 서버(200)의 인증서를 검색하고, 상기 인증서의 진위(authenticity)를 인증한다.
본 개시가 바람직한 실시예를 참조하여 설명되었다고 할지라도, 다양한 변경들 및 수정들이 해당 기술 분야의 당업자에게 제안될 수 있다. 본 개시는 첨부되는 청구항들의 범위 내에 존재하는 변경들 및 수정들을 포함할 것이다.

Claims (22)

  1. 서버에 있어서,
    적어도 하나의 클라이언트 디바이스에 연결하도록 구성되는 인터페이스와;
    프로세싱 회로를 포함하며,
    상기 프로세싱 회로는:
    상기 적어도 하나의 클라이언트 디바이스와 미디어 스트리밍 세션을 검출하고;
    상기 미디어 스트리밍 세션에 관한 정보를 상기 적어도 하나의 클라이언트 디바이스로 전달할 필요성을 결정하고;
    상기 적어도 하나의 클라이언트 디바이스로 트리거를 송신하고; 및
    상기 적어도 하나의 클라이언트 디바이스와 상기 미디어 스트리밍 세션에 관한 정보를 송신하기 위한 연결을 설립하도록 구성되고,
    상기 트리거는 상기 적어도 하나의 클라이언트 디바이스에게 상기 적어도 하나의 클라이언트 디바이스가 상기 서버와 상기 연결을 설립할 것을 요청하도록 구성되고,
    상기 트리거는 미디어 프리젠테이션 기술 (MPD) 하이퍼텍스트 전송 프로토콜 (hypertext transfer protocol: HTTP) 응답 또는 DASH(dynamic adaptive streaming over HTTP) 세그먼트 HTTP 응답 중 하나에 포함된 HTTP 헤더 필드에 삽입(embedded)됨을 특징으로 하는 서버.
  2. 제1항에 있어서,
    상기 프로세싱 회로는:
    복수의 클라이언트 디바이스들과 복수의 미디어 스트리밍 세션들을 검출하고,
    상기 복수의 미디어 스트리밍 세션들에 관한 정보들 중 상기 복수의 클라이언트 디바이스들 각각에게 송신할 정보를 결정하도록 구성됨을 특징으로 하는 서버.
  3. 제1항에 있어서,
    상기 HTTP 헤더 필드는 상기 미디어 스트리밍 세션에 관한 정보의 absolute-URI를 포함하는 ABNF(augmented backus-naur form) 신택스로 정의됨을 특징으로 하는 서버.
  4. 제1항에 있어서,
    상기 HTTP 헤더 필드는:
    X-Server-Event-Request = "X-Server-Event-Request" ":" absolute-url CRLF; 또는
    SAND-header-field = "X-MPEG-SAND" ":" element-address, element-address = absolute-URI 중 하나를 포함하는 ABNF(augmented backus-naur form) 신택스로 정의됨을 특징으로 하는 서버.
  5. 제1항에 있어서,
    상기 트리거가 상기 MPD HTTP 응답에 포함된 HTTP 헤더 필드에 삽입된 경우,
    상기 트리거는 상기 MPD HTTP 응답에 추가되는 엘리먼트를 포함하고, 상기 엘리먼트는 상기 적어도 하나의 클라이언트 디바이스가 중개 서버로 연결할 것을 요청하도록 구성됨을 특징으로 하는 서버.
  6. 클라이언트 디바이스에 있어서,
    서버와 통신 연결을 성립하도록 구성되는 안테나와;
    프로세싱 회로를 포함하며,
    상기 프로세싱 회로는:
    상기 서버와 미디어 스트리밍 세션에 관한 정보를 수신하기 위한 연결을 설립할 것을 요청하는 트리거를 검출하고; 및
    상기 트리거가 검출된 것에 대해 응답하여 상기 서버가 신뢰성 있는 서버인지를 인증하고,
    상기 서버가 신뢰성 있는 서버라는 것을 인증하는 것에 대해 응답하여, 상기 서버에 상기 연결을 설립하도록 구성되고,
    상기 트리거는 미디어 프리젠테이션 기술 (MPD) 하이퍼텍스트 전송 프로토콜 (hypertext transfer protocol: HTTP) 응답 또는 DASH(dynamic adaptive streaming over HTTP) 세그먼트 HTTP 응답 중 하나에 포함된 HTTP 헤더 필드에 삽입(embedded)됨을 특징으로 하는 클라이언트 디바이스.
  7. 제6항에 있어서,
    상기 HTTP 헤더 필드는 상기 미디어 스트리밍 세션에 관한 정보의 absolute-URI를 포함하는 ABNF(augmented backus-naur form) 신택스로 정의됨을 특징으로 하는 클라이언트 디바이스.
  8. 제6항에 있어서,
    상기 프로세싱 회로는 상기 요청이 적법한 요청인지 인증하도록 구성됨을 특징으로 하는 클라이언트 디바이스.
  9. 제8항에 있어서,
    상기 서버가 신뢰성 없거나 또는 상기 요청이 적법하지 않은 것으로 결정된 경우, 상기 프로세싱 회로는 상기 트리거를 무시하도록 구성됨을 특징으로 하는 클라이언트 디바이스.
  10. 제6항에 있어서,
    상기 HTTP 헤더 필드는:
    X-Server-Event-Request = "X-Server-Event-Request" ":" absolute-url CRLF; 또는
    SAND-header-field = "X-MPEG-SAND" ":" element-address, element-address = absolute-URI 중 하나를 포함하는 ABNF(augmented backus-naur form) 신택스로 정의됨을 특징으로 하는 클라이언트 디바이스.
  11. 제6항에 있어서,
    상기 트리거가 상기 MPD HTTP 응답에 포함된 HTTP 헤더 필드에 삽입된 경우,
    상기 트리거는 상기 MPD HTTP 응답에 추가되는 엘리먼트를 포함하고, 상기 엘리먼트는 상기 클라이언트 디바이스가 중개 서버로 연결할 것을 요청하도록 구성됨을 특징으로 하는 클라이언트 디바이스.
  12. 서버에 대한 방법에 있어서,
    적어도 하나의 클라이언트 디바이스와 미디어 스트리밍 세션을 검출하는 과정과;
    상기 미디어 스트리밍 세션에 관한 정보를 상기 적어도 하나의 클라이언트 디바이스로 전달할 필요성을 결정하는 과정과; 및
    상기 적어도 하나의 클라이언트 디바이스로 트리거를 송신하는 과정과-; 그리고
    상기 적어도 하나의 클라이언트 디바이스와 상기 미디어 스트리밍 세션에 관한 정보를 송신하기 위한 연결을 성립하는 과정을 포함하고,
    상기 트리거는 상기 적어도 하나의 클라이언트 디바이스에게 상기 적어도 하나의 클라이언트 디바이스가 상기 서버와 상기 연결을 설립할 것을 요청하도록 구성되고,
    상기 트리거는 미디어 프리젠테이션 기술 (MPD) 하이퍼텍스트 전송 프로토콜 (hypertext transfer protocol: HTTP) 응답 또는 DASH(dynamic adaptive streaming over HTTP) 세그먼트 HTTP 응답 중 하나에 포함된 HTTP 헤더 필드에 삽입(embedded)됨을 특징으로 하는 서버에 대한 방법.
  13. 제12항에 있어서,
    상기 HTTP 헤더 필드는 상기 미디어 스트리밍 세션에 관한 정보의 absolute-URI를 포함하는 ABNF(augmented backus-naur form) 신택스로 정의됨을 특징으로 하는 서버에 대한 방법.
  14. 제12항에 있어서,
    상기 HTTP 헤더 필드는:
    X-Server-Event-Request = "X-Server-Event-Request" ":" absolute-url CRLF; 또는
    SAND-header-field = "X-MPEG-SAND" ":" element-address, element-address = absolute-URI 중 하나를 포함하는 ABNF(augmented backus-naur form) 신택스로 정의됨을 특징으로 하는 서버에 대한 방법.
  15. 제12항에 있어서,
    상기 트리거가 상기 MPD HTTP 응답에 포함된 HTTP 헤더 필드에 삽입된 경우,
    상기 트리거는 상기 MPD HTTP 응답에 추가되는 엘리먼트를 포함하고, 상기 엘리먼트는 상기 적어도 하나의 클라이언트 디바이스가 중개 서버로 연결할 것을 요청하도록 구성됨을 특징으로 하는 서버에 대한 방법.
  16. 제12항에 있어서,
    복수의 클라이언트 디바이스들과 복수의 미디어 스트리밍 세션들을 검출하는 과정과,
    상기 복수의 미디어 스트리밍 세션들에 관한 정보들 중 상기 복수의 클라이언트 디바이스들 각각에게 송신할 정보를 결정하는 과정을 더 포함함을 특징으로 하는 서버에 대한 방법.
  17. 클라이언트 디바이스에 대한 방법에 있어서,
    서버와 미디어 스트리밍 세션에 관한 정보를 수신하기 위한 연결을 설립할 것을 요청하는 트리거를 검출하는 과정과;
    상기 트리거가 검출된 것에 대해 응답하여, 상기 서버가 신뢰성 있는 서버인지 인증하는 과정과; 및
    상기 서버가 신뢰성 있는 서버라는 것을 인증하는 것에 대해 응답하여, 상기 서버에 상기 연결을 설립하는 과정을 포함하고,
    상기 트리거는 미디어 프리젠테이션 기술 (MPD) 하이퍼텍스트 전송 프로토콜 (hypertext transfer protocol: HTTP) 응답 또는 DASH(dynamic adaptive streaming over HTTP) 세그먼트 HTTP 응답 중 하나에 포함된 HTTP 헤더 필드에 삽입(embedded)됨을 특징으로 하는 클라이언트 디바이스에 대한 방법.
  18. 제17항에 있어서,
    상기 HTTP 헤더 필드는 상기 미디어 스트리밍 세션에 관한 정보의 absolute-URI를 포함하는 ABNF(augmented backus-naur form) 신택스로 정의됨을 특징으로 하는 클라이언트 디바이스에 대한 방법.
  19. 제17항에 있어서,
    상기 HTTP 헤더 필드는:
    X-Server-Event-Request = "X-Server-Event-Request" ":" absolute-url CRLF; 또는
    SAND-header-field = "X-MPEG-SAND" ":" element-address, element-address = absolute-URI 중 하나를 포함하는 ABNF(augmented backus-naur form) 신택스로 정의됨을 특징으로 하는 클라이언트 디바이스에 대한 방법.
  20. 제17항에 있어서,
    상기 트리거가 상기 MPD HTTP 응답에 포함된 HTTP 헤더 필드에 삽입된 경우,
    상기 트리거는 상기 MPD HTTP 응답에 추가되는 엘리먼트를 포함하고, 상기 엘리먼트는 상기 클라이언트 디바이스가 중개 서버로 연결할 것을 요청하도록 구성됨을 특징으로 하는 클라이언트 디바이스에 대한 방법.
  21. 제17항에 있어서,
    상기 요청이 적법한 요청인지 인증하는 과정을 더 포함하는 클라이언트 디바이스에 대한 방법.
  22. 제21항에 있어서,
    상기 서버가 신뢰성 없거나 또는 상기 요청이 적법하지 않은 것으로 결정된 경우, 상기 트리거를 무시하는 과정을 더 포함하는 클라이언트 디바이스에 대한 방법.
KR1020167028120A 2014-03-10 2015-03-10 메시지들을 대쉬 클라이언트로 송신하는 방법 및 장치 KR102299004B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201461950611P 2014-03-10 2014-03-10
US61/950,611 2014-03-10
PCT/KR2015/002302 WO2015137702A1 (en) 2014-03-10 2015-03-10 Method and apparatus for transmitting messages to a dash client

Publications (2)

Publication Number Publication Date
KR20160132081A KR20160132081A (ko) 2016-11-16
KR102299004B1 true KR102299004B1 (ko) 2021-09-09

Family

ID=54018608

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167028120A KR102299004B1 (ko) 2014-03-10 2015-03-10 메시지들을 대쉬 클라이언트로 송신하는 방법 및 장치

Country Status (3)

Country Link
US (1) US10044831B2 (ko)
KR (1) KR102299004B1 (ko)
WO (1) WO2015137702A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9930084B2 (en) * 2014-06-30 2018-03-27 Echostar Technologies Llc Adaptive data segment delivery arbitration for bandwidth optimization
US10437288B2 (en) 2014-10-06 2019-10-08 Fasetto, Inc. Portable storage device with modular power and housing system
EP3745679B1 (en) * 2015-03-11 2024-05-01 Fasetto, Inc. Systems and methods for web api communication
WO2017138387A1 (ja) * 2016-02-12 2017-08-17 ソニー株式会社 情報処理装置および情報処理方法
EP3610627A4 (en) * 2017-04-14 2020-12-09 Intel Corporation SERVER AND NETWORK-SUPPORTED DYNAMIC ADAPTIVE STREAMING VIA HYPERTEXT TRANSPORT PROTOCOL SIGNALING
US11265356B2 (en) * 2018-02-22 2022-03-01 Sony Group Corporation Network assistance functions for virtual reality dyanmic streaming
KR102230980B1 (ko) 2019-07-08 2021-03-23 주식회사 엘지유플러스 클라이언트-서버 간 메시지 전달을 위한 연결 제어 방법 및 장치
KR20240027435A (ko) * 2022-08-23 2024-03-04 주식회사 팀그릿 실시간 데이터 송수신 방법 및 그 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140047496A1 (en) * 2012-08-07 2014-02-13 Kyungho Kim Method and an apparatus for processing a broadcast signal including an interactive broadcast service
KR101366437B1 (ko) * 2010-09-01 2014-02-27 한국전자통신연구원 스트리밍 콘텐츠 제공 장치 및 방법

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7882356B2 (en) * 2006-10-13 2011-02-01 Microsoft Corporation UPnP authentication and authorization
US8473743B2 (en) * 2010-04-07 2013-06-25 Apple Inc. Mobile device management
US9049497B2 (en) * 2010-06-29 2015-06-02 Qualcomm Incorporated Signaling random access points for streaming video data
WO2012059376A1 (en) * 2010-11-02 2012-05-10 Telefonaktiebolaget L M Ericsson (Publ) Methods and devices for media description delivery
EP2638682A4 (en) 2010-11-12 2014-07-23 Realnetworks Inc TRAFFIC MANAGEMENT IN ADAPTIVE STREAMING PROTOCOLS
TW201246873A (en) * 2011-02-11 2012-11-16 Interdigital Patent Holdings Method and apparatus for updating metadata cross reference to related applications
WO2013019261A1 (en) 2011-08-01 2013-02-07 Intel Corporation MULTI-HOP SINGLE SIGN-ON (SSO) FOR IDENTITY PROVIDER (IdP) ROAMING/PROXY
US8977704B2 (en) * 2011-12-29 2015-03-10 Nokia Corporation Method and apparatus for flexible caching of delivered media
US9264481B2 (en) * 2012-03-30 2016-02-16 Qualcomm Incorporated Responding to hypertext transfer protocol (HTTP) requests
ES2611362T3 (es) * 2012-04-25 2017-05-08 Huawei Technologies Co., Ltd. Sistemas y métodos para la integridad y autenticidad de segmentos para transmisión adaptativa en continuo
RU2614540C2 (ru) * 2012-11-13 2017-03-28 Телефонактиеболагет Л М Эрикссон (Пабл) Обработка мультимедийных данных
HUE037479T2 (hu) * 2013-01-17 2018-08-28 Intel Ip Corp Tartalom URL hitelesítés DASH-hoz
US20140281556A1 (en) * 2013-03-14 2014-09-18 Qualcomm Incorporated Media presentation description verification
US9674251B2 (en) * 2013-06-17 2017-06-06 Qualcomm Incorporated Mediating content delivery via one or more services
CN105532013B (zh) * 2013-07-12 2018-12-28 佳能株式会社 利用推送消息控制的自适应数据流传输方法
US20150032854A1 (en) * 2013-07-24 2015-01-29 Futurewei Technologies Inc. System and method for network-assisted adaptive streaming
CN105556922B (zh) * 2013-09-17 2019-06-28 瑞典爱立信有限公司 网络中的dash表示自适应
US10476930B2 (en) * 2014-01-06 2019-11-12 Intel IP Corporation Client/server signaling commands for dash
WO2015106022A1 (en) * 2014-01-08 2015-07-16 Futurewei Technologies, Inc. Method and system of quality of service (qos) negotiation for network assisted adaptive streaming
US9699229B2 (en) * 2014-01-16 2017-07-04 Qualcomm Incorporated Robust live operation of dash
US20150271233A1 (en) * 2014-03-20 2015-09-24 Samsung Electronics Co., Ltd. Method and apparatus for dash streaming using http streaming
US10110657B2 (en) * 2014-07-03 2018-10-23 Telefonaktiebolaget Lm Ericsson (Publ) System and method for pushing live media content in an adaptive streaming environment
US10079868B2 (en) * 2015-04-07 2018-09-18 Samsung Electronics Co., Ltd. Method and apparatus for flexible broadcast service over MBMS

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101366437B1 (ko) * 2010-09-01 2014-02-27 한국전자통신연구원 스트리밍 콘텐츠 제공 장치 및 방법
US20140047496A1 (en) * 2012-08-07 2014-02-13 Kyungho Kim Method and an apparatus for processing a broadcast signal including an interactive broadcast service

Also Published As

Publication number Publication date
US20150256582A1 (en) 2015-09-10
WO2015137702A1 (en) 2015-09-17
KR20160132081A (ko) 2016-11-16
US10044831B2 (en) 2018-08-07

Similar Documents

Publication Publication Date Title
KR102299004B1 (ko) 메시지들을 대쉬 클라이언트로 송신하는 방법 및 장치
US10433327B2 (en) Presence service using IMS based DASH service
JP6487076B2 (ja) インターネットプロトコル(ip)マルチメディア・サブシステム(ims)ベースのピアツーピア(p2p)コンテンツ配信
US11108570B2 (en) Method and apparatus for multimedia communication, and storage medium
KR101398319B1 (ko) 실시간 비디오 검출기
Kesavan et al. An investigation on adaptive HTTP media streaming Quality-of-Experience (QoE) and agility using cloud media services
US20150271233A1 (en) Method and apparatus for dash streaming using http streaming
US8000339B2 (en) Method and system for transparently transcoding a multicast stream
US10079868B2 (en) Method and apparatus for flexible broadcast service over MBMS
KR20150048179A (ko) 하이브리드 http 및 udp 콘텐츠 전달
US20150229685A1 (en) System and method for delivering an audio-visual content to a client device
EP3175599A1 (en) Systems and methods for selective transport accelerator operation
EP4060964B1 (en) Method and apparatus for processing multicast signal
JP6418665B2 (ja) Imsベースのdashサービスにおいて、プレゼンスサーバによりプレゼンス情報を供給する方法、および、プレゼンスサーバを介してプレゼンス情報を受信するユーザ機器(ue)
JP2017517221A (ja) Httpストリーミングを使用するdashストリーミングのための方法及び装置
Kaur et al. A survey of streaming protocols for video transmission
CN107438991B (zh) 经由多媒体广播多播服务的灵活广播服务的方法和装置

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