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

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

Info

Publication number
KR101975343B1
KR101975343B1 KR1020187017134A KR20187017134A KR101975343B1 KR 101975343 B1 KR101975343 B1 KR 101975343B1 KR 1020187017134 A KR1020187017134 A KR 1020187017134A KR 20187017134 A KR20187017134 A KR 20187017134A KR 101975343 B1 KR101975343 B1 KR 101975343B1
Authority
KR
South Korea
Prior art keywords
service
information
request signal
packet
broadcast
Prior art date
Application number
KR1020187017134A
Other languages
English (en)
Other versions
KR20180072842A (ko
Inventor
양승률
곽민성
문경수
고우석
홍성룡
이장원
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Publication of KR20180072842A publication Critical patent/KR20180072842A/ko
Application granted granted Critical
Publication of KR101975343B1 publication Critical patent/KR101975343B1/ko

Links

Images

Classifications

    • 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/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64707Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless for transferring content from a first network to a second network, e.g. between IP and wireless
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H20/00Arrangements for broadcast or for distribution combined with broadcast
    • H04H20/18Arrangements for synchronising broadcast or distribution via plural systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • 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/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/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/76Arrangements characterised by transmission systems other than for broadcast, e.g. the Internet
    • H04H60/81Arrangements characterised by transmission systems other than for broadcast, e.g. the Internet characterised by the transmission system itself
    • H04H60/82Arrangements characterised by transmission systems other than for broadcast, e.g. the Internet characterised by the transmission system itself the transmission system being the Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • 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/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • 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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • 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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/2362Generation or processing of Service Information [SI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26258Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/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/4112Peripherals receiving signals from specially adapted client devices having fewer capabilities than the client, e.g. thin client having less processing power or no tuning capabilities
    • 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/426Internal components of the client ; Characteristics thereof
    • H04N21/42607Internal components of the client ; Characteristics thereof for processing the incoming bitstream
    • H04N21/4263Internal components of the client ; Characteristics thereof for processing the incoming bitstream involving specific tuning arrangements, e.g. two tuners
    • H04N21/42638Internal components of the client ; Characteristics thereof for processing the incoming bitstream involving specific tuning arrangements, e.g. two tuners involving a hybrid front-end, e.g. analog and digital tuners
    • 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/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • 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/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4345Extraction or processing of SI, e.g. extracting service information from an MPEG stream
    • 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/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4348Demultiplexing of additional data and video 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/47End-user applications
    • H04N21/482End-user interface for program selection
    • 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/631Multimode Transmission, e.g. transmitting basic layers and enhancement layers of the content over different transmission paths or transmitting with different error corrections, different keys or with different transmission protocols
    • 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
    • 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/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

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

Description

방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법{BROADCAST SIGNAL TRANSMISSION DEVICE, BROADCAST SIGNAL RECEPTION DEVICE, BROADCAST SIGNAL TRANSMISSION METHOD, AND BROADCAST SIGNAL RECEPTION METHOD}
본 발명은 방송 신호 송신 장치, 방송 신호 수신 장치, 및 방송 신호 송수신 방법에 관한 것이다.
아날로그 방송 신호 송신이 종료됨에 따라, 디지털 방송 신호를 송수신하기 위한 다양한 기술이 개발되고 있다. 디지털 방송 신호는 아날로그 방송 신호에 비해 더 많은 양의 비디오/오디오 데이터를 포함할 수 있고, 비디오/오디오 데이터뿐만 아니라 다양한 종류의 부가 데이터를 더 포함할 수 있다.
즉, 디지털 방송 시스템은 HD(High Definition) 이미지, 멀티채널(multi channel, 다채널) 오디오, 및 다양한 부가 서비스를 제공할 수 있다. 그러나, 디지털 방송을 위해서는, 많은 양의 데이터 전송에 대한 데이터 전송 효율, 송수신 네트워크의 견고성(robustness), 및 모바일 수신 장치를 고려한 네트워크 유연성(flexibility)이 향상되어야 한다.
본 발명의 목적에 따라, 여기에 포함되고 대략적으로 기재된 바와 같이, 본 발명은 지상파 방송망과 인터넷 망을 사용하는 차세대 하이브리드 방송을 지원하는 환경에서 차세대 방송 서비스를 효과적으로 지원할 수 있는 시스템 및 관련된 시그널링 방안을 제안한다.
본 발명은 방송망과 인터넷 망을 모두 사용하는 하이브리드 방송을 효율적으로 제공하는 방법을 제안한다.
본 발명은 기본적인 방송 서비스에 대한 앱을 기반으로 한 앱 기반 인핸스먼트를 제공하는 방법을 제안한다.
본 발명은 앱 기반 인핸스먼트를 방송 서비스에 싱크를 맞추어 제공하는 방법을 제안한다.
본 발명은 PD 와 CD 간의 다양한 프로토콜에 따른 아키텍쳐를 제안하며, 아키텍쳐에 따라 PD 와 CD, 앱과 앱 간의 커뮤니케이션 방안을 제안한다.
본 발명은 PD 측에서 CD 측으로 ESG, EAS 등의 정보를 효과적으로 전달하기 위한 아키텍쳐 및 시그널링 방안을 제안한다.
본 발명에 대해 더욱 이해하기 위해 포함되며 본 출원에 포함되고 그 일부를 구성하는 첨부된 도면은 본 발명의 원리를 설명하는 상세한 설명과 함께 본 발명의 실시예를 나타낸다.
도 1 은 본 발명의 일 실시예에 따른 수신기 프로토콜 스택(receiver protocol stack) 을 도시한 도면이다.
도 2 는 본 발명의 일 실시예에 따른 SLT 와 SLS (service layer signaling) 의 관계를 도시한 도면이다.
도 3 은 본 발명의 일 실시예에 따른 SLT 를 도시한 도면이다.
도 4 는 본 발명의 일 실시예에 따른 SLS 부트스트래핑과 서비스 디스커버리 과정을 도시한 도면이다.
도 5 는 본 발명의 일 실시예에 따른 ROUTE/DASH 를 위한 USBD 프래그먼트를 도시한 도면이다.
도 6 은 본 발명의 일 실시예에 따른 ROUTE/DASH 를 위한 S-TSID 프래그먼트를 도시한 도면이다.
도 7 은 본 발명의 일 실시예에 따른 MMT 를 위한 USBD/USD 프래그먼트를 도시한 도면이다.
도 8 은 본 발명의 일 실시예에 따른 링크 레이어 프로토콜 아키텍쳐를 도시한 도면이다.
도 9 는 본 발명의 일 실시예에 따른 링크 레이어 패킷의 베이스 헤더 구조를 도시한 도면이다.
도 10 은 본 발명의 일 실시예에 따른 링크 레이어 패킷의 추가 헤더 구조를 도시한 도면이다.
도 11 은 본 발명의 다른 실시예에 따른 링크 레이어 패킷의 추가 헤더 구조를 도시한 도면이다.
도 12 은 본 발명의 일 실시예에 따른, MPEG-2 TS 패킷을 위한 링크 레이어 패킷의 헤더 구조와, 그 인캡슐레이션 과정을 도시한 도면이다.
도 13 는 본 발명의 일 실시예에 따른 IP 헤더 압축에 있어서, 어댑테이션 모드들의 실시예를 도시한 도면이다(송신측).
도 14 은 본 발명의 일 실시예에 따른 LMT(Link Mapping Table) 및 ROHC-U 디스크립션 테이블을 도시한 도면이다.
도 15 은 본 발명의 일 실시예에 따른 송신기 측의 링크 레이어 구조를 도시한 도면이다.
도 16 는 본 발명의 일 실시예에 따른 수신기 측의 링크 레이어 구조를 도시한 도면이다.
도 17 은 본 발명의 일 실시예에 따른, 링크 레이어를 통한 시그널링 전송 구조를 도시한 도면이다(송/수신측).
도 18은 본 발명의 일 실시예에 따른 차세대 방송 서비스에 대한 방송 신호 송신 장치의 구조를 나타낸다.
도 19는 본 발명의 일 실시예에 따른 BICM (bit interleaved coding & modulation) 블록을 나타낸다.
도 20은 본 발명의 다른 일 실시예에 따른 BICM 블록을 나타낸다.
도 21는 본 발명의 일 실시예에 따른 PLS의 비트 인터리빙을 과정을 나타낸 도면이다.
도 22는 본 발명의 일 실시예에 따른 차세대 방송 서비스에 대한 방송 신호 수신 장치의 구조를 나타낸다.
도 23은 본 발명의 일 실시예에 따른 프레임의 시그널링 계층 구조를 나타낸다.
도 24은 본 발명의 일 실시예에 따른 PLS1 데이터를 나타낸다.
도 25은 본 발명의 일 실시예에 따른 PLS2 데이터를 나타낸다.
도 26는 본 발명의 다른 일 실시예에 따른 PLS2 데이터를 나타낸다.
도 27은 본 발명의 일 실시예에 따른 프레임의 로지컬(logical, 논리) 구조를 나타낸다.
도 28은 본 발명의 일 실시예에 따른 PLS (physical layer signalling) 매핑을 나타낸다.
도 29는 본 발명의 일 실시예에 따른 타임 인터리빙을 나타낸다.
도 30은 본 발명의 일 실시예에 따른 트위스트된 행-열 블록 인터리버의 기본 동작을 나타낸다.
도 31는 본 발명의 다른 일 실시예에 따른 트위스트된 행-열 블록 인터리버의 동작을 나타낸다.
도 32는 본 발명의 일 실시예에 따른 각 FFT 모드에 따른 메인-PRBS 제너레이터와 서브-PRBS 제너레이터로 구성된 인터리빙 어드레스 제너레이터의 블록 다이아그램을 나타낸 도면이다.
도 33은 본 발명의 일 실시예에 따른 모든 FFT 모드들에 사용되는 메인-PRBS를 나타낸 도면이다.
도 34은 본 발명의 일 실시예에 따른 프리퀀시 인터리빙을 위한 인터리빙 어드레스 및 FFT 모드들에 사용되는 서브-PRBS를 나타낸 도면이다.
도 35은 본 발명의 일 실시예에 따른 타임 인터리버의 라이팅 (writing) 오퍼레이션을 나타낸다.
도 36는 PLP 개수에 따라 적용하는 인터리빙 타입을 표로 도시한 도면이다.
도 37은 상술한 하이브리드 타임 인터리버 구조의 제 1 실시예를 포함하는 블록도이다.
도 38은 상술한 하이브리드 타임 인터리버 구조의 제 2 실시예를 포함하는 블록도이다.
도 39는 하이브리드 타임 디인터리버의 구조의 제 1 실시예를 포함하는 블록도이다.
도 40은 하이브리드 타임 디인터리버의 구조의 제 2 실시예를 포함하는 블록도이다.
도 41 은 본 발명의 일 실시예에 따른 앱 관련 방송 서비스에 대해 도시한 도면이다.
도 42 는 본 발명의 일 실시예에 따른 ApplicationList 엘레멘트의 일부를 도시한 도면이다.
도 43 은 본 발명의 일 실시예에 따른 ApplicationList 엘레멘트의 다른 일부를 도시한 도면이다.
도 44 는 본 발명의 일 실시예에 따른 EMT (Event Message Table) 을 도시한 도면이다.
도 45 는 본 발명의 일 실시예에 따른 송신측에서 방송 서비스를 제공하는 방법을 도시한 도면이다.
도 46 은 본 발명의 일 실시예에 따른 송신측에서 방송 서비스를 제공하는 장치를 도시한 도면이다.
도 47는 본 발명의 일 실시예에 따른 브로드캐스트를 통해서 전송되는 AST를 나타낸 도면이다.
도 48는 본 발명의 일 실시예에 따른 브로드밴드를 통해서 전송되는 AST를 나타낸 도면이다.
도 49는 본 발명의 일 실시예에 따른 브로드캐스트를 통해서 EventStream 엘레멘트의 형태로 전송되는 이벤트를 나타낸 도면이다.
도 50은 본 발명의 일 실시예에 따른 브로드캐스트를 통해서 emsg 박스의 형태로 전송되는 이벤트를 나타낸 도면이다.
도 51는 본 발명의 일 실시예에 따른 브로드밴드를 통해서 EventStream 엘레멘트의 형태로 전송되는 이벤트를 나타낸 도면이다.
도 52은 본 발명의 일 실시예에 따른 브로드밴드를 통해서 emsg 박스의 형태로 전송되는 이벤트를 나타낸 도면이다.
도 53은 본 발명의 일 실시예에 따른 API 및 이벤트 리스너(event listener)를 나타낸 도면이다.
도 54은 일 실시 예에 따른 전자 장치의 블록도.
도 55는 일 실시 예에 따른 제1 클라이언트의 연결을 설명하는 도면.
도 56은 일 실시 예에 따른 제2 클라이언트의 연결을 설명하는 도면.
도 57는 일 실시 예에 따른 제1 및 제2 클라이언트 간의 연결을 설명하는 도면.
도 58는 일 실시 예에 따른 추가 연결 요청을 설명하는 도면.
도 59은 일 실시 예에 따른 IP 어드레스가 없는 경우 클라이언트 간의 연결을 설명하는 도면.
도 60은 일 실시 예에 따른 어플리케이션 간의 연결을 위한 대기 연결을 설명하는 도면.
도 61은 일 실시 예에 따른 제2 클라이언트와 연결을 위한 새로운 연결 요청을 설명하는 도면.
도 62는 일 실시 예에 따른 IP 어드레스를 포함하는 경우 제1 클라이언트의 설정을 설명하는 도면.
도 63은 일 실시 예에 따른 IP 어드레스를 포함하는 경우 제1 및 제2 클라이언트의 설정을 설명하는 도면.
도 64은 IP 어드레스를 포함하는 경우 복수의 제2 클라이언트에 연결하는 일 실시 예를 설명하는 도면.
도 65는 일 실시 예에 따른 전자 장치의 제어 방법의 흐름도.
도 66는 본 발명의 일 실시예에 따른 메인 피지컬 디바이스 (Main Physical Device) 및 컴페니언 피지컬 디바이스 (Companion Physical Device)의 구성을 나타낸 도면이다.
도 67은 본 발명의 일 실시예에 따른 하이브리드 방송 서비스를 지원하기 위한 프로토콜 스택을 나타낸 도면이다.
도 68 은 본 발명의 일 실시예에 따른 UPnP 방식의 액션(Action) 메커니즘을 도시한 도면이다.
도 69 은 본 발명의 일 실시예에 따른 REST 메커니즘을 도시한 도면이다.
도 70 은 본 발명의 일 실시예에 따른, 방송 수신기와 컴패니언 디바이스들이 ESG 를 교환하기 위한 서비스를 도시한 도면이다.
도 71 는 본 발명의 일 실시예에 따른 ESGData 상태변수를 도시한 도면이다.
도 72 는 본 발명의 다른 실시예에 따른 ESGData 상태변수를 도시한 도면이다.
도 73 는 본 발명의 일 실시예에 따른 ESGData 상태변수를 이벤트 방식에 따라 컴패니언 디바이스에 전달하는 과정을 도시한 도면이다.
도 74 는 본 발명의 일 실시예에 따른 LastChangedESGData 상태변수를 도시한 도면이다.
도 75 는 본 발명의 일 실시예에 따른 GetESGData 액션에 따라 ESG 데이터를 컴패니언 디바이스에 전달하는 과정을 도시한 도면이다.
도 76 는 본 발명의 일 실시예에 따른 GetServiceIds, GetESGbyServiceIds 액션에 따라 ESG 데이터를 컴패니언 디바이스에 전달하는 과정을 도시한 도면이다.
도 77 은 본 발명의 일 실시예에 따른 GetCurrentServiceId 액션에 따라 ESG 데이터를 컴패니언 디바이스에 전달하는 과정을 도시한 도면이다.
도 78 은 본 발명의 일 실시예에 따른 SearchESG 액션에 따라 ESG 데이터를 컴패니언 디바이스에 전달하는 과정을 도시한 도면이다.
도 79 는 본 발명의 일 실시예에 따른 DoAuthenticationForESG 액션에 따라 ESG 데이터를 전달하기 위한 인증 과정을 도시한 도면이다.
도 80 은 본 발명의 다른 실시예에 따른 GetServiceIds, GetESGbyServiceIds 액션에 따라 디바이스 인증과 동시에 ESG 데이터를 컴패니언 디바이스에 전달하는 과정을 도시한 도면이다.
도 81 는 본 발명의 일 실시예에 따른 GetService 액션에 따라 ESG 데이터를 컴패니언 디바이스에 전달하는 과정을 도시한 도면이다.
도 82 는 본 발명의 일 실시예에 따른 SetChangeChannel 액션에 따라 컴패니언 디바이스에서 방송수신기의 서비스를 변경하는 과정을 도시한 도면이다.
도 83 은 본 발명의 일 실시예에 따른 방송 서비스를 제공하는 방법을 도시한 도면이다.
도 84 은 본 발명의 일 실시예에 따른 방송 수신기를 도시한 도면이다.
도 85 는 본 발명의 일 실시예에 따른, UPnP 기반의 PD-CD 아키텍쳐를 도시한 도면이다.
도 86 은 본 발명의 다른 실시예에 따른, UPnP 기반의 PD-CD 아키텍쳐를 도시한 도면이다.
도 87 은 본 발명의 또 다른 실시예에 따른, UPnP 기반의 PD-CD 아키텍쳐를 도시한 도면이다.
도 88 은 본 발명의 일 실시예에 따른, UPnP 기반의 PD-CD 아키텍쳐에서의 인터랙션 다이어그램을 도시한 도면이다.
도 89 는 본 발명의 일 실시예에 따른, Websocket 기반의 PD-CD 아키텍쳐를 도시한 도면이다.
도 90 은 본 발명의 다른 실시예에 따른, Websocket 기반의 PD-CD 아키텍쳐를 도시한 도면이다.
도 91 은 본 발명의 또 다른 실시예에 따른, Websocket 기반의 PD-CD 아키텍쳐를 도시한 도면이다.
도 92 는 본 발명의 일 실시예에 따른, Websocket 기반의 PD-CD 아키텍쳐에서의 앱 투 앱 커뮤니케이션(App to app communication) 을 도시한 도면이다.
도 93 은 본 발명의 일 실시예에 따른, HTTP 기반의 PD-CD 아키텍쳐를 도시한 도면이다.
도 94 는 본 발명의 다른 실시예에 따른, HTTP 기반의 PD-CD 아키텍쳐를 도시한 도면이다.
도 95 는 본 발명의 일 실시예에 따른, Websocket & HTTP 기반의 PD-CD 아키텍쳐를 도시한 도면이다.
도 96 은 본 발명의 일 실시예에 따른, PD (Primary Device) 의 디스커버리를 위해 사용되는 메시지들의 포맷을 도시한 도면이다.
도 97 은 본 발명의 일 실시예에 따른, DDD (Device Description Document) 를 이용한 Websocket 엔드포인트 또는 HTTP 서비스 URL 의 디스커버리 과정을 도시한 도면이다.
도 98 은 본 발명의 일 실시예에 따른, DDD 를 이용한 Websocket 엔드포인트 또는 HTTP 서비스 URL 의 디스커버리 과정에 있어서, DDD 의 요청 메시지와 DDD 의 포맷을 도시한 도면이다.
도 99 는 본 발명의 일 실시예에 따른, DDD 를 이용한 Websocket 엔드포인트 또는 HTTP 서비스 URL 의 디스커버리 과정에 있어서, DDD 의 포맷을 도시한 도면이다.
도 100 은 본 발명의 다른 실시예에 따른, DDD 를 이용한 Websocket 엔드포인트 또는 HTTP 서비스 URL 의 디스커버리 과정에 있어서, DDD 의 포맷을 도시한 도면이다.
도 101 은 본 발명의 일 실시예에 따른, DDD 요청에 대한 응답(response) 헤더를 이용한 Websocket 엔드포인트 또는 HTTP 서비스 URL 의 디스커버리 과정을 도시한 도면이다.
도 102 는 본 발명의 일 실시예에 따른, DDD 요청에 대한 응답(response) 헤더를 이용한 Websocket 엔드포인트 또는 HTTP 서비스 URL 의 디스커버리 과정에 있어서, 응답 헤더의 포맷을 도시한 도면이다.
도 103 은 본 발명의 일 실시예에 따른, DDD 요청에 대한 응답(response) 헤더의 URL 을 이용한 Websocket 엔드포인트 또는 HTTP 서비스 URL 의 디스커버리 과정을 도시한 도면이다.
도 104 는 본 발명의 일 실시예에 따른, DDD 요청에 대한 응답(response) 헤더의 URL 을 이용한 Websocket 엔드포인트 또는 HTTP 서비스 URL 의 디스커버리 과정에 있어서, GET 요청 및 그에 따른 응답 메시지 포맷들을 도시한 도면이다.
도 105 는 본 발명의 다른 실시예에 따른, DDD 요청에 대한 응답(response) 헤더의 URL 을 이용한 Websocket 엔드포인트 또는 HTTP 서비스 URL 의 디스커버리 과정에 있어서, 주소 정보를 전달하는 응답 메시지의 포맷을 도시한 도면이다.
도 106 은 본 발명의 일 실시예에 따른, Websocket 기반의 핸드쉐이크(Handshake) & 연결 과정을 도시한 도면이다 (디스커버리 이후).
도 107 은 본 발명의 일 실시예에 따른, Websocket 기반의 앱투앱 커뮤니케이션을 위한 핸드쉐이크(Handshake) & 연결 과정을 도시한 도면이다(디스커버리 이후).
도 108 은 본 발명의 일 실시예에 따른, Websocket 기반의 2 웨이(way) 커뮤니케이션 과정을 도시한 도면이다 (연결 이후).
도 109 는 본 발명의 일 실시예에 따른, Websocket 기반의 앱투앱 2 웨이(way) 커뮤니케이션 과정을 도시한 도면이다 (연결 이후 / CD to PD).
도 110 은 본 발명의 일 실시예에 따른, Websocket 기반의 앱투앱 2 웨이(way) 커뮤니케이션 과정을 도시한 도면이다 (연결 이후 / PD to CD).
도 111 은 본 발명의 일 실시예에 따른, HTTP 기반의 요청-응답(Request-Response) 과정을 도시한 도면이다 (디스커버리 이후).
도 112 은 본 발명의 다른 실시예에 따른 XML 형식의 ESGData 상태변수를 JSON 형식의 ESGData 상태변수로 변환한 도면이다.
도 113 은 본 발명의 다른 실시예에 따른 JSON 형식의 ESGData 상태변수를 웹소켓 프로트콜을 사용하여 컴패니언 디바이스에 전달하는 과정을 도시한 도면이다.
도 114 는 본 발명의 일 실시예에 따른 서비스/컨텐트 식별(Identification) 메시지 포맷을 도시한 도면이다.
도 115 는 본 발명의 일 실시예에 따른 XML 포맷의 서비스/컨텐트 식별 메시지를 도시한 도면이다.
도 116 은 본 발명의 일 실시예에 따른 JSON 포맷의 서비스/컨텐트 식별 메시지를 도시한 도면이다.
도 117 은 본 발명의 일 실시예에 따른 PD 에서 방송 서비스를 제공하는 방법을 도시한 도면이다.
도 118 는 본 발명의 일 실시예에 따른 PD 로서 동작하는 방송 수신 장치를 도시한 도면이다.
발명의 실시를 위한 최선의 형태
본 발명의 바람직한 실시예에 대해 구체적으로 설명하며, 그 예는 첨부된 도면에 나타낸다. 첨부된 도면을 참조한 아래의 상세한 설명은 본 발명의 실시예에 따라 구현될 수 있는 실시예만을 나타내기보다는 본 발명의 바람직한 실시예를 설명하기 위한 것이다. 다음의 상세한 설명은 본 발명에 대한 철저한 이해를 제공하기 위해 세부 사항을 포함한다. 그러나 본 발명이 이러한 세부 사항 없이 실행될 수 있다는 것은 당업자에게 자명하다.
본 발명에서 사용되는 대부분의 용어는 해당 분야에서 널리 사용되는 일반적인 것들에서 선택되지만, 일부 용어는 출원인에 의해 임의로 선택되며 그 의미는 필요에 따라 다음 설명에서 자세히 서술한다. 따라서 본 발명은 용어의 단순한 명칭이나 의미가 아닌 용어의 의도된 의미에 근거하여 이해되어야 한다.
본 발명은 차세대 방송 서비스에 대한 방송 신호 송신 및 수신 장치 및 방법을 제공한다. 본 발명의 일 실시예에 따른 차세대 방송 서비스는 지상파 방송 서비스, 모바일 방송 서비스, UHDTV 서비스 등을 포함한다. 본 발명은 일 실시예에 따라 비-MIMO (non-Multiple Input Multiple Output) 또는 MIMO 방식을 통해 차세대 방송 서비스에 대한 방송 신호를 처리할 수 있다. 본 발명의 일 실시예에 따른 비-MIMO 방식은 MISO (Multiple Input Single Output) 방식, SISO (Single Input Single Output) 방식 등을 포함할 수 있다.
도 1 은 본 발명의 일 실시예에 따른 수신기 프로토콜 스택(receiver protocol stack) 을 도시한 도면이다.
방송망을 통한 서비스 딜리버리(broadcast service delivery)에 있어 두가지 방법이 있을 수 있다.
첫번째 방법은 MMT (MPEG Media Transport) 에 근거하여, MPU (Media Processing Units) 들을 MMTP (MMT protocol) 을 이용하여 전송하는 것일 수 있다. 두번째 방법은 MPEG DASH 에 근거하여, DASH 세그먼트들을 ROUTE (Real time Object delivery over Unidirectional Transport) 를 이용하여 전송하는 것일 수 있다.
NRT 미디어, EPG 데이터, 및 다른 파일을 포함하는 비시간 컨텐츠는 ROUTE로 전달된다. 시그널은 MMTP 및/또는 ROUTE를 통해 전달될 수 있는 반면, 부트스트랩 시그널링 정보는 SLT (service list table)에 의해 제공된다.
하이브리드 서비스 딜리버리(hybrid service delivery)에 있어서는, HTTP/TCP/IP 상의 MPEG DASH가 브로드밴드 측에서 이용된다. ISO BMFF (base media file format)의 미디어 파일은 딜리버리, 브로드캐스트 및 브로드밴드 딜리버리에 대한 디미어 인캡슐레이션 및 동기화 포맷으로 사용된다. 여기서 하이브리드 서비스 딜리버리란 하나 또는 그 이상의 프로그램 엘레멘트가 브로드밴드 패쓰(path) 를 통하여 전달되는 경우를 말할 수 있다.
서비스는 세 가지 기능 레이어를 이용하여 전달된다. 이들은 피지컬 레이어, 딜리버리 레이어, 서비스 매니지먼트 레이어이다. 피지컬 레이어는 시그널, 서비스 공지, IP 패킷 스트림이 브로드캐스트 피지컬 레이어 및/또는 브로드밴드 피지컬 레이어에서 전송되는 매커니즘을 제공한다. 딜리버리 레이어는 오브젝트 및 오브젝트 플로우 트랜스포트 기능을 제공한다. 이는 브로드캐스트 피지컬 레이어의 UDP/IP 멀티캐스트에서 동작하는 MMTP 또는 ROUTE 프로토콜에 의해 가능하고, 브로드밴드 피지컬 레이어의 TCP/IP 유니캐스트에서 HTTP 프로토콜에 의해 가능하다. 서비스 매니지먼트 레이어는 하위인 딜리버리 및 피지컬 레이어에 의해 실행되는 리니어 TV 또는 HTML5 응용 서비스와 같은 모든 서비스를 가능하게 한다.
본 도면에서 방송(broadcast) 쪽 프로토콜 스택 부분은, SLT 와 MMTP 를 통해 전송되는 부분, ROUTE 를 통해 전송되는 부분으로 나뉘어질 수 있다.
SLT 는 UDP, IP 레이어를 거쳐 인캡슐레이션될 수 있다. 여기서 SLT 에 대해서는 후술한다. MMTP 는 MMT 에서 정의되는 MPU 포맷으로 포맷된 데이터들과 MMTP 에 따른 시그널링 정보들을 전송할 수 있다. 이 데이터들은 UDP, IP 레이어를 거쳐 인캡슐레이션될 수 있다. ROUTE 는 DASH 세그먼트 형태로 포맷된 데이터들과 시그널링 정보들, 그리고 NRT 등의 논 타임드(non timed) 데이터들을 전송할 수 있다. 이 데이터들 역시 UDP, IP 레이어를 거쳐 인캡슐레이션될 수 있다. 실시예에 따라 UDP, IP 레이어에 따른 프로세싱은 일부 또는 전부 생략될 수도 있다. 여기서 도시된 시그널링 정보들(signaling)은 서비스에 관한 시그널링 정보일 수 있다.
SLT 와 MMTP 를 통해 전송되는 부분, ROUTE 를 통해 전송되는 부분은 UDP, IP 레이어에서 처리된 후 링크 레이어(Data Link Layer)에서 다시 인캡슐레이션될 수 있다. 링크 레이어에 대해서는 후술한다. 링크 레이어에서 처리된 방송 데이터는 피지컬 레이어에서 인코딩/인터리빙 등의 과정을 거쳐 방송 신호로서 멀티캐스트될 수 있다.
본 도면에서 브로드밴드(broadband) 쪽 프로토콜 스택 부분은, 전술한 바와 같이 HTTP 를 통하여 전송될 수 있다. DASH 세그먼트 형태로 포맷된 데이터들과 시그널링 정보들, NRT 등의 정보가 HTTP 를 통하여 전송될 수 있다. 여기서 도시된 시그널링 정보들(signaling)은 서비스에 관한 시그널링 정보일 수 있다. 이 데이터들은 TCP, IP 레이어를 거쳐 프로세싱된 후, 링크 레이어에서 인캡슐레이션될 수 있다. 실시예에 따라 TCP, IP, 링크 레이어의 일부 또는 전부는 생략될 수 있다. 이 후 처리된 브로드밴드 데이터는 피지컬 레이어에서 전송을 위한 처리를 거쳐 브로드밴드로 유니캐스트될 수 있다.
서비스는 전체적으로 사용자에게 보여주는 미디어 컴포넌트의 컬렉션일 수 있고, 컴포넌트는 여러 미디어 타입의 것일 수 있고, 서비스는 연속적이거나 간헐적일 수 있고, 서비스는 실시간이거나 비실시간일 수 있고, 실시간 서비스는 TV 프로그램의 시퀀스로 구성될 수 있다.
도 2 는 본 발명의 일 실시예에 따른 SLT 와 SLS (service layer signaling) 의 관계를 도시한 도면이다.
서비스 시그널링은 서비스 디스커버리 및 디스크립션 정보를 제공하고, 두 기능 컴포넌트를 포함한다. 이들은 SLT를 통한 부트스트랩 시그널링과 SLS이다. 이들은 사용자 서비스를 발견하고 획득하는 데 필요한 정보를 나타낸다. SLT는 수신기가 기본 서비스 리스트를 작성하고 각 서비스에 대한 SLS의 발견을 부트스트랩 할 수 있게 해준다.
SLT는 기본 서비스 정보의 매우 빠른 획득을 가능하게 한다. SLS는 수신기가 서비스와 그 컨텐츠 컴포넌트를 발견하고 이에 접속할 수 있게 해준다. SLT 와 SLS 의 구체적 내용에 대해서는 후술한다.
전술한 바와 같이 SLT 는 UDP/IP 를 통해 전송될 수 있다. 이 때, 실시예에 따라 이 전송에 있어 가장 강건한(robust) 방법을 통해 SLT 에 해당하는 데이터가 전달될 수 있다.
SLT 는 ROUTE 프로토콜에 의해 전달되는 SLS 에 접근하기 위한 액세스 정보를 가질 수 있다. 즉 SLT 는 ROUTE 프로토콜에 따른 SLS 에 부트스트래핑할 수 있다. 이 SLS 는 전술한 프로토콜 스택에서 ROUTE 윗 레이어에 위치하는 시그널링 정보로서, ROUTE/UDP/IP 를 통해 전달될 수 있다. 이 SLS 는 ROUTE 세션에 포함되는 LCT 세션들 중 하나를 통하여 전달될 수 있다. 이 SLS 를 이용하여 원하는 서비스에 해당하는 서비스 컴포넌트에 접근할 수 있다.
또한 SLT 는 MMTP 에 의해 전달되는 MMT 시그널링 컴포넌트에 접근하기 위한 액세스 정보를 가질 수 있다. 즉, SLT 는 MMTP 에 따른 SLS 에 부트스트래핑할 수 있다. 이 SLS 는 MMT 에서 정의하는 MMTP 시그널링 메시지(Signaling Message)에 의해 전달될 수 있다. 이 SLS 를 이용하여 원하는 서비스에 해당하는 스트리밍 서비스 컴포넌트(MPU) 에 접근할 수 있다. 전술한 바와 같이, 본 발명에서는 NRT 서비스 컴포넌트는 ROUTE 프로토콜을 통해 전달되는데, MMTP 에 따른 SLS 는 이에 접근하기 위한 정보도 포함할 수 있다. 브로드밴드 딜리버리에서, SLS는 HTTP(S)/TCP/IP로 전달된다.
도 3 은 본 발명의 일 실시예에 따른 SLT 를 도시한 도면이다.
먼저, 서비스 매니지먼트, 딜리버리, 피지컬 레이어의 각 논리적 엔티티간의 관계에 대해서 설명한다.
서비스는 두 기본 타입 중 하나로 시그널링될 수 있다. 첫 번째 타입은 앱 기반 인헨스먼트를 가질 수 있는 리니어 오디오/비디오 또는 오디오만의 서비스이다. 두 번째 타입은 프레젠테이션 및 구성이 서비스의 획득에 의해 실행되는 다운로드 어플리케이션에 의해 제어되는 서비스이다. 후자는 앱 기반 서비스라 불릴 수도 있다.
서비스의 컨텐츠 컴포넌트를 전달하는 MMTP 세션 및/또는 ROUTE/LCT 세션의 존재와 관련된 규칙은 다음과 같을 수 있다.
앱 기반 인헨스먼트가 없는 리니어 서비스의 브로드캐스트 딜리버리를 위해, 서비스의 컨텐츠 컴포넌트는 (1) 하나 이상의 ROUTE/LCT 세션 또는 (2) 하나 이상의 MMTP 세션 중 하나 (둘 다는 아님)에 의해 전달될 수 있다.
앱 기반 인헨스먼트가 있는 리니어 서비스의 브로드캐스트 딜리버리를 위해, 서비스의 컨텐츠 컴포넌트는 (1) 하나 이상의 ROUTE/LCT 세션 및 (2) 0개 이상의 MMTP 세션에 의해 전달될 수 있다.
특정 실시예에서, 동일한 서비스에서 스트리밍 미디어 컴포넌트에 대한 MMTP 및 ROUTE의 양자의 사용이 허용되지 않을 수 있다.
앱 기반 서비스의 브로드캐스트 딜리버리를 위해, 서비스의 컨텐츠 컴포넌트는 하나 이상의 ROUTE/LCT 세션에 의해 전달될 수 있다.
각각의 ROUTE 세션은 서비스를 구성하는 컨텐츠 컴포넌트를 전체적으로 또는 부분적으로 전달하는 하나 이상의 LCT 세션을 포함한다. 스트리밍 서비스 딜리버리에서, LCT 세션은 오디오, 비디오, 또는 클로즈드 캡션 스트림과 같은 사용자 서비스의 개별 컴포넌트를 전달할 수 있다. 스트리밍 미디어는 DASH 세그먼트로 포맷된다.
각각의 MMTP 세션은 MMT 시그널링 메시지 또는 전체 또는 일부 컨텐츠 컴포넌트를 전달하는 하나 이상의 MMTP 패킷 플로우를 포함한다. MMTP 패킷 플로우는 MMT 시그널링 메시지 또는 MPU로 포맷된 컴포넌트를 전달할 수 있다.
NRT 사용자 서비스 또는 시스템 메타데이터의 딜리버리를 위해, LCT 세션은 파일 기반의 컨텐츠 아이템을 전달한다. 이들 컨텐츠 파일은 NRT 서비스의 연속적 (타임드) 또는 이산적 (논 타임드) 미디어 컴포넌트, 또는 서비스 시그널링이나 ESG 프레그먼트와 같은 메타데이터로 구성될 수 있다. 서비스 시그널링이나 ESG 프레그먼트와 같은 시스템 메타데이터의 딜리버리 또한 MMTP의 시그널링 메시지 모드를 통해 이루어질 수 있다.
브로드캐스트 스트림은 특정 대역 내에 집중된 캐리어 주파수 측면에서 정의된 RF 채널의 개념이다. 그것은 [지리적 영역, 주파수] 쌍에 의해 식별된다. PLP (physical layer pipe)는 RF 채널의 일부에 해당된다. 각 PLP는 특정 모듈레이션 및 코딩 파라미터를 갖는다. 그것은 속해 있는 브로드캐스트 스트림 내에서 유일한 PLPID (PLP identifier)에 의해 식별된다. 여기서, PLP는 DP (data pipe)라 불릴 수도 있다.
각 서비스는 두 형태의 서비스 식별자에 의해 식별된다. 하나는 SLT에서 사용되고 브로드캐스트 영역 내에서만 유일한 컴팩트 형태이고, 다른 하나는 SLS 및 ESG에서 사용되는 전 세계적으로 유일한 형태이다. ROUTE 세션은 소스 IP 어드레스, 데스티네이션 IP 어드레스, 데스티네이션 포트 넘버에 의해 식별된다. LCT 세션 (그것이 전달하는 서비스 컴포넌트와 관련됨)은 페어런트 ROUTE 세션의 범위 내에서 유일한 TSI (transport session identifier)에 의해 식별된다. LCT 세션에 공통적인 성질 및 개별 LCT 세션에 유일한 특정한 성질은 서비스 레이어 시그널링의 일부인 S-TSID (service-based transport session instance description)라 불리는 ROUTE 시그널링 구조에서 주어진다. 각 LCT 세션은 하나의 PLP를 통해 전달된다. 실시예에 따라 하나의 LCT 세션이 복수개의 PLP 를 통해 전달될 수도 있다. ROUTE 세션의 서로 다른 LCT 세션은 서로 다른 PLP에 포함되거나 그렇지 않을 수 있다. 여기서, ROUTE 세션은 복수개의 PLP 들을 통해 전달될 수도 있다. S-TSID에 서술된 성질은 각 LCT 세션에 대한 TSI 값 및 PLPID, 딜리버리 오브젝트/파일에 대한 디스크립터, 어플리케이션 레이어 FEC 파라미터를 포함한다.
MMTP 세션은 데스티네이션 IP 어드레스 및 데스티네이션 포트 넘버에 의해 식별된다. MMTP 패킷 플로우 (그것이 전달하는 서비스 컴포넌트와 관련됨)는 페어런트 MMTP 세션의 범위 내에서 유일한 packet_id에 의해 식별된다. 각 MMTP 패킷 플로우에 공통인 성질 및 MMTP 패킷 플로우의 특정 성질이 SLT에 주어진다. 각 MMTP 세션에 대한 성질은 MMTP 세션 내에서 전달될 수 있는 MMT 시그널링 메시지에 의해 주어진다. MMTP 세션의 서로 다른 MMTP 패킷 플로우는 서로 다른 PLP에 포함되거나 그렇지 않을 수 있다. 여기서, MMTP 세션은 복수개의 PLP 들을 통해 전달될 수도 있다. MMT 시그널링 메시지에 서술된 성질은 각 MMTP 패킷 플로우에 대해 packet_id 값 및 PLPID를 포함한다. 여기서 MMT 시그널링 메시지는 MMT 에서 정의된 형태이거나, 후술할 실시예들에 따라 변형이 이루어진 형태일 수 있다.
이하, LLS (Low Level Signaling) 에 대해서 설명한다.
이 기능에 전용인 잘 알려진 어드레스/포트를 갖는 IP 패킷의 페이로드에 전달되는 시그널링 정보는 LLS이라 불린다. 이 IP 어드레스 및 포트넘버는 실시예에 따라 다르게 설정될 수 있다. 일 실시예에서, LLS는 어드레스가 224.0.23.60이고 데스티네이션 포트가 4937/udp인 IP 패킷에 전달될 수 있다. LLS 는 전술한 프로토콜 스택상에서 "SLT" 로 표현된 부분에 위치할 수 있다. 단, 실시예에 따라 LLS 는 UDP/IP 레이어의 프로세싱을 거치지 않고, 신호 프레임 상의 별도의 물리 채널(dedicated channel) 을 통해 전송될 수도 있다.
LLS 데이터를 전달하는 UDP/IP 패킷들은 LLS 테이블이라는 형태로 포맷될 수 있다. LLS 데이터를 운반하는 매 UDP/IP 패킷의 첫번째 바이트는 LLS 테이블의 시작일 수 있다. 모든 LLS 테이블의 최대 길이는 피지컬 레이어로부터 전달될 수 있는 가장 큰 IP 패킷에 의해 65,507 바이트로 제한된다.
LLS 테이블은 LLS 테이블의 타입을 식별하는 LLS 테이블 ID 필드와, LLS 테이블의 버전을 식별하는 LLS 테이블 버전 필드를 포함할 수 있다. LLS 테이블 ID 필드가 나타내는 값에 따라서, LLS 테이블은 전술한 SLT 를 포함하거나 RRT (Rating Region Table) 을 포함할 수 있다. RRT 는 컨텐트 권고 레이팅(Content Advisory Rating) 에 관한 정보를 가질 수 있다.
이하, SLT (Service List Table) 에 대해서 설명한다. LLS는 수신기에 의한 서비스 획득의 부트스트래핑과 빠른 채널 스캔을 지원하는 시그널링 정보일 수 있고, SLT는 기본 서비스 리스팅을 구축하고 SLS의 부트스트랩 디스커버리를 제공하기 위해 사용되는 시그널링 정보의 테이블일 수 있다.
SLT의 기능은 MPEG-2 시스템에서의 PAT (program association table) 및 ATSC 시스템에서 발견되는 FIC (fast information channel)와 유사하다. 처음으로 브로드캐스트 이미션을 겪는 수신기에게 이것은 시작되는 지점이다. SLT는 수신기가 채널 이름, 채널 넘버 등으로 그것이 수신할 수 있는 모든 서비스의 리스트를 구축할 수 있게 하는 빠른 채널 스캔을 지원한다. 또한 SLT는 수신기가 각 서비스에 대해 SLS를 발견할 수 있게 하는 부트스트랩 정보를 제공한다. ROUTE/DASH로 전달되는 서비스에 대해, 부트스트랩 정보는 SLS를 전달하는 LCT 세션의 데스티네이션 IP 어드레스 및 데스티네이션 포트를 포함한다. MMT/MPU로 전달되는 서비스에 대해, 부트스트랩 정보는 SLS를 전달하는 MMTP 세션의 데스티네이션 IP 어드레스 및 데스티네이션 포트를 포함한다.
SLT는 브로드캐스트 스트림에서 각 서비스에 관한 다음의 정보를 포함함으로써 서비스 획득 및 빠른 채널 스캔을 지원한다. 첫째로, SLT는 시청자에게 유의미하고 위/아래 선택 또는 채널 넘버를 통한 초기 서비스 선택을 지원할 수 있는 서비스 리스트의 프레젠테이션을 허용하는 데 필요한 정보를 포함할 수 있다. 둘째로, SLT는 각 리스팅된 서비스에 대해 SLS의 위치를 찾아내는 데 필요한 정보를 포함할 수 있다. 즉, SLT 는 SLS 를 전달하는 위치(location)에 대한 엑세스 정보를 포함할 수 있다.
도시된 본 발명의 일 실시예에 따른 SLT 는, SLT 루트 엘레먼트(root element) 를 가지는 XML 도큐먼트 형태로 표현되었다. 실시예에 따라, SLT 는 바이너리 포맷 또는 XML 도큐먼트의 형태로 표현될 수 있다.
도시된 SLT 의 SLT 루트 엘레멘트는 @bsid, @sltSectionVersion, @sltSectionNumber, @totalSltSectionNumbers, @language, @capabilities, InetSigLoc 및/또는 Service 를 포함할 수 있다. 실시예에 따라 SLT 루트 엘레멘트는 @providerId를 더 포함할 수도 있다. 실시예에 따라 SLT 루트 엘레멘트는 @language 를 포함하지 않을 수 있다.
Service 엘레멘트는 @serviceId, @SLTserviceSeqNumber, @protected, @majorChannelNo, @minorChannelNo, @serviceCategory, @shortServiceName, @hidden, @slsProtocolType, BroadcastSignaling, @slsPlpId, @slsDestinationIpAddress, @slsDestinationUdpPort, @slsSourceIpAddress, @slsMajorProtocolVersion, @SlsMinorProtocolVersion, @serviceLanguage, @broadbandAccessRequired, @capabilities 및/또는 InetSigLoc 를 포함할 수 있다.
실시예에 따라 SLT 의 성질 또는 엘레멘트는 추가/변경/삭제될 수 있다. SLT 에 포함되는 각 엘레멘트들 역시 추가적으로 별도의 성질 또는 엘레멘트를 가질 수 있으며, 본 실시예에 따른 성질 또는 엘레멘트 중 일부가 생략될 수도 있다. 여기서 @ 표기된 필드는 성질(attribute)에 해당하고, @ 표기되지 않은 필드는 엘레멘트(element)에 해당할 수 있다.
@bsid는 전체 브로드캐스트 스트림의 식별자이다. BSID의 값은 지역적 레벨에서 유일할 수 있다.
@providerId는 이 브로드캐스트 스트림의 일부 또는 전체를 사용하는 방송사의 인덱스이다. 이것은 선택적인 성질이다. 그것이 존재하지 않는다는 것은 이 브로드캐스트 스트림이 하나의 방송사에 의해 사용되고 있다는 것을 의미한다. @providerId 는 도면에 도시되지 않았다.
@sltSectionVersion은 SLT 섹션의 버전 넘버일 수 있다. sltSectionVersion는 slt 내에서 전달되는 정보에 변화가 생기면 1씩 증분될 수 있다. 그것이 최대값에 도달하면, 0으로 시프트된다.
@sltSectionNumber는 SLT의 해당 섹션의 넘버로 1부터 카운트될 수 있다. 즉 해당 SLT 섹션의 섹션넘버에 해당할 수 있다. 이 필드가 사용되지 않는 경우, 디폴트 값 1 로 설정될 수 있다.
@totalSltSectionNumbers는 해당 섹션이 일부인 SLT의 섹션(즉, 최대 sltSectionNumber를 갖는 섹션)의 총 넘버일 수 있다. sltSectionNumber와 totalSltSectionNumbers는 함께 분할로 보내지는 경우 SLT의 일부의 "N의 M 부분"을 나타낸다고 볼 수 있다. 즉 SLT 를 전송함에 있어서 분할(fragmentation)을 통한 전송이 지원될 수 있다. 이 필드가 사용되지 않는 경우, 디폴트 값 1 로 설정될 수 있다. 필드가 사용되지 않는 경우는 SLT 가 분할되어 전송되지 않는 경우일 수 있다.
@language는 해당 slt의 경우에 포함되는 서비스의 주 언어를 나타낼 수 있다. 실시예에 따라 이 필드 값은 ISO 에서 정의되는 3-캐릭터 언어 코드(three character language code) 의 형태일 수 있다. 본 필드는 생략될 수 있다.
@capabilities는 해당 slt의 경우에서 모든 서비스에 대한 내용을 디코딩하고 유의미하게 나타내기 위해 요구되는 캐피빌리티를 나타낼 수 있다.
InetSigLoc는 어디에서 브로드밴드를 통해 외부 서버로부터 모든 요구되는 타입의 데이터를 획득할 수 있는지 수신기에게 알리는 URL을 제공할 수 있다. 이 엘레멘트는 @urlType 를 하위필드로 더 포함할 수도 있다. 이 @urlType 필드의 값에 따라, InetSigLoc 이 제공하는 URL 의 타입이 지시될 수 있다. 실시예에 따라 @urlType 필드 값이 0 인 경우, InetSigLoc 은 시그널링 서버의 URL 을 제공할 수 있다. @urlType 필드 값이 1 인 경우, InetSigLoc 은 ESG 서버의 URL 을 제공할 수 있다. @urlType 필드가 그 외의 값을 가지는 경우는 향후 사용을 위해 남겨둘 수 있다(reserved for future use).
Service 필드는 각 서비스들에 대한 정보를 가지는 엘레멘트로, 서비스 엔트리에 해당할 수 있다. SLT 가 지시하는 서비스의 개수(N)만큼 Service 엘레멘트 필드가 존재할 수 있다. 이하 Service 필드의 하위 성질/엘레멘트에 대해 설명한다.
@serviceId는 해당 브로드캐스트 영역의 범위 내에서 해당 서비스를 유일하게 식별하는 정수 넘버일 수 있다. 실시예에 따라 @serviceId 의 스코프(scope)는 변경될 수 있다. @SLTserviceSeqNumber는 상기 serviceId 성질과 같은 서비스 ID를 갖는 SLT 서비스 정보의 시퀀스 넘버를 나타내는 정수 넘버일 수 있다. SLTserviceSeqNumber 값은 각 서비스에 대해 0부터 시작할 수 있고, 해당 Service 엘레먼트에서 어떠한 성질이 변화할 때마다 1씩 증분될 수 있다. ServiceID의 특정 값을 갖는 이전 서비스 엘레먼트에 비해 아무 성질 값이 변화하지 않으면, SLTserviceSeqNumber는 증분되지 않을 것이다. SLTserviceSeqNumber 필드는 최대값에 도달한 후 0으로 시프트된다.
@protected 는 플래그 정보로서, 해당 서비스의 유의미한 재생을 위한 하나 또는 그 이상의 컴포넌트가 보호된(protected) 상태인지를 지시할 수 있다. "1"(참)로 설정되면, 유의미한 프레젠테이션에 필요한 하나 이상의 컴포넌트가 보호된다. "0"(거짓)으로 설정되면, 해당 프레그는 서비스의 유의미한 프레젠테이션에 필요한 컴포넌트가 아무것도 보호되지 않는다는 것을 나타낸다. 디폴트 값은 거짓이다.
@majorChannelNo는 서비스의 "주" 채널 넘버를 나타내는 정수값이다. 본 필드의 일 실시예는 1 에서 999 까지의 범위를 가질 수 있다.
@minorChannelNo는 서비스의 "부" 채널 넘버를 나타내는 정수값이다. 본 필드의 일 실시예는 1 에서 999 까지의 범위를 가질 수 있다.
@serviceCategory는 해당 서비스의 카테고리를 나타낼 수 있다. 본 필드가 지시하는 의미는 실시예에 따라 변경될 수 있다. 일 실시예에 따르면 본 필드 값이 1, 2, 3 인 경우, 각각 해당 서비스는 리니어 A/V 서비스(Linear A/V service), 리니어 오디오 서비스(Linear audio only service), 앱 베이스드 서비스(app-based service) 에 해당할 수 있다. 본 필드 값이 0 인 경우 정의되지 않은 카테고리의 서비스일 수 있고, 본 필드 값이 다른 0, 1, 2, 3 외의 다른 값을 가지는 경우는 향후 사용을 위해 남겨둘 수 있다(reserved for future use). @shortServiceName는 서비스의 쇼트 스트링 네임일 수 있다.
@hidden는 존재하고 "참"으로 설정되는 경우 부울 값일 수 있고, 이는 서비스가 테스트나 독점 사용을 위한 것이고 보통의 TV 수신기로는 선택되지 않는다는 것을 나타낸다. 존재하지 않는 경우 디폴트 값은 "거짓"이다.
@slsProtocolType은 해당 서비스에 의해 사용되는 SLS의 프로토콜의 타입을 나타내는 성질일 수 있다. 본 필드가 지시하는 의미는 실시예에 따라 변경될 수 있다. 일 실시예에 따르면 본 필드 값이 1, 2, 인 경우, 각각 해당 서비스가 사용하는 SLS 의 프로토콜은 ROUTE, MMTP 일 수 있다. 본 필드 값이 0 또는 그 외의 값을 가지는 경우는 향후 사용을 위해 남겨둘 수 있다(reserved for future use). 본 필드는 @slsProtocol 로 불릴 수도 있다.
BroadcastSignaling 및 그 하위 성질/엘레멘트들은 방송 시그널링과 관련된 정보를 제공할 수 있다. BroadcastSignaling 엘레먼트가 존재하지 않는 경우, 페어런트 서비스 엘레먼트의 차일드 엘레먼트인 InetSigLoc가 존재할 수 있고, 그 성질인 urlType은 URL_type 0x00 (URL to signaling server)을 포함한다. 이 경우, 성질인 url은 service_id가 페어런트 서비스 엘레먼트에 대한 serviced 속성에 해당하는 쿼리 파라미터 svc=<service_id>를 지원한다.
또는 BroadcastSignaling 엘레먼트가 존재하지 않는 경우, 엘레먼트 InetSigLoc는 slt 루트 엘레먼트의 차일드 엘레먼트로 존재할 수 있고, InetSigLoc 엘레먼트의 속성 urlType은 URL_type 0x00 (URL to signaling server)를 포함한다. 이 경우, URL_type 0x00에 대한 성질 url은 service_id가 페어런트 서비스 엘레먼트의 serviceId 성질에 해당하는 쿼리 파라미터 svc=<service_id>를 지원한다.
@slsPlpId는 해당 서비스에 대해 SLS를 전달하는 PLP의 PLP ID를 나타내는 정수를 표현하는 스트링일 수 있다.
@slsDestinationIpAddress는 해당 서비스에 대해 SLS 데이터를 전달하는 패킷의 dotted-IPv4 데스티네이션 어드레스를 포함하는 스트링일 수 있다.
@slsDestinationUdpPort는 해당 서비스에 대해 SLS 데이터를 전달하는 패킷의 포트 넘버를 포함하는 스트링일 수 있다. 전술한 바와 같이 데스티네이션 IP/UDP 정보에 의하여 SLS 부트스트래핑이 수행될 수 있다.
@slsSourceIpAddress는 해당 서비스에 대해 SLS 데이터를 전달하는 패킷의 dotted-IPv4 소스 어드레스를 포함하는 스트링일 수 있다.
@slsMajorProtocolVersion는 해당 서비스에 대해 SLS를 전달하기 위해 사용되는 프로토콜의 주 버전 넘버일 수 있다. 디폴트 값은 1이다.
@SlsMinorProtocolVersion는 해당 서비스에 대해 SLS를 전달하기 위해 사용되는 프로토콜의 부 버전 넘버일 수 있다. 디폴트 값은 0이다.
@serviceLanguage는 서비스의 주 언어를 나타내는 3문자 언어 코드일 수 있다. 본 필드의 값의 형식은 실시예에 따라 변경될 수 있다.
@broadbandccessRequired는 수신기가 서비스의 유의미한 프리젠테이션을 하기 위해 브로드밴드 액세스가 필요하다는 것을 나타내는 부울 값일 수 있다. 본 필드 값이 True 인 경우, 리시버는 유의미한 서비스 재생을 위하여 브로드밴드에 액세스해야 하며, 이는 서비스의 하이브리드 딜리버리 경우에 해당할 수 있다.
@capabilities는 상기 serviceId 성질과 동일한 서비스 ID로 서비스에 대한 내용을 디코딩하고 유의미하게 나타내기 위해 요구되는 캐피빌리티를 나타낼 수 있다.
InetSigLoc는 사용 가능한 경우 브로드밴드를 통해 시그널링이나 공지 정보에 접속하기 위한 URL을 제공할 수 있다. 그 데이터 타입은 URL이 어디에 액세스하는지를 나타내는 @urlType 성질을 추가하는 모든 URL 데이터 타입의 확장일 수 있다. 본 필드의 @urlType 필드가 의미하는 바는, 전술한 InetSigLoc 의 @urlType 필드가 의미하는 바와 동일할 수 있다. 성질 URL_type 0x00의 InetSigLoc 엘레먼트가 SLT의 엘레먼트로 존재하는 경우, 그것은 시그널링 메타데이터에 대해 HTTP 요청을 하기 위해 사용될 수 있다. 이 HTTP POST 메시지 바디에는 서비스 텀이 포함될 수 있다. InetSigLoc 엘레먼트가 섹션 레벨에서 나타나는 경우, 서비스 텀은 요청된 시그널링 메타데이터 오브젝트가 적용되는 서비스를 나타내기 위해 사용된다. 서비스 텀이 존재하지 않으면, 해당 섹션의 모든 서비스에 대한 시그널링 메타데이터 오브젝트가 요청된다. InetSigLoc이 서비스 레벨에서 나타나는 경우, 원하는 서비스를 지정하기 위해 필요한 서비스 텀이 없다. 성질 URL_type 0x01의 InetSigLoc 엘레먼트가 제공되면, 그것은 브로드밴드를 통해 ESG 데이터를 검색하는 데 사용될 수 있다. 해당 엘레먼트가 서비스 엘레먼트의 차일드 엘레먼트로 나타나면, URL은 해당 서비스에 대해 데이터를 검색하는 데 사용될 수 있다. 해당 엘레먼트가 SLT 엘레먼트의 차일드 엘레먼트로 나타나면, URL은 해당 섹션에서 모든 서비스에 대한 ESG 데이터를 검색하는 데 사용될 수 있다.
SLT 의 다른 실시예에서, SLT 의 @sltSectionVersion, @sltSectionNumber, @totalSltSectionNumbers 및/또는 @language 필드는 생략될 수 있다.
또한, 전술한 InetSigLoc 필드는 @sltInetSigUri 및/또는 @sltInetEsgUri 필드로 대체될 수 있다. 두 필드는 각각 시그널링 서버의 URI, ESG 서버의 URI 정보를 포함할 수 있다. SLT 의 하위 엘레멘트인 InetSigLoc 필드와 Service 의 하위 엘레멘트인 InetSigLoc 필드 모두 상기와 같은 방법으로 대체될 수 있다.
제시된 디폴트 값들은 실시예에 따라 변경될 수 있다. 도시된 사용(use) 열은 각 필드에 관한 것으로, 1 은 해당 필드가 필수적인 필드, 0..1 은 해당 필드가 옵셔널 필드임을 의미할 수 있다.
도 4 는 본 발명의 일 실시예에 따른 SLS 부트스트래핑과 서비스 디스커버리 과정을 도시한 도면이다.
이하, 서비스 레이어 시그널링(SLS, Service Layer Signaling) 에 대해서 설명한다.
SLS는 서비스 및 그 컨텐츠 컴포넌트를 발견하고 획득하기 위한 정보를 제공하는 시그널링일 수 있다.
ROUTE/DASH에 대해, 각 서비스에 대한 SLS는 컴포넌트들의 리스트, 어디에서 그것들을 획득할 수 있는지, 서비스의 유의미한 프레젠테이션을 위해 요구되는 수신기 성능과 같은 서비스의 특성을 서술한다. ROUTE/DASH 시스템에서, SLS는 USBD (user service bundle description), S-TSID, DASH MPD (media presentation description)를 포함한다. 여기서 USBD 또는 USD (User Service Description) 는 SLS XML 프래그먼트 중 하나로서 서비스의 구체적 기술적 정보들을 기술하는 시그널링 허브로서 역할할 수 있다. 이 USBD/USD 는 3GPP MBMS 에서 정의된 것 보다 더 확장되어 있을 수 있다. USBD/USD 의 구체적 내용들에 대해서는 후술한다.
서비스 시그널링은 서비스 자체의 기본 성질, 특히 서비스를 획득하기 위해 필요한 성질에 초점을 둔다. 시청자를 위한 서비스 및 프로그래밍의 특징은 서비스 공지 또는 ESG 데이터로 나타난다.
각 서비스에 대해 별개의 서비스 시그널링을 가지면 수신기는 브로드캐스트 스트림 내에서 전달되는 전체 SLS을 파싱할 필요 없이 원하는 서비스에 대한 적절한 SLS를 획득하면 된다.
서비스 시그널링의 선택적 브로드밴드 딜리버리에 대해, SLT는 전술한 바와 같이 서비스 시그널링 파일이 획득될 수 있는 HTTP URL을 포함할 수 있다.
LLS는 SLS 획득을 부트스트랩 하는데 사용되고, 그 후 SLS는 ROUTE 세션 또는 MMTP 세션에서 전달되는 서비스 컴포넌트를 획득하는 데 사용된다. 서술된 도면은 다음의 시그널링 시퀀스를 도시한다. 수신기는 전술한 SLT를 획득하기 시작한다. ROUTE 세션에서 전달되는 service_id에 의해 식별되는 각 서비스는 PLPID(#1), 소스 IP 어드레스 (sIP1), 데스티네이션 IP 어드레스 (dIP1), 및 데스티네이션 포트 넘버 (dPort1)와 같은 SLS 부트스트래핑 정보를 제공한다. MMTP 세션에서 전달되는 service_id에 의해 식별되는 각 서비스는 PLPID(#2), 데스티네이션 IP 어드레스 (dIP2), 및 데스티네이션 포트 넘버 (dPort2)와 같은 SLS 부트스트래핑 정보를 제공한다.
ROUTE를 이용한 스트리밍 서비스 딜리버리에 대해, 수신기는 PLP 및 IP/UDP/LCT 세션으로 전달되는 SLS 분할을 획득할 수 있다. 반면, MMTP를 이용한 스트리밍 서비스 딜리버리에 대해, 수신기는 PLP 및 MMTP 세션으로 전달되는 SLS 분할을 획득할 수 있다. ROUTE를 이용한 서비스 딜리버리에 대해, 이들 SLS 분할은 USBD/USD 분할, S-TSID 분할, MPD 분할을 포함한다. 그것들은 하나의 서비스와 관련이 있다. USBD/USD 분할은 서비스 레이어 특성을 서술하고, S-TSID 분할에 대한 URI 레퍼런스 및 MPD 분할에 대한 URI 레퍼런스를 제공한다. 즉, USBD/USD 는 S-TSID 와 MPD 를 각각 레퍼런싱할 수 있다. MMTP를 이용한 서비스 딜리버리에 대해, USBD는 MMT 시그널링의 MMT 메시지를 참조하는데, 그것의 MP 테이블은 서비스에 속하는 에셋(asset)을 위한 위치 정보 및 패키지 ID의 식별을 제공한다. 여기서, Asset 이란, 멀티미디어 데이터 엔티티로서, 하나의 유니크 ID 로 연합되고 하나의 멀티미디어 프리젠테이션을 생성하는데 사용되는 데이터 엔티티를 의미할 수 있다. Asset 은 하나의 서비스를 구성하는 서비스 컴포넌트에 해당할 수 있다. MPT 메시지는 MMT 의 MP 테이블을 가지는 메시지이고, 여기서 MP 테이블은 MMT Asset 과 컨텐트에 대한 정보를 가지는 MMT 패키지 테이블(MMT Package Table)일 수 있다. 구체적인 내용은 MMT 에서 정의된 바와 같을 수 있다. 여기서 미디어 프리젠테이션이란 미디어 컨텐츠의 바운드/언바운드된 프리젠테이션을 성립시키는 데이터의 콜렉션일 수 있다.
S-TSID 분할은 하나의 서비스와 관련된 컴포넌트 획득 정보와 해당 서비스의 컴포넌트에 해당하는 TSI 및 MPD에서 발견되는 DASH 표현들 사이의 매핑을 제공한다. S-TSID는 TSI 및 관련된 DASH 표현 식별자의 형태의 컴포넌트 획득 정보, 및 DASH 표현과 관련된 DASH 분할을 전달하는 PLPID를 제공할 수 있다. PLPID 및 TSI 값에 의해, 수신기는 서비스로부터 오디오/비디오 컴포넌트를 수집하고, DASH 미디어 분할의 버퍼링을 시작한 후, 적절한 디코딩 과정을 적용한다.
MMTP 세션에서 전달되는 USBD 리스팅 서비스 컴포넌트에 대해, 서술된 도면의 "Service #2"에 도시한 바와 같이, 수신기는 SLS를 완료하기 위해 매칭되는 MMT_package_id를 갖는 MPT 메시지를 획득한다. MPT 메시지는 각 컴포넌트에 대한 획득 정보 및 서비스를 포함하는 서비스 컴포넌트의 완전한 리스트를 제공한다. 컴포넌트 획득 정보는 MMTP 세션 정보, 해당 세션을 전달하는 PLPID, 해당 세션 내의 packet_id를 포함한다.
실시예에 따라, 예를 들어 ROUTE 의 경우, 두 개 이상의 S-TSID 프래그먼트가 사용될 수 있다. 각각의 프래그먼트는 각 서비스의 컨텐츠를 전달하는 LCT 세션들에 대한 액세스 정보를 제공할 수 있다.
ROUTE 의 경우 S-TSID, USBD/USD, MPD 또는 이 들을 전달하는 LCT 세션을 서비스 시그널링 채널이라 부를 수도 있다. MMTP 의 경우, USBD/UD, MMT 시그널링 메시지들 또는 이들을 전달하는 패킷 플로우를 서비스 시그널링 채널이라 부를 수도 있다.
도시된 실시예와는 달리, 하나의 ROUTE 또는 MMTP 세션은 복수개의 PLP 를 통해 전달될 수 있다. 즉, 하나의 서비스는 하나 이상의 PLP 를 통해 전달될 수도 있다. 전술한 바와 같이 하나의 LCT 세션은 하나의 PLP 를 통해 전달될 수 있다. 도시된 것과 달리 실시예에 따라 하나의 서비스를 구성하는 컴포넌트들이 서로 다른 ROUTE 세션들을 통해 전달될 수도 있다. 또한, 실시예에 따라 하나의 서비스를 구성하는 컴포넌트들이 서로 다른 MMTP 세션들을 통해 전달될 수도 있다. 실시예에 따라 하나의 서비스를 구성하는 컴포넌트들이 ROUTE 세션과 MMTP 세션에 나뉘어 전달될 수도 있다. 도시되지 않았으나, 하나의 서비스를 구성하는 컴포넌트가 브로드밴드를 통해 전달(하이브리드 딜리버리)되는 경우도 있을 수 있다.
도 5 는 본 발명의 일 실시예에 따른 ROUTE/DASH 를 위한 USBD 프래그먼트를 도시한 도면이다.
이하, ROUTE 에 근거한 딜리버리에 있어서, 서비스 레이어 시그널링에 대해서 설명한다.
SLS는 서비스 및 그 컨텐츠 컴포넌트의 발견 및 접근을 가능하게 하기 위해 수신기에게 구체적인 기술적인 정보를 제공한다. 그것은 전용 LCT 세션으로 전달되는 XML 코딩된 메타데이터 분할을 집합을 포함할 수 있다. 해당 LCT 세션은 전술한 바와 같이 SLT에 포함된 부트스트랩 정보를 이용하여 획득할 수 있다. SLS는 서비스 레벨 당 정의되고, 그것은 컨텐츠 컴포넌트의 리스트, 어떻게 그것들을 획득하는지, 서비스의 유의미한 프레젠테이션을 하기 위해 요구되는 수신기 성능과 같은 서비스의 액세스 정보 및 특징을 서술한다. ROUTE/DASH 시스템에서, 리니어 서비스 딜리버리를 위해, SLS는 USBD, S-TSID 및 DASH MPD와 같은 메타데이터 분할로 구성된다. SLS 분할은 TSI = 0인 전용 LCT 전송 세션에서 전달될 수 있다. 실시예에 따라 SLS 프래그먼트가 전달되는 특정 LCT 세션(dedicated LCT session) 의 TSI 는 다른 값을 가질 수 있다. 실시예에 따라 SLS 프래그먼트가 전달되는 LCT 세션이 SLT 또는 다른 방법에 의해 시그널링될 수도 있다.
ROUTE/DASH SLS는 USBD 및 S-TSID 메타데이터 분할을 포함할 수 있다. 이들 서비스 시그널링 분할은 리니어 및 어플리케이션에 기초한 서비스에 적용될 수 있다. USBD 분할은 서비스 식별, 장치 성능 정보, 서비스 및 구성 미디어 컴포넌트에 액세스하는 데 요구되는 다른 SLS 분할에 대한 참조, 수신기가 서비스 컴포넌트의 전송 모드 (브로드캐스트 및/또는 브로드밴드)를 결정할 수 있게 하는 메타데이터를 포함한다. USBD에 의해 참조되는 S-TSID 분할은 서비스의 미디어 컨텐츠 컴포넌트가 전달되는 하나 이상의 ROUTE/LCT 세션에 대한 전송 세션 디스크립션 및 해당 LCT 세션에서 전달되는 딜리버리 오브젝트의 디스크립션을 제공한다. USBD 및 S-TSID는 후술한다.
ROUTE 에 근거한 딜리버리 중 Streaming Content Signaling 에 있어서, SLS 의 스트리밍 컨텐츠 시그널링 컴포넌트는 MPD 프래그먼트에 해당한다. MPD는 주로 스트리밍 컨텐츠로서의 DASH 분할의 딜리버리를 위한 리니어 서비스와 관련된다. MPD는 분할 URL 형태의 리니어/스트리밍 서비스의 개별 미디어 컴포넌트에 대한 소스 식별자, 및 미디어 프레젠테이션 내의 식별된 리소스의 컨텍스트를 제공한다. MPD 에 대한 구체적인 내용은 후술한다.
ROUTE 에 근거한 딜리버리 중 앱 기반 인헨스먼트 시그널링에 있어서, 앱 기반 인헨스먼트 시그널링은 어플리케이션 로직 파일, 국부적으로 캐싱된 미디어 파일, 네트워크 컨텐츠 아이템, 또는 공지 스트림과 같은 앱 기반 인헨스먼트 컴포넌트의 딜리버리에 속한다. 어플리케이션은 또한 가능한 경우 브로드밴드 커넥션 상에서 국부적으로 캐싱된 데이터를 검색할 수 있다.
이하, 본 도면에 도시된 USBD/USD 의 구체적인 내용에 대해 설명한다.
탑 레벨 또는 엔트리 포인트 SLS 분할은 USBD 분할이다. 도시된 USBD 프래그먼트는 본 발명의 일 실시예이며, 도시되지 않은 기본적인 USBD 프래그먼트의 필드들이 실시예에 따라 더 추가될 수도 있다. 전술한 바와 같이 도시된 USBD 프래그먼트는 확장된 형태로서 기본 구조에서 더 추가된 필드들을 가질 수 있다.
도시된 USBD 는 bundleDescription 루트 엘레멘트를 가질 수 있다. bundleDescription 루트 엘레멘트는 userServiceDescription 엘레멘트를 가질 수 있다. userServiceDescription 엘레멘트는 하나의 서비스에 대한 인스턴스일 수 있다.
userServiceDescription 엘레멘트는 @serviceId, @atsc:serviceId, @atsc:serviceStatus, @atsc:fullMPDUri, @atsc:sTSIDUri, name, serviceLanguage, atsc:capabilityCode 및/또는 deliveryMethod 를 포함할 수 있다.
@serviceId는 BSID의 범위 내에서 유일한 서비스를 식별하는 전 세계적으로 유일한 URI일 수 있다. 해당 파라미터는 ESG 데이터 (Service@globalServiceID)와 관련시키는 데 사용될 수 있다.
@atsc:serviced는 LLS (SLT)에서 해당하는 서비스 엔트리에 대한 레퍼런스이다. 해당 성질의 값은 해당 엔트리에 할당된 serviceId의 값과 동일하다.
@atsc:serviceStatus는 해당 서비스의 상태는 특정할 수 있다. 그 값은 해당 서비스가 활성화되어 있는지 비활성화되어 있는지를 나타낸다. "1" (참)로 설정되면, 서비스가 활성화되어 있다는 것을 나타낸다. 이 필드가 사용되지 않는 경우, 디폴트 값 1 로 설정될 수 있다.
@atsc:fullMPDUri는 브로드캐스트 상에서 선택적으로, 또한 브로드밴드 상에서 전달되는 서비스의 컨텐츠 컴포넌트에 대한 디스크립션을 포함하는 MPD 분할을 레퍼런싱할 수 있다.
@atsc:sTSIDUri는 해당 서비스의 컨텐츠를 전달하는 전송 세션에 액세스 관련 파라미터를 제공하는 S-TSID 분할을 레퍼런싱할 수 있다.
name은 lang 성질에 의해 주어지는 서비스의 네임을 나타낼 수 있다. name 엘레먼트는 서비스 네임의 언어를 나타내는 lang 성질을 포함할 수 있다. 언어는 XML 데이터타입에 따라 특정될 수 있다.
serviceLanguage는 서비스의 이용 가능한 언어를 나타낼 수 있다. 언어는 XML 데이터타입에 따라 특정될 수 있다.
atsc:capabilityCode는 수신기가 해당 서비스의 컨텐츠의 유의미한 프레젠테이션을 생성할 수 있도록 요구되는 캐패빌리티를 특정할 수 있다. 실시예에 따라 본 필드는 기 정의된 캐패빌리티 그룹을 특정할 수도 있다. 여기서 캐패빌리티 그룹은 유의미한 프리젠테이션을 위한 캐패빌리티 성질들 값의 그룹일 수 있다. 본 필드는 실시예에 따라 생략될 수 있다.
deliveryMethod는 액세스의 브로드캐스트 및 (선택적으로) 브로드밴드 모드 상에서 서비스의 컨텐츠에 속하는 정보에 관련된 트랜스포트의 컨테이너일 수 있다. 해당 서비스에 포함되는 데이터에 있어서, 그 데이터를 N 개라 하면, 그 각각의 데이터들에 대한 딜리버리 방법들이, 이 엘레멘트에 의해 기술될 수 있다. deliveryMethod 엘레멘트는 r12:broadcastAppService 엘레멘트와 r12:unicastAppService 엘레멘트를 포함할 수 있다. 각각의 하위 엘레멘트들은 basePattern 엘레멘트를 하위 엘레멘트로 가질 수 있다.
r12:broadcastAppService는 소속된 미디어 프레젠테이션의 모든 기간에 걸쳐 서비스에 속하는 해당 미디어 컴포넌트를 포함하는 다중화된 또는 비다중화된 형태의 브로드캐스트 상에서 전달되는 DASH 레프레젠테이션일 수 있다. 즉, 각각의 본 필드들은, 방송망을 통해 전달되는 DASH 레프레젠테이션(representation) 들을 의미할 수 있다.
r12:unicastAppService는 소속된 미디어 프레젠테이션의 모든 기간에 걸쳐 서비스에 속하는 구성 미디어 컨텐츠 컴포넌트를 포함하는 다중화된 또는 비다중화된 형태의 브로드밴드 상에서 전달되는 DASH 레프레젠테이션일 수 있다. 즉, 각각의 본 필드들은, 브로드밴드를 통해 전달되는 DASH 레프레젠테이션(representation) 들을 의미할 수 있다.
basePattern은 포함된 기간에 페어런트 레프레젠테이션의 미디어 분할을 요구하기 위해 DASH 클라이언트에 의해 사용되는 분할 URL의 모든 부분에 대해 매칭되도록 수신기에 의해 사용되는 문자 패턴일 수 있다. 매치는 해당 요구된 미디어 분할이 브로드캐스트 트랜스포트 상에서 전달되는 것을 암시한다. 각각의 r12:broadcastAppService 엘레멘트와 r12:unicastAppService 엘레멘트로 표현되는 DASH 레프레젠테이션을 전달받을 수 있는 URL 주소에 있어서, 그 URL 의 일부분 등은 특정한 패턴을 가질 수 있는데, 그 패턴이 본 필드에 의해 기술될 수 있다. 이 정보를 통하여 일정부분 데이터에 대한 구분이 가능할 수 있다. 제시된 디폴트 값들은 실시예에 따라 변경될 수 있다. 도시된 사용(use) 열은 각 필드에 관한 것으로, M 은 필수 필드, O 는 옵셔널 필드, OD 는 디폴트 값을 가지는 옵셔널 필드, CM 은 조건부 필수 필드를 의미할 수 있다. 0...1 내지 0...N 은 해당 필드들의 가능 개수를 의미할 수 있다.
도 6 은 본 발명의 일 실시예에 따른 ROUTE/DASH 를 위한 S-TSID 프래그먼트를 도시한 도면이다.
이하, 본 도면에 도시된 S-TSID 의 구체적인 내용에 대해 설명한다.
S-TSID는 서비스의 컨텐츠 컴포넌트를 전달하는 전송 세션에 대한 전체적인 세션 디스크립트 정보를 제공하는 SLS XML 분할일 수 있다. S-TSID는 서비스의 미디어 컨텐츠 컴포넌트가 전달되는 구성 LCT 세션 및 0개 이상의 ROUTE 세션에 대한 전체적인 전송 세션 디스크립트 정보를 포함하는 SLS 메타데이터 분할이다. S-TSID는 또한 LCT 세션에서 전달되는 컨텐츠 컴포넌트 및 페이로드 포맷에 대한 추가 정보뿐만 아니라 서비스의 LCT 세션에서 전달되는 딜리버리 오브젝트 또는 오브젝트 플로우에 대한 파일 메타데이터를 포함한다.
S-TSID 분할의 각 경우는 userServiceDescription 엘레먼트의 @atsc:sTSIDUri 성질에 의해 USBD 분할에서 레퍼런싱된다. 도시된 본 발명의 일 실시예에 따른 S-TSID 는 XML 도큐먼트 형태로 표현되었다. 실시예에 따라, S-TSID 는 바이너리 포맷 또는 XML 도큐먼트의 형태로 표현될 수 있다.
도시된 S-TSID 는 도시된 S-TSID 는 S-TSID 루트 엘레멘트를 가질 수 있다. S-TSID 루트 엘레멘트는 @serviceId 및/또는 RS 를 포함할 수 있다.
@serviceID는 USD에서 서비스 엘레멘트에 해당하는 레퍼런스일 수 있다. 해당 성질의 값은 service_id의 해당 값을 갖는 서비스를 레퍼런싱할 수 있다.
RS 엘레멘트는 해당 서비스 데이터들을 전달하는 ROUTE 세션에 대한 정보를 가질 수 있다. 복수개의 ROUTE 세션을 통해 서비스 데이터 내지 서비스 컴포넌트들이 전달될 수 있으므로, 본 엘레멘트는 1 내지 N 개의 개수를 가질 수 있다.
RS 엘레멘트는 @bsid, @sIpAddr, @dIpAddr, @dport, @PLPID 및/또는 LS 를 포함할 수 있다.
@bsid는 broadcastAppService의 컨텐츠 컴포넌트가 전달되는 브로드캐스트 스트림의 식별자일 수 있다. 해당 성질이 존재하지 않으면, 디폴트 브로드캐스트 스트림의 PLP가 해당 서비스에 대한 SLS 분할을 전달하는 것일 수 있다. 그 값은 SLT에서 broadcast_stream_id와 동일할 수 있다.
@sIpAddr은 소스 IP 어드레스를 나타낼 수 있다. 여기서 소스 IP 어드레스는, 해당 서비스에 포함되는 서비스 컴포넌트를 전달하는 ROUTE 세션의 소스 IP 어드레스일 수 있다. 전술한 바와 같이 하나의 서비스의 서비스 컴포넌트들은 복수개의 ROUTE 세션을 통해 전달될 수도 있다. 그 때문에, 해당 S-TSID 가 전달되는 ROUTE 세션이 아닌 다른 ROUTE 세션으로 그 서비스 컴포넌트가 전송될 수도 있다. 따라서, ROUTE 세션의 소스 IP 어드레스를 지시하기 위하여 본 필드가 사용될 수 있다. 본 필드의 디폴트 값은 현재 ROUTE 세션의 소스 IP 어드레스일 수 있다. 다른 ROUTE 세션을 통해 전달되는 서비스 컴포넌트가 있어 그 ROUTE 세션을 지시해야 되는 경우에는 본 필드 값은 그 ROUTE 세션의 소스 IP 어드레스 값일 수 있다. 이 경우 본 필드는 M, 즉 필수 필드일 수 있다.
@dIpAddr은 데스티네이션 IP 어드레스를 나타낼 수 있다. 여기서 데스티네이션 IP 어드레스는, 해당 서비스에 포함되는 서비스 컴포넌트를 전달하는 ROUTE 세션의 데스티네이션 IP 어드레스일 수 있다. @sIpAddr 에서 설명한 것과 같은 경우를 위해, 본 필드는 서비스 컴포넌트를 전달하는 ROUTE 세션의 데스티네이션 IP 어드레스를 지시할 수 있다. 본 필드의 디폴트 값은 현재 ROUTE 세션의 데스티네이션 IP 어드레스일 수 있다. 다른 ROUTE 세션을 통해 전달되는 서비스 컴포넌트가 있어 그 ROUTE 세션을 지시해야 되는 경우에는 본 필드 값은 그 ROUTE 세션의 데스티네이션 IP 어드레스 값일 수 있다. 이 경우 본 필드는 M, 즉 필수 필드일 수 있다.
@dport는 데스티네이션 포트를 나타낼 수 있다. 여기서 데스티네이션 포트는, 해당 서비스에 포함되는 서비스 컴포넌트를 전달하는 ROUTE 세션의 데스티네이션 포트일 수 있다. @sIpAddr 에서 설명한 것과 같은 경우를 위해, 본 필드는 서비스 컴포넌트를 전달하는 ROUTE 세션의 데스티네이션 포트를 지시할 수 있다. 본 필드의 디폴트 값은 현재 ROUTE 세션의 데스티네이션 포트 넘버일 수 있다. 다른 ROUTE 세션을 통해 전달되는 서비스 컴포넌트가 있어 그 ROUTE 세션을 지시해야 되는 경우에는 본 필드 값은 그 ROUTE 세션의 데스티네이션 포트 넘버 값일 수 있다. 이 경우 본 필드는 M, 즉 필수 필드일 수 있다.
@PLPID 는 RS 로 표현되는 ROUTE 세션을 위한 PLP 의 ID 일 수 있다. 디폴트 값은 현재 S-TSID 가 포함된 LCT 세션의 PLP 의 ID 일 수 있다. 실시예에 따라 본 필드는 해당 ROUTE 세션에서 S-TSID 가 전달되는 LCT 세션을 위한 PLP 의 ID 값을 가질 수도 있고, 해당 ROUTE 세션을위한 모든 PLP 들의 ID 값들을 가질 수도 있다.
LS 엘레멘트는 해당 서비스 데이터들을 전달하는 LCT 세션에 대한 정보를 가질 수 있다. 복수개의 LCT 세션을 통해 서비스 데이터 내지 서비스 컴포넌트들이 전달될 수 있으므로, 본 엘레멘트는 1 내지 N 개의 개수를 가질 수 있다.
LS 엘레멘트는 @tsi, @PLPID, @bw, @startTime, @endTime, SrcFlow 및/또는 RprFlow 를 포함할 수 있다.
@tsi 는 해당 서비스의 서비스 컴포넌트가 전달되는 LCT 세션의 TSI 값을 지시할 수 있다.
@PLPID 는 해당 LCT 세션을 위한 PLP 의 ID 정보를 가질 수 있다. 이 값은 기본 ROUTE 세션 값을 덮어쓸 수도 있다.
@bw 는 최대 밴드위스 값을 지시할 수 있다. @startTime 은 해당 LCT 세션의 스타트 타임(Start time)을 지시할 수 있다. @endTime 은 해당 LCT 세션의 엔드 타임(End time)을 지시할 수 있다. SrcFlow 엘레멘트는 ROUTE 의 소스 플로우에 대해 기술할 수 있다. RprFlow 엘레멘트는 ROUTE 의 리페어 플로우에 대해 기술할 수 있다.
제시된 디폴트 값들은 실시예에 따라 변경될 수 있다. 도시된 사용(use) 열은 각 필드에 관한 것으로, M 은 필수 필드, O 는 옵셔널 필드, OD 는 디폴트 값을 가지는 옵셔널 필드, CM 은 조건부 필수 필드를 의미할 수 있다. 0...1 내지 0...N 은 해당 필드들의 가능 개수를 의미할 수 있다.
이하, ROUTE/DASH 를 위한 MPD (Media Presentation Description) 에 대해 설명한다.
MPD는 방송사에 의해 정해진 주어진 듀레이션의 리니어 서비스에 해당하는 DASH 미디어 프레젠테이션의 공식화된 디스크립션을 포함하는 SLS 메타데이터 분할이다 (예를 들면, 어떤 기간 동안의 하나의 TV 프로그램 또는 연속적인 리니어 TV 프로그램의 집합). MPD의 컨텐츠는 미디어 프레젠테이션 내에서 식별된 리소스에 대한 컨텍스트 및 분할에 대한 소스 식별자를 제공한다. MPD 분할의 데이터 구조 및 시맨틱스는 MPEG DASH에 의해 정의된 MPD에 따를 수 있다.
MPD에서 전달되는 하나 이상의 DASH 레프레젠테이션은 브로드캐스트 상에서 전달될 수 있다. MPD는 하이브리드 서비스의 경우와 같은 브로드밴드 상에서 전달되는 추가 레프레젠테이션을 서술하거나, 브로드캐스트 신호 악화 (예를 들면, 터널 속 주행)로 인한 브로드캐스트에서 브로드캐스트로의 핸드오프에서 서비스 연속성을 지원할 수 있다.
도 7 은 본 발명의 일 실시예에 따른 MMT 를 위한 USBD/USD 프래그먼트를 도시한 도면이다.
리니어 서비스를 위한 MMT SLS는 USBD 분할 및 MP 테이블을 포함한다. MP 테이블은 전술한 바와 같다. USBD 분할은 서비스 식별, 장치 성능 정보, 서비스 및 구성 미디어 컴포넌트에 액세스하는 데 요구되는 다른 SLS 분할에 대한 참조, 수신기가 서비스 컴포넌트의 전송 모드 (브로드캐스트 및/또는 브로드밴드)를 결정할 수 있게 하는 메타데이터를 포함한다. USBD에 의해 참조되는 MPU 컴포넌트에 대한 MP 테이블은 서비스의 미디어 컨텐츠 컴포넌트가 전달되는 MMTP 세션에 대한 전송 세션 디스크립션 및 MMTP 세션에서 전달되는 에셋의 디스크립션을 제공한다.
MPU 컴포넌트에 대한 SLS의 스트리밍 컨텐츠 시그널링 컴포넌트는 MMT에서 정의된 MP 테이블에 해당한다. MP 테이블은 각 에셋이 단일 서비스 컴포넌트에 해당하는 MMT 에셋의 리스트 및 해당 컴포넌트에 대한 위치 정보의 디스크립션을 제공한다.
USBD 분할은 ROUTE 프로토콜 및 브로드밴드에 의해 각각 전달되는 서비스 컴포넌트에 대해 전술한 바와 같은 S-TSID 및 MPD에 대한 참조도 포함할 수 있다. 실시예에 따라, MMT 를 통한 딜리버리에 있어 ROUTE 프로토콜을 통해 전달되는 서비스 컴포넌트란 NRT 등의 데이터이므로, 이 경우에 있어 MPD 는 필요치 않을 수 있다. 또한, MMT 를 통한 딜리버리에 있어 브로드밴드를 통해 전달되는 서비스 컴포넌트는 어떤 LCT 세션을 통해 전달되는지에 대한 정보가 필요치 않으므로 S-TSID 는 필요치 않을 수 있다. 여기서, MMT 패키지는 MMT 를 이용하여 전달되는, 미디어 데이터의 논리적 콜렉션일 수 있다. 여기서, MMTP 패킷은 MMT 를 이용하여 전달되는 미디어 데이터의 포맷된 유닛을 의미할 수 있다. MPU (Media Processing Unit) 은 독립적으로 디코딩 가능한 타임드/논-타임드 데이터의 제네릭 컨테이너를 의미할 수 있다. 여기서, MPU에서의 데이터는 미디어 코덱 애그노스틱이다.
이하, 본 도면에 도시된 USBD/USD 의 구체적인 내용에 대해 설명한다.
도시된 USBD 프래그먼트는 본 발명의 일 실시예이며, 도시되지 않은 기본적인 USBD 프래그먼트의 필드들이 실시예에 따라 더 추가될 수도 있다. 전술한 바와 같이 도시된 USBD 프래그먼트는 확장된 형태로서 기본 구조에서 더 추가된 필드들을 가질 수 있다.
도시된 본 발명의 일 실시예에 따른 USBD 는 XML 도큐먼트 형태로 표현되었다. 실시예에 따라, USBD 는 바이너리 포맷 또는 XML 도큐먼트의 형태로 표현될 수 있다.
도시된 USBD 는 bundleDescription 루트 엘레멘트를 가질 수 있다. bundleDescription 루트 엘레멘트는 userServiceDescription 엘레멘트를 가질 수 있다. userServiceDescription 엘레멘트는 하나의 서비스에 대한 인스턴스일 수 있다.
userServiceDescription 엘레멘트는 @serviceId, @atsc:serviceId, name, serviceLanguage, atsc:capabilityCode, atsc:Channel, atsc:mpuComponent, atsc:routeComponent, atsc:broadband Component 및/또는 atsc:ComponentInfo 를 포함할 수 있다.
여기서, @serviceId, @atsc:serviceId, name, serviceLanguage, atsc:capabilityCode 는 전술한 것과 같을 수 있다. name 필드 밑의 lang 필드 역시 전술한 것과 같을 수 있다. atsc:capabilityCode 는 실시예에 따라 생략될 수 있다.
userServiceDescription 엘레멘트는, 실시예에 따라 atsc:contentAdvisoryRating 엘레멘트를 더 포함할 수 있다. 이 엘레멘트는 옵셔널 엘레멘트일 수 있다. atsc:contentAdvisoryRating는 컨텐츠 자문 순위를 특정할 수 있다. 본 필드는 도면에 도시되지 않았다.
atsc:Channel 은 서비스의 채널에 대한 정보를 가질 수 있다. atsc:Channel 엘레멘트는 @atsc:majorChannelNo, @atsc:minorChannelNo, @atsc:serviceLang, @atsc:serviceGenre, @atsc:serviceIcon 및/또는 atsc:ServiceDescription 를 포함할 수 있다. @atsc:majorChannelNo, @atsc:minorChannelNo, @atsc:serviceLang 는 실시예에 따라 생략될 수 있다.
@atsc:majorChannelNo는 서비스의 주 채널 넘버를 나타내는 성질이다.
@atsc:minorChannelNo는 서비스의 부 채널 넘버를 나타내는 성질이다.
@atsc:serviceLang는 서비스에서 사용되는 주요 언어를 나타내는 성질이다.
@atsc:serviceGenre는 서비스의 주요 장르를 나타내는 성질이다.
@atsc:serviceIcon는 해당 서비스를 표현하는 데 사용되는 아이콘에 대한 URL을 나타내는 성질이다.
atsc:ServiceDescription은 서비스 디스크립션을 포함하며 이는 다중 언어일 수 있다. atsc:ServiceDescription은 @atsc:serviceDescrText 및/또는 @atsc:serviceDescrLang를 포함할 수 있다.
@atsc:serviceDescrText는 서비스의 디스크립션을 나타내는 성질이다.
@atsc:serviceDescrLang는 상기 serviceDescrText 성질의 언어를 나타내는 성질이다.
atsc:mpuComponent 는 MPU 형태로 전달되는 서비스의 컨텐츠 컴포넌트에 대한 정보를 가질 수 있다. atsc:mpuComponent 는 @atsc:mmtPackageId 및/또는 @atsc:nextMmtPackageId 를 포함할 수 있다.
@atsc:mmtPackageId는 MPU로 전달되는 서비스의 컨텐츠 컴포넌트에 대한 MMT 패키지를 레퍼런싱할 수 있다.
@atsc:nextMmtPackageId는 MPU로 전달되는 서비스의 컨텐츠 컴포넌트에 맞추어 @atsc:mmtPackageId에 의해 참조된 후에 사용되는 MMT 패키지를 레퍼런싱할 수 있다.
atsc:routeComponent 는 ROUTE 를 통해 전달되는 서비스의 컨텐츠 컴포넌트에 대한 정보를 가질 수 있다. atsc:routeComponent 는 @atsc:sTSIDUri, @sTSIDPlpId, @sTSIDDestinationIpAddress, @sTSIDDestinationUdpPort, @sTSIDSourceIpAddress, @sTSIDMajorProtocolVersion 및/또는 @sTSIDMinorProtocolVersion 를 포함할 수 있다.
@atsc:sTSIDUri는 해당 서비스의 컨텐츠를 전달하는 전송 세션에 액세스 관련 파라미터를 제공하는 S-TSID 분할을 레퍼런싱할 수 있다. 이 필드는 전술한 ROUTE 를 위한 USBD 에서의 S-TSID 를 레퍼런싱하기 위한 URI 와 같을 수 있다. 전술한 바와 같이 MMTP 에 의한 서비스 딜리버리에 있어서도, NRT 등을 통해 전달되는 서비스 컴포넌트들은 ROUTE 에 의해 전달될 수 있다. 이를 위한 S-TSID 를 레퍼런싱하기 위하여 본 필드가 사용될 수 있다.
@sTSIDPlpId는 해당 서비스에 대한 S-TSID를 전달하는 PLP의 PLP ID를 나타내는 정수를 표현하는 스트링일 수 있다. (디폴트: 현재 PLP)
@sTSIDDestinationIpAddress는 해당 서비스에 대한 S-TSID를 전달하는 패킷의 dotted-IPv4 데스티네이션 어드레스를 포함하는 스트링일 수 있다. (디폴트: 현재 MMTP 세션의 소스 IP 어드레스)
@sTSIDDestinationUdpPort는 해당 서비스에 대한 S-TSID를 전달하는 패킷의 포트 넘버를 포함하는 스트링일 수 있다.
@sTSIDSourceIpAddress는 해당 서비스에 대한 S-TSID를 전달하는 패킷의 dotted-IPv4 소스 어드레스를 포함하는 스트링일 수 있다.
@sTSIDMajorProtocolVersion은 해당 서비스에 대한 S-TSID를 전달하기 위해 사용되는 프로토콜의 주 버전 넘버를 나타낼 수 있다. 디폴트 값은 1이다.
@sTSIDMinorProtocolVersion은 해당 서비스에 대한 S-TSID를 전달하기 위해 사용되는 프로토콜의 부 버전 넘버를 나타낼 수 있다. 디폴트 값은 0이다.
atsc:broadbandComponent 는 브로드밴드를 통해 전달되는 서비스의 컨텐츠 컴포넌트에 대한 정보를 가질 수 있다. 즉, 하이브리드 딜리버리를 상정한 필드일 수 있다. atsc:broadbandComponent 는 @atsc:fullfMPDUri 를 더 포함할 수 있다.
@atsc:fullfMPDUri는 브로드밴드로 전달되는 서비스의 컨텐츠 컴포넌트에 대한 디스크립션을 포함하는 MPD 분할에 대한 레퍼런스일 수 있다.
atsc:ComponentInfo 는 서비스의 어베일러블한(available) 컴포넌트에 대한 정보를 가질 수 있다. 각각의 컴포넌트에 대한, 타입, 롤, 이름 등의 정보를 가질 수 있다. 각 컴포넌트(N개) 개수만큼 본 필드가 존재할 수 있다. atsc:ComponentInfo 는 @atsc:componentType, @atsc:componentRole, @atsc:componentProtectedFlag, @atsc:componentId 및/또는 @atsc:componentName 을 포함할 수 있다.
@atsc:componentType은 해당 컴포넌트의 타입을 나타내는 성질이다. 0의 값은 오디오 컴포넌트를 나타낸다. 1의 값은 비디오 컴포넌트를 나타낸다. 2의 값은 클로즈드 캡션 컴포넌트를 나타낸다. 3의 값은 어플리케이션 컴포넌트를 나타낸다. 4 내지 7의 값은 남겨둔다. 본 필드 값의 의미는 실시예에 따라 다르게 설정될 수도 있다.
@atsc:componentRole은 해당 컴포넌트의 역할 및 종류를 나타내는 성질이다.
오디오에 대해 (상기 componentType 성질이 0과 동일할 때), componentRole 성질의 값은 다음과 같다. 0 = Complete main, 1 = 음악 및 효과 (Music and Effects), 2 = 대화 (Dialog), 3 = 해설 (Commentary), 4 = 시각 장애 (Visually Impaired), 5 = 청각 장애 (Hearing Impaired), 6 = 보이스오버 (Voice-Over), 7-254= reserved, 255 = 알 수 없음 (unknown).
오디오에 대해 (상기 componentType 성질이 1과 동일할 때), componentRole 성질의 값은 다음과 같다. 0 = Primary video, 1= 대체 카메라 뷰 (Alternative camera view), 2 = 다른 대체 비디오 컴포넌트 (Other alternative video component), 3 = 수화 삽입 (Sign language inset), 4 = Follow subject video, 5 = 3D 비디오 좌측 뷰 (3D video left view), 6 = 3D 비디오 우측 뷰 (3D video right view), 7 = 3D 비디오 깊이 정보 (3D video depth information), 8 = Part of video array <x,y> of <n,m>, 9 = Follow-Subject metadata, 10-254 = reserved, 255 = 알 수 없음 (unknown).
클로즈드 캡션 컴포넌트에 대해, (상기 componentType 성질이 2와 동일할 때), componentRole 성질의 값은 다음과 같다. 0 = Normal, 1 = Easy reader, 2-254 = reserved, 255 = 알 수 없음 (unknown).
상기 componentType 성질의 값이 3과 7 사이이면, componentRole 255와 동일할 수 있다. 본 필드 값의 의미는 실시예에 따라 다르게 설정될 수도 있다.
@atsc:componentProtectedFlag는 해당 컴포넌트가 보호되는지 (예를 들면, 암호화되는지)를 나타내는 성질이다. 해당 플레그가 1의 값으로 설정되면, 해당 컴포넌트는 보호된다 (예를 들면, 암호화된다). 해당 플레그가 0의 값으로 설정되면, 해당 컴포넌트는 보호되지 않는다 (예를 들면, 암호화되지 않는다). 존재하지 않는 경우, componentProtectedFlag 성질의 값은 0과 같은 것으로 추론된다. 본 필드 값의 의미는 실시예에 따라 다르게 설정될 수도 있다.
@atsc:componentId는 해당 컴포넌트의 식별자를 나타내는 성질이다. 해당 성질의 값은 해당 컴포넌트에 해당하는 MP 테이블에서 asset_id와 동일할 수 있다.
@atsc:componentName은 해당 컴포넌트의 사람이 판독 가능한 이름을 나타내는 성질이다.
제시된 디폴트 값들은 실시예에 따라 변경될 수 있다. 도시된 사용(use) 열은 각 필드에 관한 것으로, M 은 필수 필드, O 는 옵셔널 필드, OD 는 디폴트 값을 가지는 옵셔널 필드, CM 은 조건부 필수 필드를 의미할 수 있다. 0...1 내지 0...N 은 해당 필드들의 가능 개수를 의미할 수 있다.
이하, MMT 를 위한 MPD (Media Presentation Description) 에 대해 설명한다.
MPD는 방송사에 의해 정해진 주어진 듀레이션의 리니어 서비스에 해당하는 SLS 메타데이터 분할이다 (예를 들면, 하나의 TV 프로그램, 또는 어떤 기간 동안의 연속적인 리니어 TV 프로그램의 집합). MPD의 컨텐츠는 분할에 대한 리소스 식별자 및 미디어 프레젠테이션 내에서 식별된 리소스에 대한 컨텍스트를 제공한다. MPD의 데이터 구조 및 시맨틱스는 MPEG DASH에 의해 정의된 MPD에 따를 수 있다.
본 발명의 실시예에 있어서, MMTP 세션에 의해 전달되는 MPD는 하이브리드 서비스의 경우와 같은 브로드밴드 상에서 전달되는 레프레젠테이션을 서술하거나, 브로드캐스트 신호 악화 (예를 들면, 산 아래나 터널 속 주행)로 인한 브로드캐스트에서 브로드캐스트로의 핸드오프에서 서비스 연속성을 지원할 수 있다.
이하, MMT 를 위한 MMT 시그널링 메시지에 대해서 설명한다.
MMTP 세션이 스트리밍 서비스를 전달하기 위해서 사용되면, MMT에 의해 정의된 MMT 시그널링 메시지는 MMT에 의해 정의된 시그널링 메시지 모드에 따라 MMTP 패킷에 의해 전달된다. 에셋을 전달하는 MMTP 패킷과 동일한 packet_id 값으로 설정될 수 있는, 에셋에 특정한 MMT 시그널링 메시지를 전달하는 MMTP 패킷을 제외하고 SLS를 전달하는 MMTP 패킷의 packet_id 필드의 값은 "00"으로 설정된다. 각 서비스에 대한 적절한 패킷을 레퍼런싱하는 식별자는 전술한 바와 같이 USBD 분할에 의해 시그널링된다. 매칭하는 MMT_package_id를 갖는 MPT 메시지는 SLT에서 시그널링되는 MMTP 세션 상에서 전달될 수 있다. 각 MMTP 세션은 그 세션에 특정한 MMT 시그널링 메시지 또는 MMTP 세션에 의해 전달되는 각 에셋을 전달한다.
즉, SLT 에서 특정 서비스에 대한 SLS 를 가지는 패킷의 IP 데스티네이션 어드레스/포트 넘버 등을 특정하여 MMTP 세션의 USBD 에 접근할 수 있다. 전술한 바와 같이 SLS 를 운반하는 MMTP 패킷의 패킷 ID 는 00 등 특정값으로 지정될 수 있다. USBD 의 전술한 패키지 ID 정보를 이용하여, 매칭되는 패키지 ID 를 가지는 MPT 메시지에 접근할 수 있다. MPT 메시지는 후술하는 바와 같이 각 서비스 컴포넌트/에셋에 접근하는데 사용될 수 있다.
다음의 MMTP 메시지는 SLT에서 시그널링되는 MMTP 세션에 의해 전달될 수 있다.
MPT 메시지: 이 메시지는 모든 에셋의 리스트 및 MMT에 의해 정의된 바와 같은 그것들의 위치 정보를 포함하는 MP 테이블을 전달한다. 에셋이 MP 테이블을 전달하는 현 PLP와 다른 PLP에 의해 전달되면, 해당 에셋을 전달하는 PLP의 식별자는 PLP 식별자 디스크립터를 사용한 MP 테이블에서 제공될 수 있다. PLP 식별자 디스크립터에 대해서는 후술한다.
MMT ATSC3 (MA3) message mmt_atsc3_message(): 이 메시지는 전술한 바와 같이 SLS를 포함하는 서비스에 특정한 시스템 메타데이터를 전달한다. mmt_atsc3_message()에 대해서는 후술한다.
다음의 MMTP 메시지는 필요한 경우 SLT에서 시그널링된 MMTP 세션에 의해 전달될 수 있다.
MPI 메시지: 이 메시지는 프레젠테이션 정보의 모든 다큐먼트 또는 일부 다큐먼트를 포함하는 MPI 테이블을 전달한다. MPI 테이블과 관련된 MP 테이블은 이 메시지에 의해 전달될 수 있다.
CRI (clock relation information) 메시지: 이 메시지는 NTP 타임스탬프와 MPEG-2 STC 사이의 매핑을 위한 클록 관련 정보를 포함하는 CRI 테이블을 전달한다. 실시예에 따라 CRI 메시지는 해당 MMTP 세션을 통해 전달되지 않을 수 있다.
다음의 MMTP 메시지는 스트리밍 컨텐츠를 전달하는 각 MMTP 세션에 의해 전달될 수 있다.
가상적인 수신기 버퍼 모델 메시지: 이 메시지는 버퍼를 관리하기 위해 수신기에 의해 요구되는 정보를 전달한다.
가상적인 수신기 버퍼 모델 제거 메시지: 이 메시지는 MMT 디캡슐레이션 버퍼를 관리하기 위해 수신기에 의해 요구되는 정보를 전달한다.
이하, MMT 시그널링 메시지 중 하나인 mmt_atsc3_message() 에 대해서 설명한다. MMT 시그널링 메시지인 mmt_atsc3_message()는 전술한 본 발명에 따라 서비스에 특정한 정보를 전달하기 위해 정의된다. 본 시그널링 메시지는 MMT 시그널링 메시지의 기본적인 필드인 메시지 ID, 버전 및/또는 길이(length) 필드를 포함할 수 있다. 본 시그널링 메시지의 페이로드에는 서비스 ID 정보와, 컨텐트 타입, 컨텐트 버전, 컨텐트 컴프레션 정보 및/또는 URI 정보가 포함될 수 있다. 컨텐트 타입 정보는 본 시그널링 메시지의 페이로드에 포함되는 데이터의 타입을 지시할 수 있다. 컨텐트 버전 정보는 페이로드에 포함되는 데이터의 버전을, 컨텐트 컴프레션 정보는 해당 데이터에 적용된 컴프레션 타입을 지시할 수 있다. URI 정보는 본 메시지에 의해 전달되는 컨텐츠와 관련된 URI 정보를 가질 수 있다.
이하, PLP 식별자 디스크립터에 대해서 설명한다.
PLP 식별자 디스크립터는 전술한 MP 테이블의 디스크립터 중 하나로 사용될 수 있는 디스크립터이다. PLP 식별자 디스크립터는 에셋을 전달하는 PLP에 관한 정보를 제공한다. 에셋이 MP 테이블을 전달하는 현재 PLP와 다른 PLP에 의해 전달되면, PLP 식별자 디스크립터는 그 에셋을 전달하는 PLP를 식별하기 위해 관련된 MP 테이블에서 에셋 디스크립터로 사용될 수 있다. PLP 식별자 디스크립터는 PLP ID 정보 외에 BSID 정보를 더 포함할 수도 있다. BSID 는 이 디스크립터에 의해 기술되는 Asset 을 위한 MMTP 패킷을 전달하는 브로드캐스트 스트림의 ID 일 수 있다.
도 8 은 본 발명의 일 실시예에 따른 링크 레이어 프로토콜 아키텍쳐를 도시한 도면이다.
이하, 링크 레이어(Link Layer) 에 대해서 설명한다.
링크 레이어는 피지컬 레이어와 네트워크 레이어 사이의 레이어이며, 송신 측에서는 네트워크 레이어에서 피지컬 레이어로 데이터를 전송하고, 수신 측에서는 피지컬 레이어에서 네트워크 레이어로 데이터를 전송한다. 링크 레이어의 목적은 피지컬 레이어에 의한 처리를 위해 모든 입력 패킷 타입을 하나의 포맷으로 요약하는 것, 아직 정의되지 않은 입력 타입에 대한 유연성 및 추후 확장 가능성을 보장하는 것이다. 또한, 링크 레이어 내에서 처리하면, 예를 들면, 입력 패킷의 헤더에 있는 불필요한 정보를 압축하는 데 옵션을 제공함으로써, 입력 데이터가 효율적으로 전송될 수 있도록 보장된다. 인캡슐레이션, 콤프레션 등의 동작은 링크 레이어 프로토콜이라 불리고, 해당 프로토콜을 이용하여 생성된 패킷은 링크 레이어 패킷이라 불린다. 링크 레이어는 패킷 인캡슐레이션(packet encapsulation), 오버헤드 리덕션(Overhead Reduction) 및/또는 시그널링 전송(Signaling Transmission) 등의 기능을 수행할 수 있다.
이하, 패킷 인캡슐레이션에 대해서 설명한다. 링크 레이어 프로토콜은 IP 패킷 및 MPEG-2 TS와 같은 것을 포함하는 모든 타입의 패킷의 인캡슐레이션을 가능하게 한다. 링크 레이어 프로토콜을 이용하여, 피지컬 레이어는 네트워크 레이어 프로토콜 타입과 독립적으로 하나의 패킷 포맷만 처리하면 된다 (여기서 네트워크 레이어 패킷의 일종으로 MPEG-2 TS 패킷을 고려). 각 네트워크 레이어 패킷 또는 입력 패킷은 제네릭 링크 레이어 패킷의 페이로드로 변형된다. 추가적으로, 입력 패킷 사이즈가 특별히 작거나 큰 경우 피지컬 레이어 리소스를 효율적으로 이용하기 위해 연쇄 및 분할이 실행될 수 있다.
전술한 바와 같이 패킷 인캡슐레이션 과정에서 분할(segmentation) 이 활용될 수 있다. 네트워크 레이어 패킷이 지나치게 커서 피지컬 레이어에서 쉽게 처리하지 못하는 경우, 네트워크 레이어 패킷은 두 개 이상의 분할로 나누어진다. 링크 레이어 패킷 헤더는 송신 측에서 분할을 실행하고 수신 측에서 재결합을 실행하기 위해 프로토콜 필드를 포함한다. 네트워크 레이어 패킷이 분할되는 경우, 각 분할은 네트워크 레이어 패킷에서의 원래 위치와 같은 순서로 링크 레이어 패킷으로 인캡슐레이션 될 수 있다. 또한 네트워크 레이어 패킷의 분할을 포함하는 각 링크 레이어 패킷은 결과적으로 피지컬 레이어로 전송될 수 있다.
전술한 바와 같이 패킷 인캡슐레이션 과정에서 연쇄(concatenation) 또한 활용될 수 있다. 링크 레이어 패킷의 페이로드가 여러 네트워크 레이어 패킷을 포함할 정도로 네트워크 레이어 패킷이 충분히 작은 경우, 링크 레이어 패킷 헤더는 연쇄를 실행하기 위해 프로토콜 필드를 포함한다. 연쇄는 다수의 작은 크기의 네트워크 레이어 패킷을 하나의 페이로드로 결합한 것이다. 네트워크 레이어 패킷들이 연쇄되면, 각 네트워크 레이어 패킷은 원래의 입력 순서와 같은 순서로 링크 레이어 패킷의 페이로드로 연쇄될 수 있다. 또한, 링크 레이어 패킷의 페이로드를 구성하는 각 패킷은 패킷의 분할이 아닌 전체 패킷일 수 있다.
이하, 오버헤드 리덕션에 대해서 설명한다. 링크 레이어 프로토콜의 사용으로 인해 피지컬 레이어 상에서 데이터의 전송에 대한 오버헤드가 크게 감소할 수 있다. 본 발명에 따른 링크 레이어 프로토콜은 IP 오버헤드 리덕션 및/또는 MPEG-2 TS 오버헤드 리덕션을 제공할 수 있다. IP 오버헤드 리덕션에 있어서, IP 패킷은 고정된 헤더 포맷을 가지고 있으나, 통신 환경에서 필요한 일부 정보는 브로드캐스트 환경에서 불필요할 수 있다. 링크 레이어 프로토콜은 IP 패킷의 헤더를 압축함으로써 브로드캐스트 오버헤드를 줄이는 메커니즘을 제공한다. MPEG-2 TS 오버헤드 리덕션에 있어서, 링크 레이어 프로토콜은 싱크 바이트 제거, 널 패킷 삭제 및/또는 공통 헤더 제거 (압축)을 제공한다. 우선, 싱크 바이트 제거는 TS 패킷당 하나의 바이트의 오버헤드 리덕션을 제공하고, 다음으로, 널 패킷 삭제 메커니즘은 수신기에서 재삽입될 수 있는 방식으로 188 바이트의 널 TS 패킷을 제거한다. 마지막으로, 공통 헤더 제거 메커니즘이 제공된다.
시그널링 전송에 대해서, 링크 레이어 프로토콜은 시그널링 패킷을 위한 특정 포맷이, 링크 레이어 시그널링을 전송하기 위하여 제공될 수 있다. 이에 관해서는 후술한다.
*도시된 본 발명의 일 실시예에 따른 링크 레이어 프로토콜 아키텍쳐에서, 링크 레이어 프로토콜은 입력 패킷으로 IPv4, MPEG-2 TS 등과 같은 입력 네트워크 레이어 패킷을 취한다. 향후 확장은 다른 패킷 타입과 링크 레이어에서 입력될 수 있는 프로토콜을 나타낸다. 링크 레이어 프로토콜은 피지컬 레이어에서 특정 채널에 대한 매핑에 관한 정보를 포함하는 모든 링크 레이어 시그널링에 대한 시그널링 및 포맷을 특정한다. 도면은 ALP가 어떻게 다양한 헤더 컴프레션 및 삭제 알고리즘을 통해 전송 효율을 향상시키기 위해 메커니즘을 포함하는지 나타낸다. 또한 링크 레이어 프로토콜은 기본적으로 입력 패킷들을 인캡슐레이션할 수 있다.
도 9 는 본 발명의 일 실시예에 따른 링크 레이어 패킷의 베이스 헤더 구조를 도시한 도면이다. 이하, 헤더의 구조에 대해서 설명한다.
링크 레이어 패킷은 데이터 페이로드가 뒤따르는 헤더를 포함할 수 있다. 링크 레이어 패킷의 패킷은 베이스 헤더를 포함할 수 있고, 베이스 헤더의 컨트롤 필드에 따라 추가 헤더를 포함할 수 있다. 옵셔널 헤더의 존재는 추가 헤더의 플레그 필드로부터 지시된다. 실시예에 따라, 추가 헤더, 옵셔널 헤더의 존재를 나타내는 필드는 베이스 헤더에 위치할 수도 있다.
이하, 베이스 헤더의 구조에 대해서 설명한다. 링크 레이어 패킷 인캡슐레이션에 대한 베이스 헤더는 계층 구조를 갖는다. 베이스 헤더는 2바이트의 길이를 가질 수 있고, 링크 레이어 패킷 헤더의 최소 길이이다.
도시된 본 발명의 일 실시예에 따른 베이스 헤더는, Packet_Type 필드, PC 필드 및/또는 길이(length) 필드를 포함할 수 있다. 실시예에 따라 베이스 헤더는 HM 필드 또는 S/C 필드를 더 포함할 수 있다.
Packet_Type 필드는 링크 레이어 패킷으로의 인캡슐레이션 전의 입력 데이터의 패킷 타입 또는 원래의 프로토콜을 나타내는 3비트 필드이다. IPv4 패킷, 압축된 IP 패킷(compressed IP packet), 링크 레이어 시그널링 패킷, 및 그 밖의 타입의 패킷들이 이러한 베이스 헤더 구조를 가지며 인캡슐레이션 될 수 있다. 단, 실시예에 따라 MPEG-2 TS 패킷은 이와 다른 특별한 구조를 가지며 인캡슐레이션 될 수 있다. Packet_Type의 값이 "000" "001" "100" 또는 "111" 이면, 이면, ALP 패킷의 원래의 데이터 타입은 IPv4 패킷, 압축 IP 패킷, 링크 레이어 시그널링 또는 익스텐션 패킷 중 하나이다. MPEG-2 TS 패킷이 캡슐화되면, Packet_Type의 값은 "010"이 될 수 있다. 다른 Packet_Type 필드의 값들은 향후 사용을 위해 남겨둘 수 있다(reserved for future use).
Payload_Configuration (PC) 필드는 페이로드의 구성을 나타내는 1비트 필드일 수 있다. 0의 값은 링크 레이어 패킷이 하나의 전체 입력 패킷을 전달하고 다음 필드가 Header_Mode라는 것을 나타낼 수 있다. 1의 값은 링크 레이어 패킷이 하나 이상의 입력 패킷 (연쇄)이나 큰 입력 패킷 (분할)의 일부를 전달하며 다음 필드가 Segmentation_Concatenation이라는 것을 나타낼 수 있다.
Header_Mode (HM) 필드는 0으로 설정되는 경우 추가 헤더가 없다는 것을 나타내고 링크 레이어 패킷의 페이로드의 길이가 2048 바이트보다 작다는 것을 나타내는 1비트 필드일 수 있다. 이 수치는 실시예에 따라 변경될 수 있다. 1의 값은 아래에 정의된 하나의 패킷을 위한 추가 헤더가 길이 필드 다음에 존재한다는 것을 나타낼 수 있다. 이 경우, 페이로드의 길이는 2047 바이트보다 크고/크거나 옵션 피쳐가 사용될 수 있다 (서브 스트림 식별, 헤더 확장 등). 이 수치는 실시예에 따라 변경될 수 있다. 본 필드는 링크 레이어 패킷의 Payload_Configuration 필드가 0의 값을 가질 때만 존재할 수 있다.
Segmentation_Concatenation (S/C) 필드는 0으로 설정된 경우 페이로드가 입력 패킷의 세그먼트를 전달하고 아래에 정의되는 분할을 위한 추가 헤더가 길이 필드 다음에 존재한다는 것을 나타내는 1비트 필드일 수 있다. 1의 값은 페이로드가 하나보다 많은 완전한 입력 패킷을 전달하고 아래에 정의된 연쇄를 위한 추가 헤더가 길이 필드 다음에 존재한다는 것을 나타낼 수 있다. 본 필드는 ALP 패킷의 Payload_Configuration 필드의 값이 1일 때만 존재할 수 있다.
길이 필드는 링크 레이어 패킷에 의해 전달되는 페이로드의 바이트 단위의 길이의 11 LSBs (least significant bits)를 나타내는 11비트 필드일 수 있다. 다음의 추가 헤더에 Length_MSB 필드가 있으면, 길이 필드는 Length_MSB 필드에 연쇄되고 페이로드의 실제 총 길이를 제공하기 위해 LSB가 된다. 길이필드의 비트수는 11 비트외에 다른 비트로 변경될 수도 있다.
따라서 다음의 패킷 구조의 타입이 가능하다. 즉, 추가 헤더가 없는 하나의 패킷, 추가 헤더가 있는 하나의 패킷, 분할된 패킷, 연쇄된 패킷이 가능하다. 실시예에 따라 각 추가 헤더와 옵셔널 헤더, 후술할 시그널링 정보를 위한 추가헤더와 타입 익스텐션을 위한 추가헤더에 의한 조합으로, 더 많은 패킷 컨피규레이션이 가능할 수 있다.
도 10 은 본 발명의 일 실시예에 따른 링크 레이어 패킷의 추가 헤더 구조를 도시한 도면이다.
추가 헤더(additional header) 는 다양한 타입이 있을 수 있다. 이하 싱글 패킷을 위한 추가 헤더에 대해서 설명한다.
하나의 패킷에 대한 해당 추가 헤더는 Header_Mode (HM) ="1"인 경우 존재할 수 있다. 링크 레이어 패킷의 페이로드의 길이가 2047 바이트보다 크거나 옵션 필드가 사용되는 경우 Header_Mode (HM)는 1로 설정될 수 있다. 하나의 패킷의 추가 헤더(tsib10010)는 도면에 나타낸다.
Length_MSB 필드는 현재 링크 레이어 패킷에서 바이트 단위의 총 페이로드 길이의 MSBs (most significant bits)를 나타낼 수 있는 5비트 필드일 수 있고, 총 페이로드 길이를 얻기 위해 11 LSB를 포함하는 길이 필드에 연쇄된다. 따라서 시그널링될 수 있는 페이로드의 최대 길이는 65535 바이트이다. 길이필드의 비트수는 11 비트외에 다른 비트로 변경될 수도 있다. 또한 Length_MSB 필드 역시 비트수가 변경될 수 있으며 이에 따라 최대 표현가능한 페이로드 길이 역시 변경될 수 있다. 실시예에 따라 각 길이필드들은 페이로드가 아닌 전체 링크 레이어 패킷의 길이를 지시할 수도 있다.
Sub-stream Identifier Flag (SIF) 필드는 HEF (Header Extension Flag) 필드 후에 SID (sub-stream ID)가 존재하는지 나타낼 수 있는 1비트 필드가 될 수 있다. 링크 레이어 패킷에 SID가 없으면, SIF 필드는 0으로 설정될 수 있다. 링크 레이어 패킷에서 HEF 필드 후에 SID가 존재하면, SIF는 1로 설정될 수 있다. SID에 대한 자세한 내용은 후술한다.
HEF 필드는 1로 설정되는 경우 추후 확장을 위해 추가 헤더가 존재한다는 것을 나타낼 수 있는 1비트 필드가 될 수 있다. 0의 값은 이 확장 필더가 존재하지 않는다는 것을 나타낼 수 있다.
이하, 분할(segmentation) 이 활용되는 경우에 있어서 추가 헤더에 대해서 설명한다.
Segmentation_Concatenation (S/C) ="0"인 경우 추가 헤더(tsib10020)가 존재할 수 있다. Segment_Sequence_Number는 링크 레이어 패킷에 의해 전달되는 해당 분할의 순서를 나타낼 수 있는 5비트의 무부호 정수가 될 수 있다. 입력 패킷의 첫 번째 분할을 전달하는 링크 레이어 패킷에 대해, 해당 필드의 값은 0x0으로 설정될 수 있다. 해당 필드는 분할될 입력 패킷에 속하는 각 추가 세그먼트마다 1씩 증분될 수 있다.
LSI (Last_Segment_Indicator)는 1로 설정되는 경우 해당 페이로드에 있는 분할이 입력 패킷의 마지막 것임을 나타낼 수 있는 1비트 필드일 수 있다. 0의 값은 그것이 마지막 분할이 아님을 나타낼 수 있다.
SIF (Sub-stream Identifier Flag)는 SID가 HEF 필드 후에 존재하는지 나타낼 수 있는 1비트 필드가 될 수 있다. 링크 레이어 패킷에 SID가 존재하지 않으면, SIF 필드는 0으로 설정될 수 있다. 링크 레이어 패킷에서 HEF 필드 후에 SID가 존재하면, SIF는 1로 설정될 수 있다.
HEF 필드는 1로 설정되는 경우 링크 레이어 헤더의 추후 확장을 위해 추가 헤더 후에 옵셔널 헤더 확장이 존재한다는 것을 나타낼 수 있는 1비트 필드일 수 있다. 0의 값은 옵셔널 헤더 확장이 존재하지 않는다는 것을 나타낼 수 있다.
실시예에 따라 각 분할된 세그먼트가 동일한 입력 패킷으로부터 생성되었음을 지시하는 패킷 ID 필드가 추가될 수도 있다. 이 필드는 분할된 세그먼트가 순서대로 전송된다면 필요치 않아 생략될 수 있다.
이하, 연쇄(concatenation) 이 활용되는 경우에 있어서 추가 헤더에 대해서 설명한다.
Segmentation_Concatenation (S/C) ="1"인 경우 추가 헤더(tsib10030)가 존재할 수 있다.
Length_MSB는 해당 링크 레이어 패킷에서 바이트 단위의 페이로드 길이의 MSB 비트를 나타낼 수 있는 4비트 필드일 수 있다. 해당 페이로드의 최대 길이는 연쇄를 위해 32767 바이트가 된다. 전술한 바와 마찬가지로 자세한 수치는 변경될 수 있다.
Count 필드는 링크 레이어 패킷에 포함된 패킷의 수를 나타낼 수 있는 필드일 수 있다. 링크 레이어 패킷에 포함된 패킷의 수에 해당하는 2는 해당 필드에 설정될 수 있다. 따라서, 링크 레이어 패킷에서 연쇄된 패킷의 최대값은 9이다. Count 필드가 그 개수를 지시하는 방법은 실시예마다 다를 수 있다. 즉, 1 부터 8 까지의 개수가 지시될 수도 있다.
HEF 필드는 1로 설정되는 경우 링크 레이어 헤더의 향후 확장을 위한 추가 헤더 후에 옵셔널 헤더 확장이 존재한다는 것을 나타낼 수 있는 1비트 필드일 수 있다. 0의 값은 확장 헤더가 존재하지 않는다는 것을 나타낼 수 있다.
Component_Length는 각 패킷의 바이트 단위 길이를 나타낼 수 있는 12비트 필드일 수 있다. Component_Length 필드는 마지막 컴포넌트 패킷을 제외하고 페이로드에 존재하는 패킷과 같은 순서로 포함된다. 길이 필드의 수는 (Count+1)에 의해 나타낼 수 있다. 실시예에 따라 Count 필드의 값과 같은 수의 길이 필드가 존재할 수도 있다. 링크 레이어 헤더가 홀수의 Component_Length로 구성되는 경우, 네 개의 스터핑 비트가 마지막 Component_Length 필드에 뒤따를 수 있다. 이들 비트는 0으로 설정될 수 있다. 실시예에 따라 마지막 연쇄된 인풋패킷의 길이를 나타내는 Component_Length 필드는 존재하지 않을 수 있다. 이 경우, 마지막 연쇄된 인풋패킷의 길이는 전체 페이로드 길이에서 각 Component_length 필드가 나타내는 값의 합을 뺀 길이로 지시될 수 있다.
이하, 옵셔널 헤더에 대해서 설명한다.
전술한 바와 같이 옵셔널 헤더는 추가 헤더 뒤편에 추가될 수 있다. 옵셔널 헤더 필드는 SID 및/또는 헤더 확장을 포함할 수 있다. SID는 링크 레이어 레벨에서 특정 패킷 스트림을 필터링하는 데 사용된다. SID의 일례는 다수의 서비스를 전달하는 링크 레이어 스트림에서 서비스 식별자의 역할이다. 적용 가능한 경우, 서비스와 서비스에 해당하는 SID 값 사이의 매핑 정보는 SLT에서 제공될 수 있다. 헤더 확장은 향후 사용을 위한 확장 필드를 포함한다. 수신기는 자신이 이해하지 못하는 모든 헤더 확장을 무시할 수 있다.
SID는 링크 레이어 패킷에 대한 서브 스트림 식별자를 나타낼 수 있는 8비트 필드일 수 있다. 옵셔널 헤더 확장이 있으면, SID는 추가 헤더와 옵셔널 헤더 확장 사이에 존재한다.
Header_Extension ()는 아래에 정의된 필드를 포함할 수 있다.
Extension_Type은 Header_Extension ()의 타입을 나타낼 수 있는 8비트 필드일 수 있다.
Extension_Length는 Header_Extension ()의 다음 바이트부터 마지막 바이트까지 카운팅되는 Header Extension ()의 바이트 길이를 나타낼 수 있는 8비트 필드일 수 있다.
Extension_Byte는 Header_Extension ()의 값을 나타내는 바이트일 수 있다.
도 11 은 본 발명의 다른 실시예에 따른 링크 레이어 패킷의 추가 헤더 구조를 도시한 도면이다.
이하, 시그널링 정보를 위한 추가 헤더에 대해서 설명한다.
링크 레이어 시그널링이 어떻게 링크 레이어 패킷에 포함되는지는 다음과 같다. 시그널링 패킷은 베이스 헤더의 Packet_Type 필드가 100과 같을 때 식별된다.
도면(tsib11010)은 시그널링 정보를 위한 추가 헤더를 포함하는 링크 레이어 패킷의 구조를 나타낸다. 링크 레이어 헤더뿐만 아니라, 링크 레이어 패킷은 시그널링 정보를 위한 추가 헤더와 실제 시그널링 데이터 자체의 두 추가 부분으로 구성될 수 있다. 링크 레이어 시그널링 패킷의 총 길이는 링크 레이어 패킷 헤더에 나타낸다.
시그널링 정보를 위한 추가 헤더는 다음의 필드들을 포함할 수 있다. 실시예에 따라 일부 필드는 생략될 수 있다.
Signaling_Type은 시그널링의 타입을 나타낼 수 있는 8비트 필드일 수 있다.
Signaling_Type_Extension은 시그널링의 속성을 나타낼 수 있는 16비트 필드일 수 있다. 해당 필드의 자세한 내용은 시그널링 사양에서 정의될 수 있다.
Signaling_Version은 시그널링의 버전을 나타낼 수 있는 8비트 필드일 수 있다.
Signaling_Format은 시그널링 데이터의 데이터 포맷을 나타낼 수 있는 2비트 필드일 수 있다. 여기서 시그널링 포맷이란 바이너리, XML 등의 데이터 포맷을 의미할 수 있다.
Signaling_Encoding은 인코딩/컴프레션 포맷을 특정할 수 있는 2비트 필드일 수 있다. 본 필드는 컴프레션이 수행되지 않았는지, 어떤 특정한 컴프레션이 수행되었는지를 지시할 수 있다.
이하, 패킷 타입 확장을 위한 추가 헤더에 대해서 설명한다.
추후에 링크 레이어에 의해 전달되는 패킷 타입 및 추가 프로토콜의 무제한에 가까운 수를 허용하는 메커니즘을 제공하기 위해, 추가 헤더가 정의된다. 전술한 바와 같이 베이스 헤더에서 Packet_type이 111인 경우 패킷 타입 확장이 사용될 수 있다. 도면(tsib11020)은 타입 확장을 위한 추가 헤더를 포함하는 링크 레이어 패킷의 구조를 나타낸다.
타입 확장을 위한 추가 헤더는 다음의 필드들을 포함할 수 있다. 실시예에 따라 일부 필드는 생략될 수 있다.
extended_type은 페이로드로서 링크 레이어 패킷으로 인캡슐레이션되는 입력의 프로토콜이나 패킷 타입을 나타낼 수 있는 16비트 필드일 수 있다. 해당 필드는 Packet_Type 필드에 의해 이미 정의된 모든 프로토콜이나 패킷 타입에 대해 사용될 수 없다.
도 12 은 본 발명의 일 실시예에 따른, MPEG-2 TS 패킷을 위한 링크 레이어 패킷의 헤더 구조와, 그 인캡슐레이션 과정을 도시한 도면이다.
이하, 입력 패킷으로 MPEG-2 TS 패킷이 입력되었을 때, 링크 레이어 패킷 포맷에 대해서 설명한다.
이 경우, 베이스 헤더의 Packet_Type 필드는 010과 동일하다. 각 링크 레이어 패킷 내에서 다수의 TS 패킷이 인캡슐레이션 될 수 있다. TS 패킷의 수는 NUMTS 필드를 통해 시그널링 될 수 있다. 이 경우, 전술한 바와 같이, 특별한 링크 레이어 패킷 헤더 포맷이 사용될 수 있다.
링크 레이어는 전송 효율을 향상시키기 위해 MPEG-2 TS를 위한 오버헤드 리덕션 메커니즘을 제공한다. 각 TS 패킷의 싱크 바이트(0x47)는 삭제될 수 있다. 널 패킷 및 유사한 TS 헤더를 삭제하는 옵션 또한 제공된다.
불필요한 전송 오버헤드를 피하기 위해, TS 널 패킷(PID = 0x1FFF)이 제거될 수 있다. 삭제된 널 패킷은 DNP 필드를 이용하여 수신기 측에서 복구될 수 있다. DNP 필드는 삭제된 널 패킷의 카운트를 나타낸다. DNP 필드를 이용한 널 패킷 삭제 메커니즘은 아래에서 설명한다.
전송 효율을 더욱 향상시키기 위해, MPEG-2 TS 패킷의 유사한 헤더가 제거될 수 있다. 두 개 이상의 순차적인 TS 패킷이 순차적으로 CC (continuity counter) 필드를 증가시키고 다른 헤더 필드도 동일하면, 헤더가 첫 번째 패킷에서 한 번 전송되고 다른 헤더는 삭제된다. HDM 필드는 헤더가 삭제되었는지 여부를 나타낼 수 있다. 공통 TS 헤더 삭제의 상세한 과정은 아래에 설명한다.
세 가지 오버헤드 리덕션 메커니즘이 모두 실행되는 경우, 오버헤드 리덕션은 싱크 제거, 널 패킷 삭제, 공통 헤더 삭제의 순으로 실행될 수 있다. 실시예에 따라 각 메커니즘이 수행되는 순서는 바뀔 수 있다. 또한, 실시예에 따라 일부 메커니즘은 생략될 수 있다.
MPEG-2 TS 패킷 인캡슐레이션을 사용하는 경우 링크 레이어 패킷 헤더의 전체적인 구조가 도면(tsib12010)에 도시된다.
*이하, 도시된 각 필드에 대해서 설명한다. Packet_Type은 전술한 바와 같이 입력 패킷의 프로토콜 타입을 나타낼 수 있는 3비트 필드일 수 있다. MPEG-2 TS 패킷 인캡슐레이션을 위해, 해당 필드는 항상 010으로 설정될 수 있다.
NUMTS (Number of TS packets)는 해당 링크 레이어 패킷의 페이로드에서 TS 패킷의 수를 나타낼 수 있는 4비트 필드일 수 있다. 최대 16개의 TS 패킷이 하나의 링크 레이어 패킷에서 지원될 수 있다. NUMTS = 0의 값은 16개의 TS 패킷이 링크 레이어 패킷의 페이로드에 의해 전달된다는 것을 나타낼 수 있다. NUMTS의 다른 모든 값에 대해, 같은 수의 TS 패킷이 인식된다. 예를 들면, NUMTS = 0001은 하나의 TS 패킷이 전달되는 것을 의미한다.
AHF (additional header flag)는 추가 헤더가 존재하는지 여부를 나타낼 수 있는 필드일 수 있다. 0의 값은 추가 헤더가 존재하지 않는다는 것을 나타낸다. 1의 값은 1바이트 길이의 추가 헤더가 베이스 헤더 다음에 존재한다는 것을 나타낸다. 널 TS 패킷이 삭제되거나 TS 헤더 컴프레션이 적용되면, 해당 필드는 1로 설정될 수 있다. TS 패킷 인캡슐레이션을 위한 추가 헤더는 다음의 두 개의 필드로 구성되고 해당 링크 레이어 패킷에서의 AHF의 값이 1로 설정되는 경우에만 존재한다.
HDM (header deletion mode)은 TS 헤더 삭제가 해당 링크 레이어 패킷에 적용될 수 있는지 여부를 나타내는 1비트 필드일 수 있다. 1의 값은 TS 헤더 삭제가 적용될 수 있다는 것을 나타낸다. 0의 값은 TS 헤더 삭제 방법이 해당 링크 레이어 패킷에 적용되는 않는다는 것을 나타낸다.
DNP (deleted null packets)는 해당 링크 레이어 패킷 전에 삭제된 널 TS 패킷의 수를 나타내는 7비트 필드일 수 있다. 최대 128개의 널 TS 패킷이 삭제될 수 있다. HDM = 0인 경우, DNP = 0의 값은 128개의 널 패킷이 삭제된다는 것을 나타낼 수 있다. HDM = 1인 경우, DNP = 0의 값은 널 패킷이 삭제되지 않는다는 것을 나타낼 수 있다. DNP의 다른 모든 값에 대해, 같은 수의 널 패킷이 인식된다. 예를 들면, DNP = 5는 5개의 널 패킷이 삭제된다는 것을 의미한다.
전술한 각 필드의 비트 수들은 변경될 수 있으며, 변경된 비트 수에 따라 그 해당 필드가 지시하는 값의 최소/최대값은 변경될 수 있다. 이는 설계자의 의도에 따라 변경될 수 있다.
이하 싱크 바이트 삭제(SYNC byte removal) 에 대해서 설명한다.
TS 패킷을 링크 레이어 패킷의 페이로드로 캡슐화하는 경우, 각 TS 패킷의 시작부터 싱크 바이트(0x47)가 삭제될 수 있다. 따라서 링크 레이어 패킷의 페이로드로 캡슐화된 MPEG2-TS 패킷의 길이는 (원래의 188 바이트 대신) 항상 187 바이트이다.
이하, 널 패킷 삭제(Null Packet Deletion) 에 대해서 설명한다.
전송 스트림 규칙은 송신기의 멀티플렉서의 출력 및 수신기의 디멀티플렉서의 입력에서의 비트 레이트가 시간에 대해 일정하며 종단간 지연 또한 일정할 것을 요구한다. 일부 전송 스트림 입력 신호에 대해, 널 패킷은 일정한 비트레이스 스트림에 가변적인 비트레이트 서비스를 수용하기 위해 존재할 수 있다. 이 경우, 불필요한 전송 오버헤드를 피하기 위해, TS 널 패킷 (즉, PID = 0x1FFF인 TS 패킷)이 제거될 수 있다. 이 처리는 제거된 널 패킷이 수신기에서 원래의 정확한 자리에 다시 삽입될 수 있는 방식으로 실행되므로, 일정한 비트레이트를 보장하고 PCR 타임 스탬프 업데이트를 할 필요가 없어진다.
링크 레이어 패킷의 생성 전에, DNP라 불리는 카운터는 우선 0으로 리셋된 후에 현재 링크 레이어 패킷의 페이로드에 인캡슐레이션 될 첫 번째 널 TS 패킷이 아닌 패킷에 앞서는 각 삭제된 널 패킷에 대해 증분될 수 있다. 그 후 연속된 유용한 TS 패킷의 그룹이 현재의 링크 레이어 페킷의 페이로드에 인캡슐레이션되고, 그 헤더에서의 각 필드의 값이 결정될 수 있다. 생성된 링크 레이어 패킷이 피지컬 레이어에 주입된 후, DNP는 0으로 리셋된다. DNP가 최고 허용치에 도달하는 경우, 다음 패킷 또한 널 패킷이면, 해당 널 패킷은 유용한 패킷으로 유지되며 다음 링크 레이어 패킷의 페이로드에 인캡슐레이션된다. 각 링크 레이어 패킷은 그것의 페이로드에 적어도 하나의 유용한 TS 패킷을 포함할 수 있다.
이하, TS 패킷 헤더 삭제(TS Packet Header Deletion) 에 대해서 설명한다. TS 패킷 헤더 삭제는 TS 패킷 헤더 압축으로 불릴 수도 있다.
두 개 이상의 순차적인 TS 패킷이 순차적으로 CC 필드를 증가시키고 다른 헤더 필드도 동일하면, 헤더가 첫 번째 패킷에서 한 번 전송되고 다른 헤더는 삭제된다. 중복된 MPEG-2 TS 패킷이 두 개 이상의 순차적인 TS 패킷에 포함되면, 헤더 삭제는 송신기 측에서 적용될 수 없다. HDM 필드는 헤더가 삭제되는지 여부를 나타낼 수 있다. TS 헤더가 삭제되는 경우, HDM은 1로 설정될 수 있다. 수신기 측에서, 첫 번째 패킷 헤더를 이용하여, 삭제된 패킷 헤더가 복구되고, CC가 첫 번째 헤더부터 순서대로 증가됨으로써 복구된다.
도시된 실시예(tsib12020)는, TS 패킷의 인풋 스트림이 링크 레이어 패킷으로 인캡슐레이션되는 과정의 일 실시예이다. 먼저 SYNC 바이트(0x47)을 가지는 TS 패킷들로 이뤄진 TS 스트림이 입력될 수 있다. 먼저 SYNC 바이트 삭제과정을 통해 싱크 바이트들이 삭제될 수 있다. 이 실시예에서 널 패킷 삭제는 수행되지 않은 것으로 가정한다.
여기서, 도시된 8개의 TS 패킷의 패킷 헤더에서, CC 즉 Countinuity Counter 필드 값을 제외한 다른 값들이 모두 같다고 가정한다. 이 경우, TS 패킷 삭제/압축이 수행될 수 있다. CC = 1 인 첫번째 TS 패킷의 헤더만 남기고, 나머지 7개의 TS 패킷 헤더를 삭제한다. 처리된 TS 패킷들은 링크 레이어 패킷의 페이로드에 인캡슐레이션 될 수 있다.
완성된 링크 레이어 패킷을 보면, Packet_Type 필드는 TS 패킷이 입력된 경우이므로 010 의 값을 가질 수 있다. NUMTS 필드는 인캡슐레이션된 TS 패킷의 개수를 지시할 수 있다. AHF 필드는 패킷 헤더 삭제가 수행되었으므로 1 로 설정되어 추가 헤더의 존재를 알릴 수 있다. HDM 필드는 헤더 삭제가 수행되었으므로 1 로 설정될 수 있다. DNP 는 널 패킷 삭제가 수행되지 않았으므로 0 으로 설정될 수 있다.
도 13 는 본 발명의 일 실시예에 따른 IP 헤더 압축에 있어서, 어댑테이션 모드들의 실시예를 도시한 도면이다(송신측).
이하, IP 헤더 압축(IP Header Compression) 에 대해서 설명한다.
링크 레이어에서, IP 헤더 컴프레션/디컴프레션 스킴이 제공될 수 있다. IP 헤더 컴프레션은 헤더 컴프레서/디컴프레서 및 어댑테이션 모듈의 두 부분을 포함할 수 있다. 헤더 컴프레션 스킴은 RoHC에 기초할 수 있다. 또한, 방송 용도로 어댑테이션 기능이 추가된다.
송신기 측에서, RoHC 컴프레서는 각 패킷에 대해 헤더의 크기를 감소시킨다. 그 후, 어댑테이션 모듈은 컨텍스트 정보를 추출하고 각 패킷 스트림으로부터 시그널링 정보를 생성한다. 수신기 측에서, 어댑테이션 모듈은 수신된 패킷 스트림과 관련된 시그널링 정보를 파싱하고 컨텍스트 정보를 수신된 패킷 스트림에 첨부한다. RoHC 디컴프레서는 패킷 헤더를 복구함으로써 원래의 IP 패킷을 재구성한다.
헤더 컴프레션 스킴은 전술한 바와 같이 ROHC 를 기반으로 할 수 있다. 특히, 본 시스템에서는 ROHC 의 U 모드(uni dirctional mode) 에서 ROHC 프레임워크가 동작할 수 있다. 또한, 본 시스템에서 0x0002 의 프로파일 식별자로 식별되는 ROHC UDP 헤더 컴프레션 프로파일이 사용될 수 있다.
이하, 어댑테이션(Adaptation) 에 대해서 설명한다.
단방향 링크를 통한 전송의 경우, 수신기가 컨텍스트의 정보를 갖고 있지 않으면, 디컴프레서는 완전한 컨텍스트를 수신할 때까지 수신된 패킷 헤더를 복구할 수 없다. 이는 채널 변경 지연 및 턴 온 딜레이 (turn-on delay)를 초래할 수 있다. 이러한 이유로, 컴프레서와 디컴프레서 사이의 컨피규레이션 파라미터와 컨텍스트 정보는 항상 패킷 플로우와 함께 전송될 수 있다.
어댑테이션 기능은 컨피규레이션 파라미터와 컨텍스트 정보의 대역 외 전송을 제공한다. 대역 외 전송은 링크 레이어 시그널링을 통해 이루어질 수 있다. 따라서, 어댑테이션 기능은 컨텍스트 정보의 손실로 인한 디컴프레션 에러 및 채널 변경 지연을 줄이기 위해 이용된다.
이하, 컨텍스트 정보(Context Information) 의 추출에 대해서 설명한다.
컨텍스트 정보의 추출은 어댑테이션 모드에 따라 다양한 방법으로 실시될 수 있다. 본 발명에서는 이하 3가지 실시예에 대해서 설명한다. 본 발명의 범위는 후술할 어댑테이션 모드의 실시예들에 한정되지 아니한다. 여기서 어댑테이션 모드는 컨텍스트 추출 모드라고 불릴 수도 있다.
어댑테이션 모드 1 (도시되지 않음) 은 기본적인 ROHC 패킷 스트림에 대해서 어떠한 추가적인 동작이 가해지지 않는 모드일 수 있다. 즉, 이 모드에서 어댑테이션 모듈은 버퍼로서 동작할 수 있다. 따라서, 이 모드에서는 링크 레이어 시그널링에 컨텍스트 정보가 있지 않을 수 있다.
어댑테이션 모드 2 (tsib13010)에서, 어댑테이션 모듈은 RoHC 패킷 플로우로부터 IR 패킷을 검출하고 컨텍스트 정보 (스태틱 체인)를 추출할 수 있다. 컨텍스트 정보를 추출한 후에, 각 IR 패킷은 IR-DYN 패킷으로 전환될 수 있다. 전환된 IR-DYN 패킷은 원래의 패킷을 대체하여 IR 패킷과 같은 순서로 RoHC 패킷 플로우 내에 포함되어 전송될 수 있다.
어댑테이션 모드 3 (tsib13020)에서, 어댑테이션 모듈은 RoHC 패킷 플로우로부터 IR 및 IR-DYN 패킷을 검출하고 컨텍스트 정보를 추출할 수 있다. 스태틱 체인 및 다이네믹 체인은 IR 패킷으로부터 추출될 수 있고, 다이네믹 체인은 IR-DYN 패킷으로부터 추출될 수 있다. 컨텍스트 정보를 추출한 후에, 각각의 IR 및 IR-DYN 패킷은 압축된 패킷으로 전환될 수 있다. 압축된 패킷 포맷은 IR 또는 IR-DYN 패킷의 다음 패킷과 동일할 수 있다. 전환된 압축 패킷은 원래의 패킷을 대체하여 IR 또는 IR-DYN 패킷과 같은 순서로 RoHC 패킷 플로우 내에 포함되어 전송될 수 있다.
시그널링 (컨텍스트) 정보는 전송 구조에 근거하여 인캡슐레이션 될 수 있다. 예를 들면, 컨텍스트 정보는 링크 레이어 시그널링로 인캡슐레이션 될 수 있다. 이 경우, 패킷 타입 값은 100으로 설정될 수 있다.
전술한 어댑테이션 모드 2, 3 에 대하여, 컨텍스트 정보에 대한 링크 레이어 패킷은 100 의 Packet Type 필드 값을 가질 수 있다. 또한 압축된 IP 패킷들에 대한 링크 레이어 패킷은 001 의 Packet Type 필드 값을 가질 수 있다. 이는 각각 시그널링 정보, 압축된 IP 패킷이 링크 레이어 패킷에 포함되어 있음을 지시하는 것으로, 전술한 바와 같다.
이하, 추출된 컨텍스트 정보를 전송하는 방법에 대해서 설명한다.
추출된 컨텍스트 정보는 특정 피지컬 데이터 경로를 통해 시그널링 데이터와 함께 RoHC 패킷 플로우와 별도로 전송될 수 있다. 컨텍스트의 전송은 피지컬 레이어 경로의 구성에 의존한다. 컨텍스트 정보는 시그널링 데이터 파이프를 통해 다른 링크 레이어 시그널링과 함께 전송될 수 있다.
즉, 컨텍스트 정보를 가지는 링크 레이어 패킷은 다른 링크 레이어 시그널링 정보를 가지는 링크 레이어 패킷들과 함께 시그널링 PLP 로 전송될 수 있다(Packet_Type = 100). 컨텍스트 정보가 추출된 압축 IP 패킷들은 일반적인 PLP 로 전송될 수 있다(Packet_Type = 001). 여기서 실시예에 따라, 시그널링 PLP 는 L1 시그널링 패쓰(path)를 의미할 수 있다. 또한 실시예에 따라 시그널링 PLP 는 일반적인 PLP 와 구분되지 않고, 시그널링 정보가 전송되는 특정한 일반 PLP 를 의미할 수도 있다.
수신측에서는, 패킷 스트림을 수신하기에 앞서, 수신기가 시그널링 정보를 얻어야 할 수 있다. 수신기가 시그널링 정보를 획득하기 위해 첫 PLP를 디코딩하면, 컨텍스트 시그널링도 수신될 수 있다. 시그널링 획득이 이루어진 후, 패킷 스트림을 수신하기 위한 PLP가 선택될 수 있다. 즉, 수신기는 먼저 이니셜 PLP 를 선택해 컨텍스트 정보를 비롯한 시그널링 정보를 얻을 수 있다. 여기서 이니셜 PLP 는 전술한 시그널링 PLP 일 수 있다. 이 후, 수신기는 패킷 스트림을 얻기 위한 PLP 를 선택할 수 있다. 이를 통하여 컨텍스트 정보는 패킷 스트림의 수신에 앞서 획득될 수 있다.
패킷 스트림을 얻기 위한 PLP 가 선택된 후, 어댑테이션 모듈은 수신된 패킷 플로우로부터 IR-DYN 패킷을 검출할 수 있다. 그 후, 어댑테이션 모듈은 시그널링 데이터에서 컨텍스트 정보로부터 스태틱 체인을 파싱한다. 이는 IR 패킷을 수신하는 것과 유사하다. 동일한 컨텍스트 식별자에 대해, IR-DYN 패킷은 IR 패킷으로 복구될 수 있다. 복구된 RoHC 패킷 플로우는 RoHC 디컴프레서로 보내질 수 있다. 이후 디컴프레션이 시작될 수 있다.
도 14 은 본 발명의 일 실시예에 따른 LMT(Link Mapping Table) 및 ROHC-U 디스크립션 테이블을 도시한 도면이다.
이하, 링크 레이어 시그널링에 대해서 설명한다.
주로, 링크 레이어 시그널링은 IP 레벨 하에서 동작한다. 수신기 측에서, 링크 레이어 시그널링은 SLT 및 SLS와 같은 IP 레벨 시그널링보다 먼저 획득될 수 있다. 따라서 링크 레이어 시그널링은 세션 설정 이전에 획득될 수 있다.
링크 레이어 시그널링에 대해, 입력 경로에 따라 인터널 링크 레이어 시그널링 및 익스터널 링크 레이어 시그널링의 두 종류의 시그널링이 존재할 수 있다. 인터널 링크 레이어 시그널링은 송신기 측에서 링크 레이어에서 생성된다. 또한 링크 레이어는 외부 모듈 또는 프로토콜로부터 시그널링을 취한다. 이러한 종류의 시그널링 정보는 익스터널 링크 레이어 시그널링이라고 간주된다. 일부 시그널링이 IP 레벨 시그널링에 앞서 획득될 필요가 있으면, 외부 시그널링은 링크 레이어 패킷의 포맷으로 전송된다.
링크 레이어 시그널링은 전술한 바와 같이 링크 레이어 패킷으로 인캡슐레이션 될 수 있다. 링크 레이어 패킷은 바이너리 및 XML을 포함한 모든 포맷의 링크 레이어 시그널링을 전달할 수 있다. 동일한 시그널링 정보가 링크 레이어 시그널링에 대해 다른 포맷으로 전송될 수 있다.
인터널 링크 레이어 시그널링에는, 링크 매핑을 위한 시그널링 정보가 포함될 수 있다. LMT는 PLP에 전달되는 상위 레이어 세션의 리스트를 제공한다. LMT는 또한 링크 레이어에서 상위 레이어 세션을 전달하는 링크 레이어 패킷을 처리하기 위한 추가 정보를 제공한다.
본 발명에 따른 LMT 의 일 실시예(tsib14010)가 도시되었다.
signaling_type은 해당 테이블에 의해 전달되는 시그널링의 타입을 나타내는 8비트의 무부호 정수 필드일 수 있다. LMT에 대한 signaling_type 필드의 값은 0x01로 설정될 수 있다.
PLP_ID는 해당 테이블에 해당하는 PLP를 나타내는 8비트 필드일 수 있다.
num_session은 상기 PLP_ID 필드에 의해 식별되는 PLP에 전달되는 상위 레이어 세션의 개수를 제공하는 8비트의 무부호 정수 필드일 수 있다. signaling_type 필드의 값이 0x01이면, 해당 필드는 PLP에서 UDP/IP 세션의 개수를 나타낼 수 있다.
src_IP_add는 PLP_ID 필드에 의해 식별되는 PLP에 전달되는 상위 레이어 세션의 소스 IP 어드레스를 포함하는 32비트의 무부호 정수 필드일 수 있다.
dst_IP_add는 PLP_ID 필드에 의해 식별되는 PLP에 전달되는 상위 레이어 세션의 데스티네이션 IP 어드레스를 포함하는 32비트의 무부호 정수 필드일 수 있다.
src_UDP_port는 PLP_ID 필드에 의해 식별되는 PLP에 전달되는 상위 레이어 세션의 소스 UDP 포트 넘버를 나타내는 16비트의 무부호 정수 필드일 수 있다.
dst_UDP_port는 PLP_ID 필드에 의해 식별되는 PLP에 전달되는 상위 레이어 세션의 데스티네이션 UDP 포트 넘버를 나타내는 16비트의 무부호 정수 필드일 수 있다.
SID_flag는 상기 4개의 필드 Src_IP_add, Dst_IP_add, Src_UDP_Port, Dst_UDP_Port에 의해 식별되는 상위 레이어 세션을 전달하는 링크 레이어 패킷이 그 옵셔널 헤더에 SID 필드를 갖는지 여부를 나타내는 1비트의 부울 필드일 수 있다. 해당 필드의 값이 0으로 설정되면, 상위 레이어 세션을 전달하는 링크 레이어 패킷이 그 옵셔널 헤더에 SID 필드를 갖지 않을 수 있다. 해당 필드의 값이 1로 설정되면, 상위 레이어 세션을 전달하는 링크 레이어 패킷이 그 옵셔널 헤더에 SID 필드를 가질 수 있고, SID 필드의 값이 해당 테이블에서 다음 SID 필드와 동일할 수 있다.
compressed_flag는 헤더 컴프레션이 상기 4개의 필드 Src_IP_add, Dst_IP_add, Src_UDP_Port, Dst_UDP_Port에 의해 식별되는 상위 레이어 세션을 전달하는 링크 레이어 패킷에 적용되는지 여부를 나타내는 1비트 부울 필드일 수 있다. 해당 필드의 값이 0으로 설정되면, 상위 레이어 세션을 전달하는 링크 레이어 패킷은 그 베이스 헤더에 Packet_Type 필드의 0x00의 값을 가질 수 있다. 해당 필드의 값이 1로 설정되면, 상위 레이어 세션을 전달하는 링크 레이어 패킷은 그 베이스 헤더에 Packet_Type 필드의 0x01의 값을 가질 수 있고 Context_ID 필드가 존재할 수 있다.
SID는 상기 4개의 필드 Src_IP_add, Dst_IP_add, Src_UDP_Port, Dst_UDP_Port에 의해 식별되는 상위 레이어 세션을 전달하는 링크 레이어 패킷에 대한 서브 스트림 식별자를 나타내는 8비트의 무부호 정수 필드일 수 있다. 해당 필드는 SID_flag의 값이 1과 같을 때 존재할 수 있다.
context_id는 ROHC-U 디스크립션 테이블에 제공된 CID(context id)에 대한 레퍼런스를 제공하는 8비트 필드일 수 있다. 해당 필드는 compressed_flag의 값이 1과 같을 때 존재할 수 있다.
본 발명에 따른 ROHC-U 디스크립션 테이블의 일 실시예(tsib14020)가 도시되었다. 전술한 바와 같이 ROHC-U 어댑테이션 모듈은 헤더 컴프레션에 관련된 정보들을 생성할 수 있다.
signaling_type은 해당 테이블에 의해 전달되는 시그널링의 타입을 나타내는 8비트 필드일 수 있다. ROHC-U 디스크립션 테이블에 대한 signaling_type 필드의 값은 "0x02"로 설정될 수 있다.
PLP_ID는 해당 테이블에 해당하는 PLP를 나타내는 8비트 필드일 수 있다.
context_id는 압축된 IP 스트림의 CID를 나타내는 8비트 필드일 수 있다. 해당 시스템에서, 8비트의 CID는 큰 CID를 위해 사용될 수 있다.
context_profile은 스트림을 압축하기 위해 사용되는 프로토콜의 범위를 나타내는 8비트 필드일 수 있다. 해당 필드는 생략될 수 있다.
adaptation_mode는 해당 PLP에서 어댑테이션 모듈의 모드를 나타내는 2비트 필드일 수 있다. 어댑테이션 모드에 대해서는 전술하였다.
context_config는 컨텍스트 정보의 조합을 나타내는 2비트 필드일 수 있다. 해당 테이블에 컨텍스트 정보가 존재하지 않으면, 해당 필드는 '0x0'으로 설정될 수 있다. 해당 테이블에 static_chain() 또는 dynamic_chain() 바이트가 포함되면, 해당 필드는 '0x01' 또는 '0x02'로 설정될 수 있다. 해당 테이블에 static_chain() 및 dynamic_chain() 바이트가 모두 포함되면, 해당 필드는 '0x03'으로 설정될 수 있다.
context_length는 스태틱 체인 바이트 시퀀스의 길이를 나타내는 8비트 필드일 수 있다. 해당 필드는 생략될 수 있다.
static_chain_byte ()는 RoHC-U 디컴프레서를 초기화하기 위해 사용되는 스태틱 정보를 전달하는 필드일 수 있다. 해당 필드의 크기 및 구조는 컨텍스트 프로파일에 의존한다.
dynamic_chain_byte ()는 RoHC-U 디컴프레서를 초기화하기 위해 사용되는 다이네믹 정보를 전달하는 필드일 수 있다. 해당 필드의 크기 및 구조는 컨텍스트 프로파일에 의존한다.
static_chain_byte는 IR 패킷의 서브 헤더 정보로 정의될 수 있다. dynamic_chain_byte는 IR 패킷 및 IR-DYN 패킷의 서브 헤더 정보로 정의될 수 있다.
도 15 은 본 발명의 일 실시예에 따른 송신기 측의 링크 레이어 구조를 도시한 도면이다.
*본 실시예는 IP 패킷을 처리하는 것을 가정한 실시예이다. 송신기 측의 링크 레이어는 기능적인 관점에서 볼 때, 크게 시그널링 정보를 처리하는 링크 레이어 시그널링 부분, 오버헤드 리덕션 부분, 및/또는 인캡슐레이션 부분을 포함할 수 있다. 또한, 송신기 측의 링크 레이어는 링크 레이어 전체 동작에 대한 제어 및 스케쥴링을 위한 스케쥴러 및/또는 링크 레이어의 입,출력 부분 등을 포함할 수 있다.
먼저, 상위 레이어의 시그널링 정보 및/또는 시스템 파라미터(tsib15010)가 링크 레이어에 전달될 수 있다. 또한, IP 레이어(tsib15110)로부터 IP 패킷들을 포함하는 IP 스트림이 링크 레이어에 전달될 수 있다.
스케쥴러(tsib15020)는 전술한 바와 같이 링크 레이어에 포함된 여러 모듈들의 동작을 결정하고 제어하는 역할을 할 수 있다. 전달된 시그널링 정보 및/또는 시스템 파라미터(tsib15010) 는 스케쥴러(tsib15020)에 의해 필터링되거나 활용될 수 있다. 전달된 시그널링 정보 및/또는 시스템 파라미터(tsib15010) 중, 수신기에서 필요한 정보는 링크 레이어 시그널링 부분으로 전달될 수 있다. 또한 시그널링 정보 중 링크 레이어의 동작에 필요한 정보는 오버헤드 리덕션 컨트롤(tsib15120) 또는 인캡슐레이션 컨트롤(tsib15180)으로 전달될 수도 있다.
링크 레이어 시그널링 부분은, 피지컬 레이어에서 시그널링으로서 전송될 정보를 수집하고, 이를 전송에 적합한 형태로 변환/구성하는 역할을 수행할 수 있다. 링크 레이어 시그너널링 부분은 시그널링 매니저(tsib15030), 시그널링 포매터(tsib15040), 및/또는 채널을 위한 버퍼(tsib15050)을 포함할 수 있다.
시그널링 매니저(tsib15030)는 스케쥴러(tsib15020)으로부터 전달받은 시그널링 정보 및/또는 오버헤드 리덕션 부분으로부터 전달받은 시그널링 및/또는 컨텍스트(context) 정보를 입력받을 수 있다. 시그널링 매니저(tsib15030)는 전달받은 데이터들에 대하여, 각 시그널링 정보가 전송되어야할 경로를 결정할 수 있다. 각 시그널링 정보는 시그널링 매니저(tsib15030)에 의해 결정된 경로로 전달될 수 있다. 전술한 바와 같이 FIC, EAS 등의 구분된 채널로 전송될 시그널링 정보들은 시그널링 포매터(tsib15040)으로 전달될 수 있고, 그 밖의 시그널링 정보들은 인캡슐레이션 버퍼(tsib15070)으로 전달될 수 있다.
시그널링 포매터(tsib15040)는 별도로 구분된 채널을 통해 시그널링 정보가 전송될 수 있도록, 관련된 시그널링 정보를 각 구분된 채널에 맞는 형태로 포맷하는 역할을 할 수 있다. 전술한 바와 같이 피지컬 레이어에는 물리적/논리적으로 구분된 별도의 채널이 있을 수 있다. 이 구분된 채널들은 FIC 시그널링 정보나, EAS 관련 정보를 전송하는데 사용될 수 있다. FIC 또는 EAS 관련 정보는 시그널링 매니저(tsib15030)에 의해 분류되어 시그널링 포매터(tsib15040)로 입력될 수 있다. 시그널링 포매터(tsib15040)은 각 정보들을, 각자의 별도 채널에 맞게 포맷팅할 수 있다. FIC, EAS 이외에도, 피지컬 레이어가 특정 시그널링 정보를 별도의 구분된 채널을 통해 전송하는 것으로 설계된 경우에는, 그 특정 시그널링 정보를 위한 시그널링 포매터가 추가될 수 있다. 이러한 방식을 통하여, 링크 레이어가 다양한 피지컬 레이어에 대하여 호환가능해질 수 있다.
채널을 위한 버퍼(tsib15050)들은 시그널링 포매터(tsib15040)으로부터 전달받은 시그널링 정보들을, 지정된 별도의 채널(tsib15060)로 전달하는 역할을 할 수 있다. 별도의 채널들의 개수, 내용은 실시예에 따라 달라질 수 있다.
전술한 바와 같이, 시그널링 매니저(tsib15030)은 특정 채널로 전달되지 않는 시그널링 정보를 인캡슐레이션 버퍼(tsib15070)으로 전달할 수 있다. 인캡슐레이션 버퍼(tsib15070)는 특정 채널로 전달되지 않는 시그널링 정보를 전달받는 버퍼 역할을 할 수 있다.
시그널링 정보를 위한 인캡슐레이션(tsib15080)은 특정 채널로 전달되지 않는 시그널링 정보에 대하여 인캡슐레이션을 수행할 수 있다. 트랜스미션 버퍼(tsib15090)은 인캡슐레이션 된 시그널링 정보를, 시그널링 정보를 위한 DP(tsib15100) 로 전달하는 버퍼 역할을 할 수 있다. 여기서, 시그널링 정보를 위한 DP(tsib15100)은 전술한 PLS 영역을 의미할 수 있다.
오버헤드 리덕션 부분은 링크 레이어에 전달되는 패킷들의 오버헤드를 제거하여, 효율적인 전송이 가능하게 할 수 있다. 오버헤드 리덕션 부분은 링크 레이어에 입력되는 IP 스트림의 수만큼 구성될 수 있다.
오버헤드 리덕션 버퍼(tsib15130)는 상위 레이어로부터 전달된 IP 패킷을 입력받는 역할을 할 수 있다. 전달받은 IP 패킷은 오버헤드 리덕션 버퍼(tsib15130)를 통해 오버헤드 리덕션 부분으로 입력될 수 있다.
오버헤드 리덕션 컨트롤(tsib15120)은 오버헤드 리덕션 버퍼(tsib15130)로 입력되는 패킷 스트림에 대하여 오버헤드 리덕션을 수행할지 여부를 결정할 수 있다. 오버헤드 리덕션 컨트롤(tsib15120)은 패킷 스트림별로 오버헤드 리덕션 수행여부를 결정할 수 있다. 패킷 스트림에 오버헤드 리덕션이 수행되는 경우 RoHC 컴프레셔(tsib15140)으로 패킷들이 전달되어 오버헤드 리덕션이 수행될 수 있다. 패킷 스트림에 오버헤드 리덕션이 수행되지 않는 경우, 인캡슐레이션 부분으로 패킷들이 전달되어 오버헤드 리덕션 없이 인캡슐레이션이 진행될 수 있다. 패킷들의 오버헤드 리덕션 수행여부는 링크 레이어로 전달된 시그널링 정보들(tsib15010)에 의해 결정될 수 있다. 이 시그널링 정보들은 스케쥴러(tsib15020)에 의해 오버헤드 리덕션 컨트롤(tsib15180)으로 전달될 수 있다.
RoHC 컴프레셔(tsib15140) 은 패킷 스트림에 대하여 오버헤드 리덕션을 수행할 수 있다. RoHC 컴프레셔(tsib15140) 은 패킷들의 헤더를 압축하는 동작을 수행할 수 있다. 오버헤드 리덕션에는 다양한 방법들이 사용될 수 있다. 전술한, 본 발명이 제안한 방법들에 의하여 오버헤드 리덕션이 수행될 수 있다. 본 실시예는 IP 스트림을 가정했는 바, RoHC 컴프레셔라고 표현되었으나, 실시예에 따라 명칭은 변경될 수 있으며, 동작도 IP 스트림의 압축에 국한되지 아니하고, 모든 종류의 패킷들의 오버헤드 리덕션이 RoHC 컴프레셔(tsib15140)에 의해 수행될 수 있다.
패킷 스트림 컨피규레이션 블럭(tsib15150)은 헤더가 압축된 IP 패킷들 중에서, 시그널링 영역으로 전송될 정보와 패킷 스트림으로 전송될 정보를 분리할 수 있다. 패킷 스트림으로 전송될 정보란 DP 영역으로 전송될 정보를 의미할 수 있다. 시그널링 영역으로 전송될 정보는 시그널링 및/또는 컨텍스트 컨트롤(tsib15160)으로 전달될 수 있다. 패킷 스트림으로 전송될 정보는 인캡슐레이션 부분으로 전송될 수 있다.
시그널링 및/또는 컨텍스트 컨트롤(tsib15160)은 시그널링 및/또는 컨텍스트(context) 정보를 수집하고 이를 시그널링 매니저로 전달할 수 있다. 시그널링 및/또는 컨텍스트 정보를 시그널링 영역으로 전송하기 위함이다.
인캡슐레이션 부분은, 패킷들을 피지컬 레이어로 전달하기 적합한 형태로 인캡슐레이팅하는 동작을 수행할 수 있다. 인캡슐레이션 부분은 IP 스트림의 수만큼 구성될 수 있다.
인캡슐레이션 버퍼(tsib15170) 은 인캡슐레이션을 위해 패킷 스트림을 입력받는 역할을 할 수 있다. 오버헤드 리덕션이 수행된 경우 오버헤드 리덕션된 패킷들을, 오버헤드 리덕션이 수행되지 않은 경우 입력받은 IP 패킷 그대로를 입력받을 수 있다.
인캡슐레이션 컨트롤(tsib15180) 은 입력된 패킷 스트림에 대하여 인캡슐레이션을 수행할지 여부를 결정할 수 있다. 인캡슐레이션이 수행되는 경우 패킷 스트림은 세그멘테이션/컨케테네이션(tsib15190)으로 전달될 수 있다. 인캡슐레이션이 수행되지 않는 경우 패킷 스트림은 트랜스미션 버퍼(tsib15230)으로 전달될 수 있다. 패킷들의 인캡슐레이션의 수행여부는 링크 레이어로 전달된 시그널링 정보들(tsib15010)에 의해 결정될 수 있다. 이 시그널링 정보들은 스케쥴러(tsib15020)에 의해 인캡슐레이션 컨트롤(tsib15180)으로 전달될 수 있다.
세그멘테이션/컨케테네이션(tsib15190)에서는, 패킷들에 대하여 전술한 세그멘테이션 또는 컨케테네이션 작업이 수행될 수 있다. 즉, 입력된 IP 패킷이 링크 레이어의 출력인 링크 레이어 패킷보다 길 경우, 하나의 IP 패킷을 분할하여 여러 개의 세그멘트로 나누어 복수개의 링크 레이어 패킷 페이로드를 만들 수 있다. 또한, 입력된 IP 패킷이 링크 레이어의 출력인 링크 레이어 패킷보다 짧을 경우, 여러 개의 IP 패킷을 이어붙여 하나의 링크 레이어 패킷 페이로드를 만들 수 있다.
패킷 컨피규레이션 테이블(tsib15200)은, 세그멘테이션 및/또는 컨케테네이션된 링크 레이어 패킷의 구성 정보를 가질 수 있다. 패킷 컨피규레이션 테이블(tsib15200)의 정보는 송신기와 수신기가 같은 정보를 가질 수 있다. 패킷 컨피규레이션 테이블(tsib15200)의 정보가 송신기와 수신기에서 참조될 수 있다. 패킷 컨피규레이션 테이블(tsib15200)의 정보의 인덱스 값이 해당 링크 레이어 패킷의 헤더에 포함될 수 있다.
링크 레이어 헤더 정보 블락(tsib15210)은 인캡슐레이션 과정에서 발생하는 헤더 정보를 수집할 수 있다. 또한, 링크 레이어 헤더 정보 블락(tsib15210)은 패킷 컨피규레이션 테이블(tsib15200)이 가지는 정보를 수집할 수 있다. 링크 레이어 헤더 정보 블락(tsib15210)은 링크 레이어 패킷의 헤더 구조에 따라 헤더 정보를 구성할 수 있다.
헤더 어태치먼트(tsib15220)은 세그멘테이션 및/또는 컨케테네이션된 링크 레이어 패킷의 페이로드에 헤더를 추가할 수 있다. 트랜스미션 버퍼(tsib15230)은 링크 레이어 패킷을 피지컬 레이어의 DP(tsib15240) 로 전달하기 위한 버퍼 역할을 할 수 있다.
각 블락 내지 모듈 및 부분(part)들은 링크 레이어에서 하나의 모듈/프로토콜로서 구성될 수도 있고, 복수개의 모듈/프로토콜로 구성될 수도 있다.
도 16 는 본 발명의 일 실시예에 따른 수신기 측의 링크 레이어 구조를 도시한 도면이다.
본 실시예는 IP 패킷을 처리하는 것을 가정한 실시예이다. 수신기 측의 링크 레이어는 기능적인 관점에서 볼 때, 크게 시그널링 정보를 처리하는 링크 레이어 시그널링 부분, 오버헤드 프로세싱 부분, 및/또는 디캡슐레이션 부분을 포함할 수 있다. 또한, 수신기 측의 링크 레이어는 링크 레이어 전체 동작에 대한 제어 및 스케쥴링을 위한 스케쥴러 및/또는 링크 레이어의 입,출력 부분 등을 포함할 수 있다.
먼저, 피지컬 레이어를 통해 전송받은 각 정보들이 링크 레이어에 전달될 수 있다. 링크 레이어는 각 정보들을 처리하여, 송신측에서 처리하기 전의 원래 상태로 되돌린 뒤, 상위 레이어에 전달할 수 있다. 이 실시예에서 상위 레이어는 IP 레이어일 수 있다.
피지컬 레이어에서 구분된 특정 채널(tsib16030)들을 통해 전달된 정보들이 링크 레이어 시그널링 부분으로 전달될 수 있다. 링크 레이어 시그널링 부분은 피지컬 레이어로부터 수신된 시그널링 정보를 판별하고, 링크 레이어의 각 부분들로 판별된 시그널링 정보들을 전달하는 역할을 수행할 수 있다.
채널을 위한 버퍼(tsib16040)은 특정 채널들을 통해 전송된 시그널링 정보들을 전달받는 버퍼 역할을 할 수 있다. 전술한 바와 같이 피지컬 레이어에 물리적/논리적으로 구분된 별도의 채널이 존재할 경우, 그 채널들을 통해 전송된 시그널링 정보들을 전달받을 수 있다. 별도의 채널들로부터 받은 정보들이 분할된 상태일 경우, 완전한 형태의 정보가 될 때까지 분할된 정보들을 저장해 놓을 수 있다.
시그널링 디코더/파서(tsib16050)는 특정 채널을 통해 수신된 시그널링 정보의 포맷을 확인하고, 링크 레이어에서 활용될 정보들을 추출해 낼 수 있다. 특정 채널을 통한 시그널링 정보가 인코딩되어 있는 경우에는 디코딩을 수행할 수 있다. 또한, 실시예에 따라 해당 시그널링 정보의 무결성 등을 확인할 수 있다.
시그널링 매니저(tsib16060)은 여러 경로를 통해 수신된 시그널링 정보들을 통합할 수 있다. 후술할 시그널링을 위한 DP(tsib16070)을 통해 수신된 시그널링 정보들 역시 시그널링 매니저(tsib16060)에서 통합될 수 있다. 시그널링 매니저(tsib16060)은 링크 레이어 내의 각 부분에 필요한 시그널링 정보를 전달할 수 있다. 예를 들어 오버헤드 프로세싱 부분에, 패킷의 리커버리를 위한 컨텍스트 정보등을 전달할 수 있다. 또한, 스케쥴러(tsib16020)에 제어를 위한 시그널링 정보들을 전달해 줄 수 있다.
시그널링을 위한 DP(tsib16070)를 통해, 별도의 특별 채널로 수신되지 않은 일반적인 시그널링 정보들이 수신될 수 있다. 여기서, 시그널링을 위한 DP 란 PLS 또는 L1 등을 의미할 수 있다. 여기서 DP 는 PLP (Physical Layer Pipe) 라고 불릴 수도 있다. 리셉션 버퍼(tsib16080)은 시그널링을 위한 DP 로부터 수신된 시그널링 정보를 전달받는 버퍼 역할을 할 수 있다. 시그널링 정보의 디캡슐레이션(tsib16090)에서는 수신된 시그널링 정보가 디캡슐레이션될 수 있다. 디캡슐레이션 된 시그널링 정보는 디캡슐레이션 버퍼(tsib16100)을 거쳐 시그널링 매니저(tsib16060)으로 전달될 수 있다. 전술한 바와 같이, 시그널링 매니저(tsib16060)는 시그널링 정보를 취합하여 링크 레이어 내의 필요한 부분에 전달할 수 있다.
스케쥴러(tsib16020)은 링크 레이어에 포함된 여러 모듈들의 동작을 결정하고 제어하는 역할을 할 수 있다. 스케쥴러(tsib16020)은 리시버 정보(tsib16010) 및/또는 시그널링 매니저(tsib16060)으로부터 전달받은 정보를 이용하여, 링크 레이어의 각 부분을 제어할 수 있다. 또한, 스케쥴러(tsib16020)는 각 부분의 동작 모드등을 결정할 수 있다. 여기서, 리시버 정보(tsib16010) 는 수신기가 기 저장하고 있던 정보를 의미할 수 있다. 스케쥴러(tsib16020)는 채널 전환 등과 같이 사용자가 변경하는 정보 역시 이용하여 제어에 활용할 수 있다.
디캡슐레이션 부분은 피지컬 레이어의 DP(tsib16110)로부터 수신된 패킷을 필터링하고, 해당 패킷의 타입에 따라 패킷들을 분리해내는 역할을 수행할 수 있다. 디캡슐레이션 부분은 피지컬 레이어에서 동시에 디코딩할 수 있는 DP 의 수 만큼 구성될 수 있다.
디캡슐레이션 버퍼(tsib16110)은 디캡슐레이션을 위해 피지컬 레이어로부터 패킷 스트림을 입력받는 버퍼 역할을 할 수 있다. 디캡슐레이션 컨트롤(tsib16130)은 입력된 패킷 스트림에 대하여 디캡슐레이션을 수행할 것인지 여부를 결정할 수 있다. 디캡슐레이션이 수행될 경우 패킷 스트림은 링크 레이어 헤더 파서(tsib16140)으로 전달될 수 있다. 디캡슐레이션이 수행되지 않을 경우 패킷 스트림은 아웃풋 버퍼(tsib16220)로 전달될 수 있다. 디캡슐레이션의 수행여부를 결정하는 데에는 스케쥴러(tsib16020)으로부터 전달받은 시그널링 정보가 활용될 수 있다.
링크 레이어 헤더 파서(tsib16140)은 전달받은 링크 레이어 패킷의 헤더를 확인할 수 있다. 헤더를 확인함으로써, 링크 레이어 패킷의 페이로드에 포함되어 있는 IP 패킷의 구성을 확인할 수 있다. 예를 들어 IP 패킷은 세그멘테이션 되어 있거나, 컨케테네이션 되어 있을 수 있다.
패킷 컨피규레이션 테이블(tsib16150)은 세그멘테이션 및/또는 컨케테네이션으로 구성되는 링크 레이어 패킷의 페이로드 정보를 포함할 수 있다. 패킷 컨피규레이션 테이블(tsib16150)의 정보는 송신기와 수신기가 같은 정보를 가질 수 있다. 패킷 컨피규레이션 테이블(tsib16150)의 정보가 송신기와 수신기에서 참조될 수 있다. 링크 레이어 패킷에 포함된 인덱스 정보를 바탕으로 재결합(reassembly)에 필요한 값이 찾아질 수 있다.
재결합 블록(reassembly) (tsib16160)은 세그멘테이션 및/또는 컨케테네이션으로 구성된 링크 레이어 패킷의 페이로드를 원래의 IP 스트림의 패킷들로 구성할 수 있다. 세그멘트들을 하나로 모아 하나의 IP 패킷으로 재구성하거나, 컨케테네이션된 패킷들을 분리하여 복수개의 IP 패킷 스트림으로 재구성할 수 있다. 재결합된 IP 패킷들은 오버헤드 프로세싱 부분으로 전달될 수 있다.
오버헤드 프로세싱 부분은, 송신기에서 수행된 오버헤드 리덕션의 역과정으로, 오버헤드 리덕션된 패킷들을 원래의 패킷으로 돌리는 동작을 수행할 수 있다. 이 동작을 오버헤드 프로세싱이라 부를 수 있다. 오버헤드 프로세싱 부분은 피지컬 레이어에서 동시에 디코딩할 수 있는 DP 의 수 만큼 구성될 수 있다.
패킷 리커버리 버퍼(tsib16170)는 오버헤드 프로세싱을 수행하기 위해 디캡슐레이션된 RoHC 패킷 내지 IP 패킷을 입력받는 버퍼 역할을 할 수 있다.
오버헤드 컨트롤(tsib16180)은 디캡슐레이션된 패킷들에 대해 패킷 리커버리 및/또는 디컴프레션을 수행할 것인지 여부를 결정할 수 있다. 패킷 리커버리 및/또는 디컴프레션이 수행되는 경우 패킷 스트림 리커버리(tsib16190)으로 패킷이 전달될 수 있다. 패킷 리커버리 및/또는 디컴프레션이 수행되지 않는 경우, 패킷들은 아웃풋 버퍼(tsib16220)으로 전달될 수 있다. 패킷 리커버리 및/또는 디컴프레션의 수행 여부는 스케쥴러(tsib16020)에 의해 전달된 시그널링 정보에 근거해 결정될 수 있다.
패킷 스트림 리커버리(tsib16190)은 송신기에서 분리된 패킷 스트림과, 패킷 스트림의 컨텍스트 정보를 통합하는 동작을 수행할 수 있다. 이는 RoHC 디컴프레셔(tsib16210)에서 처리 가능하도록, 패킷 스트림을 복구하는 과정일 수 있다. 이 과정에서 시그널링 및/또는 컨텍스트 컨트롤(tsib16200)로부터 시그널링 정보 및/또는 컨텍스트 정보를 전달받을 수 있다. 시그널링 및/또는 컨텍스트 컨트롤(tsib16200)은 송신기로부터 전달된 시그널링 정보를 판별하고, 해당 컨텍스트 ID 에 맞는 스트림으로 매핑될 수 있도록 패킷 스트림 리버커리(tsib16190)에 시그널링 정보를 전달할 수 있다.
RoHC 디컴프레셔(tsib16210)은 패킷 스트림의 패킷들의 헤더를 복구할 수 있다. 패킷 스트림의 패킷들은 헤더가 복구되어 원래의 IP 패킷들의 형태로 복구될 수 있다. 즉, RoHC 디컴프레셔(tsib16210)은 오버헤드 프로세싱을 수행할 수 있다.
아웃풋 버퍼(tsib16220)은 IP 레이어(tsib16230)로 출력 스트림을 전달하기에 앞서, 버퍼 역할을 할 수 있다.
본 발명이 제안하는 송신기와 수신기의 링크 레이어는, 전술한 바와 같은 블록 내지 모듈들을 포함 가능하다. 이를 통해, 링크 레이어가 상위 레이어와 하위 레이어에 관계없이 독립적으로 동작할 수 있고, 오버헤드 리덕션을 효율적으로 수행할 수 있으며, 상하위 레이어 등에 따라 지원 가능한 기능의 확정/추가/제거가 용이해질 수 있다.
도 17 은 본 발명의 일 실시예에 따른, 링크 레이어를 통한 시그널링 전송 구조를 도시한 도면이다(송/수신측).
본 발명에서는 하나의 주파수 밴드 내에 복수개의 서비스 프로바이더(방송사)가 서비스를 제공할 수 있다. 또한 서비스 프로바이더는 복수개의 서비스들을 전송할 수 있는데, 하나의 서비스는 하나 이상의 컴포넌트를 포함할 수 있다. 사용자는 서비스 단위로 컨텐츠를 수신하는 것을 고려할 수 있다.
본 발명은 IP 하이브리드 방송을 지원하기 위하여, 복수개 세션 기반의 전송 프로토콜이 사용되는 것을 가정한다. 각 프로토콜의 전송 구조에 따라 그 시그널링 패쓰(path)로 전달되는 시그널링 정보가 결정될 수 있다. 각 프로토콜은 실시예에 따라 다양한 명칭이 부여될 수 있다.
도시된 송신측 데이터 구조(tsib17010) 에서, 서비스 프로바이더들(Broadcasters)은 복수개의 서비스(Service #1, #2, …) 를 제공할 수 있다. 일반적으로 서비스에 대한 시그널링은 일반적인 전송 세션을 통해 전송될 수 있으나(Signaling C), 실시예에 따라 특정 세션(dedicated session) 을 통해 전송될 수도 있다(Signaling B).
서비스 데이터 및 서비스 시그널링 정보들은 전송 프로토콜에 따라 인캡슐레이션 될 수 있다. 실시예에 따라 IP/UDP 가 사용될 수 있다. 실시예에 따라 IP/UDP 레이어에서의 시그널링(Signaling A) 가 추가될 수도 있다. 이 시그널링은 생략될 수 있다.
IP/UDP 로 처리된 데이터들은 링크 레이어로 입력될 수 있다. 링크 레이어에서는 전술한 바와 같이, 오버헤드 리덕션 및/또는 인캡슐레이션 과정을 수행할 수 있다. 여기서 링크 레이어 시그널링이 추가될 수 있다. 링크 레이어 시그널링에는 시스템 파라미터 등이 포함될 수 있다. 링크 레이어 시그널링에 대해서는 전술하였다.
이러한 처리를 거친 서비스 데이터 및 시그널링 정보들은, 피지컬 레이어에서 PLP 들을 통해 처리될 수 있다. 여기서 PLP 는 DP 로 불릴 수도 있다. 도시된 실시예에서는 Base DP/PLP 가 사용되는 경우를 상정하고 있으나, 실시예에 따라 Base DP/PLP 가 없이 일반적인 DP/PLP 만으로 전송이 수행될 수도 있다.
도시된 실시예에서는 FIC, EAC 등의 특정 채널(dedicated channel) 이 사용되고 있다. FIC를 통해 전달되는 시그널링을 FIT (Fast Information Table), EAC를 통해 전달되는 시그널링을 EAT (Emergency Alert Table)로 부를 수 있다. FIT 는 전술한 SLT 와 같을 수 있다. 이러한 특정 채널들은 실시예에 따라 사용되지 않을 수 있다. 특정 채널(Dedicated channel)이 구성되어 있지 않은 경우, FIT 와 EAT는 일반적인 링크 레이어 시그널링 전송 방법을 통해 전송되거나, 다른 서비스 데이터들처럼 IP/UDP 를 거쳐 PLP 로 전송될 수 있다.
실시예에 따라 시스템 파라미터에는 송신기 관련 파라미터, 서비스 프로바이더 관련 파라미터 등이 있을 수 있다. 링크 레이어 시그널링에는 IP 헤더 압축 관련 컨텍스트 정보 및/또는 해당 컨텍스트가 적용되는 데이터에 대한 식별정보가 포함될 수 있다. 상위 레이어의 시그널링에는 IP 주소, UDP 넘버, 서비스/컴포넌트 정보, 긴급 알림(Emergency alert) 관련 정보, 서비스 시그널링에 대한 IP/UDP 주소, 세션 ID 등등이 포함될 수 있다. 자세한 실시예에 대해서는 전술하였다.
도시된 수신측 데이터 구조(tsib17020) 에서, 수신기는 모든 PLP 를 디코딩할 필요 없이, 시그널링 정보를 활용하여 해당 서비스에 대한 PLP 만을 디코딩할 수 있다.
먼저, 사용자가 수신하고자 하는 서비스를 선택 하거나 변경 하면, 수신기는 해당 주파수로 튜닝 하고 해당 채널과 관련하여 DB 등에 저장하고 있는 수신기 정보를 읽어 들일 수 있다. 수신기의 DB 등에 저장되어 있는 정보는 최초 채널 스캔시 SLT 를 읽어 들여 구성 될 수 있다.
SLT 를 수신하고 해당 채널의 정보를 수신한 이후 기존에 저장되어 있던 DB를 업데이트하고, 사용자가 선택한 서비스의 전송 경로 및 컴포넌트 정보를 획득하거나 이러한 정보를 획득하는데 필요한 시그널링이 전송되는 경로에 대한 정보를 획득한다. SLT 의 버전 정보 등을 이용하여 해당 정보의 변경이 없다고 판단 되는 경우에는 디코딩 또는 파싱절차를 생략할 수 있다.
수신기는 해당 방송 스트림에서, PLP 의 피지컬 시그널링을 파싱하여 해당 PLP 내에 SLT 정보가 있는지 파악할 수 있다(도시되지 않음). 이는 피지컬 시그널링의 특정 필드를 통해 지시될 수 있다. SLT 정보에 접근하여 특정 서비스의 서비스 레이어 시그널링이 전송되는 위치에 접근할 수 있다. 이 서비스 레이어 시그널링은 IP/UDP 로 인캡슐레이션되어 전송 세션을 통해 전달될 수 있다. 이 서비스 레이어 시그널링을 이용하여 해당 서비스를 구성하는 컴포넌트에 대한 정보를 획득할 수 있다. 자세한 SLT-SLS 구조는 전술한 바와 같다.
즉, SLT 를 이용하여 현재 채널에 전송되고 있는 여러 패킷 스트림 및 PLP 중, 해당 서비스의 수신에 필요한 상위 레이어 시그널링 정보(서비스 시그널링 정보)를 수신하기 위한 전송 경로 정보가 획득될 수 있다. 이 전송 경로 정보에는 IP 주소, UDP 포트 넘버, 세션 ID, PLP ID 등등이 포함될 수 있다. 여기서 실시예에 따라 IP/UDP 주소는 IANA 또는 시스템에서 미리 지정되어 있는 값을 사용할 수도 있다. 이러한 정보들은 DB 및 공유 메모리 접근 등의 방법으로 획득될 수도 있다.
링크 레이어 시그널링과 서비스 데이터가 동일한 PLP 를 통해 전송되거나 하나의 PLP 만이 운용되고 있는 경우, PLP 를 통해 전달되는 서비스 데이터는 링크 레이어 시그널링이 디코딩되는 동안 임시적으로 버퍼 등의 장치에 저장될 수 있다.
수신하고자 하는 서비스에 대한 서비스 시그널링 정보를 이용하여 해당 서비스가 실제로 전송되는 경로 정보를 획득할 수 있다. 또한 수신할 PLP 에 대한 오버헤드 리덕션 등의 정보를 이용하여, 수신되는 패킷 스트림에 대해 디캡슐레이션 및 헤더 리커버리가 수행될 수 있다.
도시된 실시예(tsib17020) 에서는, FIC, EAC 가 사용되었고, Base DP/PLP 개념이 상정되었다. 전술한 바와 같이 FIC, EAC, Base DP/PLP 개념은 활용되지 않을 수 있다.
이하에서는 설명의 편의를 위해 MISO 또는 MIMO 방식은 두 개의 안테나를 사용하지만, 본 발명은 두 개 이상의 안테나를 사용하는 시스템에 적용될 수 있다. 본 발명은 특정 용도에 요구되는 성능을 달성하면서 수신기 복잡도를 최소화하기 위해 최적화된 피지컬 프로파일 (또는 시스템)을 제안한다. 본 발명의 일 실시예에 따른 피지컬 프로파일(PHY profile) (베이스(base), 핸드헬드(handheld), 어드벤스(advanced) 프로파일)은 해당하는 수신기가 구현해야 하는 모든 구조의 서브셋으로, 대부분의 기능 블록을 공유하지만, 특정 블록 및/또는 파라미터에서는 약간 다르다. 시스템 발전을 위해, 퓨처 프로파일은 FEF (future extension frame)을 통해 단일 RF (radio frequency) 채널에 존재하는 프로파일과 멀티플렉싱 될 수도 있다. 본 발명의 일 실시예에 따른 베이스 프로파일 및 핸드헬드 프로파일은 MIMO가 적용되지 않는 프로파일을 의미하며, 어드밴스드 프로파일은 MIMO가 적용되는 프로파일을 의미한다. 베이스 프로파일은 지상파 방송 서비스 및 모바일 방송 서비스 모두에 대한 프로파일로 사용될 수 있다. 즉, 베이스 프로파일은 모바일 프로파일을 포함하는 프로파일의 개념을 정의하기 위해 사용될 수 있다. 또한, 어드벤스 프로파일은 MIMO을 갖는 베이스 프로파일에 대한 어드벤스 프로파일 및 MIMO을 갖는 핸드헬드 프로파일에 대한 어드벤스 프로파일로 구분될 수 있다. 그리고 본 발명의 프로파일은 설계자의 의도에 따라 변경될 수 있다.
다음의 용어 및 정의는 본 발명에 적용될 수 있다. 다음의 용어 및 정의는 설계에 따라 변경될 수 있다.
보조 스트림: 퓨처 익스텐션(future extension, 추후 확장) 또는 방송사나 네트워크 운영자에 의해 요구됨에 따라 사용될 수 있는 아직 정의되지 않은 변조 및 코딩의 데이터를 전달하는 셀의 시퀀스
베이스 데이터 파이프(base data pipe): 서비스 시그널링 데이터를 전달하는 데이터 파이프
베이스밴드 프레임 (또는 BBFRAME): 하나의 FEC 인코딩 과정 (BCH 및 LDPC 인코딩)에 대한 입력을 형성하는 Kbch 비트의 집합
셀(cell): OFDM 전송의 하나의 캐리어에 의해 전달되는 변조값
코딩 블록(coded block): PLS1 데이터의 LDPC 인코딩된 블록 또는 PLS2 데이터의 LDPC 인코딩된 블록들 중 하나
데이터 파이프(data pipe): 하나 또는 다수의 서비스 또는 서비스 컴포넌트를 전달할 수 있는 서비스 데이터 또는 관련된 메타데이터를 전달하는 물리 계층(physical layer)에서의 로지컬 채널
데이터 파이프 유닛(DPU, data pipe unit): 데이터 셀을 프레임에서의 데이터 파이프에 할당할 수 있는 기본 유닛
데이터 심볼(data symbol): 프리앰블 심볼이 아닌 프레임에서의 OFDM 심볼 (프레임 시그널링 심볼 및 프레임 엣지(edge) 심볼은 데이터 심볼에 포함된다.)
DP_ID: 해당 8비트 필드는 SYSTEM_ID에 의해 식별된 시스템 내에서 데이터 파이프를 유일하게 식별한다.
더미 셀(dummy cell): PLS (physical layer signalling) 시그널링, 데이터 파이프, 또는 보조 스트림을 위해 사용되지 않은 남아 있는 용량을 채우는 데 사용되는 의사 랜덤값을 전달하는 셀
EAC (emergency alert channel, 비상 경보 채널): EAS 정보 데이터를 전달하는 프레임 중 일부
프레임(frame): 프리앰블로 시작해서 프레임 엣지 심볼로 종료되는 물리 계층(physical layer) 타임 슬롯
프레임 리피티션 유닛(frame repetition unit, 프레임 반복 단위): 슈퍼 프레임(super-frame)에서 8회 반복되는 FEF를 포함하는 동일한 또는 다른 피지컬 프로파일에 속하는 프레임의 집합
FIC (fast information channel, 고속 정보 채널): 서비스와 해당 베이스 데이터 파이프 사이에서의 매핑 정보를 전달하는 프레임에서 로지컬 채널
FECBLOCK: 데이터 파이프 데이터의 LDPC 인코딩된 비트의 집합
FFT 사이즈: 기본 주기 T의 사이클로 표현된 액티브 심볼 주기 Ts와 동일한 특정 모드에 사용되는 명목상의 FFT 사이즈
프레임 시그널링 심볼(frame signaling symbol): PLS 데이터의 일부를 전달하는, FFT 사이즈, 가드 인터벌(guard interval), 및 스캐터(scattered) 파일럿 패턴의 특정 조합에서 프레임의 시작에서 사용되는 더 높은 파일럿 밀도를 갖는 OFDM 심볼
프레임 엣지 심볼(frame edge symbol): FFT 사이즈, 가드 인터벌, 및 스캐터 파일럿 패턴의 특정 조합에서 프레임의 끝에서 사용되는 더 높은 파일럿 밀도를 갖는 OFDM 심볼
프레임 그룹(frame-group): 슈퍼 프레임에서 동일한 피지컬 프로파일 타입을 갖는 모든 프레임의 집합
퓨쳐 익스텐션 프레임(future extention frame, 추후 확장 프레임): 프리앰블로 시작하는, 추후 확장에 사용될 수 있는 슈퍼 프레임 내에서 물리 계층(physical layer) 타임 슬롯
퓨처캐스트(futurecast) UTB 시스템: 입력이 하나 이상의 MPEG2-TS 또는 IP (Internet protocol) 또는 일반 스트림이고 출력이 RF 시그널인 제안된 물리 계층(physical layer) 방송 시스템
*인풋 스트림(input stream, 입력 스트림): 시스템에 의해 최종 사용자에게 전달되는 서비스의 조화(ensemble)를 위한 데이터의 스트림
노멀(normal) 데이터 심볼: 프레임 시그널링 심볼 및 프레임 엣지 심볼을 제외한 데이터 심볼
피지컬 프로파일(PHY profile): 해당하는 수신기가 구현해야 하는 모든 구조의 서브셋
PLS: PLS1 및 PLS2로 구성된 물리 계층(physical layer) 시그널링 데이터
PLS1: PLS2를 디코딩하는 데 필요한 파라미터뿐만 아니라 시스템에 관한 기본 정보를 전달하는 고정된 사이즈, 코딩, 변조를 갖는 FSS (frame signalling symbol)로 전달되는 PLS 데이터의 첫 번째 집합
NOTE: PLS1 데이터는 프레임 그룹의 듀레이션(duration) 동안 일정하다.
PLS2: 데이터 파이프 및 시스템에 관한 더욱 상세한 PLS 데이터를 전달하는 FSS로 전송되는 PLS 데이터의 두 번째 집합
PLS2 다이나믹(dynamic, 동적) 데이터: 프레임마다 다이나믹(dynamic, 동적)으로 변화하는 PLS2 데이터
PLS2 스태틱(static, 정적) 데이터: 프레임 그룹의 듀레이션 동안 스태틱(static, 정적)인 PLS2 데이터
프리앰블 시그널링 데이터(preamble signaling data): 프리앰블 심볼에 의해 전달되고 시스템의 기본 모드를 확인하는 데 사용되는 시그널링 데이터
프리앰블 심볼(preamble symbol): 기본 PLS 데이터를 전달하고 프레임의 시작에 위치하는 고정된 길이의 파일럿 심볼
프리앰블 심볼은 시스템 신호, 그 타이밍, 주파수 오프셋, 및 FFT 사이즈를 검출하기 위해 고속 초기 밴드 스캔에 주로 사용된다.
추후 사용(future use)을 위해 리저브드(reserved): 현재 문서에서 정의되지 않지만 추후에 정의될 수 있음
슈퍼 프레임(superframe): 8개의 프레임 반복 단위의 집합
타임 인터리빙 블록(time interleaving block, TI block): 타임 인터리버 메모리의 하나의 용도에 해당하는, 타임 인터리빙이 실행되는 셀의 집합
타임 인터리빙 그룹(time interleaving group, TI group): 정수, 다이나믹(dynamic, 동적)으로 변화하는 XFECBLOCK의 수로 이루어진, 특정 데이터 파이프에 대한 다이나믹(dynamic, 동적) 용량 할당이 실행되는 단위
NOTE: 타임 인터리빙 그룹은 하나의 프레임에 직접 매핑되거나 다수의 프레임에 매핑될 수 있다. 타임 인터리빙 그룹은 하나 이상의 타임 인터리빙 블록을 포함할 수 있다.
타입 1 데이터 파이프(Type 1 DP): 모든 데이터 파이프가 프레임에 TDM (time division multiplexing) 방식으로 매핑되는 프레임의 데이터 파이프
타입 2 데이터 파이프(Type 2 DP): 모든 데이터 파이프가 프레임에 FDM 방식으로 매핑되는 프레임의 데이터 파이프
XFECBLOCK: 하나의 LDPC FECBLOCK의 모든 비트를 전달하는 Ncells 셀들의 집합
도 18은 본 발명의 일 실시예에 따른 차세대 방송 서비스에 대한 방송 신호 송신 장치의 구조를 나타낸다.
본 발명의 일 실시예에 따른 차세대 방송 서비스에 대한 방송 신호 송신 장치는 인풋 포맷 블록 (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이 주요 입력 포맷이 될 수 있으며, 다른 스트림 타입은 일반 스트림으로 다루어진다. 이들 데이터 입력에 추가로, 관리 정보가 입력되어 각 입력 스트림에 대한 해당 대역폭의 스케줄링 및 할당을 제어한다. 또한 본 발명에서는 하나 또는 다수의 TS 스트림, IP 스트림 및/또는 일반 스트림 입력이 동시에 허용된다.
인풋 포맷 블록(1000)은 각각의 입력 스트림을 독립적인 코딩 및 변조가 적용되는 하나 또는 다수의 데이터 파이프로 디멀티플렉싱 할 수 있다. 데이터 파이프는 견고성(robustness) 제어를 위한 기본 단위이며, 이는 QoS (Quality of Service)에 영향을 미친다. 하나 또는 다수의 서비스 또는 서비스 컴포넌트가 하나의 데이터 파이프에 의해 전달될 수 있다. 데이터 파이프는 하나 또는 다수의 서비스 또는 서비스 컴포넌트를 전달할 수 있는 서비스 데이터 또는 관련 메타데이터를 전달하는 물리 계층(physical layer)에서의 로지컬 채널이다.
또한, 데이터 파이프 유닛은 하나의 프레임에서 데이터 셀을 데이터 파이프에 할당하기 위한 기본 유닛이다.
물리 계층(physical layer)으로의 입력은 하나 또는 다수의 데이터 스트림으로 구성될 수 있다. 각각의 데이터 스트림은 하나의 데이터 파이프에 의해 전달된다. 인풋 포맷 블록(1000)은 하나 또는 그 이상의 물리적 경로 (physical path 또는 DP)를 통해 입력되는 데이터 스트림을 BBF (baseband frame)으로 변환할 수 있다. 이 경우 인풋 포맷 블록(1000)은 입력 데이터 (TS 또는 IP 입력 스트림)들에 대해 전송 효율을 증가시키기 위해 널 패킷 딜리션 (null packet deletion) 또는 헤더 컴프레션 (header compression)을 수행할 수 있다. 수신기는 헤더의 특정 부분에 대한 선험적인(a priori) 정보를 가질 수 있기 때문에, 이 알려진 정보(known information)는 송신기에서 삭제될 수 있다. 널 패킷 딜리션 블록(3030)은 TS 입력 스트림 경우에만 사용될 수 있다.
BICM 블록(1010)에서, 패리티(parity) 데이터는 에러 정정을 위해 추가되고, 인코딩된 비트 스트림은 복소수값 컨스텔레이션 심볼에 매핑된다. 해당 심볼은 해당 데이터 파이프에 사용되는 특정 인터리빙 깊이에 걸쳐 인터리빙 된다. 어드벤스 프로파일에 있어서, BICM 블록(1010)에서 MIMO 인코딩이 실행되고 추가 데이터 경로가 MIMO 전송을 위해 출력에 추가된다.
프레임 빌딩 블록(1020)은 하나의 프레임 내에서 입력 데이터 파이프의 데이터 셀을 OFDM 심볼로 매핑하고 주파수 영역 다이버시티를 위해, 특히 주파수 선택적 페이딩 채널을 방지하기 위해 주파수 인터리빙을 수행할 수 있다. 프레임 빌딩 블록은 딜레이 컴펜세이션(delay compensation, 지연보상) 블록, 셀 매퍼 (cell mapper) 및 프리퀀시 인터리버 (frequency interleaver)를 포함할 수 있다.
딜레이 컴펜세이션(delay compensation, 지연보상) 블록은 데이터 파이프와 해당하는 PLS 데이터 사이의 타이밍을 조절하여 송신기 측에서 데이터 파이프와 해당하는 PLS 데이터 간의 동시성(co-time)을 보장할 수 있다. 인풋 포맷 블록 및 BICM 블록으로 인한 데이터 파이프의 지연을 다룸으로써 PLS 데이터는 데이터 파이프만큼 지연된다. BICM 블록의 지연은 주로 타임 인터리버로 인한 것이다. 인 밴드(In-band) 시그널링 데이터는 다음 타임 인터리빙 그룹의 정보를 시그널링될 데이터 파이프보다 하나의 프레임 앞서 전달되도록 할 수 있다. 딜레이 컴펜세이션(delay compensation, 지연보상) 블록은 그에 맞추어 인 밴드(In-band) 시그널링 데이터를 지연시킨다.
셀 매퍼는 PLS, 데이터 파이프, 보조 스트림, 및 더미 셀 등을 프레임 내에서 OFDM 심볼의 액티브(active) 캐리어에 매핑할 수 있다. 셀 매퍼의 기본 기능은 각각의 데이터 파이프, PLS 셀에 대한 타임 인터리빙에 의해 생성된 데이터 셀을, 존재하면, 하나의 프레임 내에서 각각의 OFDM 심볼에 해당하는 액티브(active) OFDM 셀의 어레이에 매핑하는 것이다. (PSI(program specific information)/SI와 같은) 서비스 시그널링 데이터는 개별적으로 수집되어 데이터 파이프에 의해 보내질 수 있다. 셀 매퍼는 프레임 구조의 구성 및 스케줄러에 의해 생성된 다이나믹 인포메이션(dynamic information, 동적 정보)에 따라 동작한다. 프리퀀시 인터리버는 셀 매퍼로부터 의해 수신된 데이터 셀을 랜덤하게 인터리빙하여 주파수 다이버시티를 제공할 수 있다. 또한, 프리퀀시 인터리버는 단일 프레임에서 최대의 인터리빙 이득을 얻기 위해 다른 인터리빙 시드(seed) 순서를 이용하여 두 개의 순차적인 OFDM 심볼로 구성된 OFDM 심볼 페어(pair, 쌍)에서 동작할 수 있다.
OFDM 제너레이션 블록(1030)은 프레임 빌딩 블록에 의해 생성된 셀에 의해 OFDM 캐리어를 변조하고, 파일럿을 삽입하고, 전송을 위한 시간 영역 신호를 생성한다. 또한, 해당 블록은 순차적으로 가드 인터벌을 삽입하고, PAPR 감소 처리를 적용하여 최종 RF 신호를 생성한다.
구체적으로, 프리앰블을 각 프레임의 시작에 삽입한 후, OFDM 제너레이션 블록(1030)은 사이클릭 프리픽스(cyclic prefix)을 가드 인터벌로 갖는 기존의 OFDM 변조를 적용할 수 있다. 안테나 스페이스 다이버시티를 위해, 분산된(distributed) MISO 방식이 송신기에 걸쳐 적용된다. 또한, PAPR (peak-to-average power ratio) 방식이 시간 영역에서 실행된다. 유연한 네트워크 방식을 위해, 본 발명은 다양한 FFT 사이즈, 가드 인터벌 길이, 해당 파일럿 패턴의 집합을 제공한다.
또한 본 발명은 방송 서비스를 제공하는 둘 이상의 서로 다른 방송 송신/수신 시스템의 데이터가 동일한 RF 신호 대역에서 동시에 전송될 수 있도록 시간 영역에서 복수의 방송 송신/수신 시스템의 신호를 멀티플렉싱 할 수 있다. 이 경우, 둘 이상의 서로 다른 방송 송신/수신 시스템은 서로 다른 방송 서비스를 제공하는 시스템을 말한다. 서로 다른 방송 서비스는 지상파 방송 서비스, 모바일 방송 서비스 등을 의미할 수 있다.
시그널링 생성 블록(1040)은 각 기능 블록의 동작에 사용되는 물리 계층(physical layer) 시그널링 정보를 생성할 수 있다. 해당 시그널링 정보는 또한 관심 있는 서비스가 수신기 측에서 적절히 복구되도록 전송된다. 본 발명의 일실시예에 따른 시그널링 정보는 PLS 데이터를 포함할 수 있다. PLS는 수신기에서 피지컬 레이어(physical layer) 데이터 파이프에 접속할 수 있는 수단을 제공한다. PLS 데이터는 PLS1 데이터 및 PLS2 데이터로 구성된다.
PLS1 데이터는 PLS2 데이터를 디코딩하는 데 필요한 파라미터뿐만 아니라 시스템에 관한 기본 정보를 전달하는 고정된 사이즈, 코딩, 변조를 갖는 프레임에서 FSS로 전달되는 PLS 데이터의 첫 번째 집합이다. PLS1 데이터는 PLS2 데이터의 수신 및 디코딩을 가능하게 하는 데 요구되는 파라미터를 포함하는 기본 송신 파라미터를 제공한다. 또한, PLS1 데이터는 프레임 그룹의 듀레이션 동안 일정하다.
PLS2 데이터는 데이터 파이프 및 시스템에 관한 더욱 상세한 PLS 데이터를 전달하는 FSS로 전송되는 PLS 데이터의 두 번째 집합이다. PLS2는 수신기가 원하는 데이터 파이프를 디코딩하는 데 충분한 정보를 제공하는 파라미터를 포함한다. PLS2 시그널링은 PLS2 스태틱(static, 정적) 데이터(PLS2-STAT 데이터) 및 PLS2 다이나믹(dynamic, 동적) 데이터(PLS2-DYN 데이터)의 두 종류의 파라미터로 더 구성된다. PLS2 스태틱(static, 정적) 데이터는 프레임 그룹의 듀레이션 동안 스태틱(static, 정적)인 PLS2 데이터이고, PLS2 다이나믹(dynamic, 동적) 데이터는 프레임마다 다이나믹(dynamic, 동적)으로 변화하는 PLS2 데이터이다. PLS 데이터에 대한 자세한 내용은 후술한다.
전술한 블록은 생략될 수도 있고 유사 또는 동일 기능을 갖는 블록에 의해 대체될 수도 있다.
도 19는 본 발명의 일 실시예에 따른 BICM 블록을 나타낸다.
도 19에 도시된 BICM 블록은 도 18을 참조하여 설명한 BICM 블록(1010)의 일 실시예에 해당한다.
전술한 바와 같이, 본 발명의 일 실시예에 따른 차세대 방송 서비스에 대한 방송 신호 송신 장치는 지상파 방송 서비스, 모바일 방송 서비스, UHDTV 서비스 등을 제공할 수 있다.
QoS가 본 발명의 일 실시예에 따른 차세대 방송 서비스에 대한 방송 신호 송신 장치에 의해 제공되는 서비스의 특성에 의존하므로, 각각의 서비스에 해당하는 데이터는 서로 다른 방식을 통해 처리되어야 한다. 따라서, 본 발명의 일 실시예에 따른 BICM 블록은 SISO, MISO, MIMO 방식을 각각의 데이터 경로에 해당하는 데이터 파이프에 독립적으로 적용함으로써 각데이터 파이프를 독립적으로 처리할 수 있다. 결과적으로, 본 발명의 일 실시예에 따른 차세대 방송 서비스에 대한 방송 신호 송신 장치는 각각의 데이터 파이프를 통해 전송되는 각 서비스 또는 서비스 컴포넌트에 대한 QoS를 조절할 수 있다.
(a)는 MIMO가 적용되지 않는 프로파일 (또는 시스템)에 적용되는 BICM 블록을 나타내고, (b)는 MIMO가 적용되는 프로파일(또는 시스템)의 BICM 블록을 나타낸다.
MIMO가 적용되지 않는 BICM 블록 및 MIMO가 적용되는 BICM 블록은 각각의 데이터 파이프를 처리하기 위한 복수의 처리 블록을 포함할 수 있다.
MIMO가 적용되지 않는 BICM 블록 및 MIMO가 적용되는 BICM 블록의 각각의 처리 블록에 대해 설명한다.
MIMO가 적용되지 않는 BICM 블록의 처리 블록(5000)은 데이터 FEC 인코더(5010), 비트 인터리버(5020), 컨스텔레이션 매퍼(mapper)(5030), SSD (signal space diversity) 인코딩 블록(5040), 타임 인터리버(5050)를 포함할 수 있다.
데이터 FEC 인코더(5010)는 외부 코딩(BCH) 및 내부 코딩(LDPC)을 이용하여 FECBLOCK 절차를 생성하기 위해 입력 BBF에 FEC 인코딩을 실행한다. 외부 코딩(BCH)은 선택적인 코딩 방법이다. 데이터 FEC 인코더(5010)의 구체적인 동작에 대해서는 후술한다.
비트 인터리버(5020)는 효율적으로 실현 가능한 구조를 제공하면서 데이터 FEC 인코더(5010)의 출력을 인터리빙하여 LDPC 코드 및 변조 방식의 조합으로 최적화된 성능을 달성할 수 있다. 비트 인터리버(5020)의 구체적인 동작에 대해서는 후술한다.
컨스텔레이션 매퍼(5030)는 QPSK, QAM-16, 불균일 QAM (NUQ-64, NUQ-256, NUQ-1024) 또는 불균일 컨스텔레이션 (NUC-16, NUC-64, NUC-256, NUC-1024)을 이용해서 베이스 및 핸드헬드 프로파일에서 비트 인터리버(5020)로부터의 각각의 셀 워드를 변조하거나 어드벤스 프로파일에서 셀 워드 디멀티플렉서(5010-1)로부터의 셀 워드를 변조하여 파워가 정규화된 컨스텔레이션 포인트 el을 제공할 수 있다. 해당 컨스텔레이션 매핑은 데이터 파이프에 대해서만 적용된다. NUQ가 임의의 형태를 갖는 반면, QAM-16 및 NUQ는 정사각형 모양을 갖는 것이 관찰된다. 각각의 컨스텔레이션이 90도의 배수만큼 회전되면, 회전된 컨스텔레이션은 원래의 것과 정확히 겹쳐진다. 회전 대칭 특성으로 인해 실수 및 허수 컴포넌트의 용량 및 평균 파워가 서로 동일해진다. NUQ 및 NUC는 모두 각 코드 레이트(code rate)에 대해 특별히 정의되고, 사용되는 특정 하나는 PLS2 데이터에 보관된 파라미터 DP_MOD에 의해 시그널링 된다.
타임 인터리버(5050)는 데이터 파이프 레벨에서 동작할 수 있다. 타임 인터리빙의 파라미터는 각각의 데이터 파이프에 대해 다르게 설정될 수 있다. 타임 인터리버(5050)의 구체적인 동작에 관해서는 후술한다.
MIMO가 적용되는 BICM 블록의 처리 블록(5000-1)은 데이터 FEC 인코더, 비트 인터리버, 컨스텔레이션 매퍼, 및 타임 인터리버를 포함할 수 있다.
단, 처리 블록(5000-1)은 셀 워드 디멀티플렉서(5010-1) 및 MIMO 인코딩 블록(5020-1)을 더 포함한다는 점에서 MIMO가 적용되지 않는 BICM의 처리 블록(5000)과 구별된다.
또한, 처리 블록(5000-1)에서의 데이터 FEC 인코더, 비트 인터리버, 컨스텔레이션 매퍼, 타임 인터리버의 동작은 전술한 데이터 FEC 인코더(5010), 비트 인터리버(5020), 컨스텔레이션 매퍼(5030), 타임 인터리버(5050)의 동작에 해당하므로, 그 설명은 생략한다.
셀 워드 디멀티플렉서(5010-1)는 어드벤스 프로파일의 데이터 파이프가 MIMO 처리를 위해 단일 셀 워드 스트림을 이중 셀 워드 스트림으로 분리하는 데 사용된다.
MIMO 인코딩 블록(5020-1)은 MIMO 인코딩 방식을 이용해서 셀 워드 디멀티플렉서(5010-1)의 출력을 처리할 수 있다. MIMO 인코딩 방식은 방송 신호 송신을 위해 최적화되었다. MIMO 기술은 용량 증가를 얻기 위한 유망한 방식이지만, 채널 특성에 의존한다. 특별히 방송에 대해서, 서로 다른 신호 전파 특성으로 인한 두 안테나 사이의 수신 신호 파워 차이 또는 채널의 강한 LOS 컴포넌트는 MIMO로부터 용량 이득을 얻는 것을 어렵게 한다. 제안된 MIMO 인코딩 방식은 MIMO 출력 신호 중 하나의 위상 랜덤화 및 회전 기반 프리코딩을 이용하여 이 문제를 극복한다.
MIMO 인코딩은 송신기 및 수신기 모두에서 적어도 두 개의 안테나를 필요로 하는 2x2 MIMO 시스템을 위해 의도된다. 본 발명의 MIMO 인코딩 모드는 FR-SM (full-rate spatial multiplexing)으로 정의 될 수 있다. FR-SM 인코딩은 수신기 측에서의 비교적 작은 복잡도 증가로 용량 증가를 제공할 수 있다. 또한 본 발명의 MIMO 인코딩 방식은 안테나 극성 배치를 제한하지 않는다.
MIMO 처리는 데이터 파이프 레벨에서 적용된다. 컨스텔레이션 매퍼 출력의 페어(pair, 쌍)인 NUQ (e1,i 및 e2,i)는 MIMO 인코더의 입력으로 공급된다. MIMO 인코더 출력 페어(pair, 쌍)(g1,i 및 g2,i)은 각각의 송신 안테나의 동일한 캐리어 k 및 OFDM 심볼 l에 의해 전송된다.
전술한 블록은 생략되거나 유사 또는 동일 기능을 갖는 블록으로 대체될 수 있다.
도 20는 본 발명의 다른 실시예에 따른 BICM 블록을 나타낸다.
도 20에 도시된 BICM 블록은 도 18을 참조하여 설명한 BICM 블록(1010)의 일 실시예에 해당한다.
도 20은 PLS, EAC, 및 FIC의 보호를 위한 BICM 블록을 나타낸다. EAC는 EAS 정보 데이터를 전달하는 프레임의 일부이고, FIC는 서비스와 해당하는 베이스 데이터 파이프 사이에서 매핑 정보를 전달하는 프레임에서의 로지컬 채널이다. EAC 및 FIC에 대한 상세한 설명은 후술한다.
도 20을 참조하면, PLS, EAC, 및 FIC의 보호를 위한 BICM 블록은 PLS FEC 인코더(6000), 비트 인터리버(6010), 및 컨스텔레이션 매퍼(6020)를 포함할 수 있다.
또한, PLS FEC 인코더(6000)는 스크램블러, BCH 인코딩/제로 삽입 블록, LDPC 인코딩 블록, 및 LDPC 패리티 펑처링(puncturing) 블록을 포함할 수 있다. BICM 블록의 각 블록에 대해 설명한다.
PLS FEC 인코더(6000)는 스크램블링된 PLS 1/2 데이터, EAC 및 FIC 섹션을 인코딩할 수 있다.
스크램블러는 BCH 인코딩 및 쇼트닝(shortening) 및 펑처링된 LDPC 인코딩 전에 PLS1 데이터 및 PLS2 데이터를 스크램블링 할 수 있다.
BCH 인코딩/제로 삽입 블록은 PLS 보호를 위한 쇼트닝된 BCH 코드를 이용하여 스크램블링된 PLS 1/2 데이터에 외부 인코딩을 수행하고, BCH 인코딩 후에 제로 비트를 삽입할 수 있다. PLS1 데이터에 대해서만, 제로 삽입의 출력 비트가 LDPC 인코딩 전에 퍼뮤테이션(permutation) 될 수 있다.
LDPC 인코딩 블록은 LDPC 코드를 이용하여 BCH 인코딩/제로 삽입 블록의 출력을 인코딩할 수 있다. 완전한 코딩 블록을 생성하기 위해, Cldpc 및 패리티 비트 Pldpc는 각각의 제로가 삽입된 PLS 정보 블록 Ildpc로부터 조직적으로 인코딩되고, 그 뒤에 첨부된다.
Figure 112018058956310-pat00001
LDPC 패리티 펑처링 블록은 PLS1 데이터 및 PLS2 데이터에 대해 펑처링을 수행할 수 있다.
쇼트닝이 PLS1 데이터 보호에 적용되면, 일부 LDPC 패리티 비트는 LDPC 인코딩 후에 펑처링된다. 또한, PLS2 데이터 보호를 위해, PLS2의 LDPC 패리티 비트가 LDPC 인코딩 후에 펑처링된다. 이들 펑처링된 비트는 전송되지 않는다.
비트 인터리버(6010)는 각각의 쇼트닝 및 펑처링된 PLS1 데이터 및 PLS2 데이터를 인터리빙할 수 있다.
컨스텔레이션 매퍼(6020)는 비트 인터리빙된 PLS1 데이터 및 PLS2 데이터를 컨스텔레이션에 매핑할 수 있다.
전술한 블록은 생략되거나 유사 또는 동일 기능을 갖는 블록으로 대체될 수 있다.
도 21는 본 발명의 일 실시예에 따른 PLS의 비트 인터리빙을 과정을 나타낸 도면이다.
각각의 쇼트닝 및 펑처링된 PLS1 및 PLS2 코딩 블록은 도 22에 도시된 바와 같이 1비트씩 인터리빙 된다. 추가 패리티 비트의 각 블록은 동일한 블록 인터리빙 구조로 인터리빙 되지만 별도로 인터리빙 된다.
BPSK의 경우, 실수 및 허수 부분에서 FEC 코딩 비트를 복제하기 위해 비트 인터리빙을 위한 두 개의 브랜치가 존재한다. 각각의 코딩 블록은 상위 브랜치에 우선 라이팅 된다. 비트들은 사이클릭 시프트 값 플로어 (NFEC/2)로 모듈로 NFEC 덧셈을 적용함으로써 하위 브랜치에 매칭된다. 여기서 NFEC 는 쇼트닝 및 펑처링 후의 각각의 LDPC 코딩 블록의 길이이다.
QSPK, QAM-16, NUQ-64와 같은 다른 변조의 경우, FEC 코딩 비트는 열 방향으로 순차적으로 인터리버에 기입된다. 여기서, 열의 수는 변조 차수와 같다.
판독 동작에서, 하나의 컨스텔레이션 심볼에 대한 비트들은 순차적으로 행 방향으로 판독되고, 비트 디멀티플렉서 블록에 입력된다. 이 동작들은 열의 끝까지 계속된다.
각각의 비트 인터리빙 그룹은 컨스텔레이션 매핑 전에 그룹에서 1비트씩 디멀티플렉싱 된다. 변조 차수에 따라, 두 가지 매핑 규칙이 있다. BPSK 및 QPSK의 경우, 하나의 심볼에서 비트들의 신뢰도는 동일하다. 따라서, 비트 인터리빙 블록으로부터 판독된 비트 그룹은 어떠한 동작 없이 QAM 심볼에 매칭된다.
QAM 심볼에 매핑된 QAM-16 및 NUQ-64의 경우, 동작의 규칙이 도 23 (a)에 설명되어 있다. 도 23 (a)에 나타낸 바와 같이, i 는 비트 인터리빙에서 열 인덱스에 해당하는 비트 그룹 인덱스이다.
도 21는 QAM-16에 대한 비트 디멀티플렉싱 규칙을 나타낸다. 이 동작은 모든 비트 그룹이 비트 인터리빙 블록으로부터 판독될 때까지 계속된다.
도 22는 본 발명의 일 실시예에 따른 차세대 방송 서비스에 대한 방송 신호 수신 장치의 구조를 나타낸다.
본 발명의 일 실시예에 따른 차세대 방송 서비스에 대한 방송 신호 수신 장치는 도 18을 참조하여 설명한 차세대 방송 서비스에 대한 방송 신호 송신 장치에 대응할 수 있다.
본 발명의 일 실시예에 따른 차세대 방송 서비스에 대한 방송 신호 수신 장치는 동기 및 복조 모듈 (synchronization & demodulation module) (9000), 프레임 파싱 모듈 (frame parsing module) (9010), 디매핑 및 디코딩 모듈 (demapping & decoding module) (9020), 출력 프로세서 (output processor) (9030), 및 시그널링 디코딩 모듈 (signaling decoding module) (9040)을 포함할 수 있다. 방송 신호 수신 장치의 각 모듈의 동작에 대해 설명한다.
동기 및 복조 모듈(9000)은 m개의 수신 안테나를 통해 입력 신호를 수신하고, 방송 신호 수신 장치에 해당하는 시스템에 대해 신호 검출 및 동기화를 실행하고, 방송 신호 송신 장치에 의해 실행되는 절차의 역과정에 해당하는 복조를 실행할 수 있다.
프레임 파싱 모듈(9010)은 입력 신호 프레임을 파싱하고, 사용자에 의해 선택된 서비스가 전송되는 데이터를 추출할 수 있다. 방송 신호 송신 장치가 인터리빙을 실행하면, 프레임 파싱 모듈(9010)은 인터리빙의 역과정에 해당하는 디인터리빙을 실행할 수 있다. 이 경우, 추출되어야 하는 신호 및 데이터의 위치가 시그널링 디코딩 모듈(9040)로부터 출력된 데이터를 디코딩함으로써 획득되어, 방송 신호 송신 장치에 의해 생성된 스케줄링 정보가 복원될 수 있다.
디매핑 및 디코딩 모듈(9020)은 입력 신호를 비트 영역 데이터로 변환한 후, 필요에 따라 비트 영역 데이터들을 디인터리빙할 수 있다. 디매핑 및 디코딩 모듈(9020)은 전송 효율을 위해 적용된 매핑에 대한 디매핑을 실행하고, 디코딩을 통해 전송 채널에서 발생한 에러를 정정할 수 있다. 이 경우, 디매핑 및 디코딩 모듈(9020)은 시그널링 디코딩 모듈(9040)로부터 출력된 데이터를 디코딩함으로써 디매핑 및 디코딩을 위해 필요한 전송 파라미터를 획득할 수 있다.
출력 프로세서(9030)는 전송 효율을 향상시키기 위해 방송 신호 송신 장치에 의해 적용되는 다양한 압축/신호 처리 절차의 역과정을 실행할 수 있다. 이 경우, 출력 프로세서(9030)는 시그널링 디코딩 모듈(9040)로부터 출력된 데이터에서 필요한 제어 정보를 획득할 수 있다. 출력 프로세서(9030)의 출력은 방송 신호 송신 장치에 입력되는 신호에 해당하고, MPEG-TS, IP 스트림 (v4 또는 v6) 및 GS일 수 있다.
시그널링 디코딩 모듈(9040)은 동기 및 복조 모듈(9000)에 의해 복조된 신호로부터 PLS 정보를 획득할 수 있다. 전술한 바와 같이, 프레임 파싱 모듈(9010), 디매핑 및 디코딩 모듈(9020), 출력 프로세서(9030)는 시그널링 디코딩 모듈(9040)로부터 출력된 데이터를 이용하여 그 기능을 실행할 수 있다.
본 발명의 일 실시예에 따른 프레임은 다수의 OFDM 심볼 및 프리앰블로 더 분리된다. (d)에 도시한 바와 같이, 프레임은 프리앰블, 하나 이상의 FSS, 노멀 데이터 심볼, FES를 포함한다.
프리앰블은 고속 퓨처캐스트 UTB 시스템 신호 검출을 가능하게 하고, 신호의 효율적인 송신 및 수신을 위한 기본 전송 파라미터의 집합을 제공하는 특별한 심볼이다. 프리앰블에 대한 자세한 내용은 후술한다.
FSS의 주된 목적은 PLS 데이터를 전달하는 것이다. 고속 동기화 및 채널 추정을 위해, 이에 따른 PLS 데이터의 고속 디코딩을 위해, FSS는 노멀 데이터 심볼보다 고밀도의 파일럿 패턴을 갖는다. FES는 FSS와 완전히 동일한 파일럿을 갖는데, 이는 FES에 바로 앞서는 심볼에 대해 외삽(extrapolation) 없이 FES 내에서의 주파수만의 인터폴레이션(interpolation, 보간) 및 시간적 보간(temporal interpolation)을 가능하게 한다.
도 23은 본 발명의 일 실시예에 따른 프레임의 시그널링 계층 구조(signaling hierarchy structure) 를 나타낸다.
도 23은 시그널링 계층 구조를 나타내는데, 이는 세 개의 주요 부분인 프리앰블 시그널링 데이터(11000), PLS1 데이터(11010), 및 PLS2 데이터(11020)로 분할된다. 매 프레임마다 프리앰블 신호에 의해 전달되는 프리앰블의 목적은 프레임의 기본 전송 파라미터 및 전송 타입을 나타내는 것이다. PLS1은 수신기가 관심 있는 데이터 파이프에 접속하기 위한 파라미터를 포함하는 PLS2 데이터에 접속하여 디코딩할 수 있게 한다. PLS2는 매 프레임마다 전달되고, 두 개의 주요 부분인 PLS2-STAT 데이터와 PLS2-DYN 데이터로 분할된다. PLS2 데이터의 스태틱(static, 정적) 및 다이나믹(dynamic, 동적) 부분에는 필요시 패딩이 뒤따른다.
본 발명의 일 실시예에 따른 프리앰블 시그널링 데이터는 수신기가 프레임 구조 내에서 PLS 데이터에 접속하고 데이터 파이프를 추적할 수 있게 하기 위해 필요한 21비트의 정보를 전달한다. 프리앰블 시그널링 데이터에 대한 자세한 내용은 다음과 같다.
FFT_SIZE: 해당 2비트 필드는 아래 표 1에서 설명한 바와 같이 프레임 그룹 내에서 현 프레임의 FFT 사이즈를 나타낸다.
Value FFT 사이즈
00 8K FFT
01 16K FFT
10 32K FFT
11 리저브드
GI_FRACTION: 해당 3비트 필드는 아래 표 2에서 설명한 바와 같이 현 슈퍼 프레임에서의 가드 인터벌 일부(fraction) 값을 나타낸다.
GI_FRACTION
000 1/5
001 1/10
010 1/20
011 1/40
100 1/80
101 1/160
110~111 리저브드
EAC_FLAG: 해당 1비트 필드는 EAC가 현 프레임에 제공되는지 여부를 나타낸다. 해당 필드가 1로 설정되면, EAS가 현 프레임에 제공된다. 해당 필드가 0으로 설정되면, EAS가 현 프레임에서 전달되지 않는다. 해당 필드는 슈퍼 프레임 내에서 다이나믹(dynamic, 동적)으로 전환될 수 있다.PILOT_MODE: 해당 1비트 필드는 현 프레임 그룹에서 현 프레임에 대해 파일럿 모드가 모바일 모드인지 또는 고정 모드인지 여부를 나타낸다. 해당 필드가 0으로 설정되면, 모바일 파일럿 모드가 사용된다. 해당 필드가 1로 설정되면, 고정 파일럿 모드가 사용된다.
*PAPR_FLAG: 해당 1비트 필드는 현 프레임 그룹에서 현 프레임에 대해 PAPR 감소가 사용되는지 여부를 나타낸다. 해당 필드가 1로 설정되면, 톤 예약(tone reservation)이 PAPR 감소를 위해 사용된다. 해당 필드가 0으로 설정되면, PAPR 감소가 사용되지 않는다.
RESERVED: 해당 7비트 필드는 추후 사용을 위해 리저브드(reserved)된다.
도 24은 본 발명의 일 실시예에 따른 PLS1 데이터를 나타낸다.
PLS1 데이터는 PLS2의 수신 및 디코딩을 가능하게 하기 위해 필요한 파라미터를 포함한 기본 전송 파라미터를 제공한다. 전술한 바와 같이, PLS1 데이터는 하나의 프레임 그룹의 전체 듀레이션 동안 변화하지 않는다. PLS1 데이터의 시그널링 필드의 구체적인 정의는 다음과 같다.
PREAMBLE_DATA: 해당 20비트 필드는 EAC_FLAG를 제외한 프리앰블 시그널링 데이터의 카피이다.
NUM_FRAME_FRU: 해당 2비트 필드는 FRU당 프레임 수를 나타낸다.
PAYLOAD_TYPE: 해당 3비트 필드는 프레임 그룹에서 전달되는 페이로드 데이터의 포맷을 나타낸다. PAYLOAD_TYPE은 표 3에 나타낸 바와 같이 시그널링 된다.
페이로드 타입
1XX TS가 전송됨
X1X IP 스트림이 전송됨
XX1 GS가 전송됨
NUM_FSS: 해당 2비트 필드는 현 프레임에서 FSS의 수를 나타낸다.SYSTEM_VERSION: 해당 8비트 필드는 전송되는 신호 포맷의 버전을 나타낸다. SYSTEM_VERSION은 주 버전 및 부 버전의 두 개의 4비트 필드로 분리된다.
주 버전: SYSTEM_VERSION 필드의 MSB인 4비트는 주 버전 정보를 나타낸다. 주 버전 필드에서의 변화는 호환이 불가능한 변화를 나타낸다. 디폴트 값은 0000이다. 해당 표준에서 서술된 버전에 대해, 값이 0000으로 설정된다.
부 버전: SYSTEM_VERSION 필드의 LSB인 4비트는 부 버전 정보를 나타낸다. 부 버전 필드에서의 변화는 호환이 가능하다.
CELL_ID: 이는 ATSC 네트워크에서 지리적 셀을 유일하게 식별하는 16비트 필드이다. ATSC 셀 커버리지는 퓨처캐스트 UTB 시스템당 사용되는 주파수 수에 따라 하나 이상의 주파수로 구성될 수 있다. CELL_ID의 값이 알려지지 않거나 특정되지 않으면, 해당 필드는 0으로 설정된다.
NETWORK_ID: 이는 현 ATSC 네트워크를 유일하게 식별하는 16비트 필드이다.
SYSTEM_ID: 해당 16비트 필드는 ATSC 네트워크 내에서 퓨처캐스트 UTB 시스템을 유일하게 식별한다. 퓨처캐스트 UTB 시스템은 입력이 하나 이상의 입력 스트림(TS, IP, GS)이고 출력이 RF 신호인 지상파 방송 시스템이다. 퓨처캐스트 UTB 시스템은 존재한다면 FEF 및 하나 이상의 피지컬 프로파일을 전달한다. 동일한 퓨처캐스트 UTB 시스템은 서로 다른 입력 스트림을 전달하고 서로 다른 지리적 영역에서 서로 다른 RF를 사용할 수 있어, 로컬 서비스 삽입을 허용한다. 프레임 구조 및 스케줄링은 하나의 장소에서 제어되고, 퓨처캐스트 UTB 시스템 내에서 모든 전송에 대해 동일하다. 하나 이상의 퓨처캐스트 UTB 시스템은 모두 동일한 피지컬 구조 및 구성을 갖는다는 동일한 SYSTEM_ID 의미를 가질 수 있다.
다음의 루프(loop)는 각 프레임 타입의 길이 및 FRU 구성을 나타내는 FRU_PHY_PROFILE, FRU_FRAME_LENGTH, FRU_GI_FRACTION, RESERVED로 구성된다. 루프(loop) 사이즈는 FRU 내에서 4개의 피지컬 프로파일(FEF 포함)이 시그널링되도록 고정된다. NUM_FRAME_FRU가 4보다 작으면, 사용되지 않는 필드는 제로로 채워진다.
FRU_PHY_PROFILE: 해당 3비트 필드는 관련된 FRU의 (i+1)번째 프레임(i는 루프(loop) 인덱스)의 피지컬 프로파일 타입을 나타낸다. 해당 필드는 표 8에 나타낸 것과 동일한 시그널링 포맷을 사용한다.
FRU_FRAME_LENGTH: 해당 2비트 필드는 관련된 FRU의 (i+1)번째 프레임의 길이를 나타낸다. FRU_GI_FRACTION와 함께 FRU_FRAME_LENGTH를 사용하면, 프레임 듀레이션의 정확한 값이 얻어질 수 있다.
FRU_GI_FRACTION: 해당 3비트 필드는 관련된 FRU의 (i+1)번째 프레임의 가드 인터벌 일부 값을 나타낸다. FRU_GI_FRACTION은 표 7에 따라 시그널링 된다.
RESERVED: 해당 4비트 필드는 추후 사용을 위해 리저브드(reserved)된다.
다음의 필드는 PLS2 데이터를 디코딩하기 위한 파라미터를 제공한다.
PLS2_FEC_TYPE: 해당 2비트 필드는 PLS2 보호에 의해 사용되는 FEC 타입을 나타낸다. FEC 타입은 표 4에 따라 시그널링 된다. LDPC 코드에 대한 자세한 내용은 후술한다.
콘텐트 PLS2 FEC 타입
00 4K-1/4 및 7K-3/10 LDPC 코드
01 ~ 11 리저브드(reserved)
PLS2_MOD: 해당 3비트 필드는 PLS2에 의해 사용되는 변조 타입을 나타낸다. 변조 타입은 표 5에 따라 시그널링 된다.
PLS2_MODE
000 BPSK
001 QPSK
010 QAM-16
011 NUQ-64
100~111 리저브드(reserved)
PLS2_SIZE_CELL: 해당 15비트 필드는 현 프레임 그룹에서 전달되는 PLS2에 대한 모든 코딩 블록의 사이즈(QAM 셀의 수로 특정됨)인 Ctotal_partial_block를 나타낸다. 해당 값은 현 프레임 그룹의 전체 듀레이션 동안 일정하다.PLS2_STAT_SIZE_BIT: 해당 14비트 필드는 현 프레임 그룹에 대한 PLS2-STAT의 사이즈를 비트수로 나타낸다. 해당 값은 현 프레임 그룹의 전체 듀레이션 동안 일정하다.
PLS2_DYN_SIZE_BIT: 해당 14비트 필드는 현 프레임 그룹에 대한 PLS2-DYN의 사이즈를 비트수로 나타낸다. 해당 값은 현 프레임 그룹의 전체 듀레이션 동안 일정하다.
PLS2_REP_FLAG: 해당 1비트 플래그는 PLS2 반복 모드가 현 프레임 그룹에서 사용되는지 여부를 나타낸다. 해당 필드의 값이 1로 설정되면, PLS2 반복 모드는 활성화된다. 해당 필드의 값이 0으로 설정되면, PLS2 반복 모드는 비활성화된다.
PLS2_REP_SIZE_CELL: 해당 15비트 필드는 PLS2 반복이 사용되는 경우 현 프레임 그룹의 매 프레임마다 전달되는 PLS2에 대한 부분 코딩 블록의 사이즈(QAM 셀의 수로 특정됨)인 Ctotal_partial_block를 나타낸다. 반복이 사용되지 않는 경우, 해당 필드의 값은 0과 동일하다. 해당 값은 현 프레임 그룹의 전체 듀레이션 동안 일정하다.
PLS2_NEXT_FEC_TYPE: 해당 2비트 필드는 다음 프레임 그룹의 매 프레임에서 전달되는 PLS2에 사용되는 FEC 타입을 나타낸다. FEC 타입은 표 10에 따라 시그널링 된다.
PLS2_NEXT_MOD: 해당 3비트 필드는 다음 프레임 그룹의 매 프레임에서 전달되는 PLS2에 사용되는 변조 타입을 나타낸다. 변조 타입은 표 11에 따라 시그널링 된다.
PLS2_NEXT_REP_FLAG: 해당 1비트 플래그는 PLS2 반복 모드가 다음 프레임 그룹에서 사용되는지 여부를 나타낸다. 해당 필드의 값이 1로 설정되면, PLS2 반복 모드는 활성화된다. 해당 필드의 값이 0으로 설정되면, PLS2 반복 모드는 비활성화된다.
PLS2_NEXT_REP_SIZE_CELL: 해당 15비트 필드는 PLS2 반복이 사용되는 경우 다음 프레임 그룹의 매 프레임마다 전달되는 PLS2에 대한 전체 코딩 블록의 사이즈(QAM 셀의 수로 특정됨)인 Ctotal_full_block를 나타낸다. 다음 프레임 그룹에서 반복이 사용되지 않는 경우, 해당 필드의 값은 0과 동일하다. 해당 값은 현 프레임 그룹의 전체 듀레이션 동안 일정하다.
PLS2_NEXT_REP_STAT_SIZE_BIT: 해당 14비트 필드는 다음 프레임 그룹에 대한 PLS2-STAT의 사이즈를 비트수로 나타낸다. 해당 값은 현 프레임 그룹에서 일정하다.
PLS2_NEXT_REP_DYN_SIZE_BIT: 해당 14비트 필드는 다음 프레임 그룹에 대한 PLS2-DYN의 사이즈를 비트수로 나타낸다. 해당 값은 현 프레임 그룹에서 일정하다.
PLS2_AP_MODE: 해당 2비트 필드는 현 프레임 그룹에서 PLS2에 대해 추가 패리티가 제공되는지 여부를 나타낸다. 해당 값은 현 프레임 그룹의 전체 듀레이션 동안 일정하다. 아래의 표 6은 해당 필드의 값을 제공한다. 해당 필드의 값이 00으로 설정되면, 현 프레임 그룹에서 추가 패리티가 PLS2에 대해 사용되지 않는다.
PLS2-AP 모드
00 추가 패리티가 제공되지 않음
01 AP1 모드
10~11 리저브드(reserved)
PLS2_AP_SIZE_CELL: 해당 15비트 필드는 PLS2의 추가 패리티 비트의 사이즈(QAM 셀의 수로 특정됨)를 나타낸다. 해당 값은 현 프레임 그룹의 전체 듀레이션 동안 일정하다.PLS2_NEXT_AP_MODE: 해당 2비트 필드는 다음 프레임 그룹의 매 프레임마다 PLS2 시그널링에 대해 추가 패리티가 제공되는지 여부를 나타낸다. 해당 값은 현 프레임 그룹의 전체 듀레이션 동안 일정하다. 표 12는 해당 필드의 값을 정의한다.
PLS2_NEXT_AP_SIZE_CELL: 해당 15비트 필드는 다음 프레임 그룹의 매 프레임마다 PLS2의 추가 패리티 비트의 사이즈(QAM 셀의 수로 특정됨)를 나타낸다. 해당 값은 현 프레임 그룹의 전체 듀레이션 동안 일정하다.
RESERVED: 해당 32비트 필드는 추후 사용을 위해 리저브드(reserved)된다.
CRC_32: 전체 PLS1 시그널링에 적용되는 32비트 에러 검출 코드
도 25은 본 발명의 일 실시예에 따른 PLS2 데이터를 나타낸다.
도 25은 PLS2 데이터의 PLS2-STAT 데이터를 나타낸다. PLS2-STAT 데이터는 프레임 그룹 내에서 동일한 반면, PLS2-DYN 데이터는 현 프레임에 대해 특정한 정보를 제공한다.
PLS2-STAT 데이터의 필드에 대해 다음에 구체적으로 설명한다.
*FIC_FLAG: 해당 1비트 필드는 FIC가 현 프레임 그룹에서 사용되는지 여부를 나타낸다. 해당 필드의 값이 1로 설정되면, FIC는 현 프레임에서 제공된다. 해당 필드의 값이 0으로 설정되면, FIC는 현 프레임에서 전달되지 않는다. 해당 값은 현 프레임 그룹의 전체 듀레이션 동안 일정하다.
AUX_FLAG: 해당 1비트 필드는 보조 스트림이 현 프레임 그룹에서 사용되는지 여부를 나타낸다. 해당 필드의 값이 1로 설정되면, 보조 스트림은 현 프레임에서 제공된다. 해당 필드의 값이 0으로 설정되면, 보조 프레임은 현 프레임에서 전달되지 않는다. 해당 값은 현 프레임 그룹의 전체 듀레이션 동안 일정하다.
NUM_DP: 해당 6비트 필드는 현 프레임 내에서 전달되는 데이터 파이프의 수를 나타낸다. 해당 필드의 값은 1에서 64 사이이고, 데이터 파이프의 수는 NUM_DP+1이다.
DP_ID: 해당 6비트 필드는 피지컬 프로파일 내에서 유일하게 식별한다.
DP_TYPE: 해당 3비트 필드는 데이터 파이프의 타입을 나타낸다. 이는 아래의 표 7에 따라 시그널링 된다.
데이터 파이프 타입
000 타입 1 데이터 파이프
001 타입 2 데이터 파이프
010~111 리저브드(reserved)
DP_GROUP_ID: 해당 8비트 필드는 현 데이터 파이프가 관련되어 있는 데이터 파이프 그룹을 식별한다. 이는 수신기가 동일한 DP_GROUP_ID를 갖게 되는 특정 서비스와 관련되어 있는 서비스 컴포넌트의 데이터 파이프에 접속하는 데 사용될 수 있다.BASE_DP_ID: 해당 6비트 필드는 관리 계층에서 사용되는 (PSI/SI와 같은) 서비스 시그널링 데이터를 전달하는 데이터 파이프를 나타낸다. BASE_DP_ID에 의해 나타내는 데이터 파이프는 서비스 데이터와 함께 서비스 시그널링 데이터를 전달하는 노멀 데이터 파이프이거나, 서비스 시그널링 데이터만을 전달하는 전용 데이터 파이프일 수 있다.
DP_FEC_TYPE: 해당 2비트 필드는 관련된 데이터 파이프에 의해 사용되는 FEC 타입을 나타낸다. FEC 타입은 아래의 표 8에 따라 시그널링 된다.
FEC_TYPE
00 16K LDPC
01 64K LDPC
10 ~ 11 리저브드(reserved)
DP_COD: 해당 4비트 필드는 관련된 데이터 파이프에 의해 사용되는 코드 레이트(code rate)을 나타낸다. 코드 레이트(code rate)은 아래의 표 9에 따라 시그널링 된다.
코드 레이트(code rate)
0000 5/15
0001 6/15
0010 7/15
0011 8/15
0100 9/15
0101 10/15
0110 11/15
0111 12/15
1000 13/15
1001 ~ 1111 리저브드(reserved)
DP_MOD: 해당 4비트 필드는 관련된 데이터 파이프에 의해 사용되는 변조를 나타낸다. 변조는 아래의 표 10에 따라 시그널링 된다.
변조
0000 QPSK
0001 QAM-16
0010 NUQ-64
0011 NUQ-256
0100 NUQ-1024
0101 NUC-16
0110 NUC-64
0111 NUC-256
1000 NUC-1024
1001~1111 리저브드(reserved)
DP_SSD_FLAG: 해당 1비트 필드는 SSD 모드가 관련된 데이터 파이프에서 사용되는지 여부를 나타낸다. 해당 필드의 값이 1로 설정되면, SSD는 사용된다. 해당 필드의 값이 0으로 설정되면, SSD는 사용되지 않는다.다음의 필드는 PHY_PROFILE가 어드벤스 프로파일을 나타내는 010과 동일할 때에만 나타난다.
DP_MIMO: 해당 3비트 필드는 어떤 타입의 MIMO 인코딩 처리가 관련된 데이터 파이프에 적용되는지 나타낸다. MIMO 인코딩 처리의 타입은 아래의 표 11에 따라 시그널링 된다.
MIMO 인코딩
000 FR-SM
001 FRFD-SM
010~111 리저브드(reserved)
DP_TI_TYPE: 해당 1비트 필드는 타임 인터리빙의 타입을 나타낸다. 0의 값은 하나의 타임 인터리빙 그룹이 하나의 프레임에 해당하고 하나 이상의 타임 인터리빙 블록을 포함하는 것을 나타낸다. 1의 값은 하나의 타임 인터리빙 그룹이 하나보다 많은 프레임으로 전달되고 하나의 타임 인터리빙 블록만을 포함하는 것을 나타낸다.DP_TI_LENGTH: 해당 2비트 필드(허용된 값은 1, 2, 4, 8뿐이다)의 사용은 다음과 같은 DP_TI_TYPE 필드 내에서 설정되는 값에 의해 결정된다.
DP_TI_TYPE의 값이 1로 설정되면, 해당 필드는 각각의 타임 인터리빙 그룹이 매핑되는 프레임의 수인 PI를 나타내고, 타임 인터리빙 그룹당 하나의 타임 인터리빙 블록이 존재한다 (NTI=1). 해당 2비트 필드로 허용되는 PI의 값은 아래의 표 12에 정의된다.
DP_TI_TYPE의 값이 0으로 설정되면, 해당 필드는 타임 인터리빙 그룹당 타임 인터리빙 블록의 수 NTI를 나타내고, 프레임당 하나의 타임 인터리빙 그룹이 존재한다 (PI=1). 해당 2비트 필드로 허용되는 PI의 값은 아래의 표 12에 정의된다.
2비트 필드 PI NTI
00 1 1
01 2 2
10 4 3
11 8 4
DP_FRAME_INTERVAL: 해당 2비트 필드는 관련된 데이터 파이프에 대한 프레임 그룹 내에서 프레임 간격(IJUMP)을 나타내고, 허용된 값은 1, 2, 4, 8 (해당하는 2비트 필드는 각각 00, 01, 10, 11)이다. 프레임 그룹의 모든 프레임에 나타나지 않는 데이터 파이프에 대해, 해당 필드의 값은 순차적인 프레임 사이의 간격과 동일하다. 예를 들면, 데이터 파이프가 1, 5, 9, 13 등의 프레임에 나타나면, 해당 필드의 값은 4로 설정된다. 모든 프레임에 나타나는 데이터 파이프에 대해, 해당 필드의 값은 1로 설정된다.DP_TI_BYPASS: 해당 1비트 필드는 타임 인터리버(5050)의 가용성을 결정한다. 데이터 파이프에 대해 타임 인터리빙이 사용되지 않으면, 해당 필드 값은 1로 설정된다. 반면, 타임 인터리빙이 사용되면, 해당 필드 값은 0으로 설정된다.
DP_FIRST_FRAME_IDX: 해당 5비트 필드는 현 데이터 파이프가 발생하는 슈퍼 프레임의 첫 번째 프레임의 인덱스를 나타낸다. DP_FIRST_FRAME_IDX의 값은 0에서 31 사이다.
DP_NUM_BLOCK_MAX: 해당 10비트 필드는 해당 데이터 파이프에 대한 DP_NUM_BLOCKS의 최대값을 나타낸다. 해당 필드의 값은 DP_NUM_BLOCKS와 동일한 범위를 갖는다.
DP_PAYLOAD_TYPE: 해당 2비트 필드는 주어진 데이터 파이프에 의해 전달되는 페이로드 데이터의 타입을 나타낸다. DP_PAYLOAD_TYPE은 아래의 표 13에 따라 시그널링 된다.
페이로드 타입
00 TS
01 IP
10 GS
11 리저브드(reserved)
DP_INBAND_MODE: 해당 2비트 필드는 현 데이터 파이프가 인 밴드(In-band) 시그널링 정보를 전달하는지 여부를 나타낸다. 인 밴드(In-band) 시그널링 타입은 아래의 표 14에 따라 시그널링 된다.
인 밴드 모드(In-band mode)
00 인 밴드(In-band) 시그널링이 전달되지 않음
01 INBAND-PLS만 전달됨
10 INBAND-ISSY만 전달됨
11 INBAND-PLS 및 INBAND-ISSY가 전달됨
DP_PROTOCOL_TYPE: 해당 2비트 필드는 주어진 데이터 파이프에 의해 전달되는 페이로드의 프로토콜 타입을 나타낸다. 페이로드의 프로토콜 타입은 입력 페이로드 타입이 선택되면 아래의 표 15에 따라 시그널링 된다.
DP_PAYLOAD_TYPE이 TS인 경우 DP_PAYLOAD_TYPE이 IP인 경우 DP_PAYLOAD_TYPE이 GS인 경우
00 MPEG2-TS IPv4 (Note)
01 리저브드(reserved) IPv6 리저브드(reserved)
10 리저브드(reserved) 리저브드(reserved) 리저브드(reserved)
11 리저브드(reserved) 리저브드(reserved) 리저브드(reserved)
DP_CRC_MODE: 해당 2비트 필드는 CRC 인코딩이 인풋 포맷 블록에서 사용되는지 여부를 나타낸다. CRC 모드는 아래의 표 16에 따라 시그널링 된다.
CRC 모드
00 사용되지 않음
01 CRC-8
10 CRC-16
11 CRC-32
DNP_MODE: 해당 2비트 필드는 DP_PAYLOAD_TYPE이 TS ('00')로 설정되는 경우에 관련된 데이터 파이프에 의해 사용되는 널 패킷 삭제 모드를 나타낸다. DNP_MODE는 아래의 표 17에 따라 시그널링 된다. DP_PAYLOAD_TYPE이 TS ('00')가 아니면, DNP_MODE는 00의 값으로 설정된다.
널 패킷 삭제 모드
00 사용되지 않음
01 DNP-NORMAL
10 DNP-OFFSET
11 리저브드(reserved)
ISSY_MODE: 해당 2비트 필드는 DP_PAYLOAD_TYPE이 TS ('00')로 설정되는 경우에 관련된 데이터 파이프에 의해 사용되는 ISSY 모드를 나타낸다. ISSY_MODE는 아래의 표 18에 따라 시그널링 된다. DP_PAYLOAD_TYPE이 TS ('00')가 아니면, ISSY_MODE는 00의 값으로 설정된다.
ISSY 모드
00 사용되지 않음
01 ISSY-UP
10 ISSY-BBF
11 리저브드(reserved)
HC_MODE_TS: 해당 2비트 필드는 DP_PAYLOAD_TYPE이 TS ('00')로 설정되는 경우에 관련된 데이터 파이프에 의해 사용되는 TS 헤더 압축 모드를 나타낸다. HC_MODE_TS는 아래의 표 19에 따라 시그널링 된다.
헤더 압축 모드
00 HC_MODE_TS 1
01 HC_MODE_TS 2
10 HC_MODE_TS 3
11 HC_MODE_TS 4
HC_MODE_IP: 해당 2 비트 필드는 DP_PAYLOAD_TYPE이 IP ('01')로 설정되는 경우에 IP 헤더 압축 모드를 나타낸다. HC_MODE_IP는 아래의 표 20에 따라 시그널링 된다.
헤더 압축 모드
00 압축 없음
01 HC_MODE_IP 1
10~11 리저브드(reserved)
PID: 해당 13비트 필드는 DP_PAYLOAD_TYPE이 TS ('00')로 설정되고 HC_MODE_TS가 01 또는 10으로 설정되는 경우에 TS 헤더 압축을 위한 PID 수를 나타낸다.RESERVED: 해당 8비트 필드는 추후 사용을 위해 리저브드(reserved)된다.
다음 필드는 FIC_FLAG가 1과 동일할 때만 나타난다.
FIC_VERSION: 해당 8비트 필드는 FIC의 버전 넘버를 나타낸다.
FIC_LENGTH_BYTE: 해당 13비트 필드는 FIC의 길이를 바이트 단위로 나타낸다.
RESERVED: 해당 8비트 필드는 추후 사용을 위해 리저브드(reserved)된다.
다음 필드는 AUX_FLAG가 1과 동일할 때만 나타난다.
NUM_AUX: 해당 4비트 필드는 보조 스트림의 수를 나타낸다. 제로는 보조 스트림이 사용되지 않는 것을 나타낸다.
AUX_CONFIG_RFU: 해당 8비트 필드는 추후 사용을 위해 리저브드(reserved)된다.
AUX_STREAM_TYPE: 해당 4비트는 현 보조 스트림의 타입을 나타내기 위한 추후 사용을 위해 리저브드(reserved)된다.
AUX_PRIVATE_CONFIG: 해당 28비트 필드는 보조 스트림을 시그널링 하기 위한 추후 사용을 위해 리저브드(reserved)된다.
도 26는 본 발명의 다른 일 실시예에 따른 PLS2 데이터를 나타낸다.
도 26는 PLS2 데이터의 PLS2-DYN을 나타낸다. PLS2-DYN 데이터의 값은 하나의 프레임 그룹의 듀레이션 동안 변화할 수 있는 반면, 필드의 사이즈는 일정하다.
PLS2-DYN 데이터의 필드의 구체적인 내용은 다음과 같다.
FRAME_INDEX: 해당 5비트 필드는 슈퍼 프레임 내에서 현 프레임의 프레임 인덱스를 나타낸다. 슈퍼 프레임의 첫 번째 프레임의 인덱스는 0으로 설정된다.
PLS_CHANGE_COUNTER: 해당 4비트 필드는 구성이 변화하기 전의 슈퍼 프레임의 수를 나타낸다. 구성이 변화하는 다음 슈퍼 프레임은 해당 필드 내에서 시그널링 되는 값에 의해 나타낸다. 해당 필드의 값이 0000으로 설정되면, 이는 어떠한 예정된 변화도 예측되지 않는 것을 의미한다. 예를 들면, 1의 값은 다음 슈퍼 프레임에 변화가 있다는 것을 나타낸다.
FIC_CHANGE_COUNTER: 해당 4비트 필드는 구성(즉, FIC의 콘텐츠)이 변화하기 전의 슈퍼 프레임의 수를 나타낸다. 구성이 변화하는 다음 슈퍼 프레임은 해당 필드 내에서 시그널링 되는 값에 의해 나타낸다. 해당 필드의 값이 0000으로 설정되면, 이는 어떠한 예정된 변화도 예측되지 않는 것을 의미한다. 예를 들면, 0001의 값은 다음 슈퍼 프레임에 변화가 있다는 것을 나타낸다.
RESERVED: 해당 16비트 필드는 추후 사용을 위해 리저브드(reserved)된다.
다음 필드는 현 프레임에서 전달되는 데이터 파이프와 관련된 파라미터를 설명하는 NUM_DP에서의 루프(loop)에 나타난다.
DP_ID: 해당 6비트 필드는 피지컬 프로파일 내에서 데이터 파이프를 유일하게 나타낸다.
DP_START: 해당 15비트 (또는 13비트) 필드는 DPU 어드레싱(addressing) 기법을 사용하여 데이터 파이프의 첫 번째의 시작 위치를 나타낸다. DP_START 필드는 아래의 표 21에 나타낸 바와 같이 피지컬 프로파일 및 FFT 사이즈에 따라 다른 길이를 갖는다.
피지컬 프로파일 DP_START 필드 사이즈
64K 16K
베이스 13 비트 15 비트
핸드헬드 - 13 비트
어드벤스 13 비트 15 비트
DP_NUM_BLOCK: 해당 10비트 필드는 현 데이터 파이프에 대한 현 타임 인터리빙 그룹에서 FEC 블록의 수를 나타낸다. DP_NUM_BLOCK의 값은 0에서 1023 사이에 있다.RESERVED: 해당 8비트 필드는 추후 사용을 위해 리저브드(reserved)된다.
다음의 필드는 EAC와 관련된 FIC 파라미터를 나타낸다.
EAC_FLAG: 해당 1비트 필드는 현 프레임에서 EAC의 존재를 나타낸다. 해당 비트는 프리앰블에서 EAC_FLAG와 같은 값이다.
EAS_WAKE_UP_VERSION_NUM: 해당 8비트 필드는 자동 활성화 지시의 버전 넘버를 나타낸다.
EAC_FLAG 필드가 1과 동일하면, 다음의 12비트가 EAC_LENGTH_BYTE 필드에 할당된다. EAC_FLAG 필드가 0과 동일하면, 다음의 12비트가 EAC_COUNTER에 할당된다.
EAC_LENGTH_BYTE: 해당 12비트 필드는 EAC의 길이를 바이트로 나타낸다.
EAC_COUNTER: 해당 12비트 필드는 EAC가 도달하는 프레임 전의 프레임의 수를 나타낸다.
다음 필드는 AUX_FLAG 필드가 1과 동일한 경우에만 나타난다.
AUX_PRIVATE_DYN: 해당 48비트 필드는 보조 스트림을 시그널링 하기 위한 추후 사용을 위해 리저브드(reserved)된다. 해당 필드의 의미는 설정 가능한 PLS2-STAT에서 AUX_STREAM_TYPE의 값에 의존한다.
CRC_32: 전체 PLS2에 적용되는 32비트 에러 검출 코드.
도 27은 본 발명의 일 실시예에 따른 프레임의 로지컬(logical) 구조를 나타낸다.
전술한 바와 같이, PLS, EAC, FIC, 데이터 파이프, 보조 스트림, 더미 셀은 프레임에서 OFDM 심볼의 액티브(active) 캐리어에 매핑된다. PLS1 및 PLS2는 처음에 하나 이상의 FSS에 매핑된다. 그 후, EAC가 존재한다면 EAC 셀은 바로 뒤따르는 PLS 필드에 매핑된다. 다음에 FIC가 존재한다면 FIC 셀이 매핑된다. 데이터 파이프는 PLS 다음에 매핑되거나, EAC 또는 FIC가 존재하는 경우, EAC 또는 FIC 이후에 매핑된다. 타입 1 데이터 파이프가 처음에 매핑되고, 타입 2 데이터 파이프가 다음에 매핑된다. 데이터 파이프의 타입의 구체적인 내용은 후술한다. 일부 경우, 데이터 파이프는 EAS에 대한 일부 특수 데이터 또는 서비스 시그널링 데이터를 전달할 수 있다. 보조 스트림 또는 스트림은 존재한다면 데이터 파이프를 다음에 매핑되고 여기에는 차례로 더미 셀이 뒤따른다. 전술한 순서, 즉, PLS, EAC, FIC, 데이터 파이프, 보조 스트림, 및 더미 셀의 순서로 모두 함께 매핑하면 프레임에서 셀 용량을 정확히 채운다.
도 28은 본 발명의 일 실시예에 따른 PLS 매핑을 나타낸다.
*PLS 셀은 FSS의 액티브(active) 캐리어에 매핑된다. PLS가 차지하는 셀의 수에 따라, 하나 이상의 심볼이 FSS로 지정되고, FSS의 수 NFSS는 PLS1에서의 NUM_FSS에 의해 시그널링된다. FSS는 PLS 셀을 전달하는 특수한 심볼이다. 경고성 및 지연 시간(latency)은 PLS에서 중대한 사안이므로, FSS는 높은 파일럿 밀도를 가지고 있어 고속 동기화 및 FSS 내에서의 주파수만의 인터폴레이션(interpoloation, 보간)을 가능하게 한다.
PLS 셀은 도면에 도시된 바와 같이 하향식으로 FSS의 액티브(active) 캐리어에 매핑된다. PLS1 셀은 처음에 첫 FSS의 첫 셀부터 셀 인덱스의 오름차순으로 매핑된다. PLS2 셀은 PLS1의 마지막 셀 직후에 뒤따르고, 매핑은 첫 FSS의 마지막 셀 인덱스까지 아래방향으로 계속된다. 필요한 PLS 셀의 총 수가 하나의 FSS의 액티브(active) 캐리어의 수를 초과하면, 매핑은 다음 FSS로 진행되고 첫 FSS와 완전히 동일한 방식으로 계속된다.
PLS 매핑이 완료된 후, 데이터 파이프가 다음에 전달된다. EAC, FIC 또는 둘 다 현 프레임에 존재하면, EAC 및 FIC는PLS와 노멀 데이터 파이프 사이에 배치된다.
이하에서는 본 발명의 일 실시예에 따른 FEC 구조 및 인코딩에 대해 설명한다. 전술한 바와 같이, 데이터 FEC 인코더는 외부 코딩(BCH) 및 내부 코딩(LDPC)을 이용하여 FECBLOCK 절차를 생성하기 위해 입력 BBF에 FEC 인코딩을 실행할 수 있다. 도시된 FEC 구조는 FECBLOCK에 해당한다. 또한, FECBLOCK 및 FEC 구조는 LDPC 코드워드의 길이에 해당하는 동일한 값을 갖는다.
상술한 바와 같이BCH 인코딩이 각각의 BBF(Kbch 비트)에 적용된 후, LDPC 인코딩이 BCH - 인코딩된 BBF(Kldpc 비트 = Nbch 비트)에 적용된다.
Nldpc의 값은 64800 비트 (롱 FECBLOCK) 또는 16200 비트 (쇼트 FECBLOCK)이다.
아래의 표 22 및 표 23은 롱 FECBLOCK 및 쇼트 FECBLOCK 각각에 대한 FEC 인코딩 파라미터를 나타낸다.
LDPC 비율 Nldpc Kldpc Kbch BCH 에러 정정 능력 Nbch-Kbch
5/15 64800 21600 21408 12 192
6/15 25920 25728
7/15 30240 30048
8/15 34560 34368
9/15 38880 38688
10/15 43200 43008
11/15 47520 47328
12/15 51840 51648
13/15 56160 55968
LDPC 비율 Nldpc Kldpc Kbch BCH 에러 정정 능력 Nbch-Kbch
5/15 16200 5400 5232 12 168
6/15 6480 6312
7/15 7560 7392
8/15 8640 8472
9/15 9720 9552
10/15 10800 10632
11/15 11880 11712
12/15 12960 12792
13/15 14040 13872
BCH 인코딩 및 LDPC 인코딩의 구체적인 동작은 다음과 같다.12-에러 정정 BCH 코드가 BBF의 외부 인코딩에 사용된다. 쇼트 FECBLOCK 및 롱 FECBLOCK에 대한 BBF 생성 다항식은 모든 다항식을 곱함으로써 얻어진다.
LDPC 코드는 외부 BCH 인코딩의 출력을 인코딩하는 데 사용된다. 완성된 Bldpc (FECBLOCK)를 생성하기 위해, Pldpc (패리티 비트)가 각각의 Ildpc (BCH - 인코딩된 BBF)로부터 조직적으로 인코딩되고, Ildpc에 첨부된다. 완성된 Bldpc (FECBLOCK)는 다음의 수학식으로 표현된다.
Figure 112018058956310-pat00002
롱 FECBLOCK 및 쇼트 FECBLOCK에 대한 파라미터는 위의 표 22 및 23 에 각각 주어진다.
롱 FECBLOCK에 대해 Nldpc - Kldpc 패리티 비트를 계산하는 구체적인 절차는 다음과 같다.
1) 패리티 비트 초기화
Figure 112018058956310-pat00003
2) 패리티 체크 매트릭스의 어드레스의 첫 번째 행에서 특정된 패리티 비트 어드레스에서 첫 번째 정보 비트 i0 누산(accumulate). 패리티 체크 매트릭스의 어드레스의 상세한 내용은 후술한다. 예를 들면, 비율 13/15에 대해,
Figure 112018058956310-pat00004
3) 다음 359개의 정보 비트 is, s=1, 2, …, 359에 대해, 다음의 수학식을 이용하여 패리티 비트 어드레스에서 is 누산(accumulate).
Figure 112018058956310-pat00005
여기서, x 는 첫 번째 비트 i0에 해당하는 패리티 비트 누산기의 어드레스를 나타내고, Qldpc는 패리티 체크 매트릭스의 어드레서에서 특정된 코드 레이트(code rate) 의존 상수이다. 상기 예인, 비율 13/15에 대한, 따라서 정보 비트 i1에 대한 Qldpc = 24에 계속해서, 다음 동작이 실행된다.
Figure 112018058956310-pat00006
4) 361번째 정보 비트 i360에 대해, 패리티 비트 누산기의 어드레스는 패리티 체크 매트릭스의 어드레스의 두 번째 행에 주어진다. 마찬가지 방식으로, 다음 359개의 정보 비트 is, s= 361, 362, …, 719에 대한 패리티 비트 누산기의 어드레스는 수학식 6을 이용하여 얻어진다. 여기서, x는 정보 비트 i360에 해당하는 패리티 비트 누산기의 어드레스, 즉 패리티 체크 매트릭스의 두 번째 행의 엔트리를 나타낸다.
5) 마찬가지 방식으로, 360개의 새로운 정보 비트의 모든 그룹에 대해, 패리티 체크 매트릭스의 어드레스로부터의 새로운 행은 패리티 비트 누산기의 어드레스를 구하는 데 사용된다.
모든 정보 비트가 이용된 후, 최종 패리티 비트가 다음과 같이 얻어진다.
6) i=1로 시작해서 다음 동작을 순차적으로 실행
Figure 112018058956310-pat00007
여기서 pi, i=0,1,...Nldpc - Kldpc - 1의 최종 콘텐트는 패리티 비트 pi와 동일하다.
코드 레이트(code rate) Qldpc
5/15 120
6/15 108
7/15 96
8/15 84
9/15 72
10/15 60
11/15 48
12/15 36
13/15 24
표 24을 표 25로 대체하고, 롱 FECBLOCK에 대한 패리티 체크 매트릭스의 어드레스를 쇼트 FECBLOCK에 대한 패리티 체크 매트릭스의 어드레스로 대체하는 것을 제외하고, 쇼트 FECBLOCK에 대한 해당 LDPC 인코딩 절차는 롱 FECBLOCK에 대한 t LDPC 인코딩 절차에 따른다.
코드 레이트(code rate) Qldpc
5/15 30
6/15 27
7/15 24
8/15 21
9/15 18
10/15 15
11/15 12
12/15 9
13/15 6
도 29 는 본 발명의 일 실시예에 따른 타임 인터리빙을 나타낸다.(a) 내지 (c)는 타임 인터리빙 모드의 예를 나타낸다.
타임 인터리버는 데이터 파이프 레벨에서 동작한다. 타임 인터리빙의 파라미터는 각각의 데이터 파이프에 대해 다르게 설정될 수 있다.
PLS2-STAT 데이터의 일부에 나타나는 다음의 파라미터는 타임 인터리빙을 구성한다.
DP_TI_TYPE (허용된 값: 0 또는 1): 타임 인터리빙 모드를 나타낸다. 0은 타임 인터리빙 그룹당 다수의 타임 인터리빙 블록(하나 이상의 타임 인터리빙 블록)을 갖는 모드를 나타낸다. 이 경우, 하나의 타임 인터리빙 그룹은 하나의 프레임에 (프레임간 인터리빙 없이) 직접 매핑된다. 1은 타임 인터리빙 그룹당 하나의 타임 인터리빙 블록만을 갖는 모드를 나타낸다. 이 경우, 타임 인터리빙 블록은 하나 이상의 프레임에 걸쳐 확산된다(프레임간 인터리빙).
DP_TI_LENGTH: DP_TI_TYPE = '0'이면, 해당 파라미터는 타임 인터리빙 그룹당 타임 인터리빙 블록의 수 NTI이다. DP_TI_TYPE = '1'인 경우, 해당 파라미터는 하나의 타임 인터리빙 그룹으로부터 확산되는 프레임의 수 PI이다.
DP_NUM_BLOCK_MAX (허용된 값: 0 내지 1023): 타임 인터리빙 그룹당 XFECBLOCK의 최대 수를 나타낸다.
DP_FRAME_INTERVAL (허용된 값: 1, 2, 4, 8): 주어진 피지컬 프로파일의 동일한 데이터 파이프를 전달하는 두 개의 순차적인 프레임 사이의 프레임의 수 IJUMP를 나타낸다.
DP_TI_BYPASS (허용된 값: 0 또는 1): 타임 인터리빙이 데이터 프레임에 이용되지 않으면, 해당 파라미터는 1로 설정된다. 타임 인터리빙이 이용되면, 0으로 설정된다.
추가로, PLS2-DYN 데이터로부터의 파라미터 DP_NUM_BLOCK은 데이터 그룹의 하나의 타임 인터리빙 그룹에 의해 전달되는 XFECBLOCK의 수를 나타낸다.
타임 인터리빙이 데이터 프레임에 이용되지 않으면, 다음의 타임 인터리빙 그룹, 타임 인터리빙 동작, 타임 인터리빙 모드는 고려되지 않는다. 그러나 스케줄러부터의 다이나믹(dynamic, 동적) 구성 정보를 위한 딜레이 컴펜세이션(delay compensation, 지연보상) 블록은 여전히 필요하다. 각각의 데이터 파이프에서, SSD/MIMO 인코딩으로부터 수신한 XFECBLOCK은 타임 인터리빙 그룹으로 그루핑된다. 즉, 각각의 타임 인터리빙 그룹은 정수 개의 XFECBLOCK의 집합이고, 다이나믹(dynamic, 동적)으로 변화하는 수의 XFECBLOCK을 포함할 것이다. 인덱스 n의 타임 인터리빙 그룹에 있는 XFECBLOCK의 수는 NxBLOCK_Group(n)로 나타내고, PLS2-DYN 데이터에서 DP_NUM_BLOCK으로 시그널링된다. 이때, NxBLOCK_Group(n)은 최소값 0에서 가장 큰 값이 1023인 최대값 NxBLOCK_Group_MAX (DP_NUM_BLOCK_MAX에 해당)까지 변화할 수 있다.
각각의 타임 인터리빙 그룹은 하나의 프레임에 직접 매핑되거나 PI개의 프레임에 걸쳐 확산된다. 또한 각각의 타임 인터리빙 그룹은 하나 이상(NTI개)의 타임 인터리빙 블록으로 분리된다. 여기서 각각의 타임 인터리빙 블록은 타임 인터리버 메모리의 하나의 사용에 해당한다. 타임 인터리빙 그룹 내의 타임 인터리빙 블록은 약간의 다른 수의 XFECBLOCK을 포함할 수 있다. 타임 인터리빙 그룹이 다수의 타임 인터리빙 블록으로 분리되면, 타임 인터리빙 그룹은 하나의 프레임에만 직접 매핑된다. 아래의 표 26에 나타낸 바와 같이, 타임 인터리빙에는 세 가지 옵션이 있다(타임 인터리빙을 생략하는 추가 옵션 제외).
모드 설명
옵션 1 (a)에 나타낸 바와 같이 각각의 타임 인터리빙 그룹은 하나의 타임 인터리빙 블록을 포함하고 하나의 프레임에 직접 매핑된다. 해당 옵션은 DP_TI_TYPE = '0' 및 DP_TI_LENGTH = '1'(NTI=1)에 의해 PLS2-STAT에서 시그널링된다.
옵션 2 각각의 타임 인터리빙 그룹은 하나의 타임 인터리빙 블록을 포함하고 하나 이상의 프레임에 매핑된다. (b)는 하나의 타임 인터리빙 그룹이 두 개의 프레임, 즉 DP_TI_LENGTH ='2' (PI=2) 및 DP_FRAME_INTERVAL (IJUMP = 2)에 매핑되는 예를 나타낸다. 이것은 낮은 데이터율 서비스에 더 높은 시간 다이버시티를 제공한다. 해당 옵션은 DP_TI_TYPE ='1'에 의해 PLS2-STAT에서 시그널링된다.
옵션 3 (c)에 나타낸 바와 같이 각각의 타임 인터리빙 그룹은 다수의 타임 인터리빙 블록으로 분리되고 하나의 프레임에 직접 매핑된다. 각각의 타임 인터리빙 블록은 데이터 파이프에 대해 최대의 비트율(bit rate)을 제공하도록 풀(full) 타임 인터리빙 메모리를 사용할 수 있다. 해당 옵션은 PI=1이면서 DP_TI_TYPE = '0' 및 DP_TI_LENGTH = NTI에 의해 PLS2-STAT에서 시그널링된다.
일반적으로, 타임 인터리버는 프레임 생성 과정 이전에 데이터 파이프 데이터에 대한 버퍼로도 작용할 것이다. 이는 각각의 데이터 파이프에 대해 2개의 메모리 뱅크로 달성된다. 첫 번째 타임 인터리빙 블록은 첫 번째 뱅크에 기입된다. 첫 번째 뱅크에서 판독되는 동안 두 번째 타임 인터리빙 블록이 두 번째 뱅크에 기입된다.타임 인터리빙은 트위스트된 행-열 블록 인터리버이다. n번째 타임 인터리빙 그룹의 s번째 타임 인터리빙 블록에 대해, 열의 수 Nc 가 NxBLOCK_TI(n,s) 와 동일한 반면, 타임 인터리빙 메모리의 행의 수 Nr 는 셀의 수 Ncells 와 동일하다 (즉, Nr = Ncells).
도 30은 본 발명의 일 실시예에 따른 트위스트된 행-열 블록 인터리버의 기본 동작을 나타낸다.
도 30 (a)는 타임 인터리버에서 기입 동작을 나타내고, 도 30 (b)는 타임 인터리버에서 판독 동작을 나타낸다. (a)에 나타낸 바와 같이, 첫 번째 XFECBLOCK은 타임 인터리빙 메모리의 첫 번째 열에 열 방향으로 기입되고, 두 번째 XFECBLOCK은 다음 열에 기입되고, 이러한 동작이 이어진다. 그리고 인터리빙 어레이에서, 셀이 대각선 방향으로 판독된다. (b)에 나타낸 바와 같이 첫 번째 행으로부터 (가장 왼쪽 열을 시작으로 행을 따라 오른쪽으로) 마지막 행까지 대각선 방향 판독이 진행되는 동안, Nr 개의 셀이 판독된다. 구체적으로,
Figure 112018058956310-pat00008
이 순차적으로 판독될 타임 인터리빙 메모리 셀 위치라고 가정하면, 이러한 인터리빙 어레이에서의 판독 동작은 아래 식에서와 같이 행 인덱스
Figure 112018058956310-pat00009
, 열 인덱스
Figure 112018058956310-pat00010
, 관련된 트위스트 파라미터
Figure 112018058956310-pat00011
를 산출함으로써 실행된다.
Figure 112018058956310-pat00012
여기서,
Figure 112018058956310-pat00013
Figure 112018058956310-pat00014
에 상관없이 대각선 방향 판독 과정에 대한 공통 시프트 값이고, 시프트 값은 아래 식에서와 같이 PLS2-STAT에서 주어진
Figure 112018058956310-pat00015
에 의해 결정된다.
Figure 112018058956310-pat00016
결과적으로, 판독될 셀 위치는 좌표
Figure 112018058956310-pat00017
에 의해 산출된다.
도 31는 본 발명의 다른 일 실시예에 따른 트위스트된 행-열 블록 인터리버의 동작을 나타낸다.
더 구체적으로, 도 31 은
Figure 112018058956310-pat00018
,
Figure 112018058956310-pat00019
,
Figure 112018058956310-pat00020
일 때 가상 XFECBLOCK을 포함하는 각각의 타임 인터리빙 그룹에 대한 타임 인터리빙 메모리에서 인터리빙 어레이를 나타낸다.
변수
Figure 112018058956310-pat00021
Figure 112018058956310-pat00022
보다 작거나 같을 것이다. 따라서,
Figure 112018058956310-pat00023
에 상관없이 수신기 측에서 단일 메모리 디인터리빙을 달성하기 위해, 트위스트된 행-열 블록 인터리버용 인터리빙 어레이는 가상 XFECBLOCK을 타임 인터리빙 메모리에 삽입함으로써
Figure 112018058956310-pat00024
의 크기로 설정되고, 판독 과정은 다음 식과 같이 이루어진다.
Figure 112018058956310-pat00025
타임 인터리빙 그룹의 수는 3으로 설정된다. 타임 인터리버의 옵션은 DP_TI_TYPE='0', DP_FRAME_INTERVAL='1', DP_TI_LENGTH='1', 즉 NTI=1, IJUMP=1, PI=1에 의해 PLS2-STAT 데이터에서 시그널링된다. 각각 Ncells = 30인 XFECBLOCK의 타임 인터리빙 그룹당 수는 각각의 NxBLOCK_TI(0,0) = 3, NxBLOCK_TI(1,0) = 6, NxBLOCK_TI(2,0) = 5에 의해 PLS2-DYN 데이터에서 시그널링된다. XFECBLOCK의 최대 수는 NxBLOCK_Group_MAX에 의해 PLS2-STAT 데이터에서 시그널링 되고, 이는
Figure 112018058956310-pat00026
로 이어진다.
하나의 OFDM 심볼에 해당하는 데이터 상에서 동작하는 프리퀀시 인터리버의 목적은 프레임 빌더로부터 수신된 데이터 셀을 무작위로 인터리빙 함으로써 프리퀀시 다이버시티를 제공하는 것이다. 하나의 프레임에서 최대 인터리빙 이득을 얻기 위해, 두 개의 순차적인 OFDM 심볼로 이루어진 모든 OFDM 심볼 페어에 대해 다른 인터리빙 시퀀스가 사용된다.
따라서 본 발명의 일 실시예에 따른 프리퀀시 인터리버는 심볼 페어에 대응하는 데이터들에 적용하기 위한 인터리빙 어드레스를 생성하기 위한 인터리빙 어드레스 제너레이터를 포함할 수 있다.
도 32는 본 발명의 일 실시예에 따른 각 FFT 모드에 따른 메인-PRBS 제너레이터와 서브-PRBS 제너레이터로 구성된 인터리빙 어드레스 제너레이터의 블록 다이아그램을 나타낸 도면이다.
(a)는 8K FFT 모드에 대한 인터리빙 어드레스 제너레이터의 블록 다이아그램을 나타내고, (b)는 16K FFT 모드에 대한 인터리빙 어드레스 제너레이터의 블록 다이아그램을 나타내고, (c)는 32K FFT 모드에 대한 인터리빙 어드레스 제너레이터의 블록 다이아그램을 나타낸다.
OFDM 심볼 페어에 대한 인터리빙 과정은 하나의 인터리빙 시퀀스를 이용하며 다음과 같이 설명된다. 우선, 하나의 OFDM 심볼 Om,l 에서 인터리빙 될 사용 가능한 데이터 셀(셀 매퍼로부터의 출력 셀)은
Figure 112018058956310-pat00027
에 대해
Figure 112018058956310-pat00028
로 정의된다. 이때 xm,l,pm번째 프레임에서 l번째 OFDM 심볼의 p번째 셀이고, Ndata 는 데이터 셀의 개수이다: 프레임 시그널링 심볼에 대해 Ndata = CFSS 이고, 노멀 데이터에 대해 Ndata = Cdata 이며, 프레임 엣지 심볼에 대해 Ndata = CFES 이다. 또한, 인터리빙된 데이터 셀은
Figure 112018058956310-pat00029
에 대해
Figure 112018058956310-pat00030
로 정의된다.
OFDM 심볼 페어에 대해, 인터리빙 된 OFDM 심볼 페어는 각 페어의 첫 번째 OFDM 심볼에 대해
Figure 112018058956310-pat00031
로 주어지고, 각 페어의 두 번째 OFDM 심볼에 대해
Figure 112018058956310-pat00032
로 주어진다. 이때 Hl(p) 는 PRBS 제너레이터에 의해 생성된 인터리빙 어드레스이다.
도 33은 본 발명의 일 실시예에 따른 모든 FFT 모드들에 사용되는 메인-PRBS를 나타낸 도면이다.
(a)는 메인-PRBS를 나타내며, (b)는 각 FFT 모드를 위한 파라미터 Nmax를 나타낸다.
도 34은 본 발명의 일 실시예에 따른 프리퀀시 인터리빙을 위한 인터리빙 어드레스 및 FFT 모드들에 사용되는 서브-PRBS를 나타낸 도면이다.
(a)는 서브-PRBS 제너레이터를 나타내며, (b)는 프리퀀시 인터리빙을 위한 인터리빙 어드레스를 나타낸다. 본 발명의 일 실시예에 따른 사이클릭 시프트 값은 심볼 오프셋이라고 호칭할 수 있다.
도 35은 본 발명의 일 실시예에 따른 타임 인터리버의 라이팅 (writing) 오퍼레이션을 나타낸다.
도 35은 두 개의 TI 그룹에 대한 라이팅 (writing) 오퍼레이션을 나타낸다.
도면의 왼쪽에 도시된 블록은 TI 메모리 어드레스 어레이(memory address array)를 나타내며, 도면의 오른쪽에 도시된 블록은 연속한 두 개의 TI 그룹들에 대해 각각 버츄얼(virtual) FEC 블록들이 TI 그룹의 가장 앞에 각각 2개 및 1개가 삽입된 경우의 라이팅 (writing) 오퍼레이션을 나타낸다.
이하, PLP (Physical Layer Pipe) 모드에 따라 컨볼루션 인터리버(Convolution Interleaver, CI)와 블록 인터리버(Block Interleaver, BI)를 선택적으로 사용하거나, 모두 사용하는 타임 인터리버의 구조 및 타임 인터리빙 방법을 설명한다. 본 발명의 일 실시예에 따른 PLP는 상술한 DP와 동일한 개념으로 사용되는 피지컬 패스(physical path)로서, 호칭은 설계자의 의도에 따라 변경 가능하다.
본 발명의 일 실시예에 따른 PLP 모드는 방송 신호 송신기 또는 방송 신호 송신 장치에서 처리하는 PLP 개수에 따라 싱글 PLP(single PLP) 모드 또는 멀티플 PLP(multiple PLP)모드를 포함할 수 있다. 싱글 PLP 모드는 방송 신호 송신 장치에서 처리하는 PLP 개수가 하나인 경우를 의미한다. 싱글 PLP 모드는 싱글 PLP로 호칭할 수도 있다.
멀티플 PLP모드는 방송 신호 송신 장치에서 처리하는 PLP 개수가 하나 이상인 경우로서 멀티플 PLP 모드는 멀티플 PLP로 호칭할 수도 있다.
본 발명에서는 PLP 모드에 따라 서로 다른 타임 인터리빙 방법을 적용하는 타임 인터리빙을 하이브리드 타임 인터리빙(Hybrid Time Interleaving)이라 호칭할 수 있다. 본 발명의 일 실시예에 따른 하이브리드 타임 인터리빙은 멀티플 PLP 모드의 경우, 각 PLP별로 (혹은 PLP 레벨에서) 적용된다.
도 36는 PLP 개수에 따라 적용하는 인터리빙 타입을 표로 도시한 도면이다.
본 발명의 일실시예에 따른 타임 인터리버는 PLP_NUM의 값을 기반으로 인터리빙 타입(Interleaving type)이 결정될 수 있다. PLP_NUM는 PLP 모드를 나타내는 시그널링 필드(signaling field) 이다. PLP_NUM의 값이 1인 경우, PLP 모드는 싱글 PLP이다. 본 발명의 일 실시예에 따른 싱글 PLP는 컨볼루션 인터리버(Convolutional Interleaver, CI)만 적용될 수 있다.
PLP_NUM의 값이 1보다 큰 경우, PLP 모드는 멀티플 PLP이다. 본 발명의 일 실시예에 따른 멀티플 PLP는 컨볼루션 인터리버(Convolutional Interleaver, CI)와 블록 인터리버(Block Interleaver, BI)가 적용될 수 있다. 이 경우, 컨볼루션 인터리버는 인터 프레임 인터리빙(Inter frame interleaving)을 수행할 수 있으며, 블록 인터리버는 인트라 프레임 인터리빙(Intra frame interleaving)을 수행할 수 있다.
도 37은 상술한 하이브리드 타임 인터리버 구조의 제 1 실시예를 포함하는 블록도이다.
제 1 실시예에 따른 하이브리드 타임 인터리버는 블록 인터리버(BI)와 컨볼루션 인터리버(CI)를 포함할 수 있다. 본 발명의 타임 인터리버는 BICM 체인(BICM chain) 블록과 프레임 빌더(Frame Builder) 사이에 위치할 수 있다.
도 37 내지 도 38에 도시된 BICM 체인 블록은 도 19에 도시된 BICM 블록의 처리 블록(5000) 중 타임 인터리버(5050)를 제외한 블록들을 포함할 수 있다. 도 37 내지 도 38에 도시된 프레임 빌더는 도 18의 프레임 빌딩(1020)블록의 동일한 역할을 수행할 수 있다.
상술한 바와 같이 하이브리드 타임 인터리버 구조의 제 1 실시예에 따른 블록 인터리버는 PLP_NUM 값에 따라 적용 여부가 결정될 수 있다. 즉, PLP_NUM=1인 경우, 블록 인터리버는 적용되지 않고(블록인터리버 오프(off)), 컨볼루션 인터리버만 적용된다. PLP_NUM>1인 경우, 블록 인터리버와 컨볼루션 인터리버가 모두 적용(블록 인터리버 온(on))될 수 있다. PLP_NUM>1인 경우 적용되는 컨볼루션 인터리버의 구조 및 동작은 PLP_NUM=1인 경우 적용되는 컨볼루션 인터리버의 구조 및 동작과 동일하거나 유사할 수 있다.
도 38은 상술한 하이브리드 타임 인터리버 구조의 제 2 실시예를 포함하는 블록도이다.
하이브리드 타임 인터리버 구조의 제 2 실시예에 포함되는 각 블록의 동작은 도 37에서 설명한 내용과 동일하다. 하이브리드 타임 인터리버 구조의 제 2 실시예에 따른 블록 인터리버는 PLP_NUM 값에 따라 적용 여부가 결정될 수 있다. 제 2 실시예에 따른 하이브리드 타임 인터리버의 각 블록들은 본 발명의 실시예에 따른 동작들을 수행할 수 있다. 이 때, PLP_NUM=1인 경우와 PLP_NUM>1인 경우 적용되는 컨볼루션 인터리버의 구조 및 동작이 서로 다를 수 있다.
도 39는 하이브리드 타임 디인터리버의 구조의 제 1 실시예를 포함하는 블록도이다.
제 1 실시예에 따른 하이브리드 타임 디인터리버는 상술한 제 1 실시예에 따른 하이브리드 타임 인터리버의 역동작에 상응하는 동작을 수행할 수 있다. 따라서, 도 39의 제 1 실시예에 따른 하이브리드 타임 디인터리버는 컨볼루션 디인터리버(Convolutional deinterleaver, CDI)와 블록 디인터리버(Block deinterleaver, BDI)를 포함할 수 있다.
PLP_NUM>1인 경우 적용되는 컨볼루션 디인터리버의 구조 및 동작은 PLP_NUM=1인 경우 적용되는 컨볼루션 디인터리버의 구조 및 동작과 동일하거나 유사할 수 있다.
하이브리드 타임 디인터리버 구조의 제 1 실시예에 따른 블록 디인터리버는 PLP_NUM 값에 따라 적용 여부가 결정될 수 있다. 즉, PLP_NUM=1인 경우, 블록 디인터리버는 적용되지 않고(블록 디인터리버 오프(off)), 컨볼루션 디인터리버만 적용된다.
하이브리드 타임 디인터리버의 컨볼루션 디인터리버는 인터 프레임 디인터리빙(Inter frame deinterleaving)을 수행할 수 있으며, 블록 디인터리버는 인트라 프레임 디인터리빙(Intra frame deinterleaving)을 수행할 수 있다. 인터 프레임 디인터리빙 및 인트라 프레임 디인터리빙의 구체적인 내용은 전술한 내용과 동일하다.
도 39 내지 도 40에 도시된 BICM 디코딩(BICM decoding) 블록은 도 37 내지 도 38의 BICM 체인(BICM chain)블록의 역동작을 수행할 수 있다.
도 40은 하이브리드 타임 디인터리버의 구조의 제 2 실시예를 포함하는 블록도이다.
제 2 실시예에 따른 하이브리드 타임 디인터리버는 상술한 제 2 실시예에 따른 하이브리드 타임 인터리버의 역동작에 상응하는 동작을 수행할 수 있다. 하이브리드 타임 디인터리버 구조의 제 2 실시예에 포함되는 각 블록의 동작은 도 39에서 설명한 내용과 동일할 수 있다.
하이브리드 타임 디인터리버 구조의 제 2 실시예에 따른 블록 디인터리버는 PLP_NUM 값에 따라 적용 여부가 결정될 수 있다. 제 2 실시예에 따른 하이브리드 타임 디인터리버의 각 블록들은 본 발명의 실시예에 따른 동작들을 수행할 수 있다. 이 때, PLP_NUM=1인 경우와 PLP_NUM>1인 경우 적용되는 컨볼루션 디인터리버의 구조 및 동작이 서로 다를 수 있다.
도 41 은 본 발명의 일 실시예에 따른 앱 관련 방송 서비스에 대해 도시한 도면이다.
본 발명은, 전술한 방송 서비스 중, 어플리케이션(앱)과 관련있는 방송 서비스에 있어서, 그 시그널링 방안과 동기화(synchronization) 방안을 제안한다. 여기서 앱과 관련있는 방송 서비스란, 기본적인 방송 서비스의 제공이 어플리케이션과 관련 있는 경우의 방송 서비스를 의미할 수 있다. 구체적으로 앱 기반(app based) 인핸스먼트(enhancements)를 포함하는 리니어 서비스(linear service) 및/또는 스탠드 얼론(Stand alone) 앱 기반 서비스가 있을 수 있다. 실시예에 따라, 본 발명의 시그널링 방안 등은 앱을 활용하는 다른 형태의 서비스에 대해서도 적용될 수 있다.
먼저, 앱 기반 인핸스먼트를 포함하는 리니어 서비스에 대해서 설명한다. 여기서 리니어 서비스란 일반적인 방송 서비스를 의미할 수 있다. 인핸스먼트란 일반적인 방송 서비스에 대하여 부가적인 정보를 전달하는 인핸스먼트 서비스 내지 인터랙티브 서비스를 의미할 수 있다. 또한 앱 기반 인핸스먼트란 전술한 부가적인 정보의 제공/제어 등이 어플리케이션에 기반하여 수행되는 경우를 말할 수 있다.
예를 들어 풋볼 경기(일반적인 방송 서비스)가 방영되는 중에 있어, 선수 정보 앱이 풋볼 선수들에 대한 선수 정보를 제공(앱 기반 인핸스먼트)하는 경우가 앱기반 인핸스먼트를 포함하는 리니어 서비스에 해당할 수 있다.
스탠드 얼론 앱 기반 서비스에 대해 설명한다. 스탠드 얼론 앱 기반 서비스는 앱 기반 인핸스먼트만을 포함하는 방송 서비스를 의미할 수 있다. 즉 기본적인 방송 서비스에 앱 기반 인핸스먼트가 부가적인 정보를 제공하는 것이 아니라, 앱 자체가 서비스를 제공하는 경우가 이에 해당할 수 있다. 브로드캐스트-인디팬던트 앱등이 스탠드 얼른 앱 기반 서비스를 제공하는 앱의 일 실시예일 수 있다.
앱 기반 인핸스먼트는 여러 컴포넌트들을 포함할 수 있다. 앱 기반 인핸스먼트의 컴포넌트에는, 1 개 또는 그 이상의 앱, 0 개 또는 그 이상의 액티베이션 알림(notification), 0 개 또는 그 이상의 부가적인 NRT 컨텐트 아이템 및/또는 0 개 또는 그 이상의 온 디맨드 아이템이 있을 수 있다.
여기서, 각각의 앱들은 NRT(Non Real Time) 컨텐트 아이템으로서, 앱 실행 환경(application run time environment)에서 실행될 수 있듣 NRT 컨텐트 아이템일 수 있다. 여기서, 앱들이 수행할 액션(action)들이 방송방/브로드밴드를 통해 전달되는 알림(notification)들에 의해 시작(initiated)될 수 있는데, 이 알림들이 전술한 액티베이션 알림에 해당할 수 있다. 이 알림들은 "이벤트"라고 불릴 수도 있다. 여기서, 부가적인 NRT 컨텐트 아이템 및/또는 온 디멘드 아이템은 앱에 의해 사용될 데이터를 의미할 수 있다.
실시예에 따라, 앱 기반 인핸스먼트에 포함되는 앱 중에서 하나의 앱을 프라이머리 앱으로 둘 수도 있다. 프라이머리 앱이 존재하는 경우, 해당 앱 기반 인핸스먼트를 포함하는 방송 서비스가 선택되자마자, 이 프라이머리 앱이 실행될 수 있다. 프라이머리 앱이 아닌 다른 앱들은 방송망/브로드밴드를 통한 시그널링에 의해 실행될 수 있다. 또는 프라이머리 앱이 아닌 앱들은 이미 실행중인 다른 앱들에 의해 실행될 수 있다. 이 경우 프라이머리 앱이 아닌 앱은 자바 스크립트의 createApplication() 에 의해 실행될 수 있다.
본 발명은 전술한 바와 같이 다양한 타입의 앱 기반 인핸스먼트들에 대하여, 시그널링을 하는 방안을 제안한다. 또한 본 발명은 액티베이션 알림을 타임 베이스와 동기화시켜 전달하는 방안을 제안한다. 동기화된 액티베이션 알림에 의해 앱의 액션들 역시 동기화될 수 있다.
여기서, 어플리케이션(앱)은, 인핸스먼트/인터랙티브 서비스를 이루는 도큐먼트(HTML, CSS, JavaScript, 등)들의 집합을 의미할 수 있다.
여기서, 컨텐트 아이템은, 서비스 프로바이더가 프리젠테이션 목적상 하나의 유닛으로 다뤄지기를 의도한 하나 또는 그 이상의 파일들의 세트를 의미할 수 있다.
여기서, 이벤트(Event)는, DASH 클라이언트나 앱에, 어떠한 액션이 수행될 것임을 지시하는 시간적 알림(timed notification)을 의미할 수 있다.
여기서, 이벤트 스트림(Event Stream)은, 전술한 이벤트들의 스트림을 의미할 수 있다.
여기서, NRT 컨텐트 아이템은, 추후의 프리젠테이션 또는 앱에서의 다른 활용을 위하여 미리(ahead of time) 전달된 컨텐트 아이템을 의미할 수 있다.
여기서, 온 디맨드 컨텐트 아이템은, 사용자의 요청된 시각에 다운로드 되고 프리젠테이션되는 컨텐트 아이템을 의미할 수 있다.
도 42 는 본 발명의 일 실시예에 따른 ApplicationList 엘레멘트의 일부를 도시한 도면이다.
도 43 은 본 발명의 일 실시예에 따른 ApplicationList 엘레멘트의 다른 일부를 도시한 도면이다.
두 도면은 원래 하나인 도면을 도시하고 있으나, 공간의 제약에 의해 두 개의 도면으로 나뉘어 도시되었다.
전술한 바와 같이, 방송 서비스는 0개 또는 그 이상의 앱 기반 인핸스먼트를 포함할 수 있다. 예를 들어 리니어 서비스는 백그라운드에서 실행되어 타겟된 광고의 삽입을 매니징하는 하나의 앱을 가지는 앱 기반 인핸스먼트를 포함할 수 있다. 또한 이 리니어 서비스는 오디오/비디오 프로그램에 관련된 인터랙티브 뷰잉 익스피리언스(viewing experience) 를 제공하는 앱들의 집합을 포함하는 앱 기반 인핸스먼트를 더 포함할 수 있다.
여기서 각각의 앱 기반 인핸스먼트는 별개로(separately) 시그널링될 수 있다. 따라서 다양한 앱을 제작하는 제작자들은 서로 그들의 시그널링에 대해 협력할 필요가 없어질 수 있다.
*하나의 앱 기반 인핸스먼트에 포함되는 앱들의 집합은 AST (Application Signaling Table) 에 의해 시그널링될 수 있다. AST 는 XML 도큐먼트의 하나로서, ApplicationList 엘레멘트를 루트 엘레멘트로 가질 수 있다. 하나의 AST 는 하나의 앱 기반 인핸스먼트에 포함되는 앱들에 대한 시그널링 정보를 포함할 수 있다. 실시예에 따라 하나의 AST 가 복수개의 앱 기반 인핸스먼트를 시그널링하도록 확장될 수도 있다.
하나의 서비스에 대한 서비스 시그널링 정보는, 해당 서비스에 포함되는 각각의 앱 기반 인핸스먼트에 대하여 AST를 포함할 수 있다. 즉, 하나의 서비스가 복수개의 앱 기반 인핸스먼트를 포함하는 경우, 그 서비스의 서비스 시그널링 정보는 복수개의 AST 를 포함할 수 있다.
도시된 AST 의 일 실시예에 대해 설명한다. 실시예에 따라 AST 의 각 엘레멘트/속성(attribute) 는 추가/생략/변경될 수 있다.
AST 는 ApplicationList 엘레멘트를 루트 엘레멘트로 포함할 수 있다. ApplicationList 엘레멘트는 Application 엘레멘트의 리스트를 포함할 수 있다. 즉, ApplicationList 엘레멘트는 적어도 하나 이상의 Application 엘레멘트를 포함할 수 있다.
각각의 Application 엘레멘트는 appName 엘레멘트, applicationDescriptior 엘레멘트, applicationSpecificDescriptor 엘레멘트, applicationUsageDescriptor 엘레멘트, applicationBoundary 엘레멘트, applicationTransport 엘레멘트, applicationLocation 엘레멘트, atsc:Capabilities 엘레멘트, atsc:liveEventSource 엘레멘트, atsc:ContentItems 엘레멘트, @applicationIdentifier 속성, @atsc:serviceId 속성 및/또는 @atsc:protocolVersion 속성을 포함할 수 있다.
appName 엘레멘트는 Application 엘레멘트가 나타내는 앱의 이름을 나타낼 수 있다. 본 엘레멘트는 생략될 수 있다.앱 이름은 다양한 언어로 표현될 수 있다. appName 엘레멘트는 @lang 속성을 더 포함할 수도 있다. @lang 속성은 앱 이름을 표시하고 있는 언어를 나타낼 수 있다.
applicationDescriptior 엘레멘트는 해당 앱에 대한 정보를 포함할 수 있다. applicationDescriptior 엘레멘트는 모든 앱에 공통적으로 포함될 수 있는 정보들을 포함할 수 있다. applicationDescriptior 엘레멘트는 icon 엘레멘트, @type 속성, @controlCode 속성, @visibility 속성, @serviceBound 속성, @priority 속성, @version 속성, @mhpVersion 속성, @storageCapabilities 속성 및/또는 @trickModeTolerance 속성을 포함할 수 있다.
icon 엘레멘트는 해당 앱을 대표하는데 사용될 수 있는 아이콘을 나타낼 수 있다. 본 엘레멘트는 생략될 수 있다. icon 엘레멘트는 앱 이미지(아이콘)의 MIME 타입을 나타내는 @mimType 속성 및/또는 앱 이미지의 넓이/높이/깊이를 픽셀로 나타내는 @width/@height/@depth 속성을 더 포함할 수 있다. icon 엘레멘트는 앱 이미지의 다운로드를 위한 HTTP URL 정보를 가지는 @url 속성을 더 포함할 수도 있다.
@type 속성은 해당 앱의 타입을 지시할 수 있다. 예를 들어 본 속성은 해당 앱이 ATSC 또는 DVB 에 따른 앱임을 지시할 수 있다.
@controlCode 속성은 해당 앱의 상태(state)의 컨트롤을 위한 정보를 포함할 수 있다. 예를 들어 본 속성은 autolaunch, kill 등의 정보를 가질 수 있다. 이 정보들이 활용되어, 해당 앱의 상태가 컨트롤될 수 있다.
@visibility 속성은 해당 앱이 유저 및/또는 다른 앱에게 보여질 수 있는 앱인지를 지시할 수 있다(visible). 여기서 유저 및/또는 다른 앱에게 보여질 수 있는지 여부란, 넓은 의미로서 해당 앱이 유저 인터페이스에 나타나는지 여부를 의미할 수 있다. 본 속성은 보여지는지 여부 외에, 들릴 수 있는지(audible), 감각적으로 인지 가능한지(sensory) 여부를 모두 지시할 수 있다. 실시예에 따라, 해당 앱이 유저 등에게 스피커를 통해 들려질 수 있는지 여부는 @audibility 속성을 따로 두어 지시하게 할 수도 있다. 본 속성은 생략될 수 있다.
@serviceBound 속성은 해당 앱이 서비스 바운드되어 있는지 여부를 지시할 수 있다. 본 속성이 true 값을 가지는 경우 해당 앱은 서비스 바운드되어 있고, false 값을 가지는 경우 그렇지 않을 수 있다. 본 속성은 디폴트 값으로 true 값을 가질 수 있다. 본 속성은 생략될 수 있다. 본 속성이 생략되는 경우, 이는 해당 앱이 서비스 바운드되어 있다는 의미일 수 있다.
@priority 속성은 해당 앱이, 다른 앱들에 비하여 상대적으로 가지는 중요도(priority)를 지시할 수 있다. @version 속성은 해당 앱의 버전을 나타낼 수 있다. @mhpVersion 속성은 해당 앱을 위해 필요한 플랫폼 내지 버전을 지시할 수 있다. 본 속성은 생략될 수 있다.
@storageCapabilities 속성은 해당 앱을 캐쉬하는데 필요한 스토리지의 양을 나타낼 수 있다. 본 속성은 생략될 수 있다. 본 속성은, 실시예에 따라, 해당 앱이 캐쉬될 수 있는지 여부를 지시하는데 사용될 수도 있다.
@trickModeTolerance 속성은 해당 앱이 특정한 트릭 모드와 호환될 수 있는지 여부를 지시할 수 있다. 호환여부란, 특정 트릭 모드가 실행되었을 때, 해당 앱이 그 트릭 모드에 따라 정상적인 동작을 할 수 있는지 여부를 의미할 수 있다(whether an app can tolerate certain trick modes). 트릭 모드에는 일시정지, 빨리감기, 느린재생, 되감기(pause, FF, Slow mode, rewind)등이 있을 수 있다. 본 속성은 생략될 수 있다. 앱 인핸스먼트를 가지는 방송 서비스에 있어서, 유저가 그 방송 서비스에 대해 트릭 플레이를 하는 경우, 트릭 플레이된 기본 프로그램에 대해 인핸스먼트가 정상적으로 이루어질 수 있도록 시그널링이 수행될 수 있다.
applicationSpecificDescriptor 엘레멘트는 전술한 applicationDescriptior 엘레멘트와 달리, 특정 타입의 앱에 대해서만 필요한 정보를 가질 수 있다. 즉 본 엘레멘트의 정보는 앱 타입에 종속될 수 있다. 앱 타입에 따라 본 엘레멘트가 불필요할 수 있으므로, 본 엘레멘트는 생략될 수 있다.
applicationUsageDescriptor 엘레멘트는 해당 앱의 기능(function)을 나타낼 수 있다. 예를 들어 본 엘레멘트는 해당 앱이 teletext 에 활용될 수 있음을 지시할 수 있다. 앱 타입에 따라 불필요할 수도 있다. 본 엘레멘트는 생략될 수 있다.
applicationBoundary 엘레멘트는 해당 앱의 앱 바운더리(boundary)의 확장을 정의하는 URL 정보를 나타낼 수 있다. 본 엘레멘트는 생략될 수 있다.
applicationTransport 엘레멘트는 해당 앱을 전달하는데 사용된 프로토콜을 지시할 수 있다. 예를 들어 본 엘레멘트는 해당 앱이 ROUTE, MMT 또는 HTTP 를 통해 전달되었음을 지시할 수 있다. 실시예에 따라 본 엘레멘트는 해당 AST 가 전달되는데 사용된 프로토콜을 지시할 수도 있다. 전술한 본 발명의 서비스 데이터 전달방법에 따를 때, 본 엘레멘트의 허용된 값은 ROUTE, MMT, HTTP 등일 수 있다.
applicationLocation 엘레멘트는 해당 앱을 획득할 수 있는 로케이션을 제공하는 URL 을 나타낼 수 있다. 실시예에 따라 본 엘레멘트는 해당 앱을 획득할 수 있는 URL 을 나타낼 수도 잇다.
atsc:Capabilities 엘레멘트는 해당 앱/앱 기반 인핸스먼트를 유의미하게 처리하기 위한 캐퍼빌리티(capability) 정보를 나타낼 수 있다. 여기서 유의미하게 처리하기 위함이란, 유의미하게 렌더링/디코딩/재생등을 할 수 있는 수신측의 캐퍼빌리티를 의미할 수 있다. 실시예에 따라 이 캐퍼빌리티 정보는 기 설정된 캐퍼빌리티 코드에 의해 지시될 수도 있다.
atsc:liveEventSource 엘레멘트는 라이브 상황에 있어서 전술한 이벤트를 전달받기 위한 정보를 제공할 수 있다. 예를 들어 라이브로 제공되는 방송 프로그램에 있어서, 실시간으로 변경되는 방송 프로그램의 내용에 맞춰 인핸스먼트를 제공하기 위해서는 이벤트 역시 실시간으로 변경되어 전달될 수 있어야 한다. 기 제작된(pre produced) 컨텐츠와 달리 라이브 상황에서는 전술한 동작이 필요할 수 있다. 본 엘레멘트는 이러한 상황에서 이벤트를 실시간으로 전달받기 위한 URL 등의 정보를 제공할 수 있다. 본 엘레멘트는 @url 속성, @shortPollingPeriod 속성 및/또는 @targetDevice 속성을 포함할 수 있다.
@url 속성은 라이브 상황에서 이벤트를 전달받기 위한 URL 을 나타낼 수 있다. @shortPollingPeriod 속성은 이벤트가 브로드밴드의 쇼트 폴링으로 획득되는 경우에 있어서, 그 폴링 주기를 나타낼 수 있다. @targetDevice 속성은 해당 라이브 이벤트가 타겟하고 있는 기기를 나타낼 수 있다. 예를 들어 PD(Primary Device) 또는 CD (Companion Device) 가 타겟 대상일 수 있다. @shortPollingPeriod 속성 및/또는 @targetDevice 속성은 생략될 수 있다.
atsc:ContentItems 엘레멘트는 해당 앱에 의해 사용될 각 컨텐트 아이템에 대한 정보를 포함할 수 있다. atsc:ContentItems 엘레멘트는 각각의 컨텐트 아이템 개수만큼 존재할 수 있다. atsc:ContentItems 엘레멘트는 location 엘레멘트, @ContentLinkage 속성, @updatesAvailable 속성, @TFAvailable 속성, @contentSecurityCondition 속성, @availableInBroadcast 속성, @availableOnInet 속성, @playBackLengthInSecondes 속성, @playBackDelay 속성, @expiration 속성, @size 속성, @name 속성 및/또는 timeSlotInfo 엘레멘트를 더 포함할 수 있다.
location 엘레멘트는 해당 컨텐트 아이템을 획득할 수 있는 로케이션 정보를 나타낼 수 있다. 이 정보는 실시예에 따라, URL 의 형태일 수 있다. location 엘레멘트는 생략되거나 복수개 존재할 수 있다.
@ContentLinkage 속성은 해당 컨텐트 아이템을 활용할 앱을 지시할 수 있다. 이 속성값과 후술할 이벤트에 대한 정보들(EventStream 엘레멘트, emsg 박스 등)에 의하여 특정 앱에 대한 시그널링이 수행될 수 있다. 본 속성은, 예를 들어, 특정 앱에 대한 앱 식별자를 제공하거나, 그 앱 데이터가 전달되는 특정 LCT 세션을 지시할 수 있다.
@updatesAvailable 속성은 해당 컨텐트 아이템의 업데이트가 가능한지(available) 여부를 지시할 수 있다. true 또는 false 의 값을 가질 수 있다. @TFAvailable 속성은 해당 컨텐트 아이템을 위한 시그널링 채널에 텍스트 프래그먼트가 존재하는지 여부를 지시할 수 있다.
@contentSecurityCondition 속성은 해당 컨텐트 아이템의 시큐리티 상태를 나타낼 수 있다. @availableInBroadcast 속성은 해당 컨텐트 아이템이 방송망을 통해 획득될 수 있는지를 나타낼 수 있다. @availableOnInet 속성은 해당 컨텐트 아이템이 인터넷망을 통해 획득될 수 있는지를 나타낼 수 있다.
@playBackLengthInSecondes 속성은 해당 컨텐트 아이템의 재생시 길이를 초 단위로 나타낼 수 있다. 본 속성은 생략될 수 있다. @playBackDelay 속성은 해당 컨텐트 아이템의 재생 딜레이를 나타낼 수 있다. 본 속성은 생략될 수 있다. @expiration 속성은 해당 컨텐트 아이템의 만료기간을 나타낼 수 있다. 본 속성은 생략될 수 있다. @size 속성은 해당 컨텐트 아이템의 크기를 나타낼 수 있다. 본 속성은 생략될 수 있다. @name 속성은 해당 컨텐트 아이템의 이름을 나타낼 수 있다. 본 속성은 생략될 수 있다.
timeSlotInfo 엘레멘트는 해당 컨텐트 아이템의 타임 슬롯 관련 정보를 포함할 수 있다. timeSlotInfo 엘레멘트는 @time_slot_start 속성, @time_slot_length 속성, @acquisition_time 속성, @repeat_period 속성 및/또는 @slot_count 속성을 더 포함할 수 있다.
@time_slot_start 속성은 타임 슬롯의 시작 시각을 나타낼 수 있다. 이 시간은 1980 년 1 월 6일 00:00:00 UTC 부터의 GPS 초로 표현될 수 있다. 본 필드가 0 의 값을 가지는 경우, 타임 슬롯은 불명확한 과거로부터 시작되었음이 지시된 것일 수 있다.
@time_slot_length 속성은 타임 슬롯의 길이를 분 단위로 나타낼 수 있다.
@acquisition_time 속성은 적어도 하나의 컨텐트 아이템이 전송되는 것이 보장되는 최소한의 시간 간격 길이를 나타낼 수 있다. 이 시간 간격은 분 단위로 표현될 수 있다. 여기서, 이 시간 간격은 타임 슬롯 내의 임의의(arbitrary) 시간에서부터 시작되었다고 가정하며, 타임 슬롯의 끝을 포함할 수 있다. 하나의 큰 컨텐트 아이템이 타임 슬롯 동안에 반복해서 전송되는 경우, 본 속성은 컨텐트 아이템의 하나의 인스턴스가 전송되는데 걸리는 시간일 수 있다. 복수개의 작은 컨텐트 아이템들이 캐로셀(carousel)로 전송되는 경우, 본 속성은 캐로셀의 사이클 시간에 해당할 수 있다(If a single large content item is being transmitted repeatedly during the time slot, this will be the time it takes to transmit a single instance of the content item. If a number of small content items are being transmitted in a carousel, this will be the carousel cycle time.)
@repeat_period 속성은 타임 슬롯의 반복 주기를, 분 단위로 나타낼 수 있다.
@slot_count 속성은 타임 슬롯이 발생할 횟수를 나타낼 수 있다. @time_slot_start 속성이 나타내는 시간부터 시작되는 타임슬롯부터 시작하여 횟수가 나타내어질 수 있다. 본 속성이 0 의 값을 가지는 경우, 반복(repetition)은 무기한으로 계속됨이 가정될 수 있다. (A value of zero for slot_count shall indicate the repetition shall be assumed to continue indefinitely.)
Application 엘레멘트는 @ContentLinkage 속성 및/또는 timeSlotInfo 엘레멘트를 직접 포함할 수도 있다. 즉, @ContentLinkage 속성 및/또는 timeSlotInfo 엘레멘트는 Application 엘레멘트 및 atsc:ContentItems 엘레멘트에 모두 포함될 수 있다.
Application 엘레멘트의 속성 중, @applicationIdentifier 속성은 해당 앱의 식별자를 나타낼 수 있다. 이 값은 글로벌하게 유니크(globally unique)한 값일 수 있다.
@atsc:serviceId 속성은 해당 앱이 관련된 서비스의 서비스 식별자를 나타낼 수 있다.
@atsc:protocolVersion 속성은 해당 앱의 프로토콜 버전을 나타낼 수 있다. 실시예에 따라 해당 필드는 메이저 프로토콜 버전과 마이너 프로토콜 버전을 나타내는 두 필드로 나뉠 수 있다. 또는 본 필드가 동시에 메이저/마이너 프로토콜 버전을 제공할 수도 있다.
ApplicationList 엘레멘트는, 복수개의 Application 엘레멘트 외에도, @ASTVersionNumber 속성, @timeSpanStart 속성 및/또는 @timeSpanLength 속성을 포함할 수 있다.
@ASTVersionNumber 속성은 해당 AST 전체의 버전 넘버를 나타낼 수 있다. 실시예에 따라 해당 필드는 메이저 프로토콜 버전과 마이너 프로토콜 버전을 나타내는 두 필드로 나뉠 수 있다. 또는 본 필드가 동시에 메이저/마이너 프로토콜 버전을 제공할 수도 있다.
@timeSpanStart 속성은 해당 AST 인스턴스에 의해 커버되는 시간 간격의 시작을 지시할 수 있다. AST 는 복수개의 인스턴스로 나뉘어 전송될 수 있으며, 각각의 AST 인스턴스는 각각의 시간 간격에 대한 시그널링 정보를 포함할 수 있다.
@timeSpanLength 속성은 해당 AST 인스턴스에 의해 커버되는 시간 간격의 길이를 지시할 수 있다. @timeSpanStart 속성의 값과 함께 해당 AST 인스턴스가 커버하는 시간 간격이 계산될 수 있다.
전술한 실시예에 따른 AST 의 각 필드들은 생략되거나 변경될 수 있다. 또한 실시예에 따라 AST 에 추가적인 필드들이 추가될 수 있다. AST 의 각 필드들은 동일/유사한 의미를 가지는 필드들에 의해 대체될 수 있다.
전술한 AST 는 방송망 또는 브로드밴드를 통해 전송될 수 있다.
AST 가 방송망을 통해 전송되는 경우, 앱 인핸스먼트를 위한 AST 는 해당 앱 인핸스먼트가 관련되는 방송 서비스의 서비스 시그널링 채널을 통해 전달될 수 있다. 여기서 서비스의 서비스 시그널링 채널이란, 전술한 SLS 가 전달되는 통로를 의미할 수 있다. 예를 들어 ROUTE 의 경우 tsi = 0 으로 특정되는 LCT 전송 세션이 데디케이티드 시그널링 채널로서 AST 를 전달할 수 있다. MMT 의 경우 packet_id = 00 으로 특정되는 MMTP 패킷 플로우가 데디케이티드 시그널링 채널로서 AST 를 전달할 수 있다.
AST 가 브로드밴드를 통해 전달되는 경우, AST 는 요청(query)를 통해 획득될 수 있다. 이 요청은 전술한 SLT 내의 베이스 URL 정보를 이용하여 생성될 수 있다. 이 베이스 URL 은 AST 를 획득하기 위한 URL 정보일 수 있다. 여기서 SLT 는 해당 AST 와 관련된 방송 서비스에 대한 부트스트랩 정보를 포함하는 SLT 일 수 있다. 워터마크가 사용되는 시나리오에 있어서, 이 베이스 URL 은 워터마크를 통해 획득되거나, 워터마크를 이용한 ACR (Auto Content Recognition) 과정을 통해 획득될 수 있다.
도 44 는 본 발명의 일 실시예에 따른 EMT (Event Message Table) 을 도시한 도면이다.
전술한 바와 같이, 앱들이 수행할 액션(action)들이 방송방/브로드밴드를 통해 전달되는 알림(notification)들에 의해 시작(initiated)될 수 있다. 이러한 알림들을 "이벤트" 라고 부를 수 있다. 문맥에 따라, 이러한 알림들에 의해 시작되는 앱들의 동작, 액션 또는 동작된 상태를 이벤트라고 부를 수도 있다. 또한 앱들의 실행가능한 액션들을 이벤트라고 부를 수도 있다.
이러한 이벤트들은 방송망 또는 브로드밴드를 통해 전달될 수 있다. 이 경우, 각 이벤트 내지 이벤트에 의한 액션들은 기본적인 방송 서비스/방송 프로그램과 동기화되어야 할 수 있다. 본 발명은 이벤트의 전달방안과 동기화 방안에 대해 제안한다.
이벤트가 방송망을 통해 전달되는 경우에 대해 설명한다.
이벤트가 방송망을 통해 전달되는 경우, 이벤트는 DASH 이벤트로서 전달될 수 있다. 이 때, 이벤트는 EventStream 엘레멘트 또는 emsg 박스 형태로 전달될 수 있다. EventStream 엘레멘트로 이벤트가 전달되는 경우는, 이벤트가 MPD 의 Period 엘레멘트에 나타나는 EventStream 엘레멘트의 형태로 전달되는 경우일 수 있다. emsg 박스의 형태로 이벤트가 전달되는 경우는, 이벤트가 Representation 세그먼트들 내에 나타나는 emsg 박스로 전달되는 경우일 수 있다.
두 이벤트 전달 메커니즘은 혼용될 수 있다. 예를 들어 하나의 이벤트 스트림은 EventStream 엘레멘트로 전달되는 몇몇의 이벤트들 및/또는 emsg 박스를 통해 전달되는 다른 이벤트들을 포함할 수 있다.
EvenstStream 엘레멘트를 통해 전달되는 이벤트들은, 어느 Period 에 해당하는 시간 간격 동안 수신측에 전달되어야 하는 이벤트들에 해당할 수 있다. 즉, MPD 는 어느 서비스에 대한 서비스 시그널링 정보로서, Period 라 불리우는 서비스의 시간 간격 단위로 시그널링 정보를 제공할 수 있다. 이 Period 에 대한 시그널링 정보는 MPD Period 엘레멘트에 포함되는데, 이 Period 엘레멘트는 EventStream 엘레멘트를 포함할 수 있다. EventStream 엘레멘트는, 해당 서비스의 해당 Period 동안의 앱들의 동작에 관하여 필요한 시그널링(이벤트)를 제공할 수 있다.
EventStream 엘레멘트는 Event 엘레멘트의 리스트일 수 있다. 각각의 EventStream 엘레멘트는 schemeIdUri 속성 및/또는 value 속성을 가질 수 있다. 이 두 속성은 EventStream 내의 이벤트들의 타입을 지시할 수 있다. 실시예에 따라, 이 두 속성은 이벤트들을 식별할 수 있다. 여기서, schemeIdUri 속성 및/또는 value 속성의 값은 기 정의된 값을 활용할 수 있다. 또는 서비스 프로바이더가 schemeIdUri 속성 및/또는 value 속성의 값을 추가적으로 정의하여 사용할 수도 있다. schemeIdUri 속성의 "소유자" 는 schemeIdUri 속성이 유니크하게 정의하여야 하고, 해당되는 value 속성과 이벤트의 의미(semantics)들도 정의하여야 한다. value 정보는 앱에 종속적일 수 있고, 한 서비스 내에서 특정 이벤트 스트림을 식별하는데 사용될 수 있다.
EventStream 엘레멘트는 timescale 속성을 더 포함할 수 있다. 이 속성은 이벤트 프리젠테이션 타임과 듀레이션에 대한 레퍼런스 타임 스케일을 지시할 수 있다.
EventStream 엘레멘트의 Event 서브 엘레멘트들은, 각각 presentationTime 속성, duration 속성 및/또는 id 속성을 포함할 수 있다. presentationTime 속성은 각각의 이벤트의 시작 시각을 지시하고, duration 속성은 각각의 이벤트의 지속 시간을 지시하고, id 속성은 각 이벤트의 식별자를 나타낼 수 있다. 이 문맥에서 이벤트란, 이벤트(notification) 에 의해 시작된 앱의 액션 내지 액션에 의해 발생된 현상(pop up 윈도우 등)을 의미할 수 있다.
Event 서브 엘레멘트는 해당 이벤트를 위한 데이터를 가지지 않을 수 있다. 그러나 실시예에 따라, Event 엘레멘트는 추가적인 데이터 엘레멘트 내지 속성을 가질 수 있다. 이 데이터 엘레멘트/속성은 이벤트에 의해 시작되는 액션을 실행하기 위해 필요한 데이터를 제공할 수 있다.
실시예에 따라, 하나의 Period 에 서로 다른 타입을 가지는 복수개의 EventStream 엘레멘트가 존재할 수 있다.
*emsg 박스의 형태로 이벤트가 전달되는 경우, 전술한 바와 같이, 이벤트가 Representation 세그먼트들 내에 나타나는 emsg 박스로 전달될 수 있다. 이 때, MPD 의 Representation 의 InbandEventStream 엘레멘트는, 세그먼트들 내에 emsg 박스에 이벤트가 존재하는지 여부를 시그널링해줄 수 있다.
InbandEvent 엘레멘트는 schemeIdUri 및/또는 value 을 포함할 수 있다. 이 두 필드는 emsg 박스 내의 이벤트의 타입을 지시할 수 있다. 실시예에 따라, 이 두 필드는 이벤트를 식별하는데 사용될 수 있다.
InbandEvent 엘레멘트는 timescale 필드를 더 포함할 수 있다. 이 필드는 이벤트와 관련된 레퍼런스 타임 스케일을 지시할 수 있다.
InbandEvent 엘레멘트는 그 외에, presentation_time_delta 정보, event_duration 정보 및/또는 id 정보를 더 포함할 수 있다. presentation_time_delta 정보는 해당 이벤트의 시작 시각을 지시할 수 있다. 여기서 시작 시간은 해당 Representation 의 시작 시각에 상대적인 값으로 표현될 수 있다. event_duration 정보는 해당 이벤트의 지속 시간을 지시할 수 있다. id 정보는 해당 이벤트 인스턴스를 식별할 수 있다.
InbandEvent 엘레멘트는 옵셔널하게 message_data 정보를 더 포함할 수 있다. message_data 정보는 해당 이벤트에 의해 시작되는 액션을 실행하는데 필요한 데이터를 제공할 수 있다.
이벤트가 브로드밴드를 통해 전달되는 경우에 대해 설명한다.
방송망을 통한 이벤트의 전달에 있어서, MPD 를 통한 묶음으로서의 배치 딜리버리(batch delivery) 및 emsg 박스를 이용한 인크리멘탈 딜리버리(incremental delivery)가 전술되었다. 이와 마찬가지로 브로드밴드를 통한 이벤트 전달에 있어서도, 배치 딜리버리와 인크리멘탈 딜리버리가 제안될 수 있다.
이벤트가 브로드밴드를 통해 배치 딜리버리로 전달되는 경우, 이벤트들은 EST (Event Stream Table) 을 통해 전달될 수 있다. 이 EST 는 실시예에 따라 EMT (Event Message Table) 로 불릴 수도 있다. EST 는 XML 도큐먼트로서, EventStreamTable 엘레멘트를 루트 엘레멘트로 포함할 수 있다.
EventStreamTable 엘레멘트는 EventStream 엘레멘트의 리스트일 수 있다. 각각의 EventStream 엘레멘트들은 전술한 방송망을 통한 이벤트 전달에서의 EventStream 엘레멘트와 동일할 수 있다. EventStream 엘레멘트의 리스트는 하나의 서비스를 위한 모든 이벤트 스트림들을 포함할 수 있다.
도시된 EMT 는 본 발명의 다른 실시예에 따른 EMT (EST) 이다. EMT 는 @mpdId 속성, @periodId 속성, EventStream 엘레멘트를 포함할 수 있다.
@mpdId 속성은 해당 EMT 가 기술하는 이벤트들과 관련된 MPD 의 식별자일 수 있다. 이 MPD 가 해당 이벤트들의 타임 레퍼런스로 활용될 수 있다.
@periodId 속성은 해당 EMT 의 이벤트들과 관련된 MPD 의 Period 의 식별자일 수 있다. 이 Period 가 해당 이벤트들의 타임 레퍼런스로 활용될 수 있다.
EventStream 엘레멘트 내의 각 필드들은 전술한 바와 같다. 여기서 Event 엘레멘트의 데이터들은 @schemeIdURi 및/또는 @value 의 값에 따라, 각각 그 타입에 맞도록 값을 가질 수 있다. @presentationTime 속성은 period 의 시작 시각에 상대적인 값으로 이벤트의 시작 시각을 표시하는데, 이 period 는 @mpdId, @periodId 속성에 의해 식별되는 period 일 수 있다.
EST 는 전술한 바와 같이 요청(query)에 의해 획득될 수 있다. 요청은 SLT 내의 베이스 URL 정보에 의해 생성될 수 있다. 이에 대해서는 전술한 바와 같다.
이벤트가 브로드밴드를 통해 인크리멘탈 딜리버리로 전달되는 경우, 이 이벤트들은 라이브 이벤트 서버를 통해 개별적으로 전달될 수 있다. 라이브 이벤트 서버로 주기적으로 폴링이 수행될 수 있으며, 그 주기 내에 전달되어야 할 이벤트가 있는 경우, 이벤트 서버는 수신기로 이벤트를 전달할 수 있다. 라이브 이벤트 서버의 URL, 폴링 주기 등의 정보는 전술한 AST 내지 EST, 또는 다른 시그널링 객체에 의해 수신기로 전달되었을 수 있다.
이 경우에 전달되는 이벤트는 전술한 emsg 박스를 이용한 이벤트 전달에서의 emsg 박스의 포맷과 동일한 포맷을 가질 수 있다. 실시예에 따라, 전술한 InbandEvent 엘레멘트에 해당하는 시그널링 정보는 라이브 이벤트가 전달될 때 함께 전달될 수 있다.
schemeIdUri 정보 및 value 정보는 이벤트 스트림을 위한 Stream Event 리스너의 추가 및 삭제를 위한 API 에 있어서의 targetURI, eventName 아규먼트에 해당할 수 있다. 전술한 각각의 실시예들에 따른 이벤트들은 옵셔널한 data 속성을 더 포함할 수 있다. data 속성은 해당 이벤트에 의해 시작되는 액션의 실행에 사용되는 데이터를 제공할 수 있다. 이 데이터 속성은 이벤트 발생시에 등록된 리스너에게 리턴되는 StreamEvent 인터페이스의 데이터 속성에 대응될 수 있다.
NRT 컨텐트 아이템의 전달의 경우, ATSC 의 NRT 전달 방법이 활용될 수 있다. 단 이 경우, AST 가 NRT-IT 대신 사용되며, AST 에 의해 전달될 컨텐트 아이템이 식별될 수 있다. 또한 앱은 AST 에 리스팅되지 않은 경우에도 NRT 컨텐트 아이템의 브로드밴드 딜리버리를 개시할 수 있다.
온 디멘드 컨텐트 아이템의 경우, 브로드밴드를 통하여 전달될 수 있다. 온 디멘드 컨텐트 아이템의 브로드밴드 딜리버리는 앱에 의해 개시될 수 있다.
앱의 동기화에 대해 설명한다.
앱의 동기화는 여러 측면에서 필요할 수 있다. 예를 들어, 앱의 액션들은 스케쥴된 오디오/비디오 서비스와 동기화되어야 할 수 있다. 또한, 스케쥴된 오디오/비디오 서비스에 맞추어 앱이 시작되고 중지될 수 있어야 한다. 기본적인 방송 서비스외에도 녹화/녹음된 컨텐츠, NRT 컨텐츠 등의 재생에 있어서도 앱 및 앱의 액션들은 동기화되어야 할 수 있다. 또한, 녹화/녹음된 컨텐츠, NRT 컨텐츠 등에 맞추어서 앱 역시 시작, 중지되어야 할 수 있다. 효과적인 유저 익스피리언스의 인핸스먼트를 위함이다.
또한 CD (Companion Device) 에서의 앱 역시 PD 에서 재생 중인 오디오/비디오 컨텐츠와 동기화될 필요성이 있다. 이는 CD 에서 제공되는 앱 인핸스먼트가 효과적으로 동기화되어 제공될 수 있게 하기 위함이다.
유저 익스피리언스(User experience)에 대해 설명한다.
실시예에 따라, 사용자는 효율적인 앱 인핸스먼트를 위하여 앱의 동작들을 컨트롤할 수 있다. 컨트롤이 불가능한 경우, 인핸스먼트가 오히려 시청에 방해를 가져올 수 있기 때문이다. 일 실시예로 유저의 승낙이 활용될 수 있다. 유저는 모든 서비스 내지는 어떤 특정 서비스들에 대하여 일괄적으로 승낙을 해둘 수 있다. 또는 유저는 케이스-바이-케이스로 각각의 서비스들의 어플리케이션이나 서비스들에 대하여 승낙을 할 수도 있다.
케이스별로 유저가 승낙을 하는 경우, 앱이 활성화되기 전에 앱 알림(notification)이 먼저 디스플레이되어야할 수 있다. 이 알림을 통하여 앱은 활성화되기 위한 유저의 승낙을 얻을 수 있다. 앱은 승낙을 받기 전까지 블락된 상태로 있을 수 있다.
*이 승낙을 위한 알림의 포맷과 로케이션은 디바이스 제조자에 의해 결정될 수 있다. 승낙을 위한 실제 사용자 인터페이스 역시 디바이스 제조자에 의해 결정될 수 있다. 이러한 사안들은 산업적 측면에서 특정 엔티티에 의해 특정 포맷등이 제안될 수도 있다.
승낙을 위한 알림은 타임 아웃되거나 유저에 의해 디스미스(dismiss)될 수 있다. 이를 통해 유저가 즉시 앱의 활성화에 대한 승낙 여부를 결정하지 않는 경우에도, 이 알림에 의해 계속해서 유저가 시청에 방해 받는 것이 방지될 수 있다. 그러나, 알림이 타임 아웃되거나 디스미스되어 보이지 않는 경우에도, 유저는 설정등을 통해 앱을 활성화시키거나 블락시킬 수 있다. 유저는 활성화된 앱을 터미네이트시킬 수도 있다. 이 경우 이 앱을 활성화하기 위한 시그널링이 수신되는 경우에도 이 앱은 계속 블락된 채로 있을 수도 있다.
액션의 동기화 및 액션 파라미터에 대해 설명한다.
앱의 다운로드나, 앱의 활성화, 앱의 터미네이션(termination) 및/또는 앱의 특정 액션 등은, 기본 방송 프로그램 등과 동기화될 필요가 있다.
앱의 액션들에 대하여, 그 액션을 수행하기 위하여 액션 파라미터들이 필요할 수 있다. 이 파라미터들의 정보들이 활용되어 액션들이 수행될 수 있다. 액션 파라미터에는 액션과 관련된 앱을 식별하기 위한 앱 식별자 파라미터, 액션이 수행될 시각을 지시하는 시간 파라미터 및/또는 액션의 동기화 레벨에 관한 동기화 레벨 파라미터 등이 있을 수 있다. 여기서 시간 파라미터는 타임 베이스 내지 미디어 타임 라인에 상대적인 값으로 액션의 시작 시각을 지시할 수 있다. 여기서 동기화 레벨 파라미터는 프로그램 레벨 싱크, 2초 미만 싱크, 립 싱크, 프레임 싱크 등의 동기화 레벨을 지시할 수 있다.
앱의 다운로드에 관련된 액션에 있어서, 이 액션은 타겟 디바이스에 관한 액션 파라미터 및/또는 지터 인터벌에 관한 액션 파라미터를 더 포함할 수 있다. 타겟 디바이스에 관한 액션 파라미터는 다운로드되는 앱이 PD 를 위한 것인지 CD 를 위한 것인지에 관한 정보를 포함할 수 있다. 지터 인터벌에 관한 액션 파라미터는 앱의 페칭(fetching)을 위한 지터 인터벌 관련 정보를 포함할 수 있다.
앱의 시작에 관련된 액션에 있어서, 이 액션은 타겟 디바이스에 관한 액션 파라미터 및/또는 지터 인터벌에 관한 액션 파라미터를 더 포함할 수 있다. 타겟 디바이스에 관한 액션 파라미터는 시작되는 앱이 PD 를 위한 것인지 CD 를 위한 것인지에 관한 정보를 포함할 수 있다.
전술한 바와 같이 액션 파라미터에는 그 앱을 실행하는데 필요한 데이터를 제공하는 액션 파리미터도 있을 수 있다. 이 액션 파라미터는 해당 액션을 실행하는데 필요한 데이터를 포함할 수 있다.
도 45 는 본 발명의 일 실시예에 따른 송신측에서 방송 서비스를 제공하는 방법을 도시한 도면이다.
본 발명의 일 실시예에 따른 송신측에서 방송 서비스를 제공하는 방법은 서비스 데이터 및 서비스 시그널링 정보를 생성하는 단계, 서비스 리스트 테이블을 생성하는 단계, 스트리밍 컴포넌트, 인핸스먼트 컴포넌트, 서비스 시그널링 정보 및/또는 서비스 리스트 테이블을 전송 패킷들로 처리하는 단계, 링크 레이어 패킷들을 생성하는 단계 및/또는 링크 레이어 패킷들을 피지컬 프로세싱하여 방송 신호를 생성하고 전송하는 단계를 포함할 수 있다.
먼저, 송신측의 제 1 모듈은 방송 서비스의 서비스 데이터 및 서비스 데이터를 시그널링하는 서비스 시그널링 정보를 생성할 수 있다. 여기서 서비스 데이터는 방송 서비스의 실시간 컨텐츠에 관한 데이터를 포함하는 스트리밍 컴포넌트 및/또는 실시간 컨텐츠의 앱 기반 인핸스먼트(app-based enhancement) 에 대한 데이터를 포함하는 인핸스먼트 컴포넌트를 포함할 수 있다.
스트리밍 컴포넌트는 실시간 컨텐츠 재생에 필요한 데이터를 가질 수 있다. 예를 들어 스트리밍 컴포넌트는 비디오 컴포넌트, 오디오 컴포넌트 또는 클로즈드 캡션 컴포넌트일 수 있다. 앱 기반 인핸스먼트는 전술한 바와 같이 방송 서비스에 대한 인터랙티브 뷰잉 익스피리언스(interactive viewing experience) 를 제공할 수 있다. 앱 기반 인핸스먼트는 전술한 바와 같이 방송 프로그램 등에 대하여 앱(어플리케이션)을 통한 인터랙티브 서비스를 제공할 수 있다. 인핸스먼트 컴포넌트는 앱 기반 인핸스먼트를 제공하기 위한 데이터를 포함할 수 있다. 인핸스먼트 컴포넌트는 어플리케이션 그 자체일 수도 있고, 어플리케이션이 사용하기 위한 데이터/컨텐트아이템 일 수도 있다. 여기서 인핸스먼트 컴포넌트는 NRT 컴포넌트로서, ROUTE 프로토콜 등을 통해 전달될 수 있다.
물론 서비스는 이외에도 다수의 서비스 컴포넌트들을 더 포함할 수 있다. 여기서 서비스 시그널링 정보는 전술한 SLS 를 의미할 수 있다.
송신측의 제 2 모듈은 서비스 리스트 테이블을 생성할 수 있다. 서비스 리스트 테이블은 전술한 SLT 에 해당할 수 있다. SLT 는 SLS 가 전달되는 전송 세션을 지시하는 부트스트랩 정보를 포함할 수 있다. 여기서 전송 세션은 ROUTE 세션 또는 MMTP 세션일 수 있다. 부트스트랩 정보는 ROUTE 세션 또는 MMTP 세션의 IP 주소, UDP 포트 넘버 등을 의미할 수 있다. 제 1 모듈, 제 2 모듈은 서비스 프로바이더로서 서비스를 생성하는 것을 관장하는 모듈일 수 있다.
송신측의 제 3 모듈은 스트리밍 컴포넌트, 인핸스먼트 컴포넌트, 서비스 시그널링 정보 및/또는 서비스 리스트 테이블을 전송 패킷들로 처리할 수 있다. 이 단계는 방송망으로 서비스 데이터들을 전달하기 위하여 서비스 컴포넌트 데이터, SLS, SLT 를 UDP/IP 처리하여 IP 패킷으로 인캡슐레이션하는 단계일 수 있다. 여기서 전송 패킷은 IP 패킷일 수 있다. 여기서 FIC 는 사용되지 않으며, SLT 가 IP 패킷으로 인캡슐레이션되어 PLP 로 전달되는 경우를 가정하였다. 제 3 모듈은 UDP/IP 레이어를 관장하는 하드웨어 모듈일 수 있다.
송신측의 제 4 모듈은 전송 패킷들을 링크 레이어 프로세싱하여 적어도 하나의 링크 레이어 패킷을 출력할 수 있다. 링크 레이어 프로세싱에 대해서는 전술하였다. 여기서 제 4 모듈은 링크 레이어에 해당하는 동작을 수행하는 모듈일 수 있다. 제 4 모듈은 헤더 컴프레션/오버헤드 리덕션 내지는 패킷 인캡슐레이션을 수행할 수 있다.
송신측의 제 5 모듈은 적어도 하나의 링크 레이어 패킷들을 피지컬 프로세싱할 수 있다. 제 5 모듈은 피지컬 레이어의 동작을 관장하는 모듈일 수 있다. 제 5 모듈은 링크 레이어 패킷을 BB 패킷들로 만들고, 이에 인코딩, 비트 인터리빙, 성상도 매핑 등의 과정을 수행할 수 있다. 이 후, 타임 인터리빙, 프레임 빌딩, 주파수 인터리빙 등의 단계를 거치고, OFDM 방식에 따른 모듈레이션 과정을 거칠 수 있다. 또한, 제 5 모듈은 피지컬 프로세싱된 데이터를 포함하는 방송 신호를 전송할 수 있다. 여기서 제 4 모듈은 제 5 모듈에 포함될 수 있다. 제 4, 5 모듈은 하나의 통합 모듈로 대체될 수 있다. 제 5 모듈은 복수개의 내부 블락들을 포함할 수 있다. 제 4 모듈은 제 5 모듈의 블락 중 하나에 포함될 수도 있다.
본 실시예에 따른 송신측에서 방송 서비스를 제공하는 방법에서, 서비스 시그널링 정보는 앱 기반 인핸스먼트를 제공하는 어플리케이션들을 시그널링하는 AST (Application Signaling Table) 를 포함할 수 있다. AST 에 대해서는 전술하였다. 전술한 바와 같이 AST 는 해당 방송 서비스에 대한 SLS 와 함께 전달될 수 있다. 즉, AST 는 SLS 가 전달되는 ROUTE/LCT 세션을 통해 전달될 수 있다. 실시예에 따라 AST 는 브로드밴드 등을 통해 전달될 수 있고, 이 경우, SLT 의 URL 정보가 활용되어 AST 가 요청될 수 있다.
또한, 본 실시예에서, 인핸스먼트 컴포넌트는 방송 서비스의 NRT (Non Real Time) 컴포넌트일 수있다. 전술한 바와 같이 인핸스먼트 컴포넌트는 방송 서비스에 대한 앱 인핸스먼트에 대하여, 관련 어플리케이션 내지 컨텐트아이템 등을 포함할 수 있다.
본 발명의 다른 실시예에 따른 송신측에서 방송 서비스를 제공하는 방법에서, 서비스 시그널링 정보는 USBD (User Service Bundle Description), S-TSID (Service-based Transport Session Instance Description) 및/또는 MPD (Media Presentation Description) 를 포함할 수 있다. 전술한 바와 같이 USBD 는 USBD 는 S-TSID 를 레퍼런싱하는 URI 정보 및/또는 MPD 를 레퍼런싱하는 URI 정보를 포함할 수 있다. S-TSID 는 방송 서비스의 스트리밍 컴포넌트 및 인핸스먼트 컴포넌트가 전달되는 전송 세션에 관한 전송 세션 디스크립션 정보를 포함할 수 있다. S-TSID 는 특정 서비스의 서비스 컴포넌트들이 어느 LCT 세션으로 전달되고 있는지에 대한 정보를 제공할 수 있다. 이 정보에는 tsi 정보 및/또는 ROUTE 세션의 IP/UDP 정보 등이 있을 수 있다. MPD 는 방송 서비스의 스트리밍 컴포넌트에 대한 재생 관련 정보를 포함할 수 있다. MPD 는 비디오, 오디오 컴포넌트들에 포함되는 DASH 레프리젠테이션 등에 대하여, 그 재생을 위한 디스크립션 정보를 제공할 수 있다. 즉 MPD 는 서비스 컴포넌트들에 대한 세그먼트 URL 정보 및 미디어 세그먼트들에 대한 컨텍스트(context) 정보를 제공할 수 있다.
본 발명의 또 다른 실시예에 따른 송신측에서 방송 서비스를 제공하는 방법에서, AST 는 앱 기반 인핸스먼트를 제공하는 어플리케이션들에 대한 정보를 포함하는 어플리케이션 엘레멘트들을 포함할 수 있다. AST 는 전술한 실시예에서와 같이 application 엘레멘트들을 포함할 수 있다. 이 어플리케이션들은 앱 인핸스먼트를 제공하는데 사용될 수 있다. 각각의 어플리케이션 엘레멘트는 어플리케이션에 의해 사용되는 컨텐트 아이템들에 대한 정보를 포함하는 컨텐트 아이템 엘레멘트들을 포함할 수 있다. 전술한 application 엘레멘트의 차일드-엘레멘트로서 contentItem 엘레멘트들이 존재할 수 있다. 각각의 컨텐트 아이템 엘레멘트들은 해당 앱이 사용하는 컨텐트 아이템들을 기술할 수 있다. 적어도 하나의 컨텐트 아이템 엘레멘트는 인핸스먼트 컴포넌트가 포함하는 컨텐트 아이템을 기술할 수 있다. 전술한 인핸스먼트 컴포넌트는 특정 앱이 사용하는 특정 컨텐트 아이템을 가질 수 있다. 이 컨텐트 아이템 역시 AST 에 의해 기술될 수 있다. 이와 같이, AST 를 통하여 획득된 컨텐트 아이템들이 활용되어 앱 기반 인핸스먼트가 제공될 수 있다.
본 발명의 또 다른 실시예에 따른 송신측에서 방송 서비스를 제공하는 방법에서, S-TSID 는 인핸스먼트 컴포넌트가 전달되는 전송 세션을 지시하는 전송 세션 식별자 정보를 포함할 수 있다. S-TSID 는 NRT 컴포넌트인 인핸스먼트 컴포넌트가 전달되는 전송 세션 역시 지시할 수 있다. 이를 지시하기 위하여 tsi 정보가 제공될 수 있으며, 경우에 따라 ROUTE 세션을 식별하기 위한 IP/UDP 정보도 제공될 수 있다. S-TSID 를 통해 수신 시스템은 앱 기반 인핸스먼트 제공을 위한 인핸스먼트 컴포넌트들을 획득할 수 있다. AST 의 적어도 하나의 컨텐트 아이템 엘레멘트는 컨텐트 링크 정보를 더 포함하고, 컨텐트 링크 정보는 인핸스먼트 컴포넌트가 포함하는 컨텐트 아이템을 사용하는 어플리케이션을 지시하는데 사용될 수 있다. 전술한 바와 같이 AST 의 어플리케이션 엘레멘트 및/또는 컨텐트 아이템 엘레멘트의 하위에는 @ContentLinkage 속성이 포함될 수 있다. 이 속성은 인핸스먼트 컴포넌트로 전달되는 컨텐트 아이템이 어떠한 어플리케이션에서 쓰일지 지시하는데 쓰일 수 있다. 이 속성은 AST 와 컨텐트 아이템을 연결하는데 사용될 수 있다. 또는 이 속성은 AST 와 어플리케이션을 연결하는데 사용될 수 있다. 이러한 방식으로, S-TSID 를 이용해 획득된 컨텐트 아이템이 어플리케이션과 맞물려 앱 기반 인핸스먼트를 제공하는데 사용될 수 있다.
본 발명의 또 다른 실시예에 따른 송신측에서 방송 서비스를 제공하는 방법에서, MPD 는 실시간 컨텐츠의 특정 인터벌에 대한 재생 관련 정보를 기술하는 피리오드(Period) 엘레멘트를 더 포함할 수 있다. 피리오드는 미디어 컨텐츠의 프리젠테이션에 있어서, 그 프리젠테이션을 시간적으로 나눈 일부분에 해당하는 개념으로, 피리오드 엘레멘트는 그 일부분에 해당하는 미디어 재생 디스크립션 정보를 제공할 수 있다. 피리오드 엘레멘트는 전술한 바와 같이 이벤트 스트림 엘레멘트를 가질 수 있다. 이 이벤트 스트림 엘레멘트는 복수개의 이벤트 엘레멘트들을 포함할 수 있다. 이 이벤트 엘레멘트들은 어플리케이션이 수행할 동작(action)들을 시그널링하는 이벤트들에 관한 정보들을 포함할 수 있다. 또한 각각의 이벤트 엘레멘트는 해당 이벤트의 이벤트 식별자 및 프리젠테이션 타임 정보를 포함할 수 있다. 이벤트 식별자는 해당 이벤트 인스턴스를 식별할 수 있다. 프리젠테이션 타임 정보는 해당 이벤트의 시작시각을 지시할 수 있는데, 이 시작 시각은 해당 피리오드의 시간을 기준으로 하여 지시될 수 있다. 예를 들어 피리오드의 시작 시간을 오프셋으로 두고 피리오드 시작 시간으로부터의 차이값을 통해 동작(action)의 시작 시간을 지시할 수도 있다. 이 동작(action)은 문맥에 따라 이벤트로 부를 수도 있다.
본 발명의 또 다른 실시예에 따른 송신측에서 방송 서비스를 제공하는 방법에서, 서비스 시그널링 정보는 EMT (Event Message Table) 를 더 포함하고, EMT 는 이벤트 스트림 엘레멘트들을 포함할 수 있다. 각각의 이벤트 스트림 엘레멘트들은 이벤트 엘레멘트들을 포함할 수 있다. 이 이벤트 엘레멘트들은 어플리케이션이 수행할 동작(action)들을 시그널링하는 이벤트들에 관한 정보를 포함할 수 있다. 각각의 이벤트 엘레멘트는 마찬가지로 해당 이벤트의 이벤트 식별자 및 프리젠테이션 타임 정보를 포함할 수 있다.
본 발명의 또 다른 실시예에 따른 송신측에서 방송 서비스를 제공하는 방법에서, EMT 는 MPD 의 MPD 식별자 및 피리오드(Period) 식별자를 더 포함할 수 있다. 여기서 MPD 식별자는 EMT 와 관련있는 MPD 를 식별할 수 있다. 즉, MPD 식별자는 해당 이벤트들과 관련된 MPD 를 식별할 수 있다. 피리오드 식별자는 실시간 컨텐츠의 특정 인터벌에 대한 재생 관련 정보를 기술하는 피리오드 엘레멘트를 식별할 수 있다. 이 피리오드 엘레멘트는 해당 이벤트들과 관련된 피리오드를 식별할 수 있다. 프리젠테이션 타임 정보는 MPD 식별자 및 피리오드 식별자에 의해 식별되는 상기 피리오드 엘레멘트에 대하여, 그 피리오드 엘레멘트가 기술하는 미디어 프리젠테이션 상의 인터벌을 기준으로 동작들의 시작 시간을 지시할 수 있다. 이 동작(action)은 문맥에 따라 이벤트로 부를 수도 있다.
본 발명의 일 실시예에 따른 수신측에서 방송 서비스를 제공하는 방법을 설명한다. 이 방법은 도면에 도시되지 아니하였다.
본 발명의 일 실시예에 따른 수신측에서 방송 서비스를 제공하는 방법은 수신측의 제 1 모듈이 방송 신호를 수신하는 단계, 수신측의 제 2 모듈이 방송 신호를 피지컬 프로세싱하여 링크 레이어 패킷들을 출력하는 단계, 수신측의 제 3 모듈이 링크 레이어 패킷들을 링크 프로세싱하여 전송 패킷들을 출력하는 단계, 수신측의 제 4 모듈이 SLT 를 획득하고 SLS 에 접근하는 단계 및/또는 수신측의 제 5 모듈이 SLS 를 이용하여 방송망으로 전달되는 스트리밍 컴포넌트 및/또는 인핸스먼트 컴포넌트를 획득하는 단계를 포함할 수 있다. 여기서 피지컬 프로세싱, 링크 프로세싱 등은 송신측의 그것의 역과정일 수 있다. 여기서 서비스 데이터는 방송 서비스의 실시간 컨텐츠에 관한 데이터를 포함하는 스트리밍 컴포넌트 및/또는 실시간 컨텐츠의 앱 기반 인핸스먼트(app-based enhancement) 에 대한 데이터를 포함하는 인핸스먼트 컴포넌트를 포함할 수 있다. 서비스 시그널링 정보는 앱 기반 인핸스먼트를 제공하는 어플리케이션들을 시그널링하는 AST 를 포함할 수 있다.
본 발명의 실시예들에 따른 수신측에서 방송 서비스를 제공하는 방법들은, 전술한 본 발명의 실시예들에 따른 송신측에서 방송 서비스를 제공하는 방법들에 대응될 수 있다. 수신측에서 방송 서비스를 제공하는 방법들은, 송신측에서 방송 서비스를 제공하는 방법에서 사용되는 모듈들(예를 들어, 송신측의 제 1, 2, 3, 4, 5 모듈 등)에 대응되는 하드웨어 모듈들에 의해 수행될 수 있다. 수신측에서 방송 서비스를 제공하는 방법은, 전술한 송신측에서 방송 서비스를 제공하는 방법의 실시예들에 대응되는 실시예들을 가질 수 있다.
전술한 단계들은 실시예에 따라 생략되거나, 유사/동일한 동작을 수행하는 다른 단계에 의해 대체될 수 있다.
도 46 은 본 발명의 일 실시예에 따른 송신측에서 방송 서비스를 제공하는 장치를 도시한 도면이다.
본 발명의 일 실시예에 따른 송신측에서 방송 서비스를 제공하는 장치는 전술한 송신측의 제 1, 2, 3, 4 및/또는 5 모듈을 포함할 수 있다. 각각의 블락, 모듈들은 전술한 바와 같다.
본 발명의 일 실시예에 따른 송신측에서 방송 서비스를 제공하는 장치 및 그 내부 모듈/블락들은, 전술한 본 발명의 송신측에서 방송 서비스를 제공하는 방법의 실시예들을 수행할 수 있다.
본 발명의 일 실시예에 따른 수신측에서 방송 서비스를 제공하는 장치를 설명한다. 이 장치는 도면에 도시되지 아니하였다.
본 발명의 일 실시예에 따른 수신측에서 방송 서비스를 제공하는 장치는 전술한 수신측의 제 1, 2, 3, 4 및/또는 5 모듈을 포함할 수 있다. 각각의 블락, 모듈들은 전술한 바와 같다.
본 발명의 일 실시예에 따른 수신측에서 방송 서비스를 제공하는 장치 및 그 내부 모듈/블락들은, 전술한 본 발명의 수신측에서 방송 서비스를 제공하는 방법의 실시예들을 수행할 수 있다.
*전술한 장치 내부의 블락/모듈 등은 메모리에 저장된 연속된 수행과정들을 실행하는 프로세서들일 수 있고, 실시예에 따라 장치 내/외부에 위치하는 하드웨어 엘레멘트들일 수 있다.
전술한 모듈들은 실시예에 따라 생략되거나, 유사/동일한 동작을 수행하는 다른 모듈에 의해 대체될 수 있다.
도 47는 본 발명의 일 실시예에 따른 브로드캐스트를 통해서 전송되는 AST를 나타낸 도면이다.
AST 가 방송망을 통해 전송되는 경우, 앱 인핸스먼트를 위한 AST 는 해당 앱 인핸스먼트가 관련되는 방송 서비스의 서비스 시그널링 채널을 통해 전달될 수 있다. 여기서 서비스의 서비스 시그널링 채널이란, 전술한 SLS 가 전달되는 통로를 의미할 수 있다.
특정의 주파수를 가진 방송 신호(Broadcast Stream)는 서비스를 위한 서비스 데이터 및/또는 시그널링 데이터를 포함할 수 있다. 예를 들어, 방송 신호는 특정의 주파수로 식별될 수 있다.
방송 신호는 제1 ROUTE 세션(sIP#A/dIP#A/dPort#A)을 포함할 수 있다. 서비스를 위한 서비스 데이터는 제1 ROUTE 세션을 통하여 전송될 수 있다.
서비스 데이터는 서비스를 위한 비디오 컴포넌트 및/또는 오디오 컴포넌트를 포함할 수 있다. 비디오 컴포넌트는 비디오 데이터를 포함하는 적어도 하나의 비디오 세그먼트를 포함할 수 있다. 오디오 컴포넌트는 오디오 데이터를 포함하는 적어도 하나의 오디오 세그먼트를 포함할 수 있다. 비디오 컴포넌트는 제1 ROUTE 세션의 특정 전송 세션을 통하여 전송될 수 있다. 오디오 컴포넌트는 제1 ROUTE 세션의 다른 전송 세션을 통해서 전송될 수 있다.
시그널링 데이터는 로우 레벨 시그널링(Low Level Signaling) 데이터 및/또는 서비스 레이어 시그널링(Service Layer Signaling) 데이터를 포함할 수 있다. 예를 들어, 로우 레벨 시그널링 데이터는 FIT 및/또는 SLT를 포함할 수 있다. 로우 레벨 시그널링 데이터는 IP/UDP 패킷에 포함되어 전송될 수 있다. 서비스 레이어 시그널링 데이터는 SLS로 지칭될 수 있다. 서비스 레이어 시그널링 데이터는 USBD, MPD, S-TSID, 및/또는 AST를 포함할 수 있다. USBD, MPD, S-TSID, 및/또는 AST는 특정 전송 세션을 통해서 전송될 수 있다. 예를 들어, SLS는 제1 ROUTE 세션(sIP#A/dIP#A/dPort#A)에 포함되는 특정 LCT 전송 세션을 통해서 전송될 수 있다. 구체적으로, SLS는 tsi = 0 으로 특정되는 제1 전송 세션(tsi-sls)을 통해서 전송될 수 있다.
제1 ROUTE 세션(sIP#A/dIP#A/dPort#A)은 source IP Address(sIP#A), destination IP Address(dIP#A), 및 destination port number(dPort#A)의 조합으로 식별될 수 있다. 또한, 제1 ROUTE 세션은 적어도 하나의 PLP를 통하여 전송될 수 있다. 예를 들어, 제1 ROUTE 세션은 제1 PLP(PLP #A)를 통하여 전송될 수 있다. 또한, 제1 ROUTE 세션은 제1 전송 세션(tsi-sls), 제2 전송 세션(tsi-app), 및/또는 제3 전송 세션(미도시) 을 포함할 수 있다.
제1 전송 세션(tsi-sls)은 적어도 하나의 서비스 레이어 시그널링 정보를 포함할 수 있다. 예를 들어, 서비스 레이어 시그널링 정보는 전술한 USBD, MPD, S-TSID, 및/또는 AST 중에서 적어도 하나를 포함할 수 있다.
제2 전송 세션(tsi-app)은 적어도 하나의 어플리케이션을 포함할 수 있다. 예를 들어, 어플리케이션(앱)은, 인핸스먼트/인터랙티브 서비스를 이루는 도큐먼트(HTML, CSS, JavaScript, 등)들의 집합을 의미할 수 있다.
제3 전송 세션은 비디오 컴포넌트를 포함할 수 있다. 예를 들어, 비디오 컴포넌트는 적어도 하나의 비디오 세그먼트를 포함할 수 있다. 비디오 세그먼트를 위한 전송 오브젝트 식별자는 특정의 값을 가질 수 있다.
이하에서는 SLT(또는 FIT) 에 대하여 설명한다.
SLT는 수신기가 기본 서비스 리스트를 작성하고 각 서비스에 대한 SLS의 발견을 부트스트랩 할 수 있게 해준다. SLT 는 UDP/IP 를 통해 전송될 수 있다. SLT는 서비스에 관련된 기본적인 정보 및 서비스 레이어 시그널링 정보를 획득하기 위한 부트스트래핑 정보를 포함할 수 있다.
예를 들어, SLT는 Broadcast_Stream_id 속성 및 제1 서비스 엘리먼트(Service #A)를 포함할 수 있다.
Broadcast_Stream_id 속성은 전체 브로드캐스트 스트림의 식별자이다. Broadcast_Stream_id field 의 값은 지역적 레벨에서 유일할 수 있다.
제1 서비스 엘리먼트(Service #A)는 serviceId 속성 및/또는 signaling_broadcast 엘리먼트 중에서 적어도 하나를 포함할 수 있다.
serviceId 속성은 해당 브로드캐스트 영역의 범위 내에서 해당 서비스를 유일하게 식별하는 정수 넘버일 수 있다.
signaling_broadcast 엘리먼트는 브로드캐스트를 통하여 전송되는 서비스를 위한 시그널링 정보를 위한 정보를 포함할 수 있다. signaling_broadcast 엘리먼트는 수신기가 각 서비스에 대한 SLS의 발견을 부트스트랩 할 수 있게 해준다.
signaling_broadcast 엘리먼트는 각 서비스에 대한 SLS와 관련되는 source IP Address, destination IP Address, destination port number, PLPID, 전송 세션 식별자(TSI) 중에서 적어도 하나를 포함할 수 있다.
예를 들어, source IP Address, destination IP Address, 및/또는 destination port number는 제1 ROUTE 세션(sIP#A/dIP#A/dPort#A)을 지시할 수 있다. 또한, PLPID는 제1 PLP(PLP #A)를 지시할 수 있다. 또한, 전송 세션 식별자(TSI)는 제1 전송 세션(tsi-sls)을 지시할 수 있다.
이하에서는 SLS에 대하여 설명한다.
SLS는 방송망을 통하여 전송될 수 있다. SLS는 제1 ROUTE 세션(sIP#A/dIP#A/dPort#A)에 포함되는 특정 LCT 전송 세션을 통해서 전송될 수 있다. 구체적으로, SLS는 tsi = 0 으로 특정되는 제1 전송 세션(tsi-sls)을 통해서 전송될 수 있다. SLS는 USBD, MPD, S-TSID, 및/또는 AST 중에서 적어도 하나를 포함할 수 있다.
USBD는 서비스 레이어 속성들을 서술할 수 있다. 또한, USBD는 MPD 및/또는 S-TSID를 참조하는 참조 정보(또는 Uniform Resource Identifier, URI)를 포함할 수 있다. USBD(C620210)의 구체적인 내용은 전술한 USBD에 대한 내용을 모두 포함할 수 있다.
MPD는 리니어/스트리밍 서비스의 개별적인 미디어 컴포넌트들을 위한 리소스 식별자들을 포함할 수 있다. 예를 들어, MPD는 모바일 방송망, 일반 방송망, 및/또는 인터넷망을 통하여 전송되는 모든 컴포넌트들에 대한 DASH MPD를 포함할 수 있다. DASH MPD는 DASH Media Presentation의 공식화된 디스크립션(formalized description)을 포함할 수 있다. DASH MPD는 리니어/스트리밍 서비스의 개별적인 미디어 컴포넌트들을 위한 리소스 식별자들을 포함할 수 있다. 또한, DASH MPD는 미디어 프리젠테이션 내에서 식별된 리소스들의 컨텍스트(context)를 포함할 수 있다. 예를 들어, 리소스 식별자는 서비스를 위한 컴포넌트와 관련되는 레프리젠테이션을 식별하는 정보일 수 있다. 예를 들어, 리소스 식별자는 세그먼트 URL(Segment URL)의 형태일 수 있다.
S-TSID는 서비스의 적어도 하나의 콘텐트 컴포넌트를 전송하는 적어도 하나의 전송 세션을 위한 모든 세션 디스크립션 정보를 제공하는 SLS(Service Layer Signaling) XML 프래그먼트의 일종이다.
S-TSID는 서비스 및/또는 서비스에 포함되는 컴포넌트를 위한 ROUTE 세션에 관한 정보를 제공하는 제1 ROUTE 세션 엘리먼트(RS)를 포함할 수 있다. 제1 ROUTE 세션 엘리먼트(RS)는 제1 ROUTE 세션을 위한 전송 경로 정보를 포함할 수 있다. 또한, 제1 ROUTE 세션 엘리먼트(RS)는 ROUTE 세션 내에 있는 전송 세션(또는 Layered Coding Transport 세션)에 대한 정보를 포함할 수 있다. 예를 들어, 제1 ROUTE 세션 엘리먼트(RS)는 제2 전송 세션에 대한 정보를 포함하는 제2 전송 세션 엘리먼트(LS)를 포함할 수 있다. 제2 전송 세션 엘리먼트(LS)는 제2 전송 세션을 위한 전송 경로 정보를 포함할 수 있다.
구체적으로, 제2 전송 세션 엘리먼트(LS)는 서비스를 위한 컨텐트 컴포넌트가 전송되는 전송 세션을 식별하는 tsi 속성 및 ROUTE 세션에 포함되는 소스 플로우에 대해서 기술하는 SrcFlow 엘리먼트를 포함할 수 있다. SrcFlow 엘리먼트는 해당 SrcFlow 엘리먼트가 비실시간 서비스 데이터를 전송하는지 여부를 지시하는 nrt 속성을 포함할 수 있다. 또는, SrcFlow 엘리먼트는 해당 SrcFlow 엘리먼트가 스트리밍 미디어 데이터를 전송하는지 여부를 지시하는 rt 속성을 포함할 수 있다. 즉, nrt 속성은 rt 속성과 동일한 기능을 수행할 수 있으며, 서로 대체될 수 있다. 예를 들어, tsi 속성이 "tsi-app"이면, 해당 전송 세션 엘리먼트가 제2 전송 세션을 위한 정보를 포함할 수 있다. 또한, nrt 속성이 "true"이면, 해당 SrcFlow 엘리먼트가 비실시간 서비스 데이터를 전송할 수 있다.
AST는 어플리케이션을 위한 시그널링 정보를 포함할 수 있다. AST에 관련된 구체적인 내용은 전술한 내용을 모두 포함할 수 있다.
AST는 ContentLinkage 속성을 포함할 수 있다. ContentLinkage 속성은 해당 컨텐트 아이템을 활용할 앱을 지시할 수 있다. 이 속성값과 후술할 이벤트에 대한 정보들(EventStream 엘레멘트, emsg 박스 등)에 의하여 특정 앱에 대한 시그널링이 수행될 수 있다.
예를 들어, ContentLinkage 속성은 제2 전송 세션을 통해서 전송되는 어플리케이션(App)을 식별하는 앱 식별자를 제공할 수 있다. 또는, ContentLinkage 속성은 제2 전송 세션(또는 LCT 세션)을 식별하는 전송 세션 식별자를 제공할 수 있다.
본 발명의 일 실시예에 따른 방송 수신 장치는 시그널링 데이터를 기초로 서비스를 획득할 수 있다. 구체적으로, 방송 수신 장치는 로우 레벨 시그널링 데이터를 획득하고, 로우 레벨 시그널링 데이터를 기초로 서비스 레이어 시그널링 데이터를 획득할 수 있다.
또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(USBD)를 이용하여, 서비스의 속성을 획득할 수 있다. 또한, 방송 수신 장치는, USBD를 이용하여, MPD 및/또는 S-TSID 를 참조 및/또는 획득할 수 있다.
또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(USBD 및/또는 MPD)를 이용하여, 서비스를 위한 적어도 하나의 컴포넌트(또는 레프리젠테이션)에 대한 정보를 획득할 수 있다. 예를 들어, 방송 수신 장치는 비디오 컴포넌트에 대한 정보를 획득할 수 있다.
또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(S-TSID)를 이용하여, 적어도 하나의 컴포넌트의 전송 경로 정보를 획득할 수 있다. 또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(S-TSID)를 이용하여, 적어도 하나의 컴포넌트를 위한 다른 컴포넌트의 전송 경로 정보를 획득할 수 있다. 예를 들어, 적어도 하나의 컴포넌트를 위한 다른 컴포넌트는 어플리케이션을 포함할 수 있다.
또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(전송 경로 정보)를 기초로, 서비스를 위한 서비스 데이터를 획득할 수 있다. 예를 들어, 방송 수신 장치는 어플리케이션(App)을 제2 전송 세션(tsi-app)를 통하여 비실시간으로 수신할 수 있다.
또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(AST)를 기초로, 어플리케이션(App)을 식별하는 정보를 획득할 수 있다.
방송 수신 장치는, 비디오 컴포넌트를 재생하면서, 미리 정해진 타이밍에 어플리케이션(App)를 동작시킬 수 있다.
도 48는 본 발명의 일 실시예에 따른 브로드밴드를 통해서 전송되는 AST를 나타낸 도면이다.
AST 가 브로드밴드를 통해 전달되는 경우, AST 는 요청(query)를 통해 획득될 수 있다. 이 요청은 전술한 SLT 내의 베이스 URL 정보를 이용하여 생성될 수 있다. 이 베이스 URL 은 AST 를 획득하기 위한 URL 정보일 수 있다. 여기서 SLT 는 해당 AST 와 관련된 방송 서비스에 대한 부트스트랩 정보를 포함하는 SLT 일 수 있다.
특정의 주파수를 가진 방송 신호(Broadcast Stream)는 서비스를 위한 서비스 데이터 및/또는 시그널링 데이터를 포함할 수 있다. 방송 신호는 제1 ROUTE 세션(sIP#A/dIP#A/dPort#A)을 포함할 수 있다. 제1 ROUTE 세션은 제1 PLP(PLP #A)를 통하여 전송될 수 있다. 또한, 제1 ROUTE 세션은 제1 전송 세션(미도시), 제2 전송 세션(tsi-app), 및/또는 제3 전송 세션(미도시) 을 포함할 수 있다. 제1 전송 세션은 적어도 하나의 서비스 레이어 시그널링 정보를 포함할 수 있다. 제2 전송 세션(tsi-app)은 적어도 하나의 어플리케이션을 포함할 수 있다. 제3 전송 세션은 비디오 컴포넌트를 포함할 수 있다. 본 발명의 일 실시예에 따른 제1 ROUTE 세션(sIP#A/dIP#A/dPort#A), 제1 PLP(PLP #A), 제1 전송 세션, 제2 전송 세션(tsi-app), 및/또는 제3 전송 세션에 대한 내용은 전술한 제1 ROUTE 세션(sIP#A/dIP#A/dPort#A), 제1 PLP(PLP #A), 제1 전송 세션, 제2 전송 세션(tsi-app), 및/또는 제3 전송 세션에 대한 내용을 모두 포함할 수 있다.
이하에서는 SLT(또는 FIT) 에 대하여 설명한다.
본 발명의 일 실시예에 따른 SLT에 대한 내용은 전술한 SLT의 내용을 모두 포함할 수 있다. 이하에서는 차이점을 중심으로 설명한다.
예를 들어, SLT는 Broadcast_Stream_id 속성 및 제1 서비스 엘리먼트(Service #A)를 포함할 수 있다.
제1 서비스 엘리먼트(Service #A)는 serviceId 속성 및/또는 signaling_broadband 엘리먼트 중에서 적어도 하나를 포함할 수 있다.
serviceId 속성은 해당 브로드캐스트 영역의 범위 내에서 해당 서비스를 유일하게 식별하는 정수 넘버일 수 있다.
signaling_broadband 엘리먼트는 서비스를 위한 인터넷 시그널링 정보(예를 들어, SLS)에 접근할 수 있는 경로 정보(또는 URL)을 포함할 수 있다. signaling_broadband 엘리먼트는 수신기가 각 서비스에 대한 SLS의 발견을 부트스트랩 할 수 있게 해준다. 이 경우, SLS는 브로드밴드를 통해서 전송될 수 있다.
signaling_broadband 엘리먼트는 서비스를 위한 AST에 접근할 수 있는 경로 정보(또는 URL)를 포함하는 broadbandServerURL_AST를 포함할 수 있다. 이 경우, AST는 브로드밴드를 통해서 전송될 수 있다.
이하에서는 SLS에 대하여 설명한다.
SLS는 USBD, MPD, S-TSID, 및/또는 AST 중에서 적어도 하나를 포함할 수 있다. SLS에 관련된 내용은 전술한 SLS에 대한 내용을 모두 포함할 수 있다. 다만, 한가지 차이점은 SLS는 브로드밴드를 통하여 전송될 수 있다.
본 발명의 일 실시예에 따른 방송 수신 장치는 서비스를 위한 서비스 데이터 및 시그널링 데이터(예를 들어, 로우 레벨 시그널링 데이터 또는 SLT) 중에서 적어도 하나를 포함하는 방송 신호를 방송망을 통해서 수신할 수 있다.
본 발명의 일 실시예에 따른 방송 수신 장치는 시그널링 데이터를 기초로 서비스를 획득할 수 있다. 구체적으로, 방송 수신 장치는 로우 레벨 시그널링 데이터를 획득하고, 로우 레벨 시그널링 데이터를 기초로 서비스 레이어 시그널링 데이터를 획득할 수 있다. 서비스 레벨 시그널링 데이터는 브로드밴드를 통해서 전송될 수 있다.
또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(USBD)를 이용하여, 서비스의 속성을 획득할 수 있다. 또한, 방송 수신 장치는, USBD를 이용하여, MPD 및/또는 S-TSID 를 참조 및/또는 획득할 수 있다.
또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(USBD 및/또는 MPD)를 이용하여, 서비스를 위한 적어도 하나의 컴포넌트(또는 레프리젠테이션)에 대한 정보를 획득할 수 있다. 예를 들어, 방송 수신 장치는 비디오 컴포넌트에 대한 정보를 획득할 수 있다.
또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(S-TSID)를 이용하여, 적어도 하나의 컴포넌트의 전송 경로 정보를 획득할 수 있다. 또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(S-TSID)를 이용하여, 적어도 하나의 컴포넌트를 위한 다른 컴포넌트의 전송 경로 정보를 획득할 수 있다. 예를 들어, 적어도 하나의 컴포넌트를 위한 다른 컴포넌트는 어플리케이션을 포함할 수 있다.
또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(전송 경로 정보)를 기초로, 서비스를 위한 서비스 데이터를 획득할 수 있다. 예를 들어, 방송 수신 장치는 어플리케이션(App)을 제2 전송 세션(tsi-app)를 통하여 비실시간으로 수신할 수 있다.
또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(AST)를 기초로, 어플리케이션(App)을 식별하는 정보를 획득할 수 있다.
방송 수신 장치는, 비디오 컴포넌트를 재생하면서, 미리 정해진 타이밍에 어플리케이션(App)를 동작시킬 수 있다.
도 49는 본 발명의 일 실시예에 따른 브로드캐스트를 통해서 EventStream 엘레멘트의 형태로 전송되는 이벤트를 나타낸 도면이다.
이벤트는 MPD 의 Period 엘레멘트에 나타나는 EventStream 엘레멘트의 형태로 전송될 수 있다. 방송망을 통해서 전송되는 EventStream 엘레멘트에 대한 내용은 전술한 EventStream 엘레멘트에 대한 내용을 모두 포함할 수 있다.
특정의 주파수를 가진 방송 신호(Broadcast Stream)는 서비스를 위한 서비스 데이터 및/또는 시그널링 데이터를 포함할 수 있다. 방송 신호는 제1 ROUTE 세션(sIP#A/dIP#A/dPort#A)을 포함할 수 있다. 제1 ROUTE 세션은 제1 PLP(PLP #A)를 통하여 전송될 수 있다. 또한, 제1 ROUTE 세션은 제1 전송 세션(tsi-sls), 제2 전송 세션(tsi-app), 및/또는 제3 전송 세션(미도시) 을 포함할 수 있다. 제1 전송 세션(tsi-sls)은 적어도 하나의 서비스 레이어 시그널링 정보를 포함할 수 있다. 예를 들어, 서비스 레이어 시그널링 정보는 전술한 USBD, MPD, S-TSID, 및/또는 AST 중에서 적어도 하나를 포함할 수 있다. 제2 전송 세션(tsi-app)은 적어도 하나의 어플리케이션을 포함할 수 있다. 제3 전송 세션은 비디오 컴포넌트를 포함할 수 있다. 본 발명의 일 실시예에 따른 제1 ROUTE 세션(sIP#A/dIP#A/dPort#A), 제1 PLP(PLP #A), 제1 전송 세션, 제2 전송 세션(tsi-app), 및/또는 제3 전송 세션에 대한 내용은 전술한 제1 ROUTE 세션(sIP#A/dIP#A/dPort#A), 제1 PLP(PLP #A), 제1 전송 세션, 제2 전송 세션(tsi-app), 및/또는 제3 전송 세션에 대한 내용을 모두 포함할 수 있다.
이하에서는 SLT에 대하여 설명한다.
SLT는 수신기가 기본 서비스 리스트를 작성하고 각 서비스에 대한 SLS의 발견을 부트스트랩 할 수 있게 해준다. 예를 들어, SLT는 제1 ROUTE 세션(sIP#A/dIP#A/dPort#A)을 위한 경로 정보를 포함할 수 있다. 또한, SLT는 제1 전송 세션(tsi-sls)을 위한 경로 정보를 포함할 수 있다. 본 발명의 일 실시예에 따른 SLT에 대한 내용은 전술한 SLT의 내용을 모두 포함할 수 있다.
이하에서는 SLS에 대하여 설명한다.
SLS는 USBD, MPD, S-TSID, 및/또는 AST 중에서 적어도 하나를 포함할 수 있다. SLS에 관련된 내용은 전술한 SLS에 대한 내용을 모두 포함할 수 있다. 이하에서는, MPD에 대하여 더욱 구체적으로 설명한다.
MPD 는 어느 서비스에 대한 서비스 시그널링 정보로서, Period 라 불리우는 서비스의 시간 간격 단위로 시그널링 정보를 제공할 수 있다. 이 Period 에 대한 시그널링 정보는 MPD Period 엘레멘트에 포함되는데, 이 Period 엘레멘트는 EventStream 엘레멘트를 포함할 수 있다. EventStream 엘레멘트는, 해당 서비스의 해당 Period 동안의 앱들의 동작에 관하여 필요한 시그널링(이벤트)를 제공할 수 있다.
EventStream 엘레멘트는 schemeIdUri 속성, value 속성, timescale 속성, 및/또는 적어도 하나의 Event 서브 엘레멘트를 포함할 수 있다. 각각의 Event 서브 엘레멘트는 presentationTime 속성, duration 속성 및/또는 id 속성을 포함할 수 있다. EventStream 엘레멘트에 대한 구체적인 내용은 전술한 EventStream 엘레멘트에 대한 내용을 모두 포함할 수 있다.
예를 들어, schemeIdUri 속성의 값은 "urn:uuid:XYZY"일 수 있다. 또한, value 속성의 값은 "call"일 수 있다. 또한, timescale 속성의 값은 "1000"일 수 있다.
또한, 제1 이벤트와 관련하여, presentationTime 속성의 값은 "0"이고, duration 속성의 값은 "10000"이고, 및/또는 id 속성의 값은 "0"이고, 데이터 엘레멘트/속성은 "+1 800 10101010"일 수 있다. 또한, 제2 이벤트와 관련하여, presentationTime 속성의 값은 "20000"이고, duration 속성의 값은 "10000"이고, 및/또는 id 속성의 값은 "1"이고, 데이터 엘레멘트/속성은 "+1 800 10101011"일 수 있다. 또한, 제3 이벤트와 관련하여, presentationTime 속성의 값은 "40000"이고, duration 속성의 값은 "10000"이고, 및/또는 id 속성의 값은 "2"이고, 데이터 엘레멘트/속성은 "+1 800 10101012"일 수 있다. 또한, 제4 이벤트와 관련하여, presentationTime 속성의 값은 "60000"이고, duration 속성의 값은 "10000"이고, 및/또는 id 속성의 값은 "3"이고, 데이터 엘레멘트/속성은 "+1 800 10101013"일 수 있다.
본 발명의 일 실시예에 따른 방송 수신 장치는 서비스를 위한 서비스 데이터 및 시그널링 데이터(예를 들어, 로우 레벨 시그널링 데이터 또는 서비스 레이어 시그널링 데이터) 중에서 적어도 하나를 포함하는 방송 신호를 방송망을 통해서 수신할 수 있다.
본 발명의 일 실시예에 따른 방송 수신 장치는 시그널링 데이터를 기초로 서비스를 획득할 수 있다. 구체적으로, 방송 수신 장치는 로우 레벨 시그널링 데이터를 획득하고, 로우 레벨 시그널링 데이터를 기초로 서비스 레이어 시그널링 데이터를 획득할 수 있다.
또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(USBD)를 이용하여, 서비스의 속성을 획득할 수 있다. 또한, 방송 수신 장치는, USBD를 이용하여, MPD 및/또는 S-TSID 를 참조 및/또는 획득할 수 있다.
또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(USBD 및/또는 MPD)를 이용하여, 서비스를 위한 적어도 하나의 컴포넌트(또는 레프리젠테이션)에 대한 정보를 획득할 수 있다. 예를 들어, 방송 수신 장치는 비디오 컴포넌트에 대한 정보를 획득할 수 있다.
또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(S-TSID)를 이용하여, 적어도 하나의 컴포넌트의 전송 경로 정보를 획득할 수 있다. 또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(S-TSID)를 이용하여, 적어도 하나의 컴포넌트를 위한 다른 컴포넌트의 전송 경로 정보를 획득할 수 있다. 예를 들어, 적어도 하나의 컴포넌트를 위한 다른 컴포넌트는 어플리케이션을 포함할 수 있다.
또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(전송 경로 정보)를 기초로, 서비스를 위한 서비스 데이터를 획득할 수 있다. 예를 들어, 방송 수신 장치는 어플리케이션(App)을 제2 전송 세션(tsi-app)를 통하여 비실시간으로 수신할 수 있다.
또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(AST)를 기초로, 어플리케이션(App)을 식별하는 정보를 획득할 수 있다.
또한, 방송 수신 장치는, 이벤트를 기초로, 어플리케이션(App)을 동작시킬 수 있다. 예를 들어, 이벤트는 MPD 의 Period 엘레멘트에 나타나는 EventStream 엘레멘트의 형태로 전송될 수 있다. 방송 수신 장치는, 비디오 컴포넌트를 재생하면서, 미리 정해진 타이밍에 어플리케이션(App)를 동작시킬 수 있다.
도 50은 본 발명의 일 실시예에 따른 브로드캐스트를 통해서 emsg 박스의 형태로 전송되는 이벤트를 나타낸 도면이다.
이벤트는 Representation의 세그먼트들(또는 Representation 세그먼트들) 내에 나타나는 emsg 박스의 형태로 전송될 수 있다. 방송망을 통해서 전송되는 emsg 박스에 대한 내용은 전술한 emsg 박스에 대한 내용을 모두 포함할 수 있다.
특정의 주파수를 가진 방송 신호(Broadcast Stream)는 서비스를 위한 서비스 데이터 및/또는 시그널링 데이터를 포함할 수 있다. 방송 신호는 제1 ROUTE 세션(sIP#A/dIP#A/dPort#A)을 포함할 수 있다. 제1 ROUTE 세션은 제1 PLP(PLP #A)를 통하여 전송될 수 있다. 또한, 제1 ROUTE 세션은 제1 전송 세션(tsi-sls), 제2 전송 세션(tsi-app), 및/또는 제3 전송 세션(tsi-v) 을 포함할 수 있다. 제1 전송 세션(tsi-sls)은 적어도 하나의 서비스 레이어 시그널링 정보를 포함할 수 있다. 예를 들어, 서비스 레이어 시그널링 정보는 전술한 USBD, MPD, S-TSID, 및/또는 AST 중에서 적어도 하나를 포함할 수 있다. 제2 전송 세션(tsi-app)은 적어도 하나의 어플리케이션을 포함할 수 있다. 제3 전송 세션은 비디오 컴포넌트를 포함할 수 있다. 비디오 컴포넌트는 비디오 데이터를 포함하는 적어도 하나의 비디오 세그먼트를 포함할 수 있다. 적어도 하나의 비디오 세그먼트는 emsg 박스를 포함할 수 있다.
본 발명의 일 실시예에 따른 제1 ROUTE 세션(sIP#A/dIP#A/dPort#A), 제1 PLP(PLP #A), 제1 전송 세션, 제2 전송 세션(tsi-app), 및/또는 제3 전송 세션(tsi-v)에 대한 내용은 전술한 제1 ROUTE 세션(sIP#A/dIP#A/dPort#A), 제1 PLP(PLP #A), 제1 전송 세션, 제2 전송 세션(tsi-app), 및/또는 제3 전송 세션(tsi-v)에 대한 내용을 모두 포함할 수 있다.
이하에서는 세그먼트 내에 포함되는 emsg 박스를 설명한다.
emsg 박스는 미디어 프리젠테이션 타임에 관련되는 제네릭 이벤트들을 위한 시그널링 정보를 제공할 수 있다. emsg 박스는 schemeIdUri 필드, value 필드, timescale 필드, presentationTimeDelta 필드, eventDuration 필드, id 필드, 및/또는 messageData 필드 중에서 적어도 하나를 포함할 수 있다. emsg 박스에 대한 내용은 전술한 emsg 박스의 내용을 모두 포함할 수 있다.
이하에서는 SLT에 대하여 설명한다.
SLT는 수신기가 기본 서비스 리스트를 작성하고 각 서비스에 대한 SLS의 발견을 부트스트랩 할 수 있게 해준다. 예를 들어, SLT는 제1 ROUTE 세션(sIP#A/dIP#A/dPort#A)을 위한 경로 정보를 포함할 수 있다. 또한, SLT는 제1 전송 세션(tsi-sls)을 위한 경로 정보를 포함할 수 있다. 본 발명의 일 실시예에 따른 SLT에 대한 내용은 전술한 SLT의 내용을 모두 포함할 수 있다.
이하에서는 SLS에 대하여 설명한다.
SLS는 USBD, MPD, S-TSID, 및/또는 AST 중에서 적어도 하나를 포함할 수 있다. SLS에 관련된 내용은 전술한 SLS에 대한 내용을 모두 포함할 수 있다. 이하에서는, S-TSID 및/또는 MPD에 대하여 더욱 구체적으로 설명한다.
S-TSID는 서비스 및/또는 서비스에 포함되는 컴포넌트를 위한 ROUTE 세션에 관한 정보를 제공하는 제1 ROUTE 세션 엘리먼트(RS)를 포함할 수 있다. 제1 ROUTE 세션 엘리먼트(RS)는 제1 ROUTE 세션을 위한 전송 경로 정보를 포함할 수 있다. 또한, 제1 ROUTE 세션 엘리먼트(RS)는 ROUTE 세션 내에 있는 전송 세션(또는 Layered Coding Transport 세션)에 대한 정보를 포함할 수 있다. 예를 들어, 제1 ROUTE 세션 엘리먼트(RS)는 제2 전송 세션에 대한 정보를 포함하는 제2 전송 세션 엘리먼트(LS)를 포함할 수 있다. 제2 전송 세션 엘리먼트(LS)는 제2 전송 세션을 위한 전송 경로 정보를 포함할 수 있다. 또한, 제1 ROUTE 세션 엘리먼트(RS)는 제3 전송 세션에 대한 정보를 포함하는 제3 전송 세션 엘리먼트(LS)를 포함할 수 있다. 제3 전송 세션 엘리먼트(LS)는 제3 전송 세션을 위한 전송 경로 정보를 포함할 수 있다.
구체적으로, 제2 전송 세션 엘리먼트(LS) 및/또는 제3 전송 세션 엘리먼트(LS)는 서비스를 위한 컨텐트 컴포넌트가 전송되는 전송 세션을 식별하는 tsi 속성 및 ROUTE 세션에 포함되는 소스 플로우에 대해서 기술하는 SrcFlow 엘리먼트를 각각 포함할 수 있다.
SrcFlow 엘리먼트는 해당 SrcFlow 엘리먼트가 비실시간 서비스 데이터를 전송하는지 여부를 지시하는 nrt 속성을 포함할 수 있다. 또는, SrcFlow 엘리먼트는 해당 SrcFlow 엘리먼트가 스트리밍 미디어 데이터를 전송하는지 여부를 지시하는 rt 속성을 포함할 수 있다. 즉, nrt 속성은 rt 속성과 동일한 기능을 수행할 수 있으며, 서로 대체될 수 있다.
SrcFlow 엘리먼트는 전송 세션을 통해서 전송되는 서비스(또는 어플리케이션 서비스)에 매핑되는 부가적인 정보를 포함하는 appID 속성을 더 포함할 수 있다. appID 속성은 ContentInfo 엘리먼트로 지칭될 수 있다. ContentInfo 엘리먼트는 전송 세션을 통해서 전송되는 서비스(또는 어플리케이션 서비스)에 매핑되는 부가적인 정보를 포함할 수 있다. 예를 들어, ContentInfo 엘리먼트는, 랜더링을 위하여 LCT 전송 세션을 선택하기 위해서, DASH 콘텐트의 레프리젠테이션 식별자(Representation ID) 및/또는 DASH 미디어 레프리젠테이션의 어댑테이션 셋 파라미터들(Adaptation Set parameters)을 포함할 수 있다. 레프리젠테이션 식별자는 서비스를 위한 컴포넌트와 관련되는 식별자이고, id 속성으로 지칭될 수 있다. 따라서, SrcFlow 엘리먼트 내에 있는 appID 속성은 MPD의 Representation 엘리먼트 내에 있는 id 속성과 매칭될 수 있다.
제2 전송 세션 엘리먼트(LS)와 관련하여, tsi 속성이 "tsi-app"이면, 해당 전송 세션 엘리먼트가 제2 전송 세션을 위한 정보를 포함할 수 있다. 또한, nrt 속성이 "true"이면, 해당 SrcFlow 엘리먼트가 비실시간 서비스 데이터를 전송할 수 있다. 즉, 어플리케이션(App)은 제2 전송 세션(tsi-app)를 통하여 비실시간으로 전송될 수 있다.
제3 전송 세션 엘리먼트(LS)와 관련하여, tsi 속성이 "tsi-v"이면, 해당 전송 세션 엘리먼트가 제3 전송 세션을 위한 정보를 포함할 수 있다. 또한, nrt 속성이 "false"이면, 해당 SrcFlow 엘리먼트가 실시간 서비스 데이터를 전송할 수 있다. 또한, appID 속성이 "rep_v1"이면, 비디오 컴포넌트의 레프리젠테이션 식별자는 "rep_v1"일 수 있다. 즉, "rep_v1"로 식별되는 비디오 컴포넌트의 적어도 하나의 비디오 세그먼트는 제3 전송 세션(tsi-v)를 통하여 실시간으로 전송될 수 있다.
MPD는 리니어/스트리밍 서비스의 개별적인 미디어 컴포넌트들을 위한 리소스 식별자들을 포함할 수 있다. MPD는 Period 엘리먼트를 포함할 수 있다. Period 엘리먼트는 비디오 컴포넌트에 관한 정보를 포함하는 AdaptationSet 엘리먼트를 포함할 수 있다. AdaptationSet 엘리먼트는 적어도 하나의 Representation 엘리먼트를 포함할 수 있다. Representation 엘리먼트는 컴포넌트와 관련되는 레프리젠테이션에 대한 정보를 포함할 수 있다.
Representation 엘리먼트는 레프리젠테이션을 식별하는 id 속성을 포함할 수 있다. 예를 들어, id 속성의 값은 "rep_v1"일 수 있다. 즉, id 속성은 제3 전송 세션(tsi-v)를 통해서 전송되는 비디오 컴포넌트를 지시할 수 있다.
또한, Representation 속성은 관련되는 레프리젠테이션에 인밴드 이벤트 스트림의 존재를 명시하는 InbandEventStream 엘리먼트를 더 포함할 수 있다. MPD 의 Representation 엘리먼트의 InbandEventStream 엘리먼트는, 세그먼트들 내에 emsg 박스에 이벤트가 존재하는지 여부를 시그널링해줄 수 있다.
InbandEventStream 엘리먼트는 schemeIdURI 속성 및/또는 value 속성을 포함할 수 있다. 이 두 속성은 emsg 박스 내의 이벤트의 타입을 지시할 수 있다. 실시예에 따라, 이 두 속성은 이벤트를 식별하는데 사용될 수 있다. InbandEventStream 엘리먼트에 포함되는 schemeIdURI 속성 및/또는 value 속성은 emsg 박스 내의 schemeIdURI 속성 및/또는 value 속성과 매칭될 수 있다. 예를 들어, schemeIdURI 속성의 값은 "event_URI #1"이고, value 속성의 값은 "abc"일 수 있다.
본 발명의 일 실시예에 따른 방송 수신 장치는 서비스를 위한 서비스 데이터 및 시그널링 데이터(예를 들어, 로우 레벨 시그널링 데이터 또는 서비스 레이어 시그널링 데이터) 중에서 적어도 하나를 포함하는 방송 신호를 방송망을 통해서 수신할 수 있다.
본 발명의 일 실시예에 따른 방송 수신 장치는 시그널링 데이터를 기초로 서비스를 획득할 수 있다. 구체적으로, 방송 수신 장치는 로우 레벨 시그널링 데이터를 획득하고, 로우 레벨 시그널링 데이터를 기초로 서비스 레이어 시그널링 데이터를 획득할 수 있다.
또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(USBD)를 이용하여, 서비스의 속성을 획득할 수 있다. 또한, 방송 수신 장치는, USBD를 이용하여, MPD 및/또는 S-TSID 를 참조 및/또는 획득할 수 있다.
또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(USBD 및/또는 MPD)를 이용하여, 서비스를 위한 적어도 하나의 컴포넌트(또는 레프리젠테이션)에 대한 정보를 획득할 수 있다. 예를 들어, 방송 수신 장치는 비디오 컴포넌트에 대한 정보를 획득할 수 있다. 이 때, MPD의 Representation 엘리먼트는 비디오 컴포넌트에 emsg 박스(또는 인밴드 이벤트 스트림)의 존재를 명시하는 InbandEventStream 엘리먼트를 포함할 수 있다.
또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(S-TSID)를 이용하여, 적어도 하나의 컴포넌트의 전송 경로 정보를 획득할 수 있다. 또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(S-TSID)를 이용하여, 적어도 하나의 컴포넌트를 위한 다른 컴포넌트의 전송 경로 정보를 획득할 수 있다. 예를 들어, 적어도 하나의 컴포넌트를 위한 다른 컴포넌트는 어플리케이션을 포함할 수 있다.
또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(전송 경로 정보)를 기초로, 서비스를 위한 서비스 데이터를 획득할 수 있다. 예를 들어, 방송 수신 장치는 어플리케이션(App)을 제2 전송 세션(tsi-app)를 통하여 비실시간으로 수신할 수 있다. 또한, 방송 수신 장치는 "rep_v1"로 식별되는 비디오 컴포넌트의 적어도 하나의 비디오 세그먼트를 제3 전송 세션(tsi-v)를 통하여 실시간으로 수신할 수 있다. 적어도 하나의 비디오 세그먼트는 emsg 박스를 포함할 수 있다.
또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(AST)를 기초로, 어플리케이션(App)을 식별하는 정보를 획득할 수 있다.
또한, 방송 수신 장치는, 이벤트를 기초로, 어플리케이션(App)을 동작시킬 수 있다. 예를 들어, 이벤트는 emsg 박스의 형태로 세그먼트에 포함될 수 있다. 방송 수신 장치는, 비디오 컴포넌트를 재생하면서, 미리 정해진 타이밍에 어플리케이션(App)를 동작시킬 수 있다.
도 51는 본 발명의 일 실시예에 따른 브로드밴드를 통해서 EventStream 엘레멘트의 형태로 전송되는 이벤트를 나타낸 도면이다.
이벤트는 브로드밴드로 전송되는 EST (Event Stream Table)에 포함되는 EventStream 엘레멘트의 형태로 전송될 수 있다. EST가 브로드밴드를 통해 전달되는 경우, EST 는 요청(query)를 통해 획득될 수 있다. 이 요청은 ALT 내의 URL 정보를 이용하여 생성될 수 있다. 이 URL 정보는 EST 를 획득하기 위한 URL 정보일 수 있다. 브로드밴드를 통해서 전송되는 EventStream 엘레멘트에 대한 내용은 전술한 EventStream 엘레멘트에 대한 내용을 모두 포함할 수 있다.
특정의 주파수를 가진 방송 신호(Broadcast Stream)는 서비스를 위한 서비스 데이터 및/또는 시그널링 데이터를 포함할 수 있다. 방송 신호는 제1 ROUTE 세션(sIP#A/dIP#A/dPort#A)을 포함할 수 있다. 제1 ROUTE 세션은 제1 PLP(PLP #A)를 통하여 전송될 수 있다. 또한, 제1 ROUTE 세션은 제1 전송 세션(tsi-sls), 제2 전송 세션(tsi-app), 및/또는 제3 전송 세션(미도시) 을 포함할 수 있다. 제1 전송 세션(tsi-sls)은 적어도 하나의 서비스 레이어 시그널링 정보를 포함할 수 있다. 예를 들어, 서비스 레이어 시그널링 정보는 전술한 USBD, MPD(미도시), S-TSID, 및/또는 AST 중에서 적어도 하나를 포함할 수 있다. 제2 전송 세션(tsi-app)은 적어도 하나의 어플리케이션을 포함할 수 있다. 제3 전송 세션은 비디오 컴포넌트를 포함할 수 있다. 실시예에 따라서 MPD는 생략될 수 있다. 본 발명의 일 실시예에 따른 제1 ROUTE 세션(sIP#A/dIP#A/dPort#A), 제1 PLP(PLP #A), 제1 전송 세션, 제2 전송 세션(tsi-app), 및/또는 제3 전송 세션에 대한 내용은 전술한 제1 ROUTE 세션(sIP#A/dIP#A/dPort#A), 제1 PLP(PLP #A), 제1 전송 세션, 제2 전송 세션(tsi-app), 및/또는 제3 전송 세션에 대한 내용을 모두 포함할 수 있다.
이하에서는 SLT에 대하여 설명한다.
SLT는 제1 ROUTE 세션(sIP#A/dIP#A/dPort#A)을 위한 경로 정보를 포함할 수 있다. 또한, SLT는 제1 전송 세션(tsi-sls)을 위한 경로 정보를 포함할 수 있다. 본 발명의 일 실시예에 따른 SLT에 대한 내용은 전술한 SLT의 내용을 모두 포함할 수 있다.
이하에서는 SLS에 대하여 설명한다.
SLS는 USBD, MPD, S-TSID, 및/또는 AST 중에서 적어도 하나를 포함할 수 있다. SLS에 관련된 내용은 전술한 SLS에 대한 내용을 모두 포함할 수 있다. 이하에서는, AST에 대하여 더욱 구체적으로 설명한다.
AST는 ContentLinkage 속성을 포함할 수 있다. ContentLinkage 속성은 해당 컨텐트 아이템을 활용할 앱을 지시할 수 있다. 이 속성값과 후술할 이벤트에 대한 정보들(EventStream 엘레멘트, emsg 박스 등)에 의하여 특정 앱에 대한 시그널링이 수행될 수 있다.
예를 들어, ContentLinkage 속성은 제2 전송 세션을 통해서 전송되는 어플리케이션(App)을 식별하는 어플리케이션 식별자를 제공할 수 있다. 또는, ContentLinkage 속성은 제2 전송 세션(또는 LCT 세션)을 식별하는 전송 세션 식별자를 제공할 수 있다.
AST는 BroadbandStaticEventURL 속성을 더 포함할 수 있다. BroadbandStaticEventURL 속성은 서비스를 위한 EST에 접근할 수 있는 경로 정보(또는 URL)를 포함할 수 있다. 이 경우, EST는 브로드밴드를 통해서 전송될 수 있다. EST는 EventStream 엘레멘트를 포함할 수 있다. EventStream 엘레멘트는 어플리케이션들의 동작에 관하여 필요한 시그널링(이벤트)를 제공할 수 있다.
EventStream 엘레멘트는 schemeIdUri 속성, value 속성, timescale 속성, 및/또는 적어도 하나의 Event 서브 엘레멘트를 포함할 수 있다. 각각의 Event 서브 엘레멘트는 presentationTime 속성, duration 속성 및/또는 id 속성을 포함할 수 있다. EventStream 엘레멘트에 대한 구체적인 내용은 전술한 EventStream 엘레멘트에 대한 내용을 모두 포함할 수 있다.
예를 들어, schemeIdUri 속성의 값은 "urn:uuid:XYZY"일 수 있다. 또한, value 속성의 값은 "call"일 수 있다. 또한, timescale 속성의 값은 "1000"일 수 있다.
또한, 제1 이벤트와 관련하여, presentationTime 속성의 값은 "0"이고, duration 속성의 값은 "10000"이고, 및/또는 id 속성의 값은 "0"이고, 데이터 엘레멘트/속성은 "+1 800 10101010"일 수 있다. 또한, 제2 이벤트와 관련하여, presentationTime 속성의 값은 "20000"이고, duration 속성의 값은 "10000"이고, 및/또는 id 속성의 값은 "1"이고, 데이터 엘레멘트/속성은 "+1 800 10101011"일 수 있다. 또한, 제3 이벤트와 관련하여, presentationTime 속성의 값은 "40000"이고, duration 속성의 값은 "10000"이고, 및/또는 id 속성의 값은 "2"이고, 데이터 엘레멘트/속성은 "+1 800 10101012"일 수 있다. 또한, 제4 이벤트와 관련하여, presentationTime 속성의 값은 "60000"이고, duration 속성의 값은 "10000"이고, 및/또는 id 속성의 값은 "3"이고, 데이터 엘레멘트/속성은 "+1 800 10101013"일 수 있다.
본 발명의 일 실시예에 따른 방송 수신 장치는 서비스를 위한 서비스 데이터 및 시그널링 데이터(예를 들어, 로우 레벨 시그널링 데이터 또는 서비스 레이어 시그널링 데이터) 중에서 적어도 하나를 포함하는 방송 신호를 방송망을 통해서 수신할 수 있다.
본 발명의 일 실시예에 따른 방송 수신 장치는 시그널링 데이터를 기초로 서비스를 획득할 수 있다. 구체적으로, 방송 수신 장치는 로우 레벨 시그널링 데이터를 획득하고, 로우 레벨 시그널링 데이터를 기초로 서비스 레이어 시그널링 데이터를 획득할 수 있다.
또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(USBD)를 이용하여, 서비스의 속성을 획득할 수 있다. 또한, 방송 수신 장치는, USBD를 이용하여, MPD 및/또는 S-TSID 를 참조 및/또는 획득할 수 있다.
또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(USBD 및/또는 MPD)를 이용하여, 서비스를 위한 적어도 하나의 컴포넌트(또는 레프리젠테이션)에 대한 정보를 획득할 수 있다. 예를 들어, 방송 수신 장치는 비디오 컴포넌트에 대한 정보를 획득할 수 있다.
또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(S-TSID)를 이용하여, 적어도 하나의 컴포넌트의 전송 경로 정보를 획득할 수 있다. 또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(S-TSID)를 이용하여, 적어도 하나의 컴포넌트를 위한 다른 컴포넌트의 전송 경로 정보를 획득할 수 있다. 예를 들어, 적어도 하나의 컴포넌트를 위한 다른 컴포넌트는 어플리케이션을 포함할 수 있다.
또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(전송 경로 정보)를 기초로, 서비스를 위한 서비스 데이터를 획득할 수 있다. 예를 들어, 방송 수신 장치는 어플리케이션(App)을 제2 전송 세션(tsi-app)를 통하여 비실시간으로 수신할 수 있다.
또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(AST)를 기초로, 어플리케이션(App)을 식별하는 정보를 획득할 수 있다. 또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(AST)를 기초로, EST 를 브로드밴드를 통하여 획득할 수 있다.
또한, 방송 수신 장치는, 이벤트를 기초로, 어플리케이션(App)을 동작시킬 수 있다. 예를 들어, 이벤트는 브로드밴드로 전송되는 EST (Event Stream Table)에 포함되는 EventStream 엘레멘트의 형태로 전송될 수 있다.
방송 수신 장치는, 비디오 컴포넌트를 재생하면서, 미리 정해진 타이밍에 어플리케이션(App)를 동작시킬 수 있다.
도 52은 본 발명의 일 실시예에 따른 브로드밴드를 통해서 emsg 박스의 형태로 전송되는 이벤트를 나타낸 도면이다.
이벤트는 브로드밴드로 전송되는 emsg 박스의 형태로 전송될 수 있다. 이 경우, 이벤트는 라이브 이벤트 서버를 통해서 전달될 수 있다. 라이브 이벤트 서버로 주기적으로 폴링이 수행될 수 있으며, 그 주기 내에 전달되어야 할 이벤트가 있는 경우, 이벤트 서버는 수신기로 이벤트를 전달할 수 있다. 브로드밴드를 통해서 전송되는 emsg 박스에 대한 내용은 전술한 emsg 박스에 대한 내용을 모두 포함할 수 있다.
특정의 주파수를 가진 방송 신호(Broadcast Stream)는 서비스를 위한 서비스 데이터 및/또는 시그널링 데이터를 포함할 수 있다. 방송 신호는 제1 ROUTE 세션(sIP#A/dIP#A/dPort#A)을 포함할 수 있다. 제1 ROUTE 세션은 제1 PLP(PLP #A)를 통하여 전송될 수 있다. 또한, 제1 ROUTE 세션은 제1 전송 세션(tsi-sls), 제2 전송 세션(tsi-app), 및/또는 제3 전송 세션(미도시) 을 포함할 수 있다. 제1 전송 세션(tsi-sls)은 적어도 하나의 서비스 레이어 시그널링 정보를 포함할 수 있다. 예를 들어, 서비스 레이어 시그널링 정보는 전술한 USBD, MPD(미도시), S-TSID, 및/또는 AST 중에서 적어도 하나를 포함할 수 있다. 제2 전송 세션(tsi-app)은 적어도 하나의 어플리케이션을 포함할 수 있다. 제3 전송 세션은 비디오 컴포넌트를 포함할 수 있다. 실시예에 따라서 MPD는 생략될 수 있다. 본 발명의 일 실시예에 따른 제1 ROUTE 세션(sIP#A/dIP#A/dPort#A), 제1 PLP(PLP #A), 제1 전송 세션, 제2 전송 세션(tsi-app), 및/또는 제3 전송 세션에 대한 내용은 전술한 제1 ROUTE 세션(sIP#A/dIP#A/dPort#A), 제1 PLP(PLP #A), 제1 전송 세션, 제2 전송 세션(tsi-app), 및/또는 제3 전송 세션에 대한 내용을 모두 포함할 수 있다.
이하에서는 SLT에 대하여 설명한다.
SLT는 제1 ROUTE 세션(sIP#A/dIP#A/dPort#A)을 위한 경로 정보를 포함할 수 있다. 또한, SLT는 제1 전송 세션(tsi-sls)을 위한 경로 정보를 포함할 수 있다. 본 발명의 일 실시예에 따른 SLT에 대한 내용은 전술한 SLT의 내용을 모두 포함할 수 있다.
이하에서는 SLS에 대하여 설명한다.
SLS는 USBD, MPD, S-TSID, 및/또는 AST 중에서 적어도 하나를 포함할 수 있다. SLS에 관련된 내용은 전술한 SLS에 대한 내용을 모두 포함할 수 있다. 이하에서는, AST에 대하여 더욱 구체적으로 설명한다.
AST는 ContentLinkage 속성을 포함할 수 있다. ContentLinkage 속성은 해당 컨텐트 아이템을 활용할 앱을 지시할 수 있다. 이 속성값과 후술할 이벤트에 대한 정보들(EventStream 엘레멘트, emsg 박스 등)에 의하여 특정 앱에 대한 시그널링이 수행될 수 있다.
예를 들어, ContentLinkage 속성은 제2 전송 세션을 통해서 전송되는 어플리케이션(App)을 식별하는 어플리케이션 식별자를 제공할 수 있다. 또는, ContentLinkage 속성은 제2 전송 세션(또는 LCT 세션)을 식별하는 전송 세션 식별자를 제공할 수 있다.
AST는 BroadbandDynamicEventURL 속성을 더 포함할 수 있다. BroadbandDynamicEventURL 속성은 서비스를 위한 emsg 박스에 접근할 수 있는 경로 정보(또는 URL)를 포함할 수 있다. 이 경우, emsg 박스는 브로드밴드를 통해서 전송될 수 있다. emsg 박스는 어플리케이션들의 동작에 관하여 필요한 시그널링(이벤트)를 제공할 수 있다.
emsg 박스는 미디어 프리젠테이션 타임에 관련되는 제네릭 이벤트들을 위한 시그널링 정보를 제공할 수 있다. emsg 박스는 schemeIdUri 필드, value 필드, timescale 필드, presentationTimeDelta 필드, eventDuration 필드, id 필드, 및/또는 messageData 필드 중에서 적어도 하나를 포함할 수 있다. emsg 박스에 대한 내용은 전술한 emsg 박스의 내용을 모두 포함할 수 있다.
예를 들어, schemeIdUri 필드의 값은 "urn:uuid:XYZY"일 수 있다.
본 발명의 일 실시예에 따른 방송 수신 장치는 서비스를 위한 서비스 데이터 및 시그널링 데이터(예를 들어, 로우 레벨 시그널링 데이터 또는 서비스 레이어 시그널링 데이터) 중에서 적어도 하나를 포함하는 방송 신호를 방송망을 통해서 수신할 수 있다.
본 발명의 일 실시예에 따른 방송 수신 장치는 시그널링 데이터를 기초로 서비스를 획득할 수 있다. 구체적으로, 방송 수신 장치는 로우 레벨 시그널링 데이터를 획득하고, 로우 레벨 시그널링 데이터를 기초로 서비스 레이어 시그널링 데이터를 획득할 수 있다.
또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(USBD)를 이용하여, 서비스의 속성을 획득할 수 있다. 또한, 방송 수신 장치는, USBD를 이용하여, MPD 및/또는 S-TSID 를 참조 및/또는 획득할 수 있다.
또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(USBD 및/또는 MPD)를 이용하여, 서비스를 위한 적어도 하나의 컴포넌트(또는 레프리젠테이션)에 대한 정보를 획득할 수 있다. 예를 들어, 방송 수신 장치는 비디오 컴포넌트에 대한 정보를 획득할 수 있다.
또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(S-TSID)를 이용하여, 적어도 하나의 컴포넌트의 전송 경로 정보를 획득할 수 있다. 또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(S-TSID)를 이용하여, 적어도 하나의 컴포넌트를 위한 다른 컴포넌트의 전송 경로 정보를 획득할 수 있다. 예를 들어, 적어도 하나의 컴포넌트를 위한 다른 컴포넌트는 어플리케이션을 포함할 수 있다.
또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(전송 경로 정보)를 기초로, 서비스를 위한 서비스 데이터를 획득할 수 있다. 예를 들어, 방송 수신 장치는 어플리케이션(App)을 제2 전송 세션(tsi-app)를 통하여 비실시간으로 수신할 수 있다.
또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(AST)를 기초로, 어플리케이션(App)을 식별하는 정보를 획득할 수 있다. 또한, 방송 수신 장치는, 서비스 레이어 시그널링 데이터(AST)를 기초로, emsg 박스를 브로드밴드를 통하여 획득할 수 있다.
또한, 방송 수신 장치는, 이벤트를 기초로, 어플리케이션(App)을 동작시킬 수 있다. 예를 들어, 이벤트는 브로드밴드로 전송되는 emsg 박스의 형태로 전송될 수 있다.
방송 수신 장치는, 비디오 컴포넌트를 재생하면서, 미리 정해진 타이밍에 어플리케이션(App)를 동작시킬 수 있다.
도 53은 본 발명의 일 실시예에 따른 API 및 이벤트 리스너(event listener)를 나타낸 도면이다.
도(a)를 참조하면, 리스너가 나타나있다.
이벤트 처리기는 이벤트 발생에 대한 반응으로 실행되는 코드일 수 있다. 예를 들어, 이벤트 처리기는 이벤트 발생시 실행용 자바스크립터 코드일 수 있다. 이벤트 처리기는 이벤트 리스너(event listener 또는 listener)를 포함할 수 있다. 하나의 요소에 하나의 이벤트만 처리할 수 있는 이벤트 핸들러와는 다르게, 이벤트 리스너는 하나의 요소에 적어도 하나의 이벤트를 처리할 수 있다.
리스너는 DOM(ocument Object Model) 이벤트 리스너의 일반적인 시그너처(signature)를 포함할 수 있다. 여기서, DOM은 이벤트 핸들러를 모든 element node에 연결할 수 있도록 지원하는 모델(체계)를 말한다.
본 발명의 일 실시예에 따른 리스너는 StreamEvent 타입의 오브젝트를 파라미터로 포함할 수 있다. 예를 들어, 리스너는 listener(StreamEvent event)와 같은 형식일 수 있다.
리스너에 전달되는 StreamEvent 타입의 오브젝트는 일반적인 DOM Event 타입의 오브젝트의 확장된 형태이다.
StreamEvent 타입의 오브젝트는 name 속성, data 속성, text 속성, status 속성, 및/또는 time 속성을 포함할 수 있다.
name 속성은 이벤트의 이름을 지시할 수 있다. name 속성은 읽기 전용 속성이고, String 타입일 수 있다.
data 속성은 16진수(hexadecimal)로 인코딩된 이벤트의 데이터를 지시할 수 있다. 예를 들어, data 속성은 "0A10B81033"의 값을 가질 수 있다. data 속성은 읽기 전용 속성이고, String 타입일 수 있다.
text 속성은 이벤트의 텍스트 데이터를 지시할 수 있다. 예를 들어, data 속성이 텍스트를 포함하면, text 속성은 ASCII 코드의 값들을 가질 수 있다. 또한, text 속성은 이벤트의 활성을 위한 Event 엘리먼트의 차일드 엘리리먼트이고, 트리거에서 명시되거나 EMT의 Event 엘리먼트에서 명시되는 데이터 식별자(dataID)에 의해서 식별되는 데이터를 포함할 수 있다. text 속성은 읽기 전용 속성이고, String 타입일 수 있다.
status 속성은 이벤트의 상태를 지시할 수 있다. 이벤트가 트리거에대한 응답으로 활성화되면, status 속성은 "trigger"를 지시할 수 있다. 몇몇 종류의 에러가 발생하면, status 속성은 "error"를 지시할 수 있다. status 속성은 읽기 전용 속성이고, DOMString 타입일 수 있다.
time 속성은 이벤트가 발생한 시간을 지시할 수 있다. time 속성은 읽기 전용 속성이고, Integer 타입일 수 있다.
도(b)를 참조하면, 이벤트 리스너(또는 리스너)의 추가 및/또는 삭제를 위한 API가 나타나있다.
본 발명의 일 실시예에 따른 이벤트 처리 방법은 이벤트 리스너를 객체(object)의 메소드(method)와 연결시키는 방식을 포함할 수 있다. 이 방법은, 이벤트 리스너를 객체의 메소드와 연결시키고, 나중에 이벤트가 발생했을 때 객체의 메소드를 실행시키는 방법이다.
이와 같은 이벤트 처리 방법을 지원하기 위하여, 본 발명의 일 실시예에 따른 addStreamEventListener API 및/또는 removeStreamEventListener API가 사용될 수 있다.
addStreamEventListener API 는 이벤트를 위한 리스너(예를 들어, 이벤트 리스너 또는 스트림 이벤트 리스너)를 추가할 수 있다. addStreamEventListener API는 현재 실행중인 html 어플리케이션의 범위 내에서 이벤트 식별자(예를 들어, enentID)에 의해서 지정된 이벤트를 위한 리스너를 AST에 추가할 수 있다. 해당 이벤트가 트리거에 의해서 활성화되면, 리스너가 호출된다. 그리고, TriggerEvent 타입(또는 StreamEvent 타입)의 오브젝트가 전달될 수 있다. 리스너들은 비디오/방송 오브젝트가 재생(Presenting) 및/또는 중지(Stoped) 상태에서만 추가될 수 있다.
addStreamEventListener API 는 targetURL parameter, eventName parameter, 및/또는 Listener parameter 중에서 적어도 하나를 포함할 수 있다. 예를 들어, addStreamEventListener API 는 addStreamEventListener(targetURL, eventName, listener)와 같은 형식일 수 있다.
targetURL parameter 는 이벤트를 서술하는 StreamEvent 오브젝트의 URL을 지시할 수 있다. 또는 targetURL parameter 는 DASH EventStream 엘리먼트의 schemeIdURI 속성에 매핑될 수 있다.
eventName parameter 는 등록(subscription)이 되어야할 이벤트의 이름을 지시할 수 있다. 또는 eventName 는 DASH EventStream 엘리먼트의 value 속성에 매핑될 수 있다.
Listener parameter 는 이벤트를 위한 리스너를 지시할 수 있다. Listener parameter 는 콜-백 함수(call-back function)일 수 있다. 이벤트가 발생하면, Listener parameter 는 전달된 StreamEvent 오브젝트와 함께 파라미터로서 호출될 수 있다.
targetURL parameter 및 eventName parameter 는 이벤트를 식별하는 이벤트 식별자일 수 있다. 예를 들어, addStreamEventListener API 는 이벤트 식별자(eventId) 파라미터 및 리스너(listener) 파라미터를 포함할 수 있다. 예를 들어, addStreamEventListener API 는 addTriggerEventListener(String eventId, EventListener listener)의 형식일 수 있다. 이벤트 식별자는 EMT에 있는 이벤트 엘리먼트(Event 엘리먼트)에 있는 이벤트의 식별자(예를 들어, EventID 속성 또는 id 속성)일 수 있다. 또한, 이벤트 식별자는 트리거에 의해서 동적으로 업데이트되는 이벤트들의 식별자(예를 들어, emsg 박스의 id 필드)일 수 있다.
로 가질 수 있다.
removeStreamEventListener API 는 이벤트를 위한 리스너를 제거할 수 있다. removeStreamEventListener API 는 이벤트 식별자(예를 들어, enentID)에 의해서 지정된 이벤트를 위한 리스너를 제거할 수 있다.
removeStreamEventListener API는 targetURL parameter, eventName parameter, 및/또는 Listener parameter 중에서 적어도 하나를 포함할 수 있다. 예를 들어, removeStreamEventListener API는 removeStreamEventListener(targetURL, eventName, listener)와 같은 형식일 수 있다.
targetURL parameter 는 StreamEvent 오브젝트의 URL을 지시할 수 있다. 또는 targetURL parameter 는 DASH EventStream 엘리먼트의 schemeIdURI 속성에 매핑될 수 있다.
eventName parameter 는 등록(subscription)이 제거되어야할 이벤트의 이름을 지시할 수 있다. 또는 eventName 는 DASH EventStream 엘리먼트의 value 속성에 매핑될 수 있다.
Listener parameter 는 이벤트를 위한 리스너를 지시할 수 있다. Listener parameter 는 콜-백 함수(call-back function)일 수 있다. 이벤트가 발생하면, Listener parameter 는 전달된 StreamEvent 오브젝트와 함께 파라미터로서 호출될 수 있다.
targetURL parameter 및 eventName parameter 는 이벤트를 식별하는 이벤트 식별자일 수 있다. 예를 들어, removeStreamEventListener API 는 이벤트 식별자(eventId) 파라미터 및 리스너(listener) 파라미터를 포함할 수 있다. 예를 들어, removeStreamEventListener API 는 removeTriggerEventListener(String eventId, EventListener listener)의 형식일 수 있다. 이벤트 식별자는 EMT에 있는 이벤트 엘리먼트(Event 엘리먼트)에 있는 이벤트의 식별자(예를 들어, EventID 속성 또는 id 속성)일 수 있다. 또한, 이벤트 식별자는 트리거에 의해서 동적으로 업데이트되는 이벤트들의 식별자(예를 들어, emsg 박스의 id 필드)일 수 있다.
본 발명이 일 실시예에 따른 방송 수신 장치는, addStreamEventListener API 를 기초로, 이벤트를 위한 리스너를 추가할 수 있다. 또한, 방송 수신 장치는, removeStreamEventListener API 를 기초로, 이벤트를 위한 리스너를 추가할 수 있다. addStreamEventListener API 및/또는 removeStreamEventListener API 는 방송 프로그래밍(broadcast programming)에 대한 html 어플리케이션 액션들의 동기화를 지원할 수 있다.
도 54은 일 실시 예에 따른 전자 장치의 블록도이다.
도 54을 참조하면, 전자 장치(100)는 제어부(110) 및 통신부(120)를 포함할 수 있다. 제어부(110)는 컴패니언 장치와 통신 연결을 수행할 수 있다. 그리고, 컴패니언 장치와 통신 연결이 되면 통신부(120)는 컴패니언 장치와 데이터를 송수신할 수 있다.
그리고, 제어부(110)는 네트워크 프로세서(111) 및 어플리케이션 프로세서(112)를 포함할 수 있다. 어플리케이션 프로세서(112)는 네트워크 프로세서(111)로 컴패니언 장치와 연결을 요청할 수 있다.
네트워크 프로세서(111)는 어플리케이션 프로세서(112)로 받은 연결 요청을 대기 상태로 둘 수 있다. 네트워크 프로세서(111)는 아직 컴패니언 장치와 연결이 되지 않았기 때문이다. 이후에 네트워크 프로세서(111)는 컴패니언 장치로부터 연결 요청을 수신할 수 있다. 네트워크 프로세서(111)는 컴패니언 장치로부터 수신한 정보를 기초로 매칭되는 어플리케이션 프로세서(112)의 연결 요청을 검색할 수 있다. 네트워크 프로세서(111)는 매칭되는 연결 요청을 검색하면 컴패니언 장치와 어플리케이션 프로세서(112)를 연결할 수 있다.
일 실시 예로서, 어플리케이션 프로세서(112)는 어플리케이션 모듈, 어플리케이션 브라우저일 수 있다. 또는, HbbTV 어플리케이션일 수 있다. 일 실시 예로서, 네트워크 프로세서(111)는 네트워크 모듈로 구현될 수 있다. 또는, 네트워크 프로세서(111)는 웹소켓 서버(WebSocket Server)일 수 있다. 네트워크 프로세서(111)는 어플리케이션 프로세서(112)와 컴패니언 장치를 연결해 줄 수 있다. 일 실시 예로서, 네트워크 프로세서(111)가 웹소켓 서버로 구현되는 경우, 어플리케이션 프로세서(112)와 컴패니언 장치는 각각 하나의 클라이언트라고 볼 수 있다. 다시 말해서, 웹소켓 서버가 제1 클라이언트와 제2 클라이언트를 연결해 줄 수 있다. 또는, 제1 클라이언트와 제2 클라이언트를 각각 피어(peer)라고 부를 수도 있다. 경우에 따라, 웹소켓 서버는 전자 장치 외부에 별도의 장치로서 구현될 수도 있다.
한편, 어플리케이션 프로세서(112)는 하나의 어플리케이션을 구동시킬 수 있다. 그리고, 컴패니언 장치도 하나의 어플리케이션을 구동시킬 수 있다. 어플리케이션 프로세서(112)는 네트워크 프로세서(111)를 통해 컴패니언 장치와 연결할 수 있다. 컴패니언 장치는 어플리케이션 프로세서(112)로부터 데이터를 수신하여 어플리케이션 프로세서(112)가 구동 중인 어플리케이션을 수신하여 구동시킬 수 있다. 또는, 어플리케이션 프로세서(112)와 컴패니언 장치는 각각 어플리케이션을 구동시킬 수 있다. 어플리케이션 프로세서(112)는 컴패니언 장치와 연결하여 컴패니언 장치와 데이터를 송수신할 수 있다. 이 경우, 전자 장치(100)와 컴패니언 장치는 어플리케이션 간 통신을 수행한다고 말할 수 있다.
웹소켓 서버는 중계기로 이용되고 어플리케이션 간의 통신 채널을 생성할 수 있다. 생성된 통신 채널은 전자 장치(100)와 컴패니언 장치 간 통신을 가능하게 할 수 있다. 웹소켓 서버는 통신 채널을 생성하기 위해 통신을 하고자 하는 어플리케이션 네임 아이디(application name id)와 어플리케이션 오리진 아이디(application origin id)를 이용하여 같은 정보를 요청하는 어플리케이션끼리 채널을 연결해 줄 수 있다. 일 실시 예로서, 상술한 방법은 HbbTV 2.0에서 웹소켓 API를 수정하지 않고 어플리케이션(클라이언트)와 어플리케이션(클라이언트)을 연결할 수 있다.
본 명세서에서는 각 용어를 혼용하여 사용하도록 한다.
도 55는 일 실시 예에 따른 제1 클라이언트의 연결을 설명하는 도면이다.
도 55를 참조하면, 전자 장치(100a)와 컴패니언 장치(200a)가 도시되어 있다. 전자 장치(100a)는 어플리케이션 프로세서와 네트워크 프로세서를 포함할 수 있다. 일 실시 예로서, 어플리케이션 프로세서는 HbbTV 어플리케이션 또는 제1 클라이언트일 수 있고, 네트워크 프로세서는 HbbTV 웹소켓 서버일 수 있다. 컴패니언 장치(200a)는 컴패니언 장치 프로세서를 포함할 수 있다. 일 실시 예로서, 컴패니언 장치 프로세서는 컴패니언 어플리케이션 또는 제2 클라이언트일 수 있다. 클라이언트 간의 연결을 수행하기 위해 웹소켓 서버는 변경이 필요할 수 있다. 아래에서는 웹소켓 서버의 변경과 관련된 동작을 설명한다. 변경된 웹소켓 서버는 HbbTV 2.0 TV에서 구동될 수 있다.
일반적으로 웹소켓 클라이언트는 연결을 하고자하는 원격 호스트 및 웹소켓 연결 업그레이드 헤더와 함께 초기 GET 요청시 그 호스트에서 원하는 서비스를 위한 상대적 URI를 지정할 수 있다. 그러나, HbbTV의 경우, 통신 연결을 위한 피어(peer)(예, 컴패니언 장치)가 아직 웹소켓 서버와 컨택되지 않을 수 있다. 따라서, 클라이언트 간 연결을 위한 제1 클라이언트로부터의 연결 요청은 대상 피어의 연결 요청이 있을 때까지 활성을 유지할 필요가 있다.
이러한 필요성 때문에 업그레이드 웹소켓 프로토콜 GET 요청은 특정 사용을 정의한 두 가지 필드를 포함할 수 있다. URI 요청(Request-URI)은 일반 접두사 스트링의 기 설정된 포맷을 가질 수 있다. 이 필드는 대응되는 통신 피어들을 매칭하는데 사용될 수 있다. 호스트 요청 헤더(Host request-header) 필드는 웹소켓 서버에서 동작하는 TV 셋을 언급(매칭 URI 요청을 가진 임의의 피어와 통신이 설립되는 경우)하거나 특정 컴패니언 장치를 언급(지정된 장치 및 매칭 URI 요청과 통신이 설립되는 경우)할 수 있다. 즉, 어플리케이션 프로세서는 네트워크 프로세서에서 동작하는 전자 장치 정보 또는 컴패니언 장치 정보를 나타내는 호스트 요청 헤더 정보를 네트워크 프로세서로 보낼 수 있다.
URI 요청을 위한 포맷은 아래의 ABNF 문법에 따를 수 있다.
HbbTV-Request-URI = "/hbbtv/" org-id "." app-id
org-id = 8HEX
app-id = 4HEX
URI 요청에 대응하여 웹소켓 서버는 스트림 헤드를 생성해야 하는데, 이것은 클라이언트에 의해 업그레이드 GET 요청에서 지원되는 URI 요청과 관련된 하프(half) 오픈 연결을 의미할 수 있다. 웹소켓 서버는 웹소켓 프로토콜 핸드쉐이크(handshake) 응답에 즉시 응답하는 대신, 다른 피어(peer)가 나타나길 기다리면서 제1 클라이언트의 대기 상태를 유지시킬 수 있다. 웹소켓 서버가 종료하길 희망하는 경우, 서버는 504 게이트웨이 타임아웃 응답(504 Gateway Timeout response)으로 반응할 수 있다.
클라이언트 간 연결을 요청할 때, 클라이언트는 Sec-웹소켓 프로토콜 헤더를 사용하지 않을 수 있다. 서버는 클라이언트 간 연결을 위한 요청 내의 Sec-웹소켓 프로토콜 헤더를 무시할 수도 있다. 클라이언트 간 연결 요청 내의 호스트 헤더 필드는 서버가 어태치(attached)되는 로컬 서브 네트워크 상의 어떤 장치도 지정하지 않으면, 서버는 403 금지 응답(403 Forbidden response)으로 반응할 수 있다. 모든 HbbTV 2.0 웹소켓 클라이언트는 HbbTV 2.0 웹소켓 서버로부터 클라이언트 간 연결을 요청하는 메소드를 사용할 수 있다.
도 56은 일 실시 예에 따른 제2 클라이언트의 연결을 설명하는 도면이다.
도 56을 참조하면, 전자 장치(100a)와 컴패니언 장치(200a)가 도시되어 있다. 전자 장치(100a)는 어플리케이션 프로세서와 네트워크 프로세서를 포함할 수 있다. 네트워크 프로세서(예, 웹소켓 서버)는 HbbTV 어플리케이션 및 컴패니언 어플리케이션으로부터 연결 요청을 수신할 수 있다.
다른 클라이언트가 상술한 메소드를 이용하여 클라이언트 간 연결을 요청할 때, 서버는 도 3에서 보는 바와 같이 새로운 요청을 위한 스트림 헤드를 생성할 수 있다. 새로운 스트림 헤드가 생성된 후, 서버는 URI 요청 및 새로 생성된 스트림 헤드외 매칭되는 호스트 헤더 필드 값을 위해 현재 연결 대기 중인 스트림 헤드의 집합을 검색할 수 있다. 어떠한 매칭도 발견되지 않으면 서버는 새로 생성된 스트림 헤드를 연결을 위해 대기 중인 스트림 헤드의 집합에 추가하고, 추가적인 클라이언트 간 연결 요청을 기다릴 수 있다.
도 57는 일 실시 예에 따른 제1 및 제2 클라이언트 간의 연결을 설명하는 도면이다.
도 57를 참조하면, 전자 장치(100a)와 컴패니언 장치(200a)가 도시되어 있다. 전자 장치(100a)는 어플리케이션 프로세서와 네트워크 프로세서를 포함할 수 있다. 네트워크 프로세서(예, 웹소켓 서버)는 HbbTV 어플리케이션 및 컴패니언 어플리케이션을 연결할 수 있다.
새로 생성된 스트림 헤드가 현재 연결을 위해 대기하는 스트림 헤드의 집합 내의 스트림 헤드로서 동일한 호스트 헤더 필드 값 및 동일한 URI 요청(Request-URI)과 연관되어 있다면, 웹소켓 서버는 그 집합으로부터 매칭되는 스트림 헤드를 제거하고, 두 개의 스트림 헤드 사이의 양 방향 통신 채널을 설립할 수 있다.
두 개의 스트림 헤드가 연결되면, 서버는 즉시 하나의 스트림 헤드로부터 수신한 모든 데이터를 출력하고, 각각 다른 스트림 헤드로 변경하지 않는다. 이렇게 함으로써, 두 클라이언트 간의 투명한 통신 채널(a transparent communications channel)이 설립될 수 있다.
두 클라이언트 중 하나가 클로즈 프레임(Close frame)을 전송하면, 서버는 다른 클라이언트에게 대응되는 클로즈 프레임을 전송할 수 있다. 두 클라이언트 중 하나가 클로즈 프레임을 전송하지 않고 연결을 해제하면, 서버는 클로즈 프레임을 생성하고 다른 클라이언트에게 전송할 수 있다.
즉, 네트워크 프로세서는 어플리케이션 프로세서의 연결 요청이 있을 때, 어플리케이션 프로세서의 스트림 헤드를 생성하여 스트림 헤드 그룹에 포함시킬 수 있다. 그리고, 네트워크 프로세서는 컴패니언 장치로부터 연결 요청을 받으면, 컴패니언 장치의 스트림 헤드를 생성하여 매칭되는 스트림 헤드의 존재 여부를 검색할 수 있다. 매칭되는 스트림 헤드가 존재하면, 네트워크 프로세서는 스트림 헤드 그룹으로부터 매칭되는 어플리케이션 프로세서의 스트림 헤드와 컴패니언 장치의 스트림 헤드를 연결할 수 있다. 이때, 네트워크 프로세서는 매칭된 어플리케이션 프로세서의 스트림 헤드 또는 컴패니언 장치의 스트림 헤드를 스트림 헤드 그룹으로부터 제거할 수 있다.
도 58는 일 실시 예에 따른 추가 연결 요청을 설명하는 도면이다.
도 58를 참조하면, HbbTV 어플리케이션(클라이언트)은 컴패니언 장치(200a)의 컴패니언 어플리케이션(클라이언트)과 연결되어 있다. 그리고, HbbTV 어플리케이션은 다른 클라이언트를 위한 다른 스트림 헤드를 생성할 수 있다. HbbTV 어플리케이션은 다른 어플리케이션과 추가로 연결될 수 있다. 스트림 헤드는 클라이언트 간의 연결을 설립 전에 연결 가능한 스트림 헤드 집합에서 제거되기 때문에 클라이언트 간의 연결은 일대일로 될 수 있다. 만일 클라이언트가 하나 이상의 다른 클라이언트와 통신을 원하면, 클라이언트는 처리 가능한 클라이언트 간의 연결 최대 갯수에 다다를 때까지 추가 연결 요청을 서버로 보낼 수 있다.
웹소켓 서버는 연결을 위해 대기하는 스트림 헤드 집합 상에서 동일한 URI 요청과 호스트를 가진 동일한 클라이언트를 위한 하나 이상의 스트림 헤드를 허락하지 않는다. 클라이언트가 하나의 성공적인 연결이나 타임 아웃 전에 동일한 URI 요청 및 호스트를 가진 다른 클라이언트와의 연결 요청을 발행하면, 서버는 403 금지 응답(403 Forbidden response)으로 반응할 수 있다.
클라이언트는 연결될 대기 상태에서 몇 가지 서로 다른 URI 요청/호스트 조합의 클라이언트 간의 연결 요청을 가질 수 있다. 클라이언트는 하나가 성공적으로 연결되거나 타임 아웃되기 전에 동일한 URI 요청/호스트 조합을 가지고 다른 클라이언트와의 연결을 요청하는 시도를 할 수 없다.
다른 것과 함께 수행되고 표준 웹소켓 서버 기능들을 사용하며 그들 간의 간섭이 없도록 하기 위해 특정 장치간 동작으로서 URI 요청을 위한 /hbbtv/orgid.appid 스킴(scheme)이 사용될 수 있다. URI 요청 및 호스트 헤더 필드의 매칭은 두 가지 접근 방법을 허용할 수 있다. 첫째, 특정 장치(클라이언트)가 호스트 헤더에 의해 타겟되면, 클라이언트는 그 타켓된 특정 클라이언트와 대화를 희망할 수 있다. 그것은 다른 수단(예, UPnP의 파트로서 SSDP)을 통해 그것의 존재에 대해 인식될 수 있다. 둘째, 호스트 헤더 필드가 서버를 타켓으로 한다면, 동일한 서버를 타켓팅하는 모든 클라이언트에게 동일할 수 있다. 이것은 URI 요청만이 적절한 통신 피어를 선택하기 위한 차별적인 요소임을 나타낸다. 이렇게 호스트 헤더 필드에서 효과적으로 서버를 타켓팅하는 것은 동일한 URI 요청을 사용하고 서버를 타켓팅하는 다른 클라이언트와 매칭되는 와일드카드를 제공할 수 있다. 전용적이고 기회적인 연결 설립 전략이 가능할 수 있다.
HbbTV 2.0 웹소켓 서버는 어떤 인증, 허가 또는 확인 과정을 수행하지 않기 때문에 클라이언트 간 연결이나 클라이언트와 웹 소켓 서버간의 신뢰성이 없을 수 있다. 개인 정보 또는 웹소켓 서버를 통한 민감한 정보를 교환하려는 클라이언트는 통신 프라이버시를 보증할 끝단 암호를 수행할 수 있다. 클라이언트는 웹소켓 서버를 통해 통신을 수행할 피어의 신원이나 진위를 설립할 암호화 방식을 수행할 수 있다. HbbTV 2.0 웹소켓 서버는 연결된 인터넷을 통해 표시된 클라이언트와 연결을 설립하기 때문에 HbbTV 웹소켓 서버를 통해 다른 클라이언트에 대한 성공적인 서비스 거부 공격(denial-of-service attack)을 받지 않을 수 있다. 공격받는 클라이언트는 서버에게 다른 클라이언트로 연결하라는 요청을 중지할 수 있다.
서버는 아직 연결되지 않은 URI 연결/호스트 컴비네이션에 동시 연결 시도를 거절하는 것으로 정의했기 때문에 서비스 거부 공격은 서버 자체에 대해 시도될 수도 있다. 이것은 에러 응답이 생성되도록 동일한 연결 요청을 반복적으로 전송하거나 많은 오픈 스트림 헤드를 생성하여 서버의 리소스를 소비하기 위한 하나의 시도로서 랜덤 연결 요청을 전송함으로써 행해질 수 있다. 두 기술은 HTTP 서버에 대한 일반적인 전략이고, 웹소켓이나 HbbTV 사용의 특정한 것은 아니다. 어떤 웹소켓 서버 실행은 적절한 경감 구조를 가질 수 있다. (예, 응답 전송이나 스트림 헤드의 생성을 중지시킴으로써)
도 59은 일 실시 예에 따른 IP 어드레스가 없는 경우 클라이언트 간의 연결을 설명하는 도면이다.
도 59을 참조하면, 클러이언트 간 통신 연결을 수행하는 방법이 도시되어 있다. 상술한 웹소켓 기반 어플리케이션 간 통신 방법은 웹 소켓 서버가 URI의 경로(호스트 네임을 제외한 나머지 경로, 즉 path)가 같은 어플리케이션끼리 연결시켜 어플리케이션 간 통신을 가능하게 할 수 있다. 클라이언트 간 통신은 전자 장치에서 구동되는 어플리케이션(예, TV 어플리케이션)과 컴패니언 장치에서 구동되는 어플리케이션(CS 어플리케이션)을 구분하여 선택적으로 어플리케이션 간 통신을 수행할 수 있다.
일 실시 예로서, HbbTV에 있어서 URI 요청(Request-URI)은 IP 어드레스를 포함하지 않고 구성할 수 있다. URI의 경로(path)는 루트("/")뒤에 HbbTV를 알리는 예약어("hbbtv")로 시작하고, 그 뒤에 기관 또는 회사 구분자(org-id)와 앱 구분자(app-id)로 구성될 수 있다. 웹소켓 서버(네트워크 프로세서)는 웹소켓 API 콜의 URI 경로가 같은 어플리케이션끼리 연결시켜 줄 수 있다.
신택스) GET "/hbbtv/"org-id"."app-id
실시예) GET/hbbtv/org.mychannel.myapp
한편, 연결을 요청하는 각 클라이언트는 같은 포트(port)를 사용할 수 있고 다른 포트를 사용할 수 있다. 클라이언트들이 같은 포트를 사용하는 경우, 웹소켓 API를 호출하는 어플리케이션의 IP가 같은 경우, 웹소켓 서버는 호출하는 어플리케이션이 HbbTV 어플리케이션임을 알 수 있고, IP가 다른 경우 컴패니언 장치 어플리케이션임을 알 수 있다. 같은 포트를 사용하는 경우, 웹소켓 서버는 서버 실행과 테스트를 간소화할 수 있고, 디스커버리가 불필요한 장점이 있다. (With most WebSocket libraries, need to start a different instance per port. Single port drastically simplifies server implementation and test. No discovery needed if app-2-app server listens on well-defined port on the TV.)
다음으로 클라이언트들이 다른 포트를 사용하는 경우를 설명한다. 이 경우에는 TV에서 구동하는 어플리케이션과 컴패니언 장치에서 구동하는 어플리케이션이 같은 URI 경로를 사용하지만, 서로 다른 포트를 쓰는 경우를 의미한다. 일 실시 예로서, TV에서 구동하는 HbbTV 어플리케이션은 8900 포트를 사용하고, 컴패니언 장치에서 구동하는 어플리케이션은 8901 포트를 사용할 수 있다. 웹소켓 서버가 TV 어플리케이션/컴패니언 어플리케이션이 사용하는 포트를 알면 TV 어플리케이션/컴패니언 어플리케이션 간 통신, 컴패니언 어플리케이션/컴패니언 어플리케이션 간 통신을 구분할 수 있다. 다른 포트를 사용할 때, 서로 같은 호스트 요청-헤더를 사용하여 여러 개의 컴패니언 장치가 TV로 연결될 경우, 이를 구분하여 클라이언트 간을 용이하게 연결할 수 있다. TV와 컴패니언 장치 모두가 호스트 요청-헤더는 같지만 웹소켓 서버에 서로 다른 포트를 통해 접속하여 통신하기 때문에 어느 장치가 컴패니언 장치인지 TV인지 알 수 있다. 이에 따라, 보안 측면에서 보완할 수 있다.
도 60은 일 실시 예에 따른 어플리케이션 간의 연결을 위한 대기 연결을 설명하는 도면이다.
도 60을 참조하면, 전자 장치(100a)와 컴패니언 장치(200a)가 도시되어 있다. 전자 장치(100a)의 TV 어플리케이션은 웹 소켓 서버로 연결 요청을 전송할 수 있다. TV 어플리케이션은 전자 장치 내에 포함되어 있으므로 웹소켓 서버는 TV 어플리케이션을 로컬 어플리케이션으로 인식할 수 있다. 그리고, 컴패니언 어플리케이션은 전자 장치 외부에 존재하므로 웹소켓 서버는 컴패니언 어플리케이션을 원결 어플리케이션으로 인식할 수 있다. 일 실시 예로서, 어플리케이션은 연결 요청을 할 때 다음과 같은 메소드를 사용할 수 있다.
String getApp2AppLocalBaseURL()
Description Returns the base URL of the application to application communication service local end-point.
Arguments No arguments
String getApp2AppRemoteBaseURL()
Description Returns the base URL of the application to application communication service remote end-point.
Arguments No arguments
일 실시 예로서, 네트워크 프로세서는 W3C 웹소켓 API를 실행할 수 있고 최소 200개의 동시 웹소켓 연결을 지원할 수 있다.네트워크 프로세서는 웹소켓 프로토콜 사양의 서버 측에서 실행하는 두 가지 서비스 엔드 포인트를 제공할 수 있다. 로컬 엔드 포인트는 HbbTV 어플리케이션에 의해 네트워크 프로세서로의 연결을 위한 것이다. 원격 엔드 포인트는 다른 장치의 어플리케이션에 의해 홈 네트워크에 연결될 수 있고, 다른 HbbTV 장치에서 구동하는 원격 컴패니언 어플리케이션 또는 HbbTV 어플리케이션을 포함하기 위한 것이다. HbbTV 어플리케이션은 그들이 동작하는 네트워크 프로세서의 로컬 서비스 엔드 포인트나 동일한 홈 네트워크 상의 다른 하이브리드 터미널의 원격 서비스 엔드 포인트에 연결될 수 있다. 네트워크 프로세서는 홈 네트워크 내의 다른 장치의 로컬 서비스 엔드 포인트에 연결하지 않는 편이 낫다. 예를 들어, 네트워크 프로세서의 로컬 루프백 인터페이스의 로컬 서비스 엔드 포인트를 위치시킴으로써 이룰 수 있다. 다른 서비스 엔드 포인트가 웹소켓 프로토콜 사양의 서버 측을 실행하고 HbbTV 어플리케이션이나 컴패니언 어플리케이션이 그러한 서비스 엔드 포인트를 사용하면 하이브리드 터미널은 다른 서비스 엔드 포인트로서 동일한 호스트 및 포트 조합에서 서비스 엔드 포인트를 위치시키서는 안 된다.
어플리케이션 간 서비스 엔드 포인트를 위한 기본 URL은 웹소켓 URL일 수 있다. 웹소켓 URL은 호스트, 포트, 보안 및 서비스 엔드 포인트의 리소스 네임을 정의할 수 있다. 클라이언트는 서비스 엔드 포인트의 웹소켓 URL에 의해 명시된 호스트와 포트에 연결해야 한다. 클라이언트에 의해 최초 프로토콜 요청에서 사용되는 리소스 네임은 ABNF 문법에 따른다.
resource-name = base-url-resource-name app-endpoint
base-url-resource-name은 서비스 엔드 포인트의 웹소켓 URL으로부터 도출된 리소스 네임이다. app-endpoint는 어플리케이션 사양이다. 이것은 클라이언트로부터 대응되는 클라이언트의 연결 매칭 프로세스에 사용될 수 있다. 대응되는 클라이언트의 메시지는 웹 소켓 프로토콜을 통해 전달될 수 있다. app-endpoint는 충돌을 피하기 위해 어플리케이션 디벨로퍼에 의해 선택될 수 있다. 따라서 app-endpoint는 HbbTV 어플리케이션 또는 컴패니언 어플리케이션 및 그것의 디벨로퍼와 독특하게 연관된 리버스 DNS 표기로 형식화된 식별자로 시작할 수 있다. 하이브리드 터미널은 최소 1000 문자의 길이와 웹 소켓 프로토콜 사양에 의해 리소스 네임에서 허용된 어떤 문자를 포함하는 app-endpoint를 지원할 수 있다.
서비스 엔드 포인트는 클라이언트로부터 최소 10개의 동시 TCP 소켓 연결을 지원할 수 있다. 클라이언트가 서버와 TCP 소켓 연결을 오픈하기 위해 노력할 때, 서버는 서버가 동시 연결을 다룰 수 없으면 요청을 거절할 수 있다. 그렇지 않으면, 서버는 TCP 소켓 연결을 승인하고, TCP 소켓 연결을 웹소켓 프로토콜 핸드쉐이크를 시작할 수 있다. 서버는 클라이언트 요청 핸드쉐이크를 수신하지만 서버는 핸드쉐이크 응답으로 즉시 응답하지 않을 수 있다. 대신 서버는 연결이 페어링될 때까지 또는 클라이언트의 연결이 해제될 때까지 기다릴 수 있다. 이 상태에서 연결은 대기 연결을 구성할 수 있다. 서버가 타임 아웃을 실행하려는 경우, 서버는 504 게이트웨이 타임아웃 응답으로 반응할 수 있다.
서버는 클라이언트에 의해 전송된 요청 핸드쉐이크의 어떤 오리진(origin) 헤더를 무시할 수 있다. 클라이언트는 클라이언트 간의 연결을 요청할 때 Sec-웹소켓-프로토콜 헤더를 사용하지 않을 수 있다. 서버는 클라이언트 간의 연결을 위한 요청에서 Sec-웹소켓-프로토콜 헤더를 무시할 수 있다. 서버는 Sec-웹소켓-프로토콜 헤더를 사용하는 프로토콜 확장을 위한 클라이언트 요청을 승인하지 않을 수 있다. 클라이언트가 Sec-웹소켓 확장 헤더를 사용하면 서버는 웹소켓 프로토콜 사양에서 정의된 방식으로 연결하지 못할 수 있다.
도 60 에서 도시된 바와 같이, 클라이언트로 동작하는 HbbTV 어플리케이션이 "org.mychannel.myapp"의 app-endpoint와 /hbbtv/의 base-url-resource-name을 가지는 로컬 서비스 엔드 포인트와 연결을 시도할 수 있다. 컴패니언 장치와의 연결은 컴패니언 어플리케이션이 아직 동일한 app-endpoint를 사용하는 어플리케이션 간의 통신에 연결하지 못했기 때문에 대기 상태를 유지할 수 있다.
도 61은 일 실시 예에 따른 제2 클라이언트와 연결을 위한 새로운 연결 요청을 설명하는 도면이다.
도 61을 참조하면, HbbTV 어플리케이션(클라이언트)은 컴패니언 장치(200a)의 컴패니언 어플리케이션(클라이언트)과 연결되어 있다. 그리고, HbbTV 어플리케이션은 다른 클라이언트를 위한 다른 스트림 헤드를 생성할 수 있다.
서버는 동일한 app-endpoint를 가지는 동일한 본래 IP 어드레스로부터 하나 이상의 동시 대기 연결을 허락할 수 없다. 성공적으로 연결되거나 종료되기 전에 해당하는 IP 어드레스의 클라이언트가 동일한 app-endpoint를 사용하는 다른 연결 요청을 발행하면 서버는 403 금지 응답으로 반응할 수 있다.
클라이언트는 다른 리소스-네임 조합을 사용하는 동일한 서비스 엔드포인트를 통해 멀티플 동시 클라이언트 간의 연결을 설립하길 희망할 수 있다. 클라이언트는 존재하는 서비스 엔드포인트로의 연결 대기가 성공적으로 연결되거나 타임아웃되거나 연결 해제되기 전에 서비스 엔드포인트로 다른 연결의 요청을 시도할 수 없다. 이러한 클라이언트의 동작은 웹소켓 프로토콜 사양에 의해 정의될 수 있다.
도 8에 따르면, 만일 클라이언트가 하나 이상의 클라이언트와 통신하길 희망하면, 클라이언트는 존재하는 대기 연결이 페어링될 때가지 대기할 수 있다. 이때, 처리 가능한 클라이언트 간의 연결 최대 숫자에 다다를 때까지 추가 연결 요청을 서버로 발행될 수 있다. 즉, HbbTV 어플리케이션은 어플리케이션 간 통신의 설립을 허락하기 위한 새로운 대기 연결 요청을 생성할 수 있다.
한편, 클라이언트는 URI 경로에 IP 어드레스를 포함시킬 수도 있다.
도 62는 일 실시 예에 따른 IP 어드레스를 포함하는 경우 제1 클라이언트의 설정을 설명하는 도면이다.
일 실시 예로서, 상술한 URI 경로(path)는 루트("/") 뒤에 HbbTV를 알리는 예약어("hbbtb")로 시작하고, 그 뒤에 기관/회사 구분자(org-id)와 어플리케이션 구분자(app-id)로 구성될 수 있다. 어플리케이션 간의 통신을 수행하고자 하는 어플리케이션이 타겟 어플리케이션을 지정하기 위해 URI의 경로에 타겟 어플리케이션이 구동중인 장치의 IP 어드레스를 추가할 수 있다. 웹소켓 서버는 웹소켓 API 콜의 URI 경로가 같은 어플리케이션 중 서로 통신하고자 하는 IP에 따라 연결시켜 줄 수 있다.
신택스) GET "/hbbtv/" target IP "/" org-id "." app-id
실시예) GET /hbbtv/1.1.1.1/org.mychannel.myapp
일 실시 예로서, TV 어플리케이션 A가 IP 1.1.1.1에서 구동 중이고, 컴패니언 어플리케이션 B가 IP 1.1.1.2(제1 사용자 단말기), 컴패니언 어플리케이션 C가 IP 1.1.1.3(제2 사용자 단말기)에서 구동 중일 수 있다. 이때, TV 어플리케이션 A가 컴패니언 어플리케이션 C와 서로 통신하려고 할 수 있다. TV 어플리케이션 A는 WebSocket 요청에 포함되는 URI의 경로에 컴패니언 어플리케이션 C가 구동 중인 IP(1.1.1.3)를 포함시킬 수 있다. 그리고, 컴패니언 어플리케이션 C는 웹소켓 요청에 포함되는 URI의 경로에 TV 어플리케이션 A의 IP(1.1.1.1)을 포함시킬 수 있다.
도 62에 따르면, URI 경로는 hbbtv/192.0.2.7/org.mychannel.myapp HTTP/1/1과 같을 수 있다. 여기서 192.0.2.7은 타겟 어플리케이션의 IP 어드레스일 수 있다. 192.0.2.110은 자신의 IP 어드레스일 수 있다. 그리고, org.mychannel.myapp는 어플리케이션 ID일 수 있다.
도 63은 일 실시 예에 따른 IP 어드레스를 포함하는 경우 제1 및 제2 클라이언트의 설정을 설명하는 도면이다.
웹소켓 서버는 각각의 클라이언트로부터 도 62에서 설명한 URI 요청을 수신할 수 있다. 도 63을 참조하면, 192.0.2.110의 IP 어드레스를 가지는 제1 클라이언트와 192.0.2.7의 IP 어드레스를 가지는 제2 클라이언트가 있다. 제1 클라이언트가 제2 클라이언트로 연결을 요청하는 경우, 출발지(From Host)는 192.0.2.110이고, 도착지(To Host)는 192.0.2.7이 된다. 그리고, 어플리케이션 ID는 org.mychannel.myapp일 수 있다. 제2 클라이언트가 제1 클라이언트로 연결을 요청하는 경우, 출발지(From Host)는 192.0.2.7이고, 도착지(To Host)는 192.0.2.110이 된다. 그리고, 어플리케이션 ID는 org.mychannel.myapp일 수 있다. 즉, 제1 클라이언트와 제2 클라이언트의 출발지와 목적지 주소는 서로 반대될 수 있다. 그러나, 어플리케이션 ID는 동일하다. 웹소켓 서버는 매칭되는 클라이언트를 서로 연결시켜 줄 수 있다.
또한, 호스트 IP 어드레스를 포함하는 URI 경로가 사용될 수도 있다.
예를 들어, URI 경로는 Syntax) GET "/"hbbtv"/" host_address"/"org-id "." app-id,
실시예) GET /hbbtv/192.0.2.7/org.mychannel.myapp 와 같이 사용될 수 있다.
도 64은 IP 어드레스를 포함하는 경우 복수의 제2 클라이언트에 연결하는 일 실시 예를 설명하는 도면이다.
도 64을 참조하면, HbbTV는 일정한 IP 어드레스를 가지고, org.mychannel.myapp의 어플리케이션 ID를 포함하고 있다. 제1 컴패니언 어플리케이션 IP 어드레스는 192.0.2.7이고, 제2 컴패니언 어플리케이션 IP 어드레스는 192.0.2.1이다. 제1 및 제2 컴패니언 어플리케이션의 어플리케이션 ID는 org.mychannel.myapp이다. 도 63에서 설명한 바와 같이, 웹소켓 서버는 매칭되는 클라이언트를 서로 연결시켜 줄 수 있다. 따라서, 각 클라이언트들의 요청에 대응하여 웹소켓 서버는 매칭되는 클라이언트들을 서로 연결시켜 줄 수 있다.
이와 같이, URI 경로에 IP 어드레스를 사용하는 경우, 양 클라이언트는 연결 대상을 지정하기 때문에 보안성이 향상되고, 클라이언트 간 연결이 가능하며, 별도의 노력없이 모든 정보의 매칭이 가능하다는 장점이 있다. 한편, URI 경로에 IP 어드레스를 사용하는 경우에도 각 클라이언트는 동일한 포트를 사용할 수 있고, 서로 다른 포트를 사용할 수도 있다.
도 65는 일 실시 예에 따른 전자 장치의 제어 방법의 흐름도이다.
도 65에 따르면, 전자 장치는 컴패니언 장치와 연결할 수 있다(S1210). 전자 장치는 네트워크 프로세서와 어플리케이션 프로세서를 포함할 수 있다. 전자 장치는 어플리케이션 프로세서가 네트워크 프로세서로 컴패니언 장치와의 연결을 요청할 수 있다. 네트워크 프로세서는 컴패니언 장치로부터 연결 요청을 받으면, 연결 요청한 어플리케이션 프로세서와 컴패니언 장치를 연결할 수 있다.
상술한 바와 같이, 어플리케이션 프로세서는 어플리케이션 모듈, 어플리케이션 브라우저일 수 있다. 또는, HbbTV 어플리케이션일 수 있다. 네트워크 프로세서는 네트워크 모듈로 구현될 수 있다. 또는, 네트워크 프로세서는 웹소켓 서버(WebSocket Server)일 수 있다. 네트워크 프로세서가 웹소켓 서버로 구현되는 경우, 어플리케이션 프로세서와 컴패니언 장치는 각각 하나의 클라이언트라고 볼 수 있다. 또는, 제1 클라이언트와 제2 클라이언트를 각각 피어(peer)라고 부를 수도 있다.
어플리케이션 프로세서는 네트워크 프로세서에서 동작하는 전자 장치 정보 또는 컴패니언 장치 정보를 나타내는 호스트 요청 헤더 정보를 네트워크 프로세서로 전송할 수 있다. 그리고, 네트워크 프로세서는 어플리케이션 프로세서의 연결 요청이 있을 때, 어플리케이션 프로세서의 스트림 헤드를 생성하여 스트림 헤드 그룹에 포함시킬 수 있다. 네트워크 프로세서는 컴패니언 장치로부터 연결 요청을 받으면, 컴패니언 장치의 스트림 헤드를 생성하여 스트림 헤드 그룹으로부터 매칭되는 어플리케이션 프로세서의 스트림 헤드와 연결할 수 있다. 이때, 네트워크 프로세서는 매칭된 어플리케이션 프로세서의 스트림 헤드 또는 컴패니언 장치의 스트림 헤드를 스트림 헤드 그룹으로부터 제거할 수 있다. 한편, 어플리케이션 프로세서는 연결하려는 컴패니언 장치의 IP 어드레스를 전송할 수 있으며, 각각의 어플리케이션들은 동일한 포트를 이용할 수 있다.
전자 장치는 컴패니언 장치와 데이터를 송수신할 수 있다(S1220). 이와 같은 과정을 통해, 전자 장치는 컴패니언 장치와 연결하여 통신을 수행할 수 있다.
본 명세서에 따른 전자 장치 및 제어 방법은 상술한 실시 예들의 구성과 방법으로 한정되어 적용되는 것이 아니라, 각 실시 예들의 전부 또는 일부가 선택적으로 조합되어 다양한 변형이 이루어질 수 있다.
도 66는 본 발명의 일 실시예에 따른 메인 피지컬 디바이스 (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 를 포함할 수 있다.
본 발명의 일 실시예에 따른 컴페니언 피지컬 디바이스를 구성하는 구성 요소들 중에 메인 디바이스를 구성하는 구성 요소와 동일한 명칭의 구성요소는 전술한 메인 디바이스를 구성하는 구성 요소와 동일한 기능을 할 수 있다.
도 67은 본 발명의 일 실시예에 따른 하이브리드 방송 서비스를 지원하기 위한 프로토콜 스택을 나타낸 도면이다.
Physical layer는 지상파 방송 신호를 수신하고 이를 적절한 형태로 변환할 수 있다.
IP (Internet Protocol) Encapsulation은 Physical layer로부터 획득된 정보를 이용하여 IP 데이터그램을 획득할 수 있다. 또한, 획득된 IP 데이터그램을 특정 프레임 (예를 들어, RS Frame, GSE 등)으로 변환할 수 있다.
MPEG-2 TS Encapsulation은 Physical layer로부터 획득된 정보를 이용하여 MPEG-2 TS을 획득할 수 있다. 또한, 획득된 MPEG-2 TS 데이터그램을 특정 프레임 (예를 들어, RS Frame, GSE 등)으로 변환할 수 있다.
FIC (fast information channel)는 서비스 및/또는 컨텐츠에 접근할 수 있도록 하기 위한 정보 (예를 들어, 서비스 ID와 프레임 간의 매핑 정보 등)를 전달할 수 있다.
Signaling은 서비스 및/또는 컨텐츠의 효과적인 획득을 지원하기 위한 시그널링 정보를 포함할 수 있다. 시그널링 정보는 바이너리 및/또는 XML 형태로 표현될 수 있고 지상파 방송망 및/또는 broadband를 통하여 전송될 수 있다.
실시간 방송 A/V (Audio/Video) 컨텐츠 및 Data는 ISO Base Media File Format (ISOBMFF) 등으로 표현 될 수 있고 지상파 방송망 및/또는 브로드밴드를 통하여 실시간으로 전송될 수 있다. 비실시간 컨테츠는 IP/UDP/FLUTE를 기반으로 전송될 수 있다. 그리고, 실시간 방송 A/V (Audio/Video) 컨텐츠, Data 및/또는 시그널링 정보는 DASH 등을 이용하여 인터넷망을 통해 실시간으로 전송될 수 있다. 이 때, 실시간 방송 A/V (Audio/Video) 컨텐츠, Data 및/또는 시그널링 정보는 요청에 의해 전송될 수 있고, 아니면 실시간 스트리밍에 의해 전송될 수 있다.
본 발명의 일 실시예는 상술한 프로토콜 스택을 거쳐 전달받은 데이터를 조합하여 Interactive 서비스, second screen 서비스 등의 다양한 enhanced service를 시청자에게 제공할 수 있다.
도 68 은 본 발명의 일 실시예에 따른 UPnP 방식의 액션(Action) 메커니즘을 도시한 도면이다.
먼저, 본 발명에서의 기기간 커뮤니케이션에 대하여 설명한다.
기기간 커뮤니케이션이란, 기기간에 메시지/명령(command)/콜(call)/액션(action)/요청(request)/응답(response) 를 교환하는 것을 의미할 수 있다.
기기간에 메시지를 원하는 대상 기기에 안정적으로 전달하기 위하여, IP (Internet Protocol) 뿐 아니라 ICMP (Internet Control Message Protocol), IGMP (Internet Group Management Protocol) 등의 다양한 프로토콜이 적용될 수 있다. 이 때, 본 발명은 특정 프로토콜에 국한되지 아니한다.
기기간 커뮤니케이션에 사용되는 메시지에 다양한 정보를 담기 위하여, HTTP (Hypertext Transfer Protocol), RTP (Real-time Transport Protocol), XMPP (Extensible Messaging and Presence Protocol), FTP (File Transfer Protocol) 등의 다양한 프로토콜이 적용될 수 있다. 이 때, 본 발명은 특정 프로토콜에 국한되지 아니한다.
기기간 커뮤니케이션에 사용되는 메시지를 전달할 때, 각 프로토콜이 정의하는 메시지 헤더/메시지 바디 등의 다양한 컴포넌트가 활용될 수 있다. 즉, 각 메시지 컴포넌트에 데이터가 저장되어 전달될 수 있으며, 특정 메시지 컴포넌트에 국한되지 아니한다. 또한, 메시지에 의해 전달되는 데이터는 각 프로토콜이 정의하는 다양한 타입(string, integer, floating point, boolean, character, array, list 등) 으로 전달될 수 있다. 복잡한 내용의 데이터를 구조적으로 표현/전달/저장하기 위해 XML (Extensible Markup Language), HTML (Hypertext Markup Language), XHTML (Extensible Hypertext Markup Language), JSON (JavaScript Object Notation) 등의 마크업(Markup) 방식 혹은 텍스트, 이미지 포맷 등이 적용될 수 있다. 이 때, 본 발명은 특정 방식에 국한되지 아니한다.
또한, 기기간 기기간 커뮤니케이션에 사용되는 메시지는 데이터를 압축하여 전달할 수 있는데, 본 발명은 특정 방식의 압축기술을 적용하는 것에 국한되지 아니한다.
전술한 본 발명에서의 기기간 커뮤니케이션에 대한 설명 중, 한가지 방식인 UPnP 방식에 대하여 설명한다. UPnP 방식은 전술한 기기간 커뮤네케이션에 관한 설명 중에서, IP-TCP/UDP-HTTP의 프로토콜이 조합된 경우에 해당할 수 있다.
도시된 본 발명의 일 실시예에 따른 UPnP 방식의 액션(Action) 메커니즘이란, UPnP 컨트롤 포인트와 UPnP 디바이스 간의 커뮤니케이션 매커니즘을 의미할 수 있다. 여기서 UPnP 컨트롤 포인트(t87010) 은 HTTP 클라이언트일 수 있고, UPnP 디바이스(t87020) 은 HTTP 서버일 수 있다. UPnP 컨트롤 포인트(t87010) 는 액션이라 불리우는 일종의 메시지를, UPnP 디바이스(t87020) 에 전달하여, UPnP 디바이스(t87020) 가 특정한 동작을 수행하도록 할 수 있다.
여기서, UPnP 컨트롤 포인트(t87010) 과 UPnP 디바이스(t87020) 은 페어링되어 있을 수 있다. 페어링은 각 디바이스들 간에 디스커버리 및 디스크립션 전달과정을 통해 수행될 수 있다. UPnP 컨트롤 포인트는 페어링 과정을 통해 컨트롤 URL 을 획득할 수 있다.
UPnP 컨트롤 포인트(t87010) 는 각 액션을 XML 의 형태로 표시할 수 있다. UPnP 컨트롤 포인트(t87010) 는 HTTP 에서 정의한 POST 메쏘드(t87030) 를 이용하여, 획득한 컨트롤 URL로 전달할 수 있다. 각 액션은 일종의 메시지로 실제 전달하고자 하는 데이터일 수 있으며, 이는 HTTP POST 메시지 바디에 XML 형태로 전달될 수 있다. 여기서, 각 액션은 이름(Name) 과, 아규먼트(arguments), 관련 데이터 들을 포함할 수 있다. HTTP POST 메시지 바디는, 각 액션의 이름 및/또는 아규먼트를 전달할 수 있다.
이 때, 각 액션은 같은 컨트롤 URL 로 전달될 수 있다. UPnP 디바이스(t87020) 는 전달받은 액션을 XML 파서(parser) 를 이용하여 파싱을 수행할 수 있다. UPnP 디바이스(t87020) 는 파싱한 각 액션에 따라 해당 동작을 수행할 수 있다.
UPnP 프로토콜의 경우, 각 액션이 이름(Name)에 의해 정의되어 사용될 수 있다. 또한, HTTP POST 메시지 바디에 액션 이름(Name) 도 함께 전달되기 때문에, 대상 기기에 대한 URL이 하나만 존재하고, HTTP POST 메쏘드 역시 하나만 사용되어도, 무한한 종류의 액션의 교환이 가능할 수 있다.
도 69 은 본 발명의 일 실시예에 따른 REST 메커니즘을 도시한 도면이다.
전술한 본 발명에서의 기기간 커뮤니케이션에 대한 설명 중, 한가지 방식인 REST 방식에 대하여 설명한다.
도시된 본 발명의 일 실시예에 따른 REST 메커니즘이란, REST 클라이언트(t88010) 과 REST 서버(t88020) 간의 커뮤니케이션 매커니즘을 의미할 수 있다. 여기서 REST 클라이언트(t88010) 은 HTTP 클라이언트일 수 있고, REST 서버(t88020) 은 HTTP 서버일 수 있다. 전술한 것과 마찬가지로, REST 클라이언트는 액션이라 불리우는 일종의 메시지를, REST 서버(t88020) 에 전달하여, REST 서버(t88020) 가 특정한 동작을 수행하도록 할 수 있다.
본 실시예에서, REST 클라이언트(t88010) 는 각 액션을 URI 를 통하여 REST 서버(t88020) 에 전달할 수 있다. 각 액션에는 액션 이름(Name) 이 필수적이지 않을 수 있다. 각 액션은 아규먼트들과 데이터만을 포함할 수 있다.
여기서, HTTP 메쏘드 중 POST 뿐 만 아니라, GET, HEAD, PUT, DELETE, TRACE, OPTIONS, CONNECT, PATCH 등의 여러 메쏘드가 활용될 수 있다. 또한, 커뮤니케이션을 행할 대상 기기에 접근할 URI 가 복수개가 정의될 수 있다. 이러한 특징들로 인하여, 액션 이름의 정의없이도 액션이 전달될 수 있다. 이러한 REST 방식에 필요한 복수의 URI 값은 디스커버리 혹은 디스크립션 전달 과정에서 획득될 수 있다.
전달이 필요한 데이터 또는 아규먼트들이, 해당 URI 에 부가되어(appended) 전달될 수 있고, 또는 HTTP 바디에 다양한 형태(XML, JSON, HTML, TEXT, IMAGE,…..)로 포함되어 전달될 수 있다.
REST 서버(t88020) 는 전달받은 액션에 따라 특정 동작을 수행할 수 있다.
전술한 기기간 커뮤니케이션은 일 실시예일 뿐이며, 본 발명에서 제안하는 모든 내용은 UPnP 방식 등에 국한되지 아니한다.
도 70 은 본 발명의 일 실시예에 따른, 방송 수신기와 컴패니언 디바이스들이 ESG 를 교환하기 위한 서비스를 도시한 도면이다.
ESG (Electronic Service Guide) 는 특정 세션 내의 서비스 가이드 전달 디스크립터들(Service Guide Delivery Descriptors) 등을 통해 전달될 수 있는 채널 내지 정보의 일종으로서, 유저들에게 방송, 라디오 또는 다른 미디어 어플리케이션에 대한 서비스 가이드를 제공할 수 있다. ESG 는 서비스들의 스케쥴링이나 프로그램 관련 정보들을 메뉴 형식등을 통해 사용자에게 제공할 수 있다. ESG 는 방송 채널 또는 인터넷 채널(브로드밴드)를 통해 제공될 수 있다.
유저들은 ESG 를 통해 서비스 제공 스케쥴, 현재 가용한 서비스들의 엔트리 포인트의 발견, 선호도에 따른 서비스 필터링 등의 동작을 수행할 수 있다. 컨텐츠 프로바이더들은 ESG 를 통해 어떠한 서비스 및/또는 컨텐츠가 가용한 상태(available)인지에 관한 정보, 구매/구독 관련 정보, 서비스 접근 정보 등을 표현할 수 있다. ESG 는 서비스 가이드(Service Guide) 또는 EPG(Electronic Program Guide) 등으로 불릴 수도 있다.
종래에는 사용자가 방송 수신기에서 방송 프로그램을 시청하는 중에 ESG 등의 서비스 가이드를 실행시키면, ESG 가 시청중인 방송 프로그램을 가려서 불편함이 초래되었다.
본 발명은 ESG 등의 서비스 가이드들을 컴패니언 디바이스에서 실행하여, 현재 시청중인 방송 프로그램의 시청을 방해함이 없이 ESG 정보에 접근하는 방안을 제안한다. 이 경우 사용자는 방송 프로그램 시청에 불편을 느끼지 않는 상태에서 ESG 에 접근할 수 있다. 또한, 사용자는 ESG 탐색에 있어 개인의 컴패니언 디바이스를 이용함으로써, 사생활이 보호받을 수 있다. 또한, 일반적으로 편의성이 떨어지는 방송 수신기의 UI 대신 컴패니언 디바이스의 UI 를 통해 ESG 를 탐색함으로서 편의성이 증대될 수 있다.
*714본 발명은 지상파 방송망과 인터넷망 연동 기반의 차세대 하이브리드 방송 환경에서, 방송 수신기에서 컴패니언 디바이스로 ESG 정보를 전달하는 프로토콜을 정의함으로써, 전술한 문제점을 해결할 수 있다. 또한, 본 발명은 컴패니언 디바이스에서 제공된 ESG 를 통해 사용자가 새로운 서비스를 선택한 경우, 컴패니언 디바이스에서의 채널 정보 전달을 통해 방송 수신기의 서비스가 변경될 수 있도록 하는 프로토콜을 제안한다.
본 발명의 실시예들은 UPnP 기반으로 설명되어 있으나, 이는 설명의 편의를 위함일 뿐이며, 방송 수신기와 컴패니언 디바이스 간의 통신을 위한 프로토콜은 이에 한정되지 아니한다. 또한, 본 발명의 실시예들은 XML 기반 ESG 를 예로 들어 설명하고 있으나, 이는 설명의 편의를 위함일 뿐이며, ESG 를 구성하는 포캣은 이에 한정되지 아니한다.
도시된 ESG 를 교환하기 위한 서비스의 일 실시예는, ESG 서비스라 불릴 수 있다.
ESG 서비스는 방송 수신기와 컴패니언 디바이스 간의 ESG 를 서로 교환하기 위한 서비스일 수 있다. 실시예에 따라, ESG 서비스의 서비스 타입은 atsc3.0ESG-1, 서비스 ID 는 urn:atsc.org:serviceId:atsc3.0ESG 등으로 정의될 수 있다.
ESG 서비스를 위해 각 디바이스 간의 호환성이 필요할 수 있다. 실시예에 따라 UPnP 디바이스 타입이 정의될 수 있다. 방송 수신기는 urn:atsc.org:device:atsc3.0rcvr 의 디바이스 타입을 가지며 UPnP Controlled Device 로서, 동작할 수 있다. 컴패니언 디바이스는 UPnP Control Point 로서 동작할 수 있다.
*719ESG 서비스를 위한 상태변수(state variable), 액션(action) 등에 대해서는 후술한다.
도 71 는 본 발명의 일 실시예에 따른 ESGData 상태변수를 도시한 도면이다.
전술한 ESG 서비스를 위하여 ESGData 라는 상태변수가 정의될 수 있다. ESGData 상태변수는 ESG 자체를 나타내는 상태변수일 수 있다. ESGData 상태변수는 방송/인터넷 망을 통해 수신한 ESG 의 ESG 데이터를 저장할 수 있다. 도시된 ESGData 는 XML 포맷으로 작성되었다.
ESGData 상태변수는 ESG 를 표현하는 ESG 데이터 들, 즉 ESG 내 엘레멘트(element) 들과 성질(attribute), 서브 엘레멘트(sub element) 들을 저장할 수 있다.
ESGData 상태변수 내의 Service 엘레멘트(t54010)은, ESG 를 구성하는 내용 중 ESG 가 나타내는 서비스에 관련된 정보를 가지는 엘레멘트일 수 있다. 이 엘레멘트의 하위 정보로서, 서비스의 ID 를 나타내는 Service@id, 서비스의 버전을 나타내는 Service@version, 서비스의 이름을 나타내는 Service.Name, 서비스에 대한 설명인 Service.Description 및/또는 서비스의 타입을 나타내는 Service.ServiceType 등의 정보들이 있을 수 있다. 여기서, A.B 는 A 엘레멘트의 하위 엘레멘트인 B 엘레멘트를 의미하고, A@a 는 A 엘레멘트의 하위 성질(attribute)인 @a 를 의미할 수 있다.
여기서, 서비스의 하위 엘레멘트인 Service.ServiceType, 즉 ServiceType 엘레멘트는 해당 서비스가 나타내고 있는 서비스의 타입을 나타낼 수 있다. 실시예에 따라, 0 은 미지정(unspecified), 1 은 Basic TV, 2 는 Basic Radio, ... , 14 는 리니어 서비스(linear service), 15 는 앱 베이스드 서비스(app based service), 16 은 컴패니언 스크린 서비스(companion screen service) 등을 의미할 수 있다. 이 엘레멘트가 지시하는 값은 실시예에 따라 달라질 수 있다.
ESGData 상태변수 내의 Schedule 엘레멘트(t54020)은, ESG 를 구성하는 내용 중 ESG 가 나타내는 서비스/프로그램 들의 스케쥴 정보를 가지는 엘레멘트일 수 있다. 이 엘레멘트의 하위 정보로서, 스케쥴의 ID 를 나타내는 Schedule@id, 스케쥴의 버전을 나타내는 Schedule@version 등의 정보들이 포함될 수 있다. 또한, 이 엘레멘트의 하위 정보로서, 스케쥴과 관련된 서비스를 나타내는 Scheudle.ServiceReference, 스케쥴과 관련된 인터랙티비티 데이터를 나타내는 Scheudle.InteractivityDataReference, 스케쥴과 관련된 컨텐츠를 나타내는 Scheudle.ContentReference 등의 정보들이 포함될 수 있다.
ESGData 상태변수 내의 Content 엘레멘트(t54030)은, ESG 를 구성하는 내용 중 ESG 가 나타내는 컨텐츠 정보를 가지는 엘레멘트일 수 있다. 이 엘레멘트의 하위 정보로서, 컨텐츠의 ID 를 나타내는 Content@id, 컨텐츠의 버전을 나타내는 Content@version, 컨텐츠의 이름을 나타내는 Content.Name, 컨텐츠에 대한 설명인 Content.Description, 컨텐츠의 재생 시작시각을 나타내는 Content.StartTimie, 및/또는 컨텐츠의 재생 종료시각을 나타내는 Content.EndTime 등의 정보들이 있을 수 있다. 또한, Content 엘레멘트의 하위 엘레멘트인 ComponentReference 는 해당 컨텐츠와 관련된 해당 컨텐츠의 컴포넌트를 레퍼런싱하는 정보를 포함할 수 있다. 이를 통해, 관련있는 컴포넌트가 파악될 수 있으며, ESG 내의 해당 컴포넌트 관련 정보들이 참조될 수 있다.
ESGData 상태변수 내의 Component 엘레멘트(t54040)은, ESG 를 구성하는 내용 중 ESG 가 나타내는 컨텐츠의 컴포넌트 정보를 가지는 엘레멘트일 수 있다. 이 엘레멘트의 하위 정보로서, 컴포넌트의 ID 를 나타내는 Component@id, 컴포넌트의 버전을 나타내는 Component@version 등의 정보가 포함될 수 있다. 또한 이 엘레멘트의 하위 정보로서, 컴포넌트의 언어를 나타내는 Language, 컴포넌트의 길이를 나타내는 Length, 컴포넌트의 레이팅을 나타내는 ParentalRating, 컴포넌트의 타입을 나타내는 ComponentType, 컴포넌트의 역할을 나타내는 ComponentRole, 컴포넌트가 타겟하는 디바이스를 나타내는 TargetDevice 엘레멘트 등의 정보가 포함될 수 있다. 또한, 컴포넌트가 재생가능한 비디오, 오디오, 클로즈드 캡션, 앱인지에 따라 각각 PresentableVideoComponent, PresentableAudioComponent, PresentableCCComponent, PresentableAppComponent 등의 정보들이 본 엘레멘트에 포함될 수 있다.
ESGData 상태변수는 실시예에 따라 이벤팅 방식, 또는 액션 방식에 의해 컴패니언 디바이스로 전달될 수 있다.
전술한 엘레멘트, 성질 등은 ESGData 의 일 실시예일 뿐이며, ESG 의 구성, 포맷 등에 따라 ESGData 내의 엘레멘트/성질 등이 더 추가되거나 변경, 삭제될 수도 있다.
도 72 는 본 발명의 다른 실시예에 따른 ESGData 상태변수를 도시한 도면이다.
도시된 ESGData 상태변수는 전술한 ESGData 상태변수와 유사하나, Component 엘레멘트가 Content 엘레멘트의 하위 엘레멘트로 포함되었다는 점이 다르다.
복수개의 컴포넌트들이 조합되어 하나의 컨텐트를 구성하므로, Component 엘레멘트가 Content 엘레멘트의 하위 엘레멘트로 포함될 수 있다. 또한, 각 컴포넌트들이 지원되는 디바이스들의 능력(capability) 를 하위 엘레멘트인 DeviceCapability 로 정의하여, 컴포넌트 엘레멘트의 하위 엘레멘트로 포함시킬 수 있다.
도 73 는 본 발명의 일 실시예에 따른 ESGData 상태변수를 이벤트 방식에 따라 컴패니언 디바이스에 전달하는 과정을 도시한 도면이다.
먼저 도시된 CD(Companion Device) 는 컴패니언 디바이스, PD(Primary Device) 는 수신기 내지 방송 수신기를 의미할 수 있다. 본 실시예에서, 두 디바이스는 페어링이 이미 수행되었다고 가정한다. 또한 컴패니언 디바이스는 전술한 ESG 서비스에 섭스크라이빙(subscribing) 한 상태라고 가정한다. 이 초기 상태(t56010)에서 ESGData 상태변수는 아무런 값을 가지지 않을 수 있다.
서비스/컨텐츠 프로바이더는 ESG 를 방송망 또는 브로드밴드 채널을 통해 전송할 수 있다(t56020). ESG 는 수신기의 수신 유닛 또는 네트워크 인터페이스를 통해 수신될 수 있다. 여기서 수신 유닛은 전술한 브로드캐스트 인터페이스 내지 튜너일 수 있다.
수신기는 수신한 ESG 를 시그널링할 수 있다(t56030). ESG 데이터는 ESGData 상태 변수에 저장될 수 있다(t56040).
이벤팅(Eventing)을 통해 ESGData 가 컴패니언 디바이스로 전달될 수 있다(t56050). ESGData 상태변수를 전달받은 컴패니언 디바이스는 이를 파싱한 후(t56060), 파싱된 값에 따라 ESG 가 UI 를 통해 컴패니언 디바이스에 노출될 수 있다(t56070). 이 때, 사용자에게 ESG 를 보여주기 위해 컴패니언 디바이스의 네이티브 레벨에서 UI 를 표현해주거나, 컴패니언 디바이스의 어플리케이션에서 표현해줄 수도 있다.
컴패니언 디바이스에서 ESG 가 표현되는 방식에는 다양한 실시예가 존재할 수 있다. 실시예에 따라, ESG 가 수신되면 컴패니언 디바이스는 어떠한 형태로든지 사용자에게 ESG 를 바로 노출할 수 있다. 다른 실시예에 따라, ESG 가 수신되면 컴패니언 디바이스는 사용자에게 알림(notification) 메시지를 보내고 사용자가 실행한 경우에 ESG 를 노출할 수 있다. 또 다른 실시예에 따라, ESG 가 수신되면 컴패니언 디바이스는 백그라운드에서 ESG 정보를 가지고 있다가, 사용자가 직접 원하는 때에 ESG 를 볼 수 있는 어플리케이션을 실행하면, 그 때서야 ESG 를 사용자에게 노출할 수도 있다.
도 74 는 본 발명의 일 실시예에 따른 LastChangedESGData 상태변수를 도시한 도면이다.
전술한 ESG 서비스를 위하여 LastChangedESGData 라는 상태변수가 정의될 수 있다. 전술한 바와 같이 ESG 전체가 컴패니언 디바이스로 전달되는 경우에는, ESG 데이터의 일부만이 변경된 경우에도 모든 ESG 데이터가 전달되어 비효율적일 수 있다. 이를 위해 변경된 ESG 데이터만을 저장하는 상태변수 LastChangedESGData 가 정의될 수 있다. LastChangedESGData 상태변수는 이전의 ESG 에 비하여 새로이 수신된 ESG 에서 추가/변경/삭제된 ESG 데이터만을 저장할 수 있다.
LastChangedESGData 상태변수는 Addition 엘레멘트를 포함할 수 있다(t57010). 이 엘레멘트는 기존에 가지고 있던 ESG 데이터에 비하여, 새로 수신된 ESG 에 추가된 ESG 데이터를 저장할 수 있다. 이 엘레멘트의 서브 엘레멘트로서, 새로이 추가된 ESG 데이터들, 즉 엘레멘트/성질들이 저장될 수 있다. 예를 들어, 기존 대비 새로운 서비스 ID 를 가진 새로운 서비스에 관련된 ESG 데이터가, 새로 수신한 ESG 에 추가되었을 경우, 이 새로운 서비스에 관련된 엘레멘트/성질들은 Addition 엘레멘트 하위 트리(tree) 에 포함될 수 있다. 도시된 실시예에서, "atsc.org/esg/service/3 의 ID 를 가지는 서비스가 새로 추가되었는 바, Addition 엘레멘트에 해당 서비스의 Service 엘레멘트가 포함되었음을 알 수 있다. 또한, "atsc.org/esg/service/4 의 ID 를 가지고, ABC 라는 이름을 가지는 서비스가 새로 추가되었는 바, Addition 엘레멘트에 해당 서비스의 Service 엘레멘트가 포함되었음을 알 수 있다. 이 외에도, Service, Content, Schedule 등의 정보들이 이 엘레멘트에 포함 될 수 있다.
LastChangedESGData 상태변수는 Modification 엘레멘트를 포함할 수 있다(t57020). 이 엘레멘트는 기존에 가지고 있던 ESG 데이터에 비하여, 새로 수신된 ESG 에서 변경이 된 ESG 데이터를 저장할 수 있다. 이 엘레멘트의 서브 엘레멘트로서, 변경된 ESG 데이터들, 즉 엘레멘트/성질들이 저장될 수 있다. 예를 들어, "atsc.org/esg/schedule/3" 의 ID 를 가지는 스케쥴의 하위 정보 중 어느 하나가 변경된 경우, 해당 스케쥴의 Schedule 엘레멘트가 Modification 엘레멘트에 저장될 수 잇다. 이 외에도, Service, Content, Schedule 등의 정보들이 이 엘레멘트에 포함 될 수 있다.
LastChangedESGData 상태변수는 Deletion 엘레멘트를 포함할 수 있다(t57030). 이 엘레멘트는 기존에 가지고 있던 ESG 데이터에 비하여, 새로 수신된 ESG 에서 삭제된 ESG 데이터를 저장할 수 있다. 이 엘레멘트의 서브 엘레멘트로서, 삭제된 ESG 데이터들, 즉 엘레멘트/성질들이 저장될 수 있다. 예를 들어, "atsc.org/esg/content/1", "atsc.org/esg/content/2" 의 ID 를 가지는 컨텐트 엘레멘트가 새로 수신된 ESG 에서 삭제되었다면, 해당 컨텐트의 Content 엘레멘트가 Deletioin 엘레멘트에 저장될 수 있다. 이 외에도, Service, Content, Schedule 등의 정보들이 이 엘레멘트에 포함 될 수 있다.
LastChangedESGData 상태변수는 실시예에 따라 이벤팅 방식, 또는 액션 방식에 의해 컴패니언 디바이스로 전달될 수 있다. 이벤팅 방식에 의해 전달되는 경우, 본 상태변수의 값에 변화가 있는 경우에 본 상태변수가 컴패니언 디바이스로 전달될 수 있다. 액션 방식에 의해 전달되는 경우, 본 상태변수 값에 대한 요청이 들어온 시점에서 가장 최근의 ESG 데이터의 변경사항에 대해 LastChangedESGData 상태변수를 구성하여 컴패니언 디바이스로 전달될 수 있다.
컴패니언 디바이스는 전달받은 LastChangedESGData 상태변수를 참조하여, 기 저장하고 있던 ESG 에 비하여 변경된 ESG 데이터들만을 업데이트할 수 있다. 이를 통해 전체 ESG 가 전달되는 경우에 비하여 효율적인 전달이 수행될 수 있다.
전술한 엘레멘트, 성질 등은 LastChangedESGData 의 일 실시예일 뿐이며, ESG 의 구성, 포맷 등에 따라 LastChangedESGData 내의 엘레멘트/성질 등이 더 추가되거나 변경, 삭제될 수도 있다.
도 75 는 본 발명의 일 실시예에 따른 GetESGData 액션에 따라 ESG 데이터를 컴패니언 디바이스에 전달하는 과정을 도시한 도면이다.
전술한 바와 같이 ESGData 상태변수는 이벤팅방식으로 컴패니언 디바이스에 전달될 수 있다. 그러나, 수신기 측에서 ESG 가 변경될 때마다 컴패니언 디바이스로 이벤팅하는 경우, 네트워크 과부화 내지 컴패니언 디바이스 측의 버든이 될 수 있다. 따라서, 컴패니언 디바이스에서 원하는 경우에만 ESG 데이터를 전달할 수 있도록 GetESGData() 액션이 정의될 수 있다.
GetESGData() 액션은 ESGData 상태변수를 액션 방식으로 컴패니언 디바이스에 전달하기 위한 액션일 수 있다. 즉, 컴패니언 디바이스가 이 액션을 통해 수신기에 ESG 데이터를 요청하면, 수신기는 컴패니언 데이터에 ESGData 상태변수를 전달할 수 있다. 이 액션의 입력 변수(input argument)는 없고(none), 출력 변수(output argument) 는 ESGData 상태변수일 수 있다.
GetESGData() 액션은 사용자가 컴패니언 디바이스에서 ESG 를 보고 싶을 때 ESG 어플리케이션 등을 실행하는 경우에 수행될 수 있다. 이 경우 해당 액션에 따른 결과로 ESG 데이터를 전달받게되고, ESG 어플리케이션을 통해 전달받은 ESG 데이터를 노출시킬 수 있다. 또한 실시예에 따라 주기적인 폴링방식으로 GetESGData() 액션이 수행되어 ESG 데이터를 컴패니언 디바이스에 저장하고 있다가, ESG 어플리케이션이 실행되면 저장된 ESG 데이터를 사용자에게 노출시킬 수도 있다.
GetESGData() 액션은 ESGData 상태변수가 이벤팅 방식을 지원하는 경우에도 동시에 지원될 수 있다. 단, 이 경우 ESGData 에 변경이 있을 때마다 이벤팅 방식으로 ESG 데이터를 전달받고, 동시에 액션을 통해 ESG 데이터를 또 전달받는다면 중복이 될 수 있다. 따라서, 액션과 이벤팅 방식이 동시에 지원되는 경우에는, 최초 ESG 서비스의 섭스크라이빙할 때에만 이벤팅 방식으로 ESG 데이터를 전달받고, 그 이후에는 ESG 어플리케이션을 실행시킬 때, 또는 주기적으로 GetESGData() 액션을 활용하여 ESG 데이터를 받아오는 정책을 취할 수도 있다.
먼저 본 실시예에서, 두 디바이스는 페어링이 이미 수행되었다고 가정한다. 또한 컴패니언 디바이스는 전술한 ESG 서비스에 섭스크라이빙(subscribing) 한 상태라고 가정한다.
수신기는 ESG 데이터를 가지고 있을 수 있다(t58010). ESG 데이터는 ESGData 상태변수에 저장될 수 있다. 사용자는 ESG 어플리케이션을 실행하는 등의 특정 행동을 취할 수 있다(t58020). 특정행동이란 ESG 데이터가 필요한 어떤 동작일 수 있다.
컴패니언 디바이스는 GetESGData() 액션을 수행하여 수신기에 ESGData 상태변수를 요청할 수 있다(t58030). 수신기는 이에 대해 200 OK 의 콜백(call back)을 보내면서 동시에 GetESGData() 액션의 출력 변수인 ESGData 상태변수를 컴패니언 디바이스로 출력할 수 있다(t58040).
컴패니언 디바이스는 수신된 ESGData 를 파싱하고, 그 ESG 데이터를 이용하여 ESG 어플리케이션을 통해 노출시키는 등의 동작을 수행할 수 있다(t58050). 컴패니언 디바이스는 ESG 데이터를 노출시킴에 있어 전술한 실시예들대로 즉시 노출시키거나, 일단 저장해놓고 있는 등의 동작을 취할 수 있다.
도시된 실시예는 사용자가 특정행동을 한 경우에 GetESGData() 액션을 수행하는 실시예이다. 그러나 실시예에 따라, 전술한 바와 같이 주기적으로 GetESGData() 액션이 수행될 수 있고(특정행동여부에 상관없이), 이 후 일정 시점에서 사용자가 ESG 어플리케이션 등을 실행시키는 경우에 해당 액션을 통해 전달받아 저장하였던 ESG 데이터가 노출될 수 있다.
*762
도 76 는 본 발명의 일 실시예에 따른 GetServiceIds, GetESGbyServiceIds 액션에 따라 ESG 데이터를 컴패니언 디바이스에 전달하는 과정을 도시한 도면이다.
방송 수신기와 컴패니언 디바이스간의 네트워크 버든 및/또는 컴패니언 디바이스에서 ESG 데이터 전체를 처리하는데 사용되는 버든을 최소화하기 위하여, 특정 서비스에 관련된 ESG 데이터만이 컴패니언 디바이스로 전달될 수 있다. 이를 위해 ServiceIdsList 상태변수와 A_ARG_TYPE_ESGData_by_ServiceIds 상태변수가 정의될 수 있다.
ServiceIdsList 상태변수는 ESG 가 기술하는 서비스들의 ID 들을 컴패니언 디바이스로 전달하기 위한 상태변수일 수 있다. 즉, 본 상태변수는 수신기에 파싱되어 저장되어 있는 ESG 데이터 중 서비스 ID 정보들을 포함할 수 있다. 본 상태변수는 스트링들의 리스트 또는 URI 들의 리스트의 타입을 가질 수 있다. 여기서 URI 의 종류는 불문할 수 있다. 실시예에 따라 본 상태변수는 CSV 형태로 표현될 수 있다. 예를 들어, atsc.org/esg/service/1, atsc.org/esg/service/2, …, 등과 같이 표현될 수 있다.
A_ARG_TYPE_ESGData_by_ServiceIds 상태변수는 ESG 의 일부 ESG 데이터를 저장하는 상태변수일 수 있다. 본 상태변수는 일부 ESG 데이터만을 컴패니언 디바이스로 전달하기 위해 정의될 수 있다. 본 상태변수는 ESGData 상태변수를 표현하기 위한 특정 형태의 마크업 언어(Markup Language) 의 프래그먼트 타입을 가질 수 있다. 예를 들어, ESGData 상태변수가 XML 도큐먼트인 경우, 본 상태변수는 XML 프래그먼트 타입을 가질 수 있다.
전술한 상태변수들을 활용하여, 수신기가 가지는 ESG 의 서비스 ID 들을 컴패니언 디바이스에 먼저 전달하고, 그에 따라 요청된 필요한 ESG 데이터만을 컴패니언 디바이스에 전달해 줄 수 있다. 이를 위하여 GetServiceIds 액션, GetESGbyServiceIds 액션이 정의될 수 있다.
*768GetServiceIds 액션은, 컴패니언 디바이스가 수신기로부터 서비스의 ID들을 전달받기 위한 액션일 수 있다. 수신기는, 수신기가 가지는 ESG 가 기술하는 서비스에 관한 정보들 중, 서비스 ID 들을 리스트 형태로 컴패니언 디바이스로 전달할 수 있다. 이 액션의 입력 변수는 없고(none), 출력 변수는 ServiceIdsList 상태변수일 수 있다.
GetServiceIds 액션은 사용자가 컴패니언 디바이스에서 ESG 를 보고 싶을 때 ESG 어플리케이션 등을 실행하는 경우에 수행될 수 있다. 이 경우 해당 액션에 따른 결과로 ESG 데이터를 전달받게되고, ESG 어플리케이션을 통해 전달받은 ESG 데이터를 노출시킬 수 있다. 또한 실시예에 따라 주기적인 폴링방식으로 GetServiceIds 액션이 수행되어 ESG 데이터를 컴패니언 디바이스에 저장하고 있다가, ESG 어플리케이션이 실행되면 저장된 ESG 데이터를 사용자에게 노출시킬 수도 있다.
GetESGbyServiceIds 액션은, 컴패니언 디바이스가 수신기로부터 특정 서비스에 해당하는 ESG 데이터만을 전달받기 위해 정의될 수 있다. 컴패니언 디바이스는 GetServiceIds 액션에 의해 전달받은 서비스 ID 들의 리스트를 활용하여 원하는 서비스의 서비스 ID 를 선별할 수 있다. 이 후 원하는 서비스의 ESG 데이터를 전달받기 위해 서비스 ID 들의 리스트를 입력 변수로 하여 본 액션을 수행할 수 있다. 그 결과 컴패니언 디바이스는 원하는 서비스에 관한 ESG 데이터를 전달받을 수 있다. 이 액션의 입력 변수는 ServiceIdsList 상태변수, 출력 변수는 A_ART_TYPE_ESGData_by_ServiceIds 상태변수일 수 있다.
GetESGbyServiceIds 액션은 사용자가 컴패니언 디바이스에서 ESG 를 보고 싶을 때 ESG 어플리케이션 등을 실행하는 경우에 수행될 수 있다. 이 경우 해당 액션에 따른 결과로 ESG 데이터를 전달받게되고, ESG 어플리케이션을 통해 전달받은 ESG 데이터를 노출시킬 수 있다. 또한 실시예에 따라 주기적인 폴링방식으로 GetESGbyServiceIds 액션이 수행되어 ESG 데이터를 컴패니언 디바이스에 저장하고 있다가, ESG 어플리케이션이 실행되면 저장된 ESG 데이터를 사용자에게 노출시킬 수도 있다.
실시예에 따라 GetESGbyServiceIds 액션에서 입력 변수를 "*" 로 설정하면 서비스 ID 에 관계없이 모든 ESG 데이터를 요청하게 설정할 수 있다. 또한 실시예에 따라 GetESGbyServiceIds 액션에서 입력 변수를 "empty" 로 설정하면 현재 시청중인 서비스에 대한 ESG 데이터를 요청하게 설정할 수 있다.
먼저 본 실시예에서, 두 디바이스는 페어링이 이미 수행되었다고 가정한다. 또한 컴패니언 디바이스는 전술한 ESG 서비스에 섭스크라이빙(subscribing) 한 상태라고 가정한다.
수신기는 ESG 데이터를 가지고 있을 수 있다(t59010). ESG 데이터는 ESGData 상태변수에 저장될 수 있다. ESGData 에 저장된 ESG 데이터는 "atsc.org/esg/service/1", "atsc.org/esg/service/2" 로 식별되는 두 서비스에 관한 ESG 데이터일 수 있다(t59080). 사용자는 ESG 어플리케이션을 실행하는 등의 특정 행동을 취할 수 있다(t59020). 특정행동이란 ESG 데이터가 필요한 어떤 동작일 수 있다.
컴패니언 디바이스는 GetServiceIds 액션을 통해 서비스 ID 들의 리스트를 요청할 수 있다(t59030). 수신기는 200 OK 와 함께 ServiceIdsList 를 컴패니언 디바이스에 출력할 수 있다(t59040). 본 실시예에서, ServiceIdsList 의 값은 (atsc.org/esg/service/1, atsc.org/esg/service/2) 와 같을 수 있다.
사용자 또는 컴패니언 디바이스가 원하는 특정 서비스가 "atsc.org/esg/service/1" 으로 식별되는 서비스인 경우, 이를 입력 변수로 하여 GetESGbyServiceIds 액션을 수행할 수 있다(t59050). 수신기는 200 OK 와 함께 A_ART_TYPE_ESGData_by_ServiceIds 를 컴패니언 디바이스로 출력할 수 있다(t59060). 본 실시예에서 A_ART_TYPE_ESGData_by_ServiceIds 의 값은 "atsc.org/esg/service/1" 으로 식별되는 서비스와 관련된 ESG 데이터일 수 있다(t59090). 도시된 바와 같이 atsc.org/esg/service/1 를 서비스 ID 값으로 가지는 Service 엘레멘트 뿐 아니라, atsc.org/esg/service/1 를 레퍼런스 값으로 가지는 Schedule 엘레멘트, Content 엘레멘트도 출력 변수에 포함될 수 있다. 여기서 Schedule 엘레멘트, Content 엘레멘트는 atsc.org/esg/service/1 로 식별되는 서비스에 관계된 스케쥴, 컨텐츠 정보일 수 있다.
컴패니언 디바이스는 수신된 ESG 데이터 를 파싱하고, 그 ESG 데이터를 이용하여 ESG 어플리케이션을 통해 노출시키는 등의 동작을 수행할 수 있다(t59070). 컴패니언 디바이스는 ESG 데이터를 노출시킴에 있어 전술한 실시예들대로 즉시 노출시키거나, 일단 저장해놓고 있는 등의 동작을 취할 수 있다.
도시된 실시예는 사용자가 특정행동을 한 경우에 해당하나, 전술한 바와 같이 액션이 먼저 수행될 수 있고(특정행동여부에 상관없이), 이 후 일정 시점에서 사용자가 ESG 어플리케이션 등을 실행시키는 경우에 해당 액션을 통해 미리 전달받아 저장하였던 ESG 데이터가 노출될 수 있다.
도 77 은 본 발명의 일 실시예에 따른 GetCurrentServiceId 액션에 따라 ESG 데이터를 컴패니언 디바이스에 전달하는 과정을 도시한 도면이다.
수신기에서 현재 시청중인 서비스에 대한 ESG 데이터가 컴패니언 디바이스로 전달될 필요가 있을 수 있다. 이를 위해서 현재 시청중인 서비스의 서비스 ID 가 컴패니언 디바이스로 전달될 수 있다. 이를 위해 CurrentServiceId 상태변수 및 GetCurrentServiceId 액션이 정의될 수 있다.
CurrentServiceId 상태변수는 수신기의 ESG 데이터 중, 현재 수신기에서 시청중인 서비스의 서비스 ID 를 저장할 수 있다. 본 상태변수는 스트링 또는 특정 URI 타입일 수 있다.
GetCurrentServiceId 액션은 컴패니언 디바이스가, 수신기에서 현재 시청중인 서비스의 서비스 ID 를 전달받기 위한 액션일 수 있다. 이 액션의 입력 변수는 없고, 출력 변수는 CurrentServiceId 상태변수일 수 있다.
GetCurrentServiceId 액션은 사용자가 컴패니언 디바이스에서 ESG 를 보고 싶을 때 ESG 어플리케이션 등을 실행하는 경우에 수행될 수 있다. 이 경우 해당 액션에 따른 결과로 ESG 데이터를 전달받게되고, ESG 어플리케이션을 통해 전달받은 ESG 데이터를 노출시킬 수 있다. 또한 실시예에 따라 주기적인 폴링방식으로 GetCurrentServiceId 액션이 수행되어 ESG 데이터를 컴패니언 디바이스에 저장하고 있다가, ESG 어플리케이션이 실행되면 저장된 ESG 데이터를 사용자에게 노출시킬 수도 있다.
먼저 본 실시예에서, 두 디바이스는 페어링이 이미 수행되었다고 가정한다. 또한 컴패니언 디바이스는 전술한 ESG 서비스에 섭스크라이빙(subscribing) 한 상태라고 가정한다.
수신기는 ESG 데이터를 가지고 있을 수 있다(t60010). ESG 데이터는 ESGData 상태변수에 저장될 수 있다. ESGData 에 저장된 ESG 데이터는 "atsc.org/esg/service/1", "atsc.org/esg/service/2" 로 식별되는 두 서비스에 관한 ESG 데이터일 수 있다(t60090). 수신기는 주기적으로 현재 시청중인 방송을 시그널링하여, 현재 시청중인 서비스의 서비스 ID 를 CurrentServiceId 상태변수에 업데이트할 수 있다. 사용자는 ESG 어플리케이션을 실행하는 등의 특정 행동을 취할 수 있다(t60030). 특정행동이란 ESG 데이터가 필요한 어떤 동작일 수 있다.
컴패니언 디바이스는 GetCurrentServiceId 액션을 통하여 현재 시청중인 서비스의 ID 를 요청할 수 있다(t60040). 수신기는 200 OK 와 함께 CurrentServiceId 상태변수를 컴패니언 디바이스에 출력할 수 있다(t60050). 본 실시예에서 CurrentServiceId 상태변수의 값은 "atsc.org/esg/service/1" 일 수 있다.
컴패니언 디바이스는 GetESGbyServiceIds 액션을 수행하여 현재 시청중인 서비스 관련 ESG 데이터를 요청할 수 있다(t60060). 본 실시예에서 GetESGbyServiceIds 액션의 입력 변수는 atsc.org/esg/service/1 일 수 있다. 수신기는 200 OK 와 함께 A_ART_TYPE_ESGData_by_ServiceIds 상태변수를 컴패니언 디바이스로 출력할 수 있다(t60070). 본 실시예에서 A_ART_TYPE_ESGData_by_ServiceIds 의 값은 "atsc.org/esg/service/1" 으로 식별되는 서비스와 관련된 ESG 데이터일 수 있다(t60100). 도시된 바와 같이 atsc.org/esg/service/1 를 서비스 ID 값으로 가지는 Service 엘레멘트 뿐 아니라, atsc.org/esg/service/1 를 레퍼런스 값으로 가지는 Schedule 엘레멘트, Content 엘레멘트도 출력 변수에 포함될 수 있다. 여기서 Schedule 엘레멘트, Content 엘레멘트는 atsc.org/esg/service/1 로 식별되는 서비스에 관계된 스케쥴, 컨텐츠 정보일 수 있다.
컴패니언 디바이스는 수신된 ESG 데이터 를 파싱하고, 그 ESG 데이터를 이용하여 ESG 어플리케이션을 통해 노출시키는 등의 동작을 수행할 수 있다(t60080). 컴패니언 디바이스는 ESG 데이터를 노출시킴에 있어 전술한 실시예들대로 즉시 노출시키거나, 일단 저장해놓고 있는 등의 동작을 취할 수 있다.
도시된 실시예는 사용자가 특정행동을 한 경우에 해당하나, 전술한 바와 같이 액션이 먼저 수행될 수 있고(특정행동여부에 상관없이), 이 후 일정 시점에서 사용자가 ESG 어플리케이션 등을 실행시키는 경우에 해당 액션을 통해 미리 전달받아 저장하였던 ESG 데이터가 노출될 수 있다.
도 78 은 본 발명의 일 실시예에 따른 SearchESG 액션에 따라 ESG 데이터를 컴패니언 디바이스에 전달하는 과정을 도시한 도면이다.
컴패니언 디바이스는 수신기로 ESG 데이터를 요청할 때, ESG 데이터의 특정 필드가 특정 값(타겟 값)을 가지는 경우에만 해당 ESG 데이터를 전달하도록 요청할 수 있다. 이를 위하여 A_ART_TYPE_SearchField 상태변수, A_ART_TYPE_TargetValue 상태변수, SearchESG 액션이 정의될 수 있다.
A_ART_TYPE_SearchField 상태변수는 컴패니언 디바이스가 지정하고자 하는 특정 필드를 지시할 수 있다. 즉, 본 상태변수는 ESGData 상태변수의 엘레멘트/성질들의 이름들의 리스트일 수 있다. 예를 들어 Service@id, Service.Genre 등의 값이 본 상태변수에 저장될 수 있다. 본 상태변수는 스트링들의 리스트 타입을 가질 수 있다. 이 상태변수는 SearchField 라 불릴 수도 있다.
A_ART_TYPE_TargetValue 상태변수는 컴패니언 디바이스가 지정한 특정필드의 특정값, 즉 타겟값을 저장할 수 있다. 이 타겟값은 지시된 특정필드가 해당 타겟값을 가지는 지 여부를 판단할 때 사용될 수 있다. 이 타겟값을 이용하여 수신기의 ESG 데이터가 검색될 수 있다. 본 상태변수는 스트링들의 리스트 타입을 가질 수 있다. 이 상태변수는 TargetValue 라 불릴 수도 있다.
SearchESG 액션은 컴패니언 디바이스가 수신기 내의 ESG 데이터를 탐색하고 요청하기 위한 액션일 수 있다. 본 액션의 입력변수로 특정 필드(SearchField) 및/또는 타겟값(TargetValue) 이 정의될 수 있다. 수신기는 해당 특정필드가 해당 타겟 값을 가지는 지 여부로 ESG 데이터를 탐색할 수 있다. 수신기는 해당 조건을 만족하는 ESG 데이터를 탐색한 경우, 관련된 모든 ESG 데이터를 컴패니언 디바이스로 출력할 수 있다. 어떠한 데이터도 매칭되지 않는 경우 아무것도 출력되지 않을 수 있다. 실시예에 따라 ESG 데이터의 일부분만 매칭되는 경우에도 ESG 정보가 전달될 수 있다.
출력 변수로 A_ART_TYPE_ESGData 상태변수가 정의될 수 있는데, 이는 전술한 A_ART_TYPE_ESGData_by_ServiceIds 상태변수와 마찬가지로 ESG 의 일부 ESG 데이터를 저장하는 상태변수일 수 있다. A_ART_TYPE_ESGData 상태변수는 SearchedESGData 로 불릴 수도 있다.
SearchESG 액션은 사용자가 컴패니언 디바이스에서 ESG 를 보고 싶을 때 ESG 어플리케이션 등을 실행하는 경우에 수행될 수 있다. 이 경우 해당 액션에 따른 결과로 ESG 데이터를 전달받게되고, ESG 어플리케이션을 통해 전달받은 ESG 데이터를 노출시킬 수 있다. 또한 실시예에 따라 주기적인 폴링방식으로 SearchESG 액션이 수행되어 ESG 데이터를 컴패니언 디바이스에 저장하고 있다가, ESG 어플리케이션이 실행되면 저장된 ESG 데이터를 사용자에게 노출시킬 수도 있다.
먼저 본 실시예에서, 두 디바이스는 페어링이 이미 수행되었다고 가정한다. 또한 컴패니언 디바이스는 전술한 ESG 서비스에 섭스크라이빙(subscribing) 한 상태라고 가정한다.
수신기는 ESG 데이터를 가지고 있을 수 있다(t61010). ESG 데이터는 ESGData 상태변수에 저장될 수 있다. ESGData 에 저장된 ESG 데이터는 "atsc.org/esg/service/1" 로 식별되고 Drama 라는 Service.Genre 값을 가지는 서비스와, "atsc.org/esg/service/2" 로 식별되고 Sports 라는 Service.Genre 값을 가지는 서비스에 관한 ESG 데이터일 수 있다(t61050).
컴패니언 디바이스는 SearchESG 액션을 이용하여 ESG 데이터를 요청할 수 있다(t61020). 여기서 해당 액션의 입력 변수는 ("Service@id, Service.Genre", "atsc.org/esg/service/1, Drama") 와 같을 수 있다. 이는 서비스 ID 가 atsc.org/esg/service/1 이고, Service 엘레멘트의 서브 엘레멘트 Genre 의 값이 Drama 인 ESG 데이터를 탐색하기 위함일 수 있다.
수신기는 해당 조건에 매칭되는 ESG 데이터를 탐색하고, 해당 ESG 데이터를 200 OK 와 함께 컴패니언 디바이스로 출력할 수 있다(t61030). 본 실시예에서, 해당 조건에 매칭되는 "atsc.org/esg/service/1" 로 식별되는 서비스에 관련된 ESG 데이터가 출력될 수 있다.
컴패니언 디바이스는 수신된 ESG 데이터 를 파싱하고, 그 ESG 데이터를 이용하여 ESG 어플리케이션을 통해 노출시키는 등의 동작을 수행할 수 있다(t61040). 컴패니언 디바이스는 ESG 데이터를 노출시킴에 있어 전술한 실시예들대로 즉시 노출시키거나, 일단 저장해놓고 있는 등의 동작을 취할 수 있다.
도 79 는 본 발명의 일 실시예에 따른 DoAuthenticationForESG 액션에 따라 ESG 데이터를 전달하기 위한 인증 과정을 도시한 도면이다.
수신기와 컴패니언 디바이스 간에 ESG 데이터를 교환함에 있어 의도치 않은 어플리케이션, 예를 들어 해킹 목적의 어플리케이션이 ESG 정보를 요청하는 경우 등이 있을 수 있다. 이러한 경우를 방지하기 위하여 보안을 위한 인증 절차가 필요할 수 있다. 이를 위해 CompanionDeviceId 상태변수, CompanionDeviceAppId 상태변수, CompanionDeviceAppVersion 상태변수, PrimaryDeviceId 상태변수, DoAuthenticationForESG 액션이 정의될 수 있다.
CompanionDeviceId 상태변수는 컴패니언 디바이스의 ID 정보를 저장하는 상태변수 일 수 있다. 컴패니언 디바이스를 구별하기 위한 유니크한 값이 본 상태변수에 저장될 수 있다. 디바이스 ID 로서 MAC 주소 등이 사용될 수 있으며, 이 또한 보안을 위하여 암호화될 수 있다(e.g. hashed Mac 주소). 본 상태변수는 스트링 또는 특정 URI 타입일 수 있다.
CompanionDeviceAppId 상태변수는 컴패니언 디바이스에서 ESG 사용을 위해 실행될 수 있는 어플리케이션의 ID 정보를 저장하는 상태변수 일 수 있다. 여기서 어플리케이션은 컴패니언 디바이스의 네이티브 앱 또는 브라우저 기반의 앱을 모두 포함하는 개념일 수 있다. 본 상태변수는 스트링 또는 특정 URI 타입일 수 있다.
CompanionDeviceAppVersion 상태변수는 컴패니언 디바이스에서 ESG 사용을 위해 실행될 수 있는 어플리케이션의 버전 정보를 저장하는 상태변수 일 수 있다. 수신기는 이 버전정보를 이용하여 ESG 정보의 제공 여부를 결정할 수 있다. 본 상태변수는 헥스 바이너리(hexBinary) 또는 정수(integer) 타입일 수 있다.
PrimaryDeviceId 상태변수는 수신기, 즉 프라이머리 디바이스의 디바이스 ID 정보를 저장하는 상태변수일 수 있다. 컴패니언 디바이스는 이 상태변수를 이용하여 수신기를 구별할 수 있다. 본 상태변수를 이용하여, 컴패니언 디바이스는, 의도치 않은 수신기로부터 오는 정보인지 여부를 판단하거나, 복수개의 수신기가 홈 네트워크 상에서 검색되는 경우 ESG 를 요청했던 특정 수신기인지 여부를 판단할 수 있다. 본 상태변수는 스트링 또는 특정 URI 타입일 수 있다.
DoAuthenticationForESG 액션은 컴패니언 디바이스가 ESG 데이터를 수신기에 요청하기 전에, 보안을 위한 인증절차를 거치기 위한 액션일 수 있다. 이 인증절차를 통해 ESG 데이터를 교환해도 되는지 여부가 판단될 수 있다. 입력 변수로 컴패니언 디바이스의 ID, 컴패니언 디바이스의 앱 ID 및/또는 컴패니언 디바이스의 앱 버전 정보를 입력하여 수신기로 보낼 수 있다. 이 정보들을 인증정보라고 부를 수도 있다. 수신기는 인증 정보를 전달받으면 어떤 컴패니언 디바이스가 요청한 것인지, ESG 를 위한 앱에서 요청한 것인지 등을 판단할 수 있다. 정상적인 컴패니언 디바이스의 앱에서 요청이 온 경우, 수신기는 자신의 디바이스 ID 를 컴패니언 디바이스로 출력할 수 있다. 컴패니언 디바이스는 전달받은 수신기의 ID 를 참조하여 자신이 ESG 를 요청하려고 한 대상이 맞는지를 확인할 수 있다. 이러한 인증 절차가 끝난 후 본 발명이 제안하는 액션/이벤팅 등의 메커니즘에 의해 실제 ESG 데이터를 받아올 수 있다. 이 액션의 입력 변수는 CompanionDeviceId, CompanionDeviceAppId, CompanionDeviceAppVersion 상태변수이고, 출력 변수는 PrimaryDeviceId 상태변수일 수 있다.
DoAuthenticationForESG 액션은 사용자가 컴패니언 디바이스에서 ESG 를 보고 싶을 때 ESG 어플리케이션 등을 실행하는 경우에 수행될 수 있다. 또한 실시예에 따라 주기적인 폴링 방식으로 DoAuthenticationForESG 액션이 수행되어 인증절차가 수행될 수도 있다.
먼저 본 실시예에서, 두 디바이스는 페어링이 이미 수행되었다고 가정한다. 또한 컴패니언 디바이스는 전술한 ESG 서비스에 섭스크라이빙(subscribing) 한 상태라고 가정한다.
수신기는 ESG 데이터를 가지고 있을 수 있다(t62010). ESG 데이터는 ESGData 상태변수에 저장될 수 있다. 사용자는 ESG 어플리케이션을 실행하는 등의 특정 행동을 취할 수 있다(t62020). 특정행동이란 ESG 데이터가 필요한 어떤 동작일 수 있다.
컴패니언 디바이스는 DoAuthenticationForESG 액션을 수행할 수 있다(t62030). 이를 통해 인증 정보가 수신기로 전달될 수 있다. 수신기는 전달받은 인증 정보를 이용하여 인증된 컴패니언 디바이스인지 여부 등을 판단할 수 있다(t62040). 인증된 경우, 수신기는 컴패니언 디바이스로 200 OK 와 함께 자신의 디바이스 ID 를 출력할 수 있다(t62050). 컴패니언 디바이스는 전달받은 수신기의 ID 를 이용하여 자신이 ESG 데이터를 요청해도 되는 수신기인지 여부를 판단할 수 있다(t62060).
그 후, 본 발명의 실시예들에 따라 ESG 데이터를 요청하고 받아올 수 있다(t62070, t62080). 컴패니언 디바이스는 수신된 ESG 데이터 를 파싱하고, 그 ESG 데이터를 이용하여 ESG 어플리케이션을 통해 노출시키는 등의 동작을 수행할 수 있다(t62070). 컴패니언 디바이스는 ESG 데이터를 노출시킴에 있어 전술한 실시예들대로 즉시 노출시키거나, 일단 저장해놓고 있는 등의 동작을 취할 수 있다.
도시된 실시예는 사용자가 특정행동을 한 경우에 해당하나, 전술한 바와 같이 액션이 먼저 수행될 수 있고(특정행동여부에 상관없이), 이 후 일정 시점에서 사용자가 ESG 어플리케이션 등을 실행시키는 경우에 이미 인증 절차가 끝났으므로 ESG 데이터 전달을 위한 동작들이 바로 수행될 수 있다.
도 80 은 본 발명의 다른 실시예에 따른 GetServiceIds, GetESGbyServiceIds 액션에 따라 디바이스 인증과 동시에 ESG 데이터를 컴패니언 디바이스에 전달하는 과정을 도시한 도면이다.
전술한 바와 같이 인증을 위하여 별도의 액션이 정의될 수 있다. 본 실시예에서는 별도의 액션의 정의 없이 기존의 액션들을 확장하여 인증을 수행함과 동시에, 기존 액션들의 원래 목적도 수행하게 할 수 있다. 여기서 확장의 대상이 되는 액션들을 본 발명에서 소개된 모든 액션들일 수 있다. 확장의 대상이 되는 액션들은 기존에 정의된 입력/출력 변수 외에, 입력 변수로서 CompanionDeviceId, CompanionDeviceAppId, CompanionDeviceAppVersion 상태변수가 추가될 수 있고, 출력 변수로서 PrimaryDeviceId 상태변수가 추가될 수 있다.
본 실시예는 GetServiceIds 액션, GetESGbyServiceIds 액션을 확장한다. 본 발명은 해당 액션의 확장에만 국한되지 아니한다.
GetServiceIds 액션은 확장되어 입력변수로 CompanionDeviceId, CompanionDeviceAppId, CompanionDeviceAppVersion 상태변수를 가지고 출력변수로 기존의 ServiceIdsList 상태변수 외에 PrimaryDeviceId 상태변수를 가질 수 있다. 수신기는 본 액션에 따라 인증정보를 전달받고, 전달 가능하다고 판단될 경우, 자신의 디바이스 ID 와 함께 서비스들의 ID 들을 컴패니언 디바이스로 전달할 수 있다. 컴패니언 디바이스는 전달받은 수신기의 디바이스 ID 를 참조하여 전달받은 서비스 ID 들을 사용해도 될 지 여부를 판단할 수 있다.
GetESGbyServiceIds 액션은 확장되어 입력변수로 기존의 ServiceIdsList 상태변수 외에, CompanionDeviceId, CompanionDeviceAppId, CompanionDeviceAppVersion 상태변수를 가지고 출력변수로 기존의 A_ART_TYPE_ESGData_by_ServiceIds 상태변수 외에 PrimaryDeviceId 상태변수를 가질 수 있다. 수신기는 본 액션에 따라 인증정보와 서비스 ID 들을 전달받고, 전달 가능하다고 판단될 경우, 자신의 디바이스 ID 와 함께 관련 서비스의 ESG 데이터를 컴패니언 디바이스로 전달할 수 있다. 컴패니언 디바이스는 전달받은 수신기의 디바이스 ID 를 참조하여 전달받은 ESG 데이터를 사용해도 될 지 여부를 판단할 수 있다.
확장된 액션들은 사용자가 컴패니언 디바이스에서 ESG 를 보고 싶을 때 ESG 어플리케이션 등을 실행하는 경우에 수행될 수 있다. 이 경우 해당 액션에 따른 결과로 ESG 데이터를 전달받게되고, ESG 어플리케이션을 통해 전달받은 ESG 데이터를 노출시킬 수 있다. 또한 실시예에 따라 주기적인 폴링방식으로 확장된 액션들이 수행되어 ESG 데이터를 컴패니언 디바이스에 저장하고 있다가, ESG 어플리케이션이 실행되면 저장된 ESG 데이터를 사용자에게 노출시킬 수도 있다.
먼저 본 실시예에서, 두 디바이스는 페어링이 이미 수행되었다고 가정한다. 또한 컴패니언 디바이스는 전술한 ESG 서비스에 섭스크라이빙(subscribing) 한 상태라고 가정한다.
수신기는 ESG 데이터를 가지고 있을 수 있다(t63010). ESG 데이터는 ESGData 상태변수에 저장될 수 있다. ESGData 에 저장된 ESG 데이터는 "atsc.org/esg/service/1", "atsc.org/esg/service/2" 로 식별되는 두 서비스에 관한 ESG 데이터일 수 있다(t63100). 사용자는 ESG 어플리케이션을 실행하는 등의 특정 행동을 취할 수 있다(t63020). 특정행동이란 ESG 데이터가 필요한 어떤 동작일 수 있다.
컴패니언 디바이스는 GetServiceIds 액션을 통해 서비스 ID 들의 리스트를 요청할 수 있다(t63030). 이 때 인증정보 역시 수신기로 전달될 수 있다. 수신기는 인증정보를 이용해 컴패니언 디바이스의 인증여부를 판단할 수 있다(t63040). 인증된 경우, 수신기는 200 OK 와 함께 ServiceIdsList 를 컴패니언 디바이스에 출력할 수 있다(t63050). 본 실시예에서, ServiceIdsList 의 값은 (atsc.org/esg/service/1, atsc.org/esg/service/2) 와 같을 수 있다. 이 때, 수신기의 디바이스 ID 역시 전달될 수 있다. 컴패니언 디바이스는 전달받은 수신기의 ID 를 이용하여 자신이 ESG 데이터를 요청해도 되는 수신기인지 여부를 판단할 수 있다(t63060).
사용자 또는 컴패니언 디바이스가 원하는 특정 서비스가 "atsc.org/esg/service/1" 으로 식별되는 서비스인 경우, 이를 입력 변수로 하여 GetESGbyServiceIds 액션을 수행할 수 있다(t63070). 이 때 역시 인증 정보가 수신기로 전달될 수 있다. 실시예에 따라 이 인증과정을 중복으로 보고 생략할 수도 있다. 인증과정이 생략된 경우, 기존의 일반적인 GetESGbyServiceIds 액션이 수행될 수 있다. 인증된 경우, 수신기는 200 OK 와 함께 A_ART_TYPE_ESGData_by_ServiceIds 를 컴패니언 디바이스로 출력할 수 있다(t63080). 본 실시예에서 A_ART_TYPE_ESGData_by_ServiceIds 의 값은 "atsc.org/esg/service/1" 으로 식별되는 서비스와 관련된 ESG 데이터일 수 있다(t63110). 도시된 바와 같이 atsc.org/esg/service/1 를 서비스 ID 값으로 가지는 Service 엘레멘트 뿐 아니라, atsc.org/esg/service/1 를 레퍼런스 값으로 가지는 Schedule 엘레멘트, Content 엘레멘트도 출력 변수에 포함될 수 있다. 여기서 Schedule 엘레멘트, Content 엘레멘트는 atsc.org/esg/service/1 로 식별되는 서비스에 관계된 스케쥴, 컨텐츠 정보일 수 있다.
컴패니언 디바이스는 수신된 ESG 데이터 를 파싱하고, 그 ESG 데이터를 이용하여 ESG 어플리케이션을 통해 노출시키는 등의 동작을 수행할 수 있다(t63090). 컴패니언 디바이스는 ESG 데이터를 노출시킴에 있어 전술한 실시예들대로 즉시 노출시키거나, 일단 저장해놓고 있는 등의 동작을 취할 수 있다.
도시된 실시예는 사용자가 특정행동을 한 경우에 해당하나, 전술한 바와 같이 액션이 먼저 수행될 수 있고(특정행동여부에 상관없이), 이 후 일정 시점에서 사용자가 ESG 어플리케이션 등을 실행시키는 경우에 해당 액션을 통해 미리 전달받아 저장하였던 ESG 데이터가 노출될 수 있다.
도 81 는 본 발명의 일 실시예에 따른 GetService 액션에 따라 ESG 데이터를 컴패니언 디바이스에 전달하는 과정을 도시한 도면이다.
ESG 데이터 중에서 서비스의 경우에는, 새로운 서비스가 추가/삭제 되는 등의 업데이트 빈도수가 적을 수 있다. 따라서 서비스에 관한 ESG 데이터를 지속적으로 요청/전달하는 것은 불필요한 네트워크 오버로드를 야기할 수 있다. 이를 해결하기 위하여 NumOfServices 상태변수, A_ARG_TYPE_ESGData_Service 상태변수, GetService 액션이 정의될 수 있다. 또한, 전술한 GetESGbyServiceIds 액션의 다른 실시예가 정의될 수 있다.
NumOfServices 상태변수는 수신기의 ESG 가 기술하고 있는 총 서비스의 수를 저장하는 상태변수일 수 있다. 본 상태변수의 값은 서비스 리스트를 구성할 때 참조될 수 있다. 예를 들어 본 상태변수의 값은 서비스 리스트 구성시에 유효성(validation) 을 확인하기 위한 용도로 사용될 수 있다. 본 상태변수는 정수(integer) 의 타입일 수 있다.
A_ARG_TYPE_ESGData_Service 상태변수는 수신기의 ESG 중에서 Service 엘레멘트에 해당하는 ESG 데이터만을 저장하는 상태변수일 수 있다. 본 상태변수는 ESGData 상태변수를 표현하기 위한 특정 형태의 마크업 언어(Markup Language) 의 프래그먼트 타입을 가질 수 있다. 예를 들어, ESGData 상태변수가 XML 도큐먼트인 경우, 본 상태변수는 XML 프래그먼트 타입을 가질 수 있다.
GetService 액션은 컴패니언 디바이스가 수신기로부터 ESG 정보들 중 서비스에 관련된 ESG 데이터를 전달받기 위한 액션일 수 있다. 컴패니언 디바이스는 이 액션을 통해 전달받은 ESG 데이터(Service 엘레멘트들) 를 이용하여 특정 서비스에 관련된 ESG 데이터(Service 엘레멘트 이외의 ESG 데이터들)을 받아올 수 있다. 컴패니언 디바이스는 NumOfServices 상태변수가 나타내는 서비스의 총 개수와 전달받은 Service 엘레멘트들의 개수를 비교하여 서비스 리스트를 구성할 때 참조할 수 있다. 이 과정에서 전술한 인증절차가 사용될 수 있다. 즉, GetService 액션은 인증을 위한 추가적인 입력/출력 변수를 포함하는 확장된 형태일 수 있다. 실시예에 따라 인증을 위한 추가 변수가 없는 GetService 액션도 사용될 수 있다.
이 액션의 입력 변수는 전술한 인증정보에 해당하는 상태변수들일 수 있다. 출력변수는 PrimaryDeviceId 상태변수, NumOfServices 상태변수, A_ARG_TYPE_ESGData_Service 상태변수일 수 있다.
또한, 전술한 GetESGbyServiceIds 액션의 다른 실시예가 정의될 수 있다. 이 다른 실시예에 따른 GetESGbyServiceIds 액션은 컴패니언 디바이스가 특정 서비스의 서비스 ID 들을 입력으로 하여, 특정 서비스와 관련된 나머지 ESG 데이터를 전달받기 위한 액션일 수 있다. 여기서 나머지 ESG 데이터는 해당 Service 엘레멘트를 제외한 ESG 데이터, 즉, 해당 서비스와 관련된 Content, Schedule 엘레멘트에 해당하는 ESG 데이터일 수 있다. 마찬가지로 본 액션 역시 전술한 인증을 위한 추가 변수들을 포함하여 확장된 형태로 정의될 수도 있다.
GetService, GetESGbyServiceIds 액션은 사용자가 컴패니언 디바이스에서 ESG 를 보고 싶을 때 ESG 어플리케이션 등을 실행하는 경우에 수행될 수 있다. 이 경우 해당 액션에 따른 결과로 ESG 데이터를 전달받게되고, ESG 어플리케이션을 통해 전달받은 ESG 데이터를 노출시킬 수 있다. 또한 실시예에 따라 주기적인 폴링방식으로 GetService, GetESGbyServiceIds 액션이 수행되어 ESG 데이터를 컴패니언 디바이스에 저장하고 있다가, ESG 어플리케이션이 실행되면 저장된 ESG 데이터를 사용자에게 노출시킬 수도 있다.
먼저 본 실시예에서, 두 디바이스는 페어링이 이미 수행되었다고 가정한다. 또한 컴패니언 디바이스는 전술한 ESG 서비스에 섭스크라이빙(subscribing) 한 상태라고 가정한다.
수신기는 ESG 데이터를 가지고 있을 수 있다(t64010). ESG 데이터는 ESGData 상태변수에 저장될 수 있다. ESGData 에 저장된 ESG 데이터는 "atsc.org/esg/service/1", "atsc.org/esg/service/2" 로 식별되는 두 서비스에 관한 ESG 데이터일 수 있다(t64100). 사용자는 ESG 어플리케이션을 실행하는 등의 특정 행동을 취할 수 있다(t64020). 특정행동이란 ESG 데이터가 필요한 어떤 동작일 수 있다.
컴패니언 디바이스는 GetService 액션을 수행하여 서비스에 관한 ESG 데이터를 요청할 수 있다(t64030). 수신기는 인증된 컴패니언 디바이스 및/또는 앱이라고 판단될 경우(t64040), 200 OK 와 함께 A_ARG_TYPE_ESGData_Service 상태변수를 컴패니언 디바이스로 출력할 수 있다(t64050). 여기서, A_ARG_TYPE_ESGData_Service 상태변수는 수신기의 ESG 데이터 중 Service 엘레멘트에 관한 ESG 데이터만을 포함할 수 있다(t64110). 컴패니언 디바이스는 같이 전달받은 수신기의 디바이스 ID 를 이용해 인증을 수행하여 믿을 수 있는 정보인지 판단할 수 있다(t64060).
컴패니언 디바이스는 GetESGbyServiceIds 액션을 수행하여 특정 서비스에 관련한 나머지 ESG 데이터를 요청할 수 있다(t64070). 본 실시예에서 GetESGbyServiceIds 액션의 ServiceIdsList 입력변수 값은 atsc.org/esg/service/1 일 수 있다. 수신기는 인증된 컴패니언 디바이스 및/또는 앱이라고 판단될 경우, 200 OK 와 함께 A_ARG_TYPE_ESGData_by_ServiceIds 상태변수를 출력할 수 있다(t64080). 본 실시예에서 출력된 A_ARG_TYPE_ESGData_by_ServiceIds 상태변수는 atsc.org/esg/service/1 로 식별되는 서비스와 관련된 ESG 데이터일 수 있다(t64120). 도시된 바와 같이 atsc.org/esg/service/1 를 레퍼런스 값으로 가지는 Schedule 엘레멘트, Content 엘레멘트가 출력 변수에 포함될 수 있다. 출력변수에 atsc.org/esg/service/1 로 식별되는 Service 엘레멘트 자체는 포함되지 않을 수 있다.
컴패니언 디바이스는 수신된 ESG 데이터 를 파싱하고, 그 ESG 데이터를 이용하여 ESG 어플리케이션을 통해 노출시키는 등의 동작을 수행할 수 있다(t64090). 컴패니언 디바이스는 ESG 데이터를 노출시킴에 있어 전술한 실시예들대로 즉시 노출시키거나, 일단 저장해놓고 있는 등의 동작을 취할 수 있다.
도시된 실시예는 사용자가 특정행동을 한 경우에 해당하나, 전술한 바와 같이 액션이 먼저 수행될 수 있고(특정행동여부에 상관없이), 이 후 일정 시점에서 사용자가 ESG 어플리케이션 등을 실행시키는 경우에 해당 액션을 통해 미리 전달받아 저장하였던 ESG 데이터가 노출될 수 있다.
도 82 는 본 발명의 일 실시예에 따른 SetChangeChannel 액션에 따라 컴패니언 디바이스에서 방송수신기의 서비스를 변경하는 과정을 도시한 도면이다.
컴패니언 디바이스로 전달된 ESG 정보가 UI 를 통해 사용자에게 노출될 수 있다. ESG 에 나타나는 서비스가 사용자에 의해 확인되고 선택될 수 있다. 이 때, 실제 서비스가 제공되고 있는 기기는 수신기이므로, 서비스 변경을 위한 정보가 수신기로 전달되어 서비스가 변경될 수 있어야 한다. 이를 위해 A_ARG_TYPE_SelectedServiceId 상태변수, SetChangeChannel 액션이 정의될 수 있다.
A_ARG_TYPE_SelectedServiceId 상태변수는 사용자가 컴패니언 디바이스 상에서 ESG 를 통해 선택한 서비스의 서비스 ID 를 저장하는 상태변수일 수 있다. 본 상태변수는 스트링 또는 특정 URI 타입일 수 있다.
SetChangeChannel 액션은 컴패니언 디바이스가, 수신기에서 제공되고 있는 서비스를 변경하기 위한 액션일 수 있다. 입력 변수는 A_ARG_TYPE_SelectedServiceId 상태변수일 수 있다. 사용자는 컴패니언 디바이스를 통해 ESG 를 보다가 특정 서비스를 선택할 수 있다. 이 때 해당 서비스의 ID 가 입력변수로 저장될 수 있다. 수신기는 해당 액션이 수행될 경우, 입력 변수의 값에 따라 해당 서비스 ID 를 가지는 서비스로, 채널 변경을 할 수 있다. 출력 변수는 없을 수 있다(none).
먼저 본 실시예에서, 두 디바이스는 페어링이 이미 수행되었다고 가정한다. 또한 컴패니언 디바이스는 전술한 ESG 서비스에 섭스크라이빙(subscribing) 한 상태라고 가정한다.
수신기는 ESG 데이터를 가지고 있을 수 있다(t65010). ESG 데이터는 ESGData 상태변수에 저장될 수 있다. 사용자는 ESG 어플리케이션을 실행하는 등의 특정 행동을 취할 수 있다(t65030). 특정행동이란 ESG 데이터가 필요한 어떤 동작일 수 있다.
컴패니언 디바이스는 전술한 GetESGData 액션을 통해 ESG 데이터를 요청하고, ESG 데이터를 전달받을 수 있다(t65040). 도시된 실시예는 사용자가 특정행동을 한 경우에 해당하나, 전술한 바와 같이 액션이 먼저 수행될 수 있고(특정행동여부에 상관없이), 이 후 일정 시점에서 사용자가 ESG 어플리케이션 등을 실행시키는 경우에 해당 액션을 통해 미리 전달받아 저장하였던 ESG 데이터가 노출될 수 있다.
컴패니언 디바이스는 수신된 ESG 를 파싱하고, 그 ESG 데이터를 이용하여 ESG 어플리케이션 등을 통해 노출시키는 등의 동작을 수행할 수 있다(t65050). 컴패니언 디바이스는 ESG 데이터를 노출시킴에 있어 전술한 실시예들대로 즉시 노출시키거나, 일단 저장해놓고 있는 등의 동작을 취할 수 있다.
사용자가 ESG 를 보던 중 컴패니언 디바이스의 UI 를 통해 서비스를 선택할 수 있다(t65060). 예를 들어 사용자는 NBCU 채널로의 변경을 시도했을 수 있다. 컴패니언 디바이스는 SetChangeChannel 액션을 수행할 수 있다(t65070). 이 액션을 통해 NBCU 채널에 해당하는 서비스 ID 가 수신기로 전달될 수 있다.
수신기는 전달받은 서비스 ID 를 이용하여, 해당 서비스로 채널변경을 할 수 있다(t65080). 서비스는 NBCU 로 변경되고 사용자에게 제공될 수 있다(t65090).
도 83 은 본 발명의 일 실시예에 따른 방송 서비스를 제공하는 방법을 도시한 도면이다.
본 발명의 일 실시예에 따른 방송 수신기에서 방송 서비스를 제공하는 방법은 컴패니언 디바이스와 페어링하는 단계 및/또는 ESG (Electronic Service Guide) 를 수신하는 단계를 포함할 수 있다.
방송 수신기의 네트워크 인터페이스 유닛은 컴패니언 디바이스와 페어링할 수 있다(t66010). 여기서 네트워크 인터페이스 유닛은 전술한 방송 수신기의 네트워크 인터페이스에 해당할 수 있다. 페어링을 위해서는 UPnP 등의 기술이 사용될 수 있으나, 페어링을 위한 기술은 이에 한정되지 아니한다.
방송 수신기의 수신 유닛은 ESG 내지 특정 서비스 가이드를 수신할 수 있다. 여기서 수신 유닛은 전술한 방송 수신기의 브로드캐스트 인터페이스 내지 네트워크 인터페이스일 수 있다. ESG 가 방송망을 통해 수신될 경우 수신 유닛은 브로드캐스트 인터페이스, 인터넷망을 통해 수신될 경우 수신유닛은 네트워크 인터페이스에 해당할 수 있다. 즉, 실시예에 따라 네트워크 인터페이스 유닛과 수신 유닛은 같은 블락/모듈일 수 있다.
본 실시예에서, ESG 는 적어도 하나 이상의 방송 서비스에 관한 ESG 데이터를 포함할 수 있다. 여기서, ESG 데이터는 ESG 에 포함되는 데이터 또는 ESG 내의 엘레멘트/성질을 의미할 수 있다. 방송 서비스는 전술한 서비스 내지 채널에 해당할 수 있다.
본 발명의 다른 실시예에 따른 방송 서비스를 제공하는 방법에서, ESG 데이터는 전술한 적어도 하나 이상의 방송 서비스의 서비스 타입 정보, 스케쥴 정보, 관련 컨텐츠 정보 또는 관련 컴포넌트 정보일 수 있다. ESG 데이터는 각각 전술한 Service 엘레멘트의 type 성질이거나, Schedule 엘레멘트, Content 엘레멘트 또는 Component 엘레멘트일 수 있다. 여기서 관련 컨텐츠, 관련 컴포넌트는 ESG 에 의해 기술되고 있는 서비스에 관련된 컨텐츠, 그에 관련된 컴포넌트를 의미할 수 있다.
본 발명의 또 다른 실시예에 따른 방송 서비스를 제공하는 방법은, 수신한 ESG 의 변경사항 정보를 상기 컴패니언 디바이스로 전달하는 단계를 더 포함할 수 있다. 이 동작은 전술한 네트워크 인터페이스 유닛에 의해 수행될 수 있다. 여기서 변경사항 정보는 기 저장된 ESG 데이터 대비 수신된 ESG 의 추가, 변경 또는 삭제된 ESG 데이터를 포함할 수 있다. 여기서 변경사항정보는 전술한 LastChangedESGData 상태변수일 수 있다. 추가, 변경 또는 삭제된 ESG 데이터는 각각 Addition, Modification, Deletion 엘레멘트에 해당할 수 있다.
본 발명의 또 다른 실시예에 따른 방송 서비스를 제공하는 방법은, 수신한 ESG 가 포함하는 방송 서비스들의 ID 리스트를 컴패니언 디바이스로 전달하는 단계, 컴패니언 디바이스로부터, ID 리스트 중 적어도 하나의 ID 로 식별되는 특정 방송 서비스들과 관련된 ESG 데이터를 요청받는 단계 및 요청된 특정 방송 서비스 관련 ESG 데이터를 컴패니언 디바이스로 전달하는 단계를 더 포함할 수 있다. 서비스 ID 리스트의 전달은 전술한 GetServiceIds 액션에 의해 수행될 수 있다. ID 에 의한 ESG 데이터 요청 및 전달은 전술한 GetESGbyServiceIds 액션에 의해 수행될 수 있다.
본 발명의 또 다른 실시예에 따른 방송 서비스를 제공하는 방법은, 컴패니언 디바이스로부터 현재 시청중인 방송 서비스의 ID 를 요청받고, 요청된 현재 시청중인 방송 서비스의 ID 를 컴패니언 디바이스로 전달하는 단계; 현재 시청중인 서비스에 관련된 ESG 데이터를 요청받는 단계; 및 요청된 현재 시청중인 서비스 관련 ESG 데이터를 컴패니언 디바이스로 전달하는 단계; 를 더 포함할 수 있다. 현재 시청중인 서비스의 ID 전달은 전술한 GetCurrentServiceId 액션에 의해 수행될 수 있다. ID 에 의한 ESG 데이터 요청 및 전달은 전술한 GetESGbyServiceIds 액션에 의해 수행될 수 있다.
본 발명의 또 다른 실시예에 따른 방송 서비스를 제공하는 방법은, 컴패니언 디바이스로부터 ESG 데이터의 특정 필드를 지시하는 서치 필드 및 특정 필드에 대한 타겟 값을 전달받는 단계; 컨트롤 유닛이 서치 필드가 지시하는 특정 필드가 타겟값을 가지는 ESG 데이터를 선별하는 단계; 및 선별된 ESG 데이터를 컴패니언 디바이스로 전달하는 단계;를 더 포함할 수 있다. 서치 필드 및 특정 필드에 대한 타겟값은 각각 전술한 A_ART_TYPE_SearchField 상태변수, A_ART_TYPE_TargetValue 상태변수에 해당할 수 있다. ESG 데이터 선별 및 전달은 전술한 SearchESG 액션에 의해 수행될 수 있다. 여기서 컨트롤 유닛은 전술한 방송 수신기의 메인 피지컬 디바이스의 컨트롤 유닛에 해당할 수 있다.
본 발명의 또 다른 실시예에 따른 방송 서비스를 제공하는 방법은, 컴패니언 디바이스로부터 컴패니언 디바이스의 인증 정보를 전달받는 단계, 여기서 인증 정보는 상기 컴패니언 디바이스의 디바이스 ID 정보를 포함하고; 인증 모듈이 인증 정보를 이용하여 컴패니언 디바이스의 인증 여부를 확인하는 단계; 및 컴패니언 디바이스의 인증이 확인된 경우, 방송 수신기의 디바이스 ID 정보를 컴패니언 디바이스로 전달하는 단계; 를 더 포함할 수 있다. 여기서 인증정보는 전술한 CompanionDeviceId, CompanionDeviceAppId 및/또는 CompanionDeviceAppVersion 상태변수에 해당할 수 있다. 방송 수신기의 디바이스 ID는 전술한 PrimaryDeviceId 상태변수에 해당할 수 있다. 인증 정보를 전달, 인증확인, 수신기 디바이스 ID 전달 등의 동작은 전술한 DoAuthenticationForESG 액션에 의해 수행될 수 있다. 여기서 인증모듈은 방송 수신기 내/외부에 위치하여 전술한 인증과 관련된 동작을 수행하는 블락/모듈일 수 있다. 인증 모듈은 실시예에 따라 전술한 컨트롤 유닛 또는 네트워크 인터페이스와 병합될 수 있다.
본 발명의 또 다른 실시예에 따른 방송 서비스를 제공하는 방법에서, ID 리스트를 상기 컴패니언 디바이스로 전달하는 단계는: 컴패니언 디바이스로부터 ID 리스트의 요청을 받는 단계, 여기서 ID 리스트의 요청은 컴패니언 디바이스의 인증정보를 포함하고; 인증 모듈이 인증 정보를 이용하여 컴패니언 디바이스의 인증 여부를 확인하는 단계; 및 컴패니언 디바이스의 인증이 확인된 경우, ID 리스트 및 방송 수신기의 디바이스 ID 정보를 컴패니언 디바이스로 전달하는 단계; 를 더 포함할 수 있다. 이 실시예는 전술한 서비스 ID 리스트를 통한 ESG 전달의 실시예에서, GetServiceIds 액션이 인증까지 수행될 수 있도록 확장된 경우에 해당할 수 있다.
본 발명의 또 다른 실시예에 따른 방송 서비스를 제공하는 방법은, 컴패니언 디바이스로부터 현재 시청중인 방송 서비스의 변경을 요청받는 단계, 여기서 방송 서비스 변경 요청은 전달된 ESG 데이터에 근거하고; 및 컨트롤 유닛이 방송 서비스 변경 요청에 따라 방송 수신기에서 시청중인 방송 서비스를 변경하는 단계;를 더 포함할 수 있다. 방송 변경을 요청받고, 이에 근거해 서비스를 변경하는 것은 전술한 SetChangeChannel 액션에 의해 수행될 수 있다.
전술한 방송 서비스를 제공하는 방법은 컴패니언 디바이스 입장에서도 기술될 수 있다. 본 발명은 전술한 실시예들을 컴패니언 디바이스 입장에서 수행하는 경우 역시 포함한다. 예를 들어 컴패니언 디바이스는 ESG 의 변경사항 정보를 전달받을 수 있고, 서비스의 ID 리스트를 요청하고 그 ID 를 이용해 관련 ESG 데이터를 전달받을 수 있다. 또한 컴패니언 디바이스는 현재 시청되고 있는 서비스의 ID 를 요청하고, 그를 이용해 관련 ESG 데이터를 전달받을 수 있다. 컴패니언 디바이스는 특정 필드를 지시하는 서치 필드, 특정값을 수신기로 전달하여 매칭되는 ESG 데이터를 전달받을 수 있고, 인증정보를 수신기로 보내 인증을 수행할 수 있다. 또한 컴패니언 디바이스는 현재 시청되고 있는 서비스의 변경을 요청할 수 있다. 수신기와의 통신은 컴패니언 디바이스 내/외부의 전술한 네트워크 인터페이스에 의해 수행될 수 있다. 서치 필드 관련 동작, 서비스 변경 요청 관련 동작, ESG 데이터 관련 처리 동작 등 제반 동작은 컴패니언 디바이스 내/외부의 전술한 컨트롤 유닛에 의해 수행될 수 있다. 또한 컴패니언 디바이스는 인증 관련 동작을 수행하는 인증모듈을 포함할 수 있다.
전술한 각 단계들은 생략되거나 동일 또는 유사한 동작을 하는 다른 단계에 의해 대체될 수 있다.
도 84 은 본 발명의 일 실시예에 따른 방송 수신기를 도시한 도면이다.
본 발명의 일 실시예에 따른 방송 수신기는 네트워크 인터페이스 유닛 및/또는 수신유닛을 포함할 수 있다. 본 발명의 다른 실시예에 따른 방송 수신기는 컨트롤 유닛 및/또는 인증모듈을 더 포함할 수 있다. 각각의 블락, 모듈, 유닛들은 전술한 바와 같다.
본 발명의 일 실시예에 따른 방송 수신기 및 그 내부 모듈/블락/유닛들은, 전술한 방송 수신기에서 방송 서비스를 제공하는 방법의 실시예들을 수행할 수 있다.
본 발명의 일 실시예에 따른 컴패니언 디바이스는 네트워크 인터페이스 유닛 및/또는 수신유닛을 포함할 수 있다. 본 발명의 다른 실시예에 따른 컴패니언 디바이스는 컨트롤 유닛 및/또는 인증모듈을 더 포함할 수 있다. 각각의 블락, 모듈, 유닛들은 전술한 바와 같다.
본 발명의 일 실시예에 따른 컴패니언 디바이스 및 그 내부 모듈/블락/유닛들은, 전술한 컴패니언 디바이스에서 방송 서비스를 제공하는 방법의 실시예들을 수행할 수 있다.
전술한 방송 수신기 및 컴패니언 디바이스 내부의 블락/모듈/유닛 등은 메모리에 저장된 연속된 수행과정들을 실행하는 프로세서들일 수 있고, 실시예에 따라 장치 내/외부에 위치하는 하드웨어 엘레멘트들일 수 있다.
전술한 각 블락/모듈/유닛들은 생략되거나 동일 또는 유사한 동작을 하는 다른 블락/모듈에 의해 대체될 수 있다.
도 85 는 본 발명의 일 실시예에 따른, 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 방식으로 정보 등을 전달받을 수 있게 된다.
실시예에 따라 메인 디바이스, 메인 컨트롤 포인트를 각각 스크린 디바이스, 스크린 컨트롤 포인트라 부를 수도 있다.
도 86 은 본 발명의 다른 실시예에 따른, UPnP 기반의 PD-CD 아키텍쳐를 도시한 도면이다.
본 실시예에서 메인 피지컬 디바이스(PD) 는 메인 컨트롤드 디바이스 및/또는 컴패니언 컨트롤 포인트를 포함할 수 있다. 또한 컴패니언 피지컬 디바이스(CD) 는 메인 컨트롤 포인트 및/또는 컴패니언 컨트롤드 디바이스를 포함할 수 있다.
일반적으로 UPnP 아키텍쳐의 경우, 컨트롤드 디바이스 측과 컨트롤 포인트 측의 동작이나 역할이 비대칭적이다. 즉, 컨트롤드 디바이스 측에서 수행 가능한 동작이 컨트롤 포인트 측에서는 불가능할 수 있다.
이를 보완하기 위하여 메인 피지컬 디바이스(PD) 가 메인 컨트롤드 디바이스를 가지는 것과 마찬가지로, 컴패니언 피지컬 디바이스(CD) 가 컴패니언 컨트롤드 디바이스를 가질 수 있다. 각각의 컨트롤드 디바이스와 대응되도록 메인 피지컬 디바이스는 컴패니언 컨트롤 포인트를 가질 수 있고, 컴패니언 피지컬 디바이스는 메인 컨트롤 포인트를 가질 수 있다. 메인 컨트롤드 디바이스는 메인 컨트롤 포인트와 통신하고, 컴패니언 컨트롤드 디바이스는 컴패니언 컨트롤 포인트와 통신할 수 있다.
컴패니언 컨트롤드 디바이스와 컴패니언 컨트롤 포인트 역시 상호간에 디스커버리 메시지를 주고받고, 이벤트/액션 등의 동작을 수행할 수 있다. 이를 통해 CD 측에서도 주도적으로 커뮤니케이션이 수행될 수 있다. 그러나, 컴패니언 컨트롤드 디바이스와 컴패니언 컨트롤 포인트는 메인 컨트롤드 디바이스/컨트롤 포인트와 그 동작이나 역할, 권한 등에 있어서 차이가 있을 수 있다. 자세한 동작이나 권한의 범위 등은 설계자의 의도에 따라 다르게 설정될 수 있다.
실시예에 따라 컴패니언 컨트롤드 디바이스, 컴패니언 컨트롤 포인트를 각각 스크린 (컨트롤드) 디바이스, 스크린 컨트롤 포인트라 부를 수도 있다.
도 87 은 본 발명의 또 다른 실시예에 따른, UPnP 기반의 PD-CD 아키텍쳐를 도시한 도면이다.
본 실시예에서 메인 피지컬 디바이스(PD) 는 메인 컨트롤드 디바이스 및/또는 메인 컨트롤 포인트를 포함할 수 있다. 또한 컴패니언 피지컬 디바이스(CD) 역시 메인 컨트롤 포인트 및/또는 메인 컨트롤드 디바이스를 포함할 수 있다.
전술한 바와 같이, UPnP 아키텍쳐 상에서 PD 와 CD 측은 그 동작 등에 있어 비대칭적인 역할을 수행할 수 있다. 이를 해소하기 위하여, PD 가 메인 컨트롤드 디바이스, CD 가 메인 컨트롤 포인트를 가지는 것외에, 각각 메인 컨트롤 포인트, 메인 컨트롤드 디바이스 쌍을 더 가지는 아키텍쳐를 구성할 수도 있다. 이 경우, 전술한 실시예에서 컴패니언 컨트롤드 디바이스/컨트롤 포인트가 메인 컨트롤드 디바이스/컨트롤 포인트 와는 다른 역할을 수행했던 것과 달리, 양 측에서 동등한 메인 컨트롤드 디바이스/컨트롤 포인트를 가질 수 있다. 이에 따라 TV 수신기와 컴패니언 피지컬 디바이스는 상호간의 커뮤니케이션 등에 있어서 동등한 지위를 가지도록 아키텍쳐가 구성될 수 있다.
도 88 은 본 발명의 일 실시예에 따른, 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 액션을 통하여 메인 컨트롤드 디바이스에 정보 내지 특정 동작 등을 요청할 수 있다. 이를 통해 상호간의 앱 커뮤니케이션이 수행될 수 있다.
도 89 는 본 발명의 일 실시예에 따른, 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 기반 아키텍쳐의 다양한 실시예들과 조합될 수 있다.
도 90 은 본 발명의 다른 실시예에 따른, Websocket 기반의 PD-CD 아키텍쳐를 도시한 도면이다.
도시된 본 실시예에서는, 전술한 바와 같이 각 기능들에 대해 각각 엔드포인트가 제공되지 않을 수 있다. 본 실시예에서는, PD 측의 websocket 서버에서 하나의 엔드포인트가 제공되고, 그 엔드포인트가 전술한 모든 기능들을 수행할 수 있다. 이 엔드포인트는 컴패니언 엔드포인트라 불릴 수 있다. 다른 기타 websocket 아키텍쳐의 구성은 전술한 실시예와 같을 수 있다.
이 하나의 엔드포인트는 전술한 실시예에서 여러 엔드포인트가 수행했던 기능들을 모두 수행할 수 있는 엔드포인트일 수 있다. 즉, 이 엔드포인트는 전술한 서비스/컨텐트 식별 엔드포인트, ESG 정보 엔드포인트, 서비스/쇼/세그먼트 데이터 엔드포인트 등의 엔드포인트들이 하던 역할들을 모두 수행할 수 있다. 따라서 CD 측 앱은 이 엔드포인트에 연결하는 것 만으로, ESG 를 전달받거나, 미디어 타임 정보를 전달받거나, PD 측 앱과 통신하는 등의 모든 동작을 수행할 수 있다. 단, 이 경우 CD 측 앱과 websocket 서버가 주고받는 메시지가, 어떤 기능을 위한 것인지 식별할 수 있어야 하므로, 좀 더 구체적인 정보를 담거나, 더 확장될 수 있다.
이 컴패니언 엔드포인트가 모든 기능을 수행하므로, 이 엔드포인트에 연결이 되면 모든 기능들이 수행될 수 있다. 이 엔드포인트에 연결하는 과정은 전술한 일반적인 엔드포인트에 연결되는 과정과 동일할 수 있다. 이 경우 엔드포인트가 하나이므로, 어느 한 기능에 대한 액세스가 불필요한 상황이라 할 지라도, 엔드포인트의 연결을 일부 종료하거나 할 수 없다. 반대로, 어느 하나의 기능만이 필요한 상황이라할 지라도, 이 컴패니언 엔드포인트에 연결해야만 할 수 있다.
이하, 설명의 편의를 위하여, 이와 같은 아키텍쳐를 websocket 기반의 아키텍쳐 실시예 #2 이라 부를 수 있다. 이 실시예는 websocket 기반의 다른 아키텍쳐는 물론, UPnP 기반, HTTP 기반 아키텍쳐의 다양한 실시예들과 조합될 수 있다.
도 91 은 본 발명의 또 다른 실시예에 따른, 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 기반 아키텍쳐의 다양한 실시예들과 조합될 수 있다.
도 92 는 본 발명의 일 실시예에 따른, Websocket 기반의 PD-CD 아키텍쳐에서의 앱 투 앱 커뮤니케이션(App to app communication) 을 도시한 도면이다.
PD 에서 실행중인 앱과 CD 에서 실행중인 앱 간에, 앱 투 앱 커뮤니케이션이 가능할 수 있다. websocket 기반의 아키텍쳐에서, 각 앱들은 weboscket 서버를 통하여 커뮤니케이션할 수 있다. 여기서 전술한 앱투앱 엔드포인트가 활용될 수 있다. 또는 실시예에 따라 앱투앱 커뮤니케이션 기능 및 다른 기능들을 병행하는 컴패니언 앤드포인트가 활용될 수도 있다.
CD 측 앱은 전술한 것과 같은 과정을 통하여 weboscket 서버의 앱투앱 커뮤니케이션 엔드포인트에 연결할 수 있다. PD 측에서 실행중인 앱들도 역시 websocket 클라이언트에 해당하는데, PD 측 앱도 websocket server 의 앱투앱 커뮤니케이션 엔드포인트에 연결할 수 있다. websocket 서버는 전달받은 연결 요청에 대하여, 서로 매칭되는 연결 요청이 오면, 양 측을 연결하여 메시지를 주고 받게 할 수 있다.
양 측의 앱이 연결되면, 앱들은 websocket 서버를 통하여 메시지들을 주고 받을 수 있다. 이 메시지는 양방향(2 way)으로 전달될 수 있다. websocket 서버는 어느 한 측이 보내온 메시지를, 다른 측 앱으로 전달(relaying)해줄 수 있다.
도 93 은 본 발명의 일 실시예에 따른, 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 기반 아키텍쳐의 다양한 실시예들과 조합될 수 있다.
도 94 는 본 발명의 다른 실시예에 따른, 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 기반 아키텍쳐의 다양한 실시예들과 조합될 수 있다.
도 95 는 본 발명의 일 실시예에 따른, 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 정보를 멀티캐스트 그룹 내의 장치들에 멀티캐스트 할 수 있다.
도 96 은 본 발명의 일 실시예에 따른, 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 아키텍쳐의 경우에도 적용될 수 있다.
도 97 은 본 발명의 일 실시예에 따른, 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 를 통해 제공될 수도 있다.
도 98 은 본 발명의 일 실시예에 따른, 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 정보 등을 포함할 수 있다.
도시된 포맷들은 본 발명의 일 실시예들일 뿐이며, 그 구조 및 포함되는 엘레멘트, 엘레멘트의 값들은 실시예에 따라 다른 값을 가질 수 있다.
도 99 는 본 발명의 일 실시예에 따른, 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, 등과 같이 구성될 수 있다.
도 100 은 본 발명의 다른 실시예에 따른, 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 의 다른 엘레멘트들은 생략되었다. 다른 엘레멘트들은 다양한 실시예에 따라 구성이 가능할 수 있다.
도 101 은 본 발명의 일 실시예에 따른, 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 를 포함할 수도 있다.
도 102 는 본 발명의 일 실시예에 따른, 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 정보 전달 기능 등등의 역할을 수행하는 컴패니언 엔드포인트에 대한 주소 정보 및 앱투앱 커뮤니케이션 엔드포인트에 대한 주소 정보가 포함될 수 있다. 여기서 주소 정보들이 응답 헤더에 포함되는 구조 및 형태는 실시예에 따라 다양하게 구성될 수 있다.
도 103 은 본 발명의 일 실시예에 따른, 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). 이 주소 정보는 해당 응답 메시지의 바디를 통해 전달될 수 있다. 실시예에 따라 주소정보는 응답 메시지의 헤더를 통해서 전달될 수도 있다.
도 104 는 본 발명의 일 실시예에 따른, 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 의 주소일 수 있다.
도 105 는 본 발명의 다른 실시예에 따른, 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 엘레멘트 내에 주소 정보들을 포함하고 있으나, 실시예에 따라 이 메시지는 다른 정보들도 포함할 수 있다. 여기서 주소 정보들이 메시지에 포함되는 구조 및 형태는 실시예에 따라 다양하게 구성될 수 있다.
도 106 은 본 발명의 일 실시예에 따른, 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).
도 107 은 본 발명의 일 실시예에 따른, 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 웨이 커뮤니케이션 과정에 대해서는 자세히 후술한다.
도 108 은 본 발명의 일 실시예에 따른, 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 가 호출될 수 있다.
도 109 는 본 발명의 일 실시예에 따른, 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).
도 110 은 본 발명의 일 실시예에 따른, 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).
도 111 은 본 발명의 일 실시예에 따른, 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).
도 112 은 본 발명의 다른 실시예에 따른 XML 형식의 ESGData 상태변수를 JSON 형식의 ESGData 상태변수로 변환한 도면이다.
본 발명의 일 실시예에 따른 방송 수신 장치는, 기기간 컨뮤니케이션 시 사용되는 메시지에 다양한 정보(예를 들어,ESG data)를 담아서 다양한 목적으로 전달하기 위해, HTTP (Hypertext Transfer Protocol), RTP (Real-time Transport Protocol), XMPP (Extensible Messaging and Presence Protocol), FTP (File Transfer Protocol), WebSocket 등의 다양한 프로토콜을 적용할 수 있다.
본 발명의 일 실시예에 따른 방송 수신 장치는 기기간 커뮤니케이션 시 사용되는 메시지를 상기의 다양한 프로토콜을 통해 전달할 때, 전달할 데이터를 각 프로토콜에서 정의하는 다양한 타입(예를 들어, string, integer, floating point, boolean, character, array, list 등)으로 전달할 수 있다. 방송 수신 장치는 복잡한 내용의 데이터를 더 구조적으로 표현하고, 전달하고, 저장하기 위해 XML (Extensible Markup Language), HTML (Hypertext Markup Language), XHTML (Extensible Hypertext Markup Language), JSON (JavaScript Object Notation) 등의 Markup 방식 혹은 text, image format 등을 적용할 수 있으며 특정 방식에 국한하여 적용하지 않는다.
이하에서는, 방송 수신 장치가, WebSocket 프로토콜을 이용하여, ESG 데이터를 포함하는 메시지(예를 들어, 상태변수)를 컴패니언 디바이스로 전달하는 방법을 설명한다. 이 경우, 방송 수신 장치는 ESG 데이터를 포함하는 ESGData 상태변수를 JSON 형식의 ESGData 상태변수로 변환하고, JSON 형식의 ESGData 상태변수를 WebSocket 프로토콜을 이용하여 컴패니언 스크린 디바이스로 전달할 수 있다.
도(a)는 전술한 ESG data를 XML 형식(또는 XML data structure)의 ESGData 상태변수에 세팅한 실시예이다. ESGData 상태 변수의 구체적인 내용은 전술한 바와 동일하다.
도(b)를 참조하면, 도(a)의 XML 형식의 ESGData 상태변수는 JSON 형식(또는 JSON format)의 ESGData 상태변수로 변환될 수 있다. JSON 형식의 ESGData 상태변수의 구체적인 내용은 XML 형식의 ESGData 상태변수의 구체적인 내용과 동일하다.
이와 같이, 모든 XML 형식(XML data structure)의 데 이터는 JSON 형식(JSON format)의 데이터로 변환될 수 있다. JSON 형식의 데이터는 JSON 오브젝트라고 지칭될 수 있다. 이 JSON 오브젝트는 웹소켓 프로토콜(WebSocket protocol)을 통해 방송 수신 장치(예를 들어, 프라이머리 디바이스)에서 컴패니언 디바이스로 전달될 수 있다.
도 113 은 본 발명의 다른 실시예에 따른 JSON 형식의 ESGData 상태변수를 웹소켓 프로트콜을 사용하여 컴패니언 디바이스에 전달하는 과정을 도시한 도면이다.
먼저 도시된 CD(Companion Device) 는 컴패니언 디바이스, PD(Primary Device) 는 수신기 내지 방송 수신 장치를 의미할 수 있다.
컴패니언 디바이스는, 아래의 신텍스를 이용하여, 웹소켓 API를 콜링(calling)함으로써 웹소켓 오브젝트(WebSocket Object)를 생성할 수 있다(C58003).
[Construct WebSocket Object]
Websocketobjectname = new WebSocket(Websocket address)
Ex) WS_ESG = new WebSocket("ws://Tvhost:8080/ESGServer")
여기서, 생성되는 웹소켓 오브젝트의 이름은 "WS_ESG"이고, 콜링되는 웹소켓 API는 새로운 웹소켓을 생성하는 "new WebSocket"이고, 웹소켓 서버의 주소는 "ws://Tvhost:8080/ESGServer"일 수 있다.
그리고 나서, 컴패니언 디바이스는, 아래의 신텍스를 이용하여, 웹소켓 API를 콜링(calling)함으로써 웹소켓 연결(Websocket connection)을 개방(open)할 수 있다(C58005).
*[Open a Websocket connection]
Ex) WS_ESG.onopen = function { ~~~ }
여기서, "WS_ESG.onopen"은 웹소켓을 개방하는 개방 이벤트 핸들러일 수 있다. "function { ~~~ }"은 웹소켓 연결(Websocket connection)을 개방(open)하는 웹소켓 API일 수 있다.
이 상태(C58010)에서 방송 수신 장치의 ESGData 상태변수는 아무런 값을 가지지 않을 수 있다.
서비스/컨텐츠프로바이더는 ESG 데이터를 방송망 또는 브로드밴드 채널을 통해 전송할 수 있다(C58020). ESG 데이터는 방송 수신 장치의 수신 유닛 또는 네트워크 인터페이스를 통해 수신될 수 있다. 여기서 수신 유닛은 전술한 브로드캐스트 인터페이스 내지 튜너일 수 있다.
방송 수신 장치는 수신한 ESG 데이터를 시그널링할 수 있다(C58030).
그리고 나서, 방송 수신 장치와 컴패니언 디바이스는 서로 웹소켓 연결(Websocket Connection)을 개방할 수 있다(C58035).
웹소켓 연결을 개방하는 방법에 대하여는 전술한 방법과 동일하다. 예를 들어, 방송 수신 장치에 포함된 어플리케이션 프로세서(미도시)는 네트워크 프로세서(미도시)로 컴패니언 디바이스와 연결을 요청할 수 있다. 이후에 네트워크 프로세서는 컴패니언 디바이스로부터 연결 요청을 수신할 수 있다. 네트워크 프로세서는 컴패니언 디바이스로부터 수신한 정보를 기초로 매칭되는 어플리케이션 프로세서의 연결 요청을 검색할 수 있다. 네트워크 프로세서는 매칭되는 연결 요청을 검색하면 컴패니언 디바이스와 방송 수신 장치의 어플리케이션 프로세서를 연결할 수 있다. 여기서, 어플리케이션 프로세서는 어플리케이션 모듈, 어플리케이션 브라우저일 수 있다. 네트워크 프로세서는 웹소켓 서버(WebSocket Server)일 수 있다.
방송 수신 장치와 컴패니언 디바이스 사이에 웹소켓 연결이 개방되면, 서로 간에 메시지를 송신 및/또는 수신이 가능한 상태가 된다.
그리고 나서, 컴패니언 디바이스는, 아래의 이벤트 핸들러를 이용하여, 다양한 메시지를 방송 수신 장치로 송신 및/또는 수신할 수 있다(C58037).
예를 들어, 이벤트 핸들러는 메시지 이벤트 핸들러(Message Event Handler), 에러 이벤트 핸들러(Error Event Handler), 및/또는 폐쇄 이벤트 핸들러(Close Event Handler)를 포함할 수 있다.
여기서, 메시지 이벤트 핸들러(Message Event Handler)는 방송 수신 장치와 컴패니언 스크린 사이에서 메시지를 전송 및/또는 수신하기 위한 이벤트 핸들러이고, 신텍스는 아래와 같다.
[Message Event Handler]
EX) WS_ESG.onmessage = function { ~~~ }
여기서, 에러 이벤트 핸들러(Error Event Handler)는 웹소켓 연결, 방송 수신 장치, 및/또는 컴패니언 디바이스의 에러와 관련된 메시지의 전송 및/또는 수신을 위한 이벤트 핸들러이고, 신텍스는 아래와 같다.
[Error Event Handler]
EX) WS_ESG.onerror = function { ~~~ }
여기서, 폐쇄 이벤트 핸들러(Close Event Handler)는 웹소켓 연결의 폐쇄를 위한 이벤트 핸들러이고, 신텍스는 아래와 같다.
[Close Event Handler]
EX) WS_ESG.onclose = function { ~~~ }
그리고 나서, 방송 수신 장치는 ESG 데이터를 ESGData 상태 변수에 저장(또는 세팅)할 수 있다(C58040).
예를 들어, ESGData 상태변수는 XML 형식 및 JSON 형식 중에서 하나일 수 있다. 방송 수신 장치가 ESG 데이터를 XML 형식의 ESGData 상태변수에 먼저 세팅한 경우, 방송 수신 장치는 XML 형식의 상태변수를 JSON 형식의 상태변수로 변환할 수 있다.
그리고 나서, 방송 수신 장치는 웹소켓(WebSocket) 프로토콜을 통해 ESGData 상태변수의 JSON 오브젝트를 컴패니언 디바이스로 전달할 수 있다(C58050).
ESGData 상태변수를 전달받은 컴패니언 디바이스는 이를 파싱한 후(C58060), 파싱된 값에 따라 ESG 데이터를 UI 를 통해 노출할 수 있다(C56070).
이 때, 사용자에게 ESG 데이터를 보여주기 위해, 컴패니언 디바이스는 네이티브 레벨에서 UI 를 표현해주거나, 어플리케이션에서 표현해줄 수도 있다.
컴패니언 디바이스에서 ESG 데이터가 표현되는 방식에는 다양한 실시예가 존재할 수 있다. 실시예에 따라, ESG 데이터가 수신되면 컴패니언 디바이스는 어떠한 형태로든지 사용자에게 ESG 데이터를 바로 노출할 수 있다. 다른 실시예에 따라, ESG 데이터가 수신되면 컴패니언 디바이스는 사용자에게 알림(notification) 메시지를 보내고 사용자가 실행한 경우에 ESG 데이터를 노출할 수 있다. 또 다른 실시예에 따라, ESG 데이터가 수신되면 컴패니언 디바이스는 백그라운드에서 ESG 정보를 가지고 있다가, 사용자가 직접 원하는 때에 ESG 데이터를 볼 수 있는 어플리케이션을 실행하면, 그 때서야 ESG 데이터를 사용자에게 노출할 수도 있다.
도 114 는 본 발명의 일 실시예에 따른 서비스/컨텐트 식별(Identification) 메시지 포맷을 도시한 도면이다.
본 발명은 지상파 방송망과 인터넷망 연동 기반 차세대 하이브리드 방송 환경에서, 방송 수신기(TV receiver, PD) 가 CD (Companion Device) 로 각종 데이터를 제공하는 방안을 제안한다. 여기서 CD 또는 CD 측에서 실행되고 있는 CD 측 앱(application) 역시 PD 쪽과 통신할 수 있다.
이러한 데이터 제공 아키텍쳐에서, PD 와 CD 는 다양한 종류의 데이터를 주고 받을 수 있다. 이러한 데이터의 제공에 있어서, 전술한 웹소켓 엔드포인트들의 서비스, HTTP 서비스 URL 이 제공하는 서비스 등이 활용될 수 있다. 여기서의 서비스란 PD-CD 간의 컴패니언 서비스를 말하며, 방송 서비스와는 다른 개념이다.
예를 들어 PD 는 CD 로, PD 에서 현재 제공되고 있거나, 향후 제공될 수 있는 방송 서비스(채널) 또는 컨텐트(채널의 프로그램) 에 대한 정보를 전달할 수 있다. 또한 PD 는 CD 로, ESG (Electronic Service Guide) 를 전달하거나, EAM (Emergency Alert Message) 를 전달할 수도 있다. 실시예에 따라 PD 는 CD 로, PD 에서 재생중인 서비스의 플레이백 상태 정보를 전달하거나, PD 의 타임라인 정보를 전달할 수도 있다.
여기서, EAM 은 위급상황 내지 긴급재난 상황을 알리기 위한 경보 메시지로, PD 가 수신하여 CD 측으로 전달해줄 수 있다. 여기서, 플레이백 상태 정보는 PD 에서 제공중인 방송 서비스등의 서비스에 대한 재생속도, 빨리감기, 되감기 등의 정보를 의미할 수 있다. 타임라인 정보는 PD 에서 제공중인 방송 서비스등의 서비스에 대한 미디어 타임 정보 및/또는 UTC 절대 타임 페어(pair) 를 포함할 수 있다.
본 발명은 전술한 바와 같이 웹소켓에 기반한 PD-CD 간의 통신을 지원함과 동시에 HTTP Request/Response 에 기반한 PD-CD 간의 통신을 지원하는 아키텍쳐를 제안한다. 여기서 각각의 컴패니언 서비스들의 성질에 따라, 웹소켓 또는 HTTP 에 따른 통신 방법이 선택될 수 있다. 본 발명은 이러한 측면에서, 유연한 아키텍쳐 구성을 가능케할 수 있고, PD-CD 간의 통신에 있어 효율성을 담보할 수 있다.
본 발명의 일 실시예는, 웹소켓 기반의 통신이 서비스/컨텐트 식별에 관한 통신, 플레이백 상태 전달에 관한 통신을 담당할 수 있다. 동시에 HTTP 기반의 웹서버에 의한 통신이 ESG 전달에 관한 통신, 서비스/쇼/세그먼트 관련 데이터 전달에 관한 통신을 담당할 수 있다. 미디어 타임라인 정보 전달에 관한 통신은 웹소켓과 HTTP 양자에 의해 모두 수행될 수 있다. 또한, 서비스/컨텐트 식별에 관한 통신에 있어, 현재 방영중인 서비스에 대한 서비스/컨텐트 식별은 HTTP 기반의 통신에 의해 수행될 수도 있다.
서비스/컨텐트 식별에 관한 통신에 대해 설명한다. 종래에는 방송 수신기가 방송 서비스 등에 대한 부가 서비스를 직접 제공하였다. 이 경우, 사용자가 프로그램 시청중에 컨텐트 식별 또는 부가 정보 확인을 포함한 방송 서비스에 연계된 부가서비스을 하려고 할 때, 관련 정보가 방송 프로그램을 가려버리는 문제점이 생길 수 있다. 본 발명은 관련 정보를 사용자의 CD 에 디스플레이할 수 있게 하여, 시청에 방해없이 혹은 더 조작이 편리한 CD 기기의 장점을 살려서 더 사용이 편리한 부가 서비스를 제공할 수 있다.
또한 본 발명은 이를 위한 프로토콜 및 PD-CD 아키텍쳐, CD 로 전달되는 서비스/컨텐트 식별 메시지 포맷 등을 제안한다. 또한 본 발명은 CD 또는 CD 측 앱이 서비스/컨텐트 식별 메시지를 이용하여 PD 에서 제공중이거나 제공될 수 있는 서비스/컨텐트에 엑세스하는 방안을 제안한다. 이를 통하여 CD 는 방송 서비스/컨텐트에 관한 정보를 미리 획득할 수 있어, 효율적인 부가 서비스 제공이 가능해진다. 또한 본 발명은 서비스/컨텐트 식별 메시지에 계층적인 로케이션 URL 구조를 두어, CD 측에서 효율적으로 서비스/컨텐트에 관한 정보를 획득할 수 있도록 하는 방안을 제안한다. 또한, 본 발명은 웹소켓과 HTTP 를 모두 활용하여 효율적으로 전술한 프로세스가 수행될 수 있도록 하는 방안을 제안한다. 이를 통해 PD 의 서비스/컨텐트의 시청에 불편을 끼치지 않고, 더 사용이 편리한 부가 서비스가 제공될 수 있다. 또한 이를 통해 CD 측에서 서비스/컨텐트를 획득하여 재생하거나, 서비스/컨텐트에 관련된 부가 정보를 획득하여 제공하거나, 서비스/컨텐트와 관련된 부가 서비스를 제공하거나, 이러한 서비스를 효율적으로 수행하기 위한 프리-프로세싱을 수행할 수 있다.
본 발명의 일 실시예에서, PD 는 CD 또는 CD 측 앱으로 서비스/컨텐트 식별 메시지를 전달할 수 있다. 먼저, 디스커버리 과정에서 웹소켓 커넥션이 구축될 수 있다. 이 과정에 대해서는 전술하였다. PD 의 웹소켓 서버는 CD 측 앱으로부터 서비스/컨텐트 식별 메시지를 전달받기 위한 컴패니언 서비스의 섭스크립션 메시지를 받을 수 있다. CD 측 앱은 해당 컴패니언 서비스에 구독된 상태가 될 수 있다. 이 컴패니언 서비스는 리뉴얼되거나 구독취소될 수도 있다. 이 컴패니언 서비스는 ESG 서비스라 부를 수도 있다.
서비스/컨텐트와 관련된 정보에 변화가 생기거나 하면, 웹소켓 서버는 해당 CD 측 앱으로 변경된 서비스/컨텐트 식별 메시지를 전달할 수 있다. 이 서비스/컨텐트 식별 메시지는 알림(notification) 메시지의 한 종류에 해당할 수 있다. 이 알림 메시지는 해당 메시지가 어떠한 컴패니언 서비스에 의한 알림 메시지인지 나타내는 정보와 함께 메시지 바디를 가질 수 있다. 이 경우 메시지 바디에는 서비스/컨텐트 식별 메시지에 해당하는 정보가 포함될 수 있다. CD 측 앱은 이 정보를 획득하여 필요한 추가 동작을 수행할 수 있다.
CD 측 앱은 웹소켓 커넥션을 통하여 서비스/컨텐트 식별 메시지를 받는 것 외에도, HTTP 를 이용해 현재 PD 에서 제공되고 있는 서비스/컨텐트에 대한 정보를 전달받을 수도 있다. 이 과정은 HTTP GET 메시지와 이에 따른 HTTP Response 에 의해 수행될 수 있다. CD 측 앱은 PD 의 웹서버 내지 웹서버의 서비스/컨텐트 식별을 위한 HTTP 서비스 URL 로 HTTP GET 메시지를 보낼 수 있다. PD 의 웹서버는 이에 따라 응답 메시지를 CD 측 앱으로 보낼 수 있다. 여기서 응답 메시지에는 서비스/컨텐트에 관련된 정보들이 포함될 수 있다.
전술한 웹소켓에 의한 서비스/컨텐트 관련 정보 전달은 PD 에서 제공중이거나 제공될 수 있는 전체 서비스/컨텐트에 관련된 정보를 전달하는 것으로서, 종합적인 정보를 알림(notification) 의 형식으로 전달하는 것에 해당할 수 있다. 반면 전술한 HTTP 에 의한 서비스/컨텐트 관련 정보 전달은 PD 에서 현재 제공중인 서비스/컨텐트에 대한 정보를 전달하는 것으로서, CD 측 앱의 요청에 의하여 전달이 수행될 수 있다.
웹소켓에 의한 전달은, 종합적이고 총체적인 정보의 전달로서, ESG 가 업데이트되는 등의 큰 변화가 있을 경우, 이를 CD 측의 요청없이 CD 측에 제공하여 효율적인 서비스/컨텐트 파악이 가능케 하는 전달이다. 이 경우에는 웹소켓과 같은 방식이 더 적절하므로 웹소켓/HTTP 를 모두 지원하는 본 발명의 PD 는 웹소켓을 이용해 이러한 정보 전달을 사용할 수 있다. 또한, HTTP 에 의한 전달은, CD 측이 PD 측에서 현재 재생되고 있는 서비스/컨텐트에 대한 정보를 획득할 필요가 있을 때, 관련 정보를 요청/응답에 의해 간단히 획득할 수 있게 하는 전달이다. 이 경우에는 HTTP GET 등에 의한 요청/응답 방식이 더 적절하므로 본 발명의 PD 는 HTTP 프로토콜을 활용할 수 있다. CD 측은 웹소켓에 의해 서비스/컨텐트 식별 메시지를 받고, 이 후 필요에 따라 현재 서비스/컨텐트에 대해 HTTP 응답 메시지를 추가로 받을 수 있다.
웹소켓에 의한 전달에서, 서비스/컨텐트 식별 메시지에 대해 설명한다. 서비스/컨텐트 식별 메시지는 ESG 정보를 포함하거나, ESG 로부터 획득된 정보를 가공하여 포함할 수 있다. 또한 실시예에 따라, 서비스/컨텐트 식별 메시지는 ESG 의 정보 구조를 차용할 수도 있다.
도시된 서비스/컨텐트 식별 메시지의 일 실시예는, Service 엘레멘트 및/또는 Content 엘레멘트를 포함할 수 있다. Service 엘레멘트는 적어도 하나 이상이 포함될 수 있고(1…N), Content 엘레멘트는 적어도 0 개 이상이 포함될 수 있다(0…N).
Service 엘레멘트는 PD 의 방송 서비스에 대한 정보를 기술할 수 있다. 여기서 Service 에 대한 정보는 ESG 데이터 모델에서 가져온 것일 수 있다. Service 엘레멘트는 id 엘레멘트, SerivceType 엘레멘트, Name 엘레멘트, Description 엘레멘트 및/또는 TargetUserProfile 엘레멘트를 포함할 수 있다.
id 엘레멘트는 해당 서비스의 식별자를 나타낼 수 있다. ServiceType 엘레멘트는 해당 서비스의 서비스 타입을 지시할 수 있다. Name 엘레멘트는 해당 서비스의 이름을 지시할 수 있다. Description 엘레멘트는 해당 서비스에 대한 디스크립션을 포함할 수 있다. TargetUserProfile 엘레멘트는 해당 서비스가 타겟하는 유저 프로파일을 나타낼 수 있다.
Content 엘레멘트는 PD 의 컨텐트에 대한 정보를 기술할 수 있다. 여기서 방송 서비스가 채널이라면, 컨텐트란 프로그램을 의미할 수 있다. Content 엘레멘트는 Programid 엘레멘트, Name 엘레멘트, Description 엘레멘트, TargetUserProfile 엘레멘트, CARatings 엘레멘트, Capabilities 엘레멘트, Component 엘레멘트, FileContentItem 엘레멘트, TimelineInfo 엘레멘트 및/또는 Location 엘레멘트를 포함할 수 있다.
Programid 엘레멘트, Name 엘레멘트, Description 엘레멘트, TargetUserProfile 엘레멘트는 각각 해당 컴텐트의 식별자, 이름, 디스크립션, 타겟 유저 프로파일 정보를 포함할 수 있다. CARatings 엘레멘트는 해당 컨텐트의 컨텐트 어드바이저리(Content Advisory) 정보를 포함할 수 있다. Capabilities 엘레멘트는 해당 컨텐트와 관련된 캐패빌리티 정보로서, 해당 컨텐트를 유의미하게 재생하기 위해 필요한 캐패빌리티 정보를 나타낼 수 있다.
Component 엘레멘트는 해당 컨텐트에 포함되는 컴포넌트에 관련된 정보를 포함할 수 있다. 여기서 Component 엘레멘트는 해당 컨텐트의 연속적인 컴포넌트에 관련된 정보를 포함할 수 있다. 여기서 연속적인 컴포넌트는 프리젠터블(Presentable) 한 컴포넌트를 의미할 수 있다. 실시예에 따라 오디오/비디오/캡션 컴포넌트 등이 여기에 해당될 수 있다. 실시예에 따라, 앱 기반 인핸스먼트 컴포넌트 또는 앱 컴포넌트 등이 여기에 해당될 수도 있다. Component 엘레멘트는 복수개 존재할 수 있으며, 각각의 Component 엘레멘트는 @componentType, @componentRole, @componentName 및/또는 @componentLocation 속성을 더 포함할 수 있다.
@componentType 속성은 해당 컴포넌트의 타입을 지시할 수 있다. 예를 들어 해당 속성이 0, 1, 2, 3 값을 가지는 경우, 해당 컴포넌트가 각각 오디오 컴포넌트, 비디오 컴포넌트, 클로즈드 캡션 컴포넌트, 어플리케이션 컴포넌트 타입을 가질 수 있다. 나머지 값들은 향후 사용을 위해 남겨둘 수 있다(reserved).
@componentRole 속성은 해당 컴포넌트의 롤 또는 종류를 지시할 수 있다. @componentName 속성은 해당 컴포넌트의 이름을 지시할 수 있다. 여기서 이 이름은 인간이 읽을 수 있는 형태의 이름일 수 있다. @componentLocation 속성은 해당 컴포넌트에 접근할 수 있는 URL 정보를 포함할 수 있다. 이 URL 을 통하여 CD 측 앱은 해당 컴포넌트를 획득할 수 있다.
FileContentItem 엘레멘트는 해당 컨텐트에 포함되는 파일 컨텐트 아이템에 관련된 정보를 포함할 수 있다. 여기서 FileContentITem 엘레멘트는 해당 컨텐트의 부가적인 정보(Adjuct Data) 를 포함할 수 있다. 여기서 부가적인 정보에는 다양한 정보들이 포함될 수 있다. 실시예에 따라, 앱 기반 인핸스먼트 컴포넌트 또는 앱 컴포넌트 등이 여기에 해당될 수도 있다. FileContentITem 엘레멘트는 복수개 존재할 수 있으며, 생략될 수도 있다. FileContentITem 엘레멘트는 @FileContentItemLocation, @FileContentItemName, @FileContentItemID, @FileContentItemType 및/또는 @FileContentItemEncoding 속성이 포함될 수 있다.
@FileContentItemLocation 속성은 해당 파일 컨텐트 아이템에 접근할 수 있는 URL 정보를 포함할 수 있다. 이 URL 을 통하여 CD 측 앱은 해당 파일 컨텐트 아이템을 획득할 수 있다.
@FileContentItemName 속성은 해당 파일 컨텐트 아이템의, 인간이 읽을 수 있는 형태의 이름을 나타낼 수 있다(Human Readable Name). @FileContentItemID 속성은 해당 파일 컨텐트 아이템의 식별자를 나타낼 수 있다. @FileContentItemType 속성은 해당 파일 컨텐트 아이템의 타입을 나타낼 수 있다. @FileContentItemEncoding 속성은 해당 파일 컨텐트 아이템의 인코딩 방식을 나타낼 수 있다.
TimelineInfo 엘레멘트는 해당 컨텐트의 타임라인 관련 정보를 포함할 수 있다. 타임라인 정보는 HTTP GET 에 의해 전달되거나, 별도의 웹소켓 서비스에 의해 전달될 수도 있으나, 서비스/컨텐트 식별 메시지에 포함되어 전달될 수도 있다. TimelineInfo 엘레멘트는 currentTime 엘레멘트를 더 포함할 수 있다. currentTime 엘레멘트는 해당 컨텐트의 현재 시간 정보를 나타낼 수 있다.
Location 엘레멘트는 해당 컨텐트에 접근할 수 있는 URL 정보를 포함할 수 있다. 이 URL 을 통하여 CD 측 앱은 해당 컨텐트를 획득할 수 있다. 이 엘레멘트는 전술한 다른 URL 정보와 달리 해당 컨텐트 전체에 접근할 수 있는 URL 정보일 수 있다. 실시예에 따라, 이 엘레멘트의 URL 정보로 획득을 위한 요청을 보낼 때, 쿼리 텀을 추가로 붙여 필요한 컴포넌트 또는 파일 컨텐트 아이템만을 획득할 수도 있다.
서비스/컨텐트 식별 메시지는 추가로 Show 엘레멘트, Segment 엘레멘트를 포함할 수 있다. 각각의 Show 엘레멘트, Segment 엘레멘트에 대하여, 전술한 Service 엘레멘트, Content 엘레멘트가 포함하는 엘레멘트/속성이 정의될 수 있다. 또한, 서비스/컨텐트 식별 메시지는 현재 PD 가 Service, Show, Segment, Content 의 어느 부분을 재생하고 있는지에 대한 정보를 Service, Show, Segment, Content 를 기준으로 알려주는 정보를 추가로 포함할 수 있다.
실시예에 따라, 서비스/컨텐트 식별 메시지는 추가로 각각의 서비스, 컨텐트 등에 대하여 로고나 다른 ESG 정보들, 특징(사이즈, 코덱, 비트 레이트, aspect ratio, required/desired 캐패빌리티)을 더 포함할 수 있다. 또한, 서비스/컨텐트 식별 메시지는 각각의 서비스, 컨텐트 등에 대하여 특정 개인화 기준에 맞는지 여부를 판단할 수 있는 필터링 크리테리아(Filtering Criteria) 정보를 더 포함할 수 있다.
실시예에 따라, 전술한 로케이션 정보들의 URL 들은, PD 에서 해당 정보들을 획득하기 위한 PD (또는 PD 의 서버)의 URL 일 수도 있고, 인터넷에서 직접 획득하기위한 인터넷의 URL 일 수도 있고, 임의의 리모트 서버의 URL 일 수도 있다. 실시예에 따라, 서비스/컨텐트 식별 메시지는 추가로 각각의 서비스, 컨텐트 등을 전달받기 위하여 구독(subscription) 할 수 있는지, one-off 할 수 있는지 여부를 지시하는 정보를 더 포함할 수 있다.
HTTP 에 의한 전달에서, 현재 서비스/컨텐트와 관련된 정보 전달을 위한 HTTP 응답 메시지에 대해 설명한다.
전술한 바와 같이 CD 측 앱은 PD 의 HTTP 기반한 웹서버로 HTTP GET 메시지를 보낼 수 있다. 이 HTTP GET 메시지는 해당 컴패니언 서비스의 서비스 URL 정보로 요청될 수 있다. HTTP GET 메시지는 해당 서비스 URL 정보 및 해당 컴패니언 서비스(현재 서비스/컨텐트 관련 정보를 얻기 위한 컴패니언 서비스)를 식별하는 정보를 포함할 수 있다. HTTP GET 메시지는 쿼리 텀(Query term)을 더 가질 수 있는데, 이 쿼리 텀을 통하여 어떠한 정보가 요청되는지 알 수 있다.
HTTP GET 메시지를 통하여 CD 측 앱은 현재 PD 에서 제공중인 서비스/컨텐트에 대한 정보를 요청할 수 있다. 요청될 수 있는 서비스 컨텐트에 대한 정보에는 현재 쇼의 ESG 정보, 현재 어베일러블(available)한 컴포넌트 정보, 현재 어베일러블한 파일 또는 논-리얼타임 데이터 및/또는 현재의 타임라인 위치(timeline location) 정보 등이 있을 수 있다.
PD 내지 PD 의 웹서버는 요청된 정보를 HTTP 응답 메시지를 통해 CD 측 앱으로 전달할 수 있다. 여기에는 요청된 정보들이 포함될 수 있으며, 요청된 정보가 없는 경우 그 정보들을 포함되지 않을 수 있다. 또한 HTTP 응답 메시지에는 해당 정보들이 포함되었는지 여부를 지시하는 정보가 더 포함될 수 있다. 여기서 요청되어 전달되는 정보들은 전술한 서비스/컨텐트 식별 메시지의 정보들에 대응될 수 있다. 예를 들어 ESG 정보는 전술한 Service 엘레멘트과 그 서브 엘레멘트들, 전술한 Content 엘레멘트와 그 서브 엘레멘트들 중, id, Name, Descrption, CAratings 엘레멘트들에 대응될 수 있다. 또한, 컴포넌트 정보는 전술한 Component 엘레멘트와 그 서브 엘레멘트들과 대응될 수 있다. 파일 또는 논-리얼타임 데이터 정보는 전술한 FileContentItem 엘레멘트와 그 서브 엘레멘트들과 대응될 수 있다. 또한, 타임라인 위치 정보는 전술한 TimelineInfo 엘레멘트와 그 서브 엘레멘트들과 대응될 수 있다.
도 115 는 본 발명의 일 실시예에 따른 XML 포맷의 서비스/컨텐트 식별 메시지를 도시한 도면이다.
도시된 두 도면(t115010, t115020)은 원래 하나인 도면이나 공간의 제약에 의해 두개로 나뉘어 도시되었다. 전술한 서비스/컨텐트 식별 메시지는 다양한 포맷으로 구현될 수 있다. 도시된 서비스/컨텐트 식별메시지는 XML 포맷을 가진다. 이 식별메시지는 전술한 서비스/컨텐트 식별 메시지에서 변형된 구조를 가질 수 있다.
이 서비스/컨텐트 식별메시지는 Identification 엘레멘트를 가질 수 있다. 이 엘레멘트는 서비스 ID, 프로그램 ID, 쇼 ID, 세그먼트 ID 를 가질 수 있다. 이 정보들은 각각 서비스, 프로그램, 쇼, 세그먼트를 식별할 수 있다. 각각의 서비스, 컨텐트 등에 대하여 후술할 정보들이 식별메시지에 포함될 수 있다.
서비스/컨텐트 식별메시지는 TemporalLocation 엘레멘트를 포함할 수 있다. 이 엘레멘트는 시간적으로 현재의 방영중인 서비스 등의 위치를 나타낼 수 있고, 또한, 바이트 베이스로 현재 방영중인 서비스의 위치를 나타낼 수도 있다.
Title 엘레멘트는 해당 서비스, 컨텐트 등의 타이틀을 나타낼 수 있고, Description 엘레멘트는 해당 서비스/컨텐트 등에 대한 추가적인 텍스튜얼 디스크립션을 제공할 수 있다. Icon 엘레멘트는 해당 서비스 등에 대한 아이콘 정보로서, 이 엘레멘트는 아이콘의 MIME 타입, width, height, depth, URL 정보 등을 포함할 수 있다.
ESGURL 엘레멘트는 해당 서비스, 컨텐트의 ESG 정보를 획득할 수 있는 URL 정보를 포함할 수 있다. Rating 엘레멘트는 해당 서비스 등의 레이팅 정보를 나타낼 수 있고, AccessURL 엘레멘트는 전술한 로케이션 URL 정보에 대응되는 개념으로 해당 서비스 등을 획득할 수 있는 URL 정보를 제공할 수 있다. DeviceCapabilities 엘레멘트는 해당 서비스 등을 유의미하게 렌더링 하기 위해 필요하거나(required), 바람직하게 요구되는(desired) 캐패빌리티 정보를 나타낼 수 있다.
Component 엘레멘트, Data 엘레멘트는 전술한 Component 엘레멘트, FileContentItem 엘레멘트에 해당할 수 있다. 이 엘레멘트들에 대해서는 전술한 바와 같다. 이 엘레멘트들은 복수개 존재할 수 있으며, 각각 해당 컴포넌트, 파일 컨텐트 아이템에 대한 정보를 기술할 수 있다.
도 116 은 본 발명의 일 실시예에 따른 JSON 포맷의 서비스/컨텐트 식별 메시지를 도시한 도면이다.
도시된 두 도면(t116010, t116020)은 원래 하나인 도면이나 공간의 제약에 의해 두개로 나뉘어 도시되었다. 전술한 XML 포맷의 서비스/컨텐트 식별 메시지를 JSON 형식으로 다시 구성하였다. 전술한 바와 같이 서비스/컨텐트 식별 메시지는 다양한 포맷으로 구현될 수 있으며, XML, JSON 외의 포맷도 사용될 수 있다. JSON 포맷의 component 엘레멘트, Data 엘레멘트 등은 전술한 XML 포맷에서의 엘레멘트들과 같을 수 있다. 각 엘레멘트들에 대해서는 전술하였다.
도 117 은 본 발명의 일 실시예에 따른 PD 에서 방송 서비스를 제공하는 방법을 도시한 도면이다.
본 발명의 일 실시예에 따른 PD 에서 방송 서비스를 제공하는 방법은 CD 앱(application) 과 디스커버리 과정을 수행하는 단계, 웹소켓 커넥션을 구축하는(establishing) 단계, 구독(subscription) 메시지를 전달받는 단계 및/또는 서비스 식별 메시지를 전달하는 단계를 포함할 수 있다.
먼저 PD 로서 동작하는 방송 수신 장치의 컴패니언 모듈은 CD (Companion Device) 에서 실행중인 CD 앱(application) 과 디스커버리 과정을 수행할 수 있다. 이 과정에서 PD 의 HTTP 서버 엔드포인트로 사용되는 제 1 URL 및 상기 PD 의 Websocket 서버 엔드포인트로 사용되는 제 2 URL 이 CD 앱으로 전달될 수 있다.
이 디스커버리 과정은 전술한 바와 같을 수 있다. 여기서 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 의 수신 모듈은 ESG 정보를 방송망 또는 브로드밴드를 통해 수신할 수 있다. 수신 모듈은 방송망을 통해 데이터를 수신하는 튜너 또는 브로드밴드를 통해 데이터를 수신하는 네트워크 인터페이스 중 하나이거나, 양자 모두를 포함하는 개념일 수 있다. PD 는 내부 컨트롤 모듈을 더 포함할 수 있는데, 내부 컨트롤 모듈은 ESG 가 수신되면 이를 처리하고, 서비스/컨텐트 식별메시지를 생성할 수 있다.
PD 의 웹소켓 서버는 CD 앱으로부터 구독 메시지를 전달받을 수 있다. 이 구독 메시지는 전술한 제 2 URL로 식별되는 웹소켓 서버 엔드포인트(컴패니언 엔드포인트)에 해당할 수 있다. 이 구독 메시지는 ESG 로부터 유도된(derived) 정보를 포함하고 있는 서비스 식별 메시지를 전달받기 위한 컴패니언 서비스를 구독할 수 있다. 이 컴패니언 서비스는 서비스/컨텐트 식별 서비스 또는 ESG 서비스라고 불릴 수 있다. 여기서 웹소켓 서버는, 전술한 웹소켓 서버에 해당하는 동작을 수행하는 하드웨어 모듈 내지 프로세서를 의미할 수도 있다. 여기서 서비스 식별 메시지는 전술한 서비스/컨텐트 식별 메시지에 해당할 수 있다.
PD 의 웹소켓 서버는 웹소켓 커넥션을 통하여 CD 앱으로 서비스 식별 메시지를 전달할 수 있다. 이 전달은, 전술한 웹소켓의 컴패니언 서비스의 알림(notification)메시지의 형태로 수행될 수 있다. 이 알림은 ESG 에 변화가 있는 등, 서비스/컨텐트 식별 메시지에 해당하는 정보에 변화가 있는 경우에 수행될 수도 있고, 주기적으로 수행될 수도 있다. 여기서 서비스 식별 메시지는 PD 에서 제공되는 방송 서비스 관련 정보 또는 컨텐트 관련 정보를 포함할 수 있다.
본 발명의 다른 실시예에 따른 PD 에서 방송 서비스를 제공하는 방법에서, 서비스 식별 메시지는 적어도 하나의 서비스 엘레멘트 또는 컨텐트 엘레멘트를 포함하고, 서비스 엘레멘트는 PD 에서 제공되는 방송 서비스에 대한 정보 및 방송 서비스의 식별자를 포함하고, 컨텐트 엘레멘트는 PD 에서 제공되는 컨텐트에 대한 정보 및 기 컨텐트의 식별자를 포함할 수 있다. 이는 각각 전술한 Service 엘레멘트, Content 엘레멘트, 각각의 id 엘레멘트, programid 엘레멘트에 해당할 수 있다.
컨텐트 엘레멘트는 컨텐트에 포함되는 연속적 컴포넌트들을 기술하는 연속적 컴포넌트 엘레멘트들 및 컨텐트에 포함되는 파일 컨텐트 아이템들을 기술하는 컨텐트아이템 엘레멘트들을 포함할 수 있다. 이는 각각 전술한 Component 엘레멘트, FileContentItem 엘레멘트에 해당할 수 있다. 연속적 컴포넌트는 컨텐트의 오디오, 비디오 또는 캡션 컴포넌트이고, 파일 컨텐트 아이템은 컨텐트의 부가적인 데이터일 수 있다.
본 발명의 또 다른 실시예에 따른 PD 에서 방송 서비스를 제공하는 방법은, PD 에서 현재 제공되고 있는 현재(current) 방송 서비스에 대한 정보를 요청하는 HTTP GET 메시지를 HTTP 서버의 제 1 URL 로 수신하는 단계, 및 HTTP GET 메시지에 대한 응답 메시지를 CD 앱으로 전송하는 단계를 더 포함할 수 있다. 이는 전술한 HTTP 를 이용한 현재 서비스/컨텐트에 관련된 정보 전달 과정에 해당할 수 잇다. 이에 대해서는 전술하였다. 제 1 URL 은 HTTP 서버(웹 서버) 의 컴패니언 서비스 URL 에 해당할 수 있다. 응답 메시지는 현재 방송 서비스의 ESG, 현재 방송 서비스의 연속적 컴포넌트, 현재 방송 서비스의 파일 컨텐트 아이템 또는 현재 방송 서비스의 타임라인 정보를 포함할 수 있다. 이는 각각 전술한 현재 서비스/컨텐트에 대한 정보 전달에 있어서의 HTTP 응답 메시지의 정보들에 해당할 수 있다. 이들은 각각 ESG 정보, 컴포넌트 정보, 파일 또는 논-리얼타임 데이터 정보, 타임라인 위치 정보 등에 해당할 수 있다.
본 발명의 또 다른 실시예에 따른 PD 에서 방송 서비스를 제공하는 방법에서, 컨텐트 엘레멘트는 제 1 로케이션 정보를 포함하고, 제 1 로케이션 정보는 CD 앱이 상기 컨텐트 전체에 접근할 수 있는 URL 을 포함할 수 있다. 또한, 연속적 컴포넌트 엘레멘트는 제 2 로케이션 정보를 포함하고, 제 2 로케이션 정보는 CD 앱이 상기 컨텐트의 해당 연속적 컴포넌트에 접근할 수 있는 URL 을 포함할 수 있다. 또한 컨텐트아이템 엘레멘트는 제 3 로케이션 정보를 포함하고, 제 3 로케이션 정보는 CD 앱이 컨텐트의 해당 파일 컨텐트 아이템에 접근할 수 있는 URL 을 포함할 수 있다. 각각의 로케이션 정보는 차례로 Location 엘레멘트, @componentLocation 속성, @FileContentItemLocation 속성에 해당할 수 있다.
본 발명의 또 다른 실시예에 따른 PD 에서 방송 서비스를 제공하는 방법에서, 제 3 로케이션 정보의 URL 은 CD 앱이 방송 서비스에 대한 앱 기반 인핸스먼트(App-based Enhancement) 컴포넌트를 획득하는데 사용될 수 있다. 실시예에 따라, 제 2 로케이션 정보의 URL 이 앱 기반 인핸스먼트 컴포넌트를 획득하는데 사용될 수도 있다. 여기서 앱 기반 인핸스먼트에 대해서는 전술하였다. 앱 기반 인핸스먼트 컴포넌트는 앱 컴포넌트를 의미할 수도 있고, 앱 기반 인핸스먼트를 제공하는데 필요한 데이터를 가지는 컴포넌트를 의미할 수도 있다.
본 발명의 또 다른 실시예에 따른 PD 에서 방송 서비스를 제공하는 방법에서, 앱 기반 인핸스먼트 컴포넌트는 방송 서비스에 대한 앱 기반 인핸스먼트를 제공하는데 사용될 수 있다. 또한, 제 3 로케이션 정보의 URL 은 앱 기반 인핸스먼트를 시그널링하는 AST (Application Signaling Table) 또는 EMT (Event Message Table) 를 획득하는데 사용될 수도 있다. AST, EMT 에 대해서는 전술하였다.
본 발명의 또 다른 실시예에 따른 PD 에서 방송 서비스를 제공하는 방법에서, AST 는 앱 기반 인핸스먼트에 포함되는 적어도 하나의 어플리케이션에 대한 정보들을 기술하고, EMT 는 어플리케이션에 의해 수행되는 액션을 시그널링하는 이벤트들에 관한 정보를 기술할 수 있다. AST, EMT, 이벤트(Event) 에 대해서는 전술하였다. AST, EMT 를 이용해 CD 에서도 앱 기반 인핸스먼트가 제공될 수 있다.
본 발명의 일 실시예에 따른 CD 에서 방송 서비스를 제공하는 방법을 설명한다. 이 방법은 도면에 도시되지 아니하였다.
본 발명의 일 실시예에 따른 CD 에서 방송 서비스를 제공하는 방법은 CD 의 런쳐(launcher) 가 CD 의 앱을 실행시키는 단계, CD 의 앱이 CD 의 네트워크 인터페이스를 이용하여 PD 와 디스커버리 과정을 수행하는 단계, CD 의 웹소켓 클라이언트를 이용하여 CD 의 앱이 PD 의 웹소켓 서버와 웹소켓 커넥션을 구축하는 단계, CD 앱이 CD 의 웹소켓 클라이언트를 이용하여 서비스/컨텐트 식별 메시지를 전달받기 위한 구독 메시지를 전송하고 해당 서비스에 구독하는 단계 및/또는 CD 앱이 CD 의 웹소켓 클라이언트를 이용하여 서비스 식별 메시지를 전달받는 단계를 포함할 수 있다. CD 앱과 PD 간의 디스커버리 과정은 CD 의 컴패니언 모듈에 의해 수행될 수 있다. CD 앱은 컴패니언 모듈을 이용하여 디바이스 디스크립션을 요청하고, 전술한 제 1 URL 로 어플리케이션 정보를 요청하고, 요청들에 대한 응답을 획득할 수 있다.
본 발명의 실시예들에 따른 CD 에서 방송 서비스를 제공하는 방법들은, 전술한 본 발명의 실시예들에 따른 PD 에서 방송 서비스를 제공하는 방법들에 대응될 수 있다. CD 에서 방송 서비스를 제공하는 방법들은, PD 에서 방송 서비스를 제공하는 방법에서 사용되는 모듈들(예를 들어, 컴패니언 모듈, 수신 모듈, 내부 컨트롤 모듈, 웹서버, 웹소켓 서버 등)에 대응되는 하드웨어 모듈들에 의해 수행될 수 있다. CD 에서 방송 서비스를 제공하는 방법은, 전술한 PD 에서 방송 서비스를 제공하는 방법의 실시예들에 대응되는 실시예들을 가질 수 있다.
전술한 단계들은 실시예에 따라 생략되거나, 유사/동일한 동작을 수행하는 다른 단계에 의해 대체될 수 있다.
도 118 는 본 발명의 일 실시예에 따른 PD 로서 동작하는 방송 수신 장치를 도시한 도면이다.
본 발명의 일 실시예에 따른 PD 로서 동작하는 방송 수신 장치는 전술한 컴패니언 모듈, 수신 모듈, 내부 컨트롤 모듈, 웹서버 및/또는 웹소켓 서버를 포함할 수 있다. 각각의 블락, 모듈들은 전술한 바와 같다.
본 발명의 일 실시예에 따른 PD 로서 동작하는 방송 수신 장치 및 그 내부 모듈/블락들은, 전술한 본 발명의 PD 에서 방송 서비스를 제공하는 방법의 실시예들을 수행할 수 있다.
본 발명의 일 실시예에 따른 CD 로서 동작하는 장치를 설명한다. 이 장치는 도면에 도시되지 아니하였다.
본 발명의 일 실시예에 따른 CD 로서 동작하는 장치는 전술한 런쳐, 컴패니언 모듈 및/또는 네트워크 인터페이스를 포함할 수 있다.
본 발명의 일 실시예에 따른 CD 로서 동작하는 장치 및 그 내부 모듈/블락들은, 전술한 본 발명의 CD 에서 방송 서비스를 제공하는 방법의 실시예들을 수행할 수 있다.
전술한 장치 내부의 블락/모듈 등은 메모리에 저장된 연속된 수행과정들을 실행하는 프로세서들일 수 있고, 실시예에 따라 장치 내/외부에 위치하는 하드웨어 엘레멘트들일 수 있다.
전술한 모듈들은 실시예에 따라 생략되거나, 유사/동일한 동작을 수행하는 다른 모듈에 의해 대체될 수 있다.
모듈 또는 유닛은 메모리(또는 저장 유닛)에 저장된 연속된 수행과정들을 실행하는 프로세서들일 수 있다. 전술한 실시예에 기술된 각 단계들은 하드웨어/프로세서들에 의해 수행될 수 있다. 전술한 실시예에 기술된 각 모듈/블락/유닛들은 하드웨어/프로세서로서 동작할 수 있다. 또한, 본 발명이 제시하는 방법들은 코드로서 실행될 수 있다. 이 코드는 프로세서가 읽을 수 있는 저장매체에 쓰여질 수 있고, 따라서 장치(apparatus)가 제공하는 프로세서에 의해 읽혀질 수 있다.
설명의 편의를 위하여 각 도면을 나누어 설명하였으나, 각 도면에 서술되어 있는 실시 예들을 병합하여 새로운 실시 예를 구현하도록 설계하는 것도 가능하다. 그리고, 통상의 기술자의 필요에 따라, 이전에 설명된 실시 예들을 실행하기 위한 프로그램이 기록되어 있는 컴퓨터에서 판독 가능한 기록 매체를 설계하는 것도 본 발명의 권리범위에 속한다.
본 발명에 따른 장치 및 방법은 상술한 바와 같이 설명된 실시 예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상술한 실시 예들은 다양한 변형이 이루어질 수 있도록 각 실시 예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
한편, 본 발명이 제안하는 방법을 네트워크 디바이스에 구비된, 프로세서가 읽을 수 있는 기록매체에, 프로세서가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 프로세서가 읽을 수 있는 기록매체는 프로세서에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 프로세서가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한, 인터넷을 통한 전송 등과 같은 캐리어 웨이브의 형태로 구현되는 것도 포함한다. 또한, 프로세서가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 프로세서가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해돼서는 안 될 것이다.
그리고, 당해 명세서에서는 물건 발명과 방법 발명이 모두 설명되고 있으며, 필요에 따라 양 발명의 설명은 보충적으로 적용될 수가 있다.
본 발명의 사상이나 범위를 벗어나지 않고 본 발명에서 다양한 변경 및 변형이 가능함은 당업자에게 이해된다. 따라서, 본 발명은 첨부된 청구항 및 그 동등 범위 내에서 제공되는 본 발명의 변경 및 변형을 포함하는 것으로 의도된다.
본 명세서에서 장치 및 방법 발명이 모두 언급되고, 장치 및 방법 발명 모두의 설명은 서로 보완하여 적용될 수 있다.
발명의 실시를 위한 형태
다양한 실시예가 본 발명을 실시하기 위한 최선의 형태에서 설명되었다.

Claims (20)

  1. 프라이머리 디바이스 디스커버리를 위한 요청 신호를 전송하는 단계;
    프라이머리 디바이스로부터 상기 요청 신호에 대응하는 웹서버 엔드포인트 및 웹소켓 서버 엔드포인트를 포함하는 응답 신호를 수신하는 단계;
    상기 수신한 응답 신호를 기반으로 생성되는 HTTP 프로토콜 또는 웹소켓 프로토콜을 통해 커뮤니케이션 요청 신호를 전송하는 단계로서, 상기 커뮤니케이션 요청 신호가 서비스 구독 메시지인 경우, 상기 서비스 구독 메시지를 상기 웹소켓 프로토콜을 통해 상기 프라이머리 디바이스로 전송하는 것을 포함하고;
    상기 커뮤니케이션 요청 신호에 대응하는 커뮤니케이션 응답 신호를 상기 HTTP 프로토콜 또는 웹소켓 프로토콜을 통해 수신하는 단계로서, 상기 커뮤니케이션 응답 신호가 상기 서비스 구독 메시지에 대응하는 서비스 및 컨텐트 식별 메시지인 경우, 상기 서비스 및 컨텐트 식별 메시지를 상기 웹소켓 프로토콜을 통해 수신하는 것을 포함하고,
    상기 서비스 및 컨텐트 식별 메시지는 상기 프라이머리 디바이스가 수신한 ESG (Electronic Service Guide)에 포함된 정보를 기반으로 생성되고, 상기 서비스 및 컨텐트 식별 메시지는 상기 ESG에 포함된 방송 서비스 정보 및 방송 컨텐트 정보를 포함하고, 상기 방송 컨텐트 정보는 각 방송 컨텐트를 식별하기 위한 식별자, 상기 식별자에 의해 식별되는 각 방송 컨텐트에 포함되는 복수개의 컴포넌트들에 대한 정보 및 상기 식별자에 의해 식별되는 각 방송 컨텐트에 포함되는 복수개의 파일들에 대한 정보를 더 포함하고,
    상기 방송 컨텐트 정보는 상기 식별자로 식별되는 각 방송 컨텐트에 접근할 수 있는 URL을 포함하고, 상기 복수개의 컴포넌트들에 대한 정보는 상기 식별자로 식별되는 각 방송 컨텐트에 포함되는 각 컴포넌트에 접근할 수 있는 URL을 포함하고, 상기 복수개의 파일들에 대한 정보는 상기 식별자로 식별되는 각 방송 컨텐트에 포함되는 각 파일에 접근할 수 있는 URL을 포함하고; 및
    상기 수신한 커뮤니케이션 응답 신호를 기반으로 방송 서비스를 제공하는 방송 서비스 제공 방법.
  2. 제1항에 있어서,
    상기 수신한 응답 신호를 기반으로 생성되는 HTTP 프로토콜 또는 웹소켓 프로토콜을 통해 커뮤니케이션 요청 신호를 전송하는 단계는,
    상기 커뮤니케이션 요청 신호가 상기 프라이머리 디바이스에서 현재 시청중인 방송 서비스와 관련된 ESG 정보 요청 신호인 경우, 상기 커뮤니케이션 요청 신호를 상기 HTTP 프로토콜을 통해 상기 프라이머리 디바이스로 전송하는 것을 더 포함하는 방송 서비스 제공 방법.
  3. 제2항에 있어서,
    상기 커뮤니케이션 요청 신호에 대응하는 커뮤니케이션 응답 신호를 상기 HTTP 프로토콜 또는 웹소켓 프로토콜을 통해 수신하는 단계는,
    상기 커뮤니케이션 응답 신호가 상기 프라이머리 디바이스에서 현재 시청중인 방송 서비스와 관련된 ESG 정보 요청 신호에 대응하는 상기 프라이머리 디바이스에서 현재 시청중인 방송 서비스와 관련된 ESG 정보인 경우, 상기 커뮤니케이션 응답 신호를 상기 HTTP 프로토콜을 통해 수신하는 것을 더 포함하는 방송 서비스 제공 방법.
  4. 제1항에 있어서,
    상기 수신한 응답 신호를 기반으로 생성되는 HTTP 프로토콜 또는 웹소켓 프로토콜을 통해 커뮤니케이션 요청 신호를 전송하는 단계는,
    상기 커뮤니케이션 요청 신호가 상기 프라이머리 디바이스에서 현재 시청하고 있는 방송 서비스 정보 요청 신호인 경우, 상기 커뮤니케이션 요청 신호를 상기 HTTP 프로토콜을 통해 전송하는 것을 포함하는 방송 서비스 제공 방법.
  5. 제4항에 있어서,
    상기 커뮤니케이션 요청 신호에 대응하는 커뮤니케이션 응답 신호를 상기 HTTP 프로토콜 또는 웹소켓 프로토콜을 통해 수신하는 단계는,
    상기 커뮤니케이션 응답 신호가 상기 프라이머리 디바이스에서 현재 시청중인 방송 서비스 정보 요청 신호에 대응하는 상기 프라이머리 디바이스에서 현재 시청중인 방송 서비스 정보인 경우, 상기 커뮤니케이션 응답 신호를 상기 HTTP 프로토콜을 통해 수신하는 것을 포함하는 방송 서비스 제공 방법.
  6. 프라이머리 디바이스 디스커버리를 위한 요청 신호를 전송하고, 프라이머리 디바이스로부터 상기 요청 신호에 대응하는 웹서버 엔드포인트 및 웹소켓 서버 엔드포인트를 포함하는 응답 신호를 수신하고, 상기 수신한 응답 신호를 기반으로 HTTP 프로토콜 또는 웹소켓 프로토콜을 통해 커뮤니케이션 요청 신호를 전송하고, 상기 커뮤니케이션 요청 신호에 대응하는 커뮤니케이션 응답 신호를 상기 HTTP 프로토콜 또는 웹소켓 프로토콜을 통해 수신하는 네트워크 인터페이스로서, 상기 커뮤니케이션 요청 신호가 서비스 구독 메시지인 경우, 상기 서비스 구독 메시지를 상기 웹소켓 프로토콜을 통해 상기 프라이머리 디바이스로 전송하고, 상기 커뮤니케이션 응답 신호가 상기 서비스 구독 메시지에 대응하는 서비스 및 컨텐트 식별 메시지인 경우, 상기 서비스 및 컨텐트 식별 메시지를 상기 웹소켓 프로토콜을 통해 수신하고; 및
    상기 수신한 커뮤니케이션 응답 신호를 기반으로 방송 서비스를 제공하는 컨트롤 유닛을 포함하고,
    상기 서비스 및 컨텐트 식별 메시지는 상기 프라이머리 디바이스가 수신한 ESG (Electronic Service Guide)에 포함된 정보를 기반으로 생성되고, 상기 서비스 및 컨텐트 식별 메시지는 상기 ESG에 포함된 방송 서비스 정보 및 방송 컨텐트 정보를 포함하고, 상기 방송 컨텐트 정보는 각 방송 컨텐트를 식별하기 위한 식별자, 상기 식별자에 의해 식별되는 각 방송 컨텐트에 포함되는 복수개의 컴포넌트들에 대한 정보 및 상기 식별자에 의해 식별되는 각 방송 컨텐트에 포함되는 복수개의 파일들에 대한 정보를 더 포함하고,
    상기 방송 컨텐트 정보는 상기 식별자로 식별되는 각 방송 컨텐트에 접근할 수 있는 URL을 포함하고, 상기 복수개의 컴포넌트들에 대한 정보는 상기 식별자로 식별되는 각 방송 컨텐트에 포함되는 각 컴포넌트에 접근할 수 있는 URL을 포함하고, 상기 복수개의 파일들에 대한 정보는 상기 식별자로 식별되는 각 방송 컨텐트에 포함되는 각 파일에 접근할 수 있는 URL을 포함하는 방송 서비스 제공 장치.
  7. 제6항에 있어서,
    상기 커뮤니케이션 요청 신호가 상기 프라이머리 디바이스에서 현재 시청중인 방송 서비스와 관련된 ESG 정보 요청 신호인 경우, 상기 네트워크 인터페이스는 상기 커뮤니케이션 요청 신호를 상기 HTTP 프로토콜을 통해 상기 프라이머리 디바이스로 전송하는 방송 서비스 제공 장치.
  8. 제7항에 있어서,
    상기 커뮤니케이션 응답 신호가 상기 프라이머리 디바이스에서 현재 시청중인 방송 서비스와 관련된 ESG 정보 요청 신호에 대응하는 상기 프라이머리 디바이스에서 현재 시청중인 방송 서비스와 관련된 ESG 정보인 경우, 상기 네트워크 인터페이스는 상기 커뮤니케이션 응답 신호를 상기 HTTP 프로토콜을 통해 수신하는 방송 서비스 제공 장치.
  9. 제6항에 있어서,
    상기 커뮤니케이션 요청 신호가 상기 프라이머리 디바이스에서 현재 시청하고 있는 방송 서비스 정보 요청 신호인 경우, 상기 네트워크 인터페이스는 상기 커뮤니케이션 요청 신호를 상기 HTTP 프로토콜을 통해 전송하는 방송 서비스 제공 장치.
  10. 제9항에 있어서,
    상기 커뮤니케이션 응답 신호가 상기 프라이머리 디바이스에서 현재 시청중인 방송 서비스 정보 요청 신호에 대응하는 상기 프라이머리 디바이스에서 현재 시청중인 방송 서비스 정보인 경우, 상기 네트워크 인터페이스는 상기 커뮤니케이션 응답 신호를 상기 HTTP 프로토콜을 통해 수신하는 방송 서비스 제공 장치.
  11. 프라이머리 디바이스 디스커버리를 위한 요청 신호를 컴패니언 디바이스로부터 수신하는 단계;
    상기 요청 신호에 대응하는 웹서버 엔드포인트 및 웹소켓 서버 엔드포인트를 포함하는 응답 신호를 전송하는 단계;
    상기 응답 신호를 기반으로 생성되는 HTTP 프로토콜 또는 웹소켓 프로토콜을 통해 커뮤니케이션 요청 신호를 수신하는 단계로서, 상기 커뮤니케이션 요청 신호가 서비스 구독 메시지인 경우, 상기 서비스 구독 메시지를 상기 웹소켓 프로토콜을 통해 수신하는 것을 포함하고;
    상기 커뮤니케이션 요청 신호에 대응하는 커뮤니케이션 응답 신호를 상기 HTTP 프로토콜 또는 웹소켓 프로토콜을 통해 전송하는 단계로서, 상기 커뮤니케이션 응답 신호가 상기 서비스 구독 메시지에 대응하는 서비스 및 컨텐트 식별 메시지인 경우, 상기 서비스 및 컨텐트 식별 메시지를 상기 웹소켓 프로토콜을 통해 전송하는 것을 포함하고,
    상기 서비스 및 컨텐트 식별 메시지는 ESG (Electronic Service Guide)에 포함된 정보를 기반으로 생성되고, 상기 서비스 및 컨텐트 식별 메시지는 상기 ESG에 포함된 방송 서비스 정보 및 방송 컨텐트 정보를 포함하고, 상기 방송 컨텐트 정보는 각 방송 컨텐트를 식별하기 위한 식별자, 상기 식별자에 의해 식별되는 각 방송 컨텐트에 포함되는 복수개의 컴포넌트들에 대한 정보 및 상기 식별자에 의해 식별되는 각 방송 컨텐트에 포함되는 복수개의 파일들에 대한 정보를 더 포함하고,
    상기 방송 컨텐트 정보는 상기 식별자로 식별되는 방송 컨텐트에 접근할 수 있는 URL을 포함하고, 상기 복수개의 컴포넌트들에 대한 정보는 상기 식별자로 식별되는 각 방송 컨텐트에 포함되는 각 컴포넌트에 접근할 수 있는 URL을 포함하고, 상기 복수개의 파일들에 대한 정보는 상기 식별자로 식별되는 각 방송 컨텐트에 포함되는 각 파일에 접근할 수 있는 URL을 포함하는 방송 서비스 제공 방법.
  12. 제11항에 있어서,
    상기 응답 신호를 기반으로 생성되는 HTTP 프로토콜 또는 웹소켓 프로토콜을 통해 커뮤니케이션 요청 신호를 수신하는 단계는,
    상기 커뮤니케이션 요청 신호가 시청중인 방송 서비스와 관련된 ESG 정보 요청 신호인 경우, 상기 커뮤니케이션 요청 신호를 상기 HTTP 프로토콜을 통해 수신하는 것을 더 포함하는 방송 서비스 제공 방법.
  13. 제12항에 있어서,
    상기 커뮤니케이션 요청 신호에 대응하는 커뮤니케이션 응답 신호를 상기 HTTP 프로토콜 또는 웹소켓 프로토콜을 통해 전송하는 단계는,
    상기 커뮤니케이션 응답 신호가 상기 프라이머리 디바이스에서 현재 시청중인 방송 서비스와 관련된 ESG 정보 요청 신호에 대응하는 상기 프라이머리 디바이스에서 현재 시청중인 방송 서비스와 관련된 ESG 정보인 경우, 상기 커뮤니케이션 응답 신호를 상기 HTTP 프로토콜을 통해 전송하는 것을 더 포함하는 방송 서비스 제공 방법.
  14. 제11항에 있어서,
    상기 응답 신호를 기반으로 생성되는 HTTP 프로토콜 또는 웹소켓 프로토콜을 통해 커뮤니케이션 요청 신호를 전송하는 단계는,
    상기 커뮤니케이션 요청 신호가 현재 시청하고 있는 방송 서비스 정보 요청 신호인 경우, 상기 커뮤니케이션 요청 신호를 상기 HTTP 프로토콜을 통해 수신하는 것을 포함하는 방송 서비스 제공 방법.
  15. 제14항에 있어서,
    상기 커뮤니케이션 요청 신호에 대응하는 커뮤니케이션 응답 신호를 상기 HTTP 프로토콜 또는 웹소켓 프로토콜을 통해 전송하는 단계는,
    상기 커뮤니케이션 응답 신호가 상기 현재 시청중인 방송 서비스 정보 요청 신호에 대응하는 상기 프라이머리 디바이스에서 현재 시청중인 방송 서비스 정보인 경우, 상기 커뮤니케이션 응답 신호를 상기 HTTP 프로토콜을 통해 전송하는 것을 포함하는 방송 서비스 제공 방법.
  16. 방송 서비스를 제공하는 컨트롤 유닛; 및
    프라이머리 디바이스 디스커버리를 위한 요청 신호를 수신하고, 상기 요청 신호에 대응하는 웹서버 엔드포인트 및 웹소켓 서버 엔드포인트를 포함하는 응답 신호를 전송하고, 상기 응답 신호를 기반으로 HTTP 프로토콜 또는 웹소켓 프로토콜을 통해 커뮤니케이션 요청 신호를 수신하고, 상기 커뮤니케이션 요청 신호에 대응하는 커뮤니케이션 응답 신호를 상기 HTTP 프로토콜 또는 웹소켓 프로토콜을 통해 전송하는 네트워크 인터페이스로서, 상기 커뮤니케이션 요청 신호가 서비스 구독 메시지인 경우, 상기 서비스 구독 메시지를 상기 웹소켓 프로토콜을 통해 수신하고, 상기 커뮤니케이션 응답 신호가 상기 서비스 구독 메시지에 대응하는 서비스 및 컨텐트 식별 메시지인 경우, 상기 서비스 및 컨텐트 식별 메시지를 상기 웹소켓 프로토콜을 통해 전송하고,
    상기 서비스 및 컨텐트 식별 메시지는 ESG (Electronic Service Guide)에 포함된 정보를 기반으로 생성되고, 상기 서비스 및 컨텐트 식별 메시지는 상기 ESG에 포함된 방송 서비스 정보 및 방송 컨텐트 정보를 포함하고, 상기 방송 컨텐트 정보는 각 방송 컨텐트를 식별하기 위한 식별자, 상기 식별자에 의해 식별되는 각 방송 컨텐트에 포함되는 복수개의 컴포넌트들에 대한 정보 및 상기 식별자에 의해 식별되는 각 방송 컨텐트에 포함되는 복수개의 파일들에 대한 정보를 더 포함하고,
    상기 방송 컨텐트 정보는 상기 식별자로 식별되는 각 방송 컨텐트에 접근할 수 있는 URL을 포함하고, 상기 복수개의 컴포넌트들에 대한 정보는 상기 식별자로 식별되는 각 방송 컨텐트에 포함되는 각 컴포넌트에 접근할 수 있는 URL을 포함하고, 상기 복수개의 파일들에 대한 정보는 상기 식별자로 식별되는 각 방송 컨텐트에 포함되는 각 파일에 접근할 수 있는 URL을 포함하는 방송 서비스 제공 장치.
  17. 제16항에 있어서,
    상기 커뮤니케이션 요청 신호가 현재 시청중인 방송 서비스와 관련된 ESG 정보 요청 신호인 경우, 상기 네트워크 인터페이스는 상기 커뮤니케이션 요청 신호를 상기 HTTP 프로토콜을 통해 수신하는 방송 서비스 제공 장치.
  18. 제17항에 있어서,
    상기 커뮤니케이션 응답 신호가 현재 시청중인 방송 서비스와 관련된 ESG 정보 요청 신호에 대응하는 현재 시청중인 방송 서비스와 관련된 ESG 정보인 경우, 상기 네트워크 인터페이스는 상기 커뮤니케이션 응답 신호를 상기 HTTP 프로토콜을 통해 전송하는 방송 서비스 제공 장치.
  19. 제16항에 있어서,
    상기 커뮤니케이션 요청 신호가 현재 시청하고 있는 방송 서비스 정보 요청 신호인 경우, 상기 네트워크 인터페이스는 상기 커뮤니케이션 요청 신호를 상기 HTTP 프로토콜을 통해 수신하는 방송 서비스 제공 장치.
  20. 제19항에 있어서,
    상기 커뮤니케이션 응답 신호가 현재 시청중인 방송 서비스 정보 요청 신호에 대응하는 현재 시청중인 방송 서비스 정보인 경우, 상기 네트워크 인터페이스는 상기 커뮤니케이션 응답 신호를 상기 HTTP 프로토콜을 통해 전송하는 것을 포함하는 방송 서비스 제공 장치.
KR1020187017134A 2015-03-01 2016-02-29 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법 KR101975343B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201562126708P 2015-03-01 2015-03-01
US201562126693P 2015-03-01 2015-03-01
US62/126,708 2015-03-01
US62/126,693 2015-03-01
US201562144311P 2015-04-07 2015-04-07
US62/144,311 2015-04-07
PCT/KR2016/002003 WO2016140483A1 (ko) 2015-03-01 2016-02-29 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020167020609A Division KR101871727B1 (ko) 2015-03-01 2016-02-29 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법

Publications (2)

Publication Number Publication Date
KR20180072842A KR20180072842A (ko) 2018-06-29
KR101975343B1 true KR101975343B1 (ko) 2019-05-07

Family

ID=56849019

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020167020609A KR101871727B1 (ko) 2015-03-01 2016-02-29 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법
KR1020187017134A KR101975343B1 (ko) 2015-03-01 2016-02-29 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020167020609A KR101871727B1 (ko) 2015-03-01 2016-02-29 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법

Country Status (5)

Country Link
US (1) US10356132B2 (ko)
EP (1) EP3267691A4 (ko)
KR (2) KR101871727B1 (ko)
CN (1) CN106464395B (ko)
WO (1) WO2016140483A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3142369A4 (en) 2015-06-04 2018-01-10 LG Electronics Inc. Broadcast signal transmission apparatus, broadcast signal reception apparatus, broadcast signal transmission method, and broadcast signal reception method
KR102454746B1 (ko) * 2015-10-01 2022-10-17 삼성전자주식회사 통신 시스템에서 미디어 리소스 식별 정보를 송수신하는 장치 및 방법
CA2999701C (en) * 2015-10-05 2023-09-26 Sony Corporation Reception apparatus, transmission apparatus, and data processing method
US10546146B2 (en) 2017-06-28 2020-01-28 General Electric Company Catheter authorization system and method
US11170095B2 (en) 2017-06-28 2021-11-09 GE Precision Healthcare LLC Catheter authorization system and method
US10574373B2 (en) 2017-08-08 2020-02-25 Ibiquity Digital Corporation ACR-based radio metadata in the cloud
CN107769909A (zh) * 2017-09-29 2018-03-06 四川长虹电器股份有限公司 一种Egret引擎的前端数据发送处理的方法
KR101967299B1 (ko) * 2017-12-19 2019-04-09 엘지전자 주식회사 방송 신호를 수신하는 차량용 수신 장치 및 방송 신호를 수신하는 차량용 수신 방법
US11570215B2 (en) * 2018-01-25 2023-01-31 Telefonaktiebolaget Lm Ericsson (Publ) Technique for enabling signaling message correlation
CN108769681B (zh) * 2018-06-20 2022-06-10 腾讯科技(深圳)有限公司 视频编码、解码方法、装置、计算机设备和存储介质
US11018754B2 (en) * 2018-08-07 2021-05-25 Appareo Systems, Llc RF communications system and method
CN109040295B (zh) * 2018-08-30 2021-07-20 上海九山电子科技有限公司 异常断线的确定方法及装置、终端及存储介质
CN112840665B (zh) * 2019-02-07 2024-01-19 Lg电子株式会社 广播信号发送设备、广播信号发送方法、广播信号接收方法和广播信号接收设备
US10868845B2 (en) * 2019-03-01 2020-12-15 Netskope, Inc. Recovery from failure in a dynamic scalable services mesh
WO2020243533A1 (en) * 2019-05-31 2020-12-03 Apple Inc. Systems and methods for performance data streaming, performance data file reporting, and performance threshold monitoring
WO2021177630A1 (ko) * 2020-03-05 2021-09-10 엘지전자 주식회사 미디어 처리 장치 및 미디어 처리 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140115644A1 (en) * 2012-10-18 2014-04-24 Lg Electronics Inc. Apparatus and method for processing an interactive service

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060291412A1 (en) * 2005-06-24 2006-12-28 Naqvi Shamim A Associated device discovery in IMS networks
KR100800690B1 (ko) 2006-02-10 2008-02-01 삼성전자주식회사 디지털 방송 서비스 시스템에서 방송 데이터 전송 장치 및방법
US20090180398A1 (en) * 2008-01-16 2009-07-16 Sony Corporation, A Japanese Corporation Method and apparatus for facilitating interaction between the services provided by respective networked devices
KR101614945B1 (ko) * 2008-08-20 2016-04-25 삼성전자주식회사 홈 네트워크에서의 개인정보 보호 방법 및 장치
KR20120084233A (ko) 2011-01-19 2012-07-27 삼성전자주식회사 엠엠티 제어 계층을 이용한 위젯/어플리케이션 명령어 전송 방법
KR102007841B1 (ko) 2012-10-15 2019-08-06 엘지전자 주식회사 미디어 공유 제어장치, 미디어 재생장치, 미디어 공유 애플리케이션 제공 서버 및 미디어 공유 방법
US9736205B2 (en) 2012-10-15 2017-08-15 Lg Electronics Inc. Media share control apparatus, media reproducing apparatus, and method of providing user interface for media sharing thereof
CA2900485C (en) 2013-03-19 2018-01-09 Lg Electronics Inc. Signal transmitting apparatus, signal transmitting method, and system for transmitting and receiving signal
FI125251B (en) 2013-06-24 2015-08-14 Airbus Defence And Space Oy Mobile terminal management
CA2907789C (en) 2013-06-27 2018-07-24 Lg Electronics Inc. Method and device for transmitting and receiving broadcast service in hybrid broadcast system on basis of connection of terrestrial broadcast network and internet protocol network
JP6543617B2 (ja) * 2013-09-23 2019-07-10 サムスン エレクトロニクス カンパニー リミテッド 無線通信システムにおけるアプリケーション実行方法及び装置
CN106416279A (zh) * 2014-05-27 2017-02-15 夏普株式会社 伴随设备

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140115644A1 (en) * 2012-10-18 2014-04-24 Lg Electronics Inc. Apparatus and method for processing an interactive service

Also Published As

Publication number Publication date
CN106464395A (zh) 2017-02-22
KR20180072842A (ko) 2018-06-29
WO2016140483A1 (ko) 2016-09-09
EP3267691A4 (en) 2018-06-20
EP3267691A1 (en) 2018-01-10
US20170013028A1 (en) 2017-01-12
KR20160116336A (ko) 2016-10-07
CN106464395B (zh) 2019-07-05
US10356132B2 (en) 2019-07-16
KR101871727B1 (ko) 2018-06-27

Similar Documents

Publication Publication Date Title
KR101814404B1 (ko) 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법
KR101975343B1 (ko) 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법
US10790917B2 (en) Apparatus for transmitting broadcast signal, apparatus for receiving broadcast signal, method for transmitting broadcast signal and method for receiving broadcast signal
US20210344986A1 (en) Broadcasting signal transmission apparatus, broadcasting signal reception apparatus, broadcasting signal transmission method, and broadcasting signal reception method
US10687121B2 (en) Method for a primary device communicating with a companion device, and a primary device communicating with a companion device
US11095959B2 (en) Broadcasting signal transmitting apparatus, broadcasting signal receiving apparatus, broadcasting signal transmitting method, and broadcasting signal receiving method
US20220103274A1 (en) Broadcasting signal transmitting apparatus, broadcasting signal receiving apparatus, broadcasting signal transmitting method, and broadcasting signal receiving method

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant