KR20180001559A - 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법 - Google Patents

방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법 Download PDF

Info

Publication number
KR20180001559A
KR20180001559A KR1020177033465A KR20177033465A KR20180001559A KR 20180001559 A KR20180001559 A KR 20180001559A KR 1020177033465 A KR1020177033465 A KR 1020177033465A KR 20177033465 A KR20177033465 A KR 20177033465A KR 20180001559 A KR20180001559 A KR 20180001559A
Authority
KR
South Korea
Prior art keywords
message
information
service
subscription
request
Prior art date
Application number
KR1020177033465A
Other languages
English (en)
Inventor
양승률
문경수
고우석
홍성룡
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Publication of KR20180001559A publication Critical patent/KR20180001559A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H60/00Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
    • H04H60/29Arrangements for monitoring broadcast services or broadcast-related services
    • H04H60/33Arrangements for monitoring the users' behaviour or opinions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/858Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
    • H04N21/8586Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot by using a URL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H20/00Arrangements for broadcast or for distribution combined with broadcast
    • H04H20/42Arrangements for resource management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H20/00Arrangements for broadcast or for distribution combined with broadcast
    • H04H20/53Arrangements specially adapted for specific applications, e.g. for traffic information or for mobile receivers
    • H04H20/59Arrangements specially adapted for specific applications, e.g. for traffic information or for mobile receivers for emergency or urgency
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H20/00Arrangements for broadcast or for distribution combined with broadcast
    • H04H20/86Arrangements characterised by the broadcast information itself
    • H04H20/93Arrangements characterised by the broadcast information itself which locates resources of other pieces of information, e.g. URL [Uniform Resource Locator]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H60/00Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
    • H04H60/35Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users
    • H04H60/38Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users for identifying broadcast time or space
    • H04H60/40Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users for identifying broadcast time or space for identifying broadcast time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H60/00Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
    • H04H60/35Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users
    • H04H60/46Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users for recognising users' preferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H60/00Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
    • H04H60/68Systems specially adapted for using specific information, e.g. geographical or meteorological information
    • H04H60/72Systems specially adapted for using specific information, e.g. geographical or meteorological information using electronic programme guides [EPG]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H60/00Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
    • H04H60/68Systems specially adapted for using specific information, e.g. geographical or meteorological information
    • H04H60/73Systems specially adapted for using specific information, e.g. geographical or meteorological information using meta-information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H60/00Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
    • H04H60/76Arrangements characterised by transmission systems other than for broadcast, e.g. the Internet
    • H04H60/78Arrangements characterised by transmission systems other than for broadcast, e.g. the Internet characterised by source locations or destination locations
    • H04H60/80Arrangements characterised by transmission systems other than for broadcast, e.g. the Internet characterised by source locations or destination locations characterised by transmission among terminal devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/233Processing of audio elementary streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2383Channel coding or modulation of digital bit-stream, e.g. QPSK modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2387Stream processing in response to a playback request from an end-user, e.g. for trick-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/239Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
    • H04N21/2393Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25866Management of end-user data
    • H04N21/25891Management of end-user data being end-user preferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/4104Peripherals receiving signals from specially adapted client devices
    • H04N21/4126The peripheral being portable, e.g. PDAs or mobile phones
    • H04N21/41265The peripheral being portable, e.g. PDAs or mobile phones having a remote control device for bidirectional communication between the remote control device and client device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/439Processing of audio elementary streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47217End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/64322IP

Abstract

본 발명은 방송 신호를 전송하는 방법을 제안한다. 본 발명에 따른 방송 신호를 전송하는 방법은, 지상파 방송망과 인터넷 망을 사용하는 차세대 하이브리드 방송을 지원하는 환경에서 차세대 방송 서비스를 지원할 수 있는 시스템을 제안한다. 또한, 차세대 하이브리드 방송을 지원하는 환경에서, 지상파 방송망과 인터넷 망을 모두 아우를 수 있는 효율적인 시그널링 방안을 제안한다.

Description

방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법
본 발명은 방송 신호 송신 장치, 방송 신호 수신 장치, 및 방송 신호 송수신 방법에 관한 것이다.
아날로그 방송 신호 송신이 종료됨에 따라, 디지털 방송 신호를 송수신하기 위한 다양한 기술이 개발되고 있다. 디지털 방송 신호는 아날로그 방송 신호에 비해 더 많은 양의 비디오/오디오 데이터를 포함할 수 있고, 비디오/오디오 데이터뿐만 아니라 다양한 종류의 부가 데이터를 더 포함할 수 있다.
즉, 디지털 방송 시스템은 HD(High Definition) 이미지, 멀티채널(multi channel, 다채널) 오디오, 및 다양한 부가 서비스를 제공할 수 있다. 그러나, 디지털 방송을 위해서는, 많은 양의 데이터 전송에 대한 데이터 전송 효율, 송수신 네트워크의 견고성(robustness), 및 모바일 수신 장치를 고려한 네트워크 유연성(flexibility)이 향상되어야 한다.
본 발명의 목적에 따라, 여기에 포함되고 대략적으로 기재된 바와 같이, 본 발명은 지상파 방송망과 인터넷 망을 사용하는 차세대 하이브리드 방송을 지원하는 환경에서 차세대 방송 서비스를 효과적으로 지원할 수 있는 시스템 및 관련된 시그널링 방안을 제안한다.
본 발명은 방송망과 인터넷 망을 모두 사용하는 하이브리드 방송을 효율적으로 제공하는 방법을 제안한다.
본 발명은 기본적인 방송 서비스에 대한 앱을 기반으로 한 앱 기반 인핸스먼트를 제공하는 방법을 제안한다.
본 발명은 앱 기반 인핸스먼트를 방송 서비스에 싱크를 맞추어 제공하는 방법을 제안한다.
본 발명은 PD 와 CD 간의 다양한 프로토콜에 따른 아키텍쳐를 제안하며, 아키텍쳐에 따라 PD 와 CD, 앱과 앱 간의 커뮤니케이션 방안을 제안한다.
본 발명은 PD 측에서 CD 측으로 ESG, EAS 등의 정보를 효과적으로 전달하기 위한 아키텍쳐 및 시그널링 방안을 제안한다.
본 발명에 대해 더욱 이해하기 위해 포함되며 본 출원에 포함되고 그 일부를 구성하는 첨부된 도면은 본 발명의 원리를 설명하는 상세한 설명과 함께 본 발명의 실시예를 나타낸다.
도 1은 본 발명의 일 실시예에 따른 프로토콜 스택을 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 서비스 디스커버리 과정을 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 LLS (Low Level Signaling) 테이블 및 SLT (Service List Table)를 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른, ROUTE 로 전달되는 USBD 및 S-TSID 를 도시한 도면이다.
도 5는 본 발명의 일 실시예에 따른, MMT 로 전달되는 USBD 를 도시한 도면이다.
도 6은 본 발명의 일 실시예에 따른 링크 레이어(Link Layer) 동작을 도시한 도면이다.
도 7은 본 발명의 일 실시예에 따른 LMT (Link Mapping Table) 를 도시한 도면이다.
도 8은 본 발명의 일 실시예에 따른 차세대 방송 서비스에 대한 방송 신호 송신 장치의 구조를 나타낸다.
도 9는 본 발명의 일 실시예에 따른 타임 인터리버의 라이팅 (writing) 오퍼레이션을 나타낸다.
도 10은 본 발명의 일 실시예에 따른 프리퀀시 인터리버에 포함된 각 FFT 모드에 따른 메인-PRBS 제너레이터와 서브-PRBS 제너레이터로 구성된 인터리빙 어드레스 제너레이터의 블록 다이아그램을 나타낸 도면이다.
도 11는 본 발명의 일 실시예에 따른 서비스 시간 정보의 전달을 위한 state variable들을 나타낸 도면이다.
도 12는 본 발명의 일 실시예에 따른 서비스 시간 정보를 나타낸 도면이다.
도 13은 본 발명의 일 실시예에 따른 서비스 시간 정보의 XML 포맷을 나타낸 도면이다.
도 14는 본 발명의 일 실시예에 따른 방송 수신 장치의 동작을 나타낸 흐름도이다.
도 15은 본 발명의 또 다른 실시예에 따른, JSON 포맷의 서비스 시간 정보(ServiceTimeInfo) 를 도시한 도면이다.
도 16는 본 발명의 일 실시예에 따른 메인 피지컬 디바이스 (Main Physical Device) 및 컴페니언 피지컬 디바이스 (Companion Physical Device)의 구성을 나타낸 도면이다.
도 17는 본 발명의 일 실시예에 따른, UPnP 기반의 PD-CD 아키텍쳐를 도시한 도면이다.
도 18은 본 발명의 다른 실시예에 따른, UPnP 기반의 PD-CD 아키텍쳐를 도시한 도면이다.
도 19은 본 발명의 또 다른 실시예에 따른, UPnP 기반의 PD-CD 아키텍쳐를 도시한 도면이다.
도 20은 본 발명의 일 실시예에 따른, UPnP 기반의 PD-CD 아키텍쳐에서의 인터랙션 다이어그램을 도시한 도면이다.
도 21는 본 발명의 일 실시예에 따른, Websocket 기반의 PD-CD 아키텍쳐를 도시한 도면이다.
도 22은 본 발명의 다른 실시예에 따른, Websocket 기반의 PD-CD 아키텍쳐를 도시한 도면이다.
도 23은 본 발명의 또 다른 실시예에 따른, Websocket 기반의 PD-CD 아키텍쳐를 도시한 도면이다.
도 24는 본 발명의 일 실시예에 따른, Websocket 기반의 PD-CD 아키텍쳐에서의 앱 투 앱 커뮤니케이션(App to app communication) 을 도시한 도면이다.
도 25은 본 발명의 일 실시예에 따른, HTTP 기반의 PD-CD 아키텍쳐를 도시한 도면이다.
도 26는 본 발명의 다른 실시예에 따른, HTTP 기반의 PD-CD 아키텍쳐를 도시한 도면이다.
도 27는 본 발명의 일 실시예에 따른, Websocket & HTTP 기반의 PD-CD 아키텍쳐를 도시한 도면이다.
도 28은 본 발명의 일 실시예에 따른, PD (Primary Device) 의 디스커버리를 위해 사용되는 메시지들의 포맷을 도시한 도면이다.
도 29은 본 발명의 일 실시예에 따른, DDD (Device Description Document) 를 이용한 Websocket 엔드포인트 또는 HTTP 서비스 URL 의 디스커버리 과정을 도시한 도면이다.
도 30은 본 발명의 일 실시예에 따른, DDD 를 이용한 Websocket 엔드포인트 또는 HTTP 서비스 URL 의 디스커버리 과정에 있어서, DDD 의 요청 메시지와 DDD 의 포맷을 도시한 도면이다.
도 31는 본 발명의 일 실시예에 따른, DDD 를 이용한 Websocket 엔드포인트 또는 HTTP 서비스 URL 의 디스커버리 과정에 있어서, DDD 의 포맷을 도시한 도면이다.
도 32은 본 발명의 다른 실시예에 따른, DDD 를 이용한 Websocket 엔드포인트 또는 HTTP 서비스 URL 의 디스커버리 과정에 있어서, DDD 의 포맷을 도시한 도면이다.
도 33은 본 발명의 일 실시예에 따른, DDD 요청에 대한 응답(response) 헤더를 이용한 Websocket 엔드포인트 또는 HTTP 서비스 URL 의 디스커버리 과정을 도시한 도면이다.
도 34는 본 발명의 일 실시예에 따른, DDD 요청에 대한 응답(response) 헤더를 이용한 Websocket 엔드포인트 또는 HTTP 서비스 URL 의 디스커버리 과정에 있어서, 응답 헤더의 포맷을 도시한 도면이다.
도 35은 본 발명의 일 실시예에 따른, DDD 요청에 대한 응답(response) 헤더의 URL 을 이용한 Websocket 엔드포인트 또는 HTTP 서비스 URL 의 디스커버리 과정을 도시한 도면이다.
도 36는 본 발명의 일 실시예에 따른, DDD 요청에 대한 응답(response) 헤더의 URL 을 이용한 Websocket 엔드포인트 또는 HTTP 서비스 URL 의 디스커버리 과정에 있어서, GET 요청 및 그에 따른 응답 메시지 포맷들을 도시한 도면이다.
도 37는 본 발명의 다른 실시예에 따른, DDD 요청에 대한 응답(response) 헤더의 URL 을 이용한 Websocket 엔드포인트 또는 HTTP 서비스 URL 의 디스커버리 과정에 있어서, 주소 정보를 전달하는 응답 메시지의 포맷을 도시한 도면이다.
도 38은 본 발명의 일 실시예에 따른, Websocket 기반의 핸드쉐이크(Handshake) & 연결 과정을 도시한 도면이다 (디스커버리 이후).
도 39은 본 발명의 일 실시예에 따른, Websocket 기반의 앱투앱 커뮤니케이션을 위한 핸드쉐이크(Handshake) & 연결 과정을 도시한 도면이다(디스커버리 이후).
도 40은 본 발명의 일 실시예에 따른, Websocket 기반의 2 웨이(way) 커뮤니케이션 과정을 도시한 도면이다 (연결 이후).
도 41는 본 발명의 일 실시예에 따른, Websocket 기반의 앱투앱 2 웨이(way) 커뮤니케이션 과정을 도시한 도면이다 (연결 이후 / CD to PD).
도 42은 본 발명의 일 실시예에 따른, Websocket 기반의 앱투앱 2 웨이(way) 커뮤니케이션 과정을 도시한 도면이다 (연결 이후 / PD to CD).
도 43은 본 발명의 일 실시예에 따른, HTTP 기반의 요청-응답(Request-Response) 과정을 도시한 도면이다 (디스커버리 이후).
도 44는 본 발명의 일 실시예에 따른 PD 에서 방송 서비스를 제공하는 방법을 도시한 도면이다.
도 45는 본 발명의 일 실시예에 따른 PD 로서 동작하는 방송 수신 장치를 도시한 도면이다.
도 46은 본 발명의 일 실시예에 따른 특징들에 적용되는 프로토콜을 나타낸 도면이다.
도 47은 본 발명의 일 실시예에 따른 HTTP Request를 위한 메시지 구조 포맷 (Message Structure Format)을 나타낸 도면이다.
도 48은 본 발명의 일 실시예에 따른 HTTP Response 및/또는 WebSocket Response를 위한 메시지 구조 포맷을 나타낸 도면이다.
도 49는 본 발명의 일 실시예에 따른 WebSocket Subscription를 위한 메시지 구조 포맷을 나타낸 도면이다.
도 50은 본 발명의 일 실시예에 따른 WebSocket Subscription Renewal을 위한 메시지 구조 포맷을 나타낸 도면이다.
도 51은 본 발명의 일 실시예에 따른 WebSocket Subscription Cancel을 위한 메시지 구조 포맷을 나타낸 도면이다.
도 52는 본 발명의 일 실시예에 따른 HTTP Response를 위한 메시지 구조 포맷을 나타낸 도면이다.
도 53은 본 발명의 일 실시예에 따른 웹소켓 메시지를 위한 메시지 구조 포맷을 나타낸 도면이다.
도 54는 본 발명의 일 실시예에 따른 XML 형식의 ATSCCS_WSMessage 엘레먼트를 나타낸 도면이다.
도 55는 본 발명의 일 실시예에 따른 JSON 형식의 ATSCCS_WSMessage 엘레먼트를 나타낸 도면이다.
도 56은 본 발명의 일 실시예에 따른 웹소켓 서브스크립션 메시지 포맷 및 웹소켓 노티피케이션 메시지 포맷을 나타낸 도면이다.
도 57은 본 발명의 일 실시예에 따른 JSON 형식의 ATSCCS_WSSubMessage 엘레먼트 및 ATSCCS_WSMessage 엘레먼트를 나타낸 도면이다.
도 58은 본 발명의 다른 실시예에 따른 웹소켓 서브스크립션 메시지 포맷 및 웹소켓 노티피케이션 메시지 포맷을 나타낸 도면이다.
도 59는 본 발명의 일 실시예에 따른 JSON 형식의 ATSCCS_WSMessage 엘레먼트 및 ATSCCS_Message 엘레먼트를 나타낸 도면이다.
도 60은 본 발명의 일 실시예에 따른 미디어 플레이백 상태 통신을 위한 웹소켓 서브스크립션 메시지 포맷 및 웹소켓 노티피케이션 메시지 포맷을 나타낸 도면이다.
도 61은 본 발명의 일 실시예에 따른 방송 신호 수신 방법을 나타내는 도면이다.
도 62은 본 발명의 일 실시예에 따른 방송 신호 송신 방법을 나타내는 도면이다.
발명의 실시를 위한 최선의 형태
본 발명의 바람직한 실시예에 대해 구체적으로 설명하며, 그 예는 첨부된 도면에 나타낸다. 첨부된 도면을 참조한 아래의 상세한 설명은 본 발명의 실시예에 따라 구현될 수 있는 실시예만을 나타내기보다는 본 발명의 바람직한 실시예를 설명하기 위한 것이다. 다음의 상세한 설명은 본 발명에 대한 철저한 이해를 제공하기 위해 세부 사항을 포함한다. 그러나 본 발명이 이러한 세부 사항 없이 실행될 수 있다는 것은 당업자에게 자명하다.
본 발명에서 사용되는 대부분의 용어는 해당 분야에서 널리 사용되는 일반적인 것들에서 선택되지만, 일부 용어는 출원인에 의해 임의로 선택되며 그 의미는 필요에 따라 다음 설명에서 자세히 서술한다. 따라서 본 발명은 용어의 단순한 명칭이나 의미가 아닌 용어의 의도된 의미에 근거하여 이해되어야 한다.
본 발명은 차세대 방송 서비스에 대한 방송 신호 송신 및 수신 장치 및 방법을 제공한다. 본 발명의 일 실시예에 따른 차세대 방송 서비스는 지상파 방송 서비스, 모바일 방송 서비스, UHDTV 서비스 등을 포함한다. 본 발명은 일 실시예에 따라 비-MIMO (non-Multiple Input Multiple Output) 또는 MIMO 방식을 통해 차세대 방송 서비스에 대한 방송 신호를 처리할 수 있다. 본 발명의 일 실시예에 따른 비-MIMO 방식은 MISO (Multiple Input Single Output) 방식, SISO (Single Input Single Output) 방식 등을 포함할 수 있다. 본 발명은 특정 용도에 요구되는 성능을 달성하면서 수신기 복잡도를 최소화하기 위해 최적화된 피지컬 프로파일 (또는 시스템)을 제안한다.
도 1 은 본 발명의 일 실시예에 따른 프로토콜 스택을 도시한 도면이다.
서비스는 복수개의 레이어를 거쳐 수신기로 전달될 수 있다. 먼저 송신측에서는 서비스 데이터를 생성할 수 있다. 송신측의 딜리버리 레이어에서는 서비스 데이터에 전송을 위한 처리를 수행하고, 피지컬 레이어에서는 이를 방송 신호로 인코딩하여 방송망 또는 브로드밴드를 통해 전송할 수 있다.
여기서 서비스 데이터들은 ISO BMFF (base media file format) 에 따른 포맷으로 생성될 수 있다. ISO BMFF 미디어 파일은 방송망/브로드밴드 딜리버리, 미디어 인캡슐레이션(media encapsulation) 및/또는 동기화 포맷(synchronization format) 으로 사용될 수 있다. 여기서 서비스 데이터는 서비스와 관련된 모든 데이터로서, 리니어 서비스를 이루는 서비스 컴포넌트들, 그에 대한 시그널링 정보, NRT (Non Real Time) 데이터, 기타 파일들 등을 포함하는 개념일 수 있다.
딜리버리 레이어에 대해 설명한다. 딜리버리 레이어는 서비스 데이터에 대한 전송 기능을 제공할 수 있다. 서비스 데이터는 방송망및/또는 브로드밴드를 통해 전달될 수 있다.
방송망을 통한 서비스 딜리버리(broadcast service delivery)에 있어 두가지 방법이 있을 수 있다.
첫번째 방법은 MMT (MPEG Media Transport) 에 근거하여, 서비스 데이터들을 MPU (Media Processing Units) 들로 처리하고, 이를 MMTP (MMT protocol) 를 이용하여 전송하는 것일 수 있다. 이 경우, MMTP 를 통해 전달되는 서비스 데이터에는, 리니어 서비스를 위한 서비스 컴포넌트들 및/또는 그에 대한 서비스 시그널링 정보 등이 있을 수 있다.
두번째 방법은 MPEG DASH 에 근거하여, 서비스 데이터들을 DASH 세그먼트들로 처리하고, 이를 ROUTE (Real time Object delivery over Unidirectional Transport) 를 이용하여 전송하는 것일 수 있다. 이 경우, ROUTE 프로토콜을 통해 전달되는 서비스 데이터에는, 리니어 서비스를 위한 서비스 컴포넌트들, 그에 대한 서비스 시그널링 정보 및/또는 NRT 데이터 등이 있을 수 있다. 즉, NRT 데이터 및 파일 등의 논 타임드(non timed) 데이터는 ROUTE 를 통해서 전달될 수 있다.
MMTP 또는 ROUTE 프로토콜에 따라 처리된 데이터는 UDP / IP 레이어를 거쳐 IP 패킷들로 처리될 수 있다. 방송망을 통한 서비스 데이터 전달에 있어서, SLT (Service List Table) 역시 UDP / IP 레이어를 거쳐 방송망을 통해 전달될 수 있다. SLT 는 LLS (Low Level Signaling) 테이블에 포함되어 전달될 수 있는데, SLT, LLS 테이블에 대해서는 후술한다.
IP 패킷들은 링크 레이어에서 링크 레이어 패킷들로 처리될 수 있다. 링크 레이어는 상위 레이어에서 전달되는 다양한 포맷의 데이터를, 링크 레이어 패킷으로 인캡슐레이션한 후, 피지컬 레이어에 전달할 수 있다. 링크 레이어에 대해서는 후술한다.
하이브리드 서비스 딜리버리(hybrid service delivery) 에 있어서는, 적어도 하나 이상의 서비스 엘레멘트가 브로드밴드 패쓰(path) 를 통해 전달될 수 있다. 하이브리드 서비스 딜리버리의 경우, 브로드밴드로 전달되는 데이터에는, DASH 포맷의 서비스 컴포넌트들, 그에 대한 서비스 시그널링 정보 및/또는 NRT 데이터 등이 있을 수 있다. 이 데이터들은 HTTP/TCP/IP 를 거쳐 처리되고, 브로드밴드 전송을 위한 링크 레이어를 거쳐, 브로드밴드 전송을 위한 피지컬 레이어로 전달될 수 있다.
피지컬 레이어는 딜리버리 레이어(상위 레이어 및/또는 링크 레이어)로부터 전달받은 데이터를 처리하여, 방송망 또는 브로드밴드를 통하여 전송할 수 있다. 피지컬 레이어에 대한 자세한 사항은 후술한다.
서비스에 대해 설명한다. 서비스는 전체적으로 사용자에게 보여주는 서비스 컴포넌트의 컬렉션일 수 있고, 컴포넌트는 여러 미디어 타입의 것일 수 있고, 서비스는 연속적이거나 간헐적일 수 있으며, 서비스는 실시간이거나 비실시간일 수 있고, 실시간 서비스는 TV 프로그램의 시퀀스로 구성될 수 있다.
서비스는 여러 타입을 가질 수 있다. 첫 번째로 서비스는 앱 기반 인헨스먼트를 가질 수 있는 리니어 오디오/비디오 또는 오디오만의 서비스일 수 있다. 두 번째로 서비스는 다운로드된 어플리케이션에 의해 그 재생/구성 등이 제어되는 앱 기반 서비스일 수 있다. 세 번째로 서비스는 ESG (Electronic Service Guide) 를 제공하는 ESG 서비스일 수 있다. 네 번째로 긴급 경보 정보를 제공하는 EA (Emergency Alert) 서비스일 수 있다.
앱 기반 인헨스먼트가 없는 리니어 서비스가 방송망을 통해 전달되는 경우, 서비스 컴포넌트는 (1) 하나 이상의 ROUTE 세션 또는 (2) 하나 이상의 MMTP 세션에 의해 전달될 수 있다.
앱 기반 인헨스먼트가 있는 리니어 서비스가 방송망을 통해 전달되는 경우, 서비스 컴포넌트는 (1) 하나 이상의 ROUTE 세션 및 (2) 0개 이상의 MMTP 세션에 의해 전달될 수 있다. 이 경우 앱 기반 인핸스먼트에 사용되는 데이터는 NRT 데이터 또는 기타 파일 등의 형태로 ROUTE 세션을 통해 전달될 수 있다. 본 발명의 일 실시예에서, 하나의 서비스의 리니어 서비스 컴포넌트(스트리밍 미디어 컴포넌트)들이 두 프로토콜을 동시에 사용해 전달되는 것이 허용되지 않을 수 있다.
앱 기반 서비스가 방송망을 통해 전달되는 경우, 서비스 컴포넌트는 하나 이상의 ROUTE 세션에 의해 전달될 수 있다. 이 경우, 앱 기반 서비스에 사용되는 서비스 데이터는 NRT 데이터 또는 기타 파일 등의 형태로 ROUTE 세션을 통해 전달될 수 있다.
또한, 이러한 서비스의 일부 서비스 컴포넌트 또는 일부 NRT 데이터, 파일 등은 브로드밴드를 통해 전달될 수 있다(하이브리드 서비스 딜리버리).
즉, 본 발명의 일 실시예에서, 하나의 서비스의 리니어 서비스 컴포넌트들은 MMT 프로토콜을 통해 전달될 수 있다. 본 발명의 다른 실시예에서, 하나의 서비스의 리니어 서비스 컴포넌트들은 ROUTE 프로토콜을 통해 전달될 수 있다. 본 발명의 또 다른 실시예에서, 하나의 서비스의 리니어 서비스 컴포넌트 및 NRT 데이터(NRT 서비스 컴포넌트)들은 ROUTE 프로토콜을 통해 전달될 수 있다. 본 발명의 또 다른 실시예에서, 하나의 서비스의 리니어 서비스 컴포넌트들은 MMT 프로토콜을 통해 전달되고, NRT 데이터(NRT 서비스 컴포넌트)들은 ROUTE 프로토콜을 통해 전달될 수 있다. 전술한 실시예들에서, 서비스의 일부 서비스 컴포넌트 또는 일부 NRT 데이터들은 브로드밴드를 통해 전달될 수 있다. 여기서 앱 기반 서비스 내지 앱 기반 인핸스먼트에 관한 데이터들은 NRT 데이터 형태로, ROUTE 에 따른 방송망을 통해 전달되거나 브로드밴드를 통해 전달될 수 있다. NRT 데이터는 로컬리 캐쉬드 데이터(Locally cashed data) 등으로 불릴 수도 있다.
각각의 ROUTE 세션은 서비스를 구성하는 컨텐츠 컴포넌트를 전체적으로 또는 부분적으로 전달하는 하나 이상의 LCT 세션을 포함한다. 스트리밍 서비스 딜리버리에서, LCT 세션은 오디오, 비디오, 또는 클로즈드 캡션 스트림과 같은 사용자 서비스의 개별 컴포넌트를 전달할 수 있다. 스트리밍 미디어는 DASH 세그먼트로 포맷된다.
각각의 MMTP 세션은 MMT 시그널링 메시지 또는 전체 또는 일부 컨텐츠 컴포넌트를 전달하는 하나 이상의 MMTP 패킷 플로우를 포함한다. MMTP 패킷 플로우는 MMT 시그널링 메시지 또는 MPU 로 포맷된 컴포넌트를 전달할 수 있다.
NRT 사용자 서비스 또는 시스템 메타데이터의 딜리버리를 위해, LCT 세션은 파일 기반의 컨텐츠 아이템을 전달한다. 이들 컨텐츠 파일은 NRT 서비스의 연속적 (타임드) 또는 이산적 (논 타임드) 미디어 컴포넌트, 또는 서비스 시그널링이나 ESG 프레그먼트와 같은 메타데이터로 구성될 수 있다. 서비스 시그널링이나 ESG 프레그먼트와 같은 시스템 메타데이터의 딜리버리 또한 MMTP의 시그널링 메시지 모드를 통해 이루어질 수 있다.
수신기에서는 튜너가 주파수들을 스캐닝하다가, 특정 주파수에서 방송 시그널을 감지할 수 있다. 수신기는 SLT 를 추출해 이를 처리하는 모듈로 보낼 수 있다. SLT 파서는 SLT 를 파싱하고 데이터를 획득해 채널 맵에 저장할 수 있다. 수신기는 SLT 의 부트스트랩 정보를 획득하고 ROUTE 또는 MMT 클라이언트에 전달해줄 수 있다. 수신기는 이를 통해 SLS 를 획득할 수 있고, 저장할 수 있다. USBD 등이 획득될 수 있고, 이는 시그널링 파서에 의해 파싱될 수 있다.
도 2 는 본 발명의 일 실시예에 따른 서비스 디스커버리 과정을 도시한 도면이다.
피지컬 레이어의 방송 신호 프레임이 전달하는 브로드캐스트 스트림은 LLS (Low Level Signaling) 을 운반할 수 있다. LLS 데이터는 웰 노운(well known) IP 어드레스/포트 로 전달되는 IP 패킷의 페이로드를 통해서 운반될 수 있다. 이 LLS 는 그 타입에 따라 SLT 를 포함할 수 있다. LLS 데이터는 LLS 테이블의 형태로 포맷될 수 있다. LLS 데이터를 운반하는 매 UDP/IP 패킷의 첫번째 바이트는 LLS 테이블의 시작일 수 있다. 도시된 실시예와 달리 LLS 데이터를 전달하는 IP 스트림은, 다른 서비스 데이터들과 함께 같은 PLP 로 전달될 수도 있다.
SLT 는 빠른 채널 스캔을 통하여 수신기가 서비스 리스트를 생성할 수 있게 하고, SLS 를 로케이팅(locating) 하기 위한 액세스 정보를 제공한다. SLT 는 부트스트랩 정보를 포함하는데, 이 부트스트랩 정보는 수신기가 각각의 서비스에 대한 SLS (Service Layer Signaling) 을 획득할 수 있도록 한다. SLS, 즉 서비스 시그널링 정보가 ROUTE 를 통해 전달되는 경우, 부트스트랩 정보는 SLS 를 운반하는 LCT 채널 내지 그 LCT 채널을 포함하는 ROUTE 세션의 데스티네이션 IP 어드레스 및 데스티네이션 포트 정보를 포함할 수 있다. SLS 가 MMT 를 통해 전달되는 경우, 부트스트랩 정보는 SLS 를 운반하는 MMTP 세션의 데스티네이션 IP 어드레스 및 데스티네이션 포트 정보를 포함할 수 있다.
도시된 실시예에서, SLT 가 기술하는 서비스 #1 의 SLS 는 ROUTE 를 통해 전달되고, SLT 는 해당 SLS 가 전달되는 LCT 채널을 포함하는 ROUTE 세션에 대한 부트스트랩 정보(sIP1, dIP1, dPort1) 를 포함할 수 있다. SLT 가 기술하는 서비스 #2 의 SLS 는 MMT 를 통해 전달되고, SLT 는 해당 SLS 가 전달되는 MMTP 패킷 플로우를 포함하는 MMTP 세션에 대한 부트스트랩 정보(sIP2, dIP2, dPort2) 를 포함할 수 있다.
SLS 는 해당 서비스에 대한 특성을 기술하는 시그널링 정보로서, 해당 서비스 및 해당 서비스의 서비스 컴포넌트를 획득하기 위한 정보를 제공하거나, 해당 서비스를 유의미하게 재생하기 위한 수신기 캐패빌리티 정보 등을 포함할 수 있다. 각 서비스에 대해 별개의 서비스 시그널링을 가지면 수신기는 브로드캐스트 스트림 내에서 전달되는 전체 SLS을 파싱할 필요 없이 원하는 서비스에 대한 적절한 SLS를 획득하면 된다.
SLS 가 ROUTE 프로토콜을 통해 전달되는 경우, SLS 는 SLT 가 지시하는 ROUTE 세션의 특정(dedicated) LCT 채널을 통해 전달될 수 있다. 실시예에 따라 이 LCT 채널은 tsi = 0 로 식별되는 LCT 채널일 수 있다. 이 경우 SLS 는 USBD/USD (User Service Bundle Description / User Service Description), S-TSID (Service-based Transport Session Instance Description) 및/또는 MPD (Media Presentation Description) 를 포함할 수 있다.
여기서 USBD 내지 USD 는 SLS 프래그먼트 중 하나로서, 서비스의 구체적 기술적 정보들을 기술하는 시그널링 허브로서 역할할 수 있다. USBD 는 서비스 식별 정보, 디바이스 캐패빌리티 정보 등을 포함할 수 있다. USBD 는 다른 SLS 프래그먼트(S-TSID, MPD 등) 에의 레퍼런스 정보(URI 레퍼런스)를 포함할 수 있다. 즉, USBD/USD 는 S-TSID 와 MPD 를 각각 레퍼런싱할 수 있다. 또한 USBD 는 수신기가 전송 모드(방송망/브로드밴드)를 결정할 수 있게 해주는 메타데이터 정보를 더 포함할 수 있다. USBD/USD 의 구체적 내용들에 대해서는 후술한다.
S-TSID 는 SLS 프래그먼트 중 하나로서, 해당 서비스의 서비스 컴포넌트를 운반하는 전송 세션에 대한 전체적인 세션 디스크립션 정보를 제공할 수 있다. S-TSID 는 해당 서비스의 서비스 컴포넌트가 전달되는 ROUTE 세션 및/또는 그 ROUTE 세션들의 LCT 채널에 대한 전송 세션 디스크립션 정보를 제공할 수 있다. S-TSID 는 하나의 서비스와 관련된 서비스 컴포넌트들의 컴포넌트 획득(acquisition) 정보를 제공할 수 있다. S-TSID 는, MPD 의 DASH 레프리젠테이션(Representation) 과 해당 서비스 컴포넌트의 tsi 간의 매핑을 제공할 수 있다. S-TSID 의 컴포넌트 획득 정보는 tsi, 관련 DASH 레프리젠테이션의 식별자의 형태로 제공될 수 있으며, 실시예에 따라 PLP ID 를 포함하거나 포함하지 않을 수 있다. 컴포넌트 획득 정보를 통해 수신기는 한 서비스의 오디오/비디오 컴포넌트들을 수집하고 DASH 미디어 세그먼트들의 버퍼링, 디코딩 등을 수행할 수 있다. S-TSID 는 전술한 바와 같이 USBD 에 의해 레퍼런싱될 수 있다. S-TSID 의 구체적 내용들에 대해서는 후술한다.
MPD 는 SLS 프래그먼트 중 하나로서, 해당 서비스의 DASH 미디어 프리젠테이션에 관한 디스크립션을 제공할 수 있다. MPD 는 미디어 세그먼트들에 대한 리소스 식별자(resource identifier) 를 제공하고, 식별된 리소스들에 대한 미디어 프리젠테이션 내에서의 컨텍스트 정보를 제공할 수 있다. MPD 는 방송망을 통해 전달되는 DASH 레프리젠테이션(서비스 컴포넌트)를 기술하고, 또한 브로드밴드를 통해 전달되는 추가적인 DASH 레프리젠테이션을 기술할 수 있다(하이브리드 딜리버리). MPD 는 전술한 바와 같이 USBD 에 의해 레퍼런싱될 수 있다.
SLS 가 MMT 프로토콜을 통해 전달되는 경우, SLS 는 SLT 가 지시하는 MMTP 세션의 특정(dedicated) MMTP 패킷 플로우을 통해 전달될 수 있다. 실시예에 따라 SLS 를 전달하는 MMTP 패킷들의 packet_id 는 00 의 값을 가질 수 있다. 이 경우 SLS 는 USBD/USD 및/또는 MMT Package (MP) 테이블을 포함할 수 있다.
여기서 USBD 는 SLS 프래그먼트의 하나로서, ROUTE 에서의 그것과 같이 서비스의 구체적 기술적 정보들을 기술할 수 있다. 여기서의 USBD 역시 다른 SLS 프래그먼트에의 레퍼런스 정보(URI 레퍼런스)를 포함할 수 있다. MMT 의 USBD 는 MMT 시그널링의 MP 테이블을 레퍼런싱할 수 있다. 실시예에 따라 MMT 의 USBD 는 S-TSID 및/또는 MPD 에의 레퍼런스 정보 또한 포함할 수 있다. 여기서의 S-TSID 는 ROUTE 프로토콜을 통해 전달되는 NRT 데이터를 위함일 수 있다. MMT 프로토콜을 통해 리니어 서비스 컴포넌트가 전달되는 경우에도 NRT 데이터는 ROUTE 프로토콜을 통해 전달될 수 있기 때문이다. MPD 는 하이브리드 서비스 딜리버리에 있어서, 브로드밴드로 전달되는 서비스 컴포넌트를 위함일 수 있다. MMT 의 USBD 의 구체적 내용들에 대해서는 후술한다.
MP 테이블은 MPU 컴포넌트들을 위한 MMT 의 시그널링 메시지로서, 해당 서비스의 서비스 컴포넌트를 운반하는 MMTP 세션에 대한 전체적인 세션 디스크립션 정보를 제공할 수 있다. 또한 MP 테이블은 이 MMTP 세션을 통해 전달되는 에셋(Asset) 에 대한 디스크립션을 포함할 수 있다. MP 테이블은 MPU 컴포넌트들을 위한 스트리밍 시그널링 정보로서, 하나의 서비스에 해당하는 에셋들의 리스트와 이 컴포넌트들의 로케이션 정보(컴포넌트 획득 정보)를 제공할 수 있다. MP 테이블의 구체적인 내용은 MMT 에서 정의된 형태이거나, 변형이 이루어진 형태일 수 있다. 여기서 Asset 이란, 멀티미디어 데이터 엔티티로서, 하나의 유니크 ID 로 연합되고 하나의 멀티미디어 프리젠테이션을 생성하는데 사용되는 데이터 엔티티를 의미할 수 있다. Asset 은 하나의 서비스를 구성하는 서비스 컴포넌트에 해당할 수 있다. MP 테이블을 이용하여 원하는 서비스에 해당하는 스트리밍 서비스 컴포넌트(MPU) 에 접근할 수 있다. MP 테이블은 전술한 바와 같이 USBD 에 의해 레퍼런싱될 수 있다.
기타 다른 MMT 시그널링 메시지가 정의될 수 있다. 이러한 MMT 시그널링 메시지들에 의해 MMTP 세션 내지 서비스에 관련된 추가적인 정보들이 기술될 수 있다.
ROUTE 세션은 소스 IP 어드레스, 데스티네이션 IP 어드레스, 데스티네이션 포트 넘버에 의해 식별된다. LCT 세션은 페어런트 ROUTE 세션의 범위 내에서 유일한 TSI (transport session identifier)에 의해 식별된다. MMTP 세션은 데스티네이션 IP 어드레스 및 데스티네이션 포트 넘버에 의해 식별된다. MMTP 패킷 플로우는 페어런트 MMTP 세션의 범위 내에서 유일한 packet_id에 의해 식별된다.
ROUTE 의 경우 S-TSID, USBD/USD, MPD 또는 이 들을 전달하는 LCT 세션을 서비스 시그널링 채널이라 부를 수도 있다. MMTP 의 경우, USBD/UD, MMT 시그널링 메시지들 또는 이들을 전달하는 패킷 플로우를 서비스 시그널링 채널이라 부를 수도 있다.
도시된 실시예와는 달리, 하나의 ROUTE 또는 MMTP 세션은 복수개의 PLP 를 통해 전달될 수 있다. 즉, 하나의 서비스는 하나 이상의 PLP 를 통해 전달될 수도 있다. 도시된 것과 달리 실시예에 따라 하나의 서비스를 구성하는 컴포넌트들이 서로 다른 ROUTE 세션들을 통해 전달될 수도 있다. 또한, 실시예에 따라 하나의 서비스를 구성하는 컴포넌트들이 서로 다른 MMTP 세션들을 통해 전달될 수도 있다. 실시예에 따라 하나의 서비스를 구성하는 컴포넌트들이 ROUTE 세션과 MMTP 세션에 나뉘어 전달될 수도 있다. 도시되지 않았으나, 하나의 서비스를 구성하는 컴포넌트가 브로드밴드를 통해 전달(하이브리드 딜리버리)되는 경우도 있을 수 있다.
도 3 은 본 발명의 일 실시예에 따른 LLS (Low Level Signaling) 테이블 및 SLT (Service List Table)를 도시한 도면이다.
도시된 LLS 테이블의 일 실시예(t3010) 은, LLS_table_id 필드, provider_id 필드, LLS_table_version 필드 및/또는 LLS_table_id 필드에 따른 정보들을 포함할 수 있다.
LLS_table_id 필드는 해당 LLS 테이블의 타입을 식별하고, provider_id 필드는 해당 LLS 테이블에 의해 시그널링되는 서비스들과 관련된 서비스 프로바이더를 식별할 수 있다. 여기서 서비스 프로바이더는 해당 브로드캐스트 스트림의 전부 또는 일부를 사용하는 브로드캐스터로서, provider_id 필드는 해당 브로드캐스트 스트림을 사용중인 복수의 브로드캐스터들 중 하나를 식별할 수 있다. LLS_table_version 필드는 해당 LLS 테이블의 버전 정보를 제공할 수 있다.
LLS_table_id 필드의 값에 따라, 해당 LLS 테이블은 전술한 SLT, 컨텐트 어드바이저리 레이팅(Content advisory rating) 에 관련된 정보를 포함하는 RRT(Rating Region Table), 시스템 타임과 관련된 정보를 제공하는 SystemTime 정보, 긴급 경보와 관련된 정보를 제공하는 CAP (Common Alert Protocol) 메시지 중 하나를 포함할 수 있다. 실시예에 따라 이들 외에 다른 정보가 LLS 테이블에 포함될 수도 있다.
도시된 SLT 의 일 실시예(t3020) 는, @bsid 속성, @sltCapabilities 속성, sltInetUrl 엘레멘트 및/또는 Service 엘레멘트를 포함할 수 있다. 각 필드들은 도시된 Use 컬럼의 값에 따라 생략되거나, 복수개 존재할 수 있다.
@bsid 속성은 브로드캐스트 스트림의 식별자일 수 있다. @sltCapabilities 속성은 해당 SLT 가 기술하는 모든 서비스들을 디코딩하고 유의미하게 재생하는데 요구되는 캐패빌리티 정보를 제공할 수 있다. sltInetUrl 엘레멘트는 해당 SLT 의 서비스들을 위한 ESG 내지 서비스 시그널링 정보를 브로드밴드를 통해 얻기 위해 사용되는 베이스 URL 정보를 제공할 수 있다. sltInetUrl 엘레멘트는 @urlType 속성을 더 포함할 수 있는데, 이는 해당 URL 을 통해 얻을 수 있는 데이터의 타입을 지시할 수 있다.
Service 엘레멘트는 해당 SLT 가 기술하는 서비스들에 대한 정보를 포함하는 엘레멘트일 수 있으며, 각각의 서비스들에 대해 Service 엘레멘트가 존재할 수 있다. Service 엘레멘트는 @serviceId 속성, @sltSvcSeqNum 속성, @protected 속성, @majorChannelNo 속성, @minorChannelNo 속성, @serviceCategory 속성, @shortServiceName 속성, @hidden 속성, @broadbandAccessRequired 속성, @svcCapabilities 속성, BroadcastSvcSignaling 엘레멘트 및/또는 svcInetUrl 엘레멘트를 포함할 수 있다.
@serviceId 속성은 해당 서비스의 식별자이고, @sltSvcSeqNum 속성은 해당 서비스에 대한 SLT 정보의 시퀀스 넘버를 나타낼 수 있다. @protected 속성은 해당 서비스의 유의미한 재생을 위해 필요한 적어도 하나의 서비스 컴포넌트가 보호(protected)되고 있는지 여부를 지시할 수 있다. @majorChannelNo 속성과 @minorChannelNo 속성은 각각 해당 서비스의 메이저 채널 넘버와 마이너 채널 넘버를 지시할 수 있다.
@serviceCategory 속성은 해당 서비스의 카테고리를 지시할 수 있다. 서비스의 카테고리로는 리니어 A/V 서비스, 리니어 오디오 서비스, 앱 기반 서비스, ESG 서비스, EAS 서비스 등이 있을 수 있다. @shortServiceName 속성은 해당 서비스의 짧은 이름(Short name)을 제공할 수 있다. @hidden 속성은 해당 서비스가 테스팅 또는 독점적(proprietary) 사용을 위한 서비스인지 여부를 지시할 수 있다. @broadbandAccessRequired 속성은 해당 서비스의 유의미한 재생을 위하여 브로드밴드 억세스가 필요한지 여부를 지시할 수 있다. @svcCapabilities 속성은 해당 서비스의 디코딩과 유의미한 재생을 위하여 필요한 캐패빌리티 정보를 제공할 수 있다.
BroadcastSvcSignaling 엘레멘트는 해당 서비스의 브로드캐스트 시그널링에 관련된 정보들을 제공할 수 있다. 이 엘레멘트는 해당 서비스의 방송망을 통한 시그널링에 대하여, 로케이션, 프로토콜, 어드레스 등의 정보를 제공할 수 있다. 자세한 사항은 후술한다.
svcInetUrl 엘레멘트는 해당 서비스를 위한 시그널링 정보를 브로드밴드를 통해 액세스하기 위한 URL 정보를 제공할 수 있다. sltInetUrl 엘레멘트는 @urlType 속성을 더 포함할 수 있는데, 이는 해당 URL 을 통해 얻을 수 있는 데이터의 타입을 지시할 수 있다.
전술한 BroadcastSvcSignaling 엘레멘트는 @slsProtocol 속성, @slsMajorProtocolVersion 속성, @slsMinorProtocolVersion 속성, @slsPlpId 속성, @slsDestinationIpAddress 속성, @slsDestinationUdpPort 속성 및/또는 @slsSourceIpAddress 속성을 포함할 수 있다.
@slsProtocol 속성은 해당 서비스의 SLS 를 전달하는데 사용되는 프로토콜을 지시할 수 있다(ROUTE, MMT 등). @slsMajorProtocolVersion 속성 및 @slsMinorProtocolVersion 속성은 각각 해당 서비스의 SLS 를 전달하는데 사용되는 프로토콜의 메이저 버전 넘버 및 마이너 버전 넘버를 지시할 수 있다.
@slsPlpId 속성은 해당 서비스의 SLS 를 전달하는 PLP 를 식별하는 PLP 식별자를 제공할 수 있다. 실시예에 따라 이 필드는 생략될 수 있으며, SLS 가 전달되는 PLP 정보는 후술할 LMT 내의 정보와, SLT 의 부트스트랩 정보를 조합하여 확인될 수도 있다.
@slsDestinationIpAddress 속성, @slsDestinationUdpPort 속성 및 @slsSourceIpAddress 속성은 각각 해당 서비스의 SLS 를 전달하는 전송 패킷의 데스티네이션 IP 어드레스, 데스티네이션 UDP 포트 및 소스 IP 어드레스 를 지시할 수 있다. 이들은 SLS 가 전달되는 전송세션(ROUTE 세션 또는 MMTP 세션)을 식별할 수 있다. 이들은 부트스트랩 정보에 포함될 수 있다.
도 4 는 본 발명의 일 실시예에 따른, ROUTE 로 전달되는 USBD 및 S-TSID 를 도시한 도면이다.
도시된 USBD 의 일 실시예(t4010) 은, bundleDescription 루트 엘레멘트를 가질 수 있다. bundleDescription 루트 엘레멘트는 userServiceDescription 엘레멘트를 가질 수 있다. userServiceDescription 엘레멘트는 하나의 서비스에 대한 인스턴스일 수 있다.
userServiceDescription 엘레멘트는 @globalServiceID 속성, @serviceId 속성, @serviceStatus 속성, @fullMPDUri 속성, @sTSIDUri 속성, name 엘레멘트, serviceLanguage 엘레멘트, capabilityCode 엘레멘트 및/또는 deliveryMethod 엘레멘트를 포함할 수 있다. 각 필드들은 도시된 Use 컬럼의 값에 따라 생략되거나, 복수개 존재할 수 있다.
@globalServiceID 속성은 해당 서비스의 글로벌하게 유니크한(globally unique) 식별자로서, ESG 데이터와 링크되는데 사용될 수 있다(Service@globalServiceID). @serviceId 속성은 SLT 의 해당 서비스 엔트리와 대응되는 레퍼런스로서, SLT 의 서비스 ID 정보와 동일할 수 있다. @serviceStatus 속성은 해당 서비스의 상태를 지시할 수 있다. 이 필드는 해당 서비스가 액티브인지 인액티브(inactive) 상태인지 여부를 지시할 수 있다.
@fullMPDUri 속성은 해당 서비스의 MPD 프래그먼트를 레퍼런싱할 수 있다. MPD 는 전술한 바와 같이 방송망 또는 브로드밴드를 통해 전달되는 서비스 컴포넌트에 대한 재생 디스크립션을 제공할 수 있다. @sTSIDUri 속성은 해당 서비스의 S-TSID 프래그먼트를 레퍼런싱할 수 있다. S-TSID 는 전술한 바와 같이 해당 서비스를 운반하는 전송 세션에의 액세스와 관련된 파라미터들을 제공할 수 있다.
name 엘레멘트는 해당 서비스의 이름을 제공할 수 있다. 이 엘레멘트는 @lang 속성을 더 포함할 수 있는데, 이 필드는 name 엘레멘트가 제공하는 이름의 언어를 지시할 수 있다. serviceLanguage 엘레멘트는 해당 서비스의 이용 가능한(available) 언어들을 지시할 수 있다. 즉, 이 엘레멘트는 해당 서비스가 제공될 수 있는 언어들을 나열할 수 있다.
capabilityCode 엘레멘트는 해당 서비스를 유의미하게 재생하기 위해 필요한 수신기 측의 캐패빌리티 또는 캐패빌리티 그룹 정보를 지시할 수 있다. 이 정보들은 서비스 아나운스먼트(announccement) 에서 제공되는 캐패빌리티 정보 포맷과 호환될 수 있다.
deliveryMethod 엘레멘트는 해당 서비스의 방송망 또는 브로드밴드를 통해 액세스되는 컨텐츠들에 대하여, 전송 관련 정보들을 제공할 수 있다. deliveryMethod 엘레멘트는 broadcastAppService 엘레멘트 및/또는 unicastAppService 엘레멘트를 포함할 수 있다. 이 엘레멘트들은 각각 basePattern 엘레멘트를 하위 엘레멘트로 가질 수 있다.
broadcastAppService 엘레멘트는 방송망을 통해 전달되는 DASH 레프리젠테이션에 대한 전송 관련 정보를 포함할 수 있다. 이 DASH 레프리젠테이션들은 해당 서비스 미디어 프리젠테이션의 모든 피리오드(Period)에 걸친 미디어 컴포넌트들을 포함할 수 있다.
이 엘레멘트의 basePattern 엘레멘트는 수신기가 세그먼트 URL 과 매칭하는데 사용되는 캐릭터 패턴을 나타낼 수 있다. 이는 DASH 클라이언트가 해당 레프리젠테이션의 세그먼트들을 요청하는데 사용될 수 있다. 매칭된다는 것은 해당 미디어 세그먼트가 방송망을 통해 전달된다는 것을 암시할 수 있다.
unicastAppService 엘레멘트는 브로드밴드를 통해 전달되는 DASH 레프리젠테이션에 대한 전송 관련 정보를 포함할 수 있다. 이 DASH 레프리젠테이션들은 해당 서비스 미디어 프리젠테이션의 모든 피리오드(Period)에 걸친 미디어 컴포넌트들을 포함할 수 있다.
이 엘레멘트의 basePattern 엘레멘트는 수신기가 세그먼트 URL 과 매칭하는데 사용되는 캐릭터 패턴을 나타낼 수 있다. 이는 DASH 클라이언트가 해당 레프리젠테이션의 세그먼트들을 요청하는데 사용될 수 있다. 매칭된다는 것은 해당 미디어 세그먼트가 브로드밴드를 통해 전달된다는 것을 암시할 수 있다.
도시된 S-TSID 의 일 실시예(t4020) 은, S-TSID 루트 엘레멘트를 가질 수 있다. S-TSID 루트 엘레멘트는 @serviceId 속성 및/또는 RS 엘레멘트를 포함할 수 있다. 각 필드들은 도시된 Use 컬럼의 값에 따라 생략되거나, 복수개 존재할 수 있다.
@serviceId 속성은 해당 서비스의 식별자로서, USBD/USD 의 해당 서비스를 레퍼런싱할 수 있다. RS 엘레멘트는 해당 서비스의 서비스 컴포넌트들이 전달되는 ROUTE 세션들에 대한 정보를 기술할 수 있다. 이러한 ROUTE 세션의 개수에 따라, 이 엘레멘트는 복수개 존재할 수 있다. RS 엘레멘트는 @bsid 속성, @sIpAddr 속성, @dIpAddr 속성, @dport 속성, @PLPID 속성 및/또는 LS 엘레멘트를 더 포함할 수 있다.
@bsid 속성은 해당 서비스의 서비스 컴포넌트들이 전달되는 브로드캐스트 스트림의 식별자일 수 있다. 이 필드가 생략된 경우, 디폴트 브로드캐스트 스트림은 해당 서비스의 SLS 를 전달하는 PLP 를 포함하는 브로드캐스트 스트림일 수 있다. 이 필드의 값은 SLT 의 @bsid 속성과 같은 값일 수 있다.
@sIpAddr 속성, @dIpAddr 속성 및 @dport 속성은 각각 해당 ROUTE 세션의 소스 IP 어드레스, 데스티네이션 IP 어드레스 및 데스티네이션 UDP 포트를 나타낼 수 있다. 이 필드들이 생략되는 경우, 디폴트 값들은 해당 SLS 를 전달하는, 즉 해당 S-TSID 를 전달하고 있는 현재의, ROUTE 세션의 소스 IP 어드레스, 데스티네이션 IP 어드레스 및 데스티네이션 UDP 포트값들일 수 있다. 현재 ROUTE 세션이 아닌, 해당 서비스의 서비스 컴포넌트들을 전달하는 다른 ROUTE 세션에 대해서는, 본 필드들이 생략되지 않을 수 있다.
@PLPID 속성은 해당 ROUTE 세션의 PLP ID 정보를 나타낼 수 있다. 이 필드가 생략되는 경우, 디폴트 값은 해당 S-TSID 가 전달되고 있는 현재 PLP 의 PLP ID 값일 수 있다. 실시예에 따라 이 필드는 생략되고, 해당 ROUTE 세션의 PLP ID 정보는 후술할 LMT 내의 정보와, RS 엘레멘트의 IP 어드레스 / UDP 포트 정보들을 조합하여 확인될 수도 있다.
LS 엘레멘트는 해당 서비스의 서비스 컴포넌트들이 전달되는 LCT 채널들에 대한 정보를 기술할 수 있다. 이러한 LCT 채널의 개수에 따라, 이 엘레멘트는 복수개 존재할 수 있다. LS 엘레멘트는 @tsi 속성, @PLPID 속성, @bw 속성, @startTime 속성, @endTime 속성, SrcFlow 엘레멘트 및/또는 RepairFlow 엘레멘트를 포함할 수 있다.
@tsi 속성은 해당 LCT 채널의 tsi 정보를 나타낼 수 있다. 이를 통해 해당 서비스의 서비스 컴포넌트가 전달되는 LCT 채널들이 식별될 수 있다. @PLPID 속성은 해당 LCT 채널의 PLP ID 정보를 나타낼 수 있다. 실시예에 따라 이 필드는 생략될 수 있다. @bw 속성은 해당 LCT 채널의 최대 대역폭를 나타낼 수 있다. @startTime 속성은 해당 LCT 세션의 스타트 타임을 지시하고, @endTime 속성은 해당 LCT 채널의 엔드 타임을 지시할 수 있다.
SrcFlow 엘레멘트는 ROUTE 의 소스 플로우에 대해 기술할 수 있다. ROUTE 의 소스 프로토콜은 딜리버리 오브젝트를 전송하기 위해 사용되며, 한 ROUTE 세션 내에서 적어도 하나 이상의 소스 플로우를 설정(establish)할 수 있다. 이 소스 플로우들은 관련된 오브젝트들을 오브젝트 플로우로서 전달할 수 있다.
RepairFlow 엘레멘트는 ROUTE 의 리페어 플로우에 대해 기술할 수 있다. 소스 프로토콜에 따라 전달되는 딜리버리 오브젝트들은 FEC (Forward Error Correction) 에 따라 보호될 수 있는데, 리페어 프로토콜은 이러한 FEC 프로텍션을 가능케 하는 FEC 프레임워크(framework)를 정의할 수 있다.
도 5 는 본 발명의 일 실시예에 따른, MMT 로 전달되는 USBD 를 도시한 도면이다.
도시된 USBD 의 일 실시예는, bundleDescription 루트 엘레멘트를 가질 수 있다. bundleDescription 루트 엘레멘트는 userServiceDescription 엘레멘트를 가질 수 있다. userServiceDescription 엘레멘트는 하나의 서비스에 대한 인스턴스일 수 있다.
userServiceDescription 엘레멘트는 @globalServiceID 속성, @serviceId 속성, Name 엘레멘트, serviceLanguage 엘레멘트, contentAdvisoryRating 엘레멘트, Channel 엘레멘트, mpuComponent 엘레멘트, routeComponent 엘레멘트, broadbandComponent 엘레멘트 및/또는 ComponentInfo 엘레멘트를 포함할 수 있다. 각 필드들은 도시된 Use 컬럼의 값에 따라 생략되거나, 복수개 존재할 수 있다.
@globalServiceID 속성, @serviceId 속성, Name 엘레멘트 및/또는 serviceLanguage 엘레멘트는 전술한 ROUTE 로 전달되는 USBD 의 해당 필드들과 같을 수 있다. contentAdvisoryRating 엘레멘트는 해당 서비스의 컨텐트 어드바이저리(advisory) 레이팅을 나타낼 수 있다. 이 정보들은 서비스 아나운스먼트(announccement) 에서 제공되는 컨텐트 어드바이저리 레이팅 정보 포맷과 호환될 수 있다. Channel 엘레멘트는 해당 서비스와 관련된 정보들을 포함할 수 있다. 이 엘레멘트의 자세한 내용에 대해서는 후술한다.
mpuComponent 엘레멘트는 해당 서비스의 MPU 로서 전달되는 서비스 컴포넌트들에 대한 디스크립션을 제공할 수 있다. 이 엘레멘트는 @mmtPackageId 속성 및/또는 @nextMmtPackageId 속성을 더 포함할 수 있다. @mmtPackageId 속성은 해당 서비스의 MPU 로서 전달되는 서비스 컴포넌트들의 MMT 패키지(Package) 를 레퍼런싱할 수 있다. @nextMmtPackageId 속성은 시간상 @mmtPackageId 속성이 레퍼런싱하는 MMT 패키지 다음으로 사용될 MMT 패키지를 레퍼런싱할 수 있다. 이 엘레멘트의 정보들을 통해 MP 테이블이 레퍼런싱될 수 있다.
routeComponent 엘레멘트는 ROUTE 로 전달되는 해당 서비스의 서비스 컴포넌트들에 대한 디스크립션을 포함할 수 있다. 리니어 서비스 컴포넌트들이 MMT 프로토콜로 전달되는 경우라 하더라도, NRT 데이터들은 전술한 바와 같이 ROUTE 프로토콜에 따라 전달될 수 있다. 이 엘레멘트는 이러한 NRT 데이터들에 대한 정보들을 기술할 수 있다. 이 엘레멘트의 자세한 내용에 대해서는 후술한다.
broadbandComponent 엘레멘트는 브로드밴드로 전달되는 해당 서비스의 서비스 컴포넌트들에 대한 디스크립션을 포함할 수 있다. 하이브리드 서비스 딜리버리에 있어서, 한 서비스의 일부 서비스 컴포넌트 또는 기타 파일들은 브로드밴드를 통해 전달될 수 있다. 이 엘레멘트는 이러한 데이터들에 대한 정보들을 기술할 수 있다. 이 엘레멘트는 @fullMPDUri 속성을 더 포함할 수 있다. 이 속성은 브로드밴드로 전달되는 서비스 컴포넌트들에 대해 기술하는 MPD 를 레퍼런싱할 수 있다. 하이브리드 서비스 딜리버리 이외에도, 터널 내의 주행 등으로 인해 방송 신호가 약화되는 경우에 있어, 방송망-브로드밴드 간의 핸드오프(handoff) 를 지원하기 위해 본 엘레멘트가 필요할 수 있다. 방송 신호가 약해지는 경우, 브로드밴드를 통해 서비스 컴포넌트를 획득하다가, 다시 방송 신호가 강해지면 방송망을 통해 서비스 컴포넌트를 획득하여 서비스의 연속성이 보장될 수 있다.
ComponentInfo 엘레멘트는 해당 서비스의 서비스 컴포넌트들에 대한 정보를 포함할 수 있다. 서비스의 서비스 컴포넌트들의 개수에 따라, 이 엘레멘트는 복수개 존재할 수 있다. 이 엘레멘트는 각 서비스 컴포넌트의 타입, 롤(role), 이름, 식별자, 프로텍션 여부 등의 정보들을 기술할 수 있다. 이 엘레멘트의 자세한 정보에 대해서는 후술한다.
전술한 Channel 엘레멘트는 @serviceGenre 속성, @serviceIcon 속성 및/또는 ServiceDescription 엘레멘트를 더 포함할 수 있다. @serviceGenre 속성은 해당 서비스의 장르를 지시하고, @serviceIcon 속성은 해당 서비스를 대표하는 아이콘(icon) 의 URL 정보를 포함할 수 있다. ServiceDescription 엘레멘트는 해당 서비스의 서비스 디스크립션을 제공하는데, 이 엘레멘트는 @serviceDescrText 속성 및/또는 @serviceDescrLang 속성을 더 포함할 수 있다. 이 속성들은 각각 해당 서비스 디스크립션의 텍스트 및 그 텍스트에 사용되는 언어를 지시할 수 있다.
전술한 routeComponent 엘레멘트는 @sTSIDUri 속성, @sTSIDDestinationIpAddress 속성, @sTSIDDestinationUdpPort 속성, @sTSIDSourceIpAddress 속성, @sTSIDMajorProtocolVersion 속성 및/또는 @sTSIDMinorProtocolVersion 속성을 더 포함할 수 있다.
@sTSIDUri 속성은 S-TSID 프래그먼트를 레퍼런싱할 수 있다. 이 필드는 전술한 ROUTE 로 전달되는USBD 의 해당 필드와 같을 수 있다. 이 S-TSID 는 ROUTE 로 전달되는 서비스 컴포넌트들에 대한 액세스 관련 정보를 제공할 수 있다. 이 S-TSID 는 MMT 프로토콜에 따라 리니어 서비스 컴포넌트들이 전달되는 상황에서, ROUTE 프로토콜에 따라 전달되는 NRT 데이터들을 위해 존재할 수 있다.
@sTSIDDestinationIpAddress 속성, @sTSIDDestinationUdpPort 속성 및 @sTSIDSourceIpAddress 속성은 각각 전술한 S-TSID 를 운반하는 전송 패킷의 데스티네이션 IP 어드레스, 데스티네이션 UDP 포트, 소스 IP 어드레스를 나타낼 수 있다. 즉, 이 필드들은 전술한 S-TSID 를 운반하는 전송 세션(MMTP 세션 또는 ROUTE 세션)을 식별할 수 있다.
@sTSIDMajorProtocolVersion 속성 및 @sTSIDMinorProtocolVersion 속성은 전술한 S-TSID 를 전달하는데 사용되는 전송 프로토콜의 메이저 버전 넘버 및 마이너 버전 넘버를 지시할 수 있다.
전술한 ComponentInfo 엘레멘트는 @componentType 속성, @componentRole 속성, @componentProtectedFlag 속성, @componentId 속성 및/또는 @componentName 속성을 더 포함할 수 있다.
@componentType 속성은 해당 컴포넌트의 타입을 지시할 수 있다. 예를 들어 이 속성은 해당 컴포넌트가 오디오, 비디오, 클로즈드캡션 컴포넌트인지를 지시할 수 있다. @componentRole 속성은 해당 컴포넌트의 롤(역할)을 지시할 수 있다. 예를 들어 이 속성은 해당 컴포넌트가 오디오 컴포넌트인 경우 메인 오디오, 뮤직, 코멘터리 등인지를 지시할 수 있다. 해당 컴포넌트가 비디오 컴포넌트인 경우 프라이머리 비디오인지 등을 지시할 수 있다. 해당 컴포넌트가 클로즈드 캡션 컴포넌트인 경우 노말 캡션인지 이지리더(easy reader) 타입인지 등을 지시할 수 있다.
@componentProtectedFlag 속성은 해당 서비스 컴포넌트가 프로텍티드되었는지, 예를 들어 암호화되었는지를 지시할 수 있다. @componentId 속성은 해당 서비스 컴포넌트의 식별자를 나타낼 수 있다. 이 속성의 값은 이 서비스 컴포넌트에 해당하는 MP 테이블의 asset_id (에셋 ID) 와 같은 값일 수 있다. @componentName 속성은 해당 서비스 컴포넌트의 이름을 나타낼 수 있다.
도 6 은 본 발명의 일 실시예에 따른 링크 레이어(Link Layer) 동작을 도시한 도면이다.
링크 레이어는 피지컬 레이어와 네트워크 레이어 사이의 레이어일 수 있다. 송신 측에서는 네트워크 레이어에서 피지컬 레이어로 데이터를 전송하고, 수신 측에서는 피지컬 레이어에서 네트워크 레이어로 데이터를 전송할 수 있다(t6010). 링크 레이어의 목적은 피지컬 레이어에 의한 처리를 위해 모든 입력 패킷 타입을 하나의 포맷으로 압축(abstracting)하는 것, 아직 정의되지 않은 입력 패킷 타입에 대한 유연성(flexibility) 및 추후 확장 가능성을 보장하는 것일 수 있다. 또한 링크 레이어는 입력 패킷의 헤더의 불필요한 정보를 압축하는 옵션을 제공함으로써, 입력 데이터가 효율적으로 전송될 수 있도록 할 수 있다. 링크 레이어의 오버헤드 리덕션, 인캡슐레이션 등의 동작은 링크 레이어 프로토콜이라 불리고, 해당 프로토콜을 이용하여 생성된 패킷은 링크 레이어 패킷이라 불릴 수 있다. 링크 레이어는 패킷 인캡슐레이션(packet encapsulation), 오버헤드 리덕션(Overhead Reduction) 및/또는 시그널링 전송(Signaling Transmission) 등의 기능을 수행할 수 있다.
송신측 기준으로, 링크 레이어(ALP)는 입력 패킷에 대하여 오버헤드 리덕션 과정을 수행한 후 이들을 링크 레이어 패킷으로 인캡슐레이션할 수 있다. 또한 실시예에 따라 링크 레이어는 오버헤드 리덕션 과정을 수행하지 아니하고, 링크 레이어 패킷으로 인캡슐레이션할 수도 있다. 링크 레이어 프로토콜의 사용으로 인해 피지컬 레이어 상에서 데이터의 전송에 대한 오버헤드가 크게 감소할 수 있으며, 본 발명에 따른 링크 레이어 프로토콜은 IP 오버헤드 리덕션 및/또는 MPEG-2 TS 오버헤드 리덕션을 제공할 수 있다.
도시된, IP 패킷이 입력패킷으로 입력되는 경우에 있어서(t6010), 링크 레이어는 IP 헤더 압축, 어댑테이션 및/또는 인캡슐레이션 과정을 차례로 수행할 수 있다. 실시예에 따라 일부 과정은 생략될 수 있다. 먼저, RoHC 모듈이 IP 패킷 헤더 압축을 수행하여 불필요한 오버헤드를 줄이고, 어댑테이션 과정을 통해 컨텍스트 정보가 추출되고 대역 외로 전송될 수 있다. IP 헤더 압축과 어댑테이션 과정을 통칭하여 IP 헤더 압축이라 부를 수도 있다. 이 후 인캡슐레이션 과정을 통해 IP 패킷들이 링크 레이어 패킷들로 인캡슐레이션될 수 있다.
MPEG 2 TS 패킷이 입력패킷으로 입력되는 경우에 있어서, 링크 레이어는 TS 패킷에 대한 오버헤드 리덕션 및/또는 인캡슐레이션 과정을 차례로 수행할 수 있다. 실시예에 따라 일부 과정은 생략될 수 있다. 오버헤드 리덕션에 있어, 링크 레이어는 싱크 바이트 제거, 널 패킷 삭제 및/또는 공통(common) 헤더 제거 (압축)을 제공할 수 있다. 싱크 바이트 제거를 통해 TS 패킷당 1 바이트의 오버헤드 리덕션이 제공될 수 있다. 수신측에서 재삽입될 수 있는 방식으로 널 패킷 삭제가 수행될 수 있다. 또한 연속된 헤더들 간의 공통되는 정보들이 수신측에서 복구될 수 있는 방식으로 삭제(압축)될 수 있다. 각 오버헤드 리덕션 과정 중 일부는 생략될 수 있다. 이 후 인캡슐레이션 과정을 통해 TS 패킷들이 링크 레이어 패킷들로 인캡슐레이션될 수 있다. TS 패킷의 인캡슐레이션에 대한 링크 레이어 패킷 구조는 다른 타입의 패킷들과는 다를 수 있다.
먼저 IP 헤더 압축(IP Header Compression) 에 대해서 설명한다.
IP 패킷은 고정된 헤더 포맷을 가지고 있으나, 통신 환경에서 필요한 일부 정보는 브로드캐스트 환경에서 불필요할 수 있다. 링크 레이어 프로토콜은 IP 패킷의 헤더를 압축함으로써 브로드캐스트 오버헤드를 줄이는 메커니즘을 제공할 수 있다.
IP 헤더 압축은 헤더 컴프레서/디컴프레서 및/또는 어댑테이션 모듈을 포함할 수 있다. IP 헤더 컴프레서(RoHC 컴프레서)는 RoHC 방식에 기초하여 각 IP 패킷 헤더의 크기를 감소시킬 수 있다. 이 후 어댑테이션 모듈은 컨텍스트 정보를 추출하고 각 패킷 스트림으로부터 시그널링 정보를 생성할 수 있다. 수신기는 해당 패킷 스트림에 관련된 시그널링 정보를 파싱하고 컨텍스트 정보를 그 패킷 스트림에 붙일(attach) 수 있다. RoHC 디컴프레서는 패킷 헤더를 복구하여 원래의 IP 패킷을 재구성할 수 있다. 이하, IP 헤더 압축이란, 헤더 컴프레서에 의한 IP 헤더 압축만을 의미할 수도 있고, IP 헤더 압축과 어댑테이션 모듈에 의한 어댑테이션 과정을 합한 개념을 의미할 수도 있다. 디컴프레싱(decompressing) 에 대해서도 마찬가지이다.
이하, 어댑테이션(Adaptation) 에 대해서 설명한다.
단방향 링크를 통한 전송의 경우, 수신기가 컨텍스트의 정보를 갖고 있지 않으면, 디컴프레서는 완전한 컨텍스트를 수신할 때까지 수신된 패킷 헤더를 복구할 수 없다. 이는 채널 변경 지연 및 턴 온 딜레이 (turn-on delay)를 초래할 수 있다. 따라서 어댑테이션 기능을 통해, 컴프레서/디컴프레서 간의 컨피규레이션 파라미터와 컨텍스트 정보가 대역 외로 전송될 수 있다. 어댑테이션 펑션(function)은 컨텍스트 정보 및/또는 컨피규레이션 파라미터들을 이용하여 링크 레이어 시그널링을 생성(construction) 할 수 있다. 어댑테이션 펑션은 예전(previous) 컨피규레이션 파라미터 및/또는 컨텍스트 정보를 이용하여 각각의 피지컬 프레임을 통해 주기적으로 링크 레이어 시그널링을 전송할 수 있다.
압축된 IP 패킷들로부터 컨텍스트 정보가 추출되는데, 어댑테이션 모드에 따라 다양한 방법이 사용될 수 있다.
모드 #1 은 압축된 패킷 스트림에 대해 어떠한 동작도 수행하지 않는 모드로서, 어댑테이션 모듈이 버퍼로서 동작하는 모드일 수 있다.
모드 #2 는 압축된 패킷 스트림 중, IR 패킷을 검출하여 컨텍스트 정보(스태틱 체인)을 추출하는 모드일 수 있다. 추출후 IR 패킷은 IR-DYN 패킷으로 전환되고, IR-DYN 패킷은 원래의 IR 패킷을 대체하여 패킷 스트림 내에서 같은 순서로 전송될 수 있다.
모드 #3 (t6020) 는 압축된 패킷 스트림 중, IR 및 IR-DYN 패킷을 검출하고 컨텍스트 정보를 추출하는 모드일 수 있다. IR 패킷으로부터 스태틱 체인 및 다이나믹 체인이, IR-DYN 패킷으로부터 다이나믹 체인이 추출될 수 있다. 추출후 IR 및 IR-DYN 패킷은 일반 압축 패킷으로 전환될 수 있다. 전환된 패킷은 원래의 IR 및 IR-DYN 패킷을 대체하여 패킷 스트림 내에서 같은 순서로 전송될 수 있다.
각 모드에서, 컨텍스트 정보가 추출되고 남은 패킷들은, 압축된 IP 패킷을 위한 링크 레이어 패킷 구조에 따라 인캡슐레이션 되어 전송될 수 있다. 컨텍스트 정보들은, 링크 레이어 시그널링으로서, 시그널링 정보를 위한 링크 레이어 패킷 구조에 따라 인캡슐레이션 되어 전송될 수 있다.
추출된 컨텍스트 정보는 RDT (RoHC-U Description Table) 에 포함되어 RoHC 패킷 플로우와 별도로 전송될 수 있다. 컨텍스트 정보는 다른 시그널링 정보와 함께 특정(specific) 피지컬 데이터 경로를 통해 전송될 수 있다. 특정 피지컬 데이터 경로란, 실시예에 따라, 일반적인 PLP 중 하나를 의미할 수도 있고, LLS (Low Level Signaling) 이 전달되는 PLP 를 의미할 수도 있고, 지정된(dedicated) PLP 일 수도 있고, L1 시그널링 패쓰(path)를 의미할 수도 있다. 여기서 RDT 는 컨텍스트 정보(스태틱 체인 및/또는 다이나믹 체인) 및/또는 헤더 컴프레션과 관련된 정보를 포함하는 시그널링 정보일 수 있다. 실시예에 따라 RDT 는 컨텍스트 정보가 바뀔 때마다 전송될 수 있다. 또한 실시예에 따라 RDT 는 매 피지컬 프레임에서 전송될 수 있다. 매 피지컬 프레임에서 RDT 를 전송하기 위해서, 예전(previous) RDT 가 재사용(re-use)될 수 있다.
수신기는 패킷 스트림을 획득하기 앞서, 최초 PLP 를 선택해 SLT, RDT, LMT 등의 시그널링 정보를 먼저 획득할 수 있다. 수신기는 이 시그널링 정보들이 획득되면, 이 들을 조합하여 서비스 - IP 정보 - 컨텍스트 정보 - PLP 간의 매핑을 획득할 수 있다. 즉, 수신기는 어떤 서비스가 어느 IP 스트림들로 전송되는지, 어떤 PLP 로 어떤 IP 스트림들이 전달되는지 등을 알 수 있고, 또한 PLP 들의 해당 컨텍스트 정보들을 획득할 수 있다. 수신기는 특정 패킷 스트림을 운반하는 PLP 를 선택하여 디코딩 할 수 있다. 어댑테이션 모듈은 컨텍스트 정보를 파싱하고 이를 압축된 패킷들과 합칠 수 있다. 이를 통해 패킷 스트림이 복구될 수 있고, 이는 RoHC 디컴프레서로 전달될 수 있다. 이후 디컴프레션이 시작될 수 있다. 이 때 수신기는 어댑테이션 모드에 따라, IR 패킷을 디텍팅하여 최초 수신된 IR 패킷으로부터 디컴프레션을 시작하거나(모드 1), IR-DYN 패킷을 디텍팅하여 최초 수신된 IR-DYN 패킷으로부터 디컴프레션을 시작하거나(모드 2), 아무 일반 압축 패킷(compressed packet)으로부터 디컴프레션을 시작할 수 있다(모드 3).
이하, 패킷 인캡슐레이션에 대해서 설명한다.
링크 레이어 프로토콜은 IP 패킷, TS 패킷 등의 모든 타입의 인풋 패킷들을 링크 레이어 패킷으로인캡슐레이션할 수 있다. 이를 통해 피지컬 레이어는 네트워크 레이어의 프로토콜 타입과는 독립적으로 하나의 패킷 포맷만 처리하면 된다(여기서 네트워크 레이어 패킷의 일종으로 MPEG-2 TS 패킷을 고려). 각 네트워크 레이어 패킷 또는 입력 패킷은 제네릭 링크 레이어 패킷의 페이로드로 변형된다.
패킷 인캡슐레이션 과정에서 분할(segmentation) 이 활용될 수 있다. 네트워크 레이어 패킷이 지나치게 커서 피지컬 레이어에서 처리하지 못하는 경우, 네트워크 레이어 패킷은 두 개 이상의 세그먼트들로 나누어질 수 있다. 링크 레이어 패킷 헤더는 송신 측에서 분할을 실행하고 수신 측에서 재결합을 실행하기 위한 필드들을 포함할 수 있다. 각 세그먼트들은 원래 위치와 같은 순서로 링크 레이어 패킷으로 인캡슐레이션될 수 있다.
패킷 인캡슐레이션 과정에서 연쇄(concatenation) 또한 활용될 수 있다. 링크 레이어 패킷의 페이로드가 여러 네트워크 레이어 패킷을 포함할 정도로 네트워크 레이어 패킷이 충분히 작은 경우, 연쇄가 수행될 수 있다. 링크 레이어 패킷 헤더는 연쇄를 실행하기 위한 필드들을 포함할 수 있다. 연쇄의 경우 각 입력 패킷들은 원래의 입력 순서와 같은 순서로 링크 레이어 패킷의 페이로드로 인캡슐레이션될 수 있다.
링크 레이어 패킷은 헤더와 페이로드를 포함할 수 있고, 헤더는 베이스 헤더, 추가(additional) 헤더 및/또는 옵셔널 헤더가 포함될 수 있다. 추가 헤더는 연쇄나 분할 등의 상황에 따라 더 추가될 수 있는데, 추가헤더에는 상황에 맞춘 필요한 필드들이 포함될 수 있다. 또한 추가적인 정보의 전달을 위해 옵셔널 헤더가 더 추가될 수도 있다. 각각의 헤더 구조는 기 정의되어 있을 수 있다. 전술한 바와 같이 입력 패킷이 TS 패킷인 경우에는, 다른 패킷들과는 다른 링크 레이어 헤더 구조가 사용될 수 있다.
이하, 링크 레이어 시그널링에 대해서 설명한다.
링크 레이어 시그널링은 IP 레이어보다 하위 레벨에서 동작할 수 있다. 수신측에서는 LLS, SLT, SLS 등의 IP 레벨 시그널링보다, 링크 레이어 시그널링을 더 빠르게 획득할 수 있다. 따라서 링크 레이어 시그널링은 세션 설정(establishment) 이전에 획득될 수 있다.
링크 레이어 시그널링에는 인터널 링크 레이어 시그널링과 익스터널 링크 레이어 시그널링이 있을 수 있다. 인터널 링크 레이어 시그널링은 링크 레이어에서 생성된 시그널링 정보일 수 있다. 전술한 RDT 나 후술할 LMT 등이 여기에 해당할 수 있다. 익스터널 링크 레이어 시그널링은 외부 모듈 또는 외부 프로토콜, 상위 레이어로부터 전달받은 시그널링 정보일 수 있다. 링크 레이어는 링크 레이어 시그널링을 링크 레이어 패킷으로 인캡슐레이션하여 전달할 수 있다. 링크 레이어 시그널링을 위한 링크 레이어 패킷 구조(헤더 구조)가 정의될 수 있는데, 이 구조에 따라 링크 레이어 시그널링 정보가 인캡슐레이션될 수 있다.
도 7 은 본 발명의 일 실시예에 따른 LMT (Link Mapping Table) 를 도시한 도면이다.
LMT 는 PLP 로 운반되는 상위 레이어 세션들의 리스트를 제공할 수 있다. 또한 LMT 는 상위 레이어 세션들을 전달하는 링크 레이어 패킷들을 프로세싱하기 위한 추가적인 정보들을 제공할 수 있다. 여기서 상위 레이어 세션은 멀티캐스트(multicast) 라고 불릴 수도 있다. LMT 를 통해 특정 PLP 를 통해 어떠한 IP 스트림들, 어떠한 전송 세션들이 전송되고 있는지에 대한정보가 획득될 수 있다. 반대로 특정 전송 세션이 어느 PLP 로 전달되는지에 대한 정보를 획득할 수 있다.
LMT 는 LLS 를 운반하는 것으로 식별된 어떤 PLP 로도 전달될 수 있다. 여기서 LLS 가 전달되는 PLP 는 피지컬 레이어의 L1 디테일 시그널링 정보의 LLS 플래그에 의해 식별될 수 있다. LLS 플래그는 각각의 PLP 에 대하여, 해당 PLP 로 LLS 가 전달되는지 여부를 지시하는 플래그 필드일 수 있다. 여기서 L1 디테일 시그널링 정보는 후술할 PLS2 데이터에 해당할 수 있다.
즉, LMT 는 LLS 와 함께, 같은 PLP 로 전달될 수 있다. 각각의 LMT 들은 전술한 바와 같이 PLP 들과 IP 어드레스/포트간의 매핑을 기술할 수 있다. 전술한 바와 같이 LLS 는 SLT 를 포함할 수 있는데, LMT 가 기술하는 이 IP 어드레스/포트들은, 해당 LMT 와 같은 PLP 로 전달되는 SLT 가 기술하는, 모든(any) 서비스와 관련된 모든(any) IP 어드레스/포트들일 수 있다.
실시예에 따라 전술한 SLT, SLS 등에서의 PLP 식별자 정보가 활용되어, SLT, SLS 가 지시하는 특정전송 세션이 어느 PLP 로 전송되고 있는지에 대한 정보가 확인될 수 있다.
다른 실시예에 따라 전술한 SLT, SLS 등에서의 PLP 식별자 정보는 생략되고, SLT, SLS 가 지시하는 특정 전송 세션에 대한 PLP 정보는 LMT 내의 정보를 참조함으로써 확인될 수 있다. 이 경우 수신기는 LMT 와 다른 IP 레벨 시그널링 정보들을 조합하여, 알고자 하는 PLP 를 식별할 수 있다. 이 실시예에 있어서도 SLT, SLS 등에서의 PLP 정보는 생략되지 않고, SLT, SLS 등에 남아있을 수 있다.
도시된 실시예에 따른 LMT 는, signaling_type 필드, PLP_ID 필드, num_session 필드 및/또는 각각의 세션들에 대한 정보들을 포함할 수 있다. 도시된 실시예의 LMT 는 하나의 PLP 에 대해서, 그 PLP 로 전송되는 IP 스트림들을 기술하고 있지만, 실시예에 따라 LMT 에 PLP 루프가 추가되어, 복수개의 PLP 에 대한 정보가 기술될 수도 있다. 이 경우 LMT 는, 전술한 바와 같이, 함께 전달되는 SLT 가 기술하는 모든 서비스와 관련된 모든 IP 어드레스/포트들에 대한 PLP 들을, PLP 루프로 기술할 수 있다.
signaling_type 필드는 해당 테이블에 의해 전달되는 시그널링 정보의 타입을 지시할 수 있다. LMT 에 대한 signaling_type 필드의 값은 0x01로 설정될 수 있다. signaling_type 필드는 생략될 수 있다. PLP_ID 필드는 기술하고자 하는 대상 PLP 를 식별할 수 있다. PLP 루프가 사용되는 경우, 각각의 PLP_ID 필드는 각각의 대상 PLP 를 식별할 수 있다. PLP_ID 필드부터는 PLP 루프 내에 포함될 수 있다. 이하 언급되는 PLP_ID 필드는 PLP 루프 중의 PLP 하나에 대한 식별자이며, 이하 설명되는 필드들은 그 해당 PLP 에 대한 필드들일 수 있다.
num_session 필드는 해당 PLP_ID 필드에 의해 식별되는 PLP 로 전달되는 상위 레이어 세션들의 개수를 나타낼 수 있다. num_session 필드가 나타내는 개수에 따라, 각각의 세션들에 대한 정보들이 포함될 수 있다. 이정보에는 src_IP_add 필드, dst_IP_add 필드, src_UDP_port 필드, dst_UDP_port 필드, SID_flag 필드, compressed_flag 필드, SID 필드 및/또는 context_id 필드가 있을 수 있다.
src_IP_add 필드, dst_IP_add 필드, src_UDP_port 필드 및 dst_UDP_port 필드는 해당 PLP_ID 필드에 의해 식별되는 PLP 로 전달되는 상위 레이어 세션들 중, 해당 전송 세션에 대한 소스 IP 어드레스, 데스티네이션 IP 어드레스, 소스 UDP 포트, 데스티네이션 UDP 포트를 나타낼 수 있다.
SID_flag 필드는 해당 전송 세션을 전달하는 링크 레이어 패킷이 그 옵셔널 헤더에 SID 필드를 갖는지 여부를 지시할 수 있다. 상위 레이어 세션을 전달하는 링크 레이어 패킷은 그 옵셔널 헤더에 SID 필드를 가질 수 있고, 그 SID 필드 값은 후술할 LMT 내의 SID 필드와 동일할 수 있다.
compressed_flag 필드는 해당 전송 세션을 전달하는 링크 레이어 패킷의 데이터들에 헤더 컴프레션이 적용되었는지 여부를 지시할 수 있다. 또한 본 필드의 값에 따라 후술할 context_id 필드의 존부가 결정될 수 있다. 헤더 컴프레션이 적용된 경우(compressed_flag = 1), RDT 가 존재할 수 있고, 그 RDT 의 PLP ID 필드는 본 compressed_flag 필드와 관련된 해당 PLP_ID 필드와 같은 값을 가질 수 있다.
SID 필드는 해당 전송 세션을 전달하는 링크 레이어 패킷들에 대한 SID (sub stream ID) 를 지시할 수 있다. 이 링크 레이어 패킷들은, 그 옵셔널 헤더에 본 SID 필드와 같은 값을 가지는 SID 를 포함하고 있을 수 있다. 이를 통해 수신기는 링크 레이어 패킷을 전부 파싱할 필요 없이, LMT 의 정보와 링크 레이어 패킷 헤더의 SID 정보를 이용하여, 링크 레이어 패킷들을 필터링할 수 있다.
context_id 필드는 RDT 내의 CID(context id) 에 대한 레퍼런스를 제공할 수 있다. RDT 의 CID 정보는 해당되는 압축 IP 패킷 스트림에 대한 컨텍스트 ID 를 나타낼 수 있다. RDT 는 해당 압축 IP 패킷 스트림에 대한 컨텍스트 정보들을 제공할 수 있다. 본 필드를 통해 RDT 와 LMT 가 연관될 수 있다.
전술한, 본 발명의 시그널링 정보/테이블의 실시예들에 있어서, 각각의 필드, 엘레멘트, 속성들은 생략되거나 다른 필드로 대체될 수 있으며, 실시예에 따라 추가적인 필드, 엘레멘트, 속성들이 추가될 수도 있다.
본 발명의 일 실시예에서, 한 서비스의 서비스 컴포넌트들이 복수개의 ROUTE 세션을 통해 전달될 수 있다. 이 경우, SLT 의 부트스트랩 정보를 통하여 SLS 가 획득될 수 있다. 이 SLS 의 USBD 를 통해 S-TSID 와 MPD 가 레퍼런싱될 수 있다. S-TSID 는 SLS 가 전달되고 있는 ROUTE 세션 뿐 아니라, 서비스 컴포넌트들이 전달되고 있는 다른 ROUTE 세션에 대한 전송 세션 디스크립션 정보 또한 기술할 수 있다. 이를 통해 복수개의 ROUTE 세션을 통해 전달되는 서비스 컴포넌트들이 모두 수집될 수 있다. 이러한 사항은 한 서비스의 서비스 컴포넌트들이 복수개의 MMTP 세션을 통해 전달되는 경우에도 유사하게 적용될 수 있다. 참고로, 하나의 서비스 컴포넌트는 복수개의 서비스에 의해 동시에 사용될 수도 있다.
본 발명의 또 다른 실시예에서, ESG 서비스에 대한 부트스트래핑은 방송망 또는 브로드밴드에 의해 수행될 수 있다. 브로드밴드를 통한 ESG 획득을 통해, SLT 의 URL 정보가 활용될 수 있다. 이 URL 로 ESG 정보 등이 요청될 수 있다.
본 발명의 또 다른 실시예에서, 한 서비스의 서비스 컴포넌트가 하나는 방송망으로 하나는 브로드밴드로 전달될 수 있다(하이브리드). S-TSID 는 방송망으로 전달되는 컴포넌트들에 대해 기술해, ROUTE 클라이언트가 원하는 서비스 컴포넌트들을 획득케 할 수 있다. 또한 USBD 는 베이스 패턴 정보를 가지고 있어, 어느 세그먼트들이(어느 컴포넌트들이) 어느 경로로 전달되는지 기술할 수 있다. 따라서 수신기는 이를 이용해, 브로드밴드 서버로 요청해야될 세그먼트는 무엇인지, 방송 스트림에서 찾아야될 세그먼트는 무엇인지 알 수 있다.
본 발명의 또 다른 실시예에서, 서비스에 대한 스케일러블(scalable) 코딩이 수행될 수 있다. USBD 는 해당 서비스를 렌더링하기 위해 필요한 모든 캐패빌리티 정보를 가질 수 있다. 예를 들어 한 서비스가 HD 또는 UHD 로 제공되는 경우, USBD 의 캐패빌리티 정보는 "HD 또는 UHD" 값을 가질 수 있다. 수신기는 MPD 를 이용하여 UHD 또는 HD 서비스를 렌더링하기 위하여 어느 컴포넌트가 재생되어야 하는지 알 수 있다.
본 발명의 또 다른 실시예에서, SLS 를 전달하는 LCT 채널로 전달되는 LCT 패킷들의 TOI 필드를 통해, 해당 LCT 패킷들이 어느 SLS 프래그먼트를 전달하고 있는지(USBD, S-TSID, MPD 등..) 가 식별될 수 있다.
본 발명의 또 다른 실시예에서, 앱 기반 인핸스먼트/ 앱 기반 서비스에 사용될 앱 컴포넌트들은 NRT 컴포넌트로서 방송망을 통해 전달되거나 브로드밴드를 통해 전달될 수 있다. 또한 앱 기반 인핸스먼트에 대한 앱 시그널링은 SLS 와 함께 전달되는 AST (Application Signaling Table) 에 의해 수행될 수 있다. 또한 앱이 수행할 동작에 대한 시그널링인 이벤트는 SLS 와 함께 EMT (Event Message Table) 형태로 전달되거나, MPD 내에 시그널링되거나, DASH 레프리젠테이션 내에 box 형태로 인밴드(in-band) 시그널링될 수 있다. AST, EMT 등은 브로드밴드를 통해 전달될 수도 있다. 수집된 앱 컴포넌트들과 이러한 시그널링 정보들을 이용해 앱 기반 인핸스먼트 등이 제공될 수 있다.
본 발명의 또 다른 실시예에서, 긴급 경보를 위해 CAP 메시지가 전술한 LLS 테이블에 포함되어 제공될 수 있다. 긴급 경보를 위한 리치 미디어(Rich Media) 컨텐츠 역시 제공될 수 있다. 리치 미디어는 CAP 메시지에 의해 시그널링될 수 있으며, 리치 미디어가 존재하는 경우 이는 SLT 에 의해 시그널링되는 EAS 서비스로서 제공될 수 있다.
본 발명의 또 다른 실시예에서, MMT 프로토콜에 따라 리니어 서비스 컴포넌트들이 방송망을 통해 전달될 수 있다. 이 경우 해당 서비스에 대한 NRT 데이터(예를 들어 앱 컴포넌트)들은 ROUTE 프로토콜에 따라 방송망을 통해 전달될 수 있다. 또한 해당 서비스에 대한 데이터가 브로드밴드를 통해 전달될 수도 있다. 수신기는 SLT 의 부트스트랩 정보를 이용해 SLS 를 전달하는 MMTP 세션에 접근할 수 있다. MMT 에 따른 SLS 의 USBD 는 MP 테이블을 레퍼런싱하여, 수신기가 MMT 프로토콜에 따라 전달되는 MPU 로 포맷된 리니어 서비스 컴포넌트들을 획득케 할 수 있다. 또한, USBD 는 S-TSID 를 더 레퍼런싱하여, 수신기가 ROUTE 프로토콜에 따라 전달되는 NRT 데이터를 획득케 할 수 있다. 또한, USBD 는 MPD 를 더 레퍼런싱하여, 브로드밴드를 통해 전달되는 데이터에 대한 재생 디스크립션을 제공할 수 있다.
본 발명의 또 다른 실시예에서, 수신기는 그 컴패니언 디바이스에 스트리밍 컴포넌트 및/또는 파일 컨텐트 아이템(파일 등)을 획득할 수 있는 로케이션 URL 정보를, 웹소켓 등의 방법을 통해 전달할 수 있다. 컴패니언 디바이스의 어플리케이션은 이 URL 로 HTTP GET 등을 통해 요청하여 해당 컴포넌트, 데이터 등을 획득할 수 있다. 그 밖에 수신기는 시스템 타임 정보, 긴급 경보 정보 등의 정보를 컴패니언 디바이스 측에 전달할 수 있다.
도 8은 본 발명의 일 실시예에 따른 차세대 방송 서비스에 대한 방송 신호 송신 장치의 구조를 나타낸다.
본 발명의 일 실시예에 따른 차세대 방송 서비스에 대한 방송 신호 송신 장치는 인풋 포맷 블록 (Input Format block) (1000), BICM (bit interleaved coding & modulation) 블록(1010), 프레임 빌딩 블록 (Frame building block) (1020), OFDM (orthogonal frequency division multiplexing) 제너레이션 블록 (OFDM generation block)(1030), 및 시그널링 생성 블록(1040)을 포함할 수 있다. 방송 신호 송신 장치의 각 블록의 동작에 대해 설명한다.
본 발명의 일 실시예에 따른 입력 데이터는 IP 스트림/패킷 및 MPEG2-TS이 주요 입력 포맷이 될 수 있으며, 다른 스트림 타입은 일반 스트림으로 다루어진다.
인풋 포맷 블록(1000)은 각각의 입력 스트림을 독립적인 코딩 및 변조가 적용되는 하나 또는 다수의 데이터 파이프로 디멀티플렉싱 할 수 있다. 데이터 파이프는 견고성(robustness) 제어를 위한 기본 단위이며, 이는 QoS (Quality of Service)에 영향을 미친다. 하나 또는 다수의 서비스 또는 서비스 컴포넌트가 하나의 데이터 파이프에 의해 전달될 수 있다. 데이터 파이프는 하나 또는 다수의 서비스 또는 서비스 컴포넌트를 전달할 수 있는 서비스 데이터 또는 관련 메타데이터를 전달하는 물리 계층(physical layer)에서의 로지컬 채널이다.
QoS가 본 발명의 일 실시예에 따른 차세대 방송 서비스에 대한 방송 신호 송신 장치에 의해 제공되는 서비스의 특성에 의존하므로, 각각의 서비스에 해당하는 데이터는 서로 다른 방식을 통해 처리되어야 한다.
BICM 블록(1010)은 MIMO가 적용되지 않는 프로파일 (또는 시스템)에 적용되는 처리 블록 및/또는 MIMO가 적용되는 프로파일(또는 시스템)의 처리 블록을 포함할 수 있으며, 각각의 데이터 파이프를 처리하기 위한 복수의 처리 블록을 포함할 수 있다.
MIMO가 적용되지 않는 BICM 블록의 처리 블록은 데이터 FEC 인코더, 비트 인터리버, 컨스텔레이션 매퍼(mapper), SSD (signal space diversity) 인코딩 블록, 타임 인터리버를 포함할 수 있다. MIMO가 적용되는 BICM 블록의 처리 블록은 셀 워드 디멀티플렉서 및 MIMO 인코딩 블록을 더 포함한다는 점에서 MIMO가 적용되지 않는 BICM의 처리 블록과 구별된다.
데이터 FEC 인코더는 외부 코딩(BCH) 및 내부 코딩(LDPC)을 이용하여 FECBLOCK 절차를 생성하기 위해 입력 BBF에 FEC 인코딩을 실행한다. 외부 코딩(BCH)은 선택적인 코딩 방법이다. 비트 인터리버는 데이터 FEC 인코더의 출력을 인터리빙하여 LDPC 코드 및 변조 방식의 조합으로 최적화된 성능을 달성할 수 있다. 컨스텔레이션 매퍼는 QPSK, QAM-16, 불균일 QAM (NUQ-64, NUQ-256, NUQ-1024) 또는 불균일 컨스텔레이션 (NUC-16, NUC-64, NUC-256, NUC-1024)을 이용해서 비트 인터리버 또는 셀 워드 디멀티플렉서로부터의 셀 워드를 변조하여 파워가 정규화된 컨스텔레이션 포인트를 제공할 수 있다. NUQ가 임의의 형태를 갖는 반면, QAM-16 및 NUQ는 정사각형 모양을 갖는 것이 관찰된다. NUQ 및 NUC는 모두 각 코드 레이트(code rate)에 대해 특별히 정의되고, PLS2 데이터의 파라미터 DP_MOD에 의해 시그널링 된다. 타임 인터리버는 데이터 파이프 레벨에서 동작할 수 있다. 타임 인터리빙의 파라미터는 각각의 데이터 파이프에 대해 다르게 설정될 수 있다.
본 발명의 타임 인터리버는 BICM 체인(BICM chain) 블록과 프레임 빌더(Frame Builder) 사이에 위치할 수 있다. 이 경우, 본 발명의 타임 인터리버는 PLP (Physical Layer Pipe) 모드에 따라 컨볼루션 인터리버(Convolution Interleaver, CI)와 블록 인터리버(Block Interleaver, BI)를 선택적으로 사용하거나, 모두 사용할 수 있다. 본 발명의 일 실시예에 따른 PLP는 상술한 DP와 동일한 개념으로 사용되는 피지컬 패스(physical path)로서, 호칭은 설계자의 의도에 따라 변경 가능하다. 본 발명의 일 실시예에 따른 PLP 모드는 방송 신호 송신기 또는 방송 신호 송신 장치에서 처리하는 PLP 개수에 따라 싱글 PLP(single PLP) 모드 또는 멀티플 PLP(multiple PLP)모드를 포함할 수 있다. 본 발명에서는 PLP 모드에 따라 서로 다른 타임 인터리빙 방법을 적용하는 타임 인터리빙을 하이브리드 타임 인터리빙(Hybrid Time Interleaving)이라 호칭할 수 있다.
하이브리드 타임 인터리버는 블록 인터리버(BI)와 컨볼루션 인터리버(CI)를 포함할 수 있다. PLP_NUM=1인 경우, 블록 인터리버는 적용되지 않고(블록인터리버 오프(off)), 컨볼루션 인터리버만 적용된다. PLP_NUM>1인 경우, 블록 인터리버와 컨볼루션 인터리버가 모두 적용(블록 인터리버 온(on))될 수 있다. PLP_NUM>1인 경우 적용되는 컨볼루션 인터리버의 구조 및 동작은 PLP_NUM=1인 경우 적용되는 컨볼루션 인터리버의 구조 및 동작과 다를 수 있다. 하이브리드 타임 디인터리버는 상술한 하이브리드 타임 인터리버의 역동작에 상응하는 동작을 수행할 수 있다.
셀 워드 디멀티플렉서는 MIMO 처리를 위해 단일 셀 워드 스트림을 이중 셀 워드 스트림으로 분리하는 데 사용된다. MIMO 인코딩 블록은 MIMO 인코딩 방식을 이용해서 셀 워드 디멀티플렉서의 출력을 처리할 수 있다. 본 발명의 MIMO 인코딩 방식은 수신기 측에서의 비교적 작은 복잡도 증가로 용량 증가를 제공하기 위한 FR-SM (full-rate spatial multiplexing)으로 정의 될 수 있다. MIMO 처리는 데이터 파이프 레벨에서 적용된다. 컨스텔레이션 매퍼 출력의 페어(pair, 쌍)인 NUQ (e1,i 및 e2,i)는 MIMO 인코더의 입력으로 공급되면 MIMO 인코더 출력 페어(pair, 쌍)(g1,i 및 g2,i)은 각각의 송신 안테나의 동일한 캐리어 k 및 OFDM 심볼 l에 의해 전송된다.
프레임 빌딩 블록(1020)은 하나의 프레임 내에서 입력 데이터 파이프의 데이터 셀을 OFDM 심볼로 매핑하고 주파수 영역 다이버시티를 위해 주파수 인터리빙을 수행할 수 있다.
본 발명의 일 실시예에 따른 프레임은 프리앰블, 하나 이상의 FSS (frame signaling symbol), 노멀 데이터 심볼로 분리된다. 프리앰블은 신호의 효율적인 송신 및 수신을 위한 기본 전송 파라미터의 집합을 제공하는 특별한 심볼이다. 프리앰블은 프레임의 기본 전송 파라미터 및 전송 타입을 시그널링 할 수 있다. 특히 프리앰블은 EAS (emergency alert service)이 현재 프레임에 제공되는지 여부를 지시할 수 있다. FSS의 주된 목적은 PLS 데이터를 전달하는 것이다. 고속 동기화 및 채널 추정, PLS 데이터의 고속 디코딩을 위해, FSS는 노멀 데이터 심볼보다 고밀도의 파일럿 패턴을 갖는다.
프레임 빌딩 블록은 데이터 파이프와 해당하는 PLS 데이터 사이의 타이밍을 조절하여 송신기 측에서 데이터 파이프와 해당하는 PLS 데이터 간의 동시성(co-time)을 보장하기 위한 딜레이 컴펜세이션(delay compensation, 지연보상) 블록, PLS, 데이터 파이프, 보조 스트림, 및 더미 셀 등을 프레임 내에서 OFDM 심볼의 액티브(active) 캐리어에 매핑하기 위한 셀 매퍼 (cell mapper) 및 프리퀀시 인터리버 (frequency interleaver)를 포함할 수 있다.
프리퀀시 인터리버는 셀 매퍼로부터 의해 수신된 데이터 셀을 랜덤하게 인터리빙하여 주파수 다이버시티를 제공할 수 있다. 또한, 프리퀀시 인터리버는 단일 프레임에서 최대의 인터리빙 이득을 얻기 위해 다른 인터리빙 시드(seed) 순서를 이용하여 두 개의 순차적인 OFDM 심볼로 구성된 OFDM 심볼 페어(pair, 쌍)에 대응하는 데이터 또는 OFDM 심볼 하나에 대응하는 데이터에 대해 동작할 수 있다.
OFDM 제너레이션 블록(1030)은 프레임 빌딩 블록에 의해 생성된 셀에 의해 OFDM 캐리어를 변조하고, 파일럿을 삽입하고, 전송을 위한 시간 영역 신호를 생성한다. 또한, 해당 블록은 순차적으로 가드 인터벌을 삽입하고, PAPR 감소 처리를 적용하여 최종 RF 신호를 생성한다.
시그널링 생성 블록(1040)은 각 기능 블록의 동작에 사용되는 물리 계층(physical layer) 시그널링 정보를 생성할 수 있다. 본 발명의 일 실시예에 따른 시그널링 정보는 PLS 데이터를 포함할 수 있다. PLS는 수신기에서 피지컬 레이어(physical layer) 데이터 파이프에 접속할 수 있는 수단을 제공한다. PLS 데이터는 PLS1 데이터 및 PLS2 데이터로 구성된다.
PLS1 데이터는 PLS2 데이터를 디코딩하는 데 필요한 파라미터뿐만 아니라 시스템에 관한 기본 정보를 전달하는 고정된 사이즈, 코딩, 변조를 갖는 프레임에서 FSS로 전달되는 PLS 데이터의 첫 번째 집합이다. PLS1 데이터는 PLS2 데이터의 수신 및 디코딩을 가능하게 하는 데 요구되는 파라미터를 포함하는 기본 송신 파라미터를 제공한다. PLS2 데이터는 데이터 파이프 및 시스템에 관한 더욱 상세한 PLS 데이터를 전달하며 FSS로 전송되는 PLS 데이터의 두 번째 집합이다. PLS2 시그널링은 PLS2 스태틱(static, 정적) 데이터(PLS2-STAT 데이터) 및 PLS2 다이나믹(dynamic, 동적) 데이터(PLS2-DYN 데이터)의 두 종류의 파라미터로 더 구성된다. PLS2 스태틱(static, 정적) 데이터는 프레임 그룹의 듀레이션 동안 스태틱(static, 정적)인 PLS2 데이터이고, PLS2 다이나믹(dynamic, 동적) 데이터는 프레임마다 다이나믹(dynamic, 동적)으로 변화하는 PLS2 데이터이다.
PLS2 데이터는 FIC_FLAG 정보를 포함할 수 있다. FIC (Fast Information Channel)은 빠른 서비스 획득 및 채널 스캔(fast service acquisition and channel scanning)을 가능하게 하는 크로스-레이어 (cross-layer) 정보를 전송하기 위한 데디케이티드 채널(dedicated channel)이다. FIC_FLAG 정보는 1비트의 필드로서, FIC((fast information channel, 고속 정보 채널)가 현 프레임 그룹에서 사용되는지 여부를 나타낸다. 해당 필드의 값이 1로 설정되면, FIC는 현 프레임에서 제공된다. 해당 필드의 값이 0으로 설정되면, FIC는 현 프레임에서 전달되지 않는다.BICM 블록(1010)은 PLS 데이터의 보호를 위한 BICM 블록을 포함할 수 있다. PLS 데이터의 보호를 위한 BICM 블록은 PLS FEC 인코더, 비트 인터리버, 및 컨스텔레이션 매퍼를 포함할 수 있다.
PLS FEC 인코더는 PLS1 데이터 및 PLS2 데이터를 스크램블링하기 위한 스크램블러, PLS 보호를 위한 쇼트닝된 BCH 코드를 이용하여 스크램블링된 PLS 1,2 데이터에 외부 인코딩을 수행하고, BCH 인코딩 후에 제로 비트를 삽입하기 위한 BCH 인코딩/제로 삽입 블록, LDPC 코드를 이용하여 인코딩을 수행하기 위한 LDPC 인코딩 블록, 및 LDPC 패리티 펑처링(puncturing) 블록을 포함할 수 있다. PLS1 데이터에 대해서만, 제로 삽입의 출력 비트가 LDPC 인코딩 전에 퍼뮤테이션(permutation) 될 수 있다.. 비트 인터리버는 각각의 쇼트닝 및 펑처링된 PLS1 데이터 및 PLS2 데이터를 인터리빙하고, 컨스텔레이션 매퍼는 비트 인터리빙된 PLS1 데이터 및 PLS2 데이터를 컨스텔레이션에 매핑할 수 있다.
본 발명의 일 실시예에 따른 차세대 방송 서비스에 대한 방송 신호 수신 장치는 도 8을 참조하여 설명한 차세대 방송 서비스에 대한 방송 신호 송신 장치의 역과정을 수행할 수 있다.
본 발명의 일 실시예에 따른 차세대 방송 서비스에 대한 방송 신호 수신 장치는 방송 신호 송신 장치에 의해 실행되는 절차의 역과정에 해당하는 복조를 실행하는 동기 및 복조 모듈 (synchronization & demodulation module), 입력 신호 프레임을 파싱하고, 사용자에 의해 선택된 서비스가 전송되는 데이터를 추출하는 프레임 파싱 모듈 (frame parsing module), 입력 신호를 비트 영역 데이터로 변환한 후, 필요에 따라 비트 영역 데이터들을 디인터리빙하고, 전송 효율을 위해 적용된 매핑에 대한 디매핑을 실행하고, 디코딩을 통해 전송 채널에서 발생한 에러를 정정하는 디매핑 및 디코딩 모듈 (demapping & decoding module), 방송 신호 송신 장치에 의해 적용되는 다양한 압축/신호 처리 절차의 역과정을 실행하는 출력 프로세서 (output processor) 및 동기 및 복조 모듈에 의해 복조된 신호로부터 PLS 정보를 획득, 처리하는 시그널링 디코딩 모듈 (signaling decoding module)을 포함할 수 있다. 프레임 파싱 모듈, 디매핑 및 디코딩 모듈, 출력 프로세서는 시그널링 디코딩 모듈로부터 출력된 PLS 데이터를 이용하여 그 기능을 실행할 수 있다.
이하 타임 인터리버를 설명한다. 본 발명의 일 실시예에 따른 타임 인터리빙 그룹은 하나의 프레임에 직접 매핑되거나 PI개의 프레임에 걸쳐 확산된다. 또한 각각의 타임 인터리빙 그룹은 하나 이상(NTI개)의 타임 인터리빙 블록으로 분리된다. 여기서 각각의 타임 인터리빙 블록은 타임 인터리버 메모리의 하나의 사용에 해당한다. 타임 인터리빙 그룹 내의 타임 인터리빙 블록은 서로 다른 개수의 XFECBLOCK을 포함할 수 있다. 일반적으로, 타임 인터리버는 프레임 생성 과정 이전에 데이터 파이프 데이터에 대한 버퍼로도 작용될 수 있다.
본 발명의 일 실시예에 따른 타임 인터리버는 트위스트된 행-열 블록 인터리버이다. 본 발명의 일 실시예에 따른 트위스트된 행-열 블록 인터리버는 첫 번째 XFECBLOCK을 타임 인터리빙 메모리의 첫 번째 열에 열 방향으로 기입하고, 두 번째 XFECBLOCK은 다음 열에 기입하고 동일한 방식으로 타임 인터리빙 블록 내의 나머지 XFECBLOCK들을 기입할 수 있다. 그리고 인터리빙 어레이에서, 셀은 첫 번째 행으로부터 (가장 왼쪽 열을 시작으로 행을 따라 오른쪽으로) 마지막 행까지 대각선 방향 판독될 수 있다. 이 경우, 타임 인터리빙 블록 내의 XFECBLOCK 개수에 상관없이 수신기 측에서 단일 메모리 디인터리빙을 달성하기 위해, 트위스트된 행-열 블록 인터리버용 인터리빙 어레이는 버츄얼 XFECBLOCK을 타임 인터리빙 메모리에 삽입할 수 있다. 이 경우, 수신기 측에서 단일 메모리 디인터리빙을 달성하기 위해 버츄얼 XFECBLOCK은 다른 XFECBLOCK 가장 앞에 삽입되어야 한다.
도 9는 본 발명의 일 실시예에 따른 타임 인터리버의 라이팅 (writing) 오퍼레이션을 나타낸다.
도면의 왼쪽에 도시된 블록은 TI 메모리 어드레스 어레이(memory address array)를 나타내며, 도면의 오른쪽에 도시된 블록은 연속한 두 개의 TI 그룹들에 대해 각각 버츄얼(virtual) FEC 블록들이 TI 그룹의 가장 앞에 각각 2개 및 1개가 삽입된 경우의 라이팅 (writing) 오퍼레이션을 나타낸다.
본 발명의 일 실시예에 따른 프리퀀시 인터리버는 심볼 페어에 대응하는 데이터들에 적용하기 위한 인터리빙 어드레스를 생성하기 위한 인터리빙 어드레스 제너레이터를 포함할 수 있다.
도 10은 본 발명의 일 실시예에 따른 프리퀀시 인터리버에 포함된 각 FFT 모드에 따른 메인-PRBS 제너레이터와 서브-PRBS 제너레이터로 구성된 인터리빙 어드레스 제너레이터의 블록 다이아그램을 나타낸 도면이다.
(a)는 8K FFT 모드에 대한 인터리빙 어드레스 제너레이터의 블록 다이아그램을 나타내고, (b)는 16K FFT 모드에 대한 인터리빙 어드레스 제너레이터의 블록 다이아그램을 나타내고, (c)는 32K FFT 모드에 대한 인터리빙 어드레스 제너레이터의 블록 다이아그램을 나타낸다.
OFDM 심볼 페어에 대한 인터리빙 과정은 하나의 인터리빙 시퀀스를 이용하며 다음과 같이 설명된다. 우선, 하나의 OFDM 심볼 Om,l 에서 인터리빙 될 사용 가능한 데이터 셀(셀 매퍼로부터의 출력 셀)은 l = 0, …, Nsym-1 에 대해 Om,l =[xm,l,0,…,xm,l,p,…,xm,l,Ndata-1] 로 정의된다. 이때 xm,l,p 는 m번째 프레임에서 l 번째 OFDM 심볼의 p 번째 셀이고, Ndata 는 데이터 셀의 개수이다. 프레임 시그널링 심볼에 대해 Ndata = CFSS 이고, 노멀 데이터에 대해 Ndata = Cdata 이며, 프레임 엣지 심볼에 대해 Ndata = CFES 이다. 또한, 인터리빙된 데이터 셀은 l = 0, …, Nsym-1 에 대해 Pm,l =[vm,l,0,…,vm,l,Ndata-1] 로 정의된다.
OFDM 심볼 페어에 대해, 인터리빙 된 OFDM 심볼 페어는 각 페어의 첫 번째 OFDM 심볼에 대해 vm,l,Hi(p) = xm,l,p, p=0,…,Ndata-1 로 주어지고, 각 페어의 두 번째 OFDM 심볼에 대해 vm,l,p = xm,l,Hi(p), p=0,…,Ndata-1 로 주어진다. 이때 Hl(p) 는 PRBS 제너레이터 및 서브-PRBS 제너레이터의 사이클릭 시프트 값(심볼 오프셋)을 기반으로 생성된 인터리빙 어드레스이다.
도 11는 본 발명의 일 실시예에 따른 서비스 시간 정보의 전달을 위한 state variable들을 나타낸 도면이다.
도면을 참고하면, 서비스 시간 정보의 전달을 위한 state variable들이 나타나 있다. 서비스 시간 정보의 전달을 위한 state variable들은 서비스 시간 정보를 포함하는 ServiceTimeInfo state variable, 전달 주기 정보를 포함하는 UpdateDuration state variable, 및/또는 요청된 전달 주기 정보를 포함하는 A_ARG_TYPE_UpdateDuration state variable 중에서 적어도 하나를 포함할 수 있다. ServiceTimeInfo state variable, UpdateDuration state variable, 및/또는 A_ARG_TYPE_UpdateDuration state variable은 required state variable이다. ServiceTimeInfo state variable은 방송 수신 장치에서 재생 혹은 서비스 중인 프로그램의 media time 및 현재 시각, 즉 wall clock 시간 정보를 포함할 수 있다. UpdateDuration state variable은 방송 수신 장치가 컴패니언 스크린 디바이스에게 동기화를 위한 시간 정보를 eventing 방식으로 전달할 경우 그 전달주기를 나타내는 variable이다. A_ARG_TYPE_UpdateDuration state variable는 컴패니언 스크린 디바이스가 방송 수신 장치로부터 동기화를 위한 시간 정보를 eventing 방식으로 전달받을 경우에, 특정한 전달 주기를 요청하기 위해서 사용될 수 있는 variable이다.
서비스 시간 정보(ServiceTimeInfo)는 방송 수신 장치에서 디스플레이되는 A/V 콘텐트와 컴패니언 스크린 디바이스에서 디스플레이되는 A/V 콘텐트 사이에 시간 동기화와 관련된 데이터를 제공하는 정보이다. 예를 들어, 서비스 시간 정보는 방송 수신 장치에서 재생 또는 서비스 중인 프로그램의 미디어 타임 정보(media time information) 및/또는 월-클럭 시간(wall-clock time) 중에서 적어도 하나를 포함할 수 있다. 방송 수신 장치는 이벤트(또는 트리거링 이벤트)를 실행하여(Eventing 방식) 시간 동기화를 위한 서비스 시간 정보를 컴패니언 스크린 디바이스로 전달할 수 있다. 또한 방송 수신 장치는 컴패니언 스크린 디바이스의 요청에 대한 응답(Requesting 방식)으로 시간 동기화를 위한 서비스 시간 정보를 컴패니언 스크린 디바이스로 전달할 수 있다.
전달 주기 정보는 서비스 시간 정보를 전달하는 주기(durarion)를 지시하는 정보이다. 방송 수신 장치는 전달 주기 정보를 기초로 서비스 시간 정보를 컴패니언 스크린 디바이스로 전달할 수 있다. 예를 들어, 전달 주기 정보(UpdateDuration)는 방송 수신 장치가 컴패니언 스크린 디바이스에게 시간 동기화를 위한 서비스 시간 정보를 eventing 방식으로 전달할 경우에 전달 주기를 나타내는 정보이다. 즉, 전달 주기 정보는 서비스 시간 정보가 이벤팅되는 주기를 나타낸다. 방송 수신 장치가 컴패니언 스크린 디바이스에게 시간 동기화를 위한 서비스 시간 정보를 eventing 방식으로 전달할 경우에, 방송 수신 장치는 전달 주기 정보가 지시하는 주기로 서비스 시간 정보를 컴패니언 스크린 디바이스로 전달할 수 있다.
요청된 전달 주기 정보는, 컴패니언 스크린 디바이스가 방송 수신 장치로부터 시간 동기화를 위한 서비스 시간 정보를 eventing 방식으로 전달받을 경우에, 컴패니언 스크린 디바이스가 요청하는 전달 주기 정보의 값을 지시하는 정보이다. 구체적으로, 방송 수신 장치가 컴패니언 스크린 디바이스에게 시간 동기화를 위한 서비스 시간 정보를 eventing 방식으로 전달할 경우에, 컴패니언 스크린 디바이스는 방송 수신 장치에게 요청된 전달 주기 정보를 기초로 미리 정해진(또는 특정한) 전달 주기를 요청할 수 있다. 컴패니언 스크린 디바이스의 요청에 대한 응답으로, 방송 수신 장치는 요청된 전달 주기 정보를 기초로 전달 주기 정보를 결정하고, 전달 주기 정보가 지시하는 주기으로 서비스 시간 정보를 컴패니언 스크린 디바이스로 전달할 수 있다.
도 12는 본 발명의 일 실시예에 따른 서비스 시간 정보를 나타낸 도면이다.
서비스 시간 정보는 방송 수신 장치와 컴패니언 스크린 디바이스 사이에 시간 동기화를 위한 정보이다. 서비스 시간 정보는 방송 수신 장치에서 재생 또는 서비스 중인 프로그램의 미디어 타임 정보 및/또는 현재 시각 정보 중에서 적어도 하나를 포함할 수 있다. 또한, 서비스 시간 정보는 전술한 미디어 타임라인 체크포인트(Media Timeline Checkpoint)를 포함할 수 있다.
구체적으로, 서비스 시간 정보는 serviceId attribute, programId attribute, mediaTime element, 및/또는 currentTime element 중에서 적어도 하나를 포함할 수 있다.
serviceId attribute는 제1 수신기에서 현재 선택된 서비스의 고유한 식별자를 지시한다. 예를 들어, 서비스는 리니어 서비스 및/또는 Non-리니어 서비스 중에서 적어도 하나를 포함할 수 있다.
programId attribute는 현재 재생되고 있는 프로그램의 고유한 식별자를 지시한다. 예를 들어, 프로그램은 리니어 서비스 및/또는 Non-리니어 서비스에 포함되는 콘텐트를 포함할 수 있다.
mediaTime element는 현재 재생되고 있는 프로그램의 미디어 타임 정보를 지시할 수 있다. mediaTime element 는 mediaTime element 를 나타내기위해서 사용되는 프로토콜을 지시하는 mediaTimeProtocol attribute를 포함할 수 있다. 예를 들어, mediaTimeProtocol attribute는 timestamp를 지시할 수 있다.
currentTime element 는 현재 시각 정보(wall clock time)를 지시할 수 있다. currentTime element는 currentTime element 를 나타내기 위해서 사용되는 프로토콜을 지시하는 currentTimeProtocol attribute를 포함할 수 있다. 예를 들어, currentTimeProtocol attribute는 Network Time Protocol (NTP)을 지시할 수 있다.
방송 수신 장치는 이벤트(또는 트리거링 이벤트)를 실행하여(Eventing 방식) 방송 수신 장치와 컴패니언 스크린 디바이스 사이에 시간 동기화를 위한 서비스 시간 정보를 컴패니언 스크린 디바이스로 전달할 수 있다. 또한 방송 수신 장치는 컴패니언 스크린 디바이스의 요청에 대한 응답(Requesting 방식)으로 시간 동기화를 위한 서비스 시간 정보를 컴패니언 스크린 디바이스로 전달할 수 있다.
도 13은 본 발명의 일 실시예에 따른 서비스 시간 정보의 XML 포맷을 나타낸 도면이다.
도면을 참고하면, 시비스 시간 정보는 serviceId attribute, programId attribute, mediaTime element, 및/또는 currentTime element 중에서 적어도 하나를 포함할 수 있다.
serviceId attribute 는 "11"을 지시할 수 있다. programId attribute 는 "1008"를 지시할 수 있다. mediaTime element 는 mediaTimeProtocol attribute를 포함할 수 있다. mediaTimeProtocol attribute는 "timestamp"를 지시할 수 있다. 또한, mediaTime element는 "77ee"를 지시할 수 있다. currentTime element 는 currentTimeProtocol attribute를 포함할 수 있다. currentTimeProtocol attribute는 "NTP"를 지시할 수 있다. currentTime element는 "88ee"를 지시할 수 있다.
방송 수신 장치는 서비스 식별자의 값이 "11"인 서비스에서, 프로그램 식별자의 값이 "1008"인 프로그램에 대하여, timestamp로서 "77ee"를 지시하는 미디어 타임 정보 및 NTP로서 "88ee"를 지시하는 현재 시각 정보를 포함하는 서비스 시간 정보를 컴패니언 스크린 디바이스로 전달할 수 있다.
도 14는 본 발명의 일 실시예에 따른 방송 수신 장치의 동작을 나타낸 흐름도이다.
방송 신호 수신 장치는 브로드캐스트 인터페이스를 이용하여 방송 신호를 수신할 수 있다(CS3100). 예를 들어, 방송 신호 수신 장치는 브로드캐스트 인터페이스를 이용하여 오디오/비디오(A/V) 프로그램을 포함하는 서비스 및 시그널링 정보를 수신할 수 있다. 예를 들어, 프로그램은 콘텐트를 지칭할 수 있다. 즉, 오디오/비디오(A/V) 프로그램은 A/V 콘텐트를 지칭할 수 있다.
예를 들어, 시그널링 정보는 재생되는 A/V 프로그램의 미디어 타임 정보를 포함할 수 있다.
그리고 나서, 방송 수신 장치는 컴패니언 스크린 인터페이스를 이용하여 컴패니언 스크린 디바이스를 발견할 수 있다(CS3200). 방송 수신 장치는 컴패니언 스크린 인터페이스를 이용하여 컴패니언 스크린 디바이스로 데이터 및/또는 시그널링 정보를 전달하거나 컴패니언 스크린 디바이스로부터 데이터 및/또는 시그널링 정보를 수신할 수 있다.
그리고 나서, 방송 수신 장치는 제어부를 이용하여 브로드캐스트 인터페이스 및 컴패니언 스크린 인터페이스를 동작시킬 수 있다. 제어부는 시간 동기화 서비스 프로세서를 포함할 수 있다.
그리고 나서, 방송 수신 장치는 제어부 및/또는 시간 동기화 서비스 프로세서를 이용하여 시그널링 정보를 기초로 A/V 프로그램과 컴패니언 스크린 디바이스에서 디스플레이되는 A/V 프로그램 사이에 시간 동기화와 관련된 데이터를 제공하는 서비스 시간 정보를 생성할 수 있다(CS3300).
그리고 나서, 방송 수신 장치는 컴패니언 스크린 인터페이스를 이용하여 서비스 시간 정보를 컴패니언 스크린 디바이스로 전달할 수 있다(CS3400).
본 발명의 일 실시예에 따른 서비스 시간 정보는 서비스의 식별자를 지시하는 serviceId attribute, 서비스에서 재생되고 있는 프로그램의 식별자를 지시하는 programId attribute, 프로그램의 미디어 타임 정보를 지시하는 mediaTime element, 및/또는 월-클럭 시간(wall clock time)을 지시하는 currentTime element 중에서 적어도 하나를 포함할 수 있다.
본 발명의 일 실시예에 따른 방송 수신 장치는 requesting 방식을 이용하여 서비스 시간 정보를 전달할 수 있다. 방송 신호 수신 장치는 컴패니언 스크린 인터페이스를 이용하여 컴패니언 스크린 디바이스로부터 수신한 서비스 시간 정보의 획득을 요청하는 제1 요청을 기초로 서비스 시간 정보를 컴패니언 스크린 디바이스로 전달할 수 있다.
본 발명의 일 실시예에 따른 방송 수신 장치는 eventing 방식을 이용하여 서비스 시간 정보를 전달 할 수 있다. 방송 수신 장치는 시간 동기화 서비스 프로세서를 이용하여 서비스 시간 정보를 전달하는 간격(interval)을 지시하는 전달 간격 정보(update interval information)을 생성할 수 있다. 그리고 나서, 방송 수신 장치는 컴패니언 스크린 인터페이스를 이용하여 전달 간격 정보를 기초로 서비스 시간 정보를 컴패니언 스크린 디바이스로 전달할 수 있다.
본 발명의 일 실시예에 따른 전달 간격 정보는 서비스 시간 정보를 전달하는 주기를 지시하는 전달 주기 정보 및 서비스 시간 정보를 전달하는 빈도를 지시하는 전달 빈도 정보 중에서 하나일 수 있다. 예를 들어, 간격(interval)은 주기(duration) 및/또는 빈도(frequency)를 포함할 수 있다. 또한, 전달 간격 정보(update interval information)는 전달 주기 정보(update duration information) 및/또는 전달 빈도 정보(update frequency information)을 포함할 수 있다.
방송 수신 장치는 전달 간격 정보의 획득을 요청할 수 있다. 방송 수신 장치는 컴패니언 스크린 인터페이스를 이용하여 전달 간격 정보의 획득을 요청하는 제2 요청(또는 전달 간격 정보 요청)을 컴패니언 스크린 디바이스로부터 수신할 수 있다. 그리고 나서, 방송 수신 장치는 시간 동기화 서비스 프로세서를 이용하여 제2 요청을 기초로 월-클럭 시간(wall clock time)이 지시하는 시점에서의 전달 간격 정보의 값을 지시하는 현재 전달 간격 정보를 생성할 수 있다. 그리고 나서, 방송 수신 장치는 컴패니언 스크린 인터페이스를 이용하여 현재 전달 간격 정보를 컴패니언 스크린 디바이스로 전달할 수 있다.
예를 들어, 전달 간격 정보 요청은 전달 주기 정보 요청 및/또는 전달 빈도 정보 요청을 포함할 수 있다. 현재 전달 간격 정보는 현재 전달 주기 정보 및/또는 현재 전달 빈도 정보를 포함할 수 있다.
방송 수신 장치는 전달 간격 정보의 설정을 요청할 수 있다. 방송 수신 장치는 컴패니언 스크린 인터페이스를 이용하여 전달 간격 정보의 설정을 요청하는 제3 요청(또는 전달 간격 정보 설정 요청)을 컴패니언 스크린 디바이스로부터 수신할 수 있다. 제3 요청은 컴패니언 스크린 디바이스가 요청하는 전달 간격 정보의 값을 지시하는 요청된 전달 간격 정보를 포함할 수 있다. 그리고 나서, 방송 수신 장치는 시간 동기화 서비스 프로세서를 이용하여 요청된 전달 간격 정보와 동일한 값 및 요청된 전달 간격 정보에 가장 가까운 값 중에서 하나를 지시하는 확인된 전달 간격 정보를 생성할 수 있다. 그리고 나서, 방송 수신 장치는 컴패니언 스크린 인터페이스를 이용하여 확인된 전달 간격 요청 정보를 기초로 서비스 시간 정보를 컴패니언 스크린 디바이스로 전달할 수 있다.
예를 들어, 전달 간격 정보 설정 요청은 전달 주기 정보 설정 요청 및/또는 전달 빈도 정보 설정 요청을 포함할 수 있다. 요청된 전달 간격 정보는 요청된 전달 주기 정보 및/또는 요청된 전달 빈도 정보를 포함할 수 있다. 확인된 전달 간격 정보는 확인된 전달 주기 정보 및/또는 확인된 전달 빈도 정보를 포함할 수 있다.
도 15 은 본 발명의 또 다른 실시예에 따른, JSON 포맷의 서비스 시간 정보(ServiceTimeInfo) 를 도시한 도면이다.
전술한 바와 같이, 서비스 시간 정보(ServiceTimeInfo)는 TV 수신기와 CD (Companion Device) 에서 재생되는 서비스/컨텐츠 간의 시간 동기화 관련 데이터를 제공하는 정보일 수 있다. 서비스 시간 정보는 전술한 ServiceTimeInfo 상태변수 (state variable) 형태를 가질 수 있다. 서비스 시간 정보는 TV 수신기에서 CD 로 미디어 타임 등의 정보를 전달하는데 사용될 수 있다.
ServiceTimeInfo 상태변수는 전술한 바와 같이 XML 포맷을 가질 수도 있지만, JSON 포맷을 가질 수도 있다. 본 도면에 도시된 XML 포맷은 전술한 ServiceTimeInfo 상태변수의 XML 포맷의 일 실시예와 같을 수 있다. 이 XML 포맷으로된 ServiceTimeInfo 상태변수는, 도시된 것과 같은 JSON 포맷으로도 나타낼 수 있다.
먼저, ServiceTimeInfo 상태변수를 JSON 포맷으로 나타낼 때, 도시된 JSON #1 와 같은 실시예로 나타낼 수 있다. 이 서비스 시간 정보는 VariableName, serviceId, programId, mediaTime 및/또는 currentTime 정보를 가질 수 있다. VariableName 은 해당 JSON 포맷이 담고 있는 상태변수의 이름을 나타낼 수 있다. 여기서는 ServiceTimeInfo 의 값을 가질 수 있다. serviceId 는 해당 상태변수와 관련된 서비스의 식별자를 나타낼 수 있다. 도시된 실시예에서 serviceId 정보는 "11" 의 값을 가질 수 있다. 이는 해당 서비스의 채널 넘버 내지 채널 식별자일 수 있다. programId 는 해당 상태변수와 관련된 프로그램의 식별자를 나타낼 수 있다. 도시된 실시예에서 programId 정보는 "1008" 값을 가질 수 있다. 이는 해당 프로그램(컨텐츠)의 식별자 값일 수 있다.
mediaTime 정보는 mediaTimeprotocol 정보 및/또는 value 정보를 가질 수 있다. mediaTimeProtocol 정보는 전술한 @mediaTimeProtocol 과 같이 미디어 타임을 나타내는데 사용되는 프로토콜을 지시할 수 있다. 여기서는 본 정보가 timestamp 값을 가지는데, 미디어 타임이 timestamp 형태를 가짐을 알 수 있다. value 정보는 미디어 타임의 값을 나타낼 수 있다. 본 실시예에서는 미디어 타임이 77ee 의 값을 가짐을 알 수 있다.
currentTime 정보는 currentTimeProtocol 정보 및/또는 value 정보를 가질 수 있다. currentTimeProtocol 정보는 전술한 @currentTimeProtocol 과 같이 현재 시각을 나타내는데 사용되는 프로토콜을 지시할 수 있다. 여기서는 본 정보가 NTP 값을 가지는데, 이는 현재 시각이 NTP 형태로 표현되고 있음을 지시할 수 있다. value 정보는 현재 시각을 나타내는 값을 가질 수 있다. 본 실시예에서는 현재 시각이 88ee 의 값을 가짐을 알 수 있다.
또한, ServiceTimeInfo 상태변수를 JSON 포맷으로 나타낼 때, 도시된 JSON #2 와 같은 실시예로 나타낼 수도 있다. JSON #2 실시예에서의 각 정보들은 전술한 JSON #1 에서 설명한 바와 같다. 단, JSON #2 의 실시예에서는 mediaTime 정보, currentTime 정보가 생략되어, 이에 따른 정보들간의 하이라키 구조가 없을 수 있다. mediaTime 정보와 currentTime 정보의 value 정보들은 각각 mediaTiemvalue, currentTimevalue 정보로 이름이 바뀔 수 있다.
JSON 포맷 또는 XML 포맷에 따른 상태변수의 내부 정보 구조는, 실시예에 따라 다르게 구성/조합될 수 있다.
도 16는 본 발명의 일 실시예에 따른 메인 피지컬 디바이스 (Main Physical Device) 및 컴페니언 피지컬 디바이스 (Companion Physical Device)의 구성을 나타낸 도면이다.
본 발명의 일 실시예는 지상파 방송 또는 모바일 방송 환경에서 서비스 가이드 (service guide)를 제공할 수 있다. 또한, 본 발명의 일 실시예는 지상파 방송망과 인터넷망의 연동을 기반으로 하는 차세대 하이브리드 방송 환경에서 가능할 수 있는 서비스에 대한 서비스 가이드를 제공할 수 있다.
본 발명의 일 실시예는 차세대 하이브리드 방송 시스템에서 제공할 수 있는 다양한 서비스와 이를 구성하는 content 및/또는 component 요소들을 사용자에게 알려줄 수 있다. 이를 통하여, 사용자가 해당 서비스를 확인, 선택 및 감상하는데 편의를 제공할 수 있다.
본 발명의 일 실시예는 하나의 서비스와 이를 구성하는 다양한 content 및/또는 component 요소들을 구조화하고 상호간 연계 (reference)시켜줄 수 있다. 이를 통하여, 방송 수신기는 해당 서비스를 용이하게 구성하고 제공할 수 있고, 사용자로 하여금 해당 서비스에 대한 쉽게 파악할 수 있도록 할 수 있다.
본 발명의 일 실시예는 하나의 서비스와 이를 구성하는 다양한 content 및/또는 component 요소들을 연계시키는 reference 구조를 확장함으로써 방송 수신기 및/또는 사용자로 하여금 하나의 서비스를 구성하는 content 및/또는 component 요소들을 검색하는데 소요되는 resource 및/또느 시간을 절약하도록 할 수 있다.
이 도면은 본 발명의 일 실시예에 따른 메인 피지컬 디바이스 및 컴페니언 피지컬 디바이스의 전체적인 구성을 나타낸 도면이다.
본 발명의 일 실시예에 따른 메인 피지컬 디바이스 (main physical device, L25010)은 interactive service를 위한 디바이스 중 하나로서, 주로 컴페니언 피지컬 디바이스 (companion physical device, L25020)에 의한 제어 대상이 되는 기기를 나타낼 수 있다. 메인 피지컬 디바이스는 메인 디바이스, 메인 수신 장치, 메인 수신기, 메인 디스플레이, 메인 스크린 등으로 명명될 수 있다.
본 발명의 일 실시예에 따른 메인 피지컬 디바이스 (L25010)는 broadcast interface (L25030), network interface (L25040), memory unit (L25050), control unit (L25060), display unit (L25070), multimedia module (L25080), storage (L25090), power supply (L25100) 및/또는 user input interface (L25110)를 포함할 수 있다.
broadcast interface (L25030)는 broadcaster와 디바이스 사이에 AV stream, service guide, notification 등의 message 및/또는 데이터 전송을 가능하게 해주는 물리적 장치를 나타낼 수 있다. broadcast interface는 broadcaster로부터 방송 신호, 시그널링 정보, 데이터 등을 수신할 수 있다.
network interface (L25040)는 디바이스들 (예를 들어, 메인 피지컬 디바이스와 컴페니언 피지컬 디바이스) 사이에 command, request, action, response 등의 message, advertise 및/또는 데이터 전송을 가능하게 해주는 물리적 장치를 나타낼 수 있다. network interface는 internet service provider로부터 방송 서비스, 방송 컨텐츠, 시그널링 정보, 어플리케이션, 데이터 등을 수신할 수 있다.
memory unit (L25050)는 다양한 종류의 디바이스에서 구현되는 선택적인 장치로서, 다양한 종류의 데이터를 임시적으로 저장할 수 있는 휘발성 성질의 물리적 장치를 나타낼 수 있다.
control unit (L25060)은 source device 및/또는 sink device의 전반적인 동작을 제어하는 장치로서 소프트웨어 또는 하드웨어일 수 있다. 여기서, source device는 message 및/또는 데이터를 전송하는 디바이스를 나타낼 수 있고, sink device는 message 및/또는 데이터를 수신하는 디바이스를 나타낼 수 있다. 따라서, 본 발명의 일 실시예에 따른 메인 피지컬 디바이스 및 컴페니언 피지컬 디바이스는 source device 또는 sink device에 해당할 수 있다.
display unit (L25070)은 network interface를 통해 수신된 데이터 또는 storage에 저장되어 있는 데이터를 화면상에 디스플레이할 수 있다. 이 때, display unit은 control unit의 제어에 의해 동작할 수 있다.
multimedia module (L25080)은 다양한 종류의 멀티미디어를 재생할 수 있다. multimedia module은 control unit에 포함될 수 있고, control unit과 별개로 존재할 수 있다.
storage (L25090)는 다양한 종류의 데이터를 저장할 수 있는 비휘발성 성질의 물리적 장치를 나타낼 수 있다. 예를 들어, SD 카드가 storage에 해당할 수 있다.
power supply (L25100)는 control unit의 제어에 의하여, 외부의 전원 및/또는 내부의 전원을 인가 받아 다른 구성 요소들의 동작에 필요한 전원을 공급해주는 장치를 나타낼 수 있다.
user input interface (L25110)는 user로부터 명령 등의 입력을 수신할 수 있는 장치를 나타낼 수 있다.
본 발명의 일 실시예에 따른 컴페니언 피지컬 디바이스 (companion physical device, L25020)은 interactive service를 위한 디바이스 중 하나로서, 메인 디바이스를 제어하는 기기를 나타낼 수 있다. 컴페니언 피지컬 디바이스는 주로 사용자로부터 직접 input을 입력받을 수 있다. 컴페니언 피지컬 디바이스는 컴페니언 디바이스, 세컨드 디바이스, 부가 디바이스, 보조 디바이스, 컴페니언 수신 장치, 컴페니언 수신기, 컴페니언 디스플레이, 세컨드 스크린 등으로 명명될 수 있다.
본 발명의 일 실시예에 따른 컴페니언 피지컬 디바이스 (L25020)는 network interface, memory unit, control unit, display unit, multimedia module, storage, power supply 및/또는 user input interface 를 포함할 수 있다.
본 발명의 일 실시예에 따른 컴페니언 피지컬 디바이스를 구성하는 구성 요소들 중에 메인 디바이스를 구성하는 구성 요소와 동일한 명칭의 구성요소는 전술한 메인 디바이스를 구성하는 구성 요소와 동일한 기능을 할 수 있다.
도 17 는 본 발명의 일 실시예에 따른, UPnP 기반의 PD-CD 아키텍쳐를 도시한 도면이다.
메인 피지컬 디바이스(Main Physical Device) 는 TV 수신기(방송 수신 장치, PD)에 해당할 수 있다. 컴패니언 피지컬 디바이스(Companion Physical Device) 는 전술한 CD (Companion Device) 에 해당할 수 있다. 이 두 장치는 피지컬 디바이스로서, 물리적인 의미에서의 PD 또는 CD 를 의미할 수 있다.
본 실시예에서 메인 피지컬 디바이스는 메인 디바이스(Main Device) 를 포함할 수 있다. 여기서 메인 디바이스란 UPnP 에서 정의되고 있는 컨트롤드 디바이스(Controlled Device) 에 해당할 수 있다. 이하 설명의 편의를 위해 메인 디바이스를 컨트롤드 디바이스라 부른다.
본 실시예에서 컴패니언 피지컬 디바이스는 메인 컨트롤 포인트(Main Control Point) 를 포함할 수 있다. 여기서 메인 컨트롤 포인트란 UPnP 에서 정의되고 있는 컨트롤 포인트(Control Point) 에 해당할 수 있다. 메인 컨트롤 포인트는 메인 컨트롤드 디바이스와 커뮤니케이션하는 컨트롤 포인트를 지칭할 수 있다.
컨트롤드 디바이스는 UPnP 아키텍쳐 상에서 주로 TV 수신기 측에 위치하여 다양한 동작을 수행할 수 있다. TV 수신기가 홈 네트워크 등에 조인한 경우, 컨트롤드 디바이스는 Advertisement 메시지를 멀티캐스트하거나, PD 가 제공하는 UPnP 서비스의 디스크립션을 컨트롤 포인트 측에 전달할 수 있다. 또한 컨트롤드 디바이스는 Event 방식에 따라 상태변수 값등을 컨트롤 포인트로 전달하거나, Action 방식에 의해 컨트롤 포인트가 특정 동작을 요청하면, 그에 따라 컨트롤 포인트로 정보를 전달하는 등의 동작을 수행할 수 있다. TV 수신기 등의 PD 를 컨트롤드 디바이스라 부를수도 있다.
컨트롤드 디바이스는 어플리케이션 매니지먼트 서비스(Application Management Service) 및/또는 커넥션 생성 서비스(Connection Establishment Service) 등을 제공할 수 있다. 이 들을 컨트롤드 디바이스가 제공하는 UPnP 서비스들 중 하나일 수 있다. 어플리케이션 매니지먼트 서비스는 컨트롤드 디바이스와 컨트롤 포인트에서 실행중인 앱들을 매니지먼트하는 것과 관련된 서비스들을 의미할 수 있다. 앱 투 앱 커뮤니케이션이나, 특정 정보를 앱으로 전달하는 등의 서비스들이 이 서비스에 해당할 수 있다. 도시된 실시예에서 PD 측의 앱(App#1, App#2) 과 CD 측의 앱(App#1, App#3) 등의 앱등이 이 서비스에 의해 서로 통신하는 등의 동작을 할 수 있다.
커넥션 생성 서비스는 컨트롤드 디바이스와 컨트롤 포인트 간의 연결을 생성하고 관리하는 것과 관련된 서비스일 수 있다. 컨트롤드 디바이스와 컨트롤 포인트 간의 디스커버리 과정은 UPnP 에서 정의된 디스커버리 과정을 따를 수 있다.
먼저 PD 가 홈 네트워크 등에 조인하게 되면 PD 는 자신을 어드버타이징하는 디스커버리 메시지를 멀티캐스트할 수 있다. CD 가 홈 네트워크에 나중에 조인하는 경우에는 CD 가 임의의 PD를 대상으로, 서치 메시지를 멀티캐스트 할 수 있다. 이 서치 메시지를 수신한 PD는 그 응답 메시지를 그 CD에게 유니캐스트할 수도 있다. 이러한 어드버타이징 메시지와 서치 메시지는 PD, CD의 홈 네트워크 조인 시간이나 순서에 상관없이 교환될 수 있으며, 주기적으로 교환될 수 있다.
PD 의 어드버타이징 메시지나 서치 메시지에 대한 응답 메시지를 받은 CD 는 HTTP GET 요청 메시지를 보내, PD 가 제공하는 UPnP 서비스 등에 대한 정보를 요청할 수 있다. 이에 대한 응답으로, PD 는 서비스들에 대한 디스크립션 정보를 CD 로 전달해줄 수 있다. 이 후 CD 는 PD 의 서비스에 서브스크립션(subscription) 할 수 있다. CD 는 Action 을 이용해 원하는 정보를 얻거나, 정보를 전송하거나, Event 방식으로 정보 등을 전달받을 수 있게 된다.
실시예에 따라 메인 디바이스, 메인 컨트롤 포인트를 각각 스크린 디바이스, 스크린 컨트롤 포인트라 부를 수도 있다.
도 18 은 본 발명의 다른 실시예에 따른, UPnP 기반의 PD-CD 아키텍쳐를 도시한 도면이다.
본 실시예에서 메인 피지컬 디바이스(PD) 는 메인 컨트롤드 디바이스 및/또는 컴패니언 컨트롤 포인트를 포함할 수 있다. 또한 컴패니언 피지컬 디바이스(CD) 는 메인 컨트롤 포인트 및/또는 컴패니언 컨트롤드 디바이스를 포함할 수 있다.
일반적으로 UPnP 아키텍쳐의 경우, 컨트롤드 디바이스 측과 컨트롤 포인트 측의 동작이나 역할이 비대칭적이다. 즉, 컨트롤드 디바이스 측에서 수행 가능한 동작이 컨트롤 포인트 측에서는 불가능할 수 있다.
이를 보완하기 위하여 메인 피지컬 디바이스(PD) 가 메인 컨트롤드 디바이스를 가지는 것과 마찬가지로, 컴패니언 피지컬 디바이스(CD) 가 컴패니언 컨트롤드 디바이스를 가질 수 있다. 각각의 컨트롤드 디바이스와 대응되도록 메인 피지컬 디바이스는 컴패니언 컨트롤 포인트를 가질 수 있고, 컴패니언 피지컬 디바이스는 메인 컨트롤 포인트를 가질 수 있다. 메인 컨트롤드 디바이스는 메인 컨트롤 포인트와 통신하고, 컴패니언 컨트롤드 디바이스는 컴패니언 컨트롤 포인트와 통신할 수 있다.
컴패니언 컨트롤드 디바이스와 컴패니언 컨트롤 포인트 역시 상호간에 디스커버리 메시지를 주고받고, 이벤트/액션 등의 동작을 수행할 수 있다. 이를 통해 CD 측에서도 주도적으로 커뮤니케이션이 수행될 수 있다. 그러나, 컴패니언 컨트롤드 디바이스와 컴패니언 컨트롤 포인트는 메인 컨트롤드 디바이스/컨트롤 포인트와 그 동작이나 역할, 권한 등에 있어서 차이가 있을 수 있다. 자세한 동작이나 권한의 범위 등은 설계자의 의도에 따라 다르게 설정될 수 있다.
실시예에 따라 컴패니언 컨트롤드 디바이스, 컴패니언 컨트롤 포인트를 각각 스크린 (컨트롤드) 디바이스, 스크린 컨트롤 포인트라 부를 수도 있다.
도 19 은 본 발명의 또 다른 실시예에 따른, UPnP 기반의 PD-CD 아키텍쳐를 도시한 도면이다.
본 실시예에서 메인 피지컬 디바이스(PD) 는 메인 컨트롤드 디바이스 및/또는 메인 컨트롤 포인트를 포함할 수 있다. 또한 컴패니언 피지컬 디바이스(CD) 역시 메인 컨트롤 포인트 및/또는 메인 컨트롤드 디바이스를 포함할 수 있다.
전술한 바와 같이, UPnP 아키텍쳐 상에서 PD 와 CD 측은 그 동작 등에 있어 비대칭적인 역할을 수행할 수 있다. 이를 해소하기 위하여, PD 가 메인 컨트롤드 디바이스, CD 가 메인 컨트롤 포인트를 가지는 것외에, 각각 메인 컨트롤 포인트, 메인 컨트롤드 디바이스 쌍을 더 가지는 아키텍쳐를 구성할 수도 있다. 이 경우, 전술한 실시예에서 컴패니언 컨트롤드 디바이스/컨트롤 포인트가 메인 컨트롤드 디바이스/컨트롤 포인트 와는 다른 역할을 수행했던 것과 달리, 양 측에서 동등한 메인 컨트롤드 디바이스/컨트롤 포인트를 가질 수 있다. 이에 따라 TV 수신기와 컴패니언 피지컬 디바이스는 상호간의 커뮤니케이션 등에 있어서 동등한 지위를 가지도록 아키텍쳐가 구성될 수 있다.
도 20 은 본 발명의 일 실시예에 따른, UPnP 기반의 PD-CD 아키텍쳐에서의 인터랙션 다이어그램을 도시한 도면이다.
도시된 다이어그램들은, 전술한 UPnP 기반의 PD-CD 아키텍쳐의 각 실시예들을, 차례대로 도시하고 있다. 첫번째 실시예(t408010) 는 전술한 PD 가 컨트롤드 디바이스를, CD 가 컨트롤 포인트를 각각 가지는 실시예일 수 있다. 두번째 실시예(t408020) 는 전술한 PD 가 메인 컨트롤드 디바이스, 컴패니언 컨트롤 포인트를, CD 가 메인 컨트롤 포인트, 컴패니언 컨트롤드 디바이스를 각각 가지는 실시예일 수 있다. 세번째 실시예(t408030) 는 전술한 PD 가 메인 컨트롤드 디바이스, 메인 컨트롤 포인트를, CD 가 메인 컨트롤 포인트, 메인 컨트롤드 디바이스를 각각 가지는 실시예일 수 있다.
첫번째 실시예(t408010) 에서, 컨트롤드 디바이스는 UPnP 이벤팅을 통하여 상태변수 등의 정보를 컨트롤 포인트 측으로 전달할 수 있다. 동시에 컨트롤 포인트는 UPnP 액션을 통하여 컨트롤드 디바이스에 정보 내지 특정 동작 등을 요청할 수 있다. 가장 기본적인 형태의 아키텍쳐일 수 있다.
두번째 실시예(t408020) 에서, 메인 컨트롤드 디바이스는 메인 컨트롤 포인트와, 컴패니언 컨트롤드 디바이스는 컴패니언 컨트롤 포인트와 통신할 수 있다. 메인 컨트롤드 디바이스는 UPnP 이벤팅을 통하여 상태변수 등의 정보를 메인 컨트롤 포인트 측으로 전달할 수 있다. 동시에 메인 컨트롤 포인트는 UPnP 액션을 통하여 메인 컨트롤드 디바이스에 정보 내지 특정 동작 등을 요청할 수 있다. 또한, 컴패니언 컨트롤드 디바이스는 UPnP 이벤팅을 통하여 상태변수 등의 정보를 컴패니언 컨트롤 포인트 측으로 전달할 수 있다. 동시에 컴패니언 컨트롤 포인트는 UPnP 액션을 통하여 컴패니언 컨트롤드 디바이스에 정보 내지 특정 동작 등을 요청할 수 있다. 전술한 바와 같이 컴패니언 컨트롤드 디바이스와 컴패니언 컨트롤 포인트는 메인 컨트롤드 디바이스/컨트롤 포인트와 그 동작이나 역할, 권한 등에 있어서 차이가 있을 수 있다.
세번째 실시예(t408030) 에서, 양측의 메인 컨트롤드 디바이스는 각각 해당되는 메인 컨트롤 포인트와 통신할 수 있다. 메인 컨트롤드 디바이스는 UPnP 이벤팅을 통하여 상태변수 등의 정보를 메인 컨트롤 포인트 측으로 전달할 수 있다. 동시에 메인 컨트롤 포인트는 UPnP 액션을 통하여 메인 컨트롤드 디바이스에 정보 내지 특정 동작 등을 요청할 수 있다. 이를 통해 상호간의 앱 커뮤니케이션이 수행될 수 있다.
도 21 는 본 발명의 일 실시예에 따른, Websocket 기반의 PD-CD 아키텍쳐를 도시한 도면이다.
Websocket 기반의 아키텍쳐에서, PD 와, CD 측에서 실행중인 앱 간에 커뮤니케이션이 수행될 수 있다. Websocket 기반의 아키텍쳐에서 PD 는 Websocket 서버를 포함할 수 있고, CD 는 각각의 앱들을 포함할 수 있다. 여기서 CD 의 각각의 앱들은 Websocket 클라이언트라 부를 수도 있다.
PD 내의 Websocket 서버는 PD 가 제공하는 각각의 동작/기능(function) 들에 대한 엔드포인트(endpoint) 들을 가질 수 있다. 엔드포인트들은 CD 측 앱과 연결되어 ESG 를 전달하거나, 미디어 타임 라인을 전달, PD 측 앱과 CD 측 앱 간의 통신을 하는 등의 역할을 수행할 수 있다.
먼저 PD 와, CD 측에서 실행중인 앱 간에 디스커버리 과정이 수행될 수 있다. 이 디스커버리 과정에 대해서는 후술한다. 이 과정에서 websocket 서버의 엔드포인트들에 대한 정보가 CD 측 앱으로 전달될 수 있다.
각각의 엔드포인트에 대해서, CD 측의 앱 과 PD 측의 websocket 서버는 핸드쉐이크(handshake) 과정을 수행할 수 있다. CD 측 앱이 먼저 핸드쉐이크의 오프닝을 요청하면, websocket 서버가 이에 대한 리스폰스(response)를 보낼 수 있다. 이를 통해 websocket 서버와 CD 측의 앱은 엔드포인트를 통하여 연결될 수 있다.
Websocket 아키텍쳐에서, 엔드포인트로 websocket 서버와 CD 측 앱이 연결되면, 엔드포인트를 통해 정보들이 오갈 수 있다. PD 측과 CD 측의 앱 간에는 2-웨이로 메시지들이 자유롭게 릴레잉(relaying) 될 수 있다.
이 후, 연결의 종료가 필요한 경우, CD 측 앱은 해당 엔드포인트에 대한 연결 종료를 요청할 수 있다(Disconnect Request). Websocket 서버는 요청에 대한 응답을하고(Disconnect Response), 해당 엔드포인트와의 연결은 종료될 수 있다. 연결의 종료는 PD 측에서 먼저 수행할 수도 있고, 다양한 상황에서 자동적으로 연결이 종료될 수도 있다.
전술한 과정은 하나의 websocket 엔드포인트와 인터랙션하는 과정일 수 있다. 복수개의 엔드포인트가 있는 경우, 각각의 엔드포인트들에 대하여 전술한 과정을 동일하게 개별적으로 수행하여, 각각의 필요한 엔드포인트들을 활성화시킬 수 있다. 이 과정은 복수개의 엔드포인트들에 대하여 동시에 또는 차례대로 수행될 수 있다.
본 실시예에서 websocket 서버는, 제공되는 각각의 기능에 대하여 각각의 엔드포인트를 가질 수 있다. 즉, 하나의 기능에 하나의 엔드포인트가 제공될 수 있다.
이 엔드포인트에는 서비스/컨텐트 식별 엔드포인트(Service/Content Identification Endpoint), ESG 정보 엔드포인트(ESG Information Endpoint), 서비스/쇼/세그먼트 데이터 엔드포인트(Service/Show/Segment Data Endpoint), 미디어 타임라인 엔드포인트(Media Timeline Endpoint), 미디어 플레이백 상태 엔드포인트(Media Playback State Endpoint), EAS 엔드포인트(EAS Endpoint) 및/또는 앱투앱 엔드포인트(ApptoApp Endpoint) 등이 있을 수 있다.
서비스/컨텐츠 식별 엔드포인트는 현재 PD 에서 재생중이거나, 재생될 예정인 서비스/컨텐츠를 식별하기 위한 정보를 전달하는 기능을 수행하는 엔드포인트일 수 있다. 이 엔드포인트를 통해 CD 측 앱은 해당 정보를 전달받을 수 있다.
ESG 정보 엔드포인트는 CD 가 ESG 를 전달받기 위하여 사용될 수 있는 엔드포인트일 수 있다. 이를 통해 CD 측 앱은 ESG 를 전달받을 수 있다. 서비스/쇼/세그먼트 데이터 엔드포인트는 서비스 등에 대한 각종 데이터를 전달받은 엔드포인트일 수 있다.
미디어 타임라인 엔드포인트는 현재 시각 및 현재 재생중인 서비스/컨텐츠의 미디어 타임 정보를 전달해주기 위한 엔드포인트일 수 있다. 전술한 서비스 시간 정보 등이 이 엔드포인트를 통해 전달될 수도 있다. 미디어 플레이백 상태 엔드포인트는 현재 재생중인 서비스/컨텐츠의 재생 관련 정보를 전달해주기 위한 엔드포인트일 수 있다. 재생 관련 정보는 현재 재생중인 서비스/컨텐츠가 일반적인 스피드로 재생중인지, 3배속으로 빨리감기 중인지, 되감기 중인지 등의 정보를 말할 수 있다. 전술한 플레이백 상태 정보 등이 이 엔트포인트를 통해 CD 측 앱으로 전달될 수 있다.
EAS 엔드포인트는 EAS 정보를 CD 측으로 전달해주기 위한 엔드포인트일 수 있다. EAS 정보를 TV 수신기가 전달받으면 이 정보를 CD 측으로 전달해줘 위험상황을 더 효율적으로 알릴 수 있다. 앱투앱 엔드포인트 PD 측에서 실행중인 앱과 CD 측에서 실행중인 앱 간의 커뮤니케이션을 위한 엔드포인트일 수 있다. 이 엔드포인트를 이용하여 PD 측 앱과 CD 측 앱이 서로 간이 2 웨이로 메시지를 주고 받으면서, 정보를 교환할 수 있다.
각 기능들에 대해 각각 엔드포인트가 제공되므로, CD 측 앱은 각 엔드포인트에 접근하여 연결 과정을 수행하고, 그 엔드포인트를 통하여 원하는 정보 등을 얻거나 PD 측 앱과 커뮤니케이션하는 등의 동작을 수행할 수 있다.
이하, 설명의 편의를 위하여, 이와 같은 아키텍쳐를 websocket 기반의 아키텍쳐 실시예 #1 이라 부를 수 있다. 이 실시예는 websocket 기반의 다른 아키텍쳐는 물론, UPnP 기반, HTTP 기반 아키텍쳐의 다양한 실시예들과 조합될 수 있다.
도 22 은 본 발명의 다른 실시예에 따른, Websocket 기반의 PD-CD 아키텍쳐를 도시한 도면이다.
도시된 본 실시예에서는, 전술한 바와 같이 각 기능들에 대해 각각 엔드포인트가 제공되지 않을 수 있다. 본 실시예에서는, PD 측의 websocket 서버에서 하나의 엔드포인트가 제공되고, 그 엔드포인트가 전술한 모든 기능들을 수행할 수 있다. 이 엔드포인트는 컴패니언 엔드포인트라 불릴 수 있다. 다른 기타 websocket 아키텍쳐의 구성은 전술한 실시예와 같을 수 있다.
이 하나의 엔드포인트는 전술한 실시예에서 여러 엔드포인트가 수행했던 기능들을 모두 수행할 수 있는 엔드포인트일 수 있다. 즉, 이 엔드포인트는 전술한 서비스/컨텐트 식별 엔드포인트, ESG 정보 엔드포인트, 서비스/쇼/세그먼트 데이터 엔드포인트 등의 엔드포인트들이 하던 역할들을 모두 수행할 수 있다. 따라서 CD 측 앱은 이 엔드포인트에 연결하는 것 만으로, ESG 를 전달받거나, 미디어 타임 정보를 전달받거나, PD 측 앱과 통신하는 등의 모든 동작을 수행할 수 있다. 단, 이 경우 CD 측 앱과 websocket 서버가 주고받는 메시지가, 어떤 기능을 위한 것인지 식별할 수 있어야 하므로, 좀 더 구체적인 정보를 담거나, 더 확장될 수 있다.
이 컴패니언 엔드포인트가 모든 기능을 수행하므로, 이 엔드포인트에 연결이 되면 모든 기능들이 수행될 수 있다. 이 엔드포인트에 연결하는 과정은 전술한 일반적인 엔드포인트에 연결되는 과정과 동일할 수 있다. 이 경우 엔드포인트가 하나이므로, 어느 한 기능에 대한 액세스가 불필요한 상황이라 할 지라도, 엔드포인트의 연결을 일부 종료하거나 할 수 없다. 반대로, 어느 하나의 기능만이 필요한 상황이라할 지라도, 이 컴패니언 엔드포인트에 연결해야만 할 수 있다.
이하, 설명의 편의를 위하여, 이와 같은 아키텍쳐를 websocket 기반의 아키텍쳐 실시예 #2 이라 부를 수 있다. 이 실시예는 websocket 기반의 다른 아키텍쳐는 물론, UPnP 기반, HTTP 기반 아키텍쳐의 다양한 실시예들과 조합될 수 있다.
도 23 은 본 발명의 또 다른 실시예에 따른, Websocket 기반의 PD-CD 아키텍쳐를 도시한 도면이다.
도시된 본 실시예에서는, n 개의 엔드포인트가 제공되고, 이 n 개의 엔드포인트가 총 m 개의 기능(function)을 수행할 수 있다. 여기서, n 은 m 보다 작거나 같을 수 있으며, n 과 m 은 모두 정수일 수 있다. 즉, 이 경우는 하나의 엔드포인트가 하나 또는 그 이상의 기능을 수행할 수 있으며, 이러한 엔드포인트가 복수개(n) 제공될 수 있다.
도시된 실시예에서, 서비스/컨텐츠 식별 기능, ESG 전달 기능 등의 기능을 수행하는 엔드포인트는 컴패니언 엔드포인트로서 제공되고, 이와 동시에 앱투앱 기능을 수행하는 엔드포인트는 별도의 "앱투앱 엔드포인트"로서 제공될 수 있다.
본 실시예의 아키텍쳐는 전술한 websocket 기반 아키텍쳐 #1 과 #2 의 조합된 형태로 볼 수 있다. n, m 의 값에 따라 다양한 아키텍쳐가 구성될 수 있다. 다양한 개수의 엔드포인트가 제공되고, 각 엔드포인트는 다양한 개수의 기능을 제공할 수 있다.
전술한 엔드포인트에의 연결 및 연결 종료 과정은, 각각의 엔드포인트에 행해져야할 수 있다. 즉, n 개의 엔드포인트에 대해서는 그 과정이 n 번 수행되어야 할 수 있다.
이하, 설명의 편의를 위하여, 이와 같은 아키텍쳐를 websocket 기반의 아키텍쳐 실시예 #3 이라 부를 수 있다. 이 실시예는 websocket 기반의 다른 아키텍쳐는 물론, UPnP 기반, HTTP 기반 아키텍쳐의 다양한 실시예들과 조합될 수 있다.
도 24 는 본 발명의 일 실시예에 따른, Websocket 기반의 PD-CD 아키텍쳐에서의 앱 투 앱 커뮤니케이션(App to app communication) 을 도시한 도면이다.
PD 에서 실행중인 앱과 CD 에서 실행중인 앱 간에, 앱 투 앱 커뮤니케이션이 가능할 수 있다. websocket 기반의 아키텍쳐에서, 각 앱들은 weboscket 서버를 통하여 커뮤니케이션할 수 있다. 여기서 전술한 앱투앱 엔드포인트가 활용될 수 있다. 또는 실시예에 따라 앱투앱 커뮤니케이션 기능 및 다른 기능들을 병행하는 컴패니언 앤드포인트가 활용될 수도 있다.
CD 측 앱은 전술한 것과 같은 과정을 통하여 weboscket 서버의 앱투앱 커뮤니케이션 엔드포인트에 연결할 수 있다. PD 측에서 실행중인 앱들도 역시 websocket 클라이언트에 해당하는데, PD 측 앱도 websocket server 의 앱투앱 커뮤니케이션 엔드포인트에 연결할 수 있다. websocket 서버는 전달받은 연결 요청에 대하여, 서로 매칭되는 연결 요청이 오면, 양 측을 연결하여 메시지를 주고 받게 할 수 있다.
양 측의 앱이 연결되면, 앱들은 websocket 서버를 통하여 메시지들을 주고 받을 수 있다. 이 메시지는 양방향(2 way)으로 전달될 수 있다. websocket 서버는 어느 한 측이 보내온 메시지를, 다른 측 앱으로 전달(relaying)해줄 수 있다.
도 25 은 본 발명의 일 실시예에 따른, HTTP 기반의 PD-CD 아키텍쳐를 도시한 도면이다.
HTTP 기반의 아키텍쳐에서, PD 와, CD 측에서 실행중인 앱 간에 커뮤니케이션이 수행될 수 있다. HTTP 기반의 아키텍쳐에서 PD 는 HTTP 서버를 포함할 수 있고, CD 는 각각의 앱들을 포함할 수 있다. 여기서 CD 의 각각의 앱들은 HTTP 클라이언트라 부를 수도 있다.
PD 내의 HTTP 서버는 다양한 동작/기능(function) 들을 수행하기 위한 서버일 수 있다. 이 서버의 각 기능들에 접근하기 위해서는, 해당 서비스에 대한 서비스 URL 이 필요할 수 있다. CD 측 앱은 해당 서비스 URL 에 요청(request)을 보냄으로써, 원하는 정보를 전달받거나 할 수 있다.
먼저 PD 와, CD 측에서 실행중인 앱 간에 디스커버리 과정이 수행될 수 있다. 이 과정에서 HTTP 서버의 URL 들에 관한 정보가 CD 측 앱으로 전달될 수 있다. CD 측의 HTTP 클라이언트들은, 전달받은 URL 정보를 이용하여, 해당 URL 에 접근하여 필요한 정보 등을 전달받을 수 있다.
본 실시예에서 HTTP 서버는, 각각의 기능에 대하여 각각의 서로 다른 URL 들을 가질 수 있다. 즉, 하나의 기능에 하나의 URL 이 제공될 수 있다.
이 서비스 URL 들을 통해 제공되는 서비스들은 전술한 websocket 서버가 제공하는 기능들과 유사할 수 있다. 예를 들어, 서비스/컨텐트 식별 서비스 URL 에 접근하는 경우, CD 측 앱은 현재 PD 에서 재생중이거나, 재생될 예정인 서비스/컨텐츠를 식별하기 위한 정보를 전달받을 수 있다. 즉 CD 측 앱은 서비스/컨텐트 식별 서비스 URL 로 서비스/컨텐츠 식별 정보를 요청(request)할 수 있고, PD 측의 HTTP 서버는 요청된 정보를 CD 측 앱으로 전달해줄 수 있다. 전술한 ESG 정보 엔드포인트, 미디어 타임라인 엔드포인트 등등이 제공하는 기능과 같은, ESG 정보 서비스, 미디어 타임라인 서비스 등등이 정의될 수 있다. CD 측 앱은 각각의 서비스 URL 에 요청함으로써, 원하는 정보를 전달받을 수 있다.
각 서비스들에 대하여 각각 서비스 URL 이 제공되므로, CD 측 앱은 각 URL 정보를 알고, 해당 URL 에 접근해야만 원하는 정보를 얻거나 PD 측 앱과 커뮤니케이션하는 등의 동작을 수행할 수 있다.
이하, 설명의 편의를 위하여, 이와 같은 아키텍쳐를 HTTP 기반의 아키텍쳐 실시예 #1 이라 부를 수 있다. 이 실시예는 HTTP 기반의 다른 아키텍쳐는 물론, UPnP 기반, websocket 기반 아키텍쳐의 다양한 실시예들과 조합될 수 있다.
도 26 는 본 발명의 다른 실시예에 따른, HTTP 기반의 PD-CD 아키텍쳐를 도시한 도면이다.
도시된 본 실시예에서는, 전술한 바와 같이 각 서비스들에 대해 각각 서비스 URL 이 제공되는 것이 아닐 수 있다. 본 실시예에서는, PD 측의 HTTP 서버에서 하나의 서비스 URL 이 제공되고, 그 서비스 URL 이 전술한 모든 기능들을 수행할 수 있다. 이 서비스 URL 은, 컴패니언 서비스 URL 이라 불릴 수 있다. 다른 기타 HTTP 아키텍쳐의 구성은 전술한 실시예와 같을 수 있다.
이 하나의 서비스 URL는 전술한 실시예에서 여러 서비스 URL가 수행했던 기능들을 모두 수행할 수 있는 서비스 URL일 수 있다. 즉, 이 서비스 URL는 전술한 서비스/컨텐트 식별 서비스 URL, ESG 정보 서비스 URL, 서비스/쇼/세그먼트 데이터 서비스 URL 등의 서비스 URL들이 하던 역할들을 모두 수행할 수 있다. 따라서 CD 측 앱은 이 서비스 URL 에 요청을 보내는 것 만으로, ESG 를 전달받거나, 미디어 타임 정보를 전달받을 수 있다.
이 경우, HTTP 서버로 요청을 보낼 때, 그 쿼리(query) 텀에 새로운 변수가 붙는 등, 그 요청 메시지가 확장될 수 있다. 이는 어떠한 정보를 전달받기 위해 컴패니언 서비스 URL 에 요청을 보내는 것인지 식별될 필요가 있기 때문이다. HTTP 서버는 요청을 분석하여, CD 측 앱이 원하는 정보를 전달해 줄 수 있다.
이하, 설명의 편의를 위하여, 이와 같은 아키텍쳐를 HTTP 기반의 아키텍쳐 실시예 #2 이라 부를 수 있다. 이 실시예는 HTTP 기반의 다른 아키텍쳐는 물론, UPnP 기반, Websocket 기반 아키텍쳐의 다양한 실시예들과 조합될 수 있다.
도 27 는 본 발명의 일 실시예에 따른, Websocket & HTTP 기반의 PD-CD 아키텍쳐를 도시한 도면이다.
전술한 UPnP 기반 아키텍쳐, Websocket 기반 아키텍쳐, HTTP 기반 아키텍쳐는 서로 조합될 수 있다. 예를 들어 PD 는 HTTP 서버와 Websocket 서버를 동시에 가질 수 있다. 실시예에 따라 PD 는 HTTP 서버와 Websocket 서버를 가짐과 동시에, UPnP 아키텍쳐 상의 컨트롤드 디바이스 역할을 수행할 수도 있다.
또한, 조합되는 UPnP 아키텍쳐는 전술한 UPnP 아키텍쳐의 첫번째, 두번째, 세번째 실시예 중 하나일 수 있다. 조합되는 websocket 아키텍쳐는 websocket 기반 아키텍쳐 #1, #2, #3 중 하나일 수 있고, HTTP 아키텍쳐는 HTTP 기반 아키텍쳐 #1, #2 중 하나일 수 있다.
본 실시예에서는 PD 가 HTTP 서버와 Websocket 서버를 동시에 가지고 있으며, HTTP 아키텍쳐는 HTTP 기반 아키텍쳐 #2, Weboscket 아키텍쳐는 websocket 기반 아키텍쳐 #3 가 사용될 수 있다. 즉, HTTP 서버에 있어서 하나의 서비스 URL 주소가 복수개의 기능을 수행할 수 있다. websocket 서버는 n 개의 엔드포인트를 제공하고, 이 n 개의 엔드포인트들이 복수개의 기능을 수행할 수 있다. 구체적으로 본 실시예에서는 2 개의 엔드포인트가 제공되고, 하나의 엔드포인트는 앱투앱 커뮤니케이션을 위한 엔드포인트의 역할을 하고, 나머지 하나의 엔드포인트는 다른 모든 기능들을 수행하는 엔드포인트의 역할을 할 수 있다.
여기서는 설명을 위하여 전술한 것과 같은 실시예만을 설명하나, 본 발명의 기술적 사상은 다른 모든 조합을 일 실시예로서 포함한다. 이러한 조합들에 의해 다양한 아키텍쳐의 설계가 가능하며, 이는 설계자의 의도에 따라 선택되어 활용될 수 있다.
본 실시예와 같은 아키텍쳐에서, 각각의 기능들은 HTTP 서버 및 Websocket 서버에 의해 분담될 수 있다. 즉, HTTP 서버는 특정 기능들을 수행하는데 사용되어 HTTP 의 단일 서비스 URL 은 그 기능들을 수행하기 위한 요청을 받기 위해 사용될 수 있다. 또한 Websocket 서버는 그 외의 다른 기능들을 수행하기 위한 엔드포인트들을 제공할 수 있다.
이러한 기능의 분담은 해당 기능의 특성에 따라 이루어질 수 있다. HTTP 는 비동기적(asynchronous)인 커뮤니케이션을 위해 사용될 수 있고, websocket 은 동기적(synchronous)인 커뮤니케이션을 위해 사용될 수 있다.
실시예에 따라, ESG 정보 전달 기능, 서비스/쇼/세그먼트 데이터 전달 기능 등은 HTTP 에 의해 수행될 수 있다. 즉, HTTP 서버의 서비스 URL 에 요청을 보냄으로써, ESG 또는 서비스 데이터 등의 정보 등이 획득될 수 있다.
또한, 서비스/컨텐트 식별 기능, 미디어 플레이백 상태 기능, 앱투앱 커뮤니케이션 기능 등은 websocket 에 의해 수행될 수 있다. websocket 서버는 서비스/컨텐트 식별 기능, 미디어 플레이백 상태 기능을 수행할 수 있는 컴패니언 엔드포인트와, 앱투앱 커뮤니케이션 기능을 수행할 수 있는 앱투앱 엔드포인트를 제공할 수 있다.
실시예에 따라 미디어 타임라인 기능을 HTTP 및/또는 websocket 에 의해 수행될 수 있다. 양자 모두에 의해 제공되거나 어느 하나에 의해 해당 기능이 제공될 수 있다. EAS 정보 전달 기능은 weboscket 를 통해 수행되거나, PD 내의 멀티캐스트 센더(multicast sender) 에 의해 수행될 수 있다. 멀티캐스트 센더가 활용되는 경우, PD 내의 멀티캐스트 센더는 EAS 정보를 멀티캐스트 그룹 내의 장치들에 멀티캐스트 할 수 있다.
도 28 은 본 발명의 일 실시예에 따른, PD (Primary Device) 의 디스커버리를 위해 사용되는 메시지들의 포맷을 도시한 도면이다.
PD 는 CD 또는 CD 에서 실행중인 앱에 의해 디스커버리될 수 있다. 이 과정에서 SSDP (Simple Service Discovery Protocol) 이 사용될 수 있다. PD 는 PD 가 따르는 기술표준 등을 식별하기 위하여 ST (Search Target) 값을 가질 수 있다. 예를 들어, PD 는 urn:atsc:device:atsccompanion:3 또는 urn:atsc:service:atsccompanion:3 값을 자신의 디바이스 타입 또는 서비스 타입으로서 사용할 수 있다. 이 값들은 ST 매칭을 통하여 디스커버리 과정에서 활용될 수 있다.
디스커버리 과정을 위하여, PD 는 자기자신을 CD 들에게 어드버타이징(advertising) 할 수 있다. 또는 CD 는 PD 를 서치하여 찾을 수도 있다.
먼저, PD 가 CD 들에게 자신을 어드버타이징하는 경우, PD 는 디스커버리 메시지를 멀티캐스트할 수 있다. 이 디스커버리 메시지는 NOTIFY 메쏘드를 통하여 전송될 수 있다. PD 의 어드버타이징을 위한 디스커버리 메시지는 도시된 실시예(t413010) 와 같을 수 있다.
CD 가 PD 를 서치하여 찾는 경우, CD 내지 CD 에서 실행중인 앱은 디스커버리 메시지를 멀티캐스트할 수 있다. 이 디스커버리 메시지는 M-SEARCH 메쏘드를 통하여 전송될 수 있다. CD 의 서칭을 위한 디스커버리 메시지는 도시된 실시예(t413020)와 같을 수 있다.
전술한 ST 값을 이용하여, CD 측 앱은 특정 기술 표준에 맞는 PD 들을 찾을 수 있다. PD 는 전술한 서치 메시지를 수신할 수 있다. PD 자신의 ST 값과, 해당 메시지의 ST 값이 매칭되는 경우, PD 는 그 메시지를 보내온 CD 측 앱에게 응답(response)를 보낼 수 있다(200 OK). 이 응답 메시지는 도시된 실시예(t413030)와 같을 수 있다.
도시된 메시지 포맷들은 본 발명의 일 실시예들일 뿐이며, 메시지에 포함되는 변수들은 실시예에 따라 다른 값을 가질 수 있다.
설명된 디스커버리 과정은 websocket 뿐 아니라 HTTP 아키텍쳐의 경우에도 적용될 수 있다.
도 29 은 본 발명의 일 실시예에 따른, DDD (Device Description Document) 를 이용한 Websocket 엔드포인트 또는 HTTP 서비스 URL 의 디스커버리 과정을 도시한 도면이다.
전술한 바와 같이, PD 는 자신을 어드버타이징하는 디스커버리 메시지를 멀티캐스팅하거나, 수신된 M-SEARCH 메시지에 대한 응답 메시지를 CD 로 전송할 수 있다. CD 측 앱은 멀티캐스팅된 디스커버리 메시지 또는 M-SEARCH 메시지에 대한 응답 메시지의 LOCATION 헤더로부터 URL 을 얻을 수 있다. 이 URL 은 DDD (Device Description Document) 를 획득할 수 있는 URL 일 수 있다. CD 측 앱은 이 URL 을 이용하여 DDD 를 획득해, 디바이스 디스크립션 정보 등을 얻을 수 있다.
먼저 전술한 바와 같이 PD 는 어드버타이징하기 위한 디스커버리 메시지를 NOTIFY 메쏘드를 통해 멀티캐스팅할 수 있다. 이 과정에서 DDD 를 획득하기 위한 URL 정보가 CD 에서 실행중인 앱으로 전달될 수 있다. 또는 CD 측 앱이 먼저 서칭을 위한 디스커버리 메시지를 M-SEARCH 메쏘드를 통해 멀티캐스팅하면, PD 를 이에 대한 응답 메시지를 CD 로 보낼 수 있다. 역시 이 과정에서 DDD 를 획득하기 위한 URL 정보가 CD 측 앱으로 전달될 수 있다(t417010).
이 후 CD 측 앱은 획득된 URL 로 HTTP GET 을 이용해 DDD 를 요청할 수 있다. PD 는 HTTP 응답(response) 메시지를 통하여 DDD 를 CD 측 앱으로 전달해 줄 수 있다(t417020). 이 응답 메시지의 바디(body)에 DDD 가 포함될 수 있다.
DDD 를 통하여 websocket 엔드포인트들의 주소가 CD 측 앱으로 제공될 수 있다. 실시예에 따라 DDD 를 통하여 HTTP 아키텍쳐의 서비스 URL 들의 주소가 CD 측 앱으로 제공될 수 있다. 두 개 이상의 프로토콜이 조합된 형태의 아키텍쳐가 사용되는 경우, websocket 엔드포인트의 주소 및/또는 HTTP 의 서비스 URL 들의 주소가 CD 측 앱으로 DDD 를 통해 제공될 수도 있다.
도 30 은 본 발명의 일 실시예에 따른, DDD 를 이용한 Websocket 엔드포인트 또는 HTTP 서비스 URL 의 디스커버리 과정에 있어서, DDD 의 요청 메시지와 DDD 의 포맷을 도시한 도면이다.
전술한 바와 같이 CD 측 앱은 HTTP GET 을 이용해 DDD 를 요청할 수 있다. 이 때의 GET 메시지는 도시된 실시예(t418010)와 같을 수 있다. 이 때 GET 을 이용한 DDD 요청 메시지는 PD 로부터 획득된 DDD 의 URL 로 전송될 수 있다. 또한 디스크립션의 IP 주소/포트 의 호스트 정보가 활용될 수 있다. 또한 컨트롤 포인트에 의해 선호되는 언어가 사용될 수 있다.
전술한 바와 같이 DDD 의 요청메시지에 대한 응답 메시지가 리턴될 수 있다. 이 응답 메시지의 바디에는 DDD 가 포함될 수 있다. DDD 의 일반적인 포맷은 도시된 실시예(t418020)와 같을 수 있다.
DDD 는 스펙 버전 정보, 베이스 URL 정보, 디바이스 관련 정보 등이 포함될 수 있다. 스펙 버전 정보(specVersion)는 해당 DDD 스펙의 버전 정보를 메이저/마이너 버전으로 나타낼 수 있다. 베이스 URL 정보는 DDD 에 의해 전달되는 모든 관련된 URL 들에 대하여 사용될 수 있는 베이스 URL 정보를 포함할 수 있다.
디바이스 관련 정보는 DDD 가 기술하는 디바이스의 타입 정보, 유저가 읽을 수 있는 짧은 디바이스 이름 정보(friendlyName), 해당 디바이스의 제조사 정보(manufacturer), 서비스 리스트 정보 등을 포함할 수 있다.
서비스 리스트 정보는 해당 디바이스가 제공하는 각각의 서비스에 대하여, 그 타입을 나타내는 서비스 타입 정보, 그 서비스의 식별자를 나타내는 서비스 아이디 정보, 서비스 디스크립션과 관련된 URL 을 나타내는 서비스 디스크립션 URL 정보, 해당 서비스의 컨트롤을 위해 사용되는 컨트롤 URL 정보 및/또는 해당 서비스의 이벤팅을 위해 사용될 수 있는 URL 정보 등을 포함할 수 있다.
도시된 포맷들은 본 발명의 일 실시예들일 뿐이며, 그 구조 및 포함되는 엘레멘트, 엘레멘트의 값들은 실시예에 따라 다른 값을 가질 수 있다.
도 31 는 본 발명의 일 실시예에 따른, DDD 를 이용한 Websocket 엔드포인트 또는 HTTP 서비스 URL 의 디스커버리 과정에 있어서, DDD 의 포맷을 도시한 도면이다.
전술한 바와 같이 DDD 의 전달을 통해 websocket 엔드포인트들의 주소 내지는 HTTP 서비스 URL 들의 주소가 CD 측 앱으로 전달될 수 있다. CD 측 앱은 이 주소들을 이용하여 websocket 엔드포인트에 연결하거나, 서비스 URL 로 요청을 보낼 수 있다.
전술한 websocket 기반의 아키텍쳐 실시예 #1 에 있어서, 도시된 실시예(t419010)에 따른 DDD 포맷 또는 실시예(t419020)에 따른 DDD 포맷이 사용될 수 있다.
도시된 실시예(t419010)에서, DDD 의 디바이스 정보는 디바이스 타입 정보 외에도 다양한 websocket 엔드포인트의 주소 정보들을 포함할 수 있다. 도시된 바와 같이 서비스/컨텐츠 식별 엔드포인트, ESG 정보 엔드포인트 등등의 엔드포인트들에 대한 주소 정보가 DDD 의 디바이스 정보에 포함되어 있다. websocket 기반의 아키텍쳐 실시예 #1 에 있어 활용되는 DDD 포맷이므로, 각각의 엔드포인트들에 대한 주소 정보가 각각 나열되어 있을 수 있다. 도시된 실시예(t419020) 에 따른 DDD 포맷 역시 다양한 websocket 엔드포인트의 주소 정보들을 포함할 수 있다. 단 이 경우 DDD 의 서비스 정보 내에 해당 엔드포인트들의 주소 정보들이 포함될 수 있다.
여기서는 일 실시예로서 주소 정보들이 디바이스 정보, 서비스 정보 하위에 위치하는 것으로 도시되었으나, 주소 정보들이 DDD 내의 다른 위치에 포함되는 실시예도 있을 수 있다. 도시된 DDD 의 실시예에서, 전술한 DDD 의 다른 엘레멘트들은 생략되었다. 다른 엘레멘트들은 다양한 실시예에 따라 구성이 가능할 수 있다.
도시된 실시예(t419010, t419020) 에 따른 DDD 포맷들은, 전술한 HTTP 기반의 아키텍쳐 실시예 #1 에 있어서도 사용될 수 있다. 단 이 경우 각각의 주소 정보들은 websocket 엔드포인트들의 주소 정보가 아닌, 각각 해당되는 서비스 URL 들의 URL 주소 정보로 대체될 수 있다. 이에 따라 엘레멘트 이름등이 변경될 수 있다. 마찬가지로, HTTP 기반의 아키텍쳐 실시예 #1 에 있어 활용되는 DDD 포맷이므로, 각각의 서비스 URL 들에 대한 주소 정보가 각각 나열되어 있을 수 있다.
websocket 엔드포인트의 주소는, ws://localhost:8030/ESGInformation, ws://localhost:8030/Data, ws://localhost:8030/MediaTimeline 등과 같이 구성될 수 있다. HTTP 서비스 URL 의 주소는, http://192.168.1.4:8080/serviceidentification, http://localhost:8030/ESGInformation, 등과 같이 구성될 수 있다.
도 32 은 본 발명의 다른 실시예에 따른, DDD 를 이용한 Websocket 엔드포인트 또는 HTTP 서비스 URL 의 디스커버리 과정에 있어서, DDD 의 포맷을 도시한 도면이다.
전술한 websocket 기반의 아키텍쳐 실시예 #2 에 있어서, 도시된 실시예(t420010)에 따른 DDD 포맷 또는 실시예(t420020)에 따른 DDD 포맷이 사용될 수 있다.
도시된 실시예(t420010)에서, DDD 의 디바이스 정보는 디바이스 타입 정보 외에도 websocket 엔드포인트의 주소를 포함할 수 있다. websocket 기반의 아키텍쳐 실시예 #2 에 있어 활용되는 DDD 포맷이므로, 하나의 컴패니언 엔드포인트에 대한 주소 정보만이 포함될 수 있다. 도시된 실시예(t420020) 에 따른 DDD 포맷 역시 하나의 컴패니언 엔드포인트에 대한 주소 정보를 포함할 수 있다. 단 이 경우 DDD 의 서비스 정보 내에 해당 엔드포인트의 주소 정보가 포함될 수 있다.
도시된 실시예(t420010, t420020) 에 따른 DDD 포맷들은, 전술한 HTTP 기반의 아키텍쳐 실시예 #2 에 있어서도 사용될 수 있다. 단 이 경우 주소 정보는 websocket 컴패니언 엔드포인트의 주소 정보가 아닌, 컴패니언 서비스 URL 의 주소 정보로 대체될 수 있다. 이에 따라 엘레멘트 이름 등이 변경될 수 있다. 마찬가지로, HTTP 기반의 아키텍쳐 실시예 #2 에 있어 활용되는 DDD 포맷이므로, 하나의 서비스 URL 에 대한 주소 정보만이 포함될 수 있다.
전술한 websocket 기반의 아키텍쳐 실시예 #3 에 있어서, 도시된 실시예(t420030)에 따른 DDD 포맷 또는 실시예(t420040)에 따른 DDD 포맷이 사용될 수 있다.
도시된 실시예(t420030)에서, DDD 의 디바이스 정보는 디바이스 타입 정보 외에도 제공되는 n 개의 websocket 엔드포인트의 주소 정보들을 포함할 수 있다. 예를 들어 서비스/컨텐츠 식별 기능, ESG 정보 전달 기능 등등의 역할을 수행하는 컴패니언 엔드포인트에 대한 주소 정보 및 앱투앱 커뮤니케이션 엔드포인트에 대한 주소 정보가 포함될 수 있다. 도시된 실시예(t420040) 에 따른 DDD 포맷 역시 제공되는 n 개의 websocket 엔드포인트의 주소 정보들을 포함할 수 있다. 단 이 경우 DDD 의 서비스 정보 내에 해당 엔드포인트들의 주소 정보들이 포함될 수 있다.
여기서는 일 실시예로서 주소 정보가 디바이스 정보, 서비스 정보 하위에 위치하는 것으로 도시되었으나, 주소 정보가 DDD 내의 다른 위치에 포함되는 실시예도 있을 수 있다. 도시된 DDD 의 실시예에서, 전술한 DDD 의 다른 엘레멘트들은 생략되었다. 다른 엘레멘트들은 다양한 실시예에 따라 구성이 가능할 수 있다.
도 33 은 본 발명의 일 실시예에 따른, DDD 요청에 대한 응답(response) 헤더를 이용한 Websocket 엔드포인트 또는 HTTP 서비스 URL 의 디스커버리 과정을 도시한 도면이다.
전술한 바와 같이, PD 는 자신을 어드버타이징하는 디스커버리 메시지를 멀티캐스팅하거나, 수신된 M-SEARCH 메시지에 대한 응답 메시지를 CD 로 전송할 수 있다. CD 측 앱은 멀티캐스팅된 디스커버리 메시지 또는 M-SEARCH 메시지에 대한 응답 메시지의 LOCATION 헤더로부터 URL 을 얻을 수 있다. 이 과정(t421010)은 전술한 실시예에서와 같을 수 있다.
이 URL 은 DDD 를 획득할 수 있는 URL 로서, CD 측 앱은 이 URL 로 HTTP GET 을 이용해 DDD 를 요청하는 메시지를 보낼 수 있다. 이에 대한 응답 메시지의 바디를 통해 DDD 가 전달되어 CD 측 앱은 디바이스 디스크립션 정보 등을 얻을 수 있다(t421020).
전술한 실시예에서는 이 응답메시지의 DDD 를 통해 websocket 엔드포인트의 주소 내지는 HTTP 서비스 URL 의 주소 정보가 전달되어 왔다. 본 실시예에서는 이 응답메시지의 헤더를 통해 해당 주소 정보들이 전달될 수 있다. 이 경우 응답 메시지의 바디는 비어 있는 채로 아무런 정보도 전달하지 않을 수도 있고, DDD 를 포함할 수도 있다.
도 34 는 본 발명의 일 실시예에 따른, DDD 요청에 대한 응답(response) 헤더를 이용한 Websocket 엔드포인트 또는 HTTP 서비스 URL 의 디스커버리 과정에 있어서, 응답 헤더의 포맷을 도시한 도면이다.
전술한 바와 같이 CD 측 앱은 HTTP GET 을 이용해 DDD 를 요청할 수 있다. 이 때의 GET 메시지는 도시된 실시예(t422010) 와 같을 수 있다. 이 때 GET 을 이용한 DDD 요청 메시지는 PD 로부터 획득된 DDD 의 URL 로 전송될 수 있다. 또한 디스크립션의 IP 주소/포트 의 호스트 정보가 활용될 수 있다. 또한 컨트롤 포인트에 의해 선호되는 언어가 사용될 수 있다. 이 GET 메시지는 전술한 실시예에 따른 메시지와 같을 수 있다.
전술한 바와 같이 DDD 의 요청메시지에 대한 응답 메시지가 리턴될 수 있다. 이 응답 메시지의 헤더를 통해 주소 정보가 전달될 수 있다.
전술한 websocket 기반의 아키텍쳐 실시예 #1 에 있어서, 도시된 실시예(t422020)에 따른 응답 헤더 포맷이 사용될 수 있다. 이 실시예의 응답 헤더는 기본적인 200 OK 메시지의 정보 외에도 다양한 websocket 엔드포인트의 주소 정보들을 포함할 수 있다. 도시된 바와 같이 서비스/컨텐츠 식별 엔드포인트, ESG 정보 엔드포인트 등등의 엔드포인트들에 대한 주소 정보가 응답 헤더에 포함될 수 있다. websocket 기반의 아키텍쳐 실시예 #1 에 있어 활용되는 응답 헤더 포맷이므로, 각각의 엔드포인트들에 대한 주소 정보가 각각 나열되어 있을 수 있다. 여기서 주소 정보들이 응답 헤더에 포함되는 구조 및 형태는 실시예에 따라 다양하게 구성될 수 있다.
도시된 실시예(t422020) 에 따른 응답 헤더 포맷은, 전술한 HTTP 기반의 아키텍쳐 실시예 #1 에 있어서도 사용될 수 있다. 단 이 경우 각각의 주소 정보들은 websocket 엔드포인트들의 주소 정보가 아닌, 각각 해당되는 서비스 URL 들의 URL 주소 정보로 대체될 수 있다. 이에 따라 엘레멘트 이름 등이 변경될 수 있다. 마찬가지로, HTTP 기반의 아키텍쳐 실시예 #1 에 있어 활용되는 응답 헤더 포맷이므로, 각각의 서비스 URL 들에 대한 주소 정보가 각각 나열되어 있을 수 있다.
전술한 websocket 기반의 아키텍쳐 실시예 #2 에 있어서, 도시된 실시예(t422030)에 따른 응답 헤더 포맷이 사용될 수 있다. 이 실시예의 응답 헤더는 기본적인 200 OK 메시지의 정보 외에도 websocket 엔드포인트의 주소 정보를 포함할 수 있다. websocket 기반의 아키텍쳐 실시예 #2 에 있어 활용되는 응답 헤더 포맷이므로, 하나의 컴패니언 엔드포인트에 대한 주소 정보만이 포함될 수 있다. 여기서 주소 정보가 응답 헤더에 포함되는 구조 및 형태는 실시예에 따라 다양하게 구성될 수 있다.
도시된 실시예(t422030) 에 따른 응답 헤더 포맷은, 전술한 HTTP 기반의 아키텍쳐 실시예 #2 에 있어서도 사용될 수 있다. 단 이 경우 주소 정보는 websocket 컴패니언 엔드포인트의 주소 정보가 아닌, 컴패니언 서비스 URL 의 주소 정보로 대체될 수 있다. 이에 따라 엘레멘트 이름 등이 변경될 수 있다. 마찬가지로, HTTP 기반의 아키텍쳐 실시예 #2 에 있어 활용되는 응답 헤더 포맷이므로, 컴패니언 서비스 URL 에 대한 주소 정보만이 포함될 수 있다.
전술한 websocket 기반의 아키텍쳐 실시예 #3 에 있어서, 도시된 실시예(t422040)에 따른 응답 헤더 포맷이 사용될 수 있다. 이 실시예의 응답 헤더는 기본적인 200 OK 메시지의 정보 외에도 제공되는 n 개의 websocket 엔드포인트의 주소 정보들을 포함할 수 있다. 예를 들어 서비스/컨텐츠 식별 기능, ESG 정보 전달 기능 등등의 역할을 수행하는 컴패니언 엔드포인트에 대한 주소 정보 및 앱투앱 커뮤니케이션 엔드포인트에 대한 주소 정보가 포함될 수 있다. 여기서 주소 정보들이 응답 헤더에 포함되는 구조 및 형태는 실시예에 따라 다양하게 구성될 수 있다.
도 35 은 본 발명의 일 실시예에 따른, DDD 요청에 대한 응답(response) 헤더의 URL 을 이용한 Websocket 엔드포인트 또는 HTTP 서비스 URL 의 디스커버리 과정을 도시한 도면이다.
전술한 바와 같이, PD 는 자신을 어드버타이징하는 디스커버리 메시지를 멀티캐스팅하거나, 수신된 M-SEARCH 메시지에 대한 응답 메시지를 CD 로 전송할 수 있다. CD 측 앱은 멀티캐스팅된 디스커버리 메시지 또는 M-SEARCH 메시지에 대한 응답 메시지의 LOCATION 헤더로부터 URL 을 얻을 수 있다. 이 URL 은 DDD 를 획득하기 위한 URL 로서, CD 측 앱은 URL 로 HTTP GET 요청을 보낼 수 있다. 이 과정(t423010, t423020)은 전술한 실시예에서와 같을 수 있다.
여기서 HTTP GET 요청에 대한 응답으로 응답 메시지가 수신될 수 있다. 전술한 실시예에서는 이 응답 메시지 바디의 DDD 또는 응답 메시지 헤더를 통해 주소 정보가 전달되었다. 본 실시예에서는 이 응답 메시지 헤더를 통해 주소 정보를 획득할 수 있는 URL 이 전달될 수 있다. 이 경우 응답 메시지의 바디는 비어 있는 채로 아무런 정보도 전달하지 않을 수도 있고, DDD 를 포함할 수도 있다(t423020).
CD 측 앱은 전달받은 주소 정보를 위한 URL 로, HTTP GET 요청을 보내 주소 정보를 요청할 수 있다. PD 는 CD 측 앱으로 응답 메시지를 보낼 수 있다. 이 응답 메시지를 통하여 주소 정보가 CD 측으로 전달될 수 있다(t423030). 이 주소 정보는 해당 응답 메시지의 바디를 통해 전달될 수 있다. 실시예에 따라 주소정보는 응답 메시지의 헤더를 통해서 전달될 수도 있다.
도 36 는 본 발명의 일 실시예에 따른, DDD 요청에 대한 응답(response) 헤더의 URL 을 이용한 Websocket 엔드포인트 또는 HTTP 서비스 URL 의 디스커버리 과정에 있어서, GET 요청 및 그에 따른 응답 메시지 포맷들을 도시한 도면이다.
전술한 바와 같이 CD 측 앱은 HTTP GET 을 이용해 DDD 를 요청할 수 있다. 이 때의 GET 메시지는 도시된 실시예(t424010) 와 같을 수 있다. 이 때 GET 을 이용한 DDD 요청 메시지는 PD 로부터 획득된 DDD 의 URL 로 전송될 수 있다. 이 GET 메시지는 전술한 실시예에 따른 메시지와 같을 수 있다.
이 HTTP GET 요청에 따라 응답메시지가 수신될 수 있다. 이 응답 메시지 포맷은 도시된 실시예(t424020) 와 같을 수 있다. 이 응답 메시지는 기본적인 200 OK 메시지의 정보 외에도 주소 정보를 획득할 수 있는 URL 정보를 포함할 수 있다. 이 URL 은 websocket 엔드포인트의 주소를 획득하기 위한 URL 정보일 수도 있고, HTTP 서비스 URL 의 주소를 획득하기 위한 URL 정보일 수도 있다. 혹은 양자 모두를 얻기 위한 URL 정보일 수도 있다. 도시된 포맷에서는 websocket 엔드포인트의 주소를 얻기 위한 URL 정보가 포함되어 있다.
CD 측 앱은 HTTP GET 을 이용해, 주소 정보를 위한 URL 로 주소 정보들을 요청할 수 있다. 이 때의 GET 메시지는 도시된 실시예(t424030) 와 같을 수 있다. 이 때 GET 을 이용한 요청 메시지는 PD 로부터 획득된 주소 정보의 URL 로 전송될 수 있다. 또한 디스크립션의 IP 주소/포트 의 호스트 정보가 활용될 수 있다. 또한 컨트롤 포인트에 의해 선호되는 언어가 사용될 수 있다.
예를 들어 주소정보를 획득하기 위한 URL 이 http://192.168.1.10:8080/WSEndpoints 와 같은 경우(websocket 가정), 이 URL 을 이용한 GET 메시지는 실시예(t424040)와 같이 구성할 수 있다.
이 후, 전술한 바와 같이 주소 정보의 요청메시지에 대한 응답 메시지가 리턴될 수 있다. 이 응답 메시지는 주소 정보들을 포함할 수 있다. 이 주소 정보는 websocket 엔드포인트의 주소 내지 HTTP 서비스 URL 의 주소일 수 있다.
도 37 는 본 발명의 다른 실시예에 따른, DDD 요청에 대한 응답(response) 헤더의 URL 을 이용한 Websocket 엔드포인트 또는 HTTP 서비스 URL 의 디스커버리 과정에 있어서, 주소 정보를 전달하는 응답 메시지의 포맷을 도시한 도면이다.
전술한 websocket 기반의 아키텍쳐 실시예 #1 에 있어서, 도시된 실시예(t425010)에 따른 응답 메시지 포맷이 사용될 수 있다.
도시된 바와 같이 서비스/컨텐츠 식별 엔드포인트, ESG 정보 엔드포인트 등등의 엔드포인트들에 대한 주소 정보가 메시지에 포함될 수 있다. websocket 기반의 아키텍쳐 실시예 #1 에 있어 활용되는 메시지 포맷이므로, 각각의 엔드포인트들에 대한 주소 정보가 각각 나열되어 있을 수 있다.
도시된 실시예(t425010) 에 따른 메시지 포맷은, 전술한 HTTP 기반의 아키텍쳐 실시예 #1 에 있어서도 사용될 수 있다. 단 이 경우 각각의 주소 정보들은 websocket 엔드포인트들의 주소 정보가 아닌, 각각 해당되는 서비스 URL 들의 URL 주소 정보로 대체될 수 있다. 이에 따라 엘레멘트 이름 등이 변경될 수 있다. 마찬가지로, HTTP 기반의 아키텍쳐 실시예 #1 에 있어 활용되는 메시지 포맷이므로, 각각의 서비스 URL 들에 대한 주소 정보가 각각 나열되어 있을 수 있다.
전술한 websocket 기반의 아키텍쳐 실시예 #2 에 있어서, 도시된 실시예(t425020)에 따른 메시지 포맷이 사용될 수 있다.
도시된 실시예(t425020) 에 따른 메시지 포맷은, 전술한 HTTP 기반의 아키텍쳐 실시예 #2 에 있어서도 사용될 수 있다. 단 이 경우 주소 정보는 websocket 컴패니언 엔드포인트의 주소 정보가 아닌, 컴패니언 서비스 URL 의 주소 정보로 대체될 수 있다. 이에 따라 엘레멘트 이름 등이 변경될 수 있다. 마찬가지로, HTTP 기반의 아키텍쳐 실시예 #2 에 있어 활용되는 메시지 포맷이므로, 컴패니언 서비스 URL 에 대한 주소 정보만이 포함될 수 있다.
전술한 websocket 기반의 아키텍쳐 실시예 #3 에 있어서, 도시된 실시예(t425030)에 따른 메시지 포맷이 사용될 수 있다.
도시된 실시예(t425030) 에 따른 메시지 포맷은 n 개의 websocket 엔드포인트의 주소 정보들을 포함할 수 있다. 예를 들어 서비스/컨텐츠 식별 기능, ESG 정보 전달 기능 등등의 역할을 수행하는 컴패니언 엔드포인트에 대한 주소 정보 및 앱투앱 커뮤니케이션 엔드포인트에 대한 주소 정보가 포함될 수 있다.
도시된 포맷들은 additionalData 엘레멘트 내에 주소 정보들을 포함하고 있으나, 실시예에 따라 이 메시지는 다른 정보들도 포함할 수 있다. 여기서 주소 정보들이 메시지에 포함되는 구조 및 형태는 실시예에 따라 다양하게 구성될 수 있다.
도 38 은 본 발명의 일 실시예에 따른, Websocket 기반의 핸드쉐이크(Handshake) & 연결 과정을 도시한 도면이다 (디스커버리 이후).
전술한 바와 같이 PD 는 websocket 서버의 역할을 수행하고, CD 는 websocket 클라이언트에 해당할 수 있다. PD 는 websocket 서버 및/또는 컴패니언 서비스 모듈을 포함할 수 있다. 컴패니언 서비스 모듈은 TV 수신기 등에서 컴패니언 디바이스에 필요한 정보를 제공하거나, 컴패니언 서비스 관련 전반적인 매니징을 수행하는 모듈일 수 있다. 컴패니언 서비스 모듈은 하드웨어 모듈일 수 있다.
PD 측 websocket 서버는 websocket 엔드포인트들을 제공할 수 있다. CD 측 웹브라우저에서 이용될 수 있는 앱이 실행중일 수 있다. 웹브라우저는 또한 websocket 클라이언트를 제공할 수 있다.
먼저, PD 측의 컴패니언 서비스 모듈은 websocket 엔드포인트를 생성하도록 websocket 서버에 요청할 수 있다(t426010). 예를 들어 Java 형식의 @ServerEndpoint("/WS_AA") 와 같은 형식의 요청이 전달될 수 있다. 여기서 "/WS_AA" 는 관련된 URL 을 의미할 수 있다. 이 과정을 통해 websocket 서버에서 websocket 엔드포인트가 생성될 수 있다.
CD 측 앱은 websocket 오브젝트를 생성하기 위한 API 를 호출할 수 있다(t426020). 이 API 는 newWebsocket 이라는 이름의 API 로 websocket 엔드포인트의 주소를 그 변수로 가질 수 있다. 예를 들어, ex_websocket = newWebSocket(ws://192.168.1.11:8080/WS_AA) 와 같은 형태로 ex_websocket 이 정의될 수 있다. 이 과정을 통해 CD 측에서 websocket 오브젝트가 생성될 수 있다. 여기서 PD 측 websocket 서버의 엔드포인트와 CD 측 websocket 오브젝트간의 핸드쉐이크가 수행될 수 있다(t426030).
CD 측 앱은 OpenEventHandler 를 추가하기 위한 API 를 호출할 수 있다(t426040). 이 API 는, WebSocketObject.onopen() 일 수 있다. 예를 들어, ex_websocket.onopen(…) 와 같은 방식으로 핸들러가 추가될 수 있다. 이 과정에서 weboscket 서버와 클라이언트가 연결될 수 있다(t426050). Websocket 클라이언트는 연결이 열렸음을 CD 측 앱에 알려줄 수 있다(t426060).
도 39 은 본 발명의 일 실시예에 따른, Websocket 기반의 앱투앱 커뮤니케이션을 위한 핸드쉐이크(Handshake) & 연결 과정을 도시한 도면이다(디스커버리 이후).
websocket 기반의 아키텍쳐에서 PD 측에서 실행 중인 앱과 CD 측에서 실행중인 앱간에 앱투앱 커뮤니케이션이 가능할 수 있다. 전술한 바와 같이, PD 측 앱이 websocket 서버에 연결되고, CD 측 앱 또한 websocket 서버에 연결되고 나면, websocket 서버는 양자 간의 메시지, 데이터 등을 릴레이해줄 수 있다.
먼저, PD 측 앱은 PD 내의 websocket 클라이언트에 새로운 websocket 오브젝트를 생성하기 위해 API 를 호출할 수 있다. 전술한 newWebsocket API 가 활용될 수 있다. 예를 들어 local_websocket = new WebSocket(ws://localhost:8080/ApptoApp) 와 같이 API 가 활용될 수 있다. 이 과정에서 PD 측 앱을 위한 websocket 오브젝트가 생성될 수 있다.
PD 측의 컴패니언 서비스 모듈은 websocket 서버에 API 를 호출하여 websocket 엔드포인트를 생성할 수 있다(t427020, t427030). 이 과정은 전술한 바와 같으며, 이 경우에는 앱 투 앱 커뮤니케이션을 위한 엔드포인트가 생성되어야 하므로, 변수로 앱투앱 커뮤니케이션과 관련된 URL (예를 들어 /ApptoApp) 이 활용될 수 있다. 이 후 PD 의 로컬 websocket 클라이언트와 websocket 서버는 핸드쉐이크 과정을 수행할 수 있다(t427040).
CD 측 앱 도 마찬가지로 websocket 오브젝트를 생성할 수 있다(t427050). 그 과정은 전술한 바와 같으며, 단 이 경우는 앱 투 앱 커뮤니케이션을 위한 websocket 오브젝트 이므로, remote_websocket = newWebSocket(ws://192.168.1.11:8080/ApptoApp) 와 같은 형태로 websocket 오브젝트가 정의될 수 있다. 이 후, 마찬가지로, PD 의 websocket 서버와 CD 측의 websocket 오브젝트는 핸드쉐이크 과정을 수행할 수 있다(t427060).
PD 측의 websocket 클라이언트와 CD 측의 websocket 클라이언트는 OpenEventHandler 를 추가하기 위해 API 를 호출할 수 있다(t427091, t427090). 이 과정은 전술한 바와 같다. 이를 통해 각각의 websocket 클라이언트는 websocket 서버와 연결될 수 있다(t427070, t427100). 연결되면, 각각의 websocket 클라이언트는 각각의 앱들에 연결이 오픈되었음을 이벤트로 알릴 수 있다(t427080, t427110).
전술한 과정들이 완료되면, CD 측 앱과 PD 측 앱은 서로 커뮤니케이션할 수 있다(t427120). 양 측 앱은 websocket 서버를 통하여 한쪽에 다른쪽으로 메시지를 전달할 수 있다. 즉, websocket 서버는 한 쪽의 클라이언트에서 보내온 메시지를 다른 쪽 클라이언트로 릴레이해줄 수 있다. 이러한 2 웨이 커뮤니케이션 과정에 대해서는 자세히 후술한다.
도 40 은 본 발명의 일 실시예에 따른, Websocket 기반의 2 웨이(way) 커뮤니케이션 과정을 도시한 도면이다 (연결 이후).
전술한 과정들을 통하여 CD 측 앱과 PD 측의 websocket 서버가 연결된 경우를 가정한다(t428010). 전술한 바와 같이 websocket 클라이언트는 CD 측 앱으로 연결이 오픈되었음을 알려줄 수 있다(t428020).
컴패니언 서비스 모듈은 메시지를 수신하기 위해 API 를 호출할 수 있다(t428030). 예를 들어 Java 형식의 @OnMessage 와 같은 API 가 활용될 수 있다. 이를 통해 websocket 서버는 메시지를 수신할 준비가 될 수 있다(ready receive).
CD 측 앱은 MessageEventHandler 를 추가하기 위한 API 를 호출할 수 있다(t428040). 예를 들어 WebSocketObject.onmessage() 와 같은 API 가 호출될 수 있다. 전술한 예시의 ex_websocket 같은 오브젝트의 경우, ex_websocket.onmessage(…) 와 같은 방식으로 API 가 호출될 수 있다. 이 과정을 통해 CD 측의 websocket 클라이언트는 메시지를 송/수신하기 위한 준비가 될 수 있다.
CD 측 앱은 메시지를 보내기 위한 API 를 호출할 수 있다(t428050). 예를 들어 WebSocketObject.send(message1) 과 같은 API 가 호출될 수 있다. 전술한 예시의 ex_websocket 같은 오브젝트의 경우, ex_websocket.send(message1) 과 같은 방식으로 API 가 호출될 수 있다. 이를 통해 weboscket 서버로 메시지(message 1) 이 전달될 수 있다(t428060).
weboscket 서버는 수신한 메시지(message 1) 을 컴패니언 서비스 모듈로 전달할 수 있다(t428070). 컴패니언 서비스 모듈은 이에 대응하여 메시지(message 2) 를 전달할 수 있다(t428080, t428090, t428100). 컴패니언 서비스 모듈은 메시지를 보내기 위한 API 를 호출할 수 있다(t428080). 텍스트 또는 JSON 포맷의 오브젝트를 전송하기 위하여, session.getBasicRemote().sendText(message2) 또는 session.getBasicRemote().sendObject(message2) 와 같은 Java API 가 호출될 수 있다.
도 41 는 본 발명의 일 실시예에 따른, Websocket 기반의 앱투앱 2 웨이(way) 커뮤니케이션 과정을 도시한 도면이다 (연결 이후 / CD to PD).
전술한 과정들을 통하여 CD 측 앱과 PD 측의 websocket 서버, 그리고 PD 측에서 실행중인 앱이 연결된 경우를 가정한다. 각 앱들은 websocket 클라이언트로부터 연결이 오픈되었음을 이벤트로 전달받은 상태일 수 있다.
전술한 것과 같이 컴패니언 서비스 모듈은 메시지를 수신하기 위해 API 를 호출할 수 있고, 이를 통해 websocket 서버는 메시지를 수신받기 위한 준비가 될 수 있다(t429030). PD 측 앱 은 MessageEventHandler 를 추가하기 위해 API 를 호출하고, PD 측 websocket 클라이언트 역시 메시지를 수신받기 위한 준비가 될 수 있다(t429040). CD 측 앱도 마찬가지로 API 호출을 통해 websocket 클라이언트를 메시지 수신을 위한 준비가 되게 할 수 있다(t429020). 자세한 과정은 전술한 바와 같다.
CD 측 앱은 메시지를 보내기 위해 API 를 호출할 수 있다(t429050). 이는 전술한 API 로서, 예를 들어, remote_websocket.send(message1) 등과 같이 활용될 수 있다. 이를 통해 메시지가 websocket 서버로 전달될 수 있다(t429060). websocket 서버는 이 메시지(message 1) 를 컴패니언 서비스 모듈로 전달해줄 수 있다(t429070).
컴패니언 서비스 모듈은 이를 PD 측의 로컬 websocket 클라이언트로 전달해주기 위하여, 로컬 websocket 세션을 서치할 수 있다. 컴패니언 서비스 모듈은 로컬 websocket 세션을 찾으면, 메시지(message 1) 을 전달해주기 위하여 API 를 호출할 수 있다(t429080). 이 때, 전술한 바와 같이, 텍스트 또는 JSON 포맷의 오브젝트를 전송하기 위하여, session.getBasicRemote().sendText(message1) 또는 session.getBasicRemote().sendObject(message1) 와 같은 Java API 가 호출될 수 있다.
websocket 서버는 이 메시지(message 1)을 websocket 클라이언트로 전달하고(t429090), websocket 클라이언트는 이를 다시 PD 측 앱으로 전달해줄 수 있다(t429100).
도 42 은 본 발명의 일 실시예에 따른, Websocket 기반의 앱투앱 2 웨이(way) 커뮤니케이션 과정을 도시한 도면이다 (연결 이후 / PD to CD).
전술한 과정들을 통하여 CD 측 앱과 PD 측의 websocket 서버, 그리고 PD 측에서 실행중인 앱이 연결된 경우를 가정한다. 각 앱들은 websocket 클라이언트로부터 연결이 오픈되었음을 이벤트로 전달받은 상태일 수 있다.
websocket 서버와 각각의 websocket 클라이언트들은, 전술한 과정과 동일한 과정에 의하여, 메시지를 송/수신하기에 준비된 상태일 수 있다.
PD 측 앱은 메시지를 보내기 위해 API 를 호출할 수 있다(t430010). 이는 전술한 API 로서, 예를 들어, local_websocket.send(message2) 등과 같이 활용될 수 있다. 이를 통해 메시지가 websocket 서버로 전달될 수 있다(t430020). websocket 서버는 이 메시지(message 2) 를 컴패니언 서비스 모듈로 전달해줄 수 있다(t430030).
컴패니언 서비스 모듈은 이를 CD 측의 리모트 websocket 클라이언트로 전달해주기 위하여, 리모트 websocket 세션을 서치할 수 있다. 컴패니언 서비스 모듈은 리모트 websocket 세션을 찾으면, 메시지(message 2) 을 전달해주기 위하여 API 를 호출할 수 있다(t430040). 이 때, 전술한 바와 같이, 텍스트 또는 JSON 포맷의 오브젝트를 전송하기 위하여, session.getBasicRemote().sendText(message2) 또는 session.getBasicRemote().sendObject(message2) 와 같은 Java API 가 호출될 수 있다.
websocket 서버는 이 메시지(message 2)을 websocket 클라이언트로 전달하고(t430050), websocket 클라이언트는 이를 다시 CD 측 앱으로 전달해줄 수 있다(t430060).
도 43 은 본 발명의 일 실시예에 따른, HTTP 기반의 요청-응답(Request-Response) 과정을 도시한 도면이다 (디스커버리 이후).
전술한 HTTP 기반의 아키텍쳐에서의 디스커버리 과정에 의해, HTTP 서비스 URL 들은 모두 디스커버되었다고 가정한다(t431010).
CD 측 앱은 HTTP 클라이언트에 API 를 호출하여 메시지 요청을 보낼 수 있다(t431020). HTTP 클라이언트는 디스커버리 과정에서 알게된 HTTP 서비스 URL 중, 요청에 따른 적절한 URL 로 메시지 요청을 보낼 수 있다(t431030). 또는 전술한 실시예에 따라 하나의 컴패니언 서비스 URL 로 메시지 요청을 보낼 수 있다. 이 경우 요청의 쿼리 텀(query term) 등에 의해 요청의 내용이 식별될 수 있다.
HTTP 서버는 PD 내의 컴패니언 서비스 모듈로 요청 메시지를 전달할 수 있다(t431040). 컴패니언 서비스 모듈은 요청된 메시지(message1) 을 CD 측에 전달해주기 위하여 API 를 호출할 수 있다(t431050).
HTTP 서버는 이에 따라 메시지(message 1) 을 HTTP 클라이언트로 전달해주고(t431060), HTTP 클라이언트는 CD 측 앱으로 메시지를 전달해줄 수 있다(t431070).
도 44 는 본 발명의 일 실시예에 따른 PD 에서 방송 서비스를 제공하는 방법을 도시한 도면이다.
본 발명의 일 실시예에 따른 PD 에서 방송 서비스를 제공하는 방법은 CD 앱(application) 과 디스커버리 과정을 수행하는 단계, 웹소켓 커넥션을 구축하는(establishing) 단계, EA (Emergency Alert) 메시지를 수신하는 단계 및/또는 EA 메시지를 웹소켓 커넥션을 통하여 CD 로 전달하는 단계를 포함할 수 있다.
먼저 PD 로서 동작하는 방송 수신 장치의 컴패니언 모듈은 CD (Companion Device) 에서 실행중인 CD 앱(application) 과 디스커버리 과정을 수행할 수 있다. 이 디스커버리 과정은 전술한 바와 같을 수 있다. 여기서 CD 앱은 PD 에 의해서 실행(launch) 되지 않았다고 가정한다. CD 는 M-SEARCH 메시지를 멀티캐스팅할 수 있다. 이 메시지를 수신한 PD 는 200 OK 메시지로 응답할 수 있다. 이 200 OK 메시지의 헤더에는 PD 의 LOCATION URL 정보가 포함될 수 있다.
CD 측 앱은 이 Location URL 로 디바이스 디스크립션을 요청할 수 있다. 이 요청은 HTTP GET 메쏘드를 이용해 수행될 수 있다. 이 요청을 전달받은 PD 내지 PD 의 컴패니언 모듈은 제 1 응답메시지를 CD 측 앱으로 전송할 수 있다. 여기서 제 1 응답 메시지는 그 헤더에 제 1 URL 을 포함할 수 있다. 이 제 1 URL 은 PD 가 제공하는 웹서버의 엔드포인트로 사용될 수 있다. 여기서 웹서버의 엔드포인트란 전술한 웹서버가 제공하는 서비스 URL 을 의미할 수 있다. 제 1 URL 은 전술한 HTTP 기반의 아키텍쳐에서 사용되는 컴패니언 서비스 URL 에 해당할 수 있다. 실시예에 따라 각각의 기능에 따라 각각의 서비스 URL 이 존재할 수도 있다. 그 경우 제 1 URL 은 여러 개여 HTTP 서비스 URL 중 하나일 수 있다.
PD 의 컴패니언 모듈은 CD 앱으로부터 어플리케이션 정보 요청을 수신할 수 있다. CD 측 앱은 제 1 URL 로 어플리케이션 정보를 요청할 수 있다. 컴패니언 모듈은 이에 대한 응답으로 제 2 응답 메시지를 전송할 수 있다. 제 2 응답 메시지는 제 2 URL 정보를 응답 메시지 바디(body)에 포함할 수 있다. 제 2 URL은 PD 가 제공하는 웹소켓 서버의 엔드포인트로 사용될 수 있다. 여기서 해당 웹소켓 엔드포인트의 주소 정보인 제 2 URL 은 컴패니언 웹소켓 엔드포인트일 수도 있고, 앱투앱 웹소켓 엔드포인트일 수도 있다.
본 실시예는 전술한 실시예 중, HTTP 기반의 웹 서버와 웹소켓 기반의 웹소켓 서버가 함께 PD 에서 제공되는 실시예에 해당할 수 있다. 그 중에서도, HTTP 서비스 URL 은 컴패니언 서비스 URL 하나만 제공되고, 웹소켓 서버 엔드포인트는 컴패니언 엔드포인트 1개 와 앱투앱 엔드포인트 1 개가 제공되는 실시예에 해당할 수 있다. 여기서 웹소켓 컴패니언 엔드포인트는 앱투앱 커뮤니케이션을 제외한 다른 기능을 제공하는 엔드포인트일 수 있다. PD 와 CD 간의 통신들은 각각 역할이 분담되어 웹서버(HTTP) 또는 웹소켓 서버(Websocket) 에 의해 수행될 수 있다. 예를 들어, ESG 의 전달은 웹서버를 통하여, 서비스&컨텐츠 식별, EA(Emergency Alert) 메시지 전달 및 미디어 플레이백 정보 전달은 웹소켓 서버를 통하여 수행될 수 있다. 미디어 타임라인 정보는 웹서버 및/또는 웹소켓 서버를 통하여 전달될 수 있다.
이 후 PD 의 컴패니언 모듈은 웹소켓 서버와 CD 앱 간의 웹소켓 커넥션을 구축할 수 있다. 이 과정에서 제 2 URL 정보가 활용될 수 있다. 웹소켓 커넥션(세션) 을 구축하는 방법은 자세히 전술하였다. 여기서의 웹소켓 커넥션은 앱투앱 커뮤니케이션을 위해 PD 측 앱과 CD 측 앱을 이어주는 웹소켓 커넥션일 수도 있고, PD 에서 CD 측 앱으로 정보를 주고받기 위한 웹소켓 커넥션일 수도 있다.
PD 의 수신 모듈은 긴급 경보 정보를 포함하는 EA (Emergency Alert) 메시지를 방송망 또는 브로드밴드를 통해 수신할 수 있다. 수신 모듈은 방송망을 통해 데이터를 수신하는 튜너 또는 브로드밴드를 통해 데이터를 수신하는 네트워크 인터페이스 중 하나이거나, 양자 모두를 포함하는 개념일 수 있다. EA 메시지는 긴급 상황을 알리기 위한 재난 경보 등의 정보를 포함하는 메시지를 의미할 수 있다. 이에 대해서는 전술하였다.
PD 의 웹소켓 서버는 수신한 EA 메시지를 웹소켓 커넥션을 통하여 CD 로 전달할 수 있다. 자세한 전달 과정은 후술한다. 여기서 웹소켓 서버는, 전술한 웹소켓 서버에 해당하는 동작을 수행하는 하드웨어 모듈 내지 프로세서를 의미할 수도 있다.
본 발명의 다른 실시예에 따른 PD 에서 방송 서비스를 제공하는 방법에서, EA 메시지를 CD 측으로 전달하는 단계는, 긴급 경보 정보를 처리하는 PD 앱을 실행시키는 단계, PD 앱이 CD 측의 EA 앱을 실행시키는 단계 및/또는 웹소켓 커넥션을 통해 PD 앱이 CD 측의 EA 앱으로 EA 메시지를 전달하는 단계를 더 포함할 수 있다.
PD 의 내부 컨트롤 모듈은 EA 메시지를 수신하면, 이와 관련된 PD 측의 앱을 실행시킬 수 있다. 이 PD 측의 앱은 EA 메시지를 렌더링하고 EA 메시지를 CD 측으로 전달하는 과정을 매니징하는 등의 동작을 수행할 수 있다. 이 PD 측 앱은 CD 내의 EA 앱을 실행시킬 수 있다. 이 EA 앱은 CD 측에서 EA 메시지를 렌더링하고 처리하는 역할을 가진 앱일 수 있다. EA 앱이 CD 에서 실행되면, EA 앱과 상기 PD 측 앱 간의 앱투앱 웹소켓 커넥션이 수립될 수 있다. 이 과정은 전술한 바와 같다. PD 측 앱은 EA 앱으로 수신된 EA 메시지를 전달할 수 있다. EA 앱은 CD 측에서 EA 메시지를 렌더링하고 처리할 수 있다.
본 발명의 또 다른 실시예에 따른 PD 에서 방송 서비스를 제공하는 방법에서, EA 메시지는 해당EA 메시지를 식별하는 ID 정보, EA 메시지가 만료되는 시점을 지시하는 만료시점 정보 및/또는 해당 EA 메시지가 지시하는 긴급 경보의 타입을 지시하는 카테고리 정보를 포함할 수 있다. EA 메시지에 포함될 수 있는 정보에 대해서는 전술하였다.
본 발명의 또 다른 실시예에 따른 PD 에서 방송 서비스를 제공하는 방법은, CD 측 앱이 HTTP GET 메쏘드를 이용하여 타임라인 정보를 요청하는 단계 및/또는 PD 가 HTTP 응답 메시지를 CD 측 앱으로 전달하는 단계를 더 포함할 수 있다. 타임라인 정보는 전술한 PD 의 웹서버로 요청될 수 있다. 여기서 타임라인 정보는 PD 에서 제공중인 방송 서비스의 미디어 타임라인에 관한 정보를 의미할 수 있다. PD 의 웹서버는 이에 대한 응답 메시지를 CD 앱으로 전송하는뎅, 이 응답 메시지는 UTC 정보와 미디어 타임 정보가 페어로 포함될 수 있다. UTC 정보는 현재의 UTC 시각 정보로 절대 시각 정보를 의미하고, 미디어 타임 정보는 해당 UTC 시각에서의 미디어 타임 정보를 의미할 수 있다.
본 발명의 또 다른 실시예에 따른 PD 에서 방송 서비스를 제공하는 방법은, CD 측 앱이 PD 의 웹소켓 서버로 서비스 식별 메시지를 요청하는 단계 및/또는 웹소켓 서버가 서비스 식별 메시지를 CD 측 앱으로 전달하는 단계를 더 포함할 수 있다. 요청 및 그에 대한 응답은 웹소켓 커넥션을 통하여 수행될 수 있다. 여기서 실시예에 따라 CD 측 앱의 요청이 없이도, 알림(notification) 형식으로 PD 가 CD 측 앱으로 서비스 식별 메시지를 전달해 줄 수도 있다. 서비스 식별 메시지는 ESG (Electronic Service Guide) 데이터로부터 획득된 적어도 하나 이상의 서비스 관련 정보 또는 적어도 하나 이상의 컨텐츠 관련 정보를 포함할 수 있다. 서비스 관련 정보는 서비스 엘레멘트, 컨텐츠 관련 정보는 컨텐츠 엘레멘트의 형태로 서비스 식별 메시지에 나타날 수 있다.
본 발명의 또 다른 실시예에 따른 PD 에서 방송 서비스를 제공하는 방법에서, 서비스 식별 메시지는 각각의 컨텐츠에 관련된 컴포넌트 정보들 및/또는 컨텐트 아이템 정보들을 포함할 수 있다. 서비스 식별 메시지의 컨텐츠 엘레멘트는, 해당 컨텐츠에 포함되는 컴포넌트들을 기술하는 컴포넌트 엘레멘트들 및/또는 해당 컨텐츠와 관련된 파일/데이터를 기술하는 컨텐트 아이템 엘레멘트들을 포함할 수 있다. 여기서 컨텐츠는 해당 방송 서비스(채널) 의 프로그램에 해당할 수 있다.
여기서 각각의 컴포넌트 정보는 해당 컨텐트의 연속적이고 프리젠터블한 (Continous, Presentable) 데이터를 가지는 컴포넌트에 관한 정보를 포함할 수 있다. 예를 들어 오디오 컴포넌트, 비디오 컴포넌트, 클로즈드 캡션 컴포넌트 등이 이 컴포넌트에 해당할 수 있다. 또한, 각각의 컴포넌트 정보는 해당 컴포넌트에 접근하기 위한 URL 정보를 포함할 수 있다. 이 URL 정보는 PD 의 서비스 URL 정보일 수도 있고, 서비스 프로바이더가 제공하는 서버의 URL 정보일 수도 있다.
각각의 컨텐트 아이템 정보는 해당 컨텐트의 부가데이터 컴포넌트에 관한 정보를 포함할 수 있다. 여기서 부가 데이터 컴포넌트란 전술한 앱 기반 인핸스먼트 컴포넌트 또는 앱, 앱과 관련된 시그널링 정보 등의 데이터를 의미할 수 있다. 또한, 각각의 컨텐트 아이템 정보는 해당 데이터에 접근하기 위한 URL 정보를 포함할 수 있다. 이 URL 정보는 PD 의 서비스 URL 정보일 수도 있고, 서비스 프로바이더가 제공하는 서버의 URL 정보일 수도 있다.
본 발명의 또 다른 실시예에 따른 PD 에서 방송 서비스를 제공하는 방법에서, 부가데이터 컴포넌트에 접근하기 위한 URL 정보는 방송 서비스에 대한 앱 기반 인핸스먼트(App-based Enhancement) 를 제공하기 위한 데이터를 획득하기 위해 사용될 수 있다.
본 발명의 일 실시예에 따른 CD 에서 방송 서비스를 제공하는 방법을 설명한다. 이 방법은 도면에 도시되지 아니하였다.
본 발명의 일 실시예에 따른 CD 에서 방송 서비스를 제공하는 방법은 CD 의 런쳐(launcher) 가 CD 의 앱을 실행시키는 단계, CD 의 앱이 CD 의 네트워크 인터페이스를 이용하여 PD 와 디스커버리 과정을 수행하는 단계, CD 의 웹소켓 클라이언트를 이용하여 CD 의 앱이 PD 의 웹소켓 서버와 웹소켓 커넥션을 구축하는 단계 및/또는 CD 앱이 CD 의 웹소켓 클라이언트를 이용하여 EA 메시지를 전달받는 단계를 포함할 수 있다. CD 앱과 PD 간의 디스커버리 과정은 CD 의 컴패니언 모듈에 의해 수행될 수 있다. CD 앱은 컴패니언 모듈을 이용하여 디바이스 디스크립션을 요청하고, 전술한 제 1 URL 로 어플리케이션 정보를 요청하고, 요청들에 대한 응답을 획득할 수 있다. 또한 CD 의 EA 앱은 PD 앱에 의해 실행되어 웹소켓 커넥션을 통해 앱투앱 커뮤니케이션을 수행할 수 있다. 이 앱투앱 커뮤니케이션을 통해 EA 앱은 EA 메시지를 전달받을 수 있다.
본 발명의 실시예들에 따른 CD 에서 방송 서비스를 제공하는 방법들은, 전술한 본 발명의 실시예들에 따른 PD 에서 방송 서비스를 제공하는 방법들에 대응될 수 있다. CD 에서 방송 서비스를 제공하는 방법들은, PD 에서 방송 서비스를 제공하는 방법에서 사용되는 모듈들(예를 들어, 컴패니언 모듈, 수신 모듈, 내부 컨트롤 모듈, 웹서버, 웹소켓 서버 등)에 대응되는 하드웨어 모듈들에 의해 수행될 수 있다. CD 에서 방송 서비스를 제공하는 방법은, 전술한 PD 에서 방송 서비스를 제공하는 방법의 실시예들에 대응되는 실시예들을 가질 수 있다.
전술한 단계들은 실시예에 따라 생략되거나, 유사/동일한 동작을 수행하는 다른 단계에 의해 대체될 수 있다.
도 45 는 본 발명의 일 실시예에 따른 PD 로서 동작하는 방송 수신 장치를 도시한 도면이다.
본 발명의 일 실시예에 따른 PD 로서 동작하는 방송 수신 장치는 전술한 컴패니언 모듈, 수신 모듈, 내부 컨트롤 모듈, 웹서버 및/또는 웹소켓 서버를 포함할 수 있다. 각각의 블락, 모듈들은 전술한 바와 같다. 여기서 웹서버/웹소켓 서버는, 전술한 웹 서버/웹소켓 서버에 해당하는 동작을 수행하는 하드웨어 모듈 내지 프로세서를 의미할 수 있다.
본 발명의 일 실시예에 따른 PD 로서 동작하는 방송 수신 장치 및 그 내부 모듈/블락들은, 전술한 본 발명의 PD 에서 방송 서비스를 제공하는 방법의 실시예들을 수행할 수 있다.
본 발명의 일 실시예에 따른 CD 로서 동작하는 장치를 설명한다. 이 장치는 도면에 도시되지 아니하였다.
본 발명의 일 실시예에 따른 CD 로서 동작하는 장치는 전술한 런쳐, 컴패니언 모듈 및/또는 네트워크 인터페이스를 포함할 수 있다. 각각의 블락, 모듈들은 전술한 바와 같다.
본 발명의 일 실시예에 따른 CD 로서 동작하는 장치 및 그 내부 모듈/블락들은, 전술한 본 발명의 CD 에서 방송 서비스를 제공하는 방법의 실시예들을 수행할 수 있다.
전술한 장치 내부의 블락/모듈 등은 메모리에 저장된 연속된 수행과정들을 실행하는 프로세서들일 수 있고, 실시예에 따라 장치 내/외부에 위치하는 하드웨어 엘레멘트들일 수 있다.
전술한 모듈들은 실시예에 따라 생략되거나, 유사/동일한 동작을 수행하는 다른 모듈에 의해 대체될 수 있다.
도 46은 본 발명의 일 실시예에 따른 특징들에 적용되는 프로토콜을 나타낸 도면이다.
이하 도면에서는 본 발명의 일 실시예에 따른 방송 시스템에서, 컴패니언 디바이스 (Companion Device, CD)를 위한 프로토콜 및 메시지 구조 포맷에 대하여 설명한다. 이하 사용되는 커뮤니케이션이라는 용어는 메인 디바이스 (main device, 또는 수신기, PD)와 컴패니언 디바이스 사이의 커뮤니케이션을 의미한다.
본 발명의 일 실시예에 따르면, 서비스 및 컨텐트 식별 커뮤니케이션을 위하여, HTTP 프로토콜 및/또는 WebSocket 프로토콜이 사용되고, 요구되는 메시지 특성(Required Messaging Property)으로는 Notification이 사용되고, 서브스크립션(Subscription)이 적용될 수 있다.
본 발명의 일 실시예에 따르면, ESG 정보 커뮤니케이션 위하여, HTTP 프로토콜이 사용되고, 요구되는 메시지 특성으로는 Request/Response가 사용되고, 서브스크립션은 적용되지 않을 수 있다.
본 발명의 일 실시예에 따르면, 서비스, 쇼 및 세그먼트 데이터 커뮤니케이션을 위하여, HTTP 프로토콜이 사용되고, 요구되는 메시지 특성으로는 Request/Response가 사용되고, Subscription은 적용되지 않을 수 있다.
본 발명의 일 실시예에 따르면, 미디어 타임라인 커뮤니케이션을 위하여, HTTP 프로토콜 및/또는 WebSocket 프로토콜이 사용되고, 요구되는 메시지 특성으로는 Request/Response 및/또는 Notificlation 이 사용되고, Subscription은 WebSocket 프로토콜이 사용되는 경우 적용되고, HTTP프로토콜이 사용되는 경우 적용되지 않을 수 있다.
본 발명의 일 실시예에 따르면, 미디어 플레이백 스테이트 커뮤니케이션을 위하여, WebSocket 프로토콜이 사용되고, 요구되는 메시지 특성으로는 Notification이 사용되고, Subscription이 적용될 수 있다.
본 발명의 일 실시예에 따르면, 긴급 경보 메시지(Emergency Alert Messages) 커뮤니케이션을 위하여, HTTP 프로토콜(multicast) 및/또는 WebSocket 프로토콜이 사용되고, 요구되는 메시지 특성으로는 Request/Response 및/또는 Notification 이 사용되고, Subscription은 WebSocket 프로토콜이 사용되는 경우 적용되고, HTTP프로토콜이 사용되는 경우 적용되지 않을 수 있다.
도 47은 본 발명의 일 실시예에 따른 HTTP Request를 위한 메시지 구조 포맷 (Message Structure Format)을 나타낸 도면이다.
도 (a)는 HTTP Request를 위한 첫 번째 메시지 구조 포맷을 나타낸다. HTTP Request 메시지는 헤더(header) 및 바디(body)를 포함할 수 있다. 헤더는 HTTP Request를 위한 공통된 URL 정보를 포함하고, 바디는 메시지를 특정 및/또는 식별하는 정보를 포함할 수 있다. 즉, 바디는 CDRequest 엘레먼트를 포함하고, CDRequest 엘레먼트는 메시지(또는 서비스)를 식별 및/또는 특정하는 피처 네임(feature name, 또는 서비스 네임(service name))을 포함하는 Feature 엘레먼트 및/또는 파라미터 정보를 포함하는 Argument 엘레먼트를 포함할 수 있다. Feature 엘레먼트는 피처 네임(또는 서비스 네임)을 필드값으로 갖는다. 예를 들어, 피처 네임은 PlaybackState, ContentIdentification, ESG, DataCommunication, MediaTimeline 및/또는 EAS를 포함할 수 있다.
도(b)는 HTTP Request를 위한 두 번째 메시지 구조 포맷을 나타낸다. 두 번째 메시지 구조 포맷은 URL(URI) 형식으로 웹 서버 측의 리소스(데이터)를 요청하는 HTTP GET 메소드를 사용할 수 있다. 즉, HTTP Request 메시지의 헤더는 URL을 포함하고, URL은 호스트(또는 웹 서버, 방송 수신 장치)의 URL(CDHttpReqURL) 및/또는 메시지(또는 서비스)를 특정(또는 식별)하는 피처 네임(featurename)를 포함할 수 있다. 예를 들어, URL은 “10.192.111.111/mediaplaybackstate”로 표현될 수 있다. 여기서, “10.192.111.111”은 HOST URL(CDHttpReqURL)이고, “mediaplaybackstate”는 메시지를 특정하는 피처 네임(featurename)이다. HOST URL(CDHttpReqURL)은 장치 디스커버리 절차를 통해서 획득될 수 있다.
도(c)는 HTTP Request를 위한 세 번째 메시지 구조 포맷을 나타낸다. 세 번째 메시지 구조 포맷은 HTTP GET 메소드를 사용할 수 있다. 즉, HTTP Request 메시지의 헤더는 URL을 포함하고, URL은 HOST URL(ATSCCS_PDURL) 및/또는 메시지(또는 서비스)를 특정(또는 식별)하는 서비스 네임(ServiceName)를 포함할 수 있다. HOST URL(ATSCCS_PDURL)은 이전의 장치 디스커버리 절차를 통해서 획득될 수 있다. 예를 들어, HOST URL(ATSCCS_PDURL)은 제1 URL을 포함할 수 있다. 서비스 네임(ServiceName)는 긴급 경보 서비스(Emergency Alert Service, EAS)를 지시하는 “atsc3:csservices:eam:1”, 전자 서비스 가이드(Electronic Service Guide, ESG)를 지시하는 “atsc3:csservices:esg:1”, 미디어 플레이백 스테이트(Media Playback State)를 지시하는 “atsc3:csservices:mps:1”, 및/또는 미디어 타임라인(Media Timeline)을 지시하는 “atsc3.csservices.mt.1”를 포함할 수 있다.
예를 들어, HTTP Request 메시지의 헤더는 아래와 같은 형식일 수 있다.
[HTTP Request 메시지의 헤더]
GET /atsc3:csservices:mps:1 HTTP/1.1
HOST 10.192.111.111
여기서, 요청 방법 필드는 URL(URI) 형식으로 웹 서버 측 리소스(데이터)를 요청하는 “GET” 메소드를 지시하고, 요청 URI 필드는 미디어 플레이백 스테이트 메시지를 나타내는 “atsc3:csservices:mps:1”를 지시하고, HTTP 버전 필드는 “1.1”를 지시하고, HOST 필드는 “10.192.111.111”를 지시한다. 컴패니언 디바이스는 “GET” 메소드들 이용하여, 미디어 플레이백 스테이트 메시지를 요청할 수 있다. 요청 URI 필드는 서비스 네임(ServiceName)를 포함할 수 있고, HOST 필드는 HOST URL에 대응되는 값을 포함할 수 있다.
도(d)는 HTTP Request를 위한 네 번째 메시지 구조 포맷을 나타낸다. 네 번째 메시지 구조 포맷은 HTTP GET 메소드를 사용할 수 있다. 즉, HTTP Request 메시지의 헤더는 URL을 포함하고, URL은 호스트 URL(ATSCCS_PDURL), 메시지(또는 서비스)를 특정(또는 식별)하는 서비스 네임(ServiceName), 및/또는 적어도 하나의 파라미터(param1=val1 & param2=val2 & …)를 포함할 수 있다. 호스트 URL(ATSCCS_PDURL)은 이전의 장치 디스커버리 절차를 통해서 획득될 수 있다. 예를 들어, HOST URL(ATSCCS_PDURL)은 제1 URL을 포함할 수 있다. 서비스 네임(ServiceName)는 긴급 경보 서비스(Emergency Alert Service, EAS)를 지시하는 “atsc3:csservices:eam:1”, 전자 서비스 가이드(Electronic Service Guide, ESG)를 지시하는 “atsc3:csservices:esg:1”, 미디어 플레이백 스테이트(Media Playback State)를 지시하는 “atsc3:csservices:mps:1”, 및/또는 미디어 타임라인(Media Timeline)을 지시하는 “atsc3.csservices.mt.1”를 포함할 수 있다. 파라미터(또는 쿼리 파라미터)는 메시지에 대한 추가적인 정보를 지시할 수 있다. 또한, 파라미터는 적어도 하나의 요청을 위한 입력 아규먼트들(input arguments)를 제공할 수 있다.
예를 들어, HTTP Request 메시지의 헤더는 아래와 같은 형식일 수 있다.
[HTTP Request 메시지의 헤더]
GET /atsc3:csservices:esg:1?param1=val1 HTTP/1.1
HOST 10.192.111.111
여기서, 요청 방법 필드는 URL(URI) 형식으로 웹 서버 측 리소스(데이터)를 요청하는 “GET” 메소드를 지시하고, 요청 URI 필드는 전자 서비스 가이드(ESG) 및 파라미터 값(param1=val1)을 나타내는 “atsc3:csservices:esg:1?param1=val1”를 지시하고, HTTP 버전 필드는 “1.1”를 지시하고, 호스트 필드는 “10.192.111.111”를 지시한다. 컴패니언 디바이스는 “GET” 메소드들 이용하여, 전자 서비스 가이드를 요청할 수 있다. 요청 URI 필드는 서비스 네임(ServiceName) 및/또는 파라미터를 포함할 수 있고, HOST 필드는 HOST URL에 대응되는 값을 포함할 수 있다.
도 48은 본 발명의 일 실시예에 따른 HTTP Response 및/또는 WebSocket Response를 위한 메시지 구조 포맷을 나타낸 도면이다.
도 (a)는 본 발명의 일 실시예에 따른 HTTP Response 및/또는 WebSocket Response를 위한 메시지 구조 포맷을 나타낸다. HTTP Response 및/또는 WebSocket Response의 바디는 메시지의 내용을 포함하는 CDResponse 엘레먼트를 포함할 수 있다. CDResponse 엘레먼트는 Feature 엘레먼트 및/또는 피처(Feature, 또는 서비스)를 위한 메시지 콘텐트를 포함할 수 있다. Feature 엘레먼트는 피처 네임(feature name)을 필드 값으로 갖는다.
도 (b)는 본 발명의 다른 일 실시예에 따른 HTTP Response 및/또는 WebSocket Response를 위한 메시지 구조 포맷을 나타낸다. CDResponse 엘레먼트는 피처(Feature, 또는 서비스)를 위한 메시지 컨텐트를 포함하는 FeatureName 엘레먼트를 포함할 수 있다. FeatureName 엘레먼트의 명칭은 해당되는 피처 네임(feature name)에 따라서 달라질 수 있다.
도 (c)는 본 발명의 다른 일 실시예에 따른 HTTP Response 및/또는 WebSocket Response를 위한 세 번째 메시지 구조 포맷을 나타낸다. CDResponse 엘레먼트는 feature 어트리뷰트 및/또는 상기 피처(Feature, 또는 서비스)를 위한 메시지 컨텐트를 포함할 수 있다. feature 어트리뷰트는 피처 네임(feature name)을 필드값으로 갖는다.
도 (d)는 도 (b)의 사용예를 나타낸 도면이다. CDResponse 엘레먼트는 MediaPlaybackState 엘레먼트를 포함할 수 있다. MediaPlaybackState 엘레먼트는 SubscriptionID 엘레먼트, MPState 엘레먼트, MPSpeed 엘레먼트, MediaURL 엘레먼트, MediaID 엘레먼트, PDDevID 엘레먼트 및/또는 PDVersion 엘레먼트를 포함할 수 있다. 여기서, SubscriptionID 엘레먼트, MPState 엘레먼트, MPSpeed 엘레먼트, MediaURL 엘레먼트, MediaID 엘레먼트, PDDevID 엘레먼트 및/또는 PDVersion 엘레먼트는 피처(feature)를 위한 메시지 컨텐트에 해당할 수 있다. SubscriptionID 엘레먼트는 “aaa” 값을 갖고, MPState 엘레먼트는 “PLAYING” 값을 갖고, MPSpeed 엘레먼트는 “1”의 값을 가질 수 있다. 즉 이 사용예에서, HTTP Response 및/또는 WebSocket Response는 MediaPlaybackState라는 feature에 대한 response를 전달하는데, 이 MediaPlaybackState feature의 SubscriptionID는 “aaa”이고, speed는 “1”배속임을 나타낼 수 있다.
도 (e)는 도 (c)의 사용예를 나타낸 도면이다. CDResponse 엘레먼트는 feature 어트리뷰트, SubscriptionID 엘레먼트, MPState 엘레먼트, MPSpeed 엘레먼트, MediaURL 엘레먼트, MediaID 엘레먼트, PDDevID 엘레먼트 및/또는 PDVersion 엘레먼트를 포함할 수 있다. 여기서, SubscriptionID 엘레먼트, MPState 엘레먼트, MPSpeed 엘레먼트, MediaURL 엘레먼트, MediaID 엘레먼트, PDDevID 엘레먼트 및/또는 PDVersion 엘레먼트는 피처(feature)를 위한 메시지 컨텐트에 해당할 수 있다. feature 어트리뷰트는 “PlaybackState” 값을 갖고, SubscriptionID 엘레먼트는 “aaa” 값을 갖고, MPState 엘레먼트는 “PLAYING” 값을 갖고, MPSpeed 엘레먼트는 “1”의 값을 가질 수 있다. 즉 이 사용예에서, HTTP Response 및/또는 WebSocket Response는 PlaybackState라는 feature에 대한 response를 전달하는데, 이 PlaybackState feature의 SubscriptionID는 “aaa”이고, speed는 “1”배속임을 나타낼 수 있다.
도 49는 본 발명의 일 실시예에 따른 WebSocket Subscription를 위한 메시지 구조 포맷을 나타낸 도면이다.
도 (a)는 본 발명의 일 실시예에 따른 WebSocket Subscription Request 메시지 구조 포맷을 나타낸다. CDSubRequest 엘레먼트는 feature 어트리뷰트, SubCallbackURL 엘레먼트, SubDuration 엘레먼트, CDDevID 엘레먼트, CDAppID 엘레먼트 및/또는 CDAppVersion 엘레먼트를 포함할 수 있다. 또한, CDSubRequest 엘레먼트는 MediaURL 엘레먼트 및/또는 MediaID 엘레먼트를 더 포함할 수 있다.
feature 어트리뷰트는 subscription할 피처(feature, 메시지 또는 서비스)의 이름을 나타낸다. SubCallbackURL 엘레먼트는 이 리퀘스트 (request)에 대한 리스판스 (response)로 피처(feature)를 수신하기 위한 Uniform Resource Locator (URL) 정보를 지시할 수 있다. SubDuration 엘레먼트는 피처(feature)의 서브스크립션이 만료되기까지 요청된 기간을 지시할 수 있다. 예를 들어, 요청된 기간은 밀리세컨드(millisecond) 및/또는 초(second) 단위 일 수 있다. SubDuration 엘레먼트의 값이 특정한 값이면(예를 들어, "-1"), 요청된 기간은 무한대의 기간을 지시할 수 있다. CDDevID 엘레먼트는 컴패니언 디바이스를 위한 디바이스 식별자를 지시할 수 있다. CDAppID 엘레먼트는 컴패니언 디바이스를 위한 어플리케이션 식별자를 지시할 수 있다. CDAppVersion 엘레먼트는 컴패니언 디바이스를 위한 어플리케이션의 버전 정보를 지시할 수 있다. MediaURL 엘레먼트는 피처(feature, 예를 들어, 미디어 플레이백 상태 정보)의 서브스크립션이 요청되는 미디어를 위한 URL을 지시할 수 있다. 만약 MediaURL 엘리먼트가 존재하지 않으면, 방송 수신 장치에서 현재 플레이백 되고 있는 미디어에 대한 정보가 선택적으로 요청될 수 있다. MediaID 엘레먼트는 피처(feature, 예를 들어, 미디어 플레이백 상태 정보)의 서브스크립션이 요청되는 미디어를위한 식별자를 지시할 수 있다. 이 식별자는 피처(feature, 예를 들어, 미디어 플레이백 상태 정보)의 서브스크립션이 요청되는, 방송 수신 장치의, 미디어를 고유하게 식별할 수 있다.
도 (b)는 본 발명의 일 실시예에 따른 WebSocket Subscription Response 메시지 구조 포맷을 나타낸다. CDSubResponse 엘레먼트는 feature 어트리뷰트, StatusCode 엘레먼트, StatusString 엘레먼트, SubID 엘레먼트, SubTimeoutDuration 엘레먼트, PDDevID 엘레먼트 및/또는 PDVersion 엘레먼트를 포함할 수 있다. CDSubResponse 엘레먼트는 MediaURL 엘레먼트 및/또는 MediaID 엘레먼트를 더 포함할 수 있다.
feature 어트리뷰트는 subscription할 feature의 이름을 나타낸다. StatusCode 엘레먼트는 요청이 성공적으로 승인되었다는 것을 지시할 수 있다. 예를 들어, StatusCode 엘레먼트가 미리 정해진 값(예를 들어, "aaa")을 가지면, 요청이 성공적으로 승인되었다는 것을 지시할 수 있다. StatusString 엘레먼트는 요청의 성공/실패 지시 상태 문자열(success/ failure indication status string)을 지시할 수 있다. SubID 엘레먼트는 현재의 피처(feature)의 서브스크립션을 위한 서브스크립션 식별자를 지시할 수 있다. SubID 엘레먼트는 컴패니언 디바이스로부터 방송 수신 장치로의 서브스크립션을 고유하게 식별하기 위해서 사용될 수 있다. SubTimeoutDuration 엘레먼트는 피처(feature)의 서브스크립션이 만료되는 실제의 기간(duration)을 지시할 수 있다. 예를 들어, 기간(duration)은 초(second) 단위일 수 있다. SubTimeoutDuration 엘레먼트의 값이 특정한 값이면(예를 들어, "-1"), 서브스크립션이 만료되는 실제의 기간은 무한대의 기간을 지시할 수 있다. MediaURL 엘레먼트는 피처(feature)의 서브스크립션 응답이 전송되는 미디어를 위한 URL을 지시할 수 있다. MediaID 엘레먼트는 피처(feature)의 서브스크립션 응답이 전송되는 미디어를 위한 식별자를 지시할 수 있다. 이 식별자는 피처(feature)의 서브스크립션 응답이 전송되는, 방송 수신 장치의, 미디어를 고유하게 식별할 수 있다. 또한, 이 식별자는 미디어를 전송되는 SubID 엘레먼트에 연관시킬 수 있다. PDDevID 엘레먼트는 방송 수신 장치(Primary Device, PD)를 위한 디바이스 식별자를 지시할 수 있다. PDVersion 엘레먼트는 방송 수신 장치를 위한 버전 정보를 지시할 수 있다.
서브스크립션 요청이 승인되지 않았을 경우에, CDSubResponse 엘레먼트는 StatusCode 엘레먼트 및/또는 StatusString 엘레먼트 중에서 적어도 하나를 포함할 수 있다. StatusCode 엘레먼트는 요청이 승인되지 않은 이유를 설명하는 실패 상태 코드를 지시할 수 있다. 예를 들어, StatusCode 엘레먼트가 미리 정해진 값(예를 들어, "xxx")을 가지면, SubCallbackURL 엘레먼트가 존재하지 않거나 유효하지 않다고 지시할 수 있다. 또한, StatusCode 엘레먼트가 미리 정해진 값(예를 들어, "yyy")을 가지면, 서브스크립션 요청을 승인할 수 없다는 것을 지시할 수 있다. StatusString 엘레먼트는 요청의 성공/실패 지시 상태 문자열(success/ failure indication status string)을 지시할 수 있다.
도 50은 본 발명의 일 실시예에 따른 WebSocket Subscription Renewal을 위한 메시지 구조 포맷을 나타낸 도면이다.
도 (a)는 본 발명의 일 실시예에 따른 WebSocket Subscription Renewal Request 메시지 구조 포맷을 나타낸다. CDSubRequest 엘레먼트는 feature 어트리뷰트, SubID 엘레먼트, SubDuration 엘레먼트, CDDevID 엘레먼트, CDAppID 엘레먼트 및/또는 CDAppVersion 엘레먼트를 포함할 수 있다.
도 (b)는 본 발명의 다른 실시예에 따른 WebSocket Subscription Renewal Request 메시지 구조 포맷을 나타낸다. 도 (a)의 CDSubRequest 엘레먼트는 CDSubRenewRequest 엘레먼트로 대체될 수 있다. CDSubRenewRequest 엘레먼트는 feature 어트리뷰트, SubID 엘레먼트, SubDuration 엘레먼트, CDDevID 엘레먼트, CDAppID 엘레먼트 및/또는 CDAppVersion 엘레먼트를 포함할 수 있다.
도 (c)는 본 발명의 일 실시예에 따른 WebSocket Subscription Renewal Response 메시지 구조 포맷을 나타낸다. CDSubResponse 엘레먼트는 feature 어트리뷰트, StatusCode 엘레먼트, StatusString 엘레먼트, SubID 엘레먼트, SubTimeoutDuration 엘레먼트, PDDevID 엘레먼트 및/또는 PDVersion 엘레먼트를 포함할 수 있다.
도 (d)는 본 발명의 다른 실시예에 따른 WebSocket Subscription Renewal Response 메시지 구조 포맷을 나타낸다. 도 (c)의 CDSubResponse 엘레먼트는 CDSubRenewResponse 엘레먼트로 대체될 수 있다. CDSubRenewResponse 엘레먼트는 feature 어트리뷰트, StatusCode 엘레먼트, StatusString 엘레먼트, SubID 엘레먼트, SubTimeoutDuration 엘레먼트, PDDevID 엘레먼트 및/또는 PDVersion 엘레먼트를 포함할 수 있다.
서브스크립션 요청이 승인되지 않았을 경우에, CDSubResponse 엘레먼트 및/또는 CDSubRenewResponse 엘레먼트는 StatusCode 엘레먼트 및/또는 StatusString 엘레먼트 중에서 적어도 하나를 포함할 수 있다. StatusCode 엘레먼트는 요청이 승인되지 않은 이유를 설명하는 실패 상태 코드를 지시할 수 있다. 예를 들어, StatusCode 엘리먼트가 미리 정해진 값(예를 들어, "xxx")을 가지면, SubscriptionCallbackURL 엘리먼트가 존재하지 않거나 유효하지 않다고 지시할 수 있다. 또한, StatusCode 엘레먼트가 미리 정해진 값(예를 들어, "yyy")을 가지면, 서브스크립션 요청을 승인할 수 없다는 것을 지시할 수 있다. StatusString 엘레먼트는 요청의 성공/실패 지시 상태 문자열(success/ failure indication status string)을 지시할 수 있다.
도 51은 본 발명의 일 실시예에 따른 WebSocket Subscription Cancel을 위한 메시지 구조 포맷을 나타낸 도면이다.
도 (a)는 본 발명의 일 실시예에 따른 WebSocket Subscription Cancel Request 메시지 구조 포맷을 나타낸다. CDSubRequest 엘레먼트는 feature 어트리뷰트, SubID 엘레먼트, CDDevID 엘레먼트, CDAppID 엘레먼트 및/또는 CDAppVersion 엘레먼트를 포함할 수 있다.
도 (b)는 본 발명의 다른 실시예에 따른 WebSocket Subscription Cancel Request 메시지 구조 포맷을 나타낸다. 도 (a)의 CDSubRequest 엘레먼트는 CDSubCancelRequest 엘레먼트로 대체될 수 있다. CDSubCancelRequest 엘레먼트는 feature 어트리뷰트, SubID 엘레먼트, CDDevID 엘레먼트, CDAppID 엘레먼트 및/또는 CDAppVersion 엘레먼트를 포함할 수 있다.
도 (c)는 본 발명의 일 실시예에 따른 WebSocket Subscription Cancel Response 메시지 구조 포맷을 나타낸다. CDSubResponse 엘레먼트는 feature 어트리뷰트, StatusCode 엘레먼트 및/또는 StatusString 엘레먼트를 포함할 수 있다.
도 (d)는 본 발명의 다른 실시예에 따른 WebSocket Subscription Cancel Response 메시지 구조 포맷을 나타낸다. 도 (c)의 CDSubResponse 엘레먼트는 CDSubCancelResponse 엘레먼트로 대체될 수 있다. CDSubCancelResponse 엘레먼트는 feature 어트리뷰트, StatusCode 엘레먼트 및/또는 StatusString 엘레먼트를 포함할 수 있다.
도 52는 본 발명의 일 실시예에 따른 HTTP Response를 위한 메시지 구조 포맷을 나타낸 도면이다.
도 (a)는 XML 형식의 HTTP Response를 위한 메시지 구조 포맷의 바디를 나타낸 도면이다. HTTP Response를 위한 메시지를 포함하는 ATSCCSMessage 엘레먼트는 서비스의 이름을 지시하는 ServiceName 엘레먼트 및/또는 서비스(또는 메시지) 바디의 데이터를 포함하는 MessageBody 엘레먼트를 포함할 수 있다.
ServiceName 엘리먼트는 긴급 경보 서비스(Emergency Alert Service, EAS)를 나타내는 “atsc3:csservices:eam:1”, 전자 서비스 가이드(Electronic Service Guide, ESG)를 나타내는 “atsc3:csservices:esg:1”, 미디어 플레이백 스테이트(Media Playback State)를 나타내는 “atsc3:csservices:mps:1”, 및/또는 미디어 타임라인(Media Timeline)을 나타내는 “atsc3.csservices.mt.1”를 지시할 수 있다.
도 (b)는 XML 형식의 HTTP Response를 위한 메시지 구조 포맷의 실시예를 나타낸 도면이다. 방송 수신 장치(PD)가 컴패니언 디바이스(CD)로부터 HTTP GET Request를 수신하면, 방송 수신 장치는 HTTP Response 를 컴패니언 디바이스로 전달할 수 있다. HTTP Response는 헤더 및 바디를 포함할 수 있다. 헤더는 HTTP 1.1의 헤더 구조를 모두 포함할 수 있다. 헤더는 HTTP 버전을 지시하는 version 필드, 요청 성공 여부에 대한 코드를 지시하는 status code 필드, 및/또는 결과 상태를 설명하는 status phrase 필드를 포함할 수 있다. 예를 들어, “HTTP/1.1 200 OK”은 HTTP 프로토콜 버전이 “1.1”이고, 상태 코드 “200”(요청 성공)이 “OK”라는 것을 나타낸다. 바디는 전술한 ATSCCSMessage 엘레먼트를 포함할 수 있다. 예를 들어, ServiceName 엘리먼트는 미디어 플레이백 스테이트(Media Playback State)를 나타내는 “atsc3:csservices:mps:1”를 지시할 수 있다. MessageBody 엘레먼트는 미디어 콘텐트 정보를 포함할 수 있다.
도 (c)는 JSON 형식의 HTTP Response를 위한 메시지 구조 포맷의 바디를 나타낸 도면이다. 도 (d)는 JSON 형식의 HTTP Response를 위한 메시지 구조 포맷의 실시예를 나타낸 도면이다. 도 (c) 및 도 (d)의 내용은, 형식이 변경된 것을 제외하고, 구체적인 내용은 도 (a) 및 도 (b)의 내용과 동일하다.
도 53은 본 발명의 일 실시예에 따른 웹소켓 메시지를 위한 메시지 구조 포맷을 나타낸 도면이다.
도 (a)는 XML 형식의 웹소켓 메시지 포맷을 나타낸다. 도 (a)의 웹소켓 메시지 포맷은 모든 웹소켓에 적용될 수 있는 포맷이다. 웹소켓 메시지는 메시지를 포함하는 ATSCCS_WSMessage 엘레먼트를 포함할 수 있다. ATSCCS_WSMessage 엘레먼트는 StatusCode 엘레먼트, StatusString 엘레먼트, ServiceName 엘레먼트, MessageType 엘레먼트, SubID 엘레먼트, SubDuration 엘레먼트, 및/또는 MessageBody 엘레먼트 중에서 적어도 하나를 포함할 수 있다.
StatusCode 엘레먼트는 요청의 상태를 지시하는 성공/실패 지시 상태 코드(success/ failure indication status code)를 지시할 수 있다.
StatusString 엘레먼트는 요청의 성공/실패 지시 상태 문자열(success/ failure indication status string)을 지시할 수 있다.
ServiceName 엘레먼트는 서비스의 이름을 지시할 수 있다. 예를 들어, ServiceName 엘리먼트는 긴급 경보 서비스(Emergency Alert Service, EAS)를 나타내는 “atsc3:csservices:eam:1”, 전자 서비스 가이드(Electronic Service Guide, ESG)를 나타내는 “atsc3:csservices:esg:1”, 미디어 플레이백 스테이트(Media Playback State)를 나타내는 “atsc3:csservices:mps:1”, 및/또는 미디어 타임라인(Media Timeline)을 나타내는 “atsc3.csservices.mt.1”를 지시할 수 있다.
MessageType 엘레먼트는 메시지의 타입을 식별할 수 있다. 예를 들어, 메시지의 타입은 서브스크립션의 요청을 지시하는 서브스크립션 요청(sub), 기존의 서브스크립션의 갱신을 지시하는 서브스크립션 갱신 요청(Renew), 기존의 서브스크립션의 취소를 지시하는 서브스크립션 취소 요청(Cancel), 서브스크립션 요청(sub)에 대한 응답을 지시하는 서브스크립션 응답(SubRsp), 서브스크립션 갱신 요청(Renew)에 대한 응답을 지시하는 서브스크립션 갱신 응답(RenewRsp), 서브스크립션 취소 요청(Cancle)에 대한 응답을 지시하는 서브스크립션 취소 응답(CancelRsp), 메시지의 노티피케이션(notification)을 지시하는 노티피케이션(Notify), 및/또는 노티피케이션(Notify)에 대한 응답을 지시하는 노티피케이션 응답(NotifyRsp) 을 포함할 수 있다.
SubID 엘레먼트는 메시지 플로우(message flow)를 위한 서브스크립션 식별자를 지시할 수 있다.
SubDuration 엘레먼트는 서브스크립션의 액티브 기간(active duration)을 지시할 수 있다.
MessageBody 엘레먼트는 메시지 바디 데이터를 포함할 수 있다.
MessageType 엘레먼트가 서브스크립션 응답(SubRsp), 서브스크립션 갱신 응답(RenewRsp), 서브스크립션 취소 응답(CancelRsp), 및 노티피케이션 응답(NotifyRsp) 중에서 하나를 지시하는 경우에만, ATSCCS_WSMessage 엘레먼트는 StatusCode 엘레먼트 및/또는 StatusString 엘레먼트를 포함할 수 있다.
MessageType 엘레먼트가 서브스크립션 요청(sub)을 지시하는 경우를 제외하고, 모든 ATSCCS_WSMessage 엘레먼트는 SubID 엘레먼트를 포함할 수 있다. 왜냐하면, SubID 엘레먼트는 서브스크립션 응답(SubRsp) 타입의 메시지와 함께 할당되기 때문이다.
MessageType 엘레먼트가 노티피케이션(Notify) 및/또는 노티피케이션 응답(NotifyRsp)인 경우를 제외하고, 모든 ATSCCS_WSMessage 엘레먼트는 SubDuration 엘레먼트를 포함할 수 있다.
MessageType 엘레먼트가 노티피케이션(Notify)을 지시하는 경우에만, ATSCCS_WSMessage 엘레먼트는 MessageBody 엘레먼트를 포함할 수 있다.
상기의 내용은, 이전의 디스커버리 절차에서 주어진 URL(예를 들어, ATSCCS_PDWSURL)을 통하여, 웹소켓 연결이 수립된 것을 전제로한다.
도 (b)는 JSON 형식의 웹소켓 메시지 포맷을 나타낸다. 도 (b)의 웹소켓 메시지 포맷은 도 (a)의 웹소켓 메시지 포맷과 비교하여 형식만 다르고 내용은 동일하다.
도 54는 본 발명의 일 실시예에 따른 XML 형식의 ATSCCS_WSMessage 엘레먼트를 나타낸 도면이다.
도 (a)는 메시지의 타입이 서브스크립션 요청(sub)인 ATSCCS_WSMessage 엘레먼트를 나타낸다. ATSCCS_WSMessage 엘레먼트는 ServiceName 엘레먼트, MessageType 엘레먼트, 및/또는 SubDuration 엘레먼트를 포함할 수 있다.
도 (b)는 메시지의 타입이 서브스크립션 응답(SubRsp)인 ATSCCS_WSMessage 엘레먼트를 나타낸다. ATSCCS_WSMessage 엘레먼트는 StatusCode 엘레먼트, StatusString 엘레먼트, ServiceName 엘레먼트, MessageType 엘레먼트, SubID 엘레먼트, 및/또는 SubDuration 엘레먼트를 포함할 수 있다.
도 (c)는 메시지의 타입이 서브스크립션 갱신 요청(Renew)인 ATSCCS_WSMessage 엘레먼트를 나타낸다. ATSCCS_WSMessage 엘레먼트는 ServiceName 엘레먼트, MessageType 엘레먼트, SubID 엘레먼트, 및/또는 SubDuration 엘레먼트를 포함할 수 있다.
도 (d)는 메시지의 타입이 서브스크립션 갱신 응답(RenewRsp)인 ATSCCS_WSMessage 엘레먼트를 나타낸다. ATSCCS_WSMessage 엘레먼트는 StatusCode 엘레먼트, StatusString 엘레먼트, ServiceName 엘레먼트, MessageType 엘레먼트, SubID 엘레먼트, 및/또는 SubDuration 엘레먼트를 포함할 수 있다.
도 (e)는 메시지의 타입이 노티피케이션(Notify)인 ATSCCS_WSMessage 엘레먼트를 나타낸다. ATSCCS_WSMessage 엘레먼트는 ServiceName 엘레먼트, MessageType 엘레먼트, SubID 엘레먼트, 및/또는 MesseageBody 엘레먼트를 포함할 수 있다.
도 (f)는 메시지의 타입이 노티피케이션 응답(NotifyRsp)인 ATSCCS_WSMessage 엘레먼트를 나타낸다. ATSCCS_WSMessage 엘레먼트는 StatusCode 엘레먼트, StatusString 엘레먼트, ServiceName 엘레먼트, MessageType 엘레먼트, 및/또는 SubID 엘레먼트를 포함할 수 있다.
도 55는 본 발명의 일 실시예에 따른 JSON 형식의 ATSCCS_WSMessage 엘레먼트를 나타낸 도면이다.
JSON 형식의 ATSCCS_WSMessage 엘레먼트는 전술한 XML 형식의 ATSCCS_WSMessage 엘레먼트와 형식만 다르고 내용은 동일하다.
도 56은 본 발명의 일 실시예에 따른 웹소켓 서브스크립션 메시지 포맷 및 웹소켓 노티피케이션 메시지 포맷을 나타낸 도면이다.
본 도면에서는 웹소켓 메시지 포맷을 서브스크립션을 위한 웹소켓 서브스크립션 메시지 포맷 및 노티피케이션을 위한 웹소켓 노티피케이션 메시지 포맷으로 구별하여 설명한다.
도 (a)는 본 발명의 일 실시예에 따른 웹소켓 서브스크립션 메시지 포맷을 나타낸다.
웹소켓 서브스크립션 메시지는 서브스크립션을 위한 메시지를 포함하는 ATSCCS_WSSubMessage 엘레먼트를 포함할 수 있다. ATSCCS_WSSubMessage 엘레먼트는 ServiceName 엘레먼트, MessageType 엘레먼트, SubID 엘레먼트, 및/또는 SubDuration 엘레먼트를 포함할 수 있다.
MessageType 엘레먼트는 메시지의 타입을 지시할 수 있다. 예를 들어, 메시지의 타입은 서브스크립션의 요청을 지시하는 서브스크립션 요청(sub), 기존의 서브스크립션의 갱신을 지시하는 서브스크립션 갱신 요청(Renew), 기존의 서브스크립션의 취소를 지시하는 서브스크립션 취소 요청(Cancel), 서브스크립션 요청(sub)에 대한 응답을 지시하는 서브스크립션 응답(SubRsp), 서브스크립션 갱신 요청(Renew)에 대한 응답을 지시하는 서브스크립션 갱신 응답(RenewRsp), 및/또는 서브스크립션 취소 요청(Cancle)에 대한 응답을 지시하는 서브스크립션 취소 응답(CancelRsp) 을 포함할 수 있다.
MessageType 엘레먼트가 서브스크립션 요청(sub)을 지시하는 경우를 제외하고, 모든 ATSCCS_WSSubMessage 엘레먼트는 SubID 엘레먼트를 포함할 수 있다. 왜냐하면, SubID 엘레먼트는 서브스크립션 응답(SubRsp) 타입의 메시지와 함께 할당되기 때문이다.
MessageType 엘레먼트가 서브스크립션 취소 요청(Cancel) 및/또는 서브스크립션 취소 응답(CancelRsp) 인 경우를 제외하고, 모든 ATSCCS_WSSubMessage 엘레먼트는 SubDuration 엘레먼트를 포함할 수 있다.
상기의 내용은, 이전의 디스커버리 절차에서 주어진 URL(예를 들어, ATSCCS_PDWSURL)을 통하여, 웹소켓 연결이 수립된 것을 전제로한다.
도 (b)는 본 발명의 일 실시예에 따른 웹소켓 노티피케이션 메시지 포맷을 나타낸다.
웹소켓 노티피케이션 메시지는 노티피케이션을 위한 메시지를 포함하는 ATSCCS_WSMessage 엘레먼트를 포함할 수 있다. ATSCCS_WSMessage 엘레먼트는 ServiceName 엘레먼트, SubID 엘레먼트, 및/또는 MessageBody 엘레먼트를 포함할 수 있다.
웹소켓 노티피케이션 메시지 포맷은 HTTP 응답 메시지 포맷과 유사할 수 있다.
상기의 내용은, 이전의 디스커버리 절차에서 주어진 URL(예를 들어, ATSCCS_PDWSURL)을 통하여, 웹소켓 연결이 수립된 것을 전제로한다.
도 57은 본 발명의 일 실시예에 따른 JSON 형식의 ATSCCS_WSSubMessage 엘레먼트 및 ATSCCS_WSMessage 엘레먼트를 나타낸 도면이다.
도 (a)는 메시지의 타입이 서브스크립션 요청(sub)인 ATSCCS_WSSubMessage 엘레먼트를 나타낸다. ATSCCS_WSSubMessage 엘레먼트는 ServiceName 엘레먼트, MessageType 엘레먼트, 및/또는 SubDuration 엘레먼트를 포함할 수 있다.
도 (b)는 메시지의 타입이 서브스크립션 응답(SubRsp)인 ATSCCS_WSSubMessage 엘레먼트를 나타낸다. ATSCCS_WSSubMessage 엘레먼트는 ServiceName 엘레먼트, MessageType 엘레먼트, SubID 엘레먼트, 및/또는 SubDuration 엘레먼트를 포함할 수 있다.
도 (c)는 메시지의 타입이 서브스크립션 갱신 요청(Renew)인 ATSCCS_WSSubMessage 엘레먼트를 나타낸다. ATSCCS_WSSubMessage 엘레먼트는 ServiceName 엘레먼트, MessageType 엘레먼트, SubID 엘레먼트, 및/또는 SubDuration 엘레먼트를 포함할 수 있다.
도 (d)는 메시지의 타입이 서브스크립션 갱신 응답(RenewRsp)인 ATSCCS_WSSubMessage 엘레먼트를 나타낸다. ATSCCS_WSSubMessage 엘레먼트는 ServiceName 엘레먼트, MessageType 엘레먼트, SubID 엘레먼트, 및/또는 SubDuration 엘레먼트를 포함할 수 있다.
도 (e)는 노티피케이션을 위한 메시지를 포함하는 ATSCCS_WSMessage 엘레먼트를 나타낸다. ATSCCS_WSMessage 엘레먼트는 ServiceName 엘레먼트, SubID 엘레먼트, 및/또는 MesseageBody 엘레먼트를 포함할 수 있다.
도 (f)는 메시지의 타입이 서브스크립션 취소 요청(Cancle)인 ATSCCS_WSSubMessage 엘레먼트를 나타낸다. ATSCCS_WSSubMessage 엘레먼트는 ServiceName 엘레먼트, MessageType 엘레먼트, 및/또는 SubID 엘레먼트를 포함할 수 있다.
도 (g)는 메시지의 타입이 서브스크립션 취소 응답(CancelRsp)인 ATSCCS_WSSubMessage 엘레먼트를 나타낸다. ATSCCS_WSSubMessage 엘레먼트는 ServiceName 엘레먼트, MessageType 엘레먼트, 및/또는 SubID 엘레먼트를 포함할 수 있다.
도 58은 본 발명의 다른 실시예에 따른 웹소켓 서브스크립션 메시지 포맷 및 웹소켓 노티피케이션 메시지 포맷을 나타낸 도면이다.
본 도면에서는 웹소켓 메시지 포맷을 서브스크립션을 위한 웹소켓 서브스크립션 메시지 포맷 및 노티피케이션을 위한 웹소켓 노티피케이션 메시지 포맷으로 구별하여 설명한다.
도 (a)는 본 발명의 일 실시예에 따른 웹소켓 서브스크립션 메시지 포맷을 나타낸다. 방송 수신 장치(PD)와 컴패니언 디바이스(CD) 사이에서 전달되는 서브스크립션과 관련된 메시지는 웹소켓 서브스크립션 메시지 포맷(또는 구조)를 사용한다.
웹소켓 서브스크립션 메시지는 서브스크립션을 위한 메시지를 포함하는 ATSCCS_WSMessage 엘레먼트를 포함할 수 있다. ATSCCS_WSMessage 엘레먼트는 ServiceName 엘레먼트, MessageType 엘레먼트, RespCode 엘레먼트, 및/또는 SubDuration 엘레먼트를 포함할 수 있다. ATSCCS_WSMessage 엘레먼트는 MessageVersion 엘리먼트를 더 포함할 수 있다.
ServiceName 엘레먼트는 서비스를 식별하는 서비스의 이름을 지시할 수 있다. 예를 들어, ServiceName 엘리먼트는 긴급 경보 서비스(Emergency Alert Service, EAS)를 나타내는 “atsc3:csservices:eam:1”, 전자 서비스 가이드(Electronic Service Guide, ESG)를 나타내는 “atsc3:csservices:esg:1”, 미디어 플레이백 스테이트(Media Playback State)를 나타내는 “atsc3:csservices:mps:1”, 및/또는 미디어 타임라인(Media Timeline)을 나타내는 “atsc3.csservices.mt.1”를 지시할 수 있다. 방송 수신 장치(PD) 및/또는 컴패니언 디바이스(CD)는 전술한 서비스의 이름을 지시하지 않는 ServiceName 엘레먼트를 포함하는 메시지는 무시할 수 있다.
MessageType 엘레먼트는 메시지의 타입을 식별할 수 있다. 메시지의 타입들은 두 개의 카테고리로 분류될 수 있다. 메시지의 타입들은 요청 메시지 타입들 및 응답 메시지 타입들로 분류될 수있다. MessageType 엘레먼트에 의하여 식별되는 메시지의 타입에 의존하여, 메시지 구조의 나머지 부분은 다른 타입의 메시지 엘리먼트들을 포함할 수 있다.
요청 메시지 타입은 컴패니언 디바이스로부터 방송 수신 장치로 전달되는 메시지의 타입을 식별한다. 요청 메시지 타입은 서브스크립션을 요청하기 위한 메시지를 지시하는 서브스크립션 요청(sub), 서브스크립션을 취소하기 위한 메시지를 지시하는 서브스크립션 취소 요청(Cancel), 및/또는 서브스크립션을 갱신하기 위한 메시지를 지시하는 서브스크립션 갱신 요청(Renew)을 포함할 수 있다.
응답 메시지 타입은 방송 수신 장치로부터 컴패니언 디바이스로 전달되는 메시지의 타입을 식별한다. 응답 메시지 타입은 서브스크립션 요청(sub)에 대한 응답 메시지를 지시하는 서브스크립션 응답(SubRsp), 서브스크립션 취소 요청(Cancel)에 대한 응답 메시지를 지시하는 서브스크립션 취소 응답(CancelRsp) 및/또는 서브스크립션 갱신 요청(Renew)에 대한 응답 메시지를 지시하는 서브스크립션 갱신 응답(RenewRsp)을 포함할 수 있다.
RespCode 엘레먼트는 해당하는 요청에 대한 성공 상태 코드 또는 실패 상태 코드를 지시할 수 있다. RespCode 엘레먼트는 전술한 StatusCode 엘레먼트와 같은 역할을 할 수 있다.
SubDuration 엘레먼트는 서브스크립션 듀레이션(Subscription duration)을 지시할 수 있다. 메시지가 컴패니언 스크린에서 방송 수신 장치로 전달되면, SubDuration 엘레먼트는 요청되는 서브스크립션 듀레이션을 지시한다. 메시지가 방송 수신 장치에서 컴패니언 디바이스로 전달되면, SubDuration 엘레먼트는 서브스크립션이 액티브한 듀레이션을 지시한다.
MessageVersion 엘리먼트는 서브스크립션 메시지 구조(또는 포맷)의 버전을 지시할 수 있다. MessageVersion 엘리먼트의 상위 6 비트는 메이저 버전을 지시하고, MessageVersion 엘리먼트의 상위 2 비트는 마이너 버전을 지시할 수 있다.
MessageType 엘레먼트가 서브스크립션 응답(SubRsp), 서브스크립션 갱신 응답(RenewRsp), 및 서브스크립션 취소 응답(CancelRsp) 중에서 하나를 지시하는 경우에만, ATSCCS_WSMessage 엘레먼트는 RespCode 엘레먼트를 포함할 수 있다.
MessageType 엘레먼트가 서브스크립션 취소 요청(Cancel) 및/또는 서브스크립션 취소 응답(CancelRsp) 인 경우를 제외하고, 모든 ATSCCS_WSMessage 엘레먼트는 SubDuration 엘레먼트를 포함할 수 있다.
상기의 내용은, 이전의 디스커버리 절차에서 주어진 URL(예를 들어, ATSCCS_PDWSURL)을 통하여, 웹소켓 연결이 수립된 것을 전제로한다.
방송 수신 장치(PD)에서 컴패니언 디바이스(CD)로 전달되는 서브스크립션 관련 메시지들과 컴패니언 디바이스에서 방송 수신 장치로 전달되는 서브스크립션 관련 메시지들은 JSON 포맷일 수도 있고, XML 포맷일 수도 있다.
도 (b)는 본 발명의 일 실시예에 따른 웹소켓 노티피케이션 메시지 포맷을 나타낸다. 방송 수신 장치(PD)에서 컴패니언 디바이스(CD)로 전달되는 노티피케이션과 관련된 메시지는 웹소켓 노티피케이션 메시지 포맷(또는 구조)를 사용한다.
웹소켓 노티피케이션 메시지는 노티피케이션을 위한 메시지를 포함하는 ATSCCS_Message 엘레먼트를 포함할 수 있다. ATSCCS_Message 엘레먼트는 ServiceName 엘레먼트 및/또는 MessageBody 엘레먼트를 포함할 수 있다. 또한, ATSCCS_Message 엘레먼트는 MessageVersion 엘레먼트를 더 포함할 수 있다.
ServiceName 엘레먼트는 서비스를 식별하는 서비스의 이름을 지시할 수 있다.
MessageBody 엘레먼트는 메시지 스페시픽 데이터 엘리먼트들(Message specific data elements)을 포함할 수 있다. 예를 들어, MessageBody 엘레먼트는 서비스 및 콘텐트 식별 통신을 위한 메시지 콘텐트(Message Content for Service and Content Identification Communication), 현재 서비스 정보를 위한 메시지 콘텐트(Message Content for Current Service Information), ESG 통신을 위한 메시지 콘텐트(Message Content for ESG Communication), 서비스, 쇼, 및 세그먼트 데이터 통신을 위한 메시지 콘텐트(Message Content for Service, Show and Segment Data Communication), 미디어 타임라인 통신을 위한 메시지 콘텐트(Message Content for Media Timeline Communication), 미디어 플레이백 상태 통신을 위한 메시지 콘텐트(Message Content for Media Playback State Communication), 및/또는 긴급 경보 메시지들 통신을 위한 메시지 콘텐트(Message Content for Emergency Alert Messages Communication) 중에서 적어도 하나를 포함할 수 있다.
MessageVersion 엘레먼트는 노티피케이션 메시지 구조(notification message structure)의 버전을 지시할 수 있다. MessageVersion 엘리먼트의 상위 6 비트는 메이저 버전을 지시하고, MessageVersion 엘리먼트의 상위 2 비트는 마이너 버전을 지시할 수 있다
웹소켓 노티피케이션 메시지 포맷은 HTTP 응답 메시지 포맷과 유사할 수 있다.
상기의 내용은, 이전의 디스커버리 절차에서 주어진 URL(예를 들어, ATSCCS_PDWSURL)을 통하여, 웹소켓 연결이 수립된 것을 전제로한다.
웹소켓 노티피케이션 메시지들은 오직 방송 수신 장치(PD)에서 컴패니언 디바이스(CD)로 전달될 수 있다. 웹소켓 노티피케이션 메시지들은 JSON 포맷일 수도 있고, XML 포맷일 수도 있다.
도 59는 본 발명의 일 실시예에 따른 JSON 형식의 ATSCCS_WSMessage 엘레먼트 및 ATSCCS_Message 엘레먼트를 나타낸 도면이다.
도 (a)는 메시지의 타입이 서브스크립션 요청(sub)인 ATSCCS_WSMessage 엘레먼트를 나타낸다. ATSCCS_WSMessage 엘레먼트는 ServiceName 엘레먼트, MessageType 엘레먼트, 및/또는 SubDuration 엘레먼트를 포함할 수 있다.
도 (b)는 메시지의 타입이 서브스크립션 응답(SubRsp)인 ATSCCS_WSMessage 엘레먼트를 나타낸다. ATSCCS_WSMessage 엘레먼트는 ServiceName 엘레먼트, MessageType 엘레먼트, RespCode 엘레먼트, 및/또는 SubDuration 엘레먼트를 포함할 수 있다.
도 (c)는 메시지의 타입이 서브스크립션 갱신 요청(Renew)인 ATSCCS_WSMessage 엘레먼트를 나타낸다. ATSCCS_WSMessage 엘레먼트는 ServiceName 엘레먼트, MessageType 엘레먼트, 및/또는 SubDuration 엘레먼트를 포함할 수 있다.
도 (d)는 메시지의 타입이 서브스크립션 갱신 응답(RenewRsp)인 ATSCCS_WSMessage 엘레먼트를 나타낸다. ATSCCS_WSMessage 엘레먼트는 ServiceName 엘레먼트, MessageType 엘레먼트, RespCode 엘레먼트, 및/또는 SubDuration 엘레먼트를 포함할 수 있다.
도 (e)는 노티피케이션을 위한 메시지를 포함하는 ATSCCS_Message 엘레먼트를 나타낸다. ATSCCS_Message 엘레먼트는 ServiceName 엘레먼트, 및/또는 MesseageBody 엘레먼트를 포함할 수 있다.
도 (f)는 메시지의 타입이 서브스크립션 취소 요청(Cancle)인 ATSCCS_WSMessage 엘레먼트를 나타낸다. ATSCCS_WSMessage 엘레먼트는 ServiceName 엘레먼트 및/또는 MessageType 엘레먼트를 포함할 수 있다.
도 (g)는 메시지의 타입이 서브스크립션 취소 응답(CancelRsp)인 ATSCCS_WSMessage 엘레먼트를 나타낸다. ATSCCS_WSMessage 엘레먼트는 ServiceName 엘레먼트, MessageType 엘레먼트, 및/또는 RespCode 엘레먼트를 포함할 수 있다.
도 60은 본 발명의 일 실시예에 따른 미디어 플레이백 상태 통신을 위한 웹소켓 서브스크립션 메시지 포맷 및 웹소켓 노티피케이션 메시지 포맷을 나타낸 도면이다.
도 (a)는 미디어 플레이백 상태 통신을 위한 웹소켓 서브스크립션 메시지 포맷을 나타낸다. 웹소켓 서브스크립션 메시지는 서브스크립션을 위한 메시지를 포함하는 ATSCCS_WSMessage 엘레먼트를 포함할 수 있다. ATSCCS_WSMessage 엘레먼트는 ServiceName 엘레먼트, MessageType 엘레먼트, RespCode 엘레먼트, 및/또는 SubDuration 엘레먼트를 포함할 수 있다. ATSCCS_WSMessage 엘레먼트는 MessageVersion 엘리먼트를 더 포함할 수 있다.
ServiceName 엘레먼트는 미디어 플레이백 상태(Media Playback State)를 나타내는 “atsc3:csservices:mps:1” 를 지시할 수 있다.
그외, 도 (a)의 ATSCCS_WSMessage 엘레먼트에 대한 구체적인 내용은 전술한 ATSCCS_WSMessage 엘레먼트의 내용을 모두 포함할 수 있다.
도 (b)는 미디어 플레이백 상태 통신을 위한 웹소켓 노티피케이션 메시지 포맷을 나타낸다.
웹소켓 노티피케이션 메시지는 노티피케이션을 위한 메시지를 포함하는 ATSCCS_Message 엘레먼트를 포함할 수 있다. ATSCCS_Message 엘레먼트는 ServiceName 엘레먼트 및/또는 MessageBody 엘레먼트를 포함할 수 있다.
ServiceName 엘레먼트는 미디어 플레이백 상태(Media Playback State)를 나타내는 “atsc3:csservices:mps:1” 를 지시할 수 있다.
MessageBody 엘레먼트는 MPState 엘레먼트, MPSpeed 엘레먼트, MediaURL 엘레먼트, MediaID 엘레먼트, PDDevID 엘레먼트, 및/또는 PDVersion 엘레먼트 중에서 적어도 하나를 포함할 수 있다.
MPState 엘레먼트는 (SubID 엘리먼트에 의하여 식별된) 미디어 플레이백 상태 정보 서브스트립션과 관련되는 mediaURL 엘리먼트 및/또는 mediaID 엘리먼트(또는 mediaURL 엘리먼트 및/또는 mediaID 엘리먼트에 의해서 식별되는 미디어)를 위한 현재의 미디어 플레이백 상태를 지시할 수 있다. 예를 들어, 미디어 플레이백 상태는 "재생(PLAYING)", "일시중지(PAUSED)", "중단(STOPPED)", "앞으로 감기(FFORWARD)", "뒤로 감기(FBACKWARD)", "버퍼링(BUFERRING)", 및/또는 "언노운(UNKNOWN)" 중에서 적어도 하나를 포함할 수 있다.
"중단(STOPPED)" 상태는 미디어 플레이백 상태 정보와 관련되는 mediaURL 엘리먼트 및/또는 mediaID 엘리먼트(또는 mediaURL 엘리먼트 및/또는 mediaID 엘리먼트에 의해서 식별되는 미디어)를 위한 미디어 스트림의 마지막을 지시할 수 있다.
MPSpeed 엘레먼트는 정상 속도(normal speed)와 비교하여(relative to) 미디어 (플레이백) 상태의 현재의 속도를 지시할 수 있다. MPSpeed 엘레먼트는 MPState 엘레먼트 엘레먼트가 "재생(PLAYING)"을 지시하는 경우에 한하여 존재할 수 있다.
MPSpeed 엘리먼트의 값은 정수 값을 가질 수 있다. 예를 들어, 정상 속도(normal speed)에 대한 MPSpeed 엘리먼트의 값은 "1"일 수 있다. MPState 엘리먼트가 "재생(PLAYING)", "앞으로 감기(FFORWARD)", 및/또는 "뒤로 감기(FBACKWARD)" 중에서 하나를 지시할 때, MPSpeed 엘리먼트는 적용될 수 있다.
MPState 엘리먼트가 "앞으로 감기(FFORWARD)" 및/또는 "뒤로 감기(FBACKWARD)"를 지시하면, MPSpeed 엘리먼트는 정상 속도(normal speed)와 비교하여(relative to) 미디어 타임라인이 앞으로 이동(moving forward) 및/또는 뒤로 이동(moving backward)하는 속도를 지시할 수 있다.
MPState 엘리먼트가 "재생(PLAYING)"을 지시하면, MPSpeed 엘리먼트는 정상 속도(normal speed)와 비교하여(relative to) 미디어 플레이백이 진행되고 있는 속도를 지시할 수 있다.
보다 구체적으로 설명하면, 양의 값을 가지는 MPSpeed 엘리먼트(Positive MPSpeed values)는 "포워드 플레이백(forward playback)"를 지시할 수 있다. "포워드 플레이백(forward playback)"는 미디어 타임 라인 포지션이 월-클럭 시간(wall-clock time)이 증가하는 만큼 증가한다는 것을 의미할 수 있다.
또한, 음의 값을 가지는 MPSpeed 엘리먼트(Negative MPSpeed values)는 "백워드 플레이백(backward playback)"를 지시할 수 있다. "백워드 플레이백(backward playback)"는 미디어 타임 라인 포지션이 월-클럭 시간(wall-clock time)이 감소하는 만큼 감소한다는 것을 의미할 수 있다.
MPSpeed 엘리먼트의 값이 "1"이면, MPSpeed 엘리먼트는 정상 속도(normal speed)로 "포워드 플레이백(forward playback)"을 지시할 수 있다. 정상 속도(normal speed)로 "포워드 플레이백(forward playback)"의 경우에, 미디어 타임라인은 월-클럭 시간(wall-clock time)과 같은 양의 시간만큼 증가할 수 있다. MPSpeed 엘리먼트의 값이 "-1"이면, MPSpeed 엘리먼트는 정상 속도(normal speed)로 "백워드 플레이백(backward playback)"을 지시할 수 있다. 정상 속도(normal speed)로 "백워드 플레이백(backward playback)"의 경우에, 미디어 타임라인은 월-클럭 시간(wall-clock time)과 같은 양의 시간만큼 감소할 수 있다.
MPSpeed 엘리먼트의 값이 "X"이면, MPSpeed 엘리먼트는 정상 속도(normal speed)의 "X" 배의 속도로 플레이백(playback)을 지시할 수 있다. 정상 속도(normal speed)의 "X" 배의 속도로 플레이백(playback)의 경우에, 미디어 타임라인은 월-클럭 시간(wall-clock time)의 "X" 배의 속도량 만큼 증가(양의 "X" 값에 대하여)하거나 감소(음의 "X" 값에 대하여)할 수 있다. 예를 들어, "X"는 "0" 및/또는 "1"이 아닐 수 있다.
현재의 MPState 엘리먼트가 "재생(PLAYING)"을 지시하면, "0"의 값을 가지는 MPSpeed 엘리먼트는 "언노운 플레이백 속도(UNKNOWN playback speed)를 지시하도록 예약될 수 있다.
MPState 엘리먼트가 "재생(PLAYING)" 이외의 상태를 지시하면, MPSpeed 엘리먼트는 "0"의 값을 가질 수 있다.
MPState 엘리먼트가 "재생(PLAYING)"을 지시하면, 존재하지 않는 MPSpeed 엘리먼트는 "1"의 값을 가지는 것으로 추정될 수 있다.
MPState 엘리먼트가 "재생(PLAYING)" 이외의 상태를 지시하면, 존재하지 않는 MPSpeed 엘리먼트는 "0"의 값을 가지는 것으로 추정될 수 있다.
MPSpeed 엘리먼트는 방송 수신 장치(PD)가 트릭 플레이를 포함하는 PVR(Personal Video Recorder) 기능을 지원할 때 존재할 수 있다.
MediaURL 엘레먼트는 미디어 플레이백 상태 정보 서브스크립션이 요청되는 미디어를 위한 URL을 지시할 수 있다. 만약 MediaURL 엘리먼트가 존재하지 않으면, 방송 수신 장치에서 현재 플레이백 되고 있는 미디어에 대한 정보가 선택적으로 통지될 수 있다.
MediaID 엘레먼트는 미디어 플레이백 상태 정보 서브스크립션이 요청되는 미디어를 위한 식별자를 지시할 수 있다. 이 식별자는 미디어 플레이백 상태 정보 서브스크립션이 요청되는, 방송 수신 장치의, 미디어를 고유하게 식별할 수 있다.
예를 들어, "CURRENT"의 값을 가지는 MediaID 엘리먼트는 방송 수신 장치에서 현재 플레이백되는 메인 미디어에 대한 정보가 요청된다는 것을 지시할 수 있다.
PDDevID 엘레먼트는 방송 수신 장치를 위한 디바이스 식별자를 지시할 수 있다.
PDVersion 엘레먼트는 방송 수신 장치를 위한 버전 정보를 지시할 수 있다.
추가적으로, 컴패니언 디바이스(CD)는 노티피케이션 메시지에 대한 응답 메시지를 방송 수신 장치로 전송할 수 있다. 예를 들어, 방송 수신 장치로부터 미디어 플레이백 상태 정보 노티피케이션 메시지를 수신한 때, 컴패니언 디바이스는 미디어 플레이백 상태 정보 노티피케이션 메시지에 대한 응답 메시지를 방송 수신 장치로 전송할 수 있다.
미디어 플레이백 상태 정보 노티피케이션 메시지에 대한 응답 메시지는 StatusCode 엘리먼트, StatusString 엘리먼트, 및/또는, SubscriptionID 엘리먼트 중에서 적어도 하나를 포함할 수 있다.
StatusCode 엘리먼트는 노티피케이션 메시지의 수신 상태를 지시하는 성공/실패 상태 코드(success/ failure status code)를 지시할 수 있다. 예를 들어, StatusCode 엘리먼트가 미리 정해진 값(예를 들어, "aaa")을 가지면, 노티피케이션 메시지가 성공적으로 수신되었다고 지시할 수 있다. 또한, StatusCode 엘리먼트가 미리 정해진 값(예를 들어, "yyy")을 가지면, 노티피케이션 메시지를 수신할 수 없다는 것을 지시할 수 있다.
StatusString 엘리먼트는 요청의 성공/실패 지시 상태 문자열(success/ failure indication status string)을 지시할 수 있다.
SubscriptionID 엘리먼트는 현재의 미디어 플레이백 상태 정보 서브스크립션을 위한 서브스크립션 식별자를 지시할 수 있다. SubscriptionID 엘리먼트는 컴패니언 스크린 디바이스로부터 방송 수신 장치로의 서브스크립션을 고유하게 식별하기 위해서 사용될 수 있다.
도 61은 본 발명의 일 실시예에 따른 방송 신호 수신 방법을 나타내는 도면이다.
방송 신호 수신 장치(이하, 수신기)는, 수신부를 이용하여, 방송 신호를 수신할 수 있다(CS610100).
수신부는 브로드캐스트 인터페이스, 수신 모듈, 및/또는 튜너를 포함할 수 있다. 방송 신호는 서비스를 위한 서비스 데이터 및 시그널링 데이터를 포함할 수 있다. 시그널링 데이터는 피지컬 레이어 시그널링(physical layer signaling), 링크 레이어 시그널링, 로우 레벨 시그널링(Low Level Signaling), 및/또는 서비스 레이어 시그널링(Service Layer Signaling)을 포함할 수 있다.
수신기는, 네트워크 인터페이스를 이용하여, CD 어플리케이션과 디스커버리 과정을 수행할 수 있다(CS610200).
네트워크 인터페이스는 컴패니언 모듈을 포함할 수 있고, 컴패니언 디바이스와 통신을 할 수 있는 모든 장치를 포함할 수 있다. 또한, 디스커버리 과정은 전술한 디스커버리와 관련되는 모든 동작을 포함할 수 있다.
수신기는, 네트워크 인터페이스를 이용하여, 컴패니언 디바이스의 디바이스 디스커버리에 대한 응답으로 제1 URL 정보 및 제2 URL 정보를 상기 컴패니언 디바이스의 CD 어플리케이션(companion device application)으로 전달할 수 있다.
여기서, 상기 제1 URL 정보는 프라이머리 디바이스의 웹 서버 엔드포인트(또는 웹 서버의 엔드포인트)로 사용될 수 있다. 또한, 상기 웹 서버 엔드포인트는 비동기 커뮤니케이션(asynchronous communication)을 위하여 HTTP 프로토콜에서 사용될 수 있다. 또한, 상기 제2 URL 정보는 상기 프라이머리 디바이스의 웹소켓 서버 엔드포인트(또는 웹소켓 서버의 엔드포인트)로 사용될 수 있다. 또한, 상기 웹소켓 서버 엔드포인트는 동기 커뮤니케이션(synchronous communication)을 위하여 웹소켓 프로토콜에서 사용될 수 있다. 또한, 상기 제1 URL 정보는 상기 제2 URL 정보의 전달을 위하여 상기 프라이머리 디바이스 또는 상기 컴패니언 디바이스에 의하여 사용될 수 있다.
수신기는, 웹소켓 서버를 이용하여, 상기 제2 URL을 기초로 웹소켓 서버와 상기 CD 어플리케이션 사이의 웹소켓 연결을 구축(establish)할 수 있다(CS610300).
수신기는, 네트워크 인터페이스를 이용하여, 메시지를 CD 어플리케이션으로 전달할 수 있다(CS610400).
여기서, 상기 네트워크 인터페이스는 메시지를 이용하여 상기 CD 어플리케이션과 커뮤니케이션할 수 있다. 또한, 상기 메시지는 상기 웹소켓 프로토콜을 위한 웹소켓 메시지를 포함할 수 있다. 또한, 상기 웹소켓 메시지는 서브스크립션을 위한 웹소켓 서브스크립션 메시지 및 노티피케이션을 위한 웹소켓 노티피케이션 메시지를 포함할 수 있다. 예를 들어, 웹소켓 서브스크립션 메시지는 ATSCCS_WSMessage 엘레먼트를 포함하고, 웹소켓 노티피케이션 메시지 ATSCCS_Message 엘레먼트를 포함할 수 있다. 또한, 상기 웹소켓 서브스크립션 메시지는 상기 프라이머리 디바이스와 상기 컴패니언 디바이스 사이에서 양방향으로 전달될 수 있다. 또한, 상기 웹소켓 노티피케이션 메시지는 상기 프라이머리 디바이스에서 상기 컴패니언 디바이스로 단방향으로 전달될 수 있다.
또한, 상기 메시지는 상기 HTTP 프로토콜을 위한 HTTP 메시지를 더 포함할 수 있다. 또한, 상기 HTTP 메시지는 요청을 위한 HTTP 요청 메시지 및 응답을 위한 HTTP 응답 메시지를 포함할 수 있다. 예를 들어, HTTP 요청 메시지는 CDRequest 엘레먼트를 포함할 수 있고, HTTP 응답 메시지는 CDResponse 엘레먼트를 포함할 수 있다. 또한, 상기 HTTP 요청 메시지의 헤더는 Request URL 정보를 포함할 수 있다. 또한, 상기 Request URL 정보는 상기 제1 URL 정보, 서비스의 이름을 지시하는 ServiceName 정보, 및 적어도 하나의 파라미터를 포함할 수 있다. 예를 들어, 제1 URL 정보는 호스트 URL 및/또는 ATSCCS_PDURL을 포함할 수 있다. 또한, 상기 HTTP 응답 메시지의 헤더는 상기 요청의 성공 여부를 지시하는 status code 정보를 포함할 수 있다. 또한, 상기 HTTP 응답 메시지의 바디는 상기 서비스의 이름을 지시하는 ServiceName 정보 및 메시지 바디의 데이터를 포함하는 MessageBody 정보를 포함할 수 있다. 또한, 상기 MessageBody 정보는 서비스 정보를 위한 메시지 콘텐트(Message Content for Service Information), ESG 통신을 위한 메시지 콘텐트(Message Content for ESG Communication), 서비스, 쇼, 및 세그먼트 데이터 통신을 위한 메시지 콘텐트(Message Content for Service, Show and Segment Data Communication), 및 미디어 타임라인 통신을 위한 메시지 콘텐트(Message Content for Media Timeline Communication) 중에서 하나를 포함할 수 있다.
또한, 상기 웹소켓 서브스크립션 메시지는 상기 서비스를 식별하는 ServiceName 정보, 해당하는 요청에 대한 성공 상태 코드 또는 실패 상태 코드를 지시하는 RespCode 정보, 및 서브스크립션의 듀레이션을 지시하는 SubDuration 정보 중에서 적어도 하나를 포함할 수 있다.
또한, 상기 웹소켓 서브스크립션 메시지는 상기 웹소켓 서브스크립션 메시지의 타입을 식별하는 MessageType 정보를 더 포함할 수 있다. 또한, 상기 타입은 상기 컴패니언 디바이스에서 상기 프라이머리 디바이스로 요청을 위한 요청 메시지 타입 및 상기 프라이머리 디바이스에서 상기 컴패니언 디바이스로 응답을 위한 응답 메시지 타입을 포함할 수 있다. 또한, 상기 MessageType 정보에 의하여 식별되는 상기 웹소켓 서브스크립션 메시지의 타입에 의존하여, 상기 웹소켓 서브스크립션 메시지에 포함되는 메시지 정보들이 결정될 수 있다.
또한, 상기 요청 메시지 타입은 상기 서브스크립션을 요청하기 위한 메시지를 지시하는 서브스크립션 요청, 상기 서브스크립션을 취소하기 위한 메시지를 지시하는 서브스크립션 취소 요청, 및 상기 서브스크립션을 갱신하기 위한 메시지를 지시하는 서브스크립션 갱신 요청을 포함할 수 있다. 또한, 상기 응답 메시지 타입은 상기 서브스크립션 요청에 대한 응답 메시지를 지시하는 서브스크립션 응답, 상기 서브스크립션 취소 요청에 대한 응답 메시지를 지시하는 서브스크립션 취소 응답, 및 상기 서브스크립션 갱신 요청에 대한 응답 메시지를 지시하는 서브스크립션 갱신 응답을 포함할 수 있다.
또한, 상기 웹소켓 노티피케이션 메시지는 상기 서비스를 식별하는 ServiceName 정보 및 메시지 스페시픽 데이터(message specific data)를 포함하는 MessageBody 정보를 포함할 수 있다. 또한, MessageBody 정보는 서비스 및 콘텐트 식별 통신을 위한 메시지 콘텐트(Message Content for Service and Content Identification Communication), 미디어 타임라인 통신을 위한 메시지 콘텐트(Message Content for Media Timeline Communication), 및 미디어 플레이백 상태 통신을 위한 메시지 콘텐트(Message Content for Media Playback State Communication) 중에서 하나를 포함하는 할 수 있다.
또한, 상기 ServiceName 정보는 전자 서비스 가이드(Electronic Service Guide, ESG)를 나타내는 “atsc3.csservices.esg.1”, 미디어 플레이백 스테이트(Media Playback State)를 나타내는 “atsc3.csservices.mps.1”, 및 미디어 타임라인(Media Timeline)을 나타내는 “atsc3.csservices.mt.1” 중에서 하나를 지시할 수 있다.
도 62은 본 발명의 일 실시예에 따른 방송 신호 송신 방법을 나타내는 도면이다.
방송 신호 송신 장치는, 제어부를 이용하여, 서비스를 위한 서비스 데이터를 생성할 수 있다(CS620100).
방송 신호 송신 장치는, 제어부를 이용하여, 서비스를 위한 시그널링 데이터를 생성할 수 있다(CS620200).
방송 신호 송신 장치는, 송신부를 이용하여, 상기 서비스 데이터 및 상기 시그널링 데이터를 포함하는 방송 신호를 전송할 수 있다(CS620300).
서비스 데이터 및 시그널링 데이터에 대한 내용은 전술한 서비스 데이터 및 시그널링 데이터의 내용을 모두 포함할 수 있다. 또한, 방송 신호 송신 장치는 방송 신호 수신 장치가 서비스 데이터 및 시그널링 데이터를 수신할 수 있도록하는 모든 동작을 수행할 수 있다.
모듈 또는 유닛은 메모리(또는 저장 유닛)에 저장된 연속된 수행과정들을 실행하는 프로세서들일 수 있다. 전술한 실시예에 기술된 각 단계들은 하드웨어/프로세서들에 의해 수행될 수 있다. 전술한 실시예에 기술된 각 모듈/블락/유닛들은 하드웨어/프로세서로서 동작할 수 있다. 또한, 본 발명이 제시하는 방법들은 코드로서 실행될 수 있다. 이 코드는 프로세서가 읽을 수 있는 저장매체에 쓰여질 수 있고, 따라서 장치(apparatus)가 제공하는 프로세서에 의해 읽혀질 수 있다.
설명의 편의를 위하여 각 도면을 나누어 설명하였으나, 각 도면에 서술되어 있는 실시 예들을 병합하여 새로운 실시 예를 구현하도록 설계하는 것도 가능하다. 그리고, 통상의 기술자의 필요에 따라, 이전에 설명된 실시 예들을 실행하기 위한 프로그램이 기록되어 있는 컴퓨터에서 판독 가능한 기록 매체를 설계하는 것도 본 발명의 권리범위에 속한다.
본 발명에 따른 장치 및 방법은 상술한 바와 같이 설명된 실시 예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상술한 실시 예들은 다양한 변형이 이루어질 수 있도록 각 실시 예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
한편, 본 발명이 제안하는 방법을 네트워크 디바이스에 구비된, 프로세서가 읽을 수 있는 기록매체에, 프로세서가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 프로세서가 읽을 수 있는 기록매체는 프로세서에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 프로세서가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한, 인터넷을 통한 전송 등과 같은 캐리어 웨이브의 형태로 구현되는 것도 포함한다. 또한, 프로세서가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 프로세서가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해돼서는 안 될 것이다.
그리고, 당해 명세서에서는 물건 발명과 방법 발명이 모두 설명되고 있으며, 필요에 따라 양 발명의 설명은 보충적으로 적용될 수가 있다.
본 발명의 사상이나 범위를 벗어나지 않고 본 발명에서 다양한 변경 및 변형이 가능함은 당업자에게 이해된다. 따라서, 본 발명은 첨부된 청구항 및 그 동등 범위 내에서 제공되는 본 발명의 변경 및 변형을 포함하는 것으로 의도된다.
본 명세서에서 장치 및 방법 발명이 모두 언급되고, 장치 및 방법 발명 모두의 설명은 서로 보완하여 적용될 수 있다.
발명의 실시를 위한 형태
다양한 실시예가 본 발명을 실시하기 위한 최선의 형태에서 설명되었다.
본 발명은 일련의 방송 신호 제공 분야에서 이용된다.
본 발명의 사상이나 범위를 벗어나지 않고 본 발명에서 다양한 변경 및 변형이 가능함은 당업자에게 자명하다. 따라서, 본 발명은 첨부된 청구항 및 그 동등 범위 내에서 제공되는 본 발명의 변경 및 변형을 포함하는 것으로 의도된다.

Claims (14)

  1. 컴패니언 디바이스의 디바이스 디스커버리에 대한 응답으로 제1 URL 정보 및 제2 URL 정보를 상기 컴패니언 디바이스의 CD 어플리케이션(companion device application)으로 전달하는 단계,
    여기서, 상기 제1 URL 정보는 프라이머리 디바이스의 웹 서버 엔드포인트로 사용되고,
    여기서, 상기 웹 서버 엔드포인트는 비동기 커뮤니케이션(asynchronous communication)을 위하여 HTTP 프로토콜에서 사용되고,
    여기서, 상기 제2 URL 정보는 상기 프라이머리 디바이스의 웹소켓 서버 엔드포인트로 사용되고,
    여기서, 상기 웹소켓 서버 엔드포인트는 동기 커뮤니케이션(synchronous communication)을 위하여 웹소켓 프로토콜에서 사용되고,
    여기서, 상기 제1 URL 정보는 상기 제2 URL 정보의 전달을 위하여 상기 프라이머리 디바이스 또는 상기 컴패니언 디바이스에 의하여 사용되고,
    상기 제2 URL을 기초로 웹소켓 서버와 상기 CD 어플리케이션 사이의 웹소켓 연결을 구축하는(establish) 단계;
    메시지를 이용하여 상기 CD 어플리케이션과 커뮤니케이션하는 단계를 포함하고,
    여기서, 상기 메시지는 상기 웹소켓 프로토콜을 위한 웹소켓 메시지를 포함하고,
    여기서, 상기 웹소켓 메시지는 서브스크립션을 위한 웹소켓 서브스크립션 메시지 및 노티피케이션을 위한 웹소켓 노티피케이션 메시지를 포함하고,
    여기서, 상기 웹소켓 서브스크립션 메시지는 상기 프라이머리 디바이스와 상기 컴패니언 디바이스 사이에서 양방향으로 전달되고,
    여기서, 상기 웹소켓 노티피케이션 메시지는 상기 프라이머리 디바이스에서 상기 컴패니언 디바이스로 단방향으로 전달되는 것을 특징으로 하는 방송 신호 수신 방법.
  2. 제1항에서,
    여기서, 상기 메시지는 상기 HTTP 프로토콜을 위한 HTTP 메시지를 더 포함하고,
    여기서, 상기 HTTP 메시지는 요청을 위한 HTTP 요청 메시지 및 응답을 위한 HTTP 응답 메시지를 포함하고,
    여기서, 상기 HTTP 요청 메시지의 헤더는 Request URL 정보를 포함하고,
    여기서, 상기 Request URL 정보는 상기 제1 URL 정보, 서비스의 이름을 지시하는 ServiceName 정보, 및 적어도 하나의 파라미터를 포함하고,
    여기서, 상기 HTTP 응답 메시지의 헤더는 상기 요청의 성공 여부를 지시하는 status code 정보를 포함하고,
    여기서, 상기 HTTP 응답 메시지의 바디는 상기 서비스의 이름을 지시하는 ServiceName 정보 및 메시지 바디의 데이터를 포함하는 MessageBody 정보를 포함하고,
    여기서, 상기 MessageBody 정보는 서비스 정보를 위한 메시지 콘텐트(Message Content for Service Information), ESG 통신을 위한 메시지 콘텐트(Message Content for ESG Communication), 서비스, 쇼, 및 세그먼트 데이터 통신을 위한 메시지 콘텐트(Message Content for Service, Show and Segment Data Communication), 및 미디어 타임라인 통신을 위한 메시지 콘텐트(Message Content for Media Timeline Communication) 중에서 하나를 포함하는 것을 특징으로 하는 방송 신호 수신 방법.
  3. 제2항에서,
    여기서, 상기 웹소켓 서브스크립션 메시지는 상기 서비스를 식별하는 ServiceName 정보, 해당하는 요청에 대한 성공 상태 코드 또는 실패 상태 코드를 지시하는 RespCode 정보, 및 서브스크립션의 듀레이션을 지시하는 SubDuration 정보 중에서 적어도 하나를 포함하는 방송 신호 수신 방법.
  4. 제3항에서,
    여기서, 상기 웹소켓 서브스크립션 메시지는 상기 웹소켓 서브스크립션 메시지의 타입을 식별하는 MessageType 정보를 더 포함하고,
    여기서, 상기 타입은 상기 컴패니언 디바이스에서 상기 프라이머리 디바이스로 요청을 위한 요청 메시지 타입 및 상기 프라이머리 디바이스에서 상기 컴패니언 디바이스로 응답을 위한 응답 메시지 타입을 포함하고,
    여기서, 상기 MessageType 정보에 의하여 식별되는 상기 웹소켓 서브스크립션 메시지의 타입에 의존하여, 상기 웹소켓 서브스크립션 메시지에 포함되는 메시지 정보들이 결정되는 것을 특징으로 하는 방송 신호 수신 방법.
  5. 제4항에서,
    여기서, 상기 요청 메시지 타입은 상기 서브스크립션을 요청하기 위한 메시지를 지시하는 서브스크립션 요청, 상기 서브스크립션을 취소하기 위한 메시지를 지시하는 서브스크립션 취소 요청, 및 상기 서브스크립션을 갱신하기 위한 메시지를 지시하는 서브스크립션 갱신 요청을 포함하고,
    여기서, 상기 응답 메시지 타입은 상기 서브스크립션 요청에 대한 응답 메시지를 지시하는 서브스크립션 응답, 상기 서브스크립션 취소 요청에 대한 응답 메시지를 지시하는 서브스크립션 취소 응답, 및 상기 서브스크립션 갱신 요청에 대한 응답 메시지를 지시하는 서브스크립션 갱신 응답을 포함하는 것을 특징으로 하는 방송 신호 수신 방법.
  6. 제5항에서,
    여기서, 상기 웹소켓 노티피케이션 메시지는 상기 서비스를 식별하는 ServiceName 정보 및 메시지 스페시픽 데이터(message specific data)를 포함하는 MessageBody 정보를 포함하고,
    여기서, MessageBody 정보는 서비스 및 콘텐트 식별 통신을 위한 메시지 콘텐트(Message Content for Service and Content Identification Communication), 미디어 타임라인 통신을 위한 메시지 콘텐트(Message Content for Media Timeline Communication), 및 미디어 플레이백 상태 통신을 위한 메시지 콘텐트(Message Content for Media Playback State Communication) 중에서 하나를 포함하는 것을 특징으로 하는 방송 신호 수신 방법.
  7. 제6항에서,
    여기서, 상기 ServiceName 정보는 전자 서비스 가이드(Electronic Service Guide, ESG)를 나타내는 “atsc3.csservices.esg.1”, 미디어 플레이백 스테이트(Media Playback State)를 나타내는 “atsc3.csservices.mps.1”, 및 미디어 타임라인(Media Timeline)을 나타내는 “atsc3.csservices.mt.1” 중에서 하나를 지시하는 것을 특징으로 하는 방송 신호 수신 방법.
  8. 컴패니언 디바이스의 디바이스 디스커버리에 대한 응답으로 제1 URL 정보 및 제2 URL 정보를 상기 컴패니언 디바이스의 CD 어플리케이션(companion device application)으로 전달하는 네트워크 인터페이스,
    여기서, 상기 제1 URL 정보는 프라이머리 디바이스의 웹 서버 엔드포인트로 사용되고,
    여기서, 상기 웹 서버 엔드포인트는 비동기 커뮤니케이션(asynchronous communication)을 위하여 HTTP 프로토콜에서 사용되고,
    여기서, 상기 제2 URL 정보는 상기 프라이머리 디바이스의 웹소켓 서버 엔드포인트로 사용되고,
    여기서, 상기 웹소켓 서버 엔드포인트는 동기 커뮤니케이션(synchronous communication)을 위하여 웹소켓 프로토콜에서 사용되고,
    여기서, 상기 제1 URL 정보는 상기 제2 URL 정보의 전달을 위하여 상기 프라이머리 디바이스 또는 상기 컴패니언 디바이스에 의하여 사용되고,
    상기 제2 URL을 기초로 웹소켓 서버와 상기 CD 어플리케이션 사이의 웹소켓 연결을 구축하는(establish) 웹소켓 서버;
    여기서, 상기 네트워크 인터페이스는 메시지를 이용하여 상기 CD 어플리케이션과 커뮤니케이션하고,
    여기서, 상기 메시지는 상기 웹소켓 프로토콜을 위한 웹소켓 메시지를 포함하고,
    여기서, 상기 웹소켓 메시지는 서브스크립션을 위한 웹소켓 서브스크립션 메시지 및 노티피케이션을 위한 웹소켓 노티피케이션 메시지를 포함하고,
    여기서, 상기 웹소켓 서브스크립션 메시지는 상기 프라이머리 디바이스와 상기 컴패니언 디바이스 사이에서 양방향으로 전달되고,
    여기서, 상기 웹소켓 노티피케이션 메시지는 상기 프라이머리 디바이스에서 상기 컴패니언 디바이스로 단방향으로 전달되는 것을 특징으로 하는 방송 신호 수신 장치.
  9. 제8항에서,
    여기서, 상기 메시지는 상기 HTTP 프로토콜을 위한 HTTP 메시지를 더 포함하고,
    여기서, 상기 HTTP 메시지는 요청을 위한 HTTP 요청 메시지 및 응답을 위한 HTTP 응답 메시지를 포함하고,
    여기서, 상기 HTTP 요청 메시지의 헤더는 Request URL 정보를 포함하고,
    여기서, 상기 Request URL 정보는 상기 제1 URL 정보, 서비스의 이름을 지시하는 ServiceName 정보, 및 적어도 하나의 파라미터를 포함하고,
    여기서, 상기 HTTP 응답 메시지의 헤더는 상기 요청의 성공 여부를 지시하는 status code 정보를 포함하고,
    여기서, 상기 HTTP 응답 메시지의 바디는 상기 서비스의 이름을 지시하는 ServiceName 정보 및 메시지 바디의 데이터를 포함하는 MessageBody 정보를 포함하고,
    여기서, 상기 MessageBody 정보는 서비스 정보를 위한 메시지 콘텐트(Message Content for Service Information), ESG 통신을 위한 메시지 콘텐트(Message Content for ESG Communication), 서비스, 쇼, 및 세그먼트 데이터 통신을 위한 메시지 콘텐트(Message Content for Service, Show and Segment Data Communication), 및 미디어 타임라인 통신을 위한 메시지 콘텐트(Message Content for Media Timeline Communication) 중에서 하나를 포함하는 것을 특징으로 하는 방송 신호 수신 장치.
  10. 제9항에서,
    여기서, 상기 웹소켓 서브스크립션 메시지는 상기 서비스를 식별하는 ServiceName 정보, 해당하는 요청에 대한 성공 상태 코드 또는 실패 상태 코드를 지시하는 RespCode 정보, 및 서브스크립션의 듀레이션을 지시하는 SubDuration 정보 중에서 적어도 하나를 포함하는 방송 신호 수신 장치.
  11. 제10항에서,
    여기서, 상기 웹소켓 서브스크립션 메시지는 상기 웹소켓 서브스크립션 메시지의 타입을 식별하는 MessageType 정보를 더 포함하고,
    여기서, 상기 타입은 상기 컴패니언 디바이스에서 상기 프라이머리 디바이스로 요청을 위한 요청 메시지 타입 및 상기 프라이머리 디바이스에서 상기 컴패니언 디바이스로 응답을 위한 응답 메시지 타입을 포함하고,
    여기서, 상기 MessageType 정보에 의하여 식별되는 상기 웹소켓 서브스크립션 메시지의 타입에 의존하여, 상기 웹소켓 서브스크립션 메시지에 포함되는 메시지 정보들이 결정되는 것을 특징으로 하는 방송 신호 수신 장치.
  12. 제11항에서,
    여기서, 상기 요청 메시지 타입은 상기 서브스크립션을 요청하기 위한 메시지를 지시하는 서브스크립션 요청, 상기 서브스크립션을 취소하기 위한 메시지를 지시하는 서브스크립션 취소 요청, 및 상기 서브스크립션을 갱신하기 위한 메시지를 지시하는 서브스크립션 갱신 요청을 포함하고,
    여기서, 상기 응답 메시지 타입은 상기 서브스크립션 요청에 대한 응답 메시지를 지시하는 서브스크립션 응답, 상기 서브스크립션 취소 요청에 대한 응답 메시지를 지시하는 서브스크립션 취소 응답, 및 상기 서브스크립션 갱신 요청에 대한 응답 메시지를 지시하는 서브스크립션 갱신 응답을 포함하는 것을 특징으로 하는 방송 신호 수신 장치.
  13. 제12항에서,
    여기서, 상기 웹소켓 노티피케이션 메시지는 상기 서비스를 식별하는 ServiceName 정보 및 메시지 스페시픽 데이터(message specific data)를 포함하는 MessageBody 정보를 포함하고,
    여기서, MessageBody 정보는 서비스 및 콘텐트 식별 통신을 위한 메시지 콘텐트(Message Content for Service and Content Identification Communication), 미디어 타임라인 통신을 위한 메시지 콘텐트(Message Content for Media Timeline Communication), 및 미디어 플레이백 상태 통신을 위한 메시지 콘텐트(Message Content for Media Playback State Communication) 중에서 하나를 포함하는 것을 특징으로 하는 방송 신호 수신 장치.
  14. 제13항에서,
    여기서, 상기 ServiceName 정보는 전자 서비스 가이드(Electronic Service Guide, ESG)를 나타내는 “atsc3.csservices.esg.1”, 미디어 플레이백 스테이트(Media Playback State)를 나타내는 “atsc3.csservices.mps.1”, 및 미디어 타임라인(Media Timeline)을 나타내는 “atsc3.csservices.mt.1” 중에서 하나를 지시하는 것을 특징으로 하는 방송 신호 수신 장치.
KR1020177033465A 2015-05-26 2016-05-25 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법 KR20180001559A (ko)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US201562166156P 2015-05-26 2015-05-26
US62/166,156 2015-05-26
US201562167286P 2015-05-28 2015-05-28
US62/167,286 2015-05-28
US201562169556P 2015-06-02 2015-06-02
US62/169,556 2015-06-02
US201562170145P 2015-06-03 2015-06-03
US62/170,145 2015-06-03
US201562180065P 2015-06-16 2015-06-16
US62/180,065 2015-06-16
PCT/KR2016/005537 WO2016190662A1 (ko) 2015-05-26 2016-05-25 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법

Publications (1)

Publication Number Publication Date
KR20180001559A true KR20180001559A (ko) 2018-01-04

Family

ID=57394175

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177033465A KR20180001559A (ko) 2015-05-26 2016-05-25 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법

Country Status (4)

Country Link
US (3) US10362371B2 (ko)
KR (1) KR20180001559A (ko)
CA (3) CA3166548A1 (ko)
WO (1) WO2016190662A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11622139B2 (en) 2019-03-08 2023-04-04 Samsung Electronics Co., Ltd. Broadcast receiving device and operating method thereof

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016190662A1 (ko) * 2015-05-26 2016-12-01 엘지전자 주식회사 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법
WO2017002371A1 (en) * 2015-07-02 2017-01-05 Sharp Kabushiki Kaisha Systems and methods for current service information
US10284228B2 (en) * 2016-04-26 2019-05-07 Electronics And Telecommunications Research Institute Apparatus for time interleaving and method using the same
US20210289256A1 (en) * 2018-07-26 2021-09-16 Sony Corporation Information processing device, information processing method, and program
US11412442B2 (en) * 2020-04-30 2022-08-09 Cisco Technology, Inc. Predictive service advertisements by service discovery gateway

Family Cites Families (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991799A (en) * 1996-12-20 1999-11-23 Liberate Technologies Information retrieval system using an internet multiplexer to focus user selection
AR020608A1 (es) * 1998-07-17 2002-05-22 United Video Properties Inc Un metodo y una disposicion para suministrar a un usuario acceso remoto a una guia de programacion interactiva por un enlace de acceso remoto
TW463503B (en) * 1998-08-26 2001-11-11 United Video Properties Inc Television chat system
TW447221B (en) * 1998-08-26 2001-07-21 United Video Properties Inc Television message system
JP4218185B2 (ja) * 2000-05-23 2009-02-04 ソニー株式会社 番組録画・再生システム及び番組録画・再生方法、並びに番組録画・再生装置
CA2421775C (en) * 2000-09-08 2013-03-12 Kargo Inc. Video interaction
US8205237B2 (en) * 2000-09-14 2012-06-19 Cox Ingemar J Identifying works, using a sub-linear time search, such as an approximate nearest neighbor search, for initiating a work-based action, such as an action on the internet
US7849207B2 (en) * 2001-01-18 2010-12-07 Yahoo! Inc. Method and system for managing digital content, including streaming media
US20080059532A1 (en) * 2001-01-18 2008-03-06 Kazmi Syed N Method and system for managing digital content, including streaming media
JP4765182B2 (ja) * 2001-01-19 2011-09-07 ソニー株式会社 双方向テレビ通信方法および、双方向テレビ通信用クライアント装置
US7725918B2 (en) * 2001-08-03 2010-05-25 Ericsson Television Inc. Interactive television with embedded universal time codes
US20030061206A1 (en) * 2001-09-27 2003-03-27 Richard Qian Personalized content delivery and media consumption
ATE312381T1 (de) * 2002-02-06 2005-12-15 Koninkl Philips Electronics Nv Schnelles hash-basiertes metadatenretrieval für multimediaobjekte
US7987491B2 (en) * 2002-05-10 2011-07-26 Richard Reisman Method and apparatus for browsing using alternative linkbases
JP2004005309A (ja) * 2002-06-03 2004-01-08 Matsushita Electric Ind Co Ltd コンテンツ配信システムおよびそれに関する方法または記録媒体またはプログラム
CN100426861C (zh) * 2002-07-01 2008-10-15 微软公司 对嵌于媒介流中的重复对象提供用户控制的系统和方法
US7908625B2 (en) * 2002-10-02 2011-03-15 Robertson Neil C Networked multimedia system
US7506355B2 (en) * 2002-11-22 2009-03-17 Microsoft Corporation Tracking end-user content viewing and navigation
US20060031889A1 (en) * 2002-12-11 2006-02-09 Bennett James D Video processing system with simultaneous multiple outputs each with unique formats
WO2004068320A2 (en) * 2003-01-27 2004-08-12 Vincent Wen-Jeng Lue Method and apparatus for adapting web contents to different display area dimensions
JP3941700B2 (ja) * 2003-01-28 2007-07-04 ソニー株式会社 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
CN101189873A (zh) * 2005-04-05 2008-05-28 汤姆森许可贸易公司 用于多居住单元的多媒体内容分发系统和方法
JP2009524273A (ja) * 2005-11-29 2009-06-25 グーグル・インコーポレーテッド 放送メディア内の反復コンテンツの検出
US20070157281A1 (en) * 2005-12-23 2007-07-05 United Video Properties, Inc. Interactive media guidance system having multiple devices
US7734579B2 (en) * 2006-02-08 2010-06-08 At&T Intellectual Property I, L.P. Processing program content material
US8712563B2 (en) * 2006-10-24 2014-04-29 Slacker, Inc. Method and apparatus for interactive distribution of digital content
US8955030B2 (en) * 2007-03-23 2015-02-10 Wi-Lan, Inc. System and method for personal content access
JP2009017259A (ja) * 2007-07-05 2009-01-22 Sony Corp 電子機器、コンテンツ再生方法及びプログラム
US20090119708A1 (en) * 2007-11-07 2009-05-07 Comcast Cable Holdings, Llc User interface display without output device rendering
US8307395B2 (en) * 2008-04-22 2012-11-06 Porto Technology, Llc Publishing key frames of a video content item being viewed by a first user to one or more second users
US8239893B2 (en) * 2008-05-12 2012-08-07 Microsoft Corporation Custom channels
US9049477B2 (en) * 2008-11-13 2015-06-02 At&T Intellectual Property I, Lp Apparatus and method for managing media content
WO2010068497A2 (en) * 2008-11-25 2010-06-17 Jeffrey Harrang Viral distribution of digital media content over social networks
US20100251292A1 (en) * 2009-03-27 2010-09-30 Sudharshan Srinivasan Smartphone for interactive television
US8929331B2 (en) * 2009-05-22 2015-01-06 Broadcom Corporation Traffic management in a hybrid femtocell/WLAN wireless enterprise network
US20110066744A1 (en) * 2009-09-17 2011-03-17 General Instrument Corporation Transitioning between Multiple Services in an MPEG Stream
WO2011038151A1 (en) * 2009-09-23 2011-03-31 Accessaganza, Inc. A method and system for controlling electronic devices
US8644354B2 (en) * 2009-10-14 2014-02-04 Verizon Patent And Licensing Inc. Methods and systems for automatically registering a mobile phone device with one or more media content access devices
US9519728B2 (en) * 2009-12-04 2016-12-13 Time Warner Cable Enterprises Llc Apparatus and methods for monitoring and optimizing delivery of content in a network
US20110191446A1 (en) * 2010-01-29 2011-08-04 Clarendon Foundation, Inc. Storing and streaming media content
US20110191439A1 (en) * 2010-01-29 2011-08-04 Clarendon Foundation, Inc. Media content ingestion
WO2011136581A2 (ko) * 2010-04-29 2011-11-03 엘지전자 주식회사 네트워크 설정 방법 및 그를 이용한 iptv 수신기
WO2011138581A2 (en) 2010-05-05 2011-11-10 Mark David Crosier Combined power monitoring, control and networking device
US9633656B2 (en) * 2010-07-27 2017-04-25 Sony Corporation Device registration process from second display
AU2011202182B1 (en) * 2011-05-11 2011-10-13 Frequency Ip Holdings, Llc Creation and presentation of selective digital content feeds
KR102044015B1 (ko) * 2011-08-02 2019-11-12 (주)휴맥스 연관 미디어 컨텐츠를 포함하는 컨텐츠 관리 목록 제공 방법 및 이를 수행하는 장치
US9118950B2 (en) 2011-10-26 2015-08-25 Panasonic Intellectual Property Corporation Of America Broadcast receiving apparatus, playback apparatus, broadcast communication system, broadcast receiving method, playback method, and program
US20130254806A1 (en) * 2012-03-20 2013-09-26 Station Creator, Llc System and Method for Displaying a Media Program Stream on Mobile Devices
US20140013342A1 (en) * 2012-07-05 2014-01-09 Comcast Cable Communications, Llc Media Content Redirection
US9769503B2 (en) * 2012-11-14 2017-09-19 Saturn Licensing Llc Information processor, information processing method and program
JP6247309B2 (ja) * 2012-11-28 2017-12-13 エルジー エレクトロニクス インコーポレイティド 双方向サービスを処理する装置及び方法
CN105579995B (zh) * 2013-09-23 2022-07-08 三星电子株式会社 在无线通信系统中执行应用的方法和装置
EP3068139B1 (en) * 2013-11-04 2020-09-23 LG Electronics Inc. Electronic device and method for controlling electronic device
AU2015218353A1 (en) * 2014-02-14 2016-09-01 Pluto Inc. Methods and systems for generating and providing program guides and content
US9854313B2 (en) * 2014-12-23 2017-12-26 Rovi Guides, Inc. Methods and systems for presenting information about media assets
EP3267689B1 (en) * 2015-03-01 2019-08-14 LG Electronics Inc. Broadcast signal transmission device, broadcast signal reception device, broadcast signal transmission method, and broadcast signal reception method
WO2016190662A1 (ko) * 2015-05-26 2016-12-01 엘지전자 주식회사 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11622139B2 (en) 2019-03-08 2023-04-04 Samsung Electronics Co., Ltd. Broadcast receiving device and operating method thereof

Also Published As

Publication number Publication date
US20200260161A1 (en) 2020-08-13
US20190306590A1 (en) 2019-10-03
US10362371B2 (en) 2019-07-23
CA3078377A1 (en) 2016-12-01
US10674234B2 (en) 2020-06-02
CA3078377C (en) 2022-08-30
US20180152768A1 (en) 2018-05-31
CA2986763A1 (en) 2016-12-01
US11095959B2 (en) 2021-08-17
CA2986763C (en) 2020-06-23
WO2016190662A1 (ko) 2016-12-01
CA3166548A1 (en) 2016-12-01

Similar Documents

Publication Publication Date Title
US10848817B2 (en) Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method of transmitting broadcast signals and method of receiving broadcast signals
US11064240B2 (en) Broadcasting signal transmission apparatus, broadcasting signal reception apparatus, broadcasting signal transmission method, and broadcasting signal reception method
KR101871727B1 (ko) 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법
US20210314676A1 (en) Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method of transmitting broadcast signals and method of receiving broadcast signals
US11095959B2 (en) Broadcasting signal transmitting apparatus, broadcasting signal receiving apparatus, broadcasting signal transmitting method, and broadcasting signal receiving method
US20200336572A1 (en) Broadcast signal transmission device, broadcast signal transmission method, broadcast signal reception device, and broadcast signal reception method
US20220103274A1 (en) Broadcasting signal transmitting apparatus, broadcasting signal receiving apparatus, broadcasting signal transmitting method, and broadcasting signal receiving method
US20210185113A1 (en) Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method of transmitting broadcast signals and method of receiving broadcast signals
KR102196318B1 (ko) 방송 신호 송수신 장치 및 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E90F Notification of reason for final refusal